diff --git a/NOTICE.TXT b/NOTICE.TXT
index 5908fd041675a5bd982ec301e6cfa3564086bd70..698eb51d85e63bb667af2d1501e72e6db5d8dc9e 100644
--- a/NOTICE.TXT
+++ b/NOTICE.TXT
@@ -119,7 +119,7 @@ This product uses software based on the Apache Software License like
 * Java-html-sanitizer (Apache Software License, Version 2.0) [https://github.com/OWASP/java-html-sanitizer]
 
 -----------------------------------------------------------------------
-This produce uses software based on the MIT License
+This product uses software based on the MIT License
 * Bootstrap (MIT License) [http://http://getbootstrap.com]
 * Prototype javascript framework (MIT License) [http://www.prototypejs.org]
 * SCORM player project: reload (MIT License) [http://www.reload.ac.uk]
@@ -211,3 +211,4 @@ This product uses software based on specific License
 * periodic (none) [https://github.com/tra/periodic]
 * typeahead.js (see src/main/webapp/WEB-INF/lib/licenses/typeahead.licence.txt) [https://github.com/twitter/typeahead.js/blob/master/LICENSE]
 * validator.nu htmlparser (https://github.com/validator/htmlparser/blob/validator-nu/LICENSE.txt) [https://github.com/validator/htmlparser/blob/validator-nu/LICENSE.txt]
+* Paella Player (https://paellaplayer.upv.es/license/) [https://paellaplayer.upv.es/license/]
diff --git a/src/main/java/org/olat/core/commons/fullWebApp/_content/fullwebapplayout.html b/src/main/java/org/olat/core/commons/fullWebApp/_content/fullwebapplayout.html
index 7eef9f1acb0384eae9070893581aa2a9efe77037..afc09b91811f56fa26858a790213069319273f11 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/_content/fullwebapplayout.html
+++ b/src/main/java/org/olat/core/commons/fullWebApp/_content/fullwebapplayout.html
@@ -187,6 +187,8 @@ $theme.renderHTMLHeaderElements()
             /* Detect IE below version 11 */
             if (window.navigator.userAgent.indexOf('MSIE ') > 0) {
                 jQuery('body').addClass('o_browser_ie10');
+            } else if (!!navigator.userAgent.match(/Trident\/7\./)) {
+            	jQuery('body').addClass('o_browser_ie11');
             }
         });
 	</script>
diff --git a/src/main/java/org/olat/course/nodes/livestream/paella/PaellaFactory.java b/src/main/java/org/olat/course/nodes/livestream/paella/PaellaFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..4722da981c0e2f4d537237e53e92d0678ff84953
--- /dev/null
+++ b/src/main/java/org/olat/course/nodes/livestream/paella/PaellaFactory.java
@@ -0,0 +1,78 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.nodes.livestream.paella;
+
+import org.olat.core.util.StringHelper;
+
+/**
+ * 
+ * Initial date: 13 Dec 2019<br>
+ * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
+ *
+ */
+public class PaellaFactory {
+	
+	public static Sources createSources(String url) {
+		Sources sources = new Sources();
+		addSource(sources, url);
+		return sources;
+	}
+	
+	private static void addSource(Sources sources, String url) {
+		if (!StringHelper.containsNonWhitespace(url)) return;
+			
+		String suffix = getSuffix(url);
+		if (suffix == null) return;
+	
+		switch (suffix) {
+		case "m3u8":
+			addM3U8Source(sources, url);
+			break;
+		case "mp4":
+			addMP4Source(sources, url);
+			break;
+		default:
+			break;
+		}
+	}
+
+	private static void addM3U8Source(Sources sources, String url) {
+		Source source = createSource(url);
+		sources.setHls(new Source[] {source});
+	}
+	
+	private static void addMP4Source(Sources sources, String url) {
+		Source source = createSource(url);
+		sources.setMp4(new Source[] {source});
+	}
+
+	private static Source createSource(String url) {
+		Source source = new Source();
+		source.setSrc(url);
+		source.setMimetype("video/mp4");
+		return source;
+	}
+
+	private static String getSuffix(String url) {
+		int i = url.lastIndexOf('.');
+		return i > 0? url.substring(i+1): null;
+	}
+
+}
diff --git a/src/main/java/org/olat/course/nodes/livestream/paella/PaellaMapper.java b/src/main/java/org/olat/course/nodes/livestream/paella/PaellaMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..9614911f0d29f19bf63ad1e59dd3f246897c26ef
--- /dev/null
+++ b/src/main/java/org/olat/course/nodes/livestream/paella/PaellaMapper.java
@@ -0,0 +1,142 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.nodes.livestream.paella;
+
+import java.nio.charset.StandardCharsets;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.logging.log4j.Logger;
+import org.olat.core.dispatcher.impl.StaticMediaDispatcher;
+import org.olat.core.dispatcher.mapper.Mapper;
+import org.olat.core.gui.media.MediaResource;
+import org.olat.core.gui.media.StringMediaResource;
+import org.olat.core.gui.render.StringOutput;
+import org.olat.core.logging.Tracing;
+import org.olat.core.util.StringHelper;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ * 
+ * based on https://github.com/polimediaupv/paella-opencast/blob/master/src/main/paella-opencast/ui/embed.html
+ * 
+ * Initial date: 11 Dec 2019<br>
+ * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
+ *
+ */
+public class PaellaMapper implements Mapper {
+
+	private static final Logger log = Tracing.createLoggerFor(PaellaMapper.class);
+	
+	private final ObjectMapper mapper = new ObjectMapper();
+	
+	private final Sources sources;
+	
+	public PaellaMapper(Sources sources) {
+		this.sources = sources;
+	}
+
+	@Override
+	public MediaResource handle(String relPath, HttpServletRequest request) {
+		StringMediaResource smr = new StringMediaResource();
+		
+		String encoding = StandardCharsets.ISO_8859_1.name();
+		String mimetype = "text/html;charset=" + StringHelper.check4xMacRoman(encoding);
+		smr.setContentType(mimetype);
+		smr.setEncoding(encoding);
+		
+		String content = createContent();
+		smr.setData(content);
+		return smr;
+	}
+	
+	private String createContent() {
+		StringOutput sb = new StringOutput();
+		sb.append("<!DOCTYPE html>");
+		sb.append("<html>");
+		sb.append("<head>");
+		sb.append("<meta http-equiv=\"Content-type\" content=\"text/html; charset=utf-8;\">");
+		sb.append("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">");
+		appendStaticJs(sb, "js/paella/player/javascript/swfobject.js");
+		appendStaticJs(sb, "js/paella/player/javascript/base.js");
+		appendStaticJs(sb, "js/paella/player/javascript/jquery.min.js");
+		appendStaticJs(sb, "js/paella/player/javascript/lunr.min.js");
+		appendStaticJs(sb, "js/paella/player/javascript/require.js");
+		appendStaticJs(sb, "js/paella/player/javascript/paella_player.js");
+		appendStaticCSS(sb, "js/paella/player/resources/bootstrap/css/bootstrap.min.css");
+		appendStaticCSS(sb, "js/paella/player/resources/style/style_dark.css");
+		sb.append("</head>");
+		sb.append("<body id=\"body\" onload=\"paella.load('playerContainer', {");
+		sb.append(" configUrl: '");
+		apendConfigUrl(sb);
+		sb.append("',");
+		sb.append(" data:");
+		sb.append("{");
+		
+		sb.append("'streams': [{");
+		sb.append("   'sources' : ");
+		sb.append(objectToJson(sources));
+		sb.append(",  'content': 'stream content'");
+		sb.append("}] ");
+		
+		sb.append("}");
+		sb.append("}");
+		sb.append(");\">");
+		sb.append("<div id=\"playerContainer\" style=\"display:block;width:100%\">");
+		sb.append("</div>");
+		sb.append("</body>");
+		sb.append("</html>");
+		
+		String html = sb.toString();
+		log.debug(html);
+		return html;
+	}
+	
+
+	private void apendConfigUrl(StringOutput sb) {
+		StaticMediaDispatcher.renderStaticURI(sb, "js/paella/openolat/config.json");
+	}
+
+	private void appendStaticJs(StringOutput sb, String javascript) {
+		sb.append("<script src=\"");
+		StaticMediaDispatcher.renderStaticURI(sb, javascript);
+		sb.append("\"></script>");
+	}
+
+	private void appendStaticCSS(StringOutput sb, String css) {
+		sb.append("<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\"  href=\"");
+		StaticMediaDispatcher.renderStaticURI(sb, css);
+		sb.append("\"></link>");
+	}
+	
+	private String objectToJson(Object o)  {
+		String json = null;
+		try {
+			json = mapper.writeValueAsString(o);
+		} catch (Exception e) {
+			json = "{}";
+		}
+		json = json.replace("\"", "'");
+		log.debug(json);
+		return json;
+	}
+
+}
diff --git a/src/main/java/org/olat/course/nodes/livestream/paella/Source.java b/src/main/java/org/olat/course/nodes/livestream/paella/Source.java
new file mode 100644
index 0000000000000000000000000000000000000000..1effed2f296bf5141697a2fafac8c4f8b2fc46a7
--- /dev/null
+++ b/src/main/java/org/olat/course/nodes/livestream/paella/Source.java
@@ -0,0 +1,49 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.nodes.livestream.paella;
+
+/**
+ * 
+ * Initial date: 13 Dec 2019<br>
+ * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
+ *
+ */
+public class Source {
+	
+	private String src;
+	private String mimetype;
+	
+	public String getSrc() {
+		return src;
+	}
+	
+	public void setSrc(String src) {
+		this.src = src;
+	}
+	
+	public String getMimetype() {
+		return mimetype;
+	}
+	
+	public void setMimetype(String mimetype) {
+		this.mimetype = mimetype;
+	}
+	
+}
diff --git a/src/main/java/org/olat/course/nodes/livestream/paella/Sources.java b/src/main/java/org/olat/course/nodes/livestream/paella/Sources.java
new file mode 100644
index 0000000000000000000000000000000000000000..de4a258ceb7857f724e9fb5b05db54986557070b
--- /dev/null
+++ b/src/main/java/org/olat/course/nodes/livestream/paella/Sources.java
@@ -0,0 +1,52 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.nodes.livestream.paella;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * 
+ * Initial date: 13 Dec 2019<br>
+ * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class Sources {
+	
+	private Source[] hls;
+	private Source[] mp4;
+
+	public Source[] getHls() {
+		return hls;
+	}
+
+	public void setHls(Source[] hls) {
+		this.hls = hls;
+	}
+
+	public Source[] getMp4() {
+		return mp4;
+	}
+
+	public void setMp4(Source[] mp4) {
+		this.mp4 = mp4;
+	}
+
+}
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamRunController.java b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamRunController.java
index 8201f61c623fc52dd6a00566f6056df56e85bf46..50c5d5c50ee74340e13cc4acf88186443316bfcd 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamRunController.java
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamRunController.java
@@ -108,7 +108,7 @@ public class LiveStreamRunController extends BasicController {
 			streamsCtrl = new LiveStreamsController(ureq, swControl, moduleConfiguration, calendars);
 			listenTo(streamsCtrl);
 		} else {
-			streamsCtrl.refreshData();
+			streamsCtrl.refreshData(ureq.getUserSession());
 			addToHistory(ureq, streamsCtrl);
 		}
 		segmentView.select(streamsLink);
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamVideoController.java b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamVideoController.java
index 2035525f2784f415d6cdd185e9af3c391d41572f..b8c1d4b8fac1a5536af9d797a29da506a026d862 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamVideoController.java
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamVideoController.java
@@ -19,19 +19,25 @@
  */
 package org.olat.course.nodes.livestream.ui;
 
-import org.apache.logging.log4j.Logger;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.olat.core.dispatcher.mapper.MapperService;
+import org.olat.core.dispatcher.mapper.manager.MapperKey;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
-import org.olat.core.gui.components.link.Link;
-import org.olat.core.gui.components.link.LinkFactory;
 import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
-import org.olat.core.logging.Tracing;
 import org.olat.core.util.CodeHelper;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.UserSession;
 import org.olat.course.nodes.livestream.LiveStreamEvent;
+import org.olat.course.nodes.livestream.paella.PaellaFactory;
+import org.olat.course.nodes.livestream.paella.PaellaMapper;
+import org.olat.course.nodes.livestream.paella.Sources;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * 
@@ -41,61 +47,51 @@ import org.olat.course.nodes.livestream.LiveStreamEvent;
  */
 public class LiveStreamVideoController extends BasicController {
 
-	private static final Logger log = Tracing.createLoggerFor(LiveStreamVideoController.class);
-	
 	private final VelocityContainer mainVC;
-	private Link retryLink;
 	
+	private final List<MapperKey> mappers = new ArrayList<>();
 	private String url;
-	private boolean error = false;
+	
+	@Autowired
+	private MapperService mapperService;
 
 	protected LiveStreamVideoController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
 		mainVC = createVelocityContainer("video");
-		updateUI();
+		updateUI(ureq.getUserSession());
 		putInitialPanel(mainVC);
 	}
 	
-	public void setEvent(LiveStreamEvent event) {
+	public void setEvent(UserSession usess, LiveStreamEvent event) {
 		String newUrl = event != null? event.getLiveStreamUrl(): null;
 		if (newUrl == null || !newUrl.equalsIgnoreCase(url)) {
 			url = newUrl;
-			error = Boolean.FALSE;
-			updateUI();
+			updateUI(usess);
 		}
 	}
 
-	private void updateUI() {
-		if (error) {
+	private void updateUI(UserSession usess) {
+		if (StringHelper.containsNonWhitespace(url)) {
+			mainVC.contextPut("id", CodeHelper.getRAMUniqueID());
+			Sources sources = PaellaFactory.createSources(url);
+			PaellaMapper paellaMapper = new PaellaMapper(sources);
+			MapperKey mapperKey = mapperService.register(usess, paellaMapper);
+			mappers.add(mapperKey);
+			String baseURI = mapperKey.getUrl();
+			mainVC.contextPut("baseURI", baseURI);
+		}	else {
 			mainVC.contextRemove("id");
-			mainVC.contextPut("error", error);
-			retryLink = LinkFactory.createButton("viewer.retry", mainVC, this);
-		} else {
-			mainVC.contextRemove("error");
-			if (StringHelper.containsNonWhitespace(url)) {
-				mainVC.contextPut("id", CodeHelper.getRAMUniqueID());
-				mainVC.contextPut("src", url);
-			} else {
-				mainVC.contextRemove("id");
-			}
 		}
 	}
 
 	@Override
 	protected void event(UserRequest ureq, Component source, Event event) {
-		if ("error".equals(event.getCommand())) {
-			log.debug("Error when open a video from {}", url);
-			error = true;
-			updateUI();
-		} else if (source == retryLink) {
-			error = false;
-			updateUI();
-		}
+		//
 	}
 
 	@Override
 	protected void doDispose() {
-		//
+		mapperService.cleanUp(mappers);
 	}
 
 }
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamViewerController.java b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamViewerController.java
index 208b8b35fe24048915f7f06eb39c839b3c8aa001..ee2b34e63faee8ed6f4b54bc10afb79b091610fd 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamViewerController.java
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamViewerController.java
@@ -25,6 +25,7 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
+import org.olat.core.util.UserSession;
 import org.olat.course.nodes.livestream.LiveStreamEvent;
 
 /**
@@ -54,8 +55,8 @@ public class LiveStreamViewerController extends BasicController {
 		putInitialPanel(mainVC);
 	}
 
-	public void setEvent(LiveStreamEvent event) {
-		videoCtrl.setEvent(event);
+	public void setEvent(UserSession usess, LiveStreamEvent event) {
+		videoCtrl.setEvent(usess, event);
 		metadataCtrl.setEvent(event);
 	}
 
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamViewersController.java b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamViewersController.java
index 720d16e996112e3c3a10a977a2cba7208d8bfcbe..63caafe9036f92d3e944739f7e7cd7ff9ba533b4 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamViewersController.java
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamViewersController.java
@@ -30,6 +30,7 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
+import org.olat.core.util.UserSession;
 import org.olat.course.nodes.LiveStreamCourseNode;
 import org.olat.course.nodes.cal.CourseCalendars;
 import org.olat.course.nodes.livestream.LiveStreamEvent;
@@ -129,12 +130,12 @@ public class LiveStreamViewersController extends BasicController {
 		mainVC.put("display9", displayCtrl9.getInitialComponent());
 		displayWrappers.add(new DisplayWrapper(displayCtrl9));
 		
-		refresh();
+		refresh(ureq.getUserSession());
 		
 		putInitialPanel(mainVC);
 	}
 	
-	void refresh() {
+	void refresh(UserSession usess) {
 		List<? extends LiveStreamEvent> events = liveStreamService.getRunningEvents(calendars, bufferBeforeMin, bufferAfterMin);
 		putNoLiveStreamToMainVC(events);
 		
@@ -144,8 +145,8 @@ public class LiveStreamViewersController extends BasicController {
 		// luck.
 		events = removeOverlappingWithSameUrl(events);
 		Collections.sort(events, (e1, e2) -> e1.getBegin().compareTo(e2.getBegin()));
-		displayStartedEvents(events);
-		removeEndedEvents(events);
+		displayStartedEvents(usess, events);
+		removeEndedEvents(usess, events);
 	}
 
 	private void putNoLiveStreamToMainVC(List<? extends LiveStreamEvent> events) {
@@ -203,13 +204,13 @@ public class LiveStreamViewersController extends BasicController {
 		return sameUrlEvents;
 	}
 
-	private void displayStartedEvents(List<? extends LiveStreamEvent> events) {
+	private void displayStartedEvents(UserSession usess, List<? extends LiveStreamEvent> events) {
 		for (LiveStreamEvent event: events) {
 			DisplayWrapper displayWrapper = getDisplayWrapper(event);
 			if (displayWrapper != null) {
-				updateEvent(displayWrapper, event);
+				updateEvent(usess, displayWrapper, event);
 			} else {
-				addToNextDisplay(event);
+				addToNextDisplay(usess, event);
 			}
 		}
 	}
@@ -223,10 +224,10 @@ public class LiveStreamViewersController extends BasicController {
 		return null;
 	}
 
-	private void addToNextDisplay(LiveStreamEvent event) {
+	private void addToNextDisplay(UserSession usess, LiveStreamEvent event) {
 		DisplayWrapper nextDisplay = getNextFreeDisplay();
 		if (nextDisplay != null ) {
-			updateEvent(nextDisplay, event);
+			updateEvent(usess, nextDisplay, event);
 		}
 	}
 
@@ -242,11 +243,11 @@ public class LiveStreamViewersController extends BasicController {
 		return nextDisplay;
 	}
 
-	private void removeEndedEvents(List<? extends LiveStreamEvent> events) {
+	private void removeEndedEvents(UserSession usess, List<? extends LiveStreamEvent> events) {
 		for (DisplayWrapper displayWrapper : displayWrappers) {
 			LiveStreamEvent wrappedEvent = displayWrapper.getEvent();
 			if (hasEnded(wrappedEvent, events)) {
-				updateEvent(displayWrapper, null);
+				updateEvent(usess, displayWrapper, null);
 			}
 		}
 	}
@@ -262,9 +263,9 @@ public class LiveStreamViewersController extends BasicController {
 		return true;
 	}
 
-	private void updateEvent(DisplayWrapper displayWrapper, LiveStreamEvent event) {
+	private void updateEvent(UserSession usess, DisplayWrapper displayWrapper, LiveStreamEvent event) {
 		displayWrapper.setEvent(event);
-		displayWrapper.getController().setEvent(event);
+		displayWrapper.getController().setEvent(usess, event);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamsController.java b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamsController.java
index 10cb78966db345435bc84971281ee3ed582052a2..58ea48fa2531222ca346604541c9a9f381455815 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamsController.java
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/LiveStreamsController.java
@@ -31,6 +31,7 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.logging.Tracing;
+import org.olat.core.util.UserSession;
 import org.olat.course.nodes.cal.CourseCalendars;
 import org.olat.modules.ModuleConfiguration;
 
@@ -65,14 +66,14 @@ public class LiveStreamsController extends BasicController {
 		mainVC.put("list", listCtrl.getInitialComponent());
 		
 		scheduler = Executors.newScheduledThreadPool(1);
-		scheduler.scheduleAtFixedRate(new RefreshTask(), 10, 10, TimeUnit.SECONDS);
+		scheduler.scheduleAtFixedRate(new RefreshTask(ureq.getUserSession()), 10, 10, TimeUnit.SECONDS);
 
 		putInitialPanel(mainVC);
 	}
 
-	public synchronized void refreshData() {
+	public synchronized void refreshData(UserSession usess) {
 		log.debug("Refresh live stream data of " + getIdentity());
-		viewersCtrl.refresh();
+		viewersCtrl.refresh(usess);
 		listCtrl.refreshData();
 	}
 
@@ -88,9 +89,16 @@ public class LiveStreamsController extends BasicController {
 
 	private final class RefreshTask implements Runnable {
 
+		private final UserSession usess;
+
+		public RefreshTask(UserSession usess) {
+			this.usess = usess;
+			
+		}
+
 		@Override
 		public void run() {
-			refreshData();
+			refreshData(usess);
 		}
 
 	}
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/_content/video.html b/src/main/java/org/olat/course/nodes/livestream/ui/_content/video.html
index e036d985ddcd909078e8864e045305354c8b3ae2..ae4fdd3a2b299d4d151dc7f4c4d93ed031d0e5c0 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/_content/video.html
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/_content/video.html
@@ -1,18 +1,8 @@
-#if($r.isNotNull($error))
-	<div class="o_instruction">
-		$r.translate("viewer.error.stream")
-		<div class="o_button_group">
-			$r.render("viewer.retry")
-		</div>
-	</div>
-#elseif($r.isNotNull($id))
-	<div>
-		## height / width does not matter, because the size is streched responsive.
-		<p><span id="o_livestream_${id}" class="olatFlashMovieViewer" style="display:block;border:solid 1px #000;">
-			<script>
-				var errorCallback_$id = function(mediaElement, originalNode, player) {$r.openJavaScriptCommand("error"));};
-				BPlayer.insertPlayer("$src","o_livestream_${id}",400,'100%',0,0,"video",undefined,true,true,false, null, errorCallback_$id);
-			</script>
-		</span></p>
+#if($r.isNotNull($id))
+<div class="o_paella_wrapper">
+	<div class="o_instruction o_paella_error">
+		$r.translate("viewer.error.browser")
 	</div>
+	<iframe id="${id}" allowfullscreen="true" src="${baseURI}" frameborder="0" />
+</div>
 #end
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_de.properties
index 25922b4bdd680739b92cf90ba6a40f9ac212a7e2..ae3522b212ff3374573997254ee42e349f178015 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_de.properties
@@ -1,7 +1,7 @@
 admin.buffer.before.min=$:\config.buffer.before.min
 admin.buffer.after.min=$:\config.buffer.after.min
 admin.default.values.title=Initialwerte
-admin.default.values.desc=Hier k\u00f6nnen Sie die Initialwerte eines neuen Kursbausteines konfigurieren.
+admin.default.values.desc=Hier k\u00F6nnen Sie die Initialwerte eines neuen Kursbausteines konfigurieren.
 admin.coach.edit=$:\config.coach.edit
 admin.general.title=$:\admin.menu.title
 admin.menu.title=Livestream
@@ -20,7 +20,7 @@ peekview.no.streams=Es sind keine Livestreams geplant.
 peekview.open.live=Livestream anzeigen
 peekview.open.upcoming=Alle anzeigen
 peekview.title.live=Jetzt live: {0}
-peekview.title.upcoming=Demn\u00e4chst: {0}
+peekview.title.upcoming=Demn\u00E4chst: {0}
 run.edit.events=Termine bearbeiten
 run.streams=Live Streams
 table.empty=Es sind keine Livestreams anstehend.
@@ -29,6 +29,5 @@ table.header.description=$org.olat.commons.calendar\:cal.form.description
 table.header.end=$org.olat.commons.calendar\:cal.form.end
 table.header.location=$org.olat.commons.calendar\:cal.form.location
 table.header.subject=$org.olat.commons.calendar\:cal.form.subject
-viewer.error.stream=Der Livestream kann nicht angezeigt werden. Vermutlich wird der Livestream noch nicht ausgestrahlt.
+viewer.error.browser=Der Livestream kann in diesem Browser nicht angezeigt werden. Bitte verwenden Sie einen anderen Browser.
 viewer.no.stream=Aktuell wird kein Livestream ausgestrahlt.
-viewer.retry=Erneut starten
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_en.properties
index 75ab5aa3dcb00c125743427edafbc20d8ad27e60..7abc980a66c2e262ddc8623489dac954302caada 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_en.properties
@@ -29,6 +29,5 @@ table.header.description=$org.olat.commons.calendar\:cal.form.description
 table.header.end=$org.olat.commons.calendar\:cal.form.end
 table.header.location=$org.olat.commons.calendar\:cal.form.location
 table.header.subject=$org.olat.commons.calendar\:cal.form.subject
-viewer.error.stream=It is not possible to show the live stream. Probably is the live stream not broadcasted yet.
+viewer.error.browser=The livestream cannot be displayed in this browser. Please use a different browser.
 viewer.no.stream=Currently no live stream is broadcasted.
-viewer.retry=Try again
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_fr.properties
index 485d5ec9645763f05024865d39a4168633f4e3ed..4a8301971f6588f748dc38b3a7ea4c32e7c2524a 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_fr.properties
@@ -30,6 +30,4 @@ table.header.description=$org.olat.commons.calendar\:cal.form.description
 table.header.end=$org.olat.commons.calendar\:cal.form.end
 table.header.location=$org.olat.commons.calendar\:cal.form.location
 table.header.subject=$org.olat.commons.calendar\:cal.form.subject
-viewer.error.stream=Il n'est pas possible d'afficher la vid\u00E9o. La diffusion en direct n'a probablement pas encore commenc\u00E9.
 viewer.no.stream=Pas de diffusion pour l'instant.
-viewer.retry=Essayer \u00E0 nouveau
diff --git a/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_pt_BR.properties
index ca4dca335ec7db5cef4b98bd0961f8d0cfbca583..c8d4bced76dee354a1b9ca60b96d5d55f3c6fa71 100644
--- a/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/nodes/livestream/ui/_i18n/LocalStrings_pt_BR.properties
@@ -30,6 +30,4 @@ table.header.description=$org.olat.commons.calendar\:cal.form.description
 table.header.end=$org.olat.commons.calendar\:cal.form.end
 table.header.location=$org.olat.commons.calendar\:cal.form.location
 table.header.subject=$org.olat.commons.calendar\:cal.form.subject
-viewer.error.stream=N\u00E3o \u00E9 poss\u00EDvel mostrar a transmiss\u00E3o ao vivo. Provavelmente a transmiss\u00E3o n\u00E3o come\u00E7ou ainda.
 viewer.no.stream=Atualmente, nenhuma transmiss\u00E3o ao vivo est\u00E1 sendo transmitida.
-viewer.retry=Tente novamente
diff --git a/src/main/webapp/static/js/paella/README b/src/main/webapp/static/js/paella/README
new file mode 100644
index 0000000000000000000000000000000000000000..b6982fc90e57c1058ca914bc2ca99fcf60d23a50
--- /dev/null
+++ b/src/main/webapp/static/js/paella/README
@@ -0,0 +1,8 @@
+Paella Player
+=============
+
+Used in live stream course element to display multiple streams in one movie panel.
+
+Version: 6.3.1
+https://github.com/polimediaupv/paella
+https://paellaplayer.upv.es/
diff --git a/src/main/webapp/static/js/paella/openolat/config.json b/src/main/webapp/static/js/paella/openolat/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..f6452d3f19aa9b8e4c55ff522262c672286dd708
--- /dev/null
+++ b/src/main/webapp/static/js/paella/openolat/config.json
@@ -0,0 +1,151 @@
+{
+  "player":{
+    "accessControlClass":"paella.AccessControl",
+        "profileFrameStrategy": "paella.ProfileFrameStrategy",
+    "videoQualityStrategy": "paella.LimitedBestFitVideoQualityStrategy",
+    "videoQualityStrategyParams":{ "maxAutoQualityRes":720 },
+    "reloadOnFullscreen": true,
+    "videoZoom": {
+      "enabled":false,
+      "max":800
+    },
+
+    "deprecated-methods":[{"name":"streaming","enabled":true},
+           {"name":"html","enabled":true},
+           {"name":"flash","enabled":true},
+                   {"name":"image","enabled":true}],
+
+    "methods":[
+      { "factory":"ChromaVideoFactory", "enabled":true },
+      { "factory":"WebmVideoFactory", "enabled":true },
+      { "factory":"Html5VideoFactory", "enabled":true },
+      { "factory":"MpegDashVideoFactory", "enabled":true },
+      {
+        "factory":"HLSVideoFactory",
+        "enabled":true,
+        "config": {
+          "*** You can add more hls.js settings here": "",
+          "https://github.com/video-dev/hls.js/blob/master/docs/API.md": "",
+          "maxBufferLength": 30,
+				  "maxMaxBufferLength": 600,
+				  "maxBufferSize": 60000000,
+				  "maxBufferHole": 0.5,
+				  "lowBufferWatchdogPeriod": 0.5,
+          "highBufferWatchdogPeriod": 3
+        },
+        "iOSMaxStreams": 2,
+        "androidMaxStreams": 2
+      },
+      { "factory":"RTMPVideoFactory", "enabled":true },
+      { "factory":"ImageVideoFactory", "enabled":true },
+      { "factory":"YoutubeVideoFactory", "enabled":true },
+      { "factory":"Video360ThetaFactory", "enabled":true },
+      { "factory":"Video360Factory", "enabled":true }
+    ],
+    "audioMethods":[
+      { "factory":"MultiformatAudioFactory", "enabled":true }
+    ],
+    "defaultAudioTag": "",
+    "slidesMarks":{
+      "enabled":true,
+      "color":"gray"
+    }
+  },
+  "defaultProfile":"presenter_presentation",
+  "data":{
+    "enabled":true,
+    "dataDelegates":{
+      "trimming":"CookieDataDelegate",
+      "metadata":"VideoManifestMetadataDataDelegate",
+      "cameraTrack":"TrackCameraDataDelegate"
+    }
+  },
+  "folders": {
+    "profiles": "config/profiles",
+    "resources": "resources",
+    "skins": "resources/style"
+  },
+  "experimental":{
+    "autoplay":true
+  },
+  "plugins":{
+    "enablePluginsByDefault": false,
+
+    "//**** Instructions: Disable any individual plugin by setting its enable property to false": {"enabled": false},
+    "//**** For a list of available plugins and configuration, go to": "https://github.com/polimediaupv/paella/blob/master/doc/plugins.md",
+    "list":{
+      "//******* Button plugins": "",
+      "edu.harvard.dce.paella.flexSkipPlugin": {"enabled":true, "direction": "Rewind", "seconds": 10, "minWindowSize": 510 },
+      "edu.harvard.dce.paella.flexSkipForwardPlugin": {"enabled":true, "direction": "Forward", "seconds": 30},
+      "es.upv.paella.captionsPlugin": {"enabled":true, "searchOnCaptions":true},
+      "es.upv.paella.frameControlPlugin":  {"enabled": true, "showFullPreview": "auto", "showCaptions":true, "minWindowSize": 450 },
+      "es.upv.paella.fullScreenButtonPlugin": {"enabled":true, "reloadOnFullscreen":{ "enabled":true, "keepUserSelection":true }},
+      "es.upv.paella.multipleQualitiesPlugin": {"enabled":true, "showWidthRes":true, "minWindowSize": 550 },
+      "es.upv.paella.playPauseButtonPlugin": {"enabled":true},
+      "es.upv.paella.themeChooserPlugin":  {"enabled":true, "minWindowSize": 600},
+      "es.upv.paella.viewModePlugin": { "enabled": true, "minWindowSize": 300 },
+      "es.upv.paella.volumeRangePlugin":{"enabled":true, "showMasterVolume": true, "showSlaveVolume": false },
+      "es.upv.paella.pipModePlugin": { "enabled":true },
+      "es.upv.paella.audioSelector": { "enabled":true, "minWindowSize": 400 },
+      "es.upv.paella.airPlayPlugin": { "enabled":true },
+
+      "//***** Video Overlay Button Plugins": "",
+      "es.upv.paella.liveStreamingIndicatorPlugin":  { "enabled": true },
+      "es.upv.paella.showEditorPlugin":{"enabled":true,"alwaysVisible":true},
+      "es.upv.paella.arrowSlidesNavigatorPlugin": {"enabled": true, "content":["presentation","presenter"] },
+      "es.upv.paella.videoDataPlugin": {
+        "enabled": true,
+        "excludeLocations":[
+          "paellaplayer.upv.es"
+        ],
+        "excludeParentLocations":[
+          "localhost:8000"
+        ]
+      },
+
+      "//**** Event Driven Plugins": "",
+      "es.upv.paella.blackBoardPlugin": {"enabled": true},
+      "es.upv.paella.breaksPlayerPlugin": {"enabled": true},
+      "es.upv.paella.overlayCaptionsPlugin": {"enabled": true},
+      "es.upv.paella.playButtonOnScreenPlugin": {"enabled":true},
+      "es.upv.paella.translecture.captionsPlugin": {"enabled":true},
+      "es.upv.paella.trimmingPlayerPlugin": {"enabled":true},
+      "es.upv.paella.windowTitlePlugin": {"enabled": true},
+
+      "//**** Video profile plugins": "",
+      "es.upv.paella.singleStreamProfilePlugin": {
+          "enabled": true,
+          "videoSets": [
+            { "icon":"professor_icon.svg", "id":"presenter", "content":["presenter"]},
+            { "icon":"slide_icon.svg", "id":"presentation", "content":["presentation"]}
+          ]
+
+      },
+      "es.upv.paella.dualStreamProfilePlugin": { "enabled":true,
+        "videoSets": [
+          { "icon":"slide_professor_icon.svg", "id":"presenter_presentation", "content":["presenter","presentation"] },
+          { "icon":"slide_professor_icon.svg", "id":"presenter2_presentation", "content":["presenter-2","presentation"] },
+          { "icon":"slide_professor_icon.svg", "id":"presenter3_presentation", "content":["presenter-3","presentation"] }
+        ]
+      },
+      "es.upv.paella.tripleStreamProfilePlugin": {
+        "enabled": true,
+        "videoSets": [
+          { "icon":"three_streams_icon.svg", "id":"presenter_presentation_presenter2", "content":["presenter","presentation","presenter-2"] },
+          { "icon":"three_streams_icon.svg", "id":"presenter_presentation_presenter3", "content":["presenter","presentation","presenter-3"] }
+        ]
+      }
+    }
+  },
+  "standalone" : {
+    "repository": "../repository/"
+  },
+  "skin": {
+    "available": [
+      "dark",
+      "dark_small",
+      "light",
+      "light_small"
+    ]
+  }
+}
diff --git a/src/main/webapp/static/js/paella/player/config/config.json b/src/main/webapp/static/js/paella/player/config/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..699c54da148e0ca9f4aa682699581224f1bf8832
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/config/config.json
@@ -0,0 +1,201 @@
+{
+  "player":{
+    "accessControlClass":"paella.AccessControl",
+        "profileFrameStrategy": "paella.ProfileFrameStrategy",
+    "videoQualityStrategy": "paella.LimitedBestFitVideoQualityStrategy",
+    "videoQualityStrategyParams":{ "maxAutoQualityRes":720 },
+    "reloadOnFullscreen": true,
+    "videoZoom": {
+      "enabled":true,
+      "max":800
+    },
+
+    "deprecated-methods":[{"name":"streaming","enabled":true},
+           {"name":"html","enabled":true},
+           {"name":"flash","enabled":true},
+                   {"name":"image","enabled":true}],
+
+    "methods":[
+      { "factory":"ChromaVideoFactory", "enabled":true },
+      { "factory":"WebmVideoFactory", "enabled":true },
+      { "factory":"Html5VideoFactory", "enabled":true },
+      { "factory":"MpegDashVideoFactory", "enabled":true },
+      {
+        "factory":"HLSVideoFactory",
+        "enabled":true,
+        "config": {
+          "*** You can add more hls.js settings here": "",
+          "https://github.com/video-dev/hls.js/blob/master/docs/API.md": "",
+          "maxBufferLength": 30,
+				  "maxMaxBufferLength": 600,
+				  "maxBufferSize": 60000000,
+				  "maxBufferHole": 0.5,
+				  "lowBufferWatchdogPeriod": 0.5,
+          "highBufferWatchdogPeriod": 3
+        },
+        "iOSMaxStreams": 2,
+        "androidMaxStreams": 2
+      },
+      { "factory":"RTMPVideoFactory", "enabled":true },
+      { "factory":"ImageVideoFactory", "enabled":true },
+      { "factory":"YoutubeVideoFactory", "enabled":true },
+      { "factory":"Video360ThetaFactory", "enabled":true },
+      { "factory":"Video360Factory", "enabled":true }
+    ],
+    "audioMethods":[
+      { "factory":"MultiformatAudioFactory", "enabled":true }
+    ],
+    "defaultAudioTag": "",
+    "slidesMarks":{
+      "enabled":true,
+      "color":"gray"
+    }
+  },
+  "defaultProfile":"presenter_presentation",
+  "data":{
+    "enabled":true,
+    "dataDelegates":{
+      "trimming":"CookieDataDelegate",
+      "metadata":"VideoManifestMetadataDataDelegate",
+      "cameraTrack":"TrackCameraDataDelegate"
+    }
+  },
+  "folders": {
+    "profiles": "config/profiles",
+    "resources": "resources",
+    "skins": "resources/style"
+  },
+  "experimental":{
+    "autoplay":true
+  },
+  "plugins":{
+    "enablePluginsByDefault": false,
+
+    "//**** Instructions: Disable any individual plugin by setting its enable property to false": {"enabled": false},
+    "//**** For a list of available plugins and configuration, go to": "https://github.com/polimediaupv/paella/blob/master/doc/plugins.md",
+    "list":{
+      "//******* Button plugins": "",
+      "edu.harvard.dce.paella.flexSkipPlugin": {"enabled":true, "direction": "Rewind", "seconds": 10, "minWindowSize": 510 },
+      "edu.harvard.dce.paella.flexSkipForwardPlugin": {"enabled":true, "direction": "Forward", "seconds": 30},
+      "es.upv.paella.captionsPlugin": {"enabled":true, "searchOnCaptions":true},
+      "es.upv.paella.extendedTabAdapterPlugin": {"enabled":true, "minWindowSize": 400},
+      "es.upv.paella.footprintsPlugin": {"enabled":false},
+      "es.upv.paella.frameControlPlugin":  {"enabled": true, "showFullPreview": "auto", "showCaptions":true, "minWindowSize": 450 },
+      "es.upv.paella.fullScreenButtonPlugin": {"enabled":true, "reloadOnFullscreen":{ "enabled":true, "keepUserSelection":true }},
+      "es.upv.paella.helpPlugin": {"enabled":true, "langs":["en","es"], "minWindowSize": 650 },
+      "es.upv.paella.multipleQualitiesPlugin": {"enabled":true, "showWidthRes":true, "minWindowSize": 550 },
+      "es.upv.paella.playbackRatePlugin": {"enabled":true, "availableRates": [0.75, 1, 1.25, 1.5], "minWindowSize": 500 },
+      "es.upv.paella.playPauseButtonPlugin": {"enabled":true},
+      "es.upv.paella.searchPlugin": {"enabled":true, "sortType":"time", "colorSearch":false, "minWindowSize": 550},
+      "es.upv.paella.socialPlugin": {"enabled":true, "minWindowSize": 600},
+      "es.upv.paella.themeChooserPlugin":  {"enabled":true, "minWindowSize": 600},
+      "es.upv.paella.viewModePlugin": { "enabled": true, "minWindowSize": 300 },
+      "es.upv.paella.volumeRangePlugin":{"enabled":true, "showMasterVolume": true, "showSlaveVolume": false },
+      "es.upv.paella.pipModePlugin": { "enabled":true },
+      "es.upv.paella.ratePlugin": { "enabled":true, "minWindowSize": 500 },
+      "es.upv.paella.videoZoomPlugin": { "enabled":true },
+      "es.upv.paella.audioSelector": { "enabled":true, "minWindowSize": 400 },
+      "es.upv.paella.videoZoomToolbarPlugin": { "enabled":false, "targetStreamIndex":0, "minWindowSize": 500 },
+      "es.upv.paella.videoZoomTrack4kPlugin": { "enabled":true, "targetStreamIndex":0, "autoModeByDefault":false, "minWindowSize": 500 },
+      "es.upv.paella.airPlayPlugin": { "enabled":true },
+
+      "//***** Video Overlay Button Plugins": "",
+      "es.upv.paella.liveStreamingIndicatorPlugin":  { "enabled": true },
+      "es.upv.paella.showEditorPlugin":{"enabled":true,"alwaysVisible":true},
+      "es.upv.paella.arrowSlidesNavigatorPlugin": {"enabled": true, "content":["presentation","presenter"] },
+      "es.upv.paella.videoDataPlugin": {
+        "enabled": true,
+        "excludeLocations":[
+          "paellaplayer.upv.es"
+        ],
+        "excludeParentLocations":[
+          "localhost:8000"
+        ]
+      },
+      "es.upv.paella.legalPlugin": {
+		"enabled": true,
+		    "label": "Legal info",
+		    "position": "right",
+        "legalUrl": "https://en.wikipedia.org/wiki/General_Data_Protection_Regulation"
+      },
+
+      "//***** TabBar Plugins": "",
+      "es.upv.paella.commentsPlugin": {"enabled": false},
+      "es.upv.paella.test.tabBarExamplePlugin": {"enabled": false},
+
+      "//**** Event Driven Plugins": "",
+      "es.upv.paella.blackBoardPlugin": {"enabled": true},
+      "es.upv.paella.breaksPlayerPlugin": {"enabled": true},
+      "es.upv.paella.overlayCaptionsPlugin": {"enabled": true},
+      "es.upv.paella.playButtonOnScreenPlugin": {"enabled":true},
+      "es.upv.paella.translecture.captionsPlugin": {"enabled":true},
+      "es.upv.paella.trimmingPlayerPlugin": {"enabled":true},
+      "es.upv.paella.windowTitlePlugin": {"enabled": true},
+      "es.upv.paella.track4kPlugin": { "enabled":false },
+      "es.upv.paella.relatedVideosPlugin": { "enabled":true },
+
+      "//**** Video profile plugins": "",
+      "es.upv.paella.singleStreamProfilePlugin": {
+          "enabled": true,
+          "videoSets": [
+            { "icon":"professor_icon.svg", "id":"presenter", "content":["presenter"]},
+            { "icon":"slide_icon.svg", "id":"presentation", "content":["presentation"]}
+          ]
+
+      },
+      "es.upv.paella.dualStreamProfilePlugin": { "enabled":true,
+        "videoSets": [
+          { "icon":"slide_professor_icon.svg", "id":"presenter_presentation", "content":["presenter","presentation"] },
+          { "icon":"slide_professor_icon.svg", "id":"presenter2_presentation", "content":["presenter-2","presentation"] },
+          { "icon":"slide_professor_icon.svg", "id":"presenter3_presentation", "content":["presenter-3","presentation"] }
+        ]
+      },
+      "es.upv.paella.tripleStreamProfilePlugin": {
+        "enabled": true,
+        "videoSets": [
+          { "icon":"three_streams_icon.svg", "id":"presenter_presentation_presenter2", "content":["presenter","presentation","presenter-2"] },
+          { "icon":"three_streams_icon.svg", "id":"presenter_presentation_presenter3", "content":["presenter","presentation","presenter-3"] }
+        ]
+      },
+
+      "//****  Captions Parser Plugins": "",
+      "es.upv.paella.captions.DFXPParserPlugin": {"enabled":true},
+      "es.teltek.paella.captions.WebVTTParserPlugin": {"enabled":true},
+
+      "//****  Search Service Plugins": "",
+      "es.upv.paella.search.captionsSearchPlugin": {"enabled":true},
+      "es.upv.paella.frameCaptionsSearchPlugin": {"enabled":true},
+
+      "//****  User Tracking Saver Plugins": "",
+      "es.upv.paella.usertracking.elasticsearchSaverPlugin": { "enabled": false, "url": "http://my.elastic.server"},
+      "es.upv.paella.usertracking.GoogleAnalyticsSaverPlugin": { "enabled": false, "trackingID": "UA-XXXXXXXX-Y" },
+      "es.upv.paella.usertracking.piwikSaverPlugIn": { "enabled": false, "tracker":"http://localhost/piwik/", "siteId": "1" },
+      "org.opencast.usertracking.MatomoSaverPlugIn": {
+        "enabled": false,
+        "server": "http://localhost/piwik/",
+        "site_id": 1,
+        "heartbeat": 30,
+        "client_id": "Paella Player"
+      },
+      "org.opencast.usertracking.x5gonSaverPlugIn": {
+        "enabled": false,
+        "token": "X5GON_TOKEN",
+        "testing_environment" : false
+      },
+      "es.teltek.paella.usertracking.xAPISaverPlugin": {"enabled": false, "endpoint":"http://localhost:8081/data/xAPI/", "auth":"auth_key"},
+      "//*****  Keyboard plugins": "",
+      "es.upv.paella.defaultKeysPlugin": {"enabled": true }
+    }
+  },
+  "standalone" : {
+    "repository": "../repository/"
+  },
+  "skin": {
+    "available": [
+      "dark",
+      "dark_small",
+      "light",
+      "light_small"
+    ]
+  }
+}
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/profiles.json b/src/main/webapp/static/js/paella/player/config/profiles/profiles.json
new file mode 100644
index 0000000000000000000000000000000000000000..45435fb5a9a67221485352d4f4fa125c8915b213
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/config/profiles/profiles.json
@@ -0,0 +1,195 @@
+{
+	"s_p_blackboard2":{
+		"name":{"es":"Pizarra"},
+		"hidden":false,
+		"icon":"slide_professor_icon.png",
+		"slaveVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"10","top":"70","width":"432","height":"243"}],"visible":"true","layer":"1"},
+		"masterVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"16/9","left":"450","top":"135","width":"816","height":"459"}],"visible":"true","layer":"1"},
+		"blackBoardImages":{"left":"10","top":"325","width":"432","height":"324"},
+		"background":{"content":"slide_professor_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}]
+	},
+	"slide_professor":{
+		"name":{"es":"Presentación y presentador"},
+		"hidden":false,
+		"icon":"slide_professor_icon.png",
+		"masterVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"712","top":"302","width":"560","height":"315"},
+			{"aspectRatio":"16/10","left":"712","top":"267","width":"560","height":"350"},
+			{"aspectRatio":"4/3","left":"712","top":"198","width":"560","height":"420"},
+			{"aspectRatio":"5/3","left":"712","top":"281","width":"560","height":"336"},
+			{"aspectRatio":"5/4","left":"712","top":"169","width":"560","height":"448"}],"visible":"true","layer":"1"},
+		"slaveVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"16/9","left":"10","top":"225","width":"695","height":"390"},
+			{"aspectRatio":"16/10","left":"10","top":"183","width":"695","height":"434"},
+			{"aspectRatio":"4/3","left":"10","top":"96","width":"695","height":"521"},
+			{"aspectRatio":"5/3","left":"10","top":"200","width":"695","height":"417"},
+			{"aspectRatio":"5/4","left":"10","top":"62","width":"695","height":"556"}],"visible":"true","layer":"1"},
+		"background":{"content":"slide_professor_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}]
+	},
+	"professor_slide":{
+		"name":{"es":"Presentador y presentación"},
+		"hidden":false,
+		"icon":"professor_slide_icon.png",
+		"masterVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"10","top":"225","width":"695","height":"390"},
+			{"aspectRatio":"16/10","left":"10","top":"183","width":"695","height":"434"},
+			{"aspectRatio":"4/3","left":"10","top":"96","width":"695","height":"521"},
+			{"aspectRatio":"5/3","left":"10","top":"200","width":"695","height":"417"},
+			{"aspectRatio":"5/4","left":"10","top":"62","width":"695","height":"556"}],"visible":"true","layer":"1"},
+		"slaveVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"16/9","left":"712","top":"302","width":"560","height":"315"},
+			{"aspectRatio":"16/10","left":"712","top":"267","width":"560","height":"350"},
+			{"aspectRatio":"4/3","left":"712","top":"198","width":"560","height":"420"},
+			{"aspectRatio":"5/3","left":"712","top":"281","width":"560","height":"336"},
+			{"aspectRatio":"5/4","left":"712","top":"169","width":"560","height":"448"}],"visible":"true","layer":"1"},
+		"background":{"content":"slide_professor_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}]
+		},
+	"professor":{
+		"name":{"es":"Solo profesor"},
+		"hidden":false,
+		"icon":"professor_icon.png",
+		"masterVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"0","top":"0","width":"1280","height":"720"},
+			{"aspectRatio":"16/10","left":"64","top":"0","width":"1152","height":"720"},
+			{"aspectRatio":"5/3","left":"40","top":"0","width":"1200","height":"720"},
+			{"aspectRatio":"5/4","left":"190","top":"0","width":"900","height":"720"},
+			{"aspectRatio":"4/3","left":"160","top":"0","width":"960","height":"720"}],"visible":"true","layer":"1"},
+		"slaveVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"4/3","left":"0","top":"0","width":"300","height":"300"}],"visible":"false","layer":"1"},
+		"background":{"content":"default_background_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}],
+		"isMonostream":true
+	},
+	"slide":{
+		"name":{"es":"Solo presentación"},
+		"hidden":false,
+		"icon":"slide_icon.png",
+		"masterVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"0","top":"0","width":"320","height":"190"}],"visible":"false","layer":"1"},
+		"slaveVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"16/9","left":"0","top":"0","width":"1280","height":"720"},
+			{"aspectRatio":"16/10","left":"64","top":"0","width":"1152","height":"720"},
+			{"aspectRatio":"5/3","left":"40","top":"0","width":"1200","height":"720"},
+			{"aspectRatio":"5/4","left":"190","top":"0","width":"900","height":"720"},
+			{"aspectRatio":"4/3","left":"160","top":"0","width":"960","height":"720"}],"visible":"true","layer":"1"},
+		"background":{"content":"default_background_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}],
+		"isMonostream":true
+	},
+	"slide_over_professor":{
+		"name":{"es":"Presentación sobre profesor"},
+		"hidden":false,
+		"icon":"slide_over_professor_icon.png",
+		"masterVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"0","top":"0","width":"1280","height":"720"},
+			{"aspectRatio":"16/10","left":"64","top":"0","width":"1152","height":"720"},
+			{"aspectRatio":"5/3","left":"40","top":"0","width":"1200","height":"720"},
+			{"aspectRatio":"5/4","left":"190","top":"0","width":"900","height":"720"},
+			{"aspectRatio":"4/3","left":"160","top":"0","width":"960","height":"720"}],"visible":"true","layer":"1"},
+		"slaveVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"16/9","left":"50","top":"470","width":"350","height":"197"},
+			{"aspectRatio":"16/10","left":"50","top":"448","width":"350","height":"219"},
+			{"aspectRatio":"5/3","left":"50","top":"457","width":"350","height":"210"},
+			{"aspectRatio":"5/4","left":"50","top":"387","width":"350","height":"280"},
+			{"aspectRatio":"4/3","left":"50","top":"404","width":"350","height":"262"}],"visible":"true","layer":"1"},
+		"background":{"content":"default_background_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}]
+	},
+	"slide_over_professor_right":{
+		"name":{"es":"Presentación a la derecha, sobre profesor"},
+		"hidden":false,
+		"icon":"slide_over_professor_right_icon.png",
+		"masterVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"0","top":"0","width":"1280","height":"720"},
+			{"aspectRatio":"16/10","left":"64","top":"0","width":"1152","height":"720"},
+			{"aspectRatio":"5/3","left":"40","top":"0","width":"1200","height":"720"},
+			{"aspectRatio":"5/4","left":"190","top":"0","width":"900","height":"720"},
+			{"aspectRatio":"4/3","left":"160","top":"0","width":"960","height":"720"}],"visible":"true","layer":"1"},
+		"slaveVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"16/9","left":"910","top":"470","width":"350","height":"197"},
+			{"aspectRatio":"16/10","left":"910","top":"448","width":"350","height":"219"},
+			{"aspectRatio":"5/3","left":"910","top":"457","width":"350","height":"210"},
+			{"aspectRatio":"5/4","left":"910","top":"387","width":"350","height":"280"},
+			{"aspectRatio":"4/3","left":"910","top":"404","width":"350","height":"262"}],"visible":"true","layer":"1"},
+		"background":{"content":"default_background_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}]
+	},
+	"professor_over_slide":{
+		"name":{"es":"Profesor sobre presentación"},
+		"hidden":false,
+		"icon":"slide_over_professor_icon.png",
+		"masterVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"16/9","left":"50","top":"470","width":"350","height":"197"},
+			{"aspectRatio":"16/10","left":"50","top":"448","width":"350","height":"219"},
+			{"aspectRatio":"5/3","left":"50","top":"457","width":"350","height":"210"},
+			{"aspectRatio":"5/4","left":"50","top":"387","width":"350","height":"280"},
+			{"aspectRatio":"4/3","left":"50","top":"404","width":"350","height":"262"}],"visible":"true","layer":"2"},
+		"slaveVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"0","top":"0","width":"1280","height":"720"},
+			{"aspectRatio":"16/10","left":"64","top":"0","width":"1152","height":"720"},
+			{"aspectRatio":"5/3","left":"40","top":"0","width":"1200","height":"720"},
+			{"aspectRatio":"5/4","left":"190","top":"0","width":"900","height":"720"},
+			{"aspectRatio":"4/3","left":"160","top":"0","width":"960","height":"720"}],"visible":"true","layer":"1"},
+		"background":{"content":"default_background_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}]
+	},
+	"professor_over_slide_right":{
+		"name":{"es":"Profesor a la derecha, sobre presentación"},
+		"hidden":false,
+		"icon":"slide_over_professor_right_icon.png",
+		"masterVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"16/9","left":"910","top":"470","width":"350","height":"197"},
+			{"aspectRatio":"16/10","left":"910","top":"448","width":"350","height":"219"},
+			{"aspectRatio":"5/3","left":"910","top":"457","width":"350","height":"210"},
+			{"aspectRatio":"5/4","left":"910","top":"387","width":"350","height":"280"},
+			{"aspectRatio":"4/3","left":"910","top":"404","width":"350","height":"262"}],"visible":"true","layer":"2"},
+		"slaveVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"0","top":"0","width":"1280","height":"720"},
+			{"aspectRatio":"16/10","left":"64","top":"0","width":"1152","height":"720"},
+			{"aspectRatio":"5/3","left":"40","top":"0","width":"1200","height":"720"},
+			{"aspectRatio":"5/4","left":"190","top":"0","width":"900","height":"720"},
+			{"aspectRatio":"4/3","left":"160","top":"0","width":"960","height":"720"}],"visible":"true","layer":"1"},
+		"background":{"content":"default_background_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}]
+	},
+	"blank_professor":{
+		"name":{"es":"Nada y presentador"},
+		"hidden":true,
+		"icon":"slide_professor_icon.png",
+		"masterVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"712","top":"302","width":"560","height":"315"},
+			{"aspectRatio":"16/10","left":"712","top":"267","width":"560","height":"350"},
+			{"aspectRatio":"4/3","left":"712","top":"198","width":"560","height":"420"},
+			{"aspectRatio":"5/3","left":"712","top":"281","width":"560","height":"336"},
+			{"aspectRatio":"5/4","left":"712","top":"169","width":"560","height":"448"}],"visible":"true","layer":"1"},
+		"slaveVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"4/3","left":"0","top":"0","width":"300","height":"300"}],"visible":"false","layer":"1"},
+		"background":{"content":"slide_professor_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"false","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}],
+		"isMonostream":true
+	},
+	"chroma":{
+		"name":{"es":"Polimedia"},
+		"hidden":false,
+		"icon":"slide_icon.png",
+		"masterVideo":{"content":"presenter","rect":[
+			{"aspectRatio":"16/9","left":"0","top":"0","width":"1280","height":"720"},
+			{"aspectRatio":"16/10","left":"64","top":"0","width":"1152","height":"720"},
+			{"aspectRatio":"5/3","left":"40","top":"0","width":"1200","height":"720"},
+			{"aspectRatio":"5/4","left":"190","top":"0","width":"900","height":"720"},
+			{"aspectRatio":"4/3","left":"160","top":"0","width":"960","height":"720"}],"visible":"true","layer":"1"},
+		"slaveVideo":{"content":"presentation","rect":[
+			{"aspectRatio":"16/9","left":"0","top":"0","width":"1280","height":"720"},
+			{"aspectRatio":"16/10","left":"64","top":"0","width":"1152","height":"720"},
+			{"aspectRatio":"5/3","left":"40","top":"0","width":"1200","height":"720"},
+			{"aspectRatio":"5/4","left":"190","top":"0","width":"900","height":"720"},
+			{"aspectRatio":"4/3","left":"160","top":"0","width":"960","height":"720"}],"visible":"true","layer":"0"},
+		"background":{"content":"default_background_paella.jpg","zIndex":5,"rect":{"left":"0","top":"0","width":"1280","height":"720"},"visible":"true","layer":"0"},
+		"logos":[{"content":"paella_logo.png","zIndex":5,"rect":{"top":"10","left":"10","width":"49","height":"42"}}]
+	}
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/resources/default_background.jpg b/src/main/webapp/static/js/paella/player/config/profiles/resources/default_background.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7bb8c19933662de96b89eed218849222a73b4237
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/config/profiles/resources/default_background.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/resources/default_background_paella.jpg b/src/main/webapp/static/js/paella/player/config/profiles/resources/default_background_paella.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ef5f20f725889cb38b37b8e48ae63d8c88c05f1
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/config/profiles/resources/default_background_paella.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/resources/logo.png b/src/main/webapp/static/js/paella/player/config/profiles/resources/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed155f37afaf7be0d4b9259f13bff8d8e51d3f94
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/config/profiles/resources/logo.png differ
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/resources/paella_logo.png b/src/main/webapp/static/js/paella/player/config/profiles/resources/paella_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..9abb99d8c2e57bcd6d0aac7ea374233c22dc71b1
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/config/profiles/resources/paella_logo.png differ
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/resources/paella_logo_old.png b/src/main/webapp/static/js/paella/player/config/profiles/resources/paella_logo_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..de2727678a3a7b36babf8be323777bbfaf9e16bf
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/config/profiles/resources/paella_logo_old.png differ
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/resources/professor_slide.jpg b/src/main/webapp/static/js/paella/player/config/profiles/resources/professor_slide.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c2ccd471f44e2de39f46e5d6b8eac48823592ea9
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/config/profiles/resources/professor_slide.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/resources/professor_slide_paella.jpg b/src/main/webapp/static/js/paella/player/config/profiles/resources/professor_slide_paella.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2d97008a9b51463de8432eb8eac17b3824ffb158
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/config/profiles/resources/professor_slide_paella.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/resources/slide_professor.jpg b/src/main/webapp/static/js/paella/player/config/profiles/resources/slide_professor.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7bb8c19933662de96b89eed218849222a73b4237
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/config/profiles/resources/slide_professor.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/config/profiles/resources/slide_professor_paella.jpg b/src/main/webapp/static/js/paella/player/config/profiles/resources/slide_professor_paella.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7484910f897ea7e9a9e70343f495eec10002ee06
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/config/profiles/resources/slide_professor_paella.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/example.html b/src/main/webapp/static/js/paella/player/example.html
new file mode 100644
index 0000000000000000000000000000000000000000..85a3610ff3c270ecb360dac4eb173ab459d4ce96
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/example.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta http-equiv="Content-type" content="text/html; charset=utf-8;">
+		<meta http-equiv="X-UA-Compatible" content="IE=edge">
+		<title>Paella Engage Example</title>
+		<script type="text/javascript" src="javascript/swfobject.js"></script>
+		<script type="text/javascript" src="javascript/base.js"></script>
+		<script type="text/javascript" src="javascript/jquery.min.js"></script>
+		<script type="text/javascript" src="javascript/require.js"></script>
+		<script type="text/javascript" src="javascript/traceur-runtime.min.js"></script>
+		<script type="text/javascript" src="javascript/paella_player.js"></script>
+
+		<script type="text/javascript" src="resources/bootstrap/js/bootstrap.min.js"></script>
+		<link rel="stylesheet" href="resources/style/style.css" type="text/css" media="screen" charset="utf-8">
+		<link rel="stylesheet" href="resources/bootstrap/css/bootstrap.slate.min.css" type="text/css" media="screen" charset="utf-8">
+		<script type="text/javascript" src="example.js"></script>
+	</head>
+	<body id="body" onload="loadPaella('playerContainer');">
+		<div id="playerContainer" style="display:block;width:100%">
+		</div>
+	</body>
+</html>
diff --git a/src/main/webapp/static/js/paella/player/index-custom.html b/src/main/webapp/static/js/paella/player/index-custom.html
new file mode 100644
index 0000000000000000000000000000000000000000..ed8aa05fe65a48a2af9870dd4113c8c75a1ba2fc
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/index-custom.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta http-equiv="Content-type" content="text/html; charset=utf-8;">
+		<meta http-equiv="X-UA-Compatible" content="IE=edge">
+		<meta name = "viewport" content = "user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width">
+		<title>Paella Engage Example</title>
+		<script type="text/javascript" src="javascript/polyfill.min.js"></script>
+		<script type="text/javascript" src="javascript/swfobject.js"></script>
+		<script type="text/javascript" src="javascript/base.js"></script>
+		<script type="text/javascript" src="javascript/jquery.min.js"></script>
+		<script type="text/javascript" src="javascript/lunr.min.js"></script>
+		<script type="text/javascript" src="javascript/require.js"></script>
+		<script type="text/javascript" src="javascript/paella_player.js"></script>
+
+		<link rel="stylesheet" href="resources/bootstrap/css/bootstrap.min.css" type="text/css" media="screen" charset="utf-8">
+		
+		<script>
+
+            function doLoad() {
+                paella.load('playerContainer',{
+                    config:null,    // You can put here your configuration file
+                
+                    // Custom configuration load: this function is called only if the
+                    // previous parameter is null or undefined
+                    loadConfig: function(defaultConfigUrl) {
+                        return new Promise((resolve) => {
+                            base.ajax.get({ url:defaultConfigUrl }, (data,type,returnCode) => {
+                                resolve(data);
+                            })
+                        });
+                    },
+
+                    // paella.player.repoUrl
+                    url:'../repository/',
+
+                    // paella.player.videoUrl
+                    videoUrl:function () {
+                        return paella.player.repoUrl + paella.player.videoId + '/';
+                    },
+
+                    // paella.player.dataUrl
+                    dataUrl:function () {
+                        return paella.player.videoUrl + 'data.json'
+                    },
+
+                    loadVideo: function() {
+                        return new Promise((resolve) => {
+                            let url = paella.player.dataUrl;
+                            base.ajax.get({ url:url },
+                                function(data,type,err) {
+                                    if (typeof(data)=="string") {
+                                        try {
+                                            data = JSON.parse(data);
+                                        }
+                                        catch(e) {}
+                                    }
+                                    resolve(data);
+                                }
+                            );
+                        })
+                    }
+                })
+            }
+		</script>
+	</head>
+    <body id="body" onload="doLoad()">
+		<div id="playerContainer" style="display:block;width:100%">
+		</div>
+	</body>
+</html>
diff --git a/src/main/webapp/static/js/paella/player/index-debug.html b/src/main/webapp/static/js/paella/player/index-debug.html
new file mode 100644
index 0000000000000000000000000000000000000000..848e5f0105e8c1599ad56ce61129385cf9aafa23
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/index-debug.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta http-equiv="Content-type" content="text/html; charset=utf-8;">
+        <title>Paella Engage Example</title>
+        <script type="text/javascript" src="javascript/polyfill.min.js"></script>
+        <script type="text/javascript" src="build/player/javascript/jquery.min.js"></script>
+        <script>
+            try {
+                $ = jQuery = module.exports;
+            } catch(e) {}
+        </script>
+		<script type="text/javascript" src="build/player/javascript/base.js"></script>
+		<script type="text/javascript" src="build/player/javascript/lunr.min.js"></script>
+        <script type="text/javascript" src="build/player/javascript/require.js"></script>
+        
+		<script type="text/javascript" src="paella-debug.js"></script>
+
+        <link rel="stylesheet" href="build/player/resources/bootstrap/css/bootstrap.min.css" type="text/css" media="screen" charset="utf-8">
+        
+        <style>
+            .paella-debug-tools {
+                position: fixed;
+                left: 0px;
+                top: 0px;
+                z-index: 1000000;
+            }
+        </style>
+	</head>
+    <body id="body" onload="loadPaellaDebug('playerContainer',{ url:'repository_test/repository/', configUrl:'build/player/config/config.json', dictionaryUrl:'build/player/localization/paella' })">
+		<div id="playerContainer" style="display:block;width:100%">
+        </div>
+
+        <div class="paella-debug-tools">
+            <select id="videoSelector">
+            </select>
+
+        </div>
+	</body>
+</html>
diff --git a/src/main/webapp/static/js/paella/player/index.html b/src/main/webapp/static/js/paella/player/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..d3fb7d4c17bb49a22fb37f7ceb3ebd5555bd54ce
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/index.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta http-equiv="Content-type" content="text/html; charset=utf-8;">
+		<meta http-equiv="X-UA-Compatible" content="IE=edge">
+		<meta name = "viewport" content = "user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width">
+		<title>Paella Engage Example</title>
+		<!--- Include this file to support Internet Explorer
+		<script type="text/javascript" src="javascript/polyfill.min.js"></script>
+		-->
+		<script type="text/javascript" src="javascript/swfobject.js"></script>
+		<script type="text/javascript" src="javascript/base.js"></script>
+		<script type="text/javascript" src="javascript/jquery.min.js"></script>
+		<script type="text/javascript" src="javascript/lunr.min.js"></script>
+		<script type="text/javascript" src="javascript/require.js"></script>
+		<script type="text/javascript" src="javascript/paella_player_es2015.js"></script>
+		<!-- Include this file, instead paella_player_es2015, to support Internet Explorer
+			<script type="text/javascript" src="javascript/paella_player.js"></script>
+		-->
+
+		<link rel="stylesheet" href="resources/bootstrap/css/bootstrap.min.css" type="text/css" media="screen" charset="utf-8">
+	</head>
+    <body id="body" onload="paella.lazyLoad('playerContainer',{});">
+		<div id="playerContainer" style="display:block;width:100%">
+		</div>
+	</body>
+</html>
diff --git a/src/main/webapp/static/js/paella/player/javascript/base.js b/src/main/webapp/static/js/paella/player/javascript/base.js
new file mode 100644
index 0000000000000000000000000000000000000000..e335a024f6e512cb84565eb7fedbdb8fcda8e6b4
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/javascript/base.js
@@ -0,0 +1,1334 @@
+/* base.js: some utility functions to complement jQuery library
+	Copyright (c) 2012 Fernando Serrano Carpena
+	fernando@vitaminew.com
+	http://www.vitaminew.com/basejs
+*/
+
+/*
+  Part 1:
+  Class, version 2.7
+  Copyright (c) 2006, 2007, 2008, Alex Arnell <alex@twologic.com>
+
+  Redistribution and use in source and binary forms, with or without modification, are
+  permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice, this list
+	of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright notice, this
+	list of conditions and the following disclaimer in the documentation and/or other
+	materials provided with the distribution.
+  * Neither the name of typicalnoise.com nor the names of its contributors may be
+	used to endorse or promote products derived from this software without specific prior
+	written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+/*
+	Class definition improved by Fernando Serrano Carpena to support C++ typed dynamic casting.
+	// Default method, defined by Alex Arnell:
+	var MyClass = Class.extend.apply(parent,{ class definition })
+
+	// New method:
+	Class.create("MyClass",parent,{ class definition })
+
+	// Improvements
+	// 	- automatic namespace creation:
+	Class.create("myns.MyClass",myns.Parent, { class definition })
+
+	//	- Dynamic casting:
+	var instance = dynamic_cast("myns.MyClass",anObject);
+
+	// You can also use:
+	var MyClass = Class.create({ class definition })
+	// or
+	var MyClass = Class.create(parent, { class definition })
+*/
+
+var ClassBase = (function() {
+  var __extending = {};
+
+  return {
+	extend: function(parent, def) {
+	  if (arguments.length == 1) { def = parent; parent = null; }
+	  var func = function() {
+		if (arguments[0] ==  __extending) { return; }
+		if (!this.initialize) {
+			this.initialize = function() {}
+		}
+		this.initialize.apply(this, arguments);
+	  };
+	  if (typeof(parent) == 'function') {
+		func.prototype = new parent( __extending);
+	  }
+	  var mixins = [];
+	  if (def && def.include) {
+		if (def.include.reverse) {
+		  // methods defined in later mixins should override prior
+		  mixins = mixins.concat(def.include.reverse());
+		} else {
+		  mixins.push(def.include);
+		}
+		delete def.include; // clean syntax sugar
+	  }
+	  if (def) ClassBase.inherit(func.prototype, def);
+	  for (var i = 0; (mixin = mixins[i]); i++) {
+		ClassBase.mixin(func.prototype, mixin);
+	  }
+	  return func;
+	},
+	mixin: function (dest, src, clobber) {
+	  clobber = clobber || false;
+	  if (typeof(src) != 'undefined' && src !== null) {
+		for (var prop in src) {
+		  if (clobber || (!dest[prop] && typeof(src[prop]) == 'function')) {
+			dest[prop] = src[prop];
+		  }
+		}
+	  }
+	  return dest;
+	},
+	inherit: function(dest, src, fname) {
+	  if (arguments.length == 3) {
+		var ancestor = dest[fname], descendent = src[fname], method = descendent;
+		descendent = function() {
+		  var ref = this.parent; this.parent = ancestor;
+		  var result = method.apply(this, arguments);
+		  ref ? this.parent = ref : delete this.parent;
+		  return result;
+		};
+		// mask the underlying method
+		descendent.valueOf = function() { return method; };
+		descendent.toString = function() { return method.toString(); };
+		dest[fname] = descendent;
+	  } else {
+		for (var prop in src) {
+		  if (dest[prop] && typeof(src[prop]) == 'function') {
+			ClassBase.inherit(dest, src, prop);
+		  } else {
+			dest[prop] = src[prop];
+		  }
+		}
+	  }
+	  return dest;
+	},
+	singleton: function() {
+	  var args = arguments;
+	  if (args.length == 2 && args[0].getInstance) {
+		var klass = args[0].getInstance(__extending);
+		// we're extending a singleton swap it out for it's class
+		if (klass) { args[0] = klass; }
+	  }
+
+	  return (function(args){
+		// store instance and class in private variables
+		var instance = false;
+		var klass = ClassBase.extend.apply(args.callee, args);
+		return {
+		  getInstance: function () {
+			if (arguments[0] == __extending) return klass;
+			if (instance) return instance;
+			return (instance = new klass());
+		  }
+		};
+	  })(args);
+	}
+  };
+})();
+
+// New method
+ClassBase.create = function() {
+  return ClassBase.extend.apply(this, arguments);
+};
+
+function Class_createNamespace(nsAndClass) {
+	var nsArray = nsAndClass.split(".");
+	nsArray.pop();	// Remove the class name
+	var ns = null;
+	if (nsArray.length>0) {
+		for (var i=0;i<nsArray.length;++i) {
+			var name = nsArray[i];
+			if (ns) {
+				if (ns[name]==undefined) {
+					ns[name] = {}
+					ns = ns[name];
+				}
+				else {
+					ns = ns[name];
+				}
+			}
+			else {
+				if (window[name]==undefined) {
+					window[name] = {}
+					ns = window[name];
+				}
+				else {
+					ns = window[name];
+				}
+			}
+		}
+	}
+
+	if (ns) {
+		return ns;
+	}
+	else {
+		return window;
+	}
+}
+
+function Class_getClassName(nsAndClass) {
+	return nsAndClass.split(".").pop();
+}
+
+function Class(a,b,c) {
+	if (typeof(a)=='object' && !b) {
+		return ClassBase.create(a);
+	}
+	else if (typeof(a)=='function' && typeof(b)=='object' && !c) {
+		return ClassBase.create(a,b);
+	}
+	else if (typeof(a)=='string' && typeof(b)=='object' && !c) {
+		// a es el nombre de la clase con su NS, y b es la definición
+		var ns = Class_createNamespace(a);
+		var cn = Class_getClassName(a);
+		b[a] = true;
+		ns[cn] = ClassBase.create(b);
+		return ns[cn];
+	}
+	else if (typeof(a)=='string' && typeof(b)=='function' && typeof(c)=='object') {
+		// a es el nombre de la clase con su NS, b es el padre y c es la definición
+		var ns = Class_createNamespace(a);
+		var cn = Class_getClassName(a);
+		c[a] = true;
+		ns[cn] = ClassBase.create(b,c);
+		return ns[cn];
+	}
+}
+
+Class.create = function() {
+	return ClassBase.extend.apply(this, arguments);
+}
+
+function dynamic_cast(type,object) {
+	return (object && object[type]) ? object:null;
+}
+
+Class.fromString = function(str) {
+  var arr = str.split(".");
+
+  var fn = (window || this);
+  for (var i = 0, len = arr.length; i < len; i++) {
+    fn = fn[arr[i]];
+  }
+
+  if (typeof fn !== "function") {
+    throw new Error("function not found");
+  }
+
+  return fn;
+};
+
+
+/* Part 2: javascript extension */
+Array.prototype.contains = function(obj) {
+	var i = this.length;
+	while (i--) {
+		if (this[i] == obj) {
+			return true;
+		}
+	}
+	return false;
+}
+
+Array.prototype.remove = function(from, to) {
+  var rest = this.slice((to || from) + 1 || this.length);
+  this.length = from < 0 ? this.length + from : from;
+  return this.push.apply(this, rest);
+};
+
+String.prototype.trim = function () {
+	return this.replace(/^\s*/, "").replace(/\s*$/, "");
+}
+
+/* Part 3: base.js library */
+var base = {};
+
+Class ("base.UserAgent",{
+	system:{},
+	browser:{},
+
+	// ie11: "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko"
+	// ie10:
+
+	initialize:function(userAgentString) {
+		if (!userAgentString) {
+			userAgentString = navigator.userAgent;
+		}
+		this.parseOperatingSystem(userAgentString);
+		this.parseBrowser(userAgentString);
+	},
+
+	parseOperatingSystem:function(userAgentString) {
+		this.system.MacOS = /Macintosh/.test(userAgentString);
+		this.system.Windows = /Windows/.test(userAgentString);
+		this.system.iPhone = /iPhone/.test(userAgentString);
+		this.system.iPodTouch = /iPod/.test(userAgentString);
+		this.system.iPad = /iPad/.test(userAgentString);
+		this.system.iOS = this.system.iPhone || this.system.iPad || this.system.iPodTouch;
+		this.system.Android = /Android/.test(userAgentString);
+		this.system.Linux = (this.system.Android) ? false:/Linux/.test(userAgentString);
+
+		if (this.system.MacOS) {
+			this.system.OSName = "Mac OS X";
+			this.parseMacOSVersion(userAgentString);
+		}
+		else if (this.system.Windows) {
+			this.system.OSName = "Windows";
+			this.parseWindowsVersion(userAgentString);
+		}
+		else if (this.system.Linux) {
+			this.system.OSName = "Linux";
+			this.parseLinuxVersion(userAgentString);
+		}
+		else if (this.system.iOS) {
+			this.system.OSName = "iOS";
+			this.parseIOSVersion(userAgentString);
+		}
+		else if (this.system.Android) {
+			this.system.OSName = "Android";
+			this.parseAndroidVersion(userAgentString);
+		}
+	},
+
+	parseBrowser:function(userAgentString) {
+		// Safari: Version/X.X.X Safari/XXX
+		// Chrome: Chrome/XX.X.XX.XX Safari/XXX
+		// Opera: Opera/X.XX
+		// Firefox: Gecko/XXXXXX Firefox/XX.XX.XX
+		// Explorer: MSIE X.X
+		this.browser.Version = {};
+		this.browser.Safari = /Version\/([\d\.]+) Safari\//.test(userAgentString);
+		if (this.browser.Safari) {
+			this.browser.Name = "Safari";
+			this.browser.Vendor = "Apple";
+			this.browser.Version.versionString = RegExp.$1;
+		}
+
+		this.browser.Chrome = /Chrome\/([\d\.]+) Safari\//.test(userAgentString) ||
+							  /Chrome\/([\d\.]+) Electron\//.test(userAgentString);
+		if (this.browser.Chrome) {
+			this.browser.Name = "Chrome";
+			this.browser.Vendor = "Google";
+			this.browser.Version.versionString = RegExp.$1;
+		}
+
+		this.browser.Opera = /Opera\/[\d\.]+/.test(userAgentString);
+		if (this.browser.Opera) {
+			this.browser.Name = "Opera";
+			this.browser.Vendor = "Opera Software";
+			var versionString = /Version\/([\d\.]+)/.test(userAgentString);
+			this.browser.Version.versionString = RegExp.$1;
+		}
+
+		this.browser.Firefox = /Gecko\/[\d\.]+ Firefox\/([\d\.]+)/.test(userAgentString);
+		if (this.browser.Firefox) {
+			this.browser.Name = "Firefox";
+			this.browser.Vendor = "Mozilla Foundation";
+			this.browser.Version.versionString = RegExp.$1;
+		}
+
+		this.browser.Edge = /Edge\/(.*)/.test(userAgentString);
+		if (this.browser.Edge) {
+			var result = /Edge\/(.*)/.exec(userAgentString);
+			this.browser.Name = "Edge";
+			this.browser.Chrome = false;
+			this.browser.Vendor = "Microsoft";
+			this.browser.Version.versionString = result[1];
+		} 
+
+		this.browser.Explorer = /MSIE ([\d\.]+)/.test(userAgentString);
+		if (!this.browser.Explorer) {
+			var re = /\Mozilla\/5.0 \(([^)]+)\) like Gecko/
+			var matches = re.exec(userAgentString);
+			if (matches) {
+				re = /rv:(.*)/
+				var version = re.exec(matches[1]);
+				this.browser.Explorer = true;
+				this.browser.Name = "Internet Explorer";
+				this.browser.Vendor = "Microsoft";
+				if (version) {
+					this.browser.Version.versionString = version[1];
+				}
+				else {
+					this.browser.Version.versionString = "unknown";
+				}
+			}
+		}
+		else {
+			this.browser.Name = "Internet Explorer";
+			this.browser.Vendor = "Microsoft";
+			this.browser.Version.versionString = RegExp.$1;
+		}
+
+		if (this.system.iOS) {
+			this.browser.IsMobileVersion = true;
+			this.browser.MobileSafari = /Version\/([\d\.]+) Mobile/.test(userAgentString);
+			if (this.browser.MobileSafari) {
+				this.browser.Name = "Mobile Safari";
+				this.browser.Vendor = "Apple";
+				this.browser.Version.versionString = RegExp.$1;
+			}
+			this.browser.Android = false;
+		}
+		else if (this.system.Android) {
+			this.browser.IsMobileVersion = true;
+			this.browser.Android = /Version\/([\d\.]+) Mobile/.test(userAgentString);
+			if (this.browser.MobileSafari) {
+				this.browser.Name = "Android Browser";
+				this.browser.Vendor = "Google";
+				this.browser.Version.versionString = RegExp.$1;
+			}
+			else {
+				this.browser.Chrome = /Chrome\/([\d\.]+)/.test(userAgentString);
+				this.browser.Name = "Chrome";
+				this.browser.Vendor = "Google";
+				this.browser.Version.versionString = RegExp.$1;
+			}
+
+			this.browser.Safari = false;
+		}
+		else {
+			this.browser.IsMobileVersion = false;
+		}
+
+		this.parseBrowserVersion(userAgentString);
+	},
+
+	parseBrowserVersion:function(userAgentString) {
+		if (/([\d]+)\.([\d]+)\.*([\d]*)/.test(this.browser.Version.versionString)) {
+			this.browser.Version.major = Number(RegExp.$1);
+			this.browser.Version.minor = Number(RegExp.$2);
+			this.browser.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+		}
+	},
+
+	parseMacOSVersion:function(userAgentString) {
+		var versionString = (/Mac OS X (\d+_\d+_*\d*)/.test(userAgentString)) ? RegExp.$1:'';
+		this.system.Version = {};
+		// Safari/Chrome
+		if (versionString!='') {
+			if (/(\d+)_(\d+)_*(\d*)/.test(versionString)) {
+				this.system.Version.major = Number(RegExp.$1);
+				this.system.Version.minor = Number(RegExp.$2);
+				this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+			}
+		}
+		// Firefox/Opera
+		else {
+			versionString = (/Mac OS X (\d+\.\d+\.*\d*)/.test(userAgentString)) ? RegExp.$1:'Unknown';
+			if (/(\d+)\.(\d+)\.*(\d*)/.test(versionString)) {
+				this.system.Version.major = Number(RegExp.$1);
+				this.system.Version.minor = Number(RegExp.$2);
+				this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+			}
+		}
+		if (!this.system.Version.major) {
+			this.system.Version.major = 0;
+			this.system.Version.minor = 0;
+			this.system.Version.revision = 0;
+		}
+		this.system.Version.stringValue = this.system.Version.major + '.' + this.system.Version.minor + '.' + this.system.Version.revision;
+		switch (this.system.Version.minor) {
+			case 0:
+				this.system.Version.name = "Cheetah";
+				break;
+			case 1:
+				this.system.Version.name = "Puma";
+				break;
+			case 2:
+				this.system.Version.name = "Jaguar";
+				break;
+			case 3:
+				this.system.Version.name = "Panther";
+				break;
+			case 4:
+				this.system.Version.name = "Tiger";
+				break;
+			case 5:
+				this.system.Version.name = "Leopard";
+				break;
+			case 6:
+				this.system.Version.name = "Snow Leopard";
+				break;
+			case 7:
+				this.system.Version.name = "Lion";
+				break;
+			case 8:
+				this.system.Version.name = "Mountain Lion";
+				break;
+		}
+	},
+
+	parseWindowsVersion:function(userAgentString) {
+		this.system.Version = {};
+		if (/NT (\d+)\.(\d*)/.test(userAgentString)) {
+			this.system.Version.major = Number(RegExp.$1);
+			this.system.Version.minor = Number(RegExp.$2);
+			this.system.Version.revision = 0;	// Solo por compatibilidad
+			this.system.Version.stringValue = "NT " + this.system.Version.major + "." + this.system.Version.minor;
+			var major = this.system.Version.major;
+			var minor = this.system.Version.minor;
+			var name = 'undefined';
+			if (major==5) {
+				if (minor==0) this.system.Version.name = '2000';
+				else this.system.Version.name = 'XP';
+			}
+			else if (major==6) {
+				if (minor==0) this.system.Version.name = 'Vista';
+				else if (minor==1) this.system.Version.name = '7';
+				else if (minor==2) this.system.Version.name = '8';
+			}
+		}
+		else {
+			this.system.Version.major = 0;
+			this.system.Version.minor = 0;
+			this.system.Version.name = "Unknown";
+			this.system.Version.stringValue = "Unknown";
+		}
+	},
+
+	parseLinuxVersion:function(userAgentString) {
+		// Muchos navegadores no proporcionan información sobre la distribución de linux... no se puede hacer mucho más que esto
+		this.system.Version = {};
+		this.system.Version.major = 0;
+		this.system.Version.minor = 0;
+		this.system.Version.revision = 0;
+		this.system.Version.name = "";
+		this.system.Version.stringValue = "Unknown distribution";
+	},
+
+	parseIOSVersion:function(userAgentString) {
+		this.system.Version = {};
+		if (/iPhone OS (\d+)_(\d+)_*(\d*)/i.test(userAgentString) || /iPad; CPU OS (\d+)_(\d+)_*(\d*)/i.test(userAgentString)) {
+			this.system.Version.major = Number(RegExp.$1);
+			this.system.Version.minor = Number(RegExp.$2);
+			this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+			this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
+			this.system.Version.name = "iOS";
+		}
+		else {
+			this.system.Version.major = 0;
+			this.system.Version.minor = 0;
+			this.system.Version.name = "Unknown";
+			this.system.Version.stringValue = "Unknown";
+		}
+	},
+
+	parseAndroidVersion:function(userAgentString) {
+		this.system.Version = {};
+		if (/Android (\d+)\.(\d+)\.*(\d*)/.test(userAgentString)) {
+			this.system.Version.major = Number(RegExp.$1);
+			this.system.Version.minor = Number(RegExp.$2);
+			this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+			this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
+		}
+		else {
+			this.system.Version.major = 0;
+			this.system.Version.minor = 0;
+			this.system.Version.revision = 0;
+		}
+		if (/Build\/([a-zA-Z]+)/.test(userAgentString)) {
+			this.system.Version.name = RegExp.$1;
+		}
+		else {
+			this.system.Version.name = "Unknown version";
+		}
+		this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
+	},
+
+	getInfoString:function() {
+		return navigator.userAgent;
+	}
+});
+
+base.userAgent = new base.UserAgent();
+
+Class ("base.TimerManager", {
+	timerArray:new Array(),
+	lastId:0,
+
+	setupTimer:function(timer,time) {
+		this.lastId++;
+		timer.timerId = this.lastId;
+		timer.timeout = time;
+		this.timerArray[this.lastId] = timer;
+		timer.jsTimerId = setTimeout("timerManager.executeTimerCallback(" + this.lastId + ")",time);
+	},
+
+	executeTimerCallback:function(timerId) {
+		var timer = this.timerArray[timerId];
+		if (timer && timer.callback) {
+			timer.callback(timer,timer.params);
+		}
+		if (timer.repeat) {
+			timer.jsTimerId = setTimeout("timerManager.executeTimerCallback(" + timer.timerId + ")",timer.timeout);
+		}
+	}
+});
+
+base.timerManager = new base.TimerManager();
+
+Class ("base.Timer",{
+	timerId:0,
+	callback:null,
+	params:null,
+	jsTimerId:0,
+	repeat:false,
+	timeout:0,
+
+	initialize:function(callback,time,params) {
+		this.callback = callback;
+		this.params = params;
+		base.timerManager.setupTimer(this,time);
+	},
+
+	cancel:function() {
+		clearTimeout(this.jsTimerId);
+	}
+});
+
+// Deprecated
+var TimerManager = base.TimerManager
+var timerManager = base.timerManager
+var Timer = base.Timer;
+
+base.Timer.sleep = function(milliseconds) {
+  var start = new Date().getTime();
+  for (var i = 0; i < 1e7; i++) {
+	if ((new Date().getTime() - start) > milliseconds){
+	  break;
+	}
+  }
+}
+
+base.cookies = {
+	set:function(name,value) {
+		document.cookie = name + "=" + value;
+	},
+
+	get:function(name) {
+		var i,x,y,ARRcookies=document.cookie.split(";");
+		for (i=0;i<ARRcookies.length;i++) {
+			x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
+			y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
+			x=x.replace(/^\s+|\s+$/g,"");
+			if (x==name) {
+				return unescape(y);
+			}
+		}
+	}
+};
+
+base.hashParams = {
+	extractUrl:function() {
+		var urlOnly = window.location.href;
+		if (urlOnly.lastIndexOf('#')>=0) {
+			urlOnly = urlOnly.substr(0,urlOnly.lastIndexOf('#'));
+		}
+		return urlOnly;
+	},
+
+	extractParams:function() {
+		var params = window.location.href;
+		if (params.lastIndexOf('#')>=0) {
+			params = params.substr(window.location.href.lastIndexOf('#'));
+		}
+		else {
+			params = "";
+		}
+		return params;
+	},
+
+	clear:function() {
+		window.location.href = this.extractUrl() + '#';
+	},
+
+	unset:function(key) {
+		var url = location.href;
+		var lastIndex = url.lastIndexOf('#');
+		var urlOnly = this.extractUrl();
+		if (lastIndex>=0 && lastIndex+1<url.length) {
+			var newParams = "";
+			var params = url.substr(url.lastIndexOf('#')+1);
+			params = params.split('&');
+			for (var i=0;i<params.length;++i) {
+				var current = params[i];
+				var keyValue = current.split('=');
+				if ((keyValue.length>=2 && keyValue[0]!=key) || keyValue.length<2) {
+					if (newParams=="") newParams += '#';
+					else newParams += "&";
+					newParams += current;
+				}
+			}
+			if (newParams=="") newParams = "#";
+			location.href = urlOnly + newParams;
+		}
+	},
+
+	set:function(key,value) {
+		if (key && value) {
+			this.unset(key);
+			var url = this.extractUrl();
+			var params = this.extractParams();
+			var result = url;
+			if (params.length==0) {
+				result += '#' + key + '=' + value;
+			}
+			else if (params.length==1) {
+				result +=  params + key + '=' + value;
+			}
+			else {
+				result +=  params + "&" + key + '=' + value;
+			}
+			location.href = result;
+		}
+	},
+
+	get:function(key) {
+		var url = location.href;
+		var index = url.indexOf("#");
+		if (index==-1) return "";
+		index = url.indexOf(key,index) + key.length;
+		if (url.charAt(index)=="=") {
+			var result = url.indexOf("&",index);
+			if (result==-1) {
+				result = url.length;
+			}
+			return url.substring(index + 1, result);
+		}
+		return "";
+	}
+}
+
+base.parameters = {
+    list:null,
+
+	parse:function() {
+		if (!this.list) {
+			var url = window.location.href;
+			this.list = {};
+			
+			if (/(http|https|file)?:\/\/([a-z0-9.\-_\/\~:]*\?)([a-z0-9.\/\-_\%\=\&]*)\#*/i.test(url)) {
+				var params = RegExp.$3;
+				var paramArray = params.split('&');
+				this.list = {};
+				for (var i=0; i<paramArray.length;++i) {
+					var keyValue = paramArray[i].split('=');
+					var key = keyValue[0];
+					var value = keyValue.length==2 ? keyValue[1]:'';
+					this.list[key] = value;
+				}
+			}
+		}
+	},
+
+	get:function(parameter) {
+        if (this.list==null) {
+            this.parse();
+        }
+		return this.list[parameter];
+	},
+
+	extractUrl:function() {
+		var urlOnly = base.hashParams.extractUrl();
+		if (urlOnly.lastIndexOf('?')>=0) {
+			urlOnly = urlOnly.substr(0,urlOnly.lastIndexOf('?'));
+		}
+		return urlOnly;
+	},
+
+	extractParams:function() {
+		// Primero quitar los parámetros hash
+		var urlAndParams = base.hashParams.extractUrl();
+		var params = urlAndParams;
+		if (params.lastIndexOf('?')>=0) {
+			params = params.substr(window.location.href.lastIndexOf('?'));
+		}
+		else {
+			params = "";
+		}
+		return params;
+	},
+
+	// Pasa los parámetros de la URL a hash. Esta acción recargará la página
+	toHash:function() {
+		var urlOnly = this.extractUrl();
+		var hashParameters = base.hashParams.extractParams();
+		var parameters = this.extractParams();
+		var newHashParams = "";
+		var result = urlOnly;
+		if (parameters.length==0 || parameters.length==1) {
+			result += hashParameters;
+		}
+		else {
+			parameters = parameters.substr(1);
+			parameters = parameters.split('&');
+			for (var i=0;i<parameters.length;++i) {
+				keyValue = parameters[i].split('=');
+				if (keyValue.length>=2 && base.hashParams.get(keyValue[0])=='') {
+					if (hashParameters=="" && newHashParams=="") newHashParams += '#';
+					else newHashParams += '&';
+					newHashParams += keyValue[0] + '=' + keyValue[1];
+				}
+			}
+			result += hashParameters + newHashParams;
+		}
+		if (location.href!=result) {
+			location.href = result;
+		}
+	}
+}
+
+base.require = function(libraryName) {
+    var script = document.createElement('script');
+    script.type = 'text/javascript';
+    script.src = libraryName;
+    document.getElementsByTagName('head')[0].appendChild(script);
+}
+
+base.importStylesheet = function(stylesheetFile) {
+	var link = document.createElement('link');
+	link.setAttribute("rel","stylesheet");
+	link.setAttribute("href",stylesheetFile);
+	link.setAttribute("type","text/css");
+	link.setAttribute("media","screen");
+	document.getElementsByTagName('head')[0].appendChild(link);
+}
+
+// Deprecated
+base.dom = {
+	createElement: function(type,params,attributes) {
+		if (!params) params = {};
+		var elem = document.createElement(type);
+		if (params.className) elem.className = params.className;
+		if (params.id) elem.id = params.id;
+		if (params.style) $(elem).css(params.style);
+		if (params.innerHTML) elem.innerHTML = params.innerHTML;
+
+		if (attributes) {
+			for (var key in attributes) {
+				var value = attributes[key];
+				if (value===undefined) { value = "" }
+				if (typeof(value)=='string') {
+					value.trim();
+				}
+
+				elem.setAttribute(key,value);
+			}
+		}
+
+		return elem;
+	},
+
+	fontSize:function(domElement) {
+		var size = {size:0,units:'px'}
+		var measure = $(domElement).css('font-size');
+		if (/(\d+\.*\d*)(\D+)/.test(measure)) {
+			size.size = RegExp.$1;
+			size.units = RegExp.$2;
+		}
+		return size;
+	},
+
+	// Convert all measures in px into %, inside domNode.
+	toPercent:function(domNode) {
+		var baseSize = {w:$(domNode).width(),h:$(domNode).height()};
+
+		for (var i=0;i<domNode.children.length;++i) {
+			var child = domNode.children[i];
+			var nodeSize = {x:$(child).position().left,y:$(child).position().top,w:$(child).width(),h:$(child).height()};
+
+			child.originalSize = {fontSize:this.fontSize(child)}
+			child.originalSize.x = nodeSize.x;
+			child.originalSize.y = nodeSize.y;
+			child.originalSize.w = nodeSize.w;
+			child.originalSize.h = nodeSize.h;
+
+			nodeSize.x = nodeSize.x * 100 / baseSize.w;
+			nodeSize.y = nodeSize.y * 100 / baseSize.h;
+			nodeSize.w = nodeSize.w * 100 / baseSize.w;
+			nodeSize.h = nodeSize.h * 100 / baseSize.h;
+			child.style.left	= nodeSize.x + '%';
+			child.style.top		= nodeSize.y + '%';
+			child.style.width	= nodeSize.w + '%';
+			child.style.height	= nodeSize.h + '%';
+			//console.log(nodeSize);
+		}
+	},
+
+	prepareToScaleTexts:function(domNode) {
+		for (var i=0;i<domNode.children.length;++i) {
+			var child = domNode.children[i];
+			var nodeSize = {x:$(child).position().left,y:$(child).position().top,w:$(child).width(),h:$(child).height()};
+
+			child.originalSize = {fontSize:this.fontSize(child)}
+			child.originalSize.x = nodeSize.x;
+			child.originalSize.y = nodeSize.y;
+			child.originalSize.w = nodeSize.w;
+			child.originalSize.h = nodeSize.h;
+		}
+	},
+
+	scaleTexts:function(domNode) {
+		for (var i=0;i<domNode.children.length;++i) {
+			var child = domNode.children[i];
+			var nodeSize = {x:$(child).position().left,
+							y:$(child).position().top,
+							w:$(child).width(),
+							h:$(child).height()};
+
+			var originalSize = child.originalSize;
+
+			if (!originalSize) {
+				base.log.debug("base.dom.scaleTexts(): domNode could not be scaled. Original element size not found.");
+				return;
+			}
+
+			var scaleFactor = nodeSize.w / originalSize.w;
+			var fontSize = originalSize.fontSize.size * scaleFactor;
+			child.style.fontSize = fontSize + originalSize.fontSize.units;
+		}
+	},
+
+	proportionalSize: function(domElement,width,height,animate) {
+		var parent = domElement.parentNode;
+		var parentSize = {w:$(parent).width(),h:$(parent).height()};
+		var parentRatio = parentSize.w/parentSize.h;
+		var childRatio = width / height;
+		var finalWidth = parentSize.w;
+		var finalHeight = parentSize.h;
+		var marginTop = "";
+
+		// DEBUG: coloreamos el fondo para ver que pasa
+		//domElement.style.backgroundColor = "blue";
+		if (parentRatio>childRatio) {
+			finalWidth = finalHeight * childRatio;
+		}
+		else {
+		 	finalHeight = finalWidth / childRatio;
+		 	var margin = (parentSize.h - finalHeight) / 2;
+		 	marginTop = margin + "px";
+		}
+
+		if (animate) {
+			$(domElement).animate({'width':finalWidth + 'px','height':finalHeight + 'px',marginTop:marginTop});
+		}
+		else {
+			$(domElement).css({'width':finalWidth + 'px','height':finalHeight + 'px',marginTop:marginTop});
+		}
+	}
+}
+
+Class ("base.Log", {
+    _currentLevel:0,
+
+    initialize:function() {
+        var logLevelParam = base.parameters.get("logLevel");
+        logLevelParam = logLevelParam ? logLevelParam:base.hashParams.get("logLevel");
+        logLevelParam = logLevelParam.toLowerCase();
+        switch (logLevelParam) {
+            case "error":
+                this.setLevel(base.Log.kLevelError);
+                break;
+            case "warning":
+                this.setLevel(base.Log.kLevelWarning);
+                break;
+            case "debug":
+                this.setLevel(base.Log.kLevelDebug);
+                break;
+            case "log":
+                this.setLevel(base.Log.kLevelLog);
+                break;
+        }
+    },
+
+    logMessage:function(level,message) {
+        var prefix = "";
+        if (typeof(level)=="string") {
+            message = level;
+        }
+        else if (level>=base.Log.kLevelError && level<=base.Log.kLevelLog) {
+            switch (level) {
+                case base.Log.kLevelError:
+                    prefix = "ERROR: ";
+                    break;
+                case base.Log.kLevelWarning:
+                    prefix = "WARNING: ";
+                    break;
+                case base.Log.kLevelDebug:
+                    prefix = "DEBUG: ";
+                    break;
+                case base.Log.kLevelLog:
+                    prefix = "LOG: ";
+                    break;
+            }
+        }
+
+        if (this._currentLevel>=level && console.log) {
+            console.log(prefix + message);
+        }
+    },
+
+    error:function(message) {
+        this.logMessage(base.Log.kLevelError, message);
+    },
+
+    warning:function(message) {
+        this.logMessage(base.Log.kLevelWarning, message);
+    },
+
+    debug:function(message) {
+        this.logMessage(base.Log.kLevelDebug, message);
+    },
+
+    log:function(message) {
+        this.logMessage(base.Log.kLevelLog, message);
+    },
+
+    setLevel:function(level) {
+        this._currentLevel = level;
+    }
+});
+
+base.Log.kLevelError    = 1;
+base.Log.kLevelWarning  = 2;
+base.Log.kLevelDebug    = 3;
+base.Log.kLevelLog      = 4;
+
+base.log = new base.Log();
+
+// Deprecated
+base.debug = {
+    log:function(message) {
+        base.log.warning("Use of deprecated function base.debug.log()");
+        base.log.debug(message);
+    }
+}
+
+// This class requires jquery
+base.ajax = {
+	// onSuccess/onFail(data,type,returnCode,rawData)
+	send:function(type,params,onSuccess,onFail) {
+		this.assertParams(params);
+
+		var ajaxObj = jQuery.ajax({
+			url:params.url,
+			data:params.params,
+			type:type
+		});
+
+		if (typeof(onSuccess)=='function') {
+			ajaxObj.done(function(data,textStatus,jqXHR) {
+				var contentType = jqXHR.getResponseHeader('content-type')
+				onSuccess(data,contentType,jqXHR.status,jqXHR.responseText);
+			});
+		}
+
+		if (typeof(onFail)=='function') {
+			ajaxObj.fail(function(jqXHR,textStatus,error) {
+				onFail(textStatus + ' : ' + error,'text/plain',jqXHR.status,jqXHR.responseText);
+			});
+		}
+	},
+
+	assertParams:function(params) {
+		if (!params.url) throw new Error("base.ajax.send: url parameter not found");
+		if (!params.params) params.params = {}
+	}
+}
+
+base.ajax["get"] = function(params,onSuccess,onFail) {
+	base.ajax.send('get',params,onSuccess,onFail);
+}
+
+base.ajax["post"] = function(params,onSuccess,onFail) {
+	base.ajax.send('post',params,onSuccess,onFail);
+}
+
+base.ajax["put"] = function(params,onSuccess,onFail) {
+	base.ajax.send('put',params,onSuccess,onFail);
+}
+
+base.ajax["delete"] = function(params,onSuccess,onFail) {
+	base.ajax.send('delete',params,onSuccess,onFail);
+}
+
+Class ("base.AsyncLoaderCallback", {
+	name:"",
+	prevCb:null,
+	nextCb:null,
+	loader:null,
+
+	initialize:function(name) {
+		this.name = name;
+	},
+
+	load:function(onSuccess,onError) {
+		base.debug.log("loading " + this.name);
+		onSuccess();
+		// If error: onError()
+	}
+});
+
+Class ("base.AjaxCallback", base.AsyncLoaderCallback,{
+	params:null,
+	type:'get',
+
+	data:null,
+	mimeType:null,
+	statusCode:null,
+	rawData:null,
+
+	getParams:function() {
+		return this.params;
+	},
+
+	willLoad:function(callback) {
+
+	},
+
+	didLoadSuccess:function(callback) {
+		return true;
+	},
+
+	didLoadFail:function(callback) {
+		return false;
+	},
+
+	initialize:function(params,type) {
+		this.name = "ajaxCallback";
+		if (type) this.type = type;
+		if (typeof(params)=='string') this.params = {url:params}
+		else if (typeof(params)=='object') this.params = params;
+		else this.params = {}
+	},
+
+	load:function(onSuccess,onError) {
+		var This = this;
+		if (typeof(this.willLoad)=='function') this.willLoad(this);
+		base.ajax.send(this.type,this.getParams(),
+			function(data,type,code,rawData) {
+				var status = true;
+				This.data = data;
+				This.mimeType = type;
+				This.statusCode = code;
+				This.rawData = rawData;
+				if (typeof(This.didLoadSuccess)=='function') status = This.didLoadSuccess(This);
+				if (status) onSuccess();
+				else onError();
+			},
+			function(data,type,code,rawData) {
+				var status = false;
+				This.data = data;
+				This.mimeType = type;
+				This.statusCode = code;
+				This.rawData = rawData;
+				if (typeof(This.didLoadFail)=='function') status = This.didLoadFail(This);
+				if (status) onSuccess();
+				else onError();
+			});
+	}
+});
+
+Class ("base.JSONCallback", base.AjaxCallback, {
+	initialize:function(params,type) { this.parent(params,type); },
+
+	didLoadSuccess:function(callback) {
+		if (typeof(callback.data)=='object') return true;
+
+		try {
+			callback.data = JSON.parse(callback.data);
+			return true;
+		}
+		catch (e) {
+			callback.data = {error:"Unexpected data format",data:callback.data}
+			return false;
+		}
+	}
+});
+
+Class ("base.DictionaryCallback", base.AjaxCallback,{
+	initialize:function(dictionaryUrl) { this.parent({url:dictionaryUrl}); },
+
+	getParams:function() {
+		var lang = base.dictionary.currentLanguage();
+		this.params.url = this.params.url + '_' + lang + '.json';
+		return this.params;
+	},
+
+	didLoadSuccess:function(callback) {
+		if (typeof(callback.data)=="string") {
+			try {
+				callback.data = JSON.parse(callback.data);
+			}
+			catch (e) {
+				return false;
+			}
+		}
+		base.dictionary.addDictionary(callback.data);
+		return true;
+	},
+
+	didLoadFail:function(callback) {
+		return true;
+	}
+})
+
+Class ("base.AsyncLoader", {
+	firstCb:null,
+	lastCb:null,
+	callbackArray:null,
+	generatedId:0,
+
+	continueOnError:false,
+	errorCallbacks:null,
+
+	currentCb:null,
+
+	clearError:function() {
+		this.errorCallbacks = [];
+	},
+
+	initialize:function() {
+		this.callbackArray = {};
+		this.errorCallbacks = [];
+		this.generatedId = 0;
+	},
+
+	addCallback:function(cb,name) {
+		if (!name) {
+			name = "callback_" + this.generatedId++;
+		}
+		cb.__cbName__ = name;
+		this.callbackArray[name] = cb;
+		if (!this.firstCb) {
+			this.firstCb = cb;
+			this.currentCb = cb;
+		}
+		cb.prevCb = this.lastCb;
+		if (this.lastCb) this.lastCb.nextCb = cb;
+		this.lastCb = cb;
+		cb.loader = this;
+		return cb;
+	},
+
+	getCallback:function(name) {
+		return this.callbackArray[name];
+	},
+
+	load:function(onSuccess,onError) {
+		var This = this;
+		if (this.currentCb) {
+			this.currentCb.load(function() {
+				This.onComplete(This.currentCb,This.currentCb.__cbName__,true);
+				This.currentCb = This.currentCb.nextCb;
+				This.load(onSuccess,onError);
+			},
+			function() {
+				This.onComplete(This.currentCb,This.currentCb.__cbName__,false);
+				if (This.continueOnError) {
+					This.errorCallbacks.push(This.currentCb);
+					This.currentCb = This.currentCb.nextCb;
+					This.load(onSuccess,onError);
+				}
+				else if (typeof(onError)=='function') {
+					onError();
+				}
+			});
+		}
+		else if (typeof(onSuccess)=='function') {
+			onSuccess();
+		}
+	},
+
+	onComplete:function(callback,cbName,status) {
+
+	}
+});
+
+Class ("base.Dictionary", {
+	dictionary:{},
+
+	initialize:function() {
+
+	},
+
+	addDictionary:function(dict) {
+		for (var key in dict) {
+			this.dictionary[key] = dict[key];
+		}
+	},
+
+	translate:function(key) {
+		var value = base.dictionary.dictionary[key];
+		if (value) return value;
+		else return key;
+	},
+
+	currentLanguage:function() {
+		var lang = navigator.language || window.navigator.userLanguage;
+		return lang.substr(0, 2).toLowerCase();
+	}
+});
+
+base.dictionary = new base.Dictionary();
+
+base.types = {
+	parseNumber:function(num) {
+		return parseFloat(num);
+	},
+
+	parseBoolean:function(num) {
+		return /^true$/i.test(num) || /^1$/i.test(num) || /^yes$/.test(num);
+	},
+
+	parseDictionary:function(num) {
+		try {
+			return JSON.parse(num);
+		}
+		catch (e) {
+			return null;
+		}
+	}
+}
+
+base.uuid = function() {
+	return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = Math.random()*16|0,v=c=='x'?r:r&0x3|0x8;return v.toString(16);});
+}
+
+base.imgBase64 = function(url) {
+	var img = new Image();
+	img.onload = function(event) {
+		var canvas = document.createElement('canvas');
+		var ctx = canvas.getContext('2d');
+		canvas.width = event.srcElement.width;
+		canvas.height = event.srcElement.height;
+		ctx.drawImage(event.srcElement,0,0);
+		var dataUrl = canvas.toDataURL('image/png');
+		event.srcElement.onload = null;
+		event.srcElement.src = dataUrl;
+		canvas = null;
+	};
+	img.src = url;
+	return img;
+}
diff --git a/src/main/webapp/static/js/paella/player/javascript/bg2e-es2015.js b/src/main/webapp/static/js/paella/player/javascript/bg2e-es2015.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d60ed46d8f40a1fc9e1d6d9f905e456524aa391
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/javascript/bg2e-es2015.js
@@ -0,0 +1,18394 @@
+
+const bg = {};
+bg.version = "1.3.31 - build: 2e48aa1";
+bg.utils = {};
+
+Reflect.defineProperty = Reflect.defineProperty || Object.defineProperty;
+
+(function(win) {
+	win.requestAnimFrame = (function() {
+	return	window.requestAnimationFrame ||
+			window.webkitRequestAnimationFrame ||
+			window.mozRequestAnimationFrame ||
+			window.oRequestAnimationFrame ||
+			window.msRequestAnimationFrame ||
+			function(callback,element) { window.setTimeout(callback,1000/60); };
+	})();
+
+	bg.utils.initWebGLContext = function(canvas) {
+			let context = {
+				gl:null,
+				supported:false,
+				experimental:false
+			}
+			try {
+				context.gl = canvas.getContext("webgl",{ preserveDrawingBuffer:true });
+				context.supported = context.gl!=null;
+			}
+			catch (e) {
+				context.supported = false;
+			}
+			
+			if (!context.supported) {
+				try {
+					context.gl = canvas.getContext("experimental-webgl", { preserveDrawingBuffer:true });
+					context.supported = context.gl!=null;
+					context.experimental = true;
+				}
+				catch(e) {
+				}
+			}
+			
+			if (context) {
+				context.gl.uuid = Symbol(context.gl);
+			}
+			return context;
+		};
+
+	bg.utils.isBigEndian = function() {
+			let arr32 = new Uint32Array(1);
+			var arr8 = new Uint8Array(arr32.buffer);
+			arr32[0] = 255;
+			return arr32[3]==255;
+		};
+	
+	bg.utils.isLittleEndian = function() {
+			let arr32 = new Uint32Array(1);
+			var arr8 = new Uint8Array(arr32.buffer);
+			arr32[0] = 255;
+			return arr32[0]==255;
+		};
+	
+	class UserAgent {
+	
+		constructor(userAgentString) {
+			this.system = {};
+			this.browser = {};
+			
+			if (!userAgentString) {
+				userAgentString = navigator.userAgent;
+			}
+			this.parseOperatingSystem(userAgentString);
+			this.parseBrowser(userAgentString);
+		}
+
+		parseOperatingSystem(userAgentString) {
+			this.system.OSX = /Macintosh/.test(userAgentString);
+			this.system.Windows = /Windows/.test(userAgentString);
+			this.system.iPhone = /iPhone/.test(userAgentString);
+			this.system.iPodTouch = /iPod/.test(userAgentString);
+			this.system.iPad = /iPad/.test(userAgentString);
+			this.system.iOS = this.system.iPhone || this.system.iPad || this.system.iPodTouch;
+			this.system.Android = /Android/.test(userAgentString);
+			this.system.Linux = (this.system.Android) ? false:/Linux/.test(userAgentString);
+
+			if (this.system.OSX) {
+				this.system.OSName = "OS X";
+				this.parseOSXVersion(userAgentString);
+			}
+			else if (this.system.Windows) {
+				this.system.OSName = "Windows";
+				this.parseWindowsVersion(userAgentString);
+			}
+			else if (this.system.Linux) {
+				this.system.OSName = "Linux";
+				this.parseLinuxVersion(userAgentString);
+			}
+			else if (this.system.iOS) {
+				this.system.OSName = "iOS";
+				this.parseIOSVersion(userAgentString);
+			}
+			else if (this.system.Android) {
+				this.system.OSName = "Android";
+				this.parseAndroidVersion(userAgentString);
+			}
+		}
+
+		parseBrowser(userAgentString) {
+			// Safari: Version/X.X.X Safari/XXX
+			// Chrome: Chrome/XX.X.XX.XX Safari/XXX
+			// Opera: Opera/X.XX
+			// Firefox: Gecko/XXXXXX Firefox/XX.XX.XX
+			// Explorer: MSIE X.X
+			this.browser.Version = {};
+			this.browser.Safari = /Version\/([\d\.]+) Safari\//.test(userAgentString);
+			if (this.browser.Safari) {
+				this.browser.Name = "Safari";
+				this.browser.Vendor = "Apple";
+				this.browser.Version.versionString = RegExp.$1;
+			}
+
+			this.browser.Chrome = /Chrome\/([\d\.]+) Safari\//.test(userAgentString);
+			if (this.browser.Chrome) {
+				this.browser.Name = "Chrome";
+				this.browser.Vendor = "Google";
+				this.browser.Version.versionString = RegExp.$1;
+			}
+
+			this.browser.Opera = /Opera\/[\d\.]+/.test(userAgentString);
+			if (this.browser.Opera) {
+				this.browser.Name = "Opera";
+				this.browser.Vendor = "Opera Software";
+				var versionString = /Version\/([\d\.]+)/.test(userAgentString);
+				this.browser.Version.versionString = RegExp.$1;
+			}
+
+			this.browser.Firefox = /Gecko\/[\d\.]+ Firefox\/([\d\.]+)/.test(userAgentString);
+			if (this.browser.Firefox) {
+				this.browser.Name = "Firefox";
+				this.browser.Vendor = "Mozilla Foundation";
+				this.browser.Version.versionString = RegExp.$1;
+			}
+
+			this.browser.Edge = /Edge\/(.*)/.test(userAgentString);
+			if (this.browser.Edge) {
+				var result = /Edge\/(.*)/.exec(userAgentString);
+				this.browser.Name = "Edge";
+				this.browser.Chrome = false;
+				this.browser.Vendor = "Microsoft";
+				this.browser.Version.versionString = result[1];
+			} 
+
+			this.browser.Explorer = /MSIE ([\d\.]+)/.test(userAgentString);
+			if (!this.browser.Explorer) {
+				var re = /\Mozilla\/5.0 \(([^)]+)\) like Gecko/
+				var matches = re.exec(userAgentString);
+				if (matches) {
+					re = /rv:(.*)/
+					var version = re.exec(matches[1]);
+					this.browser.Explorer = true;
+					this.browser.Name = "Internet Explorer";
+					this.browser.Vendor = "Microsoft";
+					if (version) {
+						this.browser.Version.versionString = version[1];
+					}
+					else {
+						this.browser.Version.versionString = "unknown";
+					}
+				}
+			}
+			else {
+				this.browser.Name = "Internet Explorer";
+				this.browser.Vendor = "Microsoft";
+				this.browser.Version.versionString = RegExp.$1;
+			}
+
+			if (this.system.iOS) {
+				this.browser.IsMobileVersion = true;
+				this.browser.MobileSafari = /Version\/([\d\.]+) Mobile/.test(userAgentString);
+				if (this.browser.MobileSafari) {
+					this.browser.Name = "Mobile Safari";
+					this.browser.Vendor = "Apple";
+					this.browser.Version.versionString = RegExp.$1;
+				}
+				this.browser.Android = false;
+			}
+			else if (this.system.Android) {
+				this.browser.IsMobileVersion = true;
+				this.browser.Android = /Version\/([\d\.]+) Mobile/.test(userAgentString);
+				if (this.browser.MobileSafari) {
+					this.browser.Name = "Android Browser";
+					this.browser.Vendor = "Google";
+					this.browser.Version.versionString = RegExp.$1;
+				}
+				else {
+					this.browser.Chrome = /Chrome\/([\d\.]+)/.test(userAgentString);
+					this.browser.Name = "Chrome";
+					this.browser.Vendor = "Google";
+					this.browser.Version.versionString = RegExp.$1;
+				}
+
+				this.browser.Safari = false;
+			}
+			else {
+				this.browser.IsMobileVersion = false;
+			}
+
+			this.parseBrowserVersion(userAgentString);
+		}
+
+		parseBrowserVersion(userAgentString) {
+			if (/([\d]+)\.([\d]+)\.*([\d]*)/.test(this.browser.Version.versionString)) {
+				this.browser.Version.major = Number(RegExp.$1);
+				this.browser.Version.minor = Number(RegExp.$2);
+				this.browser.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+			}
+		}
+
+		parseOSXVersion(userAgentString) {
+			var versionString = (/Mac OS X (\d+_\d+_*\d*)/.test(userAgentString)) ? RegExp.$1:'';
+			this.system.Version = {};
+			// Safari/Chrome
+			if (versionString!='') {
+				if (/(\d+)_(\d+)_*(\d*)/.test(versionString)) {
+					this.system.Version.major = Number(RegExp.$1);
+					this.system.Version.minor = Number(RegExp.$2);
+					this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+				}
+			}
+			// Firefox/Opera
+			else {
+				versionString = (/Mac OS X (\d+\.\d+\.*\d*)/.test(userAgentString)) ? RegExp.$1:'Unknown';
+				if (/(\d+)\.(\d+)\.*(\d*)/.test(versionString)) {
+					this.system.Version.major = Number(RegExp.$1);
+					this.system.Version.minor = Number(RegExp.$2);
+					this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+				}
+			}
+			if (!this.system.Version.major) {
+				this.system.Version.major = 0;
+				this.system.Version.minor = 0;
+				this.system.Version.revision = 0;
+			}
+			this.system.Version.stringValue = this.system.Version.major + '.' + this.system.Version.minor + '.' + this.system.Version.revision;
+			switch (this.system.Version.minor) {
+				case 0:
+					this.system.Version.name = "Cheetah";
+					break;
+				case 1:
+					this.system.Version.name = "Puma";
+					break;
+				case 2:
+					this.system.Version.name = "Jaguar";
+					break;
+				case 3:
+					this.system.Version.name = "Panther";
+					break;
+				case 4:
+					this.system.Version.name = "Tiger";
+					break;
+				case 5:
+					this.system.Version.name = "Leopard";
+					break;
+				case 6:
+					this.system.Version.name = "Snow Leopard";
+					break;
+				case 7:
+					this.system.Version.name = "Lion";
+					break;
+				case 8:
+					this.system.Version.name = "Mountain Lion";
+					break;
+			}
+		}
+
+		parseWindowsVersion(userAgentString) {
+			this.system.Version = {};
+			if (/NT (\d+)\.(\d*)/.test(userAgentString)) {
+				this.system.Version.major = Number(RegExp.$1);
+				this.system.Version.minor = Number(RegExp.$2);
+				this.system.Version.revision = 0;	// Solo por compatibilidad
+				this.system.Version.stringValue = "NT " + this.system.Version.major + "." + this.system.Version.minor;
+				var major = this.system.Version.major;
+				var minor = this.system.Version.minor;
+				var name = 'undefined';
+				if (major==5) {
+					if (minor==0) this.system.Version.name = '2000';
+					else this.system.Version.name = 'XP';
+				}
+				else if (major==6) {
+					if (minor==0) this.system.Version.name = 'Vista';
+					else if (minor==1) this.system.Version.name = '7';
+					else if (minor==2) this.system.Version.name = '8';
+				}
+			}
+			else {
+				this.system.Version.major = 0;
+				this.system.Version.minor = 0;
+				this.system.Version.name = "Unknown";
+				this.system.Version.stringValue = "Unknown";
+			}
+		}
+
+		parseLinuxVersion(userAgentString) {
+			this.system.Version = {};
+			this.system.Version.major = 0;
+			this.system.Version.minor = 0;
+			this.system.Version.revision = 0;
+			this.system.Version.name = "";
+			this.system.Version.stringValue = "Unknown distribution";
+		}
+
+		parseIOSVersion(userAgentString) {
+			this.system.Version = {};
+			if (/iPhone OS (\d+)_(\d+)_*(\d*)/i.test(userAgentString)) {
+				this.system.Version.major = Number(RegExp.$1);
+				this.system.Version.minor = Number(RegExp.$2);
+				this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+				this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
+				this.system.Version.name = "iOS";
+			}
+			else {
+				this.system.Version.major = 0;
+				this.system.Version.minor = 0;
+				this.system.Version.name = "Unknown";
+				this.system.Version.stringValue = "Unknown";
+			}
+		}
+
+		parseAndroidVersion(userAgentString) {
+			this.system.Version = {};
+			if (/Android (\d+)\.(\d+)\.*(\d*)/.test(userAgentString)) {
+				this.system.Version.major = Number(RegExp.$1);
+				this.system.Version.minor = Number(RegExp.$2);
+				this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
+				this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
+			}
+			else {
+				this.system.Version.major = 0;
+				this.system.Version.minor = 0;
+				this.system.Version.revision = 0;
+			}
+			if (/Build\/([a-zA-Z]+)/.test(userAgentString)) {
+				this.system.Version.name = RegExp.$1;
+			}
+			else {
+				this.system.Version.name = "Unknown version";
+			}
+			this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
+		}
+
+		getInfoString() {
+			return navigator.userAgent;
+		}
+	}
+	
+	bg.utils.UserAgent = UserAgent;
+	bg.utils.userAgent = new UserAgent();
+
+	class Path {
+		get sep() { return "/"; }
+
+		join(a,b) {
+			if (a.lastIndexOf(this.sep)!=a.length-1) {
+				return a + this.sep + b;
+			}
+			else {
+				return a + b;
+			}
+		}
+
+		extension(path) {
+			return path.split(".").pop();
+		}
+
+		fileName(path) {
+			return path.split(this.sep).pop();
+		}
+
+		removeFileName(path) {
+			let result = path.split(this.sep);
+			result.pop();
+			return result.join(this.sep);
+		}
+	}
+
+	bg.utils.Path = Path;
+	bg.utils.path = new Path();
+})(window);
+
+(function() {
+	let s_preventImageDump = [];
+	let s_preventVideoDump = [];
+
+	class ResourceProvider {
+		getRequest(url,onSuccess,onFail,onProgress) {}
+		loadImage(url,onSucces,onFail) {}
+		loadVideo(url,onSuccess,onFail) {}
+	}
+
+	let g_videoLoaders = {};
+	g_videoLoaders["mp4"] = function(url,onSuccess,onFail) {
+		var video = document.createElement('video');
+		s_preventVideoDump.push(video);
+		video.crossOrigin = "";
+		video.autoplay = true;
+		video.setAttribute("playsinline",null);
+		video.addEventListener('canplay',(evt) => {
+			let videoIndex = s_preventVideoDump.indexOf(evt.target);
+			if (videoIndex!=-1) {
+				s_preventVideoDump.splice(videoIndex,1);
+			}
+			onSuccess(event.target);
+		});
+		video.addEventListener("error",(evt) => {
+			onFail(new Error(`Error loading video: ${url}`));
+		});
+		video.addEventListener("abort",(evt) => {
+			onFail(new Error(`Error loading video: ${url}`));
+		});
+		video.src = url;
+	}
+	g_videoLoaders["m4v"] = g_videoLoaders["mp4"];
+
+	class HTTPResourceProvider extends ResourceProvider {
+		static AddVideoLoader(type,callback) {
+			g_videoLoaders[type] = callback;
+		}
+
+		static GetVideoLoaderForType(type) {
+			return g_videoLoaders[type];
+		}
+
+		static GetCompatibleVideoFormats() {
+			return Object.keys(g_videoLoaders);
+		}
+
+		static IsVideoCompatible(videoUrl) {
+			let ext = Resource.GetExtension(videoUrl);
+			return bg.utils.HTTPResourceProvider.GetCompatibleVideoFormats().indexOf(ext)!=-1;
+		}
+
+		getRequest(url,onSuccess,onFail,onProgress) {
+			var req = new XMLHttpRequest();
+			if (!onProgress) {
+				onProgress = function(progress) {
+					console.log(`Loading ${ progress.file }: ${ progress.loaded / progress.total * 100 } %`);
+				}
+			}
+			req.open("GET",url,true);
+			req.addEventListener("load", function() {
+				if (req.status===200) {
+					onSuccess(req);
+				}
+				else {
+					onFail(new Error(`Error receiving data: ${req.status}, url: ${url}`));
+				}
+			}, false);
+			req.addEventListener("error", function() {
+				onFail(new Error(`Cannot make AJAX request. Url: ${url}`));
+			}, false);
+			req.addEventListener("progress", function(evt) {
+				onProgress({ file:url, loaded:evt.loaded, total:evt.total });
+			}, false);
+			return req;
+		}
+
+		loadImage(url,onSuccess,onFail) {
+			var img = new Image();
+			s_preventImageDump.push(img);
+			img.crossOrigin = "";
+			img.addEventListener("load",function(event) {
+				let imageIndex = s_preventImageDump.indexOf(event.target);
+				if (imageIndex!=-1) {
+					s_preventImageDump.splice(imageIndex,1);
+				}
+				onSuccess(event.target);
+			});
+			img.addEventListener("error",function(event) {
+				onFail(new Error(`Error loading image: ${url}`));
+			});
+			img.addEventListener("abort",function(event) {
+				onFail(new Error(`Image load aborted: ${url}`));
+			});
+			img.src = url + '?' + bg.utils.generateUUID();
+		}
+
+		loadVideo(url,onSuccess,onFail) {
+			let ext = Resource.GetExtension(url);
+			let loader = bg.utils.HTTPResourceProvider.GetVideoLoaderForType(ext);
+			if (loader) {
+				loader.apply(this,[url,onSuccess,onFail]);
+			}
+			else {
+				onFail(new Error(`Could not find video loader for resource: ${ url }`));
+			}
+		}
+	}
+
+	bg.utils.ResourceProvider = ResourceProvider;
+	bg.utils.HTTPResourceProvider = HTTPResourceProvider;
+	
+	let g_resourceProvider = new HTTPResourceProvider();
+
+	class Resource {
+		static SetResourceProvider(provider) {
+			g_resourceProvider = provider;
+		}
+
+		static GetResourceProvider() {
+			return g_resourceProvider;
+		}
+
+		static GetExtension(url) {
+			let match = /\.([a-z0-9-_]*)$/i.exec(url);
+			return (match && match[1].toLowerCase()) || "";
+		}
+		
+		static JoinUrl(url,path) {
+			if (url.length==0) return path;
+			if (path.length==0) return url;
+			return /\/$/.test(url) ? url + path : url + "/" + path;
+		}
+		
+		static IsFormat(url,formats) {
+			return formats.find(function(fmt) {
+					return fmt==this;
+				},Resource.GetExtension(url))!=null;
+		}
+		
+		static IsImage(url) {
+			return Resource.IsFormat(url,["jpg","jpeg","gif","png"]);
+		}
+		
+		static IsBinary(url,binaryFormats = ["vwglb","bg2"]) {
+			return Resource.IsFormat(url,binaryFormats);
+		}
+
+		static IsVideo(url,videoFormats = ["mp4","m4v","ogg","ogv","m3u8","webm"]) {
+			return Resource.IsFormat(url,videoFormats);
+		}
+		
+		static LoadMultiple(urlArray,onProgress) {
+			let progressFiles = {}
+
+			let progressFunc = function(progress) {
+				progressFiles[progress.file] = progress;
+				let total = 0;
+				let loaded = 0;
+				for (let key in progressFiles) {
+					let file = progressFiles[key];
+					total += file.total;
+					loaded += file.loaded;
+				}
+				if (onProgress) {
+					onProgress({ fileList:urlArray, total:total, loaded:loaded });
+				}
+				else {
+					console.log(`Loading ${ Object.keys(progressFiles).length } files: ${ loaded / total * 100}% completed`);
+				}
+			}
+
+			let resources = [];
+			urlArray.forEach(function(url) {
+				resources.push(Resource.Load(url,progressFunc));
+			});
+
+			let resolvingPromises = resources.map(function(promise) {
+				return new Promise(function(resolve) {
+					let payload = new Array(2);
+					promise.then(function(result) {
+						payload[0] = result;
+					})
+					.catch(function(error) {
+						payload[1] = error;
+					})
+					.then(function() {
+						resolve(payload);
+					});
+				});
+			});
+
+			let errors = [];
+			let results = [];
+
+			return Promise.all(resolvingPromises)
+				.then(function(loadedData) {
+					let result = {};
+					urlArray.forEach(function(url,index) {
+						let pl = loadedData[index];
+						result[url] = pl[1] ? null : pl[0];
+					});
+					return result;
+				});
+		}
+		
+		static Load(url,onProgress) {
+			let loader = null;
+			switch (true) {
+				case url.constructor===Array:
+					loader = Resource.LoadMultiple;
+					break;
+				case Resource.IsImage(url):
+					loader = Resource.LoadImage;
+					break;
+				case Resource.IsBinary(url):
+					loader = Resource.LoadBinary;
+					break;
+				case Resource.IsVideo(url):
+					loader = Resource.LoadVideo;
+					break;
+				case Resource.GetExtension(url)=='json':
+					loader = Resource.LoadJson;
+					break;
+				default:
+					loader = Resource.LoadText;
+			}
+			return loader(url,onProgress);
+		}
+		
+		static LoadText(url,onProgress) {
+			return new Promise(function(resolve,reject) {
+				g_resourceProvider.getRequest(url,
+					function(req) {
+						resolve(req.responseText);
+					},
+					function(error) {
+						reject(error);
+					},onProgress).send();
+			});
+		}
+
+		static LoadVideo(url,onProgress) {
+			return new Promise(function(resolve,reject) {
+				g_resourceProvider.loadVideo(
+					url,
+					(target) => {
+						resolve(target);
+						bg.emitImageLoadEvent(target);
+					},
+					(err) => {
+						reject(err);
+					}
+				);
+			});
+		}
+		
+		static LoadBinary(url,onProgress) {
+			return new Promise(function(resolve,reject) {
+				var req = g_resourceProvider.getRequest(url,
+						function(req) {
+							resolve(req.response);
+						},
+						function(error) {
+							reject(error);
+						},onProgress);
+				req.responseType = "arraybuffer";
+				req.send();
+			});
+		}
+		
+		static LoadImage(url) {
+			return new Promise(function(resolve,reject) {
+				g_resourceProvider.loadImage(
+					url,
+					(target) => {
+						resolve(target);
+						bg.emitImageLoadEvent(target);
+					},
+					(err) => {
+						reject(err);
+					}
+				);
+			});
+		}
+		
+		static LoadJson(url) {
+			return new Promise(function(resolve,reject) {
+				g_resourceProvider.getRequest(url,
+					function(req) {
+						try {
+							resolve(JSON.parse(req.responseText));
+						}
+						catch(e) {
+							reject(new Error("Error parsing JSON data"));
+						}
+					},
+					function(error) {
+						reject(error);
+					}).send();
+			});
+		}
+	}
+	
+	bg.utils.Resource = Resource;
+
+	bg.utils.requireGlobal = function(src) {
+		let s = document.createElement('script');
+		s.src = src;
+		s.type = "text/javascript";
+		s.async = false;
+		document.getElementsByTagName('head')[0].appendChild(s);
+	}
+
+})();
+(function() {
+	let s_Engine = null;
+	
+	class Engine {
+		static Set(engine) {
+			s_Engine = engine;
+		}
+		
+		static Get() {
+			return s_Engine;
+		}
+		
+		get id() { return this._engineId; }
+		
+		get texture() { return this._texture; }
+		get pipeline() { return this._pipeline; }
+		get polyList() { return this._polyList; }
+		get shader() { return this._shader; }
+		get colorBuffer() { return this._colorBuffer; }
+		get textureBuffer() { return this._textureBuffer; }
+		get shaderSource() { return this._shaderSource; }
+	}
+	
+	bg.Engine = Engine;
+})();
+(function() {
+	
+	class LifeCycle {
+		init() {}
+		frame(delta) {}
+
+		displayGizmo(pipeline,matrixState) {}
+		
+		////// Direct rendering methods: will be deprecated soon
+		willDisplay(pipeline,matrixState) {}
+		display(pipeline,matrixState,forceDraw=false) {}
+		didDisplay(pipeline,matrixState) {}
+		////// End direct rendering methods
+
+		////// Render queue methods
+		willUpdate(modelMatrixStack,viewMatrixStack,projectionMatrixStack) {}
+		draw(renderQueue,modelMatrixStack,viewMatrixStack,projectionMatrixStack) {}
+		didUpdate(modelMatrixStack,viewMatrixStack,projectionMatrixStack) {}
+		////// End render queue methods
+
+		reshape(pipeline,matrixState,width,height) {}
+		keyDown(evt) {}
+		keyUp(evt) {}
+		mouseUp(evt) {}
+		mouseDown(evt) {}
+		mouseMove(evt) {}
+		mouseOut(evt) {}
+		mouseDrag(evt) {}
+		mouseWheel(evt) {}
+		touchStart(evt) {}
+		touchMove(evt) {}
+		touchEnd(evt) {}
+
+		// Utility functions: do not override
+		// 4 frames to ensure that the reflections are fully updated
+		postRedisplay(frames=4) {
+			bg.app.MainLoop.singleton.postRedisplay(frames);
+		}
+
+		postReshape() {
+			bg.app.MainLoop.singleton.postReshape();
+		}
+	}
+	
+	bg.LifeCycle = LifeCycle;
+	
+})();
+// https://github.com/xibre/FastMD5
+(function() {
+    !function(r){function n(r){for(var n="",t="",o=0,e=0,a=0,i=r.length;i>a;a++){var f=r.charCodeAt(a);128>f?e++:(t=2048>f?String.fromCharCode(f>>6|192,63&f|128):String.fromCharCode(f>>12|224,f>>6&63|128,63&f|128),e>o&&(n+=r.slice(o,e)),n+=t,o=e=a+1)}return e>o&&(n+=r.slice(o,i)),n}function t(r){var n,t;if(r+="",s=!1,v=w=r.length,w>63){for(o(r.substring(0,64)),i(A),s=!0,n=128;w>=n;n+=64)o(r.substring(n-64,n)),f(A);r=r.substring(n-64),w=r.length}for(d[0]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,n=0;w>n;n++)t=3&n,0===t?d[n>>2]=r.charCodeAt(n):d[n>>2]|=r.charCodeAt(n)<<C[t];return d[n>>2]|=h[3&n],n>55?(s?f(d):(i(d),s=!0),f([0,0,0,0,0,0,0,0,0,0,0,0,0,0,v<<3,0])):(d[14]=v<<3,void(s?f(d):i(d)))}function o(r){for(var n=16;n--;){var t=n<<2;A[n]=r.charCodeAt(t)+(r.charCodeAt(t+1)<<8)+(r.charCodeAt(t+2)<<16)+(r.charCodeAt(t+3)<<24)}}function e(r,o,e){t(o?r:n(r));var a=g[0];return u[1]=l[15&a],u[0]=l[15&(a>>=4)],u[3]=l[15&(a>>=4)],u[2]=l[15&(a>>=4)],u[5]=l[15&(a>>=4)],u[4]=l[15&(a>>=4)],u[7]=l[15&(a>>=4)],u[6]=l[15&(a>>=4)],a=g[1],u[9]=l[15&a],u[8]=l[15&(a>>=4)],u[11]=l[15&(a>>=4)],u[10]=l[15&(a>>=4)],u[13]=l[15&(a>>=4)],u[12]=l[15&(a>>=4)],u[15]=l[15&(a>>=4)],u[14]=l[15&(a>>=4)],a=g[2],u[17]=l[15&a],u[16]=l[15&(a>>=4)],u[19]=l[15&(a>>=4)],u[18]=l[15&(a>>=4)],u[21]=l[15&(a>>=4)],u[20]=l[15&(a>>=4)],u[23]=l[15&(a>>=4)],u[22]=l[15&(a>>=4)],a=g[3],u[25]=l[15&a],u[24]=l[15&(a>>=4)],u[27]=l[15&(a>>=4)],u[26]=l[15&(a>>=4)],u[29]=l[15&(a>>=4)],u[28]=l[15&(a>>=4)],u[31]=l[15&(a>>=4)],u[30]=l[15&(a>>=4)],e?u:u.join("")}function a(r,n,t,o,e,a,i){return n+=r+o+i,(n<<e|n>>>a)+t<<0}function i(r){c(0,0,0,0,r),g[0]=y[0]+1732584193<<0,g[1]=y[1]-271733879<<0,g[2]=y[2]-1732584194<<0,g[3]=y[3]+271733878<<0}function f(r){c(g[0],g[1],g[2],g[3],r),g[0]=y[0]+g[0]<<0,g[1]=y[1]+g[1]<<0,g[2]=y[2]+g[2]<<0,g[3]=y[3]+g[3]<<0}function c(r,n,t,o,e){var i,f;s?(r=a((t^o)&n^o,r,n,e[0],7,25,-680876936),o=a((n^t)&r^t,o,r,e[1],12,20,-389564586),t=a((r^n)&o^n,t,o,e[2],17,15,606105819),n=a((o^r)&t^r,n,t,e[3],22,10,-1044525330)):(r=e[0]-680876937,r=(r<<7|r>>>25)-271733879<<0,o=e[1]-117830708+(2004318071&r^-1732584194),o=(o<<12|o>>>20)+r<<0,t=e[2]-1126478375+((-271733879^r)&o^-271733879),t=(t<<17|t>>>15)+o<<0,n=e[3]-1316259209+((o^r)&t^r),n=(n<<22|n>>>10)+t<<0),r=a((t^o)&n^o,r,n,e[4],7,25,-176418897),o=a((n^t)&r^t,o,r,e[5],12,20,1200080426),t=a((r^n)&o^n,t,o,e[6],17,15,-1473231341),n=a((o^r)&t^r,n,t,e[7],22,10,-45705983),r=a((t^o)&n^o,r,n,e[8],7,25,1770035416),o=a((n^t)&r^t,o,r,e[9],12,20,-1958414417),t=a((r^n)&o^n,t,o,e[10],17,15,-42063),n=a((o^r)&t^r,n,t,e[11],22,10,-1990404162),r=a((t^o)&n^o,r,n,e[12],7,25,1804603682),o=a((n^t)&r^t,o,r,e[13],12,20,-40341101),t=a((r^n)&o^n,t,o,e[14],17,15,-1502002290),n=a((o^r)&t^r,n,t,e[15],22,10,1236535329),r=a((n^t)&o^t,r,n,e[1],5,27,-165796510),o=a((r^n)&t^n,o,r,e[6],9,23,-1069501632),t=a((o^r)&n^r,t,o,e[11],14,18,643717713),n=a((t^o)&r^o,n,t,e[0],20,12,-373897302),r=a((n^t)&o^t,r,n,e[5],5,27,-701558691),o=a((r^n)&t^n,o,r,e[10],9,23,38016083),t=a((o^r)&n^r,t,o,e[15],14,18,-660478335),n=a((t^o)&r^o,n,t,e[4],20,12,-405537848),r=a((n^t)&o^t,r,n,e[9],5,27,568446438),o=a((r^n)&t^n,o,r,e[14],9,23,-1019803690),t=a((o^r)&n^r,t,o,e[3],14,18,-187363961),n=a((t^o)&r^o,n,t,e[8],20,12,1163531501),r=a((n^t)&o^t,r,n,e[13],5,27,-1444681467),o=a((r^n)&t^n,o,r,e[2],9,23,-51403784),t=a((o^r)&n^r,t,o,e[7],14,18,1735328473),n=a((t^o)&r^o,n,t,e[12],20,12,-1926607734),i=n^t,r=a(i^o,r,n,e[5],4,28,-378558),o=a(i^r,o,r,e[8],11,21,-2022574463),f=o^r,t=a(f^n,t,o,e[11],16,16,1839030562),n=a(f^t,n,t,e[14],23,9,-35309556),i=n^t,r=a(i^o,r,n,e[1],4,28,-1530992060),o=a(i^r,o,r,e[4],11,21,1272893353),f=o^r,t=a(f^n,t,o,e[7],16,16,-155497632),n=a(f^t,n,t,e[10],23,9,-1094730640),i=n^t,r=a(i^o,r,n,e[13],4,28,681279174),o=a(i^r,o,r,e[0],11,21,-358537222),f=o^r,t=a(f^n,t,o,e[3],16,16,-722521979),n=a(f^t,n,t,e[6],23,9,76029189),i=n^t,r=a(i^o,r,n,e[9],4,28,-640364487),o=a(i^r,o,r,e[12],11,21,-421815835),f=o^r,t=a(f^n,t,o,e[15],16,16,530742520),n=a(f^t,n,t,e[2],23,9,-995338651),r=a(t^(n|~o),r,n,e[0],6,26,-198630844),o=a(n^(r|~t),o,r,e[7],10,22,1126891415),t=a(r^(o|~n),t,o,e[14],15,17,-1416354905),n=a(o^(t|~r),n,t,e[5],21,11,-57434055),r=a(t^(n|~o),r,n,e[12],6,26,1700485571),o=a(n^(r|~t),o,r,e[3],10,22,-1894986606),t=a(r^(o|~n),t,o,e[10],15,17,-1051523),n=a(o^(t|~r),n,t,e[1],21,11,-2054922799),r=a(t^(n|~o),r,n,e[8],6,26,1873313359),o=a(n^(r|~t),o,r,e[15],10,22,-30611744),t=a(r^(o|~n),t,o,e[6],15,17,-1560198380),n=a(o^(t|~r),n,t,e[13],21,11,1309151649),r=a(t^(n|~o),r,n,e[4],6,26,-145523070),o=a(n^(r|~t),o,r,e[11],10,22,-1120210379),t=a(r^(o|~n),t,o,e[2],15,17,718787259),n=a(o^(t|~r),n,t,e[9],21,11,-343485551),y[0]=r,y[1]=n,y[2]=t,y[3]=o}var u=[],d=[],A=[],h=[],l="0123456789abcdef".split(""),C=[],g=[],s=!1,v=0,w=0,y=[];if(r.Int32Array)d=new Int32Array(16),A=new Int32Array(16),h=new Int32Array(4),C=new Int32Array(4),g=new Int32Array(4),y=new Int32Array(4);else{var I;for(I=0;16>I;I++)d[I]=A[I]=0;for(I=0;4>I;I++)h[I]=C[I]=g[I]=y[I]=0}h[0]=128,h[1]=32768,h[2]=8388608,h[3]=-2147483648,C[0]=0,C[1]=8,C[2]=16,C[3]=24,r.md5=r.md5||e}("undefined"==typeof global?window:global);
+
+    bg.utils.md5 = md5;
+})();
+
+(function() {
+    function generateUUID () { // Public Domain/MIT
+        var d = new Date().getTime();
+        if (typeof performance !== 'undefined' && typeof performance.now === 'function'){
+            d += performance.now(); //use high-precision timer if available
+        }
+        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+            var r = (d + Math.random() * 16) % 16 | 0;
+            d = Math.floor(d / 16);
+            return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
+        });
+    }
+
+    bg.utils.generateUUID = generateUUID;
+})();
+bg.app = {};
+(function() {
+	
+	class Canvas {
+		constructor(domElem) {		
+			let initContext = () => {
+				this._context = bg.utils.initWebGLContext(domElem);
+				return this._context.supported;
+			}
+			
+						
+			// Attributes
+			this._domElem = domElem;
+			this._domElem.style.MozUserSelect = 'none';
+			this._domElem.style.WebkitUserSelect = 'none';
+			this._domElem.setAttribute("onselectstart","return false");
+
+			this._multisample = 1.0;
+			
+			// Initialization
+			if (!initContext()) {
+				throw new Error("Sorry, your browser does not support WebGL.");
+			}
+		}
+
+		get multisample() {
+			return this._multisample;
+		}
+
+		set multisample(ms) {
+			this._multisample = ms;
+		}
+		
+		get context() {
+			return this._context;
+		}
+		
+		get domElement() {
+			return this._domElem;
+		}
+		
+		get width() {
+			return this._domElem.clientWidth;
+		}
+		
+		get height() {
+			return this._domElem.clientHeight;
+		}
+
+		screenshot(format, width, height) {
+			let canvasStyle = "";
+			let prevSize = {}
+			if (width) {
+				height = height ? height:width;
+				canvasStyle = this.domElement.style.cssText;
+				prevSize.width = this.domElement.width;
+				prevSize.height = this.domElement.height;
+
+				this.domElement.style.cssText = "top:auto;left:auto;bottom:auto;right:auto;width:" + width + "px;height:" + height + "px;";
+				this.domElement.width = width;
+				this.domElement.height = height;
+				bg.app.MainLoop.singleton.windowController.reshape(width,height);
+				bg.app.MainLoop.singleton.windowController.postRedisplay();
+				bg.app.MainLoop.singleton.windowController.display();
+			}
+			var data = this.domElement.toDataURL(format);
+			if (width) {
+				this.domElement.style.cssText = canvasStyle;
+				this.domElement.width = prevSize.width;
+				this.domElement.height = prevSize.height;
+				bg.app.MainLoop.singleton.windowController.reshape(prevSize.width,prevSize.height);
+				bg.app.MainLoop.singleton.windowController.postRedisplay();
+				bg.app.MainLoop.singleton.windowController.display();
+			}
+			return data;
+		}
+
+	}
+	
+	bg.app.Canvas = Canvas;
+	
+	class ContextObject {
+		constructor(context) {
+			this._context = context;
+		}
+		
+		get context() { return this._context; }
+		set context(c) { this._context = c; }
+	}
+	
+	bg.app.ContextObject = ContextObject;
+})();
+(function() {
+	bg.app.SpecialKey = {
+		BACKSPACE: "Backspace",
+		TAB: "Tab",
+		ENTER: "Enter",
+		SHIFT: "Shift",
+		SHIFT_LEFT: "ShiftLeft",
+		SHIFT_RIGHT: "ShiftRight",
+		CTRL: "Control",
+		CTRL_LEFT: "ControlLeft",
+		CTRL_LEFT: "ControlRight",
+		ALT: "Alt",
+		ALT_LEFT: "AltLeft",
+		ALT_RIGHT: "AltRight",
+		PAUSE: "Pause",
+		CAPS_LOCK: "CapsLock",
+		ESCAPE: "Escape",
+		PAGE_UP: "PageUp",
+		PAGEDOWN: "PageDown",
+		END: "End",
+		HOME: "Home",
+		LEFT_ARROW: "ArrowLeft",
+		UP_ARROW: "ArrowUp",
+		RIGHT_ARROW: "ArrowRight",
+		DOWN_ARROW: "ArrowDown",
+		INSERT: "Insert",
+		DELETE: "Delete"
+	};
+	
+	class EventBase {
+		constructor() {
+			this._executeDefault = false;
+		}
+
+		get executeDefault() { return this._executeDefault; }
+		set executeDefault(d) { this._executeDefault = d; }
+	}
+	bg.app.EventBase = EventBase;
+
+	class KeyboardEvent extends EventBase {
+		static IsSpecialKey(event) {
+			return bg.app.SpecialKey[event.code]!=null;
+		}
+		
+		constructor(key,event) {
+			super();
+			this.key = key;
+			this.event = event;
+		}
+		
+		isSpecialKey() {
+			return KeyboardEvent.IsSpecialKey(this.event);
+		}
+	}
+	
+	bg.app.KeyboardEvent = KeyboardEvent;
+	
+	bg.app.MouseButton = {
+		LEFT: 0,
+		MIDDLE: 1,
+		RIGHT: 2,
+		NONE: -1
+	};
+	
+	class MouseEvent extends EventBase {
+		
+		constructor(button = bg.app.MouseButton.NONE, x=-1, y=-1, delta=0,event=null) {
+			super();
+
+			this.button = button;
+			this.x = x;
+			this.y = y;
+			this.delta = delta;
+			this.event = event;
+		}
+	}
+	
+	bg.app.MouseEvent = MouseEvent;
+	
+	class TouchEvent extends EventBase  {
+		constructor(touches,event) {
+			super();
+			this.touches = touches;
+			this.event = event;
+		}
+	}
+	
+	bg.app.TouchEvent = TouchEvent;
+	
+})();
+(function() {
+	let s_mainLoop = null;
+	let s_mouseStatus = {
+		leftButton:false,
+		middleButton:false,
+		rightButton:false,
+		pos: {
+			x:-1,
+			y:-1
+		}	
+	}
+	Object.defineProperty(s_mouseStatus, "anyButton", {
+		get: function() {
+			return this.leftButton || this.middleButton || this.rightButton;
+		}
+	});
+	let s_delta = -1;
+	
+	class Mouse {
+		static LeftButton() { return s_mouseStatus.leftButton; }
+		static MiddleButton() { return s_mouseStatus.middleButton; }
+		static RightButton() { return s_mouseStatus.rightButton; }
+		static Position() { return s_mouseStatus.pos; }
+	}
+	
+	bg.app.Mouse = Mouse;
+	
+	bg.app.FrameUpdate = {
+		AUTO: 0,
+		MANUAL: 1
+	};
+	
+	class MainLoop {
+		constructor() {
+			this._canvas = null;
+			this._windowController = null;
+			this._updateMode = bg.app.FrameUpdate.AUTO;
+			this._redisplayFrames = 1;
+			bg.bindImageLoadEvent(() => {
+				this.postRedisplay();
+			});
+		}
+		
+		get canvas() { return this._canvas; }
+		set canvas(c) {
+			this._canvas = new bg.app.Canvas(c);
+		}
+		get windowController() { return this._windowController; }
+		get updateMode() { return this._updateMode; }
+		set updateMode(m) {
+			this._updateMode = m;
+			if (this._updateMode==bg.app.FrameUpdate.AUTO) {
+				this._redisplayFrames = 1;
+			}
+		}
+		get redisplay() { return this._redisplayFrames>0; }
+		get mouseButtonStatus() { return s_mouseStatus; }
+		
+		run(windowController) {
+			this._windowController = windowController;
+			this.postRedisplay();
+			this.windowController.init();
+			initEvents();
+			animationLoop();
+		}
+		
+		// 4 frames to ensure that the reflections are fully updated
+		postRedisplay(frames=4) {
+			this._redisplayFrames = frames;
+		}
+		
+		postReshape() {
+			onResize();
+		}
+	}
+	
+	let lastTime = 0;
+	function animationLoop(totalTime) {
+		totalTime = totalTime || 0;
+		requestAnimFrame(animationLoop);
+		let elapsed = totalTime - lastTime;
+		lastTime = totalTime;
+		onUpdate(elapsed);
+	}
+
+	function initEvents() {
+		onResize();
+		
+		window.addEventListener("resize", function(evt) { onResize(); });
+		
+		if (s_mainLoop.canvas) {
+			let c = s_mainLoop.canvas.domElement;
+			c.addEventListener("mousedown", function(evt) {
+				if (!onMouseDown(evt).executeDefault) {
+					evt.preventDefault();
+					return false;
+				}
+			});
+			c.addEventListener("mousemove", function(evt) {
+				if (!onMouseMove(evt).executeDefault) {
+					evt.preventDefault();
+					return false;
+				}
+			});
+			c.addEventListener("mouseout", function(evt) {
+				if (!onMouseOut(evt).executeDefault) {
+					evt.preventDefault();
+					return false;
+				}
+			});
+			c.addEventListener("mouseover", function(evt) {
+				if (!onMouseOver(evt).executeDefault) {
+					evt.preventDefault();
+					return false;
+				}
+			});
+			c.addEventListener("mouseup", function(evt) {
+				if (!onMouseUp(evt).executeDefault) { 
+					evt.preventDefault();
+					return false;
+				}
+			});
+			
+			c.addEventListener("touchstart", function(evt) {
+				if (!onTouchStart(evt).executeDefault) {
+					evt.preventDefault();
+					return false;
+				}
+			});
+			c.addEventListener("touchmove", function(evt) {
+				if (!onTouchMove(evt).executeDefault) {
+					evt.preventDefault();
+					return false;
+				}
+			});
+			c.addEventListener("touchend", function(evt) {
+				if (!onTouchEnd(evt).executeDefault) { 
+					evt.preventDefault();
+					return false;
+				}
+			});
+			
+			var mouseWheelEvt = (/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel";
+			c.addEventListener(mouseWheelEvt, function(evt) {
+				if (!onMouseWheel(evt).executeDefault) {
+					evt.preventDefault();
+					return false;
+				}
+			});
+			
+			window.addEventListener("keydown", function(evt) { onKeyDown(evt); });
+			window.addEventListener("keyup", function(evt) { onKeyUp(evt); });
+			
+			c.oncontextmenu = function(e) { return false; };
+		}
+		else {
+			throw new Error("Configuration error in MainLoop: no canvas defined");
+		}
+	}
+	
+	function onResize() {
+		if (s_mainLoop.canvas && s_mainLoop.windowController) {
+			let multisample = s_mainLoop.canvas.multisample;
+			s_mainLoop.canvas.domElement.width = s_mainLoop.canvas.width * multisample;
+			s_mainLoop.canvas.domElement.height = s_mainLoop.canvas.height * multisample; 
+			s_mainLoop.windowController.reshape(s_mainLoop.canvas.width * multisample, s_mainLoop.canvas.height * multisample);
+		}
+	}
+	
+	function onUpdate(elapsedTime) {
+		if (s_mainLoop.redisplay) {
+			//if (s_delta==-1) s_delta = Date.now();
+			//s_mainLoop.windowController.frame((Date.now() - s_delta) * 2);
+			//s_delta = Date.now();
+			s_mainLoop.windowController.frame(elapsedTime);
+			if (s_mainLoop.updateMode==bg.app.FrameUpdate.AUTO) {
+				s_mainLoop._redisplayFrames = 1;
+			}
+			else {
+				s_mainLoop._redisplayFrames--;
+			}
+			s_mainLoop.windowController.display();
+		}
+	}
+	
+	function onMouseDown(event) {
+		let offset = s_mainLoop.canvas.domElement.getBoundingClientRect();
+		let multisample = s_mainLoop.canvas.multisample;
+		s_mouseStatus.pos.x = (event.clientX - offset.left) * multisample;
+		s_mouseStatus.pos.y = (event.clientY - offset.top) * multisample;
+		switch (event.button) {
+			case bg.app.MouseButton.LEFT:
+				s_mouseStatus.leftButton = true;
+				break;
+			case bg.app.MouseButton.MIDDLE:
+				s_mouseStatus.middleButton = true;
+				break;
+			case bg.app.MouseButton.RIGHT:
+				s_mouseStatus.rightButton = true;
+				break;
+		}
+
+		let bgEvent = new bg.app.MouseEvent(event.button,s_mouseStatus.pos.x,s_mouseStatus.pos.y,0,event);
+		s_mainLoop.windowController.mouseDown(bgEvent);
+		return bgEvent;
+	}
+	
+	function onMouseMove(event) {
+		let offset = s_mainLoop.canvas.domElement.getBoundingClientRect();
+		let multisample = s_mainLoop.canvas.multisample;
+		s_mouseStatus.pos.x = (event.clientX - offset.left) * multisample;
+		s_mouseStatus.pos.y = (event.clientY - offset.top) * multisample;
+		let evt = new bg.app.MouseEvent(bg.app.MouseButton.NONE,
+										s_mouseStatus.pos.x,
+										s_mouseStatus.pos.y,
+										0,
+										event);
+		s_mainLoop.windowController.mouseMove(evt);
+		if (s_mouseStatus.anyButton) {
+			s_mainLoop.windowController.mouseDrag(evt);
+		}
+		return evt;
+	}
+	
+	function onMouseOut() {
+		let bgEvt = new bg.app.MouseEvent(bg.app.MouseButton.NONE,s_mouseStatus.pos.x,s_mouseStatus.pos.y,0,{});
+		s_mainLoop.windowController.mouseOut(bgEvt);
+		if (s_mouseStatus.leftButton) {
+			s_mouseStatus.leftButton = false;
+			bgEvt = new bg.app.MouseEvent(bg.app.MouseButton.LEFT,s_mouseStatus.pos.x,s_mouseStatus.pos.y,0,{});
+			s_mainLoop.windowController.mouseUp(bgEvt);
+		}
+		if (s_mouseStatus.middleButton) {
+			s_mouseStatus.middleButton = false;
+			bgEvt = new bg.app.MouseEvent(bg.app.MouseButton.MIDDLE,s_mouseStatus.pos.x,s_mouseStatus.pos.y,0,{});
+			s_mainLoop.windowController.mouseUp(bgEvt);
+		}
+		if (s_mouseStatus.rightButton) {
+			bgEvt = new bg.app.MouseEvent(bg.app.MouseButton.RIGHT,s_mouseStatus.pos.x,s_mouseStatus.pos.y,0,{});
+			s_mainLoop.windowController.mouseUp(bgEvt);
+			s_mouseStatus.rightButton = false;
+		}
+		return bgEvt;
+	}
+	
+	function onMouseOver(event) {
+		return onMouseMove(event);
+	}
+	
+	function onMouseUp(event) {
+		switch (event.button) {
+			case bg.app.MouseButton.LEFT:
+				s_mouseStatus.leftButton = false;
+				break;
+			case bg.app.MouseButton.MIDDLE:
+				s_mouseStatus.middleButton = false;
+				break;
+			case bg.app.MouseButton.RIGHT:
+				s_mouseStatus.rightButton = false;
+				break;
+		}
+		let offset = s_mainLoop.canvas.domElement.getBoundingClientRect();
+		let multisample = s_mainLoop.canvas.multisample;
+		s_mouseStatus.pos.x = (event.clientX - offset.left) * multisample;
+		s_mouseStatus.pos.y = (event.clientY - offset.top) * multisample;
+		let bgEvt = new bg.app.MouseEvent(event.button,s_mouseStatus.pos.x,s_mouseStatus.pos.y,0,event)
+		s_mainLoop.windowController.mouseUp(bgEvt);
+		return bgEvt;
+	}
+	
+	function onMouseWheel(event) {
+		let offset = s_mainLoop.canvas.domElement.getBoundingClientRect();
+		let multisample = s_mainLoop.canvas.multisample;
+		s_mouseStatus.pos.x = (event.clientX - offset.left) * multisample;
+		s_mouseStatus.pos.y = (event.clientY - offset.top) * multisample;
+		let delta = event.wheelDelta ? event.wheelDelta * -1:event.detail * 10;
+		let bgEvt = new bg.app.MouseEvent(bg.app.MouseButton.NONE,s_mouseStatus.pos.x,s_mouseStatus.pos.y,delta,event)
+		s_mainLoop.windowController.mouseWheel(bgEvt);
+		return bgEvt;
+	}
+	
+    function getTouchEvent(event) {
+        let offset = s_mainLoop.canvas.domElement.getBoundingClientRect();
+        let touches = [];
+        for (let i=0; i<event.touches.length; ++i) {
+            let touch = event.touches[i];
+            touches.push({
+                identifier: touch.identifier,
+                x: touch.clientX - offset.left,
+                y: touch.clientY - offset.top,
+                force: touch.force,
+                rotationAngle: touch.rotationAngle,
+                radiusX: touch.radiusX,
+                radiusY: touch.radiusY
+            });
+        }
+        return new bg.app.TouchEvent(touches,event);
+    }
+    
+	function onTouchStart(event) {
+		let bgEvt = getTouchEvent(event)
+        s_mainLoop.windowController.touchStart(bgEvt);
+		return bgEvt;
+	}
+	
+	function onTouchMove(event) {
+		let bgEvt = getTouchEvent(event)
+		s_mainLoop.windowController.touchMove(bgEvt);
+		return bgEvt;
+	}
+	
+	function onTouchEnd(event) {
+		let bgEvt = getTouchEvent(event)
+		s_mainLoop.windowController.touchEnd(bgEvt);
+		return bgEvt;
+	}
+	
+	function onKeyDown(event) {
+		let code = bg.app.KeyboardEvent.IsSpecialKey(event) ? 	event.keyCode:
+																event.code;
+		s_mainLoop.windowController.keyDown(new bg.app.KeyboardEvent(code,event));
+	}
+	
+	function onKeyUp(event) {
+		let code = bg.app.KeyboardEvent.IsSpecialKey(event) ? 	event.keyCode:
+																event.code;
+		s_mainLoop.windowController.keyUp(new bg.app.KeyboardEvent(code,event));
+	}
+	
+	bg.app.MainLoop = {};
+	
+	Object.defineProperty(bg.app.MainLoop,"singleton",{
+		get: function() {
+			if (!s_mainLoop) {
+				s_mainLoop = new MainLoop();
+			}
+			return s_mainLoop;
+		}
+	});
+
+})();
+
+(function() {
+	class WindowController extends bg.LifeCycle {
+		// Functions from LifeCycle:
+		// init()
+		// frame(delta)
+		// display()
+		// reshape(width,height)
+		// keyDown(evt)
+		// keyUp(evt)
+		// mouseUp(evt)
+		// mouseDown(evt)
+		// mouseMove(evt)
+		// mouseOut(evt)
+		// mouseDrag(evt)
+		// mouseWheel(evt)
+		// touchStart(evt)
+		// touchMove(evt)
+		// touchEnd(evt)
+		
+		// 4 frames to ensure that the reflections are fully updated
+		postRedisplay(frames=4) {
+			bg.app.MainLoop.singleton.postRedisplay(frames);
+		}
+		
+		postReshape() {
+			bg.app.MainLoop.singleton.postReshape();
+		}
+		
+		get canvas() {
+			return bg.app.MainLoop.singleton.canvas;
+		}
+		
+		get context() {
+			return bg.app.MainLoop.singleton.canvas.context;
+		}
+		
+		get gl() {
+			return bg.app.MainLoop.singleton.canvas.context.gl;
+		}
+	}
+	
+	bg.app.WindowController = WindowController;
+})();
+bg.base = {}
+
+bg.s_log = [];
+bg.log = function(l) {
+	if (console.log) console.log(l);
+	bg.s_log.push(l);
+};
+
+bg.flushLog = function() {
+	if (console.log) {
+		bg.s_log.forEach(function(l) {
+			console.log(l);
+		});
+	}
+	bg.s_log = [];
+};
+
+bg.emitImageLoadEvent = function(img) {
+	let event = new CustomEvent("bg2e:image-load", { image:img });
+	document.dispatchEvent(event);
+};
+
+bg.bindImageLoadEvent = function(callback) {
+	document.addEventListener("bg2e:image-load",callback);
+};
+
+bg.Axis = {
+	NONE: 0,
+	X: 1,
+	Y: 2,
+	Z: 3
+};
+
+Object.defineProperty(bg, "isElectronApp", {
+	get: function() {
+		return typeof module !== 'undefined' && module.exports && true;
+	}
+});
+
+
+(function() {
+	class Effect extends bg.app.ContextObject {
+		constructor(context) {
+			super(context);
+			this._shader = null;
+			this._inputVars = [];
+		}
+		
+		/*
+		 * Override the following functions to create a custom effect:
+		 * 	get inputVars(): returns an object with the input attribute for each
+		 * 					 vertex buffer in the shader
+		 *  get shader(): 	 create and initialize the shader if not exists
+		 *  setupVars():	 bind the input vars in the shader
+		 */
+		get inputVars() {
+			// Return the corresponding names for input vars
+			//this._inputVars = {
+			//	vertex:null,
+			//	normal:null,
+			//	tex0:null,
+			//	tex1:null,
+			//	tex2:null,
+			//	color:null,
+			//	tangent:null
+			//};
+			
+			return this._inputVars;
+		}
+		
+		get shader() {
+			// Create and initialize the shader if not exists.
+			return this._shader;
+		}
+		
+		// Automatic method: with ShaderSource objects it isn't necesary to
+		// overrdide the previous functions
+		setupShaderSource(sourceArray) {
+			this._shader = new bg.base.Shader(this.context);
+			this._inputVars = [];
+			let inputAttribs = [];
+			let inputVars = [];
+			
+			sourceArray.forEach((source) => {
+				source.params.forEach((param) => {
+					if (param) {
+						if (param.role=="buffer") {
+							this._inputVars[param.target] = param.name;
+							inputAttribs.push(param.name);
+						}
+						else if (param.role=="value") {
+							inputVars.push(param.name);
+						}
+					}
+				});
+				
+				this._shader.addShaderSource(source.type,source.toString());
+			});
+			this._shader.link();
+			if (!this._shader.status) {
+				bg.log(this._shader.compileError);
+				if (this._shader.compileErrorSource) {
+					bg.log("Shader source:");
+					bg.log(this._shader.compileErrorSource);
+				}
+				bg.log(this._shader.linkError);
+			}
+			else {
+				this._shader.initVars(inputAttribs,inputVars);
+			}
+		}
+		
+		// This function is used to setup shader variables that are the same for all
+		// scene object, such as lights or color correction
+		beginDraw() {
+			
+		}
+		
+		// This function is called before draw each polyList. The material properties will be
+		// set in this.material
+		setupVars() {
+			// pass the input vars values to this.shader
+		}
+		
+		setActive() {
+			this.shader.setActive();
+			this.beginDraw();
+		}
+		
+		clearActive() {
+			this.shader.clearActive();
+		}
+		
+		bindPolyList(plist) {
+			var s = this.shader;			
+			if (this.inputVars.vertex) {
+				s.setInputBuffer(this.inputVars.vertex, plist.vertexBuffer, 3);
+			}
+			if (this.inputVars.normal) {
+				s.setInputBuffer(this.inputVars.normal, plist.normalBuffer, 3);
+			}
+			if (this.inputVars.tex0) {
+				s.setInputBuffer(this.inputVars.tex0, plist.texCoord0Buffer, 2);
+			}
+			if (this.inputVars.tex1) {
+				s.setInputBuffer(this.inputVars.tex1, plist.texCoord1Buffer, 2);
+			}
+			if (this.inputVars.tex2) {
+				s.setInputBuffer(this.inputVars.tex2, plist.texCoord2Buffer, 2);
+			}
+			if (this.inputVars.color) {
+				s.setInputBuffer(this.inputVars.color, plist.colorBuffer, 4);
+			}
+			if (this.inputVars.tangent) {
+				s.setInputBuffer(this.inputVars.tangent, plist.tangentBuffer, 3);
+			}
+			this.setupVars();
+		}
+		
+		unbind() {
+			var s = this.shader;	
+			if (this.inputVars.vertex) {
+				s.disableInputBuffer(this.inputVars.vertex);
+			}
+			if (this.inputVars.normal) {
+				s.disableInputBuffer(this.inputVars.normal);
+			}
+			if (this.inputVars.tex0) {
+				s.disableInputBuffer(this.inputVars.tex0);
+			}
+			if (this.inputVars.tex1) {
+				s.disableInputBuffer(this.inputVars.tex1);
+			}
+			if (this.inputVars.tex2) {
+				s.disableInputBuffer(this.inputVars.tex2);
+			}
+			if (this.inputVars.color) {
+				s.disableInputBuffer(this.inputVars.color);
+			}
+			if (this.inputVars.tangent) {
+				s.disableInputBuffer(this.inputVars.tangent);
+			}
+		}		
+	}
+	
+	bg.base.Effect = Effect;
+	
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+	
+	class TextureEffect extends Effect {
+		constructor(context) {
+			super(context);
+
+			this._frame = new bg.base.PolyList(context);
+			
+			this._frame.vertex = [ 1, 1, 0, -1, 1, 0, -1,-1, 0,1,-1, 0 ];
+			this._frame.texCoord0 = [ 1, 1, 0, 1, 0, 0, 1, 0 ];
+			this._frame.index = [ 0, 1, 2,  2, 3, 0 ];
+			
+			this._frame.build();
+			
+			this.rebuildShaders();
+		}
+
+		rebuildShaders() {
+			this.setupShaderSource([
+				this.vertexShaderSource,
+				this.fragmentShaderSource
+			]);
+		}
+		
+		get vertexShaderSource() {
+			if (!this._vertexShaderSource) {
+				this._vertexShaderSource = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+				this._vertexShaderSource.addParameter([
+					lib().inputs.buffers.vertex,
+					lib().inputs.buffers.tex0,
+					{ name:"fsTexCoord", dataType:"vec2", role:"out" }
+				]);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					this._vertexShaderSource.setMainBody(`
+					gl_Position = vec4(inVertex,1.0);
+					fsTexCoord = inTex0;`);
+				}
+			}
+			return this._vertexShaderSource;
+		}
+		
+		get fragmentShaderSource() {
+			if (!this._fragmentShaderSource) {
+				this._fragmentShaderSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+				this._fragmentShaderSource.addParameter(
+					{ name:"fsTexCoord", dataType:"vec2", role:"in" }
+				);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					this._fragmentShaderSource.setMainBody(`
+					gl_FragColor = vec4(1.0,0.0,0.0,1.0);`);
+				}
+			}
+			return this._fragmentShaderSource;
+		}
+		
+		//setupVars() {
+		// this._surface contains the surface passed to drawSurface
+		//}
+
+		drawSurface(surface) {
+			this.setActive();
+			this._surface = surface;
+			this.bindPolyList(this._frame);
+			this._frame.draw();
+			this.unbind();
+			this.clearActive();
+		}
+		
+	}
+	
+	bg.base.TextureEffect = TextureEffect;
+	
+})();
+(function() {
+	
+	class LoaderPlugin {
+				
+		acceptType(url,data) { return false; }
+		load(context,url,data) {
+			return new Promise((resolve,reject) => {
+				reject(new Error("Not implemented"));
+			});
+		}
+		
+	}
+	
+	bg.base.LoaderPlugin = LoaderPlugin;
+	
+	let s_loaderPlugins = [];
+	
+	function loadUrl(context,url,onProgress = null,extraData = null) {
+		return new Promise((accept,reject) => {
+			bg.utils.Resource.Load(url,onProgress)
+				.then(function(data) {
+					return Loader.LoadData(context,url,data,extraData);
+				})
+				
+				.then((result,extendedData) => {
+					accept(result,extendedData);
+				})
+				
+				.catch(function(err) {
+					reject(err);
+				});
+		});
+	}
+
+	function loadUrlArray(context,url,onProgress = null,extraData = null) {
+		return new Promise((accept,reject) => {
+			bg.utils.Resource.LoadMultiple(url,onProgress)
+				.then((result) => {
+					let promises = [];
+
+					for (let itemUrl in result) {
+						let data = result[itemUrl];
+						promises.push(loadData(context,itemUrl,data,extraData));
+					}
+
+					return Promise.all(promises);
+				})
+				.then((loadedResults) => {
+					let resolvedData = {}
+					url.forEach((itemUrl,index) => {
+						resolvedData[itemUrl] = loadedResults[index];
+					})
+					accept(resolvedData);
+				})
+				.catch((err) => {
+					reject(err);
+				})
+		})
+	}
+
+	function loadData(context,url,data,extraData = null) {
+		return new Promise((accept,reject) => {
+			let selectedPlugin = null;
+			s_loaderPlugins.some((plugin) => {
+				if (plugin.acceptType(url,data)) {
+					selectedPlugin = plugin;
+					return true;
+				}
+			})
+			
+			if (selectedPlugin) {
+				if (!extraData) {
+					extraData = {};
+				}
+				accept(selectedPlugin.load(context,url,data,extraData));
+			}
+			else {
+				return reject(new Error("No suitable plugin found for load " + url));
+			}
+		});
+	}
+
+	class Loader {
+		static RegisterPlugin(p) { s_loaderPlugins.push(p); }
+		
+		static Load(context,url,onProgress = null,extraData = null) {
+			if (Array.isArray(url)) {
+				return loadUrlArray(context,url,onProgress,extraData);
+			}
+			else {
+				return loadUrl(context,url,onProgress,extraData);
+			}
+		}
+		
+		static LoadData(context,url,data,extraData = null) {
+			return loadData(context,url,data,extraData);
+		}
+	}
+	
+	bg.base.Loader = Loader;
+	
+})();
+(function() {
+    // NOTE: All the writer functions and classes are intended to be used
+    // only in an Electron.js application
+    if (!bg.isElectronApp) {
+        return false;
+    }
+
+    class WriterPlugin {
+        acceptType(url,data) { return false; }
+        write(url,data) {}
+    }
+
+    bg.base.WriterPlugin = WriterPlugin;
+
+    let s_writerPlugins = [];
+
+    class Writer {
+        static RegisterPlugin(p) { s_writerPlugins.push(p); }
+
+        static Write(url,data) {
+            return new Promise((resolve,reject) => {
+                let selectedPlugin = null;
+                s_writerPlugins.some((plugin) => {
+                    if (plugin.acceptType(url,data)) {
+                        selectedPlugin = plugin;
+                        return true;
+                    }
+                });
+
+                if (selectedPlugin) {
+                    resolve(selectedPlugin.write(url,data));
+                }
+                else {
+                    reject(new Error("No suitable plugin found for write " + url));
+                }
+            })
+        }
+
+        static PrepareDirectory(dir) {
+            let targetDir = Writer.ToSystemPath(dir);
+            const fs = require('fs');
+            const path = require('path');
+            const sep = path.sep;
+            const initDir = path.isAbsolute(targetDir) ? sep : '';
+            targetDir.split(sep).reduce((parentDir,childDir) => {
+                const curDir = path.resolve(parentDir, childDir);
+                if (!fs.existsSync(curDir)) {
+                    fs.mkdirSync(curDir);
+                }
+                return curDir;
+            }, initDir);
+        }
+
+        static StandarizePath(inPath) {
+            return inPath.replace(/\\/g,'/');
+        }
+
+        static ToSystemPath(inPath) {
+            const path = require('path');
+            const sep = path.sep;
+            return inPath.replace(/\\/g,sep).replace(/\//g,sep);
+        }
+
+        static CopyFile(source,target) {
+            return new Promise((resolve,reject) => {
+                const fs = require("fs");
+                const path = require("path");
+                let cbCalled = false;
+
+                source = Writer.StandarizePath(path.resolve(source));
+                target = Writer.StandarizePath(path.resolve(target));
+                
+                if (source==target) {
+                    resolve();
+                }
+                else {
+                    let rd = fs.createReadStream(source);
+                    rd.on("error", function(err) {
+                        done(err);
+                    });
+                    let wr = fs.createWriteStream(target);
+                    wr.on("error", function(err) {
+                        done(err);
+                    });
+                    wr.on("close", function(ex) {
+                        done();
+                    });
+                    rd.pipe(wr);
+                
+                    function done(err) {
+                        if (!cbCalled) {
+                            err ? reject(err) : resolve();
+                            cbCalled = true;
+                        }
+                    }
+                }
+            })
+        }
+    }
+
+    bg.base.Writer = Writer;
+})();
+(function() {
+    // NOTE: this plugin is intended to be used only in an Electron.js app
+    if (!bg.isElectronApp) {
+        return false;
+    }
+
+    let fs = require('fs');
+    let path = require('path');
+
+    function writeTexture(texture,fileData) {
+        if (texture) {
+            let dstPath = bg.base.Writer.StandarizePath(fileData.path).split("/");
+            dstPath.pop();
+            let paths = {
+                src: bg.base.Writer.StandarizePath(texture.fileName),
+                dst: null
+            };
+
+            let srcFileName = paths.src.split("/").pop();
+            dstPath.push(srcFileName);
+            dstPath = dstPath.join("/");
+            paths.dst = dstPath;
+
+            if (paths.src!=paths.dst) {
+                fileData.copyFiles.push(paths);
+            }
+            return srcFileName;
+        }
+        else {
+            return "";
+        }
+    }
+    function getMaterialString(fileData) {
+        let mat = [];
+        fileData.node.drawable.forEach((plist,material) => {
+            mat.push({
+                "name": plist.name,
+                "class": "GenericMaterial",
+
+                "diffuseR": material.diffuse.r,
+                "diffuseG": material.diffuse.g,
+                "diffuseB": material.diffuse.b,
+                "diffuseA": material.diffuse.a,
+
+                "specularR": material.specular.r,
+                "specularG": material.specular.g,
+                "specularB": material.specular.b,
+                "specularA": material.specular.a,
+
+                "shininess": material.shininess,
+                "refractionAmount": material.refractionAmount,
+                "reflectionAmount": material.reflectionAmount,
+                "lightEmission": material.lightEmission,
+
+                "textureOffsetX": material.textureOffset.x,
+                "textureOffsetY": material.textureOffset.y,
+                "textureScaleX": material.textureScale.x,
+                "textureScaleY": material.textureScale.y,
+
+                "lightmapOffsetX": material.lightmapOffset.x,
+                "lightmapOffsetY": material.lightmapOffset.y,
+                "lightmapScaleX": material.lightmapScale.x,
+                "lightmapScaleY": material.lightmapScale.y,
+
+                "normalMapOffsetX": material.normalMapOffset.x,
+                "normalMapOffsetY": material.normalMapOffset.y,
+                "normalMapScaleX": material.normalMapScale.x,
+                "normalMapScaleY": material.normalMapScale.y,
+
+                "castShadows": material.castShadows,
+                "receiveShadows": material.receiveShadows,
+
+                "alphaCutoff": material.alphaCutoff,
+
+                "shininessMaskChannel": material.shininessMaskChannel,
+                "invertShininessMask": material.shininessMaskInvert,
+                "lightEmissionMaskChannel": material.lightEmissionMaskChannel,
+                "invertLightEmissionMask": material.lightEmissionMaskInvert,
+
+                "displacementFactor": 0,
+                "displacementUV": 0,
+                "tessDistanceFarthest": 40.0,
+                "tessDistanceFar": 30.0,
+                "tessDistanceNear": 15.0,
+                "tessDistanceNearest": 8.0,
+                "tessFarthestLevel": 1,
+                "tessFarLevel": 1,
+                "tessNearLevel": 1,
+                "tessNearestLevel": 1,
+
+                "reflectionMaskChannel": material.reflectionMaskChannel,
+                "invertReflectionMask": material.reflectionMaskInvert,
+
+                "roughness": material.roughness,
+                "roughnessMaskChannel": material.roughnessMaskChannel,
+                "invertRoughnessMask": material.roughnessMaskInvert,
+
+                "cullFace": material.cullFace,
+
+                "unlit": material.unlit,
+
+                "texture": writeTexture(material.texture,fileData),
+                "lightmap": writeTexture(material.lightmap,fileData),
+                "normalMap": writeTexture(material.normalMap,fileData),
+                "shininessMask": writeTexture(material.shininessMask,fileData),
+                "lightEmissionMask": writeTexture(material.lightEmissionMask,fileData),
+                "displacementMap": "",
+                "reflectionMask": writeTexture(material.reflectionMask,fileData),
+                "roughnessMask": writeTexture(material.roughnessMask,fileData),
+                "visible": plist.visible,
+                "visibleToShadows": plist.visibleToShadows,
+                "groupName": plist.groupName
+            });
+        });
+        return JSON.stringify(mat);
+    }
+
+    function getJointString(fileData) {
+        let joints = {};
+        let inJoint = fileData.node.component("bg.scene.InputChainJoint");
+        let outJoint = fileData.node.component("bg.scene.OutputChainJoint");
+        if (inJoint) {
+            joints.input = {
+                "type":"LinkJoint",
+                "offset":[
+                    inJoint.joint.offset.x,
+                    inJoint.joint.offset.y,
+                    inJoint.joint.offset.z
+                ],
+                "pitch": inJoint.joint.pitch,
+                "roll": inJoint.joint.roll,
+                "yaw": inJoint.joint.yaw
+            };
+        }
+        if (outJoint) {
+            joints.output = [{
+                "type":"LinkJoint",
+                "offset":[
+                    outJoint.joint.offset.x,
+                    outJoint.joint.offset.y,
+                    outJoint.joint.offset.z
+                ],
+                "pitch": outJoint.joint.pitch,
+                "roll": outJoint.joint.roll,
+                "yaw": outJoint.joint.yaw
+            }];
+        }
+        return JSON.stringify(joints);
+    }
+
+    function ensurePolyListName(fileData) {
+        let plistNames = [];
+        let plIndex = 0;
+        fileData.node.drawable.forEach((plist,matName) => {
+            let plName = plist.name;
+            if (!plName || plistNames.indexOf(plName)!=-1) {
+                do {
+                    plName = "polyList_" + plIndex;
+                    ++plIndex;
+                }
+                while (plistNames.indexOf(plName)!=-1);
+                plist.name = plName;
+            }
+            plistNames.push(plName);
+        });
+    }
+
+    class FileData {
+        constructor(path,node) {
+            this._path = path;
+            this._node = node;
+            this._copyFiles = [];
+            this._stream = fs.createWriteStream(path);
+        }
+
+        get path() { return this._path; }
+        get node() { return this._node; }
+        get copyFiles() { return this._copyFiles; }
+
+        get stream() { return this._stream; }
+
+        writeUInt(number) {
+            let buffer = Buffer.alloc(4);
+            buffer.writeUInt32BE(number,0);
+            this.stream.write(buffer);
+        }
+        
+        writeBlock(blockName) {
+            this.stream.write(Buffer.from(blockName,"utf-8"));
+        }
+
+        writeString(stringData) {
+            this.writeUInt(stringData.length);
+            this.stream.write(Buffer.from(stringData,"utf-8"));
+        }
+
+        writeBuffer(name,arrayBuffer) {
+            this.writeBlock(name);
+            this.writeUInt(arrayBuffer.length);
+            let buffer = Buffer.alloc(4 * arrayBuffer.length);
+            if (name=="indx") {
+                arrayBuffer.forEach((d,i) => buffer.writeUInt32BE(d,i * 4));
+            }
+            else {
+                arrayBuffer.forEach((d,i) => buffer.writeFloatBE(d,i * 4));
+            }
+            this.stream.write(buffer);
+        }
+
+        writeTextures() {
+            let promises = [];
+            this.copyFiles.forEach((copyData) => {
+                promises.push(new Promise((resolve,reject) => {
+                    let rd = fs.createReadStream(copyData.src);
+                    rd.on('error',rejectCleanup);
+                    let wr = fs.createWriteStream(copyData.dst);
+                    wr.on('error',rejectCleanup);
+                    function rejectCleanup(err) {
+                        rd.destroy();
+                        wr.end();
+                        reject(err);
+                    }
+                    wr.on('finish',resolve);
+                    rd.pipe(wr);
+                }))
+            });
+            return Promise.all(promises);
+        }
+    }
+
+    function writeHeader(fileData) {
+        let buffer = Buffer.alloc(4);
+        [
+            0,  // big endian
+            1,  // major version
+            2,  // minor version
+            0   // review
+        ].forEach((d,i) => buffer.writeInt8(d,i));
+        fileData.stream.write(buffer);
+        
+        // Header 
+        fileData.writeBlock("hedr");
+
+        // Ensure that all poly list have name and material name
+        ensurePolyListName(fileData);
+
+        // Number of polyLists
+        let drw = fileData.node.drawable;
+        let plistItems = 0;
+        drw.forEach(() => plistItems++);
+        fileData.writeUInt(plistItems);
+
+        // Material header
+        fileData.writeBlock("mtrl");
+        fileData.writeString(getMaterialString(fileData));
+
+        // Joints header
+        fileData.writeBlock("join");
+        fileData.writeString(getJointString(fileData));
+    }
+
+    function writePolyList(fileData,plist,material,trx) {
+        //let buffer = Buffer.alloc(4);
+        //fileData.stream.write(Buffer.from("plst","utf-8")); // poly list
+        fileData.writeBlock("plst");
+
+        // Poly list name
+        fileData.writeBlock("pnam");
+        fileData.writeString(plist.name);
+
+        // Material name, the same as plist name in version 1.2.0
+        fileData.writeBlock("mnam");
+        fileData.writeString(plist.name);
+
+        fileData.writeBuffer("varr",plist.vertex);
+        fileData.writeBuffer("narr",plist.normal);
+        fileData.writeBuffer("t0ar",plist.texCoord0);
+        fileData.writeBuffer("t1ar",plist.texCoord1);
+        fileData.writeBuffer("indx",plist.index);
+    }
+
+    function writeNode(fileData) {
+       writeHeader(fileData);
+       fileData.node.drawable.forEach((plist,mat,trx) => {
+           writePolyList(fileData,plist,mat,trx);
+       });
+       fileData.writeBlock("endf");
+       fileData.stream.end();
+    }
+
+    class Bg2WriterPlugin extends bg.base.WriterPlugin {
+        acceptType(url,data) {
+            let ext = url.split(".").pop();
+            return /bg2/i.test(ext) || /vwglb/i.test(ext);
+        }
+
+        write(url,data) {
+            return new Promise((resolve,reject) => {
+                if (!data || !data instanceof bg.scene.Node || !data.drawable) {
+                    reject(new Error("Invalid data format. Expecting scene node."));
+                }
+                let fileData = new FileData(url,data);
+
+                try {
+                    writeNode(fileData);
+                    fileData.writeTextures()
+                        .then(() => resolve())
+                        .catch((err) => reject(err));
+                }
+                catch (err) {
+                    reject(err);
+                }
+            })
+        }
+    }
+
+    bg.base.Bg2WriterPlugin = Bg2WriterPlugin;
+})();
+(function() {
+
+    class Bg2matLoaderPlugin extends bg.base.LoaderPlugin {
+        acceptType(url,data) {
+            return bg.utils.Resource.GetExtension(url)=="bg2mat";
+        }
+
+        load(context,url,data) {
+            return new Promise((resolve,reject) => {
+                if (data) {
+                    try {
+                        if (typeof(data)=="string") {
+                            data = JSON.parse(data);
+                        }
+                        let promises = [];
+                        let basePath = url.substring(0,url.lastIndexOf('/')+1);
+
+                        data.forEach((matData) => {
+                            promises.push(bg.base.Material.FromMaterialDefinition(context,matData,basePath));
+                        });
+
+                        Promise.all(promises)
+                            .then((result) => {
+                                resolve(result);
+                            });
+                    }
+                    catch(e) {
+                        reject(e);
+                    }
+                }
+                else {
+                    reject(new Error("Error loading material. Data is null."));
+                }
+            });
+        }
+    }
+
+    bg.base.Bg2matLoaderPlugin = Bg2matLoaderPlugin;
+
+})();
+(function() {
+	
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+
+	class DrawTextureEffect extends bg.base.TextureEffect {
+		constructor(context) {
+			super(context);
+			
+			let vertex = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+			let fragment = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+			vertex.addParameter([
+				lib().inputs.buffers.vertex,
+				lib().inputs.buffers.tex0,
+				{ name:"fsTexCoord", dataType:"vec2", role:"out" }
+			]);
+			
+			fragment.addParameter([
+				lib().inputs.material.texture,
+				{ name:"fsTexCoord", dataType:"vec2", role:"in" }
+			]);
+			
+			if (bg.Engine.Get().id=="webgl1") {
+				vertex.setMainBody(`
+				gl_Position = vec4(inVertex,1.0);
+				fsTexCoord = inTex0;`);
+				fragment.setMainBody("gl_FragColor = texture2D(inTexture,fsTexCoord);");
+			}
+			
+			this.setupShaderSource([
+				vertex,
+				fragment
+			]);
+		}
+		
+		setupVars() {
+			let texture = null;
+			if (this._surface instanceof bg.base.Texture) {
+				texture = this._surface;
+			}
+			else if (this._surface instanceof bg.base.RenderSurface) {
+				texture = this._surface.getTexture(0);
+			}
+			
+			if (texture) {
+				this.shader.setTexture("inTexture",texture,bg.base.TextureUnit.TEXTURE_0);
+			}
+		}
+	}
+	
+	bg.base.DrawTextureEffect = DrawTextureEffect;
+})();
+(function() {
+	let shaders = {};
+	
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+	
+	let s_vertexSource = null;
+	let s_fragmentSource = null;
+	
+	function vertexShaderSource() {
+		if (!s_vertexSource) {
+			s_vertexSource = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+			
+			s_vertexSource.addParameter([
+				lib().inputs.buffers.vertex,
+				lib().inputs.buffers.normal,
+				lib().inputs.buffers.tangent,
+				lib().inputs.buffers.tex0,
+				lib().inputs.buffers.tex1
+			]);
+			
+			s_vertexSource.addParameter(lib().inputs.matrix.all);
+			
+			s_vertexSource.addParameter([
+				{ name:"inLightProjectionMatrix", dataType:"mat4", role:"value" },
+				{ name:"inLightViewMatrix", dataType:"mat4", role:"value" },
+			]);
+			
+			s_vertexSource.addParameter([
+				{ name:"fsPosition", dataType:"vec3", role:"out" },
+				{ name:"fsTex0Coord", dataType:"vec2", role:"out" },
+				{ name:"fsTex1Coord", dataType:"vec2", role:"out" },
+				{ name:"fsNormal", dataType:"vec3", role:"out" },
+				{ name:"fsTangent", dataType:"vec3", role:"out" },
+				{ name:"fsBitangent", dataType:"vec3", role:"out" },
+				{ name:"fsSurfaceToView", dataType:"vec3", role:"out" },
+				
+				{ name:"fsVertexPosFromLight", dataType:"vec4", role:"out" }
+			]);
+			
+			if (bg.Engine.Get().id=="webgl1") {
+				s_vertexSource.setMainBody(`
+					mat4 ScaleMatrix = mat4(0.5, 0.0, 0.0, 0.0,
+											0.0, 0.5, 0.0, 0.0,
+											0.0, 0.0, 0.5, 0.0,
+											0.5, 0.5, 0.5, 1.0);
+					
+					vec4 viewPos = inViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+					gl_Position = inProjectionMatrix * viewPos;
+					
+					fsNormal = normalize((inNormalMatrix * vec4(inNormal,1.0)).xyz);
+					fsTangent = normalize((inNormalMatrix * vec4(inTangent,1.0)).xyz);
+					fsBitangent = cross(fsNormal,fsTangent);
+					
+					fsVertexPosFromLight = ScaleMatrix * inLightProjectionMatrix * inLightViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+					
+					fsTex0Coord = inTex0;
+					fsTex1Coord = inTex1;
+					fsPosition = viewPos.xyz;`);
+			}
+		}
+		return s_vertexSource;
+	}
+	
+	function fragmentShaderSource() {
+		if (!s_fragmentSource) {
+			s_fragmentSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+
+			s_fragmentSource.addParameter(lib().inputs.material.all);
+			s_fragmentSource.addParameter(lib().inputs.lightingForward.all);
+			s_fragmentSource.addParameter(lib().inputs.shadows.all);
+			s_fragmentSource.addParameter(lib().inputs.colorCorrection.all);
+			s_fragmentSource.addParameter([
+				{ name:"fsPosition", dataType:"vec3", role:"in" },
+				{ name:"fsTex0Coord", dataType:"vec2", role:"in" },
+				{ name:"fsTex1Coord", dataType:"vec2", role:"in" },
+				{ name:"fsNormal", dataType:"vec3", role:"in" },
+				{ name:"fsTangent", dataType:"vec3", role:"in" },
+				{ name:"fsBitangent", dataType:"vec3", role:"in" },
+				{ name:"fsSurfaceToView", dataType:"vec3", role:"in" },
+				
+				{ name:"fsVertexPosFromLight", dataType:"vec4", role:"in" },
+
+				{ name:"inCubeMap", dataType:"samplerCube", role:"value" },
+				{ name:"inLightEmissionFactor", dataType:"float", role:"value" }
+			]);
+			
+			s_fragmentSource.addFunction(lib().functions.materials.all);
+			s_fragmentSource.addFunction(lib().functions.colorCorrection.all);
+			s_fragmentSource.addFunction(lib().functions.utils.unpack);
+			s_fragmentSource.addFunction(lib().functions.utils.random);
+			s_fragmentSource.addFunction(lib().functions.lighting.all);
+			s_fragmentSource.addFunction(lib().functions.blur.blurCube);
+			
+			if (bg.Engine.Get().id=="webgl1") {	
+				s_fragmentSource.setMainBody(`
+					vec4 diffuseColor = samplerColor(inTexture,fsTex0Coord,inTextureOffset,inTextureScale);
+					vec4 lightmapColor = samplerColor(inLightMap,fsTex1Coord,inLightMapOffset,inLightMapScale);
+
+					if (inUnlit && diffuseColor.a>=inAlphaCutoff) {
+						gl_FragColor = diffuseColor * lightmapColor;
+					}
+					else if (diffuseColor.a>=inAlphaCutoff) {
+						vec3 normalMap = samplerNormal(inNormalMap,fsTex0Coord,inNormalMapOffset,inNormalMapScale);
+						// This doesn't work on many Mac Intel GPUs
+						// vec3 frontFacingNormal = fsNormal;
+						// if (!gl_FrontFacing) {
+						// 	frontFacingNormal *= -1.0;
+						// }
+						normalMap = combineNormalWithMap(fsNormal,fsTangent,fsBitangent,normalMap);
+						vec4 shadowColor = vec4(1.0);
+						if (inReceiveShadows) {
+							shadowColor = getShadowColor(fsVertexPosFromLight,inShadowMap,inShadowMapSize,inShadowType,inShadowStrength,inShadowBias,inShadowColor);
+						}
+
+						vec4 specular = specularColor(inSpecularColor,inShininessMask,fsTex0Coord,inTextureOffset,inTextureScale,
+															inShininessMaskChannel,inShininessMaskInvert);
+						float lightEmission = applyTextureMask(inLightEmission,
+															inLightEmissionMask,fsTex0Coord,inTextureOffset,inTextureScale,
+															inLightEmissionMaskChannel,inLightEmissionMaskInvert);
+						diffuseColor = diffuseColor * inDiffuseColor * lightmapColor;
+						
+						vec4 light = vec4(0.0,0.0,0.0,1.0);
+						vec4 specularColor = vec4(0.0,0.0,0.0,1.0);
+						// This doesn't work on A11 and A12 chips on Apple devices.
+						// for (int i=0; i<${ bg.base.MAX_FORWARD_LIGHTS}; ++i) {
+						// 	if (i>=inNumLights) break;
+						// 	light.rgb += getLight(
+						// 		inLightType[i],
+						// 		inLightAmbient[i], inLightDiffuse[i], inLightSpecular[i],inShininess,
+						// 		inLightPosition[i],inLightDirection[i],
+						// 		inLightAttenuation[i].x,inLightAttenuation[i].y,inLightAttenuation[i].z,
+						// 		inSpotCutoff[i],inSpotExponent[i],inLightCutoffDistance[i],
+						// 		fsPosition,normalMap,
+						// 		diffuseColor,specular,shadowColor,
+						// 		specularColor
+						// 	).rgb;
+						// 	light.rgb += specularColor.rgb;
+						// }
+
+						// Workaround for A11 and A12 chips
+						if (inNumLights>0) {
+							light.rgb += getLight(
+								inLightType[0],
+								inLightAmbient[0], inLightDiffuse[0], inLightSpecular[0],inShininess,
+								inLightPosition[0],inLightDirection[0],
+								inLightAttenuation[0].x,inLightAttenuation[0].y,inLightAttenuation[0].z,
+								inSpotCutoff[0],inSpotExponent[0],inLightCutoffDistance[0],
+								fsPosition,normalMap,
+								diffuseColor,specular,shadowColor,
+								specularColor
+							).rgb;
+							light.rgb += specularColor.rgb;
+						}
+						if (inNumLights>1) {
+							light.rgb += getLight(
+								inLightType[1],
+								inLightAmbient[1], inLightDiffuse[1], inLightSpecular[1],inShininess,
+								inLightPosition[1],inLightDirection[1],
+								inLightAttenuation[1].x,inLightAttenuation[1].y,inLightAttenuation[1].z,
+								inSpotCutoff[0],inSpotExponent[1],inLightCutoffDistance[1],
+								fsPosition,normalMap,
+								diffuseColor,specular,shadowColor,
+								specularColor
+							).rgb;
+							light.rgb += specularColor.rgb;
+						}
+
+						vec3 cameraPos = vec3(0.0);
+						vec3 cameraVector = fsPosition - cameraPos;
+						vec3 lookup = reflect(cameraVector,normalMap);
+
+						// Roughness using gaussian blur has been deactivated because it is very inefficient
+						//float dist = distance(fsPosition,cameraPos);
+						//float maxRough = 50.0;
+						//float rough = max(inRoughness * 10.0,1.0);
+						//rough = max(rough*dist,rough);
+						//float blur = min(rough,maxRough);
+						//vec3 cubemapColor = blurCube(inCubeMap,lookup,int(blur),vec2(10),dist).rgb;
+
+						vec3 cubemapColor = textureCube(inCubeMap,lookup).rgb;
+
+						float reflectionAmount = applyTextureMask(inReflection,
+														inReflectionMask,fsTex0Coord,inTextureOffset,inTextureScale,
+														inReflectionMaskChannel,inReflectionMaskInvert);
+
+						light.rgb = clamp(light.rgb + (lightEmission * diffuseColor.rgb * 10.0), vec3(0.0), vec3(1.0));
+						
+
+						gl_FragColor = vec4(light.rgb * (1.0 - reflectionAmount) + cubemapColor * reflectionAmount * diffuseColor.rgb, diffuseColor.a);
+					}
+					else {
+						discard;
+					}`
+				);
+			}
+		}
+		return s_fragmentSource;
+	}
+	
+	class ColorCorrectionSettings {
+		constructor() {
+			this._hue = 1;
+			this._saturation = 1;
+			this._lightness = 1;
+			this._brightness = 0.5;
+			this._contrast = 0.5;
+		}
+
+		set hue(h) { this._hue = h; }
+		get hue() { return this._hue; }
+		set saturation(s) { this._saturation = s; }
+		get saturation() { return this._saturation; }
+		set lightness(l) { this._lightness = l; }
+		get lightness() { return this._lightness; }
+		set brightness(b) { this._brightness = b; }
+		get brightness() { return this._brightness; }
+		set contrast(c) { this._contrast = c; }
+		get contrast() { return this._contrast; }
+
+		apply(shader,varNames={ hue:'inHue',
+								saturation:'inSaturation',
+								lightness:'inLightness',
+								brightness:'inBrightness',
+								contrast:'inContrast' })
+		{
+			shader.setValueFloat(varNames['hue'], this._hue);
+			shader.setValueFloat(varNames['saturation'], this._saturation);
+			shader.setValueFloat(varNames['lightness'], this._lightness);
+			shader.setValueFloat(varNames['brightness'], this._brightness);
+			shader.setValueFloat(varNames['contrast'], this._contrast);
+		}
+	}
+
+	bg.base.ColorCorrectionSettings = ColorCorrectionSettings;
+
+	class ForwardEffect extends bg.base.Effect {
+		constructor(context) { 
+			super(context);
+			this._material = null;
+			this._light = null;
+			this._lightTransform = bg.Matrix4.Identity();
+
+			this._lightArray = new bg.base.LightArray();
+
+			this._shadowMap = null;
+			
+			let sources = [
+				vertexShaderSource(),
+				fragmentShaderSource()
+			];
+			this.setupShaderSource(sources);
+			this._colorCorrection = new bg.base.ColorCorrectionSettings();
+		}
+		
+		get material() { return this._material; }
+		set material(m) { this._material = m; }
+				
+		// Individual light mode
+		get light() { return this._light; }
+		set light(l) { this._light = l; this._lightArray.reset(); }
+		get lightTransform() { return this._lightTransform; }
+		set lightTransform(trx) { this._lightTransform = trx; this._lightArray.reset();}
+
+		// Multiple light mode: use light arrays
+		get lightArray() { return this._lightArray; }
+		
+		set shadowMap(sm) { this._shadowMap = sm; }
+		get shadowMap() { return this._shadowMap; }
+
+		get colorCorrection() { return this._colorCorrection; }
+		set colorCorrection(cc) { this._colorCorrection = cc; }
+		
+		beginDraw() {
+			if (this._light) {
+				// Individual mode: initialize light array
+				this.lightArray.reset();
+				this.lightArray.push(this.light,this.lightTransform);
+			}
+
+			if (this.lightArray.numLights) {
+				let matrixState = bg.base.MatrixState.Current();
+				let viewMatrix = new bg.Matrix4(matrixState.viewMatrixStack.matrixConst);
+
+				// Update lights positions and directions using the current view matrix
+				this.lightArray.updatePositionAndDirection(viewMatrix);
+				
+				// Forward render only supports one shadow map
+				let lightTransform = this.shadowMap ? this.shadowMap.viewMatrix : this.lightArray.shadowLightTransform;
+				this.shader.setMatrix4("inLightProjectionMatrix", this.shadowMap ? this.shadowMap.projection : this.lightArray.shadowLight.projection);
+				let shadowColor = this.shadowMap ? this.shadowMap.shadowColor : bg.Color.Transparent();
+				
+				let blackTex = bg.base.TextureCache.BlackTexture(this.context);
+				this.shader.setMatrix4("inLightViewMatrix",lightTransform);
+				this.shader.setValueInt("inShadowType",this._shadowMap ? this._shadowMap.shadowType : 0);
+				this.shader.setTexture("inShadowMap",this._shadowMap ? this._shadowMap.texture : blackTex,bg.base.TextureUnit.TEXTURE_5);
+				this.shader.setVector2("inShadowMapSize",this._shadowMap ? this._shadowMap.size : new bg.Vector2(32,32));
+				this.shader.setValueFloat("inShadowStrength",this.lightArray.shadowLight.shadowStrength);
+				this.shader.setVector4("inShadowColor",shadowColor);
+				this.shader.setValueFloat("inShadowBias",this.lightArray.shadowLight.shadowBias);
+				this.shader.setValueInt("inCastShadows",this.lightArray.shadowLight.castShadows);
+			
+				this.shader.setVector4Ptr('inLightAmbient',this.lightArray.ambient);
+				this.shader.setVector4Ptr('inLightDiffuse',this.lightArray.diffuse);
+				this.shader.setVector4Ptr('inLightSpecular',this.lightArray.specular);
+				this.shader.setValueIntPtr('inLightType',this.lightArray.type);
+				this.shader.setVector3Ptr('inLightAttenuation',this.lightArray.attenuation);
+				this.shader.setValueFloatPtr('inLightCutoffDistance',this.lightArray.cutoffDistance);
+
+				// TODO: promote this value to a variable
+				let lightEmissionFactor = 10;
+				this.shader.setValueFloat('inLightEmissionFactor',lightEmissionFactor);
+
+				this.shader.setTexture('inCubeMap',bg.scene.Cubemap.Current(this.context),bg.base.TextureUnit.TEXTURE_6);
+				
+				this.shader.setVector3Ptr('inLightDirection',this.lightArray.direction);
+				this.shader.setVector3Ptr('inLightPosition',this.lightArray.position);
+				this.shader.setValueFloatPtr('inSpotCutoff',this.lightArray.spotCutoff);
+				this.shader.setValueFloatPtr('inSpotExponent',this.lightArray.spotExponent);
+
+				this.shader.setValueInt('inNumLights',this.lightArray.numLights);
+			}
+			else {
+				let BLACK = bg.Color.Black();
+				this.shader.setVector4Ptr('inLightAmbient',BLACK.toArray());
+				this.shader.setVector4Ptr('inLightDiffuse',BLACK.toArray());
+				this.shader.setVector4Ptr('inLightSpecular',BLACK.toArray());
+				this.shader.setVector3Ptr('inLightDirection',(new bg.Vector3(0,0,0)).toArray());
+				this.shader.setValueInt('inNumLights',0);
+			}
+			
+			this.colorCorrection.apply(this.shader);
+		}
+		
+		setupVars() {
+			if (this.material) {
+				// Matrix state
+				let matrixState = bg.base.MatrixState.Current();
+				let viewMatrix = new bg.Matrix4(matrixState.viewMatrixStack.matrixConst);
+				this.shader.setMatrix4('inModelMatrix',matrixState.modelMatrixStack.matrixConst);
+				this.shader.setMatrix4('inViewMatrix',viewMatrix);
+				this.shader.setMatrix4('inProjectionMatrix',matrixState.projectionMatrixStack.matrixConst);
+				this.shader.setMatrix4('inNormalMatrix',matrixState.normalMatrix);
+				this.shader.setMatrix4('inViewMatrixInv',matrixState.viewMatrixInvert);
+				
+				// Material				
+				//	Prepare textures
+				let whiteTex = bg.base.TextureCache.WhiteTexture(this.context);
+				let blackTex = bg.base.TextureCache.BlackTexture(this.context);
+				let normalTex = bg.base.TextureCache.NormalTexture(this.context);
+				let texture = this.material.texture || whiteTex;
+				let lightMap = this.material.lightmap || whiteTex;
+				let normalMap = this.material.normalMap || normalTex;
+				let shininessMask = this.material.shininessMask || whiteTex;
+				let lightEmissionMask = this.material.lightEmissionMask || whiteTex;
+
+				this.shader.setVector4('inDiffuseColor',this.material.diffuse);
+				this.shader.setVector4('inSpecularColor',this.material.specular);
+				this.shader.setValueFloat('inShininess',this.material.shininess);
+				this.shader.setTexture('inShininessMask',shininessMask,bg.base.TextureUnit.TEXTURE_3);
+				this.shader.setVector4('inShininessMaskChannel',this.material.shininessMaskChannelVector);
+				this.shader.setValueInt('inShininessMaskInvert',this.material.shininessMaskInvert);
+				this.shader.setValueFloat('inLightEmission',this.material.lightEmission);
+				this.shader.setTexture('inLightEmissionMask',lightEmissionMask,bg.base.TextureUnit.TEXTURE_4);
+				this.shader.setVector4('inLightEmissionMaskChannel',this.material.lightEmissionMaskChannelVector);
+				this.shader.setValueInt('inLightEmissionMaskInvert',this.material.lightEmissionMaskInvert);
+				this.shader.setValueFloat('inAlphaCutoff',this.material.alphaCutoff);
+				
+				this.shader.setTexture('inTexture',texture,bg.base.TextureUnit.TEXTURE_0);
+				this.shader.setVector2('inTextureOffset',this.material.textureOffset);
+				this.shader.setVector2('inTextureScale',this.material.textureScale);
+				
+				this.shader.setTexture('inLightMap',lightMap,bg.base.TextureUnit.TEXTURE_1);
+				this.shader.setVector2('inLightMapOffset',this.material.lightmapOffset);
+				this.shader.setVector2('inLightMapScale',this.material.lightmapScale);
+				
+				this.shader.setTexture('inNormalMap',normalMap,bg.base.TextureUnit.TEXTURE_2);
+				this.shader.setVector2('inNormalMapScale',this.material.normalMapScale);
+				this.shader.setVector2('inNormalMapOffset',this.material.normalMapOffset);
+				
+				this.shader.setValueInt('inReceiveShadows',this.material.receiveShadows);
+
+				let reflectionMask = this.material.reflectionMask || whiteTex;
+				this.shader.setValueFloat('inReflection',this.material.reflectionAmount);
+				this.shader.setTexture('inReflectionMask',reflectionMask,bg.base.TextureUnit.TEXTURE_7);
+				this.shader.setVector4('inReflectionMaskChannel',this.material.reflectionMaskChannelVector);
+				this.shader.setValueInt('inReflectionMaskInvert',this.material.reflectionMaskInvert);
+
+				let roughnessMask = this.material.roughnessMask || whiteTex;
+				this.shader.setValueFloat('inRoughness',this.material.roughness);
+				if (this.context.getParameter(this.context.MAX_TEXTURE_IMAGE_UNITS)<9) {
+					this.shader.setTexture('inRoughnessMask',roughnessMask,bg.base.TextureUnit.TEXTURE_7);
+				}
+				else {
+					this.shader.setTexture('inRoughnessMask',roughnessMask,bg.base.TextureUnit.TEXTURE_8);
+				}
+				this.shader.setVector4('inRoughnessMaskChannel',this.material.roughnessMaskChannelVector);
+				this.shader.setValueInt('inRoughnessMaskInvert',this.material.roughnessMaskInvert);
+
+				// Other settings
+				this.shader.setValueInt('inSelectMode',false);
+
+				this.shader.setValueInt('inUnlit',this.material.unlit);
+			}
+		}
+		
+	}
+	
+	bg.base.ForwardEffect = ForwardEffect;
+
+	// Define the maximum number of lights that can be used in forward render
+	bg.base.MAX_FORWARD_LIGHTS = 4;
+	
+})();
+
+(function() {
+	
+	bg.base.LightType = {
+		DIRECTIONAL: 4,
+		SPOT: 1,
+		POINT: 5,
+		DISABLED: 10
+	};
+
+	class Light extends bg.app.ContextObject {
+		constructor(context) {
+			super(context);
+			
+			this._enabled = true;
+			
+			this._type = bg.base.LightType.DIRECTIONAL;
+			
+			this._direction = new bg.Vector3(0,0,-1);
+			
+			this._ambient = new bg.Color(0.2,0.2,0.2,1);
+			this._diffuse = new bg.Color(0.9,0.9,0.9,1);
+			this._specular = bg.Color.White();
+			this._attenuation = new bg.Vector3(1,0.5,0.1);
+			this._spotCutoff = 20;
+			this._spotExponent = 30;
+			this._shadowStrength = 0.7;
+			this._cutoffDistance = -1;
+			this._castShadows = true;
+			this._shadowBias = 0.00002;
+			
+			this._projection = bg.Matrix4.Ortho(-10,10,-10,10,0.5,300.0);
+		}
+		
+		// If context is null, it will be used the same context as this light
+		clone(context) {
+			let newLight = new bg.base.Light(context || this.context);
+			newLight.assign(this);
+			return newLight;
+		}
+		
+		assign(other) {
+			this.enabled = other.enabled;
+			this.type = other.type;
+			this.direction.assign(other.direction);
+			this.ambient.assign(other.ambient);
+			this.diffuse.assign(other.diffuse);
+			this.specular.assign(other.specular);
+			this._attenuation.assign(other._attenuation);
+			this.spotCutoff = other.spotCutoff;
+			this.spotExponent = other.spotExponent;
+			this.shadowStrength = other.shadowStrength;
+			this.cutoffDistance = other.cutoffDistance;
+			this.castShadows = other.castShadows;
+			this.shadowBias = other.shadowBias;
+		}
+		
+		get enabled() { return this._enabled; }
+		set enabled(v) { this._enabled = v; }
+		
+		get type() { return this._type; }
+		set type(t) { this._type = t; }
+		
+		get direction() { return this._direction; }
+		set direction(d) { this._direction = d; }
+		
+		get ambient() { return this._ambient; }
+		set ambient(a) { this._ambient = a; }
+		get diffuse() { return this._diffuse; }
+		set diffuse(d) { this._diffuse = d; }
+		get specular() { return this._specular; }
+		set specular(s) { this._specular = s; }
+		
+		get attenuationVector() { return this._attenuation; }
+		get constantAttenuation() { return this._attenuation.x; }
+		get linearAttenuation() { return this._attenuation.y; }
+		get quadraticAttenuation() { return this._attenuation.z; }
+		set attenuationVector(a) { this._attenuation = a; }
+		set constantAttenuation(a) { this._attenuation.x = a; }
+		set linearAttenuation(a) { this._attenuation.y = a; }
+		set quadraticAttenuation(a) { this._attenuation.z = a; }
+		
+		get cutoffDistance() { return this._cutoffDistance; }
+		set cutoffDistance(c) { this._cutoffDistance = c; }
+		
+		get spotCutoff() { return this._spotCutoff; }
+		set spotCutoff(c) { this._spotCutoff = c; }
+		get spotExponent() { return this._spotExponent; }
+		set spotExponent(e) { this._spotExponent = e; }
+		
+		get shadowStrength() { return this._shadowStrength; }
+		set shadowStrength(s) { this._shadowStrength = s; }
+		get castShadows() { return this._castShadows; }
+		set castShadows(s) { this._castShadows = s; }
+		get shadowBias() { return this._shadowBias; }
+		set shadowBias(s) { this._shadowBias = s; }
+		
+		get projection() { return this._projection; }
+		set projection(p) { this._projection = p; }
+
+		deserialize(sceneData) {
+			switch (sceneData.lightType) {
+			case 'kTypeDirectional':
+				this._type = bg.base.LightType.DIRECTIONAL;
+				// Use the predefined shadow bias for directional lights
+				//this._shadowBias = sceneData.shadowBias;
+				break;
+			case 'kTypeSpot':
+				this._type = bg.base.LightType.SPOT;
+				this._shadowBias = sceneData.shadowBias;
+				break;
+			case 'kTypePoint':
+				this._type = bg.base.LightType.POINT;
+				break;
+			}
+			
+			this._ambient = new bg.Color(sceneData.ambient);
+			this._diffuse = new bg.Color(sceneData.diffuse);
+			this._specular = new bg.Color(sceneData.specular);
+			this._attenuation = new bg.Vector3(
+				sceneData.constantAtt,
+				sceneData.linearAtt,
+				sceneData.expAtt
+				);
+			this._spotCutoff = sceneData.spotCutoff || 20;
+			this._spotExponent = sceneData.spotExponent || 30;
+			this._shadowStrength = sceneData.shadowStrength;
+			this._cutoffDistance = sceneData.cutoffDistance;
+			this._projection = new bg.Matrix4(sceneData.projection);
+			this._castShadows = sceneData.castShadows;
+		}
+
+		serialize(sceneData) {
+			let lightTypes = [];
+			lightTypes[bg.base.LightType.DIRECTIONAL] = "kTypeDirectional";
+			lightTypes[bg.base.LightType.SPOT] = "kTypeSpot";
+			lightTypes[bg.base.LightType.POINT] = "kTypePoint";
+			sceneData.lightType = lightTypes[this._type];
+			sceneData.ambient = this._ambient.toArray();
+			sceneData.diffuse = this._diffuse.toArray();
+			sceneData.specular = this._specular.toArray();
+			sceneData.intensity = 1;
+			sceneData.constantAtt = this._attenuation.x;
+			sceneData.linearAtt = this._attenuation.y;
+			sceneData.expAtt = this._attenuation.z;
+			sceneData.spotCutoff = this._spotCutoff || 20;
+			sceneData.spotExponent = this._spotExponent || 30;
+			sceneData.shadowStrength = this._shadowStrength;
+			sceneData.cutoffDistance = this._cutoffDistance;
+			sceneData.projection = this._projection.toArray();
+			sceneData.castShadows = this._castShadows;
+			sceneData.shadowBias = this._shadowBias || 0.0029;
+		}
+	}
+	
+	bg.base.Light = Light;
+
+	// Store a light array, optimized to be used as shader input
+	class LightArray {
+		constructor() {
+			this.reset();
+		}
+		
+		get type() { return this._type; }
+		get ambient() { return this._ambient; }
+		get diffuse() { return this._diffuse; }
+		get specular() { return this._specular; }
+		get position() { return this._position; }
+		get direction() { return this._direction; }
+		get rawDirection() { return this._rawDirection; }
+		get attenuation() { return this._attenuation; }
+		get spotCutoff() { return this._spotCutoff; }
+		get spotExponent() { return this._spotExponent; }
+		get shadowStrength() { return this._shadowStrength; }
+		get cutoffDistance() { return this._cutoffDistance; }
+		get numLights() { return this._numLights; }
+		
+		get lightTransform() { return this._lightTransform; }
+
+		get shadowLight() { return this._shadowLight || {
+			shadowStrength: 0,
+			shadowColor: bg.Color.Black(),
+			shadowBias: 0,
+			castShadows: false,
+			projection: bg.Matrix4.Identity()
+		}}
+		get shadowLightTransform() { return this._shadowLightTransform || bg.Matrix4.Identity(); }
+		get shadowLightIndex() { return this._shadowLightIndex; }
+		
+		reset() {
+			this._type = [];
+			this._ambient = [];
+			this._diffuse = [];
+			this._specular = [];
+			this._position = [];
+			this._direction = [];
+			this._rawDirection = [];
+			this._attenuation = [];
+			this._spotCutoff = [];
+			this._spotExponent = [];
+			this._shadowStrength = [];
+			this._cutoffDistance = [];
+			this._numLights = 0;
+			this._lightTransform = [];
+			
+			// Forward render only supports one shadow map, so will only store
+			// one projection
+			this._shadowLightTransform = null;
+			this._shadowLightIndex = -1;
+			this._shadowLight = null;
+		}
+
+		push(light,lightTransform) {
+			if (this._numLights==bg.base.MAX_FORWARD_LIGHTS) {
+				return false;
+			}
+			else {
+				if (this._shadowLightIndex==-1 && light.type!=bg.base.LightType.POINT && light.castShadows) {
+					this._shadowLightTransform = lightTransform;
+					this._shadowLight = light;
+					this._shadowLightIndex = this._numLights;
+				}
+				this._type.push(light.type);
+				this._ambient.push(...(light.ambient.toArray()));
+				this._diffuse.push(...(light.diffuse.toArray()));
+				this._specular.push(...(light.specular.toArray()));
+				this._rawDirection.push(light.direction);
+				this._attenuation.push(light.constantAttenuation);
+				this._attenuation.push(light.linearAttenuation);
+				this._attenuation.push(light.quadraticAttenuation);
+				this._spotCutoff.push(light.spotCutoff);
+				this._spotExponent.push(light.spotExponent);
+				this._shadowStrength.push(light.shadowStrength);
+				this._cutoffDistance.push(light.cutoffDistance);
+
+				this._numLights++;
+				this._lightTransform.push(lightTransform);
+				return true;
+			}
+		}
+
+		updatePositionAndDirection(viewMatrix) {
+			this._direction = [];
+			this._position = [];
+			for (let i=0; i<this._numLights; ++i) {
+				let vm = new bg.Matrix4(viewMatrix);
+				let dir = vm.mult(this._lightTransform[i])
+							.rotation
+							.multVector(this._rawDirection[i])
+							.xyz;
+				vm = new bg.Matrix4(viewMatrix);
+				let pos = vm.mult(this._lightTransform[i]).position;
+				this._direction.push(...(dir.toArray()));
+				this._position.push(...(pos.toArray()));
+			}
+		}
+	}
+
+	bg.base.LightArray = LightArray;
+	
+})();
+(function() {
+	bg.base.MaterialFlag = {
+		DIFFUSE							: 1 << 0,
+		SPECULAR						: 1 << 1,
+		SHININESS						: 1 << 2,
+		LIGHT_EMISSION					: 1 << 3,
+		REFRACTION_AMOUNT				: 1 << 4,
+		REFLECTION_AMOUNT				: 1 << 5,
+		TEXTURE							: 1 << 6,
+		LIGHT_MAP						: 1 << 7,
+		NORMAL_MAP						: 1 << 8,
+		TEXTURE_OFFSET					: 1 << 9,
+		TEXTURE_SCALE					: 1 << 10,
+		LIGHT_MAP_OFFSET				: 1 << 11,
+		LIGHT_MAP_SCALE					: 1 << 12,
+		NORMAL_MAP_OFFSET				: 1 << 13,
+		NORMAL_MAP_SCALE				: 1 << 14,
+		CAST_SHADOWS					: 1 << 15,
+		RECEIVE_SHADOWS					: 1 << 16,
+		ALPHA_CUTOFF					: 1 << 17,
+		SHININESS_MASK					: 1 << 18,
+		SHININESS_MASK_CHANNEL			: 1 << 19,
+		SHININESS_MASK_INVERT			: 1 << 20,
+		LIGHT_EMISSION_MASK				: 1 << 21,
+		LIGHT_EMISSION_MASK_CHANNEL		: 1 << 22,
+		LIGHT_EMISSION_MASK_INVERT		: 1 << 23,
+		REFLECTION_MASK					: 1 << 24,
+		REFLECTION_MASK_CHANNEL			: 1 << 25,
+		REFLECTION_MASK_INVERT			: 1 << 26,
+		CULL_FACE						: 1 << 27,
+		ROUGHNESS						: 1 << 28,	// All the roughness attributes are controlled by this flag
+		UNLIT							: 1 << 29
+	};
+
+	function loadTexture(context,image,url) {
+		let texture = null;
+		if (image) {
+			texture = bg.base.TextureCache.Get(context).find(url);
+			if (!texture) {
+				bg.log(`Texture ${url} not found. Loading texture`);
+				texture = new bg.base.Texture(context);
+				texture.create();
+				texture.bind();
+				texture.minFilter = bg.base.TextureLoaderPlugin.GetMinFilter();
+				texture.magFilter = bg.base.TextureLoaderPlugin.GetMagFilter();
+				texture.setImage(image);
+				texture.fileName = url;
+				bg.base.TextureCache.Get(context).register(url,texture);
+			}
+		}
+		return texture;
+	}
+	
+	class MaterialModifier {
+		constructor(jsonData) {
+			this._modifierFlags = 0;
+
+			this._diffuse = bg.Color.White();
+			this._specular = bg.Color.White();
+			this._shininess = 0;
+			this._lightEmission = 0;
+			this._refractionAmount = 0;
+			this._reflectionAmount = 0;
+			this._texture = null;
+			this._lightmap = null;
+			this._normalMap = null;
+			this._textureOffset = new bg.Vector2();
+			this._textureScale = new bg.Vector2(1);
+			this._lightmapOffset = new bg.Vector2();
+			this._lightmapScale = new bg.Vector2(1);
+			this._normalMapOffset = new bg.Vector2();
+			this._normalMapScale = new bg.Vector2(1);
+			this._castShadows = true;
+			this._receiveShadows = true;
+			this._alphaCutoff = 0.5;
+			this._shininessMask = null;
+			this._shininessMaskChannel = 0;
+			this._shininessMaskInvert = false;
+			this._lightEmissionMask = null;
+			this._lightEmissionMaskChannel = 0;
+			this._lightEmissionMaskInvert = false;
+			this._reflectionMask = null;
+			this._reflectionMaskChannel = 0;
+			this._reflectionMaskInvert = false;
+			this._cullFace = true;
+			this._roughness = true;
+			this._roughnessMask = null;
+			this._roughnessMaskChannel = 0;
+			this._roughnessMaskInvert = false;
+			this._unlit = false;
+
+			if (jsonData) {
+				if (jsonData.diffuseR!==undefined && jsonData.diffuseG!==undefined && jsonData.diffuseB!==undefined) {
+					this.diffuse = new bg.Color(jsonData.diffuseR,
+									  			jsonData.diffuseG,
+									  			jsonData.diffuseB,
+									  			jsonData.diffuseA ? jsonData.diffuseA : 1.0);
+				}
+				if (jsonData.specularR!==undefined && jsonData.specularG!==undefined && jsonData.specularB!==undefined) {
+					this.specular = new bg.Color(jsonData.specularR,
+									  			 jsonData.specularG,
+									  			 jsonData.specularB,
+									  			 jsonData.specularA ? jsonData.specularA : 1.0);
+				}
+
+				if (jsonData.shininess!==undefined) {
+					this.shininess = jsonData.shininess;
+				}
+
+				if (jsonData.lightEmission!==undefined) {
+					this.lightEmission = jsonData.lightEmission;
+				}
+
+				if (jsonData.refractionAmount!==undefined) {
+					this.refractionAmount = jsonData.refractionAmount;
+				}
+
+				if (jsonData.reflectionAmount!==undefined) {
+					this.reflectionAmount = jsonData.reflectionAmount;
+				}
+
+				if (jsonData.texture!==undefined) {
+					this.texture = jsonData.texture;
+				}
+
+				if (jsonData.lightmap!==undefined) {
+					this.lightmap = jsonData.lightmap;
+				}
+
+
+				if (jsonData.normalMap!==undefined) {
+					this.normalMap = jsonData.normalMap;
+				}
+			
+				if (jsonData.textureOffsetX!==undefined && jsonData.textureOffsetY!==undefined) {
+					this.textureOffset = new bg.Vector2(jsonData.textureOffsetX,
+														jsonData.textureOffsetY);
+				}
+
+				if (jsonData.textureScaleX!==undefined && jsonData.textureScaleY!==undefined) {
+					this.textureScale = new bg.Vector2(jsonData.textureScaleX,
+														jsonData.textureScaleY);
+				}
+
+				if (jsonData.lightmapOffsetX!==undefined && jsonData.lightmapOffsetY!==undefined) {
+					this.lightmapOffset = new bg.Vector2(jsonData.lightmapOffsetX,
+														 jsonData.lightmapOffsetY);
+				}
+
+				if (jsonData.lightmapScaleX!==undefined && jsonData.lightmapScaleY!==undefined) {
+					this.lightmapScale = new bg.Vector2(jsonData.lightmapScaleX,
+														 jsonData.lightmapScaleY);
+				}
+
+				if (jsonData.normalMapScaleX!==undefined && jsonData.normalMapScaleY!==undefined) {
+					this.normalMapScale = new bg.Vector2(jsonData.normalMapScaleX,
+														 jsonData.normalMapScaleY);
+				}
+
+				if (jsonData.normalMapOffsetX!==undefined && jsonData.normalMapOffsetY!==undefined) {
+					this.normalMapOffset = new bg.Vector2(jsonData.normalMapOffsetX,
+														 jsonData.normalMapOffsetY);
+				}
+
+				if (jsonData.castShadows!==undefined) {
+					this.castShadows = jsonData.castShadows;
+				}
+				if (jsonData.receiveShadows!==undefined) {
+					this.receiveShadows = jsonData.receiveShadows;
+				}
+				
+				if (jsonData.alphaCutoff!==undefined) {
+					this.alphaCutoff = jsonData.alphaCutoff;
+				}
+
+				if (jsonData.shininessMask!==undefined) {
+					this.shininessMask = jsonData.shininessMask;
+				}
+				if (jsonData.shininessMaskChannel!==undefined) {
+					this.shininessMaskChannel = jsonData.shininessMaskChannel;
+				}
+				if (jsonData.invertShininessMask!==undefined) {
+					this.shininessMaskInvert = jsonData.invertShininessMask;
+				}
+
+				if (jsonData.lightEmissionMask!==undefined) {
+					this.lightEmissionMask = jsonData.lightEmissionMask;
+				}
+				if (jsonData.lightEmissionMaskChannel!==undefined) {
+					this.lightEmissionMaskChannel = jsonData.lightEmissionMaskChannel;
+				}
+				if (jsonData.invertLightEmissionMask!==undefined) {
+					this.lightEmissionMaskInvert = jsonData.invertLightEmissionMask;
+				}
+				
+				if (jsonData.reflectionMask!==undefined) {
+					this.reflectionMask = jsonData.reflectionMask;
+				}
+				if (jsonData.reflectionMaskChannel!==undefined) {
+					this.reflectionMaskChannel = jsonData.reflectionMaskChannel;
+				}
+				if (jsonData.invertReflectionMask!==undefined) {
+					this.reflectionMaskInvert = jsonData.reflectionMaskInvert;
+				}
+
+				if (jsonData.roughness!==undefined) {
+					this.roughness = jsonData.roughness;
+				}
+				if (jsonData.roughnessMask!==undefined) {
+					this.roughnessMask = jsonData.roughnessMask;
+				}
+				if (jsonData.roughnessMaskChannel!==undefined) {
+					this.roughnessMaskChannel = jsonData.roughnessMaskChannel;
+				}
+				if (jsonData.invertRoughnessMask!==undefined) {
+					this.roughnessMaskInvert = jsonData.roughnessMaskInvert;
+				}
+
+				if (jsonData.unlit!==undefined) {
+					this.unlit = jsonData.unlit;
+				}
+			}
+		}
+		
+		get modifierFlags() { return this._modifierFlags; }
+		set modifierFlags(f) { this._modifierFlags = f; }
+		setEnabled(flag) { this._modifierFlags = this._modifierFlags | flag; }
+		isEnabled(flag) { return (this._modifierFlags & flag)!=0; }
+		
+		get diffuse() { return this._diffuse; } 
+		get specular() { return this._specular; } 
+		get shininess() { return this._shininess; } 
+		get lightEmission() { return this._lightEmission; } 
+		get refractionAmount() { return this._refractionAmount; } 
+		get reflectionAmount() { return this._reflectionAmount; } 
+		get texture() { return this._texture; } 
+		get lightmap() { return this._lightmap; } 
+		get normalMap() { return this._normalMap; } 
+		get textureOffset() { return this._textureOffset; } 
+		get textureScale() { return this._textureScale; } 
+		get lightmapOffset() { return this._lightmapOffset; } 
+		get lightmapScale() { return this._lightmapScale; } 
+		get normalMapOffset() { return this._normalMapOffset; } 
+		get normalMapScale() { return this._normalMapScale; } 
+		get castShadows() { return this._castShadows; } 
+		get receiveShadows() { return this._receiveShadows; } 
+		get alphaCutoff() { return this._alphaCutoff; } 
+		get shininessMask() { return this._shininessMask; } 
+		get shininessMaskChannel() { return this._shininessMaskChannel; } 
+		get shininessMaskInvert() { return this._shininessMaskInvert; } 
+		get lightEmissionMask() { return this._lightEmissionMask; } 
+		get lightEmissionMaskChannel() { return this._lightEmissionMaskChannel; } 
+		get lightEmissionMaskInvert() { return this._lightEmissionMaskInvert; } 
+		get reflectionMask() { return this._reflectionMask; } 
+		get reflectionMaskChannel() { return this._reflectionMaskChannel; } 
+		get reflectionMaskInvert() { return this._reflectionMaskInvert; } 
+		get cullFace() { return this._cullFace; }
+		get roughness() { return this._roughness; }
+		get roughnessMask() { return this._roughnessMask; }
+		get roughnessMaskChannel() { return this._roughnessMaskChannel; }
+		get roughnessMaskInvert() { return this._roughnessMaskInvert; }
+		get unlit() { return this._unlit; }
+
+		set diffuse(newVal) { this._diffuse = newVal; this.setEnabled(bg.base.MaterialFlag.DIFFUSE); }
+		set specular(newVal) { this._specular = newVal; this.setEnabled(bg.base.MaterialFlag.SPECULAR); }
+		set shininess(newVal) { if (!isNaN(newVal)) { this._shininess = newVal; this.setEnabled(bg.base.MaterialFlag.SHININESS); } }
+		set lightEmission(newVal) { if (!isNaN(newVal)) { this._lightEmission = newVal; this.setEnabled(bg.base.MaterialFlag.LIGHT_EMISSION); } }
+		set refractionAmount(newVal) { if (!isNaN(newVal)) { this._refractionAmount = newVal; this.setEnabled(bg.base.MaterialFlag.REFRACTION_AMOUNT); } }
+		set reflectionAmount(newVal) { if (!isNaN(newVal)) { this._reflectionAmount = newVal; this.setEnabled(bg.base.MaterialFlag.REFLECTION_AMOUNT); } }
+		set texture(newVal) { this._texture = newVal; this.setEnabled(bg.base.MaterialFlag.TEXTURE); }
+		set lightmap(newVal) { this._lightmap = newVal; this.setEnabled(bg.base.MaterialFlag.LIGHT_MAP); }
+		set normalMap(newVal) { this._normalMap = newVal; this.setEnabled(bg.base.MaterialFlag.NORMAL_MAP); }
+		set textureOffset(newVal) { this._textureOffset = newVal; this.setEnabled(bg.base.MaterialFlag.TEXTURE_OFFSET); }
+		set textureScale(newVal) { this._textureScale = newVal; this.setEnabled(bg.base.MaterialFlag.TEXTURE_SCALE); }
+		set lightmapOffset(newVal) { this._lightmapOffset = newVal; this.setEnabled(bg.base.MaterialFlag.LIGHT_MAP_OFFSET); }
+		set lightmapScale(newVal) { this._lightmapScale = newVal; this.setEnabled(bg.base.MaterialFlag.LIGHT_MAP_SCALE); }
+		set normalMapOffset(newVal) { this._normalMapOffset = newVal; this.setEnabled(bg.base.MaterialFlag.NORMAL_MAP_OFFSET); }
+		set normalMapScale(newVal) { this._normalMapScale = newVal; this.setEnabled(bg.base.MaterialFlag.NORMAL_MAP_SCALE); }
+		set castShadows(newVal) { this._castShadows = newVal; this.setEnabled(bg.base.MaterialFlag.CAST_SHADOWS); }
+		set receiveShadows(newVal) { this._receiveShadows = newVal; this.setEnabled(bg.base.MaterialFlag.RECEIVE_SHADOWS); }
+		set alphaCutoff(newVal) { if (!isNaN(newVal)) { this._alphaCutoff = newVal; this.setEnabled(bg.base.MaterialFlag.ALPHA_CUTOFF); } }
+		set shininessMask(newVal) { this._shininessMask = newVal; this.setEnabled(bg.base.MaterialFlag.SHININESS_MASK); }
+		set shininessMaskChannel(newVal) { this._shininessMaskChannel = newVal; this.setEnabled(bg.base.MaterialFlag.SHININESS_MASK_CHANNEL); }
+		set shininessMaskInvert(newVal) { this._shininessMaskInvert = newVal; this.setEnabled(bg.base.MaterialFlag.SHININESS_MASK_INVERT); }
+		set lightEmissionMask(newVal) { this._lightEmissionMask = newVal; this.setEnabled(bg.base.MaterialFlag.LIGHT_EMISSION_MASK); }
+		set lightEmissionMaskChannel(newVal) { this._lightEmissionMaskChannel = newVal; this.setEnabled(bg.base.MaterialFlag.LIGHT_EMISSION_MASK_CHANNEL); }
+		set lightEmissionMaskInvert(newVal) { this._lightEmissionMaskInvert = newVal; this.setEnabled(bg.base.MaterialFlag.LIGHT_EMISSION_MASK_INVERT); }
+		set reflectionMask(newVal) { this._reflectionMask = newVal; this.setEnabled(bg.base.MaterialFlag.REFLECTION_MASK); }
+		set reflectionMaskChannel(newVal) { this._reflectionMaskChannel = newVal; this.setEnabled(bg.base.MaterialFlag.REFLECTION_MASK_CHANNEL); }
+		set reflectionMaskInvert(newVal) { this._reflectionMaskInvert = newVal; this.setEnabled(bg.base.MaterialFlag.REFLECTION_MASK_INVERT); }
+		set cullFace(newVal) { this._cullFace = newVal; this.setEnabled(bg.base.MaterialFlag.CULL_FACE); }
+		set roughness(newVal) { this._roughness = newVal; this.setEnabled(bg.base.MaterialFlag.ROUGHNESS); }
+		set roughnessMask(newVal) { this._roughnessMask = newVal; this.setEnabled(bg.base.MaterialFlag.ROUGHNESS); }
+		set roughnessMaskChannel(newVal) { this._roughnessMaskChannel = newVal; this.setEnabled(bg.base.MaterialFlag.ROUGHNESS); }
+		set roughnessMaskInvert(newVal) { this._roughnessMaskInvert = newVal; this.setEnabled(bg.base.MaterialFlag.ROUGHNESS); }
+		set unlit(newVal) { this._unlit = newVal; this.setEnabled(bg.base.MaterialFlag.UNLIT); }
+
+		clone() {
+			let copy = new MaterialModifier();
+			copy.assign(this);
+			return copy;
+		}
+		
+		assign(mod) {
+			this._modifierFlags = mod._modifierFlags;
+
+			this._diffuse = mod._diffuse;
+			this._specular = mod._specular;
+			this._shininess = mod._shininess;
+			this._lightEmission = mod._lightEmission;
+			this._refractionAmount = mod._refractionAmount;
+			this._reflectionAmount = mod._reflectionAmount;
+			this._texture = mod._texture;
+			this._lightmap = mod._lightmap;
+			this._normalMap = mod._normalMap;
+			this._textureOffset = mod._textureOffset;
+			this._textureScale = mod._textureScale;
+			this._lightmapOffset = mod._lightmapOffset;
+			this._lightmapScale = mod._lightmapScale;
+			this._normalMapOffset = mod._normalMapOffset;
+			this._normalMapScale = mod._normalMapScale;
+			this._castShadows = mod._castShadows;
+			this._receiveShadows = mod._receiveShadows;
+			this._alphaCutoff = mod._alphaCutoff;
+			this._shininessMask = mod._shininessMask;
+			this._shininessMaskChannel = mod._shininessMaskChannel;
+			this._shininessMaskInvert = mod._shininessMaskInvert;
+			this._lightEmissionMask = mod._lightEmissionMask;
+			this._lightEmissionMaskChannel = mod._lightEmissionMaskChannel;
+			this._lightEmissionMaskInvert = mod._lightEmissionMaskInvert;
+			this._reflectionMask = mod._reflectionMask;
+			this._reflectionMaskChannel = mod._reflectionMaskChannel;
+			this._reflectionMaskInvert = mod._reflectionMaskInvert;
+			this._cullFace = mod._cullFace;
+			this._roughness = mod._roughness;
+			this._roughnessMask = mod._roughnessMask;
+			this._roughnessMaskChannel = mod._roughnessMaskChannel;
+			this._roughnessMaskInvert = mod._roughnessMaskInvert;
+			this._unlit = mod._unlit;
+		}
+
+		serialize() {
+			let result = {};
+			let mask = this._modifierFlags;
+
+			if ( mask & bg.base.MaterialFlag.DIFFUSE) {
+				result.diffuseR = this._diffuse.r;
+				result.diffuseG = this._diffuse.g;
+				result.diffuseB = this._diffuse.b;
+				result.diffuseA = this._diffuse.a;
+			}
+			if ( mask & bg.base.MaterialFlag.SPECULAR) {
+				result.specularR = this._specular.r;
+				result.specularG = this._specular.g;
+				result.specularB = this._specular.b;
+				result.specularA = this._specular.a;
+			}
+			if ( mask & bg.base.MaterialFlag.SHININESS) {
+				result.shininess = this._shininess;
+			}
+			if ( mask & bg.base.MaterialFlag.SHININESS_MASK) {
+				result.shininessMask = this._shininessMask;
+			}
+			if ( mask & bg.base.MaterialFlag.SHININESS_MASK_CHANNEL) {
+				result.shininessMaskChannel = this._shininessMaskChannel;
+			}
+			if ( mask & bg.base.MaterialFlag.SHININESS_MASK_INVERT) {
+				result.invertShininessMask = this._shininessMaskInvert;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_EMISSION) {
+				result.lightEmission = this._lightEmission;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_EMISSION_MASK) {
+				result.lightEmissionMask = this._lightEmissionMask;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_EMISSION_MASK_CHANNEL) {
+				result.lightEmissionMaskChannel = this._lightEmissionMaskChannel;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_EMISSION_MASK_INVERT) {
+				result.invertLightEmissionMask = this._lightEmissionMaskInvert;
+			}
+			if ( mask & bg.base.MaterialFlag.REFRACTION_AMOUNT) {
+				result.reflectionAmount = this._refractionAmount;
+			}
+			if ( mask & bg.base.MaterialFlag.REFLECTION_AMOUNT) {
+				result.refractionAmount = this._reflectionAmount;
+			}
+			if ( mask & bg.base.MaterialFlag.TEXTURE) {
+				result.texture = this._texture;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_MAP) {
+				result.lightmap = this._lightmap;
+			}
+			if ( mask & bg.base.MaterialFlag.NORMAL_MAP) {
+				result.normalMap = this._normalMap;
+			}
+			if ( mask & bg.base.MaterialFlag.TEXTURE_OFFSET) {
+				result.textureScaleX = this._textureScale.x;
+				result.textureScaleY = this._textureScale.y;
+			}
+			if ( mask & bg.base.MaterialFlag.TEXTURE_SCALE) {
+				result.textureScaleX = this._textureScale.x;
+				result.textureScaleY = this._textureScale.y;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_MAP_OFFSET) {
+				result.lightmapOffsetX = this._lightmapOffset.x;
+				result.lightmapOffsetY = this._lightmapOffset.y;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_MAP_SCALE) {
+				result.lightmapScaleX = this._lightmapScale.x;
+				result.lightmapScaleY = this._lightmapScale.y;
+			}
+			if ( mask & bg.base.MaterialFlag.NORMAL_MAP_OFFSET) {
+				result.normalMapOffsetX = this._normalMapOffset.x;
+				result.normalMapOffsetY = this._normalMapOffset.y;
+			}
+			if ( mask & bg.base.MaterialFlag.NORMAL_MAP_SCALE) {
+				result.normalMapScaleX = this._normalMapScale.x;
+				result.normalMapScaleY = this._normalMapScale.y;
+			}
+			if ( mask & bg.base.MaterialFlag.CAST_SHADOWS) {
+				result.castShadows = this._castShadows;
+			}
+			if ( mask & bg.base.MaterialFlag.RECEIVE_SHADOWS) {
+				result.receiveShadows = this._receiveShadows;
+			}
+			if ( mask & bg.base.MaterialFlag.ALPHA_CUTOFF) {
+				result.alphaCutoff = this._alphaCutoff;
+			}
+			if ( mask & bg.base.MaterialFlag.REFLECTION_MASK) {
+				result.reflectionMask = this._reflectionMask;
+			}
+			if ( mask & bg.base.MaterialFlag.REFLECTION_MASK_CHANNEL) {
+				result.reflectionMaskChannel = this._reflectionMaskChannel;
+			}
+			if ( mask & bg.base.MaterialFlag.REFLECTION_MASK_INVERT) {
+				result.invertReflectionMask = this._reflectionMaskInvert;
+			}
+			if ( mask & bg.base.MaterialFlag.CULL_FACE) {
+				result.cullFace = this._cullFace;
+			}
+			if ( mask & bg.base.MaterialFlag.ROUGHNESS) {
+				result.roughness = this._roughness;
+				result.roughnessMask = this._roughnessMask;
+				result.roughnessMaskChannel = this._roughnessMaskChannel;
+				result.invertRoughnessMask = this._roughnessMaskInvert;
+			}
+			if (mask & bg.base.MaterialFlag.UNLIT) {
+				result.unlit = this._unlit;
+			}
+			return result;
+		}
+	}
+	
+	bg.base.MaterialModifier = MaterialModifier;
+
+	function isAbsolutePath(path) {
+		return /^(f|ht)tps?:\/\//i.test(path);
+	}
+
+	function getTexture(context,texturePath,resourcePath) {
+		let texture = null;
+		if (texturePath) {
+			if (!isAbsolutePath(texturePath)) {
+				if (resourcePath.slice(-1)!='/') {
+					resourcePath += '/';
+				}
+				texturePath = `${resourcePath}${texturePath}`;
+			}
+
+			texture = bg.base.TextureCache.Get(context).find(texturePath);
+			if (!texture) {
+				texture = new bg.base.Texture(context);
+				texture.create();
+				texture.fileName = texturePath;
+				bg.base.TextureCache.Get(context).register(texturePath,texture);
+
+				(function(path,tex) {
+					bg.utils.Resource.Load(path)
+						.then(function(imgData) {
+							tex.bind();
+							texture.minFilter = bg.base.TextureLoaderPlugin.GetMinFilter();
+							texture.magFilter = bg.base.TextureLoaderPlugin.GetMinFilter();
+							tex.fileName = path;
+							tex.setImage(imgData);
+						});
+				})(texturePath,texture);
+			}
+		}
+		return texture;
+	}
+	
+	function getPath(texture) {
+		return texture ? texture.fileName:"";
+	}
+
+	function channelVector(channel) {
+		return new bg.Vector4(
+			channel==0 ? 1:0,
+			channel==1 ? 1:0,
+			channel==2 ? 1:0,
+			channel==3 ? 1:0
+		);
+	}
+	
+	function readVector(data) {
+		if (!data) return null;
+		switch (data.length) {
+		case 2:
+			return new bg.Vector2(data[0],data[1]);
+		case 3:
+			return new bg.Vector3(data[0],data[1],data[2]);
+		case 4:
+			return new bg.Vector4(data[0],data[1],data[2],data[3]);
+		}
+		return null;
+	}
+
+	let g_base64Images = {};
+
+	function readTexture(context,basePath,texData,mat,property) {
+		return new Promise((resolve) => {
+			if (!texData) {
+				resolve();
+			}
+			else if (/data\:image\/[a-z]+\;base64\,/.test(texData)) {
+				let hash = bg.utils.md5(texData);
+				if (g_base64Images[hash]) {
+					mat[property] = g_base64Images[hash];
+				}
+				else {
+					mat[property] = bg.base.Texture.FromBase64Image(context,texData);
+					g_base64Images[hash] = mat[property];
+				}
+				resolve(mat[property]);
+			}
+//			else if (/data\:md5/.test(texData)) {
+
+//			}
+			else {
+				let fullPath = basePath + texData;	// TODO: add full path
+				bg.base.Loader.Load(context,fullPath)
+					.then(function(tex) {
+						mat[property] = tex;
+						resolve(tex);
+					});
+			}
+		});
+	}
+
+	class Material {
+		// Create and initialize a material from the json material definition
+		static FromMaterialDefinition(context,def,basePath="") {
+			return new Promise((resolve,reject) => {
+				let mat = new Material();
+
+				mat.diffuse = readVector(def.diffuse) || bg.Color.White();
+				mat.specular = readVector(def.specular) || bg.Color.White();
+				mat.shininess = def.shininess || 0;
+				mat.shininessMaskChannel = def.shininessMaskChannel || 0;
+				mat.shininessMaskInvert = def.shininessMaskInvert || false;
+				mat.lightEmission = def.lightEmission || 0;
+				mat.lightEmissionMaskChannel = def.lightEmissionMaskChannel || 0;
+				mat.lightEmissionMaskInvert = def.lightEmissionMaskInvert || false;
+				mat.refractionAmount = def.refractionAmount || 0;
+				mat.reflectionAmount = def.reflectionAmount || 0;
+				mat.reflectionMaskChannel = def.reflectionMaskChannel || 0;
+				mat.reflectionMaskInvert = def.reflectionMaskInvert || false;
+				mat.textureOffset = readVector(def.textureOffset) || new bg.Vector2(0,0);
+				mat.textureScale = readVector(def.textureScale) || new bg.Vector2(1,1);
+				mat.normalMapOffset = readVector(def.normalMapOffset) || new bg.Vector2(0,0);
+				mat.normalMapScale = readVector(def.normalMapScale) || new bg.Vector2(1,1);
+				mat.cullFace = def.cullFace===undefined ? true : def.cullFace;
+				mat.castShadows = def.castShadows===undefined ? true : def.castShadows;
+				mat.receiveShadows = def.receiveShadows===undefined ? true : def.receiveShadows;
+				mat.alphaCutoff = def.alphaCutoff===undefined ? 0.5 : def.alphaCutoff;
+				mat.name = def.name;
+				mat.description = def.description;
+				mat.roughness = def.roughness || 0;
+				mat.roughnessMaskChannel = def.roughnessMaskChannel || 0;
+				mat.roughnessMaskInvert = def.roughnessMaskInvert || false;
+				mat.unlit = def.unlit || false;
+
+				let texPromises = [];
+				texPromises.push(readTexture(context,basePath,def.shininessMask,mat,"shininessMask"));
+				texPromises.push(readTexture(context,basePath,def.lightEmissionMask,mat,"lightEmissionMask"));
+				texPromises.push(readTexture(context,basePath,def.reflectionMask,mat,"reflectionMask"));
+				texPromises.push(readTexture(context,basePath,def.texture,mat,"texture"));
+				texPromises.push(readTexture(context,basePath,def.normalMap,mat,"normalMap"));
+				texPromises.push(readTexture(context,basePath,def.roughnessMask,mat,"roughnessMask"));
+
+				Promise.all(texPromises)
+					.then(() => {
+						resolve(mat);
+					});
+			});
+		}
+
+		constructor() {
+			this._diffuse = bg.Color.White();
+			this._specular = bg.Color.White();
+			this._shininess = 0;
+			this._lightEmission = 0;
+			this._refractionAmount = 0;
+			this._reflectionAmount = 0;
+			this._texture = null;
+			this._lightmap = null;
+			this._normalMap = null;
+			this._textureOffset = new bg.Vector2();
+			this._textureScale = new bg.Vector2(1);
+			this._lightmapOffset = new bg.Vector2();
+			this._lightmapScale = new bg.Vector2(1);
+			this._normalMapOffset = new bg.Vector2();
+			this._normalMapScale = new bg.Vector2(1);
+			this._castShadows = true;
+			this._receiveShadows = true;
+			this._alphaCutoff = 0.5;
+			this._shininessMask = null;
+			this._shininessMaskChannel = 0;
+			this._shininessMaskInvert = false;
+			this._lightEmissionMask = null;
+			this._lightEmissionMaskChannel = 0;
+			this._lightEmissionMaskInvert = false;
+			this._reflectionMask = null;
+			this._reflectionMaskChannel = 0;
+			this._reflectionMaskInvert = false;
+			this._cullFace = true;
+			this._roughness = 0;
+			this._roughnessMask = null;
+			this._roughnessMaskChannel = 0;
+			this._roughnessMaskInvert = false;
+			this._unlit = false;
+			
+			this._selectMode = false;
+		}
+		
+		clone() {
+			let copy = new Material();
+			copy.assign(this);
+			return copy;
+		}
+		
+		assign(other) {
+			this._diffuse = new bg.Color(other.diffuse);
+			this._specular = new bg.Color(other.specular);
+			this._shininess = other.shininess;
+			this._lightEmission = other.lightEmission;
+			this._refractionAmount = other.refractionAmount;
+			this._reflectionAmount = other.reflectionAmount;
+			this._texture = other.texture;
+			this._lightmap = other.lightmap;
+			this._normalMap = other.normalMap;
+			this._textureOffset = new bg.Vector2(other.textureOffset);
+			this._textureScale = new bg.Vector2(other.textureScale);
+			this._lightmapOffset = new bg.Vector2(other.ligthmapOffset);
+			this._lightmapScale = new bg.Vector2(other.lightmapScale);
+			this._normalMapOffset = new bg.Vector2(other.normalMapOffset);
+			this._normalMapScale = new bg.Vector2(other.normalMapScale);
+			this._castShadows = other.castShadows;
+			this._receiveShadows = other.receiveShadows;
+			this._alphaCutoff = other.alphaCutoff;
+			this._shininessMask = other.shininessMask;
+			this._shininessMaskChannel = other.shininessMaskChannel;
+			this._shininessMaskInvert = other.shininessMaskInvert;
+			this._lightEmissionMask = other.lightEmissionMask;
+			this._lightEmissionMaskChannel = other.lightEmissionMaskChannel;
+			this._lightEmissionMaskInvert = other.lightEmissionMaskInvert;
+			this._reflectionMask = other.reflectionMask;
+			this._reflectionMaskChannel = other.reflectionMaskChannel;
+			this._reflectionMaskInvert = other.reflectionMaskInvert;
+			this._cullFace = other.cullFace;
+			this._roughness = other.roughness;
+			this._roughnessMask = other.roughnessMask;
+			this._roughnessMaskChannel = other.roughnessMaskChannel;
+			this._roughnessMaskInvert = other.roughnessMaskInvert;
+			this._unlit = other.unlit;
+		}
+		
+		get isTransparent() {
+			return this._diffuse.a<1;
+		}
+		
+		get diffuse() { return this._diffuse; }
+		get specular() { return this._specular; }
+		get shininess() { return this._shininess; }
+		get lightEmission() { return this._lightEmission; }
+		get refractionAmount() { return this._refractionAmount; }
+		get reflectionAmount() { return this._reflectionAmount; }
+		get texture() { return this._texture; }
+		get lightmap() { return this._lightmap; }
+		get normalMap() { return this._normalMap; }
+		get textureOffset() { return this._textureOffset; }
+		get textureScale() { return this._textureScale; }
+		get lightmapOffset() { return this._lightmapOffset; }
+		get lightmapScale() { return this._lightmapScale; }
+		get normalMapOffset() { return this._normalMapOffset; }
+		get normalMapScale() { return this._normalMapScale; }
+		get castShadows() { return this._castShadows; }
+		get receiveShadows() { return this._receiveShadows; }
+		get alphaCutoff() { return this._alphaCutoff; }
+		get shininessMask() { return this._shininessMask; }
+		get shininessMaskChannel() { return this._shininessMaskChannel; }
+		get shininessMaskInvert() { return this._shininessMaskInvert; }
+		get lightEmissionMask() { return this._lightEmissionMask; }
+		get lightEmissionMaskChannel() { return this._lightEmissionMaskChannel; }
+		get lightEmissionMaskInvert() { return this._lightEmissionMaskInvert; }
+		get reflectionMask() { return this._reflectionMask; }
+		get reflectionMaskChannel() { return this._reflectionMaskChannel; }
+		get reflectionMaskInvert() { return this._reflectionMaskInvert; }
+		get cullFace() { return this._cullFace; }
+		get roughness() { return this._roughness; }
+		get roughnessMask() { return this._roughnessMask; }
+		get roughnessMaskChannel() { return this._roughnessMaskChannel; }
+		get roughnessMaskInvert() { return this._roughnessMaskInvert; }
+		get unlit() { return this._unlit; }
+
+		
+		set diffuse(newVal) { this._diffuse = newVal; }
+		set specular(newVal) { this._specular = newVal; }
+		set shininess(newVal) { if (!isNaN(newVal)) this._shininess = newVal; }
+		set lightEmission(newVal) { if (!isNaN(newVal)) this._lightEmission = newVal; }
+		set refractionAmount(newVal) { this._refractionAmount = newVal; }
+		set reflectionAmount(newVal) { this._reflectionAmount = newVal; }
+		set texture(newVal) { this._texture = newVal; }
+		set lightmap(newVal) { this._lightmap = newVal; }
+		set normalMap(newVal) { this._normalMap = newVal; }
+		set textureOffset(newVal) { this._textureOffset = newVal; }
+		set textureScale(newVal) { this._textureScale = newVal; }
+		set lightmapOffset(newVal) { this._lightmapOffset = newVal; }
+		set lightmapScale(newVal) { this._lightmapScale = newVal; }
+		set normalMapOffset(newVal) { this._normalMapOffset = newVal; }
+		set normalMapScale(newVal) { this._normalMapScale = newVal; }
+		set castShadows(newVal) { this._castShadows = newVal; }
+		set receiveShadows(newVal) { this._receiveShadows = newVal; }
+		set alphaCutoff(newVal) { if (!isNaN(newVal)) this._alphaCutoff = newVal; }
+		set shininessMask(newVal) { this._shininessMask = newVal; }
+		set shininessMaskChannel(newVal) { this._shininessMaskChannel = newVal; }
+		set shininessMaskInvert(newVal) { this._shininessMaskInvert = newVal; }
+		set lightEmissionMask(newVal) { this._lightEmissionMask = newVal; }
+		set lightEmissionMaskChannel(newVal) { this._lightEmissionMaskChannel = newVal; }
+		set lightEmissionMaskInvert(newVal) { this._lightEmissionMaskInvert = newVal; }
+		set reflectionMask(newVal) { this._reflectionMask = newVal; }
+		set reflectionMaskChannel(newVal) { this._reflectionMaskChannel = newVal; }
+		set reflectionMaskInvert(newVal) { this._reflectionMaskInvert = newVal; }
+		set cullFace(newVal) { this._cullFace = newVal; }
+		set roughness(newVal) { this._roughness = newVal; }
+		set roughnessMask(newVal) { this._roughnessMask = newVal; }
+		set roughnessMaskChannel(newVal) { this._roughnessMaskChannel = newVal; }
+		set roughnessMaskInvert(newVal) { this._roughnessMaskInvert = newVal; }
+		
+		get unlit() { return this._unlit; }
+		set unlit(u) { this._unlit = u; }
+
+		get selectMode() { return this._selectMode; }
+		set selectMode(s) { this._selectMode = s; }
+
+		// Mask channel vectors: used to pass the mask channel to a shader
+		get lightEmissionMaskChannelVector() {
+			return channelVector(this.lightEmissionMaskChannel)
+		}
+		
+		get shininessMaskChannelVector() {
+			return channelVector(this.shininessMaskChannel);
+		}
+		
+		get reflectionMaskChannelVector() {
+			return channelVector(this.reflectionMaskChannel);
+		}
+
+		get roughnessMaskChannelVector() {
+			return channelVector(this.roughnessMaskChannel);
+		}
+		
+		// Returns an array of the external resources used by this material, for example,
+		// the paths to the textures. If the "resources" parameter (array) is passed, the resources
+		// will be added to this array, and the parameter will be modified to include the new
+		// resources. If a resource exists in the "resources" parameter, it will not be added
+		getExternalResources(resources=[]) {
+			function tryadd(texture) {
+				if (texture && texture.fileName && texture.fileName!="" && resources.indexOf(texture.fileName)==-1) {
+					resources.push(texture.fileName);
+				}
+			}
+			tryadd(this.texture);
+			tryadd(this.lightmap);
+			tryadd(this.normalMap);
+			tryadd(this.shininessMask);
+			tryadd(this.lightEmissionMask);
+			tryadd(this.reflectionMask);
+			tryadd(this.roughnessMask);
+			return resources;
+		}
+		
+		copyMaterialSettings(mat,mask) {
+			if ( mask & bg.base.MaterialFlag.DIFFUSE) {
+				mat.diffuse = this.diffuse;
+			}
+			if ( mask & bg.base.MaterialFlag.SPECULAR) {
+				mat.specular = this.specular;
+			}
+			if ( mask & bg.base.MaterialFlag.SHININESS) {
+				mat.shininess = this.shininess;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_EMISSION) {
+				mat.lightEmission = this.lightEmission;
+			}
+			if ( mask & bg.base.MaterialFlag.REFRACTION_AMOUNT) {
+				mat.refractionAmount = this.refractionAmount;
+			}
+			if ( mask & bg.base.MaterialFlag.REFLECTION_AMOUNT) {
+				mat.reflectionAmount = this.reflectionAmount;
+			}
+			if ( mask & bg.base.MaterialFlag.TEXTURE) {
+				mat.texture = this.texture;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_MAP) {
+				mat.lightmap = this.lightmap;
+			}
+			if ( mask & bg.base.MaterialFlag.NORMAL_MAP) {
+				mat.normalMap = this.normalMap;
+			}
+			if ( mask & bg.base.MaterialFlag.TEXTURE_OFFSET) {
+				mat.textureOffset = this.textureOffset;
+			}
+			if ( mask & bg.base.MaterialFlag.TEXTURE_SCALE) {
+				mat.textureScale = this.textureScale;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_MAP_OFFSET) {
+				mat.lightmapOffset = this.lightmapOffset;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_MAP_SCALE) {
+				mat.lightmapScale = this.lightmapScale;
+			}
+			if ( mask & bg.base.MaterialFlag.NORMAL_MAP_OFFSET) {
+				mat.normalMapOffset = this.normalMapOffset;
+			}
+			if ( mask & bg.base.MaterialFlag.NORMAL_MAP_SCALE) {
+				mat.normalMapScale = this.normalMapScale;
+			}
+			if ( mask & bg.base.MaterialFlag.CAST_SHADOWS) {
+				mat.castShadows = this.castShadows;
+			}
+			if ( mask & bg.base.MaterialFlag.RECEIVE_SHADOWS) {
+				mat.receiveShadows = this.receiveShadows;
+			}
+			if ( mask & bg.base.MaterialFlag.ALPHA_CUTOFF) {
+				mat.alphaCutoff = this.alphaCutoff;
+			}
+			if ( mask & bg.base.MaterialFlag.SHININESS_MASK) {
+				mat.shininessMask = this.shininessMask;
+			}
+			if ( mask & bg.base.MaterialFlag.SHININESS_MASK_CHANNEL) {
+				mat.shininessMaskChannel = this.shininessMaskChannel;
+			}
+			if ( mask & bg.base.MaterialFlag.SHININESS_MASK_INVERT) {
+				mat.shininessMaskInvert = this.shininessMaskInvert;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_EMISSION_MASK) {
+				mat.lightEmissionMask = this.lightEmissionMask;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_EMISSION_MASK_CHANNEL) {
+				mat.lightEmissionMaskChannel = this.lightEmissionMaskChannel;
+			}
+			if ( mask & bg.base.MaterialFlag.LIGHT_EMISSION_MASK_INVERT) {
+				mat.lightEmissionMaskInvert = this.lightEmissionMaskInvert;
+			}
+			if ( mask & bg.base.MaterialFlag.REFLECTION_MASK) {
+				mat.reflectionMask = this.reflectionMask;
+			}
+			if ( mask & bg.base.MaterialFlag.REFLECTION_MASK_CHANNEL) {
+				mat.reflectionMaskChannel = this.reflectionMaskChannel;
+			}
+			if ( mask & bg.base.MaterialFlag.REFLECTION_MASK_INVERT) {
+				mat.reflectionMaskInvert = this.reflectionMaskInvert;
+			}
+			if ( mask & bg.base.MaterialFlag.CULL_FACE) {
+				mat.cullFace = this.cullFace;
+			}
+
+			// All the roughness attributes are copied together using this flag. In
+			// the future, the *_MASK, *_MASK_CHANNEL and *_MASK_INVERT for shininess,
+			// light emission and reflection, will be deprecated and will work in the
+			// same way as ROUGHNESS here
+			if ( mask & bg.base.MaterialFlag.ROUGHNESS) {
+				mat.reflectionAmount = this.reflectionAmount;
+				mat.reflectionMask = this.reflectionMask;
+				mat.reflectionMaskChannel = this.reflectionMaskChannel;
+				mat.reflectionMaskInvert = this.reflectionMaskInvert;
+			}
+
+			if (mask & bg.base.MaterialFlag.UNLIT) {
+				mat.unlit = this.unlit;
+			}
+		}
+
+		applyModifier(context, mod, resourcePath) {
+			if (mod.isEnabled(bg.base.MaterialFlag.DIFFUSE)) {
+				this.diffuse = mod.diffuse;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SPECULAR)) {
+				this.specular = mod.specular;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SHININESS)) {
+				this.shininess = mod.shininess;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_EMISSION)) {
+				this.lightEmission = mod.lightEmission;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFRACTION_AMOUNT)) {
+				this.refractionAmount = mod.refractionAmount;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFLECTION_AMOUNT)) {
+				this.reflectionAmount = mod.reflectionAmount;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.TEXTURE)) {
+				this.texture = getTexture(context,mod.texture,resourcePath);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_MAP)) {
+				this.lightmap = getTexture(context,mod.lightmap,resourcePath);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.NORMAL_MAP)) {
+				this.normalMap = getTexture(context,mod.normalMap,resourcePath);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.TEXTURE_OFFSET)) {
+				this.textureOffset = mod.textureOffset;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.TEXTURE_SCALE)) {
+				this.textureScale = mod.textureScale;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_MAP_OFFSET)) {
+				this.lightmapOffset = mod.lightmapOffset;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_MAP_SCALE)) {
+				this.lightmapScale = mod.lightmapScale;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.NORMAL_MAP_OFFSET)) {
+				this.normalMapOffset = mod.normalMapOffset;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.NORMAL_MAP_SCALE)) {
+				this.normalMapScale = mod.normalMapScale;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.CAST_SHADOWS)) {
+				this.castShadows = mod.castShadows;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.RECEIVE_SHADOWS)) {
+				this.receiveShadows = mod.receiveShadows;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.ALPHA_CUTOFF)) {
+				this.alphaCutoff = mod.alphaCutoff;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SHININESS_MASK)) {
+				this.shininessMask = getTexture(context,mod.shininessMask,resourcePath);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SHININESS_MASK_CHANNEL)) {
+				this.shininessMaskChannel = mod.shininessMaskChannel;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SHININESS_MASK_INVERT)) {
+				this.shininessMaskInvert = mod.shininessMaskInvert;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_EMISSION_MASK)) {
+				this.lightEmissionMask = getTexture(context,mod.lightEmissionMask,resourcePath);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_EMISSION_MASK_CHANNEL)) {
+				this.lightEmissionMaskChannel = mod.lightEmissionMaskChannel;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_EMISSION_MASK_INVERT)) {
+				this.lightEmissionMaskInvert = mod.lightEmissionMaskInvert;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFLECTION_MASK)) {
+				this.reflectionMask = getTexture(context,mod.reflectionMask,resourcePath);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFLECTION_MASK_CHANNEL)) {
+				this.reflectionMaskChannel = mod.reflectionMaskChannel;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFLECTION_MASK_INVERT)) {
+				this.reflectionMaskInvert = mod.reflectionMaskInvert;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.CULL_FACE)) {
+				this.cullFace = mod.cullFace;
+			}
+
+			// See above note for ROUGHNESS flags
+			if (mod.isEnabled(bg.base.MaterialFlag.ROUGHNESS)) {
+				this.roughness = mod.roughness;
+				this.roughnessMask = getTexture(context,mod.roughnessMask,resourcePath);
+				this.roughnessMaskChannel = mod.roughnessMaskChannel;
+				this.roughnessMaskInvert = mod.roughnessMaskInvert;
+			}
+
+			if (mod.isEnabled(bg.base.MaterialFlag.UNLIT)) {
+				this.unlit = mod.unlit;
+			}
+		}
+		
+		getModifierWithMask(modifierMask) {
+			var mod = new MaterialModifier();
+
+			mod.modifierFlags = modifierMask;
+			
+			if (mod.isEnabled(bg.base.MaterialFlag.DIFFUSE)) {
+				mod.diffuse = this.diffuse;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SPECULAR)) {
+				mod.specular = this.specular;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SHININESS)) {
+				mod.shininess = this.shininess;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_EMISSION)) {
+				mod.lightEmission = this.lightEmission;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFRACTION_AMOUNT)) {
+				mod.refractionAmount = this.refractionAmount;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFLECTION_AMOUNT)) {
+				mod.reflectionAmount = this.reflectionAmount;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.TEXTURE)) {
+				mod.texture = getPath(this.texture);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_MAP)) {
+				mod.lightmap = getPath(this.lightmap);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.NORMAL_MAP)) {
+				mod.normalMap = getPath(this.normalMap);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.TEXTURE_OFFSET)) {
+				mod.textureOffset = this.textureOffset;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.TEXTURE_SCALE)) {
+				mod.textureScale = this.textureScale;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_MAP_OFFSET)) {
+				mod.lightmapOffset = this.lightmapOffset;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_MAP_SCALE)) {
+				mod.lightmapScale = this.lightmapScale;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.NORMAL_MAP_OFFSET)) {
+				mod.normalMapOffset = this.normalMapOffset;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.NORMAL_MAP_SCALE)) {
+				mod.normalMapScale = this.normalMapScale;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.CAST_SHADOWS)) {
+				mod.castShadows = this.castShadows;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.RECEIVE_SHADOWS)) {
+				mod.receiveShadows = this.receiveShadows;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.ALPHA_CUTOFF)) {
+				mod.alphaCutoff = this.alphaCutoff;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SHININESS_MASK)) {
+				mod.shininessMask = getPath(this.shininessMask);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SHININESS_MASK_CHANNEL)) {
+				mod.shininessMaskChannel = this.shininessMaskChannel;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.SHININESS_MASK_INVERT)) {
+				mod.shininessMaskInvert = this.shininessMaskInvert;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_EMISSION_MASK)) {
+				mod.lightEmissionMask = getPath(this.lightEmissionMask);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_EMISSION_MASK_CHANNEL)) {
+				mod.lightEmissionMaskChannel = this.lightEmissionMaskChannel;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.LIGHT_EMISSION_MASK_INVERT)) {
+				mod.lightEmissionMaskInver = this.lightEmissionMaskInver;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFLECTION_MASK)) {
+				mod.reflectionMask = getPath(this.reflectionMask);
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFLECTION_MASK_CHANNEL)) {
+				mod.reflectionMaskChannel = this.reflectionMaskChannel;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.REFLECTION_MASK_INVERT)) {
+				mod.reflectionMaskInvert = this.reflectionMaskInvert;
+			}
+			if (mod.isEnabled(bg.base.MaterialFlag.CULL_FACE)) {
+				mod.cullFace = this.cullFace;
+			}
+
+			// See above note about ROUGHNESS flag
+			if (mod.isEnabled(bg.base.MaterialFlag.ROUGHNESS)) {
+				mod.roughness = this.roughness;
+				mod.roughnessMask = getPath(this.roughnessMask);
+				mod.roughnessMaskChannel = this.roughnessMaskChannel;
+				mod.roughnessMaskInvert = this.roughnessMaskInvert;
+			}
+
+			if (mod.isEnabled(bg.base.MaterialFlag.UNLIT)) {
+				mod.unlit = this.unlit;
+			}
+
+			return mod;
+		}
+		
+		static GetMaterialWithJson(context,data,path) {
+			let material = new Material();
+			if (data.cullFace===undefined) {
+				data.cullFace = true;
+			}
+			
+			material.diffuse.set(data.diffuseR,data.diffuseG,data.diffuseB,data.diffuseA);
+			material.specular.set(data.specularR,data.specularG,data.specularB,data.specularA);
+			material.shininess = data.shininess;
+			material.lightEmission = data.lightEmission;
+			
+			material.refractionAmount = data.refractionAmount;
+			material.reflectionAmount = data.reflectionAmount;
+			
+			material.textureOffset.set(data.textureOffsetX,data.textureOffsetY);
+			material.textureScale.set(data.textureScaleX,data.textureScaleY);
+			
+			material.lightmapOffset.set(data.lightmapOffsetX,data.lightmapOffsetY);
+			material.lightmapScale.set(data.lightmapScaleX,data.lightmapScaleY);
+			
+			material.normalMapOffset.set(data.normalMapOffsetX,data.normalMapOffsetY);
+			material.normalMapScale.set(data.normalMapScaleX,data.normalMapScaleY);
+			
+			material.alphaCutoff = data.alphaCutoff;
+			material.castShadows = data.castShadows;
+			material.receiveShadows = data.receiveShadows;
+			
+			material.shininessMaskChannel = data.shininessMaskChannel;
+			material.shininessMaskInvert = data.invertShininessMask;
+			
+			material.lightEmissionMaskChannel = data.lightEmissionMaskChannel;
+			material.lightEmissionMaskInvert = data.invertLightEmissionMask;
+			
+			material.reflectionMaskChannel = data.reflectionMaskChannel;
+			material.reflectionMaskInvert = data.invertReflectionMask;
+
+			material.roughness = data.roughness;
+			material.roughnessMaskChannel = data.roughnessMaskChannel;
+			material.roughnessMaskInvert = data.invertRoughnessMask;
+			
+			material.cullFace = data.cullFace;
+			
+			material.unlit = data.unlit;
+			
+			if (path && path[path.length-1]!='/') {
+				path += '/';
+			}
+			
+			function mergePath(path,file) {
+				if (!file) return null;
+				return path ? path + file:file;
+			}
+
+			data.texture = mergePath(path,data.texture);
+			data.lightmap = mergePath(path,data.lightmap);
+			data.normalMap = mergePath(path,data.normalMap);
+			data.shininessMask = mergePath(path,data.shininessMask);
+			data.lightEmissionMask = mergePath(path,data.lightEmissionMask);
+			data.reflectionMask = mergePath(path,data.reflectionMask);
+			data.roughnessMask = mergePath(path,data.roughnessMask);
+			
+			return new Promise((accept,reject) => {
+				let textures = [];
+				
+				if (data.texture) {
+					textures.push(data.texture);
+				}
+				if (data.lightmap && textures.indexOf(data.lightmap)==-1) {
+					textures.push(data.lightmap);
+				}
+				if (data.normalMap && textures.indexOf(data.normalMap)==-1) {
+					textures.push(data.normalMap);
+				}
+				if (data.shininessMask && textures.indexOf(data.shininessMask)==-1) {
+					textures.push(data.shininessMask);
+				}
+				if (data.lightEmissionMask && textures.indexOf(data.lightEmissionMask)==-1) {
+					textures.push(data.lightEmissionMask);
+				}
+				if (data.reflectionMask && textures.indexOf(data.reflectionMask)==-1) {
+					textures.push(data.reflectionMask);
+				}
+				if (data.roughnessMask && textures.indexOf(data.roughnessMask)==-1) {
+					textures.push(data.roughnessMask);
+				}
+				
+				bg.utils.Resource.Load(textures)
+					.then(function(images) {
+						material.texture = loadTexture(context,images[data.texture],data.texture);
+						material.lightmap = loadTexture(context,images[data.lightmap],data.lightmap);
+						material.normalMap = loadTexture(context,images[data.normalMap],data.normalMap);
+						material.shininessMask = loadTexture(context,images[data.shininessMask],data.shininessMask);
+						material.lightEmissionMask = loadTexture(context,images[data.lightEmissionMask],data.lightEmissionMask);
+						material.reflectionMask = loadTexture(context,images[data.reflectionMask],data.reflectionMask);
+						material.roughnessMask = loadTexture(context,images[data.roughnessMask],data.roughnessMask);
+						accept(material);
+					});
+			});
+		}
+	}
+	
+	bg.base.Material = Material;
+})();
+
+(function() {
+	class MatrixStack {
+		constructor() {
+			this._matrix = bg.Matrix4.Identity();
+			this._stack = [];
+			this._changed = true;
+		}
+		
+		get changed() { return this._changed; }
+		set changed(c) { this._changed = c; }
+		
+		push() {
+			this._stack.push(new bg.Matrix4(this._matrix));
+		}
+		
+		set(m) {
+			this._matrix.assign(m);
+			this._changed = true;
+			return this;
+		}
+		
+		mult(m) {
+			this._matrix.mult(m);
+			this._changed = true;
+			return this;
+		}
+		
+		identity() {
+			this._matrix.identity();
+			this._changed = true;
+			return this;
+		}
+		
+		translate(x, y, z) {
+			this._matrix.translate(x, y, z);
+			this._changed = true;
+			return this;
+		}
+		
+		rotate(alpha, x, y, z) {
+			this._matrix.rotate(alpha, x, y, z);
+			this._changed = true;
+			return this;
+		}
+		
+		scale(x, y, z) {
+			this._matrix.scale(x, y, z);
+			this._changed = true;
+			return this;
+		}
+
+		setScale(x, y, z) {
+			this._matrix.setScale(x,y,z);
+			this._changed = true;
+			return this;
+		}
+		
+		perspective(fov,aspect,near,far) {
+			this._matrix
+				.identity()
+				.perspective(fov,aspect,near,far);
+			this._changed = true;
+			return this;
+		}
+		
+		frustum(left, right, bottom, top, nearPlane, farPlane) {
+			this._matrix
+				.identity()
+				.frustum(left,right,bottom,top,nearPlane,farPlane);
+			this._changed = true;
+			return this;
+		}
+
+		ortho(left, right, bottom, top, nearPlane, farPlane) {
+			this._matrix
+				.identity()
+				.ortho(left,right,bottom,top,nearPlane,farPlane);
+			this._changed = true;
+			return this;
+		}
+		
+		invert() {
+			this._matrix.invert();
+			this._changed = true;
+			return this;
+		}
+		
+		get matrix() {
+			this._changed = true;
+			return this._matrix;
+		}
+		
+		// This accessor will return the current matrix without mark the internal state
+		// to changed. There isn't any way in JavaScript to ensure that the returned matrix
+		// will not be changed, therefore use this accessor carefully. It's recommended to use this
+		// accessor ONLY to retrieve the matrix and pass it to the shaders. 
+		get matrixConst() {
+			return this._matrix;
+		}
+		
+		pop() {
+			if (this._stack.length) {
+				this._matrix.assign(this._stack.pop());
+				this._changed = true;
+			}
+			return this._matrix;
+		}
+	}
+	
+	bg.base.MatrixStack = MatrixStack;
+	
+	let s_MatrixState = null;
+	
+	class MatrixState {
+		static Current() {
+			if (!s_MatrixState) {
+				s_MatrixState = new MatrixState();
+			}
+			return s_MatrixState;
+		}
+		
+		static SetCurrent(s) {
+			s_MatrixState = s;
+			return s_MatrixState;
+		}
+		
+		constructor() {
+			// Matrixes
+			this._modelMatrixStack = new MatrixStack();
+			this._viewMatrixStack = new MatrixStack();
+			this._projectionMatrixStack = new MatrixStack();
+			this._modelViewMatrix = bg.Matrix4.Identity();
+			this._normalMatrix = bg.Matrix4.Identity();
+			this._cameraDistanceScale = null;
+		}
+		
+		get modelMatrixStack() {
+			return this._modelMatrixStack;
+		}
+		
+		get viewMatrixStack() {
+			return this._viewMatrixStack;
+		}
+		
+		get projectionMatrixStack() {
+			return this._projectionMatrixStack;
+		}
+		
+		get modelViewMatrix() {
+			if (!this._modelViewMatrix || this._modelMatrixStack.changed || this._viewMatrixStack.changed) {
+				this._modelViewMatrix = new bg.Matrix4(this._viewMatrixStack._matrix);
+				this._modelViewMatrix.mult(this._modelMatrixStack._matrix);
+				this._modelMatrixStack.changed = false;
+				this._viewMatrixStack.changed = false;
+			}
+			return this._modelViewMatrix;
+		}
+		
+		get normalMatrix() {
+			if (!this._normalMatrix || this._modelMatrixStack.changed || this._viewMatrixStack.changed) {
+				this._normalMatrix = new bg.Matrix4(this.modelViewMatrix);
+				this._normalMatrix.invert();
+				this._normalMatrix.traspose();
+				this._modelMatrixStack.changed = false;
+			}
+			return this._normalMatrix;
+		}
+		
+		get viewMatrixInvert() {
+			if (!this._viewMatrixInvert || this._viewMatrixStack.changed) {
+				this._viewMatrixInvert = new bg.Matrix4(this.viewMatrixStack.matrixConst);
+				this._viewMatrixInvert.invert();
+			}
+			return this._viewMatrixInvert;
+		}
+
+		// This function returns a number that represents the
+		// distance from the camera to the model.
+		get cameraDistanceScale() {
+			return this._cameraDistanceScale = this._viewMatrixStack.matrix.position.magnitude();
+		}
+	}
+	
+	bg.base.MatrixState = MatrixState;
+})();
+(function() {
+	
+	bg.base.ClearBuffers = {
+		COLOR:null,
+		DEPTH:null,
+		COLOR_DEPTH:null
+	};
+	
+	bg.base.BlendMode = {
+		NORMAL: 1,			// It works as the Photoshop layers does	GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA, GL_FUNC_ADD
+		MULTIPLY: 2,		// GL_ZERO GL_SRC_COLOR, GL_FUNC_ADD
+		ADD: 3,				// GL_ONE GL_ONE, GL_FUNC_ADD
+		SUBTRACT: 4,		// GL_ONE GL_ONE, GL_FUNC_SUBTRACT
+		ALPHA_ADD: 5,		// GL_SRC_ALPHA GL_DST_ALPHA, GL_FUNC_ADD
+		ALPHA_SUBTRACT: 6	// GL_SRC_ALPHA GL_DST_ALPHA, GL_FUNC_SUBTRACT
+	};
+
+	bg.base.OpacityLayer = {
+		TRANSPARENT: 0b1,
+		OPAQUE: 0b10,
+		GIZMOS: 0b100,
+		SELECTION: 0b1000,
+		GIZMOS_SELECTION: 0b10000,
+		ALL: 0b1111,
+		NONE: 0
+	};
+
+	class PipelineImpl {
+		constructor(context) {
+			this.initFlags(context);
+			bg.base.ClearBuffers.COLOR_DEPTH = bg.base.ClearBuffers.COLOR | bg.base.ClearBuffers.DEPTH;
+		}
+		
+		initFlags(context) {}
+		
+		setViewport(context,vp) {}
+		clearBuffers(context,color,buffers) {}
+		setDepthTestEnabled(context,e) {}
+		setBlendEnabled(context,e) {}
+		setBlendMode(context,m) {}
+		setCullFace(context,e) {}
+	}
+	
+	bg.base.PipelineImpl = PipelineImpl;
+
+	let s_currentPipeline = null;
+	
+	function enablePipeline(pipeline) {
+		if (pipeline._effect) {
+			pipeline._effect.setActive();
+		}
+		pipeline.renderSurface.setActive();
+		
+		bg.Engine.Get().pipeline.setViewport(pipeline.context,pipeline._viewport);
+		bg.Engine.Get().pipeline.setDepthTestEnabled(pipeline.context,pipeline._depthTest);
+		bg.Engine.Get().pipeline.setCullFace(pipeline.context,pipeline._cullFace);
+		bg.Engine.Get().pipeline.setBlendEnabled(pipeline.context,pipeline._blend);
+		bg.Engine.Get().pipeline.setBlendMode(pipeline.context,pipeline._blendMode);
+	}
+	
+	class Pipeline extends bg.app.ContextObject {
+		static SetCurrent(p) {
+			s_currentPipeline = p;
+			if (s_currentPipeline) {
+				enablePipeline(s_currentPipeline);
+			}
+		}
+		
+		static Current() { return s_currentPipeline; }
+		
+		constructor(context) {
+			super(context);
+
+			// Opacity layer
+			this._opacityLayer = bg.base.OpacityLayer.ALL;
+	
+			// Viewport
+			this._viewport = new bg.Viewport(0,0,200,200);
+			
+			// Clear buffer
+			this._clearColor = bg.Color.Black();
+			
+			// Effect (used with draw method)
+			this._effect = null;
+			
+			// Texture effect (used with drawTexture method)
+			this._textureEffect = null;
+			
+			
+			// Other flags
+			this._depthTest = true;
+			this._cullFace = true;
+			
+			// Render surface
+			this._renderSurface = null;
+			
+			// Blending
+			this._blend = false;
+			this._blendMode = bg.base.BlendMode.NORMAL;
+
+			this._buffersToClear = bg.base.ClearBuffers.COLOR_DEPTH;
+		}
+		
+		get isCurrent() { return s_currentPipeline==this; }
+		
+		set opacityLayer(l) { this._opacityLayer = l; }
+		get opacityLayer() { return this._opacityLayer; }
+		shouldDraw(material) {
+			return material &&
+				   ((material.isTransparent && (this._opacityLayer & bg.base.OpacityLayer.TRANSPARENT)!=0) ||
+				   (!material.isTransparent && (this._opacityLayer & bg.base.OpacityLayer.OPAQUE)!=0));
+		}
+
+		get effect() { return this._effect; }
+		set effect(m) {
+			this._effect = m;
+			if (this._effect && this.isCurrent) {
+				this._effect.setActive();
+			}
+		}
+		
+		get textureEffect() {
+			if (!this._textureEffect) {
+				this._textureEffect = new bg.base.DrawTextureEffect(this.context);
+			}
+			return this._textureEffect;
+		}
+		
+		set textureEffect(t) {
+			this._textureEffect = t;
+		}
+
+		set buffersToClear(b) { this._buffersToClear = b; }
+		get buffersToClear() { return this._buffersToClear; }
+
+		get renderSurface() {
+			if (!this._renderSurface) {
+				this._renderSurface = new bg.base.ColorSurface(this.context);
+				this._renderSurface.setActive();
+			}
+			return this._renderSurface;
+		}
+
+		set renderSurface(r) {
+			this._renderSurface = r;
+			if (this.isCurrent) {
+				this._renderSurface.setActive();
+			}
+		}
+		 
+		draw(polyList) {
+			if (this._effect && polyList && this.isCurrent) {
+				let cf = this.cullFace;
+				this._effect.bindPolyList(polyList);
+				if (this._effect.material) {
+					
+					this.cullFace = this._effect.material.cullFace;
+				}
+				polyList.draw();
+				this._effect.unbind();
+				this.cullFace = cf;
+			}
+		}
+		
+		drawTexture(texture) {
+			let depthTest = this.depthTest;
+			this.depthTest = false;
+			this.textureEffect.drawSurface(texture);
+			this.depthTest = depthTest;
+		}
+		
+		get blend() { return this._blend; }
+		set blend(b) {
+			this._blend = b;
+			if (this.isCurrent) {
+				bg.Engine.Get().pipeline.setBlendEnabled(this.context,this._blend);
+			}
+		}
+		
+		get blendMode() { return this._blendMode; }
+		set blendMode(b) {
+			this._blendMode = b;
+			if (this.isCurrent) {
+				bg.Engine.Get().pipeline.setBlendMode(this.context,this._blendMode);
+			}
+		}
+		
+		get viewport() { return this._viewport; }
+		set viewport(vp) {
+			this._viewport = vp;
+			if (this.renderSurface.resizeOnViewportChanged) {
+				this.renderSurface.size = new bg.Vector2(vp.width,vp.height);
+			}
+			if (this.isCurrent) {
+				bg.Engine.Get().pipeline.setViewport(this.context,this._viewport);
+			}
+		}
+		
+		clearBuffers(buffers) {
+			if (this.isCurrent) {
+				buffers = buffers!==undefined ? buffers : this._buffersToClear;
+				bg.Engine.Get().pipeline.clearBuffers(this.context,this._clearColor,buffers);
+			}
+		}
+		
+		get clearColor() { return this._clearColor; }
+		set clearColor(c) { this._clearColor = c; }
+		
+		get depthTest() { return this._depthTest; }
+		set depthTest(e) {
+			this._depthTest = e;
+			if (this.isCurrent) {
+				bg.Engine.Get().pipeline.setDepthTestEnabled(this.context,this._depthTest);
+			}
+		}
+		
+		get cullFace() { return this._cullFace; }
+		set cullFace(c) {
+			this._cullFace = c;
+			if (this.isCurrent) {
+				bg.Engine.Get().pipeline.setCullFace(this.context,this._cullFace);
+			}
+		}
+	}
+	
+	bg.base.Pipeline = Pipeline;
+})();
+(function() {
+	
+	bg.base.BufferType = {
+		VERTEX:		1 << 0,
+		NORMAL:		1 << 1,
+		TEX_COORD_0:		1 << 2,
+		TEX_COORD_1:		1 << 3,
+		TEX_COORD_2:		1 << 4,
+		COLOR:		1 << 5,
+		TANGENT:	1 << 6,
+		INDEX:		1 << 7
+	};
+	
+	class PolyListImpl {
+		constructor(context) {
+			this.initFlags(context);
+		}
+		
+		initFlags(context) {}
+		create(context) {}
+		build(context,plist,vert,norm,t0,t1,t2,col,tan,index) { return false; }
+		draw(context,plist,drawMode,numberOfIndex) {}
+		destroy(context,plist) {}
+
+		// NOTE: the new buffer data must have the same size as the old one
+		update(context,plist,bufferType,newData) {}
+	}
+
+	function createTangents(plist) {
+		if (!plist.texCoord0 || !plist.vertex) return;
+		plist._tangent = [];
+		
+		let result = [];
+		let generatedIndexes = {};
+		let invalidUV = false;
+		if (plist.index.length%3==0) {
+			for (let i=0; i<plist.index.length - 2; i+=3) {
+				let v0i = plist.index[i] * 3;
+				let v1i = plist.index[i + 1] * 3;
+				let v2i = plist.index[i + 2] * 3;
+				
+				let t0i = plist.index[i] * 2;
+				let t1i = plist.index[i + 1] * 2;
+				let t2i = plist.index[i + 2] * 2;
+				
+				let v0 = new bg.Vector3(plist.vertex[v0i], plist.vertex[v0i + 1], plist.vertex[v0i + 2]);
+				let v1 = new bg.Vector3(plist.vertex[v1i], plist.vertex[v1i + 1], plist.vertex[v1i + 2]);
+				let v2 = new bg.Vector3(plist.vertex[v2i], plist.vertex[v2i + 1], plist.vertex[v2i + 2]);
+				
+				let t0 = new bg.Vector2(plist.texCoord0[t0i], plist.texCoord0[t0i + 1]);
+				let t1 = new bg.Vector2(plist.texCoord0[t1i], plist.texCoord0[t1i + 1]);
+				let t2 = new bg.Vector2(plist.texCoord0[t2i], plist.texCoord0[t2i + 1]);
+				
+				let edge1 = (new bg.Vector3(v1)).sub(v0);
+				let edge2 = (new bg.Vector3(v2)).sub(v0);
+				
+				let deltaU1 = t1.x - t0.x;
+				let deltaV1 = t1.y - t0.y;
+				let deltaU2 = t2.x - t0.x;
+				let deltaV2 = t2.y - t0.y;
+				
+				let den = (deltaU1 * deltaV2 - deltaU2 * deltaV1);
+				let tangent = null;
+				if (den==0) {
+					let n = new bg.Vector3(plist.normal[v0i], plist.normal[v0i + 1], plist.normal[v0i + 2]);
+
+					invalidUV = true;
+					tangent = new bg.Vector3(n.y, n.z, n.x);
+				}
+				else {
+					let f = 1 / den;
+				
+					tangent = new bg.Vector3(f * (deltaV2 * edge1.x - deltaV1 * edge2.x),
+												   f * (deltaV2 * edge1.y - deltaV1 * edge2.y),
+												   f * (deltaV2 * edge1.z - deltaV1 * edge2.z));
+					tangent.normalize();
+				}
+				
+				if (generatedIndexes[v0i]===undefined) {
+					result.push(tangent.x);
+					result.push(tangent.y);
+					result.push(tangent.z);
+					generatedIndexes[v0i] = tangent;
+				}
+				
+				if (generatedIndexes[v1i]===undefined) {
+					result.push(tangent.x);
+					result.push(tangent.y);
+					result.push(tangent.z);
+					generatedIndexes[v1i] = tangent;
+				}
+				
+				if (generatedIndexes[v2i]===undefined) {
+					result.push(tangent.x);
+					result.push(tangent.y);
+					result.push(tangent.z);
+					generatedIndexes[v2i] = tangent;
+				}
+			}
+		}
+		else {	// other draw modes: lines, line_strip
+			for (let i=0; i<plist.vertex.length; i+=3) {
+				plist._tangent.push(0,0,1);
+			}
+		}
+		if (invalidUV) {
+			console.warn("Invalid UV texture coords found. Some objects may present artifacts in the lighting, and not display textures properly.")
+		}
+		return result;
+	}
+	
+	bg.base.PolyListImpl = PolyListImpl;
+	
+	bg.base.DrawMode = {
+		TRIANGLES: null,
+		TRIANGLE_FAN: null,
+		TRIANGLE_STRIP: null,
+		LINES: null,
+		LINE_STRIP: null
+	};
+	
+	class PolyList extends bg.app.ContextObject {
+		constructor(context) {
+			super(context);
+			
+			this._plist = null;
+			
+			this._drawMode = bg.base.DrawMode.TRIANGLES;
+			
+			this._name = "";
+			this._groupName = "";
+			this._visible = true;
+			this._visibleToShadows = true;
+			
+			this._vertex = [];
+			this._normal = [];
+			this._texCoord0 = [];
+			this._texCoord1 = [];
+			this._texCoord2 = [];
+			this._color = [];
+			this._tangent = [];
+			this._index = [];
+		}
+		
+		clone() {
+			let pl2 = new PolyList(this.context);
+			
+			let copy = function(src,dst) {
+				src.forEach(function(item) {
+					dst.push(item);
+				});
+			};
+			
+			pl2.name = this.name + " clone";
+			pl2.groupName = this.groupName;
+			pl2.visible = this.visible;
+			pl2.visibleToShadows = this.visibleToShadows;
+			pl2.drawMode = this.drawMode;
+			
+			copy(this.vertex,pl2.vertex);
+			copy(this.normal,pl2.normal);
+			copy(this.texCoord0,pl2.texCoord0);
+			copy(this.texCoord1,pl2.texCoord1);
+			copy(this.texCoord2,pl2.texCoord02);
+			copy(this.color,pl2.color);
+			copy(this.index,pl2.index);
+			pl2.build();
+			
+			return pl2;
+		}
+		
+		get name() { return this._name; }
+		set name(n) { this._name = n; }
+		
+		get groupName() { return this._groupName; }
+		set groupName(n) { this._groupName = n; }
+		
+		get visible() { return this._visible; }
+		set visible(v) { this._visible = v; }
+
+		get visibleToShadows() { return this._visibleToShadows; }
+		set visibleToShadows(v) { this._visibleToShadows = v; }
+		
+		get drawMode() { return this._drawMode; }
+		set drawMode(m) { this._drawMode = m; }
+		
+		set vertex(v) { this._vertex = v; }
+		set normal(n) { this._normal = n; }
+		set texCoord0(t) { this._texCoord0 = t; }
+		set texCoord1(t) { this._texCoord1 = t; }
+		set texCoord2(t) { this._texCoord2 = t; }
+		set color(c) { this._color = c; }
+		//  Tangent buffer is calculated from normal buffer
+		set index(i) { this._index = i; }
+		
+		get vertex() { return this._vertex; }
+		get normal() { return this._normal; }
+		get texCoord0() { return this._texCoord0; }
+		get texCoord1() { return this._texCoord1; }
+		get texCoord2() { return this._texCoord2; }
+		get color() { return this._color; }
+		get tangent() { return this._tangent; }
+		get index() { return this._index; }
+		
+		get vertexBuffer() { return this._plist.vertexBuffer; }
+		get normalBuffer() { return this._plist.normalBuffer; }
+		get texCoord0Buffer() { return this._plist.tex0Buffer; }
+		get texCoord1Buffer() { return this._plist.tex1Buffer; }
+		get texCoord2Buffer() { return this._plist.tex2Buffer; }
+		get colorBuffer() { return this._plist.colorBuffer; }
+		get tangentBuffer() { return this._plist.tangentBuffer; }
+		get indexBuffer() { return this._plist.indexBuffer; }
+
+		// Note that the new buffer must have the same size as the old one, this
+		// function is intended to be used only to replace the buffer values
+		updateBuffer(bufferType,newData) {
+			let status = false;
+			switch (bufferType) {
+			case bg.base.BufferType.VERTEX:
+				status = this.vertex.length==newData.length;
+				break;
+			case bg.base.BufferType.NORMAL:
+				status = this.normal.length==newData.length;
+				break;
+			case bg.base.BufferType.TEX_COORD_0:
+				status = this.texCoord0.length==newData.length;
+				break;
+			case bg.base.BufferType.TEX_COORD_1:
+				status = this.texCoord1.length==newData.length;
+				break;
+			case bg.base.BufferType.TEX_COORD_2:
+				status = this.texCoord2.length==newData.length;
+				break;
+			case bg.base.BufferType.COLOR:
+				status = this.color.length==newData.length;
+				break;
+			case bg.base.BufferType.TANGENT:
+				status = this.tangent.length==newData.length;
+				break;
+			case bg.base.BufferType.INDEX:
+				status = this.index.length==newData.length;
+				break;
+			}
+			if (!status) {
+				throw new Error("Error updating buffer: The new buffer have different size as the old one.");
+			}
+			else {
+				bg.Engine.Get().polyList.update(this.context,this._plist,bufferType,newData);
+			}
+		}
+		
+		build() {
+			if (this.color.length==0) {
+				// Ensure that the poly list have a color buffer
+				for (let i = 0; i<this.vertex.length; i+=3) {
+					this.color.push(1);
+					this.color.push(1);
+					this.color.push(1);
+					this.color.push(1);
+				}
+			}
+
+			let plistImpl = bg.Engine.Get().polyList;
+			if (this._plist) {
+				plistImpl.destroy(this.context, this._plist);
+				this._tangent = [];
+			}
+			this._tangent = createTangents(this);
+			this._plist = plistImpl.create(this.context);
+			return plistImpl.build(this.context, this._plist,
+							this._vertex,
+							this._normal,
+							this._texCoord0,
+							this._texCoord1,
+							this._texCoord2,
+							this._color,
+							this._tangent,
+							this._index);
+		}
+		
+		draw() {
+			bg.Engine.Get().polyList
+				.draw(this.context,this._plist,this.drawMode,this.index.length);
+		}
+		
+		destroy() {
+			if (this._plist) {
+				bg.Engine.Get().polyList
+					.destroy(this.context, this._plist);
+			}
+			
+			this._plist = null;
+			
+			this._name = "";
+			this._vertex = [];
+			this._normal = [];
+			this._texCoord0 = [];
+			this._texCoord1 = [];
+			this._texCoord2 = [];
+			this._color = [];
+			this._tangent = [];
+			this._index = [];
+		}
+		
+		applyTransform(trx) {
+			var transform = new bg.Matrix4(trx);
+			var rotation = new bg.Matrix4(trx.getMatrix3());
+
+			if (this.normal.length>0 && this.normal.length!=this.vertex.length)
+				throw new Error("Unexpected number of normal coordinates found in polyList");
+	
+			for (let i=0;i<this.vertex.length-2;i+=3) {
+				let vertex = new bg.Vector4(this.vertex[i],this.vertex[i+1], this.vertex[i+2], 1.0);
+				vertex = transform.multVector(vertex);
+				this.vertex[i] = vertex.x;
+				this.vertex[i+1] = vertex.y;
+				this.vertex[i+2] = vertex.z;
+		
+				if (this.normal.length) {
+					var normal = new bg.Vector4(this.normal[i],this.normal[i+1], this.normal[i+2], 1.0);
+					normal = rotation.multVector(normal);
+					this.normal[i] = normal.x;
+					this.normal[i+1] = normal.y;
+					this.normal[i+2] = normal.z;
+				}
+			}
+			this.build();
+		}
+		
+		
+	};
+	
+	bg.base.PolyList = PolyList;
+	
+})();
+(function() {
+	let shaders = {};
+	
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+	
+	let s_vertexSource = null;
+	let s_fragmentSource = null;
+	
+	function vertexShaderSource() {
+		if (!s_vertexSource) {
+			s_vertexSource = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+			
+			s_vertexSource.addParameter([
+				lib().inputs.buffers.vertex
+			]);
+			
+			s_vertexSource.addParameter(lib().inputs.matrix.all);
+			
+			if (bg.Engine.Get().id=="webgl1") {
+				s_vertexSource.setMainBody(`
+					gl_Position = inProjectionMatrix * inViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+				`);
+			}
+		}
+		return s_vertexSource;
+	}
+	
+	function fragmentShaderSource() {
+		if (!s_fragmentSource) {
+			s_fragmentSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+		
+			if (bg.Engine.Get().id=="webgl1") {	
+				s_fragmentSource.setMainBody(`
+					gl_FragColor = vec4(1.0,0.0,0.0,1.0);
+				`);
+			}
+		}
+		return s_fragmentSource;
+	}
+	
+	class RedEffect extends bg.base.Effect {
+		constructor(context) { 
+			super(context);			
+			let sources = [
+				vertexShaderSource(),
+				fragmentShaderSource()
+			];
+			this.setupShaderSource(sources);
+		}
+		
+		beginDraw() {
+		}
+		
+		setupVars() {
+			let matrixState = bg.base.MatrixState.Current();
+			let viewMatrix = new bg.Matrix4(matrixState.viewMatrixStack.matrixConst);
+			this.shader.setMatrix4('inModelMatrix',matrixState.modelMatrixStack.matrixConst);
+			this.shader.setMatrix4('inViewMatrix',viewMatrix);
+			this.shader.setMatrix4('inProjectionMatrix',matrixState.projectionMatrixStack.matrixConst);
+		}
+		
+	}
+	
+	bg.base.RedEffect = RedEffect;
+})();
+(function() {
+
+    class RenderQueue {
+        constructor() {
+            this._opaqueQueue = [];
+            this._transparentQueue = [];
+            this._worldCameraPosition = new bg.Vector3(0);
+        }
+
+        beginFrame(worldCameraPosition) {
+            this._opaqueQueue = [];
+            this._transparentQueue = [];
+            this._worldCameraPosition.assign(worldCameraPosition);
+        }
+
+        renderOpaque(plist, mat, trx, viewMatrix) {
+            this._opaqueQueue.push({
+                plist:plist,
+                material:mat,
+                modelMatrix:new bg.Matrix4(trx),
+                viewMatrix: new bg.Matrix4(viewMatrix)
+            });
+        }
+
+        renderTransparent(plist, mat, trx, viewMatrix) {
+            let pos = trx.position;
+            pos.sub(this._worldCameraPosition);
+            this._opaqueQueue.push({
+                plist:plist,
+                material:mat,
+                modelMatrix:new bg.Matrix4(trx),
+                viewMatrix: new bg.Matrix4(viewMatrix),
+                cameraDistance: pos.magnitude()
+            });
+        }
+
+        sortTransparentObjects() {
+            this._transparentQueue.sort((a,b) => {
+                return a.cameraDistance > b.cameraDistance;
+            });
+        }
+
+        get opaqueQueue() {
+            return this._opaqueQueue;
+        }
+
+        get transparentQueue() {
+            return this._transparentQueue;
+        }
+
+
+    }
+
+    bg.base.RenderQueue = RenderQueue;
+})();
+(function() {
+	
+	class RenderSurfaceBufferImpl {
+		constructor(context) {
+			this.initFlags(context);
+		}
+		
+		initFlags(context) {}
+		
+		create(context,attachments) {}
+		setActive(context,renderSurface) {}
+		readBuffer(context,renderSurface,rectangle) {}
+		resize(context,renderSurface,size) {}
+		destroy(context,renderSurface) {}
+		supportType(type) {}
+		supportFormat(format) {}
+		maxColorAttachments() {}
+	}
+
+	bg.base.RenderSurfaceBufferImpl = RenderSurfaceBufferImpl;
+	
+	class RenderSurface extends bg.app.ContextObject {
+		static DefaultAttachments() {
+			return [
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.DEPTH, format:bg.base.RenderSurfaceFormat.RENDERBUFFER }
+			];
+		}
+		static SupportFormat(format) {
+			return bg.Engine.Get().colorBuffer.supportFormat(format);
+		}
+		
+		static SupportType(type) {
+			return bg.Engine.Get().colorBuffer.supportType(type);
+		}
+		
+		static MaxColorAttachments() {
+			return bg.Engine.Get().textureBuffer.maxColorAttachments;
+		}
+		
+		constructor(context) {
+			super(context);
+			
+			this._size = new bg.Vector2(256);
+			this._renderSurface = null;
+			this._resizeOnViewportChanged = true;
+		}
+		
+		get size() { return this._size; }
+		set size(s) {
+			if (this._size.x!=s.x || this._size.y!=s.y) {
+				this._size = s;
+				this.surfaceImpl.resize(this.context,this._renderSurface,s);
+			}
+		}
+		
+		get surfaceImpl() { return null; }
+
+		get resizeOnViewportChanged() { return this._resizeOnViewportChanged; }
+		set resizeOnViewportChanged(r) { this._resizeOnViewportChanged = r; }
+		
+		create(attachments) {
+			if (!attachments) {
+				attachments = RenderSurface.DefaultAttachments();
+			}
+			this._renderSurface = this.surfaceImpl.create(this.context,attachments);
+		}
+		
+		setActive() {
+			this.surfaceImpl.setActive(this.context,this._renderSurface);
+		}
+		
+		readBuffer(rectangle) {
+			return this.surfaceImpl.readBuffer(this.context,this._renderSurface,rectangle,this.size);
+		}
+		
+		destroy() {
+			this.surfaceImpl.destroy(this.context,this._renderSurface);
+			this._renderSurface = null;
+		}
+	}
+	
+	bg.base.RenderSurface = RenderSurface;
+	
+	bg.base.RenderSurfaceType = {
+		RGBA:null,
+		DEPTH:null
+	};
+	
+	bg.base.RenderSurfaceFormat = {
+		UNSIGNED_BYTE:null,
+		UNSIGNED_SHORT:null,
+		FLOAT:null,
+		RENDERBUFFER:null
+	};
+	
+	class ColorSurface extends RenderSurface {
+		static MaxColorAttachments() {
+			return bg.Engine.Get().colorBuffer.maxColorAttachments;
+		}
+		
+		get surfaceImpl() { return bg.Engine.Get().colorBuffer; }
+	}
+	
+	bg.base.ColorSurface = ColorSurface;
+	
+	class TextureSurface extends RenderSurface {
+		static MaxColorAttachments() {
+			return bg.Engine.Get().textureBuffer.maxColorAttachments;
+		}
+		
+		get surfaceImpl() { return bg.Engine.Get().textureBuffer; }
+		
+		getTexture(attachment = 0) {
+			return  this._renderSurface.attachments[attachment] &&
+					this._renderSurface.attachments[attachment].texture;
+		}
+	}
+	
+	bg.base.TextureSurface = TextureSurface;
+	
+})();
+
+(function() {
+    if (!bg.isElectronApp) {
+        return false;
+    }
+
+    const fs = require('fs');
+    const path = require('path');
+
+    class SaveSceneHelper {
+        save(filePath,sceneRoot) {
+            filePath = bg.base.Writer.StandarizePath(filePath);
+            return new Promise((resolve,reject) => {
+                this._url = {};
+                this._url.path = filePath.split('/');
+                this._url.fileName = this._url.path.pop();
+                this._url.path = this._url.path.join('/');
+                this._sceneData = {
+                    fileType:"vwgl::scene",
+                    version:{
+                        major:2,
+                        minor:0,
+                        rev:0
+                    },
+                    scene:[]
+                }
+                this._promises = [];
+                bg.base.Writer.PrepareDirectory(this._url.path);
+
+                let rootNode = {};
+                this._sceneData.scene.push(rootNode);
+                this.buildSceneNode(sceneRoot,rootNode);
+
+                fs.writeFileSync(path.join(this._url.path,this._url.fileName),JSON.stringify(this._sceneData,"","\t"),"utf-8");
+
+                Promise.all(this._promises)
+                    .then(() => resolve())
+                    .catch((err) => reject(err));
+            });
+        }
+
+        buildSceneNode(node,sceneData) {
+            sceneData.type = "Node";
+            sceneData.name = node.name;
+            sceneData.enabled = node.enabled;
+            sceneData.steady = node.steady;
+            sceneData.children = [];
+            sceneData.components = [];
+            node.forEachComponent((component) => {
+                if (component.shouldSerialize) {
+                    let componentData = {};
+                    component.serialize(componentData,this._promises,this._url);
+                    sceneData.components.push(componentData)
+                }
+            });
+            node.children.forEach((child) => {
+                let childData = {}
+                this.buildSceneNode(child,childData);
+                sceneData.children.push(childData);
+            })
+        }
+    };
+
+    class SceneWriterPlugin extends bg.base.WriterPlugin {
+        acceptType(url,data) {
+            let ext = url.split(".").pop(".");
+            return /vitscnj/i.test(ext) && data instanceof bg.scene.Node;
+        }
+
+        write(url,data) {
+            let saveSceneHelper = new SaveSceneHelper();
+            return saveSceneHelper.save(url,data);
+        }
+    }
+
+    bg.base.SceneWriterPlugin = SceneWriterPlugin;
+})();
+(function() {
+	
+	let s_shaderLibrary = null;
+	
+	function defineAll(obj) {
+		Reflect.defineProperty(obj,"all", {
+			get() {
+				if (!this._all) {
+					this._all = [];
+					for (let key in obj) {
+						if (typeof(obj[key])=="object" && obj[key].name) {
+							this._all.push(obj[key]);
+						}
+					}
+				}
+				return this._all;
+			}
+		});
+	}
+	
+	class ShaderLibrary {
+		static Get() {
+			if (!s_shaderLibrary) {
+				s_shaderLibrary = new ShaderLibrary();
+			}
+			return s_shaderLibrary;
+		}
+		
+		constructor() {
+			let library = bg[bg.Engine.Get().id].shaderLibrary;
+			
+			for (let key in library) {
+				this[key] = library[key];
+			}
+			
+			defineAll(this.inputs.matrix);
+			Object.defineProperty(this.inputs.matrix,"modelViewProjection",{
+				get() {
+					return [
+						this.model,
+						this.view,
+						this.projection
+					]
+				}
+			});
+			defineAll(this.inputs.material);
+            defineAll(this.inputs.lighting);
+			defineAll(this.inputs.lightingForward);
+			defineAll(this.inputs.shadows);
+			defineAll(this.inputs.colorCorrection);
+			defineAll(this.functions.materials);
+			defineAll(this.functions.colorCorrection);
+			defineAll(this.functions.lighting);
+			defineAll(this.functions.utils);
+		}
+	}
+	
+	bg.base.ShaderLibrary = ShaderLibrary;
+	
+	class ShaderSourceImpl {
+		header(shaderType) { return ""; }
+		parameter(shaderType,paramData) { return paramData.name; }
+		func(shaderType,funcData) { return funcData.name; }
+	}
+	
+	bg.base.ShaderSourceImpl = ShaderSourceImpl;
+	
+	class ShaderSource {
+		static FormatSource(src) {
+			let result = "";
+			let lines = src.replace(/^\n*/,"").replace(/\n*$/,"").split("\n");
+			let minTabs = 100;
+			lines.forEach((line) => {
+				let tabsInLine = /(\t*)/.exec(line)[0].length;
+				if (minTabs>tabsInLine) {
+					minTabs = tabsInLine;
+				}
+			});
+			
+			lines.forEach((line) => {
+				let tabsInLine = /(\t*)/.exec(line)[0].length;
+				let diff = tabsInLine - minTabs;
+				result += line.slice(tabsInLine - diff,line.length) + "\n";
+			});
+			
+			return result.replace(/^\n*/,"").replace(/\n*$/,"");
+		}
+		
+		constructor(type) {
+			this._type = type;
+			this._params = [];
+			this._functions = [];
+			this._requiredExtensions = [];
+			this._header = "";
+		}
+		
+		get type() { return this._type; }
+		get params() { return this._params; }
+		get header() { return this._header; }
+		get functions() { return this._functions; }
+		
+		addParameter(param) {
+			if (param instanceof Array) {
+				this._params = [...this._params, ...param];
+			}
+			else {
+				this._params.push(param);
+			}
+			this._params.push(null);	// This will be translated into a new line character
+		}
+		
+		addFunction(func) {
+			if (func instanceof Array) {
+				this._functions = [...this._functions, ...func];
+			}
+			else {
+				this._functions.push(func);
+			}
+		}
+		
+		setMainBody(body) {
+			this.addFunction({
+				returnType:"void", name:"main", params:{}, body:body
+			});
+		}
+				
+		appendHeader(src) {
+			this._header += src + "\n";
+		}
+				
+		toString() {
+			let impl = bg.Engine.Get().shaderSource;
+			// Build header
+			let src = impl.header(this.type) + "\n" + this._header + "\n\n";
+			
+			this.params.forEach((p) => {
+				src += impl.parameter(this.type,p) + "\n";
+			});
+			
+			this.functions.forEach((f) => {
+				src += "\n" + impl.func(this.type,f) + "\n";
+			})
+			return src;
+		}
+	}
+	
+	bg.base.ShaderSource = ShaderSource;
+})();
+(function() {
+	
+	class ShaderImpl {
+		constructor(context) {
+			this.initFlags(context);
+		}
+		
+		initFlags(context) {}
+		setActive(context,shaderProgram) {}
+		create(context) {}
+		addShaderSource(context,shaderProgram,shaderType,source) {}
+		link(context,shaderProgram) {}
+		initVars(context,shader,inputBufferVars,valueVars) {}
+		setInputBuffer(context,shader,varName,vertexBuffer,itemSize) {}
+		setValueInt(context,shader,name,v) {}
+		setValueIntPtr(context,shader,name,v) {}
+		setValueFloat(context,shader,name,v) {}
+		setValueFloatPtr(context,shader,name,v) {}
+		setValueVector2(context,shader,name,v) {}
+		setValueVector3(context,shader,name,v) {}
+		setValueVector4(context,shader,name,v) {}
+		setValueVector2v(context,shader,name,v) {}
+		setValueVector3v(context,shader,name,v) {}
+		setValueVector4v(context,shader,name,v) {}
+		setValueMatrix3(context,shader,name,traspose,v) {}
+		setValueMatrix4(context,shader,name,traspose,v) {}
+		setTexture(context,shader,name,texture,textureUnit) {}
+	}
+	
+	bg.base.ShaderImpl = ShaderImpl;
+	
+	bg.base.ShaderType = {
+		VERTEX: null,
+		FRAGMENT: null
+	};
+
+	function addLineNumbers(source) {
+		let result = "";
+		source.split("\n").forEach((line,index) => {
+			++index;
+			let prefix = index<10 ? "00":index<100 ? "0":"";
+			result += prefix + index + " | " + line + "\n";
+		});
+		return result;
+	}
+	
+	class Shader extends bg.app.ContextObject {
+		static ClearActive(context) { bg.Engine.Get().shader.setActive(context,null); }
+
+		constructor(context) {
+			super(context);
+			
+			this._shader = bg.Engine.Get().shader.create(context);
+			this._linked = false;
+			
+			this._compileError = null;
+			this._linkError = null;
+		}
+		
+		get shader() { return this._shader; }
+		get compileError() { return this._compileError; }
+		get compileErrorSource() { return this._compileErrorSource; }
+		get linkError() { return this._linkError; }
+		get status() { return this._compileError==null && this._linkError==null; }
+		
+		addShaderSource(shaderType, shaderSource) {
+			if (this._linked) {
+				this._compileError = "Tying to attach a shader to a linked program";
+			}
+			else if (!this._compileError) {
+				this._compileError = bg.Engine.Get().shader.addShaderSource(
+																this.context,
+																this._shader,
+																shaderType,shaderSource);
+				if (this._compileError) {
+					this._compileErrorSource = addLineNumbers(shaderSource);
+				}
+			}
+			return this._compileError==null;
+		}
+		
+		link() {
+			this._linkError = null;
+			if (this._linked) {
+				this._linkError = "Shader already linked";
+			}
+			else  {
+				this._linkError = bg.Engine.Get().shader.link(this.context,this._shader);
+				this._linked = this._linkError==null;
+			}
+			return this._linked;
+		}
+		
+		setActive() {
+			bg.Engine.Get().shader.setActive(this.context,this._shader);
+		}
+		
+		clearActive() {
+			Shader.ClearActive(this.context);
+		}
+		
+		initVars(inputBufferVars,valueVars) {
+			bg.Engine.Get().shader.initVars(this.context,this._shader,inputBufferVars,valueVars);
+		}
+		
+		setInputBuffer(name,vbo,itemSize) {
+			bg.Engine.Get().shader
+				.setInputBuffer(this.context,this._shader,name,vbo,itemSize);
+		}
+		
+		disableInputBuffer(name) {
+			bg.Engine.Get().shader
+				.disableInputBuffer(this.context,this._shader,name);
+		}
+		
+		setValueInt(name,v) {
+			bg.Engine.Get().shader
+				.setValueInt(this.context,this._shader,name,v);
+		}
+
+		setValueIntPtr(name,v) {
+			bg.Engine.Get().shader
+				.setValueIntPtr(this.context,this._shader,name,v);
+		}
+		
+		setValueFloat(name,v) {
+			bg.Engine.Get().shader
+				.setValueFloat(this.context,this._shader,name,v);
+		}
+
+		setValueFloatPtr(name,v) {
+			bg.Engine.Get().shader
+				.setValueFloatPtr(this.context,this._shader,name,v);
+		}
+		
+		setVector2(name,v) {
+			bg.Engine.Get().shader
+				.setValueVector2(this.context,this._shader,name,v);
+		}
+		
+		setVector3(name,v) {
+			bg.Engine.Get().shader
+				.setValueVector3(this.context,this._shader,name,v);			
+		}
+		
+		setVector4(name,v) {
+			bg.Engine.Get().shader
+				.setValueVector4(this.context,this._shader,name,v);
+		}
+
+		setVector2Ptr(name,v) {
+			bg.Engine.Get().shader
+				.setValueVector2v(this.context,this._shader,name,v);
+		}
+		
+		setVector3Ptr(name,v) {
+			bg.Engine.Get().shader
+				.setValueVector3v(this.context,this._shader,name,v);			
+		}
+		
+		setVector4Ptr(name,v) {
+			bg.Engine.Get().shader
+				.setValueVector4v(this.context,this._shader,name,v);
+		}
+		
+		setMatrix3(name,v,traspose=false) {
+			bg.Engine.Get().shader
+				.setValueMatrix3(this.context,this._shader,name,traspose,v);
+		}
+		
+		setMatrix4(name,v,traspose=false) {
+			bg.Engine.Get().shader
+				.setValueMatrix4(this.context,this._shader,name,traspose,v);
+		}
+		
+		setTexture(name,texture,textureUnit) {
+			bg.Engine.Get().shader
+				.setTexture(this.context,this._shader,name,texture,textureUnit);
+		}
+	}
+	
+	bg.base.Shader = Shader;
+})();
+(function() {
+	
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+	
+	let s_vertexSource = null;
+	let s_fragmentSource = null;
+	
+	function vertexShaderSource() {
+		if (!s_vertexSource) {
+			s_vertexSource = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+			
+			s_vertexSource.addParameter([
+				lib().inputs.buffers.vertex,
+				lib().inputs.buffers.tex0,
+				null,
+				lib().inputs.matrix.model,
+				lib().inputs.matrix.view,
+				lib().inputs.matrix.projection,
+				null,
+				{ name:"fsTexCoord", dataType:"vec2", role:"out" }
+			]);
+			
+			if (bg.Engine.Get().id=="webgl1") {
+				s_vertexSource.setMainBody(`
+				gl_Position = inProjectionMatrix * inViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+				fsTexCoord = inTex0;
+				`);
+			}
+		}
+		return s_vertexSource;
+	}
+	
+	function fragmentShaderSource() {
+		if (!s_fragmentSource) {
+			s_fragmentSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+			
+			s_fragmentSource.addParameter([
+				lib().inputs.material.castShadows,
+				lib().inputs.material.texture,
+				lib().inputs.material.textureOffset,
+				lib().inputs.material.textureScale,
+				lib().inputs.material.alphaCutoff,
+				null,
+				{ name:"fsTexCoord", dataType:"vec2", role:"in" }
+			]);
+			
+			s_fragmentSource.addFunction(lib().functions.utils.pack);
+			s_fragmentSource.addFunction(lib().functions.materials.samplerColor);
+			
+			if (bg.Engine.Get().id=="webgl1") {
+				s_fragmentSource.setMainBody(`
+				
+				float alpha = samplerColor(inTexture,fsTexCoord,inTextureOffset,inTextureScale).a;
+				if (inCastShadows && alpha>inAlphaCutoff) {
+					gl_FragColor = pack(gl_FragCoord.z);
+				}
+				else {
+					discard;
+				}`);
+			}
+		}
+		return s_fragmentSource;
+	}
+	
+	class ShadowMapEffect extends bg.base.Effect {
+		constructor(context) {
+			super(context);
+			
+			this._material = null;
+			this._light = null;
+			this._lightTransform = null;
+			
+			this.setupShaderSource([
+				vertexShaderSource(),
+				fragmentShaderSource()
+			]);
+		}
+		
+		get material() { return this._material; }
+		set material(m) { this._material = m; }
+		
+		get light() { return this._light; }
+		set light(l) { this._light = l; }
+		
+		get lightTransform() { return this._lightTransform; }
+		set lightTransform(t) { this._lightTransform = t; }
+		
+		setupVars() {
+			if (this.material && this.light && this.lightTransform) {
+				let matrixState = bg.base.MatrixState.Current();
+				this.shader.setMatrix4("inModelMatrix",matrixState.modelMatrixStack.matrixConst);
+				this.shader.setMatrix4("inViewMatrix",this.lightTransform);
+				this.shader.setMatrix4("inProjectionMatrix",this.light.projection);
+				
+				this.shader.setValueInt("inCastShadows",this.material.castShadows);
+				let texture = this.material.texture || bg.base.TextureCache.WhiteTexture(this.context);
+				this.shader.setTexture("inTexture",texture,bg.base.TextureUnit.TEXTURE_0);
+				this.shader.setVector2("inTextureOffset",this.material.textureOffset);
+				this.shader.setVector2("inTextureScale",this.material.textureScale);
+				this.shader.setValueFloat("inAlphaCutoff",this.material.alphaCutoff);
+			}
+		}
+	}
+	
+	bg.base.ShadowMapEffect = ShadowMapEffect;
+	
+	bg.base.ShadowType = {
+		HARD: 0,
+		SOFT: 1,
+		STRATIFIED: 2
+	};
+
+	bg.base.ShadowCascade = {
+		NEAR: 0,
+		FAR: 1,
+		MID: 2
+	}
+
+	function updateDirectional(scene,camera,light,lightTransform,cascade) {
+		let ms = bg.base.MatrixState.Current();
+		bg.base.MatrixState.SetCurrent(this._matrixState);
+		this._pipeline.effect.light = light;
+		this._viewMatrix = new bg.Matrix4(lightTransform);
+
+		let rotation = this._viewMatrix.rotation;
+		let cameraTransform = camera.transform ? new bg.Matrix4(camera.transform.matrix) : bg.Matrix4.Identity();
+		let cameraPos = cameraTransform.position;
+		let target = cameraPos.add(cameraTransform.forwardVector.scale(-camera.focus))
+		
+		this._viewMatrix
+			.identity()
+			.translate(target)
+			.mult(rotation)
+			.translate(0,0,10)
+			.invert();
+
+		this._pipeline.effect.lightTransform = this._viewMatrix;
+					
+		bg.base.Pipeline.SetCurrent(this._pipeline);
+		this._pipeline.clearBuffers(bg.base.ClearBuffers.COLOR_DEPTH);
+
+		let mult = 1;
+		// Far cascade
+		if (cascade==bg.base.ShadowCascade.FAR) {
+			mult = 20;
+			light.shadowBias = 0.0001;
+		}
+		// Near cascade
+		else if (cascade==bg.base.ShadowCascade.NEAR) {
+			mult = 2;
+			light.shadowBias = 0.00002;
+		}
+		else if (cascade==bg.base.ShadowCascade.MID) {
+			mult = 4;
+			light.shadowBias = 0.0001;
+		}
+		light.projection = bg.Matrix4.Ortho(-camera.focus * mult ,camera.focus * mult,-camera.focus * mult,camera.focus * mult,1,300*camera.focus);
+		this._projection = light.projection;
+		scene.accept(this._drawVisitor);
+
+		bg.base.MatrixState.SetCurrent(ms);
+	}
+
+	function updateSpot(scene,camera,light,lightTransform) {
+		let ms = bg.base.MatrixState.Current();
+		bg.base.MatrixState.SetCurrent(this._matrixState);
+		this._pipeline.effect.light = light;
+		this._viewMatrix = new bg.Matrix4(lightTransform);
+
+		let cutoff = light.spotCutoff;
+		light.projection = bg.Matrix4.Perspective(cutoff * 2,1,0.1,200.0);
+		light.shadowBias = 0.0005;
+		this._viewMatrix.invert();
+
+		this._projection = light.projection;
+		this._pipeline.effect.lightTransform = this._viewMatrix;
+					
+		bg.base.Pipeline.SetCurrent(this._pipeline);
+		this._pipeline.clearBuffers(bg.base.ClearBuffers.COLOR_DEPTH);
+		
+		scene.accept(this._drawVisitor);
+		bg.base.MatrixState.SetCurrent(ms);
+	}
+
+	class ShadowMap extends bg.app.ContextObject {
+		constructor(context) {
+			super(context);
+			
+			this._pipeline = new bg.base.Pipeline(context);
+			this._pipeline.renderSurface = new bg.base.TextureSurface(context);
+			this._pipeline.renderSurface.create();
+			this._pipeline.effect = new bg.base.ShadowMapEffect(context);
+		
+			this._matrixState = new bg.base.MatrixState();
+			this._drawVisitor = new bg.scene.DrawVisitor(this._pipeline,this._matrixState);
+			
+			this._shadowMapSize = new bg.Vector2(2048);
+			this._pipeline.viewport = new bg.Viewport(0,0,this._shadowMapSize.width,this._shadowMapSize.height);
+			
+			this._shadowType = bg.base.ShadowType.SOFT;
+			
+			this._projection = bg.Matrix4.Ortho(-15,15,-15,15,1,50);
+			this._viewMatrix = bg.Matrix4.Identity();
+			
+			this._shadowColor = bg.Color.Black();
+		}
+		
+		get size() { return this._shadowMapSize; }
+		set size(s) {
+			this._shadowMapSize = s;
+			this._pipeline.viewport = new bg.Viewport(0,0,s.width,s.height);
+		}
+		
+		get shadowType() { return this._shadowType; }
+		set shadowType(t) { this._shadowType = t; }
+		
+		get shadowColor() { return this._shadowColor; }
+		set shadowColor(c) { this._shadowColor = c; }
+		
+		get viewMatrix() { return this._viewMatrix; }
+		get projection() { return this._projection; }
+		
+		get texture() { return this._pipeline.renderSurface.getTexture(0); }
+		
+		// it's important that the camera has set the focus to calculate the projection of the directional lights
+		update(scene,camera,light,lightTransform,cascade=bg.base.ShadowCascade.NEAR) {
+			if (light.type==bg.base.LightType.DIRECTIONAL) {
+				updateDirectional.apply(this,[scene,camera,light,lightTransform,cascade]);
+			}
+			else if (light.type==bg.base.LightType.SPOT) {
+				updateSpot.apply(this,[scene,camera,light,lightTransform]);
+			}
+		}
+	}
+	
+	bg.base.ShadowMap = ShadowMap;
+	
+})();
+(function() {
+
+    class TextProperties {
+
+        constructor() {
+            this._font = "Verdana";
+            this._size = 30;
+            this._color = "#FFFFFF";
+            this._background = "transparent";
+            this._align = "start";
+            this._bold = false;
+            this._italic = false;
+
+            this._dirty = true;
+        }
+
+        clone() {
+            let newInstance = new TextProperties();
+
+            newInstance._font = this._font;
+            newInstance._size = this._size;
+            newInstance._color = this._color;
+            newInstance._background = this._background;
+            newInstance._align = this._align;
+            newInstance._bold = this._bold;
+            newInstance._italic = this._italic;
+
+            return newInstance;
+        }
+
+        get font() { return this._font; }
+        set font(v) { this._dirty = true; this._font = v; }
+        get size() { return this._size; }
+        set size(v) { this._dirty = true; this._size = v; }
+        get color() { return this._color; }
+        set color(v) { this._dirty = true; this._color = v; }
+        get background() { return this._background; }
+        set background(v) { this._dirty = true; this._background = v; }
+        get align() { return this._align; }
+        set align(v) { this._dirty = true; this._align = v; }
+        get bold() { return this._bold; }
+        set bold(v) { this._dirty = true; this._bold = v; }
+        get italic() { return this._italic; }
+        set italic(v) { this._dirty = true; this._italic = v; }
+        
+
+        // this property is set to true every time some property is changed
+        set dirty(d) { this._dirty = d; }
+        get dirty() { return this._dirty; }
+
+        serialize(jsonData) {
+            jsonData.font = this.font;
+            jsonData.size = this.size;
+            jsonData.color = this.color;
+            jsonData.background = this.background;
+            jsonData.align = this.align;
+            jsonData.bold = this.bold;
+            jsonData.italic = this.italic;
+        }
+
+        deserialize(jsonData) {
+            this.font = jsonData.font;
+            this.size = jsonData.size;
+            this.color = jsonData.color;
+            this.background = jsonData.background;
+            this.align = jsonData.align;
+            this.bold = jsonData.bold;
+            this.italic = jsonData.italic;
+            this._dirty = true;
+        }
+    }
+
+    bg.base.TextProperties = TextProperties;
+})();
+(function() {
+	let s_textureCache = {};
+	
+	let COLOR_TEXTURE_SIZE = 8;
+	
+	let s_whiteTexture = "static-white-color-texture";
+	let s_blackTexture = "static-black-color-texture";
+	let s_normalTexture = "static-normal-color-texture";
+	let s_randomTexture = "static-random-color-texture";
+	let s_whiteCubemap = "static-white-cubemap-texture";
+
+	class TextureCache {
+		static SetColorTextureSize(size) { COLOR_TEXTURE_SIZE = size; }
+		static GetColorTextureSize() { return COLOR_TEXTURE_SIZE; }
+
+		static WhiteCubemap(context) {
+			let cache = TextureCache.Get(context);
+			let tex = cache.find(s_whiteCubemap);
+
+			if (!tex) {
+				tex = bg.base.Texture.WhiteCubemap(context);
+				cache.register(s_whiteCubemap,tex);
+			}
+			return tex;
+		}
+		
+		static WhiteTexture(context) {
+			let cache = TextureCache.Get(context);
+			let tex = cache.find(s_whiteTexture);
+			
+			if (!tex) {
+				tex = bg.base.Texture.WhiteTexture(context,new bg.Vector2(COLOR_TEXTURE_SIZE));
+				cache.register(s_whiteTexture,tex);
+			}
+			
+			return tex;
+		}
+		
+		static BlackTexture(context) {
+			let cache = TextureCache.Get(context);
+			let tex = cache.find(s_blackTexture);
+			
+			if (!tex) {
+				tex = bg.base.Texture.BlackTexture(context,new bg.Vector2(COLOR_TEXTURE_SIZE));
+				cache.register(s_blackTexture,tex);
+			}
+			
+			return tex;
+		}
+		
+		static NormalTexture(context) {
+			let cache = TextureCache.Get(context);
+			let tex = cache.find(s_normalTexture);
+			
+			if (!tex) {
+				tex = bg.base.Texture.NormalTexture(context,new bg.Vector2(COLOR_TEXTURE_SIZE));
+				cache.register(s_normalTexture,tex);
+			}
+			
+			return tex;
+		}
+
+		static RandomTexture(context) {
+			let cache = TextureCache.Get(context);
+			let tex = cache.find(s_randomTexture);
+
+			if (!tex) {
+				tex = bg.base.Texture.RandomTexture(context,new bg.Vector2(64));
+				cache.register(s_randomTexture,tex);
+			}
+
+			return tex;
+		}
+		
+		static Get(context) {
+			if (!s_textureCache[context.uuid]) {
+				s_textureCache[context.uuid] = new TextureCache(context);
+			}
+			return s_textureCache[context.uuid];
+		}
+		
+		constructor(context) {
+			this._context = context;
+			this._textures = {};
+		}
+		
+		find(url) {
+			return this._textures[url];
+		}
+		
+		register(url,texture) {
+			if (texture instanceof bg.base.Texture) {
+				this._textures[url] = texture;
+			}
+		}
+		
+		unregister(url) {
+			if (this._textures[url]) {
+				delete this._textures[url];
+			}
+		}
+		
+		clear() {
+			this._textures = {};
+		}
+	}
+	
+	bg.base.TextureCache = TextureCache;
+
+	let g_wrapX = null;
+	let g_wrapY = null;
+	let g_minFilter = null;
+	let g_magFilter = null;
+	
+	/* Extra data:
+	 * 	wrapX
+	 *  wrapY
+	 *  minFilter
+	 *  magFilter
+	 */
+	class TextureLoaderPlugin extends bg.base.LoaderPlugin {
+		static GetWrapX() {
+			return g_wrapX || bg.base.TextureWrap.REPEAT;
+		}
+
+		static GetWrapY() {
+			return g_wrapY || bg.base.TextureWrap.REPEAT;
+		}
+
+		static GetMinFilter() {
+			return g_minFilter || bg.base.TextureFilter.LINEAR_MIPMAP_NEAREST;
+		}
+
+		static GetMagFilter() {
+			return g_magFilter || bg.base.TextureFilter.LINEAR;
+		}
+
+		static SetMinFilter(f) {
+			g_minFilter = f;
+		}
+
+		static SetMagFilter(f) {
+			g_magFilter = f;
+		}
+
+		static SetWrapX(w) {
+			g_wrapX = w;
+		}
+
+		static SetWrapY(w) {
+			g_wrapY = w;
+		}
+		
+		acceptType(url,data) {
+			return bg.utils.Resource.IsImage(url);
+		}
+		
+		load(context,url,data,extraData) {
+			return new Promise((accept,reject) => {
+				if (data) {
+					let texture = bg.base.TextureCache.Get(context).find(url);
+					if (!texture) {
+						bg.log(`Texture ${url} not found. Loading texture`);
+						texture = new bg.base.Texture(context);
+						texture.create();
+						texture.bind();
+						texture.wrapX = extraData.wrapX || TextureLoaderPlugin.GetWrapX();
+						texture.wrapY = extraData.wrapY || TextureLoaderPlugin.GetWrapY();
+						texture.minFilter = extraData.minFilter || TextureLoaderPlugin.GetMinFilter();
+						texture.magFilter = extraData.magFilter || TextureLoaderPlugin.GetMagFilter();
+						texture.setImage(data);
+						texture.fileName = url;
+						bg.base.TextureCache.Get(context).register(url,texture);
+					}
+					accept(texture);
+				}
+				else {
+					reject(new Error("Error loading texture image data"));
+				}
+			});
+		}
+	}
+	
+	bg.base.TextureLoaderPlugin = TextureLoaderPlugin;
+
+	class VideoTextureLoaderPlugin extends bg.base.LoaderPlugin {
+		acceptType(url,data) {
+			return bg.utils.Resource.IsVideo(url);
+		}
+
+		load(context,url,video) {
+			return new Promise((accept,reject) => {
+				if (video) {
+					let texture = new bg.base.Texture(context);
+					texture.create();
+					texture.bind();
+					texture.setVideo(video);
+					texture.fileName = url;
+					accept(texture);
+				}
+				else {
+					reject(new Error("Error loading video texture data"));
+				}
+			});
+		}
+	}
+
+	bg.base.VideoTextureLoaderPlugin = VideoTextureLoaderPlugin;
+})();
+(function() {
+
+	bg.base.TextureUnit = {
+		TEXTURE_0: 0,
+		TEXTURE_1: 1,
+		TEXTURE_2: 2,
+		TEXTURE_3: 3,
+		TEXTURE_4: 4,
+		TEXTURE_5: 5,
+		TEXTURE_6: 6,
+		TEXTURE_7: 7,
+		TEXTURE_8: 8,
+		TEXTURE_9: 9,
+		TEXTURE_10: 10,
+		TEXTURE_11: 11,
+		TEXTURE_12: 12,
+		TEXTURE_13: 13,
+		TEXTURE_14: 14,
+		TEXTURE_15: 15,
+		TEXTURE_16: 16,
+		TEXTURE_17: 17,
+		TEXTURE_18: 18,
+		TEXTURE_19: 19,
+		TEXTURE_20: 20,
+		TEXTURE_21: 21,
+		TEXTURE_22: 22,
+		TEXTURE_23: 23,
+		TEXTURE_24: 24,
+		TEXTURE_25: 25,
+		TEXTURE_26: 26,
+		TEXTURE_27: 27,
+		TEXTURE_28: 28,
+		TEXTURE_29: 29,
+		TEXTURE_30: 30
+	};
+	
+	bg.base.TextureWrap = {
+		REPEAT: null,
+		CLAMP: null,
+		MIRRORED_REPEAT: null
+	};
+	
+	bg.base.TextureFilter = {
+		NEAREST_MIPMAP_NEAREST: null,
+		LINEAR_MIPMAP_NEAREST: null,
+		NEAREST_MIPMAP_LINEAR: null,
+		LINEAR_MIPMAP_LINEAR: null,
+		NEAREST: null,
+		LINEAR: null
+	};
+	
+	bg.base.TextureTarget = {
+		TEXTURE_2D: null,
+		CUBE_MAP: null,
+		POSITIVE_X_FACE: null,
+		NEGATIVE_X_FACE: null,
+		POSITIVE_Y_FACE: null,
+		NEGATIVE_Y_FACE: null,
+		POSITIVE_Z_FACE: null,
+		NEGATIVE_Z_FACE: null
+	};
+		
+	class TextureImpl {
+		constructor(context) {
+			this.initFlags(context);
+		}
+	
+		initFlags(context) {
+			console.log("TextureImpl: initFlags() method not implemented");
+		}
+		
+		create(context) {
+			console.log("TextureImpl: create() method not implemented");
+			return null;
+		}
+		
+		setActive(context,texUnit) {
+			console.log("TextureImpl: setActive() method not implemented");
+		}
+		
+		bind(context,target,texture) {
+			console.log("TextureImpl: bind() method not implemented");
+		}
+		
+		unbind(context,target) {
+			console.log("TextureImpl: unbind() method not implemented");
+		}
+		
+		setTextureWrapX(context,target,texture,wrap) {
+			console.log("TextureImpl: setTextureWrapX() method not implemented");
+		}
+		
+		setTextureWrapY(context,target,texture,wrap) {
+			console.log("TextureImpl: setTextureWrapY() method not implemented");
+		}
+		
+		setImage(context,target,minFilter,magFilter,texture,img,flipY) {
+			console.log("TextureImpl: setImage() method not implemented");
+		}
+		
+		setImageRaw(context,target,minFilter,magFilter,texture,width,height,data) {
+			console.log("TextureImpl: setImageRaw() method not implemented");
+		}
+
+		setTextureFilter(context,target,minFilter,magFilter) {
+			console.log("TextureImpl: setTextureFilter() method not implemented");
+		}
+
+		setCubemapImage(context,face,image) {
+			console.log("TextureImpl: setCubemapImage() method not implemented");
+		}
+
+		setCubemapRaw(context,face,rawImage,w,h) {
+			console.log("TextureImpl: setCubemapRaw() method not implemented");
+		}
+
+		setVideo(context,target,texture,video,flipY) {
+			console.log("TextureImpl: setVideo() method not implemented");
+		}
+
+		updateVideoData(context,target,texture,video) {
+			console.log("TextureImpl: updateVideoData() method not implemented");
+		}
+
+		destroy(context,texture) {
+			console.log("TextureImpl: destroy() method not implemented");
+		}
+	}
+	
+	bg.base.TextureImpl = TextureImpl;
+
+	bg.base.TextureDataType = {
+		NONE: 0,
+		IMAGE: 1,
+		IMAGE_DATA: 2,
+		CUBEMAP: 3,
+		CUBEMAP_DATA: 4,
+		VIDEO: 5
+	};
+
+	let g_base64TexturePreventRemove = [];
+
+	class Texture extends bg.app.ContextObject {
+		static IsPowerOfTwoImage(image) {
+			return bg.Math.checkPowerOfTwo(image.width) && bg.Math.checkPowerOfTwo(image.height);
+		}
+
+		static FromCanvas(context,canvas2d) {
+			return Texture.FromBase64Image(context,canvas2d.toDataURL("image/png"));
+		}
+
+		static UpdateCanvasImage(texture,canvas2d) {
+			if (!texture.valid) {
+				return false;
+			}
+			let imageData = canvas2d.toDataURL("image/png");
+			let recreate = false;
+			if (texture.img.width!=imageData.width || texture.img.height!=imageData.height) {
+				recreate = true;
+			}
+			texture.img = new Image();
+			g_base64TexturePreventRemove.push(texture);
+			//tex.onload = function(evt,img) {
+			// Check this: use onload or setTimeout?
+			// onload seems to not work in all situations
+			setTimeout(() => {
+				texture.bind();
+				if (Texture.IsPowerOfTwoImage(texture.img)) {
+					texture.minFilter = bg.base.TextureLoaderPlugin.GetMinFilter();
+					texture.magFilter = bg.base.TextureLoaderPlugin.GetMagFilter();
+				}
+				else {
+					texture.minFilter = bg.base.TextureFilter.NEAREST;
+					texture.magFilter = bg.base.TextureFilter.NEAREST;
+					texture.wrapX = bg.base.TextureWrap.CLAMP;
+					texture.wrapY = bg.base.TextureWrap.CLAMP;
+				}
+				texture.setImage(texture.img,true);
+				texture.unbind();
+				let index = g_base64TexturePreventRemove.indexOf(texture);
+				if (index!=-1) {
+					g_base64TexturePreventRemove.splice(index,1);
+				}
+				bg.emitImageLoadEvent();
+			//}
+			},10);
+			texture.img.src = imageData;
+			
+			return texture;
+		}
+
+		static FromBase64Image(context,imgData) {
+			let tex = new bg.base.Texture(context);
+			tex.img = new Image();
+			g_base64TexturePreventRemove.push(tex);
+			//tex.onload = function(evt,img) {
+			// Check this: use onload or setTimeout?
+			// onload seems to not work in all situations
+			setTimeout(() => {
+				tex.create();
+				tex.bind();
+				if (Texture.IsPowerOfTwoImage(tex.img)) {
+					tex.minFilter = bg.base.TextureLoaderPlugin.GetMinFilter();
+					tex.magFilter = bg.base.TextureLoaderPlugin.GetMagFilter();
+				}
+				else {
+					tex.minFilter = bg.base.TextureFilter.NEAREST;
+					tex.magFilter = bg.base.TextureFilter.NEAREST;
+					tex.wrapX = bg.base.TextureWrap.CLAMP;
+					tex.wrapY = bg.base.TextureWrap.CLAMP;
+				}
+				tex.setImage(tex.img,false);	// Check this: flip base64 image?
+				tex.unbind();
+				let index = g_base64TexturePreventRemove.indexOf(tex);
+				if (index!=-1) {
+					g_base64TexturePreventRemove.splice(index,1);
+				}
+				bg.emitImageLoadEvent();
+			//}
+			},10);
+			tex.img.src = imgData;
+			
+			return tex;
+		}
+		
+		static ColorTexture(context,color,size) {
+			let colorTexture = new bg.base.Texture(context);
+			colorTexture.create();
+			colorTexture.bind();
+
+			var dataSize = size.width * size.height * 4;
+			var textureData = [];
+			for (var i = 0; i < dataSize; i+=4) {
+				textureData[i]   = color.r * 255;
+				textureData[i+1] = color.g * 255;
+				textureData[i+2] = color.b * 255;
+				textureData[i+3] = color.a * 255;
+			}
+			
+			textureData = new Uint8Array(textureData);
+
+			colorTexture.minFilter = bg.base.TextureFilter.NEAREST;
+			colorTexture.magFilter = bg.base.TextureFilter.NEAREST;
+			colorTexture.setImageRaw(size.width,size.height,textureData);
+			colorTexture.unbind();
+
+			return colorTexture;
+		}
+		
+		static WhiteTexture(context,size) {
+			return Texture.ColorTexture(context,bg.Color.White(),size);
+		}
+
+		static WhiteCubemap(context) {
+			return Texture.ColorCubemap(context, bg.Color.White());
+		}
+
+		static BlackCubemap(context) {
+			return Texture.ColorCubemap(context, bg.Color.Black());
+		}
+
+		static ColorCubemap(context,color) {
+			let cm = new bg.base.Texture(context);
+			cm.target = bg.base.TextureTarget.CUBE_MAP;
+			cm.create();
+			cm.bind();
+
+			let dataSize = 32 * 32 * 4;
+			let textureData = [];
+			for (let i = 0; i<dataSize; i+=4) {
+				textureData[i] 		= color.r * 255;
+				textureData[i + 1] 	= color.g * 255;
+				textureData[i + 2] 	= color.b * 255;
+				textureData[i + 3] 	= color.a * 255;
+			}
+
+			textureData = new Uint8Array(textureData);
+
+			cm.setCubemapRaw(
+				32,
+				32,
+				textureData,
+				textureData,
+				textureData,
+				textureData,
+				textureData,
+				textureData
+			);
+
+			cm.unbind();
+			return cm;
+		}
+		
+		static NormalTexture(context,size) {
+			return Texture.ColorTexture(context,new bg.Color(0.5,0.5,1,1),size);
+		}
+		
+		static BlackTexture(context,size) {
+			return Texture.ColorTexture(context,bg.Color.Black(),size);
+		}
+
+		static RandomTexture(context,size) {
+			let colorTexture = new bg.base.Texture(context);
+			colorTexture.create();
+			colorTexture.bind();
+
+			var dataSize = size.width * size.height * 4;
+			var textureData = [];
+			for (var i = 0; i < dataSize; i+=4) {
+				let randVector = new bg.Vector3(bg.Math.random() * 2.0 - 1.0,
+												bg.Math.random() * 2.0 - 1.0,
+												0);
+				randVector.normalize();
+
+				textureData[i]   = randVector.x * 255;
+				textureData[i+1] = randVector.y * 255;
+				textureData[i+2] = randVector.z * 255;
+				textureData[i+3] = 1;
+			}
+			
+			textureData = new Uint8Array(textureData);
+
+			colorTexture.minFilter = bg.base.TextureFilter.NEAREST;
+			colorTexture.magFilter = bg.base.TextureFilter.NEAREST;
+			colorTexture.setImageRaw(size.width,size.height,textureData);
+			colorTexture.unbind();
+
+			return colorTexture;
+		}
+		
+		static SetActive(context,textureUnit) {
+			bg.Engine.Get().texture.setActive(context,textureUnit);
+		}
+		
+		static Unbind(context, target) {
+			if (!target) {
+				target = bg.base.TextureTarget.TEXTURE_2D;
+			}
+			bg.Engine.Get().texture.unbind(context,target);
+		}
+		
+		constructor(context) {
+			super(context);
+			
+			this._texture = null;
+			this._fileName = "";
+			this._size = new bg.Vector2(0);
+			this._target = bg.base.TextureTarget.TEXTURE_2D;
+			
+			this._minFilter = bg.base.TextureFilter.LINEAR;
+			this._magFilter = bg.base.TextureFilter.LINEAR;
+			
+			this._wrapX = bg.base.TextureWrap.REPEAT;
+			this._wrapY = bg.base.TextureWrap.REPEAT;
+
+			this._video = null;
+		}
+		
+		get texture() { return this._texture; }
+		get target() { return this._target; }
+		set target(t) { this._target = t; }
+		get fileName() { return this._fileName; }
+		set fileName(fileName) { this._fileName = fileName; }
+		set minFilter(f) { this._minFilter = f; }
+		set magFilter(f) { this._magFilter = f; }
+		get minFilter() { return this._minFilter; }
+		get magFilter() { return this._magFilter; }
+		set wrapX(w) { this._wrapX = w; }
+		set wrapY(w) { this._wrapY = w; }
+		get wrapX() { return this._wrapX; }
+		get wrapY() { return this._wrapY; }
+		get size() { return this._size; }
+		
+
+		// Access to image data structures
+		get image() { return this._image; }
+		get imageData() { return this._imageData; }
+		get cubeMapImages() { return this._cubeMapImages; }
+		get cubeMapData() { return this._cubeMapData; }
+		get video() { return this._video; }
+
+		get dataType() {
+			if (this._image) {
+				return bg.base.TextureDataType.IMAGE;
+			}
+			else if (this._imageData) {
+				return bg.base.TextureDataType.IMAGE_DATA;
+			}
+			else if (this._cubeMapImages) {
+				return bg.base.TextureDataType.CUBEMAP;
+			}
+			else if (this._cubeMapData) {
+				return bg.base.TextureDataType.CUBEMAP_DATA;
+			}
+			else if (this._video) {
+				return bg.base.TextureDataType.VIDEO;
+			}
+			else {
+				return bg.base.TextureDataType.NONE;
+			}
+		}
+
+		create() {
+			if (this._texture!==null) {
+				this.destroy()
+			}
+			this._texture = bg.Engine.Get().texture.create(this.context);
+		}
+		
+		setActive(textureUnit) {
+			bg.Engine.Get().texture.setActive(this.context,textureUnit);
+		}
+		
+		
+		bind() {
+			bg.Engine.Get().texture.bind(this.context,this._target,this._texture);
+		}
+		
+		unbind() {
+			Texture.Unbind(this.context,this._target);
+		}
+		
+		setImage(img, flipY) {
+			if (flipY===undefined) flipY = true;
+			this._size.width = img.width;
+			this._size.height = img.height;
+			bg.Engine.Get().texture.setTextureWrapX(this.context,this._target,this._texture,this._wrapX);
+			bg.Engine.Get().texture.setTextureWrapY(this.context,this._target,this._texture,this._wrapY);
+			bg.Engine.Get().texture.setImage(this.context,this._target,this._minFilter,this._magFilter,this._texture,img,flipY);
+
+			this._image = img;
+			this._imageData = null;
+			this._cubeMapImages = null;
+			this._cubeMapData = null;
+			this._video = null;
+		}
+
+		updateImage(img, flipY) {
+			if (flipY===undefined) flipY = true;
+			this._size.width = img.width;
+			this._size.height = img.height;
+			bg.Engine.Get().texture.setTextureWrapX(this.context,this._target,this._texture,this._wrapX);
+			bg.Engine.Get().texture.setTextureWrapY(this.context,this._target,this._texture,this._wrapY);
+			bg.Engine.Get().texture.setImage(this.context,this._target,this._minFilter,this._magFilter,this._texture,img,flipY);
+
+			this._image = img;
+			this._imageData = null;
+			this._cubeMapImages = null;
+			this._cubeMapData = null;
+			this._video = null;
+		}
+		
+		setImageRaw(width,height,data,type,format) {
+			if (!type) {
+				type = this.context.RGBA;
+			}
+			if (!format) {
+				format = this.context.UNSIGNED_BYTE;
+			}
+			this._size.width = width;
+			this._size.height = height;
+			bg.Engine.Get().texture.setTextureWrapX(this.context,this._target,this._texture,this._wrapX);
+			bg.Engine.Get().texture.setTextureWrapY(this.context,this._target,this._texture,this._wrapY);
+			bg.Engine.Get().texture.setImageRaw(this.context,this._target,this._minFilter,this._magFilter,this._texture,width,height,data,type,format);
+
+			this._image = null;
+			this._imageData = data;
+			this._cubeMapImages = null;
+			this._cubeMapData = null;
+			this._video = null;
+		}
+
+		setCubemap(posX,negX,posY,negY,posZ,negZ) {
+			bg.Engine.Get().texture.bind(this.context,this._target,this._texture);
+			bg.Engine.Get().texture.setTextureWrapX(this.context,this._target,this._texture,this._wrapX);
+			bg.Engine.Get().texture.setTextureWrapX(this.context,this._target,this._texture,this._wrapY);
+			bg.Engine.Get().texture.setTextureFilter(this.context,this._target,this._minFilter,this._magFilter);
+			bg.Engine.Get().texture.setCubemapImage(this.context,bg.base.TextureTarget.POSITIVE_X_FACE,posX);
+			bg.Engine.Get().texture.setCubemapImage(this.context,bg.base.TextureTarget.NEGATIVE_X_FACE,negX);
+			bg.Engine.Get().texture.setCubemapImage(this.context,bg.base.TextureTarget.POSITIVE_Y_FACE,posY);
+			bg.Engine.Get().texture.setCubemapImage(this.context,bg.base.TextureTarget.NEGATIVE_Y_FACE,negY);
+			bg.Engine.Get().texture.setCubemapImage(this.context,bg.base.TextureTarget.POSITIVE_Z_FACE,posZ);
+			bg.Engine.Get().texture.setCubemapImage(this.context,bg.base.TextureTarget.NEGATIVE_Z_FACE,negZ);
+
+			this._image = null;
+			this._imageData = null;
+			this._cubeMapImages = {
+				posX: posX,
+				negX: negX,
+				posY: posY,
+				negY: negY,
+				posZ: posZ,
+				negZ: negZ
+			};
+			this._cubeMapData = null;
+			this._video = null;
+		}
+
+		setCubemapRaw(w,h,posX,negX,posY,negY,posZ,negZ) {
+			bg.Engine.Get().texture.bind(this.context,this._target,this._texture);
+			bg.Engine.Get().texture.setTextureWrapX(this.context,this._target,this._texture,this._wrapX);
+			bg.Engine.Get().texture.setTextureWrapX(this.context,this._target,this._texture,this._wrapY);
+			bg.Engine.Get().texture.setTextureFilter(this.context,this._target,this._minFilter,this._magFilter);
+			bg.Engine.Get().texture.setCubemapRaw(this.context,bg.base.TextureTarget.POSITIVE_X_FACE,posX,w,h);
+			bg.Engine.Get().texture.setCubemapRaw(this.context,bg.base.TextureTarget.NEGATIVE_X_FACE,negX,w,h);
+			bg.Engine.Get().texture.setCubemapRaw(this.context,bg.base.TextureTarget.POSITIVE_Y_FACE,posY,w,h);
+			bg.Engine.Get().texture.setCubemapRaw(this.context,bg.base.TextureTarget.NEGATIVE_Y_FACE,negY,w,h);
+			bg.Engine.Get().texture.setCubemapRaw(this.context,bg.base.TextureTarget.POSITIVE_Z_FACE,posZ,w,h);
+			bg.Engine.Get().texture.setCubemapRaw(this.context,bg.base.TextureTarget.NEGATIVE_Z_FACE,negZ,w,h);
+
+			this._image = null;
+			this._imageData = null;
+			this._cubeMapImages = null;
+			this._cubeMapData = {
+				width: w,
+				height: h,
+				posX:posX,
+				negX:negX,
+				posY:posY,
+				negY:negY,
+				posZ:posZ,
+				negZ:negZ
+			};
+			this._video = null;
+		}
+
+		setVideo(video, flipY) {
+			if (flipY===undefined) flipY = true;
+			this._size.width = video.videoWidth;
+			this._size.height = video.videoHeight;
+			bg.Engine.Get().texture.setVideo(this.context,this._target,this._texture,video,flipY);
+			this._video = video;
+
+			this._image = null;
+			this._imageData = null;
+			this._cubeMapImages = null;
+			this._cubeMapData = null;
+		}
+
+		destroy() {
+			bg.Engine.Get().texture.destroy(this.context,this._texture);
+			this._texture = null;
+			this._minFilter = null;
+			this._magFilter = null;
+			this._fileName = "";
+		}
+
+		valid() {
+			return this._texture!==null;
+		}
+
+		update() {
+			bg.Engine.Get().texture.updateVideoData(this.context,this._target,this._texture,this._video);
+		}
+	}
+	
+	bg.base.Texture = Texture;
+		
+})();
+
+
+(function() {
+	bg.Math = {
+
+		seed:1,
+
+		PI:3.141592653589793,
+		DEG_TO_RAD:0.01745329251994,
+		RAD_TO_DEG:57.29577951308233,
+		PI_2:1.5707963267948966,
+		PI_4:0.785398163397448,
+		PI_8:0.392699081698724,
+		TWO_PI:6.283185307179586,
+		
+		EPSILON:0.0000001,
+		Array:Float32Array,
+		ArrayHighP:Array,
+		FLOAT_MAX:3.402823e38,
+		
+		checkPowerOfTwo:function(n) {
+			if (typeof n !== 'number') {
+				return false;
+			}
+			else {
+				return n && (n & (n - 1)) === 0;
+			}  
+		},
+
+		checkZero:function(v) {
+			return v>-this.EPSILON && v<this.EPSILON ? 0:v;
+		},
+		
+		equals:function(a,b) {
+			return Math.abs(a - b) < this.EPSILON;
+		},
+		
+		degreesToRadians:function(d) {
+			return Math.fround(this.checkZero(d * this.DEG_TO_RAD));
+		},
+		
+		radiansToDegrees:function(r) {
+			return Math.fround(this.checkZero(r * this.RAD_TO_DEG));
+		},
+
+		sin:function(val) {
+			return Math.fround(this.checkZero(Math.sin(val)));
+		},
+
+		cos:function(val) {
+			return Math.fround(this.checkZero(Math.cos(val)));
+		},
+
+		tan:function(val) {
+			return Math.fround(this.checkZero(Math.tan(val)));
+		},
+
+		cotan:function(val) {
+			return Math.fround(this.checkZero(1.0 / this.tan(val)));
+		},
+
+		atan:function(val) {
+			return Math.fround(this.checkZero(Math.atan(val)));
+		},
+		
+		atan2:function(i, j) {
+			return Math.fround(this.checkZero(Math.atan2f(i, j)));
+		},
+
+		random:function() {
+			return Math.random();
+		},
+
+		seededRandom:function() {
+			let max = 1;
+			let min = 0;
+		 
+			this.seed = (this.seed * 9301 + 49297) % 233280;
+			var rnd = this.seed / 233280;
+		 
+			return min + rnd * (max - min);
+		},
+		
+		max:function(a,b) {
+			return Math.fround(Math.max(a,b));
+		},
+		
+		min:function(a,b) {
+			return Math.fround(Math.min(a,b));
+		},
+		
+		abs:function(val) {
+			return Math.fround(Math.abs(val));
+		},
+		
+		sqrt:function(val) {
+			return Math.fround(Math.sqrt(val));
+		},
+		
+		lerp:function(from, to, t) {
+			return Math.fround((1.0 - t) * from + t * to);
+		},
+		
+		square:function(n) {
+			return Math.fround(n * n);
+		}
+	};
+
+	class MatrixStrategy {
+		constructor(target) {
+			this._target = target;
+		}
+
+		get target() { return this._target; }
+		set target(t) { this._target = t; }
+
+		apply() {
+			console.log("WARNING: MatrixStrategy::apply() not overloaded by the child class.");
+		}
+	}
+
+	bg.MatrixStrategy = MatrixStrategy;
+
+})();
+
+(function() {
+	
+class Matrix3 {
+	static Identity() {
+		return new bg.Matrix3(1,0,0, 0,1,0, 0,0,1);
+	}
+	
+	constructor(v00=1,v01=0,v02=0,v10=0,v11=1,v12=0,v20=0,v21=0,v22=1) {
+		this._m = new bg.Math.Array(9);
+		if (Array.isArray(typeof(v00))) {
+			this._m[0] = v00[0]; this._m[1] = v00[1]; this._m[2] = v00[0];
+			this._m[3] = v00[3]; this._m[4] = v00[4]; this._m[5] = v00[5];
+			this._m[6] = v00[6]; this._m[7] = v00[7]; this._m[8] = v00[8];
+		}
+		else if (typeof(v00)=="number") {
+			this._m[0] = v00; this._m[1] = v01; this._m[2] = v02;
+			this._m[3] = v10; this._m[4] = v11; this._m[5] = v12;
+			this._m[6] = v20; this._m[7] = v21; this._m[8] = v22;
+		}
+		else {
+			this.assign(v00);
+		}
+	}
+	
+	get m() { return this._m; }
+
+	toArray() {
+		return [
+			this._m[0], this._m[1], this._m[2],
+			this._m[3], this._m[4], this._m[5],
+			this._m[6], this._m[7], this._m[8]
+		]
+	}
+	
+	get m00() { return this._m[0]; }
+	get m01() { return this._m[1]; }
+	get m02() { return this._m[2]; }
+	get m10() { return this._m[3]; }
+	get m11() { return this._m[4]; }
+	get m12() { return this._m[5]; }
+	get m20() { return this._m[6]; }
+	get m21() { return this._m[7]; }
+	get m22() { return this._m[8]; }
+	
+	set m00(v) { this._m[0] = v; }
+	set m01(v) { this._m[1] = v; }
+	set m02(v) { this._m[2] = v; }
+	set m10(v) { this._m[3] = v; }
+	set m11(v) { this._m[4] = v; }
+	set m12(v) { this._m[5] = v; }
+	set m20(v) { this._m[6] = v; }
+	set m21(v) { this._m[7] = v; }
+	set m22(v) { this._m[8] = v; }
+	
+	zero() {
+		this._m[0] = this._m[1] = this._m[2] =
+		this._m[3] = this._m[4] = this._m[5] =
+		this._m[6] = this._m[7] = this._m[8] = 0;
+		return this;
+	}
+
+	identity() {
+		this._m[0] = 1; this._m[1] = 0; this._m[2] = 0;
+		this._m[3] = 0; this._m[4] = 1; this._m[5] = 0;
+		this._m[6] = 0; this._m[7] = 0; this._m[8] = 1;
+		return this;
+	}
+	
+	isZero() {
+		return	this._m[0]==0.0 && this._m[1]==0.0 && this._m[2]==0.0 &&
+				this._m[3]==0.0 && this._m[4]==0.0 && this._m[5]==0.0 &&
+				this._m[6]==0.0 && this._m[7]==0.0 && this._m[8]==0.0;
+	}
+	
+	isIdentity() {
+		return	this._m[0]==1.0 && this._m[1]==0.0 && this._m[2]==0.0 &&
+				this._m[3]==0.0 && this._m[4]==1.0 && this._m[5]==0.0 &&
+				this._m[6]==0.0 && this._m[7]==0.0 && this._m[8]==1.0;
+	}
+
+	row(i) { return new bg.Vector3(this._m[i*3], this._m[i*3 + 1], this._m[i*3 + 2]); }
+	setRow(i, row) { this._m[i*3]=row._v[0]; this._m[i*3 + 1]=row._v[1]; this._m[i*3 + 2]=row._v[2]; return this; }
+
+	setScale(x,y,z) { 
+		let rx = new bg.Vector3(this._m[0], this._m[3], this._m[6]).normalize().scale(x);
+		let ry = new bg.Vector3(this._m[1], this._m[4], this._m[7]).normalize().scale(y);
+		let rz = new bg.Vector3(this._m[2], this._m[5], this._m[8]).normalize().scale(z);
+		this._m[0] = rx.x; this._m[3] = rx.y; this._m[6] = rx.z;
+		this._m[1] = ry.x; this._m[4] = ry.y; this._m[7] = ry.z;
+		this._m[2] = rz.x; this._m[5] = rz.y; this._m[8] = rz.z;
+		return this;
+	}
+	getScale() {
+		return new bg.Vector3(
+			new bg.Vector3(this._m[0], this._m[3], this._m[6]).module,
+			new bg.Vector3(this._m[1], this._m[4], this._m[7]).module,
+			new bg.Vector3(this._m[2], this._m[5], this._m[8]).module
+		);
+	}
+	
+	get length() { return this._m.length; }
+	
+	traspose() {
+		let r0 = new bg.Vector3(this._m[0], this._m[3], this._m[6]);
+		let r1 = new bg.Vector3(this._m[1], this._m[4], this._m[7]);
+		let r2 = new bg.Vector3(this._m[2], this._m[5], this._m[8]);
+		
+		this.setRow(0, r0);
+		this.setRow(1, r1);
+		this.setRow(2, r2);
+
+		return this;
+	}
+	
+	elemAtIndex(i) { return this._m[i]; }
+	assign(a) {
+		if (a.length==9) {
+			this._m[0] = a._m[0]; this._m[1] = a._m[1]; this._m[2] = a._m[2];
+			this._m[3] = a._m[3]; this._m[4] = a._m[4]; this._m[5] = a._m[5];
+			this._m[6] = a._m[6]; this._m[7] = a._m[7]; this._m[8] = a._m[8];
+		}
+		else if (a.length==16) {
+			this._m[0] = a._m[0]; this._m[1] = a._m[1]; this._m[2] = a._m[2];
+			this._m[3] = a._m[4]; this._m[4] = a._m[5]; this._m[5] = a._m[6];
+			this._m[6] = a._m[8]; this._m[7] = a._m[9]; this._m[8] = a._m[10];
+		}
+		return this;
+	}
+	
+	equals(m) {
+		return	this._m[0] == m._m[0] && this._m[1] == m._m[1]  && this._m[2] == m._m[2] &&
+				this._m[3] == m._m[3] && this._m[4] == m._m[4]  && this._m[5] == m._m[5] &&
+				this._m[6] == m._m[6] && this._m[7] == m._m[7]  && this._m[8] == m._m[8];
+	}
+
+	notEquals(m) {
+		return	this._m[0] != m._m[0] || this._m[1] != m._m[1]  || this._m[2] != m._m[2] &&
+				this._m[3] != m._m[3] || this._m[4] != m._m[4]  || this._m[5] != m._m[5] &&
+				this._m[6] != m._m[6] || this._m[7] != m._m[7]  || this._m[8] != m._m[8];
+	}
+		
+	mult(a) {
+		if (typeof(a)=="number") {
+			this._m[0] *= a; this._m[1] *= a; this._m[2] *= a;
+			this._m[3] *= a; this._m[4] *= a; this._m[5] *= a;
+			this._m[6] *= a; this._m[7] *= a; this._m[8] *= a;
+			
+		}
+		else {
+			let rm = this._m;
+			let lm = a._m;
+			
+			let res = new bg.Math.Array(9);
+			res[0] = lm[0] * rm[0] + lm[1] * rm[1] + lm[2] * rm[2];
+			res[1] = lm[0] * rm[1] + lm[1] * rm[4] + lm[2] * rm[7];
+			res[2] = lm[0] * rm[2] + lm[1] * rm[5] + lm[2] * rm[8];
+			
+			res[3] = lm[3] * rm[0] + lm[4] * rm[3] + lm[5] * rm[6];
+			res[4] = lm[3] * rm[1] + lm[4] * rm[4] + lm[5] * rm[7];
+			res[5] = lm[3] * rm[2] + lm[4] * rm[5] + lm[5] * rm[8];
+			
+			res[6] = lm[6] * rm[0] + lm[7] * rm[3] + lm[8] * rm[6];
+			res[7] = lm[6] * rm[1] + lm[7] * rm[4] + lm[8] * rm[7];
+			res[8] = lm[6] * rm[2] + lm[7] * rm[5] + lm[8] * rm[8];
+			this._m = res;
+		}
+		return this;
+	}
+
+	multVector(vec) {
+		if (typeof(vec)=='object' && vec._v && vec._v.length>=2) {
+			vec = vec._v;
+		}
+		let x=vec[0];
+		let y=vec[1];
+		let z=1.0;
+	
+		return new bg.Vector3(	this._m[0]*x + this._m[3]*y + this._m[6]*z,
+								this._m[1]*x + this._m[4]*y + this._m[7]*z,
+								this._m[2]*x + this._m[5]*y + this._m[8]*z);
+	}
+		
+	isNan() {
+		return	!Math.isNaN(_m[0]) && !Math.isNaN(_m[1]) && !Math.isNaN(_m[2]) &&
+				!Math.isNaN(_m[3]) && !Math.isNaN(_m[4]) && !Math.isNaN(_m[5]) &&
+				!Math.isNaN(_m[6]) && !Math.isNaN(_m[7]) && !Math.isNaN(_m[8]);
+	}
+
+	toString() {
+		return "[" + this._m[0] + ", " + this._m[1] + ", " + this._m[2] + "]\n" +
+			   " [" + this._m[3] + ", " + this._m[4] + ", " + this._m[5] + "]\n" +
+			   " [" + this._m[6] + ", " + this._m[7] + ", " + this._m[8] + "]";
+	}
+}
+
+bg.Matrix3 = Matrix3;
+
+class Matrix4 {
+	static Unproject(x, y, depth, mvMat, pMat, viewport) {
+		let mvp = new bg.Matrix4(pMat);
+		mvp.mult(mvMat);
+		mvp.invert();
+
+		let vin = new bg.Vector4(((x - viewport.y) / viewport.width) * 2.0 - 1.0,
+								((y - viewport.x) / viewport.height) * 2.0 - 1.0,
+								depth * 2.0 - 1.0,
+								1.0);
+		
+		let result = new bg.Vector4(mvp.multVector(vin));
+		if (result.z==0) {
+			result.set(0);
+		}
+		else {
+			result.set(	result.x/result.w,
+						result.y/result.w,
+						result.z/result.w,
+						result.w/result.w);
+		}
+
+		return result;
+	}
+
+	static Identity() {
+		return new bg.Matrix4(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1);
+	}
+		
+	static Perspective(fovy, aspect, nearPlane, farPlane) {
+		let fovy2 = bg.Math.tan(fovy * bg.Math.PI / 360.0) * nearPlane;
+		let fovy2aspect = fovy2 * aspect;
+
+		return bg.Matrix4.Frustum(-fovy2aspect,fovy2aspect,-fovy2,fovy2,nearPlane,farPlane);
+	}
+
+	static Frustum(left, right, bottom, top, nearPlane, farPlane) {
+		let res = new bg.Matrix4();
+		let A = right-left;
+		let B = top-bottom;
+		let C = farPlane-nearPlane;
+		
+		res.setRow(0, new bg.Vector4(nearPlane*2.0/A,	0.0,	0.0,	0.0));
+		res.setRow(1, new bg.Vector4(0.0,	nearPlane*2.0/B,	0.0,	0.0));
+		res.setRow(2, new bg.Vector4((right+left)/A,	(top+bottom)/B,	-(farPlane+nearPlane)/C,	-1.0));
+		res.setRow(3, new bg.Vector4(0.0,	0.0,	-(farPlane*nearPlane*2.0)/C,	0.0));
+		
+		return res;
+	}
+
+	static Ortho(left, right, bottom, top, nearPlane, farPlane) {
+		let p = new bg.Matrix4();
+		
+		let m = right-left;
+		let l = top-bottom;
+		let k = farPlane-nearPlane;;
+		
+		p._m[0] = 2/m; p._m[1] = 0;   p._m[2] = 0;     p._m[3] = 0;
+		p._m[4] = 0;   p._m[5] = 2/l; p._m[6] = 0;     p._m[7] = 0;
+		p._m[8] = 0;   p._m[9] = 0;   p._m[10] = -2/k; p._m[11]= 0;
+		p._m[12]=-(left+right)/m; p._m[13] = -(top+bottom)/l; p._m[14] = -(farPlane+nearPlane)/k; p._m[15]=1;
+
+		return p;
+	}
+		
+	static LookAt(p_eye, p_center, p_up) {
+		let result = new bg.Matrix4(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1);
+		let forward = new bg.Vector3(p_center);
+		forward.sub(p_eye);
+		let up = new bg.Vector3(p_up);
+		
+		forward.normalize();
+		
+		let side = new bg.Vector3(forward);
+		side.cross(up);
+		up.assign(side);
+		up.cross(forward);
+		
+		result.set00(side.x); result.set10(side.y); result.set20(side.z);
+		result.set01(up.x); result.set11(up.y); result.set21(up.z);
+		result.set02(-forward.x); result.set12(-forward.y); result.set22(-forward.z);
+		result.setRow(3, new vwgl.Vector4(-p_eye.x,-p_eye.y,-p_eye.z,1.0));
+		
+		return result;
+	}
+
+	static Translation(x, y, z) {
+		if (typeof(x)=='object' && x._v && x._v.length>=3) {
+			y = x._v[1];
+			z = x._v[2];
+			x = x._v[0];
+		}
+		return new bg.Matrix4(
+			1.0, 0.0, 0.0, 0.0,
+			0.0, 1.0, 0.0, 0.0,
+			0.0, 0.0, 1.0, 0.0,
+			  x,   y,   z, 1.0
+		);
+	}
+		
+	static Rotation(alpha, x, y, z) {
+		let axis = new bg.Vector3(x,y,z);
+		axis.normalize();
+		let rot = new bg.Matrix4(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1);
+				
+		var cosAlpha = bg.Math.cos(alpha);
+		var acosAlpha = 1.0 - cosAlpha;
+		var sinAlpha = bg.Math.sin(alpha);
+		
+		return new bg.Matrix4(
+			axis.x * axis.x * acosAlpha + cosAlpha, axis.x * axis.y * acosAlpha + axis.z * sinAlpha, axis.x * axis.z * acosAlpha - axis.y * sinAlpha, 0,
+			axis.y * axis.x * acosAlpha - axis.z * sinAlpha, axis.y * axis.y * acosAlpha + cosAlpha, axis.y * axis.z * acosAlpha + axis.x * sinAlpha, 0,
+			axis.z * axis.x * acosAlpha + axis.y * sinAlpha, axis.z * axis.y * acosAlpha - axis.x * sinAlpha, axis.z * axis.z * acosAlpha + cosAlpha, 0,
+			0,0,0,1
+		);
+	}
+
+	static Scale(x, y, z) {
+		if (typeof(x)=='object' && x._v && x._v.length>=3) {
+			x = x._v[0];
+			y = x._v[1];
+			z = x._v[2];
+		}
+		return new bg.Matrix4(
+			x, 0, 0, 0,
+			0, y, 0, 0,
+			0, 0, z, 0,
+			0, 0, 0, 1
+		)
+	}
+	
+	constructor(m00=0,m01=0,m02=0,m03=0, m10=0,m11=0,m12=0,m13=0, m20=0,m21=0,m22=0,m23=0, m30=0,m31=0,m32=0,m33=0) {
+		this._m = new bg.Math.Array(16);
+		if (Array.isArray(m00)) {
+			this._m[ 0] =  m00[0]; this._m[ 1] =  m00[1]; this._m[ 2] =  m00[2]; this._m[ 3] =  m00[3];
+			this._m[ 4] =  m00[4]; this._m[ 5] =  m00[5]; this._m[ 6] =  m00[6]; this._m[ 7] =  m00[7];
+			this._m[ 8] =  m00[8]; this._m[ 9] =  m00[9]; this._m[10] = m00[10]; this._m[11] = m00[11];
+			this._m[12] = m00[12]; this._m[13] = m00[13]; this._m[14] = m00[14]; this._m[15] = m00[15];
+		}
+		else if (typeof(m00)=="number") {
+			this._m[ 0] = m00; this._m[ 1] = m01; this._m[ 2] = m02; this._m[ 3] = m03;
+			this._m[ 4] = m10; this._m[ 5] = m11; this._m[ 6] = m12; this._m[ 7] = m13;
+			this._m[ 8] = m20; this._m[ 9] = m21; this._m[10] = m22; this._m[11] = m23;
+			this._m[12] = m30; this._m[13] = m31; this._m[14] = m32; this._m[15] = m33;
+		}
+		else {
+			this.assign(m00);
+		}
+	}
+	
+	get m() { return this._m; }
+
+	toArray() {
+		return [
+			this._m[ 0], this._m[ 1], this._m[ 2], this._m[ 3],
+			this._m[ 4], this._m[ 5], this._m[ 6], this._m[ 7],
+			this._m[ 8], this._m[ 9], this._m[10], this._m[11],
+			this._m[12], this._m[13], this._m[14], this._m[15]
+		]
+	}
+	
+	get m00() { return this._m[0]; }
+	get m01() { return this._m[1]; }
+	get m02() { return this._m[2]; }
+	get m03() { return this._m[3]; }
+	get m10() { return this._m[4]; }
+	get m11() { return this._m[5]; }
+	get m12() { return this._m[6]; }
+	get m13() { return this._m[7]; }
+	get m20() { return this._m[8]; }
+	get m21() { return this._m[9]; }
+	get m22() { return this._m[10]; }
+	get m23() { return this._m[11]; }
+	get m30() { return this._m[12]; }
+	get m31() { return this._m[13]; }
+	get m32() { return this._m[14]; }
+	get m33() { return this._m[15]; }
+	
+	set m00(v) { this._m[0] = v; }
+	set m01(v) { this._m[1] = v; }
+	set m02(v) { this._m[2] = v; }
+	set m03(v) { this._m[3] = v; }
+	set m10(v) { this._m[4] = v; }
+	set m11(v) { this._m[5] = v; }
+	set m12(v) { this._m[6] = v; }
+	set m13(v) { this._m[7] = v; }
+	set m20(v) { this._m[8] = v; }
+	set m21(v) { this._m[9] = v; }
+	set m22(v) { this._m[10] = v; }
+	set m23(v) { this._m[11] = v; }
+	set m30(v) { this._m[12] = v; }
+	set m31(v) { this._m[13] = v; }
+	set m32(v) { this._m[14] = v; }
+	set m33(v) { this._m[15] = v; }
+
+
+	zero() {
+		this._m[ 0] = 0; this._m[ 1] = 0; this._m[ 2] = 0; this._m[ 3] = 0;
+		this._m[ 4] = 0; this._m[ 5] = 0; this._m[ 6] = 0; this._m[ 7] = 0;
+		this._m[ 8] = 0; this._m[ 9] = 0; this._m[10] = 0; this._m[11] = 0;
+		this._m[12] = 0; this._m[13] = 0; this._m[14] = 0; this._m[15] = 0;
+		return this;
+	}
+
+	identity() {
+		this._m[ 0] = 1; this._m[ 1] = 0; this._m[ 2] = 0; this._m[ 3] = 0;
+		this._m[ 4] = 0; this._m[ 5] = 1; this._m[ 6] = 0; this._m[ 7] = 0;
+		this._m[ 8] = 0; this._m[ 9] = 0; this._m[10] = 1; this._m[11] = 0;
+		this._m[12] = 0; this._m[13] = 0; this._m[14] = 0; this._m[15] = 1;
+		return this;
+	}
+	
+	isZero() {
+		return	this._m[ 0]==0 && this._m[ 1]==0 && this._m[ 2]==0 && this._m[ 3]==0 &&
+				this._m[ 4]==0 && this._m[ 5]==0 && this._m[ 6]==0 && this._m[ 7]==0 &&
+				this._m[ 8]==0 && this._m[ 9]==0 && this._m[10]==0 && this._m[11]==0 &&
+				this._m[12]==0 && this._m[13]==0 && this._m[14]==0 && this._m[15]==0;
+	}
+	
+	isIdentity() {
+		return	this._m[ 0]==1 && this._m[ 1]==0 && this._m[ 2]==0 && this._m[ 3]==0 &&
+				this._m[ 4]==0 && this._m[ 5]==1 && this._m[ 6]==0 && this._m[ 7]==0 &&
+				this._m[ 8]==0 && this._m[ 9]==0 && this._m[10]==1 && this._m[11]==0 &&
+				this._m[12]==0 && this._m[13]==0 && this._m[14]==0 && this._m[15]==1;
+	}
+
+	row(i) { return new bg.Vector4(this._m[i*4],this._m[i*4 + 1],this._m[i*4 + 2],this._m[i*4 + 3]); }
+	setRow(i, row) { this._m[i*4]=row._v[0]; this._m[i*4 + 1]=row._v[1]; this._m[i*4 + 2]=row._v[2]; this._m[i*4 + 3]=row._v[3]; return this; }
+	setScale(x,y,z) {
+		let rx = new bg.Vector3(this._m[0], this._m[4], this._m[8]).normalize().scale(x);
+		let ry = new bg.Vector3(this._m[1], this._m[5], this._m[9]).normalize().scale(y);
+		let rz = new bg.Vector3(this._m[2], this._m[6], this._m[10]).normalize().scale(z);
+		this._m[0] = rx.x; this._m[4] = rx.y; this._m[8] = rx.z;
+		this._m[1] = ry.x; this._m[5] = ry.y; this._m[9] = ry.z;
+		this._m[2] = rz.x; this._m[6] = rz.y; this._m[10] = rz.z;
+		return this;
+	}
+	getScale() {
+		return new bg.Vector3(
+			new bg.Vector3(this._m[0], this._m[4], this._m[8]).module,
+			new bg.Vector3(this._m[1], this._m[5], this._m[9]).module,
+			new bg.Vector3(this._m[2], this._m[6], this._m[10]).module
+		);
+	}
+
+	setPosition(pos,y,z) {
+		if (typeof(pos)=="number") {
+			this._m[12] = pos;
+			this._m[13] = y;
+			this._m[14] = z;
+		}
+		else {
+			this._m[12] = pos.x;
+			this._m[13] = pos.y;
+			this._m[14] = pos.z;
+		}
+		return this;
+	}
+
+	get rotation() {
+		let scale = this.getScale();
+		return new bg.Matrix4(
+				this._m[0]/scale.x, this._m[1]/scale.y, this._m[ 2]/scale.z, 0,
+				this._m[4]/scale.x, this._m[5]/scale.y, this._m[ 6]/scale.z, 0,
+				this._m[8]/scale.x, this._m[9]/scale.y, this._m[10]/scale.z, 0,
+				0,	   0,	  0, 	1
+			);
+	}
+
+	get position() {
+		return new bg.Vector3(this._m[12], this._m[13], this._m[14]);
+	}
+	
+	get length() { return this._m.length; }
+	
+	getMatrix3() {
+		return new bg.Matrix3(this._m[0], this._m[1], this._m[ 2],
+								this._m[4], this._m[5], this._m[ 6],
+								this._m[8], this._m[9], this._m[10]);
+	}
+	
+	perspective(fovy, aspect, nearPlane, farPlane) {
+		this.assign(bg.Matrix4.Perspective(fovy, aspect, nearPlane, farPlane));
+		return this;
+	}
+	
+	frustum(left, right, bottom, top, nearPlane, farPlane) {
+		this.assign(bg.Matrix4.Frustum(left, right, bottom, top, nearPlane, farPlane));
+		return this;
+	}
+	
+	ortho(left, right, bottom, top, nearPlane, farPlane) {
+		this.assign(bg.Matrix4.Ortho(left, right, bottom, top, nearPlane, farPlane));
+		return this;
+	}
+
+	lookAt(origin, target, up) {
+		this.assign(bg.Matrix4.LookAt(origin,target,up));
+		return this;
+	}
+
+	translate(x, y, z) {
+		this.mult(bg.Matrix4.Translation(x, y, z));
+		return this;
+	}
+
+	rotate(alpha, x, y, z) {
+		this.mult(bg.Matrix4.Rotation(alpha, x, y, z));
+		return this;
+	}
+	
+	scale(x, y, z) {
+		this.mult(bg.Matrix4.Scale(x, y, z));
+		return this;
+	}
+
+	elemAtIndex(i) { return this._m[i]; }
+
+	assign(a) {
+		if (a.length==9) {
+			this._m[0]  = a._m[0]; this._m[1]  = a._m[1]; this._m[2]  = a._m[2]; this._m[3]  = 0;
+			this._m[4]  = a._m[3]; this._m[5]  = a._m[4]; this._m[6]  = a._m[5]; this._m[7]  = 0;
+			this._m[8]  = a._m[6]; this._m[9]  = a._m[7]; this._m[10] = a._m[8]; this._m[11] = 0;
+			this._m[12] = 0;	   this._m[13] = 0;		  this._m[14] = 0;		 this._m[15] = 1;
+		}
+		else if (a.length==16) {
+			this._m[0]  = a._m[0];  this._m[1]  = a._m[1];  this._m[2]  = a._m[2];  this._m[3]  = a._m[3];
+			this._m[4]  = a._m[4];  this._m[5]  = a._m[5];  this._m[6]  = a._m[6];  this._m[7]  = a._m[7];
+			this._m[8]  = a._m[8];  this._m[9]  = a._m[9];  this._m[10] = a._m[10]; this._m[11] = a._m[11];
+			this._m[12] = a._m[12]; this._m[13] = a._m[13];	this._m[14] = a._m[14];	this._m[15] = a._m[15];
+		}
+		return this;
+	}
+	
+	equals(m) {
+		return	this._m[ 0]==m._m[ 0] && this._m[ 1]==m._m[ 1] && this._m[ 2]==m._m[ 2] && this._m[ 3]==m._m[ 3] &&
+				this._m[ 4]==m._m[ 4] && this._m[ 5]==m._m[ 5] && this._m[ 6]==m._m[ 6] && this._m[ 7]==m._m[ 7] &&
+				this._m[ 8]==m._m[ 8] && this._m[ 9]==m._m[ 9] && this._m[10]==m._m[10] && this._m[11]==m._m[11] &&
+				this._m[12]==m._m[12] && this._m[13]==m._m[13] && this._m[14]==m._m[14] && this._m[15]==m._m[15];
+	}
+	
+	notEquals(m) {
+		return	this._m[ 0]!=m._m[ 0] || this._m[ 1]!=m._m[ 1] || this._m[ 2]!=m._m[ 2] || this._m[ 3]!=m._m[ 3] ||
+				this._m[ 4]!=m._m[ 4] || this._m[ 5]!=m._m[ 5] || this._m[ 6]!=m._m[ 6] || this._m[ 7]!=m._m[ 7] ||
+				this._m[ 8]!=m._m[ 8] || this._m[ 9]!=m._m[ 9] || this._m[10]!=m._m[10] || this._m[11]!=m._m[11] ||
+				this._m[12]!=m._m[12] || this._m[13]!=m._m[13] || this._m[14]!=m._m[14] || this._m[15]!=m._m[15];
+	}
+	
+	mult(a) {
+		if (typeof(a)=='number') {
+			this._m[ 0] *= a; this._m[ 1] *= a; this._m[ 2] *= a; this._m[ 3] *= a;
+			this._m[ 4] *= a; this._m[ 5] *= a; this._m[ 6] *= a; this._m[ 7] *= a;
+			this._m[ 8] *= a; this._m[ 9] *= a; this._m[10] *= a; this._m[11] *= a;
+			this._m[12] *= a; this._m[13] *= a; this._m[14] *= a; this._m[15] *= a;
+			return this;
+		}
+
+		var rm = this._m;
+		var lm = a._m;
+		var res = new bg.Math.Array(16);
+	
+		res[0] = lm[ 0] * rm[ 0] + lm[ 1] * rm[ 4] + lm[ 2] * rm[ 8] + lm[ 3] * rm[12];
+		res[1] = lm[ 0] * rm[ 1] + lm[ 1] * rm[ 5] + lm[ 2] * rm[ 9] + lm[ 3] * rm[13];
+		res[2] = lm[ 0] * rm[ 2] + lm[ 1] * rm[ 6] + lm[ 2] * rm[10] + lm[ 3] * rm[14];
+		res[3] = lm[ 0] * rm[ 3] + lm[ 1] * rm[ 7] + lm[ 2] * rm[11] + lm[ 3] * rm[15];
+		
+		res[4] = lm[ 4] * rm[ 0] + lm[ 5] * rm[ 4] + lm[ 6] * rm[ 8] + lm[ 7] * rm[12];
+		res[5] = lm[ 4] * rm[ 1] + lm[ 5] * rm[ 5] + lm[ 6] * rm[ 9] + lm[ 7] * rm[13];
+		res[6] = lm[ 4] * rm[ 2] + lm[ 5] * rm[ 6] + lm[ 6] * rm[10] + lm[ 7] * rm[14];
+		res[7] = lm[ 4] * rm[ 3] + lm[ 5] * rm[ 7] + lm[ 6] * rm[11] + lm[ 7] * rm[15];
+		
+		res[8]  = lm[ 8] * rm[ 0] + lm[ 9] * rm[ 4] + lm[10] * rm[ 8] + lm[11] * rm[12];
+		res[9]  = lm[ 8] * rm[ 1] + lm[ 9] * rm[ 5] + lm[10] * rm[ 9] + lm[11] * rm[13];
+		res[10] = lm[ 8] * rm[ 2] + lm[ 9] * rm[ 6] + lm[10] * rm[10] + lm[11] * rm[14];
+		res[11] = lm[ 8] * rm[ 3] + lm[ 9] * rm[ 7] + lm[10] * rm[11] + lm[11] * rm[15];
+		
+		res[12] = lm[12] * rm[ 0] + lm[13] * rm[ 4] + lm[14] * rm[ 8] + lm[15] * rm[12];
+		res[13] = lm[12] * rm[ 1] + lm[13] * rm[ 5] + lm[14] * rm[ 9] + lm[15] * rm[13];
+		res[14] = lm[12] * rm[ 2] + lm[13] * rm[ 6] + lm[14] * rm[10] + lm[15] * rm[14];
+		res[15] = lm[12] * rm[ 3] + lm[13] * rm[ 7] + lm[14] * rm[11] + lm[15] * rm[15];
+	
+		this._m = res;
+		return this;
+	}
+
+	multVector(vec) {
+		if (typeof(vec)=='object' && vec._v && vec._v.length>=3) {
+			vec = vec._v;
+		}
+		let x=vec[0];
+		let y=vec[1];
+		let z=vec[2];
+		let w=1.0;
+	
+		return new bg.Vector4(this._m[0]*x + this._m[4]*y + this._m[ 8]*z + this._m[12]*w,
+								this._m[1]*x + this._m[5]*y + this._m[ 9]*z + this._m[13]*w,
+								this._m[2]*x + this._m[6]*y + this._m[10]*z + this._m[14]*w,
+								this._m[3]*x + this._m[7]*y + this._m[11]*z + this._m[15]*w);
+	}
+	
+	invert() {
+		let a00 = this._m[0],  a01 = this._m[1],  a02 = this._m[2],  a03 = this._m[3],
+	        a10 = this._m[4],  a11 = this._m[5],  a12 = this._m[6],  a13 = this._m[7],
+	        a20 = this._m[8],  a21 = this._m[9],  a22 = this._m[10], a23 = this._m[11],
+	        a30 = this._m[12], a31 = this._m[13], a32 = this._m[14], a33 = this._m[15];
+
+	    let b00 = a00 * a11 - a01 * a10,
+	        b01 = a00 * a12 - a02 * a10,
+	        b02 = a00 * a13 - a03 * a10,
+	        b03 = a01 * a12 - a02 * a11,
+	        b04 = a01 * a13 - a03 * a11,
+	        b05 = a02 * a13 - a03 * a12,
+	        b06 = a20 * a31 - a21 * a30,
+	        b07 = a20 * a32 - a22 * a30,
+	        b08 = a20 * a33 - a23 * a30,
+	        b09 = a21 * a32 - a22 * a31,
+	        b10 = a21 * a33 - a23 * a31,
+	        b11 = a22 * a33 - a23 * a32;
+
+	    let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
+
+	    if (!det) {
+			this.zero();
+	        return this;
+	    }
+		else {
+			det = 1.0 / det;
+
+			this._m[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;
+			this._m[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;
+			this._m[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;
+			this._m[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;
+			this._m[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;
+			this._m[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;
+			this._m[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;
+			this._m[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;
+			this._m[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;
+			this._m[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;
+			this._m[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;
+			this._m[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;
+			this._m[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;
+			this._m[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;
+			this._m[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;
+			this._m[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;
+			return this;
+		}
+	}
+	
+	traspose() {
+		let r0 = new bg.Vector4(this._m[0], this._m[4], this._m[ 8], this._m[12]);
+		let r1 = new bg.Vector4(this._m[1], this._m[5], this._m[ 9], this._m[13]);
+		let r2 = new bg.Vector4(this._m[2], this._m[6], this._m[10], this._m[14]);
+		let r3 = new bg.Vector4(this._m[3], this._m[7], this._m[11], this._m[15]);
+	
+		this.setRow(0, r0);
+		this.setRow(1, r1);
+		this.setRow(2, r2);
+		this.setRow(3, r3);
+		return this;
+	}
+	
+	transformDirection(/* Vector3 */ dir) {
+		let direction = new bg.Vector3(dir);
+		let trx = new bg.Matrix4(this);
+		trx.setRow(3, new bg.Vector4(0.0, 0.0, 0.0, 1.0));
+		direction.assign(trx.multVector(direction).xyz);
+		direction.normalize();
+		return direction;
+	}
+	
+	get forwardVector() {
+		return this.transformDirection(new bg.Vector3(0.0, 0.0, 1.0));
+	}
+	
+	get rightVector() {
+		return this.transformDirection(new bg.Vector3(1.0, 0.0, 0.0));
+	}
+	
+	get upVector() {
+		return this.transformDirection(new bg.Vector3(0.0, 1.0, 0.0));
+	}
+	
+	get backwardVector() {
+		return this.transformDirection(new bg.Vector3(0.0, 0.0, -1.0));
+	}
+	
+	get leftVector() {
+		return this.transformDirection(new bg.Vector3(-1.0, 0.0, 0.0));
+	}
+	
+	get downVector() {
+		return this.transformDirection(new bg.Vector3(0.0, -1.0, 0.0));
+	}
+	
+	isNan() {
+		return	Number.isNaN(this._m[ 0]) || Number.isNaN(this._m[ 1]) || Number.isNaN(this._m[ 2]) || Number.isNaN(this._m[ 3]) ||
+				Number.isNaN(this._m[ 4]) || Number.isNaN(this._m[ 5]) || Number.isNaN(this._m[ 6]) || Number.isNaN(this._m[ 7]) ||
+				Number.isNaN(this._m[ 8]) || Number.isNaN(this._m[ 9]) || Number.isNaN(this._m[10]) || Number.isNaN(this._m[11]) ||
+				Number.isNaN(this._m[12]) || Number.isNaN(this._m[13]) || Number.isNaN(this._m[14]) || Number.isNaN(this._m[15]);
+	}
+	
+	getOrthoValues() {
+		return [ (1+get23())/get22(),
+				-(1-get23())/get22(),
+				 (1-get13())/get11(),
+				-(1+get13())/get11(),
+				-(1+get03())/get00(),
+				 (1-get03())/get00() ];
+	}
+
+	getPerspectiveValues() {
+		return [ get23()/(get22()-1),
+				 get23()/(get22()+1),
+				 near * (get12()-1)/get11(),
+				 near * (get12()+1)/get11(),
+				 near * (get02()-1)/get00(),
+				 near * (get02()+1)/get00() ];
+	}
+
+	toString() {
+		return "[" + this._m[ 0] + ", " + this._m[ 1] + ", " + this._m[ 2] + ", " + this._m[ 3] + "]\n" +
+			  " [" + this._m[ 4] + ", " + this._m[ 5] + ", " + this._m[ 6] + ", " + this._m[ 7] + "]\n" +
+			  " [" + this._m[ 8] + ", " + this._m[ 9] + ", " + this._m[10] + ", " + this._m[11] + "]\n" +
+			  " [" + this._m[12] + ", " + this._m[13] + ", " + this._m[14] + ", " + this._m[15] + "]";
+	}
+}
+
+bg.Matrix4 = Matrix4;
+
+})();
+
+(function() {
+	class Vector {
+		static MinComponents(v1,v2) {
+			let length = Math.min(v1.length, v2.length);
+			let result = null;
+			switch (length) {
+			case 2:
+				result = new bg.Vector2();
+				break;
+			case 3:
+				result = new bg.Vector3();
+				break;
+			case 4:
+				result = new bg.Vector4();
+				break;
+			}
+
+			for (let i=0; i<length; ++i) {
+				result._v[i] = v1._v[i]<v2._v[i] ? v1._v[i] : v2._v[i];
+			}
+			return result;
+		}
+
+		static MaxComponents(v1,v2) {
+			let length = Math.min(v1.length, v2.length);
+			let result = null;
+			switch (length) {
+			case 2:
+				result = new bg.Vector2();
+				break;
+			case 3:
+				result = new bg.Vector3();
+				break;
+			case 4:
+				result = new bg.Vector4();
+				break;
+			}
+
+			for (let i=0; i<length; ++i) {
+				result._v[i] = v1._v[i]>v2._v[i] ? v1._v[i] : v2._v[i];
+			}
+			return result;
+		}
+
+		constructor(v) {
+			this._v = v;
+		}
+		
+		get v() { return this._v; }
+		
+		get length() { return this._v.length; }
+		
+		get x() { return this._v[0]; }
+		set x(v) { this._v[0] = v; }
+		get y() { return this._v[1]; }
+		set y(v) { this._v[1] = v; }
+
+		get module() { return this.magnitude(); }
+
+		toArray() {
+			let result = [];
+			for (let i=0; i<this.v.length; ++i) {
+				result.push(this.v[i]);
+			}
+			return result;
+		}
+	}
+	
+	bg.VectorBase = Vector;
+	bg.Vector = Vector;
+	
+	class Vector2 extends Vector {
+		static Add(v1,v2) {
+			return new Vector2(v1.x + v2.x, v1.y + v2.y);
+		}
+
+		static Sub(v1,v2) {
+			return new Vector2(v1.x - v2.x, v1.y - v2.y);
+		}
+
+		constructor(x = 0,y) {
+			super(new bg.Math.ArrayHighP(2));
+			if (x instanceof Vector2) {
+				this._v[0] = x._v[0];
+				this._v[1] = x._v[1];
+			}
+			else if (Array.isArray(x) && x.length>=2) {
+				this._v[0] = x[0];
+				this._v[1] = x[1];
+			}
+			else {
+				if (y===undefined) y=x;
+				this._v[0] = x;
+				this._v[1] = y;
+			}
+		}
+		
+		distance(other) {
+			let v3 = new bg.Vector2(this._v[0] - other._v[0],
+									  this._v[1] - other._v[1]);
+			return v3.magnitude();
+		}
+
+		normalize() {
+			let m = this.magnitude();
+			this._v[0] = this._v[0]/m; this._v[1]=this._v[1]/m;
+			return this;
+		}
+
+		add(v2) {
+			this._v[0] += v2._v[0];
+			this._v[1] += v2._v[1];
+			return this;
+		}
+
+		sub(v2) {
+			this._v[0] -= v2._v[0];
+			this._v[1] -= v2._v[1];
+			return this;
+		}
+
+		dot(v2) {
+			return this._v[0] * v2._v[0] + this._v[1] * v2._v[1];
+		}
+
+		scale(scale) {
+			this._v[0] *= scale; this._v[1] *= scale;
+			return this;
+		}
+
+		magnitude() {
+			return Math.sqrt(
+				this._v[0] * this._v[0] +
+				this._v[1] * this._v[1]
+			)
+		}
+
+		elemAtIndex(i) { return this._v[i]; }
+		equals(v) { return this._v[0]==v._v[0] && this._v[1]==v._v[1]; }
+		notEquals(v) { return this._v[0]!=v._v[0] || this._v[1]!=v._v[1]; }
+		assign(v) { this._v[0]=v._v[0]; this._v[1]=v._v[1]; }
+
+		set(x, y) {
+			if (y===undefined) y = x;
+			this._v[0] = x; this._v[1] = y;
+		}
+
+		get width() { return this._v[0]; }
+		get height() { return this._v[1]; }
+		set width(v) { this._v[0] = v; }
+		set height(v) { this._v[1] = v; }
+
+		get aspectRatio() { return this._v[0]/this._v[1]; }
+
+		isNan() { return isNaN(this._v[0]) || isNaN(this._v[1]); }
+
+		toString() {
+			return "[" + this._v + "]";
+		}
+	}
+	
+	bg.Vector2 = Vector2;
+	
+	class Vector3 extends Vector {
+		static Add(v1,v2) {
+			return new Vector3(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z);
+		}
+
+		static Sub(v1,v2) {
+			return new Vector3(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z);
+		}
+
+		constructor(x = 0, y = 0, z = 0) {
+			super(new bg.Math.ArrayHighP(3));
+			if (x instanceof Vector2) {
+				this._v[0] = x._v[0];
+				this._v[1] = x._v[1];
+				this._v[2] = y;
+			}
+			else if (x instanceof Vector3) {
+				this._v[0] = x._v[0];
+				this._v[1] = x._v[1];
+				this._v[2] = x._v[2];
+			}
+			else if (Array.isArray(x) && x.length>=3) {
+				this._v[0] = x[0];
+				this._v[1] = x[1];
+				this._v[2] = x[2];
+			}
+			else {
+				if (y===undefined) y=x;
+				if (z===undefined) z=y;
+				this._v[0] = x;
+				this._v[1] = y;
+				this._v[2] = z;
+			}
+		}
+		
+		get z() { return this._v[2]; }
+		set z(v) { this._v[2] = v; }
+
+		magnitude() {
+			return Math.sqrt(
+				this._v[0] * this._v[0] +
+				this._v[1] * this._v[1] +
+				this._v[2] * this._v[2]
+			);
+		}
+		
+		normalize() {
+			let m = this.magnitude();
+			this._v[0] = this._v[0]/m; this._v[1]=this._v[1]/m; this._v[2]=this._v[2]/m;
+			return this;
+		}
+
+		distance(other) {
+			let v3 = new bg.Vector3(this._v[0] - other._v[0],
+									  this._v[1] - other._v[1],
+									  this._v[2] - other._v[2]);
+			return v3.magnitude();
+		}
+
+		add(v2) {
+			this._v[0] += v2._v[0];
+			this._v[1] += v2._v[1];
+			this._v[2] += v2._v[2];
+			return this;
+		}
+
+		sub(v2) {
+			this._v[0] -= v2._v[0];
+			this._v[1] -= v2._v[1];
+			this._v[2] -= v2._v[2];
+			return this;
+		}
+
+		dot(v2) {
+			return this._v[0] * v2._v[0] + this._v[1] * v2._v[1] + this._v[2] * v2._v[2];
+		}
+
+		scale(scale) {
+			this._v[0] *= scale; this._v[1] *= scale; this._v[2] *= scale;
+			return this;
+		}
+
+		cross(/* Vector3 */ v2) {
+			let x = this._v[1] * v2._v[2] - this._v[2] * v2._v[1];
+			let y = this._v[2] * v2._v[0] - this._v[0] * v2._v[2];
+			let z = this._v[0] * v2._v[1] - this._v[1] * v2._v[0];
+			this._v[0]=x; this._v[1]=y; this._v[2]=z;
+			return this;
+		}
+
+		elemAtIndex(i) { return this._v[i]; }
+		equals(v) { return this._v[0]==v._v[0] && this._v[1]==v._v[1] && this._v[2]==v._v[2]; }
+		notEquals(v) { return this._v[0]!=v._v[0] || this._v[1]!=v._v[1] || this._v[2]!=v._v[2]; }
+		assign(v) { this._v[0]=v._v[0]; this._v[1]=v._v[1]; if (v._v.length>=3) this._v[2]=v._v[2]; }
+
+		set(x, y, z) {
+			this._v[0] = x;
+			this._v[1] = (y===undefined) ? x:y;
+			this._v[2] = (y===undefined) ? x:(z===undefined ? y:z);
+		}
+
+		get width() { return this._v[0]; }
+		get height() { return this._v[1]; }
+		get depth() { return this._v[2]; }
+		
+		set width(v) { this._v[0] = v; }
+		set height(v) { this._v[1] = v; }
+		set depth(v) { this._v[2] = v; }
+
+		get xy() { return new bg.Vector2(this._v[0],this._v[1]); }
+		get yz() { return new bg.Vector2(this._v[1],this._v[2]); }
+		get xz() { return new bg.Vector2(this._v[0],this._v[2]); }
+
+		isNan() { return isNaN(this._v[0]) || isNaN(this._v[1]) || isNaN(this._v[2]); }
+
+		toString() {
+			return "[" + this._v + "]";
+		}
+	}
+	
+	bg.Vector3 = Vector3;
+	
+	class Vector4 extends Vector {
+		static Add(v1,v2) {
+			return new Vector4(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z, v1.w + v2.w);
+		}
+
+		static Sub(v1,v2) {
+			return new Vector4(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z, v1.w - v2.w);
+		}
+
+		static Yellow() { return new bg.Vector4(1.0,1.0,0.0,1.0); }
+		static Orange() { return new bg.Vector4(1.0,0.5,0.0,1.0); }
+		static Red() { return new bg.Vector4(1.0,0.0,0.0,1.0); }
+		static Violet() { return new bg.Vector4(0.5,0.0,1.0,1.0); }
+		static Blue() { return new bg.Vector4(0.0,0.0,1.0,1.0); }
+		static Green() { return new bg.Vector4(0.0,1.0,0.0,1.0); }
+		static White() { return new bg.Vector4(1.0,1.0,1.0,1.0); }
+		static LightGray() { return new bg.Vector4(0.8,0.8,0.8,1.0); }
+		static Gray() { return new bg.Vector4(0.5,0.5,0.5,1.0); }
+		static DarkGray() { return new bg.Vector4(0.2,0.2,0.2,1.0); }
+		static Black() { return new bg.Vector4(0.0,0.0,0.0,1.0); }
+		static Brown() { return new bg.Vector4(0.4,0.2,0.0,1.0); }
+		static Transparent() { return new bg.Vector4(0,0,0,0); }
+		
+		constructor(x = 0, y = 0, z = 0, w = 0) {
+			super(new bg.Math.ArrayHighP(4));
+			if (x instanceof Vector2) {
+				this._v[0] = x._v[0];
+				this._v[1] = x._v[1];
+				this._v[2] = y
+				this._v[3] = z;
+			}
+			else if (x instanceof Vector3) {
+				this._v[0] = x._v[0];
+				this._v[1] = x._v[1];
+				this._v[2] = x._v[2];
+				this._v[3] = y;
+			}
+			else if (x instanceof Vector4) {
+				this._v[0] = x._v[0];
+				this._v[1] = x._v[1];
+				this._v[2] = x._v[2];
+				this._v[3] = x._v[3];
+			}
+			else if (Array.isArray(x) && x.length>=4) {
+				this._v[0] = x[0];
+				this._v[1] = x[1];
+				this._v[2] = x[2];
+				this._v[3] = x[3];
+			}
+			else {
+				if (y===undefined) y=x;
+				if (z===undefined) z=y;
+				if (w===undefined) w=z;
+				this._v[0] = x;
+				this._v[1] = y;
+				this._v[2] = z;
+				this._v[3] = w;
+			}
+		}
+		
+		get z() { return this._v[2]; }
+		set z(v) { this._v[2] = v; }
+		get w() { return this._v[3]; }
+		set w(v) { this._v[3] = v; }
+		
+		magnitude() {
+			return Math.sqrt(
+				this._v[0] * this._v[0] +
+				this._v[1] * this._v[1] +
+				this._v[2] * this._v[2] +
+				this._v[3] * this._v[3]
+			);
+		}
+
+		normalize() {
+			let m = this.magnitude();
+			this._v[0] = this._v[0]/m;
+			this._v[1]=this._v[1]/m;
+			this._v[2]=this._v[2]/m;
+			this._v[3]=this._v[3]/m;
+			return this;
+		}
+
+		distance(other) {
+			let v3 = new bg.Vector4(this._v[0] - other._v[0],
+									  this._v[1] - other._v[1],
+									  this._v[2] - other._v[2],
+									  this._v[3] - other._v[3]);
+			return v3.magnitude();
+		}
+
+		add(v2) {
+			this._v[0] += v2._v[0];
+			this._v[1] += v2._v[1];
+			this._v[2] += v2._v[2];
+			this._v[3] += v2._v[3];
+			return this;
+		}
+
+		sub(v2) {
+			this._v[0] -= v2._v[0];
+			this._v[1] -= v2._v[1];
+			this._v[2] -= v2._v[2];
+			this._v[3] -= v2._v[3];
+			return this;
+		}
+
+		dot(v2) {
+			return this._v[0] * v2._v[0] + this._v[1] * v2._v[1] + this._v[2] * v2._v[2] + this._v[3] * v2._v[3];
+		}
+
+		scale(scale) {
+			this._v[0] *= scale; this._v[1] *= scale; this._v[2] *= scale; this._v[3] *= scale;
+			return this;
+		}
+
+		elemAtIndex(i) { return this._v[i]; }
+		equals(v) { return this._v[0]==v._v[0] && this._v[1]==v._v[1] && this._v[2]==v._v[2] && this._v[3]==v._v[3]; }
+		notEquals(v) { return this._v[0]!=v._v[0] || this._v[1]!=v._v[1] || this._v[2]!=v._v[2] || this._v[3]!=v._v[3]; }
+		assign(v) { this._v[0]=v._v[0]; this._v[1]=v._v[1]; if (v._v.length>=3) this._v[2]=v._v[2]; if (v._v.length==4) this._v[3]=v._v[3]; }
+
+		set(x, y, z, w) {
+			this._v[0] = x;
+			this._v[1] = (y===undefined) ? x:y;
+			this._v[2] = (y===undefined) ? x:(z===undefined ? y:z);
+			this._v[3] = (y===undefined) ? x:(z===undefined ? y:(w===undefined ? z:w));
+		}
+
+		get r() { return this._v[0]; }
+		get g() { return this._v[1]; }
+		get b() { return this._v[2]; }
+		get a() { return this._v[3]; }
+		
+		set r(v) { this._v[0] = v; }
+		set g(v) { this._v[1] = v; }
+		set b(v) { this._v[2] = v; }
+		set a(v) { this._v[3] = v; }
+
+		get xy() { return new bg.Vector2(this._v[0],this._v[1]); }
+		get yz() { return new bg.Vector2(this._v[1],this._v[2]); }
+		get xz() { return new bg.Vector2(this._v[0],this._v[2]); }
+		get xyz() { return new bg.Vector3(this._v[0],this._v[1],this._v[2]); }
+
+		get width() { return this._v[2]; }
+		get height() { return this._v[3]; }
+		
+		set width(v) { this._v[2] = v; }
+		set height(v) { this._v[3] = v; }
+		
+		get aspectRatio() { return this._v[3]!=0 ? this._v[2]/this._v[3]:1.0; }
+
+		isNan() { return isNaN(this._v[0]) || isNaN(this._v[1]) || isNaN(this._v[2]) || isNaN(this._v[3]); }
+
+		toString() {
+			return "[" + this._v + "]";
+		}
+	}
+	
+	bg.Vector4 = Vector4;
+	
+	bg.Size2D = Vector2;
+	bg.Size3D = Vector3;
+	bg.Position2D = Vector2;
+	bg.Viewport = Vector4;
+	bg.Color = Vector4;
+	
+	class Bounds extends Vector {
+		constructor(a=0,b=0,c=0,d=0,e=0,f=0) {
+			super(new bg.Math.Array(6));
+			this._v[0] = a;
+			this._v[1] = b;
+			this._v[2] = c;
+			this._v[3] = d;
+			this._v[4] = e;
+			this._v[5] = f;
+		}
+		
+		elemAtIndex(i) { return this._v[i]; }
+		equals(v) { return this._v[0]==v._v[0] && this._v[1]==v._v[1] && this._v[2]==v._v[2] && this._v[3]==v._v[3] && this._v[4]==v._v[4] && this._v[5]==v._v[5]; }
+		notEquals(v) { return this._v[0]!=v._v[0] || this._v[1]!=v._v[1] || this._v[2]!=v._v[2] || this._v[3]!=v._v[3] || this._v[4]!=v._v[4] || this._v[5]!=v._v[5]; }
+		assign(v) { this._v[0]=v._v[0]; this._v[1]=v._v[1]; this._v[2]=v._v[2]; this._v[3]=v._v[3]; this._v[4]=v._v[4]; this._v[5]=v._v[5]; }
+
+		set(left, right, bottom, top, back, front) {
+			this._v[0] = left;
+			this._v[1] = (right===undefined) ? left:right;
+			this._v[2] = (right===undefined) ? left:bottom;
+			this._v[3] = (right===undefined) ? left:top;
+			this._v[4] = (right===undefined) ? left:back;
+			this._v[5] = (right===undefined) ? left:front;
+		}
+
+		get left() { return this._v[0]; }
+		get right() { return this._v[1]; }
+		get bottom() { return this._v[2]; }
+		get top() { return this._v[3]; }
+		get back() { return this._v[4]; }
+		get front() { return this._v[5]; }
+		
+		set left(v) { this._v[0] = v; }
+		set right(v) { this._v[1] = v; }
+		set bottom(v) { this._v[2] = v; }
+		set top(v) { this._v[3] = v; }
+		set back(v) { this._v[4] = v; }
+		set front(v) { this._v[5] = v; }
+
+		get width() { return Math.abs(this._v[1] - this._v[0]); }
+		get height() { return Math.abs(this._v[3] - this._v[2]); }
+		get depth() { return Math.abs(this._v[5] - this._v[4]); }
+
+		isNan() { return isNaN(this._v[0]) || isNaN(this._v[1]) || isNaN(this._v[2]) || isNaN(this._v[3]) || isNaN(this._v[4]) || isNaN(this._v[5]); }
+
+		toString() {
+			return "[" + this._v + "]";
+		}
+
+		isInBounds(/* vwgl.Vector3*/ v) {
+			return v.x>=this._v[0] && v.x<=this._v[1] &&
+					v.y>=this._v[2] && v.y<=this._v[3] &&
+					v.z>=this._v[4] && v.z<=this._v[5];
+		}
+	}
+	
+	bg.Bounds = Bounds;
+
+	class Quaternion extends Vector4 {
+		static MakeWithMatrix(m) {
+			return new Quaternion(m);
+		}
+		
+		constructor(a,b,c,d) {
+			super();
+			if (a===undefined) this.zero();
+			else if (b===undefined) {
+				if (a._v && a._v.lenght>=4) this.clone(a);
+				else if(a._m && a._m.length==9) this.initWithMatrix3(a);
+				else if(a._m && a._m.length==16) this.initWithMatrix4(a);
+				else this.zero();
+			}
+			else if (a!==undefined && b!==undefined && c!==undefined && d!==undefined) {
+				this.initWithValues(a,b,c,d);
+			}
+			else {
+				this.zero();
+			}
+		}
+		
+		initWithValues(alpha,x,y,z) {
+			this._v[0] = x * bg.Math.sin(alpha/2);
+			this._v[1] = y * bg.Math.sin(alpha/2);
+			this._v[2] = z * bg.Math.sin(alpha/2);
+			this._v[3] = bg.Math.cos(alpha/2);
+			return this;
+		}
+		
+		clone(q) {
+			this._v[0] = q._v[0];
+			this._v[1] = q._v[1];
+			this._v[2] = q._v[2];
+			this._v[3] = q._v[3];
+		}
+		
+		initWithMatrix3(m) {
+			let w = bg.Math.sqrt(1.0 + m._m[0] + m._m[4] + m._m[8]) / 2.0;
+			let w4 = 4.0 * w;
+			
+			this._v[0] = (m._m[7] - m._m[5]) / w;
+			this._v[1] = (m._m[2] - m._m[6]) / w4;
+			this._v[2] = (m._m[3] - m._m[1]) / w4;
+			this._v[3] = w;
+		}
+		
+		initWithMatrix4(m) {
+			let w = bg.Math.sqrt(1.0 + m._m[0] + m._m[5] + m._m[10]) / 2.0;
+			let w4 = 4.0 * w;
+			
+			this._v[0] = (m._m[9] - m._m[6]) / w;
+			this._v[1] = (m._m[2] - m._m[8]) / w4;
+			this._v[2] = (m._m[4] - m._m[1]) / w4;
+			this._v[3] = w;	
+		}
+		
+		getMatrix4() {
+			let m = bg.Matrix4.Identity();
+			let _v = this._v;
+			m.setRow(0, new bg.Vector4(1.0 - 2.0*_v[1]*_v[1] - 2.0*_v[2]*_v[2], 2.0*_v[0]*_v[1] - 2.0*_v[2]*_v[3], 2.0*_v[0]*_v[2] + 2.0*_v[1]*_v[3], 0.0));
+			m.setRow(1, new bg.Vector4(2.0*_v[0]*_v[1] + 2.0*_v[2]*_v[3], 1.0 - 2.0*_v[0]*_v[0] - 2.0*_v[2]*_v[2], 2.0*_v[1]*_v[2] - 2.0*_v[0]*_v[3], 0.0));
+			m.setRow(2, new bg.Vector4(2.0*_v[0]*_v[2] - 2.0*_v[1]*_v[3], 2.0*_v[1]*_v[2] + 2.0*_v[0]*_v[3], 1.0 - 2.0*_v[0]*_v[0] - 2.0*_v[1]*_v[1], 0.0));
+			return m;
+		}
+		
+		getMatrix3() {
+			let m = bg.Matrix3.Identity();
+			let _v = this._v;
+			
+			m.setRow(0, new bg.Vector3(1.0 - 2.0*_v[1]*_v[1] - 2.0*_v[2]*_v[2], 2.0*_v[0]*_v[1] - 2.0*_v[2]*_v[3], 2.0*_v[0]*_v[2] + 2.0*_v[1]*_v[3]));
+			m.setRow(1, new bg.Vector3(2.0*_v[0]*_v[1] + 2.0*_v[2]*_v[3], 1.0 - 2.0*_v[0]*_v[0] - 2.0*_v[2]*_v[2], 2.0*_v[1]*_v[2] - 2.0*_v[0]*_v[3]));
+			m.setRow(2, new bg.Vector3(2.0*_v[0]*_v[2] - 2.0*_v[1]*_v[3], 2.0*_v[1]*_v[2] + 2.0*_v[0]*_v[3], 1.0 - 2.0*_v[0]*_v[0] - 2.0*_v[1]*_v[1]));
+			return m;
+		}
+	}
+	
+	bg.Quaternion = Quaternion;
+
+})();
+
+bg.physics = {};
+(function() {
+	
+	bg.physics.IntersectionType = {
+		NONE:0,
+		POINT:1,
+		LLINE:2
+	};
+	
+	class Intersection {
+		
+		static RayToPlane(ray,plane) {
+			return new bg.physics.RayToPlaneIntersection(ray,plane);
+		}
+		
+		constructor() {
+			this._type = null;
+			this._p0 = null;
+			this._p1 = null;
+		}
+
+		get type() { return this._type; }
+		get point() { return this._p0; }
+		get endPoint() { return this._p1; }
+		
+		intersects() { return false; }
+	}
+	
+	bg.physics.Intersection = Intersection;
+
+	class RayToPlaneIntersection extends bg.physics.Intersection {
+		constructor(ray,plane) {
+			super();
+			this._ray = null;
+			this._p0 = null;
+			
+			this._type = bg.physics.IntersectionType.POINT;
+			let p0 = new bg.Vector3(plane.origin);
+			let n = new bg.Vector3(plane.normal);
+			let l0 = new bg.Vector3(ray.start);
+			let l = new bg.Vector3(ray.vector);
+			let num = p0.sub(l0).dot(n);
+			let den = l.dot(n);
+			
+			if (den==0) return;
+			let d = num/den;
+			if (d>ray.magnitude) return;
+			
+			this._ray = bg.physics.Ray.RayWithVector(ray.vector,ray.start,d);
+			this._p0 = this._ray.end;
+		}
+		
+		get ray() {
+			return this._ray;
+		}
+		
+		intersects() {
+			return (this._ray!=null && this._p0!=null);
+		}
+	}
+	
+	bg.physics.RayToPlaneIntersection = RayToPlaneIntersection;
+
+
+})();
+(function() {
+	
+	class Joint {
+		static Factory(linkData) {
+			switch (linkData.type) {
+			case 'LinkJoint':
+				return LinkJoint.Factory(linkData);
+				break;
+			}
+			return null;
+		}
+
+		constructor() {
+			this._transform = bg.Matrix4.Identity();
+		}
+		
+		get transform() { return this._transform; }
+		set transform(t) { this._transform = t; }
+		
+		applyTransform(matrix) {
+			
+		}
+		
+		calculateTransform() {
+			
+		}
+	}
+	
+	bg.physics.Joint = Joint;
+	
+	bg.physics.LinkTransformOrder = {
+		TRANSLATE_ROTATE:1,
+		ROTATE_TRANSLATE:0
+	}
+	
+	class LinkJoint extends Joint {
+		static Factory(data) {
+			let result = new LinkJoint();
+			result.offset = new bg.Vector3(
+				data.offset[0] || 0,
+				data.offset[1] || 0,
+				data.offset[2] || 0
+			);
+			result.yaw = data.yaw || 0;
+			result.pitch = data.pitch || 0;
+			result.roll = data.roll || 0;
+			result.order = data.order || 1;
+			return result;
+		}
+
+		constructor() {
+			super();
+			this._offset = new bg.Vector3();
+			this._eulerRotation = new bg.Vector3();
+			
+			this._transformOrder = bg.physics.LinkTransformOrder.TRANSLATE_ROTATE;
+		}
+		
+		applyTransform(matrix) {
+			matrix.mult(this.transform);
+		}
+		
+		assign(j) {
+			this.yaw = j.yaw;
+			this.pitch = j.pitch;
+			this.roll = j.roll;
+			this.offset.assign(j.offset);
+			this.transformOrder = j.transformOrder;
+		}
+		
+		get offset() { return this._offset; }
+		set offset(o) { this._offset = o; this.calculateTransform(); }
+		
+		get eulerRotation() { return this._eulerRotation; }
+		set eulerRotation(r) { this._eulerRotation = r; this.calculateTransform(); }
+		
+		get yaw() { return this._eulerRotation.x; }
+		get pitch() { return this._eulerRotation.y; }
+		get roll() { return this._eulerRotation.z; }
+		
+		set yaw(y) { this._eulerRotation.x = y; this.calculateTransform(); }
+		set pitch(p) { this._eulerRotation.y = p; this.calculateTransform(); }
+		set roll(r) { this._eulerRotation.z = r; this.calculateTransform(); }
+		
+		get transformOrder() { return this._transformOrder; }
+		set transformOrder(o) { this._transformOrder = o; this.calculateTransform(); }
+		
+		multTransform(dst) {
+			let offset = this.offset;
+			switch (this.transformOrder) {
+				case bg.physics.LinkTransformOrder.TRANSLATE_ROTATE:
+					dst.translate(offset.x,offset.y,offset.z);
+					this.multRotation(dst);
+					break;
+				case bg.physics.LinkTransformOrder.ROTATE_TRANSLATE:
+					this.multRotation(dst);
+					dst.translate(offset.x,offset.y,offset.z);
+					break;
+			}
+		}
+		
+		multRotation(dst) {
+			dst.rotate(this.eulerRotation.z, 0,0,1)
+			   .rotate(this.eulerRotation.y, 0,1,0)
+			   .rotate(this.eulerRotation.x, 1,0,0);
+		}
+		
+		calculateTransform() {
+			this.transform.identity();
+			this.multTransform(this.transform);
+		}
+
+		serialize(data) {
+			data.type = "LinkJoint";
+			data.offset = [
+				this.offset.x,
+				this.offset.y,
+				this.offset.z
+			];
+			data.yaw = this.yaw;
+			data.pitch = this.pitch;
+			data.roll = this.roll;
+			data.order = this.order;
+		}
+	}
+	
+	bg.physics.LinkJoint = LinkJoint;
+})();
+(function() {
+	
+	class Plane {
+		// a = normal: create a plane with origin=(0,0,0) and normal=a
+		// a = normal, b = origin: create a plane with origin=b and normal=a
+		// a = p1, b = p2, c = p3: create a plane that contains the points p1, p2 and p3
+		constructor(a, b, c) {
+			a = a instanceof bg.Vector3 && a;
+			b = b instanceof bg.Vector3 && b;
+			c = c instanceof bg.Vector3 && c;
+			if (a && !b) {
+				this._normal = new bg.Vector3(a);
+				this._origin = new bg.Vector3(0);
+			}
+			else if (a && b && !c) {
+				this._normal = new bg.Vector3(a);
+				this._origin = new bg.Vector3(b);
+			}
+			else if (a && b && c) {
+				var vec1 = new bg.Vector3(a); vec1.sub(b);
+				var vec2 = new bg.Vector3(c); vec2.sub(a);
+				this._origin = new bg.Vector3(p1);
+				this._normal = new bg.Vector3(vec1);
+				this._normal.cross(vec2).normalize();
+			}
+			else {
+				this._origin = new bg.Vector3(0);
+				this._normal = new bg.Vector3(0,1,0);
+			}
+		}
+
+		get normal() { return this._normal; }
+		set normal(n) { this._normal.assign(n); }
+
+		get origin() { return this._origin; }
+		set origin(o) { this._origin.assign(o); }
+
+		toString() {
+			return `P0: ${this._origin.toString()}, normal:${this._normal.toString()}`;
+		}
+
+		valid() { return !this._origin.isNan() && !this._normal.isNan(); }
+
+		assign(p) {
+			this._origin.assign(p._origin);
+			this._normal.assign(p._normal);
+			return this;
+		}
+		
+		equals(p) {
+			return this._origin.equals(p._origin) && this._normal.equals(p._normal);
+		}
+	}
+	
+	bg.physics.Plane = Plane;
+	
+})();
+(function() {
+
+	function calculateVector(ray) {
+		ray._vector = new bg.Vector3(ray._end);
+		ray._vector.sub(ray._start);
+		ray._magnitude = ray._vector.magnitude();
+		ray._vector.normalize();
+	}
+	
+	class Ray {
+		static RayWithPoints(start,end) {
+			return new Ray(start,end);
+		}
+		
+		static RayWithVector(vec,origin,maxDepth) {
+			let r = new Ray();
+			r.setWithVector(vec,origin,maxDepth);
+			return r;
+		}
+		
+		static RayWithScreenPoint(screenPoint,projMatrix,viewMatrix,viewport) {
+			let r = new Ray();
+			r.setWithScreenPoint(screenPoint,projMatrix,viewMatrix,viewport);
+			return r;
+		}
+		
+		
+		constructor(start,end) {
+			this._start = start || new bg.Vector3();
+			this._end = end || new bg.Vector3(1);
+			calculateVector(this);
+		}
+		
+		setWithPoints(start,end) {
+			this._start.assign(start);
+			this._end.assign(end);
+			calculateVector();
+			return this;
+		}
+		
+		setWithVector(vec,origin,maxDepth) {
+			this._start.assign(origin);
+			this._end.assign(origin);
+			let vector = new bg.Vector3(vec);
+			vector.normalize().scale(maxDepth);
+			this._end.add(vector);
+			calculateVector(this);
+			return this;
+		}
+		
+		setWithScreenPoint(screenPoint,projMatrix,viewMatrix,viewport) {
+			let start = bg.Matrix4.Unproject(screenPoint.x, screenPoint.y, 0, viewMatrix, projMatrix, viewport);
+			let end = bg.Matrix4.Unproject(screenPoint.x, screenPoint.y, 1, viewMatrix, projMatrix, viewport);
+			this._start = start.xyz;
+			this._end = end.xyz;
+			calculateVector(this);
+			return this;
+		}
+		
+		assign(r) {
+			this._start.assign(r.start);
+			this._end.assign(r.end);
+			this._vector.assign(r.vector);
+			this._magnitude.assign(r.magnitude);
+		}
+		
+		get start() { return this._start; }
+		set start(s) { this._start.assign(s); calculateVector(this); }
+		
+		get end() { return this._end; }
+		set end(e) { this._end.assign(e); }
+		
+		get vector() { return this._vector; }
+		
+		get magnitude() { return this._magnitude; }
+		
+		toString() {
+			return `start: ${this.start.toString()}, end: ${this.end.toString()}`;
+		}
+	}
+	
+	bg.physics.Ray = Ray;
+	
+})()
+
+bg.scene = {};
+
+(function() {
+	
+	let s_componentRegister = {};
+	
+	class Component extends bg.LifeCycle {
+		static Factory(context,componentData,node,url) {
+			let Constructor = s_componentRegister[componentData.type];
+			if (Constructor) {
+				let instance = new Constructor();
+				node.addComponent(instance);
+				return instance.deserialize(context,componentData,url);
+			}
+			else {
+				return Promise.resolve();
+			}
+			
+		}
+		
+		constructor() {
+			super();
+			
+			this._node = null;
+
+			this._drawGizmo = true;
+		}
+		
+		clone() {
+			bg.log(`WARNING: Component with typeid ${this.typeId} does not implmement the clone() method.`);
+			return null;
+		}
+
+		destroy() {
+			
+		}
+		
+		get node() { return this._node; }
+		
+		get typeId() { return this._typeId; }
+
+		get draw3DGizmo() { return this._drawGizmo; }
+		set draw3DGizmo(d) { this._drawGizmo = d; }
+		
+		removedFromNode(node) {}
+		addedToNode(node) {}
+		
+		// Override this to prevent serialize this component
+		get shouldSerialize() { return true; }
+		
+		deserialize(context,sceneData,url) {
+			return Promise.resolve(this);
+		}
+
+		// componentData: the current json object corresponding to the parent node
+		// promises: array of promises. If the component needs to execute asynchronous
+		//			 actions, it can push one or more promises into this array
+		// url: the destination scene url, composed by:
+		//	{
+		//		path: "scene path, using / as separator even on Windows",
+		//		fileName: "scene file name" 
+		//	}
+		serialize(componentData,promises,url) {
+			componentData.type = this.typeId.split(".").pop();
+		}
+		
+		// The following functions are implemented in the SceneComponent class, in the C++ API
+		component(typeId) { return this._node && this._node.component(typeId); }
+		
+		get camera() { return this.component("bg.scene.Camera"); }
+		get chain() { return this.component("bg.scene.Chain"); }
+		get drawable() { return this.component("bg.scene.Drawable"); }
+		get inputChainJoint() { return this.component("bg.scene.InputChainJoint"); }
+		get outputChainJoint() { return this.component("bg.scene.OutputChainJoint"); }
+		get light() { return this.component("bg.scene.Light"); }
+		get transform() { return this.component("bg.scene.Transform"); }
+	}
+	
+	bg.scene.Component = Component;
+	
+	bg.scene.registerComponent = function(namespace,componentClass,identifier) {
+		let result = /function (.+)\(/.exec(componentClass.toString());
+		if (!result) {
+			result = /class ([a-zA-Z0-9_]+) /.exec(componentClass.toString());
+		}
+		let funcName = (result && result.length>1) ? result[1] : "";
+		
+		namespace[funcName] = componentClass;
+		componentClass.prototype._typeId = identifier || funcName;
+		
+		
+		s_componentRegister[funcName] = componentClass;
+	}
+	
+})();
+(function() {
+	class SceneObjectLifeCycle extends bg.LifeCycle {
+		// This class reimplements the bg.app.ContextObject due to the lack
+		// in JavaScript of multiple ihneritance
+		
+		constructor(context) {
+			super(context);
+			
+			this._context = context;
+		}
+		
+		get context() { return this._context; }
+		set context(c) { this._context = c; }
+	}
+	
+	function updateComponentsArray() {
+		this._componentsArray = [];
+		for (let key in this._components) {
+			this._components[key] && this._componentsArray.push(this._components[key]);
+		}
+	}
+
+	class SceneObject extends SceneObjectLifeCycle {
+		
+		constructor(context,name="") {
+			super(context);
+			
+			this._name = name;
+			this._enabled = true;
+			this._steady = false;
+			
+			this._components = {};
+			this._componentsArray = [];
+		}
+
+		toString() {
+			return " scene object: " + this._name;
+		}
+		
+		// Create a new instance of this node, with a copy of all it's components
+		cloneComponents() {
+			let newNode = new bg.scene.Node(this.context,this.name ? `copy of ${this.name}`:"");
+			newNode.enabled = this.enabled;
+			this.forEachComponent((comp) => {
+				newNode.addComponent(comp.clone());
+			});
+			return newNode;
+		}
+		
+		get name() { return this._name; }
+		set name(n) { this._name = n; }
+		
+		get enabled() { return this._enabled; }
+		set enabled(e) { this._enabled = e; }
+
+		get steady() { return this._steady; }
+		set steady(s) { this._steady = s; }
+		
+		addComponent(c) {
+			if (c._node) {
+				c._node.removeComponent(c);
+			}
+			c._node = this;
+			this._components[c.typeId] = c;
+			c.addedToNode(this);
+			updateComponentsArray.apply(this);
+		}
+		
+		// It's possible to remove a component by typeId or by the specific object.
+		//	- typeId: if the scene object contains a component of this type, will be removed
+		// 	- specific object: if the scene object contains the specified object, will be removed
+		removeComponent(findComponent) {
+			let typeId = "";
+			let comp = null;
+			if (typeof(findComponent)=="string") {
+				typeId = findComponent
+				comp = this.component(findComponent);
+			}
+			else if (findComponent instanceof bg.scene.Component) {
+				comp = findComponent;
+				typeId = findComponent.typeId;
+			}
+			
+			let status = false;
+			if (this._components[typeId]==comp && comp!=null) {
+				delete this._components[typeId];
+				comp.removedFromNode(this);
+				status = true;
+			}
+
+			updateComponentsArray.apply(this);
+			return status;
+		}
+		
+		component(typeId) {
+			return this._components[typeId];
+		}
+		
+		// Most common components
+		get camera() { return this.component("bg.scene.Camera"); }
+		get chain() { return this.component("bg.scene.Chain"); }
+		get drawable() { return this.component("bg.scene.Drawable"); }
+		get inputJoint() { return this.component("bg.scene.InputJoint"); }
+		get outputJoint() { return this.component("bg.scene.OutputJoint"); }
+		get light() { return this.component("bg.scene.Light"); }
+		get transform() { return this.component("bg.scene.Transform"); }
+		
+		forEachComponent(callback) {
+			this._componentsArray.forEach(callback);
+		}
+		
+		someComponent(callback) {
+			return this._componentsArray.some(callback);
+		}
+		
+		everyComponent(callback) {
+			return this._componentsArray.every(callback);
+		}
+		
+		destroy() {
+			this.forEachComponent((comp) => {
+				comp.removedFromNode(this);
+			});
+			
+			this._components = {};
+			this._componentsArray = [];
+		}
+		
+		init() {
+			this._componentsArray.forEach((comp) => {
+				comp.init();
+			});
+		}
+		
+		frame(delta) {
+			this._componentsArray.forEach((comp) => {
+				if (!comp._initialized_) {
+					comp.init();
+					comp._initialized_ = true;
+				}
+				comp.frame(delta);
+			});
+		}
+		
+		displayGizmo(pipeline,matrixState) {
+			this._componentsArray.forEach((comp) => {
+				if (comp.draw3DGizmo) comp.displayGizmo(pipeline,matrixState);
+			});
+		}
+
+		/////// Direct rendering methods: will be deprecated soon
+		willDisplay(pipeline,matrixState) {
+			this._componentsArray.forEach((comp) => {
+				comp.willDisplay(pipeline,matrixState);
+			});
+		}
+		
+		display(pipeline,matrixState,forceDraw=false) {
+			this._componentsArray.forEach((comp) => {
+				comp.display(pipeline,matrixState,forceDraw);
+			});
+		}
+
+		
+		didDisplay(pipeline,matrixState) {
+			this._componentsArray.forEach((comp) => {
+				comp.didDisplay(pipeline,matrixState);
+			});
+		}
+		//////// End direct rendering methods
+
+
+		////// Render queue methods
+		willUpdate(modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+			this._componentsArray.forEach((comp) => {
+				comp.willUpdate(modelMatrixStack,viewMatrixStack,projectionMatrixStack);
+			});
+		}
+
+		draw(renderQueue,modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+			this._componentsArray.forEach((comp) => {
+				comp.draw(renderQueue,modelMatrixStack,viewMatrixStack,projectionMatrixStack);
+			});
+		}
+
+		didUpdate(modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+			this._componentsArray.forEach((comp) => {
+				comp.didUpdate(modelMatrixStack,viewMatrixStack,projectionMatrixStack);
+			});
+		}
+		////// End render queue methods
+
+		
+		reshape(pipeline,matrixState,width,height) {
+			this._componentsArray.forEach((comp) => {
+				comp.reshape(width,height);
+			});
+		}
+		
+		keyDown(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.keyDown(evt);
+			});
+		}
+		
+		keyUp(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.keyUp(evt);
+			});
+		}
+		
+		mouseUp(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.mouseUp(evt);
+			});
+		}
+		
+		mouseDown(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.mouseDown(evt);
+			});
+		}
+		
+		mouseMove(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.mouseMove(evt);
+			});
+		}
+		
+		mouseOut(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.mouseOut(evt);
+			});
+		}
+		
+		mouseDrag(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.mouseDrag(evt);
+			});
+		}
+		
+		mouseWheel(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.mouseWheel(evt);
+			});
+		}
+		
+		touchStart(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.touchStart(evt);
+			});
+		}
+		
+		touchMove(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.touchMove(evt);
+			});
+		}
+		
+		touchEnd(evt) {
+			this._componentsArray.forEach((comp) => {
+				comp.touchEnd(evt);
+			});
+		}
+	}
+	
+	bg.scene.SceneObject = SceneObject;
+	
+})();
+(function() {
+	
+	function isNodeAncient(node, ancient) {
+		if (!node || !ancient) {
+			return false;
+		}
+		else if (node._parent==ancient) {
+			return true;
+		}
+		else {
+			return isNodeAncient(node._parent, ancient);
+		}
+	}
+
+	function cleanupNode(sceneNode) {
+        let components = [];
+        let children = [];
+        sceneNode.forEachComponent((c) => components.push(c));
+        sceneNode.children.forEach((child) => children.push(child));
+        components.forEach((c) => sceneNode.removeComponent(c));
+        children.forEach((child) => {
+            sceneNode.removeChild(child);
+            cleanupNode(child);
+        });
+    }
+	
+	class Node extends bg.scene.SceneObject {
+		// IMPORTANT: call this function to clean all the resources of
+		// a node if you don't want to use it anymore.
+		static CleanupNode(node) {
+			cleanupNode(node);
+		}
+
+		constructor(context,name="") {
+			super(context,name);
+			
+			this._children = [];
+			this._parent = null;
+		}
+
+		toString() {
+			return super.toString() + " (" + this._children.length + " children and " + Object.keys(this._components).length + " components)";
+		}
+		
+		addChild(child) {
+			if (child && !this.isAncientOf(child) && child!=this) {
+				if (child.parent) {
+					child.parent.removeChild(child);
+				}
+				this._children.push(child);
+				child._parent = this;
+			}
+		}
+		
+		removeChild(node) {
+			let index = this._children.indexOf(node);
+			if (index>=0) {
+				this._children.splice(index,1);
+			}
+		}
+		
+		get children() { return this._children; }
+		
+		get parent() { return this._parent; }
+		
+		get sceneRoot() {
+			if (this._parent) {
+				return this._parent.sceneRoot();
+			}
+			return this;
+		}
+		
+		haveChild(node) {
+			return this._children.indexOf(node)!=-1;
+		}
+		
+		isAncientOf(node) {
+			isNodeAncient(this,node);
+		}
+		
+		accept(nodeVisitor) {
+			if (!nodeVisitor.ignoreDisabled || this.enabled) {
+				nodeVisitor.visit(this);
+				this._children.forEach((child) => {
+					child.accept(nodeVisitor);
+				});
+				nodeVisitor.didVisit(this);
+			}
+		}
+		
+		acceptReverse(nodeVisitor) {
+			if (!nodeVisitor.ignoreDisabled || this.enabled) {
+				if (this._parent) {
+					this._parent.acceptReverse(nodeVisitor);
+				}
+				nodeVisitor.visit(this);
+			}
+		}
+		
+		destroy() {
+			super.destroy();
+			this._children.forEach((child) => {
+				child.destroy();
+			});
+			this._children = [];
+		}
+		
+	}
+	
+	bg.scene.Node = Node;
+	
+	class NodeVisitor {
+		constructor() {
+			this._ignoreDisabled = true;
+		}
+
+		get ignoreDisabled() { return this._ignoreDisabled; }
+
+		set ignoreDisabled(v) { this._ignoreDisabled = v; }
+
+		visit(node) {}
+		didVisit(node) {}
+	}
+	
+	bg.scene.NodeVisitor = NodeVisitor;
+})();
+(function() {
+	
+	class ProjectionStrategy extends bg.MatrixStrategy {
+		static Factory(jsonData) {
+			let result = null;
+			if (jsonData) {
+				if (jsonData.type=="PerspectiveProjectionMethod") {
+					result = new PerspectiveProjectionStrategy();
+				}
+				else if (jsonData.type=="OpticalProjectionMethod") {
+					result = new OpticalProjectionStrategy();
+				}
+				else if (jsonData.type=="OrthographicProjectionStrategy") {
+					result = new OrthographicProjectionStrategy();
+				}
+
+				if (result) {
+					result.deserialize(jsonData);
+				}
+			}
+			return result;
+		}
+
+		constructor(target) {
+			super(target);
+
+			this._near = 0.1;
+			this._far = 100.0;
+			this._viewport = new bg.Viewport(0,0,512,512);
+		}
+
+		clone() { console.log("WARNING: ProjectionStrategy::clone() method not implemented by child class."); }
+
+		get near() { return this._near; }
+		set near(n) { this._near = n; }
+		get far() { return this._far; }
+		set far(f) { this._far = f; }
+		get viewport() { return this._viewport; }
+		set viewport(vp) { this._viewport = vp; }
+
+		get fov() { return 0; }
+
+		serialize(jsonData) {
+			jsonData.near = this.near;
+			jsonData.far = this.far;
+		}
+	}
+
+	bg.scene.ProjectionStrategy = ProjectionStrategy;
+
+	class PerspectiveProjectionStrategy extends ProjectionStrategy {
+		constructor(target) {
+			super(target);
+			this._fov = 60;
+		}
+
+		clone() {
+			let result = new PerspectiveProjectionStrategy();
+			result.near = this.near;
+			result.far = this.far;
+			result.viewport = this.viewport;
+			result.fov = this.fov;
+			return result;
+		}
+
+		get fov() { return this._fov; }
+		set fov(f) { this._fov = f; }
+
+		apply() {
+			if (this.target) {
+				this.target.perspective(this.fov, this.viewport.aspectRatio, this.near, this.far);
+			}
+		}
+
+		deserialize(jsonData) {
+			this.near = jsonData.near;
+			this.far = jsonData.far;
+			this.fov = jsonData.fov;
+		}
+
+		serialize(jsonData) {
+			jsonData.type = "PerspectiveProjectionMethod";
+			jsonData.fov = this.fov;
+			super.serialize(jsonData);
+		}
+	}
+
+	bg.scene.PerspectiveProjectionStrategy = PerspectiveProjectionStrategy;
+
+	class OpticalProjectionStrategy extends ProjectionStrategy {
+		constructor(target) {
+			super(target);
+			this._focalLength = 50;
+			this._frameSize = 35;
+		}
+
+		clone() {
+			let result = new OpticalProjectionStrategy();
+			result.near = this.near;
+			result.far = this.far;
+			result.viewport = this.viewport;
+			result.focalLength = this.focalLength;
+			result.frameSize = this.frameSize;
+			return result;
+		}
+
+		get focalLength() { return this._focalLength; }
+		set focalLength(fl) { this._focalLength = fl; }
+		get frameSize() { return this._frameSize; }
+		set frameSize(s) { this._frameSize = s; }
+
+		get fov() {
+			return 2 * bg.Math.atan(this.frameSize / (this.focalLength / 2));
+		}
+
+		apply() {
+			if (this.target) {
+				let fov = this.fov;
+				fov = bg.Math.radiansToDegrees(fov);
+				this.target.perspective(fov, this.viewport.aspectRatio, this.near, this.far);
+			}
+		}
+
+		deserialize(jsonData) {
+			this.frameSize = jsonData.frameSize;
+			this.focalLength = jsonData.focalLength;
+			this.near = jsonData.near;
+			this.far = jsonData.far;
+		}
+
+		serialize(jsonData) {
+			jsonData.type = "OpticalProjectionMethod";
+			jsonData.frameSize = this.frameSize;
+			jsonData.focalLength = this.focalLength;
+			super.serialize(jsonData);
+		}
+	}
+
+	bg.scene.OpticalProjectionStrategy = OpticalProjectionStrategy;
+
+	class OrthographicProjectionStrategy extends ProjectionStrategy {
+		constructor(target) {
+			super(target);
+			this._viewWidth = 100;
+		}
+
+		clone() {
+			let result = new OrthographicProjectionStrategy();
+			result.near = this.near;
+			result.far = this.far;
+			result.viewWidth = this.viewWidth;
+			return result;
+		}
+
+		get viewWidth() { return this._viewWidth; }
+		set viewWidth(w) { this._viewWidth = w; }
+
+		apply() {
+			if (this.target) {
+				let ratio = this.viewport.aspectRatio;
+				let height = this.viewWidth / ratio;
+				let x = this.viewWidth / 2;
+				let y = height / 2;
+				this.target.ortho(-x, x, -y, y, -this._far, this._far);
+			}
+		}
+
+		deserialize(jsonData) {
+			this.viewWidth = jsonData.viewWidth;
+			this.near = jsonData.near;
+			this.far = jsonData.far;
+		}
+
+		serialize(jsonData) {
+			jsonData.type = "OrthographicProjectionStrategy";
+			jsonData.viewWidth = this.viewWidth;
+			jsonData.near = this.near;
+			jsonData.far = this.far;
+			super.serialize(jsonData);
+		}
+	}
+
+	bg.scene.OrthographicProjectionStrategy = OrthographicProjectionStrategy;
+
+	function buildPlist(context,vertex,color) {
+		let plist = new bg.base.PolyList(context);
+		let normal = [];
+		let texCoord0 = [];
+		let index = [];
+		let currentIndex = 0;
+		for (let i=0; i<vertex.length; i+=3) {
+			normal.push(0); normal.push(0); normal.push(1);
+			texCoord0.push(0); texCoord0.push(0);
+			index.push(currentIndex++);
+		}
+		plist.vertex = vertex;
+		plist.normal = normal;
+		plist.texCoord0 = texCoord0;
+		plist.color = color;
+		plist.index = index;
+		plist.drawMode = bg.base.DrawMode.LINES;
+		plist.build();
+		return plist;
+	}
+
+	function getGizmo() {
+		if (!this._gizmo) {
+			let alpha = this.projectionStrategy ? this.projectionStrategy.fov : bg.Math.PI_4;
+			alpha *= 0.5;
+			let d = this.focus;
+			let aspectRatio = bg.app.MainLoop.singleton.canvas.width / bg.app.MainLoop.singleton.canvas.height;
+			let sx = bg.Math.sin(alpha) * d;
+			let sy = (bg.Math.sin(alpha) * d) / aspectRatio;
+			let vertex = [
+				0, 0, 0, sx, sy, -d, 0, 0, 0, -sx, sy, -d, 0, 0, 0, sx,-sy, -d, 0, 0, 0, -sx,-sy, -d,
+
+				sx,sy,-d, -sx,sy,-d, -sx,sy,-d, -sx,-sy,-d, -sx,-sy,-d, sx,-sy,-d, sx,-sy,-d, sx,sy,-d
+			];
+			let color = [
+				1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1,
+				1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1
+			];
+			this._gizmo = buildPlist(this.node.context,vertex,color);
+		}
+		return this._gizmo;
+	}
+
+	function clearMain(node) {
+		if (node.camera) {
+			node.camera.isMain = false;
+		}
+		node.children.forEach((child) => clearMain(child));
+	}
+
+	class Camera extends bg.scene.Component {
+
+		static SetAsMainCamera(mainCamera,sceneRoot) {
+			clearMain(sceneRoot);
+			if (mainCamera instanceof Camera) {
+				mainCamera.isMain = true;
+			}
+			else if (mainCamera instanceof bg.scene.Node && mainCamera.camera) {
+				mainCamera.camera.isMain = true;
+			}
+			else {
+				throw new Error("Error setting main camera: invalid camera node.");
+			}
+		}
+
+		constructor() {
+			super();
+			
+			this._projection = bg.Matrix4.Perspective(60,1,0.1,100.0);
+			this._viewport = new bg.Viewport(0,0,512,512);
+			
+			this._visitor = new bg.scene.TransformVisitor();
+			this._rebuildTransform = true;
+
+			this._position = new bg.Vector3(0);
+			this._rebuildPosition = true;
+			
+			this._clearBuffers = bg.base.ClearBuffers.COLOR_DEPTH;
+			
+			this._focus = 5;	// default 5 meters
+
+			this._projectionStrategy = null;
+
+			this._isMain = false;
+		}
+		
+		clone() {
+			let newCamera = new bg.scene.Camera();
+			newCamera._projection = new bg.Matrix4(this._projection);
+			newCamera._viewport = new bg.Matrix4(this._viewport);
+			newCamera._projectionStrategy = this._projectionStrategy ? this._projectionStrategy.clone() : null;
+			return newCamera;
+		}
+		
+		get projection() { return this._projection; }
+		set projection(p) {
+			if (!this._projectionStrategy) {
+				this._projection = p;
+			}
+		}
+		
+		get viewport() { return this._viewport; }
+		set viewport(v) {
+			this._viewport = v;
+			if (this._projectionStrategy) {
+				this._projectionStrategy.viewport = v;
+				this._projectionStrategy.apply();
+			}
+		}
+		
+		get focus() { return this._focus; }
+		set focus(f) { this._focus = f; this.recalculateGizmo() }
+
+		get isMain() { return this._isMain; }
+		set isMain(m) {
+			this._isMain = m;
+		}
+
+		get projectionStrategy() { return this._projectionStrategy; }
+		set projectionStrategy(ps) {
+			this._projectionStrategy = ps;
+			if (this._projectionStrategy) {
+				this._projectionStrategy.target = this._projection;
+			}
+			this.recalculateGizmo()
+		}
+		
+		get clearBuffers() { return this._clearBuffers; }
+		set clearBuffers(c) { this._clearBuffers = c; }
+		
+		get modelMatrix() {
+			if (this._rebuildTransform && this.node) {
+				this._visitor.matrix.identity();
+				this.node.acceptReverse(this._visitor);
+				this._rebuildTransform = false;
+			}
+			return this._visitor.matrix;
+		}
+		
+		get viewMatrix() {
+			if (!this._viewMatrix || this._rebuildTransform) {
+				this._viewMatrix = new bg.Matrix4(this.modelMatrix);
+				this._viewMatrix.invert();
+			}
+			return this._viewMatrix;
+		}
+
+		get worldPosition() {
+			if (this._rebuildPosition) {
+				this._position = this.modelMatrix.multVector(new bg.Vector3(0)).xyz
+				this._rebuildPosition = false;
+				this._rebuildTransform = true;
+			}
+			return this._position;
+		}
+
+		recalculateGizmo() {
+			if (this._gizmo) {
+				this._gizmo.destroy();
+				this._gizmo = null;
+			}
+		}
+		
+		frame(delta) {
+			this._rebuildPosition = true;
+			this._rebuildTransform = true;
+		}
+
+		displayGizmo(pipeline,matrixState) {
+			if (this.isMain) return; // Do not render the main camera plist
+			let plist = getGizmo.apply(this);
+			if (plist) {
+				pipeline.draw(plist);
+			}
+		}
+
+		serialize(componentData,promises,url) {
+			super.serialize(componentData,promises,url);
+			componentData.isMain = this.isMain;
+			if (this.projectionStrategy) {
+				let projMethod = {};
+				componentData.projectionMethod = projMethod;
+				this.projectionStrategy.serialize(projMethod);
+			}
+		}
+
+		deserialize(context,sceneData,url) {
+			sceneData.isMain = sceneData.isMain || false;
+			this.projectionStrategy = ProjectionStrategy.Factory(sceneData.projectionMethod || {});
+		}
+	}
+	
+	bg.scene.registerComponent(bg.scene,Camera,"bg.scene.Camera");
+})();
+(function() {
+
+	let GizmoType = {
+		IN_JOINT: 0,
+		OUT_JOINT: 1
+	}
+
+
+	function buildPlist(context,vertex,color) {
+		let plist = new bg.base.PolyList(context);
+		let normal = [];
+		let texCoord0 = [];
+		let index = [];
+		let currentIndex = 0;
+		for (let i=0; i<vertex.length; i+=3) {
+			normal.push(0); normal.push(0); normal.push(1);
+			texCoord0.push(0); texCoord0.push(0);
+			index.push(currentIndex++);
+		}
+		plist.vertex = vertex;
+		plist.normal = normal;
+		plist.texCoord0 = texCoord0;
+		plist.color = color;
+		plist.index = index;
+		plist.drawMode = bg.base.DrawMode.LINES;
+		plist.build();
+		return plist;
+	}
+
+	
+	function getGizmo(type) {
+		if (!this._gizmo) {
+			let s = 0.5;
+			let vertex = [
+				s, 0, 0,   -s, 0, 0,
+				0, s, 0,   0, -s, 0,
+				0, 0, s,   0, 0, -s
+			];
+			let color = [
+				1,0,0,1, 1,0,0,1, 0,1,0,1, 0,1,0,1, 0,0,1,1, 0,0,1,1
+			];
+			this._gizmo = buildPlist(this.node.context,vertex,color);
+		}
+		return this._gizmo;
+	}
+	
+	function updateJointTransforms() {
+		if (this.node) {
+			let matrix = bg.Matrix4.Identity();
+			this.node.children.forEach((child, index) => {
+				let trx = child.component("bg.scene.Transform");
+				let inJoint = child.component("bg.scene.InputChainJoint");
+				let outJoint = child.component("bg.scene.OutputChainJoint");
+				
+				if (index>0 && inJoint) {
+					inJoint.joint.applyTransform(matrix);
+				}
+				else {
+					matrix.identity();
+				}
+				
+				if (trx) {
+					trx.matrix.assign(matrix);
+				}
+				
+				if (outJoint) {
+					outJoint.joint.applyTransform(matrix);
+				}
+			});
+		}
+	}
+
+	class Chain extends bg.scene.Component {
+		constructor() {
+			super();
+		}
+		
+		clone() {
+			return new bg.scene.Chain();
+		}
+
+
+		////// Direct rendering functions: will be deprecated soon
+		willDisplay(pipeline,matrixState,projectionMatrixStack) {
+			updateJointTransforms.apply(this);
+		}
+
+		////// Render queue functions
+		willUpdate(modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+			updateJointTransforms.apply(this);
+		}
+	}
+	
+	bg.scene.registerComponent(bg.scene,Chain,"bg.scene.Chain");
+	
+	class ChainJoint extends bg.scene.Component {
+		constructor() {
+			super();
+			
+			this._joint = new bg.physics.LinkJoint();
+		}
+		
+		get joint() { return this._joint; }
+		set joint(j) { this._joint = j; }
+
+		deserialize(context,sceneData,url) {
+			if (sceneData.joint) {
+				this.joint = bg.physics.Joint.Factory(sceneData.joint);
+			}
+		}
+	}
+	
+	bg.scene.ChainJoint = ChainJoint;
+	
+	class InputChainJoint extends ChainJoint {
+		constructor(joint) {
+			super();
+			if (joint) {
+				this.joint = joint;
+			}
+			else {
+				this.joint.transformOrder = bg.physics.LinkTransformOrder.ROTATE_TRANSLATE;
+			}
+		}
+		
+		clone() {
+			let newJoint = new bg.scene.InputChainJoint();
+			newJoint.joint.assign(this.joint);
+			return newJoint;
+		}
+
+		displayGizmo(pipeline,matrixState) {
+			let plist = getGizmo.apply(this,[0]);
+			if (plist) {
+				matrixState.modelMatrixStack.push();
+				let mat = new bg.Matrix4(this.joint.transform);
+				mat.invert();
+				matrixState.modelMatrixStack.mult(mat);
+				pipeline.draw(plist);
+				matrixState.modelMatrixStack.pop();
+			}
+		}
+
+		serialize(componentData,promises,url) {
+			super.serialize(componentData,promises,url);
+			componentData.joint = {};
+			this.joint.serialize(componentData.joint);
+		}
+	}
+	
+	bg.scene.registerComponent(bg.scene,InputChainJoint,"bg.scene.InputChainJoint");
+	
+	
+	class OutputChainJoint extends ChainJoint {
+		constructor(joint) {
+			super();
+			if (joint) {
+				this.joint = joint;
+			}
+			else {
+				this.joint.transformOrder = bg.physics.LinkTransformOrder.TRANSLATE_ROTATE;
+			}
+		}
+		
+		clone() {
+			let newJoint = new bg.scene.OutputChainJoint();
+			newJoint.joint.assign(this.joint);
+			return newJoint;
+		}
+
+		displayGizmo(pipeline,matrixState) {
+			let plist = getGizmo.apply(this,[1]);
+			if (plist) {
+				matrixState.modelMatrixStack.push();
+				let mat = new bg.Matrix4(this.joint.transform);
+				matrixState.modelMatrixStack.mult(mat);
+				pipeline.draw(plist);
+				matrixState.modelMatrixStack.pop();
+			}
+		}
+
+		serialize(componentData,promises,url) {
+			super.serialize(componentData,promises,url);
+			componentData.joint = {};
+			this.joint.serialize(componentData.joint);
+		}
+	}
+	
+	bg.scene.registerComponent(bg.scene,OutputChainJoint,"bg.scene.OutputChainJoint");
+	
+})();
+(function() {
+    bg.scene.CubemapImage = {
+        POSITIVE_X: 0,
+        NEGATIVE_X: 1,
+        POSITIVE_Y: 2,
+        NEGATIVE_Y: 3,
+        POSITIVE_Z: 4,
+        NEGATIVE_Z: 5,
+    };
+
+    let g_currentCubemap = null;
+
+    function copyCubemapImage(componentData,cubemapImage,dstPath) {
+        let path = require("path");
+        let src = bg.base.Writer.StandarizePath(this.getImageUrl(cubemapImage));
+        let file = src.split('/').pop();
+        let dst = bg.base.Writer.StandarizePath(path.join(dstPath,file));
+        switch (cubemapImage) {
+        case bg.scene.CubemapImage.POSITIVE_X:
+            componentData.positiveX = file;
+            break;
+        case bg.scene.CubemapImage.NEGATIVE_X:
+            componentData.negativeX = file;
+            break;
+        case bg.scene.CubemapImage.POSITIVE_Y:
+            componentData.positiveY = file;
+            break;
+        case bg.scene.CubemapImage.NEGATIVE_Y:
+            componentData.negativeY = file;
+            break;
+        case bg.scene.CubemapImage.POSITIVE_Z:
+            componentData.positiveZ = file;
+            break;
+        case bg.scene.CubemapImage.NEGATIVE_Z:
+            componentData.negativeZ = file;
+            break;
+        }
+        return bg.base.Writer.CopyFile(src,dst);
+    }
+
+    class Cubemap extends bg.scene.Component {
+        static Current(context) {
+            if (!g_currentCubemap) {
+                g_currentCubemap = bg.base.TextureCache.WhiteCubemap(context);
+            }
+            return g_currentCubemap;
+        }
+
+        constructor() {
+            super();
+            this._images = [null, null, null, null, null, null];
+            this._texture = null;
+        }
+
+        setImageUrl(imgCode,texture) {
+            this._images[imgCode] = texture;
+        }
+
+        getImageUrl(imgCode) {
+            return this._images[imgCode];
+        }
+
+        get texture() {
+            return this._texture;
+        }
+
+        loadCubemap(context) {
+            context = context || this.node && this.node.context;
+            return new Promise((resolve,reject) => {
+                bg.utils.Resource.LoadMultiple(this._images)
+                    .then((result) => {
+                        this._texture = new bg.base.Texture(context);
+                        this._texture.target = bg.base.TextureTarget.CUBE_MAP;
+                        this._texture.create();
+                        this._texture.bind();
+
+                        this._texture.setCubemap(
+                            result[this.getImageUrl(bg.scene.CubemapImage.POSITIVE_X)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.NEGATIVE_X)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.POSITIVE_Y)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.NEGATIVE_Y)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.POSITIVE_Z)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.NEGATIVE_Z)]
+                        );
+
+                        g_currentCubemap = this._texture;
+                        bg.emitImageLoadEvent(result[this.getImageUrl(bg.scene.CubemapImage.POSITIVE_X)]);
+                        resolve(this);
+                    })
+
+                    .catch((err) => {
+                        reject(err);
+                    });
+            });
+        }
+
+        clone() {
+            let cubemap = new Cubemap();
+            for (let code in this._images) {
+                cubemap._images[code] = this._images[code];
+            };
+            cubemap._texture = this._texture;
+            return cubemap;
+        }
+
+        deserialize(context,sceneData,url) {
+            this.setImageUrl(
+                bg.scene.CubemapImage.POSITIVE_X,
+                bg.utils.Resource.JoinUrl(url,sceneData["positiveX"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.NEGATIVE_X,
+                bg.utils.Resource.JoinUrl(url,sceneData["negativeX"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.POSITIVE_Y,
+                bg.utils.Resource.JoinUrl(url,sceneData["positiveY"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.NEGATIVE_Y,
+                bg.utils.Resource.JoinUrl(url,sceneData["negativeY"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.POSITIVE_Z,
+                bg.utils.Resource.JoinUrl(url,sceneData["positiveZ"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.NEGATIVE_Z,
+                bg.utils.Resource.JoinUrl(url,sceneData["negativeZ"])
+            );
+            return this.loadCubemap(context);
+        }
+        
+        serialize(componentData,promises,url) {
+            super.serialize(componentData,promises,url);
+            if (!bg.isElectronApp) return;
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.POSITIVE_X,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.NEGATIVE_X,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.POSITIVE_Y,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.NEGATIVE_Y,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.POSITIVE_Z,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.NEGATIVE_Z,url.path]));
+		}
+    }
+
+    bg.scene.registerComponent(bg.scene,Cubemap,"bg.scene.Cubemap");
+})();
+(function() {
+
+	function escapePathCharacters(name) {
+		if (!name) {
+			return bg.utils.generateUUID();
+		}
+		else {
+			var illegalRe = /[\/\?<>\\:\*\|":\[\]\(\)\{\}]/g;
+			var controlRe = /[\x00-\x1f\x80-\x9f]/g;
+			var reservedRe = /^\.+$/;
+			var windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;
+			var windowsTrailingRe = /[\. ]+$/;
+
+			function sanitize(input, replacement) {
+				var sanitized = input
+					.replace(illegalRe, replacement)
+					.replace(controlRe, replacement)
+					.replace(reservedRe, replacement)
+					.replace(windowsReservedRe, replacement)
+					.replace(windowsTrailingRe, replacement);
+				return sanitized;
+			}
+
+			return sanitize(name,'-');
+		}
+	}
+	class Drawable extends bg.scene.Component {
+				
+		// It creates a copy of the node with all its components, except the drawable
+		// component, that will be an instance (share the same polyList instances)
+		static InstanceNode(node) {
+			let newNode = new bg.scene.Node(node.context,node.name ? `copy of ${node.name}`:"");
+			newNode.enabled = node.enabled;
+			node.forEachComponent((comp) => {
+				let newComp = null;
+				if (comp instanceof Drawable) {
+					newComp = comp.instance();
+				}
+				else {
+					newComp = comp.clone();
+				}
+				newNode.addComponent(newComp);
+			});
+			return newNode;
+		}
+		
+		constructor(name="") {
+			super();
+
+			this._name = name;			
+			this._items = []; // { polyList:p, material:m, transform:t }
+		}
+		
+		get name() { return this._name; }
+		set name(n) { this._name = n; }
+		
+		clone(newName) {
+			let newInstance = new bg.scene.Drawable();
+			newInstance.name = newName || `copy of ${this.name}`;
+			this.forEach((plist,material,trx) => {
+				newInstance.addPolyList(plist.clone(), material.clone(), trx ? new bg.Matrix4(trx):null);
+			});
+			return newInstance;
+		}
+
+		destroy() {
+			this.forEach((plist) => {
+				plist.destroy();
+			});
+			this._name = "";
+			this._items = [];
+		}
+		
+		// It works as clone(), but it doesn't duplicate the polyList
+		instance(newName) {
+			let newInstance = new bg.scene.Drawable();
+			newInstance.name = newName || `copy of ${this.name}`;
+			this.forEach((plist,material,trx) => {
+				newInstance.addPolyList(plist, material.clone(), trx ? new bg.Matrix4(trx):null);
+			});
+			return newInstance;
+		}
+		
+		addPolyList(plist,mat,trx=null) {
+			if (plist && this.indexOf(plist)==-1) {
+				mat = mat || new bg.base.Material();
+				
+				this._items.push({
+					polyList:plist,
+					material:mat,
+					transform:trx
+				});
+				return true;
+			}
+			return false;
+		}
+
+		getExternalResources(resources = []) {
+			this.forEach((plist,material) => {
+				material.getExternalResources(resources)
+			});
+			return resources;
+		}
+
+		// Apply a material definition object to the polyLists
+		applyMaterialDefinition(materialDefinitions,resourcesUrl) {
+			let promises = [];
+			this.forEach((plist,mat) => {
+				let definition = materialDefinitions[plist.name];
+				if (definition) {
+					promises.push(new Promise((resolve,reject) => {
+						let modifier = new bg.base.MaterialModifier(definition);
+						mat.applyModifier(plist.context,modifier,resourcesUrl);
+						resolve();
+					}));
+				}
+			});
+			return Promise.all(promises);
+		}
+		
+		removePolyList(plist) {
+			let index = -1;
+			this._items.some((item, i) => {
+				if (plist==item.polyList) {
+					index = i;
+				}
+			})
+			if (index>=0) {
+				this._items.splice(index,1);
+			}
+		}
+		
+		indexOf(plist) {
+			let index = -1;
+			this._items.some((item,i) => {
+				if (item.polyList==plist) {
+					index = i;
+					return true;
+				}
+			});
+			return index;
+		}
+		
+		replacePolyList(index,plist) {
+			if (index>=0 && index<this._items.length) {
+				this._items[index].polyList = plist;
+				return true;
+			}
+			return false;
+		}
+		
+		replaceMaterial(index,mat) {
+			if (index>=0 && index<this._items.length) {
+				this._items[index].material = mat;
+				return true;
+			}
+			return false;
+		}
+		
+		replaceTransform(index,trx) {
+			if (index>=0 && index<this._items.length) {
+				this._items[index].transform = trx;
+				return true;
+			}
+			return false;
+		}
+		
+		getPolyList(index) {
+			if (index>=0 && index<this._items.length) {
+				return this._items[index].polyList;
+			}
+			return false;
+		}
+		
+		getMaterial(index) {
+			if (index>=0 && index<this._items.length) {
+				return this._items[index].material;
+			}
+			return false;
+		}
+		
+		getTransform(index) {
+			if (index>=0 && index<this._items.length) {
+				return this._items[index].transform;
+			}
+			return false;
+		}
+		
+		
+		forEach(callback) {
+			for (let elem of this._items) {
+				callback(elem.polyList,elem.material,elem.transform);
+			}
+		}
+		
+		some(callback) {
+			for (let elem of this._items) {
+				if (callback(elem.polyList,elem.material,elem.transform)) {
+					return true;
+				}
+			}
+			return false;
+		}
+		
+		every(callback) {
+			for (let elem of this._items) {
+				if (!callback(elem.polyList,elem.material,elem.transform)) {
+					return false;
+				}
+			}
+			return true;
+		}
+		
+		////// Direct rendering method: will be deprecated soon
+		display(pipeline,matrixState,forceDraw=false) {
+			if (!pipeline.effect) {
+				throw new Error("Could not draw component: invalid effect found.");
+			}
+
+			let isShadowMap = pipeline.effect instanceof bg.base.ShadowMapEffect;
+
+			if (!this.node.enabled) {
+				return;
+			}
+			else {
+				this.forEach((plist,mat,trx) => {
+					if ((!isShadowMap && plist.visible) || (isShadowMap && plist.visibleToShadows) || forceDraw) {
+						let currMaterial = pipeline.effect.material;
+						if (trx) {
+							matrixState.modelMatrixStack.push();
+							matrixState.modelMatrixStack.mult(trx);
+						}
+						
+						if (pipeline.shouldDraw(mat)) {
+							pipeline.effect.material = mat;
+							pipeline.draw(plist);
+						}
+						
+						if (trx) {
+							matrixState.modelMatrixStack.pop();
+						}
+						pipeline.effect.material = currMaterial;
+					}
+				});
+			}
+		}
+
+		//// Render queue method
+		draw(renderQueue,modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+			if (!this.node.enabled) {
+				return;
+			}
+
+			this.forEach((plist,mat,trx) => {
+				if (!plist.visible) {
+					return;
+				}
+				if (trx) {
+					modelMatrixStack.push();
+					modelMatrixStack.mult(trx);
+				}
+
+				if (mat.isTransparent) {
+					renderQueue.renderTransparent(plist,mat,modelMatrixStack.matrix,viewMatrixStack.matrix);
+				}
+				else {
+					renderQueue.renderOpaque(plist,mat,modelMatrixStack.matrix,viewMatrixStack.matrix);
+				}
+
+				if (trx) {
+					modelMatrixStack.pop(trx);
+				}
+			});
+		}
+		
+		setGroupVisible(groupName,visibility=true) {
+			this.forEach((plist) => {
+				if (plist.groupName==groupName) {
+					plist.visible = visibility;
+				}
+			});
+		}
+		
+		hideGroup(groupName) { this.setGroupVisible(groupName,false); }
+		
+		showGroup(groupName) { this.setGroupVisible(groupName,true); }
+		
+		setVisibleByName(name,visibility=true) {
+			this.some((plist) => {
+				if (plist.name==name) {
+					plist.visible = visibility;
+					return true;
+				}
+			});
+		}
+		
+		showByName(name) {
+			this.setVisibleByName(name,true);
+		}
+		
+		hideByName(name) {
+			this.setVisibleByName(name,false);
+		}
+		
+		deserialize(context,sceneData,url) {
+			return new Promise((resolve,reject) => {
+				let modelUrl = bg.utils.Resource.JoinUrl(url,sceneData.name + '.vwglb');
+				bg.base.Loader.Load(context,modelUrl)
+					.then((node) => {
+						let drw = node.component("bg.scene.Drawable");
+						this._name = sceneData.name;
+						this._items = drw._items;
+						resolve(this);
+					});
+			});
+		}
+
+		serialize(componentData,promises,url) {
+			if (!bg.isElectronApp) {
+				return;
+			}
+			super.serialize(componentData,promises,url);
+			this.name = escapePathCharacters(this.name);
+		
+			componentData.name = this.name;
+			const path = require('path');
+			let dst = path.join(url.path,componentData.name + ".vwglb");
+			promises.push(new Promise((resolve,reject) => {
+				bg.base.Writer.Write(dst,this.node)
+					.then(() => resolve())
+					.catch((err) => reject(err));
+			}));
+		}
+	}
+	
+	bg.scene.registerComponent(bg.scene,Drawable,"bg.scene.Drawable");
+	
+})();
+(function() {
+	
+	let s_lightRegister = [];
+	
+	function registerLight(l) {
+		s_lightRegister.push(l);
+	}
+	
+	function unregisterLight(l) {
+		let i = s_lightRegister.indexOf(l);
+		if (i!=-1) {
+			s_lightRegister.splice(i,1);
+		}
+	}
+
+	function buildPlist(context,vertex,color) {
+		let plist = new bg.base.PolyList(context);
+		let normal = [];
+		let texCoord0 = [];
+		let index = [];
+		let currentIndex = 0;
+		for (let i=0; i<vertex.length; i+=3) {
+			normal.push(0); normal.push(0); normal.push(1);
+			texCoord0.push(0); texCoord0.push(0);
+			index.push(currentIndex++);
+		}
+		plist.vertex = vertex;
+		plist.normal = normal;
+		plist.texCoord0 = texCoord0;
+		plist.color = color;
+		plist.index = index;
+		plist.drawMode = bg.base.DrawMode.LINES;
+		plist.build();
+		return plist;
+	}
+
+	function getDirectionalGizmo(conext) {
+		if (!this._directionalGizmo) {
+			let context = this.node.context;
+			let vertex = [
+				0,0,0, 0,0,-1,
+				0,0,-1, 0,0.1,-0.9,
+				0,0,-1, 0,-0.1,-0.9,
+			];
+			let color = [
+				1,1,1,1, 1,1,0,1,
+				1,1,0,1, 1,1,0,1,
+				1,1,0,1, 1,1,0,1
+			];
+			this._directionalGizmo = buildPlist(context,vertex,color);
+		}
+		return this._directionalGizmo;
+	}
+
+	function getSpotGizmo() {
+		let context = this.node.context;
+		let distance = 5;
+		let alpha = bg.Math.degreesToRadians(this.light.spotCutoff / 2);
+		let salpha = bg.Math.sin(alpha) * distance;
+		let calpha = bg.Math.cos(alpha) * distance;
+
+		let rx2 = bg.Math.cos(bg.Math.PI_8) * salpha;
+		let rx1 = bg.Math.cos(bg.Math.PI_4) * salpha;
+		let rx0 = bg.Math.cos(bg.Math.PI_4 + bg.Math.PI_8) * salpha;
+
+		let ry2 = bg.Math.sin(bg.Math.PI_8) * salpha;
+		let ry1 = bg.Math.sin(bg.Math.PI_4) * salpha;
+		let ry0 = bg.Math.sin(bg.Math.PI_4 + bg.Math.PI_8) * salpha;
+
+		let vertex = [
+			0,0,0, 0,salpha,-calpha,
+			0,0,0, 0,-salpha,-calpha,
+			0,0,0, salpha,0,-calpha,
+			0,0,0, -salpha,0,-calpha,
+
+			0,salpha,-calpha, rx0,ry0,-calpha, rx0,ry0,-calpha, rx1,ry1,-calpha, rx1,ry1,-calpha, rx2,ry2,-calpha, rx2,ry2,-calpha, salpha,0,-calpha,
+		
+			salpha,0,-calpha, rx2,-ry2,-calpha, rx2,-ry2,-calpha, rx1,-ry1,-calpha, rx1,-ry1,-calpha, rx0,-ry0,-calpha, rx0,-ry0,-calpha, 0,-salpha,-calpha,
+			0,-salpha,-calpha, -rx0,-ry0,-calpha, -rx0,-ry0,-calpha, -rx1,-ry1,-calpha, -rx1,-ry1,-calpha, -rx2,-ry2,-calpha, -rx2,-ry2,-calpha, -salpha,0,-calpha,
+
+			-salpha,0,-calpha, -rx2,ry2,-calpha, -rx2,ry2,-calpha, -rx1,ry1,-calpha, -rx1, ry1,-calpha, -rx0,ry0,-calpha, -rx0,ry0,-calpha,  0,salpha,-calpha
+		];
+		let color = [
+			1,1,1,1, 1,1,0,1,
+			1,1,1,1, 1,1,0,1,
+			1,1,1,1, 1,1,0,1,
+			1,1,1,1, 1,1,0,1,
+
+			1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1,
+			1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1,
+			
+			1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1,
+			1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1, 1,1,0,1
+		];
+
+		if (!this._spotGizmo) {
+			this._spotGizmo = buildPlist(context,vertex,color);
+		}
+		else {
+			this._spotGizmo.updateBuffer(bg.base.BufferType.VERTEX,vertex);
+			this._spotGizmo.updateBuffer(bg.base.BufferType.COLOR,color);
+		}
+		return this._spotGizmo;
+	}
+
+	function getPointGizmo() {
+		if (!this._pointGizmo) {
+			let context = this.node.context;
+			let r = 0.5;
+			let s = bg.Math.sin(bg.Math.PI_4) * r;
+			let vertex = [
+				// x-y plane
+				0,0,0, 0,r,0, 0,0,0, 0,-r,0, 0,0,0, -r,0,0, 0,0,0, r,0,0,
+				0,0,0, s,s,0, 0,0,0, s,-s,0, 0,0,0, -s,s,0, 0,0,0, -s,-s,0,
+
+				// z, -z
+				0,0,0, 0,0,r, 0,0,0, 0,0,-r,
+				0,0,0, 0,s,s, 0,0,0, 0,-s,s, 0,0,0, 0,-s,-s, 0,0,0, 0,s,-s,
+				0,0,0, s,0,s, 0,0,0, -s,0,s, 0,0,0, -s,0,-s, 0,0,0, s,0,-s
+			];
+			let color = [
+				1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1,
+				1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1,
+				1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1,
+				1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1,
+				1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1, 1,1,1,1, 1,1,0,1
+			];
+			this._pointGizmo = buildPlist(context,vertex,color);
+		}
+		return this._pointGizmo;
+	}
+
+	function getGizmo() {
+		switch (this._light && this._light.type) {
+		case bg.base.LightType.DIRECTIONAL:
+			return getDirectionalGizmo.apply(this);
+		case bg.base.LightType.SPOT:
+			return getSpotGizmo.apply(this);
+		case bg.base.LightType.POINT:
+			return getPointGizmo.apply(this);
+		}
+		return null;
+	}
+	
+	class Light extends bg.scene.Component {
+		// The active lights are the lights that are attached to a node
+		// in the scene.
+		static GetActiveLights() {
+			return s_lightRegister;
+		}
+		
+		constructor(light = null) {
+			super();
+			this._light = light;
+			this._visitor = new bg.scene.TransformVisitor();
+			this._rebuildTransform = true;
+		}
+		
+		clone() {
+			let newLight = new bg.scene.Light();
+			newLight.light = this.light.clone();
+			return newLight;
+		}
+		
+		get light() { return this._light; }
+		set light(l) { this._light = l; }
+		
+		get transform() {
+			if (this._rebuildTransform && this.node) {
+				this._visitor.matrix.identity();
+				this.node.acceptReverse(this._visitor);
+				this._rebuildTransform = false;
+			}
+			return this._visitor.matrix;
+		}
+		
+		frame(delta) {
+			this._rebuildTransform = true;
+			this.transform;
+		}
+
+		displayGizmo(pipeline,matrixState) {
+			let plist = getGizmo.apply(this);
+			if (plist) {
+				pipeline.draw(plist);
+			}
+		}
+		
+		removedFromNode(node) {
+			unregisterLight(this);
+		}
+		
+		addedToNode(node) {
+			registerLight(this);
+		}
+
+		deserialize(context,sceneData,url) {
+			return new Promise((resolve,reject) => {
+				this._light = new bg.base.Light(context);
+				this._light.deserialize(sceneData);
+				resolve(this);
+			});
+		}
+
+		serialize(componentData,promises,url) {
+			super.serialize(componentData,promises,url);
+			this.light.serialize(componentData);
+		}
+	}
+
+	bg.scene.registerComponent(bg.scene,Light,"bg.scene.Light");
+})();
+(function() {
+    function parseMTL_n(line) {
+        let res = /newmtl\s+(.*)/.exec(line);
+        if (res) {
+            this._jsonData[res[1]] = JSON.parse(JSON.stringify(s_matInit));
+            this._currentMat = this._jsonData[res[1]];
+        }
+    }
+
+    function parseMTL_N(line) {
+        let res = /Ns\s+([\d\.]+)/.exec(line);
+        if (res) {  // Specular
+            this._currentMat.shininess = Number(res[1]);
+        }
+        //else if ( (res=/Ni\s+([\d\.]+)/.exec(line)) ) {
+        //}
+    }
+
+    function vectorFromRE(re) {
+        return [
+            Number(re[1]),
+            Number(re[2]),
+            Number(re[3]),
+            re[4] ? Number(re[4]) : 1.0
+        ]
+    }
+
+    function parseMTL_K(line) {
+        let res = /Kd\s+([\d\.]+)\s+([\d\.]+)\s+([\d\.]+)\s*([\d\.]*)/.exec(line);
+        if (res) {
+            // Diffuse
+            let d = vectorFromRE(res);
+            this._currentMat.diffuseR = d[0];
+            this._currentMat.diffuseG = d[1];
+            this._currentMat.diffuseB = d[2];
+            this._currentMat.diffuseA = d[3];
+        }
+        else if ( (res = /Ks\s+([\d\.]+)\s+([\d\.]+)\s+([\d\.]+)\s*([\d\.]*)/.exec(line)) ) {
+            // Specular
+            let s = vectorFromRE(res);
+            this._currentMat.specularR = s[0];
+            this._currentMat.specularG = s[1];
+            this._currentMat.specularB = s[2];
+            this._currentMat.specularA = s[3];
+        }
+    }
+
+    function parseMTL_m(line) {
+        let res = /map_Kd\s+(.*)/.exec(line);
+        if (res) {
+            let path = res[1];
+            path = path.replace(/\\/g,'/');
+            let slashIndex = path.lastIndexOf('/'); 
+            if (slashIndex>=0) {
+                path = path.substring(slashIndex + 1);
+            }
+            this._currentMat.texture = path;
+        }
+    }
+
+    let s_matInit = {
+        diffuseR: 1.0,
+        diffuseG:1.0,
+        diffuseB:1.0,
+        diffuseA:1.0,
+        
+        specularR:1.0,
+        specularG:1.0,
+        specularB:1.0,
+        specularA:1.0,
+        
+        shininess: 0,
+        lightEmission: 0,
+        
+        refractionAmount: 0,
+        reflectionAmount: 0,
+
+        textureOffsetX: 0,
+        textureOffsetY: 0,
+        textureScaleX: 1,
+        textureScaleY: 1,
+        
+        lightmapOffsetX: 0,
+        lightmapOffsetY: 0,
+        lightmapScaleX: 1,
+        lightmapScaleY: 1,
+        
+        normalMapOffsetX: 0,
+        normalMapOffsetY: 0,
+        normalMapScaleX: 1,
+        normalMapScaleY: 1,
+        
+        alphaCutoff: 0.5,
+        castShadows: true,
+        receiveShadows: true,
+        
+        shininessMaskChannel: 0,
+        shininessMaskInvert: false,
+        lightEmissionMaskChannel: 0,
+        lightEmissionMaskInvert: false,
+
+        reflectionMaskChannel: 0,
+        reflectionMaskInvert: false,
+    
+        cullFace: true,
+
+        texture: "",
+        lightmap: "",
+        normalMap: "",
+        shininessMask: "",
+        lightEmissionMask: "",
+        reflectionMask: ""
+    };
+
+    class MTLParser {
+        constructor(mtlData) {
+            this._jsonData = {}
+            this._currentMat = JSON.parse(JSON.stringify(s_matInit));
+            let lines = mtlData.split('\n');
+
+            lines.forEach((line) => {
+                // First optimization: parse the first character and string lenght
+                line = line.trim();
+                if (line.length>1 && line[0]!='#') {
+                    // Second optimization: parse by the first character
+                    switch (line[0]) {
+                    case 'n':
+                        parseMTL_n.apply(this,[line]);
+                        break;
+                    case 'N':
+                        parseMTL_N.apply(this,[line]);
+                        break;
+                    case 'm':
+                        parseMTL_m.apply(this,[line]);
+                        break;
+                    case 'd':
+                        break;
+                    case 'T':
+                        break;
+                    case 'K':
+                        parseMTL_K.apply(this,[line]);
+                        break;
+                    case 'i':
+                        break;
+                    case 'o':
+                        break;
+                    }
+                }
+            });
+        }
+
+        get jsonData() { return this._jsonData; }
+    }
+
+    function parseM(line) {
+        // mtllib
+        let res = /mtllib\s+(.*)/.exec(line);
+        if (res) {
+            this._mtlLib = res[1];
+        }
+    }
+
+    function parseG(line) {
+        // g
+        let res = /g\s+(.*)/.exec(line);
+        if (res) {
+            this._currentPlist.name = res[1];
+        }
+    }
+
+    function parseU(line) {
+        // usemtl
+        let res = /usemtl\s+(.*)/.exec(line);
+        if (res) {
+            this._currentPlist._matName = res[1];
+            if (this._currentPlist.name=="") {
+                this._currentPlist.name = res[1];
+            }
+        }
+    }
+
+    function parseS(line) {
+        // s
+        let res = /s\s+(.*)/.exec(line);
+        if (res) {
+            // TODO: Do something with smoothing groups
+        }
+    }
+
+    function addPoint(pointData) {
+        this._currentPlist.vertex.push(pointData.vertex[0],pointData.vertex[1],pointData.vertex[2]);
+        if (pointData.normal) {
+            this._currentPlist.normal.push(pointData.normal[0],pointData.normal[1],pointData.normal[2]);
+        }
+        if (pointData.tex) {
+            this._currentPlist.texCoord0.push(pointData.tex[0],pointData.tex[1]);
+        }
+        this._currentPlist.index.push(this._currentPlist.index.length);
+    }
+
+    function isValid(point) {
+        return point && point.vertex && point.tex && point.normal;
+    }
+
+    function addPolygon(polygonData) {
+        let currentVertex = 0;
+        let sides = polygonData.length;
+        if (sides<3) return;
+        while (currentVertex<sides) {
+            let i0 = currentVertex;
+            let i1 = currentVertex + 1;
+            let i2 = currentVertex + 2;
+            if (i2==sides) {
+                i2 = 0;
+            }
+            else if (i1==sides) {
+                i1 = 0;
+                i2 = 2;
+            }
+
+            let p0 = polygonData[i0];
+            let p1 = polygonData[i1];
+            let p2 = polygonData[i2];
+
+            if (isValid(p0) && isValid(p1) && isValid(p2)) {
+                addPoint.apply(this,[p0]);
+                addPoint.apply(this,[p1]);
+                addPoint.apply(this,[p2]);
+            }
+            else {
+                console.warn("Invalid point data found loading OBJ file");
+            }
+            currentVertex+=3;
+        }
+    }
+
+    function parseF(line) {
+        // f
+        this._addPlist = true;
+        let res = /f\s+(.*)/.exec(line);
+        if (res) {
+            let params = res[1];
+            let vtnRE = /([\d\-]+)\/([\d\-]*)\/([\d\-]*)/g;
+            if (params.indexOf('/')==-1) {
+                let vRE = /([\d\-]+)/g;
+            }
+            let polygon = [];
+            while ( (res=vtnRE.exec(params)) ) {
+                let iV = Number(res[1]);
+                let iN = res[3] ? Number(res[3]):null;
+                let iT = res[2] ? Number(res[2]):null;
+                iV = iV<0 ? this._vertexArray.length + iV : iV - 1;
+                iN = iN<0 ? this._normalArray.length + iN : (iN===null ? null : iN - 1);
+                iT = iT<0 ? this._texCoordArray.length + iT : (iT===null ? null : iT - 1)
+
+                let v = this._vertexArray[iV];
+                let n = iN!==null ? this._normalArray[iN] : null;
+                let t = iT!==null ? this._texCoordArray[iT] : null;
+                polygon.push({
+                    vertex:v,
+                    normal:n,
+                    tex:t
+                });
+            }
+            addPolygon.apply(this,[polygon]);
+        }
+    }
+
+    function parseO(line) {
+        // o
+        let res = /s\s+(.*)/.exec(line);
+        if (res && this._currentPlist.name=="") {
+            this._currentPlist.name = res[1];
+        }
+    }
+
+    function checkAddPlist() {
+        if (this._addPlist) {
+            if (this._currentPlist) {
+                this._currentPlist.build();
+                this._plistArray.push(this._currentPlist);
+            }
+            this._currentPlist = new bg.base.PolyList(this.context);
+            this._addPlist = false;
+        }
+    }
+
+    function parseMTL(mtlData) {
+        let parser = new MTLParser(mtlData);
+        return parser.jsonData;
+    }
+
+    class OBJParser {
+        constructor(context,url) {
+            this.context = context;
+            this.url = url;
+
+            this._plistArray = [];
+
+            this._vertexArray = [];
+            this._normalArray = [];
+            this._texCoordArray = [];
+
+            this._mtlLib = "";
+
+            this._addPlist = true;
+        }
+
+        loadDrawable(data) {
+            return new Promise((resolve,reject) => {
+                let name = this.url.replace(/[\\\/]/ig,'-');
+                let drawable = new bg.scene.Drawable(name);
+                let lines = data.split('\n');
+
+                let multiLine = "";
+                lines.forEach((line) => {
+                    line = line.trim();
+
+                    // This section controls the break line character \
+                    // to concatenate this line with the next one
+                    if (multiLine) {
+                        line = multiLine + line;
+                    }
+                    if (line[line.length-1]=='\\') {
+                        line = line.substring(0,line.length-1);
+                        multiLine += line;
+                        return;
+                    }
+                    else {
+                        multiLine = "";
+                    }
+
+                    // First optimization: parse the first character and string lenght
+                    if (line.length>1 && line[0]!='#') {
+                        // Second optimization: parse by the first character
+                        switch (line[0]) {
+                        case 'v':
+                            let res = /v\s+([\d\.\-e]+)\s+([\d\.\-e]+)\s+([\d\.\-e]+)/.exec(line);
+                            if (res) {
+                                this._vertexArray.push(
+                                    [ Number(res[1]), Number(res[2]), Number(res[3]) ]
+                                );
+                            }
+                            else if ( (res = /vn\s+([\d\.\-e]+)\s+([\d\.\-e]+)\s+([\d\.\-e]+)/.exec(line)) ) {
+                                this._normalArray.push(
+                                    [ Number(res[1]), Number(res[2]), Number(res[3]) ]
+                                );
+                            }
+                            else if ( (res = /vt\s+([\d\.\-e]+)\s+([\d\.\-e]+)/.exec(line)) ) {
+                                this._texCoordArray.push(
+                                    [ Number(res[1]), Number(res[2]) ]
+                                );
+                            }
+                            else {
+                                console.warn("Error parsing line " + line);
+                            }
+                            break;
+                        case 'm':
+                            checkAddPlist.apply(this);
+                            parseM.apply(this,[line]);
+                            break;
+                        case 'g':
+                            checkAddPlist.apply(this);
+                            parseG.apply(this,[line]);
+                            break;
+                        case 'u':
+                            checkAddPlist.apply(this);
+                            parseU.apply(this,[line]);
+                            break;
+                        case 's':
+                            //checkAddPlist.apply(this);
+                            parseS.apply(this,[line]);
+                            break;
+                        case 'f':
+                            parseF.apply(this,[line]);
+                            break;
+                        case 'o':
+                            checkAddPlist.apply(this);
+                            parseO.apply(this,[line]);
+                            break;
+                        }
+                    }
+                });
+
+                if (this._currentPlist && this._addPlist) {
+                    this._currentPlist.build();
+                    this._plistArray.push(this._currentPlist);
+                }
+
+                function buildDrawable(plistArray,materials) {
+                    plistArray.forEach((plist) => {
+                        let mat = new bg.base.Material();
+                        let matData = materials[plist._matName];
+                        if (matData) {
+                            let url = this.url.substring(0,this.url.lastIndexOf('/') + 1);
+                            bg.base.Material.GetMaterialWithJson(this.context,matData,url)
+                                .then((material) => {
+                                    drawable.addPolyList(plist,material);
+                                })
+                        }
+                        else {
+                            drawable.addPolyList(plist,mat);
+                        }
+                    });
+                }
+
+                if (this._mtlLib) {
+                    let locationUrl = this.url.substring(0,this.url.lastIndexOf("/"));
+                    if (locationUrl.length>0 && locationUrl!='/') locationUrl += "/";
+                    bg.utils.Resource.Load(locationUrl + this._mtlLib)
+                        .then((data) => {
+                            buildDrawable.apply(this,[this._plistArray,parseMTL(data)]);
+                            resolve(drawable);
+                        })
+                        .catch(() => {
+                            bg.log("Warning: no such material library file for obj model " + this.url);
+                            buildDrawable.apply(this,[this._plistArray,{}]);
+                            resolve(drawable);
+                        });
+                }
+                else {
+                    buildDrawable.apply(this,[this._plistArray,{}]);
+                    resolve(drawable);
+                }
+            });
+        }
+    }
+
+    class OBJLoaderPlugin extends bg.base.LoaderPlugin {
+        acceptType(url,data) {
+            return bg.utils.Resource.GetExtension(url)=="obj";
+        }
+
+        load(context,url,data) {
+            return new Promise((resolve,reject) => {
+                if (data) {
+                    try {
+                        let parser = new OBJParser(context,url);
+                        let resultNode = null;
+                        let basePath = url.split("/");
+                        basePath.pop();
+                        basePath = basePath.join("/") + '/';
+                        let matUrl = url.split(".");
+                        matUrl.pop();
+                        matUrl.push("bg2mat");
+                        matUrl = matUrl.join(".");
+                        parser.loadDrawable(data)
+                            .then((drawable) => {
+                                let node = new bg.scene.Node(context,drawable.name);
+                                node.addComponent(drawable);
+                                resultNode = node;
+                                return bg.utils.Resource.LoadJson(matUrl);
+                            })
+
+                            .then((matData) => {
+                                let promises = [];
+								try {
+									let drw = resultNode.component("bg.scene.Drawable");
+									drw.forEach((plist,mat)=> {
+										let matDef = null;
+										matData.some((defItem) => {
+											if (defItem.name==plist.name) {
+												matDef = defItem;
+												return true;
+											}
+										});
+
+										if (matDef) {
+											let p = bg.base.Material.FromMaterialDefinition(context,matDef,basePath);
+											promises.push(p)
+											p.then((newMat) => {
+                                                mat.assign(newMat);
+                                            });
+										}
+									});
+								}
+								catch(err) {
+									
+								}
+								return Promise.all(promises);
+                            })
+
+                            .then(() => {
+                                resolve(resultNode);
+                            })
+
+                            .catch(() => {
+                                // bg2mat file not found
+                                resolve(resultNode)
+                            })
+                    }
+                    catch(e) {
+                        reject(e);
+                    }
+                }
+                else {
+                    reject(new Error("Error loading drawable. Data is null."));
+                }
+            });
+        }
+    }
+
+    bg.base.OBJLoaderPlugin = OBJLoaderPlugin;
+})();
+(function() {
+	
+	function createCube(context,w,h,d) {
+		let plist = new bg.base.PolyList(context);
+        
+		let x = w/2;
+		let y = h/2;
+		let z = d/2;
+		
+		plist.vertex = [
+			 x,-y,-z, -x,-y,-z, -x, y,-z,  x, y,-z,		// back face
+			 x,-y, z,  x,-y,-z,  x, y,-z,  x, y, z,		// right face 
+			-x,-y, z,  x,-y, z,  x, y, z, -x, y, z, 	// front face
+			-x,-y,-z, -x,-y, z, -x, y, z, -x, y,-z,		// left face
+			-x, y, z,  x, y, z,  x, y,-z, -x, y,-z,		// top face
+			 x,-y, z, -x,-y, z, -x,-y,-z,  x,-y,-z		// bottom face
+		];
+		
+		plist.normal = [
+			 0, 0,-1,  0, 0,-1,  0, 0,-1,  0, 0,-1,		// back face
+			 1, 0, 0,  1, 0, 0,  1, 0, 0,  1, 0, 0,		// right face 
+			 0, 0, 1,  0, 0, 1,  0, 0, 1,  0, 0, 1, 	// front face
+			-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0,		// left face
+			 0, 1, 0,  0, 1, 0,  0, 1, 0,  0, 1, 0,		// top face
+			 0,-1, 0,  0,-1, 0,  0,-1, 0,  0,-1, 0		// bottom face
+		];
+		
+		plist.texCoord0 = [
+			0,0, 1,0, 1,1, 0,1,
+			0,0, 1,0, 1,1, 0,1,
+			0,0, 1,0, 1,1, 0,1,
+			0,0, 1,0, 1,1, 0,1,
+			0,0, 1,0, 1,1, 0,1,
+			0,0, 1,0, 1,1, 0,1
+		];
+
+		plist.index = [
+			 0, 1, 2,	 2, 3, 0,
+			 4, 5, 6,	 6, 7, 4,
+			 8, 9,10,	10,11, 8,
+			12,13,14,	14,15,12,
+			16,17,18,	18,19,16,
+			20,21,22,	22,23,20
+		];
+
+		plist.texCoord1 = bg.tools.UVMap.atlas(plist.vertex,plist.index,0.03);
+		
+        plist.build();
+		return plist;
+	}
+	
+	function createPlane(context,w,d,plane='y') {
+		let x = w / 2.0;
+		let y = d / 2.0;
+		
+		let plist = new bg.base.PolyList(context);
+		
+		switch (plane.toLowerCase()) {
+		case 'x':
+			plist.vertex =[	0.000000,-x,-y,
+							0.000000, x,-y,
+							0.000000, x, y,
+							0.000000, x, y,
+							0.000000,-x, y,
+							0.000000,-x,-y];
+			
+			plist.normal = [1.000000,0.000000,0.000000,
+							1.000000,0.000000,0.000000,
+							1.000000,0.000000,0.000000,
+							1.000000,0.000000,0.000000,
+							1.000000,0.000000,0.000000,
+							1.000000,0.000000,0.000000];
+
+			plist.texCoord0 = [	0.000000,0.000000,
+				1.000000,0.000000,
+				1.000000,1.000000,
+				1.000000,1.000000,
+				0.000000,1.000000,
+				0.000000,0.000000];
+	
+
+			plist.index = [2,1,0,5,4,3];
+			break;
+		case 'y':
+			plist.vertex =[	-x,0.000000,-y,
+							 x,0.000000,-y,
+							 x,0.000000, y,
+							 x,0.000000, y,
+							-x,0.000000, y,
+							-x,0.000000,-y];
+
+			plist.normal = [0.000000,1.000000,0.000000,
+							0.000000,1.000000,0.000000,
+							0.000000,1.000000,0.000000,
+							0.000000,1.000000,0.000000,
+							0.000000,1.000000,0.000000,
+							0.000000,1.000000,0.000000];
+
+			plist.texCoord0 = [	0.000000,0.000000,
+				1.000000,0.000000,
+				1.000000,1.000000,
+				1.000000,1.000000,
+				0.000000,1.000000,
+				0.000000,0.000000];
+	
+
+			plist.index = [2,1,0,5,4,3];
+			break;
+		case 'z':
+			plist.vertex =[-x, y,0.000000,
+						-x,-y,0.000000,
+						   x,-y,0.000000,
+						   x,-y,0.000000,
+						   x, y,0.000000,
+						-x, y,0.000000];
+
+			plist.normal = [0.000000,0.000000,1.000000,
+							0.000000,0.000000,1.000000,
+							0.000000,0.000000,1.000000,
+							0.000000,0.000000,1.000000,
+							0.000000,0.000000,1.000000,
+							0.000000,0.000000,1.000000];
+	
+			plist.texCoord0 = [
+				0.000000,1.000000,
+				0.000000,0.000000,
+				1.000000,0.000000,
+				1.000000,0.000000,
+				1.000000,1.000000,
+				0.000000,1.000000];
+	
+			plist.index = [0,1,2,3,4,5];
+			break;
+		}
+
+	
+		plist.texCoord1 = [
+			0.00,0.95,
+			0.00,0.00,
+			0.95,0.00,
+			0.95,0.00,
+			0.95,0.95,
+			0.00,0.95
+		];
+
+		
+		
+		plist.build();
+		return plist;
+	}
+
+	function createSphere(context,radius,slices,stacks) {
+		let plist = new bg.base.PolyList(context);
+	
+		++slices;
+		const R = 1/(stacks-1);
+		const S = 1/(slices-1);
+		let r, s;
+				
+		let vertex = [];
+		let normal = [];
+		let texCoord = [];
+		let index = [];
+	
+		for(r = 0; r < stacks; r++) for(s = 0; s < slices; s++) {
+			const y = bg.Math.sin( -bg.Math.PI_2 + bg.Math.PI * r * R );
+			const x = bg.Math.cos(2*bg.Math.PI * s * S) * bg.Math.sin(bg.Math.PI * r * R);
+			const z = bg.Math.sin(2*bg.Math.PI * s * S) * bg.Math.sin(bg.Math.PI * r * R);
+			texCoord.push(s * S); texCoord.push(r * R);
+			normal.push(x,y,z);
+			vertex.push(x * radius, y * radius, z * radius);
+		}
+
+		for(r = 0; r < stacks - 1; r++) for(s = 0; s < slices - 1; s++) {
+			let i1 = r * slices + s;
+			let i2 = r * slices + (s + 1);
+			let i3 = (r + 1) * slices + (s + 1);
+			let i4 = (r + 1) * slices + s;
+			index.push(i1); index.push(i4); index.push(i3);
+			index.push(i3); index.push(i2); index.push(i1);
+		}
+		
+		plist.vertex = vertex;
+		plist.normal = normal;
+		plist.texCoord0 = texCoord;
+
+		plist.texCoord1 = bg.tools.UVMap.atlas(vertex,index,0.03);
+		plist.index = index;
+
+		plist.build();
+		
+		return plist;
+	}
+	
+	function createDrawable(plist,name) {
+		let drawable = new bg.scene.Drawable(name);
+		drawable.addPolyList(plist);
+		return drawable;
+	}
+	
+	class PrimitiveFactory {
+		static CubePolyList(context,w=1,h,d) {
+			h = h || w;
+			d = d || w;
+			return createCube(context,w,h,d);
+		}
+
+		static PlanePolyList(context,w=1,d,plane='y') {
+			d = d || w;
+			return createPlane(context,w,d,plane);
+		}
+
+		static SpherePolyList(context,r=1,slices=20,stacks) {
+			stacks = stacks || slices;
+			return createSphere(context,r,slices,stacks);
+		}
+
+		static Cube(context,w=1,h,d) {
+			h = h || w;
+			d = d || w;
+			return createDrawable(createCube(context,w,h,d),"Cube");
+		}
+		
+		static Plane(context,w=1,d,plane='y') {
+			d = d || w;
+			return createDrawable(createPlane(context,w,d,plane),"Plane");
+		}
+		
+		static Sphere(context,r=1,slices=20,stacks) {
+			stacks = stacks || slices;
+			return createDrawable(createSphere(context,r,slices,stacks),"Sphere");
+		}
+	}
+	
+	bg.scene.PrimitiveFactory = PrimitiveFactory;
+	
+})();
+(function() {
+    function fooScene(context) {
+        let root = new bg.scene.Node(context, "Scene Root");
+
+        bg.base.Loader.Load(context,"../data/test-shape.vwglb")
+			.then((node) => {
+				root.addChild(node);
+				node.addComponent(new bg.scene.Transform(bg.Matrix4.Translation(-1.4,0.25,0).scale(0.5,0.5,0.5)));
+			})
+			
+			.catch(function(err) {
+				alert(err.message);
+			});
+	
+		let sphereNode = new bg.scene.Node(context,"Sphere");
+		sphereNode.addComponent(new bg.scene.Transform(bg.Matrix4.Translation(-1.3,0.1,1.3)));
+		sphereNode.addComponent(bg.scene.PrimitiveFactory.Sphere(context,0.1));
+		sphereNode.component("bg.scene.Drawable").getMaterial(0).diffuse.a = 0.8;
+		sphereNode.component("bg.scene.Drawable").getMaterial(0).reflectionAmount = 0.4;
+		root.addChild(sphereNode);
+	
+		let floorNode = new bg.scene.Node(context,"Floor");
+		floorNode.addComponent(new bg.scene.Transform(bg.Matrix4.Translation(0,0,0)));
+		floorNode.addComponent(bg.scene.PrimitiveFactory.Plane(context,10,10));
+		floorNode.component("bg.scene.Drawable").getMaterial(0).shininess = 50;
+		floorNode.component("bg.scene.Drawable").getMaterial(0).reflectionAmount = 0.3;
+		floorNode.component("bg.scene.Drawable").getMaterial(0).normalMapScale = new bg.Vector2(10,10);
+		floorNode.component("bg.scene.Drawable").getMaterial(0).textureScale = new bg.Vector2(10,10);
+		floorNode.component("bg.scene.Drawable").getMaterial(0).reflectionMaskInvert = true;
+		floorNode.component("bg.scene.Drawable").getMaterial(0).shininessMaskInvert = true;
+		root.addChild(floorNode);
+
+		bg.base.Loader.Load(context,"../data/bricks_nm.png")
+			.then((tex) => {
+				floorNode.component("bg.scene.Drawable").getMaterial(0).normalMap = tex;
+			});
+
+		bg.base.Loader.Load(context,"../data/bricks.jpg")
+			.then((tex) => {
+				floorNode.component("bg.scene.Drawable").getMaterial(0).texture = tex;
+			});
+
+		bg.base.Loader.Load(context,"../data/bricks_shin.jpg")
+			.then((tex) => {
+				floorNode.component("bg.scene.Drawable").getMaterial(0).reflectionMask = tex;
+				floorNode.component("bg.scene.Drawable").getMaterial(0).shininessMask = tex;
+			});
+		
+		let lightNode = new bg.scene.Node(context,"Light");
+		lightNode.addComponent(new bg.scene.Light(new bg.base.Light(context)));	
+		lightNode.addComponent(new bg.scene.Transform(bg.Matrix4.Identity()
+												.rotate(bg.Math.degreesToRadians(30),0,1,0)
+												.rotate(bg.Math.degreesToRadians(35),-1,0,0)));
+		root.addChild(lightNode);
+		
+		let camera = new bg.scene.Camera();
+		camera.isMain = true;
+		let cameraNode = new bg.scene.Node("Camera");
+		cameraNode.addComponent(camera);			
+		cameraNode.addComponent(new bg.scene.Transform());
+		cameraNode.addComponent(new bg.manipulation.OrbitCameraController());
+		let camCtrl = cameraNode.component("bg.manipulation.OrbitCameraController");
+		camCtrl.minPitch = -45;
+		root.addChild(cameraNode);
+
+        return root;
+	}
+
+    class SceneFileParser {
+        constructor(url,jsonData) {
+            this.url = url.substring(0,url.lastIndexOf('/'));
+            this.jsonData = jsonData;
+        }
+
+        loadNode(context,jsonData,parent,promises) {
+            // jsonData: object, input. Json data for the node
+            // parent: scene node, input. The parent node to which we must to add the new scene node.
+            // promises: array, output. Add promises from component.deserialize()
+            let node = new bg.scene.Node(context,jsonData.name);
+			node.enabled = jsonData.enabled;
+			node.steady = jsonData.steady || false;
+            parent.addChild(node);
+            jsonData.components.forEach((compData) => {
+                promises.push(bg.scene.Component.Factory(context,compData,node,this.url));
+            });
+            jsonData.children.forEach((child) => {
+                this.loadNode(context,child,node,promises);
+            });
+        }
+
+        loadScene(context) {
+            let promises = [];
+            let sceneRoot = new bg.scene.Node(context,"scene-root");
+
+            this.jsonData.scene.forEach((nodeData) => {
+                this.loadNode(context,nodeData,sceneRoot,promises);
+            });
+
+            return new Promise((resolve,reject) => {
+                Promise.all(promises)
+                    .then(() => {
+                        let findVisitor = new bg.scene.FindComponentVisitor("bg.scene.Camera");
+                        sceneRoot.accept(findVisitor);
+                        
+						let cameraNode = null;
+						let firstCamera = null;
+                        findVisitor.result.some((cn) => {
+							if (!firstCamera) {
+								firstCamera = cn;
+							}
+							if (cn.camera.isMain) {
+								cameraNode = cn;
+								return true;
+							}
+						});
+						cameraNode = cameraNode || firstCamera;
+                        if (!cameraNode) {
+							cameraNode = new bg.scene.Node(context,"Camera");
+							cameraNode.addComponent(new bg.scene.Camera());
+                            let trx = bg.Matrix4.Rotation(0.52,-1,0,0);
+                            trx.translate(0,0,5);
+                            cameraNode.addComponent(new bg.scene.Transform(trx));
+                            sceneRoot.addChild(cameraNode);
+						}
+						
+						// Ensure that cameraNode is the only camera marked as main
+						bg.scene.Camera.SetAsMainCamera(cameraNode,sceneRoot);
+                        resolve({ sceneRoot:sceneRoot, cameraNode:cameraNode });
+                    });
+            });
+        }
+
+    }
+
+    class SceneLoaderPlugin extends bg.base.LoaderPlugin {
+		acceptType(url,data) {
+            let ext = bg.utils.Resource.GetExtension(url);
+			return ext=="vitscnj";
+		}
+		
+		load(context,url,data) {
+			return new Promise((resolve,reject) => {
+				if (data) {
+					try {
+                        if (typeof(data)=="string") {
+                            // Prevent a bug in the C++ API version 2.0, that inserts a comma after the last
+                            // element of some arrays and objects
+                            data = data.replace(/,[\s\r\n]*\]/g,']');
+                            data = data.replace(/,[\s\r\n]*\}/g,'}');
+                            data = JSON.parse(data);
+                        }
+                        let parser = new SceneFileParser(url,data);
+                        parser.loadScene(context)
+                            .then((result) => {
+                                resolve(result);
+                            });
+					}
+					catch(e) {
+						reject(e);
+					}
+				}
+				else {
+					reject(new Error("Error loading scene. Data is null"));
+				}
+			});
+		}
+	}
+	
+	bg.base.SceneLoaderPlugin = SceneLoaderPlugin;
+
+})();
+(function() {
+
+    function copyCubemapImage(componentData,cubemapImage,dstPath) {
+        let path = require("path");
+        let src = bg.base.Writer.StandarizePath(this.getImageUrl(cubemapImage));
+        let file = src.split('/').pop();
+        let dst = bg.base.Writer.StandarizePath(path.join(dstPath,file));
+        switch (cubemapImage) {
+        case bg.scene.CubemapImage.POSITIVE_X:
+            componentData.positiveX = file;
+            break;
+        case bg.scene.CubemapImage.NEGATIVE_X:
+            componentData.negativeX = file;
+            break;
+        case bg.scene.CubemapImage.POSITIVE_Y:
+            componentData.positiveY = file;
+            break;
+        case bg.scene.CubemapImage.NEGATIVE_Y:
+            componentData.negativeY = file;
+            break;
+        case bg.scene.CubemapImage.POSITIVE_Z:
+            componentData.positiveZ = file;
+            break;
+        case bg.scene.CubemapImage.NEGATIVE_Z:
+            componentData.negativeZ = file;
+            break;
+        }
+        return bg.base.Writer.CopyFile(src,dst);
+    }
+
+    let g_backFace       = [  0.5,-0.5,-0.5, -0.5,-0.5,-0.5, -0.5, 0.5,-0.5,  0.5, 0.5,-0.5 ];
+    let g_rightFace      = [  0.5,-0.5, 0.5,  0.5,-0.5,-0.5,  0.5, 0.5,-0.5,  0.5, 0.5, 0.5 ];
+    let g_frontFace      = [ -0.5,-0.5, 0.5,  0.5,-0.5, 0.5,  0.5, 0.5, 0.5, -0.5, 0.5, 0.5 ];
+    let g_leftFace       = [ -0.5,-0.5,-0.5, -0.5,-0.5, 0.5, -0.5, 0.5, 0.5, -0.5, 0.5,-0.5 ];
+    let g_topFace        = [ -0.5, 0.5, 0.5,  0.5, 0.5, 0.5,  0.5, 0.5,-0.5, -0.5, 0.5,-0.5 ];
+    let g_bottomFace     = [  0.5,-0.5, 0.5, -0.5,-0.5, 0.5, -0.5,-0.5,-0.5,  0.5,-0.5,-0.5 ];
+
+    let g_backFaceNorm   = [ 0, 0, 1,  0, 0, 1,  0, 0, 1,  0, 0, 1 ];
+    let g_rightFaceNorm  = [-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0 ];
+    let g_frontFaceNorm  = [ 0, 0,-1,  0, 0,-1,  0, 0,-1,  0, 0,-1 ];
+    let g_leftFaceNorm   = [ 1, 0, 0,  1, 0, 0,  1, 0, 0,  1, 0, 0 ];
+    let g_topFaceNorm    = [ 0,-1, 0,  0,-1, 0,  0,-1, 0,  0,-1, 0 ];
+    let g_bottomFaceNorm = [ 0, 1, 0,  0, 1, 0,  0, 1, 0,  0, 1, 0 ];
+
+    let uv0 = 0;
+    let uv1 = 1;
+    let g_backFaceUV     = [ uv1,uv0, uv0,uv0, uv0,uv1, uv1,uv1 ];
+    let g_rightFaceUV    = [ uv1,uv0, uv0,uv0, uv0,uv1, uv1,uv1 ];
+    let g_frontFaceUV    = [ uv1,uv0, uv0,uv0, uv0,uv1, uv1,uv1 ];
+    let g_leftFaceUV     = [ uv1,uv0, uv0,uv0, uv0,uv1, uv1,uv1 ];
+    let g_topFaceUV      = [ uv1,uv0, uv0,uv0, uv0,uv1, uv1,uv1 ];
+    let g_bottomFaceUV   = [ uv1,uv0, uv0,uv0, uv0,uv1, uv1,uv1 ];
+
+    let g_index = [ 2,1,0, 0,3,2 ];
+
+    class Skybox extends bg.scene.Component {
+        constructor() {
+            super();
+            this._images = [null, null, null, null, null, null];
+            this._textures = [];
+            this._plist = [];
+            this._material = null;
+        }
+
+        clone(context) {
+            let result = new Skybox();
+            result._images = [
+                this._images[0],
+                this._images[1],
+                this._images[2],
+                this._images[3],
+                this._images[4],
+                this._images[5]
+            ];
+            context = context || this.node && this.node.context;
+            if (context) {
+                result.loadSkybox(context);
+            }
+            return result;
+        }
+
+        setImageUrl(imgCode,texture) {
+            this._images[imgCode] = texture;
+        }
+
+        getImageUrl(imgCode) {
+            return this._images[imgCode];
+        }
+
+        getTexture(imgCode) {
+            return this._textures[imgCode];
+        }
+
+        loadSkybox(context = null,onProgress = null) {
+            context = context || this.node && this.node.context;
+
+            let backPlist   = new bg.base.PolyList(context);
+            let rightPlist  = new bg.base.PolyList(context);
+            let frontPlist  = new bg.base.PolyList(context);
+            let leftPlist   = new bg.base.PolyList(context);
+            let topPlist    = new bg.base.PolyList(context);
+            let bottomPlist = new bg.base.PolyList(context);
+
+            backPlist.vertex = g_backFace; backPlist.normal = g_backFaceNorm; backPlist.texCoord0 = g_backFaceUV; backPlist.texCoord1 = g_backFaceUV; backPlist.index = g_index;
+            backPlist.build();
+
+            rightPlist.vertex = g_rightFace; rightPlist.normal = g_rightFaceNorm; rightPlist.texCoord0 = g_rightFaceUV; rightPlist.texCoord1 = g_rightFaceUV; rightPlist.index = g_index;
+            rightPlist.build();
+
+            frontPlist.vertex = g_frontFace; frontPlist.normal = g_frontFaceNorm; frontPlist.texCoord0 = g_frontFaceUV; frontPlist.texCoord1 = g_frontFaceUV; frontPlist.index = g_index;
+            frontPlist.build();
+
+            leftPlist.vertex = g_leftFace; leftPlist.normal = g_leftFaceNorm; leftPlist.texCoord0 = g_leftFaceUV; leftPlist.texCoord1 = g_leftFaceUV; leftPlist.index = g_index;
+            leftPlist.build();
+
+            topPlist.vertex = g_topFace; topPlist.normal = g_topFaceNorm; topPlist.texCoord0 = g_topFaceUV; topPlist.texCoord1 = g_topFaceUV; topPlist.index = g_index;
+            topPlist.build();
+
+            bottomPlist.vertex = g_bottomFace; bottomPlist.normal = g_bottomFaceNorm; bottomPlist.texCoord0 = g_bottomFaceUV; bottomPlist.texCoord1 = g_bottomFaceUV; bottomPlist.index = g_index;
+            bottomPlist.build();
+
+            this._plist = [leftPlist,rightPlist,topPlist,bottomPlist,frontPlist,backPlist];
+            this._material = new bg.base.Material();
+            this._material.receiveShadows = false;
+            this._material.castShadows = false;
+            this._material.unlit = true;
+
+
+            return new Promise((resolve,reject) => {
+                bg.base.Loader.Load(context,this._images,onProgress, {
+                    wrapX:bg.base.TextureWrap.MIRRORED_REPEAT,
+                    wrapY:bg.base.TextureWrap.MIRRORED_REPEAT
+                })
+                    .then((result) => {
+                        this._textures = [
+                            result[this.getImageUrl(bg.scene.CubemapImage.POSITIVE_X)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.NEGATIVE_X)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.POSITIVE_Y)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.NEGATIVE_Y)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.POSITIVE_Z)],
+                            result[this.getImageUrl(bg.scene.CubemapImage.NEGATIVE_Z)]
+                        ];
+                        this._textures.forEach((tex) => {
+                            tex.wrapX = bg.base.TextureWrap.CLAMP;
+                            tex.wrapY = bg.base.TextureWrap.CLAMP;
+                        });
+                        bg.emitImageLoadEvent(result[this.getImageUrl(bg.scene.CubemapImage.POSITIVE_X)]);
+                        resolve();
+                    })
+                    .catch((err) => {
+                        reject(err);
+                    });
+            })
+        }
+
+        display(pipeline,matrixState) {
+            // TODO: extract far clip plane from projection matrix and use it to scale the cube before draw it
+            if (!pipeline.effect) {
+                throw new Error("Could not draw skybox: invalid effect");
+            }
+            if (!this.node.enabled) {
+                return;
+            }
+            else if (this._textures.length==6) {
+                let curMaterial = pipeline.effect.material;
+                pipeline.effect.material = this._material;
+                matrixState.viewMatrixStack.push();
+                matrixState.modelMatrixStack.push();
+                matrixState.viewMatrixStack.matrix.setPosition(0,0,0);
+
+                let projectionMatrix = matrixState.projectionMatrixStack.matrix;
+                let m22 = -projectionMatrix.m22;
+                let m32 = -projectionMatrix.m32;
+                let far = (2.0*m32)/(2.0*m22-2.0);
+                
+                let offset = 1;
+                let scale = bg.Math.sin(bg.Math.PI_4) * far - offset;
+                matrixState.modelMatrixStack.scale(scale,scale,scale);
+                
+                if (pipeline.shouldDraw(this._material)) {
+                    this._plist.forEach((pl,index) => {
+                        this._material.texture = this._textures[index];
+                        pipeline.draw(pl);
+                    });
+                }
+
+                matrixState.modelMatrixStack.pop();
+                matrixState.viewMatrixStack.pop();
+                pipeline.effect.material = curMaterial;
+            }
+        }
+
+        draw(renderQueue,modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+            if (this._textures.length==6) {
+                viewMatrixStack.push();
+                modelMatrixStack.push();
+
+                viewMatrixStack.matrix.setPosition(0,0,0);
+
+                let projectionMatrix = projectionMatrixStack.matrix;
+                let m22 = -projectionMatrix.m22;
+                let m32 = -projectionMatrix.m32;
+                let far = (2.0*m32)/(2.0*m22-2.0);
+                
+                let offset = 1;
+                let scale = bg.Math.sin(bg.Math.PI_4) * far - offset;
+                modelMatrixStack.scale(scale,scale,scale);
+
+                this._plist.forEach((pl,index) => {
+                    this._material.texture = this._textures[index];
+                    renderQueue.renderOpaque(pl,this._material.clone(),modelMatrixStack.matrix,viewMatrixStack.matrix);
+                })
+
+                viewMatrixStack.pop();
+                modelMatrixStack.pop();
+            }
+        }
+
+        removedFromNode() {
+            this._plist.forEach((pl) => {
+                pl.destroy();
+            });
+        }
+
+        deserialize(context,sceneData,url) {
+            this.setImageUrl(
+                bg.scene.CubemapImage.POSITIVE_X,
+                bg.utils.Resource.JoinUrl(url,sceneData["positiveX"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.NEGATIVE_X,
+                bg.utils.Resource.JoinUrl(url,sceneData["negativeX"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.POSITIVE_Y,
+                bg.utils.Resource.JoinUrl(url,sceneData["positiveY"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.NEGATIVE_Y,
+                bg.utils.Resource.JoinUrl(url,sceneData["negativeY"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.POSITIVE_Z,
+                bg.utils.Resource.JoinUrl(url,sceneData["positiveZ"])
+            );
+            this.setImageUrl(
+                bg.scene.CubemapImage.NEGATIVE_Z,
+                bg.utils.Resource.JoinUrl(url,sceneData["negativeZ"])
+            );
+            return this.loadSkybox(context);
+        }
+
+        serialize(componentData,promises,url) {
+            super.serialize(componentData,promises,url);
+            if (!bg.isElectronApp) return;
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.POSITIVE_X,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.NEGATIVE_X,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.POSITIVE_Y,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.NEGATIVE_Y,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.POSITIVE_Z,url.path]));
+            promises.push(copyCubemapImage.apply(this,[componentData,bg.scene.CubemapImage.NEGATIVE_Z,url.path]));
+        }
+    }
+
+    bg.scene.registerComponent(bg.scene,Skybox,"bg.scene.Skybox");
+})();
+(function() {
+    class TextRect extends bg.scene.Component {
+        constructor(rectSize = new bg.Vector2(1,1),textureSize = new bg.Vector2(1000,1000)) {
+            super();
+
+            this._rectSize = rectSize;
+            this._textureSize = textureSize;
+
+            this._textProperties = new bg.base.TextProperties();
+            this._doubleSided = true;
+            this._unlit = false;
+            this._text = "Hello, World!";
+
+            this._sprite = null;
+            this._material = null;
+
+            this._sizeMatrix = bg.Matrix4.Scale(this._rectSize.x,this._rectSize.y,1);
+
+            this._canvasTexture = null;
+            this._dirty = true;
+        }
+
+        clone() {
+            let newInstance = new bg.scene.TextRect();
+            newInstance._text = this._text;
+            newInstance._sprite = this._sprite && this._sprite.clone();
+            newInstance._material = this._material && this._material.clone();
+
+            // TODO: Clone other properties
+            return newInstance;
+        }
+
+        get textProperties() { return this._textProperties; }
+        get text() { return this._text; }
+        set text(t) { this._dirty = true; this._text = t; }
+        get doubleSided() { return this._doubleSided; }
+        set doubleSided(ds) { this._dirty = true; this._doubleSided = ds; }
+        get unlit() { return this._unlit; }
+        set unlit(ul) { this._dirty = true; this._unlit = ul; }
+        get rectSize() { return this._rectSize; }
+        set rectSize(s) {
+            this._sizeMatrix.identity().scale(s.x,s.y,1);
+            this._rectSize = s;
+        }
+
+        // TODO: update texture size
+        get textureSize() { return this._textureSize; }
+        set textureSize(t) {
+            this._dirty = true;
+            this._canvasTexture.resize(t.x,t.y);
+            this._textureSize = t;
+        }
+
+        get material() { return this._material; }
+
+        init() {
+            if (!this._sprite && this.node && this.node.context) {
+                this._sprite = bg.scene.PrimitiveFactory.PlanePolyList(this.node.context,1,1,'z');
+                this._material = new bg.base.Material();
+                this._material.alphaCutoff = 0.9;
+                this._dirty = true;
+            }
+            if (!this._canvasTexture && this.node && this.node.context) {
+                this._canvasTexture = new bg.tools.CanvasTexture(this.node.context,this._textureSize.x,this._textureSize.y,
+                    (ctx,w,h) => {
+                        ctx.clearRect(0,0,w,h);
+                        if (this._textProperties.background!="transparent") {
+                            ctx.fillStyle = this._textProperties.background;
+                            ctx.fillRect(0,0,w,h);
+                        }
+                        ctx.fillStyle = this._textProperties.color;
+                        let textSize = this._textProperties.size;
+                        let font = this._textProperties.font;
+                        let padding = 0;
+                        let italic = this._textProperties.italic ? "italic" : "";
+                        let bold = this._textProperties.bold ? "bold" : "";
+                        ctx.textAlign = this._textProperties.align;
+                        ctx.font = `${ italic } ${ bold } ${ textSize }px ${ font }`;    // TODO: Font and size
+                        let textWidth = ctx.measureText(this._text);
+                        let x = 0;
+                        let y = 0;
+                        switch (ctx.textAlign) {
+                        case "center":
+                            x = w / 2;
+                            y = textSize + padding;
+                            break;
+                        case "right":
+                            x = w;
+                            y = textSize + padding;
+                            break;
+                        default:
+                            x = padding;
+                            y = textSize + padding;
+                        }
+                        let textLines = this._text.split("\n");
+                        textLines.forEach((line) => {
+                            ctx.fillText(line,x, y);
+                            y += textSize;
+                        });
+                    }
+                );
+                this._dirty = true;
+            }
+        }
+
+        frame(delta) {
+            if ((this._dirty || this._textProperties.dirty)  && this._material && this._canvasTexture) {
+                this._canvasTexture.update();
+                this._material.texture = this._canvasTexture.texture;
+                this._material.unlit = this._unlit;
+                this._material.cullFace = !this._doubleSided;
+                this._dirty = false;
+                this.textProperties.dirty = false;
+            }
+        }
+
+        ////// Direct rendering functions: will be deprecated soon
+        display(pipeline,matrixState) {
+            if (!pipeline.effect) {
+                throw new Error("Could not draw TextRect: invalid effect");
+            }
+            if (!this.node.enabled) {
+                return;
+            }
+            else if (this._sprite && this._material) {
+                if (this._sprite.visible) {
+                    let curMaterial = pipeline.effect.material;
+                    matrixState.modelMatrixStack.push();
+                    matrixState.modelMatrixStack.mult(this._sizeMatrix);
+
+                    if (pipeline.shouldDraw(this._material)) {
+                        pipeline.effect.material = this._material;
+                        pipeline.draw(this._sprite);
+                    }
+
+                    matrixState.modelMatrixStack.pop();
+                    pipeline.effect.material = curMaterial;
+                }
+            }
+        }
+
+        ///// Render queue functions
+        draw(renderQueue,modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+            if (this._sprite && this._material) {
+                modelMatrixStack.push();
+                modelMatrixStack.mult(this._sizeMatrix);
+
+                if (this._material.isTransparent) {
+					renderQueue.renderTransparent(this._sprite,this._material,modelMatrixStack.matrix,viewMatrixStack.matrix);
+				}
+				else {
+					renderQueue.renderOpaque(this._sprite,this._material,modelMatrixStack.matrix,viewMatrixStack.matrix);
+				}
+
+                modelMatrixStack.pop();
+            }
+        }
+
+        serialize(componentData,promises,url) {
+            componentData.textProperties = {};
+            this.textProperties.serialize(componentData.textProperties);
+            componentData.text = this.text;
+            componentData.doubleSided = this.doubleSided;
+            componentData.unlit = this.unlit;
+            componentData.textureSize = this.textureSize.toArray();
+            componentData.rectSize = this.rectSize.toArray();
+        }
+
+        deserialize(context,sceneData,url) {
+            this.textProperties.deserialize(sceneData.textProperties);
+            this.text = sceneData.text;
+            this.doubleSided = sceneData.doubleSided;
+            this.unlit = sceneData.unlit;
+            this.textureSize = new bg.Vector2(sceneData.textureSize);
+            this.rectSize = new bg.Vector2(sceneData.rectSize);
+        }
+    }
+
+    bg.scene.registerComponent(bg.scene,TextRect,"bg.scene.TextRect");
+})();
+(function() {
+	
+	class Transform extends bg.scene.Component {
+		constructor(matrix) {
+			super();
+			
+			this._matrix = matrix || bg.Matrix4.Identity();
+			this._globalMatrixValid = false;
+			this._transformVisitor = new bg.scene.TransformVisitor();
+		}
+		
+		clone() {
+			let newTrx = new bg.scene.Transform();
+			newTrx.matrix = new bg.Matrix4(this.matrix);
+			return newTrx;
+		}
+		
+		get matrix() { return this._matrix; }
+		set matrix(m) { this._matrix = m; }
+
+		get globalMatrix() {
+			if (!this._globalMatrixValid) {
+				this._transformVisitor.clear();
+				this.node.acceptReverse(this._transformVisitor);
+				this._globalMatrix = this._transformVisitor.matrix;
+			}
+			return this._globalMatrix;
+		}
+		
+		deserialize(context,sceneData,url) {
+			return new Promise((resolve,reject) => {
+				if (sceneData.transformStrategy) {
+					let str = sceneData.transformStrategy;
+					if (str.type=="TRSTransformStrategy") {
+						this._matrix
+							.identity()
+							.translate(str.translate[0],str.translate[1],str.translate[2]);
+						switch (str.rotationOrder) {
+						case "kOrderXYZ":
+							this._matrix
+								.rotate(str.rotateX,1,0,0)
+								.rotate(str.rotateY,0,1,0)
+								.rotate(str.rotateZ,0,0,1);
+							break;
+						case "kOrderXZY":
+							this._matrix
+								.rotate(str.rotateX,1,0,0)
+								.rotate(str.rotateZ,0,0,1)
+								.rotate(str.rotateY,0,1,0);
+							break;
+						case "kOrderYXZ":
+							this._matrix
+								.rotate(str.rotateY,0,1,0)
+								.rotate(str.rotateX,1,0,0)
+								.rotate(str.rotateZ,0,0,1);
+							break;
+						case "kOrderYZX":
+							this._matrix
+								.rotate(str.rotateY,0,1,0)
+								.rotate(str.rotateZ,0,0,1)
+								.rotate(str.rotateX,1,0,0);
+							break;
+						case "kOrderZYX":
+							this._matrix
+								.rotate(str.rotateZ,0,0,1)
+								.rotate(str.rotateY,0,1,0)
+								.rotate(str.rotateX,1,0,0);
+							break;
+						case "kOrderZXY":
+							this._matrix
+								.rotate(str.rotateZ,0,0,1)
+								.rotate(str.rotateX,1,0,0)
+								.rotate(str.rotateY,0,1,0);
+							break;
+						}
+						this._matrix.scale(str.scale[0],str.scale[1],str.scale[2])
+					}
+				}
+				else if (sceneData.transformMatrix) {
+					this._matrix = new bg.Matrix4(sceneData.transformMatrix);
+				}
+				resolve(this);
+			});
+		}
+
+		serialize(componentData,promises,url) {
+			super.serialize(componentData,promises,url);
+			componentData.transformMatrix = this._matrix.toArray();
+		}
+		
+		// The direct render methods will be deprecated soon
+		////// Direct render methods
+		willDisplay(pipeline,matrixState) {
+			if (this.node && this.node.enabled) {
+				matrixState.modelMatrixStack.push();
+				matrixState.modelMatrixStack.mult(this.matrix);
+			}
+		}
+		
+		didDisplay(pipeline,matrixState) {
+			if (this.node && this.node.enabled) {
+				matrixState.modelMatrixStack.pop();
+			}
+			this._globalMatrixValid = false;
+		}
+		////// End direct render methods
+
+
+		////// Render queue methods
+		willUpdate(modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+			if (this.node && this.node.enabled) {
+				modelMatrixStack.push();
+				modelMatrixStack.mult(this.matrix);
+			}
+		}
+
+		didUpdate(modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+			if (this.node && this.node.enabled) {
+				modelMatrixStack.pop();
+			}
+			this._globalMatrixValid = false;
+		}
+		////// End render queue methods
+		
+	}
+	
+	bg.scene.registerComponent(bg.scene,Transform,"bg.scene.Transform");
+	
+})();
+(function() {
+	
+	class DrawVisitor extends bg.scene.NodeVisitor {
+		constructor(pipeline,matrixState) {
+			super();
+			this._pipeline = pipeline || bg.base.Pipeline.Current();
+			this._matrixState = matrixState || bg.base.MatrixState.Current();
+			this._forceDraw = false;
+		}
+
+		get forceDraw() { return this._forceDraw; }
+		set forceDraw(f) { this._forceDraw = f; }
+		
+		get pipeline() { return this._pipeline; }
+		get matrixState() { return this._matrixState; }
+		
+		visit(node) {
+			node.willDisplay(this.pipeline,this.matrixState);
+			node.display(this.pipeline,this.matrixState,this.forceDraw);
+		}
+		
+		didVisit(node) {
+			node.didDisplay(this.pipeline,this.matrixState);
+		}
+	}
+	
+	bg.scene.DrawVisitor = DrawVisitor;
+
+	class RenderQueueVisitor extends bg.scene.NodeVisitor {
+		constructor(modelMatrixStack,viewMatrixStack,projectionMatrixStack) {
+			super();
+			this._modelMatrixStack = modelMatrixStack || new bg.base.MatrixStack();
+			this._viewMatrixStack = viewMatrixStack || new bg.base.MatrixStack();
+			this._projectionMatrixStack = projectionMatrixStack || new bg.base.MatrixStack();
+			this._renderQueue = new bg.base.RenderQueue();
+		}
+
+		get modelMatrixStack() { return this._modelMatrixStack; }
+		set modelMatrixStack(m) { this._modelMatrixStack = m; }
+
+		get viewMatrixStack() { return this._viewMatrixStack; }
+		set viewMatrixStack(m) { this._viewMatrixStack = m; }
+
+		get projectionMatrixStack() { return this._projectionMatrixStack }
+		set projectionMatrixStack(m) { this._projectionMatrixStack = m; }
+
+		get renderQueue() { return this._renderQueue; }
+
+		visit(node) {
+			node.willUpdate(this._modelMatrixStack);
+			node.draw(this._renderQueue,this._modelMatrixStack, this._viewMatrixStack, this._projectionMatrixStack);
+		}
+
+		didVisit(node) {
+			node.didUpdate(this._modelMatrixStack, this._viewMatrixStack, this._projectionMatrixStack);
+		}
+	}
+
+	bg.scene.RenderQueueVisitor = RenderQueueVisitor;
+	
+	class FrameVisitor extends bg.scene.NodeVisitor {
+		constructor() {
+			super();
+			this._delta = 0;
+		}
+		
+		get delta() { return this._delta; }
+		set delta(d) { this._delta = d; }
+
+		visit(node) {
+			node.frame(this.delta);
+		}
+	}
+	
+	bg.scene.FrameVisitor = FrameVisitor;
+	
+	class TransformVisitor extends bg.scene.NodeVisitor {
+		constructor() {
+			super();
+			this._matrix = bg.Matrix4.Identity();
+		}
+		
+		get matrix() { return this._matrix; }
+		
+		clear() {
+			this._matrix = bg.Matrix4.Identity();
+		}
+
+		visit(node) {
+			let trx = node.component("bg.scene.Transform");
+			if (trx) {
+				this._matrix.mult(trx.matrix);
+			}
+		}
+	}
+	
+	bg.scene.TransformVisitor = TransformVisitor;
+	
+	class InputVisitor extends bg.scene.NodeVisitor {
+		
+		visit(node) {
+			if (this._operation) {
+				node[this._operation](this._event);
+			}
+		}
+		
+		keyDown(scene,evt) {
+			this._operation = "keyDown";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		keyUp(scene,evt) {
+			this._operation = "keyUp";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		mouseUp(scene,evt) {
+			this._operation = "mouseUp";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		mouseDown(scene,evt) {
+			this._operation = "mouseDown";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		mouseMove(scene,evt) {
+			this._operation = "mouseMove";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		mouseOut(scene,evt) {
+			this._operation = "mouseOut";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		mouseDrag(scene,evt) {
+			this._operation = "mouseDrag";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		mouseWheel(scene,evt) {
+			this._operation = "mouseWheel";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		touchStart(scene,evt) {
+			this._operation = "touchStart";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		touchMove(scene,evt) {
+			this._operation = "touchMove";
+			this._event = evt;
+			scene.accept(this);
+		}
+		
+		touchEnd(scene,evt) {
+			this._operation = "touchEnd";
+			this._event = evt;
+			scene.accept(this);
+		}
+	}
+	
+	bg.scene.InputVisitor = InputVisitor;
+
+	class BoundingBoxVisitor extends bg.scene.NodeVisitor {
+		constructor() {
+			super();
+			this.clear();
+		}
+
+		get min() {
+			return this._min;
+		}
+
+		get max() {
+			return this._max;
+		}
+
+		get size() {
+			return this._size;
+		}
+
+		clear() {
+			// left, right, bottom, top, back, front
+			this._min = new bg.Vector3(bg.Math.FLOAT_MAX,bg.Math.FLOAT_MAX,bg.Math.FLOAT_MAX);
+			this._max = new bg.Vector3(-bg.Math.FLOAT_MAX,-bg.Math.FLOAT_MAX,-bg.Math.FLOAT_MAX);
+			this._size = new bg.Vector3(0,0,0);
+		}
+
+		visit(node) {
+			let trx = bg.Matrix4.Identity();
+			if (node.component("bg.scene.Transform")) {
+				trx = node.component("bg.scene.Transform").globalMatrix;
+			}
+			if (node.component("bg.scene.Drawable")) {
+				let bb = new bg.tools.BoundingBox(node.component("bg.scene.Drawable"),new bg.Matrix4(trx));
+				this._min = bg.Vector.MinComponents(this._min,bb.min);
+				this._max = bg.Vector.MaxComponents(this._max,bb.max);
+				this._size = bg.Vector3.Sub(this._max, this._min);
+			}
+		}
+	}
+
+	bg.scene.BoundingBoxVisitor = BoundingBoxVisitor;
+
+
+	class FindComponentVisitor extends bg.scene.NodeVisitor {
+		constructor(componentId) {
+			super();
+			this.componentId = componentId;
+			this.clear();
+		}
+
+		get result() {
+			return this._result;
+		}
+
+		clear() {
+			this._result = [];
+		}
+
+		visit(node) {
+			if (node.component(this.componentId)) {
+				this._result.push(node);
+			}
+		}
+	}
+
+	bg.scene.FindComponentVisitor = FindComponentVisitor;
+})();
+(function() {
+		
+	function readBlock(arrayBuffer,offset) {
+		var block = new Uint8Array(arrayBuffer,offset,4);
+		block = String.fromCharCode(block[0]) + String.fromCharCode(block[1]) + String.fromCharCode(block[2]) + String.fromCharCode(block[3]);
+		return block;
+	}
+
+	function readInt(arrayBuffer,offset) {
+		var dataView = new DataView(arrayBuffer,offset,4);
+		return dataView.getInt32(0);
+	}
+	
+	function readFloat(arrayBuffer,offset) {
+		var dataView = new DataView(arrayBuffer,offset,4);
+		return dataView.getFloat32(0);
+	}
+	
+	function readMatrix4(arrayBuffer,offset) {
+		var response = {offset:0,data:[]}
+		var size = 16;
+		var dataView = new DataView(arrayBuffer,offset, size*4);
+		var littleEndian = false;
+		for (var i=0;i<size;++i) {
+			response.data[i] = dataView.getFloat32(i*4,littleEndian);
+		}
+		response.offset += size * 4;
+		return response;
+	}
+
+	function readString(arrayBuffer,offset) {
+		var response = {offset:0,data:""}
+		var size = readInt(arrayBuffer,offset);
+		response.offset += 4;
+		var strBuffer = new Uint8Array(arrayBuffer, offset + 4, size);
+		for (var i=0;i<size;++i) {
+			response.data += String.fromCharCode(strBuffer[i]);
+		}
+		response.offset += size;
+		return response;
+	}
+	
+	function readFloatArray(arrayBuffer,offset) {
+		var response = {offset:0,data:[]}
+		var size = readInt(arrayBuffer,offset);
+		response.offset += 4;
+		var dataView = new DataView(arrayBuffer,offset + 4, size*4);
+		var littleEndian = false;
+		for (var i=0;i<size;++i) {
+			response.data[i] = dataView.getFloat32(i*4,littleEndian);
+		}
+		response.offset += size * 4;
+		return response;
+	}
+	
+	function readIndexArray(arrayBuffer,offset) {
+		var response = {offset:0,data:[]}
+		var size = readInt(arrayBuffer,offset);
+		response.offset += 4;
+		var dataView = new DataView(arrayBuffer,offset + 4, size*4);
+		var littleEndian = false;
+		for (var i=0;i<size;++i) {
+			response.data[i] = dataView.getInt32(i*4,littleEndian);
+		}
+		response.offset += size * 4;
+		return response;
+	}
+	
+	function addJoint(node,type,jointData) {
+		let joint =  new bg.physics[jointData.type]();
+		joint.offset = new bg.Vector3(...jointData.offset);
+		joint.roll = jointData.roll;
+		joint.pitch = jointData.pitch;
+		joint.yaw = jointData.yaw;
+		let component = new bg.scene[type](joint);
+		node.addComponent(component);
+	}
+	
+	class VWGLBParser {
+		constructor(context,data) {
+			this._context = context;
+		}
+
+		loadDrawable(data,path) {
+			this._jointData = null;
+			var parsedData = this.parseData(data);
+			return this.createDrawable(parsedData,path);
+		}
+		
+		parseData(data) {
+			let polyLists = [];
+			let materials = null;
+			let components = null;
+			
+			let offset = 0;
+			let header = new Uint8Array(data,0,8);
+			offset = 8;
+			let hdr = String.fromCharCode(header[4]) + String.fromCharCode(header[5]) + String.fromCharCode(header[6]) + String.fromCharCode(header[7]);
+			
+			if (header[0]==1) throw "Could not open the model file. This file has been saved as computer (little endian) format, try again saving it in network (big endian) format";
+			if (hdr!='hedr') throw "File format error. Expecting header";
+			
+			let version = {maj:header[1],min:header[2],rev:header[3]};
+			bg.log("vwglb file version: " + version.maj + "." + version.min + "." + version.rev + ", big endian");
+			
+			let numberOfPolyList = readInt(data,offset);
+			offset += 4;
+			
+			let mtrl = readBlock(data,offset);
+			offset += 4;
+			if (mtrl!='mtrl') throw "File format error. Expecting materials definition";
+			
+			let matResult = readString(data,offset);
+			offset += matResult.offset;
+			materials = JSON.parse(matResult.data);
+			
+			let proj = readBlock(data,offset);
+			if (proj=='proj') {
+				// Projectors are deprecated. This section only skips the projector section
+				offset += 4;				
+				let shadowTexFile = readString(data,offset);
+				offset += shadowTexFile.offset;
+				
+				let attenuation = readFloat(data,offset);
+				offset +=4;
+				
+				let projectionMatData = readMatrix4(data,offset);
+				offset += projectionMatData.offset;
+				let projMatrix = projectionMatData.data;
+				
+				let transformMatData = readMatrix4(data,offset);
+				offset += transformMatData.offset;
+				let transMatrix = transformMatData.data;
+				
+				// model projectors are deprecated
+				//projector = new vwgl.Projector();
+				//projector.setProjection(new vwgl.Matrix4(projMatrix));
+				//projector.setTransform(new vwgl.Matrix4(transMatrix));
+				//projector.setTexture(loader.loadTexture(shadowTexFile.data))
+			}
+			
+			let join = readBlock(data,offset);
+			if (join=='join') {
+				offset += 4;
+				
+				let jointData = readString(data,offset);
+				offset += jointData.offset;
+				
+				let jointText = jointData.data;
+				try {
+					this._jointData = JSON.parse(jointText);
+				}
+				catch (e) {
+					throw new Error("VWGLB file format reader: Error parsing joint data");
+				}
+			}
+			
+			let block = readBlock(data,offset);
+			if (block!='plst') throw "File format error. Expecting poly list";
+			let done = false;
+			offset += 4;
+			let plistName;
+			let matName;
+			let vArray;
+			let nArray;
+			let t0Array;
+			let t1Array;
+			let t2Array;
+			let iArray;
+			while (!done) {
+				block = readBlock(data,offset);
+				offset += 4;
+				let strData = null;
+				let tarr = null;
+				switch (block) {
+				case 'pnam':
+					strData = readString(data,offset);
+					offset += strData.offset;
+					plistName = strData.data;
+					break;
+				case 'mnam':
+					strData = readString(data,offset);
+					offset += strData.offset;
+					matName = strData.data;
+					break;
+				case 'varr':
+					let varr = readFloatArray(data,offset);
+					offset += varr.offset;
+					vArray = varr.data;
+					break;
+				case 'narr':
+					let narr = readFloatArray(data,offset);
+					offset += narr.offset;
+					nArray = narr.data;
+					break;
+				case 't0ar':
+					tarr = readFloatArray(data,offset);
+					offset += tarr.offset;
+					t0Array = tarr.data;
+					break;
+				case 't1ar':
+					tarr = readFloatArray(data,offset);
+					offset += tarr.offset;
+					t1Array = tarr.data;
+					break;
+				case 't2ar':
+					tarr = readFloatArray(data,offset);
+					offset += tarr.offset;
+					t2Array = tarr.data;
+					break;
+				case 'indx':
+					let iarr = readIndexArray(data,offset);
+					offset += iarr.offset;
+					iArray = iarr.data;
+					break;
+				case 'plst':
+				case 'endf':
+					if (block=='endf' && (offset + 4)<data.byteLength) {
+						try {
+							block = readBlock(data,offset);
+							offset += 4;
+							if (block=='cmps') {
+								let componentData = readString(data,offset);
+								offset += componentData.offset;
+	
+								// Prevent a bug in the C++ API version 2.0, that inserts a comma after the last
+								// element of some arrays and objects
+								componentData.data = componentData.data.replace(/,[\s\r\n]*\]/g,']');
+								componentData.data = componentData.data.replace(/,[\s\r\n]*\}/g,'}');
+								components = JSON.parse(componentData.data);
+							}
+						}
+						catch (err) {
+							console.error(err.message);
+						}
+						done = true;
+					}
+					else if ((offset + 4)>=data.byteLength) {
+						done = true;
+					}
+
+					let plistData = {
+						name:plistName,
+						matName:matName,
+						vertices:vArray,
+						normal:nArray,
+						texcoord0:t0Array,
+						texcoord1:t1Array,
+						texcoord2:t2Array,
+						indices:iArray
+					}
+					polyLists.push(plistData)
+					plistName = "";
+					matName = "";
+					vArray = null;
+					nArray = null;
+					t0Array = null;
+					t1Array = null;
+					t2Array = null;
+					iArray = null;
+					break;
+				default:
+					throw "File format exception. Unexpected poly list member found";
+				}
+			}
+
+			var parsedData =  {
+				version:version,
+				polyList:polyLists,
+				materials: {}
+			}
+			this._componentData = components;
+			materials.forEach((matData) => {
+				parsedData.materials[matData.name] = matData;
+			});
+			return parsedData;
+		}
+		
+		createDrawable(data,path) {
+			let drawable = new bg.scene.Drawable(this.context);
+			drawable._version = data.version;
+			let promises = [];
+			
+			data.polyList.forEach((plistData) => {
+				let materialData = data.materials[plistData.matName];
+				
+				let polyList = new bg.base.PolyList(this._context);
+				polyList.name = plistData.name;
+				polyList.vertex = plistData.vertices || polyList.vertex;
+				polyList.normal = plistData.normal || polyList.normal;
+				polyList.texCoord0 = plistData.texcoord0 || polyList.texCoord0;
+				polyList.texCoord1 = plistData.texcoord1 || polyList.texCoord1;
+				polyList.texCoord2 = plistData.texcoord2 || polyList.texCoord2;
+				polyList.index = plistData.indices || polyList.index;
+				
+				polyList.groupName = materialData.groupName;
+				polyList.visible = materialData.visible;
+				polyList.visibleToShadows = materialData.visibleToShadows!==undefined ? materialData.visibleToShadows : true;
+				
+				polyList.build();
+
+				promises.push(bg.base.Material.GetMaterialWithJson(this._context,materialData,path)
+					.then(function(material) {
+						drawable.addPolyList(polyList,material);
+					}));
+			});
+			
+			return Promise.all(promises)
+				.then(() => {
+					return drawable;
+				});
+		}
+		
+		addComponents(node,url) {
+			if (this._jointData) {
+				let i = null;
+				let o = null;
+				if (this._jointData.input) {
+					i = this._jointData.input;
+				}
+				if (this._jointData.output && this._jointData.output.length) {
+					o = this._jointData.output[0];
+				}
+				
+				if (i) addJoint(node,"InputChainJoint",i);
+				if (o) addJoint(node,"OutputChainJoint",o);
+			}
+
+			if (this._componentData) {
+				console.log("Component data found");
+				let baseUrl = url;
+				if (bg.isElectronApp) {
+					baseUrl = bg.base.Writer.StandarizePath(url);
+				}
+				baseUrl = baseUrl.split("/");
+				baseUrl.pop();
+				baseUrl = baseUrl.join("/");
+				this._componentData.forEach((cmpData) => {
+					bg.scene.Component.Factory(this.context,cmpData,node,baseUrl)
+				})
+			}
+		}
+	}
+	
+	class VWGLBLoaderPlugin extends bg.base.LoaderPlugin {
+		acceptType(url,data) {
+			let ext = bg.utils.Resource.GetExtension(url);
+			return ext=="vwglb" || ext=="bg2";
+		}
+		
+		load(context,url,data) {
+			return new Promise((accept,reject) => {
+				if (data) {
+					try {
+						let parser = new VWGLBParser(context,data);
+						let path = url.substr(0,url.lastIndexOf("/"));
+						parser.loadDrawable(data,path)
+							.then((drawable) => {
+								let node = new bg.scene.Node(context,drawable.name);
+								node.addComponent(drawable);
+								parser.addComponents(node,url);
+								accept(node);
+							});
+					}
+					catch(e) {
+						reject(e);
+					}
+				}
+				else {
+					reject(new Error("Error loading drawable. Data is null"));
+				}
+			});
+		}
+	}
+
+	// This plugin load vwglb and bg2 files, but will also try to load the associated bg2mat file
+	class Bg2LoaderPlugin extends VWGLBLoaderPlugin {
+		load(context,url,data) {
+			let promise = super.load(context,url,data);
+			return new Promise((resolve,reject) => {
+				promise
+					.then((node) => {
+						let basePath = url.split("/");
+						basePath.pop();
+						basePath = basePath.join("/") + '/';
+						let matUrl = url.split(".");
+						matUrl.pop();
+						matUrl.push("bg2mat");
+						matUrl = matUrl.join(".");
+						bg.utils.Resource.LoadJson(matUrl)
+							.then((matData) => {
+								let promises = [];
+								try {
+									let drw = node.component("bg.scene.Drawable");
+									drw.forEach((plist,mat)=> {
+										let matDef = null;
+										matData.some((defItem) => {
+											if (defItem.name==plist.name) {
+												matDef = defItem;
+												return true;
+											}
+										});
+
+										if (matDef) {
+											let p = bg.base.Material.FromMaterialDefinition(context,matDef,basePath);
+											promises.push(p)
+											p.then((newMat) => {
+													mat.assign(newMat);
+												});
+										}
+									});
+								}
+								catch(err) {
+									
+								}
+								return Promise.all(promises);
+							})
+							.then(() => {
+								resolve(node);
+							})
+							.catch(() => {	// bg2mat file not found
+								resolve(node);
+							});
+					})
+					.catch((err) => {
+						reject(err);
+					});
+			});
+		}
+	}
+
+	bg.base.VWGLBLoaderPlugin = VWGLBLoaderPlugin;
+	bg.base.Bg2LoaderPlugin = Bg2LoaderPlugin;
+	
+})();
+bg.manipulation = {};
+(function() {
+
+    class DrawGizmoVisitor extends bg.scene.DrawVisitor {
+        constructor(pipeline,matrixState) {
+            super(pipeline,matrixState);
+            this._sprite = bg.scene.PrimitiveFactory.PlanePolyList(pipeline.context,1,1,"z");
+
+            this._gizmoScale = 1;
+
+            this._gizmoIcons = [];
+
+            this._show3dGizmos = true;
+        }
+
+        get gizmoScale() { return this._gizmoScale; }
+        set gizmoScale(s) { this._gizmoScale = s; }
+
+        get show3dGizmos() { return this._show3dGizmos; }
+        set show3dGizmos(g) { this._show3dGizmos = g; }
+
+        clearGizmoIcons() { this._gizmoIcons = []; }
+        addGizmoIcon(type,icon,visible=true) { this._gizmoIcons.push({ type:type, icon:icon, visible:visible }); }
+        setGizmoIconVisibility(type,visible) {
+            this._gizmoIcons.some((iconData) => {
+                if (iconData.type==type) {
+                    iconData.visible = visible;
+                }
+            })
+        }
+
+        get gizmoIcons() { return this._gizmoIcons; }
+
+        getGizmoIcon(node) {
+            let icon = null;
+            this._gizmoIcons.some((iconData) => {
+                if (node.component(iconData.type) && iconData.visible) {
+                    icon = iconData.icon;
+                    return true;
+                }
+            });
+            return icon;
+        }
+
+        visit(node) {
+            super.visit(node);
+
+            let icon = this.getGizmoIcon(node);
+            let gizmoOpacity = this.pipeline.effect.gizmoOpacity;
+            let gizmoColor = this.pipeline.effect.color;
+            this.pipeline.effect.color = bg.Color.White();
+            let dt = this.pipeline.depthTest;
+            this.pipeline.depthTest = false;
+            if (icon) {
+                this.pipeline.effect.texture = icon;
+                this.pipeline.effect.gizmoOpacity = 1;
+                this.matrixState.viewMatrixStack.push();
+                this.matrixState.modelMatrixStack.push();
+                this.matrixState.viewMatrixStack.mult(this.matrixState.modelMatrixStack.matrix);
+                this.matrixState.modelMatrixStack.identity();
+                this.matrixState.viewMatrixStack.matrix.setRow(0,new bg.Vector4(1,0,0,0));
+                this.matrixState.viewMatrixStack.matrix.setRow(1,new bg.Vector4(0,1,0,0));
+                this.matrixState.viewMatrixStack.matrix.setRow(2,new bg.Vector4(0,0,1,0));
+                let s = this.matrixState.cameraDistanceScale * 0.05 * this._gizmoScale;
+                this.matrixState.viewMatrixStack.scale(s,s,s);
+                this.pipeline.draw(this._sprite);
+    
+                this.matrixState.viewMatrixStack.pop();
+                this.matrixState.modelMatrixStack.pop();
+                this.pipeline.effect.gizmoOpacity = gizmoOpacity;
+                this.pipeline.effect.texture = null;
+            }
+            if (this._show3dGizmos) {
+                node.displayGizmo(this.pipeline,this.matrixState);
+            }
+            this.pipeline.effect.color = gizmoColor;
+            this.pipeline.depthTest = dt;
+        }
+
+    }
+
+    bg.manipulation = bg.manipulation || {};
+    bg.manipulation.DrawGizmoVisitor = DrawGizmoVisitor;
+})();
+(function() {
+	
+	class GizmoManager extends bg.app.ContextObject {
+		
+		constructor(context) {
+			super(context);
+			this._gizmoOpacity = 0.9;
+		}
+		
+		get pipeline() {
+			if (!this._pipeline) {
+				this._pipeline = new bg.base.Pipeline(this.context);
+				this._pipeline.blendMode = bg.base.BlendMode.NORMAL;
+				this._pipeline.effect = new bg.manipulation.GizmoEffect(this.context);
+			}
+			return this._pipeline;
+		}
+		
+		get matrixState() {
+			if (!this._matrixState) {
+				this._matrixState = new bg.base.MatrixState();
+			}
+			return this._matrixState;
+		}
+		
+		get drawVisitor() {
+			if (!this._drawVisitor) {
+				this._drawVisitor = new bg.manipulation.DrawGizmoVisitor(this.pipeline,this.matrixState);
+			}
+			return this._drawVisitor;
+		}
+		
+		get gizmoOpacity() { return this._gizmoOpacity; }
+		set gizmoOpacity(o) { this._gizmoOpacity = o; }
+
+		get show3dGizmos() { return this.drawVisitor.show3dGizmos; }
+		set show3dGizmos(g) { this.drawVisitor.show3dGizmos = g; }
+		
+		get working() { return this._working; }
+
+		// Load icon textures manually
+		// addGizmoIcon("bg.scene.Camera",cameraTexture)
+		addGizmoIcon(type,iconTexture) {
+			this.drawVisitor.addGizmoIcon(type,iconTexture);
+		}
+
+		get gizmoIconScale() { return this.drawVisitor.gizmoScale; }
+		set gizmoIconScale(s) { this.drawVisitor.gizmoScale = s; }
+
+		setGizmoIconVisibility(type,visible) { this.drawVisitor.setGizmoIconVisibility(type,visible); }
+		hideGizmoIcon(type) { this.drawVisitor.setGizmoIconVisibility(type,false); }
+		showGizmoIcon(type) { this.drawVisitor.setGizmoIconVisibility(type,true); }
+		
+		get gizmoIcons() { return this.drawVisitor.gizmoIcons; }
+
+		/*
+		 * Receives an array with the icon data, ordered by priority (only one component
+		 * icon will be shown).
+		 * iconData: [
+		 * 		{ type:"bg.scene.Camera", icon:"../data/camera_gizmo.png" },
+		 * 		{ type:"bg.scene.Light", icon:"../data/light_gizmo.png" },
+		 * 		{ type:"bg.scene.Transform", icon:"../data/transform_gizmo.png" },
+		 * 		{ type:"bg.scene.Drawable", icon:"../data/drawable_gizmo.png" },
+		 * ],
+		 * basePath: if specified, this path will be prepended to the icon paths
+		 */
+		loadGizmoIcons(iconData, basePath="",onProgress) {
+			return new Promise((resolve,reject) => {
+				let urls = [];
+				let iconDataResult = [];
+				iconData.forEach((data) => {
+					let itemData = { type:data.type, iconTexture:null };
+					itemData.path = bg.utils.path.join(basePath,data.icon);
+					urls.push(itemData.path);
+					iconDataResult.push(itemData);
+				});
+				bg.base.Loader.Load(this.context,urls,onProgress)
+					.then((result) => {
+						iconDataResult.forEach((dataItem) => {
+							dataItem.iconTexture = result[dataItem.path];
+							this.addGizmoIcon(dataItem.type,dataItem.iconTexture);
+						})
+						resolve(iconDataResult);
+					})
+					.catch((err) => {
+						reject(err);
+					});
+			});
+		}
+
+		clearGizmoIcons() {
+			this.drawVisitor.clearGizmoIcons();
+		}
+		
+		startAction(gizmoPickData,pos) {
+			this._working = true;
+			this._startPoint = pos;
+			this._currentGizmoData = gizmoPickData;
+			if (this._currentGizmoData && this._currentGizmoData.node) {
+				let gizmo = this._currentGizmoData.node.component("bg.manipulation.Gizmo");
+				if (gizmo) {
+					gizmo.beginDrag(this._currentGizmoData.action,pos);
+				}
+			}
+		}
+		
+		move(pos,camera) {
+			if (this._currentGizmoData && this._currentGizmoData.node) {
+				let gizmo = this._currentGizmoData.node.component("bg.manipulation.Gizmo");
+				if (gizmo) {
+					pos.y = camera.viewport.height - pos.y;	// Convert to viewport coords
+					gizmo.drag(this._currentGizmoData.action,this._startPoint,pos,camera);
+				}
+				this._startPoint = pos;
+			}
+		}
+		
+		endAction() {
+			if (this._currentGizmoData && this._currentGizmoData.node) {
+				let gizmo = this._currentGizmoData.node.component("bg.manipulation.Gizmo");
+				if (gizmo) {
+					gizmo.endDrag(this._currentGizmoData.action);
+				}
+			}
+			this._working = false;
+			this._startPoint = null;
+			this._currentGizmoData = null;
+		}
+		
+		drawGizmos(sceneRoot,camera,clearDepth=true) {
+			let restorePipeline = bg.base.Pipeline.Current();
+			let restoreMatrixState = bg.base.MatrixState.Current();
+			bg.base.Pipeline.SetCurrent(this.pipeline);
+			bg.base.MatrixState.SetCurrent(this.matrixState);
+			this.pipeline.viewport = camera.viewport;
+			this.pipeline.effect.matrixState = this.matrixState;
+			
+			if (clearDepth) {
+				this.pipeline.clearBuffers(bg.base.ClearBuffers.DEPTH);
+			}
+			
+			this.matrixState.projectionMatrixStack.set(camera.projection);
+			this.matrixState.viewMatrixStack.set(camera.viewMatrix);										
+			
+			let opacityLayer = this.pipeline.opacityLayer;
+			this.pipeline.opacityLayer = bg.base.OpacityLayer.NONE;
+			
+			this.pipeline.blend = true;
+			this.pipeline.effect.gizmoOpacity = this.gizmoOpacity;
+			sceneRoot.accept(this.drawVisitor);
+			this.pipeline.blend = false;
+			
+			this.pipeline.opacityLayer = opacityLayer;
+			
+			if (restorePipeline) {
+				bg.base.Pipeline.SetCurrent(restorePipeline);
+			}
+			if (restoreMatrixState) {
+				bg.base.MatrixState.SetCurrent(restoreMatrixState);
+			}
+		}
+	}
+	
+	bg.manipulation.GizmoManager = GizmoManager;
+	
+})();
+
+(function() {
+	
+	let shaders = {};
+
+	function initShaders() {
+		shaders[bg.webgl1.EngineId] = {
+			vertex: `
+			attribute vec3 inVertex;
+			attribute vec2 inTexCoord;
+			attribute vec4 inVertexColor;
+			
+			uniform mat4 inModelMatrix;
+			uniform mat4 inViewMatrix;
+			uniform mat4 inProjectionMatrix;
+			
+			varying vec2 fsTexCoord;
+			varying vec4 fsColor;
+			
+			void main() {
+				fsTexCoord = inTexCoord;
+				fsColor = inVertexColor;
+				gl_Position = inProjectionMatrix * inViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+			}
+			`,
+			
+			fragment:`
+			precision highp float;
+			
+			uniform vec4 inColor;
+			uniform sampler2D inTexture;
+			uniform float inOpacity;
+			
+			varying vec2 fsTexCoord;
+			varying vec4 fsColor;
+			
+			void main() {
+				vec4 tex = texture2D(inTexture,fsTexCoord);
+				gl_FragColor = vec4(fsColor.rgb * tex.rgb * inColor.rgb,inOpacity * tex.a);
+			}
+			`
+		};
+	}
+	
+	class GizmoEffect extends bg.base.Effect {
+		constructor(context) { 
+			super(context);
+			initShaders();
+			this._gizmoOpacity = 1;
+			this._color = bg.Color.White();
+		}
+		
+		get inputVars() {
+			return {
+				vertex:'inVertex',
+				color:'inVertexColor',
+				tex0:'inTexCoord'
+			}
+		}
+		
+		set matrixState(m) { this._matrixState = m; }
+		get matrixState() {
+			return this._matrixState;
+		}
+		
+		set texture(t) { this._texture = t; }
+		get texture() { return this._texture; }
+		
+		set color(c) { this._color = c; }
+		get color() { return this._color; }
+
+		set gizmoOpacity(o) { this._gizmoOpacity = o; }
+		get gizmoOpacity() { return this._gizmoOpacity; }
+				
+		get shader() {
+			if (!this._shader) {
+				this._shader = new bg.base.Shader(this.context);
+				this._shader.addShaderSource(bg.base.ShaderType.VERTEX, shaders[bg.webgl1.EngineId].vertex);
+				this._shader.addShaderSource(bg.base.ShaderType.FRAGMENT, shaders[bg.webgl1.EngineId].fragment);
+				this._shader.link();
+				if (!this._shader.status) {
+					console.log(this._shader.compileError);
+					console.log(this._shader.linkError);
+				}
+				else {
+					this._shader.initVars([
+						'inVertex',
+						'inVertexColor',
+						'inTexCoord'
+					],[
+						'inModelMatrix',
+						'inViewMatrix',
+						'inProjectionMatrix',
+						'inColor',
+						'inTexture',
+						'inOpacity'
+					]);
+				}
+			}
+			return this._shader
+		}
+		
+		setupVars() {
+			let whiteTexture = bg.base.TextureCache.WhiteTexture(this.context);
+			this.shader.setMatrix4('inModelMatrix',this.matrixState.modelMatrixStack.matrixConst);
+			this.shader.setMatrix4('inViewMatrix',new bg.Matrix4(this.matrixState.viewMatrixStack.matrixConst));
+			this.shader.setMatrix4('inProjectionMatrix',this.matrixState.projectionMatrixStack.matrixConst);
+			this.shader.setVector4('inColor',this.color);
+			this.shader.setTexture('inTexture', this.texture ? this.texture : whiteTexture,bg.base.TextureUnit.TEXTURE_0);
+			this.shader.setValueFloat('inOpacity',this.gizmoOpacity);
+		}
+		
+	}
+	
+	bg.manipulation.GizmoEffect = GizmoEffect;
+
+	bg.manipulation.GizmoAction = {
+		TRANSLATE: 1,
+		ROTATE: 2,
+		ROTATE_FINE: 3,
+		SCALE: 4,
+		TRANSLATE_X: 5,
+		TRANSLATE_Y: 6,
+		TRANSLATE_Z: 7,
+		ROTATE_X: 8,
+		ROTATE_Y: 9,
+		ROTATE_Z: 10,
+		SCALE_X: 11,
+		SCALE_Y: 12,
+		SCALE_Z: 13,
+
+		NONE: 99
+	};
+
+	function getAction(plist) {
+		if (/rotate.*fine/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.ROTATE_FINE;
+		}
+		if (/rotate.*x/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.ROTATE_X;
+		}
+		if (/rotate.*y/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.ROTATE_Y;
+		}
+		if (/rotate.*z/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.ROTATE_Z;
+		}
+		else if (/rotate/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.ROTATE;
+		}
+		else if (/translate.*x/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.TRANSLATE_X;
+		}
+		else if (/translate.*y/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.TRANSLATE_Y;
+		}
+		else if (/translate.*z/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.TRANSLATE_Z;		
+		}
+		else if (/translate/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.TRANSLATE;
+		}
+		else if (/scale.*x/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.SCALE_X;
+		}
+		else if (/scale.*y/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.SCALE_Y;
+		}
+		else if (/scale.*z/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.SCALE_Z;
+		}
+		else if (/scale/i.test(plist.name)) {
+			return bg.manipulation.GizmoAction.SCALE;
+		}
+	}
+	
+	let s_gizmoCache = {}
+
+	class GizmoCache {
+		static Get(context) {
+			if (!s_gizmoCache[context.uuid]) {
+				s_gizmoCache[context.uuid] = new GizmoCache(context);
+			}
+			return s_gizmoCache[context.uuid];
+ 		}
+		
+		constructor(context) {
+			this._context = context;
+			this._gizmos = {};
+		}
+		
+		find(url) {
+			return this._gizmos[url];
+		}
+		
+		register(url,gizmoItems) {
+			this._gizmos[url] = gizmoItems;
+		}
+		
+		unregister(url) {
+			if (this._gizmos[url]) {
+				delete this._gizmos[url];
+			}
+		}
+		
+		clear() {
+			this._gizmos = {}
+		}
+	}
+	
+	bg.manipulation.GizmoCache = GizmoCache;
+
+	function loadGizmo(context,gizmoUrl,gizmoNode) {
+		return new Promise(function(accept,reject) {
+			if (!gizmoUrl) {
+				accept([]);
+				return;
+			}
+			bg.base.Loader.Load(context,gizmoUrl)
+				.then(function (node) {
+					let drw = node.component("bg.scene.Drawable");
+					let gizmoItems = [];
+					if (drw) {
+						drw.forEach(function (plist,material) {
+							gizmoItems.push({
+								id:bg.manipulation.Selectable.GetIdentifier(),
+								type:bg.manipulation.SelectableType.GIZMO,
+								plist:plist,
+								material:material,
+								action:getAction(plist),
+								node:gizmoNode
+							})
+						});
+					}
+
+					accept(gizmoItems);
+				})
+				
+				.catch(function(err) {
+					reject(err);
+				});
+		});
+	}
+	
+	function rotationBetweenPoints(axis,p1,p2,origin,inc) {
+		if (!inc) inc = 0;
+		let v1 = new bg.Vector3(p2);
+		v1.sub(origin).normalize();
+		let v2 = new bg.Vector3(p1);
+		v2.sub(origin).normalize();
+		let dot = v1.dot(v2);
+	
+		let alpha = Math.acos(dot);
+		if (alpha>=inc || inc==0) {
+			if (inc!=0) {
+				alpha = (alpha>=2*inc) ? 2*inc:inc;
+			}
+			let sign = axis.dot(v1.cross(v2));
+			if (sign<0) alpha *= -1.0;
+			let q = new bg.Quaternion(alpha,axis.x,axis.y,axis.z);
+			q.normalize();
+	
+			if (!isNaN(q.x)) {
+				return q;
+			}
+		}
+		return new bg.Quaternion(0,0,1,0);
+	}
+	
+	class Gizmo extends bg.scene.Component {
+		constructor(gizmoPath,visible=true) {
+			super();
+			this._gizmoPath = gizmoPath;
+			this._offset = new bg.Vector3(0);
+			this._visible = visible;
+			this._gizmoTransform = bg.Matrix4.Identity();
+			this._gizmoP = bg.Matrix4.Identity();
+			this._scale = 5;
+			this._minSize = 0.5;
+		}
+		
+		clone() {
+			let newGizmo = new Gizmo(this._gizmoPath);
+			newGizmo.offset.assign(this._offset);
+			newGizmo.visible = this._visible;
+			return newGizmo;
+		}
+		
+		get offset() { return this._offset; }
+		set offset(v) { this._offset = v; }
+		
+		get visible() { return this._visible; }
+		set visible(v) { this._visible = v; }
+
+		get gizmoTransform() {
+			return this._gizmoTransform;
+		}
+		
+		beginDrag(action,pos) {}
+		
+		drag(action,startPos,endPos,camera) {}
+		
+		endDrag(action) {}
+		
+		findId(id) {
+			let result = null;
+			if (this._gizmoItems) {
+				this._gizmoItems.some((item) => {
+					if (item.id.r==id.r && item.id.g==id.g && item.id.b==id.b && item.id.a==id.a) {
+						result = item;
+						return true;
+					}
+				});
+			}
+			return result;
+		}
+
+		init() {
+			if (!this._error) {
+				this._gizmoItems = [];
+				loadGizmo(this.node.context,this._gizmoPath,this.node)
+					.then((gizmoItems) => {
+						this._gizmoItems = gizmoItems;
+					})
+					
+					.catch((err) => {
+						this._error = true;
+						throw err;
+					})
+			}
+		}
+		
+		frame(delta) {
+			
+		}
+		
+		display(pipeline,matrixState) {
+			if (!this._gizmoItems || !this.visible) return;
+			matrixState.modelMatrixStack.push();
+			let modelview = new bg.Matrix4(matrixState.viewMatrixStack.matrix);
+			modelview.mult(matrixState.modelMatrixStack.matrix);
+			let s = modelview.position.magnitude() / this._scale;
+			matrixState.modelMatrixStack.matrix.setScale(s,s,s);
+			if (pipeline.effect instanceof bg.manipulation.ColorPickEffect &&
+				(pipeline.opacityLayer & bg.base.OpacityLayer.GIZMOS ||
+				pipeline.opacityLayer & bg.base.OpacityLayer.GIZMOS_SELECTION))
+			{
+				let dt = pipeline.depthTest;
+				if (pipeline.opacityLayer & bg.base.OpacityLayer.GIZMOS_SELECTION) {	// drawing gizmos in selection mode
+					pipeline.depthTest = true;
+				}
+				else {
+					pipeline.depthTest = false;
+				}
+				this._gizmoItems.forEach((item) => {
+					// The RGBA values are inverted because the alpha channel must be major than zero to
+					// produce any output in the framebuffer
+					if (item.plist.visible) {
+						pipeline.effect.pickId = new bg.Color(item.id.a/255,item.id.b/255,item.id.g/255,item.id.r/255);
+						pipeline.draw(item.plist);
+					}
+				});
+				pipeline.depthTest = dt;
+			}
+			else if (pipeline.effect instanceof bg.manipulation.GizmoEffect) {
+				// Draw gizmo
+				this._gizmoItems.forEach((item) => {
+					if (item.plist.visible) {
+						pipeline.effect.texture = item.material.texture;
+						pipeline.effect.color = item.material.diffuse;
+						pipeline.draw(item.plist);
+					}
+				})
+			}
+			matrixState.modelMatrixStack.pop();
+		}
+	}
+
+	function translateMatrix(gizmo,intersection) {
+		let matrix = new bg.Matrix4(gizmo.transform.matrix);
+		let rotation = matrix.rotation;
+		let origin = matrix.position;
+		
+		if (!gizmo._lastPickPoint) {
+			gizmo._lastPickPoint = intersection.ray.end;
+			gizmo._translateOffset = new bg.Vector3(origin);
+			gizmo._translateOffset.sub(intersection.ray.end);
+		}
+
+		switch (Math.abs(gizmo.plane)) {
+		case bg.Axis.X:
+			matrix = bg.Matrix4.Translation(origin.x,
+											intersection.point.y + gizmo._translateOffset.y,
+											intersection.point.z + gizmo._translateOffset.z);
+			break;
+		case bg.Axis.Y:
+			matrix = bg.Matrix4.Translation(intersection.point.x + gizmo._translateOffset.x,
+											origin.y,
+											intersection.point.z + gizmo._translateOffset.z);
+			break;
+		case bg.Axis.Z:
+			matrix = bg.Matrix4.Translation(intersection.point.x + gizmo._translateOffset.x,
+											intersection.point.y + gizmo._translateOffset.y,
+											origin.z);
+			break;
+		}
+
+		matrix.mult(rotation);
+		gizmo._lastPickPoint = intersection.point;
+
+		return matrix;
+	}
+
+	function rotateMatrix(gizmo,intersection,fine) {
+		let matrix = new bg.Matrix4(gizmo.transform.matrix);
+		let rotation = matrix.rotation;
+		let origin = matrix.position;
+		
+		if (!gizmo._lastPickPoint) {
+			gizmo._lastPickPoint = intersection.ray.end;
+			gizmo._translateOffset = new bg.Vector3(origin);
+			gizmo._translateOffset.sub(intersection.ray.end);
+		}
+
+		if (!fine) {
+			let prevRotation = new bg.Matrix4(rotation);
+			rotation = rotationBetweenPoints(gizmo.planeAxis,gizmo._lastPickPoint,intersection.point,origin,bg.Math.degreesToRadians(22.5));
+			if (rotation.x!=0 || rotation.y!=0 || rotation.z!=0 || rotation.w!=1) {
+				matrix = bg.Matrix4.Translation(origin)
+					.mult(rotation.getMatrix4())
+					.mult(prevRotation);
+				gizmo._lastPickPoint = intersection.point;
+			}
+		}
+		else {
+			let prevRotation = new bg.Matrix4(rotation);
+			rotation = rotationBetweenPoints(gizmo.planeAxis,gizmo._lastPickPoint,intersection.point,origin);
+			if (rotation.x!=0 || rotation.y!=0 || rotation.z!=0 || rotation.w!=1) {
+				matrix = bg.Matrix4.Translation(origin)
+					.mult(rotation.getMatrix4())
+					.mult(prevRotation);
+				gizmo._lastPickPoint = intersection.point;
+			}
+		}
+
+		return matrix;
+	}
+
+	function calculateClosestPlane(gizmo,matrixState) {
+		let cameraForward = matrixState.viewMatrixStack.matrix.forwardVector;
+		let upVector = matrixState.viewMatrixStack.matrix.upVector;
+		let xVector = new bg.Vector3(1,0,0);
+		let yVector = new bg.Vector3(0,1,0);
+		let zVector = new bg.Vector3(0,0,1);
+		let xVectorInv = new bg.Vector3(-1,0,0);
+		let yVectorInv = new bg.Vector3(0,-1,0);
+		let zVectorInv = new bg.Vector3(0,0,-1);
+		
+		let upAlpha = Math.acos(upVector.dot(yVector));
+		if (upAlpha>0.9) {
+			gizmo.plane = bg.Axis.Y;
+		}
+		else {
+			let angles = [
+				Math.acos(cameraForward.dot(xVector)),		// x
+				Math.acos(cameraForward.dot(yVector)),		// y
+				Math.acos(cameraForward.dot(zVector)),		// z
+				Math.acos(cameraForward.dot(xVectorInv)),	// -x
+				Math.acos(cameraForward.dot(yVectorInv)),	// -y
+				Math.acos(cameraForward.dot(zVectorInv))	// -z
+			];
+			let min = angles[0];
+			let planeIndex = 0;
+			angles.reduce(function(prev,v,index) {
+				if (v<min) {
+					planeIndex = index;
+					min = v;
+				}
+			});
+			switch (planeIndex) {
+			case 0:
+				gizmo.plane = -bg.Axis.X;
+				break;
+			case 1:
+				gizmo.plane = bg.Axis.Y;
+				break;
+			case 2:
+				gizmo.plane = bg.Axis.Z;
+				break;
+			case 3:
+				gizmo.plane = bg.Axis.X;
+				break;
+			case 4:
+				gizmo.plane = -bg.Axis.Y;
+				break;
+			case 5:
+				gizmo.plane = -bg.Axis.Z;
+				break;
+			}
+		}
+	}
+	
+	class PlaneGizmo extends Gizmo {
+		constructor(path,visible=true) {
+			super(path,visible);
+			this._plane = bg.Axis.Y;
+			this._autoPlaneMode = true;
+		}
+		
+		get plane() {
+			return this._plane;
+		}
+
+		set plane(a) {
+			this._plane = a;
+		}
+
+		get autoPlaneMode() {
+			return this._autoPlaneMode;
+		}
+
+		set autoPlaneMode(m) {
+			this._autoPlaneMode = m;
+		}
+
+		get planeAxis() {
+			switch (Math.abs(this.plane)) {
+			case bg.Axis.X:
+				return new bg.Vector3(1,0,0);
+			case bg.Axis.Y:
+				return new bg.Vector3(0,1,0);
+			case bg.Axis.Z:
+				return new bg.Vector3(0,0,1);
+			}
+		}
+
+		get gizmoTransform() {
+			let result = bg.Matrix4.Identity();
+			switch (this.plane) {
+			case bg.Axis.X:
+				return bg.Matrix4.Rotation(bg.Math.degreesToRadians(90),0,0,-1)
+			case bg.Axis.Y:
+				break;
+			case bg.Axis.Z:
+				return bg.Matrix4.Rotation(bg.Math.degreesToRadians(90),1,0,0);
+			case -bg.Axis.X:
+				return bg.Matrix4.Rotation(bg.Math.degreesToRadians(90),0,0,1)
+			case -bg.Axis.Y:
+				return bg.Matrix4.Rotation(bg.Math.degreesToRadians(180),0,-1,0);
+			case -bg.Axis.Z:
+				return bg.Matrix4.Rotation(bg.Math.degreesToRadians(90),-1,0,0);
+			}
+			return result;
+		}
+
+		clone() {
+			let newGizmo = new PlaneGizmo(this._gizmoPath);
+			newGizmo.offset.assign(this._offset);
+			newGizmo.visible = this._visible;
+			return newGizmo;
+		}
+
+		init() {
+			super.init();
+			this._gizmoP = bg.Matrix4.Translation(this.transform.matrix.position);
+		}
+		
+		display(pipeline,matrixState) {
+			if (!this._gizmoItems || !this.visible) return;
+			if (this.autoPlaneMode) {
+				calculateClosestPlane(this,matrixState);
+			}
+			if (!this._gizmoItems || !this.visible) return;
+			let modelview = new bg.Matrix4(matrixState.viewMatrixStack.matrix);
+			modelview.mult(matrixState.modelMatrixStack.matrix);
+			let s = modelview.position.magnitude() / this._scale;
+			s = s<this._minSize ? this._minSize : s;
+			let gizmoTransform = this.gizmoTransform;
+			gizmoTransform.setScale(s,s,s);
+			matrixState.modelMatrixStack.push();
+			matrixState.modelMatrixStack
+				.mult(gizmoTransform);
+			if (pipeline.effect instanceof bg.manipulation.ColorPickEffect &&
+				(pipeline.opacityLayer & bg.base.OpacityLayer.GIZMOS ||
+				pipeline.opacityLayer & bg.base.OpacityLayer.GIZMOS_SELECTION))
+			{
+				let dt = pipeline.depthTest;
+				if (pipeline.opacityLayer & bg.base.OpacityLayer.GIZMOS_SELECTION) {	// drawing gizmos in selection mode
+					pipeline.depthTest = true;
+				}
+				else {
+					pipeline.depthTest = false;
+				}
+				this._gizmoItems.forEach((item) => {
+					// The RGBA values are inverted because the alpha channel must be major than zero to
+					// produce any output in the framebuffer
+					if (item.plist.visible) {
+						pipeline.effect.pickId = new bg.Color(item.id.a/255,item.id.b/255,item.id.g/255,item.id.r/255);
+						pipeline.draw(item.plist);
+					}
+				});
+				pipeline.depthTest = dt;
+			}
+			else if (pipeline.effect instanceof bg.manipulation.GizmoEffect) {
+				// Draw gizmo
+				this._gizmoItems.forEach((item) => {
+					if (item.plist.visible) {
+						pipeline.effect.texture = item.material.texture;
+						pipeline.effect.color = item.material.diffuse;
+						pipeline.draw(item.plist);
+					}
+				})
+			}
+			matrixState.modelMatrixStack.pop();
+		}
+
+		beginDrag(action,pos) {
+			this._lastPickPoint = null;
+		}
+		
+		drag(action,startPos,endPos,camera) {
+			if (this.transform) {
+				let plane = new bg.physics.Plane(this.planeAxis);
+				let ray = bg.physics.Ray.RayWithScreenPoint(endPos,camera.projection,camera.viewMatrix,camera.viewport);
+				let intersection = bg.physics.Intersection.RayToPlane(ray,plane);
+				
+				if (intersection.intersects()) {
+					let matrix = new bg.Matrix4(this.transform.matrix);
+					this._gizmoP = bg.Matrix4.Translation(this.transform.matrix.position);
+					
+					switch (action) {
+					case bg.manipulation.GizmoAction.TRANSLATE:
+						matrix = translateMatrix(this,intersection);
+						break;
+					case bg.manipulation.GizmoAction.ROTATE:
+						matrix = rotateMatrix(this,intersection,false);
+						break;
+					case bg.manipulation.GizmoAction.ROTATE_FINE:
+						matrix = rotateMatrix(this,intersection,true);
+						break;
+					}
+					
+					this.transform.matrix = matrix;
+				}
+			}
+		}
+		
+		endDrag(action) {
+			this._lastPickPoint = null;
+		}
+	}
+
+	class UnifiedGizmo extends Gizmo {
+		constructor(path,visible=true) {
+			super(path,visible);
+			this._translateSpeed = 0.005;
+			this._rotateSpeed = 0.005;
+			this._scaleSpeed = 0.001;
+			this._gizmoTransform = bg.Matrix4.Identity();
+		}
+
+		get gizmoTransform() {
+			return this._gizmoTransform;
+		}
+
+		get translateSpeed() { return this._translateSpeed; }
+		set translateSpeed(s) { this._translateSpeed = s; }
+
+		get rotateSpeed() { return this._rotateSpeed; }
+		set rotateSpeed(s) { this._rotateSpeed = s; }
+
+		get scaleSpeed() { return this._scaleSpeed; }
+		set scaleSpeed(s) { this._scaleSpeed = s; }
+
+		clone() {
+			let newGizmo = new PlaneGizmo(this._gizmoPath);
+			newGizmo.offset.assign(this._offset);
+			newGizmo.visible = this._visible;
+			return newGizmo;
+		}
+
+		init() {
+			super.init();
+			this._gizmoP = bg.Matrix4.Translation(this.transform.matrix.position);
+			this._gizmoTransform = this.transform.matrix.rotation;
+		}
+		
+		display(pipeline,matrixState) {
+			if (!this._gizmoItems || !this.visible) return;
+			super.display(pipeline,matrixState);
+		}
+
+		beginDrag(action,pos) {
+			this._lastPickPoint = null;
+		}
+		
+		drag(action,startPos,endPos,camera) {
+			if (this.transform) {
+				if (!this._lastPickPoint) {
+					this._lastPickPoint = endPos;
+				}
+
+				let matrix = new bg.Matrix4(this.transform.matrix);
+				this._gizmoP = bg.Matrix4.Translation(this.transform.matrix.position);
+				let diff = new bg.Vector2(this._lastPickPoint);
+				diff.sub(endPos);
+				
+				let matrixState = bg.base.MatrixState.Current();
+				let modelview = new bg.Matrix4(matrixState.viewMatrixStack.matrix);
+				modelview.mult(matrixState.modelMatrixStack.matrix);
+				let s = modelview.position.magnitude() / this._scale;
+				s = s<this._minSize ? this._minSize : s;
+				let scale = matrix.getScale();
+
+				let scaleFactor = 1 - ((diff.x + diff.y) * this.scaleSpeed);
+				switch (action) {
+				case bg.manipulation.GizmoAction.SCALE:
+					matrix.scale(scaleFactor,scaleFactor,scaleFactor);
+					break;
+				case bg.manipulation.GizmoAction.TRANSLATE_X:
+					matrix.translate(-(diff.x + diff.y) * this.translateSpeed * s / scale.x, 0, 0);
+					break;
+				case bg.manipulation.GizmoAction.TRANSLATE_Y:
+					matrix.translate(0,-(diff.x + diff.y) * this.translateSpeed * s / scale.y, 0);
+					break;
+				case bg.manipulation.GizmoAction.TRANSLATE_Z:
+					matrix.translate(0, 0,-(diff.x + diff.y) * this.translateSpeed * s  / scale.z);
+					break;
+				case bg.manipulation.GizmoAction.ROTATE_X:
+					matrix.rotate((diff.x + diff.y) * this.rotateSpeed, 1,0,0);
+					this._gizmoP.rotate((diff.x + diff.y) * this.rotateSpeed, 1,0,0);
+					break;
+				case bg.manipulation.GizmoAction.ROTATE_Y:
+					matrix.rotate((diff.x + diff.y) * this.rotateSpeed, 0,1,0);
+					this._gizmoP.rotate((diff.x + diff.y) * this.rotateSpeed, 0,1,0);
+					break;
+				case bg.manipulation.GizmoAction.ROTATE_Z:
+					matrix.rotate((diff.x + diff.y) * this.rotateSpeed, 0,0,1);
+					this._gizmoP.rotate((diff.x + diff.y) * this.rotateSpeed, 0,0,1)
+					break;
+				case bg.manipulation.GizmoAction.SCALE_X:
+					matrix.scale(scaleFactor,1,1);
+					break;
+				case bg.manipulation.GizmoAction.SCALE_Y:
+					matrix.scale(1,scaleFactor,1);
+					break;
+				case bg.manipulation.GizmoAction.SCALE_Z:
+					matrix.scale(1,1,scaleFactor);
+					break;
+				}
+
+				this.transform.matrix = matrix;
+				this._lastPickPoint = endPos;
+			}
+		}
+		
+		endDrag(action) {
+			this._lastPickPoint = null;
+		}
+	}
+
+	bg.manipulation.GizmoMode = {
+        SELECT: 0,
+        TRANSLATE: 1,
+        ROTATE: 2,
+        SCALE: 3,
+        TRANSFORM: 4
+	};
+	
+	class MultiModeGizmo extends UnifiedGizmo {
+		constructor(unified,translate,rotate,scale) {
+			super(unified);
+			this.mode = bg.manipulation.GizmoMode.TRANSFORM;
+			this._transformPath = unified;
+			this._translatePath = translate;
+			this._rotatePath = rotate;
+			this._scalePath = scale;
+			this._gizmoPath = unified;
+		}
+
+		get visible() {
+			return this._mode!=bg.manipulation.GizmoMode.SELECT && this._visible;
+		}
+		set visible(v) { this._visible = v; } 
+
+		get mode() { return this._mode; }
+        set mode(m) {
+            this._mode = m;
+			this._gizmoItems = [];
+			switch (m) {
+			case bg.manipulation.GizmoMode.SELECT:
+				this._gizmoPath = "";
+				break;
+			case bg.manipulation.GizmoMode.TRANSLATE:
+				this._gizmoPath = this._translatePath;
+				break;
+			case bg.manipulation.GizmoMode.ROTATE:
+				this._gizmoPath = this._rotatePath;
+				break;
+			case bg.manipulation.GizmoMode.SCALE:
+				this._gizmoPath = this._scalePath;
+				break;
+			case bg.manipulation.GizmoMode.TRANSFORM:
+				this._gizmoPath = this._transformPath;
+				break;
+			}
+			if (this._gizmoPath) {
+				loadGizmo(this.node.context,this._gizmoPath,this.node)
+					.then((gizmoItems) => {
+						this._gizmoItems = gizmoItems;
+						bg.emitImageLoadEvent();
+					})
+					
+					.catch((err) => {
+						this._error = true;
+						throw err;
+					})
+			}
+        }
+	}
+	
+	// All gizmo types share the same typeId, because a node can only contain one gizmo
+	bg.scene.registerComponent(bg.manipulation,Gizmo,"bg.manipulation.Gizmo");
+	bg.scene.registerComponent(bg.manipulation,PlaneGizmo,"bg.manipulation.Gizmo");
+	bg.scene.registerComponent(bg.manipulation,UnifiedGizmo,"bg.manipulation.Gizmo");
+	bg.scene.registerComponent(bg.manipulation,MultiModeGizmo,"bg.manipulation.Gizmo");
+
+})();
+(function() {
+
+	let shader = {};
+	
+	function initShaders() {
+		shader[bg.webgl1.EngineId] = {
+			vertex: `
+			attribute vec3 inVertex;
+			
+			uniform mat4 inModelMatrix;
+			uniform mat4 inViewMatrix;
+			uniform mat4 inProjectionMatrix;
+			
+			void main() {
+				gl_Position = inProjectionMatrix * inViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+			}
+			`,
+			
+			fragment:`
+			precision highp float;
+			
+			uniform vec4 inColorId;
+			
+			void main() {
+				gl_FragColor = inColorId;
+			}
+			`
+		};
+	}
+	
+	class ColorPickEffect extends bg.base.Effect {
+		constructor(context) { 
+			super(context);
+			initShaders();
+		}
+		
+		get inputVars() {
+			return {
+				vertex:'inVertex'
+			}
+		}
+		
+		set matrixState(m) { this._matrixState = m; }
+		get matrixState() {
+			return this._matrixState;
+		}
+		
+		set pickId(p) { this._pickId = p; }
+		get pickId() { return this._pickId || bg.Color.Transparent(); }
+		
+		get shader() {
+			if (!this._shader) {
+				this._shader = new bg.base.Shader(this.context);
+				this._shader.addShaderSource(bg.base.ShaderType.VERTEX, shader[bg.webgl1.EngineId].vertex);
+				this._shader.addShaderSource(bg.base.ShaderType.FRAGMENT, shader[bg.webgl1.EngineId].fragment);
+				this._shader.link();
+				if (!this._shader.status) {
+					console.log(this._shader.compileError);
+					console.log(this._shader.linkError);
+				}
+				else {
+					this._shader.initVars([
+						'inVertex'
+					],[
+						'inModelMatrix',
+						'inViewMatrix',
+						'inProjectionMatrix',
+						'inColorId'
+					]);
+				}
+			}
+			return this._shader
+		}
+		
+		setupVars() {
+			this.shader.setMatrix4('inModelMatrix',this.matrixState.modelMatrixStack.matrixConst);
+			this.shader.setMatrix4('inViewMatrix',new bg.Matrix4(this.matrixState.viewMatrixStack.matrixConst));
+			this.shader.setMatrix4('inProjectionMatrix',this.matrixState.projectionMatrixStack.matrixConst);
+			this.shader.setVector4('inColorId', this.pickId);
+		}
+		
+	}
+	
+	bg.manipulation.ColorPickEffect = ColorPickEffect;
+
+	class FindPickIdVisitor extends bg.scene.NodeVisitor {
+		constructor(target) {
+			super()
+			this._target = target;
+		}
+		
+		get target() { return this._target; }
+		set target(t) { this._target = t; this._result = null; }
+		
+		get result() { return this._result; }
+		
+		visit(node) {
+			let selectable = node.component("bg.manipulation.Selectable");
+			let gizmo = node.component("bg.manipulation.Gizmo");
+			if (gizmo && !gizmo.visible) {
+				gizmo = null;
+			}
+			this._result = 	this._result ||
+							(selectable && selectable.findId(this.target)) ||
+							(gizmo && gizmo.findId(this.target));
+		}
+	}
+	
+	bg.manipulation.FindPickIdVisitor = FindPickIdVisitor;
+	
+	class MousePicker extends bg.app.ContextObject {
+		
+		constructor(context) {
+			super(context);
+		}
+		
+		get pipeline() {
+			if (!this._pipeline) {
+				this._pipeline = new bg.base.Pipeline(this.context);
+				
+				this._pipeline.effect = new ColorPickEffect(this.context);
+				this._renderSurface = new bg.base.TextureSurface(this.context);
+				this._renderSurface.create();
+				this._pipeline.renderSurface = this._renderSurface;
+				this._pipeline.clearColor = new bg.Color(0,0,0,0);
+			}
+			return this._pipeline;
+		}
+		
+		get matrixState() {
+			if (!this._matrixState) {
+				this._matrixState = new bg.base.MatrixState();
+			}
+			return this._matrixState;
+		}
+		
+		get drawVisitor() {
+			if (!this._drawVisitor) {
+				this._drawVisitor = new bg.scene.DrawVisitor(this.pipeline,this.matrixState);
+			}
+			return this._drawVisitor;
+		}
+		
+		pick(sceneRoot,camera,mousePosition) {
+			let restorePipeline = bg.base.Pipeline.Current();
+			let restoreMatrixState = bg.base.MatrixState.Current();
+			bg.base.Pipeline.SetCurrent(this.pipeline);
+			bg.base.MatrixState.SetCurrent(this.matrixState);
+			this.pipeline.viewport = camera.viewport;
+			this.pipeline.effect.matrixState = this.matrixState;
+			
+			
+			this.pipeline.clearBuffers(bg.base.ClearBuffers.COLOR | bg.base.ClearBuffers.DEPTH);
+			
+			this.matrixState.projectionMatrixStack.set(camera.projection);
+			this.matrixState.viewMatrixStack.set(camera.viewMatrix);										
+			
+			let opacityLayer = this.pipeline.opacityLayer;
+			this.pipeline.opacityLayer = bg.base.OpacityLayer.SELECTION;
+			sceneRoot.accept(this.drawVisitor);
+			this.pipeline.opacityLayer = bg.base.OpacityLayer.GIZMOS_SELECTION;
+			this.pipeline.clearBuffers(bg.base.ClearBuffers.DEPTH);
+			sceneRoot.accept(this.drawVisitor);
+			this.pipeline.opacityLayer = opacityLayer;
+			
+			let buffer = this.pipeline.renderSurface.readBuffer(new bg.Viewport(mousePosition.x, mousePosition.y,1,1));
+			let pickId = {
+				r: buffer[3],
+				g: buffer[2],
+				b: buffer[1],
+				a: buffer[0]
+			};
+			
+			let findIdVisitor = new FindPickIdVisitor(pickId);
+			sceneRoot.accept(findIdVisitor);
+			
+			if (restorePipeline) {
+				bg.base.Pipeline.SetCurrent(restorePipeline);
+			}
+			if (restoreMatrixState) {
+				bg.base.MatrixState.SetCurrent(restoreMatrixState);
+			}
+	
+			return findIdVisitor.result;
+		}
+	}
+	
+	bg.manipulation.MousePicker = MousePicker;
+	
+})();
+
+(function() {
+	
+	let s_r = 0;
+	let s_g = 0;
+	let s_b = 0;
+	let s_a = 0;
+	
+	function incrementIdentifier() {
+		if (s_r==255) {
+			s_r = 0;
+			incG();
+		}
+		else {
+			++s_r;
+		}
+	}
+	
+	function incG() {
+		if (s_g==255) {
+			s_g = 0;
+			incB();
+		}
+		else {
+			++s_g;
+		}
+	}
+	
+	function incB() {
+		if (s_b==255) {
+			s_b = 0;
+			incA();
+		}
+		else {
+			++s_b;
+		}
+	}
+	
+	function incA() {
+		if (s_a==255) {
+			s_a = 0;
+			bg.log("WARNING: Maximum number of picker identifier reached.");
+		}
+		else {
+			++s_a;
+		}
+	}
+	
+	function getIdentifier() {
+		incrementIdentifier();
+		return { r:s_r, g:s_g, b:s_g, a:s_a };
+	}
+	
+	let s_selectMode = false;
+	
+	bg.manipulation.SelectableType = {
+		PLIST:1,
+		GIZMO:2,
+		GIZMO_ICON:3
+	};
+
+	let s_selectionIconPlist = null;
+	function selectionIconPlist() {
+		if (!s_selectionIconPlist) {
+			s_selectionIconPlist = bg.scene.PrimitiveFactory.SpherePolyList(this.node.context,0.5);
+		}
+		return s_selectionIconPlist;
+	}
+
+	let g_selectableIcons = [
+		"bg.scene.Camera",
+		"bg.scene.Light",
+		"bg.scene.Transform",
+		"bg.scene.TextRect"
+	];
+
+	
+	class Selectable extends bg.scene.Component {
+		static SetSelectableIcons(sel) {
+			g_selectableIcons = sel;
+		}
+
+		static AddSelectableIcon(sel) {
+			if (g_selectableIcons.indexOf(sel)==-1) {
+				g_selectableIcons.push(sel);
+			}
+		}
+
+		static RemoveSelectableIcon(sel) {
+			let index = g_selectableIcons.indexOf(sel);
+			if (index>=0) {
+				g_selectableIcons.splice(index,1);
+			}
+		}
+
+		static SetSelectMode(m) { s_selectMode = m; }
+		
+		static GetIdentifier() { return getIdentifier(); }
+		
+		constructor() {
+			super();
+			this._initialized = false;
+			this._selectablePlist = [];
+		}
+		
+		clone() {
+			return new Selectable();
+		}
+		
+		buildIdentifier() {
+			this._initialized = false;
+			this._selectablePlist = [];
+		}
+		
+		findId(id) {
+			let result = null;
+			this._selectablePlist.some((item) => {
+				if (item.id.r==id.r && item.id.g==id.g && item.id.b==id.b && item.id.a==id.a) {
+					result = item;
+					return true;
+				}
+			});
+			return result;
+		}
+		
+		frame(delta) {
+			if (!this._initialized && this.drawable) {
+				this.drawable.forEach((plist,material) => {
+					let id = getIdentifier();
+					this._selectablePlist.push({
+						id:id,
+						type:bg.manipulation.SelectableType.PLIST,
+						plist:plist,
+						material:material,
+						drawable:this.drawable,
+						node:this.node
+					});
+				});
+				this._initialized = true;
+			}
+			else if (!this._initialized) {
+				// Use icon to pick item
+				let id = getIdentifier();
+				this._selectablePlist.push({
+					id:id,
+					type:bg.manipulation.SelectableType.GIZMO_ICON,
+					plist:null,
+					material:null,
+					drawable:null,
+					node:this.node
+				});
+				this._initialized = true;
+			}
+		}
+		
+		display(pipeline,matrixState) {
+			if (pipeline.effect instanceof bg.manipulation.ColorPickEffect &&
+				pipeline.opacityLayer & bg.base.OpacityLayer.SELECTION)
+			{
+				let selectableByIcon = g_selectableIcons.some((componentType) => {
+					return this.node.component(componentType)!=null;
+				});
+				this._selectablePlist.forEach((item) => {
+					let pickId = new bg.Color(item.id.a/255,item.id.b/255,item.id.g/255,item.id.r/255);
+					if (item.plist && item.plist.visible) {
+						// The RGBA values are inverted because the alpha channel must be major than zero to
+						// produce any output in the framebuffer
+						pipeline.effect.pickId = pickId;
+						pipeline.draw(item.plist);
+					}
+					else if (!item.plist && selectableByIcon) {
+						let s = matrixState.cameraDistanceScale * 0.1;
+						pipeline.effect.pickId = pickId;
+						matrixState.modelMatrixStack.push();
+						matrixState.modelMatrixStack.scale(s,s,s);
+						pipeline.draw(selectionIconPlist.apply(this));
+						matrixState.modelMatrixStack.pop();
+					}
+				});
+			}
+		}
+	}
+	
+	bg.scene.registerComponent(bg.manipulation,Selectable,"bg.manipulation.Selectable");
+})();
+(function() {
+
+    function lib() {
+        return bg.base.ShaderLibrary.Get();
+    }
+
+    class BorderDetectionEffect extends bg.base.TextureEffect {
+        constructor(context) {
+            super(context);
+
+            let vertex = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+            let fragment = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+            vertex.addParameter([
+                lib().inputs.buffers.vertex,
+                lib().inputs.buffers.tex0,
+                { name:"fsTexCoord", dataType:"vec2", role:"out" }
+            ]);
+
+            fragment.addParameter([
+                lib().inputs.material.texture,
+                { name:"inTexSize", dataType:"vec2", role:"value" },
+                { name:"inConvMatrix", dataType:"float", role:"value", vec:9 },
+                { name:"inBorderColor", dataType:"vec4", role:"value" },
+                { name:"inBorderWidth", dataType:"float", role:"value" },
+                { name:"fsTexCoord", dataType:"vec2", role:"in" }
+            ]);
+
+            if (bg.Engine.Get().id=="webgl1") {
+                vertex.setMainBody(`
+                gl_Position = vec4(inVertex,1.0);
+                fsTexCoord = inTex0;
+                `);
+                fragment.addFunction(lib().functions.utils.applyConvolution);
+                fragment.setMainBody(`
+                vec4 selectionColor = applyConvolution(inTexture,fsTexCoord,inTexSize,inConvMatrix,inBorderWidth);
+                if (selectionColor.r!=0.0 && selectionColor.g!=0.0 && selectionColor.b!=0.0) {
+                    gl_FragColor = inBorderColor;
+                }
+                else {
+                    discard;
+                }
+                `);
+            }
+
+            this.setupShaderSource([
+                vertex,
+                fragment
+            ]);
+
+            this._highlightColor = bg.Color.White();
+            this._borderWidth = 2;
+        }
+
+        get highlightColor() { return this._highlightColor; }
+        set highlightColor(c) { this._highlightColor = c; }
+
+        get borderWidth() { return this._borderWidth; }
+        set borderWidth(w) { this._borderWidth = w; } 
+
+        setupVars() {
+            let texture = null;
+            if (this._surface instanceof bg.base.Texture) {
+                texture = this._surface;
+            }
+            else if (this._surface instanceof bg.base.RenderSurface) {
+                texture = this._surface.getTexture(0);
+            }
+
+            if (texture) {
+                this.shader.setTexture("inTexture",texture,bg.base.TextureUnit.TEXTURE_0);
+                this.shader.setVector2("inTexSize",texture.size);
+            }
+
+            let convMatrix = [
+                0, 1, 0,
+                1,-4, 1,
+                0, 1, 0
+            ];
+            this.shader.setValueFloatPtr("inConvMatrix",convMatrix);
+            this.shader.setVector4("inBorderColor", this._highlightColor);
+            this.shader.setValueFloat("inBorderWidth", this._borderWidth);
+        }
+    }
+
+    bg.manipulation.BorderDetectionEffect = BorderDetectionEffect;
+
+    let s_plainColorVertex = null;
+    let s_plainColorFragment = null;
+
+    function plainColorVertex() {
+        if (!s_plainColorVertex) {
+            s_plainColorVertex = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+
+            s_plainColorVertex.addParameter(lib().inputs.buffers.vertex);
+            s_plainColorVertex.addParameter(lib().inputs.matrix.all);
+
+            if (bg.Engine.Get().id=="webgl1") {
+                s_plainColorVertex.setMainBody(`
+                    gl_Position = inProjectionMatrix * inViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+                `);
+            }
+        }
+        return s_plainColorVertex;
+    }
+
+    function plainColorFragment() {
+        if (!s_plainColorFragment) {
+            s_plainColorFragment = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+            s_plainColorFragment.addParameter([
+                { name:"inColor", dataType:"vec4", role:"value" },
+                { name:"inSelectMode", dataType:"int", role:"value" }
+            ]);
+
+            if (bg.Engine.Get().id=="webgl1") {
+                s_plainColorFragment.setMainBody(`
+                    if (inSelectMode==0) {
+                        discard;
+                    }
+                    else {
+                        gl_FragColor = inColor;
+                    }
+                `);
+            }
+        }
+        return s_plainColorFragment;
+    }
+
+    class PlainColorEffect extends bg.base.Effect {
+        constructor(context) {
+            super(context);
+
+            let sources = [
+                plainColorVertex(),
+                plainColorFragment()
+            ];
+            this.setupShaderSource(sources);
+        }
+
+        beginDraw() {
+            bg.Math.seed = 1;
+        }
+
+        setupVars() {
+            this._baseColor = new bg.Color(bg.Math.seededRandom(),bg.Math.seededRandom(),bg.Math.seededRandom(),1);
+            let matrixState = bg.base.MatrixState.Current();
+            let viewMatrix = new bg.Matrix4(matrixState.viewMatrixStack.matrixConst);
+            this.shader.setMatrix4('inModelMatrix',matrixState.modelMatrixStack.matrixConst);
+            this.shader.setMatrix4('inViewMatrix',viewMatrix);
+            this.shader.setMatrix4('inProjectionMatrix',matrixState.projectionMatrixStack.matrixConst);
+            this.shader.setVector4('inColor', this._baseColor);
+            this.shader.setValueInt("inSelectMode", this.material.selectMode);
+        }
+    }
+
+    bg.manipulation.PlainColorEffect = PlainColorEffect;
+
+    function buildOffscreenPipeline() {
+        let offscreenPipeline = new bg.base.Pipeline(this.context);
+    
+        let renderSurface = new bg.base.TextureSurface(this.context);
+        offscreenPipeline.effect = new bg.manipulation.PlainColorEffect(this.context);
+        let colorAttachments = [
+            { type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+            { type:bg.base.RenderSurfaceType.DEPTH, format:bg.base.RenderSurfaceFormat.RENDERBUFFER }
+        ];
+        renderSurface.create(colorAttachments);
+        offscreenPipeline.renderSurface = renderSurface;
+
+        return offscreenPipeline;
+    }
+
+    class SelectionHighlight extends bg.app.ContextObject {
+
+        constructor(context) {
+            super(context);
+
+            this._offscreenPipeline = buildOffscreenPipeline.apply(this);
+
+            this._pipeline = new bg.base.Pipeline(this.context);
+            this._pipeline.textureEffect = new bg.manipulation.BorderDetectionEffect(this.context);
+            
+            this._matrixState = new bg.base.MatrixState();
+
+            this._drawVisitor = new bg.scene.DrawVisitor(this._offscreenPipeline,this._matrixState);
+            this._drawVisitor.forceDraw = false;
+        }
+
+        get highlightColor() { return this._pipeline.textureEffect.highlightColor; }
+        set highlightColor(c) { this._pipeline.textureEffect.highlightColor = c; }
+
+        get borderWidth() { return this._pipeline.textureEffect.borderWidth; }
+        set borderWidth(w) { this._pipeline.textureEffect.borderWidth = w; }
+
+        get drawInvisiblePolyList() { return this._drawVisitor.forceDraw; }
+        set drawInvisiblePolyList(d) { this._drawVisitor.forceDraw = d; }
+
+        drawSelection(sceneRoot,camera) {
+            let restorePipeline = bg.base.Pipeline.Current();
+            let restoreMatrixState = bg.base.MatrixState.Current();
+            this._offscreenPipeline.viewport = camera.viewport;
+            this._pipeline.viewport = camera.viewport;
+
+            bg.base.Pipeline.SetCurrent(this._offscreenPipeline);
+            bg.base.MatrixState.SetCurrent(this._matrixState);
+            this._offscreenPipeline.clearBuffers(bg.base.ClearBuffers.COLOR | bg.base.ClearBuffers.DEPTH);
+            this._matrixState.projectionMatrixStack.set(camera.projection);
+            this._matrixState.viewMatrixStack.set(camera.viewMatrix);
+            this._matrixState.modelMatrixStack.identity();
+            sceneRoot.accept(this._drawVisitor);
+            
+            let texture = this._offscreenPipeline.renderSurface.getTexture(0);
+            bg.base.Pipeline.SetCurrent(this._pipeline);
+            this._pipeline.blend = true;
+            this._pipeline.blendMode = bg.base.BlendMode.ADD;
+            this._pipeline.drawTexture(texture);
+
+            if (restorePipeline) {
+                bg.base.Pipeline.SetCurrent(restorePipeline);
+            }
+            if (restoreMatrixState) {
+                bg.base.MatrixState.SetCurrent(restoreMatrixState);
+            }
+        }
+    }
+
+    bg.manipulation.SelectionHighlight = SelectionHighlight;
+
+})();
+(function() {
+	
+	let Action = {
+		ROTATE:0,
+		PAN:1,
+		ZOOM:2
+	};
+	
+	function getOrbitAction(cameraCtrl) {
+		let left = bg.app.Mouse.LeftButton(),
+			middle = bg.app.Mouse.MiddleButton(),
+			right = bg.app.Mouse.RightButton();
+				
+		switch (true) {
+			case left==cameraCtrl._rotateButtons.left &&
+				 middle==cameraCtrl._rotateButtons.middle &&
+				 right==cameraCtrl._rotateButtons.right:
+				 return Action.ROTATE;
+			case left==cameraCtrl._panButtons.left &&
+				 middle==cameraCtrl._panButtons.middle &&
+				 right==cameraCtrl._panButtons.right:
+				 return Action.PAN;
+			case left==cameraCtrl._zoomButtons.left &&
+				 middle==cameraCtrl._zoomButtons.middle &&
+				 right==cameraCtrl._zoomButtons.right:
+				 return Action.ZOOM;
+		}
+	}
+
+	function buildPlist(context,vertex,color) {
+		let plist = new bg.base.PolyList(context);
+		let normal = [];
+		let texCoord0 = [];
+		let index = [];
+		let currentIndex = 0;
+		for (let i=0; i<vertex.length; i+=3) {
+			normal.push(0); normal.push(0); normal.push(1);
+			texCoord0.push(0); texCoord0.push(0);
+			index.push(currentIndex++);
+		}
+		plist.vertex = vertex;
+		plist.normal = normal;
+		plist.texCoord0 = texCoord0;
+		plist.color = color;
+		plist.index = index;
+		plist.drawMode = bg.base.DrawMode.LINES;
+		plist.build();
+		return plist;
+	}
+
+	function getGizmo() {
+		let x = this.minX;
+		let X = this.maxX;
+		let y = this.minY;
+		let Y = this.maxY;
+		let z = this.minZ;
+		let Z = this.maxZ;
+		let vertex = [
+			x,y,z, X,y,z, X,y,z, X,Y,z, X,Y,z, x,Y,z, x,Y,z, x,y,z,	// back
+			x,y,Z, X,y,Z, X,y,Z, X,Y,Z, X,Y,Z, x,Y,Z, x,Y,Z, x,y,Z,	// front
+			x,y,z, x,y,Z,	// edge 1
+			X,y,z, X,y,Z,	// edge 2
+			X,Y,z, X,Y,Z,	// edge 3
+			x,Y,z, x,Y,Z	// edge 4
+		];
+		let color = [];
+		for (let i = 0; i<vertex.length; i+=3) {
+			color.push(this._limitGizmoColor.r);
+			color.push(this._limitGizmoColor.g);
+			color.push(this._limitGizmoColor.b);
+			color.push(this._limitGizmoColor.a);
+		}
+		if (!this._plist) {
+			this._plist = buildPlist(this.node.context,vertex,color);
+		}
+		else {
+			this._plist.updateBuffer(bg.base.BufferType.VERTEX,vertex);
+			this._plist.updateBuffer(bg.base.BufferType.COLOR,color);
+		}
+		return this._plist;
+	}
+	
+	class OrbitCameraController extends bg.scene.Component {
+		static DisableAll(sceneRoot) {
+			let ctrl = sceneRoot.component("bg.manipulation.OrbitCameraController");
+			if (ctrl) {
+				ctrl.enabled = false;
+			}
+			sceneRoot.children.forEach((ch) => OrbitCameraController.DisableAll(ch));
+		}
+
+		static SetUniqueEnabled(orbitCameraController,sceneRoot) {
+			OrbitCameraController.DisableAll(sceneRoot);
+			orbitCameraController.enabled = true;
+		}
+
+		constructor() {
+			super();
+			
+			this._rotateButtons = { left:true, middle:false, right:false };
+			this._panButtons = { left:false, middle:false, right:true };
+			this._zoomButtons = { left:false, middle:true, right:false };
+			
+			this._rotation = new bg.Vector2();
+			this._distance = 5;
+			this._center = new bg.Vector3();
+			this._rotationSpeed = 0.2;
+			this._forward = 0;
+			this._left = 0;
+			this._wheelSpeed = 1;
+			this._minFocus = 2;
+
+			this._minPitch = 0.1;
+			this._maxPitch = 85.0;
+			this._minDistance = 0.4;
+			this._maxDistance = 24.0;
+			
+			this._maxX = 15;
+			this._minX = -15;
+			this._minY = 0.1;
+			this._maxY = 2.0;
+			this._maxZ = 15;
+			this._minZ = -15;
+
+			this._displacementSpeed = 0.1;
+
+			this._enabled = true;
+
+			// Do not serialize/deserialize this:
+			this._keys = {};
+			this._showLimitGizmo = true;
+			this._limitGizmoColor = bg.Color.Green();
+
+			// This is used for orthographic projections
+			this._viewWidth = 50;
+
+			this._lastTouch = [];
+		}
+
+		clone() {
+			let result = new OrbitCameraController();
+			let compData = {};
+			this.serialize(compData,[],"");
+			result.deserialize(null,compData,"");
+			return result;
+		}
+		
+		setRotateButtons(left,middle,right) {
+			this._rotateButtons = { left:left, middle:middle, right:right };
+		}
+		
+		setPanButtons(left,middle,right) {
+			this._panButtons = { left:left, middle:middle, right:right };
+		}
+		
+		setZoomButtons(left,middle,right) {
+			this._zoomButtons = { left:left, middle:middle, right:right };
+		}
+		
+		get rotation() { return this._rotation; }
+		set rotation(r) { this._rotation = r; }
+		get distance() { return this._distance; }
+		set distance(d) { this._distance = d; }
+		get center() { return this._center; }
+		set center(c) { this._center = c; }
+		get whellSpeed() { this._wheelSpeed; }
+		set wheelSpeed(w) { this._wheelSpeed = w; }
+
+		get viewWidth() { return this._viewWidth; }
+		
+		get minCameraFocus() { return this._minFocus; }
+		set minCameraFocus(f) { this._minFocus = f; }
+		get minPitch() { return this._minPitch; }
+		set minPitch(p) { this._minPitch = p; }
+		get maxPitch() { return this._maxPitch; }
+		set maxPitch(p) { this._maxPitch = p; }
+		get minDistance() { return this._minDistance; }
+		set minDistance(d) { this._minDistance = d; }
+		get maxDistance() { return this._maxDistance; }
+		set maxDistance(d) { this._maxDistance = d; }
+
+		get minX() { return this._minX; }
+		get maxX() { return this._maxX; }
+		get minY() { return this._minY; }
+		get maxY() { return this._maxY; }
+		get minZ() { return this._minZ; }
+		get maxZ() { return this._maxZ; }
+
+		set minX(val) { this._minX = val; }
+		set maxX(val) { this._maxX = val; }
+		set minY(val) { this._minY = val; }
+		set maxY(val) { this._maxY = val; }
+		set minZ(val) { this._minZ = val; }
+		set maxZ(val) { this._maxZ = val; }
+
+		get displacementSpeed() { return this._displacementSpeed; }
+		set displacementSpeed(s) { this._displacementSpeed = s; }
+
+		get enabled() { return this._enabled; }
+		set enabled(e) { this._enabled = e; }
+
+		get showLimitGizmo() { return this._showLimitGizmo; }
+		set showLimitGizmo(l) { this._showLimitGizmo = l; }
+		get limitGizmoColor() { return this._limitGizmoColor; }
+		set limitGizmoColor(c) { this._limitGizmoColor = c; }
+
+		displayGizmo(pipeline,matrixState) {
+			if (!this._showLimitGizmo) return;
+			let plist = getGizmo.apply(this);
+			matrixState.modelMatrixStack.push();
+			matrixState.modelMatrixStack.identity();
+			if (plist) {
+				pipeline.draw(plist);
+			}
+			matrixState.modelMatrixStack.pop();
+		}
+
+		serialize(componentData,promises,url) {
+			super.serialize(componentData,promises,url);
+			componentData.rotateButtons = this._rotateButtons;
+			componentData.panButtons = this._panButtons;
+			componentData.zoomButtons = this._zoomButtons;
+			componentData.rotation = this._rotation.toArray();
+			componentData.distance = this._distance;
+			componentData.center = this._center.toArray();
+			componentData.rotationSpeed = this._rotationSpeed;
+			componentData.forward = this._forward;
+			componentData.left = this._left;
+			componentData.wheelSpeed = this._wheelSpeed;
+			componentData.minFocus = this._minFocus;
+			componentData.minPitch = this._minPitch;
+			componentData.maxPitch = this._maxPitch;
+			componentData.minDistance = this._minDistance;
+			componentData.maxDistance = this._maxDistance;
+			componentData.maxX = this._maxX;
+			componentData.minX = this._minX;
+			componentData.minY = this._minY;
+			componentData.maxY = this._maxY;
+			componentData.maxZ = this._maxZ;
+			componentData.minZ = this._minZ;
+			componentData.displacementSpeed = this._displacementSpeed;
+			componentData.enabled = this._enabled;
+		}
+
+		deserialize(context,componentData,url) {
+			this._rotateButtons = componentData.rotateButtons || this._rotateButtons;
+			this._panButtons = componentData.panButtons || this._panButtons;
+			this._zoomButtons = componentData.zoomButtons || this._zoomButtons;
+			this._rotation = new bg.Vector2(componentData.rotation) || this._rotation;
+			this._distance = componentData.distance!==undefined ? componentData.distance : this._distance;
+			this._center = new bg.Vector3(componentData.center) || this._center;
+			this._rotationSpeed = componentData.rotationSpeed!==undefined ? componentData.rotationSpeed : this._rotationSpeed;
+			this._forward = componentData.forward!==undefined ? componentData.forward : this._forward;
+			this._left = componentData.left!==undefined ? componentData.left : this._left;
+			this._wheelSpeed = componentData.wheelSpeed!==undefined ? componentData.wheelSpeed : this._wheelSpeed;
+			this._minFocus = componentData.minFocus!==undefined ? componentData.minFocus : this._minFocus;
+			this._minPitch = componentData.minPitch!==undefined ? componentData.minPitch : this._minPitch;
+			this._maxPitch = componentData.maxPitch!==undefined ? componentData.maxPitch : this._maxPitch;
+			this._minDistance = componentData.minDistance!==undefined ? componentData.minDistance : this._minDistance;
+			this._maxDistance = componentData.maxDistance!==undefined ? componentData.maxDistance : this._maxDistance;
+			this._maxX = componentData.maxX!==undefined ? componentData.maxX : this._maxX;
+			this._minX = componentData.minX!==undefined ? componentData.minX : this._minX;
+			this._minY = componentData.minY!==undefined ? componentData.minY : this._minY;
+			this._maxY = componentData.maxY!==undefined ? componentData.maxY : this._maxY;
+			this._maxZ = componentData.maxZ!==undefined ? componentData.maxZ : this._maxZ;
+			this._minZ = componentData.minZ!==undefined ? componentData.minZ : this._minZ;
+			this._displacementSpeed = componentData.displacementSpeed!==undefined ? componentData.displacementSpeed : this._displacementSpeed;
+			this._enabled = componentData.enabled!==undefined ? componentData.enabled : this._enabled;
+		}
+
+		frame(delta) {
+			let orthoStrategy = this.camera && typeof(this.camera.projectionStrategy)=="object" &&
+								this.camera.projectionStrategy instanceof bg.scene.OrthographicProjectionStrategy ?
+									this.camera.projectionStrategy : null;
+			
+
+			if (this.transform && this.enabled) {
+				let forward = this.transform.matrix.forwardVector;
+				let left = this.transform.matrix.leftVector;
+				forward.scale(this._forward);
+				left.scale(this._left);
+				this._center.add(forward).add(left);
+				
+				let pitch = this._rotation.x>this._minPitch ? this._rotation.x:this._minPitch;
+				pitch = pitch<this._maxPitch ? pitch : this._maxPitch;
+				this._rotation.x = pitch;
+
+				this._distance = this._distance>this._minDistance ? this._distance:this._minDistance;
+				this._distance = this._distance<this._maxDistance ? this._distance:this._maxDistance;
+
+				if (this._mouseButtonPressed) {
+					let displacement = new bg.Vector3();
+					if (this._keys[bg.app.SpecialKey.UP_ARROW]) {
+						displacement.add(this.transform.matrix.backwardVector);
+						bg.app.MainLoop.singleton.windowController.postRedisplay();
+					}
+					if (this._keys[bg.app.SpecialKey.DOWN_ARROW]) {
+						displacement.add(this.transform.matrix.forwardVector);
+						bg.app.MainLoop.singleton.windowController.postRedisplay();
+					}
+					if (this._keys[bg.app.SpecialKey.LEFT_ARROW]) {
+						displacement.add(this.transform.matrix.leftVector);
+						bg.app.MainLoop.singleton.windowController.postRedisplay();
+					}
+					if (this._keys[bg.app.SpecialKey.RIGHT_ARROW]) {
+						displacement.add(this.transform.matrix.rightVector);
+						bg.app.MainLoop.singleton.windowController.postRedisplay();
+					}
+					displacement.scale(this._displacementSpeed);
+					this._center.add(displacement);
+				}
+
+				if (this._center.x<this._minX) this._center.x = this._minX;
+				else if (this._center.x>this._maxX) this._center.x = this._maxX;
+
+				if (this._center.y<this._minY) this._center.y = this._minY;
+				else if (this._center.y>this._maxY) this._center.y = this._maxY;
+
+				if (this._center.z<this._minZ) this._center.z = this._minZ;
+				else if (this._center.z>this._maxZ) this._center.z = this._maxZ;
+
+				this.transform.matrix
+						.identity()
+						.translate(this._center)
+						.rotate(bg.Math.degreesToRadians(this._rotation.y), 0,1,0)
+						.rotate(bg.Math.degreesToRadians(pitch), -1,0,0);
+
+				if (orthoStrategy) {
+					orthoStrategy.viewWidth = this._viewWidth;
+				}
+				else {
+					this.transform.matrix.translate(0,0,this._distance);
+				}
+			}
+			
+			if (this.camera) {
+				this.camera.focus = this._distance>this._minFocus ? this._distance:this._minFocus;
+				
+			}
+		}
+
+		mouseDown(evt) {
+			if (!this.enabled) return;
+			this._mouseButtonPressed = true;
+			this._lastPos = new bg.Vector2(evt.x,evt.y);
+		}
+
+		mouseUp(evt) {
+			this._mouseButtonPressed = false;
+		}
+		
+		mouseDrag(evt) {
+			if (this.transform && this._lastPos && this.enabled) {
+				let delta = new bg.Vector2(this._lastPos.y - evt.y,
+										 this._lastPos.x - evt.x);
+				this._lastPos.set(evt.x,evt.y);
+				let orthoStrategy = this.camera && typeof(this.camera.projectionStrategy)=="object" &&
+								this.camera.projectionStrategy instanceof bg.scene.OrthographicProjectionStrategy ?
+								true : false;
+
+				switch (getOrbitAction(this)) {
+					case Action.ROTATE:
+						delta.x = delta.x * -1;
+						this._rotation.add(delta.scale(0.5));
+						break;
+					case Action.PAN:
+						let up = this.transform.matrix.upVector;
+						let left = this.transform.matrix.leftVector;
+						
+						if (orthoStrategy) {
+							up.scale(delta.x * -0.0005 * this._viewWidth);
+							left.scale(delta.y * -0.0005 * this._viewWidth);
+						}
+						else {
+							up.scale(delta.x * -0.001 * this._distance);
+							left.scale(delta.y * -0.001 * this._distance);
+						}
+						this._center.add(up).add(left);
+						break;
+					case Action.ZOOM:
+						this._distance += delta.x * 0.01 * this._distance;
+						this._viewWidth += delta.x * 0.01 * this._viewWidth;
+						if (this._viewWidth<0.5) this._viewWidth = 0.5;
+						break;
+				}				
+			}
+		}
+
+		mouseWheel(evt) {
+			if (!this.enabled) return;
+			let mult = this._distance>0.01 ? this._distance:0.01;
+			let wMult = this._viewWidth>1 ? this._viewWidth:1;
+			this._distance += evt.delta * 0.001 * mult * this._wheelSpeed;
+			this._viewWidth += evt.delta * 0.0001 * wMult * this._wheelSpeed;
+			if (this._viewWidth<0.5) this._viewWidth = 0.5;
+		}
+		
+		touchStart(evt) {
+			if (!this.enabled) return;
+			this._lastTouch = evt.touches;
+		}
+		
+		touchMove(evt) {
+			if (this._lastTouch.length==evt.touches.length && this.transform && this.enabled) {
+				if (this._lastTouch.length==1) {
+					// Rotate
+					let last = this._lastTouch[0];
+					let t = evt.touches[0];
+					let delta = new bg.Vector2((last.y - t.y)  * -1.0, last.x - t.x);
+					
+					this._rotation.add(delta.scale(0.5));
+				}
+				else if (this._lastTouch.length==2) {
+					// Pan/zoom
+					let l0 = this._lastTouch[0];
+					let l1 = this._lastTouch[1];
+					let t0 = null;
+					let t1 = null;
+					evt.touches.forEach((touch) => {
+						if (touch.identifier==l0.identifier) {
+							t0 = touch;
+						}
+						else if (touch.identifier==l1.identifier) {
+							t1 = touch;
+						}
+					});
+					let dist0 = Math.round((new bg.Vector2(l0.x,l0.y)).sub(new bg.Vector3(l1.x,l1.y)).magnitude());
+					let dist1 = Math.round((new bg.Vector2(t0.x,t0.y)).sub(new bg.Vector3(t1.x,t1.y)).magnitude());
+					let delta = new bg.Vector2(l0.y - t0.y, l1.x - t1.x);
+					let up = this.transform.matrix.upVector;
+					let left = this.transform.matrix.leftVector;
+					
+					up.scale(delta.x * -0.001 * this._distance);
+					left.scale(delta.y * -0.001 * this._distance);
+					this._center.add(up).add(left);
+						
+					this._distance += (dist0 - dist1) * 0.005 * this._distance;
+				}
+			}
+			this._lastTouch = evt.touches;
+		}
+
+		keyDown(evt) {
+			if (!this.enabled) return;
+			this._keys[evt.key] = true;
+			bg.app.MainLoop.singleton.windowController.postRedisplay();
+		}
+
+		keyUp(evt) {
+			if (!this.enabled) return;
+			this._keys[evt.key] = false;
+		}
+	}
+	
+	class FPSCameraController extends bg.scene.Component {
+		
+	}
+	
+	class TargetCameraController extends bg.scene.Component {
+		
+	}
+	
+	bg.scene.registerComponent(bg.manipulation,OrbitCameraController,"bg.manipulation.OrbitCameraController");
+	bg.scene.registerComponent(bg.manipulation,FPSCameraController,"bg.manipulation.FPSCameraController");
+	bg.scene.registerComponent(bg.manipulation,TargetCameraController,"bg.manipulation.TargetCameraController");
+	
+})();
+
+bg.tools = {
+	
+};
+
+(function() {
+	class BoundingBox {
+		constructor(drawableOrPlist, transformMatrix) {
+			this._min = new bg.Vector3(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE);
+			this._max = new bg.Vector3(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);
+			this._center = null;
+			this._size = null;
+			this._halfSize = null;
+
+			this._vertexArray = [];
+			transformMatrix = transformMatrix || bg.Matrix4.Identity();
+			if (drawableOrPlist instanceof bg.scene.Drawable) {
+				this.addDrawable(drawableOrPlist,transformMatrix);
+			}
+			else if (drawableOrPlist instanceof bg.scene.PolyList) {
+				this.addPolyList(drawableOrPlist,transformMatrix);
+			}
+		}
+
+		clear() {
+			this._min = bg.Vector3(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE);
+			this._max = bg.Vector3(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);
+			this._center = this._size = this._halfSize = null;
+		}
+
+		get min() { return this._min; }
+		get max() { return this._max; }
+		get center() {
+			if (!this._center) {
+				let s = this.halfSize;
+				this._center = bg.Vector3.Add(this.halfSize, this._min);
+			}
+			return this._center;
+		}
+
+		get size() {
+			if (!this._size) {
+				this._size = bg.Vector3.Sub(this.max, this.min);
+			}
+			return this._size;
+		} 
+
+		get halfSize() {
+			if (!this._halfSize) {
+				this._halfSize = new bg.Vector3(this.size);
+				this._halfSize.scale(0.5);
+	 		}
+			return this._halfSize;
+		}
+
+		addPolyList(polyList, trx) {
+			this._center = this._size = this._halfSize = null;
+			for (let i = 0; i<polyList.vertex.length; i+=3) {
+				let vec = trx.multVector(new bg.Vector3(polyList.vertex[i],
+														polyList.vertex[i + 1],
+														polyList.vertex[i + 2]));
+				if (vec.x<this._min.x) this._min.x = vec.x;
+				if (vec.y<this._min.y) this._min.y = vec.y;
+				if (vec.z<this._min.z) this._min.z = vec.z;
+				if (vec.x>this._max.x) this._max.x = vec.x;
+				if (vec.z>this._max.z) this._max.z = vec.z;
+				if (vec.y>this._max.y) this._max.y = vec.y;
+			}
+		}
+
+		addDrawable(drawable, trxBase) {
+			drawable.forEach((plist,mat,elemTrx) => {
+                if (plist.visible) {
+                    let trx = new bg.Matrix4(trxBase);
+                    if (elemTrx) trx.mult(elemTrx);
+                    this.addPolyList(plist,trx);
+                }
+			});
+		}
+	}
+
+	bg.tools.BoundingBox = BoundingBox;
+})();
+(function() {
+    function createCanvas(width,height) {
+        let result = document.createElement("canvas");
+        result.width  = width;
+        result.height = height;
+        result.style.width  = width + "px";
+        result.style.height = height + "px";
+        return result;
+    }
+
+    function resizeCanvas(canvas,w,h) {
+        canvas.width  = w;
+        canvas.height = h;
+        canvas.style.width  = w + 'px';
+        canvas.style.height = h + 'px'; 
+    }
+
+    let g_texturePreventRemove = [];
+
+    class CanvasTexture extends bg.app.ContextObject {
+
+        constructor(context,width,height,drawCallback) {
+            super(context);
+
+            this._canvas = createCanvas(width,height);
+                
+            this._drawCallback = drawCallback;
+
+            this._drawCallback(this._canvas.getContext("2d",{preserverDrawingBuffer:true}),this._canvas.width,this._canvas.height);
+            this._texture = bg.base.Texture.FromCanvas(context,this._canvas);
+        }
+
+        get width() { return this._canvas.width; }
+        get height() { return this._canvas.height; }
+        get canvas() { return this._canvas; }
+        get texture() { return this._texture; }
+
+        resize(w,h) {
+            resizeCanvas(this._canvas,w,h);
+            this.update();
+        }
+
+        update() {
+            this._drawCallback(this._canvas.getContext("2d",{preserverDrawingBuffer:true}),this.width,this.height);
+
+			bg.base.Texture.UpdateCanvasImage(this._texture,this._canvas);
+        }
+    }
+
+    bg.tools.CanvasTexture = CanvasTexture;
+})();
+(function() {
+
+    bg.tools = bg.tools || {};
+
+    function packUVs(rect, t1, t2, uvs, pad) {
+		let hpad = pad / 2;
+		uvs[t1.uv0.x] = rect.left + pad; uvs[t1.uv0.y] = rect.top + hpad;
+		uvs[t1.uv1.x] = rect.right - hpad; uvs[t1.uv1.y] = rect.top + hpad;
+		uvs[t1.uv2.x] = rect.right - hpad; uvs[t1.uv2.y] = rect.bottom - pad;
+
+		if (t2) {
+			uvs[t2.uv0.x] = rect.right - pad; uvs[t2.uv0.y] = rect.bottom - hpad;
+			uvs[t2.uv1.x] = rect.left + hpad; uvs[t2.uv1.y] = rect.bottom - hpad;
+			uvs[t2.uv2.x] = rect.left + hpad; uvs[t2.uv2.y] = rect.top + pad;
+		}
+    }
+
+
+    function atlasPolyList(vertex,index,padding=0) {
+        let triangles = [];
+        let uv = [];
+
+        for (let i=0; i<index.length; i+=3) {
+            let i0 = index[i];
+            let i1 = index[i+1];
+            let i2 = index[i+2];
+            triangles.push({
+                indices: [i0, i1, i2],
+                uv0: { x:i0 * 2, y: i0 * 2 + 1 },
+                uv1: { x:i1 * 2, y: i1 * 2 + 1 },
+                uv2: { x:i2 * 2, y: i2 * 2 + 1 }
+            });
+        }
+
+        let numQuads = triangles.length / 2 + triangles.length % 2;
+        let rows = numQuads, cols = Math.round(Math.sqrt(numQuads));
+        while(rows%cols) {
+            cols--;
+        }
+
+        rows = cols;
+        cols = numQuads / cols;
+
+        let currentTriangle = 0;
+
+        let w = 1 / cols;
+        let h = 1 / rows;
+
+        for (let i=0; i<rows; ++i) {
+            for (let j=0; j<cols; ++j) {
+                let rect = { left: w * j, top: h * i, right:w * j + w, bottom:h * i + h};
+                let t1 = triangles[currentTriangle];
+                let t2 = currentTriangle+1<triangles.length ? triangles[currentTriangle + 1] : null;
+                packUVs(rect,t1,t2,uv,padding);
+                currentTriangle+=2;
+            }
+        }
+
+        return uv;
+    }
+
+    function generateLightmapQuads(drawable) {
+        let triangleCount = 0;
+        drawable.forEach((polyList) => {
+            let numTriangles = (polyList.index.length / 3);
+            // Avoid two poly list to share one quad
+            if (numTriangles%2!=0) numTriangles++;
+            triangleCount += numTriangles;
+        });
+        let numQuads = triangleCount / 2;
+        let rows = numQuads, cols = Math.round(Math.sqrt(numQuads));
+        while (rows%cols) {
+            cols--;
+        }
+
+        rows = cols;
+        cols = numQuads / cols;
+        return {
+            rows: rows,
+            cols: cols,
+            triangleCount: triangleCount,
+            quadSize: {
+                width: 1 / cols,
+                height: 1 / rows
+            },
+            currentRow:0,
+            currentCol:0,
+            nextRect:function() {
+                let rect = {
+                    left: this.quadSize.width * this.currentCol,
+                    top: this.quadSize.height * this.currentRow,
+                    right: this.quadSize.width * this.currentCol + this.quadSize.width,
+                    bottom: this.quadSize.height * this.currentRow + this.quadSize.height
+                };
+                if (this.currentCol<this.cols) {
+                    this.currentCol++;
+                }
+                else {
+                    this.currentCol = 0;
+                    this.currentRow++;
+                }
+                if (this.currentRow>=this.rows) {
+                    this.currentRow = 0;
+                }
+                return rect;
+            }
+        };
+    }
+
+    function atlasDrawable(drawable,padding) {
+        let quadData = generateLightmapQuads(drawable);
+        quadData.currentRow = 0;
+        quadData.currentCol = 0;
+
+        drawable.forEach((polyList) => {
+            if (polyList.texCoord1.length>0) return;
+            let triangles = [];
+            let uv = [];
+            for (let i=0; i<polyList.index.length; i+=3) {
+                let i0 = polyList.index[i];
+                let i1 = polyList.index[i + 1];
+                let i2 = polyList.index[i + 2];
+                triangles.push({
+                    indices: [i0, i1, i2],
+                    uv0: { x:i0 * 2, y:i0 * 2 + 1 },
+                    uv1: { x:i1 * 2, y:i1 * 2 + 1 },
+                    uv2: { x:i2 * 2, y:i2 * 2 + 1 }
+                });
+            }
+
+            for (let i=0; i<triangles.length; i+=2) {
+                let t1 = triangles[i];
+                let t2 = i+1<triangles.length ? triangles[i+1] : null;
+                let rect = quadData.nextRect();
+                packUVs(rect,t1,t2,uv,padding);
+            }
+
+            polyList.texCoord1 = uv;
+            polyList.build();
+        });
+    }
+    
+    bg.tools.UVMap = {
+        atlas: function(vertexOrDrawable,indexOrPadding = 0,padding = 0) {
+            if (vertexOrDrawable instanceof bg.scene.Drawable) {
+                return atlasDrawable(vertexOrDrawable,indexOrPadding);
+            }
+            else {
+                return atlasPolyList(vertexOrDrawable,indexOrPadding,padding);
+            }
+        }
+
+
+    }
+})();
+
+bg.render = {
+	
+};
+(function() {
+	
+	class RenderLayer extends bg.app.ContextObject {
+		constructor(context,opacityLayer = bg.base.OpacityLayer.ALL) {
+			super(context);
+			
+			this._pipeline = new bg.base.Pipeline(context);
+			this._pipeline.opacityLayer = opacityLayer;
+			this._matrixState = bg.base.MatrixState.Current();
+			this._drawVisitor = new bg.scene.DrawVisitor(this._pipeline,this._matrixState);
+			this._settings = {};
+		}
+
+		get pipeline() { return this._pipeline; }
+
+		get opacityLayer() { return this._pipeline.opacityLayer; }
+
+		get drawVisitor() { return this._drawVisitor; }
+		
+		get matrixState() { return this._matrixState; }
+		
+		set settings(s) { this._settings = s; }
+		get settings() { return this._settings; }
+
+		draw(scene,camera) {}
+	}
+	
+	bg.render.RenderLayer = RenderLayer;
+	
+})();
+(function() {
+	
+	bg.render.RenderPath = {
+		FORWARD:1,
+		DEFERRED:2
+	};
+	
+	function getRenderPass(context,renderPath) {
+		let Factory = null;
+			switch (renderPath) {
+				case bg.render.RenderPath.FORWARD:
+					Factory = bg.render.ForwardRenderPass;
+					break;
+				case bg.render.RenderPath.DEFERRED:
+					if (bg.render.DeferredRenderPass.IsSupported()) {
+						Factory = bg.render.DeferredRenderPass;
+					}
+					else {
+						bg.log("WARNING: Deferred renderer is not supported on this browser");
+						Factory = bg.render.ForwardRenderPass;
+					}
+					break;
+			}
+			
+			return Factory && new Factory(context);
+	}
+
+	// This is a foward declaration of raytracer quality settings
+	bg.render.RaytracerQuality = {
+		low : { maxSamples: 20, rayIncrement: 0.05 },
+		mid: { maxSamples: 50, rayIncrement: 0.025 },
+		high: { maxSamples: 100, rayIncrement: 0.0125 },
+		extreme: { maxSamples: 200, rayIncrement: 0.0062 }
+	};
+
+	bg.render.ShadowType = {
+		HARD: bg.base.ShadowType.HARD,
+		SOFT: bg.base.ShadowType.SOFT
+	};
+
+	bg.render.ShadowMapQuality = {
+		low: 512,
+		mid: 1024,
+		high: 2048,
+		extreme: 4096
+	};
+
+	let renderSettings = {
+		debug: {
+			enabled: false
+		},
+		ambientOcclusion: {
+			enabled: true,
+			sampleRadius: 0.4,
+			kernelSize: 16,
+			blur: 2,
+			maxDistance: 300,
+			scale: 1.0
+		},
+		raytracer: {
+			enabled: true,
+			quality: bg.render.RaytracerQuality.mid,
+			scale: 0.5
+		},
+		antialiasing: {
+			enabled: false
+		},
+		shadows: {
+			quality: bg.render.ShadowMapQuality.mid,
+			type: bg.render.ShadowType.SOFT
+		}
+		// TODO: Color correction
+	}
+	
+	class Renderer extends bg.app.ContextObject {
+		static Create(context,renderPath) {
+			let result = null;
+			if (renderPath==bg.render.RenderPath.DEFERRED) {
+				result = new bg.render.DeferredRenderer(context);
+			}
+
+			if (renderPath==bg.render.RenderPath.FORWARD ||
+				(result && !result.isSupported))
+			{
+				result = new bg.render.ForwardRenderer(context);
+			}
+
+			if (result.isSupported) {
+				result.create();
+			}
+			else {
+				throw new Error("No suitable renderer found.");
+			}
+			return result;
+		}
+
+		constructor(context) {
+			super(context);
+			
+			this._frameVisitor = new bg.scene.FrameVisitor();
+
+			this._settings = renderSettings;
+
+			this._clearColor = bg.Color.Black();
+		}
+
+		get isSupported() { return false; }
+		create() { console.log("ERROR: Error creating renderer. The renderer class must implemente the create() method."); }
+
+		get clearColor() { return this._clearColor; }
+		set clearColor(c) { this._clearColor = c; }
+
+		frame(sceneRoot,delta) {
+			this._frameVisitor.delta = delta;
+			sceneRoot.accept(this._frameVisitor);
+		}
+		
+		display(sceneRoot,camera) {
+			this.draw(sceneRoot,camera);
+		}
+
+		get settings() {
+			return this._settings;
+		}
+	}
+	
+	bg.render.Renderer = Renderer;
+	
+})();
+(function() {
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+
+	let MAX_KERN_OFFSETS = 64;
+
+	class DeferredMixEffect extends bg.base.TextureEffect {
+		constructor(context) {
+			super(context);
+
+			this._ssrtScale = 0.5;
+			this._frameScale = 1.0;
+		}
+		
+		get fragmentShaderSource() {
+			if (!this._fragmentShaderSource) {
+				this._fragmentShaderSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+				
+				this._fragmentShaderSource.addParameter([
+					{ name:"inLighting", dataType:"sampler2D", role:"value"},
+					{ name:"inDiffuse", dataType:"sampler2D", role:"value"},
+					{ name:"inPositionMap", dataType:"sampler2D", role:"value"},
+					{ name:"inSSAO", dataType:"sampler2D", role:"value"},
+					{ name:"inReflection", dataType:"sampler2D", role:"value"},
+					{ name:"inSpecularMap", dataType:"sampler2D", role:"value" },
+					{ name:"inMaterial", dataType:"sampler2D", role:"value"},
+					{ name:"inOpaqueDepthMap", dataType:"sampler2D", role:"value"},
+					{ name:"inShininessColor", dataType:"sampler2D", role:"value" }, 
+					{ name:"inViewSize", dataType:"vec2", role:"value"},
+					{ name:"inSSAOBlur", dataType:"int", role:"value"},
+					{ name:"inSSRTScale", dataType:"float", role:"value" },
+
+					{ name:"fsTexCoord", dataType:"vec2", role:"in" }	// vTexturePosition
+				]);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					this._fragmentShaderSource.addFunction(lib().functions.blur.textureDownsample);
+					this._fragmentShaderSource.addFunction(lib().functions.blur.blur);
+					this._fragmentShaderSource.addFunction(lib().functions.blur.glowBlur);
+
+					//this._fragmentShaderSource.addFunction(lib().functions.colorCorrection.all);
+
+					this._fragmentShaderSource.setMainBody(`
+					vec4 lighting = clamp(texture2D(inLighting,fsTexCoord),vec4(0.0),vec4(1.0));
+					vec4 diffuse = texture2D(inDiffuse,fsTexCoord);
+					vec4 pos = texture2D(inPositionMap,fsTexCoord);
+					vec4 shin = texture2D(inShininessColor,fsTexCoord);
+					vec4 ssao = blur(inSSAO,fsTexCoord,inSSAOBlur * 20,inViewSize);
+					vec4 material = texture2D(inMaterial,fsTexCoord);
+
+					vec4 specular = texture2D(inSpecularMap,fsTexCoord);	// The roughness parameter is stored on A component, inside specular map
+					
+					vec4 opaqueDepth = texture2D(inOpaqueDepthMap,fsTexCoord);
+					if (pos.z<opaqueDepth.z && opaqueDepth.w<1.0) {
+						discard;
+					}
+					else {
+						float roughness = specular.a;
+						float ssrtScale = inSSRTScale;
+						roughness *= 250.0 * ssrtScale;
+						vec4 reflect = blur(inReflection,fsTexCoord,int(roughness),inViewSize * ssrtScale);
+
+						float reflectionAmount = material.b;
+						vec3 finalColor = lighting.rgb * (1.0 - reflectionAmount);
+						finalColor += reflect.rgb * reflectionAmount * diffuse.rgb + shin.rgb;
+						finalColor *= ssao.rgb;
+						gl_FragColor = vec4(finalColor,diffuse.a);
+					}`);
+				}
+			}
+			return this._fragmentShaderSource;
+		}
+		
+		setupVars() {
+			this.shader.setVector2("inViewSize",new bg.Vector2(this.viewport.width, this.viewport.height));
+
+			this.shader.setTexture("inLighting",this._surface.lightingMap,bg.base.TextureUnit.TEXTURE_0);
+			this.shader.setTexture("inDiffuse",this._surface.diffuseMap,bg.base.TextureUnit.TEXTURE_1);
+			this.shader.setTexture("inPositionMap",this._surface.positionMap,bg.base.TextureUnit.TEXTURE_2);
+			this.shader.setTexture("inSSAO",this._surface.ssaoMap,bg.base.TextureUnit.TEXTURE_3);
+			this.shader.setTexture("inReflection",this._surface.reflectionMap,bg.base.TextureUnit.TEXTURE_4);
+			this.shader.setTexture("inMaterial",this._surface.materialMap,bg.base.TextureUnit.TEXTURE_5);
+			this.shader.setTexture("inSpecularMap",this._surface.specularMap,bg.base.TextureUnit.TEXTURE_6);
+			this.shader.setTexture("inOpaqueDepthMap",this._surface.opaqueDepthMap,bg.base.TextureUnit.TEXTURE_7);
+			this.shader.setTexture("inShininessColor",this._surface.shininess,bg.base.TextureUnit.TEXTURE_8);
+	
+			this.shader.setValueInt("inSSAOBlur",this.ssaoBlur);
+			this.shader.setValueFloat("inSSRTScale",this.ssrtScale * this.frameScale);
+		}
+
+		set viewport(vp) { this._viewport = vp; }
+		get viewport() { return this._viewport; }
+
+		set clearColor(c) { this._clearColor = c; }
+		get clearColor() { return this._clearColor; }
+		
+		set ssaoBlur(b) { this._ssaoBlur = b; }
+		get ssaoBlur() { return this._ssaoBlur; }
+
+		set ssrtScale(s) { this._ssrtScale = s; }
+		get ssrtScale() { return this._ssrtScale; }
+
+		set frameScale(s) { this._frameScale = s; }
+		get frameScale() { return this._frameScale; }
+
+		get colorCorrection() {
+			if (!this._colorCorrection) {
+				this._colorCorrection = {
+					hue: 1.0,
+					saturation: 1.0,
+					lightness: 1.0,
+					brightness: 0.5,
+					contrast: 0.5
+				};
+			}
+			return this._colorCorrection;
+		}
+	}
+	
+	bg.render.DeferredMixEffect = DeferredMixEffect;
+})();
+(function() {
+
+	bg.render.SurfaceType = {
+		UNDEFINED: 0,
+		OPAQUE: 1,
+		TRANSPARENT: 2
+	};
+
+	let g_ssrtScale = 0.5;
+	let g_ssaoScale = 1.0;
+
+	class DeferredRenderSurfaces extends bg.app.ContextObject {
+		constructor(context) {
+			super(context);
+			this._type = bg.render.SurfaceType.UNDEFINED;
+
+			this._gbufferUByteSurface = null;
+			this._gbufferFloatSurface = null;
+			this._lightingSurface = null;
+			this._shadowSurface = null;
+			this._ssaoSurface = null;
+			this._mixSurface = null;
+			this._ssrtSurface = null;
+	
+			this._opaqueSurfaces = null;
+		}
+	
+		createOpaqueSurfaces() {
+			this._type = bg.render.SurfaceType.OPAQUE;
+			this.createCommon();
+		}
+
+		createTransparentSurfaces(opaqueSurfaces) {
+			this._type = bg.render.SurfaceType.TRANSPARENT;
+			this._opaqueSurfaces = opaqueSurfaces;
+			this.createCommon();
+		}
+		
+		resize(newSize) {
+			let s = new bg.Vector2(newSize.width,newSize.height);
+			this._gbufferUByteSurface.size = s;
+			this._gbufferFloatSurface.size = s;
+			this._lightingSurface.size = s;
+			this._shadowSurface.size = s;
+			this._ssaoSurface.size = new bg.Vector2(s.x * g_ssaoScale,s.y * g_ssaoScale);
+			this._ssrtSurface.size = new bg.Vector2(s.x * g_ssrtScale,s.y * g_ssrtScale);
+			this._mixSurface.size = s;
+		}
+
+		get type() { return this._type; }
+		
+		get gbufferUByteSurface() { return this._gbufferUByteSurface; }
+		get gbufferFloatSurface() { return this._gbufferFloatSurface; }
+		get lightingSurface() { return this._lightingSurface; }
+		get shadowSurface() { return this._shadowSurface; }
+		get ssaoSurface() { return this._ssaoSurface; }
+		get ssrtSurface() { return this._ssrtSurface; }
+		get mixSurface() { return this._mixSurface; }
+		
+		get diffuse() { return this._gbufferUByteSurface.getTexture(0); }
+		get specular() { return this._gbufferUByteSurface.getTexture(1); }
+		get normal() { return this._gbufferUByteSurface.getTexture(2); }
+		get material() { return this._gbufferUByteSurface.getTexture(3); }
+		get position() { return this._gbufferFloatSurface.getTexture(0); }
+		get lighting() { return this._lightingSurface.getTexture(); }
+		get shadow() { return this._shadowSurface.getTexture(); }
+		get ambientOcclusion() { return this._ssaoSurface.getTexture(); }
+		get reflection() { return this._ssrtSurface.getTexture(); }
+		get mix() { return this._mixSurface.getTexture(); }
+		get reflectionColor() { return this._type==bg.render.SurfaceType.OPAQUE ? this.lighting : this._opaqueSurfaces.lighting; }
+		get reflectionDepth() { return this._type==bg.render.SurfaceType.OPAQUE ? this.position : this._opaqueSurfaces.position; }
+		get mixDepthMap() { return this._type==bg.render.SurfaceType.OPAQUE ? this.position : this._opaqueSurfaces.position; }
+		
+		// Generated in lighting shader
+		get shininess() { return this._lightingSurface.getTexture(1); }
+		get bloom() { return this._lightingSurface.getTexture(2); }
+		
+		createCommon() {
+			var ctx = this.context;
+			this._gbufferUByteSurface = new bg.base.TextureSurface(ctx);
+			this._gbufferUByteSurface.create([
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.DEPTH, format:bg.base.RenderSurfaceFormat.RENDERBUFFER }
+			]);
+			this._gbufferUByteSurface.resizeOnViewportChanged = false;
+
+			this._gbufferFloatSurface = new bg.base.TextureSurface(ctx);
+			this._gbufferFloatSurface.create([
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.FLOAT },
+				{ type:bg.base.RenderSurfaceType.DEPTH, format:bg.base.RenderSurfaceFormat.RENDERBUFFER }
+			]);
+			this._gbufferFloatSurface.resizeOnViewportChanged = false;
+
+			this._lightingSurface = new bg.base.TextureSurface(ctx);
+			this._lightingSurface.create([
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.FLOAT },
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.FLOAT },
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.FLOAT },
+				{ type:bg.base.RenderSurfaceType.DEPTH, format:bg.base.RenderSurfaceFormat.RENDERBUFFER }
+			]);
+			this._lightingSurface.resizeOnViewportChanged = false;
+
+			this._shadowSurface = new bg.base.TextureSurface(ctx);
+			this._shadowSurface.create([
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.DEPTH, format:bg.base.RenderSurfaceFormat.RENDERBUFFER }
+			]);
+			this._shadowSurface.resizeOnViewportChanged = false;
+
+			this._ssaoSurface = new bg.base.TextureSurface(ctx);
+			this._ssaoSurface.create();
+			this._ssaoSurface.resizeOnViewportChanged = false;
+
+			this._ssrtSurface = new bg.base.TextureSurface(ctx);
+			this._ssrtSurface.create();
+			this._ssrtSurface.resizeOnViewportChanged = false;
+
+			this._mixSurface = new bg.base.TextureSurface(ctx);
+			this._mixSurface.create();
+			this._mixSurface.resizeOnViewportChanged = false;
+		}
+	}
+
+	bg.render.DeferredRenderSurfaces = DeferredRenderSurfaces;
+
+	function newPL(ctx,fx,surface,opacityLayer) {
+		let pl = new bg.base.Pipeline(ctx);
+		pl.renderSurface = surface;
+		if (opacityLayer!==undefined) {
+			pl.opacityLayer = opacityLayer;
+			pl.effect = fx;
+		}
+		else {
+			pl.textureEffect = fx;
+		}
+		return pl;
+	}
+
+	function createCommon(deferredRenderLayer) {
+		let ctx = deferredRenderLayer.context;
+		let s = deferredRenderLayer._surfaces;
+		let opacityLayer = deferredRenderLayer._opacityLayer;
+
+		deferredRenderLayer._gbufferUbyte = newPL(ctx,
+			new bg.render.GBufferEffect(ctx),
+			s.gbufferUByteSurface,opacityLayer);
+		deferredRenderLayer._gbufferFloat = newPL(ctx,
+			new bg.render.PositionGBufferEffect(ctx),
+			s.gbufferFloatSurface, opacityLayer);
+		deferredRenderLayer._shadow = newPL(ctx,
+			new bg.render.ShadowEffect(ctx),
+			s.shadowSurface,
+			bg.base.OpacityLayer.ALL);
+
+		deferredRenderLayer._lighting = newPL(ctx,new bg.render.LightingEffect(ctx), s.lightingSurface);
+		deferredRenderLayer._ssao = newPL(ctx,new bg.render.SSAOEffect(ctx), s.ssaoSurface);
+		deferredRenderLayer._ssao.clearColor = bg.Color.White();
+		deferredRenderLayer._ssrt = newPL(ctx,new bg.render.SSRTEffect(ctx), s.ssrtSurface);
+
+		// Visitors for gbuffers and shadow maps
+		let matrixState = deferredRenderLayer.matrixState;
+		deferredRenderLayer.ubyteVisitor = new bg.scene.DrawVisitor(deferredRenderLayer._gbufferUbyte,matrixState);
+		deferredRenderLayer.floatVisitor = new bg.scene.DrawVisitor(deferredRenderLayer._gbufferFloat,matrixState);
+		deferredRenderLayer.shadowVisitor = new bg.scene.DrawVisitor(deferredRenderLayer._shadow,matrixState);
+
+
+		// TODO: Debug code. Uncomment newPL()
+		deferredRenderLayer._mix = newPL(ctx,new bg.render.DeferredMixEffect(ctx), s.mixSurface);
+		//deferredRenderLayer._mix.renderSurface = new bg.base.ColorSurface(ctx);
+		//deferredRenderLayer._mix = new bg.base.Pipeline(ctx);
+		//deferredRenderLayer._mix.renderSurface = s.mixSurface;
+	}
+
+	class DeferredRenderLayer extends bg.render.RenderLayer {
+		constructor(context) {
+			super(context);
+		}
+
+		createOpaque() {
+			this._opacityLayer = bg.base.OpacityLayer.OPAQUE;
+			this._surfaces = new bg.render.DeferredRenderSurfaces(this.context);
+			this._surfaces.createOpaqueSurfaces();
+			createCommon(this);
+		}
+
+		createTransparent(opaqueMaps) {
+			this._opacityLayer = bg.base.OpacityLayer.TRANSPARENT;
+			this._surfaces = new bg.render.DeferredRenderSurfaces(this.context);
+			this._surfaces.createTransparentSurfaces(opaqueMaps);
+			createCommon(this);
+
+			this._gbufferUbyte.blend = true;
+			this._gbufferUbyte.setBlendMode = bg.base.BlendMode.NORMAL;
+			this._gbufferUbyte.clearColor = bg.Color.Transparent();
+			this._lighting.clearColor = bg.Color.Black();
+			this.pipeline.clearColor = bg.Color.Transparent();
+		}
+
+		set shadowMap(sm) { this._shadowMap = sm; }
+		get shadowMap() { return this._shadowMap; }
+
+		get pipeline() { return this._mix; }
+		get texture() { return this.maps.mix; }
+
+		// TODO: Scene is used by the shadow map generator, but the shadow map can also be
+		// modified to use the render queue
+		draw(renderQueue,scene,camera) {
+			g_ssaoScale = this.settings.ambientOcclusion.scale || 1;
+			g_ssrtScale = this.settings.raytracer.scale || 0.5;
+
+			this.matrixState.projectionMatrixStack.set(camera.projection);
+			this.matrixState.viewMatrixStack.set(camera.viewMatrix);
+			this.matrixState.modelMatrixStack.identity();
+			
+			this.performDraw(renderQueue,scene,camera);
+		}
+		
+		get maps() { return this._surfaces; }
+		
+		resize(camera) {
+			g_ssaoScale = this.settings.ambientOcclusion.scale || 1;
+			g_ssrtScale = this.settings.raytracer.scale || 0.5;
+
+			let vp = camera.viewport;
+			this.maps.resize(new bg.Size2D(vp.width,vp.height));
+		}
+		
+		performDraw(renderQueue,scene,camera) {
+			let activeQueue = this._opacityLayer==bg.base.OpacityLayer.OPAQUE ? renderQueue.opaqueQueue : renderQueue.transparentQueue;
+
+			let performRenderQueue = (queue,pipeline) => {
+				this.matrixState.modelMatrixStack.push();
+				this.matrixState.viewMatrixStack.push();
+				queue.forEach((objectData) => {
+					this.matrixState.modelMatrixStack.set(objectData.modelMatrix);
+					this.matrixState.viewMatrixStack.set(objectData.viewMatrix);
+					pipeline.effect.material = objectData.material;
+					pipeline.draw(objectData.plist);
+				});
+				this.matrixState.modelMatrixStack.pop();
+				this.matrixState.viewMatrixStack.pop();
+			}
+
+			bg.base.Pipeline.SetCurrent(this._gbufferUbyte);
+			this._gbufferUbyte.viewport = camera.viewport;
+			this._gbufferUbyte.clearBuffers();
+			performRenderQueue(activeQueue,this._gbufferUbyte);
+			
+			bg.base.Pipeline.SetCurrent(this._gbufferFloat);
+			this._gbufferFloat.viewport = camera.viewport;
+			this._gbufferFloat.clearBuffers();
+			performRenderQueue(activeQueue,this._gbufferFloat);
+
+			// Render lights
+			this._lighting.viewport = camera.viewport;
+			this._lighting.clearcolor = bg.Color.White();
+			bg.base.Pipeline.SetCurrent(this._lighting);
+			this._lighting.clearBuffers(bg.base.ClearBuffers.COLOR_DEPTH);
+			this._lighting.blendMode = bg.base.BlendMode.ADD;
+			this._lighting.blend = true;
+			this._shadow.viewport = camera.viewport;
+
+			let lightIndex = 0;
+			bg.scene.Light.GetActiveLights().forEach((lightComponent) => {
+				if (lightComponent.light && lightComponent.light.enabled &&
+					lightComponent.node && lightComponent.node.enabled)
+				{
+					if (lightComponent.light.type==bg.base.LightType.DIRECTIONAL)
+					{
+						this._shadowMap.update(scene,camera,lightComponent.light,lightComponent.transform,bg.base.ShadowCascade.NEAR);
+					
+						bg.base.Pipeline.SetCurrent(this._shadow);
+						this._shadow.viewport = camera.viewport;
+						this._shadow.clearBuffers();
+						this._shadow.effect.light = lightComponent.light;
+						this._shadow.effect.shadowMap = this._shadowMap;
+						scene.accept(this.shadowVisitor);	
+					}
+					else if (lightComponent.light.type==bg.base.LightType.SPOT) {
+						this._shadowMap.shadowType = this.settings.shadows.type;
+						this._shadowMap.update(scene,camera,lightComponent.light,lightComponent.transform);
+						bg.base.Pipeline.SetCurrent(this._shadow);
+						this._shadow.viewport = camera.viewport;
+						this._shadow.clearBuffers();
+						this._shadow.effect.light = lightComponent.light;
+						this._shadow.effect.shadowMap = this._shadowMap;
+						scene.accept(this.shadowVisitor);
+					}
+
+					bg.base.Pipeline.SetCurrent(this._lighting);
+					// Only render light emission in the first light source
+					this._lighting.textureEffect.lightEmissionFactor = lightIndex==0 ? 10:0;
+
+					this._lighting.textureEffect.light = lightComponent.light;
+					this._lighting.textureEffect.lightTransform = lightComponent.transform;
+					this._lighting.textureEffect.shadowMap = this.maps.shadow;
+					this._lighting.drawTexture(this.maps);
+					++lightIndex;
+				}				
+			});
+
+			let renderSSAO = this.settings.ambientOcclusion.enabled;
+			let renderSSRT = this.settings.raytracer.enabled;
+			let vp = new bg.Viewport(camera.viewport);
+
+			this._ssao.textureEffect.enabled = renderSSAO;
+			this._ssao.textureEffect.settings.kernelSize = this.settings.ambientOcclusion.kernelSize;
+			this._ssao.textureEffect.settings.sampleRadius = this.settings.ambientOcclusion.sampleRadius;
+			this._ssao.textureEffect.settings.maxDistance = this.settings.ambientOcclusion.maxDistance;
+			if (renderSSAO) {
+				bg.base.Pipeline.SetCurrent(this._ssao);
+				this._ssao.viewport = new bg.Viewport(vp.x,vp.y,vp.width * g_ssaoScale, vp.height * g_ssaoScale);
+				this._ssao.clearBuffers();
+				this._ssao.textureEffect.viewport = camera.viewport;
+				this._ssao.textureEffect.projectionMatrix = camera.projection;
+				this._ssao.drawTexture(this.maps);
+			}
+
+
+			// SSRT
+			bg.base.Pipeline.SetCurrent(this._ssrt);
+			if (renderSSRT) {
+				this._ssrt.viewport = new bg.Viewport(vp.x,vp.y,vp.width * g_ssrtScale, vp.height * g_ssrtScale);
+				this._ssrt.clearBuffers(bg.base.ClearBuffers.DEPTH);
+				this._ssrt.textureEffect.quality = this.settings.raytracer.quality;
+				var cameraTransform = camera.node.component("bg.scene.Transform");
+				if (cameraTransform) {
+					let viewProjection = new bg.Matrix4(camera.projection);
+					viewProjection.mult(camera.viewMatrix);
+					this._ssrt.textureEffect.cameraPosition= viewProjection.multVector(cameraTransform.matrix.position).xyz;
+				}
+				this._ssrt.textureEffect.projectionMatrix = camera.projection;
+				this._ssrt.textureEffect.rayFailColor = this.settings.raytracer.clearColor || bg.Color.Black();
+				this._ssrt.textureEffect.basic = this.settings.raytracer.basicReflections || false;
+				this._ssrt.textureEffect.viewportSize = new bg.Vector2(this._ssrt.viewport.width,this._ssrt.viewport.height);
+				this._ssrt.drawTexture(this.maps);
+			}
+
+			bg.base.Pipeline.SetCurrent(this.pipeline);
+			this.pipeline.viewport = camera.viewport;
+			this.pipeline.clearBuffers();
+			this.pipeline.textureEffect.viewport = camera.viewport;
+			this.pipeline.textureEffect.ssaoBlur = renderSSAO ? this.settings.ambientOcclusion.blur : 1;
+	
+			this.pipeline.textureEffect.ssrtScale = g_ssrtScale * this.settings.renderScale;
+			this.pipeline.drawTexture({
+				lightingMap:this.maps.lighting,
+				diffuseMap:this.maps.diffuse,
+				positionMap:this.maps.position,
+				ssaoMap:renderSSAO ? this.maps.ambientOcclusion:bg.base.TextureCache.WhiteTexture(this.context),
+				reflectionMap:renderSSRT ? this.maps.reflection:this.maps.lighting,
+				specularMap:this.maps.specular,
+				materialMap:this.maps.material,
+				opaqueDepthMap:this.maps.mixDepthMap,
+				shininess:this.maps.shininess
+				// TODO: bloom
+			});	// null: all textures are specified as parameters to the effect
+
+			camera.viewport = vp;
+		}
+	}
+	
+	bg.render.DeferredRenderLayer = DeferredRenderLayer;
+	
+})();
+
+(function() {
+
+
+
+	class DeferredRenderer extends bg.render.Renderer {
+		constructor(context) {
+			super(context);
+			this._size = new bg.Size2D(0);
+		}
+
+		get isSupported() {
+			return  bg.base.RenderSurface.MaxColorAttachments()>5 &&
+					bg.base.RenderSurface.SupportFormat(bg.base.RenderSurfaceFormat.FLOAT) &&
+					bg.base.RenderSurface.SupportType(bg.base.RenderSurfaceType.DEPTH);
+		}
+
+		get pipeline() { return this._pipeline; }
+
+		create() {
+			let ctx = this.context;
+
+			this._renderQueueVisitor = new bg.scene.RenderQueueVisitor();
+
+			this._opaqueLayer = new bg.render.DeferredRenderLayer(ctx);
+			this._opaqueLayer.settings = this.settings;
+			this._opaqueLayer.createOpaque();
+
+			this._transparentLayer = new bg.render.DeferredRenderLayer(ctx);
+			this._transparentLayer.settings = this.settings;
+			this._transparentLayer.createTransparent(this._opaqueLayer.maps);
+
+			this._shadowMap = new bg.base.ShadowMap(ctx);
+			this._shadowMap.size = new bg.Vector2(2048);
+
+			this._opaqueLayer.shadowMap = this._shadowMap;
+			this._transparentLayer.shadowMap = this._shadowMap;
+
+			let mixSurface = new bg.base.TextureSurface(ctx);
+			mixSurface.create();
+			this._mixPipeline = new bg.base.Pipeline(ctx);
+			this._mixPipeline.textureEffect = new bg.render.RendererMixEffect(ctx);
+			this._mixPipeline.renderSurface = mixSurface;
+
+			this._pipeline = new bg.base.Pipeline(ctx);
+			this._pipeline.textureEffect = new bg.render.PostprocessEffect(ctx);
+			
+			this.settings.renderScale = this.settings.renderScale || 1.0;
+		}
+
+		draw(scene,camera) {
+			if (this._shadowMap.size.x!=this.settings.shadows.quality) {
+				this._shadowMap.size = new bg.Vector2(this.settings.shadows.quality);
+			}
+			
+			let vp = camera.viewport;
+			let aa = this.settings.antialiasing || {};
+			let maxSize = aa.maxTextureSize || 4096;
+			let ratio = vp.aspectRatio;
+			let scaledWidth = vp.width;
+			let scaledHeight = vp.height;
+			if (aa.enabled) {
+				scaledWidth = vp.width * 2;
+				scaledHeight = vp.height * 2;
+				if (ratio>1 && scaledWidth>maxSize) {	// Landscape
+					scaledWidth = maxSize;
+					scaledHeight = maxSize / ratio;
+				}
+				else if (scaledHeight>maxSize) {	// Portrait
+					scaledHeight = maxSize;
+					scaledWidth = maxSize * ratio;
+				}
+			}
+			else if (true) {
+				scaledWidth = vp.width * this.settings.renderScale;
+				scaledHeight = vp.height * this.settings.renderScale;
+				if (ratio>1 && scaledWidth>maxSize) {	// Landscape
+					scaledWidth = maxSize;
+					scaledHeight = maxSize / ratio;
+				}
+				else if (scaledHeight>maxSize) {	// Portrait
+					scaledHeight = maxSize;
+					scaledWidth = maxSize * ratio;
+				}
+			}
+
+			let scaledViewport = new bg.Viewport(0,0,scaledWidth,scaledHeight);
+			camera.viewport = scaledViewport;
+			let mainLight = null;
+
+			this._opaqueLayer.clearColor = this.clearColor;
+			if (this._size.width!=camera.viewport.width ||
+				this._size.height!=camera.viewport.height)
+			{
+				this._opaqueLayer.resize(camera);
+				this._transparentLayer.resize(camera);
+			}
+			
+
+			// Update render queue
+			this._renderQueueVisitor.modelMatrixStack.identity();
+			this._renderQueueVisitor.projectionMatrixStack.push();
+			this._renderQueueVisitor.projectionMatrixStack.set(camera.projection);
+			this._renderQueueVisitor.viewMatrixStack.set(camera.viewMatrix);
+			this._renderQueueVisitor.renderQueue.beginFrame(camera.worldPosition);
+			scene.accept(this._renderQueueVisitor);
+			this._renderQueueVisitor.renderQueue.sortTransparentObjects();
+			this._opaqueLayer.draw(this._renderQueueVisitor.renderQueue,scene,camera);
+			this._transparentLayer.draw(this._renderQueueVisitor.renderQueue,scene,camera);
+			this._renderQueueVisitor.projectionMatrixStack.pop();
+
+			bg.base.Pipeline.SetCurrent(this._mixPipeline);
+			this._mixPipeline.viewport = camera.viewport;
+			this._mixPipeline.clearColor = bg.Color.Black();
+			this._mixPipeline.clearBuffers();
+			this._mixPipeline.drawTexture({
+				opaque:this._opaqueLayer.texture,
+				transparent:this._transparentLayer.texture,
+				transparentNormal:this._transparentLayer.maps.normal,
+				opaqueDepth:this._opaqueLayer.maps.position,
+				transparentDepth:this._transparentLayer.maps.position
+			});
+
+			bg.base.Pipeline.SetCurrent(this.pipeline);
+			this.pipeline.viewport = vp;
+			this.pipeline.clearColor = this.clearColor;
+			this.pipeline.clearBuffers();
+			this.pipeline.drawTexture({
+				texture: this._mixPipeline.renderSurface.getTexture(0)
+			});
+			camera.viewport = vp;
+		}
+
+		getImage(scene,camera,width,height) {
+			let prevViewport = camera.viewport;
+			camera.viewport = new bg.Viewport(0,0,width,height);
+			this.draw(scene,camera);
+
+			let canvas = document.createElement('canvas');
+			canvas.width = width;
+			canvas.height = height;
+			let ctx = canvas.getContext('2d');
+
+			let buffer = this.pipeline.renderSurface.readBuffer(new bg.Viewport(0,0,width,height));
+			let imgData = ctx.createImageData(width,height);
+			let len = width * 4;
+			// Flip image data
+			for (let i = 0; i<height; ++i) {
+				for (let j = 0; j<len; j+=4) {
+					let srcRow = i * width * 4;
+					let dstRow = (height - i) * width * 4;
+					imgData.data[dstRow + j + 0] = buffer[srcRow + j + 0];
+					imgData.data[dstRow + j + 1] = buffer[srcRow + j + 1];
+					imgData.data[dstRow + j + 2] = buffer[srcRow + j + 2];
+					imgData.data[dstRow + j + 3] = buffer[srcRow + j + 3];
+				}
+			}
+			ctx.putImageData(imgData,0,0);
+
+			let img = canvas.toDataURL('image/jpeg');
+
+			camera.viewport = prevViewport;
+			this.viewport = prevViewport;
+			this.draw(scene,camera);
+			return img;
+		}
+	}
+
+	bg.render.DeferredRenderer = DeferredRenderer;
+})();
+(function() {
+
+	class ForwardRenderLayer extends bg.render.RenderLayer {		
+		constructor(context,opacityLayer) {
+			super(context,opacityLayer);
+			
+			this._pipeline.effect = new bg.base.ForwardEffect(context);
+			this._pipeline.opacityLayer = opacityLayer;
+
+			// one light source
+			this._lightComponent = null;
+
+			// Multiple light sources
+			this._lightComponents = [];
+	
+			if (opacityLayer == bg.base.OpacityLayer.TRANSPARENT) {
+				this._pipeline.buffersToClear = bg.base.ClearBuffers.NONE;
+				this._pipeline.blend = true;
+				this._pipeline.blendMode = bg.base.BlendMode.NORMAL;
+			}
+		}
+
+		// Single light
+		set lightComponent(light) { this._lightComponent = light; }
+		get lightComponent() { return this._lightComponent; }
+
+		// Multiple lights
+		setLightSources(lightComponents) {
+			this._lightComponents = lightComponents;
+		}
+
+		set shadowMap(sm) { this._shadowMap = sm; }
+		get shadowMap() { return this._shadowMap; }
+		
+		draw(renderQueue,scene,camera) {
+			bg.base.Pipeline.SetCurrent(this._pipeline);
+			this._pipeline.viewport = camera.viewport;
+			
+			if (camera.clearBuffers!=0) {
+				this._pipeline.clearBuffers();
+			}
+		
+			this.matrixState.projectionMatrixStack.set(camera.projection);
+			
+			bg.base.Pipeline.SetCurrent(this._pipeline);
+			this._pipeline.viewport = camera.viewport;
+
+			this.willDraw(scene,camera);
+			this.performDraw(renderQueue,scene,camera);
+		}
+
+		willDraw(scene,camera) {
+			if (this._lightComponent) {
+				this._pipeline.effect.light = this._lightComponent.light;
+				this._pipeline.effect.lightTransform = this._lightComponent.transform;
+				this._pipeline.effect.shadowMap = this._shadowMap;
+			}
+			else if (this._lightComponents) {
+				this._pipeline.effect.lightArray.reset();
+				this._lightComponents.forEach((comp) => {
+					this._pipeline.effect.lightArray.push(comp.light,comp.transform);
+				});
+				this._pipeline.effect.shadowMap = this._shadowMap;
+			}
+		}
+
+		performDraw(renderQueue,scene,camera) {
+			this._pipeline.viewport = camera.viewport;
+
+			let activeQueue = this._pipeline.opacityLayer==bg.base.OpacityLayer.OPAQUE ? renderQueue.opaqueQueue : renderQueue.transparentQueue;
+			this.matrixState.modelMatrixStack.push();
+			activeQueue.forEach((objectData) => {
+				this.matrixState.modelMatrixStack.set(objectData.modelMatrix);
+				this.matrixState.viewMatrixStack.set(objectData.viewMatrix);
+				this._pipeline.effect.material = objectData.material;
+				this._pipeline.draw(objectData.plist);
+			});
+			this.matrixState.modelMatrixStack.pop();
+		}
+	}
+	
+	bg.render.ForwardRenderLayer = ForwardRenderLayer;
+	
+})();
+
+(function() {
+
+	class ForwardRenderer extends bg.render.Renderer {
+		constructor(context) {
+			super(context);
+		}
+
+		get isSupported() { return true; }
+		create() {
+			let ctx = this.context;
+			this._transparentLayer = new bg.render.ForwardRenderLayer(ctx,bg.base.OpacityLayer.TRANSPARENT);
+			this._opaqueLayer = new bg.render.ForwardRenderLayer(ctx,bg.base.OpacityLayer.OPAQUE);
+			this._shadowMap = new bg.base.ShadowMap(ctx);
+			this._shadowMap.size = new bg.Vector2(2048);
+
+			this.settings.shadows.cascade = bg.base.ShadowCascade.NEAR;
+
+			this._renderQueueVisitor = new bg.scene.RenderQueueVisitor
+		}
+
+		draw(scene,camera) {
+			let shadowLight = null;
+			let lightSources = [];
+			bg.scene.Light.GetActiveLights().some((lightComponent,index) => {
+				if (index>=bg.base.MAX_FORWARD_LIGHTS) return true;
+				if (lightComponent.light && lightComponent.light.enabled)
+				{
+					lightSources.push(lightComponent);
+					if (lightComponent.light.type!=bg.base.LightType.POINT && lightComponent.light.castShadows) {
+						shadowLight = lightComponent;
+					}
+				}
+			});
+			
+			if (shadowLight) {
+				if (this._shadowMap.size.x!=this.settings.shadows.quality) {
+					this._shadowMap.size = new bg.Vector2(this.settings.shadows.quality);
+				}
+				this._shadowMap.update(scene,camera,shadowLight.light,shadowLight.transform,this.settings.shadows.cascade);
+			}
+			if (lightSources.length) {
+				this._opaqueLayer.setLightSources(lightSources);
+				this._opaqueLayer.shadowMap = this._shadowMap;
+
+				this._transparentLayer.setLightSources(lightSources);
+				this._transparentLayer.shadowMap = this._shadowMap;
+			}
+
+			// Update render queue
+			this._renderQueueVisitor.projectionMatrixStack.set(camera.projection);
+			this._renderQueueVisitor.modelMatrixStack.identity();
+			this._renderQueueVisitor.viewMatrixStack.set(camera.viewMatrix);
+			this._renderQueueVisitor.renderQueue.beginFrame(camera.worldPosition);
+			scene.accept(this._renderQueueVisitor);
+			this._renderQueueVisitor.renderQueue.sortTransparentObjects();
+
+			this._opaqueLayer.pipeline.clearColor = this.clearColor;
+			this._opaqueLayer.draw(this._renderQueueVisitor.renderQueue,scene,camera);
+			this._transparentLayer.draw(this._renderQueueVisitor.renderQueue,scene,camera);
+		}
+
+		getImage(scene,camera,width,height) {
+			let prevViewport = camera.viewport;
+			camera.viewport = new bg.Viewport(0,0,width,height);
+			this.draw(scene,camera);
+			this.draw(scene,camera);
+
+			let canvas = document.createElement('canvas');
+			canvas.width = width;
+			canvas.height = height;
+			let ctx = canvas.getContext('2d');
+
+			let buffer = this._opaqueLayer.pipeline.renderSurface.readBuffer(new bg.Viewport(0,0,width,height));
+			let imgData = ctx.createImageData(width,height);
+			let len = width * 4;
+			// Flip image data
+			for (let i = 0; i<height; ++i) {
+				for (let j = 0; j<len; j+=4) {
+					let srcRow = i * width * 4;
+					let dstRow = (height - i) * width * 4;
+					imgData.data[dstRow + j + 0] = buffer[srcRow + j + 0];
+					imgData.data[dstRow + j + 1] = buffer[srcRow + j + 1];
+					imgData.data[dstRow + j + 2] = buffer[srcRow + j + 2];
+					imgData.data[dstRow + j + 3] = buffer[srcRow + j + 3];
+				}
+			}
+			ctx.putImageData(imgData,0,0);
+
+			let img = canvas.toDataURL('image/jpeg');
+
+			camera.viewport = prevViewport;
+			this._opaqueLayer.viewport = prevViewport;
+			this._transparentLayer.viewport = prevViewport;
+			return img;
+		}
+	}
+
+	bg.render.ForwardRenderer = ForwardRenderer;
+
+})();
+(function() {
+
+	let s_ubyteGbufferVertex = null;
+	let s_ubyteGbufferFragment = null;
+	let s_floatGbufferVertex = null;
+	let s_floatGbufferFragment = null;
+	
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+
+	let deferredShaders = {
+		gbuffer_ubyte_vertex() {
+			if (!s_ubyteGbufferVertex) {
+				s_ubyteGbufferVertex = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+				
+				s_ubyteGbufferVertex.addParameter([
+					lib().inputs.buffers.vertex,
+					lib().inputs.buffers.normal,
+					lib().inputs.buffers.tangent,
+					lib().inputs.buffers.tex0,
+					lib().inputs.buffers.tex1
+				]);
+				
+				s_ubyteGbufferVertex.addParameter(lib().inputs.matrix.all);
+				
+				s_ubyteGbufferVertex.addParameter([
+					{ name:"fsPosition", dataType:"vec3", role:"out" },
+					{ name:"fsTex0Coord", dataType:"vec2", role:"out" },
+					{ name:"fsTex1Coord", dataType:"vec2", role:"out" },
+					{ name:"fsNormal", dataType:"vec3", role:"out" },
+					{ name:"fsTangent", dataType:"vec3", role:"out" },
+					{ name:"fsBitangent", dataType:"vec3", role:"out" }
+				]);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					s_ubyteGbufferVertex.setMainBody(`
+					vec4 viewPos = inViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+					gl_Position = inProjectionMatrix * viewPos;
+					
+					fsNormal = normalize((inNormalMatrix  * vec4(inNormal,1.0)).xyz);
+					fsTangent = normalize((inNormalMatrix * vec4(inTangent,1.0)).xyz);
+					fsBitangent = cross(fsNormal,fsTangent);
+					
+					fsTex0Coord = inTex0;
+					fsTex1Coord = inTex1;
+					fsPosition = viewPos.xyz;`);
+				}
+			}
+			return s_ubyteGbufferVertex;
+		},
+		
+		gbuffer_ubyte_fragment() {
+			if (!s_ubyteGbufferFragment) {
+				s_ubyteGbufferFragment = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+				
+				s_ubyteGbufferFragment.appendHeader("#extension GL_EXT_draw_buffers : require");
+				
+				s_ubyteGbufferFragment.addParameter([
+					{ name:"fsPosition", dataType:"vec3", role:"in" },
+					{ name:"fsTex0Coord", dataType:"vec2", role:"in" },
+					{ name:"fsTex1Coord", dataType:"vec2", role:"in" },
+					{ name:"fsNormal", dataType:"vec3", role:"in" },
+					{ name:"fsTangent", dataType:"vec3", role:"in" },
+					{ name:"fsBitangent", dataType:"vec3", role:"int" }
+				]);
+				
+				s_ubyteGbufferFragment.addParameter(lib().inputs.material.all);
+				
+				s_ubyteGbufferFragment.addFunction(lib().functions.materials.all);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					s_ubyteGbufferFragment.setMainBody(`
+						vec4 lightMap = samplerColor(inLightMap,fsTex1Coord,inLightMapOffset,inLightMapScale);
+						vec4 diffuse = samplerColor(inTexture,fsTex0Coord,inTextureOffset,inTextureScale) * inDiffuseColor * lightMap;
+						if (diffuse.a>=inAlphaCutoff) {
+							vec3 normal = samplerNormal(inNormalMap,fsTex0Coord,inNormalMapOffset,inNormalMapScale);
+							normal = combineNormalWithMap(fsNormal,fsTangent,fsBitangent,normal);
+							vec4 specular = specularColor(inSpecularColor,inShininessMask,fsTex0Coord,inTextureOffset,inTextureScale,
+															inShininessMaskChannel,inShininessMaskInvert);
+							float lightEmission = applyTextureMask(inLightEmission,
+															inLightEmissionMask,fsTex0Coord,inTextureOffset,inTextureScale,
+															inLightEmissionMaskChannel,inLightEmissionMaskInvert);
+							
+							float reflectionMask = applyTextureMask(inReflection,
+															inReflectionMask,fsTex0Coord,inTextureOffset,inTextureScale,
+															inReflectionMaskChannel,inReflectionMaskInvert);
+							
+							float roughnessMask = applyTextureMask(inRoughness,
+															inRoughnessMask,fsTex0Coord,inTextureOffset,inTextureScale,
+															inRoughnessMaskChannel,inRoughnessMaskInvert);
+
+							gl_FragData[0] = diffuse;
+							gl_FragData[1] = vec4(specular.rgb,roughnessMask); // Store roughness on A component of specular
+							if (!gl_FrontFacing) {	// Flip the normal if back face
+								normal *= -1.0;
+							}
+							gl_FragData[2] = vec4(normal * 0.5 + 0.5, inUnlit ? 0.0 : 1.0);	// Store !unlit parameter on A component of normal
+							gl_FragData[3] = vec4(lightEmission,inShininess/255.0,reflectionMask,float(inCastShadows));
+						}
+						else {
+							gl_FragData[0] = vec4(0.0);
+							gl_FragData[1] = vec4(0.0);
+							gl_FragData[2] = vec4(0.0);
+							gl_FragData[3] = vec4(0.0);
+							discard;
+						}`);
+				}
+			}
+			return s_ubyteGbufferFragment;
+		},
+		
+		gbuffer_float_vertex() {
+			if (!s_floatGbufferVertex) {
+				s_floatGbufferVertex = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+				
+				s_floatGbufferVertex.addParameter([
+					lib().inputs.buffers.vertex,
+					lib().inputs.buffers.tex0,
+					null,
+					lib().inputs.matrix.model,
+					lib().inputs.matrix.view,
+					lib().inputs.matrix.projection,
+					null,
+					{ name:"fsPosition", dataType:"vec4", role:"out" },
+					{ name:"fsTex0Coord", dataType:"vec2", role:"out" }
+				]);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					s_floatGbufferVertex.setMainBody(`
+					fsPosition = inViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+					fsTex0Coord = inTex0;
+					
+					gl_Position = inProjectionMatrix * fsPosition;`);
+				}
+			}
+			return s_floatGbufferVertex;
+		},
+		
+		gbuffer_float_fragment() {
+			if (!s_floatGbufferFragment) {
+				s_floatGbufferFragment = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+				
+				s_floatGbufferFragment.addParameter([
+					lib().inputs.material.texture,
+					lib().inputs.material.textureScale,
+					lib().inputs.material.textureOffset,
+					lib().inputs.material.alphaCutoff,
+					null,
+					{ name:"fsPosition", dataType:"vec4", role:"in" },
+					{ name:"fsTex0Coord", dataType:"vec2", role:"in" }
+				]);
+				
+				s_floatGbufferFragment.addFunction(lib().functions.materials.samplerColor);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					s_floatGbufferFragment.setMainBody(`
+					float alpha = samplerColor(inTexture,fsTex0Coord,inTextureOffset,inTextureScale).a;
+					if (alpha<inAlphaCutoff) {
+						discard;
+					}
+					else {
+						gl_FragColor = vec4(fsPosition.xyz,gl_FragCoord.z);
+					}
+					`)
+				}
+			}
+			return s_floatGbufferFragment;
+		}
+	}
+	
+	
+	class GBufferEffect extends bg.base.Effect {
+		constructor(context) { 
+			super(context);
+			
+			let ubyte_shaders = [
+				deferredShaders.gbuffer_ubyte_vertex(),
+				deferredShaders.gbuffer_ubyte_fragment()
+			];
+			
+			this._material = null;
+			this.setupShaderSource(ubyte_shaders);
+		}
+		
+		get material() { return this._material; }
+		set material(m) { this._material = m; }
+		
+		setupVars() {
+			if (this.material) {
+				// Matrix state
+				let matrixState = bg.base.MatrixState.Current();
+				let viewMatrix = new bg.Matrix4(matrixState.viewMatrixStack.matrixConst);
+				this.shader.setMatrix4('inModelMatrix',matrixState.modelMatrixStack.matrixConst);
+				this.shader.setMatrix4('inViewMatrix',viewMatrix);
+				this.shader.setMatrix4('inProjectionMatrix',matrixState.projectionMatrixStack.matrixConst);
+				this.shader.setMatrix4('inNormalMatrix',matrixState.normalMatrix);
+				this.shader.setMatrix4('inViewMatrixInv',matrixState.viewMatrixInvert);
+				
+				// Material
+				let texture = this.material.texture || bg.base.TextureCache.WhiteTexture(this.context);//s_whiteTexture;
+				let lightMap = this.material.lightmap || bg.base.TextureCache.WhiteTexture(this.context);//s_whiteTexture;
+				let normalMap = this.material.normalMap || bg.base.TextureCache.NormalTexture(this.context);//s_normalTexture;
+				this.shader.setVector4('inDiffuseColor',this.material.diffuse);
+				this.shader.setVector4('inSpecularColor',this.material.specular);
+				this.shader.setValueFloat('inShininess',this.material.shininess);
+				this.shader.setValueFloat('inLightEmission',this.material.lightEmission);
+				this.shader.setValueFloat('inAlphaCutoff',this.material.alphaCutoff);
+				
+				this.shader.setTexture('inTexture',texture,bg.base.TextureUnit.TEXTURE_0);
+				this.shader.setVector2('inTextureOffset',this.material.textureOffset);
+				this.shader.setVector2('inTextureScale',this.material.textureScale);
+				
+				this.shader.setTexture('inLightMap',lightMap,bg.base.TextureUnit.TEXTURE_1);
+				this.shader.setVector2('inLightMapOffset',this.material.lightmapOffset);
+				this.shader.setVector2('inLightMapScale',this.material.lightmapScale);
+				
+				this.shader.setTexture('inNormalMap',normalMap,bg.base.TextureUnit.TEXTURE_2);
+				this.shader.setVector2('inNormalMapScale',this.material.normalMapScale);
+				this.shader.setVector2('inNormalMapOffset',this.material.normalMapOffset);
+				
+				let shininessMask = this.material.shininessMask || bg.base.TextureCache.WhiteTexture(this.context);
+				let lightEmissionMask = this.material.lightEmissionMask || bg.base.TextureCache.WhiteTexture(this.context);
+				let reflectionMask = this.material.reflectionMask || bg.base.TextureCache.WhiteTexture(this.context);
+				let roughnessMask = this.material.roughnessMask || bg.base.TextureCache.WhiteTexture(this.context);
+				this.shader.setTexture('inShininessMask',shininessMask,bg.base.TextureUnit.TEXTURE_3);
+				this.shader.setVector4('inShininessMaskChannel',this.material.shininessMaskChannelVector);
+				this.shader.setValueInt('inShininessMaskInvert',this.material.shininessMaskInvert);
+
+				this.shader.setTexture('inLightEmissionMask',lightEmissionMask,bg.base.TextureUnit.TEXTURE_4);
+				this.shader.setVector4('inLightEmissionMaskChannel',this.material.lightEmissionMaskChannelVector);
+				this.shader.setValueInt('inLightEmissionMaskInvert',this.material.lightEmissionMaskInvert);
+				
+				this.shader.setValueFloat('inReflection',this.material.reflectionAmount);
+				this.shader.setTexture('inReflectionMask',reflectionMask,bg.base.TextureUnit.TEXTURE_5);
+				this.shader.setVector4('inReflectionMaskChannel',this.material.reflectionMaskChannelVector);
+				this.shader.setValueInt('inReflectionMaskInvert',this.material.reflectionMaskInvert);
+
+				this.shader.setValueFloat('inRoughness',this.material.roughness);
+				this.shader.setTexture('inRoughnessMask',roughnessMask,bg.base.TextureUnit.TEXTURE_6);
+				this.shader.setVector4('inRoughnessMaskChannel',this.material.roughnessMaskChannelVector);
+				this.shader.setValueInt('inRoughnessMaskInvert',this.material.roughnessMaskInvert);
+				
+				this.shader.setValueInt('inCastShadows',this.material.castShadows);
+
+				this.shader.setValueInt('inUnlit',this.material.unlit);
+				// Other settings
+				//this.shader.setValueInt('inSelectMode',false);
+			}
+		}
+	}
+	
+	class PositionGBufferEffect extends bg.base.Effect {
+		constructor(context) { 
+			super(context);
+			let ubyte_shaders = [
+				deferredShaders.gbuffer_float_vertex(),
+				deferredShaders.gbuffer_float_fragment()
+			];
+			
+			this._material = null;
+			this.setupShaderSource(ubyte_shaders);
+		}
+		
+		get material() { return this._material; }
+		set material(m) { this._material = m; }
+
+		setupVars() {
+			if (this.material) {
+				// Matrix state
+				let matrixState = bg.base.MatrixState.Current();
+				let viewMatrix = new bg.Matrix4(matrixState.viewMatrixStack.matrixConst);
+				this.shader.setMatrix4('inModelMatrix',matrixState.modelMatrixStack.matrixConst);
+				this.shader.setMatrix4('inViewMatrix',viewMatrix);
+				this.shader.setMatrix4('inProjectionMatrix',matrixState.projectionMatrixStack.matrixConst);
+				
+				// Material
+				let texture = this.material.texture || bg.base.TextureCache.WhiteTexture(this.context);//s_whiteTexture;
+				this.shader.setTexture('inTexture',texture,bg.base.TextureUnit.TEXTURE_0);
+				this.shader.setVector2('inTextureOffset',this.material.textureOffset);
+				this.shader.setVector2('inTextureScale',this.material.textureScale);
+				this.shader.setValueFloat('inAlphaCutoff',this.material.alphaCutoff);
+			}
+		}
+	}
+	
+	bg.render.PositionGBufferEffect = PositionGBufferEffect;
+	bg.render.GBufferEffect = GBufferEffect;
+})();
+
+(function() {
+
+	function updatePipeline(pipeline,drawVisitor,scene,camera) {
+		bg.base.Pipeline.SetCurrent(pipeline);
+		pipeline.viewport = camera.viewport;
+		pipeline.clearBuffers(bg.base.ClearBuffers.COLOR | bg.base.ClearBuffers.DEPTH);
+		scene.accept(drawVisitor);
+	}
+	
+	class GBufferSet extends bg.app.ContextObject {
+		constructor(context) {
+			super(context);
+			
+			this._pipelines = {
+				ubyte: new bg.base.Pipeline(context),
+				float: new bg.base.Pipeline(context)
+			};
+			
+			// Create two g-buffer render pipelines:
+			//	- ubyte pipeline: to generate unsigned byte g-buffers (diffuse, material properties, etc)
+			//	- float pipeline: to generate float g-buffers (currently, only needed to generate the position g-buffer)
+ 			let ubyteRS = new bg.base.TextureSurface(context);
+			ubyteRS.create([
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.UNSIGNED_BYTE },
+				{ type:bg.base.RenderSurfaceType.DEPTH, format:bg.base.RenderSurfaceFormat.RENDERBUFFER }
+			]);
+			this._pipelines.ubyte.effect = new bg.render.GBufferEffect(context);
+			this._pipelines.ubyte.renderSurface = ubyteRS;
+
+			let floatRS = new bg.base.TextureSurface(context);
+			floatRS.create([
+				{ type:bg.base.RenderSurfaceType.RGBA, format:bg.base.RenderSurfaceFormat.FLOAT },
+				{ type:bg.base.RenderSurfaceType.DEPTH, format:bg.base.RenderSurfaceFormat.RENDERBUFFER }
+			]);
+			this._pipelines.float.effect = new bg.render.PositionGBufferEffect(context);
+			this._pipelines.float.renderSurface = floatRS;
+					
+			this._ubyteDrawVisitor = new bg.scene.DrawVisitor(this._pipelines.ubyte,this._matrixState);
+			this._floatDrawVisitor = new bg.scene.DrawVisitor(this._pipelines.float,this._matrixState);
+		}
+		
+		get diffuse() { return this._pipelines.ubyte.renderSurface.getTexture(0); }
+		get specular() { return this._pipelines.ubyte.renderSurface.getTexture(1); }
+		get normal() { return this._pipelines.ubyte.renderSurface.getTexture(2); }
+		get material() { return this._pipelines.ubyte.renderSurface.getTexture(3); }
+		get position() { return this._pipelines.float.renderSurface.getTexture(0); }
+		get shadow() { return this._pipelines.ubyte.renderSurface.getTexture(4); }
+		
+		update(sceneRoot,camera) {
+			updatePipeline(this._pipelines.ubyte,this._ubyteDrawVisitor,sceneRoot,camera);
+			updatePipeline(this._pipelines.float,this._floatDrawVisitor,sceneRoot,camera);
+		}
+	}
+	
+	bg.render.GBufferSet = GBufferSet;
+	
+})();
+(function() {
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+
+	class LightingEffect extends bg.base.TextureEffect {
+		constructor(context) {
+			super(context);
+		}
+		
+		get fragmentShaderSource() {
+			if (!this._fragmentShaderSource) {
+				this._fragmentShaderSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+				this._fragmentShaderSource.appendHeader("#extension GL_EXT_draw_buffers : require");
+
+				this._fragmentShaderSource.addParameter([
+					{ name:"inDiffuse", dataType:"sampler2D", role:"value"},
+					{ name:"inSpecular", dataType:"sampler2D", role:"value"},
+					{ name:"inNormal", dataType:"sampler2D", role:"value"},
+					{ name:"inMaterial", dataType:"sampler2D", role:"value"},
+					{ name:"inPosition", dataType:"sampler2D", role:"value"},
+					{ name:"inShadowMap", dataType:"sampler2D", role:"value" },
+					{ name:"inLightEmissionFactor", dataType:"float", role:"value" },
+					{ name:"fsTexCoord", dataType:"vec2", role:"in" }
+				]);
+				this._fragmentShaderSource.addParameter(lib().inputs.lighting.all);
+				this._fragmentShaderSource.addFunction(lib().functions.utils.all);
+				this._fragmentShaderSource.addFunction(lib().functions.lighting.all);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					this._fragmentShaderSource.setMainBody(`
+					vec4 diffuse = texture2D(inDiffuse,fsTexCoord);
+					vec4 specular = vec4(texture2D(inSpecular,fsTexCoord).rgb,1.0);
+					vec4 normalTex = texture2D(inNormal,fsTexCoord);
+					vec3 normal = normalTex.xyz * 2.0 - 1.0;
+					vec4 material = texture2D(inMaterial,fsTexCoord);
+					vec4 position = texture2D(inPosition,fsTexCoord);
+					
+					vec4 shadowColor = texture2D(inShadowMap,fsTexCoord);
+					float shininess = material.g * 255.0;
+					float lightEmission = material.r;
+					bool unlit = normalTex.a == 0.0;
+					vec4 specularColor = vec4(0.0,0.0,0.0,1.0);
+					if (unlit) {
+						gl_FragData[0] = vec4(diffuse.rgb * min(inLightEmissionFactor,1.0),1.0);
+					}
+					else {
+						vec4 light = getLight(
+							inLightType,
+							inLightAmbient, inLightDiffuse, inLightSpecular,shininess,
+							inLightPosition,inLightDirection,
+							inLightAttenuation.x,inLightAttenuation.y,inLightAttenuation.z,
+							inSpotCutoff,inSpotExponent,inLightCutoffDistance,
+							position.rgb,normal,
+							diffuse,specular,shadowColor,
+							specularColor
+						);
+						light.rgb = light.rgb + (lightEmission * diffuse.rgb * inLightEmissionFactor);
+						gl_FragData[0] = light;
+						gl_FragData[1] = specularColor;
+						gl_FragData[2] = vec4((light.rgb - vec3(1.0,1.0,1.0)) * 2.0,1.0);
+					}
+					`);
+				}
+			}
+			return this._fragmentShaderSource;
+		}
+		
+		setupVars() {
+			this.shader.setTexture("inDiffuse",this._surface.diffuse,bg.base.TextureUnit.TEXTURE_0);
+			this.shader.setTexture("inSpecular",this._surface.specular,bg.base.TextureUnit.TEXTURE_1);
+			this.shader.setTexture("inNormal",this._surface.normal,bg.base.TextureUnit.TEXTURE_2);
+			this.shader.setTexture("inMaterial",this._surface.material,bg.base.TextureUnit.TEXTURE_3);
+			this.shader.setTexture("inPosition",this._surface.position,bg.base.TextureUnit.TEXTURE_4);
+			this.shader.setTexture("inShadowMap",this._shadowMap,bg.base.TextureUnit.TEXTURE_5);
+		
+			if (this.light) {
+				let matrixState = bg.base.MatrixState.Current();
+				let viewMatrix = new bg.Matrix4(matrixState.viewMatrixStack.matrixConst);
+				
+				this.shader.setVector4('inLightAmbient',this._light.ambient);
+				this.shader.setVector4('inLightDiffuse',this._light.diffuse);
+				this.shader.setVector4('inLightSpecular',this._light.specular);
+				this.shader.setValueInt('inLightType',this._light.type);
+				this.shader.setVector3('inLightAttenuation',this._light.attenuationVector);
+				this.shader.setValueFloat('inLightEmissionFactor',this.lightEmissionFactor);
+				this.shader.setValueFloat('inLightCutoffDistance',this._light.cutoffDistance);
+
+				
+				let dir = viewMatrix
+								.mult(this._lightTransform)
+								.rotation
+								.multVector(this._light.direction)
+								.xyz;
+				let pos = viewMatrix
+								//.mult(this._lightTransform)
+								.position;
+				this.shader.setVector3('inLightDirection',dir);
+				this.shader.setVector3('inLightPosition',pos);
+				this.shader.setValueFloat('inSpotCutoff',this._light.spotCutoff);
+				this.shader.setValueFloat('inSpotExponent',this._light.spotExponent);
+				// TODO: Type and other light properties.
+			}
+		}
+		
+		get lightEmissionFactor() { return this._lightEmissionFactor; }
+		set lightEmissionFactor(f) { this._lightEmissionFactor = f; }
+		
+		get light() { return this._light; }
+		set light(l) { this._light = l; }
+		
+		get lightTransform() { return this._lightTransform; }
+		set lightTransform(t) { this._lightTransform = t; }
+		
+		get shadowMap() { return this._shadowMap; }
+		set shadowMap(sm) { this._shadowMap = sm; }
+	}
+	
+	bg.render.LightingEffect = LightingEffect;
+})();
+
+(function() {
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+
+	class PostprocessEffect extends bg.base.TextureEffect {
+		constructor(context) {
+			super(context);
+		}
+
+		get fragmentShaderSource() {
+			if (!this._fragmentShaderSource) {
+				this._fragmentShaderSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+				
+				this._fragmentShaderSource.addParameter([
+					{ name:"inTexture", dataType:"sampler2D", role:"value" },
+					{ name:"inFrameSize", dataType:"vec2", role:"value"},
+					{ name:"inBorderAntiAlias", dataType:"int", role:"value"},
+
+					{ name:"fsTexCoord", dataType:"vec2", role:"in" }	// vTexturePosition
+				]);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+
+					this._fragmentShaderSource.addFunction(lib().functions.utils.texOffset);
+					this._fragmentShaderSource.addFunction(lib().functions.utils.luminance);
+					this._fragmentShaderSource.addFunction(lib().functions.utils.borderDetection);
+					this._fragmentShaderSource.addFunction(lib().functions.blur.textureDownsample);
+					this._fragmentShaderSource.addFunction(lib().functions.blur.gaussianBlur);
+					this._fragmentShaderSource.addFunction(lib().functions.blur.antiAlias);
+
+					
+					this._fragmentShaderSource.setMainBody(`
+						vec4 result = vec4(0.0,0.0,0.0,1.0);
+						if (inBorderAntiAlias==1) {
+							result = antiAlias(inTexture,fsTexCoord,inFrameSize,0.1,3);
+						}
+						else {
+							result = texture2D(inTexture,fsTexCoord);
+						}
+						gl_FragColor = result;
+						`);
+				}
+			}
+			return this._fragmentShaderSource;
+		}
+
+		setupVars() {
+			this.shader.setTexture("inTexture",this._surface.texture,bg.base.TextureUnit.TEXTURE_0);
+			this.shader.setVector2("inFrameSize",this._surface.texture.size);
+			this.shader.setValueInt("inBorderAntiAlias",0);
+		}
+
+		get settings() {
+			if (!this._settings) {
+				this._currentKernelSize = 0;
+				this._settings = {
+					refractionAmount: 0.01
+				}
+			}
+			return this._settings;
+		}
+
+	}
+
+	bg.render.PostprocessEffect = PostprocessEffect;	
+})();
+
+(function() {
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+
+	class RendererMixEffect extends bg.base.TextureEffect {
+		constructor(context) {
+			super(context);
+		}
+
+		get fragmentShaderSource() {
+			if (!this._fragmentShaderSource) {
+				this._fragmentShaderSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+				
+				this._fragmentShaderSource.addParameter([
+					{ name:"inOpaque", dataType:"sampler2D", role:"value" },
+					{ name:"inTransparent", dataType:"sampler2D", role:"value"},
+					{ name:"inTransparentNormal", dataType:"sampler2D", role:"value"},
+					{ name:"inOpaqueDepth", dataType:"sampler2D", role:"value" },
+					{ name:"inTransparentDepth", dataType:"sampler2D", role:"value" },
+					{ name:"inRefractionAmount", dataType:"float", role:"value"},
+
+					{ name:"fsTexCoord", dataType:"vec2", role:"in" }	// vTexturePosition
+				]);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+
+					this._fragmentShaderSource.setMainBody(`
+						vec4 opaque = texture2D(inOpaque,fsTexCoord);
+						vec4 transparent = texture2D(inTransparent,fsTexCoord);
+						vec3 normal = texture2D(inTransparentNormal,fsTexCoord).rgb * 2.0 - 1.0;
+						if (transparent.a>0.0) {
+							float refractionFactor = inRefractionAmount / texture2D(inTransparentDepth,fsTexCoord).z;
+							vec2 offset = fsTexCoord - normal.xy * refractionFactor;
+							vec4 opaqueDepth = texture2D(inOpaqueDepth,offset);
+							vec4 transparentDepth = texture2D(inTransparentDepth,offset);
+							//if (opaqueDepth.w>transparentDepth.w) {
+								opaque = texture2D(inOpaque,offset);
+							//}
+						}
+						vec3 color = opaque.rgb * (1.0 - transparent.a) + transparent.rgb * transparent.a;
+						gl_FragColor = vec4(color, 1.0);
+						`);
+				}
+			}
+			return this._fragmentShaderSource;
+		}
+
+		setupVars() {
+			this.shader.setTexture("inOpaque",this._surface.opaque,bg.base.TextureUnit.TEXTURE_0);
+			this.shader.setTexture("inTransparent",this._surface.transparent,bg.base.TextureUnit.TEXTURE_1);
+			this.shader.setTexture("inTransparentNormal",this._surface.transparentNormal,bg.base.TextureUnit.TEXTURE_2);
+			this.shader.setTexture("inOpaqueDepth",this._surface.opaqueDepth,bg.base.TextureUnit.TEXTURE_3);
+			this.shader.setTexture("inTransparentDepth",this._surface.transparentDepth,bg.base.TextureUnit.TEXTURE_4);
+			this.shader.setValueFloat("inRefractionAmount",this.settings.refractionAmount);
+		}
+
+		get settings() {
+			if (!this._settings) {
+				this._currentKernelSize = 0;
+				this._settings = {
+					refractionAmount: -0.05
+				}
+			}
+			return this._settings;
+		}
+
+	}
+
+	bg.render.RendererMixEffect = RendererMixEffect;	
+})();
+(function() {
+
+	
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+
+	class ShadowEffect extends bg.base.Effect {
+		constructor(context) {
+			super(context);
+			
+			let vertex = new bg.base.ShaderSource(bg.base.ShaderType.VERTEX);
+			let fragment = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+			
+			vertex.addParameter([
+				lib().inputs.buffers.vertex,
+				lib().inputs.buffers.tex0,
+				null,
+				lib().inputs.matrix.model,
+				lib().inputs.matrix.view,
+				lib().inputs.matrix.projection,
+				{ name:"inLightProjectionMatrix", dataType:"mat4", role:"value" },
+				{ name:"inLightViewMatrix", dataType:"mat4", role:"value" },
+				null,
+				{ name:"fsTexCoord", dataType:"vec2", role:"out" },
+				{ name:"fsVertexPosFromLight", dataType:"vec4", role:"out" }
+			]);
+			
+			fragment.addParameter(lib().inputs.shadows.all);
+			fragment.addFunction(lib().functions.utils.unpack);
+			fragment.addFunction(lib().functions.lighting.getShadowColor);
+			
+			fragment.addParameter([
+				lib().inputs.material.receiveShadows,
+				lib().inputs.material.texture,
+				lib().inputs.material.textureOffset,
+				lib().inputs.material.textureScale,
+				lib().inputs.material.alphaCutoff,
+				null,
+				{ name:"fsTexCoord", dataType:"vec2", role:"in" },
+				{ name:"fsVertexPosFromLight", dataType:"vec4", role:"in" }
+			]);
+			
+			fragment.addFunction(lib().functions.materials.samplerColor);
+			
+			if (bg.Engine.Get().id=="webgl1") {
+				vertex.setMainBody(`
+					mat4 ScaleMatrix = mat4(0.5, 0.0, 0.0, 0.0,
+											0.0, 0.5, 0.0, 0.0,
+											0.0, 0.0, 0.5, 0.0,
+											0.5, 0.5, 0.5, 1.0);
+					
+					fsVertexPosFromLight = ScaleMatrix * inLightProjectionMatrix * inLightViewMatrix * inModelMatrix * vec4(inVertex,1.0);
+					fsTexCoord = inTex0;
+					
+					gl_Position = inProjectionMatrix * inViewMatrix * inModelMatrix * vec4(inVertex,1.0);`);
+				
+				fragment.setMainBody(`
+					float alpha = samplerColor(inTexture,fsTexCoord,inTextureOffset,inTextureScale).a;
+					if (alpha>inAlphaCutoff) {
+						vec4 shadowColor = vec4(1.0, 1.0, 1.0, 1.0);
+						if (inReceiveShadows) {
+							shadowColor = getShadowColor(fsVertexPosFromLight,inShadowMap,inShadowMapSize,
+														 inShadowType,inShadowStrength,inShadowBias,inShadowColor);
+						}
+						gl_FragColor = shadowColor;
+					}
+					else {
+						discard;
+					}`);
+			}
+			
+			this.setupShaderSource([ vertex, fragment ]);
+		}
+		
+		beginDraw() {
+			if (this.light && this.shadowMap) {
+				let matrixState = bg.base.MatrixState.Current();
+				let viewMatrix = new bg.Matrix4(matrixState.viewMatrixStack.matrixConst);
+				let lightTransform = this.shadowMap.viewMatrix;
+				
+				this.shader.setMatrix4("inLightProjectionMatrix", this.shadowMap.projection);
+				
+				this.shader.setMatrix4("inLightViewMatrix",lightTransform);
+				this.shader.setValueInt("inShadowType",this.shadowMap.shadowType);
+				this.shader.setTexture("inShadowMap",this.shadowMap.texture,bg.base.TextureUnit.TEXTURE_1);
+				this.shader.setVector2("inShadowMapSize",this.shadowMap.size);
+				this.shader.setValueFloat("inShadowStrength",this.light.shadowStrength);
+				this.shader.setVector4("inShadowColor",this.shadowMap.shadowColor);
+				this.shader.setValueFloat("inShadowBias",this.light.shadowBias);
+			}
+		}
+		
+		setupVars() {
+			if (this.material && this.light) {
+				let matrixState = bg.base.MatrixState.Current();
+				let viewMatrix = new bg.Matrix4(matrixState.viewMatrixStack.matrixConst);
+				
+				this.shader.setMatrix4("inModelMatrix",matrixState.modelMatrixStack.matrixConst);
+				this.shader.setMatrix4("inViewMatrix",viewMatrix);
+				this.shader.setMatrix4("inProjectionMatrix",matrixState.projectionMatrixStack.matrixConst);
+				
+				let texture = this.material.texture || bg.base.TextureCache.WhiteTexture(this.context);
+				this.shader.setTexture("inTexture",texture,bg.base.TextureUnit.TEXTURE_0);
+				this.shader.setVector2("inTextureOffset",this.material.textureOffset);
+				this.shader.setVector2("inTextureScale",this.material.textureScale);
+				this.shader.setValueFloat("inAlphaCutoff",this.material.alphaCutoff);
+				
+				this.shader.setValueInt("inReceiveShadows",this.material.receiveShadows);
+			}
+		}
+		
+		get material() { return this._material; }
+		set material(m) { this._material = m; }
+		
+		get light() { return this._light; }
+		set light(l) { this._light = l; }
+		
+		get shadowMap() { return this._shadowMap; }
+		set shadowMap(sm) { this._shadowMap = sm; }
+	}
+	
+	bg.render.ShadowEffect = ShadowEffect;
+	
+})();
+(function() {
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+
+	let MAX_KERN_OFFSETS = 64;
+
+	class SSAOEffect extends bg.base.TextureEffect {
+		constructor(context) {
+			super(context);
+		}
+		
+		get fragmentShaderSource() {
+			if (!this._fragmentShaderSource) {
+				this._fragmentShaderSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+				
+				this._fragmentShaderSource.addParameter([
+					{ name:"inViewportSize", dataType:"vec2", role:"value" },
+					{ name:"inPositionMap", dataType:"sampler2D", role:"value"},
+					{ name:"inNormalMap", dataType:"sampler2D", role:"value"},
+					{ name:"inProjectionMatrix", dataType:"mat4", role:"value"},
+					{ name:"inRandomMap", dataType:"sampler2D", role:"value"},
+					{ name:"inRandomMapSize", dataType:"vec2", role:"value"},
+					{ name:"inSampleRadius", dataType:"float", role:"value" },
+					{ name:"inKernelOffsets", dataType:"vec3", role:"value", vec:MAX_KERN_OFFSETS },
+					{ name:"inKernelSize", dataType:"int", role:"value" },
+					{ name:"inSSAOColor", dataType:"vec4", role:"value" },
+					{ name:"inEnabled", dataType:"bool", role:"value"},
+					{ name:"inMaxDistance", dataType:"float", role:"value" },
+
+					{ name:"fsTexCoord", dataType:"vec2", role:"in" }	// vTexturePosition
+				]);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					this._fragmentShaderSource.setMainBody(`
+					if (!inEnabled) discard;
+					else {
+						vec4 normalTex = texture2D(inNormalMap,fsTexCoord);
+						vec3 normal = normalTex.xyz * 2.0 - 1.0;
+						vec4 vertexPos = texture2D(inPositionMap,fsTexCoord);
+						if (distance(vertexPos.xyz,vec3(0))>inMaxDistance || vertexPos.w==1.0 || normalTex.a==0.0) {
+							discard;
+						}
+						else {
+							vec2 noiseScale = vec2(inViewportSize.x/inRandomMapSize.x,inViewportSize.y/inRandomMapSize.y);
+							vec3 randomVector = texture2D(inRandomMap, fsTexCoord * noiseScale).xyz * 2.0 - 1.0;
+							vec3 tangent = normalize(randomVector - normal * dot(randomVector, normal));
+							vec3 bitangent = cross(normal,tangent);
+							mat3 tbn = mat3(tangent, bitangent, normal);
+
+							float occlusion = 0.0;
+							for (int i=0; i<${ MAX_KERN_OFFSETS }; ++i) {
+								if (inKernelSize==i) break;
+								vec3 samplePos = tbn * inKernelOffsets[i];
+								samplePos = samplePos * inSampleRadius + vertexPos.xyz;
+
+								vec4 offset = inProjectionMatrix * vec4(samplePos, 1.0);	// -w, w
+								offset.xyz /= offset.w;	// -1, 1
+								offset.xyz = offset.xyz * 0.5 + 0.5;	// 0, 1
+
+								vec4 sampleRealPos = texture2D(inPositionMap, offset.xy);
+								if (samplePos.z<sampleRealPos.z) {
+									float dist = distance(vertexPos.xyz, sampleRealPos.xyz);
+									occlusion += dist<inSampleRadius ? 1.0:0.0;
+								}
+								
+							}
+							occlusion = 1.0 - (occlusion / float(inKernelSize));
+							gl_FragColor = clamp(vec4(occlusion, occlusion, occlusion, 1.0) + inSSAOColor, 0.0, 1.0);
+						}
+					}`);
+				}
+			}
+			return this._fragmentShaderSource;
+		}
+		
+		setupVars() {
+			if (this.settings.kernelSize>MAX_KERN_OFFSETS) {
+				this.settings.kernelSize = MAX_KERN_OFFSETS;
+			}
+			this.shader.setVector2("inViewportSize",new bg.Vector2(this.viewport.width, this.viewport.height));
+
+			// Surface map parameters
+			this.shader.setTexture("inPositionMap",this._surface.position,bg.base.TextureUnit.TEXTURE_0);
+			this.shader.setTexture("inNormalMap",this._surface.normal,bg.base.TextureUnit.TEXTURE_1);
+
+			this.shader.setMatrix4("inProjectionMatrix",this.projectionMatrix);
+			this.shader.setTexture("inRandomMap",this.randomMap,bg.base.TextureUnit.TEXTURE_2);
+			this.shader.setVector2("inRandomMapSize",this.randomMap.size);
+			this.shader.setValueFloat("inSampleRadius",this.settings.sampleRadius);
+			this.shader.setVector3Ptr("inKernelOffsets",this.kernelOffsets);
+			this.shader.setValueInt("inKernelSize",this.settings.kernelSize);
+			this.shader.setVector4("inSSAOColor",this.settings.color);
+			this.shader.setValueInt("inEnabled",this.settings.enabled);
+			this.shader.setValueFloat("inMaxDistance",this.settings.maxDistance);
+		}
+		
+		// The following parameters in this effect are required, and the program will crash if
+		// some of them are not set
+		get viewport() { return this._viewport; }
+		set viewport(vp) { this._viewport = vp; }
+
+		get projectionMatrix() { return this._projectionMatrix; }
+		set projectionMatrix(p) { this._projectionMatrix = p; }
+
+		// randomMap is optional. By default, it takes the default random texture from TextureCache
+		get randomMap() {
+			if (!this._randomMap) {
+				this._randomMap = bg.base.TextureCache.RandomTexture(this.context);
+			}
+			return this._randomMap;
+		}
+
+		set randomMap(rm) { this._randomMap = rm; }
+
+		// Settings: the following parameters are group in a settings object that can be exposed outside
+		// the renderer object.
+		get settings() {
+			if (!this._settings) {
+				this._currentKernelSize = 0;
+				this._settings = {
+					kernelSize: 32,
+					sampleRadius: 0.3,
+					color: bg.Color.Black(),
+					blur: 4,
+					maxDistance: 100.0,
+					enabled: true
+				}
+			}
+			return this._settings;
+		}
+
+		// This parameter is generated automatically using the kernelSize setting
+		get kernelOffsets() {
+			if (this._currentKernelSize!=this.settings.kernelSize) {
+				this._kernelOffsets = [];
+				for (let i=0; i<this.settings.kernelSize*3; i+=3) {
+					let kernel = new bg.Vector3(bg.Math.random() * 2.0 - 1.0,
+												bg.Math.random() * 2.0 - 1.0,
+												bg.Math.random());
+					kernel.normalize();
+
+					let scale = (i/3) / this.settings.kernelSize;
+					scale = bg.Math.lerp(0.1,1.0, scale * scale);
+					kernel.scale(scale);
+					this._kernelOffsets.push(kernel.x);
+					this._kernelOffsets.push(kernel.y);
+					this._kernelOffsets.push(kernel.z);
+				}
+				this._currentKernelSize = this.settings.kernelSize;
+			}
+			return this._kernelOffsets;
+		}
+	}
+	
+	bg.render.SSAOEffect = SSAOEffect;
+})();
+(function() {
+	function lib() {
+		return bg.base.ShaderLibrary.Get();
+	}
+
+	bg.render.RaytracerQuality = {
+		low : { maxSamples: 50, rayIncrement: 0.025 },
+		mid: { maxSamples: 100, rayIncrement: 0.0125 },
+		high: { maxSamples: 200, rayIncrement: 0.0062 },
+		extreme: { maxSamples: 300, rayIncrement: 0.0031 }
+	}; 
+
+	class SSRTEffect extends bg.base.TextureEffect {
+		constructor(context) {
+			super(context);
+			this._basic = false;
+			this._viewportSize = new bg.Vector2(1920,1080);
+			this._frameIndex = 0;
+		}
+		
+		get fragmentShaderSource() {
+			if (!this._fragmentShaderSource) {
+				this._fragmentShaderSource = new bg.base.ShaderSource(bg.base.ShaderType.FRAGMENT);
+				let q = this.quality;
+
+				this._fragmentShaderSource.addParameter([
+					{ name:"inPositionMap", dataType:"sampler2D", role:"value"},
+					{ name:"inSpecularMap", dataType:"sampler2D", role:"value" },
+					{ name:"inNormalMap", dataType:"sampler2D", role:"value"},
+					{ name:"inLightingMap", dataType:"sampler2D", role:"value"},
+					{ name:"inMaterialMap", dataType:"sampler2D", role:"value"},
+					{ name:"inSamplePosMap", dataType:"sampler2D", role:"value"},
+					{ name:"inProjectionMatrix", dataType:"mat4", role:"value"},
+					{ name:"inCameraPos", dataType:"vec3", role:"value" },
+					{ name:"inRayFailColor", dataType:"vec4", role:"value" },
+					{ name:"inBasicMode", dataType:"bool", role:"value" },
+					{ name:"inFrameIndex", dataType:"float", role:"value" },
+					{ name:"inCubeMap", dataType:"samplerCube", role:"value" },
+
+					{ name:"inRandomTexture", dataType:"sampler2D", role:"value" },
+
+					{ name:"fsTexCoord", dataType:"vec2", role:"in" }	// vTexturePosition
+				]);
+
+				this._fragmentShaderSource.addFunction(lib().functions.utils.random);
+				
+				if (bg.Engine.Get().id=="webgl1") {
+					this._fragmentShaderSource.setMainBody(`
+						vec2 p = vec2(floor(gl_FragCoord.x), floor(gl_FragCoord.y));
+						bool renderFrame = false;
+						if (inFrameIndex==0.0 && mod(p.x,2.0)==0.0 && mod(p.y,2.0)==0.0) {
+							renderFrame = true;
+						}
+						else if (inFrameIndex==1.0 && mod(p.x,2.0)==0.0 && mod(p.y,2.0)!=0.0) {
+							renderFrame = true;
+						}
+						else if (inFrameIndex==2.0 && mod(p.x,2.0)!=0.0 && mod(p.y,2.0)==0.0) {
+							renderFrame = true;
+						}
+						else if (inFrameIndex==3.0 && mod(p.x,2.0)!=0.0 && mod(p.y,2.0)!=0.0) {
+							renderFrame = true;
+						}
+
+						vec4 material = texture2D(inMaterialMap,fsTexCoord);
+						if (renderFrame && material.b>0.0) {	// material[2] is reflectionAmount
+							vec3 normal = texture2D(inNormalMap,fsTexCoord).xyz * 2.0 - 1.0;
+							
+							vec4 specular = texture2D(inSpecularMap,fsTexCoord);
+							float roughness = specular.a * 0.3;
+							vec3 r = texture2D(inRandomTexture,fsTexCoord*200.0).xyz * 2.0 - 1.0;
+							vec3 roughnessFactor = normalize(r) * roughness;
+							normal = normal + roughnessFactor;
+							vec4 vertexPos = texture2D(inPositionMap,fsTexCoord);
+							vec3 cameraVector = vertexPos.xyz - inCameraPos;
+							vec3 rayDirection = reflect(cameraVector,normal);
+							vec4 lighting = texture2D(inLightingMap,fsTexCoord);
+							
+							vec4 rayFailColor = inRayFailColor;
+	
+							vec3 lookup = reflect(cameraVector,normal);
+							rayFailColor = textureCube(inCubeMap, lookup);
+							
+							float increment = ${q.rayIncrement};
+							vec4 result = rayFailColor;
+							if (!inBasicMode) {
+								result = rayFailColor;
+								for (float i=0.0; i<${q.maxSamples}.0; ++i) {
+									if (i==${q.maxSamples}.0) {
+										break;
+									}
+	
+									float radius = i * increment;
+									increment *= 1.01;
+									vec3 ray = vertexPos.xyz + rayDirection * radius;
+	
+									vec4 offset = inProjectionMatrix * vec4(ray, 1.0);	// -w, w
+									offset.xyz /= offset.w;	// -1, 1
+									offset.xyz = offset.xyz * 0.5 + 0.5;	// 0, 1
+	
+									vec4 rayActualPos = texture2D(inSamplePosMap, offset.xy);
+									float hitDistance = rayActualPos.z - ray.z;
+									if (offset.x>1.0 || offset.y>1.0 || offset.x<0.0 || offset.y<0.0) {
+										result = rayFailColor;
+										break;
+									}
+									else if (hitDistance>0.02 && hitDistance<0.15) {
+										result = texture2D(inLightingMap,offset.xy);
+										break;
+									}
+								}
+							}
+							if (result.a==0.0) {
+								gl_FragColor = rayFailColor;
+							}
+							else {
+								gl_FragColor = result;
+							}
+						}
+						else {
+							discard;
+						}`);
+				}
+			}
+			return this._fragmentShaderSource;
+		}
+		
+		setupVars() {
+			this._frameIndex = (this._frameIndex + 1) % 4;
+			this.shader.setTexture("inPositionMap",this._surface.position,bg.base.TextureUnit.TEXTURE_0);
+			this.shader.setTexture("inNormalMap",this._surface.normal,bg.base.TextureUnit.TEXTURE_1);
+			this.shader.setTexture("inLightingMap",this._surface.reflectionColor,bg.base.TextureUnit.TEXTURE_2);
+			this.shader.setTexture("inMaterialMap",this._surface.material,bg.base.TextureUnit.TEXTURE_3);
+			this.shader.setTexture("inSamplePosMap",this._surface.reflectionDepth, bg.base.TextureUnit.TEXTURE_4);
+			this.shader.setMatrix4("inProjectionMatrix",this._projectionMatrix);
+			this.shader.setVector3("inCameraPos",this._cameraPos);
+			this.shader.setVector4("inRayFailColor",this.rayFailColor);
+			this.shader.setValueInt("inBasicMode",this.basic);
+			this.shader.setValueFloat("inFrameIndex",this._frameIndex);
+			
+			this.shader.setTexture("inCubeMap",bg.scene.Cubemap.Current(this.context), bg.base.TextureUnit.TEXTURE_5);
+			
+			
+			if (!this._randomTexture) {
+				this._randomTexture = bg.base.TextureCache.RandomTexture(this.context,new bg.Vector2(1024));
+			}
+			this.shader.setTexture("inRandomTexture",this._randomTexture, bg.base.TextureUnit.TEXTURE_6);
+
+			this.shader.setTexture("inSpecularMap",this._surface.specular,bg.base.TextureUnit.TEXTURE_7);
+		}
+
+		get projectionMatrix() { return this._projectionMatrix; }
+		set projectionMatrix(p) { this._projectionMatrix = p; }
+
+		get cameraPosition() { return this._cameraPos; }
+		set cameraPosition(c) { this._cameraPos = c; }
+
+		get rayFailColor() { return this._rayFailColor || bg.Color.Black(); }
+		set rayFailColor(c) { this._rayFailColor = c; }
+
+		get viewportSize() { return this._viewportSize; }
+		set viewportSize(s) { this._viewportSize = s; }
+
+		get quality() { return this._quality || bg.render.RaytracerQuality.low; }
+		set quality(q) {
+			if (!this._quality || this._quality.maxSamples!=q.maxSamples ||
+				this._quality.rayIncrement!=q.rayIncrement)
+			{
+				this._quality = q;
+				this._fragmentShaderSource = null;
+				this.rebuildShaders();
+			}
+		}
+
+		get basic() { return this._basic; }
+		set basic(b) { this._basic = b; }
+
+		// TODO: SSRT settings
+		get settings() {
+			if (!this._settings) {
+			}
+			return this._settings;
+		}
+	}
+	
+	bg.render.SSRTEffect = SSRTEffect;
+})();
+bg.webgl1 = {};
+
+(function() {
+	let WEBGL_1_STRING = "webgl1";
+	
+	bg.webgl1.EngineId = WEBGL_1_STRING;
+	
+	class WebGL1Engine extends bg.Engine {
+		constructor(context) {
+			super(context);
+			
+			// Initialize webgl extensions
+			bg.webgl1.Extensions.Get(context);
+			
+			this._engineId = WEBGL_1_STRING;
+			this._texture = new bg.webgl1.TextureImpl(context);
+			this._pipeline = new bg.webgl1.PipelineImpl(context);
+			this._polyList = new bg.webgl1.PolyListImpl(context);
+			this._shader = new bg.webgl1.ShaderImpl(context);
+			this._colorBuffer = new bg.webgl1.ColorRenderSurfaceImpl(context);
+			this._textureBuffer = new bg.webgl1.TextureRenderSurfaceImpl(context);
+			this._shaderSource = new bg.webgl1.ShaderSourceImpl();
+		}
+	}
+	
+	bg.webgl1.Engine = WebGL1Engine;
+	
+})();
+
+(function() {
+	
+	bg.webgl1.shaderLibrary = {
+		inputs:{},
+		functions:{}
+	}
+
+	class ShaderSourceImpl extends bg.base.ShaderSourceImpl {
+		header(shaderType) {
+			return "precision highp float;\nprecision highp int;";
+		}
+		
+		parameter(shaderType,paramData) {
+			if (!paramData) return "\n";
+			let role = "";
+			switch (paramData.role) {
+				case "buffer":
+					role = "attribute";
+					break;
+				case "value":
+					role = "uniform";
+					break;
+				case "in":
+				case "out":
+					role = "varying";
+					break;
+			}
+			let vec = "";
+			if (paramData.vec) {
+				vec = `[${paramData.vec}]`;
+			}
+			return `${role} ${paramData.dataType} ${paramData.name}${vec};`;
+		}
+		
+		func(shaderType,funcData) {
+			if (!funcData) return "\n";
+			let params = "";
+			for (let name in funcData.params) {
+				params += `${funcData.params[name]} ${name},`;
+			}
+			let src = `${funcData.returnType} ${funcData.name}(${params}) {`.replace(',)',')');
+			let body = ("\n" + bg.base.ShaderSource.FormatSource(funcData.body)).replace(/\n/g,"\n\t");
+			return src + body + "\n}";
+		}
+	}
+	
+	bg.webgl1.ShaderSourceImpl = ShaderSourceImpl;
+	
+	
+})();
+(function() {
+	let s_singleton = null;
+
+	class Extensions extends bg.app.ContextObject {
+		static Get(gl) {
+			if (!s_singleton) {
+				s_singleton = new Extensions(gl);
+			}
+			return s_singleton;
+		}
+		
+		constructor(gl) {
+			super(gl);
+		}
+		
+		getExtension(ext) {
+			return this.context.getExtension(ext);
+		}
+		
+		get textureFloat() {
+			if (this._textureFloat===undefined) {
+				this._textureFloat = this.getExtension("OES_texture_float");
+			}
+			return this._textureFloat;
+		}
+		
+		get depthTexture() {
+			if (this._depthTexture===undefined) {
+				this._depthTexture = this.getExtension("WEBGL_depth_texture");
+			}
+			return this._depthTexture;
+		}
+		
+		get drawBuffers() {
+			if (this._drawBuffers===undefined) {
+				this._drawBuffers = this.getExtension("WEBGL_draw_buffers");
+			}
+			return this._drawBuffers;
+		}
+	}
+	
+	bg.webgl1.Extensions = Extensions;
+})();
+(function() {
+	
+	class PipelineImpl extends bg.base.PipelineImpl {
+		initFlags(context) {
+			bg.base.ClearBuffers.COLOR = context.COLOR_BUFFER_BIT;
+			bg.base.ClearBuffers.DEPTH = context.DEPTH_BUFFER_BIT;
+		}
+		
+		setViewport(context,vp) {
+			context.viewport(vp.x,vp.y,vp.width,vp.height);
+		}
+		
+		clearBuffers(context,color,buffers) {
+			context.clearColor(color.r,color.g,color.b,color.a);
+			if (buffers) context.clear(buffers);
+		}
+		
+		setDepthTestEnabled(context,e) {
+			e ? context.enable(context.DEPTH_TEST):context.disable(context.DEPTH_TEST);
+		}
+		
+		setCullFace(context,e) {
+			e ? context.enable(context.CULL_FACE):context.disable(context.CULL_FACE);
+		}
+		
+		setBlendEnabled(context,e) {
+			e ? context.enable(context.BLEND):context.disable(context.BLEND);
+		}
+		
+		setBlendMode(gl,m) {
+			switch (m) {
+				case bg.base.BlendMode.NORMAL:
+					gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);
+					gl.blendEquation(gl.FUNC_ADD);
+					break;
+				case bg.base.BlendMode.MULTIPLY:
+					gl.blendFunc(gl.ZERO,gl.SRC_COLOR);
+					gl.blendEquation(gl.FUNC_ADD);
+					break;
+				case bg.base.BlendMode.ADD:
+					gl.blendFunc(gl.ONE,gl.ONE);
+					gl.blendEquation(gl.FUNC_ADD);
+					break;
+				case bg.base.BlendMode.SUBTRACT:
+					gl.blendFunc(gl.ONE,gl.ONE);
+					gl.blendEquation(gl.FUNC_SUBTRACT);
+					break;
+				case bg.base.BlendMode.ALPHA_ADD:
+					gl.blendFunc(gl.SRC_ALPHA,gl.SRC_ALPHA);
+					gl.blendEquation(gl.FUNC_ADD);
+					break;
+				case bg.base.BlendMode.ALPHA_SUBTRACT:
+					gl.blendFunc(gl.SRC_ALPHA,gl.SRC_ALPHA);
+					gl.blendEquation(gl.FUNC_SUBTRACT);
+					break;
+			}
+		}
+	}
+	
+	bg.webgl1.PipelineImpl = PipelineImpl;
+})();
+(function() {
+	function createBuffer(context,array,itemSize,drawMode) {
+		let result = null;
+		if (array.length) {
+			result = context.createBuffer();
+			context.bindBuffer(context.ARRAY_BUFFER,result);
+			context.bufferData(context.ARRAY_BUFFER, new Float32Array(array), drawMode);
+					result.itemSize = itemSize;
+					result.numItems = array.length/itemSize;
+		}
+		return result;
+	}
+	
+	function deleteBuffer(context,buffer) {
+		if (buffer) {
+			context.deleteBuffer(buffer);
+		}
+		return null;
+	}
+
+	let s_uintElements = false;
+	
+	class PolyListImpl extends bg.base.PolyListImpl {
+		initFlags(context) {
+			bg.base.DrawMode.TRIANGLES = context.TRIANGLES;
+			bg.base.DrawMode.TRIANGLE_FAN = context.TRIANGLE_FAN;
+			bg.base.DrawMode.TRIANGLE_STRIP = context.TRIANGLE_STRIP;
+			bg.base.DrawMode.LINES = context.LINES;
+			bg.base.DrawMode.LINE_STRIP = context.LINE_STRIP;
+
+			s_uintElements = context.getExtension("OES_element_index_uint");
+		}
+		
+		create(context) {
+			return {
+				vertexBuffer:null,
+				normalBuffer:null,
+				tex0Buffer:null,
+				tex1Buffer:null,
+				tex2Buffer:null,
+				colorBuffer:null,
+				tangentBuffer:null,
+				indexBuffer:null
+			}
+		}
+		
+		build(context,plist,vert,norm,t0,t1,t2,col,tan,index) {
+			plist.vertexBuffer = createBuffer(context,vert,3,context.STATIC_DRAW);
+			plist.normalBuffer = createBuffer(context,norm,3,context.STATIC_DRAW);
+			plist.tex0Buffer = createBuffer(context,t0,2,context.STATIC_DRAW);
+			plist.tex1Buffer = createBuffer(context,t1,2,context.STATIC_DRAW);
+			plist.tex2Buffer = createBuffer(context,t2,2,context.STATIC_DRAW);
+			plist.colorBuffer = createBuffer(context,col,4,context.STATIC_DRAW);
+			plist.tangentBuffer = createBuffer(context,tan,3,context.STATIC_DRAW);
+		
+			if (index.length>0 && s_uintElements) {
+				plist.indexBuffer = context.createBuffer();
+				context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, plist.indexBuffer);
+				context.bufferData(context.ELEMENT_ARRAY_BUFFER, new Uint32Array(index),context.STATIC_DRAW);
+				plist.indexBuffer.itemSize = 3;
+				plist.indexBuffer.numItems = index.length;
+			}
+			else {
+				plist.indexBuffer = context.createBuffer();
+				context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, plist.indexBuffer);
+				context.bufferData(context.ELEMENT_ARRAY_BUFFER, new Uint16Array(index),context.STATIC_DRAW);
+				plist.indexBuffer.itemSize = 3;
+				plist.indexBuffer.numItems = index.length;
+			}
+			
+			return plist.vertexBuffer && plist.indexBuffer;
+		}
+		
+		draw(context,plist,drawMode,numberOfIndex) {
+			context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, plist.indexBuffer);
+			if (s_uintElements) {
+				context.drawElements(drawMode, numberOfIndex, context.UNSIGNED_INT, 0);
+			}
+			else {
+				context.drawElements(drawMode, numberOfIndex, context.UNSIGNED_SHORT, 0);
+			}
+		}
+		
+		destroy(context,plist) {
+			context.bindBuffer(context.ARRAY_BUFFER, null);
+			context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, null);
+
+			plist.vertexBuffer = deleteBuffer(context,plist.vertexBuffer);
+			plist.normalBuffer = deleteBuffer(context,plist.normalBuffer);
+			plist.tex0Buffer = deleteBuffer(context,plist.tex0Buffer);
+			plist.tex1Buffer = deleteBuffer(context,plist.tex1Buffer);
+			plist.tex2Buffer = deleteBuffer(context,plist.tex2Buffer);
+			plist.colorBuffer = deleteBuffer(context,plist.colorBuffer);
+			plist.tangentBuffer = deleteBuffer(context,plist.tangentBuffer);
+			plist.indexBuffer = deleteBuffer(context,plist.indexBuffer);
+		}
+
+		update(context,plist,bufferType,newData) {
+			if (bufferType==bg.base.BufferType.INDEX) {
+				if (s_uintElements) {
+					context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, plist.indexBuffer);
+					context.bufferData(context.ELEMENT_ARRAY_BUFFER, new Uint32Array(index),context.STATIC_DRAW);
+				}
+				else {
+					context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, plist.indexBuffer);
+					context.bufferData(context.ELEMENT_ARRAY_BUFFER, new Uint16Array(index),context.STATIC_DRAW);
+				}
+				context.bindBuffer(context.ELEMENT_ARRAY_BUFFER,null);
+			}
+			else {
+				switch (bufferType) {
+				case bg.base.BufferType.VERTEX:
+					context.bindBuffer(context.ARRAY_BUFFER, plist.vertexBuffer);
+					break;
+				case bg.base.BufferType.NORMAL:
+					context.bindBuffer(context.ARRAY_BUFFER, plist.normalBuffer);
+					break;
+				case bg.base.BufferType.TEX_COORD_0:
+					context.bindBuffer(context.ARRAY_BUFFER, plist.tex0Buffer);
+					break;
+				case bg.base.BufferType.TEX_COORD_1:
+					context.bindBuffer(context.ARRAY_BUFFER, plist.tex1Buffer);
+					break;
+				case bg.base.BufferType.TEX_COORD_2:
+					context.bindBuffer(context.ARRAY_BUFFER, plist.tex2Buffer);
+					break;
+				case bg.base.BufferType.COLOR:
+					context.bindBuffer(context.ARRAY_BUFFER, plist.colorBuffer);
+					break;
+				case bg.base.BufferType.TANGENT:
+					context.bindBuffer(context.ARRAY_BUFFER, plist.tangentBuffer);
+					break;
+				}
+				context.bufferData(context.ARRAY_BUFFER, new Float32Array(newData), context.STATIC_DRAW);
+				context.bindBuffer(context.ARRAY_BUFFER,null);
+			}
+		}
+	}
+	
+	bg.webgl1.PolyListImpl = PolyListImpl;
+})();
+
+(function() {
+	
+	let ext = null;
+	
+	function getMaxColorAttachments() {
+		if (ext.drawBuffers) {
+			return	ext.drawBuffers.MAX_COLOR_ATTACHMENTS ||
+					ext.drawBuffers.MAX_COLOR_ATTACHMENTS_WEBGL;
+		}
+		return 1;
+	}
+	
+	// type: RGBA, format: UNSIGNED_BYTE => regular RGBA texture
+	// type: RGBA, format: FLOAT => float texture attachment
+	// type: DEPTH, format: RENDERBUFFER => regular depth renderbuffer
+	// type: DEPTH, format: UNSIGNED_SHORT => depth texture
+	// every one else: error, unsupported combination
+	function checkValid(attachment) {
+		switch (true) {
+			case attachment.type==bg.base.RenderSurfaceType.RGBA && attachment.format==bg.base.RenderSurfaceFormat.UNSIGNED_BYTE:
+				return true;
+			case attachment.type==bg.base.RenderSurfaceType.RGBA && attachment.format==bg.base.RenderSurfaceFormat.FLOAT:
+				return true;
+			case attachment.type==bg.base.RenderSurfaceType.DEPTH && attachment.format==bg.base.RenderSurfaceFormat.RENDERBUFFER:
+				return true;
+			case attachment.type==bg.base.RenderSurfaceType.DEPTH && attachment.format==bg.base.RenderSurfaceFormat.UNSIGNED_SHORT:
+				return true;
+			// TODO: Cubemaps
+			default:
+				return false;
+		}
+	}
+	
+	function getTypeString(type) {
+		switch (type) {
+			case bg.base.RenderSurfaceType.RGBA:
+				return "RGBA";
+			case bg.base.RenderSurfaceType.DEPTH:
+				return "DEPTH";
+			default:
+				return "unknown";
+		}
+	}
+	
+	function getFormatString(format) {
+		switch (format) {
+			case bg.base.RenderSurfaceFormat.UNSIGNED_BYTE:
+				return "UNSIGNED_BYTE";
+			case bg.base.RenderSurfaceFormat.FLOAT:
+				return "FLOAT";
+			case bg.base.RenderSurfaceFormat.RENDERBUFFER:
+				return "RENDERBUFFER";
+			case bg.base.RenderSurfaceFormat.UNSIGNED_SHORT:
+				return "UNSIGNED_SHORT";
+			default:
+				return "unknown";
+		}
+	}
+	
+	function checkCompatibility(attachments) {
+		let colorAttachments = 0;
+		let maxColorAttachments = getMaxColorAttachments();
+		let error = null;
+		
+		attachments.every(function(att,index) {
+			if (!checkValid(att)) {
+				error = `Error in attachment ${index}: Invalid combination of type and format (${getTypeString(att.type)} is incompatible with ${getFormatString(att.format)}).`;
+				return false;
+			}
+			
+			if (att.type==bg.base.RenderSurfaceType.DEPTH &&
+				index!=attachments.length-1
+			) {
+				error = `Error in attachment ${index}: Depth attachment must be specified as the last attachment. Specified at index ${index} of ${attachments.length - 1}`;
+				return false;
+			}
+			
+			if (att.type==bg.base.RenderSurfaceType.RGBA) {
+				++colorAttachments;
+			}
+			
+			if (att.format==bg.base.RenderSurfaceFormat.FLOAT && !ext.textureFloat) {
+				error = `Error in attachment ${index}: Floating point render surface requested, but the required extension is not present: OES_texture_float.`;
+				return false;
+			}
+			if (att.type==bg.base.RenderSurfaceType.DEPTH &&
+				att.format!=bg.base.RenderSurfaceFormat.RENDERBUFFER &&
+				!ext.depthTexture
+			) {
+				error = `Error in attachment ${index}: Depth texture attachment requested, but the requiered extension is not present: WEBGL_depth_texture.`;
+				return false;
+			}
+			if (colorAttachments>maxColorAttachments) {
+				error = `Error in attachment ${index}: Maximum number of ${maxColorAttachments} color attachment exceeded.`;
+				return false;
+			}
+			
+			return true;
+		});
+		
+		return error;
+	}
+	
+	function addAttachment(gl,size,attachment,index) {
+		if (attachment.format==bg.base.RenderSurfaceFormat.RENDERBUFFER) {
+			let renderbuffer = gl.createRenderbuffer();
+			
+			gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);
+			gl.renderbufferStorage(gl.RENDERBUFFER,gl.DEPTH_COMPONENT16,size.width,size.height);
+			gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, renderbuffer);
+			gl.bindRenderbuffer(gl.RENDERBUFFER,null);
+			
+			return { _renderbuffer: renderbuffer };
+		}
+		else {
+			let texture = new bg.base.Texture(gl);
+			let format = attachment.format;
+			let type = attachment.type;
+			
+			texture.create();
+			texture.bind();
+			texture.minFilter = bg.base.TextureFilter.LINEAR;
+			texture.magFilter = bg.base.TextureFilter.LINEAR;
+			texture.wrapX = bg.base.TextureWrap.CLAMP;
+			texture.wrapY = bg.base.TextureWrap.CLAMP;
+			texture.setImageRaw(size.width,size.height,null,type,format);
+			gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + index, gl.TEXTURE_2D, texture._texture, 0);
+			texture.unbind();
+
+			return texture;		
+		}
+	}
+	
+	function resizeAttachment(gl,size,att,index) {
+		if (att.texture) {
+			att.texture.bind();
+			att.texture.setImageRaw(size.width,size.height,null,att.type,att.format);
+			att.texture.unbind();
+		}
+		if (att.renderbuffer) {
+			let rb = att.renderbuffer._renderbuffer;
+			gl.bindRenderbuffer(gl.RENDERBUFFER,rb);
+			gl.renderbufferStorage(gl.RENDERBUFFER,gl.DEPTH_COMPONENT16, size.width, size.height);
+			gl.bindRenderbuffer(gl.RENDERBUFFER,null);
+		}
+	}
+	
+	
+	class WebGLRenderSurfaceImpl extends bg.base.RenderSurfaceBufferImpl {
+		initFlags(gl) {
+			bg.base.RenderSurfaceType.RGBA = gl.RGBA;
+			bg.base.RenderSurfaceType.DEPTH = gl.DEPTH_COMPONENT;
+			
+			bg.base.RenderSurfaceFormat.UNSIGNED_BYTE = gl.UNSIGNED_BYTE;
+			bg.base.RenderSurfaceFormat.UNSIGNED_SHORT = gl.UNSIGNED_SHORT;
+			bg.base.RenderSurfaceFormat.FLOAT = gl.FLOAT;
+			// This is not a format. This will create a renderbuffer instead a texture
+			bg.base.RenderSurfaceFormat.RENDERBUFFER = gl.RENDERBUFFER;
+			
+			ext = bg.webgl1.Extensions.Get();
+		}
+		
+		supportType(type) {
+			switch (type) {
+				case bg.base.RenderSurfaceType.RGBA:
+					return true;
+				case bg.base.RenderSurfaceType.DEPTH:
+					return ext.depthTexture!=null;
+				default:
+					return false;
+			}
+		}
+		
+		supportFormat(format) {
+			switch (format) {
+				case bg.base.RenderSurfaceFormat.UNSIGNED_BYTE:
+				case bg.base.RenderSurfaceFormat.UNSIGNED_SHORT:
+					return true;
+				case bg.base.RenderSurfaceFormat.FLOAT:
+					return ext.textureFloat!=null;
+				default:
+					return false;
+			}
+		}
+		
+		get maxColorAttachments() {
+			return getMaxColorAttachments();
+		}
+	}
+	
+	class ColorRenderSurfaceImpl extends WebGLRenderSurfaceImpl {
+		create(gl) {
+			return {};
+		}
+		setActive(gl,renderSurface,attachments) {
+			gl.bindFramebuffer(gl.FRAMEBUFFER,null);
+		}
+		resize(gl,renderSurface,size) {}
+		destroy(gl,renderSurface) {}
+
+		readBuffer(gl,renderSurface,rectangle,viewportSize) {
+			let pixels = new Uint8Array(rectangle.width * rectangle.height * 4);
+			// Note that the webgl texture is flipped vertically, so we need to convert the Y coord
+			gl.readPixels(rectangle.x, rectangle.y, rectangle.width, rectangle.height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
+			return pixels;
+		}
+	}
+	
+	bg.webgl1.ColorRenderSurfaceImpl = ColorRenderSurfaceImpl;
+	
+	class TextureRenderSurfaceImpl extends WebGLRenderSurfaceImpl {
+		initFlags(gl) {}	// Flags initialized in ColorRenderSurfaceImpl
+				
+		create(gl,attachments) {
+			// If this function returns no error, the browser is compatible with
+			// the specified attachments.
+			let error = checkCompatibility(attachments);
+			if (error) {
+				throw new Error(error);
+			}
+			// Initial size of 256. The actual size will be defined in resize() function
+			let size = new bg.Vector2(256);
+			let surfaceData = {
+				fbo: gl.createFramebuffer(),
+				size: size,
+				attachments: []
+			};
+			
+			gl.bindFramebuffer(gl.FRAMEBUFFER, surfaceData.fbo);
+			
+			let colorAttachments = [];
+			attachments.forEach((att,i) => {
+				// This will return a bg.base.Texture or a renderbuffer
+				let result = addAttachment(gl,size,att,i);
+				if (result instanceof bg.base.Texture) {
+					colorAttachments.push(ext.drawBuffers ? ext.drawBuffers.COLOR_ATTACHMENT0_WEBGL + i : gl.COLOR_ATTACHMENT0);
+				}
+				surfaceData.attachments.push({
+					texture: result instanceof bg.base.Texture ? result:null,
+					renderbuffer: result instanceof bg.base.Texture ? null:result,
+					format:att.format,
+					type:att.type
+				});
+			});
+			if (colorAttachments.length>1) {
+				ext.drawBuffers.drawBuffersWEBGL(colorAttachments);
+			}
+			
+			gl.bindFramebuffer(gl.FRAMEBUFFER,null);
+			return surfaceData;
+		}
+		
+		setActive(gl,renderSurface) {
+			gl.bindFramebuffer(gl.FRAMEBUFFER,renderSurface.fbo);
+		}
+		
+		readBuffer(gl,renderSurface,rectangle,viewportSize) {
+			let pixels = new Uint8Array(rectangle.width * rectangle.height * 4);
+			// Note that the webgl texture is flipped vertically, so we need to convert the Y coord
+			gl.readPixels(rectangle.x, viewportSize.height - rectangle.y, rectangle.width, rectangle.height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
+			return pixels;
+		}
+		
+		resize(gl,renderSurface,size) {
+			renderSurface.size.width = size.width;
+			renderSurface.size.height = size.height;
+			renderSurface.attachments.forEach((att,index) => {
+				resizeAttachment(gl,size,att,index);
+			});
+		}
+		
+		destroy(gl,renderSurface) {
+			gl.bindFramebuffer(gl.FRAMEBUFFER, null);
+			let attachments = renderSurface && renderSurface.attachments;
+			if (renderSurface.fbo) {
+				gl.deleteFramebuffer(renderSurface.fbo);
+			}
+			if (attachments) {
+				attachments.forEach((attachment) => {
+					if (attachment.texture) {
+						attachment.texture.destroy();
+					}
+					else if (attachment.renderbuffer) {
+						gl.deleteRenderbuffer(attachment.renderbuffer._renderbuffer);
+					}
+				});
+			}
+			renderSurface.fbo = null;
+			renderSurface.size = null;
+			renderSurface.attachments = null;
+		}
+	}
+	
+	bg.webgl1.TextureRenderSurfaceImpl = TextureRenderSurfaceImpl;
+})();
+(function() {
+	let MAX_BLUR_ITERATIONS = 40;
+	
+	let BLUR_DOWNSAMPLE = 15 	;
+
+	let textureCubeDownsampleParams = {
+		textureInput:'samplerCube', texCoord:'vec3', size:'vec2', reduction:'vec2'
+	};
+	let textureCubeDownsampleBody = `
+		float dx = reduction.x / size.x;
+		float dy = reduction.y / size.y;
+		vec2 coord = vec2(dx * texCoord.x / dx, dy * texCoord.y / dy);
+		return textureCube(textureInput,coord);
+	`;
+
+	let textureDownsampleParams = {
+		textureInput:'sampler2D', texCoord:'vec2', size:'vec2', reduction:'vec2'
+	};
+	let textureDownsampleBody = `
+		float dx = reduction.x / size.x;
+		float dy = reduction.y / size.y;
+		vec2 coord = vec2(dx * texCoord.x / dx, dy * texCoord.y / dy);
+		return texture2D(textureInput,coord);
+	`;
+
+	let blurParams = {
+			textureInput:'sampler2D', texCoord:'vec2', size:'int', samplerSize:'vec2'
+		};
+	let blurBody = `
+		int downsample = ${ BLUR_DOWNSAMPLE };
+		vec2 texelSize = 1.0 / samplerSize;
+		vec3 result = vec3(0.0);
+		size = int(max(float(size / downsample),1.0));
+		vec2 hlim = vec2(float(-size) * 0.5 + 0.5);
+		vec2 sign = vec2(1.0);
+		float blurFactor = 10.0 - 0.2 * float(size) * log(float(size));
+		for (int x=0; x<${ MAX_BLUR_ITERATIONS }; ++x) {
+			if (x==size) break;
+			for (int y=0; y<${ MAX_BLUR_ITERATIONS }; ++y) {
+				if (y==size) break;
+				vec2 offset = (hlim + vec2(float(x), float(y))) * texelSize * float(downsample) / blurFactor;
+				result += textureDownsample(textureInput, texCoord + offset,samplerSize,vec2(downsample)).rgb;
+			}
+		}
+		return vec4(result / float(size * size), 1.0);
+		`;
+	
+	let glowParams = {
+			textureInput:'sampler2D', texCoord:'vec2', size:'int', samplerSize:'vec2'			
+		};
+	let glowBody = `
+		int downsample = ${ BLUR_DOWNSAMPLE };
+		vec2 texelSize = 1.0 / samplerSize;
+		vec3 result = vec3(0.0);
+		size = int(max(float(size / downsample),1.0));
+		vec2 hlim = vec2(float(-size) * 0.5 + 0.5);
+		vec2 sign = vec2(1.0);
+		for (int x=0; x<${ MAX_BLUR_ITERATIONS }; ++x) {
+			if (x==size) break;
+			for (int y=0; y<${ MAX_BLUR_ITERATIONS }; ++y) {
+				if (y==size) break;
+				vec2 offset = (hlim + vec2(float(x), float(y))) * texelSize;
+				result += textureDownsample(textureInput, texCoord + offset,samplerSize,vec2(downsample)).rgb;
+			}
+		}
+		return vec4(result / float(size * size), 1.0);
+	`;
+
+	let blurCubeParams = {
+		textureInput:'samplerCube', texCoord:'vec3', size:'int', samplerSize:'vec2', dist:'float'
+	};
+	let blurCubeBody = `
+		int downsample = int(max(1.0,dist));
+		vec2 texelSize = 1.0 / samplerSize;
+		vec3 result = vec3(0.0);
+		size = int(max(float(size / downsample),1.0));
+		vec2 hlim = vec2(float(-size) * 0.5 + 0.5);
+		vec2 sign = vec2(1.0);
+		for (int x=0; x<40; ++x) {
+			if (x==size) break;
+			for (int y=0; y<40; ++y) {
+				if (y==size) break;
+				vec3 offset = vec3((hlim + vec2(float(x*downsample), float(y*downsample))) * texelSize,0.0);
+				result += textureCube(textureInput, texCoord + offset,2.0).rgb;
+			}
+		}
+		return vec4(result / float(size * size), 1.0);
+		`;
+	
+	bg.webgl1.shaderLibrary
+		.functions
+		.blur = {
+			textureDownsample:{
+				returnType:"vec4", name:'textureDownsample', params:textureDownsampleParams, body:textureDownsampleBody
+			},
+			gaussianBlur:{
+				returnType:"vec4", name:"gaussianBlur", params:blurParams, body:blurBody
+			},
+			blur:{
+				returnType:"vec4", name:"blur", params:blurParams, body:blurBody
+			},
+			glowBlur:{
+				returnType:"vec4", name:"glowBlur", params:glowParams, body:glowBody
+			},
+			blurCube:{
+				returnType:"vec4", name:"blurCube", params:blurCubeParams, body:blurCubeBody
+			},
+
+			// Require: utils.borderDetection
+			antiAlias:{
+				returnType:'vec4', name:'antiAlias', params: {
+					sampler:'sampler2D', texCoord:'vec2', frameSize:'vec2', tresshold:'float', iterations:'int'
+				}, body: `
+				return (borderDetection(sampler,texCoord,frameSize)>tresshold) ?
+					gaussianBlur(sampler,texCoord,iterations,frameSize) :
+					texture2D(sampler,texCoord);
+				`
+			}
+		}
+})();
+(function() {
+	
+	bg.webgl1.shaderLibrary
+		.functions
+		.colorCorrection = {
+			rgb2hsv: {
+				returnType:"vec3", name:"rgb2hsv", params:{ c:"vec3" }, body:`
+				vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
+				vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
+				vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
+
+				float d = q.x - min(q.w, q.y);
+				float e = 1.0e-10;
+				return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);`
+			},
+			hsv2rgb: {
+				returnType:"vec3", name:"hsv2rgb", params: { c:"vec3" }, body:`
+				vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
+				vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
+				return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);`
+			},
+			applyBrightness: {
+				returnType:"vec4", name:"applyBrightness", params: { color:"vec4", brightness:"float" }, body:`
+					return clamp(vec4(color.rgb + brightness - 0.5,1.0),0.0,1.0);
+				`
+			},
+			applyContrast: {
+				returnType:"vec4", name:"applyContrast", params:{ color:"vec4", contrast:"float" }, body:`
+				return clamp(vec4((color.rgb * max(contrast + 0.5,0.0)),1.0),0.0,1.0);`
+			},
+			applySaturation: {
+				returnType:"vec4", name:"applySaturation", params:{ color:"vec4", hue:"float", saturation:"float", lightness:"float" }, body:`
+				vec3 fragRGB = clamp(color.rgb + vec3(0.001),0.0,1.0);
+				vec3 fragHSV = rgb2hsv(fragRGB);
+				lightness -= 0.01;
+				float h = hue;
+				fragHSV.x *= h;
+				fragHSV.yz *= vec2(saturation,lightness);
+				fragHSV.x = mod(fragHSV.x, 1.0);
+				fragHSV.y = mod(fragHSV.y, 1.0);
+				fragHSV.z = mod(fragHSV.z, 1.0);
+				fragRGB = hsv2rgb(fragHSV);
+				return clamp(vec4(hsv2rgb(fragHSV), color.w),0.0,1.0);`
+			},
+			colorCorrection: {
+				returnType:"vec4", name:"colorCorrection", params:{
+					fragColor:"vec4", hue:"float", saturation:"float",
+					lightness:"float", brightness:"float", contrast:"float" },
+				body:`
+				return applyContrast(applyBrightness(applySaturation(fragColor,hue,saturation,lightness),brightness),contrast);`
+			}
+		}
+	
+})();
+(function() {
+	
+	bg.webgl1.shaderLibrary
+		.inputs = {
+			// Input buffers
+			buffers: {
+				vertex: { name:"inVertex", dataType:"vec3", role:"buffer", target:"vertex" },	// role:buffer => attribute
+				normal: { name:"inNormal", dataType:"vec3", role:"buffer", target:"normal" },
+				tangent: { name:"inTangent", dataType:"vec3", role:"buffer", target:"tangent" },
+				tex0: { name:"inTex0", dataType:"vec2", role:"buffer", target:"tex0" },
+				tex1: { name:"inTex1", dataType:"vec2", role:"buffer", target:"tex1" },
+				tex2: { name:"inTex2", dataType:"vec2", role:"buffer", target:"tex2" },
+				color: { name:"inColor", dataType:"vec4", role:"buffer", target:"color" }
+			},
+			
+			// Matrixes
+			matrix: {
+				model: { name:"inModelMatrix", dataType:"mat4", role:"value" },	// role:value => uniform
+				view: { name:"inViewMatrix", dataType:"mat4", role:"value" },
+				projection: { name:"inProjectionMatrix", dataType:"mat4", role:"value" },
+				normal: { name:"inNormalMatrix", dataType:"mat4", role:"value" },
+				viewInv: { name:"inViewMatrixInv", dataType:"mat4", role:"value" }
+			},
+			
+			///// Material properties
+			material: {
+				// 		Color
+				diffuse: { name:"inDiffuseColor", dataType:"vec4", role:"value" },
+				specular: { name:"inSpecularColor", dataType:"vec4", role:"value" },
+				
+				// 		Shininess
+				shininess: { name:"inShininess", dataType:"float", role:"value" },
+				shininessMask: { name:"inShininessMask", dataType:"sampler2D", role:"value" },
+				shininessMaskChannel: { name:"inShininessMaskChannel", dataType:"vec4", role:"value" },
+				shininessMaskInvert: { name:"inShininessMaskInvert", dataType:"bool", role:"value" },
+				
+				// 		Light emission
+				lightEmission: { name:"inLightEmission", dataType:"float", role:"value" },
+				lightEmissionMask: { name:"inLightEmissionMask", dataType:"sampler2D", role:"value" },
+				lightEmissionMaskChannel: { name:"inLightEmissionMaskChannel", dataType:"vec4", role:"value" },
+				lightEmissionMaskInvert: { name:"inLightEmissionMaskInvert", dataType:"bool", role:"value" },
+				
+				
+				// 		Textures
+				texture: { name:"inTexture", dataType:"sampler2D", role:"value" },
+				textureOffset: { name:"inTextureOffset", dataType:"vec2", role:"value" },
+				textureScale: { name:"inTextureScale", dataType:"vec2", role:"value" },
+				alphaCutoff: { name:"inAlphaCutoff", dataType:"float", role:"value" },
+				
+				lightMap: { name:"inLightMap", dataType:"sampler2D", role:"value" },
+				lightMapOffset: { name:"inLightMapOffset", dataType:"vec2", role:"value" },
+				lightMapScale: { name:"inLightMapScale", dataType:"vec2", role:"value" },
+				
+				normalMap: { name:"inNormalMap", dataType:"sampler2D", role:"value" },
+				normalMapOffset: { name:"inNormalMapOffset", dataType:"vec2", role:"value" },
+				normalMapScale: { name:"inNormalMapScale", dataType:"vec2", role:"value" },
+				
+				//		Reflection
+				reflection: { name:"inReflection", dataType:"float", role:"value" },
+				reflectionMask: { name:"inReflectionMask", dataType:"sampler2D", role:"value" },
+				reflectionMaskChannel: { name:"inReflectionMaskChannel", dataType:"vec4", role:"value" },
+				reflectionMaskInvert: { name:"inReflectionMaskInvert", dataType:"bool", role:"value" },
+				
+				//		Shadows
+				castShadows: { name:"inCastShadows", dataType:"bool", role:"value" },
+				receiveShadows: { name:"inReceiveShadows", dataType:"bool", role:"value" },
+
+				//		Roughness
+				roughness: { name:"inRoughness", dataType:"float", role:"value" },
+				roughnessMask: { name:"inRoughnessMask", dataType:"sampler2D", role:"value" },
+				roughnessMaskChannel: { name:"inRoughnessMaskChannel", dataType:"vec4", role:"value" },
+				roughnessMaskInvert: { name:"inRoughnessMaskInvert", dataType:"bool", role:"value" },
+
+				unlit: { name:"inUnlit", dataType:"bool", role:"value" }
+			},
+			
+			// Lighting
+			lighting: {
+				type: { name:"inLightType", dataType:"int", role:"value" },
+				position: { name:"inLightPosition", dataType:"vec3", role:"value" },
+				direction: { name:"inLightDirection", dataType:"vec3", role:"value" },
+				ambient: { name:"inLightAmbient", dataType:"vec4", role:"value" },
+				diffuse: { name:"inLightDiffuse", dataType:"vec4", role:"value" },
+				specular: { name:"inLightSpecular", dataType:"vec4", role:"value" },
+				attenuation: { name:"inLightAttenuation", dataType:"vec3", role:"value" },	// const, linear, exp
+				spotExponent: { name:"inSpotExponent", dataType:"float", role:"value" },
+				spotCutoff: { name:"inSpotCutoff", dataType:"float", role:"value" },
+				cutoffDistance: { name:"inLightCutoffDistance", dataType:"float", role:"value" },
+				exposure: { name:"inLightExposure", dataType:"float", role:"value" },
+				castShadows: { name:"inLightCastShadows", dataType:"bool", role:"value" }
+			},
+
+			lightingForward: {
+				type: { name:"inLightType", dataType:"int", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				position: { name:"inLightPosition", dataType:"vec3", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				direction: { name:"inLightDirection", dataType:"vec3", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				ambient: { name:"inLightAmbient", dataType:"vec4", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				diffuse: { name:"inLightDiffuse", dataType:"vec4", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				specular: { name:"inLightSpecular", dataType:"vec4", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				attenuation: { name:"inLightAttenuation", dataType:"vec3", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },	// const, linear, exp
+				spotExponent: { name:"inSpotExponent", dataType:"float", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				spotCutoff: { name:"inSpotCutoff", dataType:"float", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				cutoffDistance: { name:"inLightCutoffDistance", dataType:"float", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				exposure: { name:"inLightExposure", dataType:"float", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				castShadows: { name:"inLightCastShadows", dataType:"bool", role:"value", vec:bg.base.MAX_FORWARD_LIGHTS },
+				numLights: { name:"inNumLights", dataType:"int", role:"value" }
+			},
+			
+			// Shadows
+			shadows: {
+				shadowMap: { name:"inShadowMap", dataType:"sampler2D", role:"value" },
+				shadowMapSize: { name:"inShadowMapSize", dataType:"vec2", role:"value" },
+				shadowStrength: { name:"inShadowStrength", dataType:"float", role:"value" },
+				shadowColor: { name:"inShadowColor", dataType:"vec4", role:"value" },
+				shadowBias: { name:"inShadowBias", dataType:"float", role:"value" },
+				shadowType: { name:"inShadowType", dataType:"int", role:"value" }
+			},
+			
+			// Color correction
+			colorCorrection: {
+				hue: { name:"inHue", dataType:"float", role:"value" },
+				saturation: { name:"inSaturation", dataType:"float", role:"value" },
+				lightness: { name:"inLightness", dataType:"float", role:"value" },
+				brightness: { name:"inBrightness", dataType:"float", role:"value" },
+				contrast: { name:"inContrast", dataType:"float", role:"value" }
+			}
+
+		}
+})();
+(function() {
+	
+	bg.webgl1.shaderLibrary
+		.functions
+		.lighting = {
+			beckmannDistribution: {
+				returnType:"float", name:"beckmannDistribution", params: {
+					x:"float", roughness:"float"
+				}, body: `
+					float NdotH = max(x,0.0001);
+					float cos2Alpha = NdotH * NdotH;
+					float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;
+					float roughness2 = roughness * roughness;
+					float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;
+					return exp(tan2Alpha / roughness2) / denom;
+				`
+			},
+
+			beckmannSpecular: {
+				returnType:"float", name:"beckmannSpecular", params:{
+					lightDirection:"vec3", viewDirection:"vec3", surfaceNormal:"vec3", roughness:"float"
+				}, body: `
+					return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);
+				`
+			},
+
+			getDirectionalLight: {
+				returnType:"vec4", name:"getDirectionalLight", params:{
+					ambient:"vec4", diffuse:"vec4", specular:"vec4", shininess:"float",
+					direction:"vec3", vertexPos:"vec3", normal:"vec3", matDiffuse:"vec4", matSpecular:"vec4",
+					shadowColor:"vec4",
+					specularOut:"out vec4"
+				}, body: `
+				vec3 color = ambient.rgb * matDiffuse.rgb;
+				vec3 diffuseWeight = max(0.0, dot(normal,direction)) * diffuse.rgb;
+				color += min(diffuseWeight,shadowColor.rgb) * matDiffuse.rgb;
+				specularOut = vec4(0.0,0.0,0.0,1.0);
+				if (shininess>0.0) {
+					vec3 eyeDirection = normalize(-vertexPos);
+					vec3 reflectionDirection = normalize(reflect(-direction,normal));
+					float specularWeight = clamp(pow(max(dot(reflectionDirection, eyeDirection), 0.0), shininess), 0.0, 1.0);
+					//sspecularWeight = beckmannSpecular(direction,eyeDirection,normal,0.01);
+					vec3 specularColor = specularWeight * pow(shadowColor.rgb,vec3(10.0));
+					//color += specularColor * specular.rgb * matSpecular.rgb;
+					specularOut = vec4(specularColor * specular.rgb * matSpecular.rgb,1.0);
+				}
+				return vec4(color,1.0);`
+			},
+
+			getPointLight: {
+				returnType:"vec4", name:"getPointLight", params: {
+					ambient: "vec4", diffuse: "vec4", specular: "vec4", shininess: "float",
+					position: "vec3", constAtt: "float", linearAtt: "float", expAtt: "float",
+					vertexPos: "vec3", normal: "vec3", matDiffuse: "vec4", matSpecular: "vec4",
+					specularOut:"out vec4"
+				}, body: `
+				vec3 pointToLight = position - vertexPos;
+				float distance = length(pointToLight);
+				vec3 lightDir = normalize(pointToLight);
+				float attenuation = 1.0 / (constAtt + linearAtt * distance + expAtt * distance * distance);
+				vec3 color = ambient.rgb * matDiffuse.rgb;
+				vec3 diffuseWeight = max(0.0,dot(normal,lightDir)) * diffuse.rgb * attenuation;
+				color += diffuseWeight * matDiffuse.rgb;
+				specularOut = vec4(0.0,0.0,0.0,1.0);
+				if (shininess>0.0) {
+					vec3 eyeDirection = normalize(-vertexPos);
+					vec3 reflectionDirection = normalize(reflect(-lightDir, normal));
+					float specularWeight = clamp(pow(max(dot(reflectionDirection,eyeDirection),0.0), shininess), 0.0, 1.0);
+					//color += specularWeight * specular.rgb * matSpecular.rgb * attenuation;
+					specularOut = vec4(specularWeight * specular.rgb * matSpecular.rgb * attenuation,1.0);
+				}
+				return vec4(color,1.0);`
+			},
+
+			getSpotLight: {
+				returnType:"vec4", name:"getSpotLight", params: {
+					ambient:"vec4", diffuse:"vec4", specular:"vec4", shininess:"float",
+					position:"vec3", direction:"vec3",
+					constAtt:"float", linearAtt:"float", expAtt:"float",
+					spotCutoff:"float", spotExponent:"float",
+					vertexPos:"vec3", normal:"vec3",
+					matDiffuse:"vec4", matSpecular:"vec4", shadowColor:"vec4",
+					specularOut:"out vec4"
+				}, body: `
+				vec4 matAmbient = vec4(1.0);
+				vec3 s = normalize(position - vertexPos);
+				float angle = acos(dot(-s, direction));
+				float cutoff = radians(clamp(spotCutoff / 2.0,0.0,90.0));
+				float distance = length(position - vertexPos);
+				float attenuation = 1.0 / (constAtt );//+ linearAtt * distance + expAtt * distance * distance);
+				if (angle<cutoff) {
+					float spotFactor = pow(dot(-s, direction), spotExponent);
+					vec3 v = normalize(vec3(-vertexPos));
+					vec3 h = normalize(v + s);
+					vec3 diffuseAmount = matDiffuse.rgb * diffuse.rgb * max(dot(s, normal), 0.0);
+					specularOut = vec4(0.0,0.0,0.0,1.0);
+					if (shininess>0.0) {
+						specularOut.rgb = matSpecular.rgb * specular.rgb * pow(max(dot(h,normal), 0.0),shininess);
+						specularOut.rgb *= pow(shadowColor.rgb,vec3(10.0));
+						//diffuseAmount += matSpecular.rgb * specular.rgb * pow(max(dot(h,normal), 0.0),shininess);
+						//diffuseAmount *= pow(shadowColor.rgb,vec3(10.0));
+					}
+					diffuseAmount.r = min(diffuseAmount.r, shadowColor.r);
+					diffuseAmount.g = min(diffuseAmount.g, shadowColor.g);
+					diffuseAmount.b = min(diffuseAmount.b, shadowColor.b);
+					return vec4(ambient.rgb * matDiffuse.rgb + attenuation * spotFactor * diffuseAmount,1.0);
+				}
+				else {
+					return vec4(ambient.rgb * matDiffuse.rgb,1.0);
+				}`
+			},
+
+			getLight: {
+				returnType:"vec4", name:"getLight", params: {
+					lightType:"int",
+					ambient:"vec4", diffuse:"vec4", specular:"vec4", shininess:"float",
+					lightPosition:"vec3", lightDirection:"vec3",
+					constAtt:"float", linearAtt:"float", expAtt:"float",
+					spotCutoff:"float", spotExponent:"float",cutoffDistance:"float",
+					vertexPosition:"vec3", vertexNormal:"vec3",
+					matDiffuse:"vec4", matSpecular:"vec4", shadowColor:"vec4",
+					specularOut:"out vec4"
+				}, body: `
+					vec4 light = vec4(0.0);
+					if (lightType==${ bg.base.LightType.DIRECTIONAL }) {
+						light = getDirectionalLight(ambient,diffuse,specular,shininess,
+										-lightDirection,vertexPosition,vertexNormal,matDiffuse,matSpecular,shadowColor,specularOut);
+					}
+					else if (lightType==${ bg.base.LightType.SPOT }) {
+						float d = distance(vertexPosition,lightPosition);
+						if (d<=cutoffDistance || cutoffDistance==-1.0) {
+							light = getSpotLight(ambient,diffuse,specular,shininess,
+											lightPosition,lightDirection,
+											constAtt,linearAtt,expAtt,
+											spotCutoff,spotExponent,
+											vertexPosition,vertexNormal,matDiffuse,matSpecular,shadowColor,specularOut);
+						}
+					}
+					else if (lightType==${ bg.base.LightType.POINT }) {
+						float d = distance(vertexPosition,lightPosition);
+						if (d<=cutoffDistance || cutoffDistance==-1.0) {
+							light = getPointLight(ambient,diffuse,specular,shininess,
+											lightPosition,
+											constAtt,linearAtt,expAtt,
+											vertexPosition,vertexNormal,matDiffuse,matSpecular,specularOut);
+						}
+					}
+					return light;
+				`
+			},
+			
+			getShadowColor:{
+				returnType:"vec4", name:"getShadowColor", params:{
+					vertexPosFromLight:'vec4', shadowMap:'sampler2D', shadowMapSize:'vec2',
+					shadowType:'int', shadowStrength:'float', shadowBias:'float', shadowColor:'vec4'
+				}, body:`
+				float visibility = 1.0;
+				vec3 depth = vertexPosFromLight.xyz / vertexPosFromLight.w;
+				const float kShadowBorderOffset = 3.0;
+				float shadowBorderOffset = kShadowBorderOffset / shadowMapSize.x;
+				float bias = shadowBias;
+				vec4 shadow = vec4(1.0);
+				if (shadowType==${ bg.base.ShadowType.HARD }) {	// hard
+					float shadowDepth = unpack(texture2D(shadowMap,depth.xy));
+					if (shadowDepth<depth.z - bias &&
+						(depth.x>0.0 && depth.x<1.0 && depth.y>0.0 && depth.y<1.0))
+					{
+						visibility = 1.0 - shadowStrength;
+					}
+					shadow = clamp(shadowColor + visibility,0.0,1.0);
+				}
+				else if (shadowType>=${ bg.base.ShadowType.SOFT }) {	// soft / soft stratified (not supported on webgl, fallback to soft)
+					vec2 poissonDisk[4];
+					poissonDisk[0] = vec2( -0.94201624, -0.39906216 );
+					poissonDisk[1] = vec2( 0.94558609, -0.76890725 );
+					poissonDisk[2] = vec2( -0.094184101, -0.92938870 );
+					poissonDisk[3] = vec2( 0.34495938, 0.29387760 );
+					
+					for (int i=0; i<4; ++i) {
+						float shadowDepth = unpack(texture2D(shadowMap, depth.xy + poissonDisk[i]/1000.0));
+						
+						if (shadowDepth<depth.z - bias
+							&& (depth.x>0.0 && depth.x<1.0 && depth.y>0.0 && depth.y<1.0)) {
+							visibility -= (shadowStrength) * 0.25;
+						}
+					}
+					shadow = clamp(shadowColor + visibility,0.0,1.0);
+				}
+				return shadow;`
+			}
+		}	
+})();
+(function() {
+	
+	bg.webgl1.shaderLibrary
+		.functions
+		.materials = {
+			samplerColor: {
+				returnType:"vec4", name:"samplerColor", params: {
+					sampler:"sampler2D",
+					uv:"vec2", offset:"vec2", scale:"vec2"
+				}, body:`
+				return texture2D(sampler,uv * scale + offset);`
+			},
+			
+			samplerNormal: {
+				returnType:"vec3", name:"samplerNormal", params:{
+					sampler:"sampler2D",
+					uv:"vec2", offset:"vec2", scale:"vec2"
+				}, body:`
+				return normalize(samplerColor(sampler,uv,offset,scale).xyz * 2.0 - 1.0);
+				`
+			},
+			
+			combineNormalWithMap:{
+				returnType:"vec3", name:"combineNormalWithMap", params:{
+					normalCoord:"vec3",
+					tangent:"vec3",
+					bitangent:"vec3",
+					normalMapValue:"vec3"
+				}, body:`
+				mat3 tbnMat = mat3( tangent.x, bitangent.x, normalCoord.x,
+							tangent.y, bitangent.y, normalCoord.y,
+							tangent.z, bitangent.z, normalCoord.z
+						);
+				return normalize(normalMapValue * tbnMat);`
+			},
+			
+			applyTextureMask:{
+				returnType:"float", name:"applyTextureMask", params: {
+					value:"float",
+					textureMask:"sampler2D",
+					uv:"vec2", offset:"vec2", scale:"vec2",
+					channelMask:"vec4",
+					invert:"bool"
+				}, body:`
+				float mask;
+				vec4 color = samplerColor(textureMask,uv,offset,scale);
+				mask = color.r * channelMask.r +
+						 color.g * channelMask.g +
+						 color.b * channelMask.b +
+						 color.a * channelMask.a;
+				if (invert) {
+					mask = 1.0 - mask;
+				}
+				return value * mask;`
+			},
+			
+			specularColor:{
+				returnType:"vec4", name:"specularColor", params:{
+					specular:"vec4",
+					shininessMask:"sampler2D",
+					uv:"vec2", offset:"vec2", scale:"vec2",
+					channelMask:"vec4",
+					invert:"bool"
+				}, body:`
+				float maskValue = applyTextureMask(1.0, shininessMask,uv,offset,scale,channelMask,invert);
+				return vec4(specular.rgb * maskValue, 1.0);`
+			}
+		};
+	
+})();
+(function() {
+	
+	bg.webgl1.shaderLibrary
+		.functions
+		.utils = {
+			pack: {
+				returnType:"vec4", name:"pack", params:{ depth:"float" }, body: `
+				const vec4 bitSh = vec4(256 * 256 * 256,
+										256 * 256,
+										256,
+										1.0);
+				const vec4 bitMsk = vec4(0,
+										1.0 / 256.0,
+										1.0 / 256.0,
+										1.0 / 256.0);
+				vec4 comp = fract(depth * bitSh);
+				comp -= comp.xxyz * bitMsk;
+				return comp;`
+			},
+			
+			unpack: {
+				returnType:"float", name:"unpack", params:{ color:"vec4" }, body:`
+				const vec4 bitShifts = vec4(1.0 / (256.0 * 256.0 * 256.0),
+											1.0 / (256.0 * 256.0),
+											1.0 / 256.0,
+											1.0);
+				return dot(color, bitShifts);`
+			},
+			
+			random: {
+				returnType:"float", name:"random", params:{
+					seed:"vec3", i:"int"
+				}, body:`
+				vec4 seed4 = vec4(seed,i);
+				float dot_product = dot(seed4, vec4(12.9898,78.233,45.164,94.673));
+				return fract(sin(dot_product) * 43758.5453);`
+			},
+
+			texOffset: {
+				returnType: 'vec4', name:'texOffset', params: {
+					sampler:'sampler2D',
+					texCoord:'vec2',
+					offset:'vec2',
+					frameSize:'vec2'
+				}, body: `
+				return texture2D(sampler,texCoord + vec2(offset.x * 1.0/frameSize.x,offset.y * 1.0 / frameSize.y));
+				`
+			},
+
+			luminance: {
+				returnType: 'float', name:'luminance', params: { color:'vec3' }, body: `
+				return dot(vec3(0.2126,0.7152,0.0722), color);
+				`
+			},
+
+			// Require: colorCorrection.luminance and utils.texOffset
+			borderDetection:{
+				returnType: 'float', name:'borderDetection', params: {
+					sampler:'sampler2D', texCoord:'vec2', frameSize:'vec2'
+				}, body: `
+				float s00 = luminance(texOffset(sampler,texCoord,vec2(-1.0, 1.0),frameSize).rgb);
+				float s10 = luminance(texOffset(sampler,texCoord,vec2(-1.0, 0.0),frameSize).rgb);
+				float s20 = luminance(texOffset(sampler,texCoord,vec2(-1.0,-1.0),frameSize).rgb);
+				float s01 = luminance(texOffset(sampler,texCoord,vec2(-1.0, 1.0),frameSize).rgb);
+				float s21 = luminance(texOffset(sampler,texCoord,vec2( 0.0,-1.0),frameSize).rgb);
+				float s02 = luminance(texOffset(sampler,texCoord,vec2( 1.0, 1.0),frameSize).rgb);
+				float s12 = luminance(texOffset(sampler,texCoord,vec2( 1.0, 0.0),frameSize).rgb);
+				float s22 = luminance(texOffset(sampler,texCoord,vec2( 1.0,-1.0),frameSize).rgb);
+
+				float sx = s00 + 2.0 * s10 + s20 - (s02 + 2.0 * s12 + s22);
+				float sy = s00 + 2.0 * s01 + s02 - (s20 + 2.0 * s21 + s22);
+
+				return sx * sx + sy * sy;
+				`
+			},
+
+			applyConvolution:{
+				returnType:'vec4', name:'applyConvolution', params: {
+					texture:'sampler2D', texCoord:'vec2', texSize:'vec2', convMatrix:'float[9]', radius:'float'
+				}, body: `
+				vec2 onePixel = vec2(1.0,1.0) / texSize * radius;
+				vec4 colorSum = 
+					texture2D(texture, texCoord + onePixel * vec2(-1, -1)) * convMatrix[0] +
+					texture2D(texture, texCoord + onePixel * vec2( 0, -1)) * convMatrix[1] +
+					texture2D(texture, texCoord + onePixel * vec2( 1, -1)) * convMatrix[2] +
+					texture2D(texture, texCoord + onePixel * vec2(-1,  0)) * convMatrix[3] +
+					texture2D(texture, texCoord + onePixel * vec2( 0,  0)) * convMatrix[4] +
+					texture2D(texture, texCoord + onePixel * vec2( 1,  0)) * convMatrix[5] +
+					texture2D(texture, texCoord + onePixel * vec2(-1,  1)) * convMatrix[6] +
+					texture2D(texture, texCoord + onePixel * vec2( 0,  1)) * convMatrix[7] +
+					texture2D(texture, texCoord + onePixel * vec2( 1,  1)) * convMatrix[8];
+				float kernelWeight =
+					convMatrix[0] +
+					convMatrix[1] +
+					convMatrix[2] +
+					convMatrix[3] +
+					convMatrix[4] +
+					convMatrix[5] +
+					convMatrix[6] +
+					convMatrix[7] +
+					convMatrix[8];
+				if (kernelWeight <= 0.0) {
+					kernelWeight = 1.0;
+				}
+				return vec4((colorSum / kernelWeight).rgb, 1.0);
+				`
+			}
+		}	
+})();
+(function() {
+	
+	class ShaderImpl extends bg.base.ShaderImpl {
+		initFlags(context) {
+			bg.base.ShaderType.VERTEX = context.VERTEX_SHADER;
+			bg.base.ShaderType.FRAGMENT = context.FRAGMENT_SHADER;
+		}
+		
+		setActive(context,shaderProgram) {
+			context.useProgram(shaderProgram && shaderProgram.program);
+		}
+		
+		create(context) {
+			return {
+				program:context.createProgram(),
+				attribLocations:{},
+				uniformLocations:{}
+			};
+		}
+		
+		addShaderSource(context,shaderProgram,shaderType,source) {
+			let error = null;
+			
+			if (!shaderProgram || !shaderProgram.program ) {
+				error = "Could not attach shader. Invalid shader program";
+			}
+			else {
+				let shader = context.createShader(shaderType);
+				context.shaderSource(shader,source);
+				context.compileShader(shader);
+				
+				if (!context.getShaderParameter(shader, context.COMPILE_STATUS)) {
+					error = context.getShaderInfoLog(shader);
+				}
+				else {
+					context.attachShader(shaderProgram.program,shader);
+				}
+				
+				context.deleteShader(shader);
+			}
+			
+			return error;
+		}
+		
+		link(context,shaderProgram) {
+			let error = null;
+			if (!shaderProgram || !shaderProgram.program ) {
+				error = "Could not link shader. Invalid shader program";
+			}
+			else {
+				context.linkProgram(shaderProgram.program);
+				if (!context.getProgramParameter(shaderProgram.program,context.LINK_STATUS)) {
+					error = context.getProgramInfoLog(shaderProgram.program);
+				}
+			}
+			return error;
+		}
+		
+		initVars(context,shader,inputBufferVars,valueVars) {
+			inputBufferVars.forEach(function(name) {
+				shader.attribLocations[name] = context.getAttribLocation(shader.program,name);
+			});
+			
+			valueVars.forEach(function(name) {
+				shader.uniformLocations[name] = context.getUniformLocation(shader.program,name);
+			});
+		}
+
+		setInputBuffer(context,shader,varName,vertexBuffer,itemSize) {
+			if (vertexBuffer && shader && shader.program) {
+				let loc = shader.attribLocations[varName];
+				if (loc!=-1) {
+					context.bindBuffer(context.ARRAY_BUFFER,vertexBuffer);
+					context.enableVertexAttribArray(loc);
+					context.vertexAttribPointer(loc,itemSize,context.FLOAT,false,0,0);
+				}
+			}
+		}
+		
+		disableInputBuffer(context,shader,name) {
+			context.disableVertexAttribArray(shader.attribLocations[name]);
+		}
+		
+		setValueInt(context,shader,name,v) {
+			context.uniform1i(shader.uniformLocations[name],v);
+		}
+
+		setValueIntPtr(context,shader,name,v) {
+			context.uniform1iv(shader.uniformLocations[name],v);
+		}
+		
+		setValueFloat(context,shader,name,v) {
+			context.uniform1f(shader.uniformLocations[name],v);
+		}
+
+		setValueFloatPtr(context,shader,name,v) {
+			context.uniform1fv(shader.uniformLocations[name],v);
+		}
+		
+		setValueVector2(context,shader,name,v) {
+			context.uniform2fv(shader.uniformLocations[name],v.v);
+		}
+		
+		setValueVector3(context,shader,name,v) {
+			context.uniform3fv(shader.uniformLocations[name],v.v);
+		}
+		
+		setValueVector4(context,shader,name,v) {
+			context.uniform4fv(shader.uniformLocations[name],v.v);
+		}
+
+		setValueVector2v(context,shader,name,v) {
+			context.uniform2fv(shader.uniformLocations[name],v);
+		}
+
+		setValueVector3v(context,shader,name,v) {
+			context.uniform3fv(shader.uniformLocations[name],v);
+		}
+
+		setValueVector4v(context,shader,name,v) {
+			context.uniform4fv(shader.uniformLocations[name],v);
+		}
+		
+		setValueMatrix3(context,shader,name,traspose,v) {
+			context.uniformMatrix3fv(shader.uniformLocations[name],traspose,v.m);
+		}
+		
+		setValueMatrix4(context,shader,name,traspose,v) {
+			context.uniformMatrix4fv(shader.uniformLocations[name],traspose,v.m);
+		}
+		
+		setTexture(context,shader,name,texture,textureUnit) {
+			texture.setActive(textureUnit);
+			texture.bind();
+			context.uniform1i(shader.uniformLocations[name],textureUnit);
+		}
+	}
+	
+	bg.webgl1.ShaderImpl = ShaderImpl;
+	
+})();
+
+(function() {
+	
+	class TextureImpl extends bg.base.TextureImpl {
+		initFlags(context) {
+			bg.base.TextureWrap.REPEAT = context.REPEAT;
+			bg.base.TextureWrap.CLAMP = context.CLAMP_TO_EDGE;
+			bg.base.TextureWrap.MIRRORED_REPEAT = context.MIRRORED_REPEAT;
+			
+			bg.base.TextureFilter.NEAREST_MIPMAP_NEAREST = context.NEAREST_MIPMAP_NEAREST;
+			bg.base.TextureFilter.LINEAR_MIPMAP_NEAREST = context.LINEAR_MIPMAP_NEAREST;
+			bg.base.TextureFilter.NEAREST_MIPMAP_LINEAR = context.NEAREST_MIPMAP_LINEAR;
+			bg.base.TextureFilter.LINEAR_MIPMAP_LINEAR = context.LINEAR_MIPMAP_LINEAR;
+			bg.base.TextureFilter.NEAREST = context.NEAREST;
+			bg.base.TextureFilter.LINEAR = context.LINEAR;
+			
+			bg.base.TextureTarget.TEXTURE_2D 		= context.TEXTURE_2D;
+			bg.base.TextureTarget.CUBE_MAP 		= context.TEXTURE_CUBE_MAP;
+			bg.base.TextureTarget.POSITIVE_X_FACE = context.TEXTURE_CUBE_MAP_POSITIVE_X;
+			bg.base.TextureTarget.NEGATIVE_X_FACE = context.TEXTURE_CUBE_MAP_NEGATIVE_X;
+			bg.base.TextureTarget.POSITIVE_Y_FACE = context.TEXTURE_CUBE_MAP_POSITIVE_Y;
+			bg.base.TextureTarget.NEGATIVE_Y_FACE = context.TEXTURE_CUBE_MAP_NEGATIVE_Y;
+			bg.base.TextureTarget.POSITIVE_Z_FACE = context.TEXTURE_CUBE_MAP_POSITIVE_Z;
+			bg.base.TextureTarget.NEGATIVE_Z_FACE = context.TEXTURE_CUBE_MAP_NEGATIVE_Z;
+		}
+		
+		requireMipmaps(minFilter,magFilter) {
+			return	minFilter==bg.base.TextureFilter.NEAREST_MIPMAP_NEAREST	||
+					minFilter==bg.base.TextureFilter.LINEAR_MIPMAP_NEAREST 	||
+					minFilter==bg.base.TextureFilter.NEAREST_MIPMAP_LINEAR 	||
+					minFilter==bg.base.TextureFilter.LINEAR_MIPMAP_LINEAR		||
+					magFilter==bg.base.TextureFilter.NEAREST_MIPMAP_NEAREST	||
+					magFilter==bg.base.TextureFilter.LINEAR_MIPMAP_NEAREST 	||
+					magFilter==bg.base.TextureFilter.NEAREST_MIPMAP_LINEAR	||
+					magFilter==bg.base.TextureFilter.LINEAR_MIPMAP_LINEAR;
+		}
+		
+		create(context) {
+			return context.createTexture();
+		}
+		
+		setActive(context,texUnit) {
+			context.activeTexture(context.TEXTURE0 + texUnit);
+		}
+		
+		bind(context,target,texture) {
+			context.bindTexture(target, texture);
+		}
+		
+		unbind(context,target) {
+			this.bind(context,target,null);
+		}
+		
+		setTextureWrapX(context,target,texture,wrap) {
+			context.texParameteri(target, context.TEXTURE_WRAP_S, wrap);
+		}
+		
+		setTextureWrapY(context,target,texture,wrap) {
+			context.texParameteri(target, context.TEXTURE_WRAP_T, wrap);
+		}
+		
+		setImage(context,target,minFilter,magFilter,texture,img,flipY) {
+			if (flipY) context.pixelStorei(context.UNPACK_FLIP_Y_WEBGL, true);
+			context.texParameteri(target, context.TEXTURE_MIN_FILTER, minFilter);
+			context.texParameteri(target, context.TEXTURE_MAG_FILTER, magFilter);
+			context.texImage2D(target,0,context.RGBA,context.RGBA,context.UNSIGNED_BYTE, img);
+			if (this.requireMipmaps(minFilter,magFilter)) {
+				context.generateMipmap(target);
+			}
+		}
+		
+		setImageRaw(context,target,minFilter,magFilter,texture,width,height,data,type,format) {
+			if (!type) {
+				type = context.RGBA;
+			}
+			if (!format) {
+				format = context.UNSIGNED_BYTE;
+			}
+			if (format==bg.base.RenderSurfaceFormat.FLOAT) {
+				minFilter = bg.base.TextureFilter.NEAREST;
+				magFilter = bg.base.TextureFilter.NEAREST;
+			}
+			context.texParameteri(target, context.TEXTURE_MIN_FILTER, minFilter);
+			context.texParameteri(target, context.TEXTURE_MAG_FILTER, magFilter);
+			context.texImage2D(target,0, type,width,height,0,type,format, data);
+			if (this.requireMipmaps(minFilter,magFilter)) {
+				context.generateMipmap(target);
+			}
+		}
+
+		setTextureFilter(context,target,minFilter,magFilter) {
+			context.texParameteri(target,context.TEXTURE_MIN_FILTER,minFilter);
+			context.texParameteri(target,context.TEXTURE_MAG_FILTER,magFilter);
+		}
+
+		setCubemapImage(context,face,image) {
+			context.pixelStorei(context.UNPACK_FLIP_Y_WEBGL, false);
+			context.texParameteri(context.TEXTURE_CUBE_MAP, context.TEXTURE_MIN_FILTER, bg.base.TextureFilter.LINEAR);
+			context.texParameteri(context.TEXTURE_CUBE_MAP, context.TEXTURE_MAG_FILTER, bg.base.TextureFilter.LINEAR);
+			context.texImage2D(face, 0, context.RGBA, context.RGBA, context.UNSIGNED_BYTE, image);
+		}
+
+		setCubemapRaw(context,face,rawImage,w,h) {
+			let type = context.RGBA;
+			let format = context.UNSIGNED_BYTE;
+			context.texParameteri(context.TEXTURE_CUBE_MAP, context.TEXTURE_MIN_FILTER, bg.base.TextureFilter.LINEAR);
+			context.texParameteri(context.TEXTURE_CUBE_MAP, context.TEXTURE_MAG_FILTER, bg.base.TextureFilter.LINEAR);
+			context.pixelStorei(context.UNPACK_FLIP_Y_WEBGL, false);
+			context.texImage2D(face, 0, type, w, h, 0, type, format, rawImage);
+		}
+
+		setVideo(context,target,texture,video,flipY) {
+			if (flipY) context.pixelStorei(context.UNPACK_FLIP_Y_WEBGL, false);
+			context.texParameteri(target, context.TEXTURE_MAG_FILTER, context.LINEAR);
+			context.texParameteri(target, context.TEXTURE_MIN_FILTER, context.LINEAR);
+			context.texParameteri(target, context.TEXTURE_WRAP_S, context.CLAMP_TO_EDGE);
+			context.texParameteri(target, context.TEXTURE_WRAP_T, context.CLAMP_TO_EDGE);
+			context.texImage2D(target,0,context.RGBA,context.RGBA,context.UNSIGNED_BYTE,video);
+		}
+
+		updateVideoData(context,target,texture,video) {
+			context.bindTexture(target, texture);
+			context.texImage2D(target,0,context.RGBA,context.RGBA,context.UNSIGNED_BYTE,video);
+			context.bindTexture(target,null);
+		}
+
+		destroy(context,texture) {
+			context.deleteTexture(this._texture);
+		}
+	}
+	
+	bg.webgl1.TextureImpl = TextureImpl;
+	
+})();
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/javascript/jquery.min.js b/src/main/webapp/static/js/paella/player/javascript/jquery.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1c07fd803b5fc9c54f44e31123ae4fa11e134b0
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/javascript/jquery.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
diff --git a/src/main/webapp/static/js/paella/player/javascript/lunr.min.js b/src/main/webapp/static/js/paella/player/javascript/lunr.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..e629d5a529fc24d5b6a77cc8336b152f4438208b
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/javascript/lunr.min.js
@@ -0,0 +1,51 @@
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8
+ * Copyright (C) 2019 Oliver Nightingale
+ * @license MIT
+ */
+!function(){var e,t,r,i,n,s,o,a,u,l,c,h,d,f,p,y,m,g,x,v,w,Q,k,S,E,L,b,P,T=function(e){var t=new T.Builder;return t.pipeline.add(T.trimmer,T.stopWordFilter,T.stemmer),t.searchPipeline.add(T.stemmer),e.call(t,t),t.build()};T.version="2.3.8"
+/*!
+ * lunr.utils
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.utils={},T.utils.warn=(e=this,function(t){e.console&&console.warn&&console.warn(t)}),T.utils.asString=function(e){return null==e?"":e.toString()},T.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var n=r[i],s=e[n];if(Array.isArray(s))t[n]=s.slice();else{if("string"!=typeof s&&"number"!=typeof s&&"boolean"!=typeof s)throw new TypeError("clone is not deep and does not support nested objects");t[n]=s}}return t},T.FieldRef=function(e,t,r){this.docRef=e,this.fieldName=t,this._stringValue=r},T.FieldRef.joiner="/",T.FieldRef.fromString=function(e){var t=e.indexOf(T.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var r=e.slice(0,t),i=e.slice(t+1);return new T.FieldRef(i,r,e)},T.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+T.FieldRef.joiner+this.docRef),this._stringValue}
+/*!
+ * lunr.Set
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},T.Set.complete={intersect:function(e){return e},union:function(e){return e},contains:function(){return!0}},T.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},T.Set.prototype.contains=function(e){return!!this.elements[e]},T.Set.prototype.intersect=function(e){var t,r,i,n=[];if(e===T.Set.complete)return this;if(e===T.Set.empty)return e;this.length<e.length?(t=this,r=e):(t=e,r=this),i=Object.keys(t.elements);for(var s=0;s<i.length;s++){var o=i[s];o in r.elements&&n.push(o)}return new T.Set(n)},T.Set.prototype.union=function(e){return e===T.Set.complete?T.Set.complete:e===T.Set.empty?this:new T.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},T.idf=function(e,t){var r=0;for(var i in e)"_index"!=i&&(r+=Object.keys(e[i]).length);var n=(t-r+.5)/(r+.5);return Math.log(1+Math.abs(n))},T.Token=function(e,t){this.str=e||"",this.metadata=t||{}},T.Token.prototype.toString=function(){return this.str},T.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},T.Token.prototype.clone=function(e){return e=e||function(e){return e},new T.Token(e(this.str,this.metadata),this.metadata)}
+/*!
+ * lunr.tokenizer
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new T.Token(T.utils.asString(e).toLowerCase(),T.utils.clone(t))}));for(var r=e.toString().toLowerCase(),i=r.length,n=[],s=0,o=0;s<=i;s++){var a=s-o;if(r.charAt(s).match(T.tokenizer.separator)||s==i){if(a>0){var u=T.utils.clone(t)||{};u.position=[o,a],u.index=n.length,n.push(new T.Token(r.slice(o,s),u))}o=s+1}}return n},T.tokenizer.separator=/[\s\-]+/
+/*!
+ * lunr.Pipeline
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.Pipeline=function(){this._stack=[]},T.Pipeline.registeredFunctions=Object.create(null),T.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&T.utils.warn("Overwriting existing registered function: "+t),e.label=t,T.Pipeline.registeredFunctions[e.label]=e},T.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||T.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},T.Pipeline.load=function(e){var t=new T.Pipeline;return e.forEach((function(e){var r=T.Pipeline.registeredFunctions[e];if(!r)throw new Error("Cannot load unregistered function: "+e);t.add(r)})),t},T.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){T.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},T.Pipeline.prototype.after=function(e,t){T.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},T.Pipeline.prototype.before=function(e,t){T.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},T.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},T.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r<t;r++){for(var i=this._stack[r],n=[],s=0;s<e.length;s++){var o=i(e[s],s,e);if(null!=o&&""!==o)if(Array.isArray(o))for(var a=0;a<o.length;a++)n.push(o[a]);else n.push(o)}e=n}return e},T.Pipeline.prototype.runString=function(e,t){var r=new T.Token(e,t);return this.run([r]).map((function(e){return e.toString()}))},T.Pipeline.prototype.reset=function(){this._stack=[]},T.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return T.Pipeline.warnIfFunctionNotRegistered(e),e.label}))}
+/*!
+ * lunr.Vector
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.Vector=function(e){this._magnitude=0,this.elements=e||[]},T.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,r=this.elements.length/2,i=r-t,n=Math.floor(i/2),s=this.elements[2*n];i>1&&(s<e&&(t=n),s>e&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:s<e?2*(n+1):void 0},T.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},T.Vector.prototype.upsert=function(e,t,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],t):this.elements.splice(i,0,e,t)},T.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,r=1;r<t;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},T.Vector.prototype.dot=function(e){for(var t=0,r=this.elements,i=e.elements,n=r.length,s=i.length,o=0,a=0,u=0,l=0;u<n&&l<s;)(o=r[u])<(a=i[l])?u+=2:o>a?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},T.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},T.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t<this.elements.length;t+=2,r++)e[r]=this.elements[t];return e},T.Vector.prototype.toJSON=function(){return this.elements}
+/*!
+ * lunr.stemmer
+ * Copyright (C) 2019 Oliver Nightingale
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+ */,T.stemmer=(t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},r={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},i="[aeiouy]",n="[^aeiou][^aeiouy]*",s=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),o=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),a=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$"),u=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy]"),l=/^(.+?)(ss|i)es$/,c=/^(.+?)([^s])s$/,h=/^(.+?)eed$/,d=/^(.+?)(ed|ing)$/,f=/.$/,p=/(at|bl|iz)$/,y=new RegExp("([^aeiouylsz])\\1$"),m=new RegExp("^"+n+i+"[^aeiouwxy]$"),g=/^(.+?[^aeiou])y$/,x=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,v=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,w=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,Q=/^(.+?)(s|t)(ion)$/,k=/^(.+?)e$/,S=/ll$/,E=new RegExp("^"+n+i+"[^aeiouwxy]$"),L=function(e){var i,n,L,b,P,T,O;if(e.length<3)return e;if("y"==(L=e.substr(0,1))&&(e=L.toUpperCase()+e.substr(1)),P=c,(b=l).test(e)?e=e.replace(b,"$1$2"):P.test(e)&&(e=e.replace(P,"$1$2")),P=d,(b=h).test(e)){var I=b.exec(e);(b=s).test(I[1])&&(b=f,e=e.replace(b,""))}else P.test(e)&&(i=(I=P.exec(e))[1],(P=u).test(i)&&(T=y,O=m,(P=p).test(e=i)?e+="e":T.test(e)?(b=f,e=e.replace(b,"")):O.test(e)&&(e+="e")));return(b=g).test(e)&&(e=(i=(I=b.exec(e))[1])+"i"),(b=x).test(e)&&(i=(I=b.exec(e))[1],n=I[2],(b=s).test(i)&&(e=i+t[n])),(b=v).test(e)&&(i=(I=b.exec(e))[1],n=I[2],(b=s).test(i)&&(e=i+r[n])),P=Q,(b=w).test(e)?(i=(I=b.exec(e))[1],(b=o).test(i)&&(e=i)):P.test(e)&&(i=(I=P.exec(e))[1]+I[2],(P=o).test(i)&&(e=i)),(b=k).test(e)&&(i=(I=b.exec(e))[1],P=a,T=E,((b=o).test(i)||P.test(i)&&!T.test(i))&&(e=i)),P=o,(b=S).test(e)&&P.test(e)&&(b=f,e=e.replace(b,"")),"y"==L&&(e=L.toLowerCase()+e.substr(1)),e},function(e){return e.update(L)}),T.Pipeline.registerFunction(T.stemmer,"stemmer")
+/*!
+ * lunr.stopWordFilter
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},T.stopWordFilter=T.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),T.Pipeline.registerFunction(T.stopWordFilter,"stopWordFilter")
+/*!
+ * lunr.trimmer
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},T.Pipeline.registerFunction(T.trimmer,"trimmer")
+/*!
+ * lunr.TokenSet
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.TokenSet=function(){this.final=!1,this.edges={},this.id=T.TokenSet._nextId,T.TokenSet._nextId+=1},T.TokenSet._nextId=1,T.TokenSet.fromArray=function(e){for(var t=new T.TokenSet.Builder,r=0,i=e.length;r<i;r++)t.insert(e[r]);return t.finish(),t.root},T.TokenSet.fromClause=function(e){return"editDistance"in e?T.TokenSet.fromFuzzyString(e.term,e.editDistance):T.TokenSet.fromString(e.term)},T.TokenSet.fromFuzzyString=function(e,t){for(var r=new T.TokenSet,i=[{node:r,editsRemaining:t,str:e}];i.length;){var n=i.pop();if(n.str.length>0){var s,o=n.str.charAt(0);o in n.node.edges?s=n.node.edges[o]:(s=new T.TokenSet,n.node.edges[o]=s),1==n.str.length&&(s.final=!0),i.push({node:s,editsRemaining:n.editsRemaining,str:n.str.slice(1)})}if(0!=n.editsRemaining){if("*"in n.node.edges)var a=n.node.edges["*"];else{a=new T.TokenSet;n.node.edges["*"]=a}if(0==n.str.length&&(a.final=!0),i.push({node:a,editsRemaining:n.editsRemaining-1,str:n.str}),n.str.length>1&&i.push({node:n.node,editsRemaining:n.editsRemaining-1,str:n.str.slice(1)}),1==n.str.length&&(n.node.final=!0),n.str.length>=1){if("*"in n.node.edges)var u=n.node.edges["*"];else{u=new T.TokenSet;n.node.edges["*"]=u}1==n.str.length&&(u.final=!0),i.push({node:u,editsRemaining:n.editsRemaining-1,str:n.str.slice(1)})}if(n.str.length>1){var l,c=n.str.charAt(0),h=n.str.charAt(1);h in n.node.edges?l=n.node.edges[h]:(l=new T.TokenSet,n.node.edges[h]=l),1==n.str.length&&(l.final=!0),i.push({node:l,editsRemaining:n.editsRemaining-1,str:c+n.str.slice(2)})}}}return r},T.TokenSet.fromString=function(e){for(var t=new T.TokenSet,r=t,i=0,n=e.length;i<n;i++){var s=e[i],o=i==n-1;if("*"==s)t.edges[s]=t,t.final=o;else{var a=new T.TokenSet;a.final=o,t.edges[s]=a,t=a}}return r},T.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var r=t.pop(),i=Object.keys(r.node.edges),n=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var s=0;s<n;s++){var o=i[s];t.push({prefix:r.prefix.concat(o),node:r.node.edges[o]})}}return e},T.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),r=t.length,i=0;i<r;i++){var n=t[i];e=e+n+this.edges[n].id}return e},T.TokenSet.prototype.intersect=function(e){for(var t=new T.TokenSet,r=void 0,i=[{qNode:e,output:t,node:this}];i.length;){r=i.pop();for(var n=Object.keys(r.qNode.edges),s=n.length,o=Object.keys(r.node.edges),a=o.length,u=0;u<s;u++)for(var l=n[u],c=0;c<a;c++){var h=o[c];if(h==l||"*"==l){var d=r.node.edges[h],f=r.qNode.edges[l],p=d.final&&f.final,y=void 0;h in r.output.edges?(y=r.output.edges[h]).final=y.final||p:((y=new T.TokenSet).final=p,r.output.edges[h]=y),i.push({qNode:f,output:y,node:d})}}}return t},T.TokenSet.Builder=function(){this.previousWord="",this.root=new T.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},T.TokenSet.Builder.prototype.insert=function(e){var t,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(i=r;i<e.length;i++){var n=new T.TokenSet,s=e[i];t.edges[s]=n,this.uncheckedNodes.push({parent:t,char:s,child:n}),t=n}t.final=!0,this.previousWord=e},T.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},T.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}}
+/*!
+ * lunr.Index
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},T.Index.prototype.search=function(e){return this.query((function(t){new T.QueryParser(e,t).parse()}))},T.Index.prototype.query=function(e){for(var t=new T.Query(this.fields),r=Object.create(null),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a<this.fields.length;a++)i[this.fields[a]]=new T.Vector;e.call(t,t);for(a=0;a<t.clauses.length;a++){var u=t.clauses[a],l=null,c=T.Set.complete;l=u.usePipeline?this.pipeline.runString(u.term,{fields:u.fields}):[u.term];for(var h=0;h<l.length;h++){var d=l[h];u.term=d;var f=T.TokenSet.fromClause(u),p=this.tokenSet.intersect(f).toArray();if(0===p.length&&u.presence===T.Query.presence.REQUIRED){for(var y=0;y<u.fields.length;y++){s[F=u.fields[y]]=T.Set.empty}break}for(var m=0;m<p.length;m++){var g=p[m],x=this.invertedIndex[g],v=x._index;for(y=0;y<u.fields.length;y++){var w=x[F=u.fields[y]],Q=Object.keys(w),k=g+"/"+F,S=new T.Set(Q);if(u.presence==T.Query.presence.REQUIRED&&(c=c.union(S),void 0===s[F]&&(s[F]=T.Set.complete)),u.presence!=T.Query.presence.PROHIBITED){if(i[F].upsert(v,u.boost,(function(e,t){return e+t})),!n[k]){for(var E=0;E<Q.length;E++){var L,b=Q[E],P=new T.FieldRef(b,F),O=w[b];void 0===(L=r[P])?r[P]=new T.MatchData(g,F,O):L.add(g,F,O)}n[k]=!0}}else void 0===o[F]&&(o[F]=T.Set.empty),o[F]=o[F].union(S)}}}if(u.presence===T.Query.presence.REQUIRED)for(y=0;y<u.fields.length;y++){s[F=u.fields[y]]=s[F].intersect(c)}}var I=T.Set.complete,R=T.Set.empty;for(a=0;a<this.fields.length;a++){var F;s[F=this.fields[a]]&&(I=I.intersect(s[F])),o[F]&&(R=R.union(o[F]))}var C=Object.keys(r),N=[],j=Object.create(null);if(t.isNegated()){C=Object.keys(this.fieldVectors);for(a=0;a<C.length;a++){P=C[a];var _=T.FieldRef.fromString(P);r[P]=new T.MatchData}}for(a=0;a<C.length;a++){var D=(_=T.FieldRef.fromString(C[a])).docRef;if(I.contains(D)&&!R.contains(D)){var A,B=this.fieldVectors[_],V=i[_.fieldName].similarity(B);if(void 0!==(A=j[D]))A.score+=V,A.matchData.combine(r[_]);else{var z={ref:D,score:V,matchData:r[_]};j[D]=z,N.push(z)}}}return N.sort((function(e,t){return t.score-e.score}))},T.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:T.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},T.Index.load=function(e){var t={},r={},i=e.fieldVectors,n=Object.create(null),s=e.invertedIndex,o=new T.TokenSet.Builder,a=T.Pipeline.load(e.pipeline);e.version!=T.version&&T.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+T.version+"' does not match serialized index '"+e.version+"'");for(var u=0;u<i.length;u++){var l=(h=i[u])[0],c=h[1];r[l]=new T.Vector(c)}for(u=0;u<s.length;u++){var h,d=(h=s[u])[0],f=h[1];o.insert(d),n[d]=f}return o.finish(),t.fields=e.fields,t.fieldVectors=r,t.invertedIndex=n,t.tokenSet=o.root,t.pipeline=a,new T.Index(t)}
+/*!
+ * lunr.Builder
+ * Copyright (C) 2019 Oliver Nightingale
+ */,T.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=T.tokenizer,this.pipeline=new T.Pipeline,this.searchPipeline=new T.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},T.Builder.prototype.ref=function(e){this._ref=e},T.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},T.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},T.Builder.prototype.k1=function(e){this._k1=e},T.Builder.prototype.add=function(e,t){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var n=0;n<i.length;n++){var s=i[n],o=this._fields[s].extractor,a=o?o(e):e[s],u=this.tokenizer(a,{fields:[s]}),l=this.pipeline.run(u),c=new T.FieldRef(r,s),h=Object.create(null);this.fieldTermFrequencies[c]=h,this.fieldLengths[c]=0,this.fieldLengths[c]+=l.length;for(var d=0;d<l.length;d++){var f=l[d];if(null==h[f]&&(h[f]=0),h[f]+=1,null==this.invertedIndex[f]){var p=Object.create(null);p._index=this.termIndex,this.termIndex+=1;for(var y=0;y<i.length;y++)p[i[y]]=Object.create(null);this.invertedIndex[f]=p}null==this.invertedIndex[f][s][r]&&(this.invertedIndex[f][s][r]=Object.create(null));for(var m=0;m<this.metadataWhitelist.length;m++){var g=this.metadataWhitelist[m],x=f.metadata[g];null==this.invertedIndex[f][s][r][g]&&(this.invertedIndex[f][s][r][g]=[]),this.invertedIndex[f][s][r][g].push(x)}}}},T.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,r={},i={},n=0;n<t;n++){var s=T.FieldRef.fromString(e[n]),o=s.fieldName;i[o]||(i[o]=0),i[o]+=1,r[o]||(r[o]=0),r[o]+=this.fieldLengths[s]}var a=Object.keys(this._fields);for(n=0;n<a.length;n++){var u=a[n];r[u]=r[u]/i[u]}this.averageFieldLength=r},T.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),r=t.length,i=Object.create(null),n=0;n<r;n++){for(var s=T.FieldRef.fromString(t[n]),o=s.fieldName,a=this.fieldLengths[s],u=new T.Vector,l=this.fieldTermFrequencies[s],c=Object.keys(l),h=c.length,d=this._fields[o].boost||1,f=this._documents[s.docRef].boost||1,p=0;p<h;p++){var y,m,g,x=c[p],v=l[x],w=this.invertedIndex[x]._index;void 0===i[x]?(y=T.idf(this.invertedIndex[x],this.documentCount),i[x]=y):y=i[x],m=y*((this._k1+1)*v)/(this._k1*(1-this._b+this._b*(a/this.averageFieldLength[o]))+v),m*=d,m*=f,g=Math.round(1e3*m)/1e3,u.insert(w,g)}e[s]=u}this.fieldVectors=e},T.Builder.prototype.createTokenSet=function(){this.tokenSet=T.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},T.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new T.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},T.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},T.MatchData=function(e,t,r){for(var i=Object.create(null),n=Object.keys(r||{}),s=0;s<n.length;s++){var o=n[s];i[o]=r[o].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=i)},T.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),r=0;r<t.length;r++){var i=t[r],n=Object.keys(e.metadata[i]);null==this.metadata[i]&&(this.metadata[i]=Object.create(null));for(var s=0;s<n.length;s++){var o=n[s],a=Object.keys(e.metadata[i][o]);null==this.metadata[i][o]&&(this.metadata[i][o]=Object.create(null));for(var u=0;u<a.length;u++){var l=a[u];null==this.metadata[i][o][l]?this.metadata[i][o][l]=e.metadata[i][o][l]:this.metadata[i][o][l]=this.metadata[i][o][l].concat(e.metadata[i][o][l])}}}},T.MatchData.prototype.add=function(e,t,r){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=r);if(t in this.metadata[e])for(var i=Object.keys(r),n=0;n<i.length;n++){var s=i[n];s in this.metadata[e][t]?this.metadata[e][t][s]=this.metadata[e][t][s].concat(r[s]):this.metadata[e][t][s]=r[s]}else this.metadata[e][t]=r},T.Query=function(e){this.clauses=[],this.allFields=e},T.Query.wildcard=new String("*"),T.Query.wildcard.NONE=0,T.Query.wildcard.LEADING=1,T.Query.wildcard.TRAILING=2,T.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},T.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=T.Query.wildcard.NONE),e.wildcard&T.Query.wildcard.LEADING&&e.term.charAt(0)!=T.Query.wildcard&&(e.term="*"+e.term),e.wildcard&T.Query.wildcard.TRAILING&&e.term.slice(-1)!=T.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=T.Query.presence.OPTIONAL),this.clauses.push(e),this},T.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=T.Query.presence.PROHIBITED)return!1;return!0},T.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,T.utils.clone(t))}),this),this;var r=t||{};return r.term=e.toString(),this.clause(r),this},T.QueryParseError=function(e,t,r){this.name="QueryParseError",this.message=e,this.start=t,this.end=r},T.QueryParseError.prototype=new Error,T.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},T.QueryLexer.prototype.run=function(){for(var e=T.QueryLexer.lexText;e;)e=e(this)},T.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(t,r)),t=r+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},T.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},T.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},T.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return T.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},T.QueryLexer.prototype.width=function(){return this.pos-this.start},T.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},T.QueryLexer.prototype.backup=function(){this.pos-=1},T.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=T.QueryLexer.EOS&&this.backup()},T.QueryLexer.prototype.more=function(){return this.pos<this.length},T.QueryLexer.EOS="EOS",T.QueryLexer.FIELD="FIELD",T.QueryLexer.TERM="TERM",T.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",T.QueryLexer.BOOST="BOOST",T.QueryLexer.PRESENCE="PRESENCE",T.QueryLexer.lexField=function(e){return e.backup(),e.emit(T.QueryLexer.FIELD),e.ignore(),T.QueryLexer.lexText},T.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(T.QueryLexer.TERM)),e.ignore(),e.more())return T.QueryLexer.lexText},T.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(T.QueryLexer.EDIT_DISTANCE),T.QueryLexer.lexText},T.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(T.QueryLexer.BOOST),T.QueryLexer.lexText},T.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(T.QueryLexer.TERM)},T.QueryLexer.termSeparator=T.tokenizer.separator,T.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==T.QueryLexer.EOS)return T.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return T.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(T.QueryLexer.TERM),T.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(T.QueryLexer.TERM),T.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(T.QueryLexer.PRESENCE),T.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(T.QueryLexer.PRESENCE),T.QueryLexer.lexText;if(t.match(T.QueryLexer.termSeparator))return T.QueryLexer.lexTerm}else e.escapeCharacter()}},T.QueryParser=function(e,t){this.lexer=new T.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},T.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=T.QueryParser.parseClause;e;)e=e(this);return this.query},T.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},T.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},T.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},T.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case T.QueryLexer.PRESENCE:return T.QueryParser.parsePresence;case T.QueryLexer.FIELD:return T.QueryParser.parseField;case T.QueryLexer.TERM:return T.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value '"+t.str+"'"),new T.QueryParseError(r,t.start,t.end)}},T.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=T.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=T.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new T.QueryParseError(r,t.start,t.end)}var i=e.peekLexeme();if(null==i){r="expecting term or field, found nothing";throw new T.QueryParseError(r,t.start,t.end)}switch(i.type){case T.QueryLexer.FIELD:return T.QueryParser.parseField;case T.QueryLexer.TERM:return T.QueryParser.parseTerm;default:r="expecting term or field, found '"+i.type+"'";throw new T.QueryParseError(r,i.start,i.end)}}},T.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),i="unrecognised field '"+t.str+"', possible fields: "+r;throw new T.QueryParseError(i,t.start,t.end)}e.currentClause.fields=[t.str];var n=e.peekLexeme();if(null==n){i="expecting term, found nothing";throw new T.QueryParseError(i,t.start,t.end)}switch(n.type){case T.QueryLexer.TERM:return T.QueryParser.parseTerm;default:i="expecting term, found '"+n.type+"'";throw new T.QueryParseError(i,n.start,n.end)}}},T.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case T.QueryLexer.TERM:return e.nextClause(),T.QueryParser.parseTerm;case T.QueryLexer.FIELD:return e.nextClause(),T.QueryParser.parseField;case T.QueryLexer.EDIT_DISTANCE:return T.QueryParser.parseEditDistance;case T.QueryLexer.BOOST:return T.QueryParser.parseBoost;case T.QueryLexer.PRESENCE:return e.nextClause(),T.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new T.QueryParseError(i,r.start,r.end)}else e.nextClause()}},T.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new T.QueryParseError(i,t.start,t.end)}e.currentClause.editDistance=r;var n=e.peekLexeme();if(null!=n)switch(n.type){case T.QueryLexer.TERM:return e.nextClause(),T.QueryParser.parseTerm;case T.QueryLexer.FIELD:return e.nextClause(),T.QueryParser.parseField;case T.QueryLexer.EDIT_DISTANCE:return T.QueryParser.parseEditDistance;case T.QueryLexer.BOOST:return T.QueryParser.parseBoost;case T.QueryLexer.PRESENCE:return e.nextClause(),T.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+n.type+"'";throw new T.QueryParseError(i,n.start,n.end)}else e.nextClause()}},T.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var i="boost must be numeric";throw new T.QueryParseError(i,t.start,t.end)}e.currentClause.boost=r;var n=e.peekLexeme();if(null!=n)switch(n.type){case T.QueryLexer.TERM:return e.nextClause(),T.QueryParser.parseTerm;case T.QueryLexer.FIELD:return e.nextClause(),T.QueryParser.parseField;case T.QueryLexer.EDIT_DISTANCE:return T.QueryParser.parseEditDistance;case T.QueryLexer.BOOST:return T.QueryParser.parseBoost;case T.QueryLexer.PRESENCE:return e.nextClause(),T.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+n.type+"'";throw new T.QueryParseError(i,n.start,n.end)}else e.nextClause()}},b=this,P=function(){return T},"function"==typeof define&&define.amd?define(P):"object"==typeof exports?module.exports=P():b.lunr=P()}();
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/javascript/paella_player.js b/src/main/webapp/static/js/paella/player/javascript/paella_player.js
new file mode 100644
index 0000000000000000000000000000000000000000..65cd80268d4db0a1fe784c5007957e32d5e2fc50
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/javascript/paella_player.js
@@ -0,0 +1,23207 @@
+"use strict";
+
+function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
+
+function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
+
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
+
+function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
+function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
+
+function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+var GlobalParams = {
+  video: {
+    zIndex: 1
+  },
+  background: {
+    zIndex: 0
+  }
+};
+window.paella = window.paella || {};
+paella.player = null;
+paella.version = "6.3.1 - build: 6b43877";
+
+(function buildBaseUrl() {
+  if (window.paella_debug_baseUrl) {
+    paella.baseUrl = window.paella_debug_baseUrl;
+  } else {
+    var scripts = document.getElementsByTagName('script');
+    var script = scripts[scripts.length - 1].src.split("/");
+    script.pop(); // Remove javascript file name
+
+    script.pop(); // Remove javascript/ folder name
+
+    paella.baseUrl = script.join("/") + '/';
+  }
+})();
+
+paella.events = {
+  play: "paella:play",
+  pause: "paella:pause",
+  next: "paella:next",
+  previous: "paella:previous",
+  seeking: "paella:seeking",
+  seeked: "paella:seeked",
+  timeupdate: "paella:timeupdate",
+  timeUpdate: "paella:timeupdate",
+  seekTo: "paella:setseek",
+  endVideo: "paella:endvideo",
+  // Triggered when a single video stream ends (once per video)
+  ended: "paella:ended",
+  // Triggered when the video ends 
+  seekToTime: "paella:seektotime",
+  setTrim: "paella:settrim",
+  setPlaybackRate: "paella:setplaybackrate",
+  setVolume: 'paella:setVolume',
+  setComposition: 'paella:setComposition',
+  loadStarted: 'paella:loadStarted',
+  loadComplete: 'paella:loadComplete',
+  loadPlugins: 'paella:loadPlugins',
+  error: 'paella:error',
+  documentChanged: 'paella:documentChanged',
+  didSaveChanges: 'paella:didsavechanges',
+  controlBarWillHide: 'paella:controlbarwillhide',
+  controlBarDidHide: 'paella:controlbardidhide',
+  controlBarDidShow: 'paella:controlbardidshow',
+  hidePopUp: 'paella:hidePopUp',
+  showPopUp: 'paella:showPopUp',
+  enterFullscreen: 'paella:enterFullscreen',
+  exitFullscreen: 'paella:exitFullscreen',
+  resize: 'paella:resize',
+  // params: { width:paellaPlayerContainer width, height:paellaPlayerContainer height }
+  videoZoomChanged: 'paella:videoZoomChanged',
+  audioTagChanged: 'paella:audiotagchanged',
+  zoomAvailabilityChanged: 'paella:zoomavailabilitychanged',
+  qualityChanged: 'paella:qualityChanged',
+  singleVideoReady: 'paella:singleVideoReady',
+  singleVideoUnloaded: 'paella:singleVideoUnloaded',
+  videoReady: 'paella:videoReady',
+  videoUnloaded: 'paella:videoUnloaded',
+  controlBarLoaded: 'paella:controlBarLoaded',
+  flashVideoEvent: 'paella:flashVideoEvent',
+  captionAdded: 'paella:caption:add',
+  // Event triggered when new caption is available.
+  captionsEnabled: 'paella:caption:enabled',
+  // Event triguered when a caption es enabled.
+  captionsDisabled: 'paella:caption:disabled',
+  // Event triguered when a caption es disabled.
+  profileListChanged: 'paella:profilelistchanged',
+  setProfile: 'paella:setprofile',
+  seekAvailabilityChanged: 'paella:seekAvailabilityChanged',
+  trigger: function trigger(event, params) {
+    $(document).trigger(event, params);
+  },
+  bind: function bind(event, callback) {
+    $(document).bind(event, function (event, params) {
+      callback(event, params);
+    });
+  },
+  setupExternalListener: function setupExternalListener() {
+    window.addEventListener("message", function (event) {
+      if (event.data && event.data.event) {
+        paella.events.trigger(event.data.event, event.data.params);
+      }
+    }, false);
+  }
+};
+paella.events.setupExternalListener();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+// Paella Mouse Manager
+///////////////////////////////////////////////////////
+
+(function () {
+  var MouseManager =
+  /*#__PURE__*/
+  function () {
+    _createClass(MouseManager, [{
+      key: "targetObject",
+      get: function get() {
+        return this._targetObject;
+      },
+      set: function set(t) {
+        this._targetObject = t;
+      }
+    }]);
+
+    function MouseManager() {
+      var _this = this;
+
+      _classCallCheck(this, MouseManager);
+
+      paella.events.bind('mouseup', function (event) {
+        return _this.up(event);
+      });
+      paella.events.bind('mousemove', function (event) {
+        return _this.move(event);
+      });
+      paella.events.bind('mouseover', function (event) {
+        return _this.over(event);
+      });
+    }
+
+    _createClass(MouseManager, [{
+      key: "down",
+      value: function down(targetObject, event) {
+        this.targetObject = targetObject;
+
+        if (this.targetObject && this.targetObject.down) {
+          this.targetObject.down(event, event.pageX, event.pageY);
+          event.cancelBubble = true;
+        }
+
+        return false;
+      }
+    }, {
+      key: "up",
+      value: function up(event) {
+        if (this.targetObject && this.targetObject.up) {
+          this.targetObject.up(event, event.pageX, event.pageY);
+          event.cancelBubble = true;
+        }
+
+        this.targetObject = null;
+        return false;
+      }
+    }, {
+      key: "out",
+      value: function out(event) {
+        if (this.targetObject && this.targetObject.out) {
+          this.targetObject.out(event, event.pageX, event.pageY);
+          event.cancelBubble = true;
+        }
+
+        return false;
+      }
+    }, {
+      key: "move",
+      value: function move(event) {
+        if (this.targetObject && this.targetObject.move) {
+          this.targetObject.move(event, event.pageX, event.pageY);
+          event.cancelBubble = true;
+        }
+
+        return false;
+      }
+    }, {
+      key: "over",
+      value: function over(event) {
+        if (this.targetObject && this.targetObject.over) {
+          this.targetObject.over(event, event.pageX, event.pageY);
+          event.cancelBubble = true;
+        }
+
+        return false;
+      }
+    }]);
+
+    return MouseManager;
+  }();
+
+  paella.MouseManager = MouseManager;
+})(); // paella.utils
+///////////////////////////////////////////////////////
+
+
+(function initSkinDeps() {
+  var link = document.createElement('link');
+  link.rel = 'stylesheet';
+  link.href = paella.baseUrl + 'resources/bootstrap/css/bootstrap.min.css';
+  link.type = 'text/css';
+  link.media = 'screen';
+  link.charset = 'utf-8';
+  document.head.appendChild(link);
+})();
+
+paella.utils = {
+  mouseManager: new paella.MouseManager(),
+  folders: {
+    get: function get(folder) {
+      if (paella.player && paella.player.config && paella.player.config.folders && paella.player.config.folders[folder]) {
+        return paella.player.config.folders[folder];
+      }
+
+      return undefined;
+    },
+    profiles: function profiles() {
+      return paella.baseUrl + (paella.utils.folders.get("profiles") || "config/profiles");
+    },
+    resources: function resources() {
+      return paella.baseUrl + (paella.utils.folders.get("resources") || "resources");
+    },
+    skins: function skins() {
+      return paella.baseUrl + (paella.utils.folders.get("skins") || paella.utils.folders.get("resources") + "/style");
+    }
+  },
+  styleSheet: {
+    removeById: function removeById(id) {
+      var outStyleSheet = $(document.head).find('#' + id)[0];
+
+      if (outStyleSheet) {
+        document.head.removeChild(outStyleSheet);
+      }
+    },
+    remove: function remove(fileName) {
+      var links = document.head.getElementsByTagName('link');
+
+      for (var i = 0; i < links.length; ++i) {
+        if (links[i].href) {
+          document.head.removeChild(links[i]);
+          break;
+        }
+      }
+    },
+    add: function add(fileName, id) {
+      var link = document.createElement('link');
+      link.rel = 'stylesheet';
+      link.href = fileName;
+      link.type = 'text/css';
+      link.media = 'screen';
+      link.charset = 'utf-8';
+      if (id) link.id = id;
+      document.head.appendChild(link);
+    },
+    swap: function swap(outFile, inFile) {
+      this.remove(outFile);
+      this.add(inFile);
+    }
+  },
+  skin: {
+    set: function set(skinName) {
+      var skinId = 'paellaSkin';
+      paella.utils.styleSheet.removeById(skinId);
+      paella.utils.styleSheet.add(paella.utils.folders.skins() + '/style_' + skinName + '.css');
+      base.cookies.set("skin", skinName);
+    },
+    restore: function restore(defaultSkin) {
+      var storedSkin = base.cookies.get("skin");
+
+      if (storedSkin && storedSkin != "") {
+        this.set(storedSkin);
+      } else {
+        this.set(defaultSkin);
+      }
+    }
+  },
+  timeParse: {
+    timeToSeconds: function timeToSeconds(timeString) {
+      var hours = 0;
+      var minutes = 0;
+      var seconds = 0;
+
+      if (/([0-9]+)h/i.test(timeString)) {
+        hours = parseInt(RegExp.$1) * 60 * 60;
+      }
+
+      if (/([0-9]+)m/i.test(timeString)) {
+        minutes = parseInt(RegExp.$1) * 60;
+      }
+
+      if (/([0-9]+)s/i.test(timeString)) {
+        seconds = parseInt(RegExp.$1);
+      }
+
+      return hours + minutes + seconds;
+    },
+    secondsToTime: function secondsToTime(seconds) {
+      var hrs = ~~(seconds / 3600);
+      if (hrs < 10) hrs = '0' + hrs;
+      var mins = ~~(seconds % 3600 / 60);
+      if (mins < 10) mins = '0' + mins;
+      var secs = Math.floor(seconds % 60);
+      if (secs < 10) secs = '0' + secs;
+      return hrs + ':' + mins + ':' + secs;
+    },
+    secondsToText: function secondsToText(secAgo) {
+      // Seconds
+      if (secAgo <= 1) {
+        return base.dictionary.translate("1 second ago");
+      }
+
+      if (secAgo < 60) {
+        return base.dictionary.translate("{0} seconds ago").replace(/\{0\}/g, secAgo);
+      } // Minutes
+
+
+      var minAgo = Math.round(secAgo / 60);
+
+      if (minAgo <= 1) {
+        return base.dictionary.translate("1 minute ago");
+      }
+
+      if (minAgo < 60) {
+        return base.dictionary.translate("{0} minutes ago").replace(/\{0\}/g, minAgo);
+      } //Hours
+
+
+      var hourAgo = Math.round(secAgo / (60 * 60));
+
+      if (hourAgo <= 1) {
+        return base.dictionary.translate("1 hour ago");
+      }
+
+      if (hourAgo < 24) {
+        return base.dictionary.translate("{0} hours ago").replace(/\{0\}/g, hourAgo);
+      } //Days
+
+
+      var daysAgo = Math.round(secAgo / (60 * 60 * 24));
+
+      if (daysAgo <= 1) {
+        return base.dictionary.translate("1 day ago");
+      }
+
+      if (daysAgo < 24) {
+        return base.dictionary.translate("{0} days ago").replace(/\{0\}/g, daysAgo);
+      } //Months
+
+
+      var monthsAgo = Math.round(secAgo / (60 * 60 * 24 * 30));
+
+      if (monthsAgo <= 1) {
+        return base.dictionary.translate("1 month ago");
+      }
+
+      if (monthsAgo < 12) {
+        return base.dictionary.translate("{0} months ago").replace(/\{0\}/g, monthsAgo);
+      } //Years
+
+
+      var yearsAgo = Math.round(secAgo / (60 * 60 * 24 * 365));
+
+      if (yearsAgo <= 1) {
+        return base.dictionary.translate("1 year ago");
+      }
+
+      return base.dictionary.translate("{0} years ago").replace(/\{0\}/g, yearsAgo);
+    },
+    matterhornTextDateToDate: function matterhornTextDateToDate(mhdate) {
+      var d = new Date();
+      d.setFullYear(parseInt(mhdate.substring(0, 4), 10));
+      d.setMonth(parseInt(mhdate.substring(5, 7), 10) - 1);
+      d.setDate(parseInt(mhdate.substring(8, 10), 10));
+      d.setHours(parseInt(mhdate.substring(11, 13), 10));
+      d.setMinutes(parseInt(mhdate.substring(14, 16), 10));
+      d.setSeconds(parseInt(mhdate.substring(17, 19), 10));
+      return d;
+    }
+  },
+  objectFromString: function objectFromString(str) {
+    var arr = str.split(".");
+    var fn = window || this;
+
+    for (var i = 0, len = arr.length; i < len; i++) {
+      fn = fn[arr[i]];
+    }
+
+    if (typeof fn !== "function") {
+      throw new Error("constructor not found");
+    }
+
+    return fn;
+  }
+};
+
+(function () {
+  var g_delegateCallbacks = {};
+  var g_dataDelegates = [];
+
+  var DataDelegate =
+  /*#__PURE__*/
+  function () {
+    function DataDelegate() {
+      _classCallCheck(this, DataDelegate);
+    }
+
+    _createClass(DataDelegate, [{
+      key: "read",
+      value: function read(context, params, onSuccess) {
+        if (typeof onSuccess == 'function') {
+          onSuccess({}, true);
+        }
+      }
+    }, {
+      key: "write",
+      value: function write(context, params, value, onSuccess) {
+        if (typeof onSuccess == 'function') {
+          onSuccess({}, true);
+        }
+      }
+    }, {
+      key: "remove",
+      value: function remove(context, params, onSuccess) {
+        if (typeof onSuccess == 'function') {
+          onSuccess({}, true);
+        }
+      }
+    }]);
+
+    return DataDelegate;
+  }();
+
+  paella.DataDelegate = DataDelegate;
+  paella.dataDelegates = {};
+
+  var Data =
+  /*#__PURE__*/
+  function () {
+    _createClass(Data, [{
+      key: "enabled",
+      get: function get() {
+        return this._enabled;
+      }
+    }, {
+      key: "dataDelegates",
+      get: function get() {
+        return g_dataDelegates;
+      }
+    }]);
+
+    function Data(config) {
+      _classCallCheck(this, Data);
+
+      this._enabled = config.data.enabled; // Delegate callbacks
+
+      var executedCallbacks = [];
+
+      var _loop = function _loop(context) {
+        var callback = g_delegateCallbacks[context];
+        var DelegateClass = null;
+        var delegateName = null;
+
+        if (!executedCallbacks.some(function (execCallbackData) {
+          if (execCallbackData.callback == callback) {
+            delegateName = execCallbackData.delegateName;
+            return true;
+          }
+        })) {
+          DelegateClass = g_delegateCallbacks[context]();
+          delegateName = DelegateClass.name;
+          paella.dataDelegates[delegateName] = DelegateClass;
+          executedCallbacks.push({
+            callback: callback,
+            delegateName: delegateName
+          });
+        }
+
+        if (!config.data.dataDelegates[context]) {
+          config.data.dataDelegates[context] = delegateName;
+        }
+      };
+
+      for (var context in g_delegateCallbacks) {
+        _loop(context);
+      }
+
+      for (var key in config.data.dataDelegates) {
+        try {
+          var delegateName = config.data.dataDelegates[key];
+          var DelegateClass = paella.dataDelegates[delegateName];
+          var delegateInstance = new DelegateClass();
+          g_dataDelegates[key] = delegateInstance;
+        } catch (e) {
+          console.warn("Warning: delegate not found - " + delegateName);
+        }
+      } // Default data delegate
+
+
+      if (!this.dataDelegates["default"]) {
+        this.dataDelegates["default"] = new paella.dataDelegates.DefaultDataDelegate();
+      }
+    }
+
+    _createClass(Data, [{
+      key: "read",
+      value: function read(context, key, onSuccess) {
+        var del = this.getDelegate(context);
+        del.read(context, key, onSuccess);
+      }
+    }, {
+      key: "write",
+      value: function write(context, key, params, onSuccess) {
+        var del = this.getDelegate(context);
+        del.write(context, key, params, onSuccess);
+      }
+    }, {
+      key: "remove",
+      value: function remove(context, key, onSuccess) {
+        var del = this.getDelegate(context);
+        del.remove(context, key, onSuccess);
+      }
+    }, {
+      key: "getDelegate",
+      value: function getDelegate(context) {
+        if (this.dataDelegates[context]) return this.dataDelegates[context];else return this.dataDelegates["default"];
+      }
+    }]);
+
+    return Data;
+  }();
+
+  paella.Data = Data;
+
+  paella.addDataDelegate = function (context, callback) {
+    if (Array.isArray(context)) {
+      context.forEach(function (ctx) {
+        g_delegateCallbacks[ctx] = callback;
+      });
+    } else if (typeof context == "string") {
+      g_delegateCallbacks[context] = callback;
+    }
+  };
+})();
+
+paella.addDataDelegate(["default", "trimming"], function () {
+  paella.dataDelegates.DefaultDataDelegate =
+  /*#__PURE__*/
+  function (_paella$DataDelegate) {
+    _inherits(CookieDataDelegate, _paella$DataDelegate);
+
+    function CookieDataDelegate() {
+      _classCallCheck(this, CookieDataDelegate);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(CookieDataDelegate).apply(this, arguments));
+    }
+
+    _createClass(CookieDataDelegate, [{
+      key: "serializeKey",
+      value: function serializeKey(context, params) {
+        if (_typeof(params) == 'object') {
+          params = JSON.stringify(params);
+        }
+
+        return context + '|' + params;
+      }
+    }, {
+      key: "read",
+      value: function read(context, params, onSuccess) {
+        var key = this.serializeKey(context, params);
+        var value = base.cookies.get(key);
+
+        try {
+          value = unescape(value);
+          value = JSON.parse(value);
+        } catch (e) {}
+
+        if (typeof onSuccess == 'function') {
+          onSuccess(value, true);
+        }
+      }
+    }, {
+      key: "write",
+      value: function write(context, params, value, onSuccess) {
+        var key = this.serializeKey(context, params);
+
+        if (_typeof(value) == 'object') {
+          value = JSON.stringify(value);
+        }
+
+        value = escape(value);
+        base.cookies.set(key, value);
+
+        if (typeof onSuccess == 'function') {
+          onSuccess({}, true);
+        }
+      }
+    }, {
+      key: "remove",
+      value: function remove(context, params, onSuccess) {
+        var key = this.serializeKey(context, params);
+
+        if ((typeof value === "undefined" ? "undefined" : _typeof(value)) == 'object') {
+          value = JSON.stringify(value);
+        }
+
+        base.cookies.set(key, '');
+
+        if (typeof onSuccess == 'function') {
+          onSuccess({}, true);
+        }
+      }
+    }]);
+
+    return CookieDataDelegate;
+  }(paella.DataDelegate);
+
+  return paella.dataDelegates.DefaultDataDelegate;
+}); // Will be initialized inmediately after loading config.json, in PaellaPlayer.onLoadConfig()
+
+paella.data = null;
+
+(function () {
+  // Include scripts in header
+  var g_requiredScripts = {};
+
+  paella.require = function (path) {
+    if (!g_requiredScripts[path]) {
+      g_requiredScripts[path] = new Promise(function (resolve, reject) {
+        var script = document.createElement("script");
+
+        if (path.split(".").pop() == 'js') {
+          script.src = path;
+          script.async = false;
+          document.head.appendChild(script);
+          setTimeout(function () {
+            return resolve();
+          }, 100);
+        } else {
+          reject(new Error("Unexpected file type"));
+        }
+      });
+    }
+
+    return g_requiredScripts[path];
+  };
+
+  var MessageBox =
+  /*#__PURE__*/
+  function () {
+    _createClass(MessageBox, [{
+      key: "modalContainerClassName",
+      get: function get() {
+        return 'modalMessageContainer';
+      }
+    }, {
+      key: "frameClassName",
+      get: function get() {
+        return 'frameContainer';
+      }
+    }, {
+      key: "messageClassName",
+      get: function get() {
+        return 'messageContainer';
+      }
+    }, {
+      key: "errorClassName",
+      get: function get() {
+        return 'errorContainer';
+      }
+    }, {
+      key: "currentMessageBox",
+      get: function get() {
+        return this._currentMessageBox;
+      },
+      set: function set(m) {
+        this._currentMessageBox = m;
+      }
+    }, {
+      key: "messageContainer",
+      get: function get() {
+        return this._messageContainer;
+      }
+    }, {
+      key: "onClose",
+      get: function get() {
+        return this._onClose;
+      },
+      set: function set(c) {
+        this._onClose = c;
+      }
+    }]);
+
+    function MessageBox() {
+      var _this2 = this;
+
+      _classCallCheck(this, MessageBox);
+
+      this._messageContainer = null;
+      $(window).resize(function (event) {
+        return _this2.adjustTop();
+      });
+    }
+
+    _createClass(MessageBox, [{
+      key: "showFrame",
+      value: function showFrame(src, params) {
+        var closeButton = true;
+        var onClose = null;
+
+        if (params) {
+          closeButton = params.closeButton;
+          onClose = params.onClose;
+        }
+
+        this.doShowFrame(src, closeButton, onClose);
+      }
+    }, {
+      key: "doShowFrame",
+      value: function doShowFrame(src, closeButton, onClose) {
+        this.onClose = onClose;
+        $('#playerContainer').addClass("modalVisible");
+
+        if (this.currentMessageBox) {
+          this.close();
+        }
+
+        var modalContainer = document.createElement('div');
+        modalContainer.className = this.modalContainerClassName;
+        modalContainer.style.position = 'fixed';
+        modalContainer.style.top = '0px';
+        modalContainer.style.left = '0px';
+        modalContainer.style.right = '0px';
+        modalContainer.style.bottom = '0px';
+        modalContainer.style.zIndex = 999999;
+        var messageContainer = document.createElement('div');
+        messageContainer.className = this.frameClassName;
+        modalContainer.appendChild(messageContainer);
+        var iframeContainer = document.createElement('iframe');
+        iframeContainer.src = src;
+        iframeContainer.setAttribute("frameborder", "0");
+        iframeContainer.style.width = "100%";
+        iframeContainer.style.height = "100%";
+        messageContainer.appendChild(iframeContainer);
+
+        if (paella.player && paella.player.isFullScreen()) {
+          paella.player.mainContainer.appendChild(modalContainer);
+        } else {
+          $('body')[0].appendChild(modalContainer);
+        }
+
+        this.currentMessageBox = modalContainer;
+        this._messageContainer = messageContainer;
+        this.adjustTop();
+
+        if (closeButton) {
+          this.createCloseButton();
+        }
+      }
+    }, {
+      key: "showElement",
+      value: function showElement(domElement, params) {
+        var closeButton = true;
+        var onClose = null;
+        var className = this.messageClassName;
+
+        if (params) {
+          className = params.className;
+          closeButton = params.closeButton;
+          onClose = params.onClose;
+        }
+
+        this.doShowElement(domElement, closeButton, className, onClose);
+      }
+    }, {
+      key: "showMessage",
+      value: function showMessage(message, params) {
+        var closeButton = true;
+        var onClose = null;
+        var className = this.messageClassName;
+
+        if (params) {
+          className = params.className;
+          closeButton = params.closeButton;
+          onClose = params.onClose;
+        }
+
+        this.doShowMessage(message, closeButton, className, onClose);
+      }
+    }, {
+      key: "doShowElement",
+      value: function doShowElement(domElement, closeButton, className, onClose) {
+        this.onClose = onClose;
+        $('#playerContainer').addClass("modalVisible");
+
+        if (this.currentMessageBox) {
+          this.close();
+        }
+
+        if (!className) className = this.messageClassName;
+        var modalContainer = document.createElement('div');
+        modalContainer.className = this.modalContainerClassName;
+        modalContainer.style.position = 'fixed';
+        modalContainer.style.top = '0px';
+        modalContainer.style.left = '0px';
+        modalContainer.style.right = '0px';
+        modalContainer.style.bottom = '0px';
+        modalContainer.style.zIndex = 999999;
+        var messageContainer = document.createElement('div');
+        messageContainer.className = className;
+        messageContainer.appendChild(domElement);
+        modalContainer.appendChild(messageContainer);
+        $('body')[0].appendChild(modalContainer);
+        this.currentMessageBox = modalContainer;
+        this._messageContainer = messageContainer;
+        this.adjustTop();
+
+        if (closeButton) {
+          this.createCloseButton();
+        }
+      }
+    }, {
+      key: "doShowMessage",
+      value: function doShowMessage(message, closeButton, className, onClose) {
+        this.onClose = onClose;
+        $('#playerContainer').addClass("modalVisible");
+
+        if (this.currentMessageBox) {
+          this.close();
+        }
+
+        if (!className) className = this.messageClassName;
+        var modalContainer = document.createElement('div');
+        modalContainer.className = this.modalContainerClassName;
+        modalContainer.style.position = 'fixed';
+        modalContainer.style.top = '0px';
+        modalContainer.style.left = '0px';
+        modalContainer.style.right = '0px';
+        modalContainer.style.bottom = '0px';
+        modalContainer.style.zIndex = 999999;
+        var messageContainer = document.createElement('div');
+        messageContainer.className = className;
+        messageContainer.innerHTML = message;
+        modalContainer.appendChild(messageContainer);
+
+        if (paella.player && paella.player.isFullScreen()) {
+          paella.player.mainContainer.appendChild(modalContainer);
+        } else {
+          $('body')[0].appendChild(modalContainer);
+        }
+
+        this.currentMessageBox = modalContainer;
+        this._messageContainer = messageContainer;
+        this.adjustTop();
+
+        if (closeButton) {
+          this.createCloseButton();
+        }
+      }
+    }, {
+      key: "showError",
+      value: function showError(message, params) {
+        var closeButton = false;
+        var onClose = null;
+
+        if (params) {
+          closeButton = params.closeButton;
+          onClose = params.onClose;
+        }
+
+        this.doShowError(message, closeButton, onClose);
+      }
+    }, {
+      key: "doShowError",
+      value: function doShowError(message, closeButton, onClose) {
+        this.doShowMessage(message, closeButton, this.errorClassName, onClose);
+      }
+    }, {
+      key: "createCloseButton",
+      value: function createCloseButton() {
+        var _this3 = this;
+
+        if (this._messageContainer) {
+          var closeButton = document.createElement('span');
+
+          this._messageContainer.appendChild(closeButton);
+
+          closeButton.className = 'paella_messageContainer_closeButton icon-cancel-circle';
+          $(closeButton).click(function (event) {
+            return _this3.onCloseButtonClick();
+          });
+          $(window).keyup(function (evt) {
+            if (evt.keyCode == 27) {
+              _this3.onCloseButtonClick();
+            }
+          });
+        }
+      }
+    }, {
+      key: "adjustTop",
+      value: function adjustTop() {
+        if (this.currentMessageBox) {
+          var msgHeight = $(this._messageContainer).outerHeight();
+          var containerHeight = $(this.currentMessageBox).height();
+          var top = containerHeight / 2 - msgHeight / 2;
+          this._messageContainer.style.marginTop = top + 'px';
+        }
+      }
+    }, {
+      key: "close",
+      value: function close() {
+        if (this.currentMessageBox && this.currentMessageBox.parentNode) {
+          var msgBox = this.currentMessageBox;
+          var parent = msgBox.parentNode;
+          $('#playerContainer').removeClass("modalVisible");
+          $(msgBox).animate({
+            opacity: 0.0
+          }, 300, function () {
+            parent.removeChild(msgBox);
+          });
+
+          if (this.onClose) {
+            this.onClose();
+          }
+        }
+      }
+    }, {
+      key: "onCloseButtonClick",
+      value: function onCloseButtonClick() {
+        this.close();
+      }
+    }]);
+
+    return MessageBox;
+  }();
+
+  paella.MessageBox = MessageBox;
+  paella.messageBox = new paella.MessageBox();
+})();
+
+paella.AntiXSS = {
+  htmlEscape: function htmlEscape(str) {
+    return String(str).replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
+  },
+  htmlUnescape: function htmlUnescape(value) {
+    return String(value).replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&amp;/g, '&');
+  }
+};
+
+function paella_DeferredResolved(param) {
+  return new Promise(function (resolve) {
+    resolve(param);
+  });
+}
+
+function paella_DeferredRejected(param) {
+  return new Promise(function (resolve, reject) {
+    reject(param);
+  });
+}
+
+function paella_DeferredNotImplemented() {
+  return paella_DeferredRejected(new Error("not implemented"));
+}
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var Node =
+  /*#__PURE__*/
+  function () {
+    _createClass(Node, [{
+      key: "identifier",
+      get: function get() {
+        return this._identifier;
+      },
+      set: function set(id) {
+        this._identifier = id;
+      }
+    }, {
+      key: "nodeList",
+      get: function get() {
+        return this._nodeList;
+      }
+    }, {
+      key: "parent",
+      get: function get() {
+        return this._parent;
+      },
+      set: function set(p) {
+        this._parent = p;
+      }
+    }]);
+
+    function Node(id) {
+      _classCallCheck(this, Node);
+
+      this._nodeList = {};
+      this.identifier = id;
+    }
+
+    _createClass(Node, [{
+      key: "addTo",
+      value: function addTo(parentNode) {
+        parentNode.addNode(this);
+      }
+    }, {
+      key: "addNode",
+      value: function addNode(childNode) {
+        childNode.parent = this;
+        this.nodeList[childNode.identifier] = childNode;
+        return childNode;
+      }
+    }, {
+      key: "getNode",
+      value: function getNode(id) {
+        return this.nodeList[id];
+      }
+    }, {
+      key: "removeNode",
+      value: function removeNode(childNode) {
+        if (this.nodeList[childNode.identifier]) {
+          delete this.nodeList[childNode.identifier];
+          return true;
+        }
+
+        return false;
+      }
+    }]);
+
+    return Node;
+  }();
+
+  paella.Node = Node;
+
+  var DomNode =
+  /*#__PURE__*/
+  function (_paella$Node) {
+    _inherits(DomNode, _paella$Node);
+
+    _createClass(DomNode, [{
+      key: "domElement",
+      get: function get() {
+        return this._domElement;
+      }
+    }, {
+      key: "domElementType",
+      get: function get() {
+        return this._elementType;
+      },
+      set: function set(newType) {
+        this._elementType = newType;
+        var oldElement = this._domElement;
+        var parent = oldElement.parentNode;
+        var newElement = document.createElement(newType);
+        parent.removeChild(oldElement);
+        parent.appendChild(newElement);
+        this._domElement = newElement;
+        newElement.innerHTML = oldElement.innerHTML;
+
+        for (var i = 0; i < oldElement.attributes.length; ++i) {
+          var attr = oldElement.attributes[i];
+          newElement.setAttribute(attr.name, attr.value);
+        }
+      }
+    }]);
+
+    function DomNode(elementType, id, style) {
+      var _this4;
+
+      _classCallCheck(this, DomNode);
+
+      _this4 = _possibleConstructorReturn(this, _getPrototypeOf(DomNode).call(this, id));
+      _this4._elementType = elementType;
+      _this4._domElement = document.createElement(elementType);
+      _this4.domElement.id = id;
+      if (style) _this4.style = style;
+      return _this4;
+    }
+
+    _createClass(DomNode, [{
+      key: "addNode",
+      value: function addNode(childNode) {
+        var returnValue = _get(_getPrototypeOf(DomNode.prototype), "addNode", this).call(this, childNode);
+
+        this.domElement.appendChild(childNode.domElement);
+        return returnValue;
+      }
+    }, {
+      key: "onresize",
+      value: function onresize() {}
+    }, {
+      key: "removeNode",
+      value: function removeNode(childNode) {
+        if (_get(_getPrototypeOf(DomNode.prototype), "removeNode", this).call(this, childNode)) {
+          this.domElement.removeChild(childNode.domElement);
+        }
+      }
+    }, {
+      key: "style",
+      set: function set(s) {
+        $(this.domElement).css(s);
+      }
+    }]);
+
+    return DomNode;
+  }(paella.Node);
+
+  paella.DomNode = DomNode;
+
+  var Button =
+  /*#__PURE__*/
+  function (_paella$DomNode) {
+    _inherits(Button, _paella$DomNode);
+
+    _createClass(Button, [{
+      key: "isToggle",
+      get: function get() {
+        return this._isToggle;
+      },
+      set: function set(t) {
+        this._isToggle = t;
+      }
+    }]);
+
+    function Button(id, className, action, isToggle) {
+      var _this5;
+
+      _classCallCheck(this, Button);
+
+      var style = {};
+      _this5 = _possibleConstructorReturn(this, _getPrototypeOf(Button).call(this, 'div', id, style));
+      _this5.isToggle = isToggle;
+      _this5.domElement.className = className;
+
+      if (isToggle) {
+        $(_this5.domElement).click(function (event) {
+          _this5.toggleIcon();
+        });
+      }
+
+      $(_this5.domElement).click('click', action);
+      return _this5;
+    }
+
+    _createClass(Button, [{
+      key: "isToggled",
+      value: function isToggled() {
+        if (this.isToggle) {
+          var element = this.domElement;
+          return /([a-zA-Z0-9_]+)_active/.test(element.className);
+        } else {
+          return false;
+        }
+      }
+    }, {
+      key: "toggle",
+      value: function toggle() {
+        this.toggleIcon();
+      }
+    }, {
+      key: "toggleIcon",
+      value: function toggleIcon() {
+        var element = this.domElement;
+
+        if (/([a-zA-Z0-9_]+)_active/.test(element.className)) {
+          element.className = RegExp.$1;
+        } else {
+          element.className = element.className + '_active';
+        }
+      }
+    }, {
+      key: "show",
+      value: function show() {
+        $(this.domElement).show();
+      }
+    }, {
+      key: "hide",
+      value: function hide() {
+        $(this.domElement).hide();
+      }
+    }, {
+      key: "visible",
+      value: function visible() {
+        return this.domElement.visible();
+      }
+    }]);
+
+    return Button;
+  }(paella.DomNode);
+
+  paella.Button = Button;
+})();
+
+(function () {
+  var g_profiles = [];
+
+  paella.addProfile = function (cb) {
+    cb().then(function (profileData) {
+      if (profileData) {
+        g_profiles.push(profileData);
+
+        if (typeof profileData.onApply != "function") {
+          profileData.onApply = function () {};
+        }
+
+        if (typeof profileData.onDeactivte != "function") {
+          profileData.onDeactivate = function () {};
+        }
+
+        paella.events.trigger(paella.events.profileListChanged, {
+          profileData: profileData
+        });
+      }
+    });
+  }; // Utility functions
+
+
+  function hideBackground() {
+    var bkgNode = this.container.getNode("videoContainerBackground");
+    if (bkgNode) this.container.removeNode(bkgNode);
+  }
+
+  function showBackground(bkgData) {
+    if (!bkgData) return;
+    hideBackground.apply(this);
+    this.backgroundData = bkgData;
+    var style = {
+      backgroundImage: "url(".concat(paella.utils.folders.get("resources"), "/style/").concat(bkgData.content, ")"),
+      backgroundSize: "100% 100%",
+      zIndex: bkgData.layer,
+      position: 'absolute',
+      left: bkgData.rect.left + "px",
+      right: bkgData.rect.right + "px",
+      width: "100%",
+      height: "100%"
+    };
+    this.container.addNode(new paella.DomNode('div', "videoContainerBackground", style));
+  }
+
+  function hideAllLogos() {
+    if (this.logos == undefined) return;
+
+    for (var i = 0; i < this.logos.length; ++i) {
+      var logoId = this.logos[i].content.replace(/\./ig, "-");
+      var logo = this.container.getNode(logoId);
+      $(logo.domElement).hide();
+    }
+  }
+
+  function showLogos(logos) {
+    this.logos = logos;
+    var relativeSize = new paella.RelativeVideoSize();
+
+    for (var i = 0; i < logos.length; ++i) {
+      var logo = logos[i];
+      var logoId = logo.content.replace(/\./ig, "-");
+      var logoNode = this.container.getNode(logoId);
+      var rect = logo.rect;
+
+      if (!logoNode) {
+        style = {};
+        logoNode = this.container.addNode(new paella.DomNode('img', logoId, style));
+        logoNode.domElement.setAttribute('src', "".concat(paella.utils.folders.get("resources"), "/style/").concat(logo.content));
+      } else {
+        $(logoNode.domElement).show();
+      }
+
+      var percentTop = Number(relativeSize.percentVSize(rect.top)) + '%';
+      var percentLeft = Number(relativeSize.percentWSize(rect.left)) + '%';
+      var percentWidth = Number(relativeSize.percentWSize(rect.width)) + '%';
+      var percentHeight = Number(relativeSize.percentVSize(rect.height)) + '%';
+      var style = {
+        top: percentTop,
+        left: percentLeft,
+        width: percentWidth,
+        height: percentHeight,
+        position: 'absolute',
+        zIndex: logo.zIndex
+      };
+      $(logoNode.domElement).css(style);
+    }
+  }
+
+  function hideButtons() {
+    var _this6 = this;
+
+    if (this.buttons) {
+      this.buttons.forEach(function (btn) {
+        _this6.container.removeNode(_this6.container.getNode(btn.id));
+      });
+      this.buttons = null;
+    }
+  }
+
+  function showButtons(buttons, profileData) {
+    var _this7 = this;
+
+    hideButtons.apply(this);
+
+    if (buttons) {
+      var relativeSize = new paella.RelativeVideoSize();
+      this.buttons = buttons;
+      buttons.forEach(function (btn, index) {
+        btn.id = "button_" + index;
+        var rect = btn.rect;
+        var percentTop = relativeSize.percentVSize(rect.top) + '%';
+        var percentLeft = relativeSize.percentWSize(rect.left) + '%';
+        var percentWidth = relativeSize.percentWSize(rect.width) + '%';
+        var percentHeight = relativeSize.percentVSize(rect.height) + '%';
+        var url = paella.baseUrl;
+        url = url.replace(/\\/ig, '/');
+        var style = {
+          top: percentTop,
+          left: percentLeft,
+          width: percentWidth,
+          height: percentHeight,
+          position: 'absolute',
+          zIndex: btn.layer,
+          backgroundImage: "url(".concat(paella.utils.folders.get("resources"), "/style/").concat(btn.icon, ")"),
+          backgroundSize: '100% 100%',
+          display: 'block'
+        };
+
+        var logoNode = _this7.container.addNode(new paella.DomNode('div', btn.id, style));
+
+        logoNode.domElement.className = "paella-profile-button";
+        logoNode.domElement.data = {
+          action: btn.onClick,
+          profileData: profileData
+        };
+        $(logoNode.domElement).click(function (evt) {
+          this.data.action.apply(this.data.profileData, [evt]);
+          evt.stopPropagation();
+          return false;
+        });
+      });
+    }
+  }
+
+  function getClosestRect(profileData, videoDimensions) {
+    var minDiff = 10;
+    var re = /([0-9\.]+)\/([0-9\.]+)/;
+    var result = profileData.rect[0];
+    var videoAspectRatio = videoDimensions.h == 0 ? 1.777777 : videoDimensions.w / videoDimensions.h;
+    var profileAspectRatio = 1;
+    var reResult = false;
+    profileData.rect.forEach(function (rect) {
+      if (reResult = re.exec(rect.aspectRatio)) {
+        profileAspectRatio = Number(reResult[1]) / Number(reResult[2]);
+      }
+
+      var diff = Math.abs(profileAspectRatio - videoAspectRatio);
+
+      if (minDiff > diff) {
+        minDiff = diff;
+        result = rect;
+      }
+    });
+    return result;
+  }
+
+  function applyProfileWithJson(profileData, animate) {
+    var _this8 = this;
+
+    if (animate == undefined) animate = true;
+    if (!profileData) return;
+
+    var getProfile = function getProfile(content) {
+      var result = null;
+      profileData && profileData.videos.some(function (videoProfile) {
+        if (videoProfile.content == content) {
+          result = videoProfile;
+        }
+
+        return result != null;
+      });
+      return result;
+    };
+
+    var applyVideoRect = function applyVideoRect(profile, videoData, videoWrapper, player) {
+      var frameStrategy = _this8.profileFrameStrategy;
+
+      if (frameStrategy) {
+        var rect = getClosestRect(profile, videoData.res);
+        var videoSize = videoData.res;
+        var containerSize = {
+          width: $(_this8.domElement).width(),
+          height: $(_this8.domElement).height()
+        };
+        var scaleFactor = rect.width / containerSize.width;
+        var scaledVideoSize = {
+          width: videoSize.w * scaleFactor,
+          height: videoSize.h * scaleFactor
+        };
+        rect.left = Number(rect.left);
+        rect.top = Number(rect.top);
+        rect.width = Number(rect.width);
+        rect.height = Number(rect.height);
+        rect = frameStrategy.adaptFrame(scaledVideoSize, rect);
+        var visible = /true/i.test(profile.visible);
+        rect.visible = visible;
+        var layer = parseInt(profile.layer);
+        videoWrapper.domElement.style.zIndex = layer;
+        videoWrapper.setRect(rect, animate);
+        videoWrapper.setVisible(visible, animate); // The disable/enable functions may not be called on main audio player
+
+        var isMainAudioPlayer = paella.player.videoContainer.streamProvider.mainAudioPlayer == player;
+        visible ? player.enable(isMainAudioPlayer) : player.disable(isMainAudioPlayer);
+      }
+    };
+
+    profileData && profileData.onApply();
+    hideAllLogos.apply(this);
+    profileData && showLogos.apply(this, [profileData.logos]);
+    hideBackground.apply(this);
+    profileData && showBackground.apply(this, [profileData.background]);
+    hideButtons.apply(this);
+    profileData && showButtons.apply(this, [profileData.buttons, profileData]);
+    this.streamProvider.videoStreams.forEach(function (streamData, index) {
+      var profile = getProfile(streamData.content);
+      var player = _this8.streamProvider.videoPlayers[index];
+      var videoWrapper = _this8.videoWrappers[index];
+
+      if (profile) {
+        player.getVideoData().then(function (data) {
+          applyVideoRect(profile, data, videoWrapper, player);
+        });
+      } else if (videoWrapper) {
+        videoWrapper.setVisible(false, animate);
+
+        if (paella.player.videoContainer.streamProvider.mainAudioPlayer != player) {
+          player.disable();
+        }
+      }
+    });
+  }
+
+  var Profiles =
+  /*#__PURE__*/
+  function () {
+    function Profiles() {
+      var _this9 = this;
+
+      _classCallCheck(this, Profiles);
+
+      paella.events.bind(paella.events.controlBarDidHide, function () {
+        return _this9.hideButtons();
+      });
+      paella.events.bind(paella.events.controlBarDidShow, function () {
+        return _this9.showButtons();
+      });
+      paella.events.bind(paella.events.profileListChanged, function () {
+        if (paella.player && paella.player.videoContainer && (!_this9.currentProfile || _this9.currentProfileName != _this9.currentProfile.id)) {
+          _this9.setProfile(_this9.currentProfileName, false);
+        }
+      });
+    }
+
+    _createClass(Profiles, [{
+      key: "getDefaultProfile",
+      value: function getDefaultProfile() {
+        if (paella.player.videoContainer.masterVideo() && paella.player.videoContainer.masterVideo().defaultProfile()) {
+          return paella.player.videoContainer.masterVideo().defaultProfile();
+        }
+
+        if (paella.player && paella.player.config && paella.player.config.defaultProfile) {
+          return paella.player.config.defaultProfile;
+        }
+
+        return undefined;
+      }
+    }, {
+      key: "loadProfile",
+      value: function loadProfile(profileId) {
+        var result = null;
+        g_profiles.some(function (profile) {
+          if (profile.id == profileId) {
+            result = profile;
+          }
+
+          return result;
+        });
+        return result;
+      }
+    }, {
+      key: "setProfile",
+      value: function setProfile(profileName, animate) {
+        var _this10 = this;
+
+        if (!profileName) {
+          return false;
+        }
+
+        animate = base.userAgent.browser.Explorer ? false : animate;
+
+        if (this.currentProfile) {
+          this.currentProfile.onDeactivate();
+        }
+
+        if (!paella.player.videoContainer.ready) {
+          return false; // Nothing to do, the video is not loaded
+        } else {
+          var profileData = this.loadProfile(profileName) || g_profiles.length > 0 && g_profiles[0];
+
+          if (!profileData && g_profiles.length == 0) {
+            // Try to load the profile again later, maybe the profiles are not loaded yet
+            setTimeout(function () {
+              _this10.setProfile(profileName, animate);
+            }, 100);
+            return false;
+          } else {
+            this._currentProfileName = profileName;
+            applyProfileWithJson.apply(paella.player.videoContainer, [profileData, animate]);
+            return true;
+          }
+        }
+      }
+    }, {
+      key: "getProfile",
+      value: function getProfile(profileName) {
+        var result = null;
+        this.profileList.some(function (p) {
+          if (p.id == profileName) {
+            result = p;
+            return true;
+          }
+        });
+        return result;
+      }
+    }, {
+      key: "placeVideos",
+      value: function placeVideos() {
+        this.setProfile(this._currentProfileName, false);
+      }
+    }, {
+      key: "hideButtons",
+      value: function hideButtons() {
+        $('.paella-profile-button').hide();
+      }
+    }, {
+      key: "showButtons",
+      value: function showButtons() {
+        $('.paella-profile-button').show();
+      }
+    }, {
+      key: "profileList",
+      get: function get() {
+        return g_profiles;
+      }
+    }, {
+      key: "currentProfile",
+      get: function get() {
+        return this.getProfile(this._currentProfileName);
+      }
+    }, {
+      key: "currentProfileName",
+      get: function get() {
+        return this._currentProfileName;
+      }
+    }]);
+
+    return Profiles;
+  }();
+
+  paella.profiles = new Profiles();
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var VideoQualityStrategy =
+  /*#__PURE__*/
+  function () {
+    function VideoQualityStrategy() {
+      _classCallCheck(this, VideoQualityStrategy);
+    }
+
+    _createClass(VideoQualityStrategy, [{
+      key: "getParams",
+      value: function getParams() {
+        return paella.player.config.player.videoQualityStrategyParams || {};
+      }
+    }, {
+      key: "getQualityIndex",
+      value: function getQualityIndex(source) {
+        if (source.length > 0) {
+          return source[source.length - 1];
+        } else {
+          return source;
+        }
+      }
+    }], [{
+      key: "Factory",
+      value: function Factory() {
+        var config = paella.player.config;
+
+        try {
+          var strategyClass = config.player.videoQualityStrategy;
+          var ClassObject = paella.utils.objectFromString(strategyClass);
+          var strategy = new ClassObject();
+
+          if (strategy instanceof paella.VideoQualityStrategy) {
+            return strategy;
+          }
+        } catch (e) {}
+
+        return null;
+      }
+    }]);
+
+    return VideoQualityStrategy;
+  }();
+
+  paella.VideoQualityStrategy = VideoQualityStrategy;
+
+  var BestFitVideoQualityStrategy =
+  /*#__PURE__*/
+  function (_paella$VideoQualityS) {
+    _inherits(BestFitVideoQualityStrategy, _paella$VideoQualityS);
+
+    function BestFitVideoQualityStrategy() {
+      _classCallCheck(this, BestFitVideoQualityStrategy);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(BestFitVideoQualityStrategy).apply(this, arguments));
+    }
+
+    _createClass(BestFitVideoQualityStrategy, [{
+      key: "getQualityIndex",
+      value: function getQualityIndex(source) {
+        var index = source.length - 1;
+
+        if (source.length > 0) {
+          var selected = source[0];
+          var win_w = $(window).width();
+          var win_h = $(window).height();
+          var win_res = win_w * win_h;
+
+          if (selected.res && selected.res.w && selected.res.h) {
+            var selected_res = parseInt(selected.res.w) * parseInt(selected.res.h);
+            var selected_diff = Math.abs(win_res - selected_res);
+
+            for (var i = 0; i < source.length; ++i) {
+              var res = source[i].res;
+
+              if (res) {
+                var m_res = parseInt(source[i].res.w) * parseInt(source[i].res.h);
+                var m_diff = Math.abs(win_res - m_res);
+
+                if (m_diff <= selected_diff) {
+                  selected_diff = m_diff;
+                  index = i;
+                }
+              }
+            }
+          }
+        }
+
+        return index;
+      }
+    }]);
+
+    return BestFitVideoQualityStrategy;
+  }(paella.VideoQualityStrategy);
+
+  paella.BestFitVideoQualityStrategy = BestFitVideoQualityStrategy;
+
+  var LimitedBestFitVideoQualityStrategy =
+  /*#__PURE__*/
+  function (_paella$VideoQualityS2) {
+    _inherits(LimitedBestFitVideoQualityStrategy, _paella$VideoQualityS2);
+
+    function LimitedBestFitVideoQualityStrategy() {
+      _classCallCheck(this, LimitedBestFitVideoQualityStrategy);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(LimitedBestFitVideoQualityStrategy).apply(this, arguments));
+    }
+
+    _createClass(LimitedBestFitVideoQualityStrategy, [{
+      key: "getQualityIndex",
+      value: function getQualityIndex(source) {
+        var index = source.length - 1;
+        var params = this.getParams();
+
+        if (source.length > 0) {
+          //var selected = source[0];
+          var selected = null;
+          var win_h = $(window).height();
+          var maxRes = params.maxAutoQualityRes || 720;
+          var diff = Number.MAX_VALUE;
+          source.forEach(function (item, i) {
+            if (item.res && item.res.h <= maxRes) {
+              var itemDiff = Math.abs(win_h - item.res.h);
+
+              if (itemDiff < diff) {
+                selected = item;
+                index = i;
+              }
+            }
+          });
+        }
+
+        return index;
+      }
+    }]);
+
+    return LimitedBestFitVideoQualityStrategy;
+  }(paella.VideoQualityStrategy);
+
+  paella.LimitedBestFitVideoQualityStrategy = LimitedBestFitVideoQualityStrategy;
+
+  var VideoFactory =
+  /*#__PURE__*/
+  function () {
+    function VideoFactory() {
+      _classCallCheck(this, VideoFactory);
+    }
+
+    _createClass(VideoFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        return false;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        return null;
+      }
+    }]);
+
+    return VideoFactory;
+  }();
+
+  paella.VideoFactory = VideoFactory;
+  paella.videoFactories = paella.videoFactories || {};
+  paella.videoFactory = {
+    _factoryList: [],
+    initFactories: function initFactories() {
+      if (paella.videoFactories) {
+        var This = this;
+        paella.player.config.player.methods.forEach(function (method) {
+          if (method.enabled && paella.videoFactories[method.factory]) {
+            This.registerFactory(new paella.videoFactories[method.factory]());
+          }
+        });
+        this.registerFactory(new paella.videoFactories.EmptyVideoFactory());
+      }
+    },
+    getVideoObject: function getVideoObject(id, streamData, rect) {
+      if (this._factoryList.length == 0) {
+        this.initFactories();
+      }
+
+      var selectedFactory = null;
+
+      if (this._factoryList.some(function (factory) {
+        if (factory.isStreamCompatible(streamData)) {
+          selectedFactory = factory;
+          return true;
+        }
+      })) {
+        return selectedFactory.getVideoObject(id, streamData, rect);
+      }
+
+      return null;
+    },
+    registerFactory: function registerFactory(factory) {
+      this._factoryList.push(factory);
+    }
+  };
+})();
+
+(function () {
+  var AudioElementBase =
+  /*#__PURE__*/
+  function (_paella$DomNode2) {
+    _inherits(AudioElementBase, _paella$DomNode2);
+
+    function AudioElementBase(id, stream) {
+      var _this11;
+
+      _classCallCheck(this, AudioElementBase);
+
+      _this11 = _possibleConstructorReturn(this, _getPrototypeOf(AudioElementBase).call(this, 'div', id));
+      _this11._stream = stream;
+      _this11._ready = false;
+      return _this11;
+    }
+
+    _createClass(AudioElementBase, [{
+      key: "setAutoplay",
+      value: function setAutoplay() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "load",
+      value: function load() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "isPaused",
+      value: function isPaused() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(volume) {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "playbackRate",
+      value: function playbackRate() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        return Promise.reject(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        return Promise.resolve([{
+          index: 0,
+          res: {
+            w: 0,
+            h: 1
+          },
+          src: "",
+          toString: function toString() {
+            return "";
+          },
+          shortLabel: function shortLabel() {
+            return "";
+          },
+          compare: function compare() {
+            return 0;
+          }
+        }]);
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        return Promise.resolve(0);
+      }
+    }, {
+      key: "defaultProfile",
+      value: function defaultProfile() {
+        return null;
+      }
+    }, {
+      key: "supportAutoplay",
+      value: function supportAutoplay() {
+        return false;
+      }
+    }, {
+      key: "ready",
+      get: function get() {
+        return this._ready;
+      }
+    }, {
+      key: "currentTimeSync",
+      get: function get() {
+        return null;
+      }
+    }, {
+      key: "volumeSync",
+      get: function get() {
+        return null;
+      }
+    }, {
+      key: "pausedSync",
+      get: function get() {
+        return null;
+      }
+    }, {
+      key: "durationSync",
+      get: function get() {
+        return null;
+      }
+    }, {
+      key: "stream",
+      get: function get() {
+        return this._stream;
+      }
+    }]);
+
+    return AudioElementBase;
+  }(paella.DomNode);
+
+  ;
+  paella.AudioElementBase = AudioElementBase;
+  paella.audioFactories = {};
+
+  var AudioFactory =
+  /*#__PURE__*/
+  function () {
+    function AudioFactory() {
+      _classCallCheck(this, AudioFactory);
+    }
+
+    _createClass(AudioFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        return false;
+      }
+    }, {
+      key: "getAudioObject",
+      value: function getAudioObject(id, streamData) {
+        return null;
+      }
+    }]);
+
+    return AudioFactory;
+  }();
+
+  paella.AudioFactory = AudioFactory;
+  paella.audioFactory = {
+    _factoryList: [],
+    initFactories: function initFactories() {
+      if (paella.audioFactories) {
+        var This = this;
+        paella.player.config.player.audioMethods = paella.player.config.player.audioMethods || {};
+        paella.player.config.player.audioMethods.forEach(function (method) {
+          if (method.enabled) {
+            This.registerFactory(new paella.audioFactories[method.factory]());
+          }
+        });
+      }
+    },
+    getAudioObject: function getAudioObject(id, streamData) {
+      if (this._factoryList.length == 0) {
+        this.initFactories();
+      }
+
+      var selectedFactory = null;
+
+      if (this._factoryList.some(function (factory) {
+        if (factory.isStreamCompatible(streamData)) {
+          selectedFactory = factory;
+          return true;
+        }
+      })) {
+        return selectedFactory.getAudioObject(id, streamData);
+      }
+
+      return null;
+    },
+    registerFactory: function registerFactory(factory) {
+      this._factoryList.push(factory);
+    }
+  };
+})();
+
+(function () {
+  function checkReady(cb) {
+    var This = this;
+    return new Promise(function (resolve, reject) {
+      if (This._ready) {
+        resolve(typeof cb == 'function' ? cb() : true);
+      } else {
+        var doCheck = function doCheck() {
+          if (This.audio.readyState >= This.audio.HAVE_CURRENT_DATA) {
+            This._ready = true;
+            resolve(typeof cb == 'function' ? cb() : true);
+          } else {
+            setTimeout(doCheck, 50);
+          }
+        };
+
+        doCheck();
+      }
+    });
+  }
+
+  var MultiformatAudioElement =
+  /*#__PURE__*/
+  function (_paella$AudioElementB) {
+    _inherits(MultiformatAudioElement, _paella$AudioElementB);
+
+    function MultiformatAudioElement(id, stream) {
+      var _this12;
+
+      _classCallCheck(this, MultiformatAudioElement);
+
+      _this12 = _possibleConstructorReturn(this, _getPrototypeOf(MultiformatAudioElement).call(this, id, stream));
+      _this12._streamName = "audio";
+      _this12._audio = document.createElement('audio');
+
+      _this12.domElement.appendChild(_this12._audio);
+
+      return _this12;
+    }
+
+    _createClass(MultiformatAudioElement, [{
+      key: "setAutoplay",
+      value: function setAutoplay(ap) {
+        this.audio.autoplay = ap;
+      }
+    }, {
+      key: "load",
+      value: function load() {
+        var This = this;
+        var sources = this._stream.sources[this._streamName];
+        var stream = sources.length > 0 ? sources[0] : null;
+        this.audio.innerText = "";
+
+        if (stream) {
+          var sourceElem = this.audio.querySelector('source');
+
+          if (!sourceElem) {
+            sourceElem = document.createElement('source');
+            this.audio.appendChild(sourceElem);
+          }
+
+          sourceElem.src = stream.src;
+          if (stream.type) sourceElem.type = stream.type;
+          this.audio.load();
+          return checkReady.apply(this, [function () {
+            return stream;
+          }]);
+        } else {
+          return Promise.reject(new Error("Could not load video: invalid quality stream index"));
+        }
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        var _this13 = this;
+
+        return checkReady.apply(this, [function () {
+          _this13.audio.play();
+        }]);
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        var _this14 = this;
+
+        return checkReady.apply(this, [function () {
+          _this14.audio.pause();
+        }]);
+      }
+    }, {
+      key: "isPaused",
+      value: function isPaused() {
+        var _this15 = this;
+
+        return checkReady.apply(this, [function () {
+          return _this15.audio.paused;
+        }]);
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        var _this16 = this;
+
+        return checkReady.apply(this, [function () {
+          return _this16.audio.duration;
+        }]);
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        var _this17 = this;
+
+        return checkReady.apply(this, [function () {
+          _this17.audio.currentTime = time;
+        }]);
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        var _this18 = this;
+
+        return checkReady.apply(this, [function () {
+          return _this18.audio.currentTime;
+        }]);
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(volume) {
+        var _this19 = this;
+
+        return checkReady.apply(this, [function () {
+          return _this19.audio.volume = volume;
+        }]);
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        var _this20 = this;
+
+        return checkReady.apply(this, [function () {
+          return _this20.audio.volume;
+        }]);
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        var _this21 = this;
+
+        return checkReady.apply(this, [function () {
+          _this21.audio.playbackRate = rate;
+        }]);
+      }
+    }, {
+      key: "playbackRate",
+      value: function playbackRate() {
+        var _this22 = this;
+
+        return checkReady.apply(this, [function () {
+          return _this22.audio.playbackRate;
+        }]);
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        return Promise.resolve();
+      }
+    }, {
+      key: "audio",
+      get: function get() {
+        return this._audio;
+      }
+    }, {
+      key: "currentTimeSync",
+      get: function get() {
+        return this.ready ? this.audio.currentTimeSync : null;
+      }
+    }, {
+      key: "volumeSync",
+      get: function get() {
+        return this.ready ? this.audio.volumeSync : null;
+      }
+    }, {
+      key: "pausedSync",
+      get: function get() {
+        return this.ready ? this.audio.pausedSync : null;
+      }
+    }, {
+      key: "durationSync",
+      get: function get() {
+        return this.ready ? this.audio.durationSync : null;
+      }
+    }]);
+
+    return MultiformatAudioElement;
+  }(paella.AudioElementBase);
+
+  ;
+  paella.MultiformatAudioElement = MultiformatAudioElement;
+
+  var MultiformatAudioFactory =
+  /*#__PURE__*/
+  function () {
+    function MultiformatAudioFactory() {
+      _classCallCheck(this, MultiformatAudioFactory);
+    }
+
+    _createClass(MultiformatAudioFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        return true;
+      }
+    }, {
+      key: "getAudioObject",
+      value: function getAudioObject(id, streamData) {
+        return new paella.MultiformatAudioElement(id, streamData);
+      }
+    }]);
+
+    return MultiformatAudioFactory;
+  }();
+
+  paella.audioFactories.MultiformatAudioFactory = MultiformatAudioFactory;
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  paella.Profiles = {
+    profileList: null,
+    getDefaultProfile: function getDefaultProfile() {
+      if (paella.player.videoContainer.masterVideo() && paella.player.videoContainer.masterVideo().defaultProfile()) {
+        return paella.player.videoContainer.masterVideo().defaultProfile();
+      }
+
+      if (paella.player && paella.player.config && paella.player.config.defaultProfile) {
+        return paella.player.config.defaultProfile;
+      }
+
+      return undefined;
+    },
+    loadProfile: function loadProfile(profileName, onSuccessFunction) {
+      var defaultProfile = this.getDefaultProfile();
+      this.loadProfileList(function (data) {
+        var profileData;
+
+        if (data[profileName]) {
+          // Successful mapping
+          profileData = data[profileName];
+        } else if (data[defaultProfile]) {
+          // Fallback to default profile
+          profileData = data[defaultProfile];
+        } else {
+          // Unable to find or map defaultProfile in profiles.json
+          base.log.debug("Error loading the default profile. Check your Paella Player configuration");
+          return false;
+        }
+
+        onSuccessFunction(profileData);
+      });
+    },
+    loadProfileList: function loadProfileList(onSuccessFunction) {
+      var thisClass = this;
+
+      if (this.profileList == null) {
+        var params = {
+          url: paella.utils.folders.profiles() + "/profiles.json"
+        };
+        base.ajax.get(params, function (data, mimetype, code) {
+          if (typeof data == "string") {
+            data = JSON.parse(data);
+          }
+
+          thisClass.profileList = data;
+          onSuccessFunction(thisClass.profileList);
+        }, function (data, mimetype, code) {
+          base.log.debug("Error loading video profiles. Check your Paella Player configuration");
+        });
+      } else {
+        onSuccessFunction(thisClass.profileList);
+      }
+    }
+  };
+
+  var RelativeVideoSize =
+  /*#__PURE__*/
+  function () {
+    function RelativeVideoSize() {
+      _classCallCheck(this, RelativeVideoSize);
+    }
+
+    _createClass(RelativeVideoSize, [{
+      key: "proportionalHeight",
+      value: function proportionalHeight(newWidth) {
+        return Math.floor(this.h * newWidth / this.w);
+      }
+    }, {
+      key: "proportionalWidth",
+      value: function proportionalWidth(newHeight) {
+        return Math.floor(this.w * newHeight / this.h);
+      }
+    }, {
+      key: "percentVSize",
+      value: function percentVSize(pxSize) {
+        return pxSize * 100 / this.h;
+      }
+    }, {
+      key: "percentWSize",
+      value: function percentWSize(pxSize) {
+        return pxSize * 100 / this.w;
+      }
+    }, {
+      key: "aspectRatio",
+      value: function aspectRatio() {
+        return this.w / this.h;
+      }
+    }, {
+      key: "w",
+      get: function get() {
+        return this._w || 1280;
+      },
+      set: function set(v) {
+        this._w = v;
+      }
+    }, {
+      key: "h",
+      get: function get() {
+        return this._h || 720;
+      },
+      set: function set(v) {
+        this._h = v;
+      }
+    }]);
+
+    return RelativeVideoSize;
+  }();
+
+  paella.RelativeVideoSize = RelativeVideoSize;
+
+  var VideoRect =
+  /*#__PURE__*/
+  function (_paella$DomNode3) {
+    _inherits(VideoRect, _paella$DomNode3);
+
+    function VideoRect(id, domType, left, top, width, height) {
+      var _this23;
+
+      _classCallCheck(this, VideoRect);
+
+      _this23 = _possibleConstructorReturn(this, _getPrototypeOf(VideoRect).call(this, domType, id, {}));
+      var zoomSettings = paella.player.config.player.videoZoom || {};
+
+      var zoomEnabled = (zoomSettings.enabled !== undefined ? zoomSettings.enabled : true) && _this23.allowZoom();
+
+      _this23.style = zoomEnabled ? {
+        width: _this23._zoom + '%',
+        height: "100%",
+        position: 'absolute'
+      } : {
+        width: "100%",
+        height: "100%"
+      };
+      _this23._rect = null;
+      var eventCapture = document.createElement('div');
+      setTimeout(function () {
+        return _this23.domElement.parentElement.appendChild(eventCapture);
+      }, 10);
+      eventCapture.id = id + "EventCapture";
+      eventCapture.style.position = "absolute";
+      eventCapture.style.top = "0px";
+      eventCapture.style.left = "0px";
+      eventCapture.style.right = "0px";
+      eventCapture.style.bottom = "0px";
+      _this23.eventCapture = eventCapture;
+
+      if (zoomEnabled) {
+        var checkZoomAvailable = function checkZoomAvailable() {
+          var minWindowSize = paella.player.config.player && paella.player.config.player.videoZoom && paella.player.config.player.videoZoom.minWindowSize || 500;
+          var available = $(window).width() >= minWindowSize;
+
+          if (this._zoomAvailable != available) {
+            this._zoomAvailable = available;
+            paella.events.trigger(paella.events.zoomAvailabilityChanged, {
+              available: available
+            });
+          }
+        };
+
+        var mousePos = function mousePos(evt) {
+          return {
+            x: evt.originalEvent.offsetX,
+            y: evt.originalEvent.offsetY
+          };
+        };
+
+        var wheelDelta = function wheelDelta(evt) {
+          var wheel = evt.originalEvent.deltaY * (paella.utils.userAgent.Firefox ? 2 : 1);
+          var maxWheel = 6;
+          return -Math.abs(wheel) < maxWheel ? wheel : maxWheel * Math.sign(wheel);
+        };
+
+        var touchesLength = function touchesLength(p0, p1) {
+          return Math.sqrt((p1.x - p0.x) * (p1.x - p0.x) + (p1.y - p0.y) * (p1.y - p0.y));
+        };
+
+        var centerPoint = function centerPoint(p0, p1) {
+          return {
+            x: (p1.x - p0.x) / 2 + p0.x,
+            y: (p1.y - p0.y) / 2 + p0.y
+          };
+        };
+
+        var panImage = function panImage(o) {
+          var center = {
+            x: this._mouseCenter.x - o.x * 1.1,
+            y: this._mouseCenter.y - o.y * 1.1
+          };
+          var videoSize = {
+            w: $(this.domElement).width(),
+            h: $(this.domElement).height()
+          };
+          var maxOffset = this._zoom - 100;
+          var offset = {
+            x: center.x * maxOffset / videoSize.w * (maxOffset / 100),
+            y: center.y * maxOffset / videoSize.h * (maxOffset / 100)
+          };
+
+          if (offset.x > maxOffset) {
+            offset.x = maxOffset;
+          } else if (offset.x < 0) {
+            offset.x = 0;
+          } else {
+            this._mouseCenter.x = center.x;
+          }
+
+          if (offset.y > maxOffset) {
+            offset.y = maxOffset;
+          } else if (offset.y < 0) {
+            offset.y = 0;
+          } else {
+            this._mouseCenter.y = center.y;
+          }
+
+          $(this.domElement).css({
+            left: "-" + offset.x + "%",
+            top: "-" + offset.y + "%"
+          });
+          this._zoomOffset = {
+            x: offset.x,
+            y: offset.y
+          };
+          paella.events.trigger(paella.events.videoZoomChanged, {
+            video: this
+          });
+        };
+
+        var clearAltScrollMessage = function clearAltScrollMessage() {
+          var animate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
+          animate ? $(altScrollMessageContainer).animate({
+            opacity: 0.0
+          }) : $(altScrollMessageContainer).css({
+            opacity: 0.0
+          });
+        };
+
+        var showAltScrollMessage = function showAltScrollMessage() {
+          if (altScrollMessageTimer) {
+            clearTimeout(altScrollMessageTimer);
+            altScrollMessageTimer = null;
+          } else {
+            $(altScrollMessageContainer).css({
+              opacity: 1.0
+            });
+          }
+
+          altScrollMessageTimer = setTimeout(function () {
+            clearAltScrollMessage();
+            altScrollMessageTimer = null;
+          }, 500);
+        };
+
+        _this23._zoomAvailable = true;
+        checkZoomAvailable.apply(_assertThisInitialized(_this23));
+        $(window).resize(function () {
+          checkZoomAvailable.apply(_assertThisInitialized(_this23));
+        });
+        _this23._zoom = 100;
+        _this23._mouseCenter = {
+          x: 0,
+          y: 0
+        };
+        _this23._mouseDown = {
+          x: 0,
+          y: 0
+        };
+        _this23._zoomOffset = {
+          x: 0,
+          y: 0
+        };
+        _this23._maxZoom = zoomSettings.max || 400;
+        $(_this23.domElement).css({
+          width: "100%",
+          height: "100%",
+          left: "0%",
+          top: "0%"
+        });
+        Object.defineProperty(_assertThisInitialized(_this23), 'zoom', {
+          get: function get() {
+            return this._zoom;
+          }
+        });
+        Object.defineProperty(_assertThisInitialized(_this23), 'zoomOffset', {
+          get: function get() {
+            return this._zoomOffset;
+          }
+        });
+        var touches = [];
+        $(eventCapture).on('touchstart', function (evt) {
+          if (!_this23.allowZoom() || !_this23._zoomAvailable) return;
+          touches = [];
+          var videoOffset = $(_this23.domElement).offset();
+
+          for (var i = 0; i < evt.originalEvent.targetTouches.length; ++i) {
+            var touch = evt.originalEvent.targetTouches[i];
+            touches.push({
+              x: touch.screenX - videoOffset.left,
+              y: touch.screenY - videoOffset.top
+            });
+          }
+
+          if (touches.length > 1) evt.preventDefault();
+        });
+        $(eventCapture).on('touchmove', function (evt) {
+          if (!_this23.allowZoom() || !_this23._zoomAvailable) return;
+          var curTouches = [];
+          var videoOffset = $(_this23.domElement).offset();
+
+          for (var i = 0; i < evt.originalEvent.targetTouches.length; ++i) {
+            var touch = evt.originalEvent.targetTouches[i];
+            curTouches.push({
+              x: touch.screenX - videoOffset.left,
+              y: touch.screenY - videoOffset.top
+            });
+          }
+
+          if (curTouches.length > 1 && touches.length > 1) {
+            var l0 = touchesLength(touches[0], touches[1]);
+            var l1 = touchesLength(curTouches[0], curTouches[1]);
+            var delta = l1 - l0;
+            var center = centerPoint(touches[0], touches[1]);
+            _this23._mouseCenter = center;
+            _this23._zoom += delta;
+            _this23._zoom = _this23._zoom < 100 ? 100 : _this23._zoom;
+            _this23._zoom = _this23._zoom > _this23._maxZoom ? _this23._maxZoom : _this23._zoom;
+            var newVideoSize = {
+              w: $(_this23.domElement).width(),
+              h: $(_this23.domElement).height()
+            };
+            var mouse = _this23._mouseCenter;
+            $(_this23.domElement).css({
+              width: _this23._zoom + '%',
+              height: _this23._zoom + '%'
+            });
+            var maxOffset = _this23._zoom - 100;
+            var offset = {
+              x: mouse.x * maxOffset / newVideoSize.w,
+              y: mouse.y * maxOffset / newVideoSize.h
+            };
+            offset.x = offset.x < maxOffset ? offset.x : maxOffset;
+            offset.y = offset.y < maxOffset ? offset.y : maxOffset;
+            $(_this23.domElement).css({
+              left: "-" + offset.x + "%",
+              top: "-" + offset.y + "%"
+            });
+            _this23._zoomOffset = {
+              x: offset.x,
+              y: offset.y
+            };
+            paella.events.trigger(paella.events.videoZoomChanged, {
+              video: _assertThisInitialized(_this23)
+            });
+            touches = curTouches;
+            evt.preventDefault();
+          } else if (curTouches.length > 0) {
+            var desp = {
+              x: curTouches[0].x - touches[0].x,
+              y: curTouches[0].y - touches[0].y
+            };
+            panImage.apply(_assertThisInitialized(_this23), [desp]);
+            touches = curTouches;
+            evt.preventDefault();
+          }
+        });
+        $(eventCapture).on('touchend', function (evt) {
+          if (!_this23.allowZoom() || !_this23._zoomAvailable) return;
+          if (touches.length > 1) evt.preventDefault();
+        });
+
+        _this23.zoomIn = function () {
+          if (_this23._zoom >= _this23._maxZoom || !_this23._zoomAvailable) return;
+
+          if (!_this23._mouseCenter) {
+            _this23._mouseCenter = {
+              x: $(_this23.domElement).width() / 2,
+              y: $(_this23.domElement).height() / 2
+            };
+          }
+
+          _this23._zoom += 25;
+          _this23._zoom = _this23._zoom < 100 ? 100 : _this23._zoom;
+          _this23._zoom = _this23._zoom > _this23._maxZoom ? _this23._maxZoom : _this23._zoom;
+          var newVideoSize = {
+            w: $(_this23.domElement).width(),
+            h: $(_this23.domElement).height()
+          };
+          var mouse = _this23._mouseCenter;
+          $(_this23.domElement).css({
+            width: _this23._zoom + '%',
+            height: _this23._zoom + '%'
+          });
+          var maxOffset = _this23._zoom - 100;
+          var offset = {
+            x: mouse.x * maxOffset / newVideoSize.w * (maxOffset / 100),
+            y: mouse.y * maxOffset / newVideoSize.h * (maxOffset / 100)
+          };
+          offset.x = offset.x < maxOffset ? offset.x : maxOffset;
+          offset.y = offset.y < maxOffset ? offset.y : maxOffset;
+          $(_this23.domElement).css({
+            left: "-" + offset.x + "%",
+            top: "-" + offset.y + "%"
+          });
+          _this23._zoomOffset = {
+            x: offset.x,
+            y: offset.y
+          };
+          paella.events.trigger(paella.events.videoZoomChanged, {
+            video: _assertThisInitialized(_this23)
+          });
+        };
+
+        _this23.zoomOut = function () {
+          if (_this23._zoom <= 100 || !_this23._zoomAvailable) return;
+
+          if (!_this23._mouseCenter) {
+            _this23._mouseCenter = {
+              x: $(_this23.domElement).width() / 2,
+              y: $(_this23.domElement).height() / 2
+            };
+          }
+
+          _this23._zoom -= 25;
+          _this23._zoom = _this23._zoom < 100 ? 100 : _this23._zoom;
+          _this23._zoom = _this23._zoom > _this23._maxZoom ? _this23._maxZoom : _this23._zoom;
+          var newVideoSize = {
+            w: $(_this23.domElement).width(),
+            h: $(_this23.domElement).height()
+          };
+          var mouse = _this23._mouseCenter;
+          $(_this23.domElement).css({
+            width: _this23._zoom + '%',
+            height: _this23._zoom + '%'
+          });
+          var maxOffset = _this23._zoom - 100;
+          var offset = {
+            x: mouse.x * maxOffset / newVideoSize.w * (maxOffset / 100),
+            y: mouse.y * maxOffset / newVideoSize.h * (maxOffset / 100)
+          };
+          offset.x = offset.x < maxOffset ? offset.x : maxOffset;
+          offset.y = offset.y < maxOffset ? offset.y : maxOffset;
+          $(_this23.domElement).css({
+            left: "-" + offset.x + "%",
+            top: "-" + offset.y + "%"
+          });
+          _this23._zoomOffset = {
+            x: offset.x,
+            y: offset.y
+          };
+          paella.events.trigger(paella.events.videoZoomChanged, {
+            video: _assertThisInitialized(_this23)
+          });
+        };
+
+        var altScrollMessageContainer = document.createElement('div');
+        altScrollMessageContainer.className = "alt-scroll-message-container";
+        altScrollMessageContainer.innerHTML = "<p>" + paella.dictionary.translate("Use Alt+Scroll to zoom the video") + "</p>";
+        eventCapture.appendChild(altScrollMessageContainer);
+        $(altScrollMessageContainer).css({
+          opacity: 0.0
+        });
+        var altScrollMessageTimer = null;
+        $(eventCapture).on('mousewheel wheel', function (evt) {
+          if (!_this23.allowZoom() || !_this23._zoomAvailable) return;
+
+          if (!evt.altKey) {
+            showAltScrollMessage();
+            return;
+          } else {
+            clearAltScrollMessage(false);
+
+            if (altScrollMessageTimer) {
+              clearTimeout(altScrollMessageTimer);
+              altScrollMessageTimer = null;
+            }
+          }
+
+          var mouse = mousePos(evt);
+          var wheel = wheelDelta(evt);
+          if (_this23._zoom >= _this23._maxZoom && wheel > 0) return;
+          _this23._zoom += wheel;
+          _this23._zoom = _this23._zoom < 100 ? 100 : _this23._zoom;
+          _this23._zoom = _this23._zoom > _this23._maxZoom ? _this23._maxZoom : _this23._zoom;
+          var newVideoSize = {
+            w: $(_this23.domElement).width(),
+            h: $(_this23.domElement).height()
+          };
+          $(_this23.domElement).css({
+            width: _this23._zoom + '%',
+            height: _this23._zoom + '%'
+          });
+          var maxOffset = _this23._zoom - 100;
+          var offset = {
+            x: mouse.x * maxOffset / newVideoSize.w * (maxOffset / 100),
+            y: mouse.y * maxOffset / newVideoSize.h * (maxOffset / 100)
+          };
+          offset.x = offset.x < maxOffset ? offset.x : maxOffset;
+          offset.y = offset.y < maxOffset ? offset.y : maxOffset;
+          $(_this23.domElement).css({
+            left: "-" + offset.x + "%",
+            top: "-" + offset.y + "%"
+          });
+          _this23._zoomOffset = {
+            x: offset.x,
+            y: offset.y
+          };
+          paella.events.trigger(paella.events.videoZoomChanged, {
+            video: _assertThisInitialized(_this23)
+          });
+          _this23._mouseCenter = mouse;
+          evt.stopPropagation();
+          return false;
+        });
+        $(eventCapture).on('mousedown', function (evt) {
+          _this23._mouseDown = mousePos(evt);
+          _this23.drag = true;
+        });
+        $(eventCapture).on('mousemove', function (evt) {
+          if (!_this23.allowZoom() || !_this23._zoomAvailable) return; //this.drag = evt.buttons>0;
+
+          if (_this23.drag) {
+            paella.player.videoContainer.disablePlayOnClick();
+            var mouse = mousePos(evt);
+            panImage.apply(_assertThisInitialized(_this23), [{
+              x: mouse.x - _this23._mouseDown.x,
+              y: mouse.y - _this23._mouseDown.y
+            }]);
+            _this23._mouseDown = mouse;
+          }
+        });
+        $(eventCapture).on('mouseup', function (evt) {
+          if (!_this23.allowZoom() || !_this23._zoomAvailable) return;
+          _this23.drag = false;
+          setTimeout(function () {
+            return paella.player.videoContainer.enablePlayOnClick();
+          }, 10);
+        });
+        $(eventCapture).on('mouseleave', function (evt) {
+          _this23.drag = false;
+        });
+      }
+
+      return _this23;
+    }
+
+    _createClass(VideoRect, [{
+      key: "allowZoom",
+      value: function allowZoom() {
+        return !this.canvasData.mouseEventsSupport;
+      }
+    }, {
+      key: "setZoom",
+      value: function setZoom(zoom, left, top) {
+        var tween = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
+
+        if (this.zoomAvailable()) {
+          this._zoomOffset.x = left;
+          this._zoomOffset.y = top;
+          this._zoom = zoom;
+
+          if (tween == 0) {
+            $(this.domElement).css({
+              width: this._zoom + '%',
+              height: this._zoom + '%',
+              left: "-" + this._zoomOffset.x + "%",
+              top: "-" + this._zoomOffset.y + "%"
+            });
+          } else {
+            $(this.domElement).stop(true, false).animate({
+              width: this._zoom + '%',
+              height: this._zoom + '%',
+              left: "-" + this._zoomOffset.x + "%",
+              top: "-" + this._zoomOffset.y + "%"
+            }, tween, "linear");
+          }
+
+          paella.events.trigger(paella.events.videoZoomChanged, {
+            video: this
+          });
+        }
+      }
+    }, {
+      key: "captureFrame",
+      value: function captureFrame() {
+        return Promise.resolve(null);
+      }
+    }, {
+      key: "supportsCaptureFrame",
+      value: function supportsCaptureFrame() {
+        return Promise.resolve(false);
+      } // zoomAvailable will only return true if the zoom is enabled, the
+      // video plugin supports zoom and the current video resolution is higher than
+      // the current video size
+
+    }, {
+      key: "zoomAvailable",
+      value: function zoomAvailable() {
+        return this.allowZoom() && this._zoomAvailable;
+      }
+    }, {
+      key: "disableEventCapture",
+      value: function disableEventCapture() {
+        this.eventCapture.style.pointerEvents = 'none';
+      }
+    }, {
+      key: "enableEventCapture",
+      value: function enableEventCapture() {
+        this.eventCapture.style.pointerEvents = '';
+      }
+    }, {
+      key: "canvasData",
+      get: function get() {
+        var canvasType = this._stream && Array.isArray(this._stream.canvas) && this._stream.canvas[0];
+
+        var canvasData = canvasType && paella.getVideoCanvasData(this._stream.canvas[0]) || {
+          mouseEventsSupport: false,
+          webglSupport: false
+        };
+        return canvasData;
+      }
+    }]);
+
+    return VideoRect;
+  }(paella.DomNode);
+
+  paella.VideoRect = VideoRect;
+
+  var VideoElementBase =
+  /*#__PURE__*/
+  function (_paella$VideoRect) {
+    _inherits(VideoElementBase, _paella$VideoRect);
+
+    function VideoElementBase(id, stream, containerType, left, top, width, height) {
+      var _this24;
+
+      _classCallCheck(this, VideoElementBase);
+
+      _this24 = _possibleConstructorReturn(this, _getPrototypeOf(VideoElementBase).call(this, id, containerType, left, top, width, height));
+      _this24._stream = stream;
+      _this24._ready = false;
+      _this24._autoplay = false;
+      _this24._videoQualityStrategy = null;
+      if (_this24._stream.preview) _this24.setPosterFrame(_this24._stream.preview);
+
+      if (_this24.canvasData.mouseEventsSupport) {
+        _this24.disableEventCapture();
+      }
+
+      return _this24;
+    }
+
+    _createClass(VideoElementBase, [{
+      key: "defaultProfile",
+      value: function defaultProfile() {
+        return null;
+      } // Synchronous functions: returns null if the resource is not loaded. Use only if 
+      // the resource is loaded.
+
+    }, {
+      key: "setVideoQualityStrategy",
+      // Initialization functions
+      value: function setVideoQualityStrategy(strategy) {
+        this._videoQualityStrategy = strategy;
+      }
+    }, {
+      key: "setPosterFrame",
+      value: function setPosterFrame(url) {
+        base.log.debug("TODO: implement setPosterFrame() function");
+      }
+    }, {
+      key: "setAutoplay",
+      value: function setAutoplay(autoplay) {
+        this._autoplay = autoplay;
+      }
+    }, {
+      key: "setMetadata",
+      value: function setMetadata(data) {
+        this._metadata = data;
+      }
+    }, {
+      key: "load",
+      value: function load() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "supportAutoplay",
+      value: function supportAutoplay() {
+        return true;
+      } // Video canvas functions
+
+    }, {
+      key: "videoCanvas",
+      value: function videoCanvas() {
+        return Promise.reject(new Error("VideoElementBase::videoCanvas(): Not implemented in child class."));
+      } // Playback functions
+
+    }, {
+      key: "getVideoData",
+      value: function getVideoData() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        base.log.debug("TODO: implement play() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        base.log.debug("TODO: implement pause() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "isPaused",
+      value: function isPaused() {
+        base.log.debug("TODO: implement isPaused() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        base.log.debug("TODO: implement duration() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        base.log.debug("TODO: implement setCurrentTime() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        base.log.debug("TODO: implement currentTime() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(volume) {
+        base.log.debug("TODO: implement setVolume() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        base.log.debug("TODO: implement volume() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        base.log.debug("TODO: implement setPlaybackRate() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "playbackRate",
+      value: function playbackRate() {
+        base.log.debug("TODO: implement playbackRate() function in your VideoElementBase subclass");
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "setQuality",
+      value: function setQuality(index) {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        this._callUnloadEvent();
+
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "getDimensions",
+      value: function getDimensions() {
+        return paella_DeferredNotImplemented(); // { width:X, height:Y }
+      }
+    }, {
+      key: "goFullScreen",
+      value: function goFullScreen() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "freeze",
+      value: function freeze() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "unFreeze",
+      value: function unFreeze() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "disable",
+      value: function disable(isMainAudioPlayer) {
+        console.log("Disable video requested");
+      }
+    }, {
+      key: "enable",
+      value: function enable(isMainAudioPlayer) {
+        console.log("Enable video requested");
+      } // Utility functions
+
+    }, {
+      key: "setClassName",
+      value: function setClassName(className) {
+        this.domElement.className = className;
+      }
+    }, {
+      key: "_callReadyEvent",
+      value: function _callReadyEvent() {
+        paella.events.trigger(paella.events.singleVideoReady, {
+          sender: this
+        });
+      }
+    }, {
+      key: "_callUnloadEvent",
+      value: function _callUnloadEvent() {
+        paella.events.trigger(paella.events.singleVideoUnloaded, {
+          sender: this
+        });
+      }
+    }, {
+      key: "ready",
+      get: function get() {
+        return this._ready;
+      }
+    }, {
+      key: "stream",
+      get: function get() {
+        return this._stream;
+      }
+    }, {
+      key: "currentTimeSync",
+      get: function get() {
+        return null;
+      }
+    }, {
+      key: "volumeSync",
+      get: function get() {
+        return null;
+      }
+    }, {
+      key: "pausedSync",
+      get: function get() {
+        return null;
+      }
+    }, {
+      key: "durationSync",
+      get: function get() {
+        return null;
+      }
+    }]);
+
+    return VideoElementBase;
+  }(paella.VideoRect);
+
+  paella.VideoElementBase = VideoElementBase;
+
+  var EmptyVideo =
+  /*#__PURE__*/
+  function (_paella$VideoElementB) {
+    _inherits(EmptyVideo, _paella$VideoElementB);
+
+    function EmptyVideo(id, stream, left, top, width, height) {
+      _classCallCheck(this, EmptyVideo);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(EmptyVideo).call(this, id, stream, 'div', left, top, width, height));
+    } // Initialization functions
+
+
+    _createClass(EmptyVideo, [{
+      key: "setPosterFrame",
+      value: function setPosterFrame(url) {}
+    }, {
+      key: "setAutoplay",
+      value: function setAutoplay(auto) {}
+    }, {
+      key: "load",
+      value: function load() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "isPaused",
+      value: function isPaused() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(volume) {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "playbackRate",
+      value: function playbackRate() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "unFreeze",
+      value: function unFreeze() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "freeze",
+      value: function freeze() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }, {
+      key: "getDimensions",
+      value: function getDimensions() {
+        return paella_DeferredRejected(new Error("no such compatible video player"));
+      }
+    }]);
+
+    return EmptyVideo;
+  }(paella.VideoElementBase);
+
+  paella.EmptyVideo = EmptyVideo;
+
+  var EmptyVideoFactory =
+  /*#__PURE__*/
+  function (_paella$VideoFactory) {
+    _inherits(EmptyVideoFactory, _paella$VideoFactory);
+
+    function EmptyVideoFactory() {
+      _classCallCheck(this, EmptyVideoFactory);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(EmptyVideoFactory).apply(this, arguments));
+    }
+
+    _createClass(EmptyVideoFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        return true;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        return new paella.EmptyVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+      }
+    }]);
+
+    return EmptyVideoFactory;
+  }(paella.VideoFactory);
+
+  paella.videoFactories.EmptyVideoFactory = EmptyVideoFactory;
+
+  var Html5Video =
+  /*#__PURE__*/
+  function (_paella$VideoElementB2) {
+    _inherits(Html5Video, _paella$VideoElementB2);
+
+    function Html5Video(id, stream, left, top, width, height, streamName) {
+      var _this25;
+
+      _classCallCheck(this, Html5Video);
+
+      _this25 = _possibleConstructorReturn(this, _getPrototypeOf(Html5Video).call(this, id, stream, 'video', left, top, width, height));
+      _this25._posterFrame = null;
+      _this25._currentQuality = null;
+      _this25._autoplay = false;
+      _this25._streamName = streamName || 'mp4';
+      _this25._playbackRate = 1;
+
+      if (_this25._stream.sources[_this25._streamName]) {
+        _this25._stream.sources[_this25._streamName].sort(function (a, b) {
+          return a.res.h - b.res.h;
+        });
+      }
+
+      _this25.video.preload = "auto";
+
+      _this25.video.setAttribute("playsinline", "");
+
+      _this25.video.setAttribute("tabindex", "-1");
+
+      _this25._configureVideoEvents(_this25.video);
+
+      return _this25;
+    }
+
+    _createClass(Html5Video, [{
+      key: "_configureVideoEvents",
+      value: function _configureVideoEvents(videoElement) {
+        var _this26 = this;
+
+        function onProgress(event) {
+          if (!this._ready && this.video.readyState == 4) {
+            this._ready = true;
+
+            if (this._initialCurrentTipe !== undefined) {
+              this.video.currentTime = this._initialCurrentTime;
+              delete this._initialCurrentTime;
+            }
+
+            this._callReadyEvent();
+          }
+        }
+
+        var evtCallback = function evtCallback(event) {
+          onProgress.apply(_this26, [event]);
+        };
+
+        $(this.video).bind('progress', evtCallback);
+        $(this.video).bind('loadstart', evtCallback);
+        $(this.video).bind('loadedmetadata', evtCallback);
+        $(this.video).bind('canplay', evtCallback);
+        $(this.video).bind('oncanplay', evtCallback); // Save current time to resume video
+
+        $(this.video).bind('timeupdate', function (evt) {
+          _this26._resumeCurrentTime = _this26.video.currentTime;
+        });
+        $(this.video).bind('ended', function (evt) {
+          paella.events.trigger(paella.events.endVideo);
+        });
+        $(this.video).bind('emptied', function (evt) {
+          if (_this26._resumeCurrentTime && !isNaN(_this26._resumeCurrentTime)) {
+            _this26.video.currentTime = _this26._resumeCurrentTime;
+          }
+        }); // Fix safari setQuelity bug
+
+        if (paella.utils.userAgent.browser.Safari) {
+          $(this.video).bind('canplay canplaythrough', function (evt) {
+            _this26._resumeCurrentTime && (_this26.video.currentTime = _this26._resumeCurrentTime);
+          });
+        }
+      }
+    }, {
+      key: "_deferredAction",
+      value: function _deferredAction(action) {
+        var _this27 = this;
+
+        return new Promise(function (resolve, reject) {
+          function processResult(actionResult) {
+            if (actionResult instanceof Promise) {
+              actionResult.then(function (p) {
+                return resolve(p);
+              })["catch"](function (err) {
+                return reject(err);
+              });
+            } else {
+              resolve(actionResult);
+            }
+          }
+
+          if (_this27.ready) {
+            processResult(action());
+          } else {
+            $(_this27.video).bind('canplay', function () {
+              processResult(action());
+              $(_this27.video).unbind('canplay');
+            });
+          }
+        });
+      }
+    }, {
+      key: "_getQualityObject",
+      value: function _getQualityObject(index, s) {
+        return {
+          index: index,
+          res: s.res,
+          src: s.src,
+          toString: function toString() {
+            return this.res.w == 0 ? "auto" : this.res.w + "x" + this.res.h;
+          },
+          shortLabel: function shortLabel() {
+            return this.res.w == 0 ? "auto" : this.res.h + "p";
+          },
+          compare: function compare(q2) {
+            return this.res.w * this.res.h - q2.res.w * q2.res.h;
+          }
+        };
+      }
+    }, {
+      key: "captureFrame",
+      value: function captureFrame() {
+        var _this28 = this;
+
+        return new Promise(function (resolve) {
+          resolve({
+            source: _this28.video,
+            width: _this28.video.videoWidth,
+            height: _this28.video.videoHeight
+          });
+        });
+      }
+    }, {
+      key: "supportsCaptureFrame",
+      value: function supportsCaptureFrame() {
+        return Promise.resolve(true);
+      } // Initialization functions
+
+    }, {
+      key: "getVideoData",
+      value: function getVideoData() {
+        var _this29 = this;
+
+        var This = this;
+        return new Promise(function (resolve, reject) {
+          _this29._deferredAction(function () {
+            resolve({
+              duration: This.video.duration,
+              currentTime: This.video.currentTime,
+              volume: This.video.volume,
+              paused: This.video.paused,
+              ended: This.video.ended,
+              res: {
+                w: This.video.videoWidth,
+                h: This.video.videoHeight
+              }
+            });
+          });
+        });
+      }
+    }, {
+      key: "setPosterFrame",
+      value: function setPosterFrame(url) {
+        this._posterFrame = url;
+      }
+    }, {
+      key: "setAutoplay",
+      value: function setAutoplay(auto) {
+        this._autoplay = auto;
+
+        if (auto && this.video) {
+          this.video.setAttribute("autoplay", auto);
+        }
+      }
+    }, {
+      key: "videoCanvas",
+      value: function videoCanvas() {
+        var canvasType = this._stream.canvas || ["video"];
+        return paella.getVideoCanvas(canvasType);
+      }
+    }, {
+      key: "webGlDidLoad",
+      value: function webGlDidLoad() {
+        return Promise.resolve();
+      }
+    }, {
+      key: "load",
+      value: function load() {
+        var _this30 = this;
+
+        return new Promise(function (resolve, reject) {
+          var sources = _this30._stream.sources[_this30._streamName];
+
+          if (_this30._currentQuality === null && _this30._videoQualityStrategy) {
+            _this30._currentQuality = _this30._videoQualityStrategy.getQualityIndex(sources);
+          }
+
+          var stream = _this30._currentQuality < sources.length ? sources[_this30._currentQuality] : null;
+          _this30.video.innerText = "";
+
+          _this30.videoCanvas().then(function (CanvasClass) {
+            var canvasInstance = new CanvasClass(stream);
+            _this30._zoomAvailable = canvasInstance.allowZoom();
+
+            if (window.$paella_bg && bg.app && canvasInstance instanceof bg.app.WindowController) {
+              // WebGL canvas
+              _this30.domElementType = 'canvas';
+
+              if (stream) {
+                // WebGL engine load callback
+                return new Promise(function (webglResolve, webglReject) {
+                  _this30.webGlDidLoad().then(function () {
+                    _this30.canvasController = null;
+                    var mainLoop = bg.app.MainLoop.singleton;
+                    mainLoop.updateMode = bg.app.FrameUpdate.AUTO;
+                    mainLoop.canvas = _this30.domElement;
+                    mainLoop.run(canvasInstance);
+                    return _this30.loadVideoStream(canvasInstance, stream);
+                  }).then(function (canvas) {
+                    webglResolve(canvas);
+                  })["catch"](function (err) {
+                    return webglReject(err);
+                  });
+                });
+              } else {
+                Promise.reject(new Error("Invalid stream data."));
+              }
+            } else {
+              return _this30.loadVideoStream(canvasInstance, stream);
+            }
+          }).then(function (canvas) {
+            if (canvas && paella.WebGLCanvas && canvas instanceof paella.WebGLCanvas) {
+              _this30._video = canvas.video;
+
+              _this30._video.pause();
+
+              _this30._configureVideoEvents(_this30.video);
+            }
+
+            resolve(stream);
+          })["catch"](function (err) {
+            reject(err);
+          });
+        });
+      }
+    }, {
+      key: "loadVideoStream",
+      value: function loadVideoStream(canvasInstance, stream) {
+        return canvasInstance.loadVideo(this, stream);
+      }
+    }, {
+      key: "disable",
+      value: function disable(isMainAudioPlayer) {//if (isMainAudioPlayer) return;
+        //this._isDisabled = true;
+        //this._playState = !this.video.paused;
+        //this.video.pause();
+      }
+    }, {
+      key: "enable",
+      value: function enable(isMainAudioPlayer) {//if (isMainAudioPlayer) return;
+        //this._isDisabled = false;
+        //if (this._playState) {
+        //	this.video.play();
+        //}
+      }
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        var _this31 = this;
+
+        return new Promise(function (resolve, reject) {
+          setTimeout(function () {
+            var result = [];
+            var sources = _this31._stream.sources[_this31._streamName];
+            var index = -1;
+            sources.forEach(function (s) {
+              index++;
+              result.push(_this31._getQualityObject(index, s));
+            });
+            resolve(result);
+          }, 10);
+        });
+      }
+    }, {
+      key: "setQuality",
+      value: function setQuality(index) {
+        var _this32 = this;
+
+        return new Promise(function (resolve) {
+          var paused = _this32.video.paused;
+          var sources = _this32._stream.sources[_this32._streamName];
+          _this32._currentQuality = index < sources.length ? index : 0;
+          var currentTime = _this32.video.currentTime;
+          var This = _this32;
+
+          var onSeek = function onSeek() {
+            This.unFreeze().then(function () {
+              resolve();
+              This.video.removeEventListener('seeked', onSeek, false);
+            });
+          };
+
+          _this32.freeze().then(function () {
+            return _this32.load();
+          }).then(function () {
+            if (!paused) {
+              _this32.play();
+            }
+
+            _this32.video.addEventListener('seeked', onSeek);
+
+            _this32.video.currentTime = currentTime;
+          });
+        });
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        var _this33 = this;
+
+        return new Promise(function (resolve) {
+          resolve(_this33._getQualityObject(_this33._currentQuality, _this33._stream.sources[_this33._streamName][_this33._currentQuality]));
+        });
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        var _this34 = this;
+
+        return this._deferredAction(function () {
+          if (!_this34._isDisabled) {
+            return _this34.video.play();
+          } else {
+            return Promise.resolve();
+          }
+        });
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        var _this35 = this;
+
+        return this._deferredAction(function () {
+          if (!_this35._isDisabled) {
+            return _this35.video.pause();
+          } else {
+            return Promise.resolve();
+          }
+        });
+      }
+    }, {
+      key: "isPaused",
+      value: function isPaused() {
+        var _this36 = this;
+
+        return this._deferredAction(function () {
+          return _this36.video.paused;
+        });
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        var _this37 = this;
+
+        return this._deferredAction(function () {
+          return _this37.video.duration;
+        });
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        var _this38 = this;
+
+        return this._deferredAction(function () {
+          (time == 0 || time) && !isNaN(time) && (_this38.video.currentTime = time);
+        });
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        var _this39 = this;
+
+        return this._deferredAction(function () {
+          return _this39.video.currentTime;
+        });
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(volume) {
+        var _this40 = this;
+
+        return this._deferredAction(function () {
+          _this40.video.volume = volume;
+
+          if (volume == 0) {
+            _this40.video.setAttribute("muted", "muted");
+
+            _this40.video.muted = true;
+          } else {
+            _this40.video.removeAttribute("muted");
+
+            _this40.video.muted = false;
+          }
+        });
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        var _this41 = this;
+
+        return this._deferredAction(function () {
+          return _this41.video.volume;
+        });
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        var _this42 = this;
+
+        return this._deferredAction(function () {
+          _this42._playbackRate = rate;
+          _this42.video.playbackRate = rate;
+        });
+      }
+    }, {
+      key: "playbackRate",
+      value: function playbackRate() {
+        var _this43 = this;
+
+        return this._deferredAction(function () {
+          return _this43.video.playbackRate;
+        });
+      }
+    }, {
+      key: "supportAutoplay",
+      value: function supportAutoplay() {
+        var macOS10_12_safari = paella.utils.userAgent.system.MacOS && paella.utils.userAgent.system.Version.minor >= 12 && paella.utils.userAgent.browser.Safari;
+        var iOS = paella.utils.userAgent.system.iOS; // Autoplay does not work from Chrome version 64
+
+        var chrome_v64 = paella.utils.userAgent.browser.Chrome && paella.utils.userAgent.browser.Version.major == 64;
+
+        if (macOS10_12_safari || iOS || chrome_v64) {
+          return false;
+        } else {
+          return true;
+        }
+      }
+    }, {
+      key: "goFullScreen",
+      value: function goFullScreen() {
+        var _this44 = this;
+
+        return this._deferredAction(function () {
+          var elem = _this44.video;
+
+          if (elem.requestFullscreen) {
+            elem.requestFullscreen();
+          } else if (elem.msRequestFullscreen) {
+            elem.msRequestFullscreen();
+          } else if (elem.mozRequestFullScreen) {
+            elem.mozRequestFullScreen();
+          } else if (elem.webkitEnterFullscreen) {
+            elem.webkitEnterFullscreen();
+          }
+        });
+      }
+    }, {
+      key: "unFreeze",
+      value: function unFreeze() {
+        var _this45 = this;
+
+        return this._deferredAction(function () {
+          var c = document.getElementById(_this45.video.id + "canvas");
+
+          if (c) {
+            $(c).remove();
+          }
+        });
+      }
+    }, {
+      key: "freeze",
+      value: function freeze() {
+        var This = this;
+        return this._deferredAction(function () {
+          var canvas = document.createElement("canvas");
+          canvas.id = This.video.id + "canvas";
+          canvas.className = "freezeFrame";
+          canvas.width = This.video.videoWidth;
+          canvas.height = This.video.videoHeight;
+          canvas.style.cssText = This.video.style.cssText;
+          canvas.style.zIndex = 2;
+          var ctx = canvas.getContext("2d");
+          ctx.drawImage(This.video, 0, 0, Math.ceil(canvas.width / 16) * 16, Math.ceil(canvas.height / 16) * 16); //Draw image
+
+          This.video.parentElement.appendChild(canvas);
+        });
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        this._callUnloadEvent();
+
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "getDimensions",
+      value: function getDimensions() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "video",
+      get: function get() {
+        if (this.domElementType == 'video') {
+          return this.domElement;
+        } else {
+          this._video = this._video || document.createElement('video');
+          return this._video;
+        }
+      }
+    }, {
+      key: "ready",
+      get: function get() {
+        // Fix Firefox specific issue when video reaches the end
+        if (paella.utils.userAgent.browser.Firefox && this.video.currentTime == this.video.duration && this.video.readyState == 2) {
+          this.video.currentTime = 0;
+        }
+
+        return this.video.readyState >= 3;
+      } // Synchronous functions: returns null if the resource is not loaded. Use only if 
+      // the resource is loaded.
+
+    }, {
+      key: "currentTimeSync",
+      get: function get() {
+        return this.ready ? this.video.currentTime : null;
+      }
+    }, {
+      key: "volumeSync",
+      get: function get() {
+        return this.ready ? this.video.volume : null;
+      }
+    }, {
+      key: "pausedSync",
+      get: function get() {
+        return this.ready ? this.video.paused : null;
+      }
+    }, {
+      key: "durationSync",
+      get: function get() {
+        return this.ready ? this.video.duration : null;
+      }
+    }]);
+
+    return Html5Video;
+  }(paella.VideoElementBase);
+
+  paella.Html5Video = Html5Video;
+
+  paella.Html5Video.IsAutoplaySupported = function () {
+    var debug = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+    return new Promise(function (resolve) {
+      // Create video element to test autoplay
+      var video = document.createElement('video');
+      video.src = 'data:video/mp4;base64,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';
+      video.load(); //video.style.display = 'none';
+
+      if (debug) {
+        video.style = "position: fixed; top: 0px; right: 0px; z-index: 1000000;";
+        document.body.appendChild(video);
+      } else {
+        video.style.display = 'none';
+      }
+
+      video.playing = false;
+      video.play().then(function (status) {
+        resolve(true);
+      })["catch"](function (err) {
+        resolve(false);
+      });
+    });
+  };
+
+  var Html5VideoFactory =
+  /*#__PURE__*/
+  function () {
+    function Html5VideoFactory() {
+      _classCallCheck(this, Html5VideoFactory);
+    }
+
+    _createClass(Html5VideoFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        try {
+          if (paella.videoFactories.Html5VideoFactory.s_instances > 0 && base.userAgent.system.iOS && paella.utils.userAgent.system.Version.major <= 10 && paella.utils.userAgent.system.Version.minor < 3) {
+            return false;
+          }
+
+          for (var key in streamData.sources) {
+            if (key == 'mp4' || key == 'mp3') return true;
+          }
+        } catch (e) {}
+
+        return false;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        ++paella.videoFactories.Html5VideoFactory.s_instances;
+        return new paella.Html5Video(id, streamData, rect.x, rect.y, rect.w, rect.h);
+      }
+    }]);
+
+    return Html5VideoFactory;
+  }();
+
+  paella.videoFactories.Html5VideoFactory = Html5VideoFactory;
+  paella.videoFactories.Html5VideoFactory.s_instances = 0;
+
+  var ImageVideo =
+  /*#__PURE__*/
+  function (_paella$VideoElementB3) {
+    _inherits(ImageVideo, _paella$VideoElementB3);
+
+    function ImageVideo(id, stream, left, top, width, height) {
+      var _this46;
+
+      _classCallCheck(this, ImageVideo);
+
+      _this46 = _possibleConstructorReturn(this, _getPrototypeOf(ImageVideo).call(this, id, stream, 'img', left, top, width, height));
+      _this46._posterFrame = null;
+      _this46._currentQuality = null;
+      _this46._currentTime = 0;
+      _this46._duration = 0;
+      _this46._ended = false;
+      _this46._playTimer = null;
+      _this46._playbackRate = 1;
+      _this46._frameArray = null;
+
+      _this46._stream.sources.image.sort(function (a, b) {
+        return a.res.h - b.res.h;
+      });
+
+      return _this46;
+    }
+
+    _createClass(ImageVideo, [{
+      key: "_deferredAction",
+      value: function _deferredAction(action) {
+        var _this47 = this;
+
+        return new Promise(function (_resolve) {
+          if (_this47.ready) {
+            _resolve(action());
+          } else {
+            var _resolve = function resolve() {
+              _this47._ready = true;
+
+              _resolve(action());
+            };
+
+            $(_this47.video).bind('paella:imagevideoready', _resolve);
+          }
+        });
+      }
+    }, {
+      key: "_getQualityObject",
+      value: function _getQualityObject(index, s) {
+        return {
+          index: index,
+          res: s.res,
+          src: s.src,
+          toString: function toString() {
+            return Number(this.res.w) + "x" + Number(this.res.h);
+          },
+          shortLabel: function shortLabel() {
+            return this.res.h + "p";
+          },
+          compare: function compare(q2) {
+            return Number(this.res.w) * Number(this.res.h) - Number(q2.res.w) * Number(q2.res.h);
+          }
+        };
+      }
+    }, {
+      key: "_loadCurrentFrame",
+      value: function _loadCurrentFrame() {
+        var This = this;
+
+        if (this._frameArray) {
+          var frame = this._frameArray[0];
+
+          this._frameArray.some(function (f) {
+            if (This._currentTime < f.time) {
+              return true;
+            } else {
+              frame = f.src;
+            }
+          });
+
+          this.img.src = frame;
+        }
+      } // Initialization functions
+
+      /*allowZoom:function() {
+      	return false;
+      },*/
+
+    }, {
+      key: "getVideoData",
+      value: function getVideoData() {
+        var _this48 = this;
+
+        return new Promise(function (resolve) {
+          _this48._deferredAction(function () {
+            var imgStream = _this48._stream.sources.image[_this48._currentQuality];
+            var videoData = {
+              duration: _this48._duration,
+              currentTime: _this48._currentTime,
+              volume: 0,
+              paused: _this48._paused,
+              ended: _this48._ended,
+              res: {
+                w: imgStream.res.w,
+                h: imgStream.res.h
+              }
+            };
+            resolve(videoData);
+          });
+        });
+      }
+    }, {
+      key: "setPosterFrame",
+      value: function setPosterFrame(url) {
+        this._posterFrame = url;
+      }
+    }, {
+      key: "setAutoplay",
+      value: function setAutoplay(auto) {
+        this._autoplay = auto;
+
+        if (auto && this.video) {
+          this.video.setAttribute("autoplay", auto);
+        }
+      }
+    }, {
+      key: "load",
+      value: function load() {
+        var This = this;
+        var sources = this._stream.sources.image;
+
+        if (this._currentQuality === null && this._videoQualityStrategy) {
+          this._currentQuality = this._videoQualityStrategy.getQualityIndex(sources);
+        }
+
+        var stream = this._currentQuality < sources.length ? sources[this._currentQuality] : null;
+
+        if (stream) {
+          this._frameArray = [];
+
+          for (var key in stream.frames) {
+            var time = Math.floor(Number(key.replace("frame_", "")));
+
+            this._frameArray.push({
+              src: stream.frames[key],
+              time: time
+            });
+          }
+
+          this._frameArray.sort(function (a, b) {
+            return a.time - b.time;
+          });
+
+          this._ready = true;
+          this._currentTime = 0;
+          this._duration = stream.duration;
+
+          this._loadCurrentFrame();
+
+          paella.events.trigger("paella:imagevideoready");
+          return this._deferredAction(function () {
+            return stream;
+          });
+        } else {
+          return paella_DeferredRejected(new Error("Could not load video: invalid quality stream index"));
+        }
+      }
+    }, {
+      key: "supportAutoplay",
+      value: function supportAutoplay() {
+        return true;
+      }
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        var _this49 = this;
+
+        return new Promise(function (resolve) {
+          setTimeout(function () {
+            var result = [];
+            var sources = _this49._stream.sources[_this49._streamName];
+            var index = -1;
+            sources.forEach(function (s) {
+              index++;
+              result.push(_this49._getQualityObject(index, s));
+            });
+            resolve(result);
+          }, 10);
+        });
+      }
+    }, {
+      key: "setQuality",
+      value: function setQuality(index) {
+        var _this50 = this;
+
+        return new Promise(function (resolve) {
+          var paused = _this50._paused;
+          var sources = _this50._stream.sources.image;
+          _this50._currentQuality = index < sources.length ? index : 0;
+          var currentTime = _this50._currentTime;
+
+          _this50.load().then(function () {
+            this._loadCurrentFrame();
+
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        var _this51 = this;
+
+        return new Promise(function (resolve) {
+          resolve(_this51._getQualityObject(_this51._currentQuality, _this51._stream.sources.image[_this51._currentQuality]));
+        });
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        var This = this;
+        return this._deferredAction(function () {
+          This._playTimer = new base.Timer(function () {
+            This._currentTime += 0.25 * This._playbackRate;
+
+            This._loadCurrentFrame();
+          }, 250);
+          This._playTimer.repeat = true;
+        });
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        var This = this;
+        return this._deferredAction(function () {
+          This._playTimer.repeat = false;
+          This._playTimer = null;
+        });
+      }
+    }, {
+      key: "isPaused",
+      value: function isPaused() {
+        var _this52 = this;
+
+        return this._deferredAction(function () {
+          return _this52._paused;
+        });
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        var _this53 = this;
+
+        return this._deferredAction(function () {
+          return _this53._duration;
+        });
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        var _this54 = this;
+
+        return this._deferredAction(function () {
+          _this54._currentTime = time;
+
+          _this54._loadCurrentFrame();
+        });
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        var _this55 = this;
+
+        return this._deferredAction(function () {
+          return _this55._currentTime;
+        });
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(volume) {
+        return this._deferredAction(function () {// No audo sources in image video
+        });
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        return this._deferredAction(function () {
+          // No audo sources in image video
+          return 0;
+        });
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        var _this56 = this;
+
+        return this._deferredAction(function () {
+          _this56._playbackRate = rate;
+        });
+      }
+    }, {
+      key: "playbackRate",
+      value: function playbackRate() {
+        var _this57 = this;
+
+        return this._deferredAction(function () {
+          return _this57._playbackRate;
+        });
+      }
+    }, {
+      key: "goFullScreen",
+      value: function goFullScreen() {
+        var _this58 = this;
+
+        return this._deferredAction(function () {
+          var elem = _this58.img;
+
+          if (elem.requestFullscreen) {
+            elem.requestFullscreen();
+          } else if (elem.msRequestFullscreen) {
+            elem.msRequestFullscreen();
+          } else if (elem.mozRequestFullScreen) {
+            elem.mozRequestFullScreen();
+          } else if (elem.webkitEnterFullscreen) {
+            elem.webkitEnterFullscreen();
+          }
+        });
+      }
+    }, {
+      key: "unFreeze",
+      value: function unFreeze() {
+        return this._deferredAction(function () {});
+      }
+    }, {
+      key: "freeze",
+      value: function freeze() {
+        return this._deferredAction(function () {});
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        this._callUnloadEvent();
+
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "getDimensions",
+      value: function getDimensions() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "img",
+      get: function get() {
+        return this.domElement;
+      }
+    }, {
+      key: "imgStream",
+      get: function get() {
+        this._stream.sources.image[this._currentQuality];
+      }
+    }, {
+      key: "_paused",
+      get: function get() {
+        return this._playTimer == null;
+      }
+    }]);
+
+    return ImageVideo;
+  }(paella.VideoElementBase);
+
+  paella.ImageVideo = ImageVideo;
+
+  var ImageVideoFactory =
+  /*#__PURE__*/
+  function () {
+    function ImageVideoFactory() {
+      _classCallCheck(this, ImageVideoFactory);
+    }
+
+    _createClass(ImageVideoFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        try {
+          for (var key in streamData.sources) {
+            if (key == 'image') return true;
+          }
+        } catch (e) {}
+
+        return false;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        return new paella.ImageVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+      }
+    }]);
+
+    return ImageVideoFactory;
+  }();
+
+  paella.videoFactories.ImageVideoFactory = ImageVideoFactory;
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var BackgroundContainer =
+  /*#__PURE__*/
+  function (_paella$DomNode4) {
+    _inherits(BackgroundContainer, _paella$DomNode4);
+
+    function BackgroundContainer(id, image) {
+      var _this59;
+
+      _classCallCheck(this, BackgroundContainer);
+
+      _this59 = _possibleConstructorReturn(this, _getPrototypeOf(BackgroundContainer).call(this, 'img', id, {
+        position: 'relative',
+        top: '0px',
+        left: '0px',
+        right: '0px',
+        bottom: '0px',
+        zIndex: GlobalParams.background.zIndex
+      }));
+
+      _this59.domElement.setAttribute('src', image);
+
+      _this59.domElement.setAttribute('alt', '');
+
+      _this59.domElement.setAttribute('width', '100%');
+
+      _this59.domElement.setAttribute('height', '100%');
+
+      return _this59;
+    }
+
+    _createClass(BackgroundContainer, [{
+      key: "setImage",
+      value: function setImage(image) {
+        this.domElement.setAttribute('src', image);
+      }
+    }]);
+
+    return BackgroundContainer;
+  }(paella.DomNode);
+
+  paella.BackgroundContainer = BackgroundContainer;
+
+  var VideoOverlay =
+  /*#__PURE__*/
+  function (_paella$DomNode5) {
+    _inherits(VideoOverlay, _paella$DomNode5);
+
+    _createClass(VideoOverlay, [{
+      key: "size",
+      get: function get() {
+        if (!this._size) {
+          this._size = {
+            w: 1280,
+            h: 720
+          };
+        }
+
+        return this._size;
+      }
+    }]);
+
+    function VideoOverlay() {
+      var _this60;
+
+      _classCallCheck(this, VideoOverlay);
+
+      var style = {
+        position: 'absolute',
+        left: '0px',
+        right: '0px',
+        top: '0px',
+        bottom: '0px',
+        overflow: 'hidden',
+        zIndex: 10
+      };
+      _this60 = _possibleConstructorReturn(this, _getPrototypeOf(VideoOverlay).call(this, 'div', 'overlayContainer', style));
+
+      _this60.domElement.setAttribute("role", "main");
+
+      return _this60;
+    }
+
+    _createClass(VideoOverlay, [{
+      key: "_generateId",
+      value: function _generateId() {
+        return Math.ceil(Date.now() * Math.random());
+      }
+    }, {
+      key: "enableBackgroundMode",
+      value: function enableBackgroundMode() {
+        this.domElement.className = 'overlayContainer background';
+      }
+    }, {
+      key: "disableBackgroundMode",
+      value: function disableBackgroundMode() {
+        this.domElement.className = 'overlayContainer';
+      }
+    }, {
+      key: "clear",
+      value: function clear() {
+        this.domElement.innerText = "";
+      }
+    }, {
+      key: "getVideoRect",
+      value: function getVideoRect(index) {
+        return paella.player.videoContainer.getVideoRect(index);
+      }
+    }, {
+      key: "addText",
+      value: function addText(text, rect, isDebug) {
+        var textElem = document.createElement('div');
+        textElem.innerText = text;
+        textElem.className = "videoOverlayText";
+        if (isDebug) textElem.style.backgroundColor = "red";
+        return this.addElement(textElem, rect);
+      }
+    }, {
+      key: "addElement",
+      value: function addElement(element, rect) {
+        this.domElement.appendChild(element);
+        element.style.position = 'absolute';
+        element.style.left = this.getHSize(rect.left) + '%';
+        element.style.top = this.getVSize(rect.top) + '%';
+        element.style.width = this.getHSize(rect.width) + '%';
+        element.style.height = this.getVSize(rect.height) + '%';
+        return element;
+      }
+    }, {
+      key: "getLayer",
+      value: function getLayer(id, zindex) {
+        id = id || this._generateId();
+        return $(this.domElement).find("#" + id)[0] || this.addLayer(id, zindex);
+      }
+    }, {
+      key: "addLayer",
+      value: function addLayer(id, zindex) {
+        zindex = zindex || 10;
+        var element = document.createElement('div');
+        element.className = "row";
+        element.id = id || this._generateId();
+        return this.addElement(element, {
+          left: 0,
+          top: 0,
+          width: 1280,
+          height: 720
+        });
+      }
+    }, {
+      key: "removeLayer",
+      value: function removeLayer(id) {
+        var elem = $(this.domElement).find("#" + id)[0];
+
+        if (elem) {
+          this.domElement.removeChild(elem);
+        }
+      }
+    }, {
+      key: "removeElement",
+      value: function removeElement(element) {
+        if (element) {
+          try {
+            this.domElement.removeChild(element);
+          } catch (e) {}
+        }
+      }
+    }, {
+      key: "getVSize",
+      value: function getVSize(px) {
+        return px * 100 / this.size.h;
+      }
+    }, {
+      key: "getHSize",
+      value: function getHSize(px) {
+        return px * 100 / this.size.w;
+      }
+    }]);
+
+    return VideoOverlay;
+  }(paella.DomNode);
+
+  paella.VideoOverlay = VideoOverlay;
+
+  var VideoWrapper =
+  /*#__PURE__*/
+  function (_paella$DomNode6) {
+    _inherits(VideoWrapper, _paella$DomNode6);
+
+    function VideoWrapper(id, left, top, width, height) {
+      var _this61;
+
+      _classCallCheck(this, VideoWrapper);
+
+      var relativeSize = new paella.RelativeVideoSize();
+      var percentTop = relativeSize.percentVSize(top) + '%';
+      var percentLeft = relativeSize.percentWSize(left) + '%';
+      var percentWidth = relativeSize.percentWSize(width) + '%';
+      var percentHeight = relativeSize.percentVSize(height) + '%';
+      var style = {
+        top: percentTop,
+        left: percentLeft,
+        width: percentWidth,
+        height: percentHeight,
+        position: 'absolute',
+        zIndex: GlobalParams.video.zIndex,
+        overflow: 'hidden'
+      };
+      _this61 = _possibleConstructorReturn(this, _getPrototypeOf(VideoWrapper).call(this, 'div', id, style));
+      _this61._rect = {
+        left: left,
+        top: top,
+        width: width,
+        height: height
+      };
+      _this61.domElement.className = "videoWrapper";
+      return _this61;
+    }
+
+    _createClass(VideoWrapper, [{
+      key: "setRect",
+      value: function setRect(rect, animate) {
+        this._rect = JSON.parse(JSON.stringify(rect));
+        var relativeSize = new paella.RelativeVideoSize();
+        var percentTop = relativeSize.percentVSize(rect.top) + '%';
+        var percentLeft = relativeSize.percentWSize(rect.left) + '%';
+        var percentWidth = relativeSize.percentWSize(rect.width) + '%';
+        var percentHeight = relativeSize.percentVSize(rect.height) + '%';
+        var style = {
+          top: percentTop,
+          left: percentLeft,
+          width: percentWidth,
+          height: percentHeight,
+          position: 'absolute'
+        };
+
+        if (animate) {
+          this.disableClassName();
+          var thisClass = this;
+          $(this.domElement).animate(style, 400, function () {
+            thisClass.enableClassName();
+            paella.events.trigger(paella.events.setComposition, {
+              video: thisClass
+            });
+          });
+          this.enableClassNameAfter(400);
+        } else {
+          $(this.domElement).css(style);
+          paella.events.trigger(paella.events.setComposition, {
+            video: this
+          });
+        }
+      }
+    }, {
+      key: "getRect",
+      value: function getRect() {
+        return this._rect;
+      }
+    }, {
+      key: "disableClassName",
+      value: function disableClassName() {
+        this.classNameBackup = this.domElement.className;
+        this.domElement.className = "";
+      }
+    }, {
+      key: "enableClassName",
+      value: function enableClassName() {
+        this.domElement.className = this.classNameBackup;
+      }
+    }, {
+      key: "enableClassNameAfter",
+      value: function enableClassNameAfter(millis) {
+        setTimeout("$('#" + this.domElement.id + "')[0].className = '" + this.classNameBackup + "'", millis);
+      }
+    }, {
+      key: "setVisible",
+      value: function setVisible(visible, animate) {
+        if (_typeof(visible == "string")) {
+          visible = /true/i.test(visible) ? true : false;
+        }
+
+        if (visible && animate) {
+          $(this.domElement).show();
+          $(this.domElement).animate({
+            opacity: 1.0
+          }, 300);
+        } else if (visible && !animate) {
+          $(this.domElement).show();
+        } else if (!visible && animate) {
+          $(this.domElement).animate({
+            opacity: 0.0
+          }, 300);
+        } else if (!visible && !animate) {
+          $(this.domElement).hide();
+        }
+      }
+    }, {
+      key: "setLayer",
+      value: function setLayer(layer) {
+        this.domElement.style.zIndex = layer;
+      }
+    }]);
+
+    return VideoWrapper;
+  }(paella.DomNode);
+
+  paella.VideoWrapper = VideoWrapper;
+  paella.SeekType = {
+    FULL: 1,
+    BACKWARDS_ONLY: 2,
+    FORWARD_ONLY: 3,
+    DISABLED: 4
+  };
+
+  var VideoContainerBase =
+  /*#__PURE__*/
+  function (_paella$DomNode7) {
+    _inherits(VideoContainerBase, _paella$DomNode7);
+
+    function VideoContainerBase(id) {
+      var _this62;
+
+      _classCallCheck(this, VideoContainerBase);
+
+      var style = {
+        position: 'absolute',
+        left: '0px',
+        right: '0px',
+        top: '0px',
+        bottom: '0px',
+        overflow: 'hidden'
+      };
+      _this62 = _possibleConstructorReturn(this, _getPrototypeOf(VideoContainerBase).call(this, 'div', id, style));
+      _this62._trimming = {
+        enabled: false,
+        start: 0,
+        end: 0
+      };
+      _this62.timeupdateEventTimer = null;
+      _this62.timeupdateInterval = 250;
+      _this62.masterVideoData = null;
+      _this62.slaveVideoData = null;
+      _this62.currentMasterVideoData = null;
+      _this62.currentSlaveVideoData = null;
+      _this62._force = false;
+      _this62._playOnClickEnabled = true;
+      _this62._seekDisabled = false;
+      _this62._seekType = paella.SeekType.FULL;
+      _this62._seekTimeLimit = 0;
+      _this62._attenuationEnabled = false;
+      $(_this62.domElement).click(function (evt) {
+        if (_this62.firstClick && base.userAgent.browser.IsMobileVersion) return;
+        if (_this62.firstClick && !_this62._playOnClickEnabled) return;
+        paella.player.videoContainer.paused().then(function (paused) {
+          // If some player needs mouse events support, the click is ignored
+          if (_this62.firstClick && _this62.streamProvider.videoPlayers.some(function (p) {
+            return p.canvasData.mouseEventsSupport;
+          })) {
+            return;
+          }
+
+          _this62.firstClick = true;
+
+          if (paused) {
+            paella.player.play();
+          } else {
+            paella.player.pause();
+          }
+        });
+      });
+
+      _this62.domElement.addEventListener("touchstart", function (event) {
+        if (paella.player.controls) {
+          paella.player.controls.restartHideTimer();
+        }
+      });
+
+      var endedTimer = null;
+      paella.events.bind(paella.events.endVideo, function (event) {
+        if (endedTimer) {
+          clearTimeout(endedTimer);
+          endedTimer = null;
+        }
+
+        endedTimer = setTimeout(function () {
+          paella.events.trigger(paella.events.ended);
+        }, 1000);
+      });
+      return _this62;
+    }
+
+    _createClass(VideoContainerBase, [{
+      key: "triggerTimeupdate",
+      value: function triggerTimeupdate() {
+        var _this63 = this;
+
+        var paused = 0;
+        var duration = 0;
+        this.paused().then(function (p) {
+          paused = p;
+          return _this63.duration();
+        }).then(function (d) {
+          duration = d;
+          return _this63.currentTime();
+        }).then(function (currentTime) {
+          if (!paused || _this63._force) {
+            _this63._seekTimeLimit = currentTime > _this63._seekTimeLimit ? currentTime : _this63._seekTimeLimit;
+            _this63._force = false;
+            paella.events.trigger(paella.events.timeupdate, {
+              videoContainer: _this63,
+              currentTime: currentTime,
+              duration: duration
+            });
+          }
+        });
+      }
+    }, {
+      key: "startTimeupdate",
+      value: function startTimeupdate() {
+        var _this64 = this;
+
+        this.timeupdateEventTimer = new Timer(function (timer) {
+          _this64.triggerTimeupdate();
+        }, this.timeupdateInterval);
+        this.timeupdateEventTimer.repeat = true;
+      }
+    }, {
+      key: "stopTimeupdate",
+      value: function stopTimeupdate() {
+        if (this.timeupdateEventTimer) {
+          this.timeupdateEventTimer.repeat = false;
+        }
+
+        this.timeupdateEventTimer = null;
+      }
+    }, {
+      key: "enablePlayOnClick",
+      value: function enablePlayOnClick() {
+        this._playOnClickEnabled = true;
+      }
+    }, {
+      key: "disablePlayOnClick",
+      value: function disablePlayOnClick() {
+        this._playOnClickEnabled = false;
+      }
+    }, {
+      key: "isPlayOnClickEnabled",
+      value: function isPlayOnClickEnabled() {
+        return this._playOnClickEnabled;
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        this.streamProvider.startVideoSync(this.audioPlayer);
+        this.startTimeupdate();
+        setTimeout(function () {
+          return paella.events.trigger(paella.events.play);
+        }, 50);
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        paella.events.trigger(paella.events.pause);
+        this.stopTimeupdate();
+        this.streamProvider.stopVideoSync();
+      }
+    }, {
+      key: "seekTo",
+      value: function seekTo(newPositionPercent) {
+        var _this65 = this;
+
+        return new Promise(function (resolve, reject) {
+          var time = 0;
+          paella.player.videoContainer.currentTime().then(function (t) {
+            time = t;
+            return paella.player.videoContainer.duration();
+          }).then(function (duration) {
+            if (_this65._seekTimeLimit > 0 && _this65._seekType == paella.SeekType.BACKWARDS_ONLY) {
+              time = _this65._seekTimeLimit;
+            }
+
+            var currentPercent = time / duration * 100;
+
+            switch (_this65._seekType) {
+              case paella.SeekType.FULL:
+                break;
+
+              case paella.SeekType.BACKWARDS_ONLY:
+                if (newPositionPercent > currentPercent) {
+                  reject(new Error("Warning: Seek is disabled"));
+                  return;
+                }
+
+                break;
+
+              case paella.SeekType.FORWARD_ONLY:
+                if (newPositionPercent < currentPercent) {
+                  reject(new Error("Warning: Seek is disabled"));
+                  return;
+                }
+
+                break;
+
+              case paella.SeekType.DISABLED:
+                reject(new Error("Warning: Seek is disabled"));
+                return;
+            }
+
+            _this65.setCurrentPercent(newPositionPercent).then(function (timeData) {
+              _this65._force = true;
+
+              _this65.triggerTimeupdate();
+
+              paella.events.trigger(paella.events.seekToTime, {
+                newPosition: timeData.time
+              });
+              paella.events.trigger(paella.events.seekTo, {
+                newPositionPercent: newPositionPercent
+              });
+              resolve();
+            });
+          });
+        });
+      }
+    }, {
+      key: "seekToTime",
+      value: function seekToTime(time) {
+        var _this66 = this;
+
+        return new Promise(function (resolve, reject) {
+          paella.player.videoContainer.currentTime().then(function (currentTime) {
+            if (_this66._seekTimeLimit && _this66._seekType == paella.SeekType.BACKWARDS_ONLY) {
+              currentTime = _this66._seekTimeLimit;
+            }
+
+            switch (_this66._seekType) {
+              case paella.SeekType.FULL:
+                break;
+
+              case paella.SeekType.BACKWARDS_ONLY:
+                if (time > currentTime) {
+                  reject(new Error("Warning: Seek is disabled"));
+                  return;
+                }
+
+                break;
+
+              case paella.SeekType.FORWARD_ONLY:
+                if (time < currentTime) {
+                  reject(new Error("Warning: Seek is disabled"));
+                  return;
+                }
+
+                break;
+
+              case paella.SeekType.DISABLED:
+                reject(new Error("Warning: Seek is disabled"));
+                return;
+            }
+
+            _this66.setCurrentTime(time).then(function (timeData) {
+              _this66._force = true;
+
+              _this66.triggerTimeupdate();
+
+              var percent = timeData.time * 100 / timeData.duration;
+              paella.events.trigger(paella.events.seekToTime, {
+                newPosition: timeData.time
+              });
+              paella.events.trigger(paella.events.seekTo, {
+                newPositionPercent: percent
+              });
+            });
+          });
+        });
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(params) {
+        paella.events.trigger(paella.events.setPlaybackRate, {
+          rate: params
+        });
+      }
+    }, {
+      key: "mute",
+      value: function mute() {}
+    }, {
+      key: "unmute",
+      value: function unmute() {}
+    }, {
+      key: "setVolume",
+      value: function setVolume(params) {}
+    }, {
+      key: "volume",
+      value: function volume() {
+        return 1;
+      }
+    }, {
+      key: "trimStart",
+      value: function trimStart() {
+        var _this67 = this;
+
+        return new Promise(function (resolve) {
+          resolve(_this67._trimming.start);
+        });
+      }
+    }, {
+      key: "trimEnd",
+      value: function trimEnd() {
+        var _this68 = this;
+
+        return new Promise(function (resolve) {
+          resolve(_this68._trimming.end);
+        });
+      }
+    }, {
+      key: "trimEnabled",
+      value: function trimEnabled() {
+        var _this69 = this;
+
+        return new Promise(function (resolve) {
+          resolve(_this69._trimming.enabled);
+        });
+      }
+    }, {
+      key: "trimming",
+      value: function trimming() {
+        var _this70 = this;
+
+        return new Promise(function (resolve) {
+          resolve(_this70._trimming);
+        });
+      }
+    }, {
+      key: "enableTrimming",
+      value: function enableTrimming() {
+        this._trimming.enabled = true;
+        var cap = paella.captions.getActiveCaptions();
+        if (cap !== undefined) paella.plugins.captionsPlugin.buildBodyContent(cap._captions, "list");
+        paella.events.trigger(paella.events.setTrim, {
+          trimEnabled: this._trimming.enabled,
+          trimStart: this._trimming.start,
+          trimEnd: this._trimming.end
+        });
+      }
+    }, {
+      key: "disableTrimming",
+      value: function disableTrimming() {
+        this._trimming.enabled = false;
+        var cap = paella.captions.getActiveCaptions();
+        if (cap !== undefined) paella.plugins.captionsPlugin.buildBodyContent(cap._captions, "list");
+        paella.events.trigger(paella.events.setTrim, {
+          trimEnabled: this._trimming.enabled,
+          trimStart: this._trimming.start,
+          trimEnd: this._trimming.end
+        });
+      }
+    }, {
+      key: "setTrimming",
+      value: function setTrimming(start, end) {
+        var _this71 = this;
+
+        return new Promise(function (resolve) {
+          var currentTime = 0;
+
+          _this71.currentTime(true).then(function (c) {
+            currentTime = c;
+            return _this71.duration();
+          }).then(function (duration) {
+            _this71._trimming.start = Math.floor(start);
+            _this71._trimming.end = Math.floor(end);
+
+            if (_this71._trimming.enabled) {
+              if (currentTime < _this71._trimming.start) {
+                _this71.setCurrentTime(0);
+              }
+
+              if (currentTime > _this71._trimming.end) {
+                _this71.setCurrentTime(duration);
+              }
+
+              var cap = paella.captions.getActiveCaptions();
+              if (cap !== undefined) paella.plugins.captionsPlugin.buildBodyContent(cap._captions, "list");
+            }
+
+            paella.events.trigger(paella.events.setTrim, {
+              trimEnabled: _this71._trimming.enabled,
+              trimStart: _this71._trimming.start,
+              trimEnd: _this71._trimming.end
+            });
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "setTrimmingStart",
+      value: function setTrimmingStart(start) {
+        return this.setTrimming(start, this._trimming.end);
+      }
+    }, {
+      key: "setTrimmingEnd",
+      value: function setTrimmingEnd(end) {
+        return this.setTrimming(this._trimming.start, end);
+      }
+    }, {
+      key: "setCurrentPercent",
+      value: function setCurrentPercent(percent) {
+        var _this72 = this;
+
+        var duration = 0;
+        return new Promise(function (resolve) {
+          _this72.duration().then(function (d) {
+            duration = d;
+            return _this72.trimming();
+          }).then(function (trimming) {
+            var position = 0;
+
+            if (trimming.enabled) {
+              var start = trimming.start;
+              var end = trimming.end;
+              duration = end - start;
+              var trimedPosition = percent * duration / 100;
+              position = parseFloat(trimedPosition);
+            } else {
+              position = percent * duration / 100;
+            }
+
+            return _this72.setCurrentTime(position);
+          }).then(function (timeData) {
+            resolve(timeData);
+          });
+        });
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        base.log.debug("VideoContainerBase.setCurrentTime(" + time + ")");
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        base.log.debug("VideoContainerBase.currentTime()");
+        return 0;
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        base.log.debug("VideoContainerBase.duration()");
+        return 0;
+      }
+    }, {
+      key: "paused",
+      value: function paused() {
+        base.log.debug("VideoContainerBase.paused()");
+        return true;
+      }
+    }, {
+      key: "setupVideo",
+      value: function setupVideo(onSuccess) {
+        base.log.debug("VideoContainerBase.setupVide()");
+      }
+    }, {
+      key: "isReady",
+      value: function isReady() {
+        base.log.debug("VideoContainerBase.isReady()");
+        return true;
+      }
+    }, {
+      key: "onresize",
+      value: function (_onresize) {
+        function onresize() {
+          return _onresize.apply(this, arguments);
+        }
+
+        onresize.toString = function () {
+          return _onresize.toString();
+        };
+
+        return onresize;
+      }(function () {
+        _get(_getPrototypeOf(VideoContainerBase.prototype), "onresize", this).call(this, onresize);
+      })
+    }, {
+      key: "attenuationEnabled",
+      set: function set(att) {
+        this._attenuationEnabled = att;
+        Array.from(paella.player.videoContainer.container.domElement.children).forEach(function (ch) {
+          if (ch.id == "overlayContainer") {
+            return;
+          }
+
+          if (att) {
+            $(ch).addClass("dimmed-element");
+          } else {
+            $(ch).removeClass("dimmed-element");
+          }
+        });
+      },
+      get: function get() {
+        return this._attenuationEnabled;
+      }
+    }, {
+      key: "seekType",
+      set: function set(type) {
+        switch (type) {
+          case paella.SeekType.FULL:
+          case paella.SeekType.BACKWARDS_ONLY:
+          case paella.SeekType.FORWARD_ONLY:
+          case paella.SeekType.DISABLED:
+            this._seekType = type;
+            paella.events.trigger(paella.events.seekAvailabilityChanged, {
+              type: type,
+              enabled: type == paella.SeekType.FULL,
+              disabled: type != paella.SeekType.FULL
+            });
+            break;
+
+          default:
+            throw new Error("Invalid seekType. Allowed seek types:\n\t\t\t\tpaella.SeekType.FULL\n\t\t\t\tpaella.SeekType.BACKWARDS_ONLY\n\t\t\t\tpaella.SeekType.FORWARD_ONLY\n\t\t\t\tpaella.SeekType.DISABLED");
+        }
+      },
+      get: function get() {
+        return this._seekType;
+      }
+    }]);
+
+    return VideoContainerBase;
+  }(paella.DomNode);
+
+  paella.VideoContainerBase = VideoContainerBase; // Profile frame strategies
+
+  var ProfileFrameStrategy =
+  /*#__PURE__*/
+  function () {
+    function ProfileFrameStrategy() {
+      _classCallCheck(this, ProfileFrameStrategy);
+    }
+
+    _createClass(ProfileFrameStrategy, [{
+      key: "valid",
+      value: function valid() {
+        return true;
+      }
+    }, {
+      key: "adaptFrame",
+      value: function adaptFrame(videoDimensions, frameRect) {
+        return frameRect;
+      }
+    }], [{
+      key: "Factory",
+      value: function Factory() {
+        var config = paella.player.config;
+
+        try {
+          var strategyClass = config.player.profileFrameStrategy;
+          var ClassObject = paella.utils.objectFromString(strategyClass);
+          var strategy = new ClassObject();
+
+          if (strategy instanceof paella.ProfileFrameStrategy) {
+            return strategy;
+          }
+        } catch (e) {}
+
+        return null;
+      }
+    }]);
+
+    return ProfileFrameStrategy;
+  }();
+
+  paella.ProfileFrameStrategy = ProfileFrameStrategy;
+
+  var LimitedSizeProfileFrameStrategy =
+  /*#__PURE__*/
+  function (_ProfileFrameStrategy) {
+    _inherits(LimitedSizeProfileFrameStrategy, _ProfileFrameStrategy);
+
+    function LimitedSizeProfileFrameStrategy() {
+      _classCallCheck(this, LimitedSizeProfileFrameStrategy);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(LimitedSizeProfileFrameStrategy).apply(this, arguments));
+    }
+
+    _createClass(LimitedSizeProfileFrameStrategy, [{
+      key: "adaptFrame",
+      value: function adaptFrame(videoDimensions, frameRect) {
+        if (videoDimensions.width < frameRect.width || videoDimensions.height < frameRect.height) {
+          var frameRectCopy = JSON.parse(JSON.stringify(frameRect));
+          frameRectCopy.width = videoDimensions.width;
+          frameRectCopy.height = videoDimensions.height;
+          var diff = {
+            w: frameRect.width - videoDimensions.width,
+            h: frameRect.height - videoDimensions.height
+          };
+          frameRectCopy.top = frameRectCopy.top + diff.h / 2;
+          frameRectCopy.left = frameRectCopy.left + diff.w / 2;
+          return frameRectCopy;
+        }
+
+        return frameRect;
+      }
+    }]);
+
+    return LimitedSizeProfileFrameStrategy;
+  }(ProfileFrameStrategy);
+
+  paella.LimitedSizeProfileFrameStrategy = LimitedSizeProfileFrameStrategy;
+
+  var StreamProvider =
+  /*#__PURE__*/
+  function () {
+    function StreamProvider(videoData) {
+      _classCallCheck(this, StreamProvider);
+
+      this._mainStream = null;
+      this._videoStreams = [];
+      this._audioStreams = [];
+      this._mainPlayer = null;
+      this._audioPlayer = null;
+      this._videoPlayers = [];
+      this._audioPlayers = [];
+      this._players = [];
+      this._autoplay = base.parameters.get('autoplay') == 'true' || this.isLiveStreaming;
+      this._startTime = 0;
+    }
+
+    _createClass(StreamProvider, [{
+      key: "init",
+      value: function init(videoData) {
+        var _this73 = this;
+
+        if (videoData.length == 0) throw Error("Empty video data.");
+        this._videoData = videoData;
+
+        if (!this._videoData.some(function (stream) {
+          return stream.role == "master";
+        })) {
+          this._videoData[0].role = "master";
+        }
+
+        this._videoData.forEach(function (stream, index) {
+          stream.type = stream.type || 'video';
+
+          if (stream.role == 'master') {
+            _this73._mainStream = stream;
+          }
+
+          if (stream.type == 'video') {
+            _this73._videoStreams.push(stream);
+          } else if (stream.type == 'audio') {
+            _this73._audioStreams.push(stream);
+          }
+        });
+
+        if (this._videoStreams.length == 0) {
+          throw new Error("No video streams found. Paella Player requires at least one video stream.");
+        } // Create video players
+
+
+        var autoplay = this.autoplay;
+
+        this._videoStreams.forEach(function (videoStream, index) {
+          var rect = {
+            x: 0,
+            y: 0,
+            w: 1280,
+            h: 720
+          };
+          var player = paella.videoFactory.getVideoObject("video_".concat(index), videoStream, rect);
+          player.setVideoQualityStrategy(_this73._qualityStrategy);
+          player.setAutoplay(autoplay);
+
+          if (videoStream == _this73._mainStream) {
+            _this73._mainPlayer = player;
+            _this73._audioPlayer = player;
+          } else {
+            player.setVolume(0);
+          }
+
+          _this73._videoPlayers.push(player);
+
+          _this73._players.push(player);
+        }); // Create audio player
+
+
+        this._audioStreams.forEach(function (audioStream, index) {
+          var player = paella.audioFactory.getAudioObject("audio_".concat(index), audioStream);
+          player.setAutoplay(autoplay);
+
+          if (player) {
+            _this73._audioPlayers.push(player);
+
+            _this73._players.push(player);
+          }
+        });
+      }
+    }, {
+      key: "startVideoSync",
+      value: function startVideoSync(syncProviderPlayer) {
+        var _this74 = this;
+
+        this._syncProviderPlayer = syncProviderPlayer;
+        this._audioPlayer = syncProviderPlayer; // The player that provides the synchronization is also used as main audio player.
+
+        this.stopVideoSync();
+        console.debug("Start sync to player:");
+        console.debug(this._syncProviderPlayer);
+        var maxDiff = 0.3;
+
+        var sync = function sync() {
+          _this74._syncProviderPlayer.currentTime().then(function (t) {
+            _this74.players.forEach(function (player) {
+              if (player != syncProviderPlayer && player.currentTimeSync != null && Math.abs(player.currentTimeSync - t) > maxDiff) {
+                console.debug("Sync player current time: ".concat(player.currentTimeSync, " to time ").concat(t));
+                console.debug(player);
+                player.setCurrentTime(t);
+              }
+            });
+          });
+
+          _this74._syncTimer = setTimeout(function () {
+            return sync();
+          }, 1000);
+        };
+
+        this._syncTimer = setTimeout(function () {
+          return sync();
+        }, 1000);
+      }
+    }, {
+      key: "stopVideoSync",
+      value: function stopVideoSync() {
+        if (this._syncTimer) {
+          console.debug("Stop video sync");
+          clearTimeout(this._syncTimer);
+          this._syncTimer = null;
+        }
+      }
+    }, {
+      key: "loadVideos",
+      value: function loadVideos() {
+        var promises = [];
+
+        this._players.forEach(function (player) {
+          promises.push(player.load());
+        });
+
+        return Promise.all(promises);
+      }
+    }, {
+      key: "callPlayerFunction",
+      value: function callPlayerFunction(fnName) {
+        var _this75 = this;
+
+        var promises = [];
+        var functionArguments = [];
+
+        for (var i = 1; i < arguments.length; ++i) {
+          functionArguments.push(arguments[i]);
+        }
+
+        this.players.forEach(function (player) {
+          promises.push(player[fnName].apply(player, functionArguments));
+        });
+        return new Promise(function (resolve, reject) {
+          Promise.all(promises).then(function () {
+            if (fnName == 'play' && !_this75._firstPlay) {
+              _this75._firstPlay = true;
+
+              if (_this75._startTime) {
+                _this75.players.forEach(function (p) {
+                  return p.setCurrentTime(_this75._startTime);
+                });
+              }
+            }
+
+            resolve();
+          })["catch"](function (err) {
+            reject(err);
+          });
+        });
+      }
+    }, {
+      key: "startTime",
+      get: function get() {
+        return this._startTime;
+      },
+      set: function set(s) {
+        this._startTime = s;
+      }
+    }, {
+      key: "isMonostream",
+      get: function get() {
+        return this._videoStreams.length == 1;
+      }
+    }, {
+      key: "mainStream",
+      get: function get() {
+        return this._mainStream;
+      }
+    }, {
+      key: "videoStreams",
+      get: function get() {
+        //return this._videoData;
+        return this._videoStreams;
+      }
+    }, {
+      key: "audioStreams",
+      get: function get() {
+        return this._audioStreams;
+      }
+    }, {
+      key: "streams",
+      get: function get() {
+        return this._videoStreams.concat(this._audioStreams);
+      }
+    }, {
+      key: "videoPlayers",
+      get: function get() {
+        return this._videoPlayers;
+      }
+    }, {
+      key: "audioPlayers",
+      get: function get() {
+        return this._audioPlayers;
+      }
+    }, {
+      key: "players",
+      get: function get() {
+        return this._videoPlayers.concat(this._audioPlayers);
+      }
+    }, {
+      key: "mainVideoPlayer",
+      get: function get() {
+        return this._mainPlayer;
+      }
+    }, {
+      key: "mainAudioPlayer",
+      get: function get() {
+        return this._audioPlayer;
+      }
+    }, {
+      key: "isLiveStreaming",
+      get: function get() {
+        return paella.player.isLiveStream();
+      }
+    }, {
+      key: "qualityStrategy",
+      set: function set(strategy) {
+        this._qualityStrategy = strategy;
+
+        this._videoPlayers.forEach(function (player) {
+          player.setVideoQualityStrategy(strategy);
+        });
+      },
+      get: function get() {
+        return this._qualityStrategy || null;
+      }
+    }, {
+      key: "autoplay",
+      get: function get() {
+        return this.supportAutoplay && this._autoplay;
+      },
+      set: function set(ap) {
+        if (!this.supportAutoplay || this.isLiveStreaming) return;
+        this._autoplay = ap;
+
+        if (this.videoPlayers) {
+          this.videoPlayers.forEach(function (player) {
+            return player.setAutoplay(ap);
+          });
+          this.audioPlayers.forEach(function (player) {
+            return player.setAutoplay(ap);
+          });
+        }
+      }
+    }, {
+      key: "supportAutoplay",
+      get: function get() {
+        return this.videoPlayers.every(function (player) {
+          return player.supportAutoplay();
+        });
+      }
+    }]);
+
+    return StreamProvider;
+  }();
+
+  paella.StreamProvider = StreamProvider;
+
+  function addVideoWrapper(id, videoPlayer) {
+    var wrapper = new paella.VideoWrapper(id);
+    wrapper.addNode(videoPlayer);
+    this.videoWrappers.push(wrapper);
+    this.container.addNode(wrapper);
+    return wrapper;
+  }
+
+  var VideoContainer =
+  /*#__PURE__*/
+  function (_paella$VideoContaine) {
+    _inherits(VideoContainer, _paella$VideoContaine);
+
+    _createClass(VideoContainer, [{
+      key: "streamProvider",
+      get: function get() {
+        return this._streamProvider;
+      }
+    }, {
+      key: "ready",
+      get: function get() {
+        return this._ready;
+      }
+    }, {
+      key: "isMonostream",
+      get: function get() {
+        return this._streamProvider.isMonostream;
+      }
+    }, {
+      key: "trimmingHandler",
+      get: function get() {
+        return this._trimmingHandler;
+      }
+    }, {
+      key: "videoWrappers",
+      get: function get() {
+        return this._videoWrappers;
+      }
+    }, {
+      key: "container",
+      get: function get() {
+        return this._container;
+      }
+    }, {
+      key: "profileFrameStrategy",
+      get: function get() {
+        return this._profileFrameStrategy;
+      }
+    }, {
+      key: "sourceData",
+      get: function get() {
+        return this._sourceData;
+      }
+    }]);
+
+    function VideoContainer(id) {
+      var _this76;
+
+      _classCallCheck(this, VideoContainer);
+
+      _this76 = _possibleConstructorReturn(this, _getPrototypeOf(VideoContainer).call(this, id));
+      _this76._streamProvider = new paella.StreamProvider();
+      _this76._ready = false;
+      _this76._videoWrappers = [];
+      _this76._container = new paella.DomNode('div', 'playerContainer_videoContainer_container', {
+        position: 'relative',
+        display: 'block',
+        marginLeft: 'auto',
+        marginRight: 'auto',
+        width: '1024px',
+        height: '567px'
+      });
+
+      _this76._container.domElement.setAttribute('role', 'main');
+
+      _this76.addNode(_this76._container);
+
+      _this76.overlayContainer = new paella.VideoOverlay(_this76.domElement);
+
+      _this76.container.addNode(_this76.overlayContainer);
+
+      _this76.setProfileFrameStrategy(paella.ProfileFrameStrategy.Factory());
+
+      _this76.setVideoQualityStrategy(paella.VideoQualityStrategy.Factory());
+
+      _this76._audioTag = paella.player.config.player.defaultAudioTag || paella.dictionary.currentLanguage();
+      _this76._audioPlayer = null; // Initial volume level
+
+      _this76._volume = paella.utils.cookies.get("volume") ? Number(paella.utils.cookies.get("volume")) : 1;
+      _this76._muted = false;
+      return _this76;
+    } // Playback and status functions
+
+
+    _createClass(VideoContainer, [{
+      key: "play",
+      value: function play() {
+        var _this77 = this;
+
+        return new Promise(function (resolve, reject) {
+          _this77.streamProvider.startTime = _this77._startTime;
+
+          _this77.streamProvider.callPlayerFunction('play').then(function () {
+            _get(_getPrototypeOf(VideoContainer.prototype), "play", _this77).call(_this77);
+
+            resolve();
+          })["catch"](function (err) {
+            reject(err);
+          });
+        });
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        var _this78 = this;
+
+        return new Promise(function (resolve, reject) {
+          _this78.streamProvider.callPlayerFunction('pause').then(function () {
+            _get(_getPrototypeOf(VideoContainer.prototype), "pause", _this78).call(_this78);
+
+            resolve();
+          })["catch"](function (err) {
+            reject(err);
+          });
+        });
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        var _this79 = this;
+
+        return new Promise(function (resolve, reject) {
+          _this79.trimming().then(function (trimmingData) {
+            if (trimmingData.enabled) {
+              time += trimmingData.start;
+
+              if (time < trimmingData.start) {
+                time = trimmingData.start;
+              }
+
+              if (time > trimmingData.end) {
+                time = trimmingData.end;
+              }
+            }
+
+            return _this79.streamProvider.callPlayerFunction('setCurrentTime', time);
+          }).then(function () {
+            return _this79.duration(false);
+          }).then(function (duration) {
+            resolve({
+              time: time,
+              duration: duration
+            });
+          })["catch"](function (err) {
+            reject(err);
+          });
+        });
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        var _this80 = this;
+
+        var ignoreTrimming = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+        return new Promise(function (resolve) {
+          var trimmingData = null;
+          var p = ignoreTrimming ? Promise.resolve({
+            enabled: false
+          }) : _this80.trimming();
+          p.then(function (t) {
+            trimmingData = t;
+            return _this80.masterVideo().currentTime();
+          }).then(function (time) {
+            if (trimmingData.enabled) {
+              time = time - trimmingData.start;
+            }
+
+            resolve(time);
+          });
+        });
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        this.streamProvider.callPlayerFunction('setPlaybackRate', rate);
+
+        _get(_getPrototypeOf(VideoContainer.prototype), "setPlaybackRate", this).call(this, rate);
+      }
+    }, {
+      key: "mute",
+      value: function mute() {
+        var _this81 = this;
+
+        return new Promise(function (resolve) {
+          _this81._muted = true;
+
+          _this81._audioPlayer.setVolume(0).then(function () {
+            paella.events.trigger(paella.events.setVolume, {
+              master: 0
+            });
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "unmute",
+      value: function unmute() {
+        var _this82 = this;
+
+        return new Promise(function (resolve) {
+          _this82._muted = false;
+
+          _this82._audioPlayer.setVolume(_this82._volume).then(function () {
+            paella.events.trigger(paella.events.setVolume, {
+              master: _this82._volume
+            });
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(params) {
+        var _this83 = this;
+
+        if (_typeof(params) == 'object') {
+          console.warn("videoContainer.setVolume(): set parameter as object is deprecated");
+          return Promise.resolve();
+        } else if (params == 0) {
+          return this.mute();
+        } else {
+          return new Promise(function (resolve, reject) {
+            paella.utils.cookies.set("volume", params);
+            _this83._volume = params;
+
+            _this83._audioPlayer.setVolume(params).then(function () {
+              paella.events.trigger(paella.events.setVolume, {
+                master: params
+              });
+              resolve(params);
+            })["catch"](function (err) {
+              reject(err);
+            });
+          });
+        }
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        return this._audioPlayer.volume();
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        var _this84 = this;
+
+        var ignoreTrimming = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+        return new Promise(function (resolve) {
+          var trimmingData = null;
+          var p = ignoreTrimming ? Promise.resolve({
+            enabled: false
+          }) : _this84.trimming();
+          p.then(function (t) {
+            trimmingData = t;
+            return _this84.masterVideo().duration();
+          }).then(function (duration) {
+            if (trimmingData.enabled) {
+              duration = trimmingData.end - trimmingData.start;
+            }
+
+            resolve(duration);
+          });
+        });
+      }
+    }, {
+      key: "paused",
+      value: function paused() {
+        return this.masterVideo().isPaused();
+      } // Video quality functions
+
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        return this.masterVideo().getQualities();
+      }
+    }, {
+      key: "setQuality",
+      value: function setQuality(index) {
+        var qualities = [];
+        var promises = [];
+        this.streamProvider.videoPlayers.forEach(function (player) {
+          var playerData = {
+            player: player,
+            promise: player.getQualities()
+          };
+          qualities.push(playerData);
+          promises.push(playerData.promise);
+        });
+        return new Promise(function (resolve) {
+          var resultPromises = [];
+          Promise.all(promises).then(function () {
+            qualities.forEach(function (data) {
+              data.promise.then(function (videoQualities) {
+                var videoQuality = videoQualities.length > index ? index : videoQualities.length - 1;
+                resultPromises.push(data.player.setQuality(videoQuality));
+              });
+            });
+            return Promise.all(resultPromises);
+          }).then(function () {
+            //setTimeout(() => {
+            paella.events.trigger(paella.events.qualityChanged);
+            resolve(); //},10);
+          });
+        });
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        return this.masterVideo().getCurrentQuality();
+      } // Current audio functions
+
+    }, {
+      key: "getAudioTags",
+      value: function getAudioTags() {
+        var _this85 = this;
+
+        return new Promise(function (resolve) {
+          var lang = [];
+          var p = _this85.streamProvider.players;
+          p.forEach(function (player) {
+            if (player.stream.audioTag) {
+              lang.push(player.stream.audioTag);
+            }
+          });
+          resolve(lang);
+        });
+      }
+    }, {
+      key: "setAudioTag",
+      value: function setAudioTag(lang) {
+        var _this86 = this;
+
+        this.streamProvider.stopVideoSync();
+        return new Promise(function (resolve) {
+          var audioSet = false;
+          var firstAudioPlayer = null;
+          var promises = [];
+
+          _this86.streamProvider.players.forEach(function (player) {
+            if (!firstAudioPlayer) {
+              firstAudioPlayer = player;
+            }
+
+            if (!audioSet && player.stream.audioTag == lang) {
+              audioSet = true;
+              _this86._audioPlayer = player;
+            }
+
+            promises.push(player.setVolume(0));
+          }); // NOTE: The audio only streams must define a valid audio tag
+
+
+          if (!audioSet && _this86.streamProvider.mainVideoPlayer) {
+            _this86._audioPlayer = _this86.streamProvider.mainVideoPlayer;
+          } else if (!audioSet && firstAudioPlayer) {
+            _this86._audioPlayer = firstAudioPlayer;
+          }
+
+          Promise.all(promises).then(function () {
+            return _this86._audioPlayer.setVolume(_this86._volume);
+          }).then(function () {
+            _this86._audioTag = _this86._audioPlayer.stream.audioTag;
+            paella.events.trigger(paella.events.audioTagChanged);
+
+            _this86.streamProvider.startVideoSync(_this86.audioPlayer);
+
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "setProfileFrameStrategy",
+      value: function setProfileFrameStrategy(strategy) {
+        this._profileFrameStrategy = strategy;
+      }
+    }, {
+      key: "setVideoQualityStrategy",
+      value: function setVideoQualityStrategy(strategy) {
+        this.streamProvider.qualityStrategy = strategy;
+      }
+    }, {
+      key: "autoplay",
+      value: function autoplay() {
+        return this.streamProvider.autoplay;
+      }
+    }, {
+      key: "supportAutoplay",
+      value: function supportAutoplay() {
+        return this.streamProvider.supportAutoplay;
+      }
+    }, {
+      key: "setAutoplay",
+      value: function setAutoplay() {
+        var ap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
+        this.streamProvider.autoplay = ap;
+        return this.streamProvider.supportAutoplay;
+      }
+    }, {
+      key: "masterVideo",
+      value: function masterVideo() {
+        return this.streamProvider.mainVideoPlayer || this.audioPlayer;
+      }
+    }, {
+      key: "getVideoRect",
+      value: function getVideoRect(videoIndex) {
+        if (this.videoWrappers.length > videoIndex) {
+          return this.videoWrappers[videoIndex].getRect();
+        } else {
+          throw new Error("Video wrapper with index ".concat(videoIndex, " not found"));
+        }
+      }
+    }, {
+      key: "setStreamData",
+      value: function setStreamData(videoData) {
+        var _this87 = this;
+
+        var urlParamTime = base.parameters.get("time");
+        var hashParamTime = base.hashParams.get("time");
+        var timeString = hashParamTime ? hashParamTime : urlParamTime ? urlParamTime : "0s";
+        var startTime = paella.utils.timeParse.timeToSeconds(timeString);
+
+        if (startTime) {
+          this._startTime = startTime;
+        }
+
+        videoData.forEach(function (stream) {
+          for (var type in stream.sources) {
+            var source = stream.sources[type];
+            source.forEach(function (item) {
+              if (item.res) {
+                item.res.w = Number(item.res.w);
+                item.res.h = Number(item.res.h);
+              }
+            });
+          }
+        });
+        this._sourceData = videoData;
+        return new Promise(function (resolve, reject) {
+          _this87.streamProvider.init(videoData);
+
+          var streamDataAudioTag = null;
+          videoData.forEach(function (video) {
+            if (video.audioTag && streamDataAudioTag == null) {
+              streamDataAudioTag = video.audioTag;
+            }
+
+            if (video.audioTag == _this87._audioTag) {
+              streamDataAudioTag = _this87._audioTag;
+            }
+          });
+
+          if (streamDataAudioTag != _this87._audioTag && streamDataAudioTag != null) {
+            _this87._audioTag = streamDataAudioTag;
+          }
+
+          _this87.streamProvider.videoPlayers.forEach(function (player, index) {
+            addVideoWrapper.apply(_this87, ['videoPlayerWrapper_' + index, player]);
+            player.setAutoplay(_this87.autoplay());
+          });
+
+          _this87.streamProvider.loadVideos()["catch"](function (err) {
+            reject(err);
+          }).then(function () {
+            return _this87.setAudioTag(_this87.audioTag);
+          }).then(function () {
+            var endedTimer = null;
+
+            var eventBindingObject = _this87.masterVideo().video || _this87.masterVideo().audio;
+
+            $(eventBindingObject).bind('timeupdate', function (evt) {
+              _this87.trimming().then(function (trimmingData) {
+                var current = evt.currentTarget.currentTime;
+                var duration = evt.currentTarget.duration;
+
+                if (trimmingData.enabled) {
+                  current -= trimmingData.start;
+                  duration = trimmingData.end - trimmingData.start;
+                }
+
+                paella.events.trigger(paella.events.timeupdate, {
+                  videoContainer: _this87,
+                  currentTime: current,
+                  duration: duration
+                });
+
+                if (current >= duration) {
+                  _this87.streamProvider.callPlayerFunction('pause');
+
+                  if (endedTimer) {
+                    clearTimeout(endedTimer);
+                    endedTimer = null;
+                  }
+
+                  endedTimer = setTimeout(function () {
+                    paella.events.trigger(paella.events.ended);
+                  }, 1000);
+                }
+              });
+            });
+            _this87._ready = true;
+            paella.events.trigger(paella.events.videoReady);
+            var profileToUse = base.parameters.get('profile') || base.cookies.get('profile') || paella.profiles.getDefaultProfile();
+
+            if (paella.profiles.setProfile(profileToUse, false)) {
+              resolve();
+            } else if (!paella.profiles.setProfile(paella.profiles.getDefaultProfile(), false)) {
+              resolve();
+            }
+          });
+        });
+      }
+    }, {
+      key: "resizePortrait",
+      value: function resizePortrait() {
+        var width = paella.player.isFullScreen() == true ? $(window).width() : $(this.domElement).width();
+        var relativeSize = new paella.RelativeVideoSize();
+        var height = relativeSize.proportionalHeight(width);
+        this.container.domElement.style.width = width + 'px';
+        this.container.domElement.style.height = height + 'px';
+        var containerHeight = paella.player.isFullScreen() == true ? $(window).height() : $(this.domElement).height();
+        var newTop = containerHeight / 2 - height / 2;
+        this.container.domElement.style.top = newTop + "px";
+      }
+    }, {
+      key: "resizeLandscape",
+      value: function resizeLandscape() {
+        var height = paella.player.isFullScreen() == true ? $(window).height() : $(this.domElement).height();
+        var relativeSize = new paella.RelativeVideoSize();
+        var width = relativeSize.proportionalWidth(height);
+        this.container.domElement.style.width = width + 'px';
+        this.container.domElement.style.height = height + 'px';
+        this.container.domElement.style.top = '0px';
+      }
+    }, {
+      key: "onresize",
+      value: function onresize() {
+        _get(_getPrototypeOf(VideoContainer.prototype), "onresize", this).call(this);
+
+        var relativeSize = new paella.RelativeVideoSize();
+        var aspectRatio = relativeSize.aspectRatio();
+        var width = paella.player.isFullScreen() == true ? $(window).width() : $(this.domElement).width();
+        var height = paella.player.isFullScreen() == true ? $(window).height() : $(this.domElement).height();
+        var containerAspectRatio = width / height;
+
+        if (containerAspectRatio > aspectRatio) {
+          this.resizeLandscape();
+        } else {
+          this.resizePortrait();
+        } //paella.profiles.setProfile(paella.player.selectedProfile,false)
+
+      }
+    }, {
+      key: "muted",
+      get: function get() {
+        return this._muted;
+      }
+    }, {
+      key: "audioTag",
+      get: function get() {
+        return this._audioTag;
+      }
+    }, {
+      key: "audioPlayer",
+      get: function get() {
+        return this._audioPlayer;
+      }
+    }]);
+
+    return VideoContainer;
+  }(paella.VideoContainerBase);
+
+  paella.VideoContainer = VideoContainer;
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var PluginManager =
+  /*#__PURE__*/
+  function () {
+    _createClass(PluginManager, [{
+      key: "setupPlugin",
+      value: function setupPlugin(plugin) {
+        plugin.setup();
+        this.enabledPlugins.push(plugin);
+
+        if (eval("plugin instanceof paella.UIPlugin")) {
+          plugin.checkVisibility();
+        }
+      }
+    }, {
+      key: "checkPluginsVisibility",
+      value: function checkPluginsVisibility() {
+        this.enabledPlugins.forEach(function (plugin) {
+          if (eval("plugin instanceof paella.UIPlugin")) {
+            plugin.checkVisibility();
+          }
+        });
+      }
+    }]);
+
+    function PluginManager() {
+      var _this88 = this;
+
+      _classCallCheck(this, PluginManager);
+
+      this.targets = null;
+      this.pluginList = [];
+      this.eventDrivenPlugins = [];
+      this.enabledPlugins = [];
+      this.doResize = true;
+      this.targets = {};
+      paella.events.bind(paella.events.loadPlugins, function (event) {
+        _this88.loadPlugins("paella.DeferredLoadPlugin");
+      });
+      var timer = new base.Timer(function () {
+        if (paella.player && paella.player.controls && _this88.doResize) paella.player.controls.onresize();
+      }, 1000);
+      timer.repeat = true;
+    }
+
+    _createClass(PluginManager, [{
+      key: "setTarget",
+      value: function setTarget(pluginType, target) {
+        if (target.addPlugin) {
+          this.targets[pluginType] = target;
+        }
+      }
+    }, {
+      key: "getTarget",
+      value: function getTarget(pluginType) {
+        // PluginManager can handle event-driven events:
+        if (pluginType == "eventDriven") {
+          return this;
+        } else {
+          var target = this.targets[pluginType];
+          return target;
+        }
+      }
+    }, {
+      key: "registerPlugin",
+      value: function registerPlugin(plugin) {
+        // Registra los plugins en una lista y los ordena
+        this.importLibraries(plugin);
+        this.pluginList.push(plugin);
+        this.pluginList.sort(function (a, b) {
+          return a.getIndex() - b.getIndex();
+        });
+      }
+    }, {
+      key: "importLibraries",
+      value: function importLibraries(plugin) {
+        plugin.getDependencies().forEach(function (lib) {
+          var script = document.createElement('script');
+          script.type = "text/javascript";
+          script.src = 'javascript/' + lib + '.js';
+          document.head.appendChild(script);
+        });
+      } // callback => function(plugin,pluginConfig)
+
+    }, {
+      key: "loadPlugins",
+      value: function loadPlugins(pluginBaseClass) {
+        if (pluginBaseClass != undefined) {
+          var This = this;
+          this.foreach(function (plugin, config) {
+            // Prevent load a plugin twice
+            if (plugin.isLoaded()) return;
+
+            if (eval("plugin instanceof " + pluginBaseClass)) {
+              if (config.enabled) {
+                base.log.debug("Load plugin (" + pluginBaseClass + "): " + plugin.getName());
+                plugin.config = config;
+                plugin.load(This);
+              }
+            }
+          });
+        }
+      }
+    }, {
+      key: "foreach",
+      value: function foreach(callback) {
+        var enablePluginsByDefault = false;
+        var pluginsConfig = {};
+
+        try {
+          enablePluginsByDefault = paella.player.config.plugins.enablePluginsByDefault;
+        } catch (e) {}
+
+        try {
+          pluginsConfig = paella.player.config.plugins.list;
+        } catch (e) {}
+
+        this.pluginList.forEach(function (plugin) {
+          var name = plugin.getName();
+          var config = pluginsConfig[name];
+
+          if (!config) {
+            config = {
+              enabled: enablePluginsByDefault
+            };
+          }
+
+          callback(plugin, config);
+        });
+      }
+    }, {
+      key: "addPlugin",
+      value: function addPlugin(plugin) {
+        var _this89 = this;
+
+        // Prevent add a plugin twice
+        if (plugin.__added__) return;
+        plugin.__added__ = true;
+        plugin.checkEnabled(function (isEnabled) {
+          if (plugin.type == "eventDriven" && isEnabled) {
+            paella.pluginManager.setupPlugin(plugin);
+
+            _this89.eventDrivenPlugins.push(plugin);
+
+            var events = plugin.getEvents();
+
+            var eventBind = function eventBind(event, params) {
+              plugin.onEvent(event.type, params);
+            };
+
+            for (var i = 0; i < events.length; ++i) {
+              var eventName = events[i];
+              paella.events.bind(eventName, eventBind);
+            }
+          }
+        });
+      }
+    }, {
+      key: "getPlugin",
+      value: function getPlugin(name) {
+        for (var i = 0; i < this.pluginList.length; ++i) {
+          if (this.pluginList[i].getName() == name) return this.pluginList[i];
+        }
+
+        return null;
+      }
+    }, {
+      key: "registerPlugins",
+      value: function registerPlugins() {
+        g_pluginCallbackList.forEach(function (pluginCallback) {
+          var PluginClass = pluginCallback();
+          var pluginInstance = new PluginClass();
+
+          if (pluginInstance.getInstanceName()) {
+            paella.plugins = paella.plugins || {};
+            paella.plugins[pluginInstance.getInstanceName()] = pluginInstance;
+          }
+
+          paella.pluginManager.registerPlugin(pluginInstance);
+        });
+      }
+    }]);
+
+    return PluginManager;
+  }();
+
+  paella.PluginManager = PluginManager;
+  paella.pluginManager = new paella.PluginManager();
+  var g_pluginCallbackList = [];
+
+  paella.addPlugin = function (cb) {
+    g_pluginCallbackList.push(cb);
+  };
+
+  var Plugin =
+  /*#__PURE__*/
+  function () {
+    function Plugin() {
+      _classCallCheck(this, Plugin);
+    }
+
+    _createClass(Plugin, [{
+      key: "isLoaded",
+      value: function isLoaded() {
+        return this.__loaded__;
+      }
+    }, {
+      key: "getDependencies",
+      value: function getDependencies() {
+        return [];
+      }
+    }, {
+      key: "load",
+      value: function load(pluginManager) {
+        if (this.__loaded__) return;
+        this.__loaded__ = true;
+        var target = pluginManager.getTarget(this.type);
+
+        if (target && target.addPlugin) {
+          target.addPlugin(this);
+        }
+      }
+    }, {
+      key: "getInstanceName",
+      value: function getInstanceName() {
+        return null;
+      }
+    }, {
+      key: "getRootNode",
+      value: function getRootNode(id) {
+        return null;
+      }
+    }, {
+      key: "checkEnabled",
+      value: function checkEnabled(onSuccess) {
+        onSuccess(true);
+      }
+    }, {
+      key: "setup",
+      value: function setup() {}
+    }, {
+      key: "getIndex",
+      value: function getIndex() {
+        return 0;
+      }
+    }, {
+      key: "getName",
+      value: function getName() {
+        return "";
+      }
+    }, {
+      key: "type",
+      get: function get() {
+        return "";
+      }
+    }]);
+
+    return Plugin;
+  }();
+
+  paella.Plugin = Plugin;
+
+  var FastLoadPlugin =
+  /*#__PURE__*/
+  function (_paella$Plugin) {
+    _inherits(FastLoadPlugin, _paella$Plugin);
+
+    function FastLoadPlugin() {
+      _classCallCheck(this, FastLoadPlugin);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(FastLoadPlugin).apply(this, arguments));
+    }
+
+    return FastLoadPlugin;
+  }(paella.Plugin);
+
+  var EarlyLoadPlugin =
+  /*#__PURE__*/
+  function (_paella$Plugin2) {
+    _inherits(EarlyLoadPlugin, _paella$Plugin2);
+
+    function EarlyLoadPlugin() {
+      _classCallCheck(this, EarlyLoadPlugin);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(EarlyLoadPlugin).apply(this, arguments));
+    }
+
+    return EarlyLoadPlugin;
+  }(paella.Plugin);
+
+  var DeferredLoadPlugin =
+  /*#__PURE__*/
+  function (_paella$Plugin3) {
+    _inherits(DeferredLoadPlugin, _paella$Plugin3);
+
+    function DeferredLoadPlugin() {
+      _classCallCheck(this, DeferredLoadPlugin);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(DeferredLoadPlugin).apply(this, arguments));
+    }
+
+    return DeferredLoadPlugin;
+  }(paella.Plugin);
+
+  paella.FastLoadPlugin = FastLoadPlugin;
+  paella.EarlyLoadPlugin = EarlyLoadPlugin;
+  paella.DeferredLoadPlugin = DeferredLoadPlugin;
+
+  var PopUpContainer =
+  /*#__PURE__*/
+  function (_paella$DomNode8) {
+    _inherits(PopUpContainer, _paella$DomNode8);
+
+    function PopUpContainer(id, className) {
+      var _this90;
+
+      _classCallCheck(this, PopUpContainer);
+
+      var style = {};
+      _this90 = _possibleConstructorReturn(this, _getPrototypeOf(PopUpContainer).call(this, 'div', id, style));
+      _this90.containers = null;
+      _this90.currentContainerId = -1;
+      _this90.domElement.className = className;
+      _this90.containers = {};
+      return _this90;
+    }
+
+    _createClass(PopUpContainer, [{
+      key: "hideContainer",
+      value: function hideContainer(identifier, button) {
+        var container = this.containers[identifier];
+
+        if (container && this.currentContainerId == identifier) {
+          container.identifier = identifier;
+          paella.events.trigger(paella.events.hidePopUp, {
+            container: container
+          });
+          container.plugin.willHideContent();
+          $(container.element).hide();
+          container.button.className = container.button.className.replace(' selected', '');
+          $(this.domElement).css({
+            width: '0px'
+          });
+          this.currentContainerId = -1;
+          container.plugin.didHideContent();
+        }
+      }
+    }, {
+      key: "showContainer",
+      value: function showContainer(identifier, button) {
+        var thisClass = this;
+        var width = 0;
+
+        function hideContainer(container) {
+          paella.events.trigger(paella.events.hidePopUp, {
+            container: container
+          });
+          container.plugin.willHideContent();
+          $(container.element).hide();
+          $(thisClass.domElement).css({
+            width: '0px'
+          });
+          container.button.className = container.button.className.replace(' selected', '');
+          thisClass.currentContainerId = -1;
+          container.plugin.didHideContent();
+        }
+
+        function showContainer(container) {
+          paella.events.trigger(paella.events.showPopUp, {
+            container: container
+          });
+          container.plugin.willShowContent();
+          container.button.className = container.button.className + ' selected';
+          $(container.element).show();
+          width = $(container.element).width();
+
+          if (container.plugin.getAlignment() == 'right') {
+            var right = $(button.parentElement).width() - $(button).position().left - $(button).width();
+            $(thisClass.domElement).css({
+              width: width + 'px',
+              right: right + 'px',
+              left: ''
+            });
+          } else {
+            var left = $(button).position().left;
+            $(thisClass.domElement).css({
+              width: width + 'px',
+              left: left + 'px',
+              right: ''
+            });
+          }
+
+          thisClass.currentContainerId = identifier;
+          container.plugin.didShowContent();
+        }
+
+        var container = this.containers[identifier];
+
+        if (container && this.currentContainerId != identifier && this.currentContainerId != -1) {
+          var prevContainer = this.containers[this.currentContainerId];
+          hideContainer(prevContainer);
+          showContainer(container);
+        } else if (container && this.currentContainerId == identifier) {
+          hideContainer(container);
+        } else if (container) {
+          showContainer(container);
+        }
+      }
+    }, {
+      key: "registerContainer",
+      value: function registerContainer(identifier, domElement, button, plugin) {
+        var containerInfo = {
+          identifier: identifier,
+          button: button,
+          element: domElement,
+          plugin: plugin
+        };
+        this.containers[identifier] = containerInfo;
+
+        if (plugin.closeOnMouseOut && plugin.closeOnMouseOut()) {
+          var popUpId = identifier;
+          var btn = button;
+          $(domElement).mouseleave(function (evt) {
+            paella.player.controls.playbackControl().hidePopUp(popUpId, btn);
+          });
+        } // this.domElement.appendChild(domElement);
+
+
+        $(domElement).hide();
+        button.popUpIdentifier = identifier;
+        button.sourcePlugin = plugin;
+        $(button).click(function (event) {
+          if (!this.plugin.isPopUpOpen()) {
+            paella.player.controls.playbackControl().showPopUp(this.popUpIdentifier, this);
+          } else {
+            paella.player.controls.playbackControl().hidePopUp(this.popUpIdentifier, this);
+          }
+        });
+        $(button).keyup(function (event) {
+          if (event.keyCode == 13 && !this.plugin.isPopUpOpen()) {
+            paella.player.controls.playbackControl().showPopUp(this.popUpIdentifier, this);
+          } else if (event.keyCode == 27) {
+            paella.player.controls.playbackControl().hidePopUp(this.popUpIdentifier, this);
+          }
+        });
+        plugin.containerManager = this;
+      }
+    }]);
+
+    return PopUpContainer;
+  }(paella.DomNode);
+
+  paella.PopUpContainer = PopUpContainer;
+
+  var TimelineContainer =
+  /*#__PURE__*/
+  function (_paella$PopUpContaine) {
+    _inherits(TimelineContainer, _paella$PopUpContaine);
+
+    function TimelineContainer() {
+      _classCallCheck(this, TimelineContainer);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(TimelineContainer).apply(this, arguments));
+    }
+
+    _createClass(TimelineContainer, [{
+      key: "hideContainer",
+      value: function hideContainer(identifier, button) {
+        var container = this.containers[identifier];
+
+        if (container && this.currentContainerId == identifier) {
+          paella.events.trigger(paella.events.hidePopUp, {
+            container: container
+          });
+          container.plugin.willHideContent();
+          $(container.element).hide();
+          container.button.className = container.button.className.replace(' selected', '');
+          this.currentContainerId = -1;
+          $(this.domElement).css({
+            height: '0px'
+          });
+          container.plugin.didHideContent();
+        }
+      }
+    }, {
+      key: "showContainer",
+      value: function showContainer(identifier, button) {
+        var height = 0;
+        var container = this.containers[identifier];
+
+        if (container && this.currentContainerId != identifier && this.currentContainerId != -1) {
+          var prevContainer = this.containers[this.currentContainerId];
+          prevContainer.button.className = prevContainer.button.className.replace(' selected', '');
+          container.button.className = container.button.className + ' selected';
+          paella.events.trigger(paella.events.hidePopUp, {
+            container: prevContainer
+          });
+          prevContainer.plugin.willHideContent();
+          $(prevContainer.element).hide();
+          prevContainer.plugin.didHideContent();
+          paella.events.trigger(paella.events.showPopUp, {
+            container: container
+          });
+          container.plugin.willShowContent();
+          $(container.element).show();
+          this.currentContainerId = identifier;
+          height = $(container.element).height();
+          $(this.domElement).css({
+            height: height + 'px'
+          });
+          container.plugin.didShowContent();
+        } else if (container && this.currentContainerId == identifier) {
+          paella.events.trigger(paella.events.hidePopUp, {
+            container: container
+          });
+          container.plugin.willHideContent();
+          $(container.element).hide();
+          container.button.className = container.button.className.replace(' selected', '');
+          $(this.domElement).css({
+            height: '0px'
+          });
+          this.currentContainerId = -1;
+          container.plugin.didHideContent();
+        } else if (container) {
+          paella.events.trigger(paella.events.showPopUp, {
+            container: container
+          });
+          container.plugin.willShowContent();
+          container.button.className = container.button.className + ' selected';
+          $(container.element).show();
+          this.currentContainerId = identifier;
+          height = $(container.element).height();
+          $(this.domElement).css({
+            height: height + 'px'
+          });
+          container.plugin.didShowContent();
+        }
+      }
+    }]);
+
+    return TimelineContainer;
+  }(paella.PopUpContainer);
+
+  paella.TimelineContainer = TimelineContainer;
+
+  var UIPlugin =
+  /*#__PURE__*/
+  function (_paella$DeferredLoadP) {
+    _inherits(UIPlugin, _paella$DeferredLoadP);
+
+    function UIPlugin() {
+      _classCallCheck(this, UIPlugin);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(UIPlugin).apply(this, arguments));
+    }
+
+    _createClass(UIPlugin, [{
+      key: "checkVisibility",
+      value: function checkVisibility() {
+        var modes = this.config.visibleOn || [paella.PaellaPlayer.mode.standard, paella.PaellaPlayer.mode.fullscreen, paella.PaellaPlayer.mode.embed];
+        var visible = false;
+        modes.forEach(function (m) {
+          if (m == paella.player.getPlayerMode()) {
+            visible = true;
+          }
+        });
+
+        if (visible) {
+          this.showUI();
+        } else {
+          this.hideUI();
+        }
+      }
+    }, {
+      key: "hideUI",
+      value: function hideUI() {
+        this.ui.setAttribute('aria-hidden', 'true');
+        $(this.ui).hide();
+      }
+    }, {
+      key: "showUI",
+      value: function showUI() {
+        var thisClass = this;
+        paella.pluginManager.enabledPlugins.forEach(function (p) {
+          if (p == thisClass) {
+            thisClass.ui.setAttribute('aria-hidden', 'false');
+            $(thisClass.ui).show();
+          }
+        });
+      }
+    }, {
+      key: "ui",
+      get: function get() {
+        return this._ui;
+      },
+      set: function set(val) {
+        this._ui = val;
+      }
+    }]);
+
+    return UIPlugin;
+  }(paella.DeferredLoadPlugin);
+
+  paella.UIPlugin = UIPlugin;
+
+  var ButtonPlugin =
+  /*#__PURE__*/
+  function (_paella$UIPlugin) {
+    _inherits(ButtonPlugin, _paella$UIPlugin);
+
+    _createClass(ButtonPlugin, [{
+      key: "type",
+      get: function get() {
+        return 'button';
+      }
+    }]);
+
+    function ButtonPlugin() {
+      var _this91;
+
+      _classCallCheck(this, ButtonPlugin);
+
+      _this91 = _possibleConstructorReturn(this, _getPrototypeOf(ButtonPlugin).call(this));
+      _this91.subclass = '';
+      _this91.container = null;
+      _this91.containerManager = null;
+      return _this91;
+    }
+
+    _createClass(ButtonPlugin, [{
+      key: "getAlignment",
+      value: function getAlignment() {
+        return 'left'; // or right
+      } // Returns the button subclass.
+
+    }, {
+      key: "getSubclass",
+      value: function getSubclass() {
+        return "myButtonPlugin";
+      }
+    }, {
+      key: "getIconClass",
+      value: function getIconClass() {
+        return "";
+      }
+    }, {
+      key: "addSubclass",
+      value: function addSubclass($subclass) {
+        $(this.container).addClass($subclass);
+      }
+    }, {
+      key: "removeSubclass",
+      value: function removeSubclass($subclass) {
+        $(this.container).removeClass($subclass);
+      }
+    }, {
+      key: "action",
+      value: function action(button) {// Implement this if you want to do something when the user push the plugin button
+      }
+    }, {
+      key: "getName",
+      value: function getName() {
+        return "ButtonPlugin";
+      }
+    }, {
+      key: "getMinWindowSize",
+      value: function getMinWindowSize() {
+        return this.config.minWindowSize || 0;
+      }
+    }, {
+      key: "buildContent",
+      value: function buildContent(domElement) {// Override if your plugin
+      }
+    }, {
+      key: "willShowContent",
+      value: function willShowContent() {
+        base.log.debug(this.getName() + " willDisplayContent");
+      }
+    }, {
+      key: "didShowContent",
+      value: function didShowContent() {
+        base.log.debug(this.getName() + " didDisplayContent");
+      }
+    }, {
+      key: "willHideContent",
+      value: function willHideContent() {
+        base.log.debug(this.getName() + " willHideContent");
+      }
+    }, {
+      key: "didHideContent",
+      value: function didHideContent() {
+        base.log.debug(this.getName() + " didHideContent");
+      }
+    }, {
+      key: "getButtonType",
+      value: function getButtonType() {
+        //return paella.ButtonPlugin.type.popUpButton;
+        //return paella.ButtonPlugin.type.timeLineButton;
+        return paella.ButtonPlugin.type.actionButton;
+      }
+    }, {
+      key: "getText",
+      value: function getText() {
+        return "";
+      }
+    }, {
+      key: "getAriaLabel",
+      value: function getAriaLabel() {
+        return "";
+      }
+    }, {
+      key: "setText",
+      value: function setText(text) {
+        this.container.innerHTML = '<span class="button-text">' + paella.AntiXSS.htmlEscape(text) + '</span>';
+
+        if (this._i) {
+          this.container.appendChild(this._i);
+        }
+      }
+    }, {
+      key: "hideButton",
+      value: function hideButton() {
+        this.hideUI();
+      }
+    }, {
+      key: "showButton",
+      value: function showButton() {
+        this.showUI();
+      } // Utility functions: do not override
+
+    }, {
+      key: "changeSubclass",
+      value: function changeSubclass(newSubclass) {
+        this.subclass = newSubclass;
+        this.container.className = this.getClassName();
+      }
+    }, {
+      key: "changeIconClass",
+      value: function changeIconClass(newClass) {
+        this._i.className = 'button-icon ' + newClass;
+      }
+    }, {
+      key: "getClassName",
+      value: function getClassName() {
+        return paella.ButtonPlugin.kClassName + ' ' + this.getAlignment() + ' ' + this.subclass;
+      }
+    }, {
+      key: "getContainerClassName",
+      value: function getContainerClassName() {
+        if (this.getButtonType() == paella.ButtonPlugin.type.timeLineButton) {
+          return paella.ButtonPlugin.kTimeLineClassName + ' ' + this.getSubclass();
+        } else if (this.getButtonType() == paella.ButtonPlugin.type.popUpButton) {
+          return paella.ButtonPlugin.kPopUpClassName + ' ' + this.getSubclass();
+        }
+      }
+    }, {
+      key: "setToolTip",
+      value: function setToolTip(message) {
+        this.button.setAttribute("title", message);
+        this.button.setAttribute("aria-label", message);
+      }
+    }, {
+      key: "getDefaultToolTip",
+      value: function getDefaultToolTip() {
+        return "";
+      }
+    }, {
+      key: "isPopUpOpen",
+      value: function isPopUpOpen() {
+        return this.button.popUpIdentifier == this.containerManager.currentContainerId;
+      }
+    }, {
+      key: "getExpandableContent",
+      value: function getExpandableContent() {
+        return null;
+      }
+    }, {
+      key: "expand",
+      value: function expand() {
+        if (this._expand) {
+          $(this._expand).show();
+        }
+      }
+    }, {
+      key: "contract",
+      value: function contract() {
+        if (this._expand) {
+          $(this._expand).hide();
+        }
+      }
+    }], [{
+      key: "BuildPluginButton",
+      value: function BuildPluginButton(plugin, id) {
+        plugin.subclass = plugin.getSubclass();
+        var elem = document.createElement('div');
+        var ariaLabel = plugin.getAriaLabel();
+
+        if (ariaLabel != "") {
+          elem = document.createElement('button');
+        }
+
+        elem.className = plugin.getClassName();
+        elem.id = id;
+        var buttonText = document.createElement('span');
+        buttonText.className = "button-text";
+        buttonText.innerHTML = paella.AntiXSS.htmlEscape(plugin.getText());
+        buttonText.plugin = plugin;
+        elem.appendChild(buttonText);
+
+        if (ariaLabel) {
+          elem.setAttribute("tabindex", 1000 + plugin.getIndex());
+          elem.setAttribute("aria-label", ariaLabel);
+        }
+
+        elem.setAttribute("alt", "");
+        elem.plugin = plugin;
+        plugin.button = elem;
+        plugin.container = elem;
+        plugin.ui = elem;
+        plugin.setToolTip(plugin.getDefaultToolTip());
+        var icon = document.createElement('i');
+        icon.className = 'button-icon ' + plugin.getIconClass();
+        icon.plugin = plugin;
+        elem.appendChild(icon);
+        plugin._i = icon;
+
+        function onAction(self) {
+          paella.userTracking.log("paella:button:action", self.plugin.getName());
+          self.plugin.action(self);
+        }
+
+        $(elem).click(function (event) {
+          onAction(this);
+        });
+        $(elem).keyup(function (event) {
+          event.preventDefault();
+        });
+        $(elem).focus(function (event) {
+          plugin.expand();
+        });
+        return elem;
+      }
+    }, {
+      key: "BuildPluginExpand",
+      value: function BuildPluginExpand(plugin, id) {
+        var expandContent = plugin.getExpandableContent();
+
+        if (expandContent) {
+          var expand = document.createElement('span');
+          expand.plugin = plugin;
+          expand.className = 'expandable-content ' + plugin.getClassName();
+          plugin._expand = expand;
+          expand.appendChild(expandContent);
+          $(plugin._expand).hide();
+          return expand;
+        }
+
+        return null;
+      }
+    }, {
+      key: "BuildPluginPopUp",
+      value: function BuildPluginPopUp(parent, plugin, id) {
+        plugin.subclass = plugin.getSubclass();
+        var elem = document.createElement('div');
+        parent.appendChild(elem);
+        elem.className = plugin.getContainerClassName();
+        elem.id = id;
+        elem.plugin = plugin;
+        plugin.buildContent(elem);
+        return elem;
+      }
+    }]);
+
+    return ButtonPlugin;
+  }(paella.UIPlugin);
+
+  paella.ButtonPlugin = ButtonPlugin;
+  paella.ButtonPlugin.alignment = {
+    left: 'left',
+    right: 'right'
+  };
+  paella.ButtonPlugin.kClassName = 'buttonPlugin';
+  paella.ButtonPlugin.kPopUpClassName = 'buttonPluginPopUp';
+  paella.ButtonPlugin.kTimeLineClassName = 'buttonTimeLine';
+  paella.ButtonPlugin.type = {
+    actionButton: 1,
+    popUpButton: 2,
+    timeLineButton: 3
+  };
+
+  var VideoOverlayButtonPlugin =
+  /*#__PURE__*/
+  function (_paella$ButtonPlugin) {
+    _inherits(VideoOverlayButtonPlugin, _paella$ButtonPlugin);
+
+    function VideoOverlayButtonPlugin() {
+      _classCallCheck(this, VideoOverlayButtonPlugin);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(VideoOverlayButtonPlugin).apply(this, arguments));
+    }
+
+    _createClass(VideoOverlayButtonPlugin, [{
+      key: "getSubclass",
+      // Returns the button subclass.
+      value: function getSubclass() {
+        return "myVideoOverlayButtonPlugin" + " " + this.getAlignment();
+      }
+    }, {
+      key: "action",
+      value: function action(button) {// Implement this if you want to do something when the user push the plugin button
+      }
+    }, {
+      key: "getName",
+      value: function getName() {
+        return "VideoOverlayButtonPlugin";
+      }
+    }, {
+      key: "type",
+      get: function get() {
+        return 'videoOverlayButton';
+      }
+    }, {
+      key: "tabIndex",
+      get: function get() {
+        return -1;
+      }
+    }]);
+
+    return VideoOverlayButtonPlugin;
+  }(paella.ButtonPlugin);
+
+  paella.VideoOverlayButtonPlugin = VideoOverlayButtonPlugin;
+
+  var EventDrivenPlugin =
+  /*#__PURE__*/
+  function (_paella$EarlyLoadPlug) {
+    _inherits(EventDrivenPlugin, _paella$EarlyLoadPlug);
+
+    _createClass(EventDrivenPlugin, [{
+      key: "type",
+      get: function get() {
+        return 'eventDriven';
+      }
+    }]);
+
+    function EventDrivenPlugin() {
+      var _this92;
+
+      _classCallCheck(this, EventDrivenPlugin);
+
+      _this92 = _possibleConstructorReturn(this, _getPrototypeOf(EventDrivenPlugin).call(this));
+
+      var events = _this92.getEvents();
+
+      for (var i = 0; i < events.length; ++i) {
+        var event = events[i];
+
+        if (event == paella.events.loadStarted) {
+          _this92.onEvent(paella.events.loadStarted);
+        }
+      }
+
+      return _this92;
+    }
+
+    _createClass(EventDrivenPlugin, [{
+      key: "getEvents",
+      value: function getEvents() {
+        return [];
+      }
+    }, {
+      key: "onEvent",
+      value: function onEvent(eventType, params) {}
+    }, {
+      key: "getName",
+      value: function getName() {
+        return "EventDrivenPlugin";
+      }
+    }]);
+
+    return EventDrivenPlugin;
+  }(paella.EarlyLoadPlugin);
+
+  paella.EventDrivenPlugin = EventDrivenPlugin;
+})();
+
+(function () {
+  var VideoCanvas =
+  /*#__PURE__*/
+  function () {
+    function VideoCanvas(stream) {
+      _classCallCheck(this, VideoCanvas);
+
+      this._stream = stream;
+    }
+
+    _createClass(VideoCanvas, [{
+      key: "loadVideo",
+      value: function loadVideo(videoPlugin, stream) {
+        return Promise.reject(new Error("Not implemented"));
+      }
+    }, {
+      key: "allowZoom",
+      value: function allowZoom() {
+        return true;
+      }
+    }]);
+
+    return VideoCanvas;
+  }();
+
+  paella.VideoCanvas = VideoCanvas;
+
+  function initWebGLCanvas() {
+    if (!paella.WebGLCanvas) {
+      var WebGLCanvas =
+      /*#__PURE__*/
+      function (_bg$app$WindowControl) {
+        _inherits(WebGLCanvas, _bg$app$WindowControl);
+
+        function WebGLCanvas(stream) {
+          var _this93;
+
+          _classCallCheck(this, WebGLCanvas);
+
+          _this93 = _possibleConstructorReturn(this, _getPrototypeOf(WebGLCanvas).call(this));
+          _this93._stream = stream;
+          return _this93;
+        }
+
+        _createClass(WebGLCanvas, [{
+          key: "loaded",
+          value: function loaded() {
+            var _this94 = this;
+
+            return new Promise(function (resolve) {
+              var checkLoaded = function checkLoaded() {
+                if (_this94.video) {
+                  resolve(_this94);
+                } else {
+                  setTimeout(checkLoaded, 100);
+                }
+              };
+
+              checkLoaded();
+            });
+          }
+        }, {
+          key: "loadVideo",
+          value: function loadVideo(videoPlugin, stream) {
+            return Promise.reject(new Error("Not implemented"));
+          }
+        }, {
+          key: "allowZoom",
+          value: function allowZoom() {
+            return false;
+          } // WebGL engine functions
+
+        }, {
+          key: "registerPlugins",
+          value: function registerPlugins() {
+            bg.base.Loader.RegisterPlugin(new bg.base.TextureLoaderPlugin());
+            bg.base.Loader.RegisterPlugin(new bg.base.VideoTextureLoaderPlugin());
+            bg.base.Loader.RegisterPlugin(new bg.base.VWGLBLoaderPlugin());
+          }
+        }, {
+          key: "loadVideoTexture",
+          value: function loadVideoTexture() {
+            return bg.base.Loader.Load(this.gl, this.stream.src);
+          }
+        }, {
+          key: "buildVideoSurface",
+          value: function buildVideoSurface(sceneRoot, videoTexture) {
+            var sphere = bg.scene.PrimitiveFactory.Sphere(this.gl, 1, 50);
+            var sphereNode = new bg.scene.Node(this.gl);
+            sphereNode.addComponent(sphere);
+            sphere.getMaterial(0).texture = videoTexture;
+            sphere.getMaterial(0).lightEmission = 0;
+            sphere.getMaterial(0).lightEmissionMaskInvert = false;
+            sphere.getMaterial(0).cullFace = false;
+            sphereNode.addComponent(new bg.scene.Transform(bg.Matrix4.Scale(1, -1, 1)));
+            sceneRoot.addChild(sphereNode);
+          }
+        }, {
+          key: "buildCamera",
+          value: function buildCamera() {
+            var cameraNode = new bg.scene.Node(this.gl, "Camera");
+            var camera = new bg.scene.Camera();
+            cameraNode.addComponent(camera);
+            cameraNode.addComponent(new bg.scene.Transform());
+            var projection = new bg.scene.OpticalProjectionStrategy();
+            projection.far = 100;
+            projection.focalLength = 55;
+            camera.projectionStrategy = projection;
+            var oc = new bg.manipulation.OrbitCameraController();
+            oc.maxPitch = 90;
+            oc.minPitch = -90;
+            oc.maxDistance = 0;
+            oc.minDistance = 0;
+            this._cameraController = oc;
+            cameraNode.addComponent(oc);
+            return cameraNode;
+          }
+        }, {
+          key: "buildScene",
+          value: function buildScene() {
+            var _this95 = this;
+
+            this._root = new bg.scene.Node(this.gl, "Root node");
+            this.registerPlugins();
+            this.loadVideoTexture().then(function (texture) {
+              _this95._texture = texture;
+
+              _this95.buildVideoSurface(_this95._root, texture);
+            });
+            var lightNode = new bg.scene.Node(this.gl, "Light");
+            var light = new bg.base.Light();
+            light.ambient = bg.Color.White();
+            light.diffuse = bg.Color.Black();
+            light.specular = bg.Color.Black();
+            lightNode.addComponent(new bg.scene.Light(light));
+
+            this._root.addChild(lightNode);
+
+            var cameraNode = this.buildCamera();
+            this._camera = cameraNode.component("bg.scene.Camera");
+
+            this._root.addChild(cameraNode);
+          }
+        }, {
+          key: "init",
+          value: function init() {
+            bg.Engine.Set(new bg.webgl1.Engine(this.gl));
+            this.buildScene();
+            this._renderer = bg.render.Renderer.Create(this.gl, bg.render.RenderPath.FORWARD);
+            this._inputVisitor = new bg.scene.InputVisitor();
+          }
+        }, {
+          key: "frame",
+          value: function frame(delta) {
+            if (this.texture) {
+              this.texture.update();
+            }
+
+            this._renderer.frame(this._root, delta);
+
+            this.postReshape();
+          }
+        }, {
+          key: "display",
+          value: function display() {
+            this._renderer.display(this._root, this._camera);
+          }
+        }, {
+          key: "reshape",
+          value: function reshape(width, height) {
+            this._camera.viewport = new bg.Viewport(0, 0, width, height);
+
+            if (!this._camera.projectionStrategy) {
+              this._camera.projection.perspective(60, this._camera.viewport.aspectRatio, 0.1, 100);
+            }
+          }
+        }, {
+          key: "mouseDrag",
+          value: function mouseDrag(evt) {
+            this._inputVisitor.mouseDrag(this._root, evt);
+
+            this.postRedisplay();
+          }
+        }, {
+          key: "mouseWheel",
+          value: function mouseWheel(evt) {
+            this._inputVisitor.mouseWheel(this._root, evt);
+
+            this.postRedisplay();
+          }
+        }, {
+          key: "touchMove",
+          value: function touchMove(evt) {
+            this._inputVisitor.touchMove(this._root, evt);
+
+            this.postRedisplay();
+          }
+        }, {
+          key: "mouseDown",
+          value: function mouseDown(evt) {
+            this._inputVisitor.mouseDown(this._root, evt);
+          }
+        }, {
+          key: "touchStar",
+          value: function touchStar(evt) {
+            this._inputVisitor.touchStar(this._root, evt);
+          }
+        }, {
+          key: "mouseUp",
+          value: function mouseUp(evt) {
+            this._inputVisitor.mouseUp(this._root, evt);
+          }
+        }, {
+          key: "mouseMove",
+          value: function mouseMove(evt) {
+            this._inputVisitor.mouseMove(this._root, evt);
+          }
+        }, {
+          key: "mouseOut",
+          value: function mouseOut(evt) {
+            this._inputVisitor.mouseOut(this._root, evt);
+          }
+        }, {
+          key: "touchEnd",
+          value: function touchEnd(evt) {
+            this._inputVisitor.touchEnd(this._root, evt);
+          }
+        }, {
+          key: "stream",
+          get: function get() {
+            return this._stream;
+          }
+        }, {
+          key: "video",
+          get: function get() {
+            return this.texture ? this.texture.video : null;
+          }
+        }, {
+          key: "camera",
+          get: function get() {
+            return this._camera;
+          }
+        }, {
+          key: "texture",
+          get: function get() {
+            return this._texture;
+          }
+        }]);
+
+        return WebGLCanvas;
+      }(bg.app.WindowController);
+
+      paella.WebGLCanvas = WebGLCanvas;
+    }
+  }
+
+  function buildVideoCanvas(stream) {
+    if (!paella.WebGLCanvas) {
+      var WebGLCanvas =
+      /*#__PURE__*/
+      function (_bg$app$WindowControl2) {
+        _inherits(WebGLCanvas, _bg$app$WindowControl2);
+
+        function WebGLCanvas(stream) {
+          var _this96;
+
+          _classCallCheck(this, WebGLCanvas);
+
+          _this96 = _possibleConstructorReturn(this, _getPrototypeOf(WebGLCanvas).call(this));
+          _this96._stream = stream;
+          return _this96;
+        }
+
+        _createClass(WebGLCanvas, [{
+          key: "allowZoom",
+          value: function allowZoom() {
+            return false;
+          }
+        }, {
+          key: "loaded",
+          value: function loaded() {
+            var _this97 = this;
+
+            return new Promise(function (resolve) {
+              var checkLoaded = function checkLoaded() {
+                if (_this97.video) {
+                  resolve(_this97);
+                } else {
+                  setTimeout(checkLoaded, 100);
+                }
+              };
+
+              checkLoaded();
+            });
+          }
+        }, {
+          key: "registerPlugins",
+          value: function registerPlugins() {
+            bg.base.Loader.RegisterPlugin(new bg.base.TextureLoaderPlugin());
+            bg.base.Loader.RegisterPlugin(new bg.base.VideoTextureLoaderPlugin());
+            bg.base.Loader.RegisterPlugin(new bg.base.VWGLBLoaderPlugin());
+          }
+        }, {
+          key: "loadVideoTexture",
+          value: function loadVideoTexture() {
+            return bg.base.Loader.Load(this.gl, this.stream.src);
+          }
+        }, {
+          key: "buildVideoSurface",
+          value: function buildVideoSurface(sceneRoot, videoTexture) {
+            var sphere = bg.scene.PrimitiveFactory.Sphere(this.gl, 1, 50);
+            var sphereNode = new bg.scene.Node(this.gl);
+            sphereNode.addComponent(sphere);
+            sphere.getMaterial(0).texture = videoTexture;
+            sphere.getMaterial(0).lightEmission = 0;
+            sphere.getMaterial(0).lightEmissionMaskInvert = false;
+            sphere.getMaterial(0).cullFace = false;
+            sphereNode.addComponent(new bg.scene.Transform(bg.Matrix4.Scale(1, -1, 1)));
+            sceneRoot.addChild(sphereNode);
+          }
+        }, {
+          key: "buildCamera",
+          value: function buildCamera() {
+            var cameraNode = new bg.scene.Node(this.gl, "Camera");
+            var camera = new bg.scene.Camera();
+            cameraNode.addComponent(camera);
+            cameraNode.addComponent(new bg.scene.Transform());
+            var projection = new bg.scene.OpticalProjectionStrategy();
+            projection.far = 100;
+            projection.focalLength = 55;
+            camera.projectionStrategy = projection;
+            var oc = new bg.manipulation.OrbitCameraController();
+            oc.maxPitch = 90;
+            oc.minPitch = -90;
+            oc.maxDistance = 0;
+            oc.minDistance = 0;
+            this._cameraController = oc;
+            cameraNode.addComponent(oc);
+            return cameraNode;
+          }
+        }, {
+          key: "buildScene",
+          value: function buildScene() {
+            var _this98 = this;
+
+            this._root = new bg.scene.Node(this.gl, "Root node");
+            this.registerPlugins();
+            this.loadVideoTexture().then(function (texture) {
+              _this98._texture = texture;
+
+              _this98.buildVideoSurface(_this98._root, texture);
+            });
+            var lightNode = new bg.scene.Node(this.gl, "Light");
+            var light = new bg.base.Light();
+            light.ambient = bg.Color.White();
+            light.diffuse = bg.Color.Black();
+            light.specular = bg.Color.Black();
+            lightNode.addComponent(new bg.scene.Light(light));
+
+            this._root.addChild(lightNode);
+
+            var cameraNode = this.buildCamera();
+            this._camera = cameraNode.component("bg.scene.Camera");
+
+            this._root.addChild(cameraNode);
+          }
+        }, {
+          key: "init",
+          value: function init() {
+            bg.Engine.Set(new bg.webgl1.Engine(this.gl));
+            this.buildScene();
+            this._renderer = bg.render.Renderer.Create(this.gl, bg.render.RenderPath.FORWARD);
+            this._inputVisitor = new bg.scene.InputVisitor();
+          }
+        }, {
+          key: "frame",
+          value: function frame(delta) {
+            if (this.texture) {
+              this.texture.update();
+            }
+
+            this._renderer.frame(this._root, delta);
+
+            this.postReshape();
+          }
+        }, {
+          key: "display",
+          value: function display() {
+            this._renderer.display(this._root, this._camera);
+          }
+        }, {
+          key: "reshape",
+          value: function reshape(width, height) {
+            this._camera.viewport = new bg.Viewport(0, 0, width, height);
+
+            if (!this._camera.projectionStrategy) {
+              this._camera.projection.perspective(60, this._camera.viewport.aspectRatio, 0.1, 100);
+            }
+          }
+        }, {
+          key: "mouseDrag",
+          value: function mouseDrag(evt) {
+            this._inputVisitor.mouseDrag(this._root, evt);
+
+            this.postRedisplay();
+          }
+        }, {
+          key: "mouseWheel",
+          value: function mouseWheel(evt) {
+            this._inputVisitor.mouseWheel(this._root, evt);
+
+            this.postRedisplay();
+          }
+        }, {
+          key: "touchMove",
+          value: function touchMove(evt) {
+            this._inputVisitor.touchMove(this._root, evt);
+
+            this.postRedisplay();
+          }
+        }, {
+          key: "mouseDown",
+          value: function mouseDown(evt) {
+            this._inputVisitor.mouseDown(this._root, evt);
+          }
+        }, {
+          key: "touchStar",
+          value: function touchStar(evt) {
+            this._inputVisitor.touchStar(this._root, evt);
+          }
+        }, {
+          key: "mouseUp",
+          value: function mouseUp(evt) {
+            this._inputVisitor.mouseUp(this._root, evt);
+          }
+        }, {
+          key: "mouseMove",
+          value: function mouseMove(evt) {
+            this._inputVisitor.mouseMove(this._root, evt);
+          }
+        }, {
+          key: "mouseOut",
+          value: function mouseOut(evt) {
+            this._inputVisitor.mouseOut(this._root, evt);
+          }
+        }, {
+          key: "touchEnd",
+          value: function touchEnd(evt) {
+            this._inputVisitor.touchEnd(this._root, evt);
+          }
+        }, {
+          key: "stream",
+          get: function get() {
+            return this._stream;
+          }
+        }, {
+          key: "video",
+          get: function get() {
+            return this.texture ? this.texture.video : null;
+          }
+        }, {
+          key: "camera",
+          get: function get() {
+            return this._camera;
+          }
+        }, {
+          key: "texture",
+          get: function get() {
+            return this._texture;
+          }
+        }]);
+
+        return WebGLCanvas;
+      }(bg.app.WindowController);
+
+      paella.WebGLCanvas = WebGLCanvas;
+    }
+
+    return paella.WebGLCanvas;
+  }
+
+  var g_canvasCallbacks = {};
+
+  paella.addCanvasPlugin = function (canvasType, webglSupport, mouseEventsSupport, canvasPluginCallback) {
+    g_canvasCallbacks[canvasType] = {
+      callback: canvasPluginCallback,
+      webglSupport: webglSupport,
+      mouseEventsSupport: mouseEventsSupport
+    };
+  };
+
+  function loadWebGLDeps() {
+    return new Promise(function (resolve) {
+      if (!window.$paella_bg) {
+        paella.require("".concat(paella.baseUrl, "javascript/bg2e-es2015.js")).then(function () {
+          window.$paella_bg = bg;
+          buildVideoCanvas(); // loadWebGLDeps();
+
+          resolve(window.$paella_bg);
+        });
+      } else {
+        resolve(window.$paella_bg);
+      }
+    });
+  }
+
+  function loadCanvasPlugin(canvasType) {
+    return new Promise(function (resolve, reject) {
+      var callbackData = g_canvasCallbacks[canvasType];
+
+      if (callbackData) {
+        (callbackData.webglSupport ? loadWebGLDeps() : Promise.resolve()).then(function () {
+          resolve(callbackData.callback());
+        })["catch"](function (err) {
+          reject(err);
+        });
+      } else {
+        reject(new Error("No such canvas type: \"".concat(canvasType, "\"")));
+      }
+    });
+  }
+
+  paella.getVideoCanvas = function (type) {
+    return new Promise(function (resolve, reject) {
+      var canvasData = g_canvasCallbacks[type];
+
+      if (!canvasData) {
+        reject(new Error("No such canvas type: " + type));
+      } else {
+        if (canvasData.webglSupport) {
+          loadWebGLDeps().then(function () {
+            resolve(canvasData.callback());
+          });
+        } else {
+          resolve(canvasData.callback());
+        }
+      }
+    });
+  };
+
+  paella.getVideoCanvasData = function (type) {
+    return g_canvasCallbacks[type];
+  }; // Standard <video> canvas
+
+
+  paella.addCanvasPlugin("video", false, false, function () {
+    return (
+      /*#__PURE__*/
+      function (_paella$VideoCanvas) {
+        _inherits(VideoCanvas, _paella$VideoCanvas);
+
+        function VideoCanvas(stream) {
+          _classCallCheck(this, VideoCanvas);
+
+          return _possibleConstructorReturn(this, _getPrototypeOf(VideoCanvas).call(this, stream));
+        }
+
+        _createClass(VideoCanvas, [{
+          key: "loadVideo",
+          value: function loadVideo(videoPlugin, stream) {
+            var doLoadCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
+            return new Promise(function (resolve, reject) {
+              doLoadCallback = doLoadCallback || function (video) {
+                return new Promise(function (cbResolve, cbReject) {
+                  var sourceElem = video.querySelector('source');
+
+                  if (!sourceElem) {
+                    sourceElem = document.createElement('source');
+                    video.appendChild(sourceElem);
+                  }
+
+                  if (video._posterFrame) {
+                    video.setAttribute("poster", video._posterFrame);
+                  }
+
+                  sourceElem.src = stream.src;
+                  sourceElem.type = stream.type;
+                  video.load();
+                  video.playbackRate = video._playbackRate || 1;
+                  cbResolve();
+                });
+              };
+
+              doLoadCallback(videoPlugin.video).then(function () {
+                resolve(stream);
+              });
+            });
+          }
+        }]);
+
+        return VideoCanvas;
+      }(paella.VideoCanvas)
+    );
+  });
+  /*
+  
+  paella.getVideoCanvas = function(type, stream) {
+      console.log("TODO: Remove paella.getVideoCanvas() function");
+      return new Promise((resolve,reject) => {
+          if (!window.$paella_bg) {
+              paella.require(`${ paella.baseUrl }javascript/bg2e-es2015.js`)
+                  .then(() => {
+                      window.$paella_bg = bg;
+                      loadCanvasPlugins();
+                      resolve(buildVideoCanvas(stream));
+                  })
+                  .catch((err) => {
+                      console.error(err);
+                      reject(err);
+                  });
+          }
+          else {
+              resolve(buildVideoCanvas(stream));
+          }
+      });
+  }
+  */
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var CaptionParserManager =
+  /*#__PURE__*/
+  function () {
+    _createClass(CaptionParserManager, [{
+      key: "addPlugin",
+      value: function addPlugin(plugin) {
+        var self = this;
+        var ext = plugin.ext;
+
+        if ((Array.isArray && Array.isArray(ext) || ext instanceof Array) == false) {
+          ext = [ext];
+        }
+
+        if (ext.length == 0) {
+          base.log.debug("No extension provided by the plugin " + plugin.getName());
+        } else {
+          base.log.debug("New captionParser added: " + plugin.getName());
+          ext.forEach(function (f) {
+            self._formats[f] = plugin;
+          });
+        }
+      }
+    }]);
+
+    function CaptionParserManager() {
+      _classCallCheck(this, CaptionParserManager);
+
+      this._formats = {};
+      paella.pluginManager.setTarget('captionParser', this);
+    }
+
+    return CaptionParserManager;
+  }();
+
+  var captionParserManager = new CaptionParserManager();
+
+  var SearchCallback =
+  /*#__PURE__*/
+  function (_base$AsyncLoaderCall) {
+    _inherits(SearchCallback, _base$AsyncLoaderCall);
+
+    function SearchCallback(caption, text) {
+      var _this99;
+
+      _classCallCheck(this, SearchCallback);
+
+      _this99 = _possibleConstructorReturn(this, _getPrototypeOf(SearchCallback).call(this));
+      _this99.name = "captionSearchCallback";
+      _this99.caption = caption;
+      _this99.text = text;
+      return _this99;
+    }
+
+    _createClass(SearchCallback, [{
+      key: "load",
+      value: function load(onSuccess, onError) {
+        var _this100 = this;
+
+        this.caption.search(this.text, function (err, result) {
+          if (err) {
+            onError();
+          } else {
+            _this100.result = result;
+            onSuccess();
+          }
+        });
+      }
+    }]);
+
+    return SearchCallback;
+  }(base.AsyncLoaderCallback);
+
+  paella.captions = {
+    parsers: {},
+    _captions: {},
+    _activeCaption: undefined,
+    addCaptions: function addCaptions(captions) {
+      var cid = captions._captionsProvider + ':' + captions._id;
+      this._captions[cid] = captions;
+      paella.events.trigger(paella.events.captionAdded, cid);
+    },
+    getAvailableLangs: function getAvailableLangs() {
+      var ret = [];
+      var self = this;
+      Object.keys(this._captions).forEach(function (k) {
+        var c = self._captions[k];
+        ret.push({
+          id: k,
+          lang: c._lang
+        });
+      });
+      return ret;
+    },
+    getCaptions: function getCaptions(cid) {
+      if (cid && this._captions[cid]) {
+        return this._captions[cid];
+      }
+
+      return undefined;
+    },
+    getActiveCaptions: function getActiveCaptions(cid) {
+      return this._activeCaption;
+    },
+    setActiveCaptions: function setActiveCaptions(cid) {
+      this._activeCaption = this.getCaptions(cid);
+
+      if (this._activeCaption != undefined) {
+        paella.events.trigger(paella.events.captionsEnabled, cid);
+      } else {
+        paella.events.trigger(paella.events.captionsDisabled);
+      }
+
+      return this._activeCaption;
+    },
+    getCaptionAtTime: function getCaptionAtTime(cid, time) {
+      var c = this.getCaptions(cid);
+
+      if (c != undefined) {
+        return c.getCaptionAtTime(time);
+      }
+
+      return undefined;
+    },
+    search: function search(text, next) {
+      var self = this;
+      var asyncLoader = new base.AsyncLoader();
+      this.getAvailableLangs().forEach(function (l) {
+        asyncLoader.addCallback(new SearchCallback(self.getCaptions(l.id), text));
+      });
+      asyncLoader.load(function () {
+        var res = [];
+        Object.keys(asyncLoader.callbackArray).forEach(function (k) {
+          res = res.concat(asyncLoader.getCallback(k).result);
+        });
+        if (next) next(false, res);
+      }, function () {
+        if (next) next(true);
+      });
+    }
+  };
+
+  var Caption =
+  /*#__PURE__*/
+  function () {
+    function Caption(id, format, url, lang, next) {
+      _classCallCheck(this, Caption);
+
+      this._id = id;
+      this._format = format;
+      this._url = url;
+      this._captions = undefined;
+      this._index = undefined;
+
+      if (typeof lang == "string") {
+        lang = {
+          code: lang,
+          txt: lang
+        };
+      }
+
+      this._lang = lang;
+      this._captionsProvider = "downloadCaptionsProvider";
+      this.reloadCaptions(next);
+    }
+
+    _createClass(Caption, [{
+      key: "canEdit",
+      value: function canEdit(next) {
+        // next(err, canEdit)
+        next(false, false);
+      }
+    }, {
+      key: "goToEdit",
+      value: function goToEdit() {}
+    }, {
+      key: "reloadCaptions",
+      value: function reloadCaptions(next) {
+        var self = this;
+        jQuery.ajax({
+          url: self._url,
+          cache: false,
+          type: 'get',
+          dataType: "text"
+        }).then(function (dataRaw) {
+          var parser = captionParserManager._formats[self._format];
+
+          if (parser == undefined) {
+            base.log.debug("Error adding captions: Format not supported!");
+            paella.player.videoContainer.duration(true).then(function (duration) {
+              self._captions = [{
+                id: 0,
+                begin: 0,
+                end: duration,
+                content: base.dictionary.translate("Error! Captions format not supported.")
+              }];
+
+              if (next) {
+                next(true);
+              }
+            });
+          } else {
+            parser.parse(dataRaw, self._lang.code, function (err, c) {
+              if (!err) {
+                self._captions = c;
+                self._index = lunr(function () {
+                  var thisLunr = this;
+                  thisLunr.ref('id');
+                  thisLunr.field('content', {
+                    boost: 10
+                  });
+
+                  self._captions.forEach(function (cap) {
+                    thisLunr.add({
+                      id: cap.id,
+                      content: cap.content
+                    });
+                  });
+                });
+              }
+
+              if (next) {
+                next(err);
+              }
+            });
+          }
+        }).fail(function (error) {
+          base.log.debug("Error loading captions: " + self._url);
+
+          if (next) {
+            next(true);
+          }
+        });
+      }
+    }, {
+      key: "getCaptions",
+      value: function getCaptions() {
+        return this._captions;
+      }
+    }, {
+      key: "getCaptionAtTime",
+      value: function getCaptionAtTime(time) {
+        if (this._captions != undefined) {
+          for (var i = 0; i < this._captions.length; ++i) {
+            var l_cap = this._captions[i];
+
+            if (l_cap.begin <= time && l_cap.end >= time) {
+              return l_cap;
+            }
+          }
+        }
+
+        return undefined;
+      }
+    }, {
+      key: "getCaptionById",
+      value: function getCaptionById(id) {
+        if (this._captions != undefined) {
+          for (var i = 0; i < this._captions.length; ++i) {
+            var l_cap = this._captions[i];
+
+            if (l_cap.id == id) {
+              return l_cap;
+            }
+          }
+        }
+
+        return undefined;
+      }
+    }, {
+      key: "search",
+      value: function search(txt, next) {
+        var _this101 = this;
+
+        var self = this;
+
+        if (this._index == undefined) {
+          if (next) {
+            next(true, "Error. No captions found.");
+          }
+        } else {
+          var results = [];
+          paella.player.videoContainer.trimming().then(function (trimming) {
+            _this101._index.search(txt).forEach(function (s) {
+              var c = self.getCaptionById(s.ref);
+
+              if (trimming.enabled && (c.end < trimming.start || c.begin > trimming.end)) {
+                return;
+              }
+
+              results.push({
+                time: c.begin,
+                content: c.content,
+                score: s.score
+              });
+            });
+
+            if (next) {
+              next(false, results);
+            }
+          });
+        }
+      }
+    }]);
+
+    return Caption;
+  }();
+
+  paella.captions.Caption = Caption;
+
+  var CaptionParserPlugIn =
+  /*#__PURE__*/
+  function (_paella$FastLoadPlugi) {
+    _inherits(CaptionParserPlugIn, _paella$FastLoadPlugi);
+
+    function CaptionParserPlugIn() {
+      _classCallCheck(this, CaptionParserPlugIn);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(CaptionParserPlugIn).apply(this, arguments));
+    }
+
+    _createClass(CaptionParserPlugIn, [{
+      key: "getIndex",
+      value: function getIndex() {
+        return -1;
+      }
+    }, {
+      key: "parse",
+      value: function parse(content, lang, next) {
+        throw new Error('paella.CaptionParserPlugIn#parse must be overridden by subclass');
+      }
+    }, {
+      key: "type",
+      get: function get() {
+        return 'captionParser';
+      }
+    }, {
+      key: "ext",
+      get: function get() {
+        if (!this._ext) {
+          this._ext = [];
+        }
+
+        return this._ext;
+      }
+    }]);
+
+    return CaptionParserPlugIn;
+  }(paella.FastLoadPlugin);
+
+  paella.CaptionParserPlugIn = CaptionParserPlugIn;
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var searchServiceManager = {
+    _plugins: [],
+    addPlugin: function addPlugin(plugin) {
+      this._plugins.push(plugin);
+    },
+    initialize: function initialize() {
+      paella.pluginManager.setTarget('SearchServicePlugIn', this);
+    }
+  };
+
+  var SearchCallback =
+  /*#__PURE__*/
+  function (_base$AsyncLoaderCall2) {
+    _inherits(SearchCallback, _base$AsyncLoaderCall2);
+
+    function SearchCallback(plugin, text) {
+      var _this102;
+
+      _classCallCheck(this, SearchCallback);
+
+      _this102 = _possibleConstructorReturn(this, _getPrototypeOf(SearchCallback).call(this));
+      _this102.name = "searchCallback";
+      _this102.plugin = plugin;
+      _this102.text = text;
+      return _this102;
+    }
+
+    _createClass(SearchCallback, [{
+      key: "load",
+      value: function load(onSuccess, onError) {
+        var _this103 = this;
+
+        this.plugin.search(this.text, function (err, result) {
+          if (err) {
+            onError();
+          } else {
+            _this103.result = result;
+            onSuccess();
+          }
+        });
+      }
+    }]);
+
+    return SearchCallback;
+  }(base.AsyncLoaderCallback);
+
+  paella.searchService = {
+    search: function search(text, next) {
+      var asyncLoader = new base.AsyncLoader();
+      paella.userTracking.log("paella:searchService:search", text);
+
+      searchServiceManager._plugins.forEach(function (p) {
+        asyncLoader.addCallback(new SearchCallback(p, text));
+      });
+
+      asyncLoader.load(function () {
+        var res = [];
+        Object.keys(asyncLoader.callbackArray).forEach(function (k) {
+          res = res.concat(asyncLoader.getCallback(k).result);
+        });
+        if (next) next(false, res);
+      }, function () {
+        if (next) next(true);
+      });
+    }
+  };
+
+  var SearchServicePlugIn =
+  /*#__PURE__*/
+  function (_paella$FastLoadPlugi2) {
+    _inherits(SearchServicePlugIn, _paella$FastLoadPlugi2);
+
+    function SearchServicePlugIn() {
+      _classCallCheck(this, SearchServicePlugIn);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(SearchServicePlugIn).apply(this, arguments));
+    }
+
+    _createClass(SearchServicePlugIn, [{
+      key: "getIndex",
+      value: function getIndex() {
+        return -1;
+      }
+    }, {
+      key: "search",
+      value: function search(text, next) {
+        throw new Error('paella.SearchServicePlugIn#search must be overridden by subclass');
+      }
+    }, {
+      key: "type",
+      get: function get() {
+        return 'SearchServicePlugIn';
+      }
+    }]);
+
+    return SearchServicePlugIn;
+  }(paella.FastLoadPlugin);
+
+  paella.SearchServicePlugIn = SearchServicePlugIn;
+  searchServiceManager.initialize();
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var userTrackingManager = {
+    _plugins: [],
+    addPlugin: function addPlugin(plugin) {
+      var _this104 = this;
+
+      plugin.checkEnabled(function (isEnabled) {
+        if (isEnabled) {
+          plugin.setup();
+
+          _this104._plugins.push(plugin);
+        }
+      });
+    },
+    initialize: function initialize() {
+      paella.pluginManager.setTarget('userTrackingSaverPlugIn', this);
+    }
+  };
+  paella.userTracking = {};
+  userTrackingManager.initialize();
+
+  var SaverPlugIn =
+  /*#__PURE__*/
+  function (_paella$FastLoadPlugi3) {
+    _inherits(SaverPlugIn, _paella$FastLoadPlugi3);
+
+    function SaverPlugIn() {
+      _classCallCheck(this, SaverPlugIn);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(SaverPlugIn).apply(this, arguments));
+    }
+
+    _createClass(SaverPlugIn, [{
+      key: "getIndex",
+      value: function getIndex() {
+        return -1;
+      }
+    }, {
+      key: "checkEnabled",
+      value: function checkEnabled(onSuccess) {
+        onSuccess(true);
+      }
+    }, {
+      key: "log",
+      value: function log(event, params) {
+        throw new Error('paella.userTracking.SaverPlugIn#log must be overridden by subclass');
+      }
+    }, {
+      key: "type",
+      get: function get() {
+        return 'userTrackingSaverPlugIn';
+      }
+    }]);
+
+    return SaverPlugIn;
+  }(paella.FastLoadPlugin);
+
+  paella.userTracking.SaverPlugIn = SaverPlugIn;
+  var evsentsToLog = {};
+
+  paella.userTracking.log = function (event, params) {
+    if (evsentsToLog[event] != undefined) {
+      evsentsToLog[event].cancel();
+    }
+
+    evsentsToLog[event] = new base.Timer(function (timer) {
+      userTrackingManager._plugins.forEach(function (p) {
+        p.log(event, params);
+      });
+
+      delete evsentsToLog[event];
+    }, 500);
+  }; //////////////////////////////////////////////////////////
+  // Log automatic events
+  //////////////////////////////////////////////////////////
+  // Log simple events
+
+
+  [paella.events.play, paella.events.pause, paella.events.endVideo, paella.events.showEditor, paella.events.hideEditor, paella.events.enterFullscreen, paella.events.exitFullscreen, paella.events.loadComplete].forEach(function (event) {
+    paella.events.bind(event, function (ev, params) {
+      paella.userTracking.log(event);
+    });
+  }); // Log show/hide PopUp
+
+  [paella.events.showPopUp, paella.events.hidePopUp].forEach(function (event) {
+    paella.events.bind(event, function (ev, params) {
+      paella.userTracking.log(event, params.identifier);
+    });
+  }); // Log captions Events
+
+  [// paella.events.captionAdded, 
+  paella.events.captionsEnabled, paella.events.captionsDisabled].forEach(function (event) {
+    paella.events.bind(event, function (ev, params) {
+      var log;
+
+      if (params != undefined) {
+        var c = paella.captions.getCaptions(params);
+        log = {
+          id: params,
+          lang: c._lang,
+          url: c._url
+        };
+      }
+
+      paella.userTracking.log(event, log);
+    });
+  }); // Log setProfile
+
+  [paella.events.setProfile].forEach(function (event) {
+    paella.events.bind(event, function (ev, params) {
+      paella.userTracking.log(event, params.profileName);
+    });
+  }); // Log seek events
+
+  [paella.events.seekTo, paella.events.seekToTime].forEach(function (event) {
+    paella.events.bind(event, function (ev, params) {
+      var log;
+
+      try {
+        JSON.stringify(params);
+        log = params;
+      } catch (e) {}
+
+      paella.userTracking.log(event, log);
+    });
+  }); // Log param events
+
+  [paella.events.setVolume, paella.events.resize, paella.events.setPlaybackRate, paella.events.qualityChanged].forEach(function (event) {
+    paella.events.bind(event, function (ev, params) {
+      var log;
+
+      try {
+        JSON.stringify(params);
+        log = params;
+      } catch (e) {}
+
+      paella.userTracking.log(event, log);
+    });
+  });
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var TimeControl =
+  /*#__PURE__*/
+  function (_paella$DomNode9) {
+    _inherits(TimeControl, _paella$DomNode9);
+
+    function TimeControl(id) {
+      var _this105;
+
+      _classCallCheck(this, TimeControl);
+
+      _this105 = _possibleConstructorReturn(this, _getPrototypeOf(TimeControl).call(this, 'div', id, {
+        left: "0%"
+      }));
+      _this105.domElement.className = 'timeControlOld';
+      _this105.domElement.className = 'timeControl'; //this.domElement.innerText = "0:00:00";
+
+      var thisClass = _assertThisInitialized(_this105);
+
+      paella.events.bind(paella.events.timeupdate, function (event, params) {
+        thisClass.onTimeUpdate(params);
+      });
+      return _this105;
+    }
+
+    _createClass(TimeControl, [{
+      key: "onTimeUpdate",
+      value: function onTimeUpdate(memo) {
+        this.domElement.innerText = this.secondsToHours(parseInt(memo.currentTime));
+      }
+    }, {
+      key: "secondsToHours",
+      value: function secondsToHours(sec_numb) {
+        var hours = Math.floor(sec_numb / 3600);
+        var minutes = Math.floor((sec_numb - hours * 3600) / 60);
+        var seconds = sec_numb - hours * 3600 - minutes * 60;
+
+        if (hours < 10) {
+          hours = "0" + hours;
+        }
+
+        if (minutes < 10) {
+          minutes = "0" + minutes;
+        }
+
+        if (seconds < 10) {
+          seconds = "0" + seconds;
+        }
+
+        return hours + ':' + minutes + ':' + seconds;
+      }
+    }]);
+
+    return TimeControl;
+  }(paella.DomNode);
+
+  paella.TimeControl = TimeControl;
+
+  var PlaybackBar =
+  /*#__PURE__*/
+  function (_paella$DomNode10) {
+    _inherits(PlaybackBar, _paella$DomNode10);
+
+    function PlaybackBar(id) {
+      var _this106;
+
+      _classCallCheck(this, PlaybackBar);
+
+      var style = {};
+      _this106 = _possibleConstructorReturn(this, _getPrototypeOf(PlaybackBar).call(this, 'div', id, style));
+      _this106.playbackFullId = '';
+      _this106.updatePlayBar = true;
+      _this106.timeControlId = '';
+      _this106._images = null;
+      _this106._keys = null;
+      _this106._prev = null;
+      _this106._next = null;
+      _this106._videoLength = null;
+      _this106._lastSrc = null;
+      _this106._aspectRatio = 1.777777778;
+      _this106._hasSlides = null;
+      _this106._imgNode = null;
+      _this106._canvas = null;
+      _this106.domElement.className = "playbackBar";
+
+      _this106.domElement.setAttribute("alt", ""); //this.domElement.setAttribute("title", "Timeline Slider");
+
+
+      _this106.domElement.setAttribute("aria-label", "Timeline Slider");
+
+      _this106.domElement.setAttribute("role", "slider");
+
+      _this106.domElement.setAttribute("aria-valuemin", "0");
+
+      _this106.domElement.setAttribute("aria-valuemax", "100");
+
+      _this106.domElement.setAttribute("aria-valuenow", "0");
+
+      _this106.domElement.setAttribute("tabindex", "1100");
+
+      $(_this106.domElement).keyup(function (event) {
+        var currentTime = 0;
+        var duration = 0;
+        paella.player.videoContainer.currentTime().then(function (t) {
+          currentTime = t;
+          return paella.player.videoContainer.duration();
+        }).then(function (d) {
+          duration = d;
+          var curr, selectedPosition;
+
+          switch (event.keyCode) {
+            case 37:
+              //Left
+              curr = 100 * currentTime / duration;
+              selectedPosition = curr - 5;
+              paella.player.videoContainer.seekTo(selectedPosition);
+              break;
+
+            case 39:
+              //Right
+              curr = 100 * currentTime / duration;
+              selectedPosition = curr + 5;
+              paella.player.videoContainer.seekTo(selectedPosition);
+              break;
+          }
+        });
+      });
+      _this106.playbackFullId = id + "_full";
+      _this106.timeControlId = id + "_timeControl";
+      var playbackFull = new paella.DomNode('div', _this106.playbackFullId, {
+        width: '0%'
+      });
+      playbackFull.domElement.className = "playbackBarFull";
+
+      _this106.addNode(playbackFull);
+
+      _this106.addNode(new paella.TimeControl(_this106.timeControlId));
+
+      var thisClass = _assertThisInitialized(_this106);
+
+      paella.events.bind(paella.events.timeupdate, function (event, params) {
+        thisClass.onTimeUpdate(params);
+      });
+      $(_this106.domElement).bind('mousedown', function (event) {
+        paella.utils.mouseManager.down(thisClass, event);
+        event.stopPropagation();
+      });
+      $(playbackFull.domElement).bind('mousedown', function (event) {
+        paella.utils.mouseManager.down(thisClass, event);
+        event.stopPropagation();
+      });
+
+      if (!base.userAgent.browser.IsMobileVersion) {
+        $(_this106.domElement).bind('mousemove', function (event) {
+          thisClass.movePassive(event);
+          paella.utils.mouseManager.move(event);
+        });
+        $(playbackFull.domElement).bind('mousemove', function (event) {
+          paella.utils.mouseManager.move(event);
+        });
+        $(_this106.domElement).bind("mouseout", function (event) {
+          thisClass.mouseOut(event);
+        });
+      }
+
+      _this106.domElement.addEventListener('touchstart', function (event) {
+        paella.utils.mouseManager.down(thisClass, event);
+        event.stopPropagation();
+      }, false);
+
+      _this106.domElement.addEventListener('touchmove', function (event) {
+        thisClass.movePassive(event);
+        paella.utils.mouseManager.move(event);
+      }, false);
+
+      _this106.domElement.addEventListener('touchend', function (event) {
+        paella.utils.mouseManager.up(event);
+      }, false);
+
+      $(_this106.domElement).bind('mouseup', function (event) {
+        paella.utils.mouseManager.up(event);
+      });
+      $(playbackFull.domElement).bind('mouseup', function (event) {
+        paella.utils.mouseManager.up(event);
+      });
+
+      if (paella.player.isLiveStream()) {
+        $(_this106.domElement).hide();
+      }
+
+      paella.events.bind(paella.events.seekAvailabilityChanged, function (e, data) {
+        if (data.type != paella.SeekType.DISABLED) {
+          $(playbackFull.domElement).removeClass("disabled");
+        } else {
+          $(playbackFull.domElement).addClass("disabled");
+        }
+      });
+      return _this106;
+    }
+
+    _createClass(PlaybackBar, [{
+      key: "mouseOut",
+      value: function mouseOut(event) {
+        if (this._hasSlides) {
+          $("#divTimeImageOverlay").remove();
+        } else {
+          $("#divTimeOverlay").remove();
+        }
+      }
+    }, {
+      key: "drawTimeMarks",
+      value: function drawTimeMarks() {
+        var _this107 = this;
+
+        var trimming = {};
+        paella.player.videoContainer.trimming().then(function (t) {
+          trimming = t;
+          return _this107.imageSetup();
+        }).then(function () {
+          // Updated duration value. The duration may change during playback, because it's
+          // possible to set the trimming during playback (for instance, using a plugin)
+          var duration = trimming.enabled ? trimming.end - trimming.start : _this107._videoLength;
+          var parent = $("#playerContainer_controls_playback_playbackBar");
+
+          _this107.clearCanvas();
+
+          if (_this107._keys && paella.player.config.player.slidesMarks.enabled) {
+            _this107._keys.forEach(function (l) {
+              var timeInstant = parseInt(l) - trimming.start;
+
+              if (timeInstant > 0) {
+                var aux = timeInstant * parent.width() / _this107._videoLength; // conversion to canvas
+
+
+                _this107.drawTimeMark(aux);
+              }
+            });
+          }
+        });
+      }
+    }, {
+      key: "drawTimeMark",
+      value: function drawTimeMark(sec) {
+        var ht = 12; //default height value
+
+        var ctx = this.getCanvasContext();
+        ctx.fillStyle = paella.player.config.player.slidesMarks.color;
+        ctx.fillRect(sec, 0, 1, ht);
+      }
+    }, {
+      key: "clearCanvas",
+      value: function clearCanvas() {
+        if (this._canvas) {
+          var ctx = this.getCanvasContext();
+          ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
+        }
+      }
+    }, {
+      key: "getCanvas",
+      value: function getCanvas() {
+        if (!this._canvas) {
+          var parent = $("#playerContainer_controls_playback_playbackBar");
+          var canvas = document.createElement("canvas");
+          canvas.className = "playerContainer_controls_playback_playbackBar_canvas";
+          canvas.id = "playerContainer_controls_playback_playbackBar_canvas";
+          canvas.width = parent.width();
+          var ht = canvas.height = parent.height();
+          parent.prepend(canvas);
+          this._canvas = document.getElementById("playerContainer_controls_playback_playbackBar_canvas");
+        }
+
+        return this._canvas;
+      }
+    }, {
+      key: "getCanvasContext",
+      value: function getCanvasContext() {
+        return this.getCanvas().getContext("2d");
+      }
+    }, {
+      key: "movePassive",
+      value: function movePassive(event) {
+        var This = this;
+
+        function updateTimePreview(duration, trimming) {
+          // CONTROLS_BAR POSITON
+          var p = $(This.domElement);
+          var pos = p.offset();
+          var width = p.width();
+          var left = event.clientX - pos.left;
+          left = left < 0 ? 0 : left;
+          var position = left * 100 / width; // GET % OF THE STREAM
+
+          var time = position * duration / 100;
+
+          if (trimming.enabled) {
+            time += trimming.start;
+          }
+
+          var hou = Math.floor((time - trimming.start) / 3600) % 24;
+          hou = ("00" + hou).slice(hou.toString().length);
+          var min = Math.floor((time - trimming.start) / 60) % 60;
+          min = ("00" + min).slice(min.toString().length);
+          var sec = Math.floor((time - trimming.start) % 60);
+          sec = ("00" + sec).slice(sec.toString().length);
+          var timestr = hou + ":" + min + ":" + sec; // CREATING THE OVERLAY
+
+          if (This._hasSlides) {
+            if ($("#divTimeImageOverlay").length == 0) This.setupTimeImageOverlay(timestr, pos.top, width);else {
+              $("#divTimeOverlay")[0].innerText = timestr; //IF CREATED, UPDATE TIME AND IMAGE
+            } // CALL IMAGEUPDATE
+
+            This.imageUpdate(time);
+          } else {
+            if ($("#divTimeOverlay").length == 0) {
+              This.setupTimeOnly(timestr, pos.top, width);
+            } else {
+              $("#divTimeOverlay")[0].innerText = timestr;
+            }
+          } // UPDATE POSITION IMAGE OVERLAY
+
+
+          if (This._hasSlides) {
+            var ancho = $("#divTimeImageOverlay").width();
+            var posx = event.clientX - ancho / 2;
+
+            if (event.clientX > ancho / 2 + pos.left && event.clientX < pos.left + width - ancho / 2) {
+              // LEFT
+              $("#divTimeImageOverlay").css("left", posx); // CENTER THE DIV HOVER THE MOUSE
+            } else if (event.clientX < width / 2) $("#divTimeImageOverlay").css("left", pos.left);else $("#divTimeImageOverlay").css("left", pos.left + width - ancho);
+          } // UPDATE POSITION TIME OVERLAY
+
+
+          var ancho2 = $("#divTimeOverlay").width();
+          var posx2 = event.clientX - ancho2 / 2;
+
+          if (event.clientX > ancho2 / 2 + pos.left && event.clientX < pos.left + width - ancho2 / 2) {
+            $("#divTimeOverlay").css("left", posx2); // CENTER THE DIV HOVER THE MOUSE
+          } else if (event.clientX < width / 2) $("#divTimeOverlay").css("left", pos.left);else $("#divTimeOverlay").css("left", pos.left + width - ancho2 - 2);
+
+          if (This._hasSlides) {
+            $("#divTimeImageOverlay").css("bottom", $('.playbackControls').height());
+          }
+        }
+
+        paella.player.videoContainer.duration();
+        var duration = 0;
+        paella.player.videoContainer.duration().then(function (d) {
+          duration = d;
+          return paella.player.videoContainer.trimming();
+        }).then(function (trimming) {
+          updateTimePreview(duration, trimming);
+        });
+      }
+    }, {
+      key: "imageSetup",
+      value: function imageSetup() {
+        var _this108 = this;
+
+        return new Promise(function (resolve) {
+          paella.player.videoContainer.duration().then(function (duration) {
+            //  BRING THE IMAGE ARRAY TO LOCAL
+            _this108._images = {};
+            var n = paella.initDelegate.initParams.videoLoader.frameList;
+
+            if (!n || Object.keys(n).length === 0) {
+              _this108._hasSlides = false;
+              return;
+            } else {
+              _this108._hasSlides = true;
+            }
+
+            _this108._images = n; // COPY TO LOCAL
+
+            _this108._videoLength = duration; // SORT KEYS FOR SEARCH CLOSEST
+
+            _this108._keys = Object.keys(_this108._images);
+            _this108._keys = _this108._keys.sort(function (a, b) {
+              return parseInt(a) - parseInt(b);
+            }); // SORT FRAME NUMBERS STRINGS
+            //NEXT
+
+            _this108._next = 0;
+            _this108._prev = 0;
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "imageUpdate",
+      value: function imageUpdate(sec) {
+        var src = $("#imgOverlay").attr('src');
+        $(this._imgNode).show();
+
+        if (sec > this._next || sec < this._prev) {
+          src = this.getPreviewImageSrc(sec);
+
+          if (src) {
+            this._lastSrc = src;
+            $("#imgOverlay").attr('src', src); // UPDATING IMAGE
+          } else {
+            this.hideImg();
+          }
+        } // RELOAD IF OUT OF INTERVAL
+        else {
+            if (src != undefined) {
+              return;
+            } else {
+              $("#imgOverlay").attr('src', this._lastSrc);
+            } // KEEP LAST IMAGE
+
+          }
+      }
+    }, {
+      key: "hideImg",
+      value: function hideImg() {
+        $(this._imgNode).hide();
+      }
+    }, {
+      key: "getPreviewImageSrc",
+      value: function getPreviewImageSrc(sec) {
+        var keys = Object.keys(this._images);
+        keys.push(sec);
+        keys.sort(function (a, b) {
+          return parseInt(a) - parseInt(b);
+        });
+        var n = keys.indexOf(sec) - 1;
+        n = n > 0 ? n : 0;
+        var i = keys[n];
+        var next = keys[n + 2];
+        var prev = keys[n];
+        next = next == undefined ? keys.length - 1 : parseInt(next);
+        this._next = next;
+        prev = prev == undefined ? 0 : parseInt(prev);
+        this._prev = prev;
+        i = parseInt(i);
+
+        if (this._images[i]) {
+          return this._images[i].url || this._images[i].url;
+        } else return false;
+      }
+    }, {
+      key: "setupTimeImageOverlay",
+      value: function setupTimeImageOverlay(time_str, top, width) {
+        var div = document.createElement("div");
+        div.className = "divTimeImageOverlay";
+        div.id = "divTimeImageOverlay";
+        var aux = Math.round(width / 10);
+        div.style.width = Math.round(aux * self._aspectRatio) + "px"; //KEEP ASPECT RATIO 4:3
+        //div.style.height = Math.round(aux)+"px";
+
+        if (this._hasSlides) {
+          var img = document.createElement("img");
+          img.className = "imgOverlay";
+          img.id = "imgOverlay";
+          this._imgNode = img;
+          div.appendChild(img);
+        }
+
+        var div2 = document.createElement("div");
+        div2.className = "divTimeOverlay";
+        div2.style.top = top - 20 + "px";
+        div2.id = "divTimeOverlay";
+        div2.innerText = time_str;
+        div.appendChild(div2); //CHILD OF CONTROLS_BAR
+
+        $(this.domElement).parent().append(div);
+      }
+    }, {
+      key: "setupTimeOnly",
+      value: function setupTimeOnly(time_str, top, width) {
+        var div2 = document.createElement("div");
+        div2.className = "divTimeOverlay";
+        div2.style.top = top - 20 + "px";
+        div2.id = "divTimeOverlay";
+        div2.innerText = time_str; //CHILD OF CONTROLS_BAR
+
+        $(this.domElement).parent().append(div2);
+      }
+    }, {
+      key: "playbackFull",
+      value: function playbackFull() {
+        return this.getNode(this.playbackFullId);
+      }
+    }, {
+      key: "timeControl",
+      value: function timeControl() {
+        return this.getNode(this.timeControlId);
+      }
+    }, {
+      key: "setPlaybackPosition",
+      value: function setPlaybackPosition(percent) {
+        this.playbackFull().domElement.style.width = percent + '%';
+      }
+    }, {
+      key: "isSeeking",
+      value: function isSeeking() {
+        return !this.updatePlayBar;
+      }
+    }, {
+      key: "onTimeUpdate",
+      value: function onTimeUpdate(memo) {
+        if (this.updatePlayBar) {
+          var currentTime = memo.currentTime;
+          var duration = memo.duration;
+          this.setPlaybackPosition(currentTime * 100 / duration);
+        }
+      }
+    }, {
+      key: "down",
+      value: function down(event, x, y) {
+        this.updatePlayBar = false;
+        this.move(event, x, y);
+      }
+    }, {
+      key: "move",
+      value: function move(event, x, y) {
+        var width = $(this.domElement).width();
+        var selectedPosition = x - $(this.domElement).offset().left; // pixels
+
+        if (selectedPosition < 0) {
+          selectedPosition = 0;
+        } else if (selectedPosition > width) {
+          selectedPosition = 100;
+        } else {
+          selectedPosition = selectedPosition * 100 / width; // percent
+        }
+
+        this.setPlaybackPosition(selectedPosition);
+      }
+    }, {
+      key: "up",
+      value: function up(event, x, y) {
+        var width = $(this.domElement).width();
+        var selectedPosition = x - $(this.domElement).offset().left; // pixels
+
+        if (selectedPosition < 0) {
+          selectedPosition = 0;
+        } else if (selectedPosition > width) {
+          selectedPosition = 100;
+        } else {
+          selectedPosition = selectedPosition * 100 / width; // percent
+        }
+
+        paella.player.videoContainer.seekTo(selectedPosition);
+        this.updatePlayBar = true;
+      }
+    }, {
+      key: "onresize",
+      value: function onresize() {
+        var playbackBar = $("#playerContainer_controls_playback_playbackBar");
+        this.getCanvas().width = playbackBar.width();
+        this.drawTimeMarks();
+      }
+    }]);
+
+    return PlaybackBar;
+  }(paella.DomNode);
+
+  paella.PlaybackBar = PlaybackBar;
+
+  var PlaybackControl =
+  /*#__PURE__*/
+  function (_paella$DomNode11) {
+    _inherits(PlaybackControl, _paella$DomNode11);
+
+    _createClass(PlaybackControl, [{
+      key: "addPlugin",
+      value: function addPlugin(plugin) {
+        var _this110 = this;
+
+        var id = 'buttonPlugin' + this.buttonPlugins.length;
+        this.buttonPlugins.push(plugin);
+        var button = paella.ButtonPlugin.BuildPluginButton(plugin, id);
+        button.plugin = plugin;
+        var expand = paella.ButtonPlugin.BuildPluginExpand(plugin, id);
+        plugin.button = button;
+        plugin._expandElement = expand;
+        this.pluginsContainer.domElement.appendChild(button);
+
+        if (expand) {
+          var This = this;
+          $(button).mouseover(function (evt) {
+            evt.target.plugin.expand();
+            This._expandedPlugin = evt.target.plugin;
+          });
+          this.pluginsContainer.domElement.appendChild(expand);
+        }
+
+        $(button).hide();
+        plugin.checkEnabled(function (isEnabled) {
+          var parent;
+
+          if (isEnabled) {
+            $(plugin.button).show();
+            paella.pluginManager.setupPlugin(plugin);
+            var id = 'buttonPlugin' + _this110.buttonPlugins.length;
+
+            if (plugin.getButtonType() == paella.ButtonPlugin.type.popUpButton) {
+              parent = _this110.popUpPluginContainer.domElement;
+              var popUpContent = paella.ButtonPlugin.BuildPluginPopUp(parent, plugin, id + '_container');
+
+              _this110.popUpPluginContainer.registerContainer(plugin.getName(), popUpContent, button, plugin);
+            } else if (plugin.getButtonType() == paella.ButtonPlugin.type.timeLineButton) {
+              parent = _this110.timeLinePluginContainer.domElement;
+              var timeLineContent = paella.ButtonPlugin.BuildPluginPopUp(parent, plugin, id + '_timeline');
+
+              _this110.timeLinePluginContainer.registerContainer(plugin.getName(), timeLineContent, button, plugin);
+            }
+          } else {
+            _this110.pluginsContainer.domElement.removeChild(plugin.button);
+          }
+        });
+      }
+    }]);
+
+    function PlaybackControl(id) {
+      var _this109;
+
+      _classCallCheck(this, PlaybackControl);
+
+      var style = {};
+      _this109 = _possibleConstructorReturn(this, _getPrototypeOf(PlaybackControl).call(this, 'div', id, style));
+      _this109.playbackBarId = '';
+      _this109.pluginsContainer = null;
+      _this109._popUpPluginContainer = null;
+      _this109._timeLinePluginContainer = null;
+      _this109.playbackPluginsWidth = 0;
+      _this109.popupPluginsWidth = 0;
+      _this109.minPlaybackBarSize = 120;
+      _this109.playbackBarInstance = null;
+      _this109.buttonPlugins = [];
+      _this109.domElement.className = 'playbackControls';
+      _this109.playbackBarId = id + '_playbackBar';
+
+      var thisClass = _assertThisInitialized(_this109);
+
+      _this109.pluginsContainer = new paella.DomNode('div', id + '_playbackBarPlugins');
+      _this109.pluginsContainer.domElement.className = 'playbackBarPlugins';
+
+      _this109.pluginsContainer.domElement.setAttribute("role", "toolbar");
+
+      _this109.addNode(_this109.pluginsContainer);
+
+      _this109.addNode(new paella.PlaybackBar(_this109.playbackBarId));
+
+      paella.pluginManager.setTarget('button', _assertThisInitialized(_this109));
+      $(window).mousemove(function (evt) {
+        if (_this109._expandedPlugin && $(window).height() - evt.clientY > 50) {
+          _this109._expandedPlugin.contract();
+
+          _this109._expandPlugin = null;
+        }
+      });
+      return _this109;
+    }
+
+    _createClass(PlaybackControl, [{
+      key: "showPopUp",
+      value: function showPopUp(identifier, button) {
+        this.popUpPluginContainer.showContainer(identifier, button);
+        this.timeLinePluginContainer.showContainer(identifier, button);
+      }
+    }, {
+      key: "hidePopUp",
+      value: function hidePopUp(identifier, button) {
+        this.popUpPluginContainer.hideContainer(identifier, button);
+        this.timeLinePluginContainer.hideContainer(identifier, button);
+      }
+    }, {
+      key: "playbackBar",
+      value: function playbackBar() {
+        if (this.playbackBarInstance == null) {
+          this.playbackBarInstance = this.getNode(this.playbackBarId);
+        }
+
+        return this.playbackBarInstance;
+      }
+    }, {
+      key: "onresize",
+      value: function onresize() {
+        var windowSize = $(this.domElement).width();
+        base.log.debug("resize playback bar (width=" + windowSize + ")");
+
+        for (var i = 0; i < this.buttonPlugins.length; ++i) {
+          var plugin = this.buttonPlugins[i];
+          var minSize = plugin.getMinWindowSize();
+
+          if (minSize > 0 && windowSize < minSize) {
+            plugin.hideUI();
+          } else {
+            plugin.checkVisibility();
+          }
+        }
+
+        this.getNode(this.playbackBarId).onresize();
+      }
+    }, {
+      key: "popUpPluginContainer",
+      get: function get() {
+        if (!this._popUpPluginContainer) {
+          this._popUpPluginContainer = new paella.PopUpContainer(this.identifier + '_popUpPluginContainer', 'popUpPluginContainer');
+          this.addNode(this._popUpPluginContainer);
+        }
+
+        return this._popUpPluginContainer;
+      }
+    }, {
+      key: "timeLinePluginContainer",
+      get: function get() {
+        if (!this._timeLinePluginContainer) {
+          this._timeLinePluginContainer = new paella.TimelineContainer(this.identifier + '_timelinePluginContainer', 'timelinePluginContainer');
+          this.addNode(this._timeLinePluginContainer);
+        }
+
+        return this._timeLinePluginContainer;
+      }
+    }]);
+
+    return PlaybackControl;
+  }(paella.DomNode);
+
+  paella.PlaybackControl = PlaybackControl;
+
+  var ControlsContainer =
+  /*#__PURE__*/
+  function (_paella$DomNode12) {
+    _inherits(ControlsContainer, _paella$DomNode12);
+
+    _createClass(ControlsContainer, [{
+      key: "addPlugin",
+      value: function addPlugin(plugin) {
+        var id = 'videoOverlayButtonPlugin' + this.buttonPlugins.length;
+        this.buttonPlugins.push(plugin);
+        var button = paella.ButtonPlugin.BuildPluginButton(plugin, id);
+        this.videoOverlayButtons.domElement.appendChild(button);
+        plugin.button = button;
+        $(button).hide();
+        plugin.checkEnabled(function (isEnabled) {
+          if (isEnabled) {
+            $(plugin.button).show();
+            paella.pluginManager.setupPlugin(plugin);
+          }
+        });
+      }
+    }]);
+
+    function ControlsContainer(id) {
+      var _this111;
+
+      _classCallCheck(this, ControlsContainer);
+
+      _this111 = _possibleConstructorReturn(this, _getPrototypeOf(ControlsContainer).call(this, 'div', id));
+      _this111.playbackControlId = '';
+      _this111.editControlId = '';
+      _this111.isEnabled = true;
+      _this111.autohideTimer = null;
+      _this111.hideControlsTimeMillis = 3000;
+      _this111.playbackControlInstance = null;
+      _this111.videoOverlayButtons = null;
+      _this111.buttonPlugins = [];
+      _this111._hidden = false;
+      _this111._over = false;
+      _this111.viewControlId = id + '_view';
+      _this111.playbackControlId = id + '_playback';
+      _this111.editControlId = id + '_editor';
+
+      _this111.addNode(new paella.PlaybackControl(_this111.playbackControlId));
+
+      var thisClass = _assertThisInitialized(_this111);
+
+      paella.events.bind(paella.events.showEditor, function (event) {
+        thisClass.onShowEditor();
+      });
+      paella.events.bind(paella.events.hideEditor, function (event) {
+        thisClass.onHideEditor();
+      });
+      paella.events.bind(paella.events.play, function (event) {
+        thisClass.onPlayEvent();
+      });
+      paella.events.bind(paella.events.pause, function (event) {
+        thisClass.onPauseEvent();
+      });
+      $(document).mousemove(function (event) {
+        paella.player.controls.restartHideTimer();
+      });
+      $(_this111.domElement).bind("mousemove", function (event) {
+        thisClass._over = true;
+      });
+      $(_this111.domElement).bind("mouseout", function (event) {
+        thisClass._over = false;
+      });
+      paella.events.bind(paella.events.endVideo, function (event) {
+        thisClass.onEndVideoEvent();
+      });
+      paella.events.bind('keydown', function (event) {
+        thisClass.onKeyEvent();
+      });
+      _this111.videoOverlayButtons = new paella.DomNode('div', id + '_videoOverlayButtonPlugins');
+      _this111.videoOverlayButtons.domElement.className = 'videoOverlayButtonPlugins';
+
+      _this111.videoOverlayButtons.domElement.setAttribute("role", "toolbar");
+
+      _this111.addNode(_this111.videoOverlayButtons);
+
+      paella.pluginManager.setTarget('videoOverlayButton', _assertThisInitialized(_this111));
+      return _this111;
+    }
+
+    _createClass(ControlsContainer, [{
+      key: "onShowEditor",
+      value: function onShowEditor() {
+        var editControl = this.editControl();
+        if (editControl) $(editControl.domElement).hide();
+      }
+    }, {
+      key: "onHideEditor",
+      value: function onHideEditor() {
+        var editControl = this.editControl();
+        if (editControl) $(editControl.domElement).show();
+      }
+    }, {
+      key: "enterEditMode",
+      value: function enterEditMode() {
+        var playbackControl = this.playbackControl();
+        var editControl = this.editControl();
+
+        if (playbackControl && editControl) {
+          $(playbackControl.domElement).hide();
+        }
+      }
+    }, {
+      key: "exitEditMode",
+      value: function exitEditMode() {
+        var playbackControl = this.playbackControl();
+        var editControl = this.editControl();
+
+        if (playbackControl && editControl) {
+          $(playbackControl.domElement).show();
+        }
+      }
+    }, {
+      key: "playbackControl",
+      value: function playbackControl() {
+        if (this.playbackControlInstance == null) {
+          this.playbackControlInstance = this.getNode(this.playbackControlId);
+        }
+
+        return this.playbackControlInstance;
+      }
+    }, {
+      key: "editControl",
+      value: function editControl() {
+        return this.getNode(this.editControlId);
+      }
+    }, {
+      key: "disable",
+      value: function disable() {
+        this.isEnabled = false;
+        this.hide();
+      }
+    }, {
+      key: "enable",
+      value: function enable() {
+        this.isEnabled = true;
+        this.show();
+      }
+    }, {
+      key: "isHidden",
+      value: function isHidden() {
+        return this._hidden;
+      }
+    }, {
+      key: "hide",
+      value: function hide() {
+        var This = this;
+        this._doHide = true;
+
+        function hideIfNotCanceled() {
+          if (This._doHide) {
+            $(This.domElement).css({
+              opacity: 0.0
+            });
+            $(This.domElement).hide();
+            This.domElement.setAttribute('aria-hidden', 'true');
+            This._hidden = true;
+            paella.events.trigger(paella.events.controlBarDidHide);
+          }
+        }
+
+        paella.events.trigger(paella.events.controlBarWillHide);
+
+        if (this._doHide) {
+          if (!base.userAgent.browser.IsMobileVersion && !base.userAgent.browser.Explorer) {
+            $(this.domElement).animate({
+              opacity: 0.0
+            }, {
+              duration: 300,
+              complete: hideIfNotCanceled
+            });
+          } else {
+            hideIfNotCanceled();
+          }
+        }
+      }
+    }, {
+      key: "showPopUp",
+      value: function showPopUp(identifier) {
+        this.playbackControl().showPopUp(identifier);
+      }
+    }, {
+      key: "hidePopUp",
+      value: function hidePopUp(identifier) {
+        this.playbackControl().hidePopUp(identifier);
+      }
+    }, {
+      key: "show",
+      value: function show() {
+        if (this.isEnabled) {
+          $(this.domElement).stop();
+          this._doHide = false;
+          this.domElement.style.opacity = 1.0;
+          this.domElement.setAttribute('aria-hidden', 'false');
+          this._hidden = false;
+          $(this.domElement).show();
+          paella.events.trigger(paella.events.controlBarDidShow);
+        }
+      }
+    }, {
+      key: "autohideTimeout",
+      value: function autohideTimeout() {
+        var playbackBar = this.playbackControl().playbackBar();
+
+        if (playbackBar.isSeeking() || this._over) {
+          paella.player.controls.restartHideTimer();
+        } else {
+          paella.player.controls.hideControls();
+        }
+      }
+    }, {
+      key: "hideControls",
+      value: function hideControls() {
+        var _this112 = this;
+
+        paella.player.videoContainer.paused().then(function (paused) {
+          if (!paused) {
+            _this112.hide();
+          } else {
+            _this112.show();
+          }
+        });
+      }
+    }, {
+      key: "showControls",
+      value: function showControls() {
+        this.show();
+      }
+    }, {
+      key: "onPlayEvent",
+      value: function onPlayEvent() {
+        this.restartHideTimer();
+      }
+    }, {
+      key: "onPauseEvent",
+      value: function onPauseEvent() {
+        this.clearAutohideTimer();
+      }
+    }, {
+      key: "onEndVideoEvent",
+      value: function onEndVideoEvent() {
+        this.show();
+        this.clearAutohideTimer();
+      }
+    }, {
+      key: "onKeyEvent",
+      value: function onKeyEvent() {
+        this.restartHideTimer();
+        paella.player.videoContainer.paused().then(function (paused) {
+          if (!paused) {
+            paella.player.controls.restartHideTimer();
+          }
+        });
+      }
+    }, {
+      key: "cancelHideBar",
+      value: function cancelHideBar() {
+        this.restartTimerEvent();
+      }
+    }, {
+      key: "restartTimerEvent",
+      value: function restartTimerEvent() {
+        var _this113 = this;
+
+        if (this.isHidden()) {
+          this.showControls();
+        }
+
+        this._doHide = false;
+        paella.player.videoContainer.paused(function (paused) {
+          if (!paused) {
+            _this113.restartHideTimer();
+          }
+        });
+      }
+    }, {
+      key: "clearAutohideTimer",
+      value: function clearAutohideTimer() {
+        if (this.autohideTimer != null) {
+          this.autohideTimer.cancel();
+          this.autohideTimer = null;
+        }
+      }
+    }, {
+      key: "restartHideTimer",
+      value: function restartHideTimer() {
+        this.showControls();
+        this.clearAutohideTimer();
+        var thisClass = this;
+        this.autohideTimer = new base.Timer(function (timer) {
+          thisClass.autohideTimeout();
+        }, this.hideControlsTimeMillis);
+      }
+    }, {
+      key: "onresize",
+      value: function onresize() {
+        this.playbackControl().onresize();
+      }
+    }]);
+
+    return ControlsContainer;
+  }(paella.DomNode);
+
+  paella.ControlsContainer = ControlsContainer;
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var LoaderContainer =
+  /*#__PURE__*/
+  function (_paella$DomNode13) {
+    _inherits(LoaderContainer, _paella$DomNode13);
+
+    function LoaderContainer(id) {
+      var _this114;
+
+      _classCallCheck(this, LoaderContainer);
+
+      _this114 = _possibleConstructorReturn(this, _getPrototypeOf(LoaderContainer).call(this, 'div', id, {
+        position: 'fixed',
+        backgroundColor: 'white',
+        opacity: '0.7',
+        top: '0px',
+        left: '0px',
+        right: '0px',
+        bottom: '0px',
+        zIndex: 10000
+      }));
+      _this114.timer = null;
+      _this114.loader = null;
+      _this114.loaderPosition = 0;
+      _this114.loader = _this114.addNode(new paella.DomNode('i', '', {
+        width: "100px",
+        height: "100px",
+        color: "black",
+        display: "block",
+        marginLeft: "auto",
+        marginRight: "auto",
+        marginTop: "32%",
+        fontSize: "100px"
+      }));
+      _this114.loader.domElement.className = "icon-spinner";
+      paella.events.bind(paella.events.loadComplete, function (event, params) {
+        _this114.loadComplete(params);
+      });
+      _this114.timer = new base.Timer(function (timer) {
+        //thisClass.loaderPosition -= 128;
+        //thisClass.loader.domElement.style.backgroundPosition = thisClass.loaderPosition + 'px';
+        _this114.loader.domElement.style.transform = "rotate(".concat(_this114.loaderPosition, "deg");
+        _this114.loaderPosition += 45;
+      }, 250);
+      _this114.timer.repeat = true;
+      return _this114;
+    }
+
+    _createClass(LoaderContainer, [{
+      key: "loadComplete",
+      value: function loadComplete(params) {
+        $(this.domElement).hide();
+        this.timer.repeat = false;
+      }
+    }]);
+
+    return LoaderContainer;
+  }(paella.DomNode);
+
+  paella.LoaderContainer = LoaderContainer;
+  paella.Keys = {
+    Space: 32,
+    Left: 37,
+    Up: 38,
+    Right: 39,
+    Down: 40,
+    A: 65,
+    B: 66,
+    C: 67,
+    D: 68,
+    E: 69,
+    F: 70,
+    G: 71,
+    H: 72,
+    I: 73,
+    J: 74,
+    K: 75,
+    L: 76,
+    M: 77,
+    N: 78,
+    O: 79,
+    P: 80,
+    Q: 81,
+    R: 82,
+    S: 83,
+    T: 84,
+    U: 85,
+    V: 86,
+    W: 87,
+    X: 88,
+    Y: 89,
+    Z: 90
+  };
+
+  var KeyPlugin =
+  /*#__PURE__*/
+  function (_paella$FastLoadPlugi4) {
+    _inherits(KeyPlugin, _paella$FastLoadPlugi4);
+
+    function KeyPlugin() {
+      _classCallCheck(this, KeyPlugin);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(KeyPlugin).apply(this, arguments));
+    }
+
+    _createClass(KeyPlugin, [{
+      key: "onKeyPress",
+      value: function onKeyPress(key) {
+        console.log(key);
+        return false;
+      }
+    }, {
+      key: "type",
+      get: function get() {
+        return 'keyboard';
+      }
+    }]);
+
+    return KeyPlugin;
+  }(paella.FastLoadPlugin);
+
+  paella.KeyPlugin = KeyPlugin;
+  var g_keyboardEventSet = false;
+
+  var KeyManager =
+  /*#__PURE__*/
+  function () {
+    _createClass(KeyManager, [{
+      key: "isPlaying",
+      get: function get() {
+        return this._isPlaying;
+      },
+      set: function set(p) {
+        this._isPlaying = p;
+      }
+    }, {
+      key: "enabled",
+      get: function get() {
+        return this._enabled !== undefined ? this._enabled : true;
+      },
+      set: function set(e) {
+        this._enabled = e;
+      }
+    }]);
+
+    function KeyManager() {
+      _classCallCheck(this, KeyManager);
+
+      this._isPlaying = false;
+      var thisClass = this;
+      paella.events.bind(paella.events.loadComplete, function (event, params) {
+        thisClass.loadComplete(event, params);
+      });
+      paella.events.bind(paella.events.play, function (event) {
+        thisClass.onPlay();
+      });
+      paella.events.bind(paella.events.pause, function (event) {
+        thisClass.onPause();
+      });
+      paella.pluginManager.setTarget('keyboard', this);
+      this._pluginList = [];
+    }
+
+    _createClass(KeyManager, [{
+      key: "addPlugin",
+      value: function addPlugin(plugin) {
+        var _this115 = this;
+
+        if (plugin.checkEnabled(function (e) {
+          _this115._pluginList.push(plugin);
+
+          plugin.setup();
+        })) ;
+      }
+    }, {
+      key: "loadComplete",
+      value: function loadComplete(event, params) {
+        var _this116 = this;
+
+        if (g_keyboardEventSet) {
+          return;
+        }
+
+        paella.events.bind("keyup", function (event) {
+          _this116.keyUp(event);
+        });
+        g_keyboardEventSet = true;
+      }
+    }, {
+      key: "onPlay",
+      value: function onPlay() {
+        this.isPlaying = true;
+      }
+    }, {
+      key: "onPause",
+      value: function onPause() {
+        this.isPlaying = false;
+      }
+    }, {
+      key: "keyUp",
+      value: function keyUp(event) {
+        if (!this.enabled) return;
+
+        this._pluginList.some(function (plugin) {
+          return plugin.onKeyPress(event);
+        });
+      }
+    }]);
+
+    return KeyManager;
+  }();
+
+  paella.keyManager = new KeyManager();
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var VideoLoader =
+  /*#__PURE__*/
+  function () {
+    function VideoLoader() {
+      _classCallCheck(this, VideoLoader);
+
+      this.metadata = {
+        // Video metadata
+        title: "",
+        duration: 0
+      };
+      this.streams = []; // {sources:{mp4:{src:"videourl.mp4",type:"video/mp4"},
+      //			 ogg:{src:"videourl.ogv",type:"video/ogg"},
+      //			 webm:{src:"videourl.webm",type:"video/webm"},
+      //			 flv:{src:"videourl.flv",type:"video/x-flv"},
+      //			 rtmp:{src:"rtmp://server.com/endpoint/url.loquesea",type="video/mp4 | video/x-flv"},
+      //			 image:{frames:{frame_1:'frame_1.jpg',...frame_n:'frame_n.jpg'},duration:183},
+      //	preview:'video_preview.jpg'}
+
+      this.frameList = []; // frameList[timeInstant] = { id:"frame_id", mimetype:"image/jpg", time:timeInstant, url:"image_url"}
+
+      this.loadStatus = false;
+      this.codecStatus = false;
+    }
+
+    _createClass(VideoLoader, [{
+      key: "getMetadata",
+      value: function getMetadata() {
+        return this.metadata;
+      }
+    }, {
+      key: "getVideoId",
+      value: function getVideoId() {
+        return paella.initDelegate.getId();
+      }
+    }, {
+      key: "getVideoUrl",
+      value: function getVideoUrl() {
+        // This function must to return the base video URL
+        return "";
+      }
+    }, {
+      key: "getDataUrl",
+      value: function getDataUrl() {// This function must to return the location of the video data file
+      }
+    }, {
+      key: "loadVideo",
+      value: function loadVideo(onSuccess) {
+        // This function must to:
+        //	- load this.streams and this.frameList
+        // 	- Check streams compatibility using this.isStreamCompatible(streamIndex)
+        //	- Set this.loadStatus = true if load is Ok, or false if something gone wrong
+        //	- Set this.codecStatus = true if the browser can reproduce all streams
+        //	- Call onSuccess()
+        onSuccess();
+      }
+    }]);
+
+    return VideoLoader;
+  }();
+
+  paella.VideoLoader = VideoLoader;
+
+  var AccessControl =
+  /*#__PURE__*/
+  function () {
+    function AccessControl() {
+      _classCallCheck(this, AccessControl);
+    }
+
+    _createClass(AccessControl, [{
+      key: "canRead",
+      value: function canRead() {
+        return paella_DeferredResolved(true);
+      }
+    }, {
+      key: "canWrite",
+      value: function canWrite() {
+        return paella_DeferredResolved(false);
+      }
+    }, {
+      key: "userData",
+      value: function userData() {
+        return paella_DeferredResolved({
+          username: 'anonymous',
+          name: 'Anonymous',
+          avatar: paella.utils.folders.resources() + '/images/default_avatar.png',
+          isAnonymous: true
+        });
+      }
+    }, {
+      key: "getAuthenticationUrl",
+      value: function getAuthenticationUrl(callbackParams) {
+        var authCallback = this._authParams.authCallbackName && window[this._authParams.authCallbackName];
+
+        if (!authCallback && paella.player.config.auth) {
+          authCallback = paella.player.config.auth.authCallbackName && window[paella.player.config.auth.authCallbackName];
+        }
+
+        if (typeof authCallback == "function") {
+          return authCallback(callbackParams);
+        }
+
+        return "";
+      }
+    }]);
+
+    return AccessControl;
+  }();
+
+  paella.AccessControl = AccessControl;
+
+  var PlayerBase =
+  /*#__PURE__*/
+  function () {
+    _createClass(PlayerBase, [{
+      key: "checkCompatibility",
+      value: function checkCompatibility() {
+        var message = "";
+
+        if (base.parameters.get('ignoreBrowserCheck')) {
+          return true;
+        }
+
+        if (base.userAgent.browser.IsMobileVersion) return true;
+        var isCompatible = base.userAgent.browser.Chrome || base.userAgent.browser.Safari || base.userAgent.browser.Firefox || base.userAgent.browser.Opera || base.userAgent.browser.Edge || base.userAgent.browser.Explorer && base.userAgent.browser.Version.major >= 9;
+
+        if (isCompatible) {
+          return true;
+        } else {
+          var errorMessage = base.dictionary.translate("It seems that your browser is not HTML 5 compatible");
+          paella.events.trigger(paella.events.error, {
+            error: errorMessage
+          });
+          message = errorMessage + '<div style="display:block;width:470px;height:140px;margin-left:auto;margin-right:auto;font-family:Verdana,sans-sherif;font-size:12px;"><a href="http://www.google.es/chrome" style="color:#004488;float:left;margin-right:20px;"><img src="' + paella.utils.folders.resources() + 'images/chrome.png" style="width:80px;height:80px" alt="Google Chrome"></img><p>Google Chrome</p></a><a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home" style="color:#004488;float:left;margin-right:20px;"><img src="' + paella.utils.folders.resources() + 'images/explorer.png" style="width:80px;height:80px" alt="Internet Explorer 9"></img><p>Internet Explorer 9</p></a><a href="http://www.apple.com/safari/" style="float:left;margin-right:20px;color:#004488"><img src="' + paella.utils.folders.resources() + 'images/safari.png" style="width:80px;height:80px" alt="Safari"></img><p>Safari 5</p></a><a href="http://www.mozilla.org/firefox/" style="float:left;color:#004488"><img src="' + paella.utils.folders.resources() + 'images/firefox.png" style="width:80px;height:80px" alt="Firefox"></img><p>Firefox 12</p></a></div>';
+          message += '<div style="margin-top:30px;"><a id="ignoreBrowserCheckLink" href="#" onclick="window.location = window.location + \'&ignoreBrowserCheck=true\'">' + base.dictionary.translate("Continue anyway") + '</a></div>';
+          paella.messageBox.showError(message, {
+            height: '40%'
+          });
+        }
+
+        return false;
+      }
+    }]);
+
+    function PlayerBase(playerId) {
+      _classCallCheck(this, PlayerBase);
+
+      this.config = null;
+      this.playerId = '';
+      this.mainContainer = null;
+      this.videoContainer = null;
+      this.controls = null;
+      this.accessControl = null;
+
+      if (base.parameters.get('log') != undefined) {
+        var log = 0;
+
+        switch (base.parameters.get('log')) {
+          case "error":
+            log = base.Log.kLevelError;
+            break;
+
+          case "warn":
+            log = base.Log.kLevelWarning;
+            break;
+
+          case "debug":
+            log = base.Log.kLevelDebug;
+            break;
+
+          case "log":
+          case "true":
+            log = base.Log.kLevelLog;
+            break;
+        }
+
+        base.log.setLevel(log);
+      }
+
+      if (!this.checkCompatibility()) {
+        base.log.debug('It seems that your browser is not HTML 5 compatible');
+      } else {
+        paella.player = this;
+        this.playerId = playerId;
+        this.mainContainer = $('#' + this.playerId)[0];
+        var thisClass = this;
+        paella.events.bind(paella.events.loadComplete, function (event, params) {
+          thisClass.loadComplete(event, params);
+        });
+      }
+    }
+
+    _createClass(PlayerBase, [{
+      key: "loadComplete",
+      value: function loadComplete(event, params) {}
+    }, {
+      key: "repoUrl",
+      get: function get() {
+        return paella.player.videoLoader._url || paella.player.config.standalone && paella.player.config.standalone.repository;
+      }
+    }, {
+      key: "videoUrl",
+      get: function get() {
+        return paella.player.videoLoader.getVideoUrl();
+      }
+    }, {
+      key: "dataUrl",
+      get: function get() {
+        return paella.player.videoLoader.getDataUrl();
+      }
+    }, {
+      key: "videoId",
+      get: function get() {
+        return paella.initDelegate.getId();
+      }
+    }, {
+      key: "auth",
+      get: function get() {
+        return {
+          login: function login(redirect) {
+            redirect = redirect || window.location.href;
+            var url = paella.initDelegate.initParams.accessControl.getAuthenticationUrl(redirect);
+
+            if (url) {
+              window.location.href = url;
+            }
+          },
+          // The following functions returns promises
+          canRead: function canRead() {
+            return paella.initDelegate.initParams.accessControl.canRead();
+          },
+          canWrite: function canWrite() {
+            return paella.initDelegate.initParams.accessControl.canWrite();
+          },
+          userData: function userData() {
+            return paella.initDelegate.initParams.accessControl.userData();
+          }
+        };
+      }
+    }]);
+
+    return PlayerBase;
+  }();
+
+  paella.PlayerBase = PlayerBase;
+
+  var InitDelegate =
+  /*#__PURE__*/
+  function () {
+    _createClass(InitDelegate, [{
+      key: "initParams",
+      get: function get() {
+        if (!this._initParams) {
+          this._initParams = {
+            configUrl: paella.baseUrl + 'config/config.json',
+            dictionaryUrl: paella.baseUrl + 'localization/paella',
+            accessControl: null,
+            videoLoader: null // Other parameters set externally:
+            //	config: json containing the configuration file
+            //	loadConfig: function(defaultConfigUrl). Returns a promise with the config.json data
+            //	url: attribute. Contains the repository base URL
+            //	videoUrl: function. Returns the base URL of the video (example: baseUrl + videoID)
+            //	dataUrl: function. Returns the full URL to get the data.json file
+            //	loadVideo: Function. Returns a promise with the data.json file content
+
+          };
+        }
+
+        return this._initParams;
+      }
+    }]);
+
+    function InitDelegate(params) {
+      _classCallCheck(this, InitDelegate);
+
+      if (arguments.length == 2) {
+        this._config = arguments[0];
+      }
+
+      if (params) {
+        for (var key in params) {
+          this.initParams[key] = params[key];
+        }
+      }
+
+      if (!this.initParams.getId) {
+        this.initParams.getId = function () {
+          return base.parameters.get('id') || "noid";
+        };
+      }
+    }
+
+    _createClass(InitDelegate, [{
+      key: "getId",
+      value: function getId() {
+        return this.initParams.getId();
+      }
+    }, {
+      key: "loadDictionary",
+      value: function loadDictionary() {
+        var _this117 = this;
+
+        return new Promise(function (resolve) {
+          base.ajax.get({
+            url: _this117.initParams.dictionaryUrl + "_" + base.dictionary.currentLanguage() + '.json'
+          }, function (data, type, returnCode) {
+            base.dictionary.addDictionary(data);
+            resolve(data);
+          }, function (data, type, returnCode) {
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "loadConfig",
+      value: function loadConfig() {
+        var _this118 = this;
+
+        var loadAccessControl = function loadAccessControl(data) {
+          var AccessControlClass = Class.fromString(data.player.accessControlClass || "paella.AccessControl");
+          _this118.initParams.accessControl = new AccessControlClass();
+        };
+
+        if (this.initParams.config) {
+          return new Promise(function (resolve) {
+            loadAccessControl(_this118.initParams.config);
+            resolve(_this118.initParams.config);
+          });
+        } else if (this.initParams.loadConfig) {
+          return new Promise(function (resolve, reject) {
+            _this118.initParams.loadConfig(_this118.initParams.configUrl).then(function (data) {
+              loadAccessControl(data);
+              resolve(data);
+            })["catch"](function (err) {
+              reject(err);
+            });
+          });
+        } else {
+          return new Promise(function (resolve, reject) {
+            var configUrl = _this118.initParams.configUrl;
+            var params = {};
+            params.url = configUrl;
+            base.ajax.get(params, function (data, type, returnCode) {
+              try {
+                data = JSON.parse(data);
+              } catch (e) {}
+
+              loadAccessControl(data);
+              resolve(data);
+            }, function (data, type, returnCode) {
+              paella.messageBox.showError(base.dictionary.translate("Error! Config file not found. Please configure paella!")); //onSuccess({});
+            });
+          });
+        }
+      }
+    }]);
+
+    return InitDelegate;
+  }();
+
+  paella.InitDelegate = InitDelegate;
+  window.paellaPlayer = null;
+  paella.plugins = {};
+  paella.plugins.events = {};
+  paella.initDelegate = null;
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var PaellaPlayer =
+  /*#__PURE__*/
+  function (_paella$PlayerBase) {
+    _inherits(PaellaPlayer, _paella$PlayerBase);
+
+    _createClass(PaellaPlayer, [{
+      key: "getPlayerMode",
+      value: function getPlayerMode() {
+        if (paella.player.isFullScreen()) {
+          return paella.PaellaPlayer.mode.fullscreen;
+        } else if (window.self !== window.top) {
+          return paella.PaellaPlayer.mode.embed;
+        }
+
+        return paella.PaellaPlayer.mode.standard;
+      }
+    }, {
+      key: "checkFullScreenCapability",
+      value: function checkFullScreenCapability() {
+        var fs = document.getElementById(paella.player.mainContainer.id);
+
+        if (fs.webkitRequestFullScreen || fs.mozRequestFullScreen || fs.msRequestFullscreen || fs.requestFullScreen) {
+          return true;
+        }
+
+        if (base.userAgent.browser.IsMobileVersion && paella.player.videoContainer.isMonostream) {
+          return true;
+        }
+
+        return false;
+      }
+    }, {
+      key: "addFullScreenListeners",
+      value: function addFullScreenListeners() {
+        var thisClass = this;
+
+        var onFullScreenChangeEvent = function onFullScreenChangeEvent() {
+          setTimeout(function () {
+            paella.pluginManager.checkPluginsVisibility();
+          }, 1000);
+          var fs = document.getElementById(paella.player.mainContainer.id);
+
+          if (paella.player.isFullScreen()) {
+            fs.style.width = '100%';
+            fs.style.height = '100%';
+          } else {
+            fs.style.width = '';
+            fs.style.height = '';
+          }
+
+          if (thisClass.isFullScreen()) {
+            paella.events.trigger(paella.events.enterFullscreen);
+          } else {
+            paella.events.trigger(paella.events.exitFullscreen);
+          }
+        };
+
+        if (!this.eventFullScreenListenerAdded) {
+          this.eventFullScreenListenerAdded = true;
+          document.addEventListener("fullscreenchange", onFullScreenChangeEvent, false);
+          document.addEventListener("webkitfullscreenchange", onFullScreenChangeEvent, false);
+          document.addEventListener("mozfullscreenchange", onFullScreenChangeEvent, false);
+          document.addEventListener("MSFullscreenChange", onFullScreenChangeEvent, false);
+          document.addEventListener("webkitendfullscreen", onFullScreenChangeEvent, false);
+        }
+      }
+    }, {
+      key: "isFullScreen",
+      value: function isFullScreen() {
+        var webKitIsFullScreen = document.webkitIsFullScreen === true;
+        var msIsFullScreen = document.msFullscreenElement !== undefined && document.msFullscreenElement !== null;
+        var mozIsFullScreen = document.mozFullScreen === true;
+        var stdIsFullScreen = document.fullScreenElement !== undefined && document.fullScreenElement !== null;
+        return webKitIsFullScreen || msIsFullScreen || mozIsFullScreen || stdIsFullScreen;
+      }
+    }, {
+      key: "goFullScreen",
+      value: function goFullScreen() {
+        if (!this.isFullScreen()) {
+          if (base.userAgent.system.iOS && (paella.utils.userAgent.browser.Version.major < 12 || !paella.utils.userAgent.system.iPad)) {
+            paella.player.videoContainer.masterVideo().goFullScreen();
+          } else {
+            var fs = document.getElementById(paella.player.mainContainer.id);
+
+            if (fs.webkitRequestFullScreen) {
+              fs.webkitRequestFullScreen();
+            } else if (fs.mozRequestFullScreen) {
+              fs.mozRequestFullScreen();
+            } else if (fs.msRequestFullscreen) {
+              fs.msRequestFullscreen();
+            } else if (fs.requestFullScreen) {
+              fs.requestFullScreen();
+            }
+          }
+        }
+      }
+    }, {
+      key: "exitFullScreen",
+      value: function exitFullScreen() {
+        if (this.isFullScreen()) {
+          if (document.webkitCancelFullScreen) {
+            document.webkitCancelFullScreen();
+          } else if (document.mozCancelFullScreen) {
+            document.mozCancelFullScreen();
+          } else if (document.msExitFullscreen()) {
+            document.msExitFullscreen();
+          } else if (document.cancelFullScreen) {
+            document.cancelFullScreen();
+          }
+        }
+      }
+    }, {
+      key: "setProfile",
+      value: function setProfile(profileName, animate) {
+        if (paella.profiles.setProfile(profileName, animate)) {
+          var profileData = paella.player.getProfile(profileName);
+
+          if (profileData && !paella.player.videoContainer.isMonostream) {
+            base.cookies.set('lastProfile', profileName);
+          }
+
+          paella.events.trigger(paella.events.setProfile, {
+            profileName: profileName
+          });
+        }
+      }
+    }, {
+      key: "getProfile",
+      value: function getProfile(profileName) {
+        return paella.profiles.getProfile(profileName);
+      }
+    }]);
+
+    function PaellaPlayer(playerId) {
+      var _this119;
+
+      _classCallCheck(this, PaellaPlayer);
+
+      _this119 = _possibleConstructorReturn(this, _getPrototypeOf(PaellaPlayer).call(this, playerId));
+      _this119.player = null;
+      _this119.videoIdentifier = '';
+      _this119.loader = null; // Video data:
+
+      _this119.videoData = null; // if initialization ok
+
+      if (_this119.playerId == playerId) {
+        _this119.loadPaellaPlayer();
+
+        var thisClass = _assertThisInitialized(_this119);
+      }
+
+      return _this119;
+    }
+
+    _createClass(PaellaPlayer, [{
+      key: "loadPaellaPlayer",
+      value: function loadPaellaPlayer() {
+        var This = this;
+        this.loader = new paella.LoaderContainer('paellaPlayer_loader');
+        $('body')[0].appendChild(this.loader.domElement);
+        paella.events.trigger(paella.events.loadStarted);
+        paella.initDelegate.loadDictionary().then(function () {
+          return paella.initDelegate.loadConfig();
+        }).then(function (config) {
+          This.accessControl = paella.initDelegate.initParams.accessControl;
+          This.videoLoader = paella.initDelegate.initParams.videoLoader;
+          This.onLoadConfig(config);
+
+          if (config.skin) {
+            var skin = config.skin["default"] || 'dark';
+            paella.utils.skin.restore(skin);
+          }
+        });
+      }
+    }, {
+      key: "onLoadConfig",
+      value: function onLoadConfig(configData) {
+        paella.data = new paella.Data(configData);
+        paella.pluginManager.registerPlugins();
+        this.config = configData;
+        this.videoIdentifier = paella.initDelegate.getId();
+
+        if (this.videoIdentifier) {
+          if (this.mainContainer) {
+            this.videoContainer = new paella.VideoContainer(this.playerId + "_videoContainer");
+            var videoQualityStrategy = new paella.BestFitVideoQualityStrategy();
+
+            try {
+              var StrategyClass = this.config.player.videoQualityStrategy;
+              var ClassObject = Class.fromString(StrategyClass);
+              videoQualityStrategy = new ClassObject();
+            } catch (e) {
+              base.log.warning("Error selecting video quality strategy: strategy not found");
+            }
+
+            this.videoContainer.setVideoQualityStrategy(videoQualityStrategy);
+            this.mainContainer.appendChild(this.videoContainer.domElement);
+          }
+
+          $(window).resize(function (event) {
+            paella.player.onresize();
+          });
+          this.onload();
+        }
+
+        paella.pluginManager.loadPlugins("paella.FastLoadPlugin");
+      }
+    }, {
+      key: "onload",
+      value: function onload() {
+        var thisClass = this;
+        var ac = this.accessControl;
+        var canRead = false;
+        var userData = {};
+        this.accessControl.canRead().then(function (c) {
+          canRead = c;
+          return thisClass.accessControl.userData();
+        }).then(function (d) {
+          userData = d;
+
+          if (canRead) {
+            thisClass.loadVideo();
+          } else if (userData.isAnonymous) {
+            var redirectUrl = paella.initDelegate.initParams.accessControl.getAuthenticationUrl("player/?id=" + paella.player.videoIdentifier);
+            var message = '<div>' + base.dictionary.translate("You are not authorized to view this resource") + '</div>';
+
+            if (redirectUrl) {
+              message += '<div class="login-link"><a href="' + redirectUrl + '">' + base.dictionary.translate("Login") + '</a></div>';
+            }
+
+            thisClass.unloadAll(message);
+          } else {
+            var errorMessage = base.dictionary.translate("You are not authorized to view this resource");
+            thisClass.unloadAll(errorMessage);
+            paella.events.trigger(paella.events.error, {
+              error: errorMessage
+            });
+          }
+        })["catch"](function (error) {
+          var errorMessage = base.dictionary.translate(error);
+          thisClass.unloadAll(errorMessage);
+          paella.events.trigger(paella.events.error, {
+            error: errorMessage
+          });
+        });
+      }
+    }, {
+      key: "onresize",
+      value: function onresize() {
+        this.videoContainer.onresize();
+        if (this.controls) this.controls.onresize(); // Resize the layout profile
+
+        if (this.videoContainer.ready) {
+          var cookieProfile = paella.utils.cookies.get('lastProfile');
+
+          if (cookieProfile) {
+            this.setProfile(cookieProfile, false);
+          } else {
+            this.setProfile(paella.player.selectedProfile, false);
+          }
+        }
+
+        paella.events.trigger(paella.events.resize, {
+          width: $(this.videoContainer.domElement).width(),
+          height: $(this.videoContainer.domElement).height()
+        });
+      }
+    }, {
+      key: "unloadAll",
+      value: function unloadAll(message) {
+        var loaderContainer = $('#paellaPlayer_loader')[0];
+        this.mainContainer.innerText = "";
+        paella.messageBox.showError(message);
+      }
+    }, {
+      key: "reloadVideos",
+      value: function reloadVideos(masterQuality, slaveQuality) {
+        if (this.videoContainer) {
+          this.videoContainer.reloadVideos(masterQuality, slaveQuality);
+          this.onresize();
+        }
+      }
+    }, {
+      key: "loadVideo",
+      value: function loadVideo() {
+        if (this.videoIdentifier) {
+          var This = this;
+          var loader = paella.player.videoLoader;
+          this.onresize();
+          loader.loadVideo(function () {
+            var playOnLoad = false;
+            This.videoContainer.setStreamData(loader.streams).then(function () {
+              paella.events.trigger(paella.events.loadComplete);
+              This.addFullScreenListeners();
+              This.onresize(); // If the player has been loaded using lazyLoad, the video should be
+              // played as soon as it loads
+
+              if (This.videoContainer.autoplay() || g_lazyLoadInstance != null) {
+                This.play();
+              } else if (loader.metadata.preview) {
+                This.lazyLoadContainer = new LazyThumbnailContainer(loader.metadata.preview);
+                document.body.appendChild(This.lazyLoadContainer.domElement);
+              }
+            })["catch"](function (error) {
+              console.log(error);
+              paella.messageBox.showError(base.dictionary.translate("Could not load the video"));
+            });
+          });
+        }
+      }
+    }, {
+      key: "showPlaybackBar",
+      value: function showPlaybackBar() {
+        if (!this.controls) {
+          this.controls = new paella.ControlsContainer(this.playerId + '_controls');
+          this.mainContainer.appendChild(this.controls.domElement);
+          this.controls.onresize();
+          paella.events.trigger(paella.events.loadPlugins, {
+            pluginManager: paella.pluginManager
+          });
+        }
+      }
+    }, {
+      key: "isLiveStream",
+      value: function isLiveStream() {
+        var loader = paella.initDelegate.initParams.videoLoader;
+
+        var checkSource = function checkSource(sources, index) {
+          if (sources.length > index) {
+            var source = sources[index];
+
+            for (var key in source.sources) {
+              if (_typeof(source.sources[key]) == "object") {
+                for (var i = 0; i < source.sources[key].length; ++i) {
+                  var stream = source.sources[key][i];
+                  if (stream.isLiveStream) return true;
+                }
+              }
+            }
+          }
+
+          return false;
+        };
+
+        return checkSource(loader.streams, 0) || checkSource(loader.streams, 1);
+      }
+    }, {
+      key: "loadPreviews",
+      value: function loadPreviews() {
+        var streams = paella.initDelegate.initParams.videoLoader.streams;
+        var slavePreviewImg = null;
+        var masterPreviewImg = streams[0].preview;
+
+        if (streams.length >= 2) {
+          slavePreviewImg = streams[1].preview;
+        }
+
+        if (masterPreviewImg) {
+          var masterRect = paella.player.videoContainer.overlayContainer.getVideoRect(0);
+          this.masterPreviewElem = document.createElement('img');
+          this.masterPreviewElem.src = masterPreviewImg;
+          paella.player.videoContainer.overlayContainer.addElement(this.masterPreviewElem, masterRect);
+        }
+
+        if (slavePreviewImg) {
+          var slaveRect = paella.player.videoContainer.overlayContainer.getVideoRect(1);
+          this.slavePreviewElem = document.createElement('img');
+          this.slavePreviewElem.src = slavePreviewImg;
+          paella.player.videoContainer.overlayContainer.addElement(this.slavePreviewElem, slaveRect);
+        }
+
+        paella.events.bind(paella.events.timeUpdate, function (event) {
+          paella.player.unloadPreviews();
+        });
+      }
+    }, {
+      key: "unloadPreviews",
+      value: function unloadPreviews() {
+        if (this.masterPreviewElem) {
+          paella.player.videoContainer.overlayContainer.removeElement(this.masterPreviewElem);
+          this.masterPreviewElem = null;
+        }
+
+        if (this.slavePreviewElem) {
+          paella.player.videoContainer.overlayContainer.removeElement(this.slavePreviewElem);
+          this.slavePreviewElem = null;
+        }
+      }
+    }, {
+      key: "loadComplete",
+      value: function loadComplete(event, params) {
+        var thisClass = this; //var master = paella.player.videoContainer.masterVideo();
+
+        paella.pluginManager.loadPlugins("paella.EarlyLoadPlugin");
+
+        if (paella.player.videoContainer._autoplay) {
+          this.play();
+        }
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        var _this120 = this;
+
+        if (this.lazyLoadContainer) {
+          document.body.removeChild(this.lazyLoadContainer.domElement);
+          this.lazyLoadContainer = null;
+        }
+
+        return new Promise(function (resolve, reject) {
+          _this120.videoContainer.play().then(function () {
+            if (!_this120.controls) {
+              _this120.showPlaybackBar();
+
+              paella.events.trigger(paella.events.controlBarLoaded);
+
+              _this120.controls.onresize();
+            }
+
+            resolve();
+          })["catch"](function (err) {
+            reject(err);
+          });
+        });
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        return this.videoContainer.pause();
+      }
+    }, {
+      key: "playing",
+      value: function playing() {
+        var _this121 = this;
+
+        return new Promise(function (resolve) {
+          _this121.paused().then(function (p) {
+            resolve(!p);
+          });
+        });
+      }
+    }, {
+      key: "paused",
+      value: function paused() {
+        return this.videoContainer.paused();
+      }
+    }, {
+      key: "selectedProfile",
+      get: function get() {
+        return paella.profiles.currentProfileName;
+      }
+    }]);
+
+    return PaellaPlayer;
+  }(paella.PlayerBase);
+
+  paella.PaellaPlayer = PaellaPlayer;
+  window.PaellaPlayer = PaellaPlayer;
+  paella.PaellaPlayer.mode = {
+    standard: 'standard',
+    fullscreen: 'fullscreen',
+    embed: 'embed'
+  };
+
+  var LazyThumbnailContainer =
+  /*#__PURE__*/
+  function (_paella$DomNode14) {
+    _inherits(LazyThumbnailContainer, _paella$DomNode14);
+
+    _createClass(LazyThumbnailContainer, null, [{
+      key: "GetIconElement",
+      value: function GetIconElement() {
+        var container = document.createElement('div');
+        container.className = "play-button-on-screen";
+        container.style.width = "100%";
+        container.style.height = "100%";
+        container.style.pointerEvents = "none";
+        var icon = document.createElement('div');
+        icon['className'] = 'play-icon';
+        container.appendChild(icon);
+        return container;
+      }
+    }]);
+
+    function LazyThumbnailContainer(src) {
+      var _this122;
+
+      _classCallCheck(this, LazyThumbnailContainer);
+
+      _this122 = _possibleConstructorReturn(this, _getPrototypeOf(LazyThumbnailContainer).call(this, 'img', 'lazyLoadThumbnailContainer', {}));
+      _this122.domElement.src = src;
+      _this122.domElement.alt = "";
+      _this122.container = LazyThumbnailContainer.GetIconElement();
+
+      if (!paella.player.videoContainer) {
+        document.body.appendChild(_this122.container);
+      }
+
+      return _this122;
+    }
+
+    _createClass(LazyThumbnailContainer, [{
+      key: "setImage",
+      value: function setImage(url) {
+        this.domElement.src = url;
+      }
+    }, {
+      key: "onClick",
+      value: function onClick(closure) {
+        this.domElement.onclick = closure;
+      }
+    }, {
+      key: "destroyElements",
+      value: function destroyElements() {
+        document.body.removeChild(this.domElement);
+        document.body.removeChild(this.container);
+      }
+    }]);
+
+    return LazyThumbnailContainer;
+  }(paella.DomNode);
+
+  paella.LazyThumbnailContainer = LazyThumbnailContainer;
+  var g_lazyLoadInstance = null;
+
+  var PaellaPlayerLazy =
+  /*#__PURE__*/
+  function (_PaellaPlayer) {
+    _inherits(PaellaPlayerLazy, _PaellaPlayer);
+
+    function PaellaPlayerLazy(playerId, initDelegate) {
+      var _this123;
+
+      _classCallCheck(this, PaellaPlayerLazy);
+
+      _this123 = _possibleConstructorReturn(this, _getPrototypeOf(PaellaPlayerLazy).call(this, playerId, initDelegate));
+      g_lazyLoadInstance = _assertThisInitialized(_this123);
+      return _this123;
+    }
+
+    _createClass(PaellaPlayerLazy, [{
+      key: "loadComplete",
+      value: function loadComplete(event, params) {}
+    }, {
+      key: "onLoadConfig",
+      value: function onLoadConfig(configData) {
+        //paella.data = new paella.Data(configData);
+        this.config = configData;
+        this.videoIdentifier = paella.initDelegate.getId();
+
+        if (this.videoIdentifier) {
+          $(window).resize(function (event) {
+            paella.player.onresize();
+          });
+          this.onload();
+        }
+      }
+    }, {
+      key: "loadVideo",
+      value: function loadVideo() {
+        var _this124 = this;
+
+        if (this.videoIdentifier) {
+          var This = this;
+          var loader = paella.player.videoLoader;
+          this.onresize();
+          loader.loadVideo(function () {
+            if (!loader.metadata.preview) {
+              paella.load(_this124.playerId, paella.loaderFunctionParams);
+              g_lazyLoadInstance = null; // Lazy load is disabled when the video has no preview
+            } else {
+              _this124.lazyLoadContainer = new LazyThumbnailContainer(loader.metadata.preview);
+              document.body.appendChild(_this124.lazyLoadContainer.domElement);
+
+              _this124.lazyLoadContainer.onClick(function () {
+                _this124.lazyLoadContainer.destroyElements();
+
+                _this124.lazyLoadContainer = null;
+                _this124._onPlayClosure && _this124._onPlayClosure();
+              });
+
+              paella.events.trigger(paella.events.loadComplete);
+            }
+          });
+        }
+      }
+    }, {
+      key: "onresize",
+      value: function onresize() {}
+    }, {
+      key: "onPlay",
+      set: function set(closure) {
+        this._onPlayClosure = closure;
+      }
+    }]);
+
+    return PaellaPlayerLazy;
+  }(PaellaPlayer);
+
+  paella.PaellaPlayerLazy = PaellaPlayerLazy;
+  /* Initializer function */
+
+  window.initPaellaEngage = function (playerId, initDelegate) {
+    if (!initDelegate) {
+      initDelegate = new paella.InitDelegate();
+    }
+
+    paella.initDelegate = initDelegate;
+    paellaPlayer = new PaellaPlayer(playerId, paella.initDelegate);
+  };
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  // Default Video Loader
+  //
+  var DefaultVideoLoader =
+  /*#__PURE__*/
+  function (_paella$VideoLoader) {
+    _inherits(DefaultVideoLoader, _paella$VideoLoader);
+
+    function DefaultVideoLoader(data) {
+      var _this125;
+
+      _classCallCheck(this, DefaultVideoLoader);
+
+      _this125 = _possibleConstructorReturn(this, _getPrototypeOf(DefaultVideoLoader).call(this, data));
+      _this125._url = null;
+
+      if (_typeof(data) == "object") {
+        _this125._data = data;
+      } else {
+        try {
+          _this125._data = JSON.parse(data);
+        } catch (e) {
+          _this125._url = data;
+        }
+      }
+
+      return _this125;
+    }
+
+    _createClass(DefaultVideoLoader, [{
+      key: "getVideoUrl",
+      value: function getVideoUrl() {
+        if (paella.initDelegate.initParams.videoUrl) {
+          return typeof paella.initDelegate.initParams.videoUrl == "function" ? paella.initDelegate.initParams.videoUrl() : paella.initDelegate.initParams.videoUrl;
+        } else {
+          var url = this._url || paella.player.config.standalone && paella.player.config.standalone.repository || '';
+          return (/\/$/.test(url) ? url : url + '/') + paella.initDelegate.getId() + '/';
+        }
+      }
+    }, {
+      key: "getDataUrl",
+      value: function getDataUrl() {
+        if (paella.initDelegate.initParams.dataUrl) {
+          return typeof paella.initDelegate.initParams.dataUrl == 'function' ? paella.initDelegate.initParams.dataUrl() : paella.initDelegate.initParams.dataUrl;
+        } else {
+          return this.getVideoUrl() + 'data.json';
+        }
+      }
+    }, {
+      key: "loadVideo",
+      value: function loadVideo(onSuccess) {
+        var _this126 = this;
+
+        var loadVideoDelegate = paella.initDelegate.initParams.loadVideo;
+        var url = this._url || this.getDataUrl();
+
+        if (this._data) {
+          this.loadVideoData(this._data, onSuccess);
+        } else if (loadVideoDelegate) {
+          loadVideoDelegate().then(function (data) {
+            _this126._data = data;
+
+            _this126.loadVideoData(_this126._data, onSuccess);
+          });
+        } else if (url) {
+          var This = this;
+          base.ajax.get({
+            url: this.getDataUrl()
+          }, function (data, type, err) {
+            if (typeof data == "string") {
+              try {
+                data = JSON.parse(data);
+              } catch (e) {}
+            }
+
+            This._data = data;
+            This.loadVideoData(This._data, onSuccess);
+          }, function (data, type, err) {
+            switch (err) {
+              case 401:
+                paella.messageBox.showError(base.dictionary.translate("You are not logged in"));
+                break;
+
+              case 403:
+                paella.messageBox.showError(base.dictionary.translate("You are not authorized to view this resource"));
+                break;
+
+              case 404:
+                paella.messageBox.showError(base.dictionary.translate("The specified video identifier does not exist"));
+                break;
+
+              default:
+                paella.messageBox.showError(base.dictionary.translate("Could not load the video"));
+            }
+          });
+        }
+      }
+    }, {
+      key: "loadVideoData",
+      value: function loadVideoData(data, onSuccess) {
+        var This = this;
+
+        if (data.metadata) {
+          this.metadata = data.metadata;
+        }
+
+        if (data.streams) {
+          data.streams.forEach(function (stream) {
+            This.loadStream(stream);
+          });
+        }
+
+        if (data.frameList) {
+          this.loadFrameData(data);
+        }
+
+        if (data.captions) {
+          this.loadCaptions(data.captions);
+        }
+
+        if (data.blackboard) {
+          this.loadBlackboard(data.streams[0], data.blackboard);
+        }
+
+        this.streams = data.streams;
+        this.frameList = data.frameList;
+        this.loadStatus = this.streams.length > 0;
+        onSuccess();
+      }
+    }, {
+      key: "loadFrameData",
+      value: function loadFrameData(data) {
+        var This = this;
+
+        if (data.frameList && data.frameList.forEach) {
+          var newFrames = {};
+          data.frameList.forEach(function (frame) {
+            if (!/^[a-zA-Z]+:\/\//.test(frame.url) && !/^data:/.test(frame.url)) {
+              frame.url = This.getVideoUrl() + frame.url;
+            }
+
+            if (frame.thumb && !/^[a-zA-Z]+:\/\//.test(frame.thumb) && !/^data:/.test(frame.thumb)) {
+              frame.thumb = This.getVideoUrl() + frame.thumb;
+            }
+
+            var id = frame.time;
+            newFrames[id] = frame;
+          });
+          data.frameList = newFrames;
+        }
+      }
+    }, {
+      key: "loadStream",
+      value: function loadStream(stream) {
+        var This = this;
+
+        if (stream.preview && !/^[a-zA-Z]+:\/\//.test(stream.preview) && !/^data:/.test(stream.preview)) {
+          stream.preview = This.getVideoUrl() + stream.preview;
+        }
+
+        if (!stream.sources) {
+          return;
+        }
+
+        if (stream.sources.image) {
+          stream.sources.image.forEach(function (image) {
+            if (image.frames.forEach) {
+              var newFrames = {};
+              image.frames.forEach(function (frame) {
+                if (frame.src && !/^[a-zA-Z]+:\/\//.test(frame.src) && !/^data:/.test(frame.src)) {
+                  frame.src = This.getVideoUrl() + frame.src;
+                }
+
+                if (frame.thumb && !/^[a-zA-Z]+:\/\//.test(frame.thumb) && !/^data:/.test(frame.thumb)) {
+                  frame.thumb = This.getVideoUrl() + frame.thumb;
+                }
+
+                var id = "frame_" + frame.time;
+                newFrames[id] = frame.src;
+              });
+              image.frames = newFrames;
+            }
+          });
+        }
+
+        for (var type in stream.sources) {
+          if (stream.sources[type]) {
+            if (type != 'image') {
+              var source = stream.sources[type];
+              source.forEach(function (sourceItem) {
+                var pattern = /^[a-zA-Z\:]+\:\/\//gi;
+
+                if (typeof sourceItem.src == "string") {
+                  if (sourceItem.src.match(pattern) == null) {
+                    sourceItem.src = This.getVideoUrl() + sourceItem.src;
+                  }
+                }
+
+                sourceItem.type = sourceItem.mimetype;
+              });
+            }
+          } else {
+            delete stream.sources[type];
+          }
+        }
+      }
+    }, {
+      key: "loadCaptions",
+      value: function loadCaptions(captions) {
+        if (captions) {
+          for (var i = 0; i < captions.length; ++i) {
+            var url = captions[i].url;
+
+            if (!/^[a-zA-Z]+:\/\//.test(url)) {
+              url = this.getVideoUrl() + url;
+            }
+
+            var c = new paella.captions.Caption(i, captions[i].format, url, {
+              code: captions[i].lang,
+              txt: captions[i].text
+            });
+            paella.captions.addCaptions(c);
+          }
+        }
+      }
+    }, {
+      key: "loadBlackboard",
+      value: function loadBlackboard(stream, blackboard) {
+        var This = this;
+
+        if (!stream.sources.image) {
+          stream.sources.image = [];
+        }
+
+        var imageObject = {
+          count: blackboard.frames.length,
+          duration: blackboard.duration,
+          mimetype: blackboard.mimetype,
+          res: blackboard.res,
+          frames: {}
+        };
+        blackboard.frames.forEach(function (frame) {
+          var id = "frame_" + Math.round(frame.time);
+
+          if (!/^[a-zA-Z]+:\/\//.test(frame.src)) {
+            frame.src = This.getVideoUrl() + frame.src;
+          }
+
+          imageObject.frames[id] = frame.src;
+        });
+        stream.sources.image.push(imageObject);
+      }
+    }]);
+
+    return DefaultVideoLoader;
+  }(paella.VideoLoader);
+
+  paella.DefaultVideoLoader = DefaultVideoLoader;
+
+  var DefaultInitDelegate =
+  /*#__PURE__*/
+  function (_paella$InitDelegate) {
+    _inherits(DefaultInitDelegate, _paella$InitDelegate);
+
+    function DefaultInitDelegate() {
+      _classCallCheck(this, DefaultInitDelegate);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(DefaultInitDelegate).apply(this, arguments));
+    }
+
+    return DefaultInitDelegate;
+  }(paella.InitDelegate);
+
+  paella.DefaultInitDelegate = DefaultInitDelegate;
+
+  function getManifestFromParameters(params) {
+    var master = null;
+
+    if (master = paella.utils.parameters.get('video')) {
+      var slave = paella.utils.parameters.get('videoSlave');
+      slave = slave && decodeURIComponent(slave);
+      var masterPreview = paella.utils.parameters.get('preview');
+      masterPreview = masterPreview && decodeURIComponent(masterPreview);
+      var slavePreview = paella.utils.parameters.get('previewSlave');
+      slavePreview = slavePreview && decodeURIComponent(slavePreview);
+      var title = paella.utils.parameters.get('preview') || "Untitled Video";
+      var data = {
+        metadata: {
+          title: title
+        },
+        streams: [{
+          sources: {
+            mp4: [{
+              src: decodeURIComponent(master),
+              mimetype: "video/mp4",
+              res: {
+                w: 0,
+                h: 0
+              }
+            }]
+          },
+          preview: masterPreview
+        }]
+      };
+
+      if (slave) {
+        data.streams.push({
+          sources: {
+            mp4: [{
+              src: slave,
+              mimetype: "video/mp4",
+              res: {
+                w: 0,
+                h: 0
+              }
+            }]
+          },
+          preview: slavePreview
+        });
+      }
+
+      return data;
+    }
+
+    return null;
+  }
+  /*
+   *	playerContainer	Player DOM container id
+   *	params.configUrl		Url to the config json file
+   *	params.config			Use this configuration file
+   *	params.data				Paella video data schema
+   *	params.url				Repository URL
+   */
+
+
+  paella.load = function (playerContainer, params) {
+    paella.loaderFunctionParams = params;
+    var auth = params && params.auth || {}; // Build custom init data using url parameters
+
+    var data = getManifestFromParameters(params);
+
+    if (data) {
+      params.data = data;
+    }
+
+    var initObjects = params;
+    initObjects.videoLoader = new paella.DefaultVideoLoader(params.data || params.url);
+    paella.initDelegate = new paella.DefaultInitDelegate(initObjects);
+    new PaellaPlayer(playerContainer, paella.initDelegate);
+  };
+  /*
+   *	playerContainer	Player DOM container id
+   *	params.configUrl		Url to the config json file
+   *	params.config			Use this configuration file
+   *	params.data				Paella video data schema
+   *	params.url				Repository URL
+   *  forceLazyLoad			Use lazyLoad even if your browser does not allow automatic playback of the video
+   */
+
+
+  paella.lazyLoad = function (playerContainer, params) {
+    var forceLazyLoad = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
+    paella.loaderFunctionParams = params;
+    var auth = params && params.auth || {}; // Check autoplay. If autoplay is enabled, this function must call paella.load()
+
+    paella.Html5Video.IsAutoplaySupported().then(function (supported) {
+      if (supported || forceLazyLoad) {
+        // Build custom init data using url parameters
+        var data = getManifestFromParameters(params);
+
+        if (data) {
+          params.data = data;
+        }
+
+        var initObjects = params;
+        initObjects.videoLoader = new paella.DefaultVideoLoader(params.data || params.url);
+        paella.initDelegate = new paella.DefaultInitDelegate(initObjects);
+        var lazyLoad = new paella.PaellaPlayerLazy(playerContainer, paella.initDelegate);
+
+        lazyLoad.onPlay = function () {
+          $('#' + playerContainer).innerHTML = "";
+          paella.load(playerContainer, params);
+        };
+      } else {
+        paella.load(playerContainer, params);
+      }
+    });
+  };
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function () {
+  var RightBarPlugin =
+  /*#__PURE__*/
+  function (_paella$DeferredLoadP2) {
+    _inherits(RightBarPlugin, _paella$DeferredLoadP2);
+
+    function RightBarPlugin() {
+      _classCallCheck(this, RightBarPlugin);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(RightBarPlugin).apply(this, arguments));
+    }
+
+    _createClass(RightBarPlugin, [{
+      key: "getName",
+      value: function getName() {
+        return "es.upv.paella.RightBarPlugin";
+      }
+    }, {
+      key: "buildContent",
+      value: function buildContent(domElement) {}
+    }, {
+      key: "type",
+      get: function get() {
+        return 'rightBarPlugin';
+      }
+    }]);
+
+    return RightBarPlugin;
+  }(paella.DeferredLoadPlugin);
+
+  paella.RightBarPlugin = RightBarPlugin;
+
+  var TabBarPlugin =
+  /*#__PURE__*/
+  function (_paella$DeferredLoadP3) {
+    _inherits(TabBarPlugin, _paella$DeferredLoadP3);
+
+    function TabBarPlugin() {
+      _classCallCheck(this, TabBarPlugin);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(TabBarPlugin).apply(this, arguments));
+    }
+
+    _createClass(TabBarPlugin, [{
+      key: "getName",
+      value: function getName() {
+        return "es.upv.paella.TabBarPlugin";
+      }
+    }, {
+      key: "getTabName",
+      value: function getTabName() {
+        return "New Tab";
+      }
+    }, {
+      key: "action",
+      value: function action(tab) {}
+    }, {
+      key: "buildContent",
+      value: function buildContent(domElement) {}
+    }, {
+      key: "setToolTip",
+      value: function setToolTip(message) {
+        this.button.setAttribute("title", message);
+        this.button.setAttribute("aria-label", message);
+      }
+    }, {
+      key: "getDefaultToolTip",
+      value: function getDefaultToolTip() {
+        return "";
+      }
+    }, {
+      key: "type",
+      get: function get() {
+        return 'tabBarPlugin';
+      }
+    }]);
+
+    return TabBarPlugin;
+  }(paella.DeferredLoadPlugin);
+
+  paella.TabBarPlugin = TabBarPlugin;
+
+  var ExtendedAdapter =
+  /*#__PURE__*/
+  function () {
+    function ExtendedAdapter() {
+      _classCallCheck(this, ExtendedAdapter);
+
+      this.rightContainer = null;
+      this.bottomContainer = null;
+      this.rightBarPlugins = [];
+      this.tabBarPlugins = [];
+      this.currentTabIndex = 0;
+      this.bottomContainerTabs = null;
+      this.bottomContainerContent = null;
+      this.rightContainer = document.createElement('div'); //this.rightContainer.id = this.settings.rightContainerId;
+
+      this.rightContainer.className = "rightPluginContainer";
+      this.bottomContainer = document.createElement('div'); //this.bottomContainer.id = this.settings.bottomContainerId;
+
+      this.bottomContainer.className = "tabsPluginContainer";
+      var tabs = document.createElement('div'); //tabs.id = 'bottomContainer_tabs';
+
+      tabs.className = 'tabsLabelContainer';
+      this.bottomContainerTabs = tabs;
+      this.bottomContainer.appendChild(tabs);
+      var bottomContent = document.createElement('div'); //bottomContent.id = 'bottomContainer_content';
+
+      bottomContent.className = 'tabsContentContainer';
+      this.bottomContainerContent = bottomContent;
+      this.bottomContainer.appendChild(bottomContent);
+      this.initPlugins();
+    }
+
+    _createClass(ExtendedAdapter, [{
+      key: "initPlugins",
+      value: function initPlugins() {
+        paella.pluginManager.setTarget('rightBarPlugin', this);
+        paella.pluginManager.setTarget('tabBarPlugin', this);
+      }
+    }, {
+      key: "addPlugin",
+      value: function addPlugin(plugin) {
+        var thisClass = this;
+        plugin.checkEnabled(function (isEnabled) {
+          if (isEnabled) {
+            paella.pluginManager.setupPlugin(plugin);
+
+            if (plugin.type == 'rightBarPlugin') {
+              thisClass.rightBarPlugins.push(plugin);
+              thisClass.addRightBarPlugin(plugin);
+            }
+
+            if (plugin.type == 'tabBarPlugin') {
+              thisClass.tabBarPlugins.push(plugin);
+              thisClass.addTabPlugin(plugin);
+            }
+          }
+        });
+      }
+    }, {
+      key: "showTab",
+      value: function showTab(tabIndex) {
+        var i = 0;
+        var labels = this.bottomContainer.getElementsByClassName("tabLabel");
+        var contents = this.bottomContainer.getElementsByClassName("tabContent");
+
+        for (i = 0; i < labels.length; ++i) {
+          if (labels[i].getAttribute("tab") == tabIndex) {
+            labels[i].className = "tabLabel enabled";
+          } else {
+            labels[i].className = "tabLabel disabled";
+          }
+        }
+
+        for (i = 0; i < contents.length; ++i) {
+          if (contents[i].getAttribute("tab") == tabIndex) {
+            contents[i].className = "tabContent enabled";
+          } else {
+            contents[i].className = "tabContent disabled";
+          }
+        }
+      }
+    }, {
+      key: "addTabPlugin",
+      value: function addTabPlugin(plugin) {
+        var thisClass = this;
+        var tabIndex = this.currentTabIndex; // Add tab
+
+        var tabItem = document.createElement('div');
+        tabItem.setAttribute("tab", tabIndex);
+        tabItem.className = "tabLabel disabled";
+        tabItem.innerText = plugin.getTabName();
+        tabItem.plugin = plugin;
+        $(tabItem).click(function (event) {
+          if (/disabled/.test(this.className)) {
+            thisClass.showTab(tabIndex);
+            this.plugin.action(this);
+          }
+        });
+        $(tabItem).keyup(function (event) {
+          if (event.keyCode == 13) {
+            if (/disabledTabItem/.test(this.className)) {
+              thisClass.showTab(tabIndex);
+              this.plugin.action(this);
+            }
+          }
+        });
+        this.bottomContainerTabs.appendChild(tabItem); // Add tab content
+
+        var tabContent = document.createElement('div');
+        tabContent.setAttribute("tab", tabIndex);
+        tabContent.className = "tabContent disabled " + plugin.getSubclass();
+        this.bottomContainerContent.appendChild(tabContent);
+        plugin.buildContent(tabContent);
+        plugin.button = tabItem;
+        plugin.container = tabContent;
+        plugin.button.setAttribute("tabindex", 3000 + plugin.getIndex());
+        plugin.button.setAttribute("alt", "");
+        plugin.setToolTip(plugin.getDefaultToolTip()); // Show tab
+
+        if (this.firstTabShown === undefined) {
+          this.showTab(tabIndex);
+          this.firstTabShown = true;
+        }
+
+        ++this.currentTabIndex;
+      }
+    }, {
+      key: "addRightBarPlugin",
+      value: function addRightBarPlugin(plugin) {
+        var container = document.createElement('div');
+        container.className = "rightBarPluginContainer " + plugin.getSubclass();
+        this.rightContainer.appendChild(container);
+        plugin.buildContent(container);
+      }
+    }]);
+
+    return ExtendedAdapter;
+  }();
+
+  paella.ExtendedAdapter = ExtendedAdapter;
+  paella.extendedAdapter = new paella.ExtendedAdapter();
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+/*
+Class ("paella.editor.EmbedPlayer", base.AsyncLoaderCallback,{
+	editar:null,
+
+	initialize:function() {
+		this.editor = paella.editor.instance;
+	},
+
+	load:function(onSuccess,onError) {
+		var barHeight = this.editor.bottomBar.getHeight() + 20;
+		var rightBarWidth = this.editor.rightBar.getWidth() + 20;
+		$(paella.player.mainContainer).css({
+			'position':'fixed',
+			"width":"",
+			"bottom":barHeight + "px",
+			"right":rightBarWidth + "px",
+			"left":"20px",
+			"top":"20px"
+		});
+		paella.player.mainContainer.className = "paellaMainContainerEditorMode";
+		new Timer(function(timer) {
+			paella.player.controls.disable();
+			paella.player.onresize();
+			if (onSuccess) {
+				onSuccess();
+			}
+		},500);
+	},
+
+	restorePlayer:function() {
+		$('body')[0].appendChild(paella.player.mainContainer);
+		paella.player.controls.enable();
+		paella.player.mainContainer.className = "";
+		$(paella.player.mainContainer).css({
+			'position':'',
+			"width":"",
+			"bottom":"",
+			"left":"",
+			"right":"",
+			"top":""
+		});
+		paella.player.onresize();
+	},
+
+	onresize:function() {
+		var barHeight = this.editor.bottomBar.getHeight() + 20;
+		var rightBarWidth = this.editor.rightBar.getWidth() + 20;
+		$(paella.player.mainContainer).css({
+			'position':'fixed',
+			"width":"",
+			"bottom":barHeight + "px",
+			"right":rightBarWidth + "px",
+			"left":"20px",
+			"top":"20px"
+		});
+
+	}
+});
+
+*/
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+///////////////////////////////////////////////////////
+// Deprecated functions/objects
+//
+//    Will be removed in next paella version.
+///////////////////////////////////////////////////////
+
+
+function DeprecatedClass(name, replacedBy, p) {
+  Class(name, p, {
+    initialize: function initialize() {
+      base.log.warning(name + " is deprecated, use " + replacedBy + " instead.");
+      this.parent.apply(this, arguments);
+    }
+  });
+}
+
+function DeprecatedFunc(name, replacedBy, func) {
+  function ret() {
+    base.log.warning(name + " is deprecated, use " + replacedBy + " instead.");
+    func.apply(this, arguments);
+  }
+
+  return ret;
+} // Pella Dictionary
+///////////////////////////////////////////////////////
+
+
+DeprecatedClass("paella.Dictionary", "base.Dictionary", base.Dictionary);
+paella.dictionary = base.dictionary; // Paella AsyncLoader
+///////////////////////////////////////////////////////
+
+DeprecatedClass("paella.AsyncLoaderCallback", "base.AsyncLoaderCallback", base.AsyncLoaderCallback);
+DeprecatedClass("paella.AjaxCallback", "base.AjaxCallback", base.AjaxCallback);
+DeprecatedClass("paella.JSONCallback", "base.JSONCallback", base.JSONCallback);
+DeprecatedClass("paella.DictionaryCallback", "base.DictionaryCallback", base.DictionaryCallback);
+DeprecatedClass("paella.AsyncLoader", "base.AsyncLoader", base.AsyncLoader); // Paella Timer
+///////////////////////////////////////////////////////
+
+DeprecatedClass("paella.Timer", "base.Timer", base.Timer);
+DeprecatedClass("paella.utils.Timer", "base.Timer", base.Timer); // Paella Ajax
+///////////////////////////////////////////////////////
+
+paella.ajax = {};
+paella.ajax['send'] = DeprecatedFunc("paella.ajax.send", "base.ajax.send", base.ajax.send);
+paella.ajax['get'] = DeprecatedFunc("paella.ajax.get", "base.ajax.get", base.ajax.get);
+paella.ajax['put'] = DeprecatedFunc("paella.ajax.put", "base.ajax.put", base.ajax.put);
+paella.ajax['post'] = DeprecatedFunc("paella.ajax.post", "base.ajax.post", base.ajax.post);
+paella.ajax['delete'] = DeprecatedFunc("paella.ajax.delete", "base.ajax.delete", base.ajax.send); // Paella UI
+///////////////////////////////////////////////////////
+
+paella.ui = {};
+
+paella.ui.Container = function (params) {
+  var elem = document.createElement('div');
+  if (params.id) elem.id = params.id;
+  if (params.className) elem.className = params.className;
+  if (params.style) $(elem).css(params.style);
+  return elem;
+}; // paella.utils
+///////////////////////////////////////////////////////
+
+
+paella.utils.ajax = base.ajax;
+paella.utils.cookies = base.cookies;
+paella.utils.parameters = base.parameters;
+paella.utils.require = base.require;
+paella.utils.importStylesheet = base.importStylesheet;
+paella.utils.language = base.dictionary.currentLanguage;
+paella.utils.uuid = base.uuid;
+paella.utils.userAgent = base.userAgent; // paella.debug
+///////////////////////////////////////////////////////
+
+paella.debug = {
+  log: function log(msg) {
+    base.log.warning("paella.debug.log is deprecated, use base.debug.[error/warning/debug/log] instead.");
+    base.log.log(msg);
+  }
+};
+paella.debugReady = true;
+paella.addPlugin(function () {
+  var FlexSkipPlugin =
+  /*#__PURE__*/
+  function (_paella$ButtonPlugin2) {
+    _inherits(FlexSkipPlugin, _paella$ButtonPlugin2);
+
+    function FlexSkipPlugin() {
+      _classCallCheck(this, FlexSkipPlugin);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(FlexSkipPlugin).apply(this, arguments));
+    }
+
+    _createClass(FlexSkipPlugin, [{
+      key: "getAlignment",
+      value: function getAlignment() {
+        return 'left';
+      }
+    }, {
+      key: "getName",
+      value: function getName() {
+        return "edu.harvard.dce.paella.flexSkipPlugin";
+      }
+    }, {
+      key: "getIndex",
+      value: function getIndex() {
+        return 121;
+      }
+    }, {
+      key: "getSubclass",
+      value: function getSubclass() {
+        return 'flexSkip_Rewind_10';
+      }
+    }, {
+      key: "getIconClass",
+      value: function getIconClass() {
+        return 'icon-back-10-s';
+      }
+    }, {
+      key: "formatMessage",
+      value: function formatMessage() {
+        return 'Rewind 10 seconds';
+      }
+    }, {
+      key: "getDefaultToolTip",
+      value: function getDefaultToolTip() {
+        return base.dictionary.translate(this.formatMessage());
+      }
+    }, {
+      key: "checkEnabled",
+      value: function checkEnabled(onSuccess) {
+        onSuccess(!paella.player.isLiveStream());
+      }
+    }, {
+      key: "action",
+      value: function action(button) {
+        paella.player.videoContainer.currentTime().then(function (currentTime) {
+          paella.player.videoContainer.seekToTime(currentTime - 10);
+        });
+      }
+    }]);
+
+    return FlexSkipPlugin;
+  }(paella.ButtonPlugin);
+
+  paella.plugins.FlexSkipPlugin = FlexSkipPlugin;
+  return FlexSkipPlugin;
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$plugins$FlexS) {
+      _inherits(FlexSkipForwardPlugin, _paella$plugins$FlexS);
+
+      function FlexSkipForwardPlugin() {
+        _classCallCheck(this, FlexSkipForwardPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(FlexSkipForwardPlugin).apply(this, arguments));
+      }
+
+      _createClass(FlexSkipForwardPlugin, [{
+        key: "getIndex",
+        value: function getIndex() {
+          return 122;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "edu.harvard.dce.paella.flexSkipForwardPlugin";
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return 'flexSkip_Forward_30';
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-forward-30-s';
+        }
+      }, {
+        key: "formatMessage",
+        value: function formatMessage() {
+          return 'Forward 30 seconds';
+        }
+      }, {
+        key: "action",
+        value: function action(button) {
+          paella.player.videoContainer.currentTime().then(function (currentTime) {
+            paella.player.videoContainer.seekToTime(currentTime + 30);
+          });
+        }
+      }]);
+
+      return FlexSkipForwardPlugin;
+    }(paella.plugins.FlexSkipPlugin)
+  );
+});
+paella.addPlugin(function () {
+  /////////////////////////////////////////////////
+  // WebVTT Parser
+  /////////////////////////////////////////////////
+  return (
+    /*#__PURE__*/
+    function (_paella$CaptionParser) {
+      _inherits(WebVTTParserPlugin, _paella$CaptionParser);
+
+      function WebVTTParserPlugin() {
+        _classCallCheck(this, WebVTTParserPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(WebVTTParserPlugin).apply(this, arguments));
+      }
+
+      _createClass(WebVTTParserPlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.teltek.paella.captions.WebVTTParserPlugin";
+        }
+      }, {
+        key: "parse",
+        value: function parse(content, lang, next) {
+          var captions = [];
+          var self = this;
+          var lls = content.split("\n");
+          var c;
+          var id = 0;
+          var skip = false;
+
+          for (var idx = 0; idx < lls.length; ++idx) {
+            var ll = lls[idx].trim();
+
+            if (/^WEBVTT/.test(ll) && c === undefined || ll.length === 0) {
+              continue;
+            }
+
+            if ((/^[0-9]+$/.test(ll) || /^[0-9]+ -/.test(ll)) && lls[idx - 1].trim().length === 0) {
+              continue;
+            }
+
+            if (/^NOTE/.test(ll) || /^STYLE/.test(ll)) {
+              skip = true;
+              continue;
+            }
+
+            if (/^(([0-9]+:)?[0-9]{2}:[0-9]{2}.[0-9]{3} --> ([0-9]+:)?[0-9]{2}:[0-9]{2}.[0-9]{3})/.test(ll)) {
+              skip = false;
+
+              if (c != undefined) {
+                captions.push(c);
+                id++;
+              }
+
+              c = {
+                id: id,
+                begin: self.parseTimeTextToSeg(ll.split("-->")[0]),
+                end: self.parseTimeTextToSeg(ll.split("-->")[1])
+              };
+              continue;
+            }
+
+            if (c !== undefined && !skip) {
+              ll = ll.replace(/^- /, "");
+              ll = ll.replace(/<[^>]*>/g, "");
+
+              if (c.content === undefined) {
+                c.content = ll;
+              } else {
+                c.content += "\n" + ll;
+              }
+            }
+          }
+
+          captions.push(c);
+
+          if (captions.length > 0) {
+            next(false, captions);
+          } else {
+            next(true);
+          }
+        }
+      }, {
+        key: "parseTimeTextToSeg",
+        value: function parseTimeTextToSeg(ttime) {
+          var nseg = 0;
+          var factor = 1;
+          ttime = /(([0-9]+:)?[0-9]{2}:[0-9]{2}.[0-9]{3})/.exec(ttime);
+          var split = ttime[0].split(":");
+
+          for (var i = split.length - 1; i >= 0; i--) {
+            factor = Math.pow(60, split.length - 1 - i);
+            nseg += split[i] * factor;
+          }
+
+          return nseg;
+        }
+      }, {
+        key: "ext",
+        get: function get() {
+          return ["vtt"];
+        }
+      }]);
+
+      return WebVTTParserPlugin;
+    }(paella.CaptionParserPlugIn)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$userTracking$) {
+      _inherits(xAPISaverPlugin, _paella$userTracking$);
+
+      function xAPISaverPlugin() {
+        _classCallCheck(this, xAPISaverPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(xAPISaverPlugin).apply(this, arguments));
+      }
+
+      _createClass(xAPISaverPlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.teltek.paella.usertracking.xAPISaverPlugin";
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          this.endpoint = this.config.endpoint;
+          this.auth = this.config.auth;
+          this.user_info = {};
+          this.paused = true;
+          this.played_segments = "";
+          this.played_segments_segment_start = null;
+          this.played_segments_segment_end = null;
+          this.progress = 0;
+          this.duration = 0;
+          this.current_time = [];
+          this.completed = false;
+          this.volume = null;
+          this.speed = null;
+          this.language = "us-US";
+          this.quality = null;
+          this.fullscreen = false;
+          this.title = "No title available";
+          this.description = "";
+          this.user_agent = "";
+          this.total_time = 0;
+          this.total_time_start = 0;
+          this.total_time_end = 0;
+          this.session_id = "";
+          var self = this;
+
+          this._loadDeps().then(function () {
+            var conf = {
+              "endpoint": self.endpoint,
+              "auth": "Basic " + toBase64(self.auth)
+            };
+            ADL.XAPIWrapper.changeConfig(conf);
+          });
+
+          paella.events.bind(paella.events.timeUpdate, function (event, params) {
+            self.current_time.push(params.currentTime);
+
+            if (self.current_time.length >= 10) {
+              self.current_time = self.current_time.slice(-10);
+            }
+
+            var a = Math.round(self.current_time[0]);
+            var b = Math.round(self.current_time[9]);
+
+            if (params.currentTime !== 0 && a + 1 >= b && b - 1 >= a) {
+              self.progress = self.get_progress(params.currentTime, params.duration);
+
+              if (self.progress >= 0.95 && self.completed === false) {
+                self.completed = true;
+                self.end_played_segment(params.currentTime);
+                self.start_played_segment(params.currentTime);
+                self.send_completed(params.currentTime, self.progress);
+              }
+            }
+          });
+        }
+      }, {
+        key: "get_session_data",
+        value: function get_session_data() {
+          var myparams = ADL.XAPIWrapper.searchParams();
+          var agent = JSON.stringify({
+            "mbox": this.user_info.email
+          });
+          var timestamp = new Date();
+          timestamp.setDate(timestamp.getDate() - 1);
+          timestamp = timestamp.toISOString();
+          myparams['activity'] = window.location.href;
+          myparams['verb'] = 'http://adlnet.gov/expapi/verbs/terminated';
+          myparams['since'] = timestamp;
+          myparams['limit'] = 1;
+          myparams['agent'] = agent;
+          var ret = ADL.XAPIWrapper.getStatements(myparams);
+
+          if (ret.statements.length === 1) {
+            this.played_segments = ret.statements[0].result.extensions['https://w3id.org/xapi/video/extensions/played-segments'];
+            this.progress = ret.statements[0].result.extensions['https://w3id.org/xapi/video/extensions/progress'];
+            ADL.XAPIWrapper.lrs.registration = ret.statements[0].context.registration;
+          } else {
+            ADL.XAPIWrapper.lrs.registration = ADL.ruuid();
+          }
+        }
+      }, {
+        key: "getCookie",
+        value: function getCookie(cname) {
+          var name = cname + "=";
+          var decodedCookie = decodeURIComponent(document.cookie);
+          var ca = decodedCookie.split(';');
+
+          for (var i = 0; i < ca.length; i++) {
+            var c = ca[i];
+
+            while (c.charAt(0) == ' ') {
+              c = c.substring(1);
+            }
+
+            if (c.indexOf(name) == 0) {
+              return c.substring(name.length, c.length);
+            }
+          }
+
+          return "";
+        }
+      }, {
+        key: "setCookie",
+        value: function setCookie(cname, cvalue, exdays) {
+          var d = new Date();
+          d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
+          var expires = "expires=" + d.toUTCString();
+          document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
+        }
+      }, {
+        key: "checkCookie",
+        value: function checkCookie() {
+          var user_info = this.getCookie("user_info");
+
+          if (user_info === "") {
+            user_info = JSON.stringify(generateName());
+          }
+
+          this.setCookie("user_info", user_info);
+          return JSON.parse(user_info);
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this._url = this.config.url;
+          this._index = this.config.index || "paellaplayer";
+          this._type = this.config.type || "usertracking";
+          onSuccess(true);
+        }
+      }, {
+        key: "_loadDeps",
+        value: function _loadDeps() {
+          return new Promise(function (resolve, reject) {
+            if (!window.$paella_mpd) {
+              require(['resources/deps/xapiwrapper.min.js'], function () {
+                require(['resources/deps/random_name_generator.js'], function () {
+                  window.$paella_bg2e = true;
+                  resolve(window.$paella_bg2e);
+                });
+              });
+            } else {
+              defer.resolve(window.$paella_mpd);
+            }
+          });
+        }
+      }, {
+        key: "log",
+        value: function log(event, params) {
+          var p = params;
+          var self = this; // console.log(event)
+          // console.log(params)
+
+          switch (event) {
+            //Retrieve initial parameters from player
+            case "paella:loadComplete":
+              this.user_agent = navigator.userAgent.toString();
+              this.get_title();
+              this.get_description();
+              paella.player.videoContainer.duration().then(function (duration) {
+                return paella.player.videoContainer.streamProvider.mainAudioPlayer.volume().then(function (volume) {
+                  return paella.player.videoContainer.getCurrentQuality().then(function (quality) {
+                    return paella.player.auth.userData().then(function (user_info) {
+                      self.duration = duration;
+                      self.volume = volume;
+                      self.speed = 1;
+
+                      if (paella.player.videoContainer.streamProvider.mainAudioPlayer.stream.language) {
+                        self.language = paella.player.videoContainer.streamProvider.mainAudioPlayer.stream.language.replace("_", "-");
+                      }
+
+                      self.quality = quality.shortLabel();
+
+                      if (user_info.email && user_info.name) {
+                        self.user_info = user_info;
+                      } else {
+                        self.user_info = self.checkCookie();
+                      }
+
+                      self.get_session_data();
+                      self.send_initialized();
+                    });
+                  });
+                });
+              });
+
+              window.onbeforeunload = function (e) {
+                if (!self.paused) {
+                  self.send_pause(self);
+                } //TODO Algunas veces se envia terminated antes que paused
+
+
+                self.send_terminated(self); // var dialogText = 'Dialog text here';
+                // e.returnValue = dialogText;
+                // window.onbeforeunload = null;
+                // return dialogText;
+              };
+
+              break;
+
+            case "paella:play":
+              this.send_play(self);
+              break;
+
+            case "paella:pause":
+              this.send_pause(self);
+              break;
+
+            case "paella:seektotime":
+              this.send_seek(self, params);
+              break;
+            //Player options
+
+            case "paella:setVolume":
+              paella.player.videoContainer.currentTime().then(function (currentTime) {
+                var current_time = self.format_float(currentTime);
+                self.volume = params.master; //self.send_interacted(current_time, {"https://w3id.org/xapi/video/extensions/volume": params.master})
+
+                var interacted = {
+                  "https://w3id.org/xapi/video/extensions/volume": self.format_float(params.master)
+                };
+                self.send_interacted(current_time, interacted);
+              });
+              break;
+
+            case "paella:setplaybackrate":
+              paella.player.videoContainer.currentTime().then(function (currentTime) {
+                var current_time = self.format_float(currentTime);
+                self.speed = params.rate;
+                var interacted = {
+                  "https://w3id.org/xapi/video/extensions/speed": params.rate + "x"
+                };
+                self.send_interacted(current_time, interacted);
+              });
+              break;
+
+            case "paella:qualityChanged":
+              paella.player.videoContainer.currentTime().then(function (currentTime) {
+                return paella.player.videoContainer.getCurrentQuality().then(function (quality) {
+                  self.quality = quality.shortLabel();
+                  var current_time = self.format_float(currentTime);
+                  var interacted = {
+                    "https://w3id.org/xapi/video/extensions/quality": quality.shortLabel()
+                  };
+                  self.send_interacted(current_time, interacted);
+                });
+              });
+              break;
+
+            case "paella:enterFullscreen":
+            case "paella:exitFullscreen":
+              paella.player.videoContainer.currentTime().then(function (currentTime) {
+                var current_time = self.format_float(currentTime);
+                self.fullscreen ? self.fullscreen = false : self.fullscreen = true;
+                var interacted = {
+                  "https://w3id.org/xapi/video/extensions/full-screen": self.fullscreen
+                };
+                self.send_interacted(current_time, interacted);
+              });
+              break;
+
+            default:
+              break;
+          }
+        }
+      }, {
+        key: "send",
+        value: function send(params) {
+          var agent = new ADL.XAPIStatement.Agent(this.user_info.email, this.user_info.name);
+          var verb = new ADL.XAPIStatement.Verb(params.verb.id, params.verb.description);
+          var activity = new ADL.XAPIStatement.Activity(window.location.href, this.title, this.description);
+          activity.definition.type = "https://w3id.org/xapi/video/activity-type/video";
+          paella.player.videoContainer.streamProvider.mainAudioPlayer.volume().then(function (volume) {});
+          var statement = new ADL.XAPIStatement(agent, verb, activity);
+          statement.result = params.result;
+
+          if (params.verb.id === "http://adlnet.gov/expapi/verbs/initialized") {
+            statement.generateId();
+            this.session_id = statement.id;
+          }
+
+          var ce_base = {
+            "https://w3id.org/xapi/video/extensions/session-id": this.session_id,
+            "https://w3id.org/xapi/video/extensions/length": Math.floor(this.duration),
+            "https://w3id.org/xapi/video/extensions/user-agent": this.user_agent
+          };
+          var ce_interactions = {
+            "https://w3id.org/xapi/video/extensions/volume": this.format_float(this.volume),
+            "https://w3id.org/xapi/video/extensions/speed": this.speed + "x",
+            "https://w3id.org/xapi/video/extensions/quality": this.quality,
+            "https://w3id.org/xapi/video/extensions/full-screen": this.fullscreen
+          };
+          var context_extensions = {};
+
+          if (params.interacted) {
+            context_extensions = $.extend({}, ce_base, params.interacted);
+          } else {
+            context_extensions = $.extend({}, ce_base, ce_interactions);
+          }
+
+          statement.context = {
+            "language": this.language,
+            "extensions": context_extensions,
+            "contextActivities": {
+              "category": [{
+                "objectType": "Activity",
+                "id": "https://w3id.org/xapi/video"
+              }]
+            }
+          }; // Dispatch the statement to the LRS
+
+          var result = ADL.XAPIWrapper.sendStatement(statement);
+        }
+      }, {
+        key: "send_initialized",
+        value: function send_initialized() {
+          var statement = {
+            "verb": {
+              "id": "http://adlnet.gov/expapi/verbs/initialized",
+              "description": "initalized"
+            }
+          };
+          this.send(statement);
+        }
+      }, {
+        key: "send_terminated",
+        value: function send_terminated(self) {
+          paella.player.videoContainer.currentTime().then(function (end_time) {
+            var statement = {
+              "verb": {
+                "id": "http://adlnet.gov/expapi/verbs/terminated",
+                "description": "terminated"
+              },
+              "result": {
+                "extensions": {
+                  "https://w3id.org/xapi/video/extensions/time": end_time,
+                  "https://w3id.org/xapi/video/extensions/progress": self.progress,
+                  "https://w3id.org/xapi/video/extensions/played-segments": self.played_segments
+                }
+              }
+            };
+            self.send(statement);
+          });
+        }
+      }, {
+        key: "send_play",
+        value: function send_play(self) {
+          this.paused = false;
+          this.total_time_start = new Date().getTime() / 1000;
+          paella.player.videoContainer.currentTime().then(function (currentTime) {
+            var start_time = self.format_float(currentTime); //When the video starts we force start_time to 0
+
+            if (start_time <= 1) {
+              start_time = 0;
+            }
+
+            self.start_played_segment(start_time);
+            var statement = {
+              "verb": {
+                "id": "https://w3id.org/xapi/video/verbs/played",
+                "description": "played"
+              },
+              "result": {
+                "extensions": {
+                  "https://w3id.org/xapi/video/extensions/time": start_time
+                }
+              }
+            };
+            self.send(statement);
+          });
+        }
+      }, {
+        key: "send_pause",
+        value: function send_pause(self) {
+          this.paused = true;
+          this.total_time_end = new Date().getTime() / 1000;
+          this.total_time += this.total_time_end - this.total_time_start;
+          paella.player.videoContainer.currentTime().then(function (currentTime) {
+            //return paella.player.videoContainer.duration().then(function(duration) {
+            var end_time = self.format_float(currentTime); //self.progress = self.get_progress(end_time, duration)
+            //If a video end, the player go to the video start and raise a pause event with currentTime = 0
+
+            if (end_time === 0) {
+              end_time = self.duration;
+            }
+
+            self.end_played_segment(end_time);
+            var statement = {
+              "verb": {
+                "id": "https://w3id.org/xapi/video/verbs/paused",
+                "description": "paused"
+              },
+              "result": {
+                "extensions": {
+                  "https://w3id.org/xapi/video/extensions/time": end_time,
+                  "https://w3id.org/xapi/video/extensions/progress": self.progress,
+                  "https://w3id.org/xapi/video/extensions/played-segments": self.played_segments
+                }
+              }
+            };
+            self.send(statement);
+          }); //});
+        }
+      }, {
+        key: "send_seek",
+        value: function send_seek(self, params) {
+          var seekedto = this.format_float(params.newPosition); //FIXME Metodo para obtener el instante desde donde empieza el seek
+
+          var a = this.current_time.filter(function (value) {
+            return value <= seekedto - 1;
+          });
+
+          if (a.length === 0) {
+            a = this.current_time.filter(function (value) {
+              return value >= seekedto + 1;
+            });
+          } //In some cases, when you seek to the end of the video the array contains zeros at the end
+
+
+          var seekedfrom = a.filter(Number).pop();
+          this.current_time = [];
+          this.current_time.push(seekedto); // Fin de FIXME
+          //If the video is paused it's not neccesary create a new segment, because the pause event already close a segment
+
+          self.progress = self.get_progress(seekedfrom, self.duration);
+
+          if (!this.paused) {
+            this.end_played_segment(seekedfrom);
+            this.start_played_segment(seekedto);
+          } //paella.player.videoContainer.duration().then(function(duration) {
+          //var progress = self.get_progress(seekedfrom, duration)
+
+
+          var statement = {
+            "verb": {
+              "id": "https://w3id.org/xapi/video/verbs/seeked",
+              "description": "seeked"
+            },
+            "result": {
+              "extensions": {
+                "https://w3id.org/xapi/video/extensions/time-from": seekedfrom,
+                "https://w3id.org/xapi/video/extensions/time-to": seekedto,
+                // Aqui tambien deberiamos de enviar los segmentos reproducidos y el porcentaje
+                "https://w3id.org/xapi/video/extensions/progress": self.progress,
+                "https://w3id.org/xapi/video/extensions/played-segments": self.played_segments
+              }
+            }
+          };
+          self.send(statement); //})
+        }
+      }, {
+        key: "send_completed",
+        value: function send_completed(time, progress) {
+          var statement = {
+            "verb": {
+              "id": "http://adlnet.gov/xapi/verbs/completed",
+              "description": "completed"
+            },
+            "result": {
+              "completion": true,
+              "success": true,
+              "duration": "PT" + this.total_time + "S",
+              "extensions": {
+                "https://w3id.org/xapi/video/extensions/time": time,
+                "https://w3id.org/xapi/video/extensions/progress": progress,
+                "https://w3id.org/xapi/video/extensions/played-segments": this.played_segments
+              }
+            }
+          };
+          this.send(statement);
+        }
+      }, {
+        key: "send_interacted",
+        value: function send_interacted(current_time, interacted) {
+          var statement = {
+            "verb": {
+              "id": "http://adlnet.gov/expapi/verbs/interacted",
+              "description": "interacted"
+            },
+            "result": {
+              "extensions": {
+                "https://w3id.org/xapi/video/extensions/time": current_time
+              }
+            },
+            "interacted": interacted
+          };
+          this.send(statement);
+        }
+      }, {
+        key: "start_played_segment",
+        value: function start_played_segment(start_time) {
+          this.played_segments_segment_start = start_time;
+        }
+      }, {
+        key: "end_played_segment",
+        value: function end_played_segment(end_time) {
+          var arr;
+          arr = this.played_segments === "" ? [] : this.played_segments.split("[,]");
+          arr.push(this.played_segments_segment_start + "[.]" + end_time);
+          this.played_segments = arr.join("[,]");
+          this.played_segments_segment_end = end_time; //this.played_segments_segment_start = null;
+        }
+      }, {
+        key: "format_float",
+        value: function format_float(number) {
+          number = parseFloat(number); //Ensure that number is a float
+
+          return parseFloat(number.toFixed(3));
+        }
+      }, {
+        key: "get_title",
+        value: function get_title() {
+          if (paella.player.videoLoader.getMetadata().i18nTitle) {
+            this.title = paella.player.videoLoader.getMetadata().i18nTitle;
+          } else if (paella.player.videoLoader.getMetadata().title) {
+            this.title = paella.player.videoLoader.getMetadata().title;
+          }
+        }
+      }, {
+        key: "get_description",
+        value: function get_description() {
+          if (paella.player.videoLoader.getMetadata().i18nTitle) {
+            this.description = paella.player.videoLoader.getMetadata().i18nDescription;
+          } else {
+            this.description = paella.player.videoLoader.getMetadata().description;
+          }
+        }
+      }, {
+        key: "get_progress",
+        value: function get_progress(currentTime, duration) {
+          var arr, arr2; //get played segments array
+
+          arr = this.played_segments === "" ? [] : this.played_segments.split("[,]");
+
+          if (this.played_segments_segment_start != null) {
+            arr.push(this.played_segments_segment_start + "[.]" + currentTime);
+          }
+
+          arr2 = [];
+          arr.forEach(function (v, i) {
+            arr2[i] = v.split("[.]");
+            arr2[i][0] *= 1;
+            arr2[i][1] *= 1;
+          }); //sort the array
+
+          arr2.sort(function (a, b) {
+            return a[0] - b[0];
+          }); //normalize the segments
+
+          arr2.forEach(function (v, i) {
+            if (i > 0) {
+              if (arr2[i][0] < arr2[i - 1][1]) {
+                //overlapping segments: this segment's starting point is less than last segment's end point.
+                //console.log(arr2[i][0] + " < " + arr2[i-1][1] + " : " + arr2[i][0] +" = " +arr2[i-1][1] );
+                arr2[i][0] = arr2[i - 1][1];
+                if (arr2[i][0] > arr2[i][1]) arr2[i][1] = arr2[i][0];
+              }
+            }
+          }); //calculate progress_length
+
+          var progress_length = 0;
+          arr2.forEach(function (v, i) {
+            if (v[1] > v[0]) progress_length += v[1] - v[0];
+          });
+          var progress = 1 * (progress_length / duration).toFixed(2);
+          return progress;
+        }
+      }]);
+
+      return xAPISaverPlugin;
+    }(paella.userTracking.SaverPlugIn)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl) {
+      _inherits(SingleStreamProfilePlugin, _paella$EventDrivenPl);
+
+      function SingleStreamProfilePlugin() {
+        _classCallCheck(this, SingleStreamProfilePlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(SingleStreamProfilePlugin).apply(this, arguments));
+      }
+
+      _createClass(SingleStreamProfilePlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.singleStreamProfilePlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var config = this.config;
+          config.videoSets.forEach(function (videoSet, index) {
+            var validContent = videoSet.content;
+
+            if (validContent.length == 1) {
+              var streamCount = 0;
+              paella.player.videoContainer.streamProvider.videoStreams.forEach(function (v) {
+                if (validContent.indexOf(v.content) != -1) {
+                  streamCount++;
+                }
+              });
+
+              if (streamCount >= 1) {
+                onSuccess(true);
+                paella.addProfile(function () {
+                  return new Promise(function (resolve, reject) {
+                    resolve({
+                      id: videoSet.id,
+                      name: {
+                        es: "Un stream"
+                      },
+                      hidden: false,
+                      icon: videoSet.icon,
+                      videos: [{
+                        content: validContent[0],
+                        rect: [{
+                          aspectRatio: "1/1",
+                          left: 280,
+                          top: 0,
+                          width: 720,
+                          height: 720
+                        }, {
+                          aspectRatio: "6/5",
+                          left: 208,
+                          top: 0,
+                          width: 864,
+                          height: 720
+                        }, {
+                          aspectRatio: "5/4",
+                          left: 190,
+                          top: 0,
+                          width: 900,
+                          height: 720
+                        }, {
+                          aspectRatio: "4/3",
+                          left: 160,
+                          top: 0,
+                          width: 960,
+                          height: 720
+                        }, {
+                          aspectRatio: "11/8",
+                          left: 145,
+                          top: 0,
+                          width: 990,
+                          height: 720
+                        }, {
+                          aspectRatio: "1.41/1",
+                          left: 132,
+                          top: 0,
+                          width: 1015,
+                          height: 720
+                        }, {
+                          aspectRatio: "1.43/1",
+                          left: 125,
+                          top: 0,
+                          width: 1029,
+                          height: 720
+                        }, {
+                          aspectRatio: "3/2",
+                          left: 100,
+                          top: 0,
+                          width: 1080,
+                          height: 720
+                        }, {
+                          aspectRatio: "16/10",
+                          left: 64,
+                          top: 0,
+                          width: 1152,
+                          height: 720
+                        }, {
+                          aspectRatio: "5/3",
+                          left: 40,
+                          top: 0,
+                          width: 1200,
+                          height: 720
+                        }, {
+                          aspectRatio: "16/9",
+                          left: 0,
+                          top: 0,
+                          width: 1280,
+                          height: 720
+                        }, {
+                          aspectRatio: "1.85/1",
+                          left: 0,
+                          top: 14,
+                          width: 1280,
+                          height: 692
+                        }, {
+                          aspectRatio: "2.35/1",
+                          left: 0,
+                          top: 87,
+                          width: 1280,
+                          height: 544
+                        }, {
+                          aspectRatio: "2.41/1",
+                          left: 0,
+                          top: 94,
+                          width: 1280,
+                          height: 531
+                        }, {
+                          aspectRatio: "2.76/1",
+                          left: 0,
+                          top: 128,
+                          width: 1280,
+                          height: 463
+                        }],
+                        visible: true,
+                        layer: 1
+                      }],
+                      background: {
+                        content: "slide_professor_paella.jpg",
+                        zIndex: 5,
+                        rect: {
+                          left: 0,
+                          top: 0,
+                          width: 1280,
+                          height: 720
+                        },
+                        visible: true,
+                        layer: 0
+                      },
+                      logos: [{
+                        content: "paella_logo.png",
+                        zIndex: 5,
+                        rect: {
+                          top: 10,
+                          left: 10,
+                          width: 49,
+                          height: 42
+                        }
+                      }],
+                      buttons: [],
+                      onApply: function onApply() {}
+                    });
+                  });
+                });
+              } else {
+                onSuccess(false);
+              }
+            }
+          });
+        }
+      }]);
+
+      return SingleStreamProfilePlugin;
+    }(paella.EventDrivenPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl2) {
+      _inherits(DualStreamProfilePlugin, _paella$EventDrivenPl2);
+
+      function DualStreamProfilePlugin() {
+        _classCallCheck(this, DualStreamProfilePlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(DualStreamProfilePlugin).apply(this, arguments));
+      }
+
+      _createClass(DualStreamProfilePlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.dualStreamProfilePlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var config = this.config;
+          config.videoSets.forEach(function (videoSet, index) {
+            var validContent = videoSet.content;
+
+            if (validContent.length == 2) {
+              var streamCount = 0;
+              paella.player.videoContainer.streamProvider.videoStreams.forEach(function (v) {
+                if (validContent.indexOf(v.content) != -1) {
+                  streamCount++;
+                }
+              });
+
+              if (streamCount >= 2) {
+                onSuccess(true);
+                paella.addProfile(function () {
+                  return new Promise(function (resolve, reject) {
+                    resolve({
+                      id: videoSet.id,
+                      name: {
+                        es: "Dos streams con posición dinámica"
+                      },
+                      hidden: false,
+                      icon: videoSet.icon,
+                      videos: [{
+                        content: validContent[0],
+                        rect: [{
+                          aspectRatio: "16/9",
+                          left: 712,
+                          top: 302,
+                          width: 560,
+                          height: 315
+                        }, {
+                          aspectRatio: "16/10",
+                          left: 712,
+                          top: 267,
+                          width: 560,
+                          height: 350
+                        }, {
+                          aspectRatio: "4/3",
+                          left: 712,
+                          top: 198,
+                          width: 560,
+                          height: 420
+                        }, {
+                          aspectRatio: "5/3",
+                          left: 712,
+                          top: 281,
+                          width: 560,
+                          height: 336
+                        }, {
+                          aspectRatio: "5/4",
+                          left: 712,
+                          top: 169,
+                          width: 560,
+                          height: 448
+                        }],
+                        visible: true,
+                        layer: 1
+                      }, {
+                        content: validContent[1],
+                        rect: [{
+                          aspectRatio: "16/9",
+                          left: 10,
+                          top: 225,
+                          width: 695,
+                          height: 390
+                        }, {
+                          aspectRatio: "16/10",
+                          left: 10,
+                          top: 183,
+                          width: 695,
+                          height: 434
+                        }, {
+                          aspectRatio: "4/3",
+                          left: 10,
+                          top: 96,
+                          width: 695,
+                          height: 521
+                        }, {
+                          aspectRatio: "5/3",
+                          left: 10,
+                          top: 200,
+                          width: 695,
+                          height: 417
+                        }, {
+                          aspectRatio: "5/4",
+                          left: 10,
+                          top: 62,
+                          width: 695,
+                          height: 556
+                        }],
+                        visible: true,
+                        layer: "1"
+                      }],
+                      background: {
+                        content: "slide_professor_paella.jpg",
+                        zIndex: 5,
+                        rect: {
+                          left: 0,
+                          top: 0,
+                          width: 1280,
+                          height: 720
+                        },
+                        visible: true,
+                        layer: 0
+                      },
+                      logos: [{
+                        content: "paella_logo.png",
+                        zIndex: 5,
+                        rect: {
+                          top: 10,
+                          left: 10,
+                          width: 49,
+                          height: 42
+                        }
+                      }],
+                      buttons: [{
+                        rect: {
+                          left: 682,
+                          top: 565,
+                          width: 45,
+                          height: 45
+                        },
+                        onClick: function onClick(event) {
+                          this["switch"]();
+                        },
+                        label: "Switch",
+                        icon: "icon_rotate.svg",
+                        layer: 2
+                      }, {
+                        rect: {
+                          left: 682,
+                          top: 515,
+                          width: 45,
+                          height: 45
+                        },
+                        onClick: function onClick(event) {
+                          this.switchMinimize();
+                        },
+                        label: "Minimize",
+                        icon: "minimize.svg",
+                        layer: 2
+                      }],
+                      onApply: function onApply() {},
+                      "switch": function _switch() {
+                        var v0 = this.videos[0].content;
+                        var v1 = this.videos[1].content;
+                        this.videos[0].content = v1;
+                        this.videos[1].content = v0;
+                        paella.profiles.placeVideos();
+                      },
+                      switchMinimize: function switchMinimize() {
+                        if (this.minimized) {
+                          this.minimized = false;
+                          this.videos = [{
+                            content: validContent[0],
+                            rect: [{
+                              aspectRatio: "16/9",
+                              left: 712,
+                              top: 302,
+                              width: 560,
+                              height: 315
+                            }, {
+                              aspectRatio: "16/10",
+                              left: 712,
+                              top: 267,
+                              width: 560,
+                              height: 350
+                            }, {
+                              aspectRatio: "4/3",
+                              left: 712,
+                              top: 198,
+                              width: 560,
+                              height: 420
+                            }, {
+                              aspectRatio: "5/3",
+                              left: 712,
+                              top: 281,
+                              width: 560,
+                              height: 336
+                            }, {
+                              aspectRatio: "5/4",
+                              left: 712,
+                              top: 169,
+                              width: 560,
+                              height: 448
+                            }],
+                            visible: true,
+                            layer: 1
+                          }, {
+                            content: validContent[1],
+                            rect: [{
+                              aspectRatio: "16/9",
+                              left: 10,
+                              top: 225,
+                              width: 695,
+                              height: 390
+                            }, {
+                              aspectRatio: "16/10",
+                              left: 10,
+                              top: 183,
+                              width: 695,
+                              height: 434
+                            }, {
+                              aspectRatio: "4/3",
+                              left: 10,
+                              top: 96,
+                              width: 695,
+                              height: 521
+                            }, {
+                              aspectRatio: "5/3",
+                              left: 10,
+                              top: 200,
+                              width: 695,
+                              height: 417
+                            }, {
+                              aspectRatio: "5/4",
+                              left: 10,
+                              top: 62,
+                              width: 695,
+                              height: 556
+                            }],
+                            visible: true,
+                            layer: 2
+                          }];
+                          this.buttons = [{
+                            rect: {
+                              left: 682,
+                              top: 565,
+                              width: 45,
+                              height: 45
+                            },
+                            onClick: function onClick(event) {
+                              this["switch"]();
+                            },
+                            label: "Switch",
+                            icon: "icon_rotate.svg",
+                            layer: 2
+                          }, {
+                            rect: {
+                              left: 682,
+                              top: 515,
+                              width: 45,
+                              height: 45
+                            },
+                            onClick: function onClick(event) {
+                              this.switchMinimize();
+                            },
+                            label: "Minimize",
+                            icon: "minimize.svg",
+                            layer: 2
+                          }];
+                        } else {
+                          this.minimized = true;
+                          this.videos = [{
+                            content: validContent[0],
+                            rect: [{
+                              aspectRatio: "16/9",
+                              left: 0,
+                              top: 0,
+                              width: 1280,
+                              height: 720
+                            }, {
+                              aspectRatio: "16/10",
+                              left: 64,
+                              top: 0,
+                              width: 1152,
+                              height: 720
+                            }, {
+                              aspectRatio: "5/3",
+                              left: 40,
+                              top: 0,
+                              width: 1200,
+                              height: 720
+                            }, {
+                              aspectRatio: "5/4",
+                              left: 190,
+                              top: 0,
+                              width: 900,
+                              height: 720
+                            }, {
+                              aspectRatio: "4/3",
+                              left: 160,
+                              top: 0,
+                              width: 960,
+                              height: 720
+                            }],
+                            visible: true,
+                            layer: 1
+                          }, {
+                            content: validContent[1],
+                            rect: [{
+                              aspectRatio: "16/9",
+                              left: 50,
+                              top: 470,
+                              width: 350,
+                              height: 197
+                            }, {
+                              aspectRatio: "16/10",
+                              left: 50,
+                              top: 448,
+                              width: 350,
+                              height: 219
+                            }, {
+                              aspectRatio: "5/3",
+                              left: 50,
+                              top: 457,
+                              width: 350,
+                              height: 210
+                            }, {
+                              aspectRatio: "5/4",
+                              left: 50,
+                              top: 387,
+                              width: 350,
+                              height: 280
+                            }, {
+                              aspectRatio: "4/3",
+                              left: 50,
+                              top: 404,
+                              width: 350,
+                              height: 262
+                            }],
+                            visible: true,
+                            layer: 2
+                          }];
+                          this.buttons = [{
+                            rect: {
+                              left: 388,
+                              top: 465,
+                              width: 45,
+                              height: 45
+                            },
+                            onClick: function onClick(event) {
+                              this["switch"]();
+                            },
+                            label: "Switch",
+                            icon: "icon_rotate.svg",
+                            layer: 2
+                          }, {
+                            rect: {
+                              left: 388,
+                              top: 415,
+                              width: 45,
+                              height: 45
+                            },
+                            onClick: function onClick(event) {
+                              this.switchMinimize();
+                            },
+                            label: "Switch",
+                            icon: "minimize.svg",
+                            layer: 2
+                          }];
+                        }
+
+                        paella.profiles.placeVideos();
+                      }
+                    });
+                  });
+                });
+              } else {
+                onSuccess(false);
+              }
+            }
+          });
+        }
+      }]);
+
+      return DualStreamProfilePlugin;
+    }(paella.EventDrivenPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl3) {
+      _inherits(TripleStreamProfilePlugin, _paella$EventDrivenPl3);
+
+      function TripleStreamProfilePlugin() {
+        _classCallCheck(this, TripleStreamProfilePlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(TripleStreamProfilePlugin).apply(this, arguments));
+      }
+
+      _createClass(TripleStreamProfilePlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.tripleStreamProfilePlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var config = this.config;
+          config.videoSets.forEach(function (videoSet, index) {
+            var validContent = videoSet.content;
+
+            if (validContent.length == 3) {
+              var streamCount = 0;
+              paella.player.videoContainer.streamProvider.videoStreams.forEach(function (v) {
+                if (validContent.indexOf(v.content) != -1) {
+                  streamCount++;
+                }
+              });
+
+              if (streamCount >= 3) {
+                onSuccess(true);
+                paella.addProfile(function () {
+                  return new Promise(function (resolve, reject) {
+                    resolve({
+                      id: videoSet.id,
+                      name: {
+                        es: "Tres streams posición dinámica"
+                      },
+                      hidden: false,
+                      icon: videoSet.icon,
+                      videos: [{
+                        content: validContent[0],
+                        rect: [{
+                          aspectRatio: "16/9",
+                          left: 239,
+                          top: 17,
+                          width: 803,
+                          height: 451
+                        }],
+                        visible: true,
+                        layer: 1
+                      }, {
+                        content: validContent[1],
+                        rect: [{
+                          aspectRatio: "16/9",
+                          left: 44,
+                          top: 482,
+                          width: 389,
+                          height: 218
+                        }],
+                        visible: true,
+                        layer: 1
+                      }, {
+                        content: validContent[2],
+                        rect: [{
+                          aspectRatio: "16/9",
+                          left: 847,
+                          top: 482,
+                          width: 389,
+                          height: 218
+                        }],
+                        visible: true,
+                        layer: 1
+                      }],
+                      background: {
+                        content: "slide_professor_paella.jpg",
+                        zIndex: 5,
+                        rect: {
+                          left: 0,
+                          top: 0,
+                          width: 1280,
+                          height: 720
+                        },
+                        visible: true,
+                        layer: 0
+                      },
+                      logos: [{
+                        content: "paella_logo.png",
+                        zIndex: 5,
+                        rect: {
+                          top: 10,
+                          left: 10,
+                          width: 49,
+                          height: 42
+                        }
+                      }],
+                      buttons: [{
+                        rect: {
+                          left: 618,
+                          top: 495,
+                          width: 45,
+                          height: 45
+                        },
+                        onClick: function onClick(event) {
+                          this.rotate();
+                        },
+                        label: "Rotate",
+                        icon: "icon_rotate.svg",
+                        layer: 2
+                      }],
+                      onApply: function onApply() {},
+                      rotate: function rotate() {
+                        var v0 = this.videos[0].content;
+                        var v1 = this.videos[1].content;
+                        var v2 = this.videos[2].content;
+                        this.videos[0].content = v2;
+                        this.videos[1].content = v0;
+                        this.videos[2].content = v1;
+                        paella.profiles.placeVideos();
+                      }
+                    });
+                  });
+                });
+              } else {
+                onSuccess(false);
+              }
+            }
+          });
+        }
+      }]);
+
+      return TripleStreamProfilePlugin;
+    }(paella.EventDrivenPlugin)
+  );
+});
+paella.addProfile(function () {
+  return new Promise(function (resolve, reject) {
+    paella.events.bind(paella.events.videoReady, function () {
+      var available = paella.player.videoContainer.streamProvider.videoStreams.some(function (v) {
+        return v.content == "blackboard";
+      });
+
+      if (!available) {
+        resolve(null);
+      } else {
+        resolve({
+          id: "blackboard_video_stream",
+          name: {
+            es: "Pizarra"
+          },
+          hidden: false,
+          icon: "s_p_blackboard.svg",
+          videos: [{
+            content: "presentation",
+            rect: [{
+              aspectRatio: "16/9",
+              left: 10,
+              top: 70,
+              width: 432,
+              height: 243
+            }],
+            visible: true,
+            layer: 1
+          }, {
+            content: "blackboard",
+            rect: [{
+              aspectRatio: "16/9",
+              left: 450,
+              top: 135,
+              width: 816,
+              height: 459
+            }],
+            visible: true,
+            layer: 1
+          }, {
+            content: "presenter",
+            rect: [{
+              aspectRatio: "16/9",
+              left: 10,
+              top: 325,
+              width: 432,
+              height: 324
+            }],
+            visible: true,
+            layer: 1
+          }],
+          //blackBoardImages: {left:10,top:325,width:432,height:324},
+          background: {
+            content: "slide_professor_paella.jpg",
+            zIndex: 5,
+            rect: {
+              left: 0,
+              top: 0,
+              width: 1280,
+              height: 720
+            },
+            visible: true,
+            layer: 0
+          },
+          logos: [{
+            content: "paella_logo.png",
+            zIndex: 5,
+            rect: {
+              top: 10,
+              left: 10,
+              width: 49,
+              height: 42
+            }
+          }],
+          buttons: [{
+            rect: {
+              left: 422,
+              top: 295,
+              width: 45,
+              height: 45
+            },
+            onClick: function onClick(event) {
+              this.rotate();
+            },
+            label: "Rotate",
+            icon: "icon_rotate.svg",
+            layer: 2
+          }],
+          rotate: function rotate() {
+            var v0 = this.videos[0].content;
+            var v1 = this.videos[1].content;
+            var v2 = this.videos[2].content;
+            this.videos[0].content = v2;
+            this.videos[1].content = v0;
+            this.videos[2].content = v1;
+            paella.profiles.placeVideos();
+          }
+        });
+      }
+    });
+  });
+});
+paella.addProfile(function () {
+  return new Promise(function (resolve, reject) {
+    paella.events.bind(paella.events.videoReady, function () {
+      // TODO: videoContainer.sourceData is deprecated. Update this code
+      var n = paella.player.videoContainer.sourceData[0].sources;
+
+      if (!n.chroma) {
+        resolve(null);
+      } else {
+        resolve({
+          id: "chroma",
+          name: {
+            es: "Polimedia"
+          },
+          hidden: false,
+          icon: "chroma.svg",
+          videos: [{
+            content: "presenter",
+            rect: [{
+              aspectRatio: "16/9",
+              left: 0,
+              top: 0,
+              width: 1280,
+              height: 720
+            }, {
+              aspectRatio: "16/10",
+              left: 64,
+              top: 0,
+              width: 1152,
+              height: 720
+            }, {
+              aspectRatio: "5/3",
+              left: 40,
+              top: 0,
+              width: 1200,
+              height: 720
+            }, {
+              aspectRatio: "5/4",
+              left: 190,
+              top: 0,
+              width: 900,
+              height: 720
+            }, {
+              aspectRatio: "4/3",
+              left: 160,
+              top: 0,
+              width: 960,
+              height: 720
+            }],
+            visible: "true",
+            layer: "1"
+          }, {
+            content: "presentation",
+            rect: [{
+              aspectRatio: "16/9",
+              left: 0,
+              top: 0,
+              width: 1280,
+              height: 720
+            }, {
+              aspectRatio: "16/10",
+              left: 64,
+              top: 0,
+              width: 1152,
+              height: 720
+            }, {
+              aspectRatio: "5/3",
+              left: 40,
+              top: 0,
+              width: 1200,
+              height: 720
+            }, {
+              aspectRatio: "5/4",
+              left: 190,
+              top: 0,
+              width: 900,
+              height: 720
+            }, {
+              aspectRatio: "4/3",
+              left: 160,
+              top: 0,
+              width: 960,
+              height: 720
+            }],
+            visible: "true",
+            layer: "0"
+          }],
+          background: {
+            content: "default_background_paella.jpg",
+            zIndex: 5,
+            rect: {
+              left: 0,
+              top: 0,
+              width: 1280,
+              height: 720
+            },
+            visible: "true",
+            layer: "0"
+          },
+          logos: [{
+            content: "paella_logo.png",
+            zIndex: 5,
+            rect: {
+              top: 10,
+              left: 10,
+              width: 49,
+              height: 42
+            }
+          }]
+        });
+      }
+    });
+  });
+});
+/*
+paella.plugins.TrimmingTrackPlugin = Class.create(paella.editor.MainTrackPlugin,{
+	trimmingTrack:null,
+	trimmingData:{s:0,e:0},
+
+	getTrackItems:function() {
+		if (this.trimmingTrack==null) {
+			this.trimmingTrack = {id:1,s:0,e:0};
+			this.trimmingTrack.s = paella.player.videoContainer.trimStart();
+			this.trimmingTrack.e = paella.player.videoContainer.trimEnd();
+			this.trimmingData.s = this.trimmingTrack.s;
+			this.trimmingData.e = this.trimmingTrack.e;
+		}		
+		var tracks = [];
+		tracks.push(this.trimmingTrack);
+		return tracks;
+	},
+		
+	getName:function() { return "es.upv.paella.editor.trimmingTrackPlugin"; },
+
+	getTools:function() {
+		if(this.config.enableResetButton) {
+			return [
+				{name:'reset', label:base.dictionary.translate('Reset'), hint:base.dictionary.translate('Resets the trimming bar to the default length of the video.')}
+			];
+		}
+	},
+
+	onToolSelected:function(toolName) {
+		if(this.config.enableResetButton) {
+		    if(toolName=='reset') {
+			this.trimmingTrack = {id:1,s:0,e:0};
+			this.trimmingTrack.s = 0;
+			this.trimmingTrack.e = paella.player.videoContainer.duration(true);
+			return true;
+			}
+		}
+	},
+
+	getTrackName:function() {
+		return base.dictionary.translate("Trimming");
+	},
+	
+	getColor:function() {
+		return 'rgb(0, 51, 107)';
+	},
+	
+	//checkEnabled:function(isEnabled) {
+	//	isEnabled(paella.plugins.trimmingLoaderPlugin.config.enabled);
+		//isEnabled(paella.player.config.trimming && paella.player.config.trimming.enabled);
+		//},
+	
+	onSave:function(onDone) {
+		paella.player.videoContainer.enableTrimming();
+		paella.player.videoContainer.setTrimmingStart(this.trimmingTrack.s);
+		paella.player.videoContainer.setTrimmingEnd(this.trimmingTrack.e);
+
+		this.trimmingData.s = this.trimmingTrack.s;
+		this.trimmingData.e = this.trimmingTrack.e;
+		
+		paella.data.write('trimming',{id:paella.initDelegate.getId()},{start:this.trimmingTrack.s,end:this.trimmingTrack.e},function(data,status) {
+			onDone(status);
+		});
+	},
+	
+	onDiscard:function(onDone) {
+		this.trimmingTrack.s = this.trimmingData.s;
+		this.trimmingTrack.e = this.trimmingData.e;
+		onDone(true);
+	},
+	
+	allowDrag:function() {
+		return false;
+	},
+	
+	onTrackChanged:function(id,start,end) {
+		//Checks if the trimming is valid (start >= 0 and end <= duration_of_the_video)
+		playerEnd = paella.player.videoContainer.duration(true);
+		start = (start < 0)? 0 : start;
+		end = (end > playerEnd)? playerEnd : end;
+		this.trimmingTrack.s = start;
+		this.trimmingTrack.e = end;
+		this.parent(id,start,end);
+	},
+
+	contextHelpString:function() {
+		// TODO: Implement this using the standard base.dictionary class
+		if (base.dictionary.currentLanguage()=="es") {
+			return "Utiliza la herramienta de recorte para definir el instante inicial y el instante final de la clase. Para cambiar la duración solo hay que arrastrar el inicio o el final de la pista \"Recorte\", en la linea de tiempo.";
+		}
+		else {
+			return "Use this tool to define the start and finish time.";
+		}
+	}
+});
+
+paella.plugins.trimmingTrackPlugin = new paella.plugins.TrimmingTrackPlugin();
+
+*/
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl4) {
+      _inherits(TrimmingLoaderPlugin, _paella$EventDrivenPl4);
+
+      function TrimmingLoaderPlugin() {
+        _classCallCheck(this, TrimmingLoaderPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(TrimmingLoaderPlugin).apply(this, arguments));
+      }
+
+      _createClass(TrimmingLoaderPlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.trimmingPlayerPlugin";
+        }
+      }, {
+        key: "getEvents",
+        value: function getEvents() {
+          return [paella.events.controlBarLoaded, paella.events.showEditor, paella.events.hideEditor];
+        }
+      }, {
+        key: "onEvent",
+        value: function onEvent(eventType, params) {
+          switch (eventType) {
+            case paella.events.controlBarLoaded:
+              this.loadTrimming();
+              break;
+
+            case paella.events.showEditor:
+              paella.player.videoContainer.disableTrimming();
+              break;
+
+            case paella.events.hideEditor:
+              if (paella.player.config.trimming && paella.player.config.trimming.enabled) {
+                paella.player.videoContainer.enableTrimming();
+              }
+
+              break;
+          }
+        }
+      }, {
+        key: "loadTrimming",
+        value: function loadTrimming() {
+          var videoId = paella.initDelegate.getId();
+          paella.data.read('trimming', {
+            id: videoId
+          }, function (data, status) {
+            if (data && status && data.end > 0) {
+              paella.player.videoContainer.enableTrimming();
+              paella.player.videoContainer.setTrimming(data.start, data.end).then(function () {});
+            } else {
+              // Check for optional trim 'start' and 'end', in seconds, in location args
+              var startTime = base.parameters.get('start');
+              var endTime = base.parameters.get('end');
+
+              if (startTime && endTime) {
+                paella.player.videoContainer.setTrimming(startTime, endTime).then(function () {
+                  return paella.player.videoContainer.enableTrimming();
+                });
+              }
+            }
+          });
+        }
+      }]);
+
+      return TrimmingLoaderPlugin;
+    }(paella.EventDrivenPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin3) {
+      _inherits(AirPlayPlugin, _paella$ButtonPlugin3);
+
+      function AirPlayPlugin() {
+        _classCallCheck(this, AirPlayPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(AirPlayPlugin).apply(this, arguments));
+      }
+
+      _createClass(AirPlayPlugin, [{
+        key: "getIndex",
+        value: function getIndex() {
+          return 552;
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "AirPlayButton";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-airplay';
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.airPlayPlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this._visible = false; // PIP is only available with single stream videos
+
+          if (paella.player.videoContainer.streamProvider.videoStreams.length != 1) {
+            onSuccess(false);
+          } else {
+            onSuccess(window.WebKitPlaybackTargetAvailabilityEvent);
+          }
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Emit to AirPlay.");
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var _this127 = this;
+
+          var video = paella.player.videoContainer.masterVideo().video;
+
+          if (window.WebKitPlaybackTargetAvailabilityEvent) {
+            video.addEventListener('webkitplaybacktargetavailabilitychanged', function (event) {
+              switch (event.availability) {
+                case "available":
+                  _this127._visible = true;
+                  break;
+
+                case "not-available":
+                  _this127._visible = false;
+                  break;
+              }
+
+              _this127.updateClassName();
+            });
+          }
+        }
+      }, {
+        key: "action",
+        value: function action(button) {
+          var video = paella.player.videoContainer.masterVideo().video;
+          video.webkitShowPlaybackTargetPicker();
+        }
+      }, {
+        key: "updateClassName",
+        value: function updateClassName() {
+          this.button.className = this.getButtonItemClass(true);
+        }
+      }, {
+        key: "getButtonItemClass",
+        value: function getButtonItemClass(selected) {
+          return 'buttonPlugin ' + this.getSubclass() + " " + this.getAlignment() + " " + (this._visible ? "available" : "not-available");
+        }
+      }]);
+
+      return AirPlayPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl5) {
+      _inherits(ArrowSlidesNavigator, _paella$EventDrivenPl5);
+
+      function ArrowSlidesNavigator() {
+        _classCallCheck(this, ArrowSlidesNavigator);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(ArrowSlidesNavigator).apply(this, arguments));
+      }
+
+      _createClass(ArrowSlidesNavigator, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.arrowSlidesNavigatorPlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          if (!paella.initDelegate.initParams.videoLoader.frameList || Object.keys(paella.initDelegate.initParams.videoLoader.frameList).length == 0 || paella.player.videoContainer.isMonostream) {
+            onSuccess(false);
+          } else {
+            onSuccess(true);
+          }
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var self = this;
+          this._showArrowsIn = this.config.showArrowsIn || 'slave';
+          this.createOverlay();
+          self._frames = [];
+          var frames = paella.initDelegate.initParams.videoLoader.frameList;
+          var numFrames;
+
+          if (frames) {
+            var framesKeys = Object.keys(frames);
+            numFrames = framesKeys.length;
+            framesKeys.map(function (i) {
+              return Number(i, 10);
+            }).sort(function (a, b) {
+              return a - b;
+            }).forEach(function (key) {
+              self._frames.push(frames[key]);
+            });
+          }
+        }
+      }, {
+        key: "createOverlay",
+        value: function createOverlay() {
+          var self = this;
+          var overlayContainer = paella.player.videoContainer.overlayContainer;
+
+          if (!this.arrows) {
+            this.arrows = document.createElement('div');
+            this.arrows.id = "arrows";
+            this.arrows.style.marginTop = "25%";
+            var arrowNext = document.createElement('div');
+            arrowNext.className = "buttonPlugin arrowSlideNavidator nextButton right icon-next2";
+            this.arrows.appendChild(arrowNext);
+            var arrowPrev = document.createElement('div');
+            arrowPrev.className = "buttonPlugin arrowSlideNavidator prevButton left icon-previous2";
+            this.arrows.appendChild(arrowPrev);
+            $(arrowNext).click(function (e) {
+              self.goNextSlide();
+              e.stopPropagation();
+            });
+            $(arrowPrev).click(function (e) {
+              self.goPrevSlide();
+              e.stopPropagation();
+            });
+          }
+
+          if (this.container) {
+            overlayContainer.removeElement(this.container);
+          }
+
+          var rect = null;
+          var element = null;
+
+          if (!paella.profiles.currentProfile) {
+            return null;
+          }
+
+          this.config.content = this.config.content || ["presentation"];
+          var profilesContent = [];
+          paella.profiles.currentProfile.videos.forEach(function (profileData) {
+            profilesContent.push(profileData.content);
+          }); // Default content, if the "content" setting is not set in the configuration file
+
+          var selectedContent = profilesContent.length == 1 ? profilesContent[0] : profilesContent.length > 1 ? profilesContent[1] : "";
+          this.config.content.some(function (preferredContent) {
+            if (profilesContent.indexOf(preferredContent) != -1) {
+              selectedContent = preferredContent;
+              return true;
+            }
+          });
+
+          if (!selectedContent) {
+            this.container = overlayContainer.addLayer();
+            this.container.style.marginRight = "0";
+            this.container.style.marginLeft = "0";
+            this.arrows.style.marginTop = "25%";
+          } else {
+            var videoIndex = 0;
+            paella.player.videoContainer.streamProvider.streams.forEach(function (stream, index) {
+              if (stream.type == "video" && selectedContent == stream.content) {
+                videoIndex = index;
+              }
+            });
+            element = document.createElement('div');
+            rect = overlayContainer.getVideoRect(videoIndex); // content
+
+            this.container = overlayContainer.addElement(element, rect);
+            this.visible = rect.visible;
+            this.arrows.style.marginTop = "33%";
+          }
+
+          this.container.appendChild(this.arrows);
+          this.hideArrows();
+        }
+      }, {
+        key: "getCurrentRange",
+        value: function getCurrentRange() {
+          var _this128 = this;
+
+          return new Promise(function (resolve) {
+            if (_this128._frames.length < 1) {
+              resolve(null);
+            } else {
+              var trimming = null;
+              var duration = 0;
+              paella.player.videoContainer.duration().then(function (d) {
+                duration = d;
+                return paella.player.videoContainer.trimming();
+              }).then(function (t) {
+                trimming = t;
+                return paella.player.videoContainer.currentTime();
+              }).then(function (currentTime) {
+                if (!_this128._frames.some(function (f1, i, array) {
+                  if (i + 1 == array.length) {
+                    return;
+                  }
+
+                  var f0 = i == 0 ? f1 : _this128._frames[i - 1];
+                  var f2 = _this128._frames[i + 1];
+                  var t0 = trimming.enabled ? f0.time - trimming.start : f0.time;
+                  var t1 = trimming.enabled ? f1.time - trimming.start : f1.time;
+                  var t2 = trimming.enabled ? f2.time - trimming.start : f2.time;
+
+                  if (t1 < currentTime && t2 > currentTime || t1 == currentTime) {
+                    var range = {
+                      prev: t0,
+                      next: t2
+                    };
+
+                    if (t0 < 0) {
+                      range.prev = t1 > 0 ? t1 : 0;
+                    }
+
+                    resolve(range);
+                    return true;
+                  }
+                })) {
+                  var t0 = _this128._frames[_this128._frames.length - 2].time;
+                  var t1 = _this128._frames[_this128._frames.length - 1].time;
+                  resolve({
+                    prev: trimming.enabled ? t0 - trimming.start : t0,
+                    next: trimming.enabled ? t1 - trimming.start : t1
+                  });
+                }
+              });
+            }
+          });
+        }
+      }, {
+        key: "goNextSlide",
+        value: function goNextSlide() {
+          var self = this;
+          var trimming;
+          this.getCurrentRange().then(function (range) {
+            return paella.player.videoContainer.seekToTime(range.next);
+          }).then(function () {
+            paella.player.videoContainer.play();
+          });
+        }
+      }, {
+        key: "goPrevSlide",
+        value: function goPrevSlide() {
+          var self = this;
+          var trimming = null;
+          this.getCurrentRange().then(function (range) {
+            return paella.player.videoContainer.seekToTime(range.prev);
+          }).then(function () {
+            paella.player.videoContainer.play();
+          });
+        }
+      }, {
+        key: "showArrows",
+        value: function showArrows() {
+          if (this.visible) $(this.arrows).show();
+        }
+      }, {
+        key: "hideArrows",
+        value: function hideArrows() {
+          $(this.arrows).hide();
+        }
+      }, {
+        key: "getEvents",
+        value: function getEvents() {
+          return [paella.events.controlBarDidShow, paella.events.controlBarDidHide, paella.events.setComposition];
+        }
+      }, {
+        key: "onEvent",
+        value: function onEvent(eventType, params) {
+          var self = this;
+
+          switch (eventType) {
+            case paella.events.controlBarDidShow:
+              this.showArrows();
+              break;
+
+            case paella.events.controlBarDidHide:
+              this.hideArrows();
+              break;
+
+            case paella.events.setComposition:
+              this.createOverlay();
+              break;
+          }
+        }
+      }]);
+
+      return ArrowSlidesNavigator;
+    }(paella.EventDrivenPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin4) {
+      _inherits(AudioSelector, _paella$ButtonPlugin4);
+
+      function AudioSelector() {
+        _classCallCheck(this, AudioSelector);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(AudioSelector).apply(this, arguments));
+      }
+
+      _createClass(AudioSelector, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "audioSelector";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-headphone';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 2040;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.audioSelector";
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Set audio stream");
+        }
+      }, {
+        key: "closeOnMouseOut",
+        value: function closeOnMouseOut() {
+          return true;
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var _this129 = this;
+
+          paella.player.videoContainer.getAudioTags().then(function (tags) {
+            _this129._tags = tags;
+            onSuccess(tags.length > 1);
+          });
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var _this130 = this;
+
+          this._tags.forEach(function (tag) {
+            domElement.appendChild(_this130.getItemButton(tag));
+          });
+        }
+      }, {
+        key: "getItemButton",
+        value: function getItemButton(lang) {
+          var elem = document.createElement('div');
+          var currentTag = paella.player.videoContainer.audioTag;
+          var label = lang.replace(/[-\_]/g, " ");
+          elem.className = this.getButtonItemClass(label, lang == currentTag);
+          elem.id = "audioTagSelectorItem_" + lang;
+          elem.innerText = label;
+          elem.data = lang;
+          $(elem).click(function (event) {
+            $('.videoAudioTrackItem').removeClass('selected');
+            $('.videoAudioTrackItem.' + this.data).addClass('selected');
+            paella.player.videoContainer.setAudioTag(this.data);
+          });
+          return elem;
+        }
+      }, {
+        key: "setQualityLabel",
+        value: function setQualityLabel() {
+          var This = this;
+          paella.player.videoContainer.getCurrentQuality().then(function (q) {
+            This.setText(q.shortLabel());
+          });
+        }
+      }, {
+        key: "getButtonItemClass",
+        value: function getButtonItemClass(tag, selected) {
+          return 'videoAudioTrackItem ' + tag + (selected ? ' selected' : '');
+        }
+      }]);
+
+      return AudioSelector;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl6) {
+      _inherits(BlackBoard2, _paella$EventDrivenPl6);
+
+      function BlackBoard2() {
+        _classCallCheck(this, BlackBoard2);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(BlackBoard2).apply(this, arguments));
+      }
+
+      _createClass(BlackBoard2, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.blackBoardPlugin";
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 10;
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "blackBoardButton2";
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("BlackBoard");
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this._blackBoardProfile = "s_p_blackboard2";
+          this._blackBoardDIV = null;
+          this._hasImages = null;
+          this._active = false;
+          this._creationTimer = 500;
+          this._zImages = null;
+          this._videoLength = null;
+          this._keys = null;
+          this._currentImage = null;
+          this._next = null;
+          this._prev = null;
+          this._lensDIV = null;
+          this._lensContainer = null;
+          this._lensWidth = null;
+          this._lensHeight = null;
+          this._conImg = null;
+          this._zoom = 250;
+          this._currentZoom = null;
+          this._maxZoom = 500;
+          this._mousePos = null;
+          this._containerRect = null;
+          onSuccess(true);
+        }
+      }, {
+        key: "getEvents",
+        value: function getEvents() {
+          return [paella.events.setProfile, paella.events.timeUpdate];
+        }
+      }, {
+        key: "onEvent",
+        value: function onEvent(event, params) {
+          var self = this;
+
+          switch (event) {
+            case paella.events.setProfile:
+              if (params.profileName != self._blackBoardProfile) {
+                if (self._active) {
+                  self.destroyOverlay();
+                  self._active = false;
+                }
+
+                break;
+              } else {
+                if (!self._hasImages) {
+                  paella.player.setProfile("slide_professor");
+                }
+
+                if (self._hasImages && !self._active) {
+                  self.createOverlay();
+                  self._active = true;
+                }
+              }
+
+              break;
+
+            case paella.events.timeUpdate:
+              if (self._active && self._hasImages) {
+                paella.player.videoContainer.trimming().then(function (trimmingData) {
+                  if (trimmingData.enabled) {
+                    params.currentTime += trimmingData.start;
+                  }
+
+                  self.imageUpdate(event, params);
+                });
+              }
+
+              break;
+          }
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var self = this;
+          var n = paella.player.videoContainer.sourceData[0].sources;
+
+          if (n.hasOwnProperty("image")) {
+            self._hasImages = true; //  BRING THE IMAGE ARRAY TO LOCAL
+
+            self._zImages = {};
+            self._zImages = paella.player.videoContainer.sourceData[0].sources.image[0].frames; // COPY TO LOCAL
+
+            self._videoLength = paella.player.videoContainer.sourceData[0].sources.image[0].duration; // video duration in frames
+            // SORT KEYS FOR SEARCH CLOSEST
+
+            self._keys = Object.keys(self._zImages);
+            self._keys = self._keys.sort(function (a, b) {
+              a = a.slice(6);
+              b = b.slice(6);
+              return parseInt(a) - parseInt(b);
+            });
+          } else {
+            self._hasImages = false;
+
+            if (paella.player.selectedProfile == self._blackBoardProfile) {
+              var defaultprofile = paella.player.config.defaultProfile;
+              paella.player.setProfile(defaultprofile);
+            }
+          } //NEXT
+
+
+          this._next = 0;
+          this._prev = 0;
+
+          if (paella.player.selectedProfile == self._blackBoardProfile) {
+            self.createOverlay();
+            self._active = true;
+          }
+
+          self._mousePos = {};
+          paella.Profiles.loadProfile(self._blackBoardProfile, function (profileData) {
+            self._containerRect = profileData.blackBoardImages;
+          });
+        }
+      }, {
+        key: "createLens",
+        value: function createLens() {
+          var self = this;
+
+          if (self._currentZoom == null) {
+            self._currentZoom = self._zoom;
+          }
+
+          var lens = document.createElement("div");
+          lens.className = "lensClass";
+          self._lensDIV = lens;
+          var p = $('.conImg').offset();
+          var width = $('.conImg').width();
+          var height = $('.conImg').height();
+          lens.style.width = width / (self._currentZoom / 100) + "px";
+          lens.style.height = height / (self._currentZoom / 100) + "px";
+          self._lensWidth = parseInt(lens.style.width);
+          self._lensHeight = parseInt(lens.style.height);
+          $(self._lensContainer).append(lens);
+          $(self._lensContainer).mousemove(function (event) {
+            var mouseX = event.pageX - p.left;
+            var mouseY = event.pageY - p.top;
+            self._mousePos.x = mouseX;
+            self._mousePos.y = mouseY;
+            var lensTop = mouseY - self._lensHeight / 2;
+            lensTop = lensTop < 0 ? 0 : lensTop;
+            lensTop = lensTop > height - self._lensHeight ? height - self._lensHeight : lensTop;
+            var lensLeft = mouseX - self._lensWidth / 2;
+            lensLeft = lensLeft < 0 ? 0 : lensLeft;
+            lensLeft = lensLeft > width - self._lensWidth ? width - self._lensWidth : lensLeft;
+            self._lensDIV.style.left = lensLeft + "px";
+            self._lensDIV.style.top = lensTop + "px";
+
+            if (self._currentZoom != 100) {
+              var x = lensLeft * 100 / (width - self._lensWidth);
+              var y = lensTop * 100 / (height - self._lensHeight);
+              self._blackBoardDIV.style.backgroundPosition = x.toString() + '% ' + y.toString() + '%';
+            } else if (self._currentZoom == 100) {
+              var xRelative = mouseX * 100 / width;
+              var yRelative = mouseY * 100 / height;
+              self._blackBoardDIV.style.backgroundPosition = xRelative.toString() + '% ' + yRelative.toString() + '%';
+            }
+
+            self._blackBoardDIV.style.backgroundSize = self._currentZoom + '%';
+          });
+          $(self._lensContainer).bind('wheel mousewheel', function (e) {
+            var delta;
+
+            if (e.originalEvent.wheelDelta !== undefined) {
+              delta = e.originalEvent.wheelDelta;
+            } else {
+              delta = e.originalEvent.deltaY * -1;
+            }
+
+            if (delta > 0 && self._currentZoom < self._maxZoom) {
+              self.reBuildLens(10);
+            } else if (self._currentZoom > 100) {
+              self.reBuildLens(-10);
+            } else if (self._currentZoom == 100) {
+              self._lensDIV.style.left = 0 + "px";
+              self._lensDIV.style.top = 0 + "px";
+            }
+
+            self._blackBoardDIV.style.backgroundSize = self._currentZoom + "%";
+          });
+        }
+      }, {
+        key: "reBuildLens",
+        value: function reBuildLens(zoomValue) {
+          var self = this;
+          self._currentZoom += zoomValue;
+          var p = $('.conImg').offset();
+          var width = $('.conImg').width();
+          var height = $('.conImg').height();
+          self._lensDIV.style.width = width / (self._currentZoom / 100) + "px";
+          self._lensDIV.style.height = height / (self._currentZoom / 100) + "px";
+          self._lensWidth = parseInt(self._lensDIV.style.width);
+          self._lensHeight = parseInt(self._lensDIV.style.height);
+
+          if (self._currentZoom != 100) {
+            var mouseX = self._mousePos.x;
+            var mouseY = self._mousePos.y;
+            var lensTop = mouseY - self._lensHeight / 2;
+            lensTop = lensTop < 0 ? 0 : lensTop;
+            lensTop = lensTop > height - self._lensHeight ? height - self._lensHeight : lensTop;
+            var lensLeft = mouseX - self._lensWidth / 2;
+            lensLeft = lensLeft < 0 ? 0 : lensLeft;
+            lensLeft = lensLeft > width - self._lensWidth ? width - self._lensWidth : lensLeft;
+            self._lensDIV.style.left = lensLeft + "px";
+            self._lensDIV.style.top = lensTop + "px";
+            var x = lensLeft * 100 / (width - self._lensWidth);
+            var y = lensTop * 100 / (height - self._lensHeight);
+            self._blackBoardDIV.style.backgroundPosition = x.toString() + '% ' + y.toString() + '%';
+          }
+        }
+      }, {
+        key: "destroyLens",
+        value: function destroyLens() {
+          var self = this;
+
+          if (self._lensDIV) {
+            $(self._lensDIV).remove();
+            self._blackBoardDIV.style.backgroundSize = 100 + '%';
+            self._blackBoardDIV.style.opacity = 0;
+          } //self._currentZoom = self._zoom;
+
+        }
+      }, {
+        key: "createOverlay",
+        value: function createOverlay() {
+          var self = this;
+          var blackBoardDiv = document.createElement("div");
+          blackBoardDiv.className = "blackBoardDiv";
+          self._blackBoardDIV = blackBoardDiv;
+          self._blackBoardDIV.style.opacity = 0;
+          var lensContainer = document.createElement("div");
+          lensContainer.className = "lensContainer";
+          self._lensContainer = lensContainer;
+          var conImg = document.createElement("img");
+          conImg.className = "conImg";
+          self._conImg = conImg;
+
+          if (self._currentImage) {
+            self._conImg.src = self._currentImage;
+            $(self._blackBoardDIV).css('background-image', 'url(' + self._currentImage + ')');
+          }
+
+          $(lensContainer).append(conImg);
+          $(self._lensContainer).mouseenter(function () {
+            self.createLens();
+            self._blackBoardDIV.style.opacity = 1.0;
+          });
+          $(self._lensContainer).mouseleave(function () {
+            self.destroyLens();
+          });
+          setTimeout(function () {
+            // TIMER FOR NICE VIEW
+            var overlayContainer = paella.player.videoContainer.overlayContainer;
+            overlayContainer.addElement(blackBoardDiv, overlayContainer.getVideoRect(0));
+            overlayContainer.addElement(lensContainer, self._containerRect);
+          }, self._creationTimer);
+        }
+      }, {
+        key: "destroyOverlay",
+        value: function destroyOverlay() {
+          var self = this;
+
+          if (self._blackBoardDIV) {
+            $(self._blackBoardDIV).remove();
+          }
+
+          if (self._lensContainer) {
+            $(self._lensContainer).remove();
+          }
+        }
+      }, {
+        key: "imageUpdate",
+        value: function imageUpdate(event, params) {
+          var self = this;
+          var sec = Math.round(params.currentTime);
+          var src = $(self._blackBoardDIV).css('background-image');
+
+          if ($(self._blackBoardDIV).length > 0) {
+            if (self._zImages.hasOwnProperty("frame_" + sec)) {
+              // SWAP IMAGES WHEN PLAYING
+              if (src == self._zImages["frame_" + sec]) {
+                return;
+              } else {
+                src = self._zImages["frame_" + sec];
+              }
+            } else if (sec > self._next || sec < self._prev) {
+              src = self.returnSrc(sec);
+            } // RELOAD IF OUT OF INTERVAL
+            else {
+                return;
+              } //PRELOAD NEXT IMAGE
+
+
+            var image = new Image();
+
+            image.onload = function () {
+              $(self._blackBoardDIV).css('background-image', 'url(' + src + ')'); // UPDATING IMAGE
+            };
+
+            image.src = src;
+            self._currentImage = src;
+            self._conImg.src = self._currentImage;
+          }
+        }
+      }, {
+        key: "returnSrc",
+        value: function returnSrc(sec) {
+          var prev = 0;
+
+          for (var i = 0; i < this._keys.length; i++) {
+            var id = parseInt(this._keys[i].slice(6));
+            var lastId = parseInt(this._keys[this._keys.length - 1].slice(6));
+
+            if (sec < id) {
+              // PREVIOUS IMAGE
+              this._next = id;
+              this._prev = prev;
+              this._imageNumber = i - 1;
+              return this._zImages["frame_" + prev]; // return previous and keep next change
+            } else if (sec > lastId && sec < this._videoLength) {
+              // LAST INTERVAL
+              this._next = this._videoLength;
+              this._prev = lastId;
+              return this._zImages["frame_" + prev];
+            } else {
+              prev = id;
+            }
+          }
+        }
+      }]);
+
+      return BlackBoard2;
+    }(paella.EventDrivenPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl7) {
+      _inherits(BreaksPlayerPlugin, _paella$EventDrivenPl7);
+
+      function BreaksPlayerPlugin() {
+        _classCallCheck(this, BreaksPlayerPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(BreaksPlayerPlugin).apply(this, arguments));
+      }
+
+      _createClass(BreaksPlayerPlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.breaksPlayerPlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          onSuccess(true);
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var _this131 = this;
+
+          this.breaks = [];
+          this.status = false;
+          this.lastTime = 0;
+          paella.data.read('breaks', {
+            id: paella.player.videoIdentifier
+          }, function (data) {
+            if (data && _typeof(data) == 'object' && data.breaks && data.breaks.length > 0) {
+              _this131.breaks = data.breaks;
+            }
+          });
+        }
+      }, {
+        key: "getEvents",
+        value: function getEvents() {
+          return [paella.events.timeUpdate];
+        }
+      }, {
+        key: "onEvent",
+        value: function onEvent(eventType, params) {
+          var _this132 = this;
+
+          paella.player.videoContainer.currentTime(true).then(function (currentTime) {
+            // The event type checking must to be done using the time difference, because
+            // the timeUpdate event may arrive before the seekToTime event
+            var diff = Math.abs(currentTime - _this132.lastTime);
+
+            _this132.checkBreaks(currentTime, diff >= 1 ? paella.events.seekToTime : paella.events.timeUpdate);
+
+            _this132.lastTime = currentTime;
+          });
+        }
+      }, {
+        key: "checkBreaks",
+        value: function checkBreaks(currentTime, eventType) {
+          var _this133 = this;
+
+          var breakMessage = "";
+
+          if (this.breaks.some(function (breakItem) {
+            if (breakItem.s <= currentTime && breakItem.e >= currentTime) {
+              if (eventType == paella.events.timeUpdate && !_this133.status) {
+                _this133.skipTo(breakItem.e);
+              }
+
+              breakMessage = breakItem.text;
+              return true;
+            }
+          })) {
+            this.showMessage(breakMessage);
+            this.status = true;
+          } else {
+            this.hideMessage();
+            this.status = false;
+          }
+        }
+      }, {
+        key: "skipTo",
+        value: function skipTo(time) {
+          paella.player.videoContainer.trimming().then(function (trimming) {
+            if (trimming.enabled) {
+              paella.player.videoContainer.seekToTime(time + trimming.start);
+            } else {
+              paella.player.videoContainer.seekToTime(time);
+            }
+          });
+        }
+      }, {
+        key: "showMessage",
+        value: function showMessage(text) {
+          if (this.currentText != text) {
+            if (this.messageContainer) {
+              paella.player.videoContainer.overlayContainer.removeElement(this.messageContainer);
+            }
+
+            var rect = {
+              left: 100,
+              top: 350,
+              width: 1080,
+              height: 40
+            };
+            this.currentText = text;
+            this.messageContainer = paella.player.videoContainer.overlayContainer.addText(paella.dictionary.translate(text), rect);
+            this.messageContainer.className = 'textBreak';
+            this.currentText = text;
+          }
+        }
+      }, {
+        key: "hideMessage",
+        value: function hideMessage() {
+          if (this.messageContainer) {
+            paella.player.videoContainer.overlayContainer.removeElement(this.messageContainer);
+            this.messageContainer = null;
+          }
+
+          this.currentText = "";
+        }
+      }]);
+
+      return BreaksPlayerPlugin;
+    }(paella.EventDrivenPlugin)
+  );
+});
+paella.addPlugin(function () {
+  /////////////////////////////////////////////////
+  // DFXP Parser
+  /////////////////////////////////////////////////
+  return (
+    /*#__PURE__*/
+    function (_paella$CaptionParser2) {
+      _inherits(DFXPParserPlugin, _paella$CaptionParser2);
+
+      function DFXPParserPlugin() {
+        _classCallCheck(this, DFXPParserPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(DFXPParserPlugin).apply(this, arguments));
+      }
+
+      _createClass(DFXPParserPlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.captions.DFXPParserPlugin";
+        }
+      }, {
+        key: "parse",
+        value: function parse(content, lang, next) {
+          var captions = [];
+          var self = this;
+          var xml = $(content);
+          var g_lang = xml.attr("xml:lang");
+          var lls = xml.find("div");
+
+          for (var idx = 0; idx < lls.length; ++idx) {
+            var ll = $(lls[idx]);
+            var l_lang = ll.attr("xml:lang");
+
+            if (l_lang == undefined || l_lang == "") {
+              if (g_lang == undefined || g_lang == "") {
+                base.log.debug("No xml:lang found! Using '" + lang + "' lang instead.");
+                l_lang = lang;
+              } else {
+                l_lang = g_lang;
+              }
+            } //
+
+
+            if (l_lang == lang) {
+              ll.find("p").each(function (i, cap) {
+                var c = {
+                  id: i,
+                  begin: self.parseTimeTextToSeg(cap.getAttribute("begin")),
+                  end: self.parseTimeTextToSeg(cap.getAttribute("end")),
+                  content: $(cap).text().trim()
+                };
+                captions.push(c);
+              });
+              break;
+            }
+          }
+
+          if (captions.length > 0) {
+            next(false, captions);
+          } else {
+            next(true);
+          }
+        }
+      }, {
+        key: "parseTimeTextToSeg",
+        value: function parseTimeTextToSeg(ttime) {
+          var nseg = 0;
+          var segtime = /^([0-9]*([.,][0-9]*)?)s/.test(ttime);
+
+          if (segtime) {
+            nseg = parseFloat(RegExp.$1);
+          } else {
+            var split = ttime.split(":");
+            var h = parseInt(split[0]);
+            var m = parseInt(split[1]);
+            var s = parseInt(split[2]);
+            nseg = s + m * 60 + h * 60 * 60;
+          }
+
+          return nseg;
+        }
+      }, {
+        key: "ext",
+        get: function get() {
+          return ["dfxp"];
+        }
+      }]);
+
+      return DFXPParserPlugin;
+    }(paella.CaptionParserPlugIn)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin5) {
+      _inherits(CaptionsPlugin, _paella$ButtonPlugin5);
+
+      function CaptionsPlugin() {
+        _classCallCheck(this, CaptionsPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(CaptionsPlugin).apply(this, arguments));
+      }
+
+      _createClass(CaptionsPlugin, [{
+        key: "getInstanceName",
+        value: function getInstanceName() {
+          return "captionsPlugin";
+        } // plugin instance will be available in paella.plugins.captionsPlugin
+
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return 'captionsPluginButton';
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-captions';
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.captionsPlugin";
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Subtitles");
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 509;
+        }
+      }, {
+        key: "closeOnMouseOut",
+        value: function closeOnMouseOut() {
+          return false;
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this._searchTimerTime = 1500;
+          this._searchTimer = null;
+          this._pluginButton = null;
+          this._open = 0; // 0 closed, 1 st clic;
+
+          this._parent = null;
+          this._body = null;
+          this._inner = null;
+          this._bar = null;
+          this._input = null;
+          this._select = null;
+          this._editor = null;
+          this._activeCaptions = null;
+          this._lastSel = null;
+          this._browserLang = null;
+          this._defaultBodyHeight = 280;
+          this._autoScroll = true;
+          this._searchOnCaptions = null;
+          onSuccess(true);
+        }
+      }, {
+        key: "showUI",
+        value: function showUI() {
+          if (paella.captions.getAvailableLangs().length >= 1) {
+            _get(_getPrototypeOf(CaptionsPlugin.prototype), "showUI", this).call(this);
+          }
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var self = this; // HIDE UI IF NO Captions
+
+          if (!paella.captions.getAvailableLangs().length) {
+            paella.plugins.captionsPlugin.hideUI();
+          } //BINDS
+
+
+          paella.events.bind(paella.events.captionsEnabled, function (event, params) {
+            self.onChangeSelection(params);
+          });
+          paella.events.bind(paella.events.captionsDisabled, function (event, params) {
+            self.onChangeSelection(params);
+          });
+          paella.events.bind(paella.events.captionAdded, function (event, params) {
+            self.onCaptionAdded(params);
+            paella.plugins.captionsPlugin.showUI();
+          });
+          paella.events.bind(paella.events.timeUpdate, function (event, params) {
+            if (self._searchOnCaptions) {
+              self.updateCaptionHiglighted(params);
+            }
+          });
+          paella.events.bind(paella.events.controlBarWillHide, function (evt) {
+            self.cancelHideBar();
+          });
+          self._activeCaptions = paella.captions.getActiveCaptions();
+          self._searchOnCaptions = self.config.searchOnCaptions || false;
+        }
+      }, {
+        key: "cancelHideBar",
+        value: function cancelHideBar() {
+          var thisClass = this;
+
+          if (thisClass._open > 0) {
+            paella.player.controls.cancelHideBar();
+          }
+        }
+      }, {
+        key: "updateCaptionHiglighted",
+        value: function updateCaptionHiglighted(time) {
+          var thisClass = this;
+          var sel = null;
+          var id = null;
+
+          if (time) {
+            paella.player.videoContainer.trimming().then(function (trimming) {
+              var offset = trimming.enabled ? trimming.start : 0;
+              var c = paella.captions.getActiveCaptions();
+              var caption = c && c.getCaptionAtTime(time.currentTime + offset);
+              var id = caption && caption.id;
+
+              if (id != null) {
+                sel = $(".bodyInnerContainer[sec-id='" + id + "']");
+
+                if (sel != thisClass._lasSel) {
+                  $(thisClass._lasSel).removeClass("Highlight");
+                }
+
+                if (sel) {
+                  $(sel).addClass("Highlight");
+
+                  if (thisClass._autoScroll) {
+                    thisClass.updateScrollFocus(id);
+                  }
+
+                  thisClass._lasSel = sel;
+                }
+              }
+            });
+          }
+        }
+      }, {
+        key: "updateScrollFocus",
+        value: function updateScrollFocus(id) {
+          var thisClass = this;
+          var resul = 0;
+          var t = $(".bodyInnerContainer").slice(0, id);
+          t = t.toArray();
+          t.forEach(function (l) {
+            var i = $(l).outerHeight(true);
+            resul += i;
+          });
+          var x = parseInt(resul / 280);
+          $(".captionsBody").scrollTop(x * thisClass._defaultBodyHeight);
+        }
+      }, {
+        key: "onCaptionAdded",
+        value: function onCaptionAdded(obj) {
+          var thisClass = this;
+          var newCap = paella.captions.getCaptions(obj);
+          var defOption = document.createElement("option"); // NO ONE SELECT
+
+          defOption.text = newCap._lang.txt;
+          defOption.value = obj;
+
+          thisClass._select.add(defOption);
+        }
+      }, {
+        key: "changeSelection",
+        value: function changeSelection() {
+          var thisClass = this;
+          var sel = $(thisClass._select).val();
+
+          if (sel == "") {
+            $(thisClass._body).empty();
+            paella.captions.setActiveCaptions(sel);
+            return;
+          } // BREAK IF NO ONE SELECTED
+
+
+          paella.captions.setActiveCaptions(sel);
+          thisClass._activeCaptions = sel;
+
+          if (thisClass._searchOnCaptions) {
+            thisClass.buildBodyContent(paella.captions.getActiveCaptions()._captions, "list");
+          }
+
+          thisClass.setButtonHideShow();
+        }
+      }, {
+        key: "onChangeSelection",
+        value: function onChangeSelection(obj) {
+          var thisClass = this;
+
+          if (thisClass._activeCaptions != obj) {
+            $(thisClass._body).empty();
+
+            if (obj == undefined) {
+              thisClass._select.value = "";
+              $(thisClass._input).prop('disabled', true);
+            } else {
+              $(thisClass._input).prop('disabled', false);
+              thisClass._select.value = obj;
+
+              if (thisClass._searchOnCaptions) {
+                thisClass.buildBodyContent(paella.captions.getActiveCaptions()._captions, "list");
+              }
+            }
+
+            thisClass._activeCaptions = obj;
+            thisClass.setButtonHideShow();
+          }
+        }
+      }, {
+        key: "action",
+        value: function action() {
+          var self = this;
+          self._browserLang = base.dictionary.currentLanguage();
+          self._autoScroll = true;
+
+          switch (self._open) {
+            case 0:
+              if (self._browserLang && paella.captions.getActiveCaptions() == undefined) {
+                self.selectDefaultBrowserLang(self._browserLang);
+              }
+
+              self._open = 1;
+              paella.keyManager.enabled = false;
+              break;
+
+            case 1:
+              paella.keyManager.enabled = true;
+              self._open = 0;
+              break;
+          }
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var thisClass = this; //captions CONTAINER
+
+          thisClass._parent = document.createElement('div');
+          thisClass._parent.className = 'captionsPluginContainer'; //captions BAR
+
+          thisClass._bar = document.createElement('div');
+          thisClass._bar.className = 'captionsBar'; //captions BODY
+
+          if (thisClass._searchOnCaptions) {
+            thisClass._body = document.createElement('div');
+            thisClass._body.className = 'captionsBody';
+
+            thisClass._parent.appendChild(thisClass._body); //BODY JQUERY
+
+
+            $(thisClass._body).scroll(function () {
+              thisClass._autoScroll = false;
+            }); //INPUT
+
+            thisClass._input = document.createElement("input");
+            thisClass._input.className = "captionsBarInput";
+            thisClass._input.type = "text";
+            thisClass._input.id = "captionsBarInput";
+            thisClass._input.name = "captionsString";
+            thisClass._input.placeholder = base.dictionary.translate("Search captions");
+
+            thisClass._bar.appendChild(thisClass._input); //INPUT jQuery
+
+
+            $(thisClass._input).change(function () {
+              var text = $(thisClass._input).val();
+              thisClass.doSearch(text);
+            });
+            $(thisClass._input).keyup(function () {
+              var text = $(thisClass._input).val();
+
+              if (thisClass._searchTimer != null) {
+                thisClass._searchTimer.cancel();
+              }
+
+              thisClass._searchTimer = new base.Timer(function (timer) {
+                thisClass.doSearch(text);
+              }, thisClass._searchTimerTime);
+            });
+          } //SELECT
+
+
+          thisClass._select = document.createElement("select");
+          thisClass._select.className = "captionsSelector";
+          var defOption = document.createElement("option"); // NO ONE SELECT
+
+          defOption.text = base.dictionary.translate("None");
+          defOption.value = "";
+
+          thisClass._select.add(defOption);
+
+          paella.captions.getAvailableLangs().forEach(function (l) {
+            var option = document.createElement("option");
+            option.text = l.lang.txt;
+            option.value = l.id;
+
+            thisClass._select.add(option);
+          });
+
+          thisClass._bar.appendChild(thisClass._select);
+
+          thisClass._parent.appendChild(thisClass._bar); //jQuery SELECT
+
+
+          $(thisClass._select).change(function () {
+            thisClass.changeSelection();
+          }); //BUTTON EDITOR
+
+          thisClass._editor = document.createElement("button");
+          thisClass._editor.className = "editorButton";
+          thisClass._editor.innerText = "";
+
+          thisClass._bar.appendChild(thisClass._editor); //BUTTON jQuery
+
+
+          $(thisClass._editor).prop("disabled", true);
+          $(thisClass._editor).click(function () {
+            var c = paella.captions.getActiveCaptions();
+            paella.userTracking.log("paella:caption:edit", {
+              id: c._captionsProvider + ':' + c._id,
+              lang: c._lang
+            });
+            c.goToEdit();
+          });
+          domElement.appendChild(thisClass._parent);
+        }
+      }, {
+        key: "selectDefaultBrowserLang",
+        value: function selectDefaultBrowserLang(code) {
+          var thisClass = this;
+          var provider = null;
+          paella.captions.getAvailableLangs().forEach(function (l) {
+            if (l.lang.code == code) {
+              provider = l.id;
+            }
+          });
+
+          if (provider) {
+            paella.captions.setActiveCaptions(provider);
+          }
+          /*
+          else{
+          	$(thisClass._input).prop("disabled",true);
+          }
+          */
+
+        }
+      }, {
+        key: "doSearch",
+        value: function doSearch(text) {
+          var thisClass = this;
+          var c = paella.captions.getActiveCaptions();
+
+          if (c) {
+            if (text == "") {
+              thisClass.buildBodyContent(paella.captions.getActiveCaptions()._captions, "list");
+            } else {
+              c.search(text, function (err, resul) {
+                if (!err) {
+                  thisClass.buildBodyContent(resul, "search");
+                }
+              });
+            }
+          }
+        }
+      }, {
+        key: "setButtonHideShow",
+        value: function setButtonHideShow() {
+          var thisClass = this;
+          var editor = $('.editorButton');
+          var c = paella.captions.getActiveCaptions();
+          var res = null;
+
+          if (c != null) {
+            $(thisClass._select).width('39%');
+            c.canEdit(function (err, r) {
+              res = r;
+            });
+
+            if (res) {
+              $(editor).prop("disabled", false);
+              $(editor).show();
+            } else {
+              $(editor).prop("disabled", true);
+              $(editor).hide();
+              $(thisClass._select).width('47%');
+            }
+          } else {
+            $(editor).prop("disabled", true);
+            $(editor).hide();
+            $(thisClass._select).width('47%');
+          }
+
+          if (!thisClass._searchOnCaptions) {
+            if (res) {
+              $(thisClass._select).width('92%');
+            } else {
+              $(thisClass._select).width('100%');
+            }
+          }
+        }
+      }, {
+        key: "buildBodyContent",
+        value: function buildBodyContent(obj, type) {
+          var _this134 = this;
+
+          paella.player.videoContainer.trimming().then(function (trimming) {
+            var thisClass = _this134;
+            $(thisClass._body).empty();
+            obj.forEach(function (l) {
+              if (trimming.enabled && (l.end < trimming.start || l.begin > trimming.end)) {
+                return;
+              }
+
+              thisClass._inner = document.createElement('div');
+              thisClass._inner.className = 'bodyInnerContainer';
+              thisClass._inner.innerText = l.content;
+
+              if (type == "list") {
+                thisClass._inner.setAttribute('sec-begin', l.begin);
+
+                thisClass._inner.setAttribute('sec-end', l.end);
+
+                thisClass._inner.setAttribute('sec-id', l.id);
+
+                thisClass._autoScroll = true;
+              }
+
+              if (type == "search") {
+                thisClass._inner.setAttribute('sec-begin', l.time);
+              }
+
+              thisClass._body.appendChild(thisClass._inner); //JQUERY
+
+
+              $(thisClass._inner).hover(function () {
+                $(this).css('background-color', 'rgba(250, 161, 102, 0.5)');
+              }, function () {
+                $(this).removeAttr('style');
+              });
+              $(thisClass._inner).click(function () {
+                var secBegin = $(this).attr("sec-begin");
+                paella.player.videoContainer.trimming().then(function (trimming) {
+                  var offset = trimming.enabled ? trimming.start : 0;
+                  paella.player.videoContainer.seekToTime(secBegin - offset + 0.1);
+                });
+              });
+            });
+          });
+        }
+      }]);
+
+      return CaptionsPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl8) {
+      _inherits(CaptionsOnScreen, _paella$EventDrivenPl8);
+
+      function CaptionsOnScreen() {
+        _classCallCheck(this, CaptionsOnScreen);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(CaptionsOnScreen).apply(this, arguments));
+      }
+
+      _createClass(CaptionsOnScreen, [{
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this.containerId = 'paella_plugin_CaptionsOnScreen';
+          this.container = null;
+          this.innerContainer = null;
+          this.top = null;
+          this.actualPos = null;
+          this.lastEvent = null;
+          this.controlsPlayback = null;
+          this.captions = false;
+          this.captionProvider = null;
+          onSuccess(!paella.player.isLiveStream());
+        }
+      }, {
+        key: "setup",
+        value: function setup() {}
+      }, {
+        key: "getEvents",
+        value: function getEvents() {
+          return [paella.events.controlBarDidHide, paella.events.resize, paella.events.controlBarDidShow, paella.events.captionsEnabled, paella.events.captionsDisabled, paella.events.timeUpdate];
+        }
+      }, {
+        key: "onEvent",
+        value: function onEvent(eventType, params) {
+          var thisClass = this;
+
+          switch (eventType) {
+            case paella.events.controlBarDidHide:
+              if (thisClass.lastEvent == eventType || thisClass.captions == false) break;
+              thisClass.moveCaptionsOverlay("down");
+              break;
+
+            case paella.events.resize:
+              if (thisClass.captions == false) break;
+
+              if (paella.player.controls.isHidden()) {
+                thisClass.moveCaptionsOverlay("down");
+              } else {
+                thisClass.moveCaptionsOverlay("top");
+              }
+
+              break;
+
+            case paella.events.controlBarDidShow:
+              if (thisClass.lastEvent == eventType || thisClass.captions == false) break;
+              thisClass.moveCaptionsOverlay("top");
+              break;
+
+            case paella.events.captionsEnabled:
+              thisClass.buildContent(params);
+              thisClass.captions = true;
+
+              if (paella.player.controls.isHidden()) {
+                thisClass.moveCaptionsOverlay("down");
+              } else {
+                thisClass.moveCaptionsOverlay("top");
+              }
+
+              break;
+
+            case paella.events.captionsDisabled:
+              thisClass.hideContent();
+              thisClass.captions = false;
+              break;
+
+            case paella.events.timeUpdate:
+              if (thisClass.captions) {
+                thisClass.updateCaptions(params);
+              }
+
+              break;
+          }
+
+          thisClass.lastEvent = eventType;
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(provider) {
+          var thisClass = this;
+          thisClass.captionProvider = provider;
+
+          if (thisClass.container == null) {
+            // PARENT
+            thisClass.container = document.createElement('div');
+            thisClass.container.className = "CaptionsOnScreen";
+            thisClass.container.id = thisClass.containerId;
+            thisClass.innerContainer = document.createElement('div');
+            thisClass.innerContainer.className = "CaptionsOnScreenInner";
+            thisClass.container.appendChild(thisClass.innerContainer);
+            if (thisClass.controlsPlayback == null) thisClass.controlsPlayback = $('#playerContainer_controls_playback');
+            paella.player.videoContainer.domElement.appendChild(thisClass.container);
+          } else {
+            $(thisClass.container).show();
+          }
+        }
+      }, {
+        key: "updateCaptions",
+        value: function updateCaptions(time) {
+          var _this135 = this;
+
+          if (this.captions) {
+            paella.player.videoContainer.trimming().then(function (trimming) {
+              var offset = trimming.enabled ? trimming.start : 0;
+              var c = paella.captions.getActiveCaptions();
+              var caption = c.getCaptionAtTime(time.currentTime + offset);
+
+              if (caption) {
+                $(_this135.container).show();
+                _this135.innerContainer.innerText = caption.content;
+
+                _this135.moveCaptionsOverlay("auto");
+              } else {
+                _this135.innerContainer.innerText = "";
+
+                _this135.hideContent();
+              }
+            });
+          }
+        }
+      }, {
+        key: "hideContent",
+        value: function hideContent() {
+          var thisClass = this;
+          $(thisClass.container).hide();
+        }
+      }, {
+        key: "moveCaptionsOverlay",
+        value: function moveCaptionsOverlay(pos) {
+          var thisClass = this;
+          var marginbottom = 10;
+          if (thisClass.controlsPlayback == null) thisClass.controlsPlayback = $('#playerContainer_controls_playback');
+
+          if (pos == "auto" || pos == undefined) {
+            pos = paella.player.controls.isHidden() ? "down" : "top";
+          }
+
+          if (pos == "down") {
+            var t = thisClass.container.offsetHeight;
+            t -= thisClass.innerContainer.offsetHeight + marginbottom;
+            thisClass.innerContainer.style.bottom = 0 - t + "px";
+          }
+
+          if (pos == "top") {
+            var t2 = thisClass.controlsPlayback.offset().top;
+            t2 -= thisClass.innerContainer.offsetHeight + marginbottom;
+            thisClass.innerContainer.style.bottom = 0 - t2 + "px";
+          }
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 1050;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.overlayCaptionsPlugin";
+        }
+      }]);
+
+      return CaptionsOnScreen;
+    }(paella.EventDrivenPlugin)
+  );
+});
+
+(function () {
+  function buildChromaVideoCanvas(stream, canvas) {
+    var ChromaVideoCanvas =
+    /*#__PURE__*/
+    function (_bg$app$WindowControl3) {
+      _inherits(ChromaVideoCanvas, _bg$app$WindowControl3);
+
+      function ChromaVideoCanvas(stream) {
+        var _this136;
+
+        _classCallCheck(this, ChromaVideoCanvas);
+
+        _this136 = _possibleConstructorReturn(this, _getPrototypeOf(ChromaVideoCanvas).call(this));
+        _this136.stream = stream;
+        _this136._chroma = bg.Color.White();
+        _this136._crop = new bg.Vector4(0.3, 0.01, 0.3, 0.01);
+        _this136._transform = bg.Matrix4.Identity().translate(0.6, -0.04, 0);
+        _this136._bias = 0.01;
+        return _this136;
+      }
+
+      _createClass(ChromaVideoCanvas, [{
+        key: "loaded",
+        value: function loaded() {
+          var _this137 = this;
+
+          return new Promise(function (resolve) {
+            var checkLoaded = function checkLoaded() {
+              if (_this137.video) {
+                resolve(_this137);
+              } else {
+                setTimeout(checkLoaded, 100);
+              }
+            };
+
+            checkLoaded();
+          });
+        }
+      }, {
+        key: "buildShape",
+        value: function buildShape() {
+          this.plist = new bg.base.PolyList(this.gl);
+          this.plist.vertex = [-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0];
+          this.plist.texCoord0 = [0, 0, 1, 0, 1, 1, 0, 1];
+          this.plist.index = [0, 1, 2, 2, 3, 0];
+          this.plist.build();
+        }
+      }, {
+        key: "buildShader",
+        value: function buildShader() {
+          var vshader = "\n\t\t\t\t\t\tattribute vec4 position;\n\t\t\t\t\t\tattribute vec2 texCoord;\n\t\t\t\t\t\tuniform mat4 inTransform;\n\t\t\t\t\t\tvarying vec2 vTexCoord;\n\t\t\t\t\t\tvoid main() {\n\t\t\t\t\t\t\tgl_Position = inTransform * position;\n\t\t\t\t\t\t\tvTexCoord = texCoord;\n\t\t\t\t\t\t}\n\t\t\t\t\t";
+          var fshader = "\n\t\t\t\t\t\tprecision mediump float;\n\t\t\t\t\t\tvarying vec2 vTexCoord;\n\t\t\t\t\t\tuniform sampler2D inTexture;\n\t\t\t\t\t\tuniform vec4 inChroma;\n\t\t\t\t\t\tuniform float inBias;\n\t\t\t\t\t\tuniform vec4 inCrop;\n\t\t\t\t\t\tvoid main() {\n\t\t\t\t\t\t\tvec4 result = texture2D(inTexture,vTexCoord);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif ((result.r>=inChroma.r-inBias && result.r<=inChroma.r+inBias &&\n\t\t\t\t\t\t\t\tresult.g>=inChroma.g-inBias && result.g<=inChroma.g+inBias &&\n\t\t\t\t\t\t\t\tresult.b>=inChroma.b-inBias && result.b<=inChroma.b+inBias) ||\n\t\t\t\t\t\t\t\t(vTexCoord.x<inCrop.x || vTexCoord.x>inCrop.z || vTexCoord.y<inCrop.w || vTexCoord.y>inCrop.y)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdiscard;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tgl_FragColor = result;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t";
+          this.shader = new bg.base.Shader(this.gl);
+          this.shader.addShaderSource(bg.base.ShaderType.VERTEX, vshader);
+          this.shader.addShaderSource(bg.base.ShaderType.FRAGMENT, fshader);
+          status = this.shader.link();
+
+          if (!this.shader.status) {
+            console.log(this.shader.compileError);
+            console.log(this.shader.linkError);
+          }
+
+          this.shader.initVars(["position", "texCoord"], ["inTransform", "inTexture", "inChroma", "inBias", "inCrop"]);
+        }
+      }, {
+        key: "init",
+        value: function init() {
+          var _this138 = this;
+
+          // Use WebGL V1 engine
+          bg.Engine.Set(new bg.webgl1.Engine(this.gl));
+          bg.base.Loader.RegisterPlugin(new bg.base.VideoTextureLoaderPlugin());
+          this.buildShape();
+          this.buildShader();
+          this.pipeline = new bg.base.Pipeline(this.gl);
+          bg.base.Pipeline.SetCurrent(this.pipeline);
+          this.pipeline.clearColor = bg.Color.Transparent();
+          bg.base.Loader.Load(this.gl, this.stream.src).then(function (texture) {
+            _this138.texture = texture;
+          });
+        }
+      }, {
+        key: "frame",
+        value: function frame(delta) {
+          if (this.texture) {
+            this.texture.update();
+          }
+        }
+      }, {
+        key: "display",
+        value: function display() {
+          this.pipeline.clearBuffers(bg.base.ClearBuffers.COLOR | bg.base.ClearBuffers.DEPTH);
+
+          if (this.texture) {
+            this.shader.setActive();
+            this.shader.setInputBuffer("position", this.plist.vertexBuffer, 3);
+            this.shader.setInputBuffer("texCoord", this.plist.texCoord0Buffer, 2);
+            this.shader.setMatrix4("inTransform", this.transform);
+            this.shader.setTexture("inTexture", this.texture || bg.base.TextureCache.WhiteTexture(this.gl), bg.base.TextureUnit.TEXTURE_0);
+            this.shader.setVector4("inChroma", this.chroma);
+            this.shader.setValueFloat("inBias", this.bias);
+            this.shader.setVector4("inCrop", new bg.Vector4(this.crop.x, 1.0 - this.crop.y, 1.0 - this.crop.z, this.crop.w));
+            this.plist.draw();
+            this.shader.disableInputBuffer("position");
+            this.shader.disableInputBuffer("texCoord");
+            this.shader.clearActive();
+          }
+        }
+      }, {
+        key: "reshape",
+        value: function reshape(width, height) {
+          var canvas = this.canvas.domElement;
+          canvas.width = width;
+          canvas.height = height;
+          this.pipeline.viewport = new bg.Viewport(0, 0, width, height);
+        }
+      }, {
+        key: "mouseMove",
+        value: function mouseMove(evt) {
+          this.postRedisplay();
+        }
+      }, {
+        key: "chroma",
+        get: function get() {
+          return this._chroma;
+        },
+        set: function set(c) {
+          this._chroma = c;
+        }
+      }, {
+        key: "bias",
+        get: function get() {
+          return this._bias;
+        },
+        set: function set(b) {
+          this._bias = b;
+        }
+      }, {
+        key: "crop",
+        get: function get() {
+          return this._crop;
+        },
+        set: function set(c) {
+          this._crop = c;
+        }
+      }, {
+        key: "transform",
+        get: function get() {
+          return this._transform;
+        },
+        set: function set(t) {
+          this._transform = t;
+        }
+      }, {
+        key: "video",
+        get: function get() {
+          return this.texture ? this.texture.video : null;
+        }
+      }]);
+
+      return ChromaVideoCanvas;
+    }(bg.app.WindowController);
+
+    var controller = new ChromaVideoCanvas(stream);
+    var mainLoop = bg.app.MainLoop.singleton;
+    mainLoop.updateMode = bg.app.FrameUpdate.AUTO;
+    mainLoop.canvas = canvas;
+    mainLoop.run(controller);
+    return controller.loaded();
+  }
+
+  var ChromaVideo =
+  /*#__PURE__*/
+  function (_paella$VideoElementB4) {
+    _inherits(ChromaVideo, _paella$VideoElementB4);
+
+    function ChromaVideo(id, stream, left, top, width, height, streamName) {
+      var _this139;
+
+      _classCallCheck(this, ChromaVideo);
+
+      _this139 = _possibleConstructorReturn(this, _getPrototypeOf(ChromaVideo).call(this, id, stream, 'canvas', left, top, width, height));
+      _this139._posterFrame = null;
+      _this139._currentQuality = null;
+      _this139._autoplay = false;
+      _this139._streamName = null;
+      _this139._streamName = streamName || 'chroma';
+
+      var This = _assertThisInitialized(_this139);
+
+      if (_this139._stream.sources[_this139._streamName]) {
+        _this139._stream.sources[_this139._streamName].sort(function (a, b) {
+          return a.res.h - b.res.h;
+        });
+      }
+
+      _this139.video = null;
+
+      function onProgress(event) {
+        if (!This._ready && This.video.readyState == 4) {
+          This._ready = true;
+
+          if (This._initialCurrentTipe !== undefined) {
+            This.video.currentTime = This._initialCurrentTime;
+            delete This._initialCurrentTime;
+          }
+
+          This._callReadyEvent();
+        }
+      }
+
+      function evtCallback(event) {
+        onProgress.apply(This, event);
+      }
+
+      function onUpdateSize() {
+        if (This.canvasController) {
+          var canvas = This.canvasController.canvas.domElement;
+          This.canvasController.reshape($(canvas).width(), $(canvas).height());
+        }
+      }
+
+      var timer = new paella.Timer(function (timer) {
+        onUpdateSize();
+      }, 500);
+      timer.repeat = true;
+      return _this139;
+    }
+
+    _createClass(ChromaVideo, [{
+      key: "defaultProfile",
+      value: function defaultProfile() {
+        return 'chroma';
+      }
+    }, {
+      key: "_setVideoElem",
+      value: function _setVideoElem(video) {
+        $(this.video).bind('progress', evtCallback);
+        $(this.video).bind('loadstart', evtCallback);
+        $(this.video).bind('loadedmetadata', evtCallback);
+        $(this.video).bind('canplay', evtCallback);
+        $(this.video).bind('oncanplay', evtCallback);
+      }
+    }, {
+      key: "_loadDeps",
+      value: function _loadDeps() {
+        return new Promise(function (resolve, reject) {
+          if (!window.$paella_bg2e) {
+            paella.require(paella.baseUrl + 'javascript/bg2e-es2015.js').then(function () {
+              window.$paella_bg2e = bg;
+              resolve(window.$paella_bg2e);
+            })["catch"](function (err) {
+              console.error(err.message);
+              reject();
+            });
+          } else {
+            defer.resolve(window.$paella_bg2e);
+          }
+        });
+      }
+    }, {
+      key: "_deferredAction",
+      value: function _deferredAction(action) {
+        var _this140 = this;
+
+        return new Promise(function (resolve, reject) {
+          if (_this140.video) {
+            resolve(action());
+          } else {
+            $(_this140.video).bind('canplay', function () {
+              _this140._ready = true;
+              resolve(action());
+            });
+          }
+        });
+      }
+    }, {
+      key: "_getQualityObject",
+      value: function _getQualityObject(index, s) {
+        return {
+          index: index,
+          res: s.res,
+          src: s.src,
+          toString: function toString() {
+            return this.res.w + "x" + this.res.h;
+          },
+          shortLabel: function shortLabel() {
+            return this.res.h + "p";
+          },
+          compare: function compare(q2) {
+            return this.res.w * this.res.h - q2.res.w * q2.res.h;
+          }
+        };
+      } // Initialization functions
+
+    }, {
+      key: "getVideoData",
+      value: function getVideoData() {
+        var _this141 = this;
+
+        var This = this;
+        return new Promise(function (resolve, reject) {
+          _this141._deferredAction(function () {
+            resolve({
+              duration: This.video.duration,
+              currentTime: This.video.currentTime,
+              volume: This.video.volume,
+              paused: This.video.paused,
+              ended: This.video.ended,
+              res: {
+                w: This.video.videoWidth,
+                h: This.video.videoHeight
+              }
+            });
+          });
+        });
+      }
+    }, {
+      key: "setPosterFrame",
+      value: function setPosterFrame(url) {
+        this._posterFrame = url;
+      }
+    }, {
+      key: "setAutoplay",
+      value: function setAutoplay(auto) {
+        this._autoplay = auto;
+
+        if (auto && this.video) {
+          this.video.setAttribute("autoplay", auto);
+        }
+      }
+    }, {
+      key: "load",
+      value: function load() {
+        var _this142 = this;
+
+        var This = this;
+        return new Promise(function (resolve, reject) {
+          _this142._loadDeps().then(function () {
+            var sources = _this142._stream.sources[_this142._streamName];
+
+            if (_this142._currentQuality === null && _this142._videoQualityStrategy) {
+              _this142._currentQuality = _this142._videoQualityStrategy.getQualityIndex(sources);
+            }
+
+            var stream = _this142._currentQuality < sources.length ? sources[_this142._currentQuality] : null;
+            _this142.video = null;
+            _this142.domElement.parentNode.style.backgroundColor = "transparent";
+
+            if (stream) {
+              _this142.canvasController = null;
+              buildChromaVideoCanvas(stream, _this142.domElement).then(function (canvasController) {
+                _this142.canvasController = canvasController;
+                _this142.video = canvasController.video;
+
+                _this142.video.pause();
+
+                if (stream.crop) {
+                  _this142.canvasController.crop = new bg.Vector4(stream.crop.left, stream.crop.top, stream.crop.right, stream.crop.bottom);
+                }
+
+                if (stream.displacement) {
+                  _this142.canvasController.transform = bg.Matrix4.Translation(stream.displacement.x, stream.displacement.y, 0);
+                }
+
+                if (stream.chromaColor) {
+                  _this142.canvasController.chroma = new bg.Color(stream.chromaColor[0], stream.chromaColor[1], stream.chromaColor[2], stream.chromaColor[3]);
+                }
+
+                if (stream.chromaBias) {
+                  _this142.canvasController.bias = stream.chromaBias;
+                }
+
+                resolve(stream);
+              });
+            } else {
+              reject(new Error("Could not load video: invalid quality stream index"));
+            }
+          });
+        });
+      }
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        var _this143 = this;
+
+        return new Promise(function (resolve, reject) {
+          setTimeout(function () {
+            var result = [];
+            var sources = _this143._stream.sources[_this143._streamName];
+            var index = -1;
+            sources.forEach(function (s) {
+              index++;
+              result.push(_this143._getQualityObject(index, s));
+            });
+            resolve(result);
+          }, 10);
+        });
+      }
+    }, {
+      key: "setQuality",
+      value: function setQuality(index) {
+        var _this144 = this;
+
+        return new Promise(function (resolve) {
+          var paused = _this144.video.paused;
+          var sources = _this144._stream.sources[_this144._streamName];
+          _this144._currentQuality = index < sources.length ? index : 0;
+          var currentTime = _this144.video.currentTime;
+
+          _this144.freeze().then(function () {
+            _this144._ready = false;
+            return _this144.load();
+          }).then(function () {
+            if (!paused) {
+              _this144.play();
+            }
+
+            $(_this144.video).on('seeked', function () {
+              _this144.unFreeze();
+
+              resolve();
+              $(_this144.video).off('seeked');
+            });
+            _this144.video.currentTime = currentTime;
+          });
+        });
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        var _this145 = this;
+
+        return new Promise(function (resolve) {
+          resolve(_this145._getQualityObject(_this145._currentQuality, _this145._stream.sources[_this145._streamName][_this145._currentQuality]));
+        });
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        var _this146 = this;
+
+        return this._deferredAction(function () {
+          bg.app.MainLoop.singleton.updateMode = bg.app.FrameUpdate.AUTO;
+
+          _this146.video.play();
+        });
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        var _this147 = this;
+
+        return this._deferredAction(function () {
+          bg.app.MainLoop.singleton.updateMode = bg.app.FrameUpdate.MANUAL;
+
+          _this147.video.pause();
+        });
+      }
+    }, {
+      key: "isPaused",
+      value: function isPaused() {
+        var _this148 = this;
+
+        return this._deferredAction(function () {
+          return _this148.video.paused;
+        });
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        var _this149 = this;
+
+        return this._deferredAction(function () {
+          return _this149.video.duration;
+        });
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        var _this150 = this;
+
+        return this._deferredAction(function () {
+          _this150.video.currentTime = time;
+          $(_this150.video).on('seeked', function () {
+            _this150.canvasController.postRedisplay();
+
+            $(_this150.video).off('seeked');
+          });
+        });
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        var _this151 = this;
+
+        return this._deferredAction(function () {
+          return _this151.video.currentTime;
+        });
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(volume) {
+        var _this152 = this;
+
+        return this._deferredAction(function () {
+          _this152.video.volume = volume;
+        });
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        var _this153 = this;
+
+        return this._deferredAction(function () {
+          return _this153.video.volume;
+        });
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        var _this154 = this;
+
+        return this._deferredAction(function () {
+          _this154.video.playbackRate = rate;
+        });
+      }
+    }, {
+      key: "playbackRate",
+      value: function playbackRate() {
+        var _this155 = this;
+
+        return this._deferredAction(function () {
+          return _this155.video.playbackRate;
+        });
+      }
+    }, {
+      key: "goFullScreen",
+      value: function goFullScreen() {
+        var _this156 = this;
+
+        return this._deferredAction(function () {
+          var elem = _this156.video;
+
+          if (elem.requestFullscreen) {
+            elem.requestFullscreen();
+          } else if (elem.msRequestFullscreen) {
+            elem.msRequestFullscreen();
+          } else if (elem.mozRequestFullScreen) {
+            elem.mozRequestFullScreen();
+          } else if (elem.webkitEnterFullscreen) {
+            elem.webkitEnterFullscreen();
+          }
+        });
+      }
+    }, {
+      key: "unFreeze",
+      value: function unFreeze() {
+        var _this157 = this;
+
+        return this._deferredAction(function () {
+          var c = document.getElementById(_this157.video.className + "canvas");
+          $(c).remove();
+        });
+      }
+    }, {
+      key: "freeze",
+      value: function freeze() {
+        var This = this;
+        return this._deferredAction(function () {});
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        this._callUnloadEvent();
+
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "getDimensions",
+      value: function getDimensions() {
+        return paella_DeferredNotImplemented();
+      }
+    }]);
+
+    return ChromaVideo;
+  }(paella.VideoElementBase);
+
+  paella.ChromaVideo = ChromaVideo;
+
+  var ChromaVideoFactory =
+  /*#__PURE__*/
+  function (_paella$VideoFactory2) {
+    _inherits(ChromaVideoFactory, _paella$VideoFactory2);
+
+    function ChromaVideoFactory() {
+      _classCallCheck(this, ChromaVideoFactory);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(ChromaVideoFactory).apply(this, arguments));
+    }
+
+    _createClass(ChromaVideoFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        try {
+          if (paella.ChromaVideo._loaded) {
+            return false;
+          }
+
+          if (paella.videoFactories.Html5VideoFactory.s_instances > 0 && base.userAgent.system.iOS) {
+            return false;
+          }
+
+          for (var key in streamData.sources) {
+            if (key == 'chroma') return true;
+          }
+        } catch (e) {}
+
+        return false;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        paella.ChromaVideo._loaded = true;
+        ++paella.videoFactories.Html5VideoFactory.s_instances;
+        return new paella.ChromaVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+      }
+    }]);
+
+    return ChromaVideoFactory;
+  }(paella.VideoFactory);
+
+  paella.videoFactories.ChromaVideoFactory = ChromaVideoFactory;
+})();
+/*
+paella.addPlugin(function() {
+	return class CommentsPlugin extends paella.TabBarPlugin {
+		get divPublishComment() { return this._divPublishComment; }
+		set divPublishComment(v) { this._divPublishComment = v; }
+		get divComments() { return this._divComments; }
+		set divComments(v) { this._divComments = v; }
+		get publishCommentTextArea() { return this._publishCommentTextArea; }
+		set publishCommentTextArea(v) { this._publishCommentTextArea = v; }
+		get publishCommentButtons() { return this._publishCommentButtons; }
+		set publishCommentButtons(v) { this._publishCommentButtons = v; }
+		get canPublishAComment() { return this._canPublishAComment; }
+		set canPublishAComment(v) { this._canPublishAComment = v; }
+		get comments() { return this._comments; }
+		set comments(v) { this._comments = v; }
+		get commentsTree() { return this._commentsTree; }
+		set commentsTree(v) { this._commentsTree = v; }
+		get domElement() { return this._domElement; }
+		set domElement(v) { this._domElement = v; }
+	
+		getSubclass() { return "showCommentsTabBar"; }
+		getName() { return "es.upv.paella.commentsPlugin"; }
+		getTabName() { return base.dictionary.translate("Comments"); }
+		checkEnabled(onSuccess) { onSuccess(true); }
+		getIndex() { return 40; }
+		getDefaultToolTip() { return base.dictionary.translate("Comments"); }
+						
+		action(tab) {
+			this.loadContent();
+		}
+				
+		buildContent(domElement) {
+			this.domElement = domElement;
+			this.canPublishAComment = paella.initDelegate.initParams.accessControl.permissions.canWrite;
+			this.loadContent();
+		}
+					
+		loadContent() {
+			this.divRoot = this.domElement;
+			this.divRoot.innerText ="";
+			
+			this.divPublishComment = document.createElement('div');
+			this.divPublishComment.className = 'CommentPlugin_Publish';
+			this.divPublishComment.id = 'CommentPlugin_Publish';
+
+			this.divComments = document.createElement('div'); 
+			this.divComments.className = 'CommentPlugin_Comments';
+			this.divComments.id = 'CommentPlugin_Comments';
+
+			if(this.canPublishAComment){
+				this.divRoot.appendChild(this.divPublishComment);
+				this.createPublishComment();
+			}
+			this.divRoot.appendChild(this.divComments);
+			
+			this.reloadComments();
+		}
+		
+		//Allows the user to write a new comment
+		createPublishComment() {
+			var thisClass = this;
+			var rootID = this.divPublishComment.id+"_entry";
+			
+			var divEntry;
+			divEntry = document.createElement('div');
+			divEntry.id = rootID;
+			divEntry.className = 'comments_entry';
+			
+			var divSil;
+			divSil = document.createElement('img');
+			divSil.className = "comments_entry_silhouette";
+			divSil.style.width = "48px";
+			divSil.src = paella.initDelegate.initParams.accessControl.userData.avatar;
+			divSil.id = rootID+"_silhouette";
+			divEntry.appendChild(divSil);
+			
+			var divTextAreaContainer;
+			divTextAreaContainer = document.createElement('div');
+			divTextAreaContainer.className = "comments_entry_container";
+			divTextAreaContainer.id = rootID+"_textarea_container";
+			divEntry.appendChild(divTextAreaContainer);
+			
+			this.publishCommentTextArea = document.createElement('textarea');
+			this.publishCommentTextArea.id = rootID+"_textarea";
+			this.publishCommentTextArea.onclick = function(){paella.keyManager.enabled = false;};
+			this.publishCommentTextArea.onblur = function(){paella.keyManager.enabled = true;};
+			divTextAreaContainer.appendChild(this.publishCommentTextArea);
+			
+			this.publishCommentButtons = document.createElement('div');
+			this.publishCommentButtons.id = rootID+"_buttons_area";
+			divTextAreaContainer.appendChild(this.publishCommentButtons);
+			
+			var btnAddComment;
+			btnAddComment = document.createElement('button');
+			btnAddComment.id = rootID+"_btnAddComment";
+			btnAddComment.className = "publish";
+			btnAddComment.onclick = function(){
+				var txtValue = thisClass.publishCommentTextArea.value;
+				if (txtValue.replace(/\s/g,'') != "") {
+					thisClass.addComment();
+				}
+			};
+			btnAddComment.innerText = base.dictionary.translate("Publish");
+			
+			this.publishCommentButtons.appendChild(btnAddComment);
+			
+			divTextAreaContainer.commentsTextArea = this.publishCommentTextArea;
+			divTextAreaContainer.commentsBtnAddComment = btnAddComment;
+			divTextAreaContainer.commentsBtnAddCommentToInstant = this.btnAddCommentToInstant;
+			
+			this.divPublishComment.appendChild(divEntry);
+		}
+			
+		addComment() {
+			var thisClass = this;
+			var txtValue = paella.AntiXSS.htmlEscape(thisClass.publishCommentTextArea.value);
+			//var txtValue = thisClass.publishCommentTextArea.value;
+			var now = new Date();
+			
+			this.comments.push({
+				id: base.uuid(),
+				userName:paella.initDelegate.initParams.accessControl.userData.name,
+				mode: "normal",
+				value: txtValue,
+				created: now
+			});
+
+			var data = {
+				allComments: this.comments
+			};
+			
+			paella.data.write('comments',{id:paella.initDelegate.getId()},data,function(response,status){
+				if (status) {thisClass.loadContent();}
+			});
+		}
+		
+		addReply(annotationID, domNodeId) {
+			var thisClass = this;
+			var textArea = document.getElementById(domNodeId);
+			var txtValue = paella.AntiXSS.htmlEscape(textArea.value);
+			var now = new Date();
+			
+			paella.keyManager.enabled = true;
+
+			this.comments.push({
+				id: base.uuid(),
+				userName:paella.initDelegate.initParams.accessControl.userData.name,
+				mode: "reply",
+				parent: annotationID,
+				value: txtValue,
+				created: now
+			});
+
+			var data = {
+				allComments: this.comments
+			};
+			
+			paella.data.write('comments',{id:paella.initDelegate.getId()},data,function(response,status){
+				if (status) thisClass.reloadComments();
+			});
+		}
+		
+		reloadComments() {     
+			var thisClass = this;
+			thisClass.commentsTree = [];
+			thisClass.comments = [];
+			this.divComments.innerText ="";
+			
+			paella.data.read('comments',{id:paella.initDelegate.getId()},function(data,status) {
+				var i;
+				var valueText;
+				var comment;
+				if (data && typeof(data)=='object' && data.allComments && data.allComments.length>0) {
+					thisClass.comments = data.allComments;
+					var tempDict = {};
+
+					// obtain normal comments  
+					for (i =0; i < data.allComments.length; ++i ) {
+						valueText = data.allComments[i].value;
+													
+						if (data.allComments[i].mode !== "reply") { 
+							comment = {};
+							comment["id"] = data.allComments[i].id;
+							comment["userName"] = data.allComments[i].userName;
+							comment["mode"] = data.allComments[i].mode;
+							comment["value"] = valueText;
+							comment["created"] = data.allComments[i].created;
+							comment["replies"] = [];    
+
+							thisClass.commentsTree.push(comment); 
+							tempDict[comment["id"]] = thisClass.commentsTree.length - 1;
+						}
+					}
+				
+					// obtain reply comments
+					for (i =0; i < data.allComments.length; ++i ){
+						valueText = data.allComments[i].value;
+
+						if (data.allComments[i].mode === "reply") { 
+							comment = {};
+							comment["id"] = data.allComments[i].id;
+							comment["userName"] = data.allComments[i].userName;
+							comment["mode"] = data.allComments[i].mode;
+							comment["value"] = valueText;
+							comment["created"] = data.allComments[i].created;
+
+							var index = tempDict[data.allComments[i].parent];
+							thisClass.commentsTree[index]["replies"].push(comment);
+						}
+					}
+					thisClass.displayComments();
+				} 
+			});
+		}
+		
+		displayComments() {
+			var thisClass = this;
+			for (var i =0; i < thisClass.commentsTree.length; ++i ){
+				var comment = thisClass.commentsTree[i];
+				var e = thisClass.createACommentEntry(comment);
+				thisClass.divComments.appendChild(e);
+			} 
+		}
+		
+		createACommentEntry(comment) {
+			var thisClass = this;
+			var rootID = this.divPublishComment.id+"_entry"+comment["id"];
+			var users;
+			
+			var divEntry;
+			divEntry = document.createElement('div');
+			divEntry.id = rootID;
+			divEntry.className = "comments_entry";
+			
+			var divSil;
+			divSil = document.createElement('img');
+			divSil.className = "comments_entry_silhouette";
+			divSil.id = rootID+"_silhouette";
+
+			divEntry.appendChild(divSil);
+			
+			var divCommentContainer;
+			divCommentContainer = document.createElement('div');
+			divCommentContainer.className = "comments_entry_container";
+			divCommentContainer.id = rootID+"_comment_container";
+			divEntry.appendChild(divCommentContainer);
+			
+			var divCommentMetadata;
+			divCommentMetadata = document.createElement('div');
+			divCommentMetadata.id = rootID+"_comment_metadata"; 
+			divCommentContainer.appendChild(divCommentMetadata);
+			
+			
+			
+	//		var datePublish = comment["created"];
+			var datePublish = "";
+			if (comment["created"]) {
+				var dateToday=new Date();
+				var dateComment = paella.utils.timeParse.matterhornTextDateToDate(comment["created"]);			
+				datePublish = paella.utils.timeParse.secondsToText((dateToday.getTime()-dateComment.getTime())/1000);
+			}
+			
+			// var headLine = "<span class='comments_entry_username'>" + comment["userName"] + "</span>";
+			// headLine += "<span class='comments_entry_datepublish'>" + datePublish + "</span>";
+			// divCommentMetadata.innerHTML = headLine;
+			
+			
+			var divCommentValue;
+			divCommentValue = document.createElement('div');
+			divCommentValue.id = rootID+"_comment_value";
+			divCommentValue.className = "comments_entry_comment";
+			divCommentContainer.appendChild(divCommentValue);		
+			
+			divCommentValue.innerText = comment["value"];
+			
+			var divCommentReply = document.createElement('div');
+			divCommentReply.id = rootID+"_comment_reply";
+			divCommentContainer.appendChild(divCommentReply);
+			
+			paella.data.read('userInfo',{username:comment["userName"]}, function(data,status) {
+				if (data) {
+					divSil.src = data.avatar;
+					
+					var headLine = "<span class='comments_entry_username'>" + data.name + " " + data.lastname + "</span>";
+					headLine += "<span class='comments_entry_datepublish'>" + datePublish + "</span>";				
+					divCommentMetadata.innerHTML = headLine;
+				}
+			});
+
+			if (this.canPublishAComment == true) {
+				//var btnRplyComment = document.createElement('button');
+				var btnRplyComment = document.createElement('div');
+				btnRplyComment.className = "reply_button";
+				btnRplyComment.innerText = base.dictionary.translate("Reply");
+				
+				btnRplyComment.id = rootID+"_comment_reply_button";
+				btnRplyComment.onclick = function(){
+					var e = thisClass.createAReplyEntry(comment["id"]);
+					this.style.display="none";
+					this.parentElement.parentElement.appendChild(e);
+				};
+				divCommentReply.appendChild(btnRplyComment);
+			}
+			
+			for (var i =0; i < comment.replies.length; ++i ){
+				var e = thisClass.createACommentReplyEntry(comment["id"], comment["replies"][i]);
+				divCommentContainer.appendChild(e);
+			}
+			return divEntry;
+		}
+		
+		createACommentReplyEntry(parentID, comment) {
+			var thisClass = this;
+			var rootID = this.divPublishComment.id+"_entry_" + parentID + "_reply_" + comment["id"];
+
+			var divEntry;
+			divEntry = document.createElement('div');
+			divEntry.id = rootID;
+			divEntry.className = "comments_entry";
+			
+			var divSil;
+			divSil = document.createElement('img');
+			divSil.className = "comments_entry_silhouette";
+			divSil.id = rootID+"_silhouette";
+
+			divEntry.appendChild(divSil);
+				
+			var divCommentContainer;
+			divCommentContainer = document.createElement('div');
+			divCommentContainer.className = "comments_entry_container";
+			divCommentContainer.id = rootID+"_comment_container";
+			divEntry.appendChild(divCommentContainer);
+				
+			var divCommentMetadata;
+			divCommentMetadata = document.createElement('div');
+			divCommentMetadata.id = rootID+"_comment_metadata"; 
+			divCommentContainer.appendChild(divCommentMetadata);
+	//		var datePublish = comment["created"];
+			var datePublish = "";
+			if (comment["created"]) {
+				var dateToday=new Date();
+				var dateComment = paella.utils.timeParse.matterhornTextDateToDate(comment["created"]);			
+				datePublish = paella.utils.timeParse.secondsToText((dateToday.getTime()-dateComment.getTime())/1000);
+			}
+			
+			// var headLine = "<span class='comments_entry_username'>" + comment["userName"] + "</span>";
+			// headLine += "<span class='comments_entry_datepublish'>" + datePublish + "</span>";
+			// divCommentMetadata.innerHTML = headLine;
+			
+			var divCommentValue;
+			divCommentValue = document.createElement('div');
+			divCommentValue.id = rootID+"_comment_value";
+			divCommentValue.className = "comments_entry_comment";
+			divCommentContainer.appendChild(divCommentValue);		
+			
+			divCommentValue.innerText = comment["value"];
+			
+			paella.data.read('userInfo',{username:comment["userName"]}, function(data,status) {
+				if (data) {
+					divSil.src = data.avatar;
+					
+					var headLine = "<span class='comments_entry_username'>" + data.name + " " + data.lastname + "</span>";
+					headLine += "<span class='comments_entry_datepublish'>" + datePublish + "</span>";				
+					divCommentMetadata.innerHTML = headLine;
+				}
+			});	
+				
+			return divEntry;
+		}
+		
+		//Allows the user to write a new reply
+		createAReplyEntry(annotationID) {
+			var thisClass = this;
+			var rootID = this.divPublishComment.id+"_entry_" + annotationID + "_reply";
+
+			var divEntry;
+			divEntry = document.createElement('div');
+			divEntry.id = rootID+"_entry";
+			divEntry.className = "comments_entry";
+			
+			var divSil;
+			divSil = document.createElement('img');
+			divSil.className = "comments_entry_silhouette";
+			divSil.style.width = "48px";		
+			divSil.id = rootID+"_silhouette";
+			divSil.src = paella.initDelegate.initParams.accessControl.userData.avatar;
+			divEntry.appendChild(divSil);
+			
+			var divCommentContainer;
+			divCommentContainer = document.createElement('div');
+			divCommentContainer.className = "comments_entry_container comments_reply_container";
+			divCommentContainer.id = rootID+"_reply_container";
+			divEntry.appendChild(divCommentContainer);
+		
+			var textArea;
+			textArea = document.createElement('textArea');
+			textArea.onclick = function(){paella.keyManager.enabled = false;};
+			textArea.draggable = false;
+			textArea.id = rootID+"_textarea";
+			divCommentContainer.appendChild(textArea);
+			
+			this.publishCommentButtons = document.createElement('div');
+			this.publishCommentButtons.id = rootID+"_buttons_area";
+			divCommentContainer.appendChild(this.publishCommentButtons);
+			
+			var btnAddComment;
+			btnAddComment = document.createElement('button');
+			btnAddComment.id = rootID+"_btnAddComment";
+			btnAddComment.className = "publish";
+			btnAddComment.onclick = function(){
+				var txtValue = textArea.value;
+				if (txtValue.replace(/\s/g,'') != "") {
+					thisClass.addReply(annotationID,textArea.id);
+				}
+			};
+			btnAddComment.innerText = base.dictionary.translate("Reply");
+			
+			this.publishCommentButtons.appendChild(btnAddComment);
+			
+			return divEntry;
+		}
+	}
+});
+*/
+
+/*
+paella.addPlugin(function() {
+
+	return class DescriptionPlugin extends paella.TabBarPlugin {
+		getSubclass() { return "showDescriptionTabBar"; }
+		getName() { return "es.upv.paella.descriptionPlugin"; }
+		getTabName() { return "Descripción"; }
+				
+		get domElement() { return this._domElement || null; }
+		set domElement(d) { this._domElement = d; }
+				
+		buildContent(domElement) {
+			this.domElement = domElement;
+			this.loadContent();
+		}
+				
+		action(tab) {
+			this.loadContent();
+		}
+				
+		loadContent() {
+			var container = this.domElement;
+			container.innerText = "Loading...";
+			new paella.Timer(function(t) {
+				container.innerText = "Loading done";
+			},2000);
+		}
+	}
+})
+*/
+
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin6) {
+      _inherits(extendedTabAdapterPlugin, _paella$ButtonPlugin6);
+
+      function extendedTabAdapterPlugin() {
+        _classCallCheck(this, extendedTabAdapterPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(extendedTabAdapterPlugin).apply(this, arguments));
+      }
+
+      _createClass(extendedTabAdapterPlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "extendedTabAdapterPlugin";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-folder';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 2030;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.extendedTabAdapterPlugin";
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Extended Tab Adapter");
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          domElement.appendChild(paella.extendedAdapter.bottomContainer);
+        }
+      }, {
+        key: "currentUrl",
+        get: function get() {
+          return this._currentUrl;
+        },
+        set: function set(v) {
+          this._currentUrl = v;
+        }
+      }, {
+        key: "currentMaster",
+        get: function get() {
+          return this._currentMaster;
+        },
+        set: function set(v) {
+          this._currentMaster = v;
+        }
+      }, {
+        key: "currentSlave",
+        get: function get() {
+          return this._currentSlave;
+        },
+        set: function set(v) {
+          this._currentSlave = v;
+        }
+      }, {
+        key: "availableMasters",
+        get: function get() {
+          return this._availableMasters;
+        },
+        set: function set(v) {
+          this._availableMasters = v;
+        }
+      }, {
+        key: "availableSlaves",
+        get: function get() {
+          return this._availableSlaves;
+        },
+        set: function set(v) {
+          this._availableSlaves = v;
+        }
+      }, {
+        key: "showWidthRes",
+        get: function get() {
+          return this._showWidthRes;
+        },
+        set: function set(v) {
+          this._showWidthRes = v;
+        }
+      }]);
+
+      return extendedTabAdapterPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin7) {
+      _inherits(FootPrintsPlugin, _paella$ButtonPlugin7);
+
+      function FootPrintsPlugin() {
+        _classCallCheck(this, FootPrintsPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(FootPrintsPlugin).apply(this, arguments));
+      }
+
+      _createClass(FootPrintsPlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "footPrints";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-stats';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 590;
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Show statistics");
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.footprintsPlugin";
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.timeLineButton;
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          this._INTERVAL_LENGTH = 5;
+          var thisClass = this;
+          paella.events.bind(paella.events.timeUpdate, function (event) {
+            thisClass.onTimeUpdate();
+          });
+
+          switch (this.config.skin) {
+            case 'custom':
+              this.fillStyle = this.config.fillStyle;
+              this.strokeStyle = this.config.strokeStyle;
+              break;
+
+            case 'dark':
+              this.fillStyle = '#727272';
+              this.strokeStyle = '#424242';
+              break;
+
+            case 'light':
+              this.fillStyle = '#d8d8d8';
+              this.strokeStyle = '#ffffff';
+              break;
+
+            default:
+              this.fillStyle = '#d8d8d8';
+              this.strokeStyle = '#ffffff';
+              break;
+          }
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          onSuccess(!paella.player.isLiveStream());
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var container = document.createElement('div');
+          container.className = 'footPrintsContainer';
+          this.canvas = document.createElement('canvas');
+          this.canvas.id = 'footPrintsCanvas';
+          this.canvas.className = 'footPrintsCanvas';
+          container.appendChild(this.canvas);
+          domElement.appendChild(container);
+        }
+      }, {
+        key: "onTimeUpdate",
+        value: function onTimeUpdate() {
+          var _this158 = this;
+
+          var currentTime = -1;
+          paella.player.videoContainer.currentTime().then(function (c) {
+            currentTime = c;
+            return paella.player.videoContainer.trimming();
+          }).then(function (trimming) {
+            var videoCurrentTime = Math.round(currentTime + (trimming.enabled ? trimming.start : 0));
+
+            if (_this158.inPosition <= videoCurrentTime && videoCurrentTime <= _this158.inPosition + _this158.INTERVAL_LENGTH) {
+              _this158.outPosition = videoCurrentTime;
+
+              if (_this158.inPosition + _this158.INTERVAL_LENGTH === _this158.outPosition) {
+                _this158.trackFootPrint(_this158.inPosition, _this158.outPosition);
+
+                _this158.inPosition = _this158.outPosition;
+              }
+            } else {
+              _this158.trackFootPrint(_this158.inPosition, _this158.outPosition);
+
+              _this158.inPosition = videoCurrentTime;
+              _this158.outPosition = videoCurrentTime;
+            }
+          });
+        }
+      }, {
+        key: "trackFootPrint",
+        value: function trackFootPrint(inPosition, outPosition) {
+          var data = {
+            "in": inPosition,
+            "out": outPosition
+          };
+          paella.data.write('footprints', {
+            id: paella.initDelegate.getId()
+          }, data);
+        }
+      }, {
+        key: "willShowContent",
+        value: function willShowContent() {
+          var thisClass = this;
+          this.loadFootprints();
+          this.footPrintsTimer = new base.Timer(function (timer) {
+            thisClass.loadFootprints();
+          }, 5000);
+          this.footPrintsTimer.repeat = true;
+        }
+      }, {
+        key: "didHideContent",
+        value: function didHideContent() {
+          if (this.footPrintsTimer != null) {
+            this.footPrintsTimer.cancel();
+            this.footPrintsTimer = null;
+          }
+        }
+      }, {
+        key: "loadFootprints",
+        value: function loadFootprints() {
+          var thisClass = this;
+          paella.data.read('footprints', {
+            id: paella.initDelegate.getId()
+          }, function (data, status) {
+            var footPrintsData = {};
+            paella.player.videoContainer.duration().then(function (duration) {
+              var trimStart = Math.floor(paella.player.videoContainer.trimStart());
+              var lastPosition = -1;
+              var lastViews = 0;
+
+              for (var i = 0; i < data.length; i++) {
+                var position = data[i].position - trimStart;
+
+                if (position < duration) {
+                  var views = data[i].views;
+
+                  if (position - 1 != lastPosition) {
+                    for (var j = lastPosition + 1; j < position; j++) {
+                      footPrintsData[j] = lastViews;
+                    }
+                  }
+
+                  footPrintsData[position] = views;
+                  lastPosition = position;
+                  lastViews = views;
+                }
+              }
+
+              thisClass.drawFootPrints(footPrintsData);
+            });
+          });
+        }
+      }, {
+        key: "drawFootPrints",
+        value: function drawFootPrints(footPrintsData) {
+          if (this.canvas) {
+            var duration = Object.keys(footPrintsData).length;
+            var ctx = this.canvas.getContext("2d");
+            var h = 20;
+            var i;
+
+            for (i = 0; i < duration; ++i) {
+              if (footPrintsData[i] > h) {
+                h = footPrintsData[i];
+              }
+            }
+
+            this.canvas.setAttribute("width", duration);
+            this.canvas.setAttribute("height", h);
+            ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
+            ctx.fillStyle = this.fillStyle; //'#faa166'; //'#9ED4EE';
+
+            ctx.strokeStyle = this.strokeStyle; //'#fa8533'; //"#0000FF";
+
+            ctx.lineWidth = 2;
+            ctx.webkitImageSmoothingEnabled = false;
+            ctx.mozImageSmoothingEnabled = false;
+
+            for (i = 0; i < duration - 1; ++i) {
+              ctx.beginPath();
+              ctx.moveTo(i, h);
+              ctx.lineTo(i, h - footPrintsData[i]);
+              ctx.lineTo(i + 1, h - footPrintsData[i + 1]);
+              ctx.lineTo(i + 1, h);
+              ctx.closePath();
+              ctx.fill();
+              ctx.beginPath();
+              ctx.moveTo(i, h - footPrintsData[i]);
+              ctx.lineTo(i + 1, h - footPrintsData[i + 1]);
+              ctx.closePath();
+              ctx.stroke();
+            }
+          }
+        }
+      }, {
+        key: "INTERVAL_LENGTH",
+        get: function get() {
+          return this._INTERVAL_LENGTH;
+        },
+        set: function set(v) {
+          this._INTERVAL_LENGTH = v;
+        }
+      }, {
+        key: "inPosition",
+        get: function get() {
+          return this._inPosition;
+        },
+        set: function set(v) {
+          this._inPosition = v;
+        }
+      }, {
+        key: "outPosition",
+        get: function get() {
+          return this._outPosition;
+        },
+        set: function set(v) {
+          this._outPosition = v;
+        }
+      }, {
+        key: "canvas",
+        get: function get() {
+          return this._canvas;
+        },
+        set: function set(v) {
+          this._canvas = v;
+        }
+      }, {
+        key: "footPrintsTimer",
+        get: function get() {
+          return this._footPrintsTimer;
+        },
+        set: function set(v) {
+          this._footPrintsTimer = v;
+        }
+      }, {
+        key: "footPrintsData",
+        get: function get() {
+          return this._footPrintsData;
+        },
+        set: function set(v) {
+          this._footPrintsData = v;
+        }
+      }]);
+
+      return FootPrintsPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$SearchService) {
+      _inherits(FrameCaptionsSearchPlugIn, _paella$SearchService);
+
+      function FrameCaptionsSearchPlugIn() {
+        _classCallCheck(this, FrameCaptionsSearchPlugIn);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(FrameCaptionsSearchPlugIn).apply(this, arguments));
+      }
+
+      _createClass(FrameCaptionsSearchPlugIn, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.frameCaptionsSearchPlugin";
+        }
+      }, {
+        key: "search",
+        value: function search(text, next) {
+          var re = RegExp(text, "i");
+          var results = [];
+
+          for (var key in paella.player.videoLoader.frameList) {
+            var value = paella.player.videoLoader.frameList[key];
+
+            if (_typeof(value) == "object") {
+              if (re.test(value.caption)) {
+                results.push({
+                  time: key,
+                  content: value.caption,
+                  score: 0
+                });
+              }
+            }
+          }
+
+          if (next) {
+            next(false, results);
+          }
+        }
+      }]);
+
+      return FrameCaptionsSearchPlugIn;
+    }(paella.SearchServicePlugIn)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin8) {
+      _inherits(FrameControlPlugin, _paella$ButtonPlugin8);
+
+      function FrameControlPlugin() {
+        _classCallCheck(this, FrameControlPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(FrameControlPlugin).apply(this, arguments));
+      }
+
+      _createClass(FrameControlPlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "frameControl";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-photo';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 510;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.frameControlPlugin";
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.timeLineButton;
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Navigate by slides");
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this._img = null;
+          this._searchTimer = null;
+          this._searchTimerTime = 250;
+          if (paella.initDelegate.initParams.videoLoader.frameList == null) onSuccess(false);else if (paella.initDelegate.initParams.videoLoader.frameList.length === 0) onSuccess(false);else if (Object.keys(paella.initDelegate.initParams.videoLoader.frameList).length == 0) onSuccess(false);else onSuccess(true);
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          this._showFullPreview = this.config.showFullPreview || "auto";
+          var thisClass = this;
+          var oldClassName;
+          var blockCounter = 1;
+          var correctJump = 0;
+          var selectedItem = -1;
+          var jumpAtItem;
+          var Keys = {
+            Tab: 9,
+            Return: 13,
+            Esc: 27,
+            End: 35,
+            Home: 36,
+            Left: 37,
+            Up: 38,
+            Right: 39,
+            Down: 40
+          };
+          $(this.button).keyup(function (event) {
+            var visibleItems = Math.floor(thisClass.contx.offsetWidth / 100);
+            var rest = thisClass.buttons.length % visibleItems;
+            var blocks = Math.floor(thisClass.buttons.length / visibleItems);
+
+            if (thisClass.isPopUpOpen()) {
+              if (event.keyCode == Keys.Left) {
+                if (selectedItem > 0) {
+                  thisClass.buttons[selectedItem].className = oldClassName;
+                  selectedItem--;
+                  if (blockCounter > blocks) correctJump = visibleItems - rest;
+                  jumpAtItem = visibleItems * (blockCounter - 1) - 1 - correctJump;
+
+                  if (selectedItem == jumpAtItem && selectedItem != 0) {
+                    thisClass.navButtons.left.scrollContainer.scrollLeft -= visibleItems * 105;
+                    --blockCounter;
+                  }
+
+                  if (this.hiResFrame) thisClass.removeHiResFrame();
+
+                  if (!base.userAgent.browser.IsMobileVersion) {
+                    thisClass.buttons[selectedItem].frameControl.onMouseOver(null, thisClass.buttons[selectedItem].frameData);
+                  }
+
+                  oldClassName = thisClass.buttons[selectedItem].className;
+                  thisClass.buttons[selectedItem].className = 'frameControlItem selected';
+                }
+              } else if (event.keyCode == Keys.Right) {
+                if (selectedItem < thisClass.buttons.length - 1) {
+                  if (selectedItem >= 0) {
+                    thisClass.buttons[selectedItem].className = oldClassName;
+                  }
+
+                  selectedItem++;
+                  if (blockCounter == 1) correctJump = 0;
+                  jumpAtItem = visibleItems * blockCounter - correctJump;
+
+                  if (selectedItem == jumpAtItem) {
+                    thisClass.navButtons.left.scrollContainer.scrollLeft += visibleItems * 105;
+                    ++blockCounter;
+                  }
+
+                  if (this.hiResFrame) thisClass.removeHiResFrame();
+
+                  if (!base.userAgent.browser.IsMobileVersion) {
+                    thisClass.buttons[selectedItem].frameControl.onMouseOver(null, thisClass.buttons[selectedItem].frameData);
+                  }
+
+                  oldClassName = thisClass.buttons[selectedItem].className;
+                  thisClass.buttons[selectedItem].className = 'frameControlItem selected';
+                }
+              } else if (event.keyCode == Keys.Return) {
+                thisClass.buttons[selectedItem].frameControl.onClick(null, thisClass.buttons[selectedItem].frameData);
+                oldClassName = 'frameControlItem current';
+              } else if (event.keyCode == Keys.Esc) {
+                thisClass.removeHiResFrame();
+              }
+            }
+          });
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var _this159 = this;
+
+          var thisClass = this;
+          this.frames = [];
+          var container = document.createElement('div');
+          container.className = 'frameControlContainer';
+          thisClass.contx = container;
+          var content = document.createElement('div');
+          content.className = 'frameControlContent';
+          this.navButtons = {
+            left: document.createElement('div'),
+            right: document.createElement('div')
+          };
+          this.navButtons.left.className = 'frameControl navButton left';
+          this.navButtons.right.className = 'frameControl navButton right';
+          var frame = this.getFrame(null);
+          domElement.appendChild(this.navButtons.left);
+          domElement.appendChild(container);
+          container.appendChild(content);
+          domElement.appendChild(this.navButtons.right);
+          this.navButtons.left.scrollContainer = container;
+          $(this.navButtons.left).click(function (event) {
+            this.scrollContainer.scrollLeft -= 100;
+          });
+          this.navButtons.right.scrollContainer = container;
+          $(this.navButtons.right).click(function (event) {
+            this.scrollContainer.scrollLeft += 100;
+          });
+          content.appendChild(frame);
+          var itemWidth = $(frame).outerWidth(true);
+          content.innerText = '';
+          $(window).mousemove(function (event) {
+            if ($(content).offset().top > event.pageY || !$(content).is(":visible") || $(content).offset().top + $(content).height() < event.pageY) {
+              thisClass.removeHiResFrame();
+            }
+          });
+          var frames = paella.initDelegate.initParams.videoLoader.frameList;
+          var numFrames;
+
+          if (frames) {
+            var framesKeys = Object.keys(frames);
+            numFrames = framesKeys.length;
+            framesKeys.map(function (i) {
+              return Number(i, 10);
+            }).sort(function (a, b) {
+              return a - b;
+            }).forEach(function (key) {
+              var frameItem = thisClass.getFrame(frames[key]);
+              content.appendChild(frameItem, 'frameContrlItem_' + numFrames);
+              thisClass.frames.push(frameItem);
+            });
+          }
+
+          $(content).css({
+            width: numFrames * itemWidth + 'px'
+          });
+          paella.events.bind(paella.events.setTrim, function (event, params) {
+            _this159.updateFrameVisibility(params.trimEnabled, params.trimStart, params.trimEnd);
+          });
+          paella.player.videoContainer.trimming().then(function (trimData) {
+            _this159.updateFrameVisibility(trimData.enabled, trimData.start, trimData.end);
+          });
+          paella.events.bind(paella.events.timeupdate, function (event, params) {
+            return _this159.onTimeUpdate(params.currentTime);
+          });
+        }
+      }, {
+        key: "showHiResFrame",
+        value: function showHiResFrame(url, caption) {
+          var frameRoot = document.createElement("div");
+          var frame = document.createElement("div");
+          var hiResImage = document.createElement('img');
+          this._img = hiResImage;
+          hiResImage.className = 'frameHiRes';
+          hiResImage.setAttribute('src', url);
+          hiResImage.setAttribute('style', 'width: 100%;');
+          $(frame).append(hiResImage);
+          $(frameRoot).append(frame);
+          frameRoot.setAttribute('style', 'display: table;');
+          frame.setAttribute('style', 'display: table-cell; vertical-align:middle;');
+
+          if (this.config.showCaptions === true) {
+            var captionContainer = document.createElement('p');
+            captionContainer.className = "frameCaption";
+            captionContainer.innerText = caption || "";
+            frameRoot.append(captionContainer);
+            this._caption = captionContainer;
+          }
+
+          var overlayContainer = paella.player.videoContainer.overlayContainer;
+
+          switch (this._showFullPreview) {
+            case "auto":
+              var streams = paella.initDelegate.initParams.videoLoader.streams;
+
+              if (streams.length == 1) {
+                overlayContainer.addElement(frameRoot, overlayContainer.getVideoRect(0));
+              } else if (streams.length >= 2) {
+                overlayContainer.addElement(frameRoot, overlayContainer.getVideoRect(1));
+              }
+
+              overlayContainer.enableBackgroundMode();
+              this.hiResFrame = frameRoot;
+              break;
+
+            case "master":
+              overlayContainer.addElement(frameRoot, overlayContainer.getVideoRect(0));
+              overlayContainer.enableBackgroundMode();
+              this.hiResFrame = frameRoot;
+              break;
+
+            case "slave":
+              var streams = paella.initDelegate.initParams.videoLoader.streams;
+
+              if (streams.length >= 2) {
+                overlayContainer.addElement(frameRoot, overlayContainer.getVideoRect(0));
+                overlayContainer.enableBackgroundMode();
+                this.hiResFrame = frameRoot;
+              }
+
+              break;
+          }
+        }
+      }, {
+        key: "removeHiResFrame",
+        value: function removeHiResFrame() {
+          var thisClass = this;
+          var overlayContainer = paella.player.videoContainer.overlayContainer;
+
+          if (this.hiResFrame) {
+            overlayContainer.removeElement(this.hiResFrame);
+          }
+
+          overlayContainer.disableBackgroundMode();
+          thisClass._img = null;
+        }
+      }, {
+        key: "updateFrameVisibility",
+        value: function updateFrameVisibility(trimEnabled, trimStart, trimEnd) {
+          var i;
+
+          if (!trimEnabled) {
+            for (i = 0; i < this.frames.length; ++i) {
+              $(this.frames[i]).show();
+            }
+          } else {
+            for (i = 0; i < this.frames.length; ++i) {
+              var frameElem = this.frames[i];
+              var frameData = frameElem.frameData;
+
+              if (frameData.time < trimStart) {
+                if (this.frames.length > i + 1 && this.frames[i + 1].frameData.time > trimStart) {
+                  $(frameElem).show();
+                } else {
+                  $(frameElem).hide();
+                }
+              } else if (frameData.time > trimEnd) {
+                $(frameElem).hide();
+              } else {
+                $(frameElem).show();
+              }
+            }
+          }
+        }
+      }, {
+        key: "getFrame",
+        value: function getFrame(frameData, id) {
+          var frame = document.createElement('div');
+          frame.className = 'frameControlItem';
+          if (id) frame.id = id;
+
+          if (frameData) {
+            this.buttons.push(frame);
+            frame.frameData = frameData;
+            frame.frameControl = this;
+            var image = frameData.thumb ? frameData.thumb : frameData.url;
+            var labelTime = paella.utils.timeParse.secondsToTime(frameData.time);
+            frame.innerHTML = '<img src="' + image + '" alt="" class="frameControlImage" title="' + labelTime + '" aria-label="' + labelTime + '"></img>';
+
+            if (!base.userAgent.browser.IsMobileVersion) {
+              $(frame).mouseover(function (event) {
+                this.frameControl.onMouseOver(event, this.frameData);
+              });
+            }
+
+            $(frame).mouseout(function (event) {
+              this.frameControl.onMouseOut(event, this.frameData);
+            });
+            $(frame).click(function (event) {
+              this.frameControl.onClick(event, this.frameData);
+            });
+          }
+
+          return frame;
+        }
+      }, {
+        key: "onMouseOver",
+        value: function onMouseOver(event, frameData) {
+          var frames = paella.initDelegate.initParams.videoLoader.frameList;
+          var frame = frames[frameData.time];
+
+          if (frame) {
+            var image = frame.url;
+
+            if (this._img) {
+              this._img.setAttribute('src', image);
+
+              if (this.config.showCaptions === true) {
+                this._caption.innerText = frame.caption || "";
+              }
+            } else {
+              this.showHiResFrame(image, frame.caption);
+            }
+          }
+
+          if (this._searchTimer != null) {
+            clearTimeout(this._searchTimer);
+          }
+        }
+      }, {
+        key: "onMouseOut",
+        value: function onMouseOut(event, frameData) {
+          var _this160 = this;
+
+          this._searchTimer = setTimeout(function (timer) {
+            return _this160.removeHiResFrame();
+          }, this._searchTimerTime);
+        }
+      }, {
+        key: "onClick",
+        value: function onClick(event, frameData) {
+          paella.player.videoContainer.trimming().then(function (trimming) {
+            var time = trimming.enabled ? frameData.time - trimming.start : frameData.time;
+
+            if (time > 0) {
+              paella.player.videoContainer.seekToTime(time + 1);
+            } else {
+              paella.player.videoContainer.seekToTime(0);
+            }
+          });
+        }
+      }, {
+        key: "onTimeUpdate",
+        value: function onTimeUpdate(currentTime) {
+          var _this161 = this;
+
+          var frame = null;
+          paella.player.videoContainer.trimming().then(function (trimming) {
+            var time = trimming.enabled ? currentTime + trimming.start : currentTime;
+
+            for (var i = 0; i < _this161.frames.length; ++i) {
+              if (_this161.frames[i].frameData && _this161.frames[i].frameData.time <= time) {
+                frame = _this161.frames[i];
+              } else {
+                break;
+              }
+            }
+
+            if (_this161.currentFrame != frame && frame) {
+              //this.navButtons.left.scrollContainer.scrollLeft += 100;
+              if (_this161.currentFrame) _this161.currentFrame.className = 'frameControlItem';
+              _this161.currentFrame = frame;
+              _this161.currentFrame.className = 'frameControlItem current';
+            }
+          });
+        }
+      }, {
+        key: "frames",
+        get: function get() {
+          return this._frames;
+        },
+        set: function set(v) {
+          this._frames = v;
+        }
+      }, {
+        key: "highResFrames",
+        get: function get() {
+          return this._highResFrames;
+        },
+        set: function set(v) {
+          this._highResFrames = v;
+        }
+      }, {
+        key: "currentFrame",
+        get: function get() {
+          return this._currentFrame;
+        },
+        set: function set(v) {
+          this._currentFrame = v;
+        }
+      }, {
+        key: "navButtons",
+        get: function get() {
+          return this._navButtons;
+        },
+        set: function set(v) {
+          this._navButtons = v;
+        }
+      }, {
+        key: "buttons",
+        get: function get() {
+          if (!this._buttons) {
+            this._buttons = [];
+          }
+
+          return this._buttons;
+        },
+        set: function set(v) {
+          this._buttons = v;
+        }
+      }, {
+        key: "contx",
+        get: function get() {
+          return this._contx;
+        },
+        set: function set(v) {
+          this._contx = v;
+        }
+      }]);
+
+      return FrameControlPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin9) {
+      _inherits(FullScreenPlugin, _paella$ButtonPlugin9);
+
+      function FullScreenPlugin() {
+        _classCallCheck(this, FullScreenPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(FullScreenPlugin).apply(this, arguments));
+      }
+
+      _createClass(FullScreenPlugin, [{
+        key: "getIndex",
+        value: function getIndex() {
+          return 551;
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "showFullScreenButton";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-fullscreen';
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.fullScreenButtonPlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this._reload = null;
+          var enabled = paella.player.checkFullScreenCapability();
+          onSuccess(enabled);
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Go Fullscreen");
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var _this162 = this;
+
+          this._reload = this.config.reloadOnFullscreen ? this.config.reloadOnFullscreen.enabled : false;
+          paella.events.bind(paella.events.enterFullscreen, function (event) {
+            return _this162.onEnterFullscreen();
+          });
+          paella.events.bind(paella.events.exitFullscreen, function (event) {
+            return _this162.onExitFullscreen();
+          });
+        }
+      }, {
+        key: "action",
+        value: function action(button) {
+          var _this163 = this;
+
+          if (paella.player.isFullScreen()) {
+            paella.player.exitFullScreen();
+          } else if ((!paella.player.checkFullScreenCapability() || base.userAgent.browser.Explorer) && window.location !== window.parent.location) {
+            // Iframe and no fullscreen support
+            var url = window.location.href;
+            paella.player.pause();
+            paella.player.videoContainer.currentTime().then(function (currentTime) {
+              var obj = _this163.secondsToHours(currentTime);
+
+              window.open(url + "&time=" + obj.h + "h" + obj.m + "m" + obj.s + "s&autoplay=true");
+            });
+            return;
+          } else {
+            paella.player.goFullScreen();
+          }
+
+          if (paella.player.config.player.reloadOnFullscreen && paella.player.videoContainer.supportAutoplay()) {
+            setTimeout(function () {
+              if (_this163._reload) {
+                paella.player.videoContainer.setQuality(null).then(function () {}); //paella.player.reloadVideos();
+              }
+            }, 1000);
+          }
+        }
+      }, {
+        key: "secondsToHours",
+        value: function secondsToHours(sec_numb) {
+          var hours = Math.floor(sec_numb / 3600);
+          var minutes = Math.floor((sec_numb - hours * 3600) / 60);
+          var seconds = Math.floor(sec_numb - hours * 3600 - minutes * 60);
+          var obj = {};
+
+          if (hours < 10) {
+            hours = "0" + hours;
+          }
+
+          if (minutes < 10) {
+            minutes = "0" + minutes;
+          }
+
+          if (seconds < 10) {
+            seconds = "0" + seconds;
+          }
+
+          obj.h = hours;
+          obj.m = minutes;
+          obj.s = seconds;
+          return obj;
+        }
+      }, {
+        key: "onEnterFullscreen",
+        value: function onEnterFullscreen() {
+          this.setToolTip(base.dictionary.translate("Exit Fullscreen"));
+          this.button.className = this.getButtonItemClass(true);
+          this.changeIconClass('icon-windowed');
+        }
+      }, {
+        key: "onExitFullscreen",
+        value: function onExitFullscreen() {
+          this.setToolTip(base.dictionary.translate("Go Fullscreen"));
+          this.button.className = this.getButtonItemClass(false);
+          this.changeIconClass('icon-fullscreen');
+          setTimeout(function () {
+            paella.player.onresize();
+          }, 100);
+        }
+      }, {
+        key: "getButtonItemClass",
+        value: function getButtonItemClass(selected) {
+          return 'buttonPlugin ' + this.getAlignment() + ' ' + this.getSubclass() + (selected ? ' active' : '');
+        }
+      }]);
+
+      return FullScreenPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin10) {
+      _inherits(HelpPlugin, _paella$ButtonPlugin10);
+
+      function HelpPlugin() {
+        _classCallCheck(this, HelpPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(HelpPlugin).apply(this, arguments));
+      }
+
+      _createClass(HelpPlugin, [{
+        key: "getIndex",
+        value: function getIndex() {
+          return 509;
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "helpButton";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-help';
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.helpPlugin";
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Show help") + ' (' + base.dictionary.translate("Paella version:") + ' ' + paella.version + ')';
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var availableLangs = this.config && this.config.langs || [];
+          onSuccess(availableLangs.length > 0);
+        }
+      }, {
+        key: "action",
+        value: function action(button) {
+          var mylang = base.dictionary.currentLanguage();
+          var availableLangs = this.config && this.config.langs || [];
+          var idx = availableLangs.indexOf(mylang);
+
+          if (idx < 0) {
+            idx = 0;
+          } //paella.messageBox.showFrame("http://paellaplayer.upv.es/?page=usage");
+
+
+          var url = "resources/style/help/help_" + availableLangs[idx] + ".html";
+
+          if (base.userAgent.browser.IsMobileVersion) {
+            window.open(url);
+          } else {
+            paella.messageBox.showFrame(url);
+          }
+        }
+      }]);
+
+      return HelpPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+
+(function () {
+  var s_preventVideoDump = [];
+
+  var HLSPlayer =
+  /*#__PURE__*/
+  function (_paella$Html5Video) {
+    _inherits(HLSPlayer, _paella$Html5Video);
+
+    _createClass(HLSPlayer, [{
+      key: "config",
+      get: function get() {
+        var config = {
+          autoStartLoad: true,
+          startPosition: -1,
+          capLevelToPlayerSize: true,
+          debug: false,
+          defaultAudioCodec: undefined,
+          initialLiveManifestSize: 1,
+          maxBufferLength: 30,
+          maxMaxBufferLength: 600,
+          maxBufferSize: 60 * 1000 * 1000,
+          maxBufferHole: 0.5,
+          lowBufferWatchdogPeriod: 0.5,
+          highBufferWatchdogPeriod: 3,
+          nudgeOffset: 0.1,
+          nudgeMaxRetry: 3,
+          maxFragLookUpTolerance: 0.2,
+          liveSyncDurationCount: 3,
+          liveMaxLatencyDurationCount: 10,
+          enableWorker: true,
+          enableSoftwareAES: true,
+          manifestLoadingTimeOut: 10000,
+          manifestLoadingMaxRetry: 1,
+          manifestLoadingRetryDelay: 500,
+          manifestLoadingMaxRetryTimeout: 64000,
+          startLevel: undefined,
+          levelLoadingTimeOut: 10000,
+          levelLoadingMaxRetry: 4,
+          levelLoadingRetryDelay: 500,
+          levelLoadingMaxRetryTimeout: 64000,
+          fragLoadingTimeOut: 20000,
+          fragLoadingMaxRetry: 6,
+          fragLoadingRetryDelay: 500,
+          fragLoadingMaxRetryTimeout: 64000,
+          startFragPrefetch: false,
+          appendErrorMaxRetry: 3,
+          // loader: customLoader,
+          // fLoader: customFragmentLoader,
+          // pLoader: customPlaylistLoader,
+          // xhrSetup: XMLHttpRequestSetupCallback,
+          // fetchSetup: FetchSetupCallback,
+          // abrController: customAbrController,
+          // timelineController: TimelineController,
+          enableWebVTT: true,
+          enableCEA708Captions: true,
+          stretchShortVideoTrack: false,
+          maxAudioFramesDrift: 1,
+          forceKeyFrameOnDiscontinuity: true,
+          abrEwmaFastLive: 5.0,
+          abrEwmaSlowLive: 9.0,
+          abrEwmaFastVoD: 4.0,
+          abrEwmaSlowVoD: 15.0,
+          abrEwmaDefaultEstimate: 500000,
+          abrBandWidthFactor: 0.95,
+          abrBandWidthUpFactor: 0.7,
+          minAutoBitrate: 0
+        };
+        var pluginConfig = {};
+        paella.player.config.player.methods.some(function (methodConfig) {
+          if (methodConfig.factory == "HLSVideoFactory") {
+            pluginConfig = methodConfig.config || {};
+            return true;
+          }
+        });
+
+        for (var key in config) {
+          if (pluginConfig[key] != undefined) {
+            config[key] = pluginConfig[key];
+          }
+        }
+
+        return config;
+      }
+    }]);
+
+    function HLSPlayer(id, stream, left, top, width, height) {
+      _classCallCheck(this, HLSPlayer);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(HLSPlayer).call(this, id, stream, left, top, width, height, 'hls'));
+    }
+
+    _createClass(HLSPlayer, [{
+      key: "_loadDeps",
+      value: function _loadDeps() {
+        return new Promise(function (resolve, reject) {
+          if (!window.$paella_hls) {
+            require([paella.baseUrl + 'resources/deps/hls.min.js'], function (hls) {
+              window.$paella_hls = hls;
+              resolve(window.$paella_hls);
+            });
+          } else {
+            resolve(window.$paella_hls);
+          }
+        });
+      }
+    }, {
+      key: "setupHls",
+      value: function setupHls(video, url) {
+        var _this164 = this;
+
+        return new Promise(function (resolve, reject) {
+          _this164._loadDeps().then(function (Hls) {
+            if (Hls.isSupported()) {
+              var cfg = _this164.config;
+              _this164._hls = new Hls(cfg);
+
+              _this164._hls.loadSource(url);
+
+              _this164._hls.attachMedia(video);
+
+              _this164.autoQuality = true;
+
+              _this164._hls.on(Hls.Events.LEVEL_SWITCHED, function (ev, data) {
+                _this164._qualities = _this164._qualities || [];
+                _this164._qualityIndex = _this164.autoQuality ? _this164._qualities.length - 1 : data.level;
+                paella.events.trigger(paella.events.qualityChanged, {});
+                if (console && console.log) console.log("HLS: quality level changed to ".concat(data.level));
+              });
+
+              _this164._hls.on(Hls.Events.ERROR, function (event, data) {
+                if (data.fatal) {
+                  switch (data.type) {
+                    case Hls.ErrorTypes.NETWORK_ERROR:
+                      console.error("paella.HLSPlayer: Fatal network error encountered, try to recover");
+
+                      _this164._hls.startLoad();
+
+                      break;
+
+                    case Hls.ErrorTypes.MEDIA_ERROR:
+                      console.error("paella.HLSPlayer: Fatal media error encountered, try to recover");
+
+                      _this164._hls.recoverMediaError();
+
+                      break;
+
+                    default:
+                      console.error("paella.HLSPlayer: Fatal error. Can not recover");
+
+                      _this164._hls.destroy();
+
+                      reject(new Errro("Invalid media"));
+                      break;
+                  }
+                }
+              });
+
+              _this164._hls.on(Hls.Events.MANIFEST_PARSED, function () {
+                //this._deferredAction(function() {
+                resolve(video); //});
+              });
+            } else {
+              reject(new Error("HLS not supported"));
+            }
+          });
+        });
+      }
+    }, {
+      key: "webGlDidLoad",
+      value: function webGlDidLoad() {
+        var _this165 = this;
+
+        // Register a new video loader in the webgl engine, to enable the
+        // hls compatibility in webgl canvas
+        bg.utils.HTTPResourceProvider.AddVideoLoader('m3u8', function (url, onSuccess, onFail) {
+          var video = document.createElement("video");
+          s_preventVideoDump.push(video);
+
+          _this165.setupHls(video, url).then(function () {
+            return onSuccess(video);
+          })["catch"](function () {
+            return onFail();
+          });
+        });
+        return Promise.resolve();
+      }
+    }, {
+      key: "loadVideoStream",
+      value: function loadVideoStream(canvasInstance, stream) {
+        var _this166 = this;
+
+        return canvasInstance.loadVideo(this, stream, function (videoElem) {
+          return _this166.setupHls(videoElem, stream.src);
+        });
+      }
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        var _this167 = this;
+
+        if (base.userAgent.system.iOS) // ||
+          //		base.userAgent.browser.Safari)
+          {
+            return new Promise(function (resolve, reject) {
+              resolve([{
+                index: 0,
+                res: "",
+                src: "",
+                toString: function toString() {
+                  return "auto";
+                },
+                shortLabel: function shortLabel() {
+                  return "auto";
+                },
+                compare: function compare(q2) {
+                  return 0;
+                }
+              }]);
+            });
+          } else {
+          var _This = this;
+
+          return new Promise(function (resolve) {
+            if (!_this167._qualities || _this167._qualities.length == 0) {
+              _This._qualities = [];
+
+              _This._hls.levels.forEach(function (q, index) {
+                _This._qualities.push(_This._getQualityObject(index, {
+                  index: index,
+                  res: {
+                    w: q.width,
+                    h: q.height
+                  },
+                  bitrate: q.bitrate
+                }));
+              });
+
+              if (_this167._qualities.length > 1) {
+                // If there is only one quality level, don't add the "auto" option
+                _This._qualities.push(_This._getQualityObject(_This._qualities.length, {
+                  index: _This._qualities.length,
+                  res: {
+                    w: 0,
+                    h: 0
+                  },
+                  bitrate: 0
+                }));
+              }
+            }
+
+            _This.qualityIndex = _This._qualities.length - 1;
+            resolve(_This._qualities);
+          });
+        }
+      }
+    }, {
+      key: "printQualityes",
+      value: function printQualityes() {
+        var _this168 = this;
+
+        return new Promise(function (resolve, reject) {
+          _this168.getCurrentQuality().then(function (cq) {
+            return _this168.getNextQuality();
+          }).then(function (nq) {
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "setQuality",
+      value: function setQuality(index) {
+        if (base.userAgent.system.iOS) // ||
+          //base.userAgent.browser.Safari)
+          {
+            return Promise.resolve();
+          } else if (index !== null) {
+          try {
+            this.qualityIndex = index;
+            var level = index;
+            this.autoQuality = false;
+
+            if (index == this._qualities.length - 1) {
+              level = -1;
+              this.autoQuality = true;
+            }
+
+            this._hls.currentLevel = level;
+          } catch (err) {}
+
+          return Promise.resolve();
+        } else {
+          return Promise.resolve();
+        }
+      }
+    }, {
+      key: "getNextQuality",
+      value: function getNextQuality() {
+        var _this169 = this;
+
+        return new Promise(function (resolve, reject) {
+          var index = _this169.qualityIndex;
+          resolve(_this169._qualities[index]);
+        });
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        var _this170 = this;
+
+        if (base.userAgent.system.iOS) // ||
+          //base.userAgent.browser.Safari)
+          {
+            return Promise.resolve(0);
+          } else {
+          return new Promise(function (resolve, reject) {
+            resolve(_this170._qualities[_this170.qualityIndex]);
+          });
+        }
+      }
+    }]);
+
+    return HLSPlayer;
+  }(paella.Html5Video);
+
+  paella.HLSPlayer = HLSPlayer;
+
+  var HLSVideoFactory =
+  /*#__PURE__*/
+  function (_paella$VideoFactory3) {
+    _inherits(HLSVideoFactory, _paella$VideoFactory3);
+
+    function HLSVideoFactory() {
+      _classCallCheck(this, HLSVideoFactory);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(HLSVideoFactory).apply(this, arguments));
+    }
+
+    _createClass(HLSVideoFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        if (paella.videoFactories.HLSVideoFactory.s_instances === undefined) {
+          paella.videoFactories.HLSVideoFactory.s_instances = 0;
+        }
+
+        try {
+          var cfg = this.config;
+
+          if (base.userAgent.system.iOS && paella.videoFactories.HLSVideoFactory.s_instances >= cfg.iOSMaxStreams || base.userAgent.system.Android && paella.videoFactories.HLSVideoFactory.s_instances >= cfg.androidMaxStreams) //	In some old mobile devices, playing a high number of HLS streams may cause that the browser tab crash
+            {
+              return false;
+            }
+
+          for (var key in streamData.sources) {
+            if (key == 'hls') return true;
+          }
+        } catch (e) {}
+
+        return false;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        ++paella.videoFactories.HLSVideoFactory.s_instances;
+        return new paella.HLSPlayer(id, streamData, rect.x, rect.y, rect.w, rect.h);
+      }
+    }, {
+      key: "config",
+      get: function get() {
+        var hlsConfig = null;
+        paella.player.config.player.methods.some(function (methodConfig) {
+          if (methodConfig.factory == "HLSVideoFactory") {
+            hlsConfig = methodConfig;
+          }
+
+          return hlsConfig != null;
+        });
+        return hlsConfig || {
+          iOSMaxStreams: 1,
+          androidMaxStreams: 1
+        };
+      }
+    }]);
+
+    return HLSVideoFactory;
+  }(paella.VideoFactory);
+
+  paella.videoFactories.HLSVideoFactory = HLSVideoFactory;
+})();
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$KeyPlugin) {
+      _inherits(DefaultKeyPlugin, _paella$KeyPlugin);
+
+      function DefaultKeyPlugin() {
+        _classCallCheck(this, DefaultKeyPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(DefaultKeyPlugin).apply(this, arguments));
+      }
+
+      _createClass(DefaultKeyPlugin, [{
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          onSuccess(true);
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.defaultKeysPlugin";
+        }
+      }, {
+        key: "setup",
+        value: function setup() {}
+      }, {
+        key: "onKeyPress",
+        value: function onKeyPress(event) {
+          // Matterhorn standard keys
+          if (event.altKey && event.ctrlKey) {
+            if (event.which == paella.Keys.P) {
+              this.togglePlayPause();
+              return true;
+            } else if (event.which == paella.Keys.S) {
+              this.pause();
+              return true;
+            } else if (event.which == paella.Keys.M) {
+              this.mute();
+              return true;
+            } else if (event.which == paella.Keys.U) {
+              this.volumeUp();
+              return true;
+            } else if (event.which == paella.Keys.D) {
+              this.volumeDown();
+              return true;
+            }
+          } else {
+            // Paella player keys
+            if (event.which == paella.Keys.Space) {
+              this.togglePlayPause();
+              return true;
+            } else if (event.which == paella.Keys.Up) {
+              this.volumeUp();
+              return true;
+            } else if (event.which == paella.Keys.Down) {
+              this.volumeDown();
+              return true;
+            } else if (event.which == paella.Keys.M) {
+              this.mute();
+              return true;
+            }
+          }
+
+          return false;
+        }
+      }, {
+        key: "togglePlayPause",
+        value: function togglePlayPause() {
+          paella.player.videoContainer.paused().then(function (p) {
+            p ? paella.player.play() : paella.player.pause();
+          });
+        }
+      }, {
+        key: "pause",
+        value: function pause() {
+          paella.player.pause();
+        }
+      }, {
+        key: "mute",
+        value: function mute() {
+          var videoContainer = paella.player.videoContainer;
+
+          if (videoContainer.muted) {
+            videoContainer.unmute();
+          } else {
+            videoContainer.mute();
+          } // videoContainer.volume().then(function(volume){
+          // 	var newVolume = 0;
+          // 	if (volume==0) { newVolume = 1.0; }
+          // 	paella.player.videoContainer.setVolume({ master:newVolume, slave: 0});
+          // });
+
+        }
+      }, {
+        key: "volumeUp",
+        value: function volumeUp() {
+          var videoContainer = paella.player.videoContainer;
+          videoContainer.volume().then(function (volume) {
+            volume += 0.1;
+            volume = volume > 1 ? 1.0 : volume;
+            paella.player.videoContainer.setVolume(volume);
+          });
+        }
+      }, {
+        key: "volumeDown",
+        value: function volumeDown() {
+          var videoContainer = paella.player.videoContainer;
+          videoContainer.volume().then(function (volume) {
+            volume -= 0.1;
+            volume = volume < 0 ? 0.0 : volume;
+            paella.player.videoContainer.setVolume(volume);
+          });
+        }
+      }]);
+
+      return DefaultKeyPlugin;
+    }(paella.KeyPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$VideoOverlayB) {
+      _inherits(LegalPlugin, _paella$VideoOverlayB);
+
+      function LegalPlugin() {
+        _classCallCheck(this, LegalPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(LegalPlugin).apply(this, arguments));
+      }
+
+      _createClass(LegalPlugin, [{
+        key: "getIndex",
+        value: function getIndex() {
+          return 0;
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "legal";
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return paella.player.config.plugins.list[this.getName()].position;
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return "";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          onSuccess(true);
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var plugin = paella.player.config.plugins.list[this.getName()];
+          var title = document.createElement('a');
+          title.innerText = plugin.label;
+          this._url = plugin.legalUrl;
+          title.className = "";
+          this.button.appendChild(title);
+        }
+      }, {
+        key: "action",
+        value: function action(button) {
+          window.open(this._url);
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.legalPlugin";
+        }
+      }]);
+
+      return LegalPlugin;
+    }(paella.VideoOverlayButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$VideoOverlayB2) {
+      _inherits(LiveStreamIndicator, _paella$VideoOverlayB2);
+
+      function LiveStreamIndicator() {
+        _classCallCheck(this, LiveStreamIndicator);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(LiveStreamIndicator).apply(this, arguments));
+      }
+
+      _createClass(LiveStreamIndicator, [{
+        key: "isEditorVisible",
+        value: function isEditorVisible() {
+          return paella.editor.instance != null;
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 10;
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "liveIndicator";
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("This video is a live stream");
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.liveStreamingIndicatorPlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          onSuccess(paella.player.isLiveStream());
+        }
+      }, {
+        key: "setup",
+        value: function setup() {}
+      }, {
+        key: "action",
+        value: function action(button) {
+          paella.messageBox.showMessage(base.dictionary.translate("Live streaming mode: This is a live video, so, some capabilities of the player are disabled"));
+        }
+      }]);
+
+      return LiveStreamIndicator;
+    }(paella.VideoOverlayButtonPlugin)
+  );
+});
+
+(function () {
+  var MpegDashVideo =
+  /*#__PURE__*/
+  function (_paella$Html5Video2) {
+    _inherits(MpegDashVideo, _paella$Html5Video2);
+
+    function MpegDashVideo(id, stream, left, top, width, height) {
+      var _this171;
+
+      _classCallCheck(this, MpegDashVideo);
+
+      _this171 = _possibleConstructorReturn(this, _getPrototypeOf(MpegDashVideo).call(this, id, stream, left, top, width, height, 'mpd'));
+      _this171._posterFrame = null;
+      _this171._player = null;
+      return _this171;
+    }
+
+    _createClass(MpegDashVideo, [{
+      key: "_loadDeps",
+      value: function _loadDeps() {
+        return new Promise(function (resolve, reject) {
+          if (!window.$paella_mpd) {
+            require([paella.baseUrl + 'resources/deps/dash.all.js'], function () {
+              window.$paella_mpd = true;
+              resolve(window.$paella_mpd);
+            });
+          } else {
+            resolve(window.$paella_mpd);
+          }
+        });
+      }
+    }, {
+      key: "_getQualityObject",
+      value: function _getQualityObject(item, index, bitrates) {
+        var total = bitrates.length;
+        var percent = Math.round(index * 100 / total);
+        var label = index == 0 ? "min" : index == total - 1 ? "max" : percent + "%";
+        return {
+          index: index,
+          res: {
+            w: null,
+            h: null
+          },
+          bitrate: item.bitrate,
+          src: null,
+          toString: function toString() {
+            return percent;
+          },
+          shortLabel: function shortLabel() {
+            return label;
+          },
+          compare: function compare(q2) {
+            return this.bitrate - q2.bitrate;
+          }
+        };
+      }
+    }, {
+      key: "webGlDidLoad",
+      value: function webGlDidLoad() {
+        // Register a new video loader in the webgl engine, to enable the
+        // hls compatibility in webgl canvas
+        bg.utils.HTTPResourceProvider.AddVideoLoader('mpd', function (url, onSuccess, onFail) {
+          var video = document.createElement("video");
+          s_preventVideoDump.push(video); // this.setupHls(video,url)
+          // 	.then(() => onSuccess(video))
+          // 	.catch(() => onFail());
+        });
+        return Promise.resolve();
+      }
+    }, {
+      key: "loadVideoStream",
+      value: function loadVideoStream(canvasInstance, stream) {
+        var _this172 = this;
+
+        var This = this;
+        return canvasInstance.loadVideo(this, stream, function (videoElem) {
+          return new Promise(function (resolve, reject) {
+            _this172._loadDeps().then(function () {
+              var player = dashjs.MediaPlayer().create();
+              player.initialize(videoElem, stream.src, true);
+              player.getDebug().setLogToBrowserConsole(false);
+              _this172._player = player;
+              player.on(dashjs.MediaPlayer.events.STREAM_INITIALIZED, function (a, b) {
+                var bitrates = player.getBitrateInfoListFor("video");
+
+                This._deferredAction(function () {
+                  if (!This._firstPlay) {
+                    This._player.pause();
+
+                    This._firstPlay = true;
+                  }
+
+                  resolve();
+                });
+              });
+            });
+          });
+        });
+      } // load() {
+      // 	let This = this;
+      // 	return new Promise((resolve,reject) => {
+      // 		var source = this._stream.sources.mpd;
+      // 		if (source && source.length>0) {
+      // 			source = source[0];
+      // 			this._loadDeps()
+      // 				.then(function() {
+      // 					var context = dashContext;
+      // 					var player = dashjs.MediaPlayer().create();
+      // 					var dashContext = context;
+      // 					player.initialize(This.video,source.src,true);
+      // 					player.getDebug().setLogToBrowserConsole(false);
+      // 					This._player = player;
+      // 					player.on(dashjs.MediaPlayer.events.STREAM_INITIALIZED,function(a,b) {
+      // 						var bitrates = player.getBitrateInfoListFor("video");
+      // 						This._deferredAction(function() {
+      // 							if (!This._firstPlay) {
+      // 								This._player.pause();
+      // 								This._firstPlay = true;	
+      // 							}
+      // 							resolve();
+      // 						});
+      // 					});
+      // 				});
+      // 		}
+      // 		else {
+      // 			reject(new Error("Invalid source"));
+      // 		}
+      // 	});
+      // }
+
+    }, {
+      key: "supportAutoplay",
+      value: function supportAutoplay() {
+        return true;
+      }
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        var _this173 = this;
+
+        return new Promise(function (resolve) {
+          _this173._deferredAction(function () {
+            if (!_this173._qualities) {
+              _this173._qualities = [];
+
+              _this173._player.getBitrateInfoListFor("video").sort(function (a, b) {
+                return a.bitrate - b.bitrate;
+              }).forEach(function (item, index, bitrates) {
+                _this173._qualities.push(_this173._getQualityObject(item, index, bitrates));
+              });
+
+              _this173.autoQualityIndex = _this173._qualities.length;
+
+              _this173._qualities.push({
+                index: _this173.autoQualityIndex,
+                res: {
+                  w: null,
+                  h: null
+                },
+                bitrate: -1,
+                src: null,
+                toString: function toString() {
+                  return "auto";
+                },
+                shortLabel: function shortLabel() {
+                  return "auto";
+                },
+                compare: function compare(q2) {
+                  return this.bitrate - q2.bitrate;
+                }
+              });
+            }
+
+            resolve(_this173._qualities);
+          });
+        });
+      }
+    }, {
+      key: "setQuality",
+      value: function setQuality(index) {
+        var _this174 = this;
+
+        return new Promise(function (resolve, reject) {
+          var currentQuality = _this174._player.getQualityFor("video");
+
+          if (index == _this174.autoQualityIndex) {
+            _this174._player.setAutoSwitchQuality(true);
+
+            resolve();
+          } else if (index != currentQuality) {
+            _this174._player.setAutoSwitchQuality(false);
+
+            _this174._player.off(dashjs.MediaPlayer.events.METRIC_CHANGED);
+
+            _this174._player.on(dashjs.MediaPlayer.events.METRIC_CHANGED, function (a, b) {
+              if (a.type == "metricchanged") {
+                if (currentQuality != _this174._player.getQualityFor("video")) {
+                  currentQuality = _this174._player.getQualityFor("video");
+                  resolve();
+                }
+              }
+            });
+
+            _this174._player.setQualityFor("video", index);
+          } else {
+            resolve();
+          }
+        });
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        var _this175 = this;
+
+        return new Promise(function (resolve, reject) {
+          if (_this175._player.getAutoSwitchQuality()) {
+            // auto quality
+            resolve({
+              index: _this175.autoQualityIndex,
+              res: {
+                w: null,
+                h: null
+              },
+              bitrate: -1,
+              src: null,
+              toString: function toString() {
+                return "auto";
+              },
+              shortLabel: function shortLabel() {
+                return "auto";
+              },
+              compare: function compare(q2) {
+                return this.bitrate - q2.bitrate;
+              }
+            });
+          } else {
+            var index = _this175._player.getQualityFor("video");
+
+            resolve(_this175._getQualityObject(_this175._qualities[index], index, _this175._player.getBitrateInfoListFor("video")));
+          }
+        });
+      }
+    }, {
+      key: "unFreeze",
+      value: function unFreeze() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "freeze",
+      value: function freeze() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        this._callUnloadEvent();
+
+        return paella_DeferredNotImplemented();
+      }
+    }]);
+
+    return MpegDashVideo;
+  }(paella.Html5Video);
+
+  paella.MpegDashVideo = MpegDashVideo;
+
+  var MpegDashVideoFactory =
+  /*#__PURE__*/
+  function (_paella$VideoFactory4) {
+    _inherits(MpegDashVideoFactory, _paella$VideoFactory4);
+
+    function MpegDashVideoFactory() {
+      _classCallCheck(this, MpegDashVideoFactory);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(MpegDashVideoFactory).apply(this, arguments));
+    }
+
+    _createClass(MpegDashVideoFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        try {
+          if (base.userAgent.system.iOS) {
+            return false;
+          }
+
+          for (var key in streamData.sources) {
+            if (key == 'mpd') return true;
+          }
+        } catch (e) {}
+
+        return false;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        ++paella.videoFactories.Html5VideoFactory.s_instances;
+        return new paella.MpegDashVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+      }
+    }]);
+
+    return MpegDashVideoFactory;
+  }(paella.VideoFactory);
+
+  paella.videoFactories.MpegDashVideoFactory = MpegDashVideoFactory;
+})();
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin11) {
+      _inherits(MultipleQualitiesPlugin, _paella$ButtonPlugin11);
+
+      function MultipleQualitiesPlugin() {
+        _classCallCheck(this, MultipleQualitiesPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(MultipleQualitiesPlugin).apply(this, arguments));
+      }
+
+      _createClass(MultipleQualitiesPlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "showMultipleQualitiesPlugin";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-screen';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 2030;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.multipleQualitiesPlugin";
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Change video quality");
+        }
+      }, {
+        key: "closeOnMouseOut",
+        value: function closeOnMouseOut() {
+          return true;
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var _this176 = this;
+
+          this._available = [];
+          paella.player.videoContainer.getQualities().then(function (q) {
+            _this176._available = q;
+            onSuccess(q.length > 1);
+          });
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var _this177 = this;
+
+          this.setQualityLabel();
+          paella.events.bind(paella.events.qualityChanged, function (event) {
+            return _this177.setQualityLabel();
+          });
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var _this178 = this;
+
+          this._available.forEach(function (q) {
+            var title = q.shortLabel();
+            domElement.appendChild(_this178.getItemButton(q));
+          });
+        }
+      }, {
+        key: "getItemButton",
+        value: function getItemButton(quality) {
+          var _this179 = this;
+
+          var elem = document.createElement('div');
+          var This = this;
+          paella.player.videoContainer.getCurrentQuality().then(function (currentIndex, currentData) {
+            var label = quality.shortLabel();
+            elem.className = _this179.getButtonItemClass(label, quality.index == currentIndex);
+            elem.id = label;
+            elem.innerText = label;
+            elem.data = quality;
+            $(elem).click(function (event) {
+              $('.multipleQualityItem').removeClass('selected');
+              $('.multipleQualityItem.' + this.data.toString()).addClass('selected');
+              paella.player.videoContainer.setQuality(this.data.index).then(function () {
+                paella.player.controls.hidePopUp(This.getName());
+                This.setQualityLabel();
+              });
+            });
+          });
+          return elem;
+        }
+      }, {
+        key: "setQualityLabel",
+        value: function setQualityLabel() {
+          var _this180 = this;
+
+          paella.player.videoContainer.getCurrentQuality().then(function (q) {
+            _this180.setText(q.shortLabel());
+          });
+        }
+      }, {
+        key: "getButtonItemClass",
+        value: function getButtonItemClass(profileName, selected) {
+          return 'multipleQualityItem ' + profileName + (selected ? ' selected' : '');
+        }
+      }]);
+
+      return MultipleQualitiesPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin12) {
+      _inherits(PIPModePlugin, _paella$ButtonPlugin12);
+
+      function PIPModePlugin() {
+        _classCallCheck(this, PIPModePlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(PIPModePlugin).apply(this, arguments));
+      }
+
+      _createClass(PIPModePlugin, [{
+        key: "getIndex",
+        value: function getIndex() {
+          return 551;
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "PIPModeButton";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-pip';
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.pipModePlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var mainVideo = paella.player.videoContainer.masterVideo();
+          var video = mainVideo.video; // PIP is only available with single stream videos
+
+          if (paella.player.videoContainer.streamProvider.videoStreams.length != 1) {
+            onSuccess(false);
+          } else if (video && video.webkitSetPresentationMode) {
+            onSuccess(true);
+          } else if (video && 'pictureInPictureEnabled' in document) {
+            onSuccess(true);
+          } else {
+            onSuccess(false);
+          }
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Set picture-in-picture mode.");
+        }
+      }, {
+        key: "setup",
+        value: function setup() {}
+      }, {
+        key: "action",
+        value: function action(button) {
+          var video = paella.player.videoContainer.masterVideo().video;
+
+          if (video.webkitSetPresentationMode) {
+            if (video.webkitPresentationMode == "picture-in-picture") {
+              video.webkitSetPresentationMode("inline");
+            } else {
+              video.webkitSetPresentationMode("picture-in-picture");
+            }
+          } else if ('pictureInPictureEnabled' in document) {
+            if (video !== document.pictureInPictureElement) {
+              video.requestPictureInPicture();
+            } else {
+              document.exitPictureInPicture();
+            }
+          }
+        }
+      }]);
+
+      return PIPModePlugin;
+    }(paella.ButtonPlugin)
+  );
+}); //paella.plugins.PlayPauseButtonPlugin = Class.create(paella.ButtonPlugin, {
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin13) {
+      _inherits(PlayPauseButtonPlugin, _paella$ButtonPlugin13);
+
+      function PlayPauseButtonPlugin() {
+        var _this181;
+
+        _classCallCheck(this, PlayPauseButtonPlugin);
+
+        _this181 = _possibleConstructorReturn(this, _getPrototypeOf(PlayPauseButtonPlugin).call(this));
+        _this181.playIconClass = 'icon-play';
+        _this181.pauseIconClass = 'icon-pause';
+        _this181.playSubclass = 'playButton';
+        _this181.pauseSubclass = 'pauseButton';
+        return _this181;
+      }
+
+      _createClass(PlayPauseButtonPlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'left';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return this.playSubclass;
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return this.playIconClass;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.playPauseButtonPlugin";
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Play");
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 110;
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          onSuccess(true);
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var _this182 = this;
+
+          if (paella.player.playing()) {
+            this.changeIconClass(this.playIconClass);
+          }
+
+          paella.events.bind(paella.events.play, function (event) {
+            _this182.changeIconClass(_this182.pauseIconClass);
+
+            _this182.changeSubclass(_this182.pauseSubclass);
+
+            _this182.setToolTip(paella.dictionary.translate("Pause"));
+          });
+          paella.events.bind(paella.events.pause, function (event) {
+            _this182.changeIconClass(_this182.playIconClass);
+
+            _this182.changeSubclass(_this182.playSubclass);
+
+            _this182.setToolTip(paella.dictionary.translate("Play"));
+          });
+          paella.events.bind(paella.events.ended, function (event) {
+            _this182.changeIconClass(_this182.playIconClass);
+
+            _this182.changeSubclass(_this182.playSubclass);
+
+            _this182.setToolTip(paella.dictionary.translate("Play"));
+          });
+        }
+      }, {
+        key: "action",
+        value: function action(button) {
+          paella.player.videoContainer.paused().then(function (paused) {
+            if (paused) {
+              paella.player.play();
+            } else {
+              paella.player.pause();
+            }
+          });
+        }
+      }]);
+
+      return PlayPauseButtonPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl9) {
+      _inherits(PlayButtonOnScreen, _paella$EventDrivenPl9);
+
+      function PlayButtonOnScreen() {
+        var _this183;
+
+        _classCallCheck(this, PlayButtonOnScreen);
+
+        _this183 = _possibleConstructorReturn(this, _getPrototypeOf(PlayButtonOnScreen).call(this));
+        _this183.containerId = 'paella_plugin_PlayButtonOnScreen';
+        _this183.container = null;
+        _this183.enabled = true;
+        _this183.isPlaying = false;
+        _this183.showIcon = true;
+        _this183.firstPlay = false;
+        return _this183;
+      }
+
+      _createClass(PlayButtonOnScreen, [{
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var _this184 = this;
+
+          this.showOnEnd = true;
+          paella.data.read('relatedVideos', {
+            id: paella.player.videoIdentifier
+          }, function (data) {
+            _this184.showOnEnd = !Array.isArray(data) || data.length == 0;
+          });
+          onSuccess(!paella.player.isLiveStream() || base.userAgent.system.Android || base.userAgent.system.iOS || !paella.player.videoContainer.supportAutoplay());
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 1010;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.playButtonOnScreenPlugin";
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var _this185 = this;
+
+          this.container = paella.LazyThumbnailContainer.GetIconElement();
+          paella.player.videoContainer.domElement.appendChild(this.container);
+          $(this.container).click(function () {
+            return _this185.onPlayButtonClick();
+          });
+        }
+      }, {
+        key: "getEvents",
+        value: function getEvents() {
+          return [paella.events.endVideo, paella.events.play, paella.events.pause, paella.events.showEditor, paella.events.hideEditor];
+        }
+      }, {
+        key: "onEvent",
+        value: function onEvent(eventType, params) {
+          switch (eventType) {
+            case paella.events.endVideo:
+              this.endVideo();
+              break;
+
+            case paella.events.play:
+              this.play();
+              break;
+
+            case paella.events.pause:
+              this.pause();
+              break;
+
+            case paella.events.showEditor:
+              this.showEditor();
+              break;
+
+            case paella.events.hideEditor:
+              this.hideEditor();
+              break;
+          }
+        }
+      }, {
+        key: "onPlayButtonClick",
+        value: function onPlayButtonClick() {
+          this.firstPlay = true;
+          this.checkStatus();
+        }
+      }, {
+        key: "endVideo",
+        value: function endVideo() {
+          this.isPlaying = false;
+          this.showIcon = this.showOnEnd;
+          this.checkStatus();
+        }
+      }, {
+        key: "play",
+        value: function play() {
+          this.isPlaying = true;
+          this.showIcon = false;
+          this.checkStatus();
+        }
+      }, {
+        key: "pause",
+        value: function pause() {
+          this.isPlaying = false;
+          this.showIcon = true;
+          this.checkStatus();
+        }
+      }, {
+        key: "showEditor",
+        value: function showEditor() {
+          this.enabled = false;
+          this.checkStatus();
+        }
+      }, {
+        key: "hideEditor",
+        value: function hideEditor() {
+          this.enabled = true;
+          this.checkStatus();
+        }
+      }, {
+        key: "checkStatus",
+        value: function checkStatus() {
+          if (this.enabled && this.isPlaying || !this.enabled || !this.showIcon) {
+            $(this.container).hide();
+          } // Only show play button if none of the video players require mouse events
+          else if (!paella.player.videoContainer.streamProvider.videoPlayers.every(function (p) {
+              return p.canvasData.mouseEventsSupport;
+            })) {
+              $(this.container).show();
+            }
+        }
+      }]);
+
+      return PlayButtonOnScreen;
+    }(paella.EventDrivenPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin14) {
+      _inherits(PlaybackRate, _paella$ButtonPlugin14);
+
+      function PlaybackRate() {
+        _classCallCheck(this, PlaybackRate);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(PlaybackRate).apply(this, arguments));
+      }
+
+      _createClass(PlaybackRate, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'left';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "showPlaybackRateButton";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-screen';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 140;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.playbackRatePlugin";
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Set playback rate");
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this.buttonItems = null;
+          this.buttons = [];
+          this.selected_button = null;
+          this.defaultRate = null;
+          this._domElement = null;
+          this.available_rates = null;
+          var enabled = !base.userAgent.browser.IsMobileVersion && paella.player.videoContainer.masterVideo() instanceof paella.Html5Video;
+          onSuccess(enabled && !paella.player.videoContainer.streamProvider.isLiveStreaming);
+        }
+      }, {
+        key: "closeOnMouseOut",
+        value: function closeOnMouseOut() {
+          return true;
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          this.defaultRate = 1.0;
+          this.available_rates = this.config.availableRates || [0.75, 1, 1.25, 1.5];
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var _this186 = this;
+
+          this._domElement = domElement;
+          this.buttonItems = {};
+          this.available_rates.forEach(function (rate) {
+            domElement.appendChild(_this186.getItemButton(rate + "x", rate));
+          });
+        }
+      }, {
+        key: "getItemButton",
+        value: function getItemButton(label, rate) {
+          var elem = document.createElement('div');
+
+          if (rate == 1.0) {
+            elem.className = this.getButtonItemClass(label, true);
+          } else {
+            elem.className = this.getButtonItemClass(label, false);
+          }
+
+          elem.id = label + '_button';
+          elem.innerText = label;
+          elem.data = {
+            label: label,
+            rate: rate,
+            plugin: this
+          };
+          $(elem).click(function (event) {
+            this.data.plugin.onItemClick(this, this.data.label, this.data.rate);
+          });
+          return elem;
+        }
+      }, {
+        key: "onItemClick",
+        value: function onItemClick(button, label, rate) {
+          var self = this;
+          paella.player.videoContainer.setPlaybackRate(rate);
+          this.setText(label);
+          paella.player.controls.hidePopUp(this.getName());
+          var arr = self._domElement.children;
+
+          for (var i = 0; i < arr.length; i++) {
+            arr[i].className = self.getButtonItemClass(i, false);
+          }
+
+          button.className = self.getButtonItemClass(i, true);
+        }
+      }, {
+        key: "getText",
+        value: function getText() {
+          return "1x";
+        }
+      }, {
+        key: "getProfileItemButton",
+        value: function getProfileItemButton(profile, profileData) {
+          var elem = document.createElement('div');
+          elem.className = this.getButtonItemClass(profile, false);
+          elem.id = profile + '_button';
+          elem.data = {
+            profile: profile,
+            profileData: profileData,
+            plugin: this
+          };
+          $(elem).click(function (event) {
+            this.data.plugin.onItemClick(this, this.data.profile, this.data.profileData);
+          });
+          return elem;
+        }
+      }, {
+        key: "getButtonItemClass",
+        value: function getButtonItemClass(profileName, selected) {
+          return 'playbackRateItem ' + profileName + (selected ? ' selected' : '');
+        }
+      }]);
+
+      return PlaybackRate;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin15) {
+      _inherits(RatePlugin, _paella$ButtonPlugin15);
+
+      function RatePlugin() {
+        _classCallCheck(this, RatePlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(RatePlugin).apply(this, arguments));
+      }
+
+      _createClass(RatePlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "rateButtonPlugin";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-star';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 540;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.ratePlugin";
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Rate this video");
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var _this187 = this;
+
+          this.buttonItems = null;
+          this.buttons = [];
+          this.selected_button = null;
+          this.score = 0;
+          this.count = 0;
+          this.myScore = 0;
+          this.canVote = false;
+          this.scoreContainer = {
+            header: null,
+            rateButtons: null
+          };
+          paella.data.read('rate', {
+            id: paella.initDelegate.getId()
+          }, function (data, status) {
+            if (data && _typeof(data) == 'object') {
+              _this187.score = Number(data.mean).toFixed(1);
+              _this187.count = data.count;
+              _this187.myScore = data.myScore;
+              _this187.canVote = data.canVote;
+            }
+
+            onSuccess(status);
+          });
+        }
+      }, {
+        key: "setup",
+        value: function setup() {}
+      }, {
+        key: "setScore",
+        value: function setScore(s) {
+          this.score = s;
+          this.updateScore();
+        }
+      }, {
+        key: "closeOnMouseOut",
+        value: function closeOnMouseOut() {
+          return true;
+        }
+      }, {
+        key: "updateHeader",
+        value: function updateHeader() {
+          var score = base.dictionary.translate("Not rated");
+
+          if (this.count > 0) {
+            score = '<i class="glyphicon glyphicon-star"></i>';
+            score += " ".concat(this.score, " ").concat(this.count, " ").concat(base.dictionary.translate('votes'));
+          }
+
+          this.scoreContainer.header.innerHTML = "\n\t\t\t<div>\n\t\t\t\t<h4>".concat(base.dictionary.translate('Video score'), ":</h4>\n\t\t\t\t<h5>\n\t\t\t\t\t").concat(score, "\n\t\t\t\t</h5>\n\t\t\t\t</h4>\n\t\t\t\t<h4>").concat(base.dictionary.translate('Vote:'), "</h4>\n\t\t\t</div>\n\t\t\t");
+        }
+      }, {
+        key: "updateRateButtons",
+        value: function updateRateButtons() {
+          this.scoreContainer.rateButtons.className = "rateButtons";
+          this.buttons = [];
+
+          if (this.canVote) {
+            this.scoreContainer.rateButtons.innerText = "";
+
+            for (var i = 0; i < 5; ++i) {
+              var btn = this.getStarButton(i + 1);
+              this.buttons.push(btn);
+              this.scoreContainer.rateButtons.appendChild(btn);
+            }
+          } else {
+            this.scoreContainer.rateButtons.innerHTML = "<h5>".concat(base.dictionary.translate('Login to vote'), "</h5>");
+          }
+
+          this.updateVote();
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var This = this;
+          This._domElement = domElement;
+          var header = document.createElement('div');
+          domElement.appendChild(header);
+          header.className = "rateContainerHeader";
+          this.scoreContainer.header = header;
+          this.updateHeader();
+          var rateButtons = document.createElement('div');
+          this.scoreContainer.rateButtons = rateButtons;
+          domElement.appendChild(rateButtons);
+          this.updateRateButtons();
+        }
+      }, {
+        key: "getStarButton",
+        value: function getStarButton(score) {
+          var This = this;
+          var elem = document.createElement('i');
+          elem.data = {
+            score: score,
+            active: false
+          };
+          elem.className = "starButton glyphicon glyphicon-star-empty";
+          $(elem).click(function (event) {
+            This.vote(this.data.score);
+          });
+          return elem;
+        }
+      }, {
+        key: "vote",
+        value: function vote(score) {
+          var _this188 = this;
+
+          this.myScore = score;
+          var data = {
+            mean: this.score,
+            count: this.count,
+            myScore: score,
+            canVote: this.canVote
+          };
+          paella.data.write('rate', {
+            id: paella.initDelegate.getId()
+          }, data, function (result) {
+            paella.data.read('rate', {
+              id: paella.initDelegate.getId()
+            }, function (data, status) {
+              if (data && _typeof(data) == 'object') {
+                _this188.score = Number(data.mean).toFixed(1);
+                _this188.count = data.count;
+                _this188.myScore = data.myScore;
+                _this188.canVote = data.canVote;
+              }
+
+              _this188.updateHeader();
+
+              _this188.updateRateButtons();
+            });
+          });
+        }
+      }, {
+        key: "updateVote",
+        value: function updateVote() {
+          var _this189 = this;
+
+          this.buttons.forEach(function (item, index) {
+            item.className = index < _this189.myScore ? "starButton glyphicon glyphicon-star" : "starButton glyphicon glyphicon-star-empty";
+          });
+        }
+      }]);
+
+      return RatePlugin;
+    }(paella.ButtonPlugin)
+  );
+}); // Change this data delegate to read the related videos form an external source
+// Default behaviour is to get the related videos from the data.json file
+
+paella.addDataDelegate("relatedVideos", function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$DataDelegate2) {
+      _inherits(RelatedVideoDataDelegate, _paella$DataDelegate2);
+
+      function RelatedVideoDataDelegate() {
+        _classCallCheck(this, RelatedVideoDataDelegate);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(RelatedVideoDataDelegate).apply(this, arguments));
+      }
+
+      _createClass(RelatedVideoDataDelegate, [{
+        key: "read",
+        value: function read(context, params, onSuccess) {
+          var videoMetadata = paella.player.videoLoader.getMetadata();
+
+          if (videoMetadata.related) {
+            onSuccess(videoMetadata.related);
+          }
+        }
+      }]);
+
+      return RelatedVideoDataDelegate;
+    }(paella.DataDelegate)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl10) {
+      _inherits(RelatedVideoPlugin, _paella$EventDrivenPl10);
+
+      function RelatedVideoPlugin() {
+        _classCallCheck(this, RelatedVideoPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(RelatedVideoPlugin).apply(this, arguments));
+      }
+
+      _createClass(RelatedVideoPlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.relatedVideosPlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var _this190 = this;
+
+          paella.data.read('relatedVideos', {
+            id: paella.player.videoIdentifier
+          }, function (data) {
+            _this190._relatedVideos = data;
+            onSuccess(Array.isArray(_this190._relatedVideos) && _this190._relatedVideos.length > 0);
+          });
+        }
+      }, {
+        key: "setup",
+        value: function setup() {}
+      }, {
+        key: "getEvents",
+        value: function getEvents() {
+          return [paella.events.ended, paella.events.timeUpdate, paella.events.play, paella.events.seekTo, paella.events.seekToTime];
+        }
+      }, {
+        key: "onEvent",
+        value: function onEvent(eventType, params) {
+          if (eventType == paella.events.ended) {
+            this.showRelatedVideos();
+          } else {
+            this.hideRelatedVideos();
+          }
+        }
+      }, {
+        key: "showRelatedVideos",
+        value: function showRelatedVideos() {
+          this.hideRelatedVideos();
+          var container = document.createElement('div');
+          container.className = "related-video-container";
+
+          function getRelatedVideoLink(data, className) {
+            var linkContainer = document.createElement("a");
+            linkContainer.className = "related-video-link " + className;
+            linkContainer.innerHTML = "\n                <img src=\"".concat(data.thumb, "\" alt=\"\">\n                <p>").concat(data.title, "</p>\n                ");
+            linkContainer.href = data.url;
+            return linkContainer;
+          }
+
+          this._messageContainer = paella.player.videoContainer.overlayContainer.addElement(container, {
+            left: 0,
+            right: 0,
+            width: 1280,
+            height: 720
+          });
+
+          switch (this._relatedVideos.length) {
+            case 1:
+              container.appendChild(getRelatedVideoLink(this._relatedVideos[0], 'related-video-single'));
+              break;
+
+            case 2:
+            default:
+              container.appendChild(getRelatedVideoLink(this._relatedVideos[0], 'related-video-dual-1'));
+              container.appendChild(getRelatedVideoLink(this._relatedVideos[1], 'related-video-dual-2'));
+              break;
+          }
+
+          paella.player.videoContainer.attenuationEnabled = true;
+        }
+      }, {
+        key: "hideRelatedVideos",
+        value: function hideRelatedVideos() {
+          if (this._messageContainer) {
+            paella.player.videoContainer.overlayContainer.removeElement(this._messageContainer);
+            this._messageContainer = null;
+            paella.player.videoContainer.attenuationEnabled = false;
+          }
+        }
+      }]);
+
+      return RelatedVideoPlugin;
+    }(paella.EventDrivenPlugin)
+  );
+});
+
+(function () {
+  var RTMPVideo =
+  /*#__PURE__*/
+  function (_paella$VideoElementB5) {
+    _inherits(RTMPVideo, _paella$VideoElementB5);
+
+    function RTMPVideo(id, stream, left, top, width, height) {
+      var _this191;
+
+      _classCallCheck(this, RTMPVideo);
+
+      _this191 = _possibleConstructorReturn(this, _getPrototypeOf(RTMPVideo).call(this, id, stream, 'div', left, top, width, height));
+      _this191._posterFrame = null;
+      _this191._currentQuality = null;
+      _this191._duration = 0;
+      _this191._paused = true;
+      _this191._streamName = null;
+      _this191._flashId = null;
+      _this191._swfContainer = null;
+      _this191._flashVideo = null;
+      _this191._volume = 1;
+      _this191._flashId = id + 'Movie';
+      _this191._streamName = 'rtmp';
+
+      var This = _assertThisInitialized(_this191);
+
+      _this191._stream.sources.rtmp.sort(function (a, b) {
+        return a.res.h - b.res.h;
+      });
+
+      var processEvent = function processEvent(eventName, params) {
+        if (eventName != "loadedmetadata" && eventName != "pause" && !This._isReady) {
+          This._isReady = true;
+          This._duration = params.duration;
+          $(This.swfContainer).trigger("paella:flashvideoready");
+        }
+
+        if (eventName == "progress") {
+          try {
+            This.flashVideo.setVolume(This._volume);
+          } catch (e) {}
+
+          base.log.debug("Flash video event: " + eventName + ", progress: " + This.flashVideo.currentProgress());
+        } else if (eventName == "ended") {
+          base.log.debug("Flash video event: " + eventName);
+          paella.events.trigger(paella.events.pause);
+          paella.player.controls.showControls();
+        } else {
+          base.log.debug("Flash video event: " + eventName);
+        }
+      };
+
+      var eventReceived = function eventReceived(eventName, params) {
+        params = params.split(",");
+        var processedParams = {};
+
+        for (var i = 0; i < params.length; ++i) {
+          var splitted = params[i].split(":");
+          var key = splitted[0];
+          var value = splitted[1];
+
+          if (value == "NaN") {
+            value = NaN;
+          } else if (/^true$/i.test(value)) {
+            value = true;
+          } else if (/^false$/i.test(value)) {
+            value = false;
+          } else if (!isNaN(parseFloat(value))) {
+            value = parseFloat(value);
+          }
+
+          processedParams[key] = value;
+        }
+
+        processEvent(eventName, processedParams);
+      };
+
+      paella.events.bind(paella.events.flashVideoEvent, function (event, params) {
+        if (This.flashId == params.source) {
+          eventReceived(params.eventName, params.values);
+        }
+      });
+      return _this191;
+    }
+
+    _createClass(RTMPVideo, [{
+      key: "_createSwfObject",
+      value: function _createSwfObject(swfFile, flashVars) {
+        var id = this.identifier;
+        var parameters = {
+          wmode: 'transparent'
+        };
+        var domElement = document.createElement('div');
+        this.domElement.appendChild(domElement);
+        domElement.id = id + "Movie";
+        this._swfContainer = domElement;
+
+        if (swfobject.hasFlashPlayerVersion("9.0.0")) {
+          swfobject.embedSWF(swfFile, domElement.id, "100%", "100%", "9.0.0", "", flashVars, parameters, null, function callbackFn(e) {
+            if (e.success == false) {
+              var message = document.createElement('div');
+              var header = document.createElement('h3');
+              header.innerText = base.dictionary.translate("Flash player problem");
+              var text = document.createElement('div');
+              text.innerHTML = base.dictionary.translate("A problem occurred trying to load flash player.") + "<br>" + base.dictionary.translate("Please go to {0} and install it.").replace("{0}", "<a style='color: #800000; text-decoration: underline;' href='http://www.adobe.com/go/getflash'>http://www.adobe.com/go/getflash</a>") + '<br>' + base.dictionary.translate("If the problem presist, contact us.");
+              var link = document.createElement('a');
+              link.setAttribute("href", "http://www.adobe.com/go/getflash");
+              link.innerHTML = '<img style="margin:5px;" src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtener Adobe Flash Player" />';
+              message.appendChild(header);
+              message.appendChild(text);
+              message.appendChild(link);
+              paella.messageBox.showError(message.innerHTML);
+            }
+          });
+        } else {
+          var message = document.createElement('div');
+          var header = document.createElement('h3');
+          header.innerText = base.dictionary.translate("Flash player needed");
+          var text = document.createElement('div');
+          text.innerHTML = base.dictionary.translate("You need at least Flash player 9 installed.") + "<br>" + base.dictionary.translate("Please go to {0} and install it.").replace("{0}", "<a style='color: #800000; text-decoration: underline;' href='http://www.adobe.com/go/getflash'>http://www.adobe.com/go/getflash</a>");
+          var link = document.createElement('a');
+          link.setAttribute("href", "http://www.adobe.com/go/getflash");
+          link.innerHTML = '<img style="margin:5px;" src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtener Adobe Flash Player" />';
+          message.appendChild(header);
+          message.appendChild(text);
+          message.appendChild(link);
+          paella.messageBox.showError(message.innerHTML);
+        }
+
+        var flashObj = $('#' + domElement.id)[0];
+        return flashObj;
+      }
+    }, {
+      key: "_deferredAction",
+      value: function _deferredAction(action) {
+        var _this192 = this;
+
+        return new Promise(function (resolve, reject) {
+          if (_this192.ready) {
+            resolve(action());
+          } else {
+            $(_this192.swfContainer).bind('paella:flashvideoready', function () {
+              _this192._ready = true;
+              resolve(action());
+            });
+          }
+        });
+      }
+    }, {
+      key: "_getQualityObject",
+      value: function _getQualityObject(index, s) {
+        return {
+          index: index,
+          res: s.res,
+          src: s.src,
+          toString: function toString() {
+            return this.res.w + "x" + this.res.h;
+          },
+          shortLabel: function shortLabel() {
+            return this.res.h + "p";
+          },
+          compare: function compare(q2) {
+            return this.res.w * this.res.h - q2.res.w * q2.res.h;
+          }
+        };
+      } // Initialization functions
+
+    }, {
+      key: "getVideoData",
+      value: function getVideoData() {
+        var _this193 = this;
+
+        var FlashVideoPlugin = this;
+        return new Promise(function (resolve, reject) {
+          _this193._deferredAction(function () {
+            var videoData = {
+              duration: FlashVideoPlugin.flashVideo.duration(),
+              currentTime: FlashVideoPlugin.flashVideo.getCurrentTime(),
+              volume: FlashVideoPlugin.flashVideo.getVolume(),
+              paused: FlashVideoPlugin._paused,
+              ended: FlashVideoPlugin._ended,
+              res: {
+                w: FlashVideoPlugin.flashVideo.getWidth(),
+                h: FlashVideoPlugin.flashVideo.getHeight()
+              }
+            };
+            resolve(videoData);
+          });
+        });
+      }
+    }, {
+      key: "setPosterFrame",
+      value: function setPosterFrame(url) {
+        if (this._posterFrame == null) {
+          this._posterFrame = url;
+          var posterFrame = document.createElement('img');
+          posterFrame.src = url;
+          posterFrame.className = "videoPosterFrameImage";
+          posterFrame.alt = "poster frame";
+          this.domElement.appendChild(posterFrame);
+          this._posterFrameElement = posterFrame;
+        } //	this.video.setAttribute("poster",url);
+
+      }
+    }, {
+      key: "setAutoplay",
+      value: function setAutoplay(auto) {
+        this._autoplay = auto;
+      }
+    }, {
+      key: "load",
+      value: function load() {
+        var This = this;
+        var sources = this._stream.sources.rtmp;
+
+        if (this._currentQuality === null && this._videoQualityStrategy) {
+          this._currentQuality = this._videoQualityStrategy.getQualityIndex(sources);
+        }
+
+        var isValid = function isValid(stream) {
+          return stream.src && _typeof(stream.src) == 'object' && stream.src.server && stream.src.stream;
+        };
+
+        var stream = this._currentQuality < sources.length ? sources[this._currentQuality] : null;
+
+        if (stream) {
+          if (!isValid(stream)) {
+            return paella_DeferredRejected(new Error("Invalid video data"));
+          } else {
+            var subscription = false;
+
+            if (stream.src.requiresSubscription === undefined && paella.player.config.player.rtmpSettings) {
+              subscription = paella.player.config.player.rtmpSettings.requiresSubscription || false;
+            } else if (stream.src.requiresSubscription) {
+              subscription = stream.src.requiresSubscription;
+            }
+
+            var parameters = {};
+            var swfName = 'resources/deps/player_streaming.swf';
+
+            if (this._autoplay) {
+              parameters.autoplay = this._autoplay;
+            }
+
+            if (base.parameters.get('debug') == "true") {
+              parameters.debugMode = true;
+            }
+
+            parameters.playerId = this.flashId;
+            parameters.isLiveStream = stream.isLiveStream !== undefined ? stream.isLiveStream : false;
+            parameters.server = stream.src.server;
+            parameters.stream = stream.src.stream;
+            parameters.subscribe = subscription;
+
+            if (paella.player.config.player.rtmpSettings && paella.player.config.player.rtmpSettings.bufferTime !== undefined) {
+              parameters.bufferTime = paella.player.config.player.rtmpSettings.bufferTime;
+            }
+
+            this._flashVideo = this._createSwfObject(swfName, parameters);
+            $(this.swfContainer).trigger("paella:flashvideoready");
+            return this._deferredAction(function () {
+              return stream;
+            });
+          }
+        } else {
+          return paella_DeferredRejected(new Error("Could not load video: invalid quality stream index"));
+        }
+      }
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        var _this194 = this;
+
+        return new Promise(function (resolve, reject) {
+          setTimeout(function () {
+            var result = [];
+            var sources = _this194._stream.sources.rtmp;
+            var index = -1;
+            sources.forEach(function (s) {
+              index++;
+              result.push(_this194._getQualityObject(index, s));
+            });
+            resolve(result);
+          }, 50);
+        });
+      }
+    }, {
+      key: "setQuality",
+      value: function setQuality(index) {
+        var _this195 = this;
+
+        index = index !== undefined && index !== null ? index : 0;
+        return new Promise(function (resolve, reject) {
+          var paused = _this195._paused;
+          var sources = _this195._stream.sources.rtmp;
+          _this195._currentQuality = index < sources.length ? index : 0;
+          var source = sources[index];
+          _this195._ready = false;
+          _this195._isReady = false;
+
+          _this195.load().then(function () {
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        var _this196 = this;
+
+        return new Promise(function (resolve, reject) {
+          resolve(_this196._getQualityObject(_this196._currentQuality, _this196._stream.sources.rtmp[_this196._currentQuality]));
+        });
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        var This = this;
+        return this._deferredAction(function () {
+          if (This._posterFrameElement) {
+            This._posterFrameElement.parentNode.removeChild(This._posterFrameElement);
+
+            This._posterFrameElement = null;
+          }
+
+          This._paused = false;
+          This.flashVideo.play();
+        });
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        var This = this;
+        return this._deferredAction(function () {
+          This._paused = true;
+          This.flashVideo.pause();
+        });
+      }
+    }, {
+      key: "isPaused",
+      value: function isPaused() {
+        var This = this;
+        return this._deferredAction(function () {
+          return This._paused;
+        });
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        var This = this;
+        return this._deferredAction(function () {
+          return This.flashVideo.duration();
+        });
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        var This = this;
+        return this._deferredAction(function () {
+          var duration = This.flashVideo.duration();
+          This.flashVideo.seekTo(time * 100 / duration);
+        });
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        var This = this;
+        return this._deferredAction(function () {
+          return This.flashVideo.getCurrentTime();
+        });
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(volume) {
+        var This = this;
+        this._volume = volume;
+        return this._deferredAction(function () {
+          This.flashVideo.setVolume(volume);
+        });
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        var This = this;
+        return this._deferredAction(function () {
+          return This.flashVideo.getVolume();
+        });
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        var This = this;
+        return this._deferredAction(function () {
+          This._playbackRate = rate;
+        });
+      }
+    }, {
+      key: "playbackRate",
+      value: function playbackRate() {
+        var This = this;
+        return this._deferredAction(function () {
+          return This._playbackRate;
+        });
+      }
+    }, {
+      key: "goFullScreen",
+      value: function goFullScreen() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "unFreeze",
+      value: function unFreeze() {
+        return this._deferredAction(function () {});
+      }
+    }, {
+      key: "freeze",
+      value: function freeze() {
+        return this._deferredAction(function () {});
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        this._callUnloadEvent();
+
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "getDimensions",
+      value: function getDimensions() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "swfContainer",
+      get: function get() {
+        return this._swfContainer;
+      }
+    }, {
+      key: "flashId",
+      get: function get() {
+        return this._flashId;
+      }
+    }, {
+      key: "flashVideo",
+      get: function get() {
+        return this._flashVideo;
+      }
+    }]);
+
+    return RTMPVideo;
+  }(paella.VideoElementBase);
+
+  paella.RTMPVideo = RTMPVideo;
+
+  var RTMPVideoFactory =
+  /*#__PURE__*/
+  function (_paella$VideoFactory5) {
+    _inherits(RTMPVideoFactory, _paella$VideoFactory5);
+
+    function RTMPVideoFactory() {
+      _classCallCheck(this, RTMPVideoFactory);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(RTMPVideoFactory).apply(this, arguments));
+    }
+
+    _createClass(RTMPVideoFactory, [{
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        try {
+          if (base.userAgent.system.iOS || base.userAgent.system.Android) {
+            return false;
+          }
+
+          for (var key in streamData.sources) {
+            if (key == 'rtmp') return true;
+          }
+        } catch (e) {}
+
+        return false;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        return new paella.RTMPVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+      }
+    }]);
+
+    return RTMPVideoFactory;
+  }(paella.VideoFactory);
+
+  paella.videoFactories.RTMPVideoFactory = RTMPVideoFactory;
+})(); /////////////////////////////////////////////////
+// Caption Search
+/////////////////////////////////////////////////
+
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$SearchService2) {
+      _inherits(CaptionsSearchPlugIn, _paella$SearchService2);
+
+      function CaptionsSearchPlugIn() {
+        _classCallCheck(this, CaptionsSearchPlugIn);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(CaptionsSearchPlugIn).apply(this, arguments));
+      }
+
+      _createClass(CaptionsSearchPlugIn, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.search.captionsSearchPlugin";
+        }
+      }, {
+        key: "search",
+        value: function search(text, next) {
+          paella.captions.search(text, next);
+        }
+      }]);
+
+      return CaptionsSearchPlugIn;
+    }(paella.SearchServicePlugIn)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin16) {
+      _inherits(SearchPlugin, _paella$ButtonPlugin16);
+
+      function SearchPlugin() {
+        _classCallCheck(this, SearchPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(SearchPlugin).apply(this, arguments));
+      }
+
+      _createClass(SearchPlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return 'searchButton';
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-binoculars';
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.searchPlugin";
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Search");
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 510;
+        }
+      }, {
+        key: "closeOnMouseOut",
+        value: function closeOnMouseOut() {
+          return true;
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this._open = false;
+          this._sortDefault = 'time';
+          this._colorSearch = false;
+          this._localImages = null;
+          this._searchTimer = null;
+          this._searchTimerTime = 1500;
+          this._searchBody = null;
+          this._trimming = null;
+          onSuccess(true);
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var self = this;
+          $('.searchButton').click(function (event) {
+            if (self._open) {
+              self._open = false;
+            } else {
+              self._open = true;
+              setTimeout(function () {
+                $("#searchBarInput").focus();
+              }, 0);
+            }
+          }); //GET THE FRAME LIST
+
+          self._localImages = paella.initDelegate.initParams.videoLoader.frameList; //config
+
+          self._colorSearch = self.config.colorSearch || false;
+          self._sortDefault = self.config.sortType || "time";
+          paella.events.bind(paella.events.controlBarWillHide, function (evt) {
+            if (self._open) paella.player.controls.cancelHideBar();
+          });
+          paella.player.videoContainer.trimming().then(function (trimData) {
+            self._trimming = trimData;
+          });
+        }
+      }, {
+        key: "prettyTime",
+        value: function prettyTime(seconds) {
+          // TIME FORMAT
+          var hou = Math.floor(seconds / 3600) % 24;
+          hou = ("00" + hou).slice(hou.toString().length);
+          var min = Math.floor(seconds / 60) % 60;
+          min = ("00" + min).slice(min.toString().length);
+          var sec = Math.floor(seconds % 60);
+          sec = ("00" + sec).slice(sec.toString().length);
+          var timestr = hou + ":" + min + ":" + sec;
+          return timestr;
+        }
+      }, {
+        key: "search",
+        value: function search(text, cb) {
+          paella.searchService.search(text, cb);
+        }
+      }, {
+        key: "getPreviewImage",
+        value: function getPreviewImage(time) {
+          var thisClass = this;
+          var keys = Object.keys(thisClass._localImages);
+          keys.push(time);
+          keys.sort(function (a, b) {
+            return parseInt(a) - parseInt(b);
+          });
+          var n = keys.indexOf(time) - 1;
+          n = n > 0 ? n : 0;
+          var i = keys[n];
+          i = parseInt(i);
+          return thisClass._localImages[i].url;
+        }
+      }, {
+        key: "createLoadingElement",
+        value: function createLoadingElement(parent) {
+          var loadingResults = document.createElement('div');
+          loadingResults.className = "loader";
+          var htmlLoader = "<svg version=\"1.1\" id=\"loader-1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"40px\" height=\"40px\" viewBox=\"0 0 50 50\" style=\"enable-background:new 0 0 50 50;\" xml:space=\"preserve\">" + "<path fill=\"#000\" d=\"M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z\">" + "<animateTransform attributeType=\"xml\"" + "attributeName=\"transform\"" + "type=\"rotate\"" + "from=\"0 25 25\"" + "to=\"360 25 25\"" + "dur=\"0.6s\"" + "repeatCount=\"indefinite\"/>" + "</path>" + "</svg>";
+          loadingResults.innerHTML = htmlLoader;
+          parent.appendChild(loadingResults);
+          var sBodyText = document.createElement('p');
+          sBodyText.className = 'sBodyText';
+          sBodyText.innerText = base.dictionary.translate("Searching") + "...";
+          parent.appendChild(sBodyText);
+        }
+      }, {
+        key: "createNotResultsFound",
+        value: function createNotResultsFound(parent) {
+          var noResults = document.createElement('div');
+          noResults.className = "noResults";
+          noResults.innerText = base.dictionary.translate("Sorry! No results found.");
+          parent.appendChild(noResults);
+        }
+      }, {
+        key: "doSearch",
+        value: function doSearch(txt, searchBody) {
+          var thisClass = this;
+          $(searchBody).empty(); //LOADING CONTAINER
+
+          thisClass.createLoadingElement(searchBody);
+          thisClass.search(txt, function (err, results) {
+            $(searchBody).empty(); //BUILD SEARCH RESULTS
+
+            if (!err) {
+              if (results.length == 0) {
+                // 0 RESULTS FOUND
+                thisClass.createNotResultsFound(searchBody);
+              } else {
+                for (var i = 0; i < results.length; i++) {
+                  // FILL THE BODY CONTAINER WITH RESULTS
+                  if (thisClass._trimming.enabled && results[i].time <= thisClass._trimming.start) {
+                    continue;
+                  } //SEARCH SORT TYPE (TIME oR SCoRE)
+
+
+                  if (thisClass._sortDefault == 'score') {
+                    results.sort(function (a, b) {
+                      return b.score - a.score;
+                    });
+                  }
+
+                  if (thisClass._sortDefault == 'time') {
+                    results.sort(function (a, b) {
+                      return a.time - b.time;
+                    });
+                  }
+
+                  var sBodyInnerContainer = document.createElement('div');
+                  sBodyInnerContainer.className = 'sBodyInnerContainer'; //COLOR
+
+                  if (thisClass._colorSearch) {
+                    if (results[i].score <= 0.3) {
+                      $(sBodyInnerContainer).addClass('redScore');
+                    }
+
+                    if (results[i].score >= 0.7) {
+                      $(sBodyInnerContainer).addClass('greenScore');
+                    }
+                  }
+
+                  var TimePicContainer = document.createElement('div');
+                  TimePicContainer.className = 'TimePicContainer';
+                  var sBodyPicture = document.createElement('img');
+                  sBodyPicture.className = 'sBodyPicture';
+                  sBodyPicture.src = thisClass.getPreviewImage(results[i].time);
+                  var sBodyText = document.createElement('p');
+                  sBodyText.className = 'sBodyText';
+                  var time = thisClass._trimming.enabled ? results[i].time - thisClass._trimming.start : results[i].time;
+                  sBodyText.innerHTML = "<span class='timeSpan'>" + thisClass.prettyTime(time) + "</span>" + paella.AntiXSS.htmlEscape(results[i].content);
+                  TimePicContainer.appendChild(sBodyPicture);
+                  sBodyInnerContainer.appendChild(TimePicContainer);
+                  sBodyInnerContainer.appendChild(sBodyText);
+                  searchBody.appendChild(sBodyInnerContainer); //ADD SECS TO DOM FOR EASY HANDLE
+
+                  sBodyInnerContainer.setAttribute('sec', time); //jQuery Binds for the search
+
+                  $(sBodyInnerContainer).hover(function () {
+                    $(this).css('background-color', '#faa166');
+                  }, function () {
+                    $(this).removeAttr('style');
+                  });
+                  $(sBodyInnerContainer).click(function () {
+                    var sec = $(this).attr("sec");
+                    paella.player.videoContainer.seekToTime(parseInt(sec));
+                    paella.player.play();
+                  });
+                }
+              }
+            }
+          });
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var thisClass = this;
+          var myUrl = null; //SEARCH CONTAINER
+
+          var searchPluginContainer = document.createElement('div');
+          searchPluginContainer.className = 'searchPluginContainer'; //SEARCH BODY
+
+          var searchBody = document.createElement('div');
+          searchBody.className = 'searchBody';
+          searchPluginContainer.appendChild(searchBody);
+          thisClass._searchBody = searchBody; //SEARCH BAR
+
+          var searchBar = document.createElement('div');
+          searchBar.className = 'searchBar';
+          searchPluginContainer.appendChild(searchBar); //INPUT
+
+          var input = document.createElement("input");
+          input.className = "searchBarInput";
+          input.type = "text";
+          input.id = "searchBarInput";
+          input.name = "searchString";
+          input.placeholder = base.dictionary.translate("Search");
+          searchBar.appendChild(input);
+          $(input).change(function () {
+            var text = $(input).val();
+
+            if (thisClass._searchTimer != null) {
+              thisClass._searchTimer.cancel();
+            }
+
+            if (text != "") {
+              thisClass.doSearch(text, searchBody);
+            }
+          });
+          $(input).keyup(function (event) {
+            if (event.keyCode != 13) {
+              //IF no ENTER PRESSED SETUP THE TIMER
+              var text = $(input).val();
+
+              if (thisClass._searchTimer != null) {
+                thisClass._searchTimer.cancel();
+              }
+
+              if (text != "") {
+                thisClass._searchTimer = new base.Timer(function (timer) {
+                  thisClass.doSearch(text, searchBody);
+                }, thisClass._searchTimerTime);
+              } else {
+                $(thisClass._searchBody).empty();
+              }
+            }
+          });
+          $(input).focus(function () {
+            paella.keyManager.enabled = false;
+          });
+          $(input).focusout(function () {
+            paella.keyManager.enabled = true;
+          });
+          domElement.appendChild(searchPluginContainer);
+        }
+      }]);
+
+      return SearchPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$VideoOverlayB3) {
+      _inherits(ShowEditorPlugin, _paella$VideoOverlayB3);
+
+      function ShowEditorPlugin() {
+        _classCallCheck(this, ShowEditorPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(ShowEditorPlugin).apply(this, arguments));
+      }
+
+      _createClass(ShowEditorPlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.showEditorPlugin";
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "showEditorButton";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-pencil';
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 10;
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Enter editor mode");
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          if (this.config.editorUrl) {
+            paella.initDelegate.initParams.accessControl.canWrite().then(function (canWrite) {
+              var enabled = canWrite; // && !base.userAgent.browser.IsMobileVersion && !paella.player.isLiveStream());					
+
+              onSuccess(enabled);
+            });
+          } else {
+            onSuccess(false);
+          }
+        }
+      }, {
+        key: "action",
+        value: function action(button) {
+          var editorUrl = this.config.editorUrl.replace("{id}", paella.player.videoIdentifier);
+          window.location.href = editorUrl;
+        }
+      }]);
+
+      return ShowEditorPlugin;
+    }(paella.VideoOverlayButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin17) {
+      _inherits(SocialPlugin, _paella$ButtonPlugin17);
+
+      function SocialPlugin() {
+        _classCallCheck(this, SocialPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(SocialPlugin).apply(this, arguments));
+      }
+
+      _createClass(SocialPlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "showSocialPluginButton";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-social';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 560;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.socialPlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          onSuccess(true);
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Share this video");
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "closeOnMouseOut",
+        value: function closeOnMouseOut() {
+          return true;
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          this.buttonItems = null;
+          this.socialMedia = null;
+          this.buttons = [];
+          this.selected_button = null;
+
+          if (base.dictionary.currentLanguage() == 'es') {
+            var esDict = {
+              'Custom size:': 'Tamaño personalizado:',
+              'Choose your embed size. Copy the text and paste it in your html page.': 'Elija el tamaño del video a embeber. Copie el texto y péguelo en su página html.',
+              'Width:': 'Ancho:',
+              'Height:': 'Alto:'
+            };
+            base.dictionary.addDictionary(esDict);
+          }
+
+          var thisClass = this;
+          var Keys = {
+            Tab: 9,
+            Return: 13,
+            Esc: 27,
+            End: 35,
+            Home: 36,
+            Left: 37,
+            Up: 38,
+            Right: 39,
+            Down: 40
+          };
+          $(this.button).keyup(function (event) {
+            if (thisClass.isPopUpOpen()) {
+              if (event.keyCode == Keys.Up) {
+                if (thisClass.selected_button > 0) {
+                  if (thisClass.selected_button < thisClass.buttons.length) thisClass.buttons[thisClass.selected_button].className = 'socialItemButton ' + thisClass.buttons[thisClass.selected_button].data.mediaData;
+                  thisClass.selected_button--;
+                  thisClass.buttons[thisClass.selected_button].className = thisClass.buttons[thisClass.selected_button].className + ' selected';
+                }
+              } else if (event.keyCode == Keys.Down) {
+                if (thisClass.selected_button < thisClass.buttons.length - 1) {
+                  if (thisClass.selected_button >= 0) thisClass.buttons[thisClass.selected_button].className = 'socialItemButton ' + thisClass.buttons[thisClass.selected_button].data.mediaData;
+                  thisClass.selected_button++;
+                  thisClass.buttons[thisClass.selected_button].className = thisClass.buttons[thisClass.selected_button].className + ' selected';
+                }
+              } else if (event.keyCode == Keys.Return) {
+                thisClass.onItemClick(thisClass.buttons[thisClass.selected_button].data.mediaData);
+              }
+            }
+          });
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var _this197 = this;
+
+          this.buttonItems = {};
+          this.socialMedia = ['facebook', 'twitter', 'embed'];
+          this.socialMedia.forEach(function (mediaData) {
+            var buttonItem = _this197.getSocialMediaItemButton(mediaData);
+
+            _this197.buttonItems[_this197.socialMedia.indexOf(mediaData)] = buttonItem;
+            domElement.appendChild(buttonItem);
+
+            _this197.buttons.push(buttonItem);
+          });
+          this.selected_button = this.buttons.length;
+        }
+      }, {
+        key: "getSocialMediaItemButton",
+        value: function getSocialMediaItemButton(mediaData) {
+          var elem = document.createElement('div');
+          elem.className = 'socialItemButton ' + mediaData;
+          elem.id = mediaData + '_button';
+          elem.data = {
+            mediaData: mediaData,
+            plugin: this
+          };
+          $(elem).click(function (event) {
+            this.data.plugin.onItemClick(this.data.mediaData);
+          });
+          return elem;
+        }
+      }, {
+        key: "onItemClick",
+        value: function onItemClick(mediaData) {
+          var url = this.getVideoUrl();
+
+          switch (mediaData) {
+            case 'twitter':
+              window.open('http://twitter.com/home?status=' + url);
+              break;
+
+            case 'facebook':
+              window.open('http://www.facebook.com/sharer.php?u=' + url);
+              break;
+
+            case 'embed':
+              this.embedPress();
+              break;
+          }
+
+          paella.player.controls.hidePopUp(this.getName());
+        }
+      }, {
+        key: "getVideoUrl",
+        value: function getVideoUrl() {
+          var url = document.location.href;
+          return url;
+        }
+      }, {
+        key: "embedPress",
+        value: function embedPress() {
+          var host = document.location.protocol + "//" + document.location.host;
+          var pathname = document.location.pathname;
+          var p = pathname.split("/");
+
+          if (p.length > 0) {
+            p[p.length - 1] = "embed.html";
+          }
+
+          var id = paella.initDelegate.getId();
+          var url = host + p.join("/") + "?id=" + id; //var paused = paella.player.videoContainer.paused();
+          //$(document).trigger(paella.events.pause);
+
+          var divSelectSize = "<div style='display:inline-block;'> " + "    <div class='embedSizeButton' style='width:110px; height:73px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 620x349 </span></div>" + "    <div class='embedSizeButton' style='width:100px; height:65px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 540x304 </span></div>" + "    <div class='embedSizeButton' style='width:90px;  height:58px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 460x259 </span></div>" + "    <div class='embedSizeButton' style='width:80px;  height:50px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 380x214 </span></div>" + "    <div class='embedSizeButton' style='width:70px;  height:42px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 300x169 </span></div>" + "</div><div style='display:inline-block; vertical-align:bottom; margin-left:10px;'>" + "    <div>" + base.dictionary.translate("Custom size:") + "</div>" + "    <div>" + base.dictionary.translate("Width:") + " <input id='social_embed_width-input' class='embedSizeInput' maxlength='4' type='text' name='Costum width min 300px' alt='Costum width min 300px' title='Costum width min 300px' value=''></div>" + "    <div>" + base.dictionary.translate("Height:") + " <input id='social_embed_height-input' class='embedSizeInput' maxlength='4' type='text' name='Costum width min 300px' alt='Costum width min 300px' title='Costum width min 300px' value=''></div>" + "</div>";
+          var divEmbed = "<div id='embedContent' style='text-align:left; font-size:14px; color:black;'><div id=''>" + divSelectSize + "</div> <div id=''>" + base.dictionary.translate("Choose your embed size. Copy the text and paste it in your html page.") + "</div> <div id=''><textarea id='social_embed-textarea' class='social_embed-textarea' rows='4' cols='1' style='font-size:12px; width:95%; overflow:auto; margin-top:5px; color:black;'></textarea></div>  </div>";
+          paella.messageBox.showMessage(divEmbed, {
+            closeButton: true,
+            width: '750px',
+            height: '210px',
+            onClose: function onClose() {//      if (paused == false) {$(document).trigger(paella.events.play);}
+            }
+          });
+          var w_e = $('#social_embed_width-input')[0];
+          var h_e = $('#social_embed_height-input')[0];
+
+          w_e.onkeyup = function (event) {
+            var width = parseInt(w_e.value);
+            var height = parseInt(h_e.value);
+
+            if (isNaN(width)) {
+              w_e.value = "";
+            } else {
+              if (width < 300) {
+                $("#social_embed-textarea")[0].value = "Embed width too low. The minimum value is a width of 300.";
+              } else {
+                if (isNaN(height)) {
+                  height = (width / (16 / 9)).toFixed();
+                  h_e.value = height;
+                }
+
+                $("#social_embed-textarea")[0].value = '<iframe allowfullscreen src="' + url + '" style="border:0px #FFFFFF none;" name="Paella Player" scrolling="no" frameborder="0" marginheight="0px" marginwidth="0px" width="' + width + '" height="' + height + '"></iframe>';
+              }
+            }
+          };
+
+          var embs = $(".embedSizeButton");
+
+          for (var i = 0; i < embs.length; i = i + 1) {
+            var e = embs[i];
+
+            e.onclick = function (event) {
+              var value = event.target ? event.target.textContent : event.toElement.textContent;
+
+              if (value) {
+                var size = value.trim().split("x");
+                w_e.value = size[0];
+                h_e.value = size[1];
+                $("#social_embed-textarea")[0].value = '<iframe allowfullscreen src="' + url + '" style="border:0px #FFFFFF none;" name="Paella Player" scrolling="no" frameborder="0" marginheight="0px" marginwidth="0px" width="' + size[0] + '" height="' + size[1] + '"></iframe>';
+              }
+            };
+          }
+        }
+      }]);
+
+      return SocialPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin18) {
+      _inherits(ThemeChooserPlugin, _paella$ButtonPlugin18);
+
+      function ThemeChooserPlugin() {
+        _classCallCheck(this, ThemeChooserPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(ThemeChooserPlugin).apply(this, arguments));
+      }
+
+      _createClass(ThemeChooserPlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "themeChooserPlugin";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-paintbrush';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 2030;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.themeChooserPlugin";
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Change theme");
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this.currentUrl = null;
+          this.currentMaster = null;
+          this.currentSlave = null;
+          this.availableMasters = [];
+          this.availableSlaves = [];
+
+          if (paella.player.config.skin && paella.player.config.skin.available && paella.player.config.skin.available instanceof Array && paella.player.config.skin.available.length > 0) {
+            onSuccess(true);
+          } else {
+            onSuccess(false);
+          }
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var This = this;
+          paella.player.config.skin.available.forEach(function (item) {
+            var elem = document.createElement('div');
+            elem.className = "themebutton";
+            elem.innerText = item.replace('-', ' ').replace('_', ' ');
+            $(elem).click(function (event) {
+              paella.utils.skin.set(item);
+              paella.player.controls.hidePopUp(This.getName());
+            });
+            domElement.appendChild(elem);
+          });
+        }
+      }]);
+
+      return ThemeChooserPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addDataDelegate("cameraTrack", function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$DataDelegate3) {
+      _inherits(TrackCameraDataDelegate, _paella$DataDelegate3);
+
+      function TrackCameraDataDelegate() {
+        _classCallCheck(this, TrackCameraDataDelegate);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(TrackCameraDataDelegate).apply(this, arguments));
+      }
+
+      _createClass(TrackCameraDataDelegate, [{
+        key: "read",
+        value: function read(context, params, onSuccess) {
+          var videoUrl = paella.player.videoLoader.getVideoUrl();
+
+          if (videoUrl) {
+            videoUrl += 'trackhd.json';
+            paella.utils.ajax.get({
+              url: videoUrl
+            }, function (data) {
+              if (typeof data === "string") {
+                try {
+                  data = JSON.parse(data);
+                } catch (err) {}
+              }
+
+              data.positions.sort(function (a, b) {
+                return a.time - b.time;
+              });
+              onSuccess(data);
+            }, function () {
+              return onSuccess(null);
+            });
+          } else {
+            onSuccess(null);
+          }
+        }
+      }, {
+        key: "write",
+        value: function write(context, params, value, onSuccess) {}
+      }, {
+        key: "remove",
+        value: function remove(context, params, onSuccess) {}
+      }]);
+
+      return TrackCameraDataDelegate;
+    }(paella.DataDelegate)
+  );
+});
+
+(function () {
+  // Used to connect the toolbar button with the track4k plugin
+  var g_track4kPlugin = null;
+
+  function updatePosition(positionData, nextFrameData) {
+    var twinTime = nextFrameData ? (nextFrameData.time - positionData.time) * 1000 : 100;
+    if (twinTime > 2000) twinTime = 2000;
+    var rect = positionData && positionData.rect || [0, 0, 0, 0];
+    var offset_x = Math.abs(rect[0]);
+    var offset_y = Math.abs(rect[1]);
+    var view_width = rect[2];
+    var view_height = rect[3];
+    var zoom = this._videoData.originalWidth / view_width;
+    var left = offset_x / this._videoData.originalWidth;
+    var top = offset_y / this._videoData.originalHeight;
+    paella.player.videoContainer.masterVideo().setZoom(zoom * 100, left * zoom * 100, top * zoom * 100, twinTime);
+  }
+
+  function nextFrame(time) {
+    var index = -1;
+    time = Math.round(time);
+
+    this._trackData.some(function (data, i) {
+      if (data.time >= time) {
+        index = i;
+      }
+
+      return index !== -1;
+    }); // Index contains the current frame index
+
+
+    if (this._trackData.length > index + 1) {
+      return this._trackData[index + 1];
+    } else {
+      return null;
+    }
+  }
+
+  function prevFrame(time) {
+    var frame = this._trackData[0];
+    time = Math.round(time);
+
+    this._trackData.some(function (data, i, frames) {
+      if (frames[i + 1]) {
+        if (data.time <= time && frames[i + 1].time > time) {
+          return true;
+        }
+      } else {
+        return true;
+      }
+
+      frame = data;
+      return false;
+    });
+
+    return frame;
+  }
+
+  function curFrame(time) {
+    var frameRect = null;
+    time = Math.round(time);
+
+    this._trackData.some(function (data, i, frames) {
+      if (data.time <= time) {
+        if (frames[i + 1]) {
+          if (frames[i + 1].time > time) {
+            frameRect = data;
+          }
+        } else {
+          frameRect = data;
+        }
+      }
+
+      return frameRect !== null;
+    });
+
+    return frameRect;
+  }
+
+  paella.addPlugin(function () {
+    return (
+      /*#__PURE__*/
+      function (_paella$EventDrivenPl11) {
+        _inherits(Track4KPlugin, _paella$EventDrivenPl11);
+
+        function Track4KPlugin() {
+          var _this198;
+
+          _classCallCheck(this, Track4KPlugin);
+
+          _this198 = _possibleConstructorReturn(this, _getPrototypeOf(Track4KPlugin).call(this));
+          g_track4kPlugin = _assertThisInitialized(_this198);
+          _this198._videoData = {};
+          _this198._trackData = [];
+          _this198._enabled = true;
+          return _this198;
+        }
+
+        _createClass(Track4KPlugin, [{
+          key: "checkEnabled",
+          value: function checkEnabled(cb) {
+            var _this199 = this;
+
+            paella.data.read('cameraTrack', {
+              id: paella.initDelegate.getId()
+            }, function (data) {
+              if (data) {
+                _this199._videoData.width = data.width;
+                _this199._videoData.height = data.height;
+                _this199._videoData.originalWidth = data.originalWidth;
+                _this199._videoData.originalHeight = data.originalHeight;
+                _this199._trackData = data.positions;
+                _this199._enabled = true;
+              } else {
+                _this199._enabled = false;
+              }
+
+              cb(_this199._enabled);
+            });
+          }
+        }, {
+          key: "getName",
+          value: function getName() {
+            return "es.upv.paella.track4kPlugin";
+          }
+        }, {
+          key: "getEvents",
+          value: function getEvents() {
+            return [paella.events.timeupdate, paella.events.play, paella.events.seekToTime];
+          }
+        }, {
+          key: "onEvent",
+          value: function onEvent(eventType, data) {
+            if (!this._trackData.length) return;
+
+            if (eventType === paella.events.play) {} else if (eventType === paella.events.timeupdate) {
+              this.updateZoom(data.currentTime);
+            } else if (eventType === paella.events.seekToTime) {
+              this.seekTo(data.newPosition);
+            }
+          }
+        }, {
+          key: "updateZoom",
+          value: function updateZoom(currentTime) {
+            if (this._enabled) {
+              var data = curFrame.apply(this, [currentTime]);
+              var nextFrameData = nextFrame.apply(this, [currentTime]);
+
+              if (data && this._lastPosition !== data) {
+                this._lastPosition = data;
+                updatePosition.apply(this, [data, nextFrameData]);
+              }
+            }
+          }
+        }, {
+          key: "seekTo",
+          value: function seekTo(time) {
+            var data = prevFrame.apply(this, [time]);
+
+            if (data && this._enabled) {
+              this._lastPosition = data;
+              updatePosition.apply(this, [data]);
+            }
+          }
+        }, {
+          key: "enabled",
+          get: function get() {
+            return this._enabled;
+          },
+          set: function set(e) {
+            this._enabled = e;
+
+            if (this._enabled) {
+              var thisClass = this;
+              paella.player.videoContainer.currentTime().then(function (time) {
+                thisClass.updateZoom(time);
+              });
+            }
+          }
+        }]);
+
+        return Track4KPlugin;
+      }(paella.EventDrivenPlugin)
+    );
+  });
+  paella.addPlugin(function () {
+    return (
+      /*#__PURE__*/
+      function (_paella$ButtonPlugin19) {
+        _inherits(VideoZoomTrack4KPlugin, _paella$ButtonPlugin19);
+
+        function VideoZoomTrack4KPlugin() {
+          _classCallCheck(this, VideoZoomTrack4KPlugin);
+
+          return _possibleConstructorReturn(this, _getPrototypeOf(VideoZoomTrack4KPlugin).apply(this, arguments));
+        }
+
+        _createClass(VideoZoomTrack4KPlugin, [{
+          key: "getAlignment",
+          value: function getAlignment() {
+            return 'right';
+          }
+        }, {
+          key: "getSubclass",
+          value: function getSubclass() {
+            return "videoZoomToolbar";
+          }
+        }, {
+          key: "getIconClass",
+          value: function getIconClass() {
+            return 'icon-screen';
+          }
+        }, {
+          key: "closeOnMouseOut",
+          value: function closeOnMouseOut() {
+            return true;
+          }
+        }, {
+          key: "getIndex",
+          value: function getIndex() {
+            return 2030;
+          }
+        }, {
+          key: "getName",
+          value: function getName() {
+            return "es.upv.paella.videoZoomTrack4kPlugin";
+          }
+        }, {
+          key: "getDefaultToolTip",
+          value: function getDefaultToolTip() {
+            return base.dictionary.translate("Set video zoom");
+          }
+        }, {
+          key: "getButtonType",
+          value: function getButtonType() {
+            return paella.ButtonPlugin.type.popUpButton;
+          }
+        }, {
+          key: "checkEnabled",
+          value: function checkEnabled(onSuccess) {
+            var players = paella.player.videoContainer.streamProvider.videoPlayers;
+            var pluginData = paella.player.config.plugins.list[this.getName()];
+            var playerIndex = pluginData.targetStreamIndex;
+            var autoByDefault = pluginData.autoModeByDefault;
+            this.targetPlayer = players.length > playerIndex ? players[playerIndex] : null;
+            g_track4kPlugin.enabled = autoByDefault;
+            onSuccess(paella.player.config.player.videoZoom.enabled && this.targetPlayer && this.targetPlayer.allowZoom());
+          }
+        }, {
+          key: "setup",
+          value: function setup() {
+            if (this.config.autoModeByDefault) {
+              this.zoomAuto();
+            } else {
+              this.resetZoom();
+            }
+          }
+        }, {
+          key: "buildContent",
+          value: function buildContent(domElement) {
+            var _this200 = this;
+
+            this.changeIconClass("icon-mini-zoom-in");
+
+            g_track4kPlugin.updateTrackingStatus = function () {
+              if (g_track4kPlugin.enabled) {
+                $('.zoom-auto').addClass("autoTrackingActivated");
+                $('.icon-mini-zoom-in').addClass("autoTrackingActivated");
+              } else {
+                $('.zoom-auto').removeClass("autoTrackingActivated");
+                $('.icon-mini-zoom-in').removeClass("autoTrackingActivated");
+              }
+            };
+
+            paella.events.bind(paella.events.videoZoomChanged, function (evt, target) {
+              g_track4kPlugin.updateTrackingStatus;
+            });
+            g_track4kPlugin.updateTrackingStatus;
+
+            function getZoomButton(className, onClick, content) {
+              var btn = document.createElement('div');
+              btn.className = "videoZoomToolbarItem ".concat(className);
+
+              if (content) {
+                btn.innerText = content;
+              } else {
+                btn.innerHTML = "<i class=\"glyphicon glyphicon-".concat(className, "\"></i>");
+              }
+
+              $(btn).click(onClick);
+              return btn;
+            }
+
+            domElement.appendChild(getZoomButton('zoom-in', function (evt) {
+              _this200.zoomIn();
+            }));
+            domElement.appendChild(getZoomButton('zoom-out', function (evt) {
+              _this200.zoomOut();
+            }));
+            domElement.appendChild(getZoomButton('picture', function (evt) {
+              _this200.resetZoom();
+            }));
+            domElement.appendChild(getZoomButton('zoom-auto', function (evt) {
+              _this200.zoomAuto();
+
+              paella.player.controls.hidePopUp(_this200.getName());
+            }, "auto"));
+          }
+        }, {
+          key: "zoomIn",
+          value: function zoomIn() {
+            g_track4kPlugin.enabled = false;
+            this.targetPlayer.zoomIn();
+          }
+        }, {
+          key: "zoomOut",
+          value: function zoomOut() {
+            g_track4kPlugin.enabled = false;
+            this.targetPlayer.zoomOut();
+          }
+        }, {
+          key: "resetZoom",
+          value: function resetZoom() {
+            g_track4kPlugin.enabled = false;
+            this.targetPlayer.setZoom(100, 0, 0, 500);
+            if (g_track4kPlugin.updateTrackingStatus) g_track4kPlugin.updateTrackingStatus();
+          }
+        }, {
+          key: "zoomAuto",
+          value: function zoomAuto() {
+            g_track4kPlugin.enabled = !g_track4kPlugin.enabled;
+            if (g_track4kPlugin.updateTrackingStatus) g_track4kPlugin.updateTrackingStatus();
+          }
+        }]);
+
+        return VideoZoomTrack4KPlugin;
+      }(paella.ButtonPlugin)
+    );
+  });
+})();
+
+(function () {
+  paella.plugins.translectures = {};
+  /*
+  Class ("paella.captions.translectures.Caption", paella.captions.Caption, {
+  	initialize: function(id, format, url, lang, editURL, next) {
+  		this.parent(id, format, url, lang, next);
+  		this._captionsProvider = "translecturesCaptionsProvider";
+  		this._editURL = editURL;
+  	},
+  	
+  	canEdit: function(next) {
+  		// next(err, canEdit)
+  		next(false, ((this._editURL != undefined)&&(this._editURL != "")));
+  	},
+  	
+  	goToEdit: function() {		
+  		var self = this;
+  		paella.player.auth.userData().then(function(userData){
+  			if (userData.isAnonymous == true) {
+  				self.askForAnonymousOrLoginEdit();
+  			}
+  			else {
+  				self.doEdit();
+  			}		
+  		});	
+  	},
+  		
+  	doEdit: function() {
+  		window.location.href = this._editURL;		
+  	},
+  	doLoginAndEdit: function() {
+  		paella.player.auth.login(this._editURL);
+  	},
+  	
+  	askForAnonymousOrLoginEdit: function() {
+  		var self = this;
+  
+  		var messageBoxElem = document.createElement('div');
+  		messageBoxElem.className = "translecturesCaptionsMessageBox";
+  
+  		var messageBoxTitle = document.createElement('div');
+  		messageBoxTitle.className = "title";
+  		messageBoxTitle.innerText = base.dictionary.translate("You are trying to modify the transcriptions, but you are not Logged in!");		
+  		messageBoxElem.appendChild(messageBoxTitle);
+  
+  		var messageBoxAuthContainer = document.createElement('div');
+  		messageBoxAuthContainer.className = "authMethodsContainer";
+  		messageBoxElem.appendChild(messageBoxAuthContainer);
+  
+  		// Anonymous edit
+  		var messageBoxAuth = document.createElement('div');
+  		messageBoxAuth.className = "authMethod";
+  		messageBoxAuthContainer.appendChild(messageBoxAuth);
+  
+  		var messageBoxAuthLink = document.createElement('a');
+  		messageBoxAuthLink.href = "#";
+  		messageBoxAuthLink.style.color = "#004488";
+  		messageBoxAuth.appendChild(messageBoxAuthLink);
+  
+  		var messageBoxAuthLinkImg = document.createElement('img');
+  		messageBoxAuthLinkImg.src = "resources/style/caption_mlangs_anonymous.png";
+  		messageBoxAuthLinkImg.alt = "Anonymous";
+  		messageBoxAuthLinkImg.style.height = "100px";
+  		messageBoxAuthLink.appendChild(messageBoxAuthLinkImg);
+  
+  		var messageBoxAuthLinkText = document.createElement('p');
+  		messageBoxAuthLinkText.innerText = base.dictionary.translate("Continue editing the transcriptions anonymously");
+  		messageBoxAuthLink.appendChild(messageBoxAuthLinkText);
+  
+  		$(messageBoxAuthLink).click(function() {
+  			self.doEdit();
+  		});
+  
+  		// Auth edit
+  		messageBoxAuth = document.createElement('div');
+  		messageBoxAuth.className = "authMethod";
+  		messageBoxAuthContainer.appendChild(messageBoxAuth);
+  
+  		messageBoxAuthLink = document.createElement('a');
+  		messageBoxAuthLink.href = "#";
+  		messageBoxAuthLink.style.color = "#004488";
+  		messageBoxAuth.appendChild(messageBoxAuthLink);
+  
+  		messageBoxAuthLinkImg = document.createElement('img');
+  		messageBoxAuthLinkImg.src = "resources/style/caption_mlangs_lock.png";
+  		messageBoxAuthLinkImg.alt = "Login";
+  		messageBoxAuthLinkImg.style.height = "100px";
+  		messageBoxAuthLink.appendChild(messageBoxAuthLinkImg);
+  
+  		messageBoxAuthLinkText = document.createElement('p');
+  		messageBoxAuthLinkText.innerText = base.dictionary.translate("Log in and edit the transcriptions");
+  		messageBoxAuthLink.appendChild(messageBoxAuthLinkText);
+  
+  
+  		$(messageBoxAuthLink).click(function() {
+  			self.doLoginAndEdit();
+  		});
+  
+  		// Show UI		
+  		paella.messageBox.showElement(messageBoxElem);
+  	}
+  });
+  
+  paella.captions.translectures.Caption = Caption;
+  
+  Class ("paella.plugins.translectures.CaptionsPlugIn", paella.EventDrivenPlugin, {
+  		
+  	getName:function() { return "es.upv.paella.translecture.captionsPlugin"; },
+  	getEvents:function() { return []; },
+  	onEvent:function(eventType,params) {},
+  
+  	checkEnabled: function(onSuccess) {
+  		var self = this;
+  		var video_id = paella.player.videoIdentifier;
+  				
+  		if ((this.config.tLServer == undefined) || (this.config.tLdb == undefined)){
+  			base.log.warning(this.getName() + " plugin not configured!");
+  			onSuccess(false);
+  		}
+  		else {
+  			var langs_url = (this.config.tLServer + "/langs?db=${tLdb}&id=${videoId}").replace(/\$\{videoId\}/ig, video_id).replace(/\$\{tLdb\}/ig, this.config.tLdb);
+  			base.ajax.get({url: langs_url},
+  				function(data, contentType, returnCode, dataRaw) {					
+  					if (data.scode == 0) {
+  						data.langs.forEach(function(l){
+  							var l_get_url = (self.config.tLServer + "/dfxp?format=1&pol=0&db=${tLdb}&id=${videoId}&lang=${tl.lang.code}")
+  								.replace(/\$\{videoId\}/ig, video_id)
+  								.replace(/\$\{tLdb\}/ig, self.config.tLdb)
+  								.replace(/\$\{tl.lang.code\}/ig, l.code);
+  														
+  							var l_edit_url;							
+  							if (self.config.tLEdit) {
+  								l_edit_url = self.config.tLEdit
+  									.replace(/\$\{videoId\}/ig, video_id)
+  									.replace(/\$\{tLdb\}/ig, self.config.tLdb)
+  									.replace(/\$\{tl.lang.code\}/ig, l.code);
+  							}
+  							
+  							var l_txt = l.value;
+  				            switch(l.type){
+  						    	case 0:
+  						    		l_txt += " (" + paella.dictionary.translate("Auto") + ")";
+  						    		break;
+  						    	case 1:
+  						    		l_txt += " (" + paella.dictionary.translate("Under review") + ")";
+  						    		break;
+  						    }
+  														
+  							var c = new paella.captions.translectures.Caption(l.code , "dfxp", l_get_url, {code: l.code, txt: l_txt}, l_edit_url);
+  							paella.captions.addCaptions(c);
+  						});
+  						onSuccess(false);
+  					}
+  					else {
+  						base.log.debug("Error getting available captions from translectures: " + langs_url);
+  						onSuccess(false);
+  					}
+  				},						
+  				function(data, contentType, returnCode) {
+  					base.log.debug("Error getting available captions from translectures: " + langs_url);
+  					onSuccess(false);
+  				}
+  			);			
+  		}
+  	}	
+  });
+  
+  //new paella.plugins.translectures.CaptionsPlugIn();
+  */
+})();
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$userTracking$2) {
+      _inherits(ElasticsearchSaverPlugin, _paella$userTracking$2);
+
+      function ElasticsearchSaverPlugin() {
+        _classCallCheck(this, ElasticsearchSaverPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(ElasticsearchSaverPlugin).apply(this, arguments));
+      }
+
+      _createClass(ElasticsearchSaverPlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.usertracking.elasticsearchSaverPlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this.type = 'userTrackingSaverPlugIn';
+          this._url = this.config.url;
+          this._index = this.config.index || "paellaplayer";
+          this._type = this.config.type || "usertracking";
+          var enabled = true;
+
+          if (this._url == undefined) {
+            enabled = false;
+            base.log.debug("No ElasticSearch URL found in config file. Disabling ElasticSearch PlugIn");
+          }
+
+          onSuccess(enabled);
+        }
+      }, {
+        key: "log",
+        value: function log(event, params) {
+          var _this201 = this;
+
+          var p = params;
+
+          if (_typeof(p) != "object") {
+            p = {
+              value: p
+            };
+          }
+
+          var currentTime = 0;
+          paella.player.videoContainer.currentTime().then(function (t) {
+            currentTime = t;
+            return paella.player.videoContainer.paused();
+          }).then(function (paused) {
+            var log = {
+              date: new Date(),
+              video: paella.initDelegate.getId(),
+              playing: !paused,
+              time: parseInt(currentTime + paella.player.videoContainer.trimStart()),
+              event: event,
+              params: p
+            };
+            paella.ajax.post({
+              url: _this201._url + "/" + _this201._index + "/" + _this201._type + "/",
+              params: JSON.stringify(log)
+            });
+          });
+        }
+      }]);
+
+      return ElasticsearchSaverPlugin;
+    }(paella.userTracking.SaverPlugIn)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$userTracking$3) {
+      _inherits(GoogleAnalyticsTracking, _paella$userTracking$3);
+
+      function GoogleAnalyticsTracking() {
+        _classCallCheck(this, GoogleAnalyticsTracking);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(GoogleAnalyticsTracking).apply(this, arguments));
+      }
+
+      _createClass(GoogleAnalyticsTracking, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.usertracking.GoogleAnalyticsSaverPlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var trackingID = this.config.trackingID;
+          var domain = this.config.domain || "auto";
+
+          if (trackingID) {
+            base.log.debug("Google Analitycs Enabled");
+            /* jshint ignore:start */
+
+            (function (i, s, o, g, r, a, m) {
+              i['GoogleAnalyticsObject'] = r;
+              i[r] = i[r] || function () {
+                (i[r].q = i[r].q || []).push(arguments);
+              }, i[r].l = 1 * new Date();
+              a = s.createElement(o), m = s.getElementsByTagName(o)[0];
+              a.async = 1;
+              a.src = g;
+              m.parentNode.insertBefore(a, m);
+            })(window, document, 'script', '//www.google-analytics.com/analytics.js', '__gaTracker');
+            /* jshint ignore:end */
+
+
+            __gaTracker('create', trackingID, domain);
+
+            __gaTracker('send', 'pageview');
+
+            onSuccess(true);
+          } else {
+            base.log.debug("No Google Tracking ID found in config file. Disabling Google Analitycs PlugIn");
+            onSuccess(false);
+          }
+        }
+      }, {
+        key: "log",
+        value: function log(event, params) {
+          if (this.config.category === undefined || this.config.category === true) {
+            var category = this.config.category || "PaellaPlayer";
+            var action = event;
+            var label = "";
+
+            try {
+              label = JSON.stringify(params);
+            } catch (e) {}
+
+            __gaTracker('send', 'event', category, action, label);
+          }
+        }
+      }]);
+
+      return GoogleAnalyticsTracking;
+    }(paella.userTracking.SaverPlugIn)
+  );
+});
+
+var _paq = _paq || [];
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$userTracking$4) {
+      _inherits(PiwikAnalyticsTracking, _paella$userTracking$4);
+
+      function PiwikAnalyticsTracking() {
+        _classCallCheck(this, PiwikAnalyticsTracking);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(PiwikAnalyticsTracking).apply(this, arguments));
+      }
+
+      _createClass(PiwikAnalyticsTracking, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.usertracking.piwikSaverPlugIn";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          if (this.config.tracker && this.config.siteId) {
+            _paq.push(['trackPageView']);
+
+            _paq.push(['enableLinkTracking']);
+
+            (function () {
+              var u = this.config.tracker;
+
+              _paq.push(['setTrackerUrl', u + '/piwik.php']);
+
+              _paq.push(['setSiteId', this.config.siteId]);
+
+              var d = document,
+                  g = d.createElement('script'),
+                  s = d.getElementsByTagName('script')[0];
+              g.type = 'text/javascript';
+              g.async = true;
+              g.defer = true;
+              g.src = u + 'piwik.js';
+              s.parentNode.insertBefore(g, s);
+              onSuccess(true);
+            })();
+          } else {
+            onSuccess(false);
+          }
+        }
+      }, {
+        key: "log",
+        value: function log(event, params) {
+          var category = this.config.category || "PaellaPlayer";
+          var action = event;
+          var label = "";
+
+          try {
+            label = JSON.stringify(params);
+          } catch (e) {}
+
+          _paq.push(['trackEvent', category, action, label]);
+        }
+      }]);
+
+      return PiwikAnalyticsTracking;
+    }(paella.userTracking.SaverPlugIn)
+  );
+});
+
+(function () {
+  paella.addCanvasPlugin("video360", true, true, function () {
+    return (
+      /*#__PURE__*/
+      function (_paella$WebGLCanvas) {
+        _inherits(Video360Canvas, _paella$WebGLCanvas);
+
+        function Video360Canvas(stream) {
+          _classCallCheck(this, Video360Canvas);
+
+          return _possibleConstructorReturn(this, _getPrototypeOf(Video360Canvas).call(this, stream));
+        }
+
+        _createClass(Video360Canvas, [{
+          key: "loadVideo",
+          value: function loadVideo(videoPlugin, stream) {
+            var _this202 = this;
+
+            return new Promise(function (resolve, reject) {
+              var checkLoaded = function checkLoaded() {
+                if (_this202.video) {
+                  resolve(_this202);
+                } else {
+                  setTimeout(checkLoaded, 100);
+                }
+              };
+
+              checkLoaded();
+            });
+          }
+        }, {
+          key: "buildVideoSurface",
+          value: function buildVideoSurface(sceneRoot, videoTexture) {
+            var sphere = bg.scene.PrimitiveFactory.Sphere(this.gl, 1, 50);
+            var sphereNode = new bg.scene.Node(this.gl);
+            sphereNode.addComponent(sphere);
+            sphere.getMaterial(0).texture = videoTexture;
+            sphere.getMaterial(0).lightEmission = 0;
+            sphere.getMaterial(0).lightEmissionMaskInvert = false;
+            sphere.getMaterial(0).cullFace = false;
+            sphereNode.addComponent(new bg.scene.Transform(bg.Matrix4.Scale(1, -1, 1)));
+            sceneRoot.addChild(sphereNode);
+          }
+        }, {
+          key: "buildCamera",
+          value: function buildCamera() {
+            var cameraNode = new bg.scene.Node(this.gl, "Camera");
+            var camera = new bg.scene.Camera();
+            cameraNode.addComponent(camera);
+            cameraNode.addComponent(new bg.scene.Transform());
+            var projection = new bg.scene.OpticalProjectionStrategy();
+            projection.far = 100;
+            projection.focalLength = 55;
+            camera.projectionStrategy = projection;
+            var oc = new bg.manipulation.OrbitCameraController();
+            oc.maxPitch = 90;
+            oc.minPitch = -90;
+            oc.maxDistance = 0;
+            oc.minDistance = 0;
+            this._cameraController = oc;
+            cameraNode.addComponent(oc);
+            return cameraNode;
+          }
+        }]);
+
+        return Video360Canvas;
+      }(paella.WebGLCanvas)
+    );
+  });
+})();
+
+(function () {
+  function cyln2world(a, e) {
+    return new bg.Vector3(Math.cos(e) * Math.cos(a), Math.cos(e) * Math.sin(a), Math.sin(e));
+  }
+
+  function world2fish(x, y, z) {
+    var nz = z;
+    if (z < -1.0) nz = -1.0;else if (z > 1.0) nz = 1.0;
+    return new bg.Vector2(Math.atan2(y, x), Math.acos(nz) / Math.PI); // 0.0 to 1.0
+  }
+
+  function calcTexUv(i, j, lens) {
+    var world = cyln2world(((i + 90) / 180.0 - 1.0) * Math.PI, // rotate 90 deg for polygon
+    (0.5 - j / 180.0) * Math.PI);
+    var ar = world2fish(Math.sin(-0.5 * Math.PI) * world.z + Math.cos(-0.5 * Math.PI) * world.x, world.y, Math.cos(-0.5 * Math.PI) * world.z - Math.sin(-0.5 * Math.PI) * world.x);
+    var fishRad = 0.883;
+    var fishRad2 = fishRad * 0.88888888888888;
+    var fishCenter = 1.0 - 0.44444444444444;
+    var x = lens === 0 ? fishRad * ar.y * Math.cos(ar.x) * 0.5 + 0.25 : fishRad * (1.0 - ar.y) * Math.cos(-1.0 * ar.x + Math.PI) * 0.5 + 0.75;
+    var y = lens === 0 ? fishRad2 * ar.y * Math.sin(ar.x) + fishCenter : fishRad2 * (1.0 - ar.y) * Math.sin(-1.0 * ar.x + Math.PI) + fishCenter;
+    return new bg.Vector2(x, y);
+  }
+
+  function buildViewerNode(ctx) {
+    var radius = 1;
+    var node = new bg.scene.Node(ctx);
+    var drw = new bg.scene.Drawable();
+    node.addComponent(drw);
+    var plist = new bg.base.PolyList(ctx);
+    var vertex = [];
+    var normals = [];
+    var uvs = [];
+    var index = [];
+
+    for (var j = 0; j <= 180; j += 5) {
+      for (var i = 0; i <= 360; i += 5) {
+        vertex.push(new bg.Vector3(Math.sin(Math.PI * j / 180.0) * Math.sin(Math.PI * i / 180.0) * radius, Math.cos(Math.PI * j / 180.0) * radius, Math.sin(Math.PI * j / 180.0) * Math.cos(Math.PI * i / 180.0) * radius));
+        normals.push(new bg.Vector3(0, 0, -1));
+      }
+      /* devide texture */
+
+
+      for (var k = 0; k <= 180; k += 5) {
+        uvs.push(calcTexUv(k, j, 0));
+      }
+
+      for (var l = 180; l <= 360; l += 5) {
+        uvs.push(calcTexUv(l, j, 1));
+      }
+    }
+
+    function addFace(v0, v1, v2, n0, n1, n2, uv0, uv1, uv2) {
+      plist.vertex.push(v0.x);
+      plist.vertex.push(v0.y);
+      plist.vertex.push(v0.z);
+      plist.vertex.push(v1.x);
+      plist.vertex.push(v1.y);
+      plist.vertex.push(v1.z);
+      plist.vertex.push(v2.x);
+      plist.vertex.push(v2.y);
+      plist.vertex.push(v2.z);
+      plist.normal.push(n0.x);
+      plist.normal.push(n0.y);
+      plist.normal.push(n0.z);
+      plist.normal.push(n1.x);
+      plist.normal.push(n1.y);
+      plist.normal.push(n1.z);
+      plist.normal.push(n2.x);
+      plist.normal.push(n2.z);
+      plist.normal.push(n2.z);
+      plist.texCoord0.push(uv0.x);
+      plist.texCoord0.push(1 - uv0.y);
+      plist.texCoord0.push(uv1.x);
+      plist.texCoord0.push(1 - uv1.y);
+      plist.texCoord0.push(uv2.x);
+      plist.texCoord0.push(1 - uv2.y);
+      plist.index.push(plist.index.length);
+      plist.index.push(plist.index.length);
+      plist.index.push(plist.index.length);
+    }
+
+    for (var m = 0; m < 36; m++) {
+      for (var n = 0; n < 72; n++) {
+        var v = m * 73 + n;
+        var t = n < 36 ? m * 74 + n : m * 74 + n + 1;
+        [uvs[t + 0], uvs[t + 1], uvs[t + 74]], [uvs[t + 1], uvs[t + 75], uvs[t + 74]];
+        var v0 = vertex[v + 0];
+        var n0 = normals[v + 0];
+        var uv0 = uvs[t + 0];
+        var v1 = vertex[v + 1];
+        var n1 = normals[v + 1];
+        var uv1 = uvs[t + 1];
+        var v2 = vertex[v + 73];
+        var n2 = normals[v + 73];
+        var uv2 = uvs[t + 74];
+        var v3 = vertex[v + 74];
+        var n3 = normals[v + 74];
+        var uv3 = uvs[t + 75];
+        addFace(v0, v1, v2, n0, n1, n2, uv0, uv1, uv2);
+        addFace(v1, v3, v2, n1, n3, n2, uv1, uv3, uv2);
+      }
+    }
+
+    plist.build();
+    drw.addPolyList(plist);
+    var trx = bg.Matrix4.Scale(-1, 1, 1);
+    node.addComponent(new bg.scene.Transform(trx));
+    return node;
+  }
+
+  paella.addCanvasPlugin("video360Theta", true, true, function () {
+    return (
+      /*#__PURE__*/
+      function (_paella$WebGLCanvas2) {
+        _inherits(Video360ThetaCanvas, _paella$WebGLCanvas2);
+
+        function Video360ThetaCanvas(stream) {
+          _classCallCheck(this, Video360ThetaCanvas);
+
+          return _possibleConstructorReturn(this, _getPrototypeOf(Video360ThetaCanvas).call(this, stream));
+        }
+
+        _createClass(Video360ThetaCanvas, [{
+          key: "loadVideo",
+          value: function loadVideo(videoPlugin, stream) {
+            var _this203 = this;
+
+            return new Promise(function (resolve, reject) {
+              var checkLoaded = function checkLoaded() {
+                if (_this203.video) {
+                  resolve(_this203);
+                } else {
+                  setTimeout(checkLoaded, 100);
+                }
+              };
+
+              checkLoaded();
+            });
+          }
+        }, {
+          key: "buildVideoSurface",
+          value: function buildVideoSurface(sceneRoot, videoTexture) {
+            var sphereNode = buildViewerNode(this.gl);
+            var sphere = sphereNode.drawable;
+            sphere.getMaterial(0).texture = videoTexture;
+            sphere.getMaterial(0).lightEmission = 0;
+            sphere.getMaterial(0).lightEmissionMaskInvert = false;
+            sphere.getMaterial(0).cullFace = false;
+            sceneRoot.addChild(sphereNode);
+          }
+        }, {
+          key: "buildCamera",
+          value: function buildCamera() {
+            var cameraNode = new bg.scene.Node(this.gl, "Camera");
+            var camera = new bg.scene.Camera();
+            cameraNode.addComponent(camera);
+            cameraNode.addComponent(new bg.scene.Transform());
+            var projection = new bg.scene.OpticalProjectionStrategy();
+            projection.far = 100;
+            projection.focalLength = 55;
+            camera.projectionStrategy = projection;
+            var oc = new bg.manipulation.OrbitCameraController();
+            oc.maxPitch = 90;
+            oc.minPitch = -90;
+            oc.maxDistance = 0;
+            oc.minDistance = 0;
+            this._cameraController = oc;
+            cameraNode.addComponent(oc);
+            return cameraNode;
+          }
+        }]);
+
+        return Video360ThetaCanvas;
+      }(paella.WebGLCanvas)
+    );
+  });
+})();
+
+paella.addDataDelegate('metadata', function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$DataDelegate4) {
+      _inherits(VideoManifestMetadataDataDelegate, _paella$DataDelegate4);
+
+      function VideoManifestMetadataDataDelegate() {
+        _classCallCheck(this, VideoManifestMetadataDataDelegate);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(VideoManifestMetadataDataDelegate).apply(this, arguments));
+      }
+
+      _createClass(VideoManifestMetadataDataDelegate, [{
+        key: "read",
+        value: function read(context, params, onSuccess) {
+          var metadata = paella.player.videoLoader.getMetadata();
+          onSuccess(metadata[params], true);
+        }
+      }, {
+        key: "write",
+        value: function write(context, params, value, onSuccess) {
+          onSuccess({}, true);
+        }
+      }, {
+        key: "remove",
+        value: function remove(context, params, onSuccess) {
+          onSuccess({}, true);
+        }
+      }]);
+
+      return VideoManifestMetadataDataDelegate;
+    }(paella.DataDelegate)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$VideoOverlayB4) {
+      _inherits(VideoDataPlugin, _paella$VideoOverlayB4);
+
+      function VideoDataPlugin() {
+        _classCallCheck(this, VideoDataPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(VideoDataPlugin).apply(this, arguments));
+      }
+
+      _createClass(VideoDataPlugin, [{
+        key: "getIndex",
+        value: function getIndex() {
+          return 10;
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "videoData";
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'left';
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return "";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          // Check if enabled
+          var plugin = paella.player.config.plugins.list["es.upv.paella.videoDataPlugin"];
+          var exclude = plugin && plugin.excludeLocations || [];
+          var excludeParent = plugin && plugin.excludeParentLocations || [];
+          var excluded = exclude.some(function (url) {
+            var re = RegExp(url, "i");
+            return re.test(location.href);
+          });
+
+          if (window != window.parent) {
+            excluded = excluded || excludeParent.some(function (url) {
+              var re = RegExp(url, "i");
+
+              try {
+                return re.test(parent.location.href);
+              } catch (e) {
+                // Cross domain error
+                return false;
+              }
+            });
+          }
+
+          onSuccess(!excluded);
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var title = document.createElement("h1");
+          title.innerText = "";
+          title.className = "videoTitle";
+          this.button.appendChild(title);
+          paella.data.read("metadata", "title", function (data) {
+            title.innerText = data;
+          });
+        }
+      }, {
+        key: "action",
+        value: function action(button) {}
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.videoDataPlugin";
+        }
+      }]);
+
+      return VideoDataPlugin;
+    }(paella.VideoOverlayButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  var g_canvasWidth = 320;
+  var g_canvasHeight = 180;
+
+  function getThumbnailContainer(videoIndex) {
+    var container = document.createElement('canvas');
+    container.width = g_canvasWidth;
+    container.height = g_canvasHeight;
+    container.className = "zoom-thumbnail";
+    container.id = "zoomContainer" + videoIndex;
+    return container;
+  }
+
+  function getZoomRect() {
+    var zoomRect = document.createElement('div');
+    zoomRect.className = "zoom-rect";
+    return zoomRect;
+  }
+
+  function updateThumbnail(thumbElem) {
+    var player = thumbElem.player;
+    var canvas = thumbElem.canvas;
+    player.captureFrame().then(function (frameData) {
+      var ctx = canvas.getContext("2d");
+      ctx.drawImage(frameData.source, 0, 0, g_canvasWidth, g_canvasHeight);
+    });
+  }
+
+  function setupButtons(videoPlayer) {
+    var wrapper = videoPlayer.parent;
+    var wrapperDom = wrapper.domElement;
+    var zoomButton = document.createElement('div');
+    wrapperDom.appendChild(zoomButton);
+    zoomButton.className = "videoZoomButton btn zoomIn";
+    zoomButton.innerHTML = '<i class="glyphicon glyphicon-zoom-in"></i>';
+    $(zoomButton).on('mousedown', function () {
+      paella.player.videoContainer.disablePlayOnClick();
+      videoPlayer.zoomIn();
+    });
+    $(zoomButton).on('mouseup', function () {
+      setTimeout(function () {
+        return paella.player.videoContainer.enablePlayOnClick();
+      }, 10);
+    });
+    zoomButton = document.createElement('div');
+    wrapperDom.appendChild(zoomButton);
+    zoomButton.className = "videoZoomButton btn zoomOut";
+    zoomButton.innerHTML = '<i class="glyphicon glyphicon-zoom-out"></i>';
+    $(zoomButton).on('mousedown', function () {
+      paella.player.videoContainer.disablePlayOnClick();
+      videoPlayer.zoomOut();
+    });
+    $(zoomButton).on('mouseup', function () {
+      setTimeout(function () {
+        return paella.player.videoContainer.enablePlayOnClick();
+      }, 10);
+    });
+  }
+
+  return (
+    /*#__PURE__*/
+    function (_paella$VideoOverlayB5) {
+      _inherits(VideoZoomPlugin, _paella$VideoOverlayB5);
+
+      function VideoZoomPlugin() {
+        _classCallCheck(this, VideoZoomPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(VideoZoomPlugin).apply(this, arguments));
+      }
+
+      _createClass(VideoZoomPlugin, [{
+        key: "getIndex",
+        value: function getIndex() {
+          return 10;
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "videoZoom";
+        }
+      }, {
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return "";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          onSuccess(true);
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var _this204 = this;
+
+          var thisClass = this;
+          this._thumbnails = [];
+          this._visible = false;
+          this._available = false;
+
+          function checkVisibility() {
+            var buttons = $('.videoZoomButton');
+            var thumbs = $('.videoZoom');
+
+            if (this._visible && this._available) {
+              buttons.show();
+              thumbs.show();
+            } else {
+              buttons.hide();
+              thumbs.hide();
+            }
+          }
+
+          var players = paella.player.videoContainer.streamProvider.videoPlayers;
+          players.forEach(function (player, index) {
+            if (player.allowZoom()) {
+              _this204._available = player.zoomAvailable();
+              _this204._visible = _this204._available;
+              setupButtons.apply(_this204, [player]);
+              player.supportsCaptureFrame().then(function (supports) {
+                if (supports) {
+                  var thumbContainer = document.createElement('div');
+                  thumbContainer.className = "zoom-container";
+                  var thumb = getThumbnailContainer.apply(_this204, [index]);
+                  var zoomRect = getZoomRect.apply(_this204);
+
+                  _this204.button.appendChild(thumbContainer);
+
+                  thumbContainer.appendChild(thumb);
+                  thumbContainer.appendChild(zoomRect);
+                  $(thumbContainer).hide();
+
+                  _this204._thumbnails.push({
+                    player: player,
+                    thumbContainer: thumbContainer,
+                    zoomRect: zoomRect,
+                    canvas: thumb
+                  });
+
+                  checkVisibility.apply(_this204);
+                }
+              });
+            }
+          });
+          var update = false;
+          paella.events.bind(paella.events.play, function (evt) {
+            var updateThumbs = function updateThumbs() {
+              _this204._thumbnails.forEach(function (item) {
+                updateThumbnail(item);
+              });
+
+              if (update) {
+                setTimeout(function () {
+                  updateThumbs();
+                }, 2000);
+              }
+            };
+
+            update = true;
+            updateThumbs();
+          });
+          paella.events.bind(paella.events.pause, function (evt) {
+            update = false;
+          });
+          paella.events.bind(paella.events.videoZoomChanged, function (evt, target) {
+            _this204._thumbnails.some(function (thumb) {
+              if (thumb.player == target.video) {
+                if (thumb.player.zoom > 100) {
+                  $(thumb.thumbContainer).show();
+                  var x = target.video.zoomOffset.x * 100 / target.video.zoom;
+                  var y = target.video.zoomOffset.y * 100 / target.video.zoom;
+                  var zoomRect = thumb.zoomRect;
+                  $(zoomRect).css({
+                    left: x + '%',
+                    top: y + '%',
+                    width: 10000 / target.video.zoom + '%',
+                    height: 10000 / target.video.zoom + '%'
+                  });
+                } else {
+                  $(thumb.thumbContainer).hide();
+                }
+
+                return true;
+              }
+            });
+          });
+          paella.events.bind(paella.events.zoomAvailabilityChanged, function (evt, target) {
+            _this204._available = target.available;
+            _this204._visible = target.available;
+            checkVisibility.apply(_this204);
+          });
+          paella.events.bind(paella.events.controlBarDidHide, function () {
+            _this204._visible = false;
+            checkVisibility.apply(_this204);
+          });
+          paella.events.bind(paella.events.controlBarDidShow, function () {
+            _this204._visible = true;
+            checkVisibility.apply(_this204);
+          });
+        }
+      }, {
+        key: "action",
+        value: function action(button) {//paella.messageBox.showMessage(base.dictionary.translate("Live streaming mode: This is a live video, so, some capabilities of the player are disabled"));
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.videoZoomPlugin";
+        }
+      }]);
+
+      return VideoZoomPlugin;
+    }(paella.VideoOverlayButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin20) {
+      _inherits(VideoZoomToolbarPlugin, _paella$ButtonPlugin20);
+
+      function VideoZoomToolbarPlugin() {
+        _classCallCheck(this, VideoZoomToolbarPlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(VideoZoomToolbarPlugin).apply(this, arguments));
+      }
+
+      _createClass(VideoZoomToolbarPlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "videoZoomToolbar";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-screen';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 2030;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.videoZoomToolbarPlugin";
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Set video zoom");
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var players = paella.player.videoContainer.streamProvider.videoPlayers;
+          var pluginData = paella.player.config.plugins.list["es.upv.paella.videoZoomToolbarPlugin"];
+          var playerIndex = pluginData.targetStreamIndex;
+          this.targetPlayer = players.length > playerIndex ? players[playerIndex] : null;
+          onSuccess(paella.player.config.player.videoZoom.enabled && this.targetPlayer && this.targetPlayer.allowZoom());
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var _this205 = this;
+
+          paella.events.bind(paella.events.videoZoomChanged, function (evt, target) {
+            _this205.setText(Math.round(target.video.zoom) + "%");
+          });
+          this.setText("100%");
+
+          function getZoomButton(className, onClick) {
+            var btn = document.createElement('div');
+            btn.className = "videoZoomToolbarItem ".concat(className);
+            btn.innerHTML = "<i class=\"glyphicon glyphicon-".concat(className, "\"></i>");
+            $(btn).click(onClick);
+            return btn;
+          }
+
+          domElement.appendChild(getZoomButton('zoom-in', function (evt) {
+            _this205.targetPlayer.zoomIn();
+          }));
+          domElement.appendChild(getZoomButton('zoom-out', function (evt) {
+            _this205.targetPlayer.zoomOut();
+          }));
+        }
+      }]);
+
+      return VideoZoomToolbarPlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin21) {
+      _inherits(ViewModePlugin, _paella$ButtonPlugin21);
+
+      function ViewModePlugin() {
+        _classCallCheck(this, ViewModePlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(ViewModePlugin).apply(this, arguments));
+      }
+
+      _createClass(ViewModePlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'right';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return "showViewModeButton";
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-presentation-mode';
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 540;
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.viewModePlugin";
+        }
+      }, {
+        key: "getButtonType",
+        value: function getButtonType() {
+          return paella.ButtonPlugin.type.popUpButton;
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Change video layout");
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this.buttonItems = null;
+          this.buttons = [];
+          this.selected_button = null;
+          this.active_profiles = null;
+          this.active_profiles = this.config.activeProfiles;
+          onSuccess(!paella.player.videoContainer.isMonostream);
+        }
+      }, {
+        key: "closeOnMouseOut",
+        value: function closeOnMouseOut() {
+          return true;
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var thisClass = this;
+          var Keys = {
+            Tab: 9,
+            Return: 13,
+            Esc: 27,
+            End: 35,
+            Home: 36,
+            Left: 37,
+            Up: 38,
+            Right: 39,
+            Down: 40
+          };
+          paella.events.bind(paella.events.setProfile, function (event, params) {
+            thisClass.onProfileChange(params.profileName);
+          });
+          $(this.button).keyup(function (event) {
+            if (thisClass.isPopUpOpen()) {
+              if (event.keyCode == Keys.Up) {
+                if (thisClass.selected_button > 0) {
+                  if (thisClass.selected_button < thisClass.buttons.length) thisClass.buttons[thisClass.selected_button].className = 'viewModeItemButton ' + thisClass.buttons[thisClass.selected_button].data.profile;
+                  thisClass.selected_button--;
+                  thisClass.buttons[thisClass.selected_button].className = thisClass.buttons[thisClass.selected_button].className + ' selected';
+                }
+              } else if (event.keyCode == Keys.Down) {
+                if (thisClass.selected_button < thisClass.buttons.length - 1) {
+                  if (thisClass.selected_button >= 0) thisClass.buttons[thisClass.selected_button].className = 'viewModeItemButton ' + thisClass.buttons[thisClass.selected_button].data.profile;
+                  thisClass.selected_button++;
+                  thisClass.buttons[thisClass.selected_button].className = thisClass.buttons[thisClass.selected_button].className + ' selected';
+                }
+              } else if (event.keyCode == Keys.Return) {
+                thisClass.onItemClick(thisClass.buttons[thisClass.selected_button], thisClass.buttons[thisClass.selected_button].data.profile, thisClass.buttons[thisClass.selected_button].data.profile);
+              }
+            }
+          });
+        }
+      }, {
+        key: "rebuildProfileList",
+        value: function rebuildProfileList() {
+          var _this206 = this;
+
+          this.buttonItems = {};
+          this.domElement.innerText = "";
+          paella.profiles.profileList.forEach(function (profileData) {
+            if (profileData.hidden) return;
+
+            if (_this206.active_profiles) {
+              var active = false;
+
+              _this206.active_profiles.forEach(function (ap) {
+                if (ap == profile) {
+                  active = true;
+                }
+              });
+
+              if (active == false) {
+                return;
+              }
+            }
+
+            var buttonItem = _this206.getProfileItemButton(profileData.id, profileData);
+
+            _this206.buttonItems[profileData.id] = buttonItem;
+
+            _this206.domElement.appendChild(buttonItem);
+
+            _this206.buttons.push(buttonItem);
+
+            if (paella.player.selectedProfile == profileData.id) {
+              _this206.buttonItems[profileData.id].className = _this206.getButtonItemClass(profileData.id, true);
+            }
+          });
+          this.selected_button = this.buttons.length;
+        }
+      }, {
+        key: "buildContent",
+        value: function buildContent(domElement) {
+          var _this207 = this;
+
+          var thisClass = this;
+          this.domElement = domElement;
+          this.rebuildProfileList();
+          paella.events.bind(paella.events.profileListChanged, function () {
+            _this207.rebuildProfileList();
+          });
+        }
+      }, {
+        key: "getProfileItemButton",
+        value: function getProfileItemButton(profile, profileData) {
+          var elem = document.createElement('div');
+          elem.className = this.getButtonItemClass(profile, false);
+          var url = this.getButtonItemIcon(profileData);
+          url = url.replace(/\\/ig, '/');
+          elem.style.backgroundImage = "url(".concat(url, ")");
+          elem.id = profile + '_button';
+          elem.data = {
+            profile: profile,
+            profileData: profileData,
+            plugin: this
+          };
+          $(elem).click(function (event) {
+            this.data.plugin.onItemClick(this, this.data.profile, this.data.profileData);
+          });
+          return elem;
+        }
+      }, {
+        key: "onProfileChange",
+        value: function onProfileChange(profileName) {
+          var thisClass = this;
+          var ButtonItem = this.buttonItems[profileName];
+          var n = this.buttonItems;
+          var arr = Object.keys(n);
+          arr.forEach(function (i) {
+            thisClass.buttonItems[i].className = thisClass.getButtonItemClass(i, false);
+          });
+
+          if (ButtonItem) {
+            ButtonItem.className = thisClass.getButtonItemClass(profileName, true);
+          }
+        }
+      }, {
+        key: "onItemClick",
+        value: function onItemClick(button, profile, profileData) {
+          var ButtonItem = this.buttonItems[profile];
+
+          if (ButtonItem) {
+            paella.player.setProfile(profile);
+          }
+
+          paella.player.controls.hidePopUp(this.getName());
+        }
+      }, {
+        key: "getButtonItemClass",
+        value: function getButtonItemClass(profileName, selected) {
+          return 'viewModeItemButton ' + profileName + (selected ? ' selected' : '');
+        }
+      }, {
+        key: "getButtonItemIcon",
+        value: function getButtonItemIcon(profileData) {
+          return "".concat(paella.baseUrl, "resources/style/").concat(profileData.icon);
+        }
+      }]);
+
+      return ViewModePlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$ButtonPlugin22) {
+      _inherits(VolumeRangePlugin, _paella$ButtonPlugin22);
+
+      function VolumeRangePlugin() {
+        _classCallCheck(this, VolumeRangePlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(VolumeRangePlugin).apply(this, arguments));
+      }
+
+      _createClass(VolumeRangePlugin, [{
+        key: "getAlignment",
+        value: function getAlignment() {
+          return 'left';
+        }
+      }, {
+        key: "getSubclass",
+        value: function getSubclass() {
+          return 'volumeRangeButton';
+        }
+      }, {
+        key: "getIconClass",
+        value: function getIconClass() {
+          return 'icon-volume-high';
+        }
+      }, {
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.volumeRangePlugin";
+        }
+      }, {
+        key: "getDefaultToolTip",
+        value: function getDefaultToolTip() {
+          return base.dictionary.translate("Volume");
+        }
+      }, {
+        key: "getIndex",
+        value: function getIndex() {
+          return 9999;
+        }
+      }, {
+        key: "getAriaLabel",
+        value: function getAriaLabel() {
+          return base.dictionary.translate("Volume");
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          this._tempMasterVolume = 0;
+          this._inputMaster = null;
+          this._control_NotMyselfEvent = true;
+          this._storedValue = false;
+          var enabled = !base.userAgent.browser.IsMobileVersion;
+          onSuccess(enabled);
+        }
+      }, {
+        key: "setup",
+        value: function setup() {
+          var self = this; //STORE VALUES
+
+          paella.events.bind(paella.events.videoUnloaded, function (event, params) {
+            self.storeVolume();
+          }); //RECOVER VALUES
+
+          paella.events.bind(paella.events.singleVideoReady, function (event, params) {
+            self.loadStoredVolume(params);
+          });
+          paella.events.bind(paella.events.setVolume, function (evt, par) {
+            self.updateVolumeOnEvent(par);
+          });
+        }
+      }, {
+        key: "updateVolumeOnEvent",
+        value: function updateVolumeOnEvent(volume) {
+          var thisClass = this;
+
+          if (thisClass._control_NotMyselfEvent) {
+            thisClass._inputMaster = volume.master;
+          } else {
+            thisClass._control_NotMyselfEvent = true;
+          }
+        }
+      }, {
+        key: "storeVolume",
+        value: function storeVolume() {
+          var This = this;
+          paella.player.videoContainer.streamProvider.mainAudioPlayer.volume().then(function (v) {
+            This._tempMasterVolume = v;
+            This._storedValue = true;
+          });
+        }
+      }, {
+        key: "loadStoredVolume",
+        value: function loadStoredVolume(params) {
+          if (this._storedValue == false) {
+            this.storeVolume();
+          }
+
+          if (this._tempMasterVolume) {
+            paella.player.videoContainer.setVolume(this._tempMasterVolume);
+          }
+
+          this._storedValue = false;
+        }
+      }, {
+        key: "action",
+        value: function action(button) {
+          if (paella.player.videoContainer.muted) {
+            paella.player.videoContainer.unmute();
+          } else {
+            paella.player.videoContainer.mute();
+          }
+        }
+      }, {
+        key: "getExpandableContent",
+        value: function getExpandableContent() {
+          var _this208 = this;
+
+          var rangeInput = document.createElement('input');
+          this._inputMaster = rangeInput;
+          rangeInput.type = "range";
+          rangeInput.min = 0;
+          rangeInput.max = 1;
+          rangeInput.step = 0.01;
+          paella.player.videoContainer.audioPlayer.volume().then(function (vol) {
+            rangeInput.value = vol;
+          });
+
+          var updateMasterVolume = function updateMasterVolume() {
+            var masterVolume = $(rangeInput).val();
+            var slaveVolume = 0;
+            _this208._control_NotMyselfEvent = false;
+            paella.player.videoContainer.setVolume(masterVolume);
+          };
+
+          $(rangeInput).bind('input', function (e) {
+            updateMasterVolume();
+          });
+          $(rangeInput).change(function () {
+            updateMasterVolume();
+          });
+          paella.events.bind(paella.events.setVolume, function (event, params) {
+            rangeInput.value = params.master;
+
+            _this208.updateClass();
+          });
+          this.updateClass();
+          return rangeInput;
+        }
+      }, {
+        key: "updateClass",
+        value: function updateClass() {
+          var _this209 = this;
+
+          var selected = '';
+          var self = this;
+          paella.player.videoContainer.volume().then(function (volume) {
+            if (volume === undefined) {
+              selected = 'icon-volume-mid';
+            } else if (volume == 0) {
+              selected = 'icon-volume-mute';
+            } else if (volume < 0.33) {
+              selected = 'icon-volume-low';
+            } else if (volume < 0.66) {
+              selected = 'icon-volume-mid';
+            } else {
+              selected = 'icon-volume-high';
+            }
+
+            _this209.changeIconClass(selected);
+          });
+        }
+      }]);
+
+      return VolumeRangePlugin;
+    }(paella.ButtonPlugin)
+  );
+});
+
+(function () {
+  var WebmVideoFactory =
+  /*#__PURE__*/
+  function (_paella$VideoFactory6) {
+    _inherits(WebmVideoFactory, _paella$VideoFactory6);
+
+    function WebmVideoFactory() {
+      _classCallCheck(this, WebmVideoFactory);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(WebmVideoFactory).apply(this, arguments));
+    }
+
+    _createClass(WebmVideoFactory, [{
+      key: "webmCapable",
+      value: function webmCapable() {
+        var testEl = document.createElement("video");
+
+        if (testEl.canPlayType) {
+          return "" !== testEl.canPlayType('video/webm; codecs="vp8, vorbis"');
+        } else {
+          return false;
+        }
+      }
+    }, {
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        try {
+          if (!this.webmCapable()) return false;
+
+          for (var key in streamData.sources) {
+            if (key == 'webm') return true;
+          }
+        } catch (e) {}
+
+        return false;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        return new paella.Html5Video(id, streamData, rect.x, rect.y, rect.w, rect.h, 'webm');
+      }
+    }]);
+
+    return WebmVideoFactory;
+  }(paella.VideoFactory);
+
+  paella.videoFactories.WebmVideoFactory = WebmVideoFactory;
+})();
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$EventDrivenPl12) {
+      _inherits(WindowTitlePlugin, _paella$EventDrivenPl12);
+
+      function WindowTitlePlugin() {
+        _classCallCheck(this, WindowTitlePlugin);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(WindowTitlePlugin).apply(this, arguments));
+      }
+
+      _createClass(WindowTitlePlugin, [{
+        key: "getName",
+        value: function getName() {
+          return "es.upv.paella.windowTitlePlugin";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var _this210 = this;
+
+          this._initDone = false;
+          paella.player.videoContainer.masterVideo().duration().then(function (d) {
+            _this210.loadTitle();
+          });
+          onSuccess(true);
+        }
+      }, {
+        key: "loadTitle",
+        value: function loadTitle() {
+          var title = paella.player.videoLoader.getMetadata() && paella.player.videoLoader.getMetadata().title;
+          document.title = title || document.title;
+          this._initDone = true;
+        }
+      }]);
+
+      return WindowTitlePlugin;
+    }(paella.EventDrivenPlugin)
+  );
+});
+
+(function () {
+  var YoutubeVideo =
+  /*#__PURE__*/
+  function (_paella$VideoElementB6) {
+    _inherits(YoutubeVideo, _paella$VideoElementB6);
+
+    function YoutubeVideo(id, stream, left, top, width, height) {
+      var _this211;
+
+      _classCallCheck(this, YoutubeVideo);
+
+      _this211 = _possibleConstructorReturn(this, _getPrototypeOf(YoutubeVideo).call(this, id, stream, 'div', left, top, width, height));
+      _this211._posterFrame = null;
+      _this211._currentQuality = null;
+      _this211._autoplay = false;
+      _this211._readyPromise = null;
+      _this211._readyPromise = $.Deferred();
+      return _this211;
+    }
+
+    _createClass(YoutubeVideo, [{
+      key: "_deferredAction",
+      value: function _deferredAction(action) {
+        var _this212 = this;
+
+        return new Promise(function (resolve, reject) {
+          _this212._readyPromise.then(function () {
+            resolve(action());
+          }, function () {
+            reject();
+          });
+        });
+      }
+    }, {
+      key: "_getQualityObject",
+      value: function _getQualityObject(index, s) {
+        var level = 0;
+
+        switch (s) {
+          case 'small':
+            level = 1;
+            break;
+
+          case 'medium':
+            level = 2;
+            break;
+
+          case 'large':
+            level = 3;
+            break;
+
+          case 'hd720':
+            level = 4;
+            break;
+
+          case 'hd1080':
+            level = 5;
+            break;
+
+          case 'highres':
+            level = 6;
+            break;
+        }
+
+        return {
+          index: index,
+          res: {
+            w: null,
+            h: null
+          },
+          src: null,
+          label: s,
+          level: level,
+          bitrate: level,
+          toString: function toString() {
+            return this.label;
+          },
+          shortLabel: function shortLabel() {
+            return this.label;
+          },
+          compare: function compare(q2) {
+            return this.level - q2.level;
+          }
+        };
+      }
+    }, {
+      key: "_onStateChanged",
+      value: function _onStateChanged(e) {
+        console.log("On state changed");
+      } // Initialization functions
+
+    }, {
+      key: "getVideoData",
+      value: function getVideoData() {
+        var _this213 = this;
+
+        var This = this;
+        return new Promise(function (resolve, reject) {
+          var stream = _this213._stream.sources.youtube[0];
+
+          _this213._deferredAction(function () {
+            var videoData = {
+              duration: This.video.getDuration(),
+              currentTime: This.video.getCurrentTime(),
+              volume: This.video.getVolume(),
+              paused: !This._playing,
+              ended: This.video.ended,
+              res: {
+                w: stream.res.w,
+                h: stream.res.h
+              }
+            };
+            resolve(videoData);
+          });
+        });
+      }
+    }, {
+      key: "setPosterFrame",
+      value: function setPosterFrame(url) {
+        this._posterFrame = url;
+      }
+    }, {
+      key: "setAutoplay",
+      value: function setAutoplay(auto) {
+        this._autoplay = auto;
+      }
+    }, {
+      key: "setRect",
+      value: function setRect(rect, animate) {
+        this._rect = JSON.parse(JSON.stringify(rect));
+        var relativeSize = new paella.RelativeVideoSize();
+        var percentTop = relativeSize.percentVSize(rect.top) + '%';
+        var percentLeft = relativeSize.percentWSize(rect.left) + '%';
+        var percentWidth = relativeSize.percentWSize(rect.width) + '%';
+        var percentHeight = relativeSize.percentVSize(rect.height) + '%';
+        var style = {
+          top: percentTop,
+          left: percentLeft,
+          width: percentWidth,
+          height: percentHeight,
+          position: 'absolute'
+        };
+
+        if (animate) {
+          this.disableClassName();
+          var thisClass = this;
+          $('#' + this.identifier).animate(style, 400, function () {
+            thisClass.enableClassName();
+            paella.events.trigger(paella.events.setComposition, {
+              video: thisClass
+            });
+          });
+          this.enableClassNameAfter(400);
+        } else {
+          $('#' + this.identifier).css(style);
+          paella.events.trigger(paella.events.setComposition, {
+            video: this
+          });
+        }
+      }
+    }, {
+      key: "setVisible",
+      value: function setVisible(visible, animate) {
+        if (visible == "true" && animate) {
+          $('#' + this.identifier).show();
+          $('#' + this.identifier).animate({
+            opacity: 1.0
+          }, 300);
+        } else if (visible == "true" && !animate) {
+          $('#' + this.identifier).show();
+        } else if (visible == "false" && animate) {
+          $('#' + this.identifier).animate({
+            opacity: 0.0
+          }, 300);
+        } else if (visible == "false" && !animate) {
+          $('#' + this.identifier).hide();
+        }
+      }
+    }, {
+      key: "setLayer",
+      value: function setLayer(layer) {
+        $('#' + this.identifier).css({
+          zIndex: layer
+        });
+      }
+    }, {
+      key: "load",
+      value: function load() {
+        var _this214 = this;
+
+        var This = this;
+        return new Promise(function (resolve, reject) {
+          _this214._qualityListReadyPromise = $.Deferred();
+          paella.youtubePlayerVars.apiReadyPromise.then(function () {
+            var stream = _this214._stream.sources.youtube[0];
+
+            if (stream) {
+              // TODO: poster frame
+              _this214._youtubePlayer = new YT.Player(This.identifier, {
+                height: '390',
+                width: '640',
+                videoId: stream.id,
+                playerVars: {
+                  controls: 0,
+                  disablekb: 1
+                },
+                events: {
+                  onReady: function onReady(e) {
+                    This._readyPromise.resolve();
+                  },
+                  onStateChanged: function onStateChanged(e) {
+                    console.log("state changed");
+                  },
+                  onPlayerStateChange: function onPlayerStateChange(e) {
+                    console.log("state changed");
+                  }
+                }
+              });
+              resolve();
+            } else {
+              reject(new Error("Could not load video: invalid quality stream index"));
+            }
+          });
+        });
+      }
+    }, {
+      key: "getQualities",
+      value: function getQualities() {
+        var This = this;
+        return new Promise(function (resolve, reject) {
+          This._qualityListReadyPromise.then(function (q) {
+            var result = [];
+            var index = -1;
+            This._qualities = {};
+            q.forEach(function (item) {
+              index++;
+              This._qualities[item] = This._getQualityObject(index, item);
+              result.push(This._qualities[item]);
+            });
+            resolve(result);
+          });
+        });
+      }
+    }, {
+      key: "setQuality",
+      value: function setQuality(index) {
+        var _this215 = this;
+
+        return new Promise(function (resolve, reject) {
+          _this215._qualityListReadyPromise.then(function (q) {
+            for (var key in _this215._qualities) {
+              var searchQ = _this215._qualities[key];
+
+              if (_typeof(searchQ) == "object" && searchQ.index == index) {
+                _this215.video.setPlaybackQuality(searchQ.label);
+
+                break;
+              }
+            }
+
+            resolve();
+          });
+        });
+      }
+    }, {
+      key: "getCurrentQuality",
+      value: function getCurrentQuality() {
+        var _this216 = this;
+
+        return new Promise(function (resolve, reject) {
+          _this216._qualityListReadyPromise.then(function (q) {
+            resolve(_this216._qualities[_this216.video.getPlaybackQuality()]);
+          });
+        });
+      }
+    }, {
+      key: "play",
+      value: function play() {
+        var _this217 = this;
+
+        var This = this;
+        return new Promise(function (resolve, reject) {
+          This._playing = true;
+          This.video.playVideo();
+          new base.Timer(function (timer) {
+            var q = _this217.video.getAvailableQualityLevels();
+
+            if (q.length) {
+              timer.repeat = false;
+
+              _this217._qualityListReadyPromise.resolve(q);
+
+              resolve();
+            } else {
+              timer.repeat = true;
+            }
+          }, 500);
+        });
+      }
+    }, {
+      key: "pause",
+      value: function pause() {
+        var _this218 = this;
+
+        return this._deferredAction(function () {
+          _this218._playing = false;
+
+          _this218.video.pauseVideo();
+        });
+      }
+    }, {
+      key: "isPaused",
+      value: function isPaused() {
+        var _this219 = this;
+
+        return this._deferredAction(function () {
+          return !_this219._playing;
+        });
+      }
+    }, {
+      key: "duration",
+      value: function duration() {
+        var _this220 = this;
+
+        return this._deferredAction(function () {
+          return _this220.video.getDuration();
+        });
+      }
+    }, {
+      key: "setCurrentTime",
+      value: function setCurrentTime(time) {
+        var _this221 = this;
+
+        return this._deferredAction(function () {
+          _this221.video.seekTo(time);
+        });
+      }
+    }, {
+      key: "currentTime",
+      value: function currentTime() {
+        var _this222 = this;
+
+        return this._deferredAction(function () {
+          return _this222.video.getCurrentTime();
+        });
+      }
+    }, {
+      key: "setVolume",
+      value: function setVolume(volume) {
+        var _this223 = this;
+
+        return this._deferredAction(function () {
+          _this223.video.setVolume && _this223.video.setVolume(volume * 100);
+        });
+      }
+    }, {
+      key: "volume",
+      value: function volume() {
+        var _this224 = this;
+
+        return this._deferredAction(function () {
+          return _this224.video.getVolume() / 100;
+        });
+      }
+    }, {
+      key: "setPlaybackRate",
+      value: function setPlaybackRate(rate) {
+        var _this225 = this;
+
+        return this._deferredAction(function () {
+          _this225.video.playbackRate = rate;
+        });
+      }
+    }, {
+      key: "playbackRate",
+      value: function playbackRate() {
+        var _this226 = this;
+
+        return this._deferredAction(function () {
+          return _this226.video.playbackRate;
+        });
+      }
+    }, {
+      key: "goFullScreen",
+      value: function goFullScreen() {
+        var _this227 = this;
+
+        return this._deferredAction(function () {
+          var elem = _this227.video;
+
+          if (elem.requestFullscreen) {
+            elem.requestFullscreen();
+          } else if (elem.msRequestFullscreen) {
+            elem.msRequestFullscreen();
+          } else if (elem.mozRequestFullScreen) {
+            elem.mozRequestFullScreen();
+          } else if (elem.webkitEnterFullscreen) {
+            elem.webkitEnterFullscreen();
+          }
+        });
+      }
+    }, {
+      key: "unFreeze",
+      value: function unFreeze() {
+        var _this228 = this;
+
+        return this._deferredAction(function () {
+          var c = document.getElementById(_this228.video.className + "canvas");
+          $(c).remove();
+        });
+      }
+    }, {
+      key: "freeze",
+      value: function freeze() {
+        var _this229 = this;
+
+        return this._deferredAction(function () {
+          var canvas = document.createElement("canvas");
+          canvas.id = _this229.video.className + "canvas";
+          canvas.width = _this229.video.videoWidth;
+          canvas.height = _this229.video.videoHeight;
+          canvas.style.cssText = _this229.video.style.cssText;
+          canvas.style.zIndex = 2;
+          var ctx = canvas.getContext("2d");
+          ctx.drawImage(_this229.video, 0, 0, Math.ceil(canvas.width / 16) * 16, Math.ceil(canvas.height / 16) * 16); //Draw image
+
+          _this229.video.parentElement.appendChild(canvas);
+        });
+      }
+    }, {
+      key: "unload",
+      value: function unload() {
+        this._callUnloadEvent();
+
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "getDimensions",
+      value: function getDimensions() {
+        return paella_DeferredNotImplemented();
+      }
+    }, {
+      key: "video",
+      get: function get() {
+        return this._youtubePlayer;
+      }
+    }]);
+
+    return YoutubeVideo;
+  }(paella.VideoElementBase);
+
+  paella.YoutubeVideo = YoutubeVideo;
+
+  var YoutubeVideoFactory =
+  /*#__PURE__*/
+  function (_paella$VideoFactory7) {
+    _inherits(YoutubeVideoFactory, _paella$VideoFactory7);
+
+    function YoutubeVideoFactory() {
+      _classCallCheck(this, YoutubeVideoFactory);
+
+      return _possibleConstructorReturn(this, _getPrototypeOf(YoutubeVideoFactory).apply(this, arguments));
+    }
+
+    _createClass(YoutubeVideoFactory, [{
+      key: "initYoutubeApi",
+      value: function initYoutubeApi() {
+        if (!this._initialized) {
+          var tag = document.createElement('script');
+          tag.src = "https://www.youtube.com/iframe_api";
+          var firstScriptTag = document.getElementsByTagName('script')[0];
+          firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+          paella.youtubePlayerVars = {
+            apiReadyPromise: new $.Deferred()
+          };
+          this._initialized = true;
+        }
+      }
+    }, {
+      key: "isStreamCompatible",
+      value: function isStreamCompatible(streamData) {
+        try {
+          for (var key in streamData.sources) {
+            if (key == 'youtube') return true;
+          }
+        } catch (e) {}
+
+        return false;
+      }
+    }, {
+      key: "getVideoObject",
+      value: function getVideoObject(id, streamData, rect) {
+        this.initYoutubeApi();
+        return new paella.YoutubeVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+      }
+    }]);
+
+    return YoutubeVideoFactory;
+  }(paella.VideoFactory);
+
+  paella.videoFactories.YoutubeVideoFactory = YoutubeVideoFactory; //paella.youtubePlayerVars = {
+  //	apiReadyPromise: $.Promise()
+  //};
+})();
+
+function onYouTubeIframeAPIReady() {
+  //	console.log("Youtube iframe API ready");
+  paella.youtubePlayerVars.apiReadyPromise.resolve();
+}
+
+paella.addPlugin(function () {
+  return (
+    /*#__PURE__*/
+    function (_paella$userTracking$5) {
+      _inherits(MatomoTracking, _paella$userTracking$5);
+
+      function MatomoTracking() {
+        _classCallCheck(this, MatomoTracking);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(MatomoTracking).apply(this, arguments));
+      }
+
+      _createClass(MatomoTracking, [{
+        key: "getName",
+        value: function getName() {
+          return "org.opencast.usertracking.MatomoSaverPlugIn";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var site_id = this.config.site_id,
+              server = this.config.server,
+              heartbeat = this.config.heartbeat,
+              thisClass = this;
+
+          if (server && site_id) {
+            if (server.substr(-1) != '/') server += '/';
+
+            require([server + "piwik.js"], function (matomo) {
+              base.log.debug("Matomo Analytics Enabled");
+              paella.userTracking.matomotracker = Piwik.getAsyncTracker(server + "piwik.php", site_id);
+              paella.userTracking.matomotracker.client_id = thisClass.config.client_id;
+              if (heartbeat && heartbeat > 0) paella.userTracking.matomotracker.enableHeartBeatTimer(heartbeat);
+
+              if (Piwik && Piwik.MediaAnalytics) {
+                paella.events.bind(paella.events.videoReady, function () {
+                  Piwik.MediaAnalytics.scanForMedia();
+                });
+              }
+
+              thisClass.registerVisit();
+            });
+
+            onSuccess(true);
+          } else {
+            base.log.debug("No Matomo Site ID found in config file. Disabling Matomo Analytics PlugIn");
+            onSuccess(false);
+          }
+        }
+      }, {
+        key: "registerVisit",
+        value: function registerVisit() {
+          var title, event_id, series_title, series_id, presenter, view_mode;
+
+          if (paella.opencast && paella.opencast._episode) {
+            title = paella.opencast._episode.dcTitle;
+            event_id = paella.opencast._episode.id;
+            presenter = paella.opencast._episode.dcCreator;
+            paella.userTracking.matomotracker.setCustomVariable(5, "client", paella.userTracking.matomotracker.client_id || "Paella Opencast");
+          } else {
+            paella.userTracking.matomotracker.setCustomVariable(5, "client", paella.userTracking.matomotracker.client_id || "Paella Standalone");
+          }
+
+          if (paella.opencast && paella.opencast._episode && paella.opencast._episode.mediapackage) {
+            series_id = paella.opencast._episode.mediapackage.series;
+            series_title = paella.opencast._episode.mediapackage.seriestitle;
+          }
+
+          if (title) paella.userTracking.matomotracker.setCustomVariable(1, "event", title + " (" + event_id + ")", "page");
+          if (series_title) paella.userTracking.matomotracker.setCustomVariable(2, "series", series_title + " (" + series_id + ")", "page");
+          if (presenter) paella.userTracking.matomotracker.setCustomVariable(3, "presenter", presenter, "page");
+          paella.userTracking.matomotracker.setCustomVariable(4, "view_mode", view_mode, "page");
+
+          if (title && presenter) {
+            paella.userTracking.matomotracker.setDocumentTitle(title + " - " + (presenter || "Unknown"));
+            paella.userTracking.matomotracker.trackPageView(title + " - " + (presenter || "Unknown"));
+          } else {
+            paella.userTracking.matomotracker.trackPageView();
+          }
+        }
+      }, {
+        key: "log",
+        value: function log(event, params) {
+          if (paella.userTracking.matomotracker === undefined) {
+            base.log.debug("Matomo Tracker is missing");
+            return;
+          }
+
+          if (this.config.category === undefined || this.config.category === true) {
+            var value = "";
+
+            try {
+              value = JSON.stringify(params);
+            } catch (e) {}
+
+            switch (event) {
+              case paella.events.play:
+                paella.userTracking.matomotracker.trackEvent("Player.Controls", "Play");
+                break;
+
+              case paella.events.pause:
+                paella.userTracking.matomotracker.trackEvent("Player.Controls", "Pause");
+                break;
+
+              case paella.events.endVideo:
+                paella.userTracking.matomotracker.trackEvent("Player.Status", "Ended");
+                break;
+
+              case paella.events.showEditor:
+                paella.userTracking.matomotracker.trackEvent("Player.Editor", "Show");
+                break;
+
+              case paella.events.hideEditor:
+                paella.userTracking.matomotracker.trackEvent("Player.Editor", "Hide");
+                break;
+
+              case paella.events.enterFullscreen:
+                paella.userTracking.matomotracker.trackEvent("Player.View", "Fullscreen");
+                break;
+
+              case paella.events.exitFullscreen:
+                paella.userTracking.matomotracker.trackEvent("Player.View", "ExitFullscreen");
+                break;
+
+              case paella.events.loadComplete:
+                paella.userTracking.matomotracker.trackEvent("Player.Status", "LoadComplete");
+                break;
+
+              case paella.events.showPopUp:
+                paella.userTracking.matomotracker.trackEvent("Player.PopUp", "Show", value);
+                break;
+
+              case paella.events.hidePopUp:
+                paella.userTracking.matomotracker.trackEvent("Player.PopUp", "Hide", value);
+                break;
+
+              case paella.events.captionsEnabled:
+                paella.userTracking.matomotracker.trackEvent("Player.Captions", "Enabled", value);
+                break;
+
+              case paella.events.captionsDisabled:
+                paella.userTracking.matomotracker.trackEvent("Player.Captions", "Disabled", value);
+                break;
+
+              case paella.events.setProfile:
+                paella.userTracking.matomotracker.trackEvent("Player.View", "Profile", value);
+                break;
+
+              case paella.events.seekTo:
+              case paella.events.seekToTime:
+                paella.userTracking.matomotracker.trackEvent("Player.Controls", "Seek", value);
+                break;
+
+              case paella.events.setVolume:
+                paella.userTracking.matomotracker.trackEvent("Player.Settings", "Volume", value);
+                break;
+
+              case paella.events.resize:
+                paella.userTracking.matomotracker.trackEvent("Player.View", "resize", value);
+                break;
+
+              case paella.events.setPlaybackRate:
+                paella.userTracking.matomotracker.trackEvent("Player.Controls", "PlaybackRate", value);
+                break;
+            }
+          }
+        }
+      }]);
+
+      return MatomoTracking;
+    }(paella.userTracking.SaverPlugIn)
+  );
+});
+paella.addPlugin(function () {
+  var self = this;
+  return (
+    /*#__PURE__*/
+    function (_paella$userTracking$6) {
+      _inherits(X5gonTracking, _paella$userTracking$6);
+
+      function X5gonTracking() {
+        _classCallCheck(this, X5gonTracking);
+
+        return _possibleConstructorReturn(this, _getPrototypeOf(X5gonTracking).apply(this, arguments));
+      }
+
+      _createClass(X5gonTracking, [{
+        key: "getName",
+        value: function getName() {
+          return "org.opencast.usertracking.x5gonSaverPlugIn";
+        }
+      }, {
+        key: "checkEnabled",
+        value: function checkEnabled(onSuccess) {
+          var urlCookieconsentJS = "https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js",
+              token = this.config.token,
+              translations = [],
+              path,
+              testingEnvironment = this.config.testing_environment,
+              trackingPermission,
+              tracked;
+
+          function trackX5gon() {
+            base.log.debug("X5GON: trackX5gon permission check [trackingPermission " + trackingPermission + "] [tracked " + tracked + "]");
+
+            if (isTrackingPermission() && !tracked) {
+              if (!token) {
+                base.log.debug("X5GON: token missing! Disabling X5gon PlugIn");
+                onSuccess(false);
+              } else {
+                // load x5gon lib from remote server
+                base.log.debug("X5GON: trackX5gon loading x5gon-snippet, token: " + token);
+
+                require(["https://platform.x5gon.org/api/v1/snippet/latest/x5gon-log.min.js"], function (x5gon) {
+                  base.log.debug("X5GON: external x5gon snippet loaded");
+
+                  if (typeof x5gonActivityTracker !== 'undefined') {
+                    x5gonActivityTracker(token, testingEnvironment);
+                    base.log.debug("X5GON: send data to X5gon servers");
+                    tracked = true;
+                  }
+                });
+              }
+
+              onSuccess(true);
+            } else {
+              onSuccess(false);
+            }
+          }
+
+          function initCookieNotification() {
+            // load cookieconsent lib from remote server
+            require([urlCookieconsentJS], function (cookieconsent) {
+              base.log.debug("X5GON: external cookie consent lib loaded");
+              window.cookieconsent.initialise({
+                "palette": {
+                  "popup": {
+                    "background": "#1d8a8a"
+                  },
+                  "button": {
+                    "background": "#62ffaa"
+                  }
+                },
+                "type": "opt-in",
+                "position": "top",
+                "content": {
+                  "message": translate('x5_message', "On this site the X5gon service can be included, to provide personalized Open Educational Ressources."),
+                  "allow": translate('x5_accept', "Accept"),
+                  "deny": translate('x5_deny', "Deny"),
+                  "link": translate('x5_more_info', "More information"),
+                  "policy": translate('x5_policy', "Cookie Policy"),
+                  // link to the X5GON platform privacy policy - describing what are we collecting
+                  // through the platform
+                  "href": "https://platform.x5gon.org/privacy-policy"
+                },
+                onInitialise: function onInitialise(status) {
+                  var type = this.options.type;
+                  var didConsent = this.hasConsented(); // enable cookies - send user data to the platform
+                  // only if the user enabled cookies
+
+                  if (type == 'opt-in' && didConsent) {
+                    setTrackingPermission(true);
+                  } else {
+                    setTrackingPermission(false);
+                  }
+                },
+                onStatusChange: function onStatusChange(status, chosenBefore) {
+                  var type = this.options.type;
+                  var didConsent = this.hasConsented(); // enable cookies - send user data to the platform
+                  // only if the user enabled cookies
+
+                  if (type == 'opt-in' && didConsent) {
+                    setTrackingPermission(true);
+                  } else {
+                    setTrackingPermission(false);
+                  }
+                },
+                onRevokeChoice: function onRevokeChoice() {
+                  var type = this.options.type;
+                  var didConsent = this.hasConsented(); // disable cookies - set what to do when
+                  // the user revokes cookie usage
+
+                  if (type == 'opt-in' && didConsent) {
+                    setTrackingPermission(true);
+                  } else {
+                    setTrackingPermission(false);
+                  }
+                }
+              });
+            });
+          }
+
+          function initTranslate(language, funcSuccess, funcError) {
+            base.log.debug('X5GON: selecting language ' + language.slice(0, 2));
+            var jsonstr = window.location.origin + '/player/localization/paella_' + language.slice(0, 2) + '.json';
+            $.ajax({
+              url: jsonstr,
+              dataType: 'json',
+              success: function success(data) {
+                if (data) {
+                  data.value_locale = language;
+                  translations = data;
+
+                  if (funcSuccess) {
+                    funcSuccess(translations);
+                  }
+                } else if (funcError) {
+                  funcError();
+                }
+              },
+              error: function error() {
+                if (funcError) {
+                  funcError();
+                }
+              }
+            });
+          }
+
+          function translate(str, strIfNotFound) {
+            return translations[str] != undefined ? translations[str] : strIfNotFound;
+          }
+
+          function isTrackingPermission() {
+            if (checkDoNotTrackStatus() || !trackingPermission) {
+              return false;
+            } else {
+              return true;
+            }
+          }
+
+          function checkDoNotTrackStatus() {
+            if (window.navigator.doNotTrack == 1 || window.navigator.msDoNotTrack == 1) {
+              base.log.debug("X5GON: Browser DoNotTrack: true");
+              return true;
+            }
+
+            base.log.debug("X5GON: Browser DoNotTrack: false");
+            return false;
+          }
+
+          function setTrackingPermission(permissionStatus) {
+            trackingPermission = permissionStatus;
+            base.log.debug("X5GON: trackingPermissions: " + permissionStatus);
+            trackX5gon();
+          }
+
+          ;
+          initTranslate(navigator.language, function () {
+            base.log.debug('X5GON: Successfully translated.');
+            initCookieNotification();
+          }, function () {
+            base.log.debug('X5gon: Error translating.');
+            initCookieNotification();
+          });
+          trackX5gon();
+          onSuccess(true);
+        }
+      }, {
+        key: "log",
+        value: function log(event, params) {
+          if (this.config.category === undefined || this.config.category === true) {
+            var category = this.config.category || "PaellaPlayer";
+            var action = event;
+            var label = "";
+
+            try {
+              label = JSON.stringify(params);
+            } catch (e) {}
+          }
+        }
+      }]);
+
+      return X5gonTracking;
+    }(paella.userTracking.SaverPlugIn)
+  );
+});
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/javascript/paella_player_es2015.js b/src/main/webapp/static/js/paella/player/javascript/paella_player_es2015.js
new file mode 100644
index 0000000000000000000000000000000000000000..73e8265e1aa2512d925d8d81ba055135e59bb524
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/javascript/paella_player_es2015.js
@@ -0,0 +1,18012 @@
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+var GlobalParams = {
+	video:{zIndex:1},
+	background:{zIndex:0}
+};
+
+
+window.paella = window.paella || {};
+paella.player = null;
+paella.version = "6.3.1 - build: 6b43877";
+
+(function buildBaseUrl() {
+	if (window.paella_debug_baseUrl) {
+		paella.baseUrl = window.paella_debug_baseUrl;
+	}
+	else {
+		var scripts = document.getElementsByTagName('script');
+		var script = scripts[scripts.length-1].src.split("/");
+		script.pop(); // Remove javascript file name
+		script.pop(); // Remove javascript/ folder name
+		paella.baseUrl = script.join("/") + '/';
+	}
+})();
+
+paella.events = {
+	play:"paella:play",
+	pause:"paella:pause",
+	next:"paella:next",
+	previous:"paella:previous",
+	seeking:"paella:seeking",
+	seeked:"paella:seeked",
+	timeupdate:"paella:timeupdate",
+	timeUpdate:"paella:timeupdate",
+	seekTo:"paella:setseek",
+	endVideo:"paella:endvideo",			// Triggered when a single video stream ends (once per video)
+	ended:"paella:ended",				// Triggered when the video ends 
+	seekToTime:"paella:seektotime",
+	setTrim:"paella:settrim",
+	setPlaybackRate:"paella:setplaybackrate",
+	setVolume:'paella:setVolume',
+	setComposition:'paella:setComposition',
+	loadStarted:'paella:loadStarted',
+	loadComplete:'paella:loadComplete',
+	loadPlugins:'paella:loadPlugins',
+	error:'paella:error',
+	documentChanged:'paella:documentChanged',
+	didSaveChanges:'paella:didsavechanges',
+	controlBarWillHide:'paella:controlbarwillhide',
+	controlBarDidHide:'paella:controlbardidhide',
+	controlBarDidShow:'paella:controlbardidshow',
+	hidePopUp:'paella:hidePopUp',
+	showPopUp:'paella:showPopUp',
+	enterFullscreen:'paella:enterFullscreen',
+	exitFullscreen:'paella:exitFullscreen',
+	resize:'paella:resize',		// params: { width:paellaPlayerContainer width, height:paellaPlayerContainer height }
+	videoZoomChanged:'paella:videoZoomChanged',
+	audioTagChanged:'paella:audiotagchanged',
+	zoomAvailabilityChanged:'paella:zoomavailabilitychanged',
+	
+	qualityChanged:'paella:qualityChanged',
+	singleVideoReady:'paella:singleVideoReady',
+	singleVideoUnloaded:'paella:singleVideoUnloaded',
+	videoReady:'paella:videoReady',
+	videoUnloaded:'paella:videoUnloaded',
+	
+	controlBarLoaded:'paella:controlBarLoaded',	
+	
+	flashVideoEvent:'paella:flashVideoEvent',
+	
+	captionAdded: 'paella:caption:add', // Event triggered when new caption is available.
+	captionsEnabled: 'paella:caption:enabled',  // Event triguered when a caption es enabled.
+	captionsDisabled: 'paella:caption:disabled',  // Event triguered when a caption es disabled.
+	
+	profileListChanged:'paella:profilelistchanged',
+	setProfile:'paella:setprofile',
+
+	seekAvailabilityChanged:'paella:seekAvailabilityChanged',
+	
+	trigger:function(event,params) {
+		$(document).trigger(event,params);
+	},
+	bind:function(event,callback) { $(document).bind(event,function(event,params) { callback(event,params);}); },
+	
+	setupExternalListener:function() {
+		window.addEventListener("message", function(event) {
+			if (event.data && event.data.event) {
+				paella.events.trigger(event.data.event,event.data.params);
+			}
+		}, false);
+	}
+};
+
+paella.events.setupExternalListener();
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+// Paella Mouse Manager
+///////////////////////////////////////////////////////
+(() => {
+	class MouseManager {	
+		get targetObject() { return this._targetObject; }
+		set targetObject(t) { this._targetObject = t; }
+
+		constructor() {
+			paella.events.bind('mouseup',(event) => this.up(event));
+			paella.events.bind('mousemove',(event) => this.move(event));
+			paella.events.bind('mouseover',(event) =>  this.over(event));
+		}
+	
+		down(targetObject,event) {
+			this.targetObject = targetObject;
+			if (this.targetObject && this.targetObject.down) {
+				this.targetObject.down(event,event.pageX,event.pageY);
+				event.cancelBubble = true;
+			}
+			return false;
+		}
+	
+		up(event) {
+			if (this.targetObject && this.targetObject.up) {
+				this.targetObject.up(event,event.pageX,event.pageY);
+				event.cancelBubble = true;
+			}
+			this.targetObject = null;
+			return false;
+		}
+	
+		out(event) {
+			if (this.targetObject && this.targetObject.out) {
+				this.targetObject.out(event,event.pageX,event.pageY);
+				event.cancelBubble = true;
+			}
+			return false;
+		}
+	
+		move(event) {
+			if (this.targetObject && this.targetObject.move) {
+				this.targetObject.move(event,event.pageX,event.pageY);
+				event.cancelBubble = true;
+			}
+			return false;
+		}
+	
+		over(event) {
+			if (this.targetObject && this.targetObject.over) {
+				this.targetObject.over(event,event.pageX,event.pageY);
+				event.cancelBubble = true;
+			}
+			return false;
+		}
+	}
+
+	paella.MouseManager = MouseManager;
+})();
+
+
+// paella.utils
+///////////////////////////////////////////////////////
+(function initSkinDeps() {
+	var link = document.createElement('link');
+	link.rel = 'stylesheet';
+	link.href = paella.baseUrl + 'resources/bootstrap/css/bootstrap.min.css';
+	link.type = 'text/css';
+	link.media = 'screen';
+	link.charset = 'utf-8';
+	document.head.appendChild(link);
+})();
+
+paella.utils = {	
+	mouseManager: new paella.MouseManager(),
+	
+	folders: {
+		get: function(folder) {
+			if (paella.player && paella.player.config && paella.player.config.folders && paella.player.config.folders[folder]) {
+				return paella.player.config.folders[folder];	
+			}
+			return undefined;			
+		},
+		
+		profiles: function() {
+			return paella.baseUrl + (paella.utils.folders.get("profiles") || "config/profiles");
+		},
+		
+		resources: function() {
+			return paella.baseUrl + (paella.utils.folders.get("resources") || "resources");
+		},
+		
+		skins: function() {
+			return paella.baseUrl + (paella.utils.folders.get("skins") || paella.utils.folders.get("resources") + "/style");
+		}
+	},
+	
+	styleSheet: {
+		removeById:function(id) {
+			var outStyleSheet = $(document.head).find('#' + id)[0];
+			if (outStyleSheet) {
+				document.head.removeChild(outStyleSheet);
+			}
+		},
+		
+		remove:function(fileName) {
+			var links = document.head.getElementsByTagName('link');
+			for (var i =0; i<links.length; ++i) {
+				if (links[i].href) {
+					document.head.removeChild(links[i]);
+					break;
+				}
+			}
+		},
+		
+		add:function(fileName,id) {
+			var link = document.createElement('link');
+			link.rel = 'stylesheet';
+			link.href = fileName;
+			link.type = 'text/css';
+			link.media = 'screen';
+			link.charset = 'utf-8';
+			if (id) link.id = id;
+			document.head.appendChild(link);
+		},
+		
+		swap:function(outFile,inFile) {
+			this.remove(outFile);
+			this.add(inFile);
+		}
+	},
+	
+	skin: {
+		set:function(skinName) {
+			var skinId = 'paellaSkin';
+			paella.utils.styleSheet.removeById(skinId);
+			paella.utils.styleSheet.add(paella.utils.folders.skins() + '/style_' + skinName + '.css');
+			base.cookies.set("skin",skinName);
+		},
+		
+		restore:function(defaultSkin) {
+			var storedSkin = base.cookies.get("skin");
+			if (storedSkin && storedSkin!="") {
+				this.set(storedSkin);
+			}
+			else {
+				this.set(defaultSkin);
+			}
+		}
+	},
+
+	timeParse:{
+		timeToSeconds:function(timeString) {
+			var hours = 0;
+			var minutes = 0;
+			var seconds =0;
+			if (/([0-9]+)h/i.test(timeString)) {
+				hours = parseInt(RegExp.$1) * 60 * 60;
+			}
+			if (/([0-9]+)m/i.test(timeString)) {
+				minutes = parseInt(RegExp.$1) * 60;
+			}
+			if (/([0-9]+)s/i.test(timeString)) {
+				seconds = parseInt(RegExp.$1);
+			}
+			return hours + minutes + seconds;
+		},
+	
+		secondsToTime:function(seconds) {
+			var hrs = ~~ (seconds / 3600);
+			if (hrs<10) hrs = '0' + hrs;
+			var mins = ~~ ((seconds % 3600) / 60);
+			if (mins<10) mins = '0' + mins;
+			var secs = Math.floor(seconds % 60);
+			if (secs<10) secs = '0' + secs;
+			return hrs + ':' + mins + ':' + secs;
+		},
+		secondsToText:function(secAgo) {
+			// Seconds
+			if (secAgo <= 1) {
+				return base.dictionary.translate("1 second ago");
+			}
+			if (secAgo < 60) {
+				return base.dictionary.translate("{0} seconds ago").replace(/\{0\}/g, secAgo);
+			}
+			// Minutes
+			var minAgo = Math.round(secAgo/60);
+			if (minAgo <= 1) {
+				return base.dictionary.translate("1 minute ago");
+			}
+			if (minAgo < 60) {
+				return base.dictionary.translate("{0} minutes ago").replace(/\{0\}/g, minAgo);
+			}
+			//Hours
+			var hourAgo = Math.round(secAgo/(60*60));
+			if (hourAgo <= 1) {
+				return base.dictionary.translate("1 hour ago");
+			}
+			if (hourAgo < 24) {
+				return base.dictionary.translate("{0} hours ago").replace(/\{0\}/g, hourAgo);
+			}
+			//Days
+			var daysAgo = Math.round(secAgo/(60*60*24));
+			if (daysAgo <= 1) {
+				return base.dictionary.translate("1 day ago");
+			}
+			if (daysAgo < 24) {
+				return base.dictionary.translate("{0} days ago").replace(/\{0\}/g, daysAgo);
+			}
+			//Months
+			var monthsAgo = Math.round(secAgo/(60*60*24*30));
+			if (monthsAgo <= 1) {
+				return base.dictionary.translate("1 month ago");
+			}
+			if (monthsAgo < 12) {
+				return base.dictionary.translate("{0} months ago").replace(/\{0\}/g, monthsAgo);
+			}
+			//Years
+			var yearsAgo = Math.round(secAgo/(60*60*24*365));
+			if (yearsAgo <= 1) {
+				return base.dictionary.translate("1 year ago");
+			}
+			return base.dictionary.translate("{0} years ago").replace(/\{0\}/g, yearsAgo);
+		},
+		matterhornTextDateToDate: function(mhdate) {
+			var d = new Date();
+			d.setFullYear(parseInt(mhdate.substring(0, 4), 10));
+			d.setMonth(parseInt(mhdate.substring(5, 7), 10) - 1);
+			d.setDate(parseInt(mhdate.substring(8, 10), 10));
+			d.setHours(parseInt(mhdate.substring(11, 13), 10));
+			d.setMinutes(parseInt(mhdate.substring(14, 16), 10));
+			d.setSeconds(parseInt(mhdate.substring(17, 19), 10));
+
+			return d;
+		}
+	},
+
+	objectFromString: function(str) {
+	  var arr = str.split(".");
+	
+	  var fn = (window || this);
+	  for (var i = 0, len = arr.length; i < len; i++) {
+		fn = fn[arr[i]];
+	  }
+	
+	  if (typeof fn !== "function") {
+		throw new Error("constructor not found");
+	  }
+	
+	  return fn;
+	}
+};
+
+(function() {
+	let g_delegateCallbacks = {};
+	let g_dataDelegates = [];
+
+	class DataDelegate {
+		read(context,params,onSuccess) {
+			if (typeof(onSuccess)=='function') {
+				onSuccess({},true);
+			}
+		}
+
+		write(context,params,value,onSuccess) {
+			if (typeof(onSuccess)=='function') {
+				onSuccess({},true);
+			}
+		}
+
+		remove(context,params,onSuccess) {
+			if (typeof(onSuccess)=='function') {
+				onSuccess({},true);
+			}
+		}
+	}
+
+	paella.DataDelegate = DataDelegate;
+
+	paella.dataDelegates = {};
+
+	class Data {
+		get enabled() { return this._enabled; }
+
+		get dataDelegates() { return g_dataDelegates; }
+	
+		constructor(config) {
+			this._enabled = config.data.enabled;
+
+			// Delegate callbacks
+			let executedCallbacks = [];
+			for (let context in g_delegateCallbacks) {
+				let callback = g_delegateCallbacks[context];
+				let DelegateClass = null;
+				let delegateName = null;
+
+				if (!executedCallbacks.some((execCallbackData) => {
+					if (execCallbackData.callback==callback) {
+						delegateName = execCallbackData.delegateName;
+						return true;
+					}
+				})) {
+					DelegateClass = g_delegateCallbacks[context]();
+					delegateName = DelegateClass.name;
+					paella.dataDelegates[delegateName] = DelegateClass;
+					executedCallbacks.push({ callback:callback, delegateName:delegateName });
+				}
+
+				if (!config.data.dataDelegates[context]) {
+					config.data.dataDelegates[context] = delegateName;
+				}
+
+			}
+
+			for (var key in config.data.dataDelegates) {
+				try {
+					
+					var delegateName = config.data.dataDelegates[key];
+					var DelegateClass = paella.dataDelegates[delegateName];
+					var delegateInstance = new DelegateClass();
+					g_dataDelegates[key] = delegateInstance;
+				
+				}
+				catch (e) {
+					console.warn("Warning: delegate not found - " + delegateName);
+				}
+			}
+
+
+			// Default data delegate
+			if (!this.dataDelegates["default"]) {
+				this.dataDelegates["default"] = new paella.dataDelegates.DefaultDataDelegate();
+			}
+		}
+	
+		read(context,key,onSuccess) {
+			var del = this.getDelegate(context);
+			del.read(context,key,onSuccess);
+		}
+	
+		write(context,key,params,onSuccess) {
+			var del = this.getDelegate(context);
+			del.write(context,key,params,onSuccess);
+		}
+	
+		remove(context,key,onSuccess) {
+			var del = this.getDelegate(context);
+			del.remove(context,key,onSuccess);
+		}
+	
+		getDelegate(context) {
+			if (this.dataDelegates[context]) return this.dataDelegates[context];
+			else return this.dataDelegates["default"];
+		}
+	}
+
+	paella.Data = Data;
+
+	paella.addDataDelegate = function(context,callback) {
+		if (Array.isArray(context)) {
+			context.forEach((ctx) => {
+				g_delegateCallbacks[ctx] = callback;
+			})
+		}
+		else if (typeof(context)=="string") {
+			g_delegateCallbacks[context] = callback;
+		}
+	}
+
+})();
+
+paella.addDataDelegate(["default","trimming"], () => {
+	paella.dataDelegates.DefaultDataDelegate = class CookieDataDelegate extends paella.DataDelegate {
+		serializeKey(context,params) {
+			if (typeof(params)=='object') {
+				params = JSON.stringify(params);
+			}
+			return context + '|' + params;
+		}
+	
+		read(context,params,onSuccess) {
+			var key = this.serializeKey(context,params);
+			var value = base.cookies.get(key);
+			try {
+				value = unescape(value);
+				value = JSON.parse(value);
+			}
+			catch (e) {}
+			if (typeof(onSuccess)=='function') {
+				onSuccess(value,true);
+			}
+		}
+	
+		write(context,params,value,onSuccess) {
+			var key = this.serializeKey(context,params);
+			if (typeof(value)=='object') {
+				value = JSON.stringify(value);
+			}
+			value = escape(value);
+			base.cookies.set(key,value);
+			if(typeof(onSuccess)=='function') {
+				onSuccess({},true);
+			}
+		}
+	
+		remove(context,params,onSuccess) {
+			var key = this.serializeKey(context,params);
+			if (typeof(value)=='object') {
+				value = JSON.stringify(value);
+			}
+			base.cookies.set(key,'');
+			if(typeof(onSuccess)=='function') {
+				onSuccess({},true);
+			}
+		}
+	}
+
+	return paella.dataDelegates.DefaultDataDelegate;
+})
+
+// Will be initialized inmediately after loading config.json, in PaellaPlayer.onLoadConfig()
+paella.data = null;
+
+
+(() => {
+	// Include scripts in header
+	let g_requiredScripts = {};
+	
+	paella.require = function(path) {
+		if (!g_requiredScripts[path]) {
+			g_requiredScripts[path] = new Promise((resolve,reject) => {
+				let script = document.createElement("script");
+				if (path.split(".").pop()=='js') {
+					script.src = path;
+					script.async = false;
+					document.head.appendChild(script);
+					setTimeout(() => resolve(), 100);
+				}
+				else {
+					reject(new Error("Unexpected file type"));
+				}
+			});
+		}
+		return g_requiredScripts[path];
+	};
+
+	class MessageBox {
+		get modalContainerClassName() { return 'modalMessageContainer'; } 
+		get frameClassName() { return 'frameContainer'; }
+		get messageClassName() { return 'messageContainer'; }
+		get errorClassName() { return 'errorContainer'; }
+		
+		get currentMessageBox() { return this._currentMessageBox; }
+		set currentMessageBox(m) { this._currentMessageBox = m; } 
+		get messageContainer() { return this._messageContainer; }
+		get onClose() { return this._onClose; }
+		set onClose(c) { this._onClose = c; }
+	
+		constructor() {
+			this._messageContainer = null;
+			$(window).resize((event) => this.adjustTop());
+		}
+
+		showFrame(src,params) {
+			var closeButton = true;
+			var onClose = null;
+			if (params) {
+				closeButton = params.closeButton;
+				onClose = params.onClose;
+			}
+	
+			this.doShowFrame(src,closeButton,onClose);
+		}
+	
+		doShowFrame(src,closeButton,onClose) {
+			this.onClose = onClose;
+			$('#playerContainer').addClass("modalVisible");
+	
+			if (this.currentMessageBox) {
+				this.close();
+			}
+	
+			var modalContainer = document.createElement('div');
+			modalContainer.className = this.modalContainerClassName;
+			modalContainer.style.position = 'fixed';
+			modalContainer.style.top = '0px';
+			modalContainer.style.left = '0px';
+			modalContainer.style.right = '0px';
+			modalContainer.style.bottom = '0px';
+			modalContainer.style.zIndex = 999999;
+
+			var messageContainer = document.createElement('div');
+			messageContainer.className = this.frameClassName;
+			modalContainer.appendChild(messageContainer);
+	
+			var iframeContainer = document.createElement('iframe');
+			iframeContainer.src = src;
+			iframeContainer.setAttribute("frameborder", "0");
+			iframeContainer.style.width = "100%";
+			iframeContainer.style.height = "100%";
+			messageContainer.appendChild(iframeContainer);
+	
+			if (paella.player && paella.player.isFullScreen()) {
+				paella.player.mainContainer.appendChild(modalContainer);
+			}else{
+				$('body')[0].appendChild(modalContainer);
+			}
+	
+			this.currentMessageBox = modalContainer;
+			this._messageContainer = messageContainer;
+			this.adjustTop();
+	
+			if (closeButton) {
+				this.createCloseButton();
+			}
+		}
+	
+		showElement(domElement,params) {
+			var closeButton = true;
+			var onClose = null;
+			var className = this.messageClassName;
+			if (params) {
+				className = params.className;
+				closeButton = params.closeButton;
+				onClose = params.onClose;
+			}
+	
+			this.doShowElement(domElement,closeButton,className,onClose);
+		}
+	
+		showMessage(message,params) {
+			var closeButton = true;
+			var onClose = null;
+			var className = this.messageClassName;
+			if (params) {
+				className = params.className;
+				closeButton = params.closeButton;
+				onClose = params.onClose;
+			}
+	
+			this.doShowMessage(message,closeButton,className,onClose);
+		}
+	
+		doShowElement(domElement,closeButton,className,onClose) {
+			this.onClose = onClose;
+			$('#playerContainer').addClass("modalVisible");
+	
+			if (this.currentMessageBox) {
+				this.close();
+			}
+			if (!className) className = this.messageClassName;
+	
+			var modalContainer = document.createElement('div');
+			modalContainer.className = this.modalContainerClassName;
+			modalContainer.style.position = 'fixed';
+			modalContainer.style.top = '0px';
+			modalContainer.style.left = '0px';
+			modalContainer.style.right = '0px';
+			modalContainer.style.bottom = '0px';
+			modalContainer.style.zIndex = 999999;
+	
+			var messageContainer = document.createElement('div');
+			messageContainer.className = className;
+			messageContainer.appendChild(domElement);
+			modalContainer.appendChild(messageContainer);
+	
+			$('body')[0].appendChild(modalContainer);
+	
+			this.currentMessageBox = modalContainer;
+			this._messageContainer = messageContainer;
+			this.adjustTop();
+	
+			if (closeButton) {
+				this.createCloseButton();
+			}
+		}
+	
+		doShowMessage(message,closeButton,className,onClose) {
+			this.onClose = onClose;
+			$('#playerContainer').addClass("modalVisible");
+	
+			if (this.currentMessageBox) {
+				this.close();
+			}
+			if (!className) className = this.messageClassName;
+	
+			var modalContainer = document.createElement('div');
+			modalContainer.className = this.modalContainerClassName;
+			modalContainer.style.position = 'fixed';
+			modalContainer.style.top = '0px';
+			modalContainer.style.left = '0px';
+			modalContainer.style.right = '0px';
+			modalContainer.style.bottom = '0px';
+			modalContainer.style.zIndex = 999999;
+	
+			var messageContainer = document.createElement('div');
+			messageContainer.className = className;
+			messageContainer.innerHTML = message;
+			modalContainer.appendChild(messageContainer);
+	
+			if (paella.player && paella.player.isFullScreen()) {
+				paella.player.mainContainer.appendChild(modalContainer);
+			}else{
+				$('body')[0].appendChild(modalContainer);
+			}
+	
+			this.currentMessageBox = modalContainer;
+			this._messageContainer = messageContainer;
+			this.adjustTop();
+	
+			if (closeButton) {
+				this.createCloseButton();
+			}
+		}
+
+		showError(message,params) {
+			var closeButton = false;
+			var onClose = null;
+			if (params) {
+				closeButton = params.closeButton;
+				onClose = params.onClose;
+			}
+	
+			this.doShowError(message,closeButton,onClose);
+		}
+	
+		doShowError(message,closeButton,onClose) {
+			this.doShowMessage(message,closeButton,this.errorClassName,onClose);
+		}
+	
+		createCloseButton() {
+			if (this._messageContainer) {
+				var closeButton = document.createElement('span');
+				this._messageContainer.appendChild(closeButton);
+				closeButton.className = 'paella_messageContainer_closeButton icon-cancel-circle';
+				$(closeButton).click((event) => this.onCloseButtonClick());
+				$(window).keyup((evt) => {
+					if (evt.keyCode == 27) {
+						this.onCloseButtonClick();
+					}
+				});
+		
+			}
+		}
+		
+		adjustTop() {
+			if (this.currentMessageBox) {
+	
+				var msgHeight = $(this._messageContainer).outerHeight();
+				var containerHeight = $(this.currentMessageBox).height();
+	
+				var top = containerHeight/2 - msgHeight/2;
+				this._messageContainer.style.marginTop = top + 'px';
+			}
+		}
+		
+		close() {
+			if (this.currentMessageBox && this.currentMessageBox.parentNode) {
+				var msgBox = this.currentMessageBox;
+				var parent = msgBox.parentNode;
+				$('#playerContainer').removeClass("modalVisible");
+				$(msgBox).animate({opacity:0.0},300,function() {
+					parent.removeChild(msgBox);
+				});
+				if (this.onClose) {
+					this.onClose();
+				}
+			}
+		}
+	
+		onCloseButtonClick() {
+			this.close();
+		}
+	}
+	
+	paella.MessageBox = MessageBox;
+	paella.messageBox = new paella.MessageBox();
+
+})();
+
+paella.AntiXSS = {
+	htmlEscape: function (str) {
+		return String(str)
+    		.replace(/&/g, '&amp;')
+    		.replace(/"/g, '&quot;')
+    		.replace(/'/g, '&#39;')
+    		.replace(/</g, '&lt;')
+    		.replace(/>/g, '&gt;');
+    	},
+
+    htmlUnescape: function (value){
+		return String(value)
+			.replace(/&quot;/g, '"')
+			.replace(/&#39;/g, "'")
+			.replace(/&lt;/g, '<')
+			.replace(/&gt;/g, '>')
+			.replace(/&amp;/g, '&');
+	}
+};
+
+function paella_DeferredResolved(param) {
+	return new Promise((resolve) => {
+		resolve(param);
+	});
+}
+
+function paella_DeferredRejected(param) {
+	return new Promise((resolve,reject) => {
+		reject(param);
+	});
+}
+
+function paella_DeferredNotImplemented () {
+	return paella_DeferredRejected(new Error("not implemented"));
+}
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(() => {
+
+	class Node {
+		get identifier() { return this._identifier; }
+		set identifier(id) { this._identifier = id; }
+		get nodeList() { return this._nodeList; }
+		get parent() { return this._parent; }
+		set parent(p) { this._parent = p; } 
+	
+		constructor(id) {
+			this._nodeList = {};
+			this.identifier = id;
+		}
+	
+		addTo(parentNode) {
+			parentNode.addNode(this);
+		}
+	
+		addNode(childNode) {
+			childNode.parent = this;
+			this.nodeList[childNode.identifier] = childNode;
+			return childNode;
+		}
+
+		getNode(id) {
+			return this.nodeList[id];
+		}
+		
+		removeNode(childNode) {
+			if (this.nodeList[childNode.identifier]) {
+				delete this.nodeList[childNode.identifier];
+				return true;
+			}
+			return false;
+		}
+	}
+
+	paella.Node = Node;
+	
+	class DomNode extends paella.Node {
+		get domElement() { return this._domElement; }
+		
+		get domElementType() { return this._elementType; }
+		set domElementType(newType) {
+			this._elementType = newType;
+			let oldElement = this._domElement;
+			let parent = oldElement.parentNode;
+			let newElement = document.createElement(newType);
+			parent.removeChild(oldElement);
+			parent.appendChild(newElement);
+			this._domElement = newElement;
+			newElement.innerHTML = oldElement.innerHTML;
+			for (let i = 0; i<oldElement.attributes.length; ++i) {
+				let attr = oldElement.attributes[i];
+				newElement.setAttribute(attr.name,attr.value);
+			}
+		}
+	
+		constructor(elementType,id,style) {
+			super(id);
+			this._elementType = elementType;
+			this._domElement = document.createElement(elementType);
+			this.domElement.id = id;
+			if (style) this.style = style;
+		}
+
+		set style(s) { $(this.domElement).css(s); }
+	
+		addNode(childNode) {
+			let returnValue = super.addNode(childNode);
+			this.domElement.appendChild(childNode.domElement);
+			return returnValue;
+		}
+	
+		onresize() {
+		}
+		
+		removeNode(childNode) {
+			if (super.removeNode(childNode)) {
+				this.domElement.removeChild(childNode.domElement);
+			}
+		}
+	}
+
+	paella.DomNode = DomNode;
+	
+	class Button extends paella.DomNode {
+		get isToggle() { return this._isToggle; }
+		set isToggle(t) { this._isToggle = t; } 
+	
+		constructor(id,className,action,isToggle) {
+			var style = {};
+			super('div',id,style);
+			this.isToggle = isToggle;
+			this.domElement.className = className;
+			if (isToggle) {
+				$(this.domElement).click((event) => {
+					this.toggleIcon();
+				});
+			}
+			$(this.domElement).click('click',action);
+		}
+	
+		isToggled() {
+			if (this.isToggle) {
+				var element = this.domElement;
+				return /([a-zA-Z0-9_]+)_active/.test(element.className);
+			}
+			else {
+				return false;
+			}
+		}
+	
+		toggle() {
+			this.toggleIcon();
+		}
+	
+		toggleIcon() {
+			var element = this.domElement;
+			if (/([a-zA-Z0-9_]+)_active/.test(element.className)) {
+				element.className = RegExp.$1;
+			}
+			else {
+				element.className = element.className + '_active';
+			}
+		}
+	
+		show() {
+			$(this.domElement).show();
+		}
+	
+		hide() {
+			$(this.domElement).hide();
+		}
+	
+		visible() {
+			return this.domElement.visible();
+		}
+	}
+
+	paella.Button = Button;
+	
+})();
+
+(function() {
+    let g_profiles = [];
+
+	paella.addProfile = function(cb) {
+		cb().then((profileData) => {
+			if (profileData) {
+                g_profiles.push(profileData);
+                if (typeof(profileData.onApply)!="function") {
+                    profileData.onApply = function() { }
+                }
+                if (typeof(profileData.onDeactivte)!="function") {
+                    profileData.onDeactivate = function() {}
+                }
+				paella.events.trigger(paella.events.profileListChanged, { profileData:profileData });
+			}
+		});
+    }
+    
+    // Utility functions
+    function hideBackground() {
+        let bkgNode = this.container.getNode("videoContainerBackground");
+        if (bkgNode) this.container.removeNode(bkgNode);
+    }
+
+    function showBackground(bkgData) {
+        if (!bkgData) return;
+        hideBackground.apply(this);
+        this.backgroundData = bkgData;
+        let style = {
+            backgroundImage: `url(${paella.utils.folders.get("resources")}/style/${ bkgData.content })`,
+            backgroundSize: "100% 100%",
+            zIndex: bkgData.layer,
+            position: 'absolute',
+            left: bkgData.rect.left + "px",
+            right: bkgData.rect.right + "px",
+            width: "100%",
+            height: "100%",
+        }
+        this.container.addNode(new paella.DomNode('div',"videoContainerBackground",style));
+    }
+
+    function hideAllLogos() {
+        if (this.logos == undefined) return;
+        for (var i=0;i<this.logos.length;++i) {
+            var logoId = this.logos[i].content.replace(/\./ig,"-");
+            var logo = this.container.getNode(logoId);
+            $(logo.domElement).hide();
+        }
+    }
+
+    function showLogos(logos) {
+        this.logos = logos;
+        var relativeSize = new paella.RelativeVideoSize();
+        for (var i=0; i<logos.length;++i) {
+            var logo = logos[i];
+            var logoId = logo.content.replace(/\./ig,"-");
+            var logoNode = this.container.getNode(logoId);
+            var rect = logo.rect;
+            if (!logoNode) {
+                style = {};
+                logoNode = this.container.addNode(new paella.DomNode('img',logoId,style));
+                logoNode.domElement.setAttribute('src', `${paella.utils.folders.get("resources")}/style/${logo.content}`);
+            }
+            else {
+                $(logoNode.domElement).show();
+            }
+            var percentTop = Number(relativeSize.percentVSize(rect.top)) + '%';
+            var percentLeft = Number(relativeSize.percentWSize(rect.left)) + '%';
+            var percentWidth = Number(relativeSize.percentWSize(rect.width)) + '%';
+            var percentHeight = Number(relativeSize.percentVSize(rect.height)) + '%';
+            var style = {top:percentTop,left:percentLeft,width:percentWidth,height:percentHeight,position:'absolute',zIndex:logo.zIndex};
+            $(logoNode.domElement).css(style);
+        }
+    }
+
+    function hideButtons() {
+        if (this.buttons) {
+            this.buttons.forEach((btn) => {
+                this.container.removeNode(this.container.getNode(btn.id));
+            });
+            this.buttons = null;
+        }
+    }
+
+    function showButtons(buttons,profileData) {
+        hideButtons.apply(this);
+        if (buttons) {
+            let relativeSize = new paella.RelativeVideoSize();
+            this.buttons = buttons;
+            buttons.forEach((btn,index) => {
+                btn.id = "button_" + index;
+                let rect = btn.rect;
+                let percentTop = relativeSize.percentVSize(rect.top) + '%';
+                let percentLeft = relativeSize.percentWSize(rect.left) + '%';
+                let percentWidth = relativeSize.percentWSize(rect.width) + '%';
+                let percentHeight = relativeSize.percentVSize(rect.height) + '%';
+                let url = paella.baseUrl;
+                url = url.replace(/\\/ig,'/');
+                let style = {
+                    top:percentTop,
+                    left:percentLeft,
+                    width:percentWidth,
+                    height:percentHeight,
+                    position:'absolute',
+                    zIndex:btn.layer,
+                    backgroundImage: `url(${paella.utils.folders.get("resources")}/style/${ btn.icon })`,
+                    backgroundSize: '100% 100%',
+                    display: 'block'
+                };
+                let logoNode = this.container.addNode(new paella.DomNode('div',btn.id,style));
+                logoNode.domElement.className = "paella-profile-button";
+                logoNode.domElement.data = {
+                    action: btn.onClick,
+                    profileData: profileData
+                }
+                $(logoNode.domElement).click(function(evt) {
+                    this.data.action.apply(this.data.profileData,[evt]);
+                    evt.stopPropagation();
+                    return false;
+                })
+            })
+        }
+    }
+
+    function getClosestRect(profileData,videoDimensions) {
+        var minDiff = 10;
+        var re = /([0-9\.]+)\/([0-9\.]+)/;
+        var result = profileData.rect[0];
+        var videoAspectRatio = videoDimensions.h==0 ? 1.777777:videoDimensions.w / videoDimensions.h;
+        var profileAspectRatio = 1;
+        var reResult = false;
+        profileData.rect.forEach(function(rect) {
+            if ((reResult = re.exec(rect.aspectRatio))) {
+                profileAspectRatio = Number(reResult[1]) / Number(reResult[2]);
+            }
+            var diff = Math.abs(profileAspectRatio - videoAspectRatio);
+            if (minDiff>diff) {
+                minDiff = diff;
+                result = rect;
+            }
+        });
+        return result;
+    }
+
+    function applyProfileWithJson(profileData,animate) {
+        if (animate==undefined) animate = true;
+        if (!profileData) return;
+        let getProfile = (content) => {
+            let result = null;
+            
+                profileData && profileData.videos.some((videoProfile) => {
+                    if (videoProfile.content==content) {
+                        result = videoProfile;
+                    }
+                    return result!=null;
+                });
+                return result;
+            
+        };
+
+        let applyVideoRect = (profile,videoData,videoWrapper,player) => {
+            let frameStrategy = this.profileFrameStrategy;
+            if (frameStrategy) {
+                let rect = getClosestRect(profile,videoData.res);
+                let videoSize = videoData.res;
+                let containerSize = { width:$(this.domElement).width(), height:$(this.domElement).height() };
+                let scaleFactor = rect.width / containerSize.width;
+                let scaledVideoSize = { width:videoSize.w * scaleFactor, height:videoSize.h * scaleFactor };
+                rect.left = Number(rect.left);
+                rect.top = Number(rect.top);
+                rect.width = Number(rect.width);
+                rect.height = Number(rect.height);
+                rect = frameStrategy.adaptFrame(scaledVideoSize,rect);
+                
+                let visible = /true/i.test(profile.visible);
+                rect.visible = visible;
+                let layer = parseInt(profile.layer);
+                videoWrapper.domElement.style.zIndex = layer;
+
+                videoWrapper.setRect(rect,animate);
+                videoWrapper.setVisible(visible,animate);
+
+                // The disable/enable functions may not be called on main audio player
+                let isMainAudioPlayer = paella.player.videoContainer.streamProvider.mainAudioPlayer==player;
+                visible ? player.enable(isMainAudioPlayer) : player.disable(isMainAudioPlayer);
+            }
+        };
+        
+        profileData && profileData.onApply();
+        hideAllLogos.apply(this);
+        profileData && showLogos.apply(this,[profileData.logos]);
+        hideBackground.apply(this);
+        profileData && showBackground.apply(this,[profileData.background]);
+        hideButtons.apply(this);
+        profileData && showButtons.apply(this,[profileData.buttons, profileData]);
+        
+        this.streamProvider.videoStreams.forEach((streamData,index) => {
+            let profile = getProfile(streamData.content);
+            let player = this.streamProvider.videoPlayers[index];
+            let videoWrapper = this.videoWrappers[index];
+            if (profile) {
+                player.getVideoData()
+                    .then((data) => {
+                        applyVideoRect(profile,data,videoWrapper,player);
+                    });
+            }
+            else if (videoWrapper) {
+                videoWrapper.setVisible(false,animate);
+                if (paella.player.videoContainer.streamProvider.mainAudioPlayer!=player) {
+                    player.disable();
+                }
+            }
+        });
+    }
+
+	class Profiles {
+        constructor() {
+            paella.events.bind(paella.events.controlBarDidHide, () => this.hideButtons());
+            paella.events.bind(paella.events.controlBarDidShow, () => this.showButtons());
+
+            paella.events.bind(paella.events.profileListChanged, () => {
+                if (paella.player && paella.player.videoContainer && 
+                    (!this.currentProfile || this.currentProfileName!=this.currentProfile.id))
+                {
+                    this.setProfile(this.currentProfileName,false);
+                }
+            })
+        }
+
+        get profileList() { return g_profiles; }
+
+        getDefaultProfile() {
+            if (paella.player.videoContainer.masterVideo() && paella.player.videoContainer.masterVideo().defaultProfile()) {
+                return paella.player.videoContainer.masterVideo().defaultProfile();
+            }
+            if (paella.player && paella.player.config && paella.player.config.defaultProfile) {
+                return paella.player.config.defaultProfile;
+            }
+            return undefined;
+        }
+
+        loadProfile(profileId) {
+            let result = null;
+            g_profiles.some((profile) => {
+                if (profile.id==profileId) {
+                    result = profile;
+                }
+                return result;
+            });
+            return result;
+        }
+
+        get currentProfile() { return this.getProfile(this._currentProfileName); }
+
+        get currentProfileName() { return this._currentProfileName; }
+
+        setProfile(profileName,animate) {
+            if (!profileName) {
+                return false;
+            }
+            
+            animate = base.userAgent.browser.Explorer ? false:animate;
+            if (this.currentProfile) {
+                this.currentProfile.onDeactivate();
+            }
+
+            if (!paella.player.videoContainer.ready) {
+                return false;	// Nothing to do, the video is not loaded
+            }
+            else {
+                let profileData = this.loadProfile(profileName) || (g_profiles.length>0 && g_profiles[0]);
+                if (!profileData && g_profiles.length==0) {
+                    // Try to load the profile again later, maybe the profiles are not loaded yet
+                    setTimeout(() => {
+                        this.setProfile(profileName,animate);
+                    },100);
+                    return false;
+                }
+                else {
+                    this._currentProfileName = profileName;
+                    applyProfileWithJson.apply(paella.player.videoContainer,[profileData,animate]);
+                    return true;
+                }
+            }
+        }
+
+        getProfile(profileName) {
+            let result = null;
+            this.profileList.some((p) => {
+                if (p.id==profileName) {
+                    result = p;
+                    return true;
+                }
+            })
+            return result;
+        }
+
+        placeVideos() {
+            this.setProfile(this._currentProfileName,false);
+        }
+
+        hideButtons() {
+            $('.paella-profile-button').hide();
+        }
+
+        showButtons() {
+            $('.paella-profile-button').show();
+        }
+    }
+
+    paella.profiles = new Profiles();
+    
+    
+})();
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function() {
+	class VideoQualityStrategy {
+		static Factory() {
+			var config = paella.player.config;
+
+			try {
+				var strategyClass = config.player.videoQualityStrategy;
+				var ClassObject = paella.utils.objectFromString(strategyClass);
+				var strategy = new ClassObject();
+				if (strategy instanceof paella.VideoQualityStrategy) {
+					return strategy;
+				}
+			}
+			catch (e) {
+			}
+			
+			return null;
+		}
+
+		getParams() {
+			return paella.player.config.player.videoQualityStrategyParams || {};
+		}
+	
+		getQualityIndex(source) {
+			if (source.length>0) {
+				return source[source.length-1];
+			}
+			else {
+				return source;
+			}
+		}
+	}
+
+	paella.VideoQualityStrategy = VideoQualityStrategy;
+	
+	class BestFitVideoQualityStrategy extends paella.VideoQualityStrategy {
+		getQualityIndex(source) {
+			var index = source.length - 1;
+	
+			if (source.length>0) {
+				var selected = source[0];
+				var win_w = $(window).width();
+				var win_h = $(window).height();
+				var win_res = (win_w * win_h);
+	
+				if (selected.res && selected.res.w && selected.res.h) {
+					var selected_res = parseInt(selected.res.w) * parseInt(selected.res.h);
+					var selected_diff = Math.abs(win_res - selected_res);
+	
+					for (var i=0; i<source.length; ++i) {
+						var res = source[i].res;
+						if (res) {
+							var m_res = parseInt(source[i].res.w) * parseInt(source[i].res.h);
+							var m_diff = Math.abs(win_res - m_res);
+	
+							if (m_diff <= selected_diff){
+								selected_diff = m_diff;
+								index = i;
+							}
+						}
+					}
+				}
+			}
+	
+			return index;
+		}
+	}
+
+	paella.BestFitVideoQualityStrategy = BestFitVideoQualityStrategy;
+	
+	class LimitedBestFitVideoQualityStrategy extends paella.VideoQualityStrategy {
+		getQualityIndex(source) {
+			var index = source.length - 1;
+			var params = this.getParams();
+	
+			if (source.length>0) {
+				//var selected = source[0];
+				var selected = null;
+				var win_h = $(window).height();
+				var maxRes = params.maxAutoQualityRes || 720;
+				var diff = Number.MAX_VALUE;
+	
+				source.forEach(function(item,i) { 
+					if (item.res && item.res.h<=maxRes ) {
+						var itemDiff = Math.abs(win_h - item.res.h);
+						if (itemDiff<diff) {
+							selected = item;
+							index = i;
+						}
+					}
+				});
+			}
+			return index;
+		}
+	}
+
+	paella.LimitedBestFitVideoQualityStrategy = LimitedBestFitVideoQualityStrategy;
+
+	class VideoFactory {
+		isStreamCompatible(streamData) {
+			return false;
+		}
+	
+		getVideoObject(id, streamData, rect) {
+			return null;
+		}
+	}
+
+	paella.VideoFactory = VideoFactory;
+	paella.videoFactories = paella.videoFactories || {};
+
+	paella.videoFactory = {
+		_factoryList:[],
+	
+		initFactories:function() {
+			if (paella.videoFactories) {
+				var This = this;
+				paella.player.config.player.methods.forEach(function(method) {
+					if (method.enabled && paella.videoFactories[method.factory]) {
+						This.registerFactory(new paella.videoFactories[method.factory]());
+					}
+				});
+				this.registerFactory(new paella.videoFactories.EmptyVideoFactory());
+			}
+		},
+	
+		getVideoObject:function(id, streamData, rect) {
+			if (this._factoryList.length==0) {
+				this.initFactories();
+			}
+			var selectedFactory = null;
+			if (this._factoryList.some(function(factory) {
+				if (factory.isStreamCompatible(streamData)) {
+					selectedFactory = factory;
+					return true;
+				}
+			})) {
+				return selectedFactory.getVideoObject(id, streamData, rect);
+			}
+			return null;
+		},
+	
+		registerFactory:function(factory) {
+			this._factoryList.push(factory);
+		}
+	};
+	
+	
+})();
+
+
+(function() {
+    class AudioElementBase extends paella.DomNode {
+        constructor(id,stream) {
+            super('div',id);
+            this._stream = stream;
+            this._ready = false;
+        }
+
+        get ready() { return this._ready; } 
+
+        get currentTimeSync() { return null; }
+        get volumeSync() { return null; }
+        get pausedSync() { return null; }
+        get durationSync() { return null; }
+
+        get stream() { return this._stream; }
+        setAutoplay() {return Promise.reject(new Error("no such compatible video player"));}
+        load() {return Promise.reject(new Error("no such compatible video player")); }
+        play() { return Promise.reject(new Error("no such compatible video player")); }
+        pause() { return Promise.reject(new Error("no such compatible video player")); }
+        isPaused() { return Promise.reject(new Error("no such compatible video player")); }
+        duration() { return Promise.reject(new Error("no such compatible video player")); }
+        setCurrentTime(time) { return Promise.reject(new Error("no such compatible video player")); }
+        currentTime() { return Promise.reject(new Error("no such compatible video player")); }
+        setVolume(volume) { return Promise.reject(new Error("no such compatible video player")); }
+        volume() { return Promise.reject(new Error("no such compatible video player")); }
+        setPlaybackRate(rate) { return Promise.reject(new Error("no such compatible video player")); }
+        playbackRate() { return Promise.reject(new Error("no such compatible video player")); }
+        unload() { return Promise.reject(new Error("no such compatible video player")); }
+
+        getQualities() {
+            return Promise.resolve([
+                {
+                    index: 0,
+                    res: { w: 0, h: 1 },
+                    src: "",
+                    toString: function() { return ""; },
+                    shortLabel: function() { return ""; },
+                    compare: function() { return 0; }
+                }
+            ]);
+        }
+
+        getCurrentQuality() { return Promise.resolve(0); }
+        defaultProfile() { return null; }
+        
+        supportAutoplay() { return false;}
+    };
+
+    paella.AudioElementBase = AudioElementBase;
+    paella.audioFactories = {};
+
+    class AudioFactory {
+        isStreamCompatible(streamData) {
+            return false;
+        }
+
+        getAudioObject(id,streamData) {
+            return null;
+        }
+    }
+
+    paella.AudioFactory = AudioFactory;
+
+    paella.audioFactory = {
+        _factoryList:[],
+
+        initFactories:function() {
+            if (paella.audioFactories) {
+                var This = this;
+                paella.player.config.player.audioMethods = paella.player.config.player.audioMethods || {
+
+                };
+                paella.player.config.player.audioMethods.forEach(function(method) {
+                    if (method.enabled) {
+                        This.registerFactory(new paella.audioFactories[method.factory]());
+                    }
+                });
+            }
+        },
+
+        getAudioObject:function(id, streamData) {
+            if (this._factoryList.length==0) {
+                this.initFactories();
+            }
+            var selectedFactory = null;
+            if (this._factoryList.some(function(factory) {
+                if (factory.isStreamCompatible(streamData)) {
+                    selectedFactory = factory;
+                    return true;
+                }
+            })) {
+                return selectedFactory.getAudioObject(id, streamData);
+            }
+            return null;
+        },
+
+        registerFactory:function(factory) {
+            this._factoryList.push(factory);
+        }
+    };
+
+})();
+
+(function() {
+
+function checkReady(cb) {
+    let This = this;
+    return new Promise((resolve,reject) => {
+        if (This._ready) {
+            resolve(typeof(cb)=='function' ? cb():true);
+        }
+        else {
+            function doCheck() {
+                if (This.audio.readyState>=This.audio.HAVE_CURRENT_DATA) {
+                    This._ready = true;
+                    resolve(typeof(cb)=='function' ? cb():true);
+                }
+                else {
+                    setTimeout(doCheck,50);
+                }
+            }
+            doCheck();
+        }
+    });
+}
+
+class MultiformatAudioElement extends paella.AudioElementBase {
+    constructor(id,stream) {
+        super(id,stream);
+        this._streamName = "audio";
+
+        this._audio = document.createElement('audio');
+        this.domElement.appendChild(this._audio);
+    }
+
+    get audio() { return this._audio; }
+
+    get currentTimeSync() {
+		return this.ready ? this.audio.currentTimeSync : null;
+	}
+
+	get volumeSync() {
+		return this.ready ? this.audio.volumeSync : null;
+	}
+
+	get pausedSync() {
+		return this.ready ? this.audio.pausedSync : null;
+	}
+
+	get durationSync() {
+		return this.ready ? this.audio.durationSync : null;
+	}
+
+    setAutoplay(ap) {
+        this.audio.autoplay = ap;
+    }
+
+    load() {
+        var This = this;
+		var sources = this._stream.sources[this._streamName];
+		var stream = sources.length>0 ? sources[0]:null;
+		this.audio.innerText = "";
+		if (stream) {
+			var sourceElem = this.audio.querySelector('source');
+			if (!sourceElem) {
+				sourceElem = document.createElement('source');
+				this.audio.appendChild(sourceElem);
+			}
+
+			sourceElem.src = stream.src;
+			if (stream.type) sourceElem.type = stream.type;
+			this.audio.load();
+
+            return checkReady.apply(this, [function() {
+                return stream;
+            }]);
+		}
+		else {
+			return Promise.reject(new Error("Could not load video: invalid quality stream index"));
+		}
+    }
+
+    play() {
+        return checkReady.apply(this, [() => {
+            this.audio.play();
+        }]);
+    }
+
+    pause() {
+        return checkReady.apply(this, [() => {
+            this.audio.pause();
+        }]);
+    }
+
+    isPaused() {
+        return checkReady.apply(this,[() => {
+            return this.audio.paused;
+        }]);
+    }
+
+    duration() {
+        return checkReady.apply(this,[() => {
+            return this.audio.duration;
+        }]);
+    }
+
+    setCurrentTime(time) {
+        return checkReady.apply(this,[() => {
+            this.audio.currentTime = time;
+        }]);
+    }
+
+    currentTime() {
+        return checkReady.apply(this,[() => {
+            return this.audio.currentTime;
+        }]);
+    }
+
+    setVolume(volume) {
+        return checkReady.apply(this,[() => {
+            return this.audio.volume = volume;
+        }]);
+    }
+
+    volume() {
+        return checkReady.apply(this,[() => {
+            return this.audio.volume;
+        }]);
+    }
+
+    setPlaybackRate(rate) { 
+        return checkReady.apply(this,[() => {
+            this.audio.playbackRate = rate;
+        }]);
+    }
+    playbackRate() {
+        return checkReady.apply(this,[() => {
+            return this.audio.playbackRate;
+        }]);
+    }
+
+    unload() { return Promise.resolve(); }
+};
+
+paella.MultiformatAudioElement = MultiformatAudioElement;
+
+class MultiformatAudioFactory {
+    isStreamCompatible(streamData) {
+        return true;
+    }
+
+    getAudioObject(id,streamData) {
+        return new paella.MultiformatAudioElement(id,streamData);
+    }
+}
+
+paella.audioFactories.MultiformatAudioFactory = MultiformatAudioFactory;
+
+})();
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+(() => {
+
+paella.Profiles = {
+	profileList: null,
+	
+	getDefaultProfile: function() {
+		if (paella.player.videoContainer.masterVideo() && paella.player.videoContainer.masterVideo().defaultProfile()) {
+			return paella.player.videoContainer.masterVideo().defaultProfile();
+		}
+		if (paella.player && paella.player.config && paella.player.config.defaultProfile) {
+			return paella.player.config.defaultProfile;
+		}
+		return undefined;		
+	},
+	
+	loadProfile:function(profileName,onSuccessFunction) {
+	
+		var defaultProfile  = this.getDefaultProfile();		
+		this.loadProfileList(function(data){		
+			var profileData;
+			if(data[profileName] ){
+				// Successful mapping
+				profileData = data[profileName];
+			} else if (data[defaultProfile]) {
+				// Fallback to default profile
+				profileData = data[defaultProfile];
+			} else {
+				// Unable to find or map defaultProfile in profiles.json
+				base.log.debug("Error loading the default profile. Check your Paella Player configuration");
+				return false;
+			}
+			onSuccessFunction(profileData);
+		});
+	},
+
+	loadProfileList:function(onSuccessFunction) {
+		var thisClass = this;
+		if (this.profileList == null) {
+			var params = { url: paella.utils.folders.profiles() + "/profiles.json" };
+	
+			base.ajax.get(params,function(data,mimetype,code) {
+					if (typeof(data)=="string") {
+						data = JSON.parse(data);
+					}
+					thisClass.profileList = data;
+					onSuccessFunction(thisClass.profileList);
+				},
+				function(data,mimetype,code) {
+					base.log.debug("Error loading video profiles. Check your Paella Player configuration");
+				}
+			);
+		}
+		else {
+			onSuccessFunction(thisClass.profileList);
+		}
+	}
+};
+
+class RelativeVideoSize {
+	get w() { return this._w || 1280; }
+	set w(v) { this._w = v; }
+	get h() { return this._h || 720; }
+	set h(v) { this._h = v; }
+	
+	proportionalHeight(newWidth) {
+		return Math.floor(this.h * newWidth / this.w);
+	}
+
+	proportionalWidth(newHeight) {
+		return Math.floor(this.w * newHeight / this.h);
+	}
+
+	percentVSize(pxSize) {
+		return pxSize * 100 / this.h;
+	}
+
+	percentWSize(pxSize) {
+		return pxSize * 100 / this.w;
+	}
+
+	aspectRatio() {
+		return this.w/this.h;
+	}
+}
+
+paella.RelativeVideoSize = RelativeVideoSize;
+
+
+
+class VideoRect extends paella.DomNode {
+	
+	constructor(id, domType, left, top, width, height) {
+		super(domType,id,{});
+		
+		let zoomSettings = paella.player.config.player.videoZoom || {};
+		let zoomEnabled = (zoomSettings.enabled!==undefined ? zoomSettings.enabled : true) && this.allowZoom();
+		this.style = zoomEnabled ? {width:this._zoom + '%',height:"100%",position:'absolute'} : { width:"100%", height:"100%" };
+		this._rect = null;
+
+		let eventCapture = document.createElement('div');
+		setTimeout(() => this.domElement.parentElement.appendChild(eventCapture), 10);
+
+		eventCapture.id = id + "EventCapture";
+		eventCapture.style.position = "absolute";
+		eventCapture.style.top = "0px";
+		eventCapture.style.left = "0px";
+		eventCapture.style.right = "0px";
+		eventCapture.style.bottom = "0px";
+		this.eventCapture = eventCapture;
+
+		if (zoomEnabled) {
+			this._zoomAvailable = true;
+			function checkZoomAvailable() {
+				let minWindowSize = (paella.player.config.player &&
+									paella.player.config.player.videoZoom &&
+									paella.player.config.player.videoZoom.minWindowSize) || 500;
+
+				let available = $(window).width()>=minWindowSize;
+				if (this._zoomAvailable!=available) {
+					this._zoomAvailable = available;
+					paella.events.trigger(paella.events.zoomAvailabilityChanged, { available:available });
+				}
+			}
+			checkZoomAvailable.apply(this);
+
+			$(window).resize(() => {
+				checkZoomAvailable.apply(this);
+			});
+
+			this._zoom = 100;
+			this._mouseCenter = { x:0, y:0 };
+			this._mouseDown = { x:0, y:0 };
+			this._zoomOffset = { x:0, y: 0 };
+			this._maxZoom = zoomSettings.max || 400;
+			$(this.domElement).css({
+				width: "100%",
+				height: "100%",
+				left:"0%",
+				top: "0%"
+			});
+
+			Object.defineProperty(this,'zoom', {
+				get: function() { return this._zoom; }
+			});
+
+			Object.defineProperty(this,'zoomOffset',{
+				get: function() { return this._zoomOffset; }
+			});
+
+			function mousePos(evt) {
+				return {
+					x:evt.originalEvent.offsetX,
+					y:evt.originalEvent.offsetY
+				};
+			}
+
+			function wheelDelta(evt) {
+				let wheel = evt.originalEvent.deltaY * (paella.utils.userAgent.Firefox ? 2:1);
+				let maxWheel = 6;
+				return -Math.abs(wheel) < maxWheel ? wheel : maxWheel * Math.sign(wheel);
+			}
+
+			function touchesLength(p0,p1) {
+				return Math.sqrt(
+					(p1.x - p0.x) * (p1.x - p0.x) +
+					(p1.y - p0.y) * (p1.y - p0.y)
+				);
+			}
+
+			function centerPoint(p0,p1) {
+				return {
+					x:(p1.x - p0.x) / 2 + p0.x,
+					y:(p1.y - p0.y) / 2 + p0.y
+				}
+			}
+
+			function panImage(o) {
+				let center = {
+					x: this._mouseCenter.x - o.x * 1.1,
+					y: this._mouseCenter.y - o.y * 1.1
+				};
+				let videoSize = {
+					w: $(this.domElement).width(),
+					h: $(this.domElement).height()
+				};
+				let maxOffset = this._zoom - 100;
+				let offset = {
+					x: (center.x * maxOffset / videoSize.w) * (maxOffset / 100),
+					y: (center.y * maxOffset / videoSize.h) * (maxOffset / 100)
+				};
+				
+				if (offset.x>maxOffset) {
+					offset.x = maxOffset;
+				}
+				else if (offset.x<0) {
+					offset.x = 0;
+				}
+				else {
+					this._mouseCenter.x = center.x;
+				}
+				if (offset.y>maxOffset) {
+					offset.y = maxOffset;
+				}
+				else if (offset.y<0) {
+					offset.y = 0;
+				}
+				else {
+					this._mouseCenter.y = center.y;
+				}
+				$(this.domElement).css({
+					left:"-" + offset.x + "%",
+					top: "-" + offset.y + "%"
+				});
+
+				this._zoomOffset = {
+					x: offset.x,
+					y: offset.y
+				};
+				paella.events.trigger(paella.events.videoZoomChanged,{ video:this });
+			}
+
+			let touches = [];
+			$(eventCapture).on('touchstart', (evt) => {
+				if (!this.allowZoom() || !this._zoomAvailable) return;
+				touches = [];
+				let videoOffset = $(this.domElement).offset();
+				for (let i=0; i<evt.originalEvent.targetTouches.length; ++i) {
+					let touch = evt.originalEvent.targetTouches[i];
+					touches.push({
+						x: touch.screenX - videoOffset.left,
+						y: touch.screenY - videoOffset.top
+					});
+				}
+				if (touches.length>1) evt.preventDefault();
+			});
+
+			$(eventCapture).on('touchmove', (evt) => {
+				if (!this.allowZoom() || !this._zoomAvailable) return;
+				let curTouches = [];
+				let videoOffset = $(this.domElement).offset();
+				for (let i=0; i<evt.originalEvent.targetTouches.length; ++i) {
+					let touch = evt.originalEvent.targetTouches[i];
+					curTouches.push({
+						x: touch.screenX - videoOffset.left,
+						y: touch.screenY - videoOffset.top
+					});
+				}
+				if (curTouches.length>1 && touches.length>1) {
+					let l0 = touchesLength(touches[0],touches[1]);
+					let l1 = touchesLength(curTouches[0],curTouches[1]);
+					let delta = l1 - l0;
+					let center = centerPoint(touches[0],touches[1]);
+					this._mouseCenter = center;
+					
+					this._zoom += delta;
+					this._zoom = this._zoom < 100 ? 100 : this._zoom;			
+					this._zoom = this._zoom > this._maxZoom ? this._maxZoom : this._zoom;
+					let newVideoSize = {
+						w: $(this.domElement).width(),
+						h: $(this.domElement).height()
+					};
+					let mouse = this._mouseCenter;
+					$(this.domElement).css({
+						width:this._zoom + '%',
+						height:this._zoom + '%'
+					});
+					
+					let maxOffset = this._zoom - 100;
+					let offset = {
+						x: (mouse.x * maxOffset / newVideoSize.w),
+						y: (mouse.y * maxOffset / newVideoSize.h)
+					};
+					
+					offset.x = offset.x<maxOffset ? offset.x : maxOffset;
+					offset.y = offset.y<maxOffset ? offset.y : maxOffset;
+					
+					$(this.domElement).css({
+						left:"-" + offset.x + "%",
+						top: "-" + offset.y + "%"
+					});
+
+					this._zoomOffset = {
+						x: offset.x,
+						y: offset.y
+					};
+					paella.events.trigger(paella.events.videoZoomChanged,{ video:this });
+					touches = curTouches;
+					evt.preventDefault();
+				}
+				else if (curTouches.length>0) {
+					let desp = {
+						x: curTouches[0].x - touches[0].x,
+						y: curTouches[0].y - touches[0].y,
+					}
+
+					panImage.apply(this,[desp]);
+					touches = curTouches;
+
+					evt.preventDefault();
+				}
+			});
+
+			$(eventCapture).on('touchend', (evt) => {
+				if (!this.allowZoom() || !this._zoomAvailable) return;
+				if (touches.length>1) evt.preventDefault();
+			});
+
+			this.zoomIn = () => {
+				if (this._zoom>=this._maxZoom || !this._zoomAvailable) return;
+				if (!this._mouseCenter) {
+					this._mouseCenter = {
+						x: $(this.domElement).width() / 2,
+						y: $(this.domElement).height() / 2	
+					}
+				}
+				this._zoom += 25;
+				this._zoom = this._zoom < 100 ? 100 : this._zoom;			
+				this._zoom = this._zoom > this._maxZoom ? this._maxZoom : this._zoom;
+				let newVideoSize = {
+					w: $(this.domElement).width(),
+					h: $(this.domElement).height()
+				};
+				let mouse = this._mouseCenter;
+				$(this.domElement).css({
+					width:this._zoom + '%',
+					height:this._zoom + '%'
+				});
+				
+				let maxOffset = this._zoom - 100;
+				let offset = {
+					x: (mouse.x * maxOffset / newVideoSize.w) * (maxOffset / 100),
+					y: (mouse.y * maxOffset / newVideoSize.h) * (maxOffset / 100)
+				};
+				
+				offset.x = offset.x<maxOffset ? offset.x : maxOffset;
+				offset.y = offset.y<maxOffset ? offset.y : maxOffset;
+				
+				$(this.domElement).css({
+					left:"-" + offset.x + "%",
+					top: "-" + offset.y + "%"
+				});
+
+				this._zoomOffset = {
+					x: offset.x,
+					y: offset.y
+				};
+				paella.events.trigger(paella.events.videoZoomChanged,{ video:this });
+			}
+
+			this.zoomOut = () => {
+				if (this._zoom<=100 || !this._zoomAvailable) return;
+				if (!this._mouseCenter) {
+					this._mouseCenter = {
+						x: $(this.domElement).width() / 2,
+						y: $(this.domElement).height() / 2	
+					}
+				}
+				this._zoom -= 25;
+				this._zoom = this._zoom < 100 ? 100 : this._zoom;			
+				this._zoom = this._zoom > this._maxZoom ? this._maxZoom : this._zoom;
+				let newVideoSize = {
+					w: $(this.domElement).width(),
+					h: $(this.domElement).height()
+				};
+				let mouse = this._mouseCenter;
+				$(this.domElement).css({
+					width:this._zoom + '%',
+					height:this._zoom + '%'
+				});
+				
+				let maxOffset = this._zoom - 100;
+				let offset = {
+					x: (mouse.x * maxOffset / newVideoSize.w) * (maxOffset / 100),
+					y: (mouse.y * maxOffset / newVideoSize.h) * (maxOffset / 100)
+				};
+				
+				offset.x = offset.x<maxOffset ? offset.x : maxOffset;
+				offset.y = offset.y<maxOffset ? offset.y : maxOffset;
+				
+				$(this.domElement).css({
+					left:"-" + offset.x + "%",
+					top: "-" + offset.y + "%"
+				});
+
+				this._zoomOffset = {
+					x: offset.x,
+					y: offset.y
+				};
+				paella.events.trigger(paella.events.videoZoomChanged,{ video:this });
+			}
+
+			let altScrollMessageContainer = document.createElement('div');
+			altScrollMessageContainer.className = "alt-scroll-message-container";
+			altScrollMessageContainer.innerHTML = "<p>" + paella.dictionary.translate("Use Alt+Scroll to zoom the video") + "</p>";
+			eventCapture.appendChild(altScrollMessageContainer);
+			$(altScrollMessageContainer).css({ opacity: 0.0 });
+			let altScrollMessageTimer = null;
+			function clearAltScrollMessage(animate = true) {
+				animate ? 
+					$(altScrollMessageContainer).animate({ opacity: 0.0 }) :
+					$(altScrollMessageContainer).css({ opacity: 0.0 });
+			}
+			function showAltScrollMessage() {
+				if (altScrollMessageTimer) {
+					clearTimeout(altScrollMessageTimer);
+					altScrollMessageTimer = null;
+				}
+				else {
+					$(altScrollMessageContainer).css({ opacity: 1.0 });
+				}
+				altScrollMessageTimer = setTimeout(() => {
+					clearAltScrollMessage();
+					altScrollMessageTimer = null;
+				}, 500);
+			}
+
+			$(eventCapture).on('mousewheel wheel',(evt) => {
+				if (!this.allowZoom() || !this._zoomAvailable) return;
+				if (!evt.altKey) {
+					showAltScrollMessage();
+					return;
+				}
+				else {
+					clearAltScrollMessage(false);
+					if (altScrollMessageTimer) {
+						clearTimeout(altScrollMessageTimer);
+						altScrollMessageTimer = null;
+					}
+				}
+				let mouse = mousePos(evt);
+				let wheel = wheelDelta(evt);
+				if (this._zoom>=this._maxZoom && wheel>0) return;
+				this._zoom += wheel;
+				this._zoom = this._zoom < 100 ? 100 : this._zoom;			
+				this._zoom = this._zoom > this._maxZoom ? this._maxZoom : this._zoom;
+				let newVideoSize = {
+					w: $(this.domElement).width(),
+					h: $(this.domElement).height()
+				};
+				$(this.domElement).css({
+					width:this._zoom + '%',
+					height:this._zoom + '%'
+				});
+				
+				let maxOffset = this._zoom - 100;
+				let offset = {
+					x: (mouse.x * maxOffset / newVideoSize.w) * (maxOffset / 100),
+					y: (mouse.y * maxOffset / newVideoSize.h) * (maxOffset / 100)
+				};
+				
+				offset.x = offset.x<maxOffset ? offset.x : maxOffset;
+				offset.y = offset.y<maxOffset ? offset.y : maxOffset;
+				
+				$(this.domElement).css({
+					left:"-" + offset.x + "%",
+					top: "-" + offset.y + "%"
+				});
+
+				this._zoomOffset = {
+					x: offset.x,
+					y: offset.y
+				};
+				paella.events.trigger(paella.events.videoZoomChanged,{ video:this });
+
+				this._mouseCenter = mouse;
+				evt.stopPropagation();
+				return false;
+			});
+
+			$(eventCapture).on('mousedown',(evt) => {
+				this._mouseDown = mousePos(evt);
+				this.drag = true;
+			});
+
+			$(eventCapture).on('mousemove',(evt) => {
+				if (!this.allowZoom() || !this._zoomAvailable) return;
+				//this.drag = evt.buttons>0;
+				if (this.drag) {
+					paella.player.videoContainer.disablePlayOnClick();
+
+					let mouse = mousePos(evt);
+					panImage.apply(this,[{
+						x: mouse.x - this._mouseDown.x,
+						y: mouse.y - this._mouseDown.y
+					}]);
+					this._mouseDown = mouse;
+				}
+			});
+
+			$(eventCapture).on('mouseup',(evt) => {
+				if (!this.allowZoom() || !this._zoomAvailable) return;
+				this.drag = false;
+				setTimeout(() => paella.player.videoContainer.enablePlayOnClick(), 10);
+			});
+
+			$(eventCapture).on('mouseleave',(evt) => {
+				this.drag = false;
+			});
+		}
+	}
+
+	get canvasData() {
+		let canvasType = this._stream && Array.isArray(this._stream.canvas) && this._stream.canvas[0];
+		let canvasData = canvasType && paella.getVideoCanvasData(this._stream.canvas[0]) || { mouseEventsSupport: false, webglSupport: false };
+		return canvasData;
+	}
+
+	allowZoom() {
+		return !this.canvasData.mouseEventsSupport;
+	}
+
+	setZoom(zoom,left,top,tween=0) {
+		if (this.zoomAvailable()) {
+			this._zoomOffset.x = left;
+			this._zoomOffset.y = top;
+			this._zoom = zoom;
+			
+			if (tween==0) {
+				$(this.domElement).css({
+					width:this._zoom + '%',
+					height:this._zoom + '%',
+					left:"-" + this._zoomOffset.x + "%",
+					top: "-" + this._zoomOffset.y + "%"
+				});
+			}
+			else {
+				$(this.domElement).stop(true,false).animate({
+					width:this._zoom + '%',
+					height:this._zoom + '%',
+					left:"-" + this._zoomOffset.x + "%",
+					top: "-" + this._zoomOffset.y + "%"
+				},tween,"linear");
+			}
+
+			paella.events.trigger(paella.events.videoZoomChanged,{ video:this });
+		}
+	}
+
+	captureFrame() {
+		return Promise.resolve(null);
+	}
+
+	supportsCaptureFrame() {
+		return Promise.resolve(false);
+	}
+
+	// zoomAvailable will only return true if the zoom is enabled, the
+	// video plugin supports zoom and the current video resolution is higher than
+	// the current video size
+	zoomAvailable() {
+		return this.allowZoom() && this._zoomAvailable;
+	}
+
+	disableEventCapture() {
+		this.eventCapture.style.pointerEvents = 'none';
+	}
+
+	enableEventCapture() {
+		this.eventCapture.style.pointerEvents = '';
+	}
+}
+
+paella.VideoRect = VideoRect;
+
+class VideoElementBase extends paella.VideoRect {
+
+	constructor(id,stream,containerType,left,top,width,height) {
+		super(id, containerType, left, top, width, height);
+		
+		this._stream = stream;
+
+		this._ready = false;
+		this._autoplay = false;
+		this._videoQualityStrategy = null;
+		
+		if (this._stream.preview) this.setPosterFrame(this._stream.preview);
+
+		if (this.canvasData.mouseEventsSupport) {
+			this.disableEventCapture();
+		}
+	}
+
+	get ready() { return this._ready; }
+	get stream() { return this._stream; }
+
+	defaultProfile() {
+		return null;
+	}
+
+	// Synchronous functions: returns null if the resource is not loaded. Use only if 
+	// the resource is loaded.
+	get currentTimeSync() { return null; }
+	get volumeSync() { return null; }
+	get pausedSync() { return null; }
+	get durationSync() { return null; }
+
+	// Initialization functions
+	setVideoQualityStrategy(strategy) {
+		this._videoQualityStrategy = strategy;
+	}
+
+	setPosterFrame(url) {
+		base.log.debug("TODO: implement setPosterFrame() function");
+	}
+
+	setAutoplay(autoplay) {
+		this._autoplay = autoplay;
+	}
+
+	setMetadata(data) {
+		this._metadata = data;
+	}
+
+	load() {
+		return paella_DeferredNotImplemented();
+	}
+
+	supportAutoplay() {
+		return true;
+	}
+
+	// Video canvas functions
+	videoCanvas() {
+		return Promise.reject(new Error("VideoElementBase::videoCanvas(): Not implemented in child class."));
+	}
+
+	// Playback functions
+	getVideoData() {
+		return paella_DeferredNotImplemented();
+	}
+	
+	play() {
+		base.log.debug("TODO: implement play() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	pause() {
+		base.log.debug("TODO: implement pause() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	isPaused() {
+		base.log.debug("TODO: implement isPaused() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	duration() {
+		base.log.debug("TODO: implement duration() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	setCurrentTime(time) {
+		base.log.debug("TODO: implement setCurrentTime() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	currentTime() {
+		base.log.debug("TODO: implement currentTime() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	setVolume(volume) {
+		base.log.debug("TODO: implement setVolume() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	volume() {
+		base.log.debug("TODO: implement volume() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	setPlaybackRate(rate) {
+		base.log.debug("TODO: implement setPlaybackRate() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	playbackRate() {
+		base.log.debug("TODO: implement playbackRate() function in your VideoElementBase subclass");
+		return paella_DeferredNotImplemented();
+	}
+
+	getQualities() {
+		return paella_DeferredNotImplemented();
+	}
+
+	setQuality(index) {
+		return paella_DeferredNotImplemented();
+	}
+
+	getCurrentQuality() {
+		return paella_DeferredNotImplemented();
+	}
+	
+	unload() {
+		this._callUnloadEvent();
+		return paella_DeferredNotImplemented();
+	}
+
+	getDimensions() {
+		return paella_DeferredNotImplemented();	// { width:X, height:Y }
+	}
+
+	goFullScreen() {
+		return paella_DeferredNotImplemented();
+	}
+
+	freeze(){
+		return paella_DeferredNotImplemented();
+	}
+
+	unFreeze(){
+		return paella_DeferredNotImplemented();
+	}
+
+	disable(isMainAudioPlayer) {
+		console.log("Disable video requested");
+	}
+
+	enable(isMainAudioPlayer) {
+		console.log("Enable video requested");
+	}
+
+	// Utility functions
+	setClassName(className) {
+		this.domElement.className = className;
+	}
+
+	_callReadyEvent() {
+		paella.events.trigger(paella.events.singleVideoReady, { sender:this });
+	}
+
+	_callUnloadEvent() {
+		paella.events.trigger(paella.events.singleVideoUnloaded, { sender:this });
+	}
+}
+
+paella.VideoElementBase = VideoElementBase;
+
+class EmptyVideo extends paella.VideoElementBase {
+	constructor(id,stream,left,top,width,height) {
+		super(id,stream,'div',left,top,width,height);
+	}
+
+	// Initialization functions
+	setPosterFrame(url) {}
+	setAutoplay(auto) {}
+	load() {return paella_DeferredRejected(new Error("no such compatible video player")); }
+	play() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	pause() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	isPaused() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	duration() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	setCurrentTime(time) { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	currentTime() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	setVolume(volume) { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	volume() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	setPlaybackRate(rate) { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	playbackRate() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	unFreeze() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	freeze() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	unload() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+	getDimensions() { return paella_DeferredRejected(new Error("no such compatible video player")); }
+}
+
+paella.EmptyVideo = EmptyVideo;
+
+class EmptyVideoFactory extends paella.VideoFactory {
+	isStreamCompatible(streamData) {
+		return true;
+	}
+
+	getVideoObject(id, streamData, rect) {
+		return new paella.EmptyVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+	}
+}
+
+paella.videoFactories.EmptyVideoFactory = EmptyVideoFactory;
+
+class Html5Video extends paella.VideoElementBase {
+	constructor(id,stream,left,top,width,height,streamName) {
+		super(id,stream,'video',left,top,width,height);
+
+		this._posterFrame = null;
+		this._currentQuality = null;
+		this._autoplay = false;
+
+		this._streamName = streamName || 'mp4';
+		this._playbackRate = 1;
+
+		if (this._stream.sources[this._streamName]) {
+			this._stream.sources[this._streamName].sort(function (a, b) {
+				return a.res.h - b.res.h;
+			});
+		}
+
+		this.video.preload = "auto";
+		this.video.setAttribute("playsinline","");
+		this.video.setAttribute("tabindex","-1");
+
+		this._configureVideoEvents(this.video);
+	}
+
+	_configureVideoEvents(videoElement) {
+		function onProgress(event) {
+			if (!this._ready && this.video.readyState==4) {
+				this._ready = true;
+				if (this._initialCurrentTipe!==undefined) {
+					this.video.currentTime = this._initialCurrentTime;
+					delete this._initialCurrentTime;
+				}
+				this._callReadyEvent();
+			}
+		}
+
+
+		let evtCallback = (event) => { onProgress.apply(this,[event]); }
+
+		$(this.video).bind('progress', evtCallback);
+		$(this.video).bind('loadstart',evtCallback);
+		$(this.video).bind('loadedmetadata',evtCallback);
+		$(this.video).bind('canplay',evtCallback);
+		$(this.video).bind('oncanplay',evtCallback);
+
+		// Save current time to resume video
+		$(this.video).bind('timeupdate', (evt) => {
+			this._resumeCurrentTime = this.video.currentTime;
+		});
+
+		$(this.video).bind('ended',(evt) => {
+			paella.events.trigger(paella.events.endVideo);
+		});
+
+		$(this.video).bind('emptied', (evt) => {
+			if (this._resumeCurrentTime && !isNaN(this._resumeCurrentTime)) {
+				this.video.currentTime = this._resumeCurrentTime;
+			}
+		});
+		
+		// Fix safari setQuelity bug
+		if (paella.utils.userAgent.browser.Safari) {
+			$(this.video).bind('canplay canplaythrough', (evt) => {
+				this._resumeCurrentTime && (this.video.currentTime = this._resumeCurrentTime);
+			});
+		}
+	}
+	
+	get video() {
+		if (this.domElementType=='video') {
+			return this.domElement;
+		}
+		else {
+			this._video = this._video || document.createElement('video');
+			return this._video;
+		}
+	}
+
+	get ready() {
+		// Fix Firefox specific issue when video reaches the end
+		if (paella.utils.userAgent.browser.Firefox &&
+			this.video.currentTime==this.video.duration &&
+			this.video.readyState==2)
+		{
+			this.video.currentTime = 0;
+		}
+
+		return this.video.readyState>=3;
+	}
+
+	// Synchronous functions: returns null if the resource is not loaded. Use only if 
+	// the resource is loaded.
+	get currentTimeSync() {
+		return this.ready ? this.video.currentTime : null;
+	}
+
+	get volumeSync() {
+		return this.ready ? this.video.volume : null;
+	}
+
+	get pausedSync() {
+		return this.ready ? this.video.paused : null;
+	}
+
+	get durationSync() {
+		return this.ready ? this.video.duration : null;
+	}
+
+	_deferredAction(action) {
+		return new Promise((resolve,reject) => {
+			function processResult(actionResult) {
+				if (actionResult instanceof Promise) {
+					actionResult.then((p) => resolve(p))
+						.catch((err) => reject(err));
+				}
+				else {
+					resolve(actionResult);
+				}
+			}
+
+			if (this.ready) {
+				processResult(action());
+			}
+			else {
+				$(this.video).bind('canplay',() => {
+					processResult(action());
+					$(this.video).unbind('canplay');
+				});
+			}
+		});
+	}
+
+	_getQualityObject(index, s) {
+		return {
+			index: index,
+			res: s.res,
+			src: s.src,
+			toString:function() { return this.res.w==0 ? "auto" : this.res.w + "x" + this.res.h; },
+			shortLabel:function() { return this.res.w==0 ? "auto" : this.res.h + "p"; },
+			compare:function(q2) { return this.res.w*this.res.h - q2.res.w*q2.res.h; }
+		};
+	}
+
+	captureFrame() {
+		return new Promise((resolve) => {
+			resolve({
+				source:this.video,
+				width:this.video.videoWidth,
+				height:this.video.videoHeight
+			});
+		});
+	}
+
+	supportsCaptureFrame() {
+		return Promise.resolve(true);
+	}
+
+	// Initialization functions
+	getVideoData() {
+		var This = this;
+		return new Promise((resolve,reject) => {
+			this._deferredAction(() => {
+				resolve({
+					duration: This.video.duration,
+					currentTime: This.video.currentTime,
+					volume: This.video.volume,
+					paused: This.video.paused,
+					ended: This.video.ended,
+					res: {
+						w: This.video.videoWidth,
+						h: This.video.videoHeight
+					}
+				});
+			});
+		});
+	}
+	
+	setPosterFrame(url) {
+		this._posterFrame = url;
+	}
+
+	setAutoplay(auto) {
+		this._autoplay = auto;
+		if (auto && this.video) {
+			this.video.setAttribute("autoplay",auto);
+		}
+	}
+
+	videoCanvas() {
+		let canvasType = this._stream.canvas || ["video"];
+		return paella.getVideoCanvas(canvasType);
+	}
+
+	webGlDidLoad() {
+		return Promise.resolve();
+	}
+
+	load() {
+		return new Promise((resolve,reject) => {
+			var sources = this._stream.sources[this._streamName];
+			if (this._currentQuality===null && this._videoQualityStrategy) {
+				this._currentQuality = this._videoQualityStrategy.getQualityIndex(sources);
+			}
+	
+			var stream = this._currentQuality<sources.length ? sources[this._currentQuality]:null;
+			this.video.innerText = "";
+			this.videoCanvas()
+				.then((CanvasClass) => {
+					let canvasInstance = new CanvasClass(stream);
+					this._zoomAvailable = canvasInstance.allowZoom();
+
+					if (window.$paella_bg && bg.app && canvasInstance instanceof bg.app.WindowController) {
+						// WebGL canvas
+						this.domElementType = 'canvas';
+						if (stream) {
+
+							// WebGL engine load callback
+							return new Promise((webglResolve,webglReject) => {
+								this.webGlDidLoad()
+									.then(() => {
+										this.canvasController = null;
+										let mainLoop = bg.app.MainLoop.singleton;
+
+										mainLoop.updateMode = bg.app.FrameUpdate.AUTO;
+										mainLoop.canvas = this.domElement;
+										mainLoop.run(canvasInstance);
+										return this.loadVideoStream(canvasInstance,stream);
+									})
+
+									.then((canvas) => {
+										webglResolve(canvas);
+									})
+									.catch((err) => webglReject(err));
+							});
+						}
+						else {
+							Promise.reject(new Error("Invalid stream data."));
+						}
+					}
+					else {
+						return this.loadVideoStream(canvasInstance,stream);
+					}
+				})
+	
+				.then((canvas) => {
+					if (canvas && paella.WebGLCanvas && canvas instanceof paella.WebGLCanvas) {
+						this._video = canvas.video;
+						this._video.pause();
+						this._configureVideoEvents(this.video);
+					}
+					resolve(stream);
+				})
+	
+				.catch((err) => {
+					reject(err);
+				});
+		});
+	}
+
+	loadVideoStream(canvasInstance,stream) {
+		return canvasInstance.loadVideo(this,stream);
+	}
+
+	disable(isMainAudioPlayer) {
+		//if (isMainAudioPlayer) return;
+		//this._isDisabled = true;
+		//this._playState = !this.video.paused;
+		//this.video.pause();
+	}
+
+	enable(isMainAudioPlayer) {
+		//if (isMainAudioPlayer) return;
+		//this._isDisabled = false;
+		//if (this._playState) {
+		//	this.video.play();
+		//}
+	}
+
+	getQualities() {
+		return new Promise((resolve,reject) => {
+			setTimeout(() => {
+				var result = [];
+				var sources = this._stream.sources[this._streamName];
+				var index = -1;
+				sources.forEach((s) => {
+					index++;
+					result.push(this._getQualityObject(index,s));
+				});
+				resolve(result);
+			},10);
+		});
+	}
+
+	setQuality(index) {
+		return new Promise((resolve) => {
+			var paused = this.video.paused;
+			var sources = this._stream.sources[this._streamName];
+			this._currentQuality = index<sources.length ? index:0;
+			var currentTime = this.video.currentTime;
+			
+			let This = this;
+			let onSeek = function() {
+				This.unFreeze().then(() => {
+					resolve();
+					This.video.removeEventListener('seeked',onSeek,false);
+				});
+			};
+	
+			this.freeze()
+				.then(() => {
+					return this.load();
+				})
+
+				.then(() => {
+					if (!paused) {
+						this.play();
+					}
+					this.video.addEventListener('seeked',onSeek);
+					this.video.currentTime = currentTime;
+				});
+		});
+	}
+
+	getCurrentQuality() {
+		return new Promise((resolve) => {	
+			resolve(this._getQualityObject(this._currentQuality,this._stream.sources[this._streamName][this._currentQuality]));
+		});
+	}
+
+	play() {
+		return this._deferredAction(() => {
+			if (!this._isDisabled) {
+				return this.video.play();
+			}
+			else {
+				return Promise.resolve();
+			}
+		});
+	}
+
+	pause() {
+		return this._deferredAction(() => {
+			if (!this._isDisabled) {
+				return this.video.pause();
+			}
+			else {
+				return Promise.resolve();
+			}
+		});
+	}
+
+	isPaused() {
+		return this._deferredAction(() => {
+			return this.video.paused;
+		});
+	}
+
+	duration() {
+		return this._deferredAction(() => {
+			return this.video.duration;
+		});
+	}
+
+	setCurrentTime(time) {
+		return this._deferredAction(() => {
+			(time == 0 || time) && !isNaN(time) && (this.video.currentTime = time);
+		});
+	}
+
+	currentTime() {
+		return this._deferredAction(() => {
+			return this.video.currentTime;
+		});
+	}
+
+	setVolume(volume) {
+		return this._deferredAction(() => {
+			this.video.volume = volume;
+			if (volume==0) {
+				this.video.setAttribute("muted","muted");
+				this.video.muted = true;
+			}
+			else {
+				this.video.removeAttribute("muted");
+				this.video.muted = false;
+			}
+		});
+	}
+
+	volume() {
+		return this._deferredAction(() => {
+			return this.video.volume;
+		});
+	}
+
+	setPlaybackRate(rate) {
+		return this._deferredAction(() => {
+			this._playbackRate = rate;
+			this.video.playbackRate = rate;
+		});
+	}
+
+	playbackRate() {
+		return this._deferredAction(() => {
+			return this.video.playbackRate;
+		});
+	}
+
+	supportAutoplay() {
+		let macOS10_12_safari = paella.utils.userAgent.system.MacOS &&
+								paella.utils.userAgent.system.Version.minor>=12 &&
+								paella.utils.userAgent.browser.Safari;
+		let iOS = paella.utils.userAgent.system.iOS;
+		// Autoplay does not work from Chrome version 64
+		let chrome_v64 =	paella.utils.userAgent.browser.Chrome &&
+							paella.utils.userAgent.browser.Version.major==64;
+		if (macOS10_12_safari || iOS || chrome_v64)
+		{
+			return false;
+		}
+		else {
+			return true;
+		}
+	}
+
+	goFullScreen() {
+		return this._deferredAction(() => {
+			var elem = this.video;
+			if (elem.requestFullscreen) {
+				elem.requestFullscreen();
+			}
+			else if (elem.msRequestFullscreen) {
+				elem.msRequestFullscreen();
+			}
+			else if (elem.mozRequestFullScreen) {
+				elem.mozRequestFullScreen();
+			}
+			else if (elem.webkitEnterFullscreen) {
+				elem.webkitEnterFullscreen();
+			}
+		});
+	}
+
+	unFreeze(){
+		return this._deferredAction(() => {
+			var c = document.getElementById(this.video.id + "canvas");
+			if (c) {
+				$(c).remove();
+			}
+		});
+	}
+	
+	freeze(){
+		var This = this;
+		return this._deferredAction(function() {
+			var canvas = document.createElement("canvas");
+			canvas.id = This.video.id + "canvas";
+			canvas.className = "freezeFrame";
+			canvas.width = This.video.videoWidth;
+			canvas.height = This.video.videoHeight;
+			canvas.style.cssText = This.video.style.cssText;
+			canvas.style.zIndex = 2;
+
+			var ctx = canvas.getContext("2d");
+			ctx.drawImage(This.video, 0, 0, Math.ceil(canvas.width/16)*16, Math.ceil(canvas.height/16)*16);//Draw image
+			This.video.parentElement.appendChild(canvas);
+		});
+	}
+
+	unload() {
+		this._callUnloadEvent();
+		return paella_DeferredNotImplemented();
+	}
+
+	getDimensions() {
+		return paella_DeferredNotImplemented();
+	}
+}
+
+paella.Html5Video = Html5Video;
+
+paella.Html5Video.IsAutoplaySupported = function(debug = false) {
+	return new Promise((resolve) => {
+		// Create video element to test autoplay
+		var video = document.createElement('video');
+		video.src = 'data:video/mp4;base64,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';
+		video.load();
+		//video.style.display = 'none';
+		if (debug) {
+			video.style = "position: fixed; top: 0px; right: 0px; z-index: 1000000;";
+			document.body.appendChild(video);
+		}
+		else {
+			video.style.display = 'none';
+		}
+		video.playing = false;
+		video.play().then((status) => {
+				resolve(true);
+			})
+			.catch((err) => {
+				resolve(false)
+			})
+	})
+}
+
+class Html5VideoFactory {
+	isStreamCompatible(streamData) {
+		try {
+			if (paella.videoFactories.Html5VideoFactory.s_instances>0 && 
+				base.userAgent.system.iOS &&
+				(paella.utils.userAgent.system.Version.major<=10 && paella.utils.userAgent.system.Version.minor<3))
+			{
+				return false;
+			}
+			
+			for (var key in streamData.sources) {
+				if (key=='mp4' || key=='mp3') return true;
+			}
+		}
+		catch (e) {}
+		return false;
+	}
+
+	getVideoObject(id, streamData, rect) {
+		++paella.videoFactories.Html5VideoFactory.s_instances;
+		return new paella.Html5Video(id, streamData, rect.x, rect.y, rect.w, rect.h);
+	}
+}
+
+paella.videoFactories.Html5VideoFactory = Html5VideoFactory;
+paella.videoFactories.Html5VideoFactory.s_instances = 0;
+
+
+class ImageVideo extends paella.VideoElementBase {
+	
+	constructor(id,stream,left,top,width,height) {
+		super(id,stream,'img',left,top,width,height);
+
+		this._posterFrame = null;
+		this._currentQuality = null;
+		this._currentTime = 0;
+		this._duration =  0;
+		this._ended = false;
+		this._playTimer = null;
+		this._playbackRate = 1;
+
+		this._frameArray = null;
+		
+		this._stream.sources.image.sort(function(a,b) {
+			return a.res.h - b.res.h;
+		});
+	}
+
+	get img() { return this.domElement; }
+
+	get imgStream() { this._stream.sources.image[this._currentQuality]; }
+
+	get _paused() { return this._playTimer==null; }
+
+	_deferredAction(action) {
+		return new Promise((resolve) => {
+			if (this.ready) {
+				resolve(action());
+			}
+			else {
+				var resolve = () => {
+					this._ready = true;
+					resolve(action());
+				};
+				$(this.video).bind('paella:imagevideoready', resolve);
+			}
+		});
+	}
+
+	_getQualityObject(index, s) {
+		return {
+			index: index,
+			res: s.res,
+			src: s.src,
+			toString:function() { return Number(this.res.w) + "x" + Number(this.res.h); },
+			shortLabel:function() { return this.res.h + "p"; },
+			compare:function(q2) { return Number(this.res.w)*Number(this.res.h) - Number(q2.res.w)*Number(q2.res.h); }
+		};
+	}
+
+	_loadCurrentFrame() {
+		var This = this;
+		if (this._frameArray) {
+			var frame = this._frameArray[0];
+			this._frameArray.some(function(f) {
+				if (This._currentTime<f.time) {
+					return true;
+				}
+				else {
+					frame = f.src;
+				}
+			});
+			this.img.src = frame;
+		}
+	}
+
+	// Initialization functions
+
+	/*allowZoom:function() {
+		return false;
+	},*/
+
+	getVideoData() {
+		return new Promise((resolve) => {
+			this._deferredAction(() => {
+				let imgStream = this._stream.sources.image[this._currentQuality];
+				var videoData = {
+					duration: this._duration,
+					currentTime: this._currentTime,
+					volume: 0,
+					paused: this._paused,
+					ended: this._ended,
+					res: {
+						w: imgStream.res.w,
+						h: imgStream.res.h
+					}
+				};
+				resolve(videoData);
+			});
+		});
+	}
+
+	setPosterFrame(url) {
+		this._posterFrame = url;
+	}
+
+	setAutoplay(auto) {
+		this._autoplay = auto;
+		if (auto && this.video) {
+			this.video.setAttribute("autoplay",auto);
+		}
+	}
+
+	load() {
+		var This = this;
+		var sources = this._stream.sources.image;
+		if (this._currentQuality===null && this._videoQualityStrategy) {
+			this._currentQuality = this._videoQualityStrategy.getQualityIndex(sources);
+		}
+
+		var stream = this._currentQuality<sources.length ? sources[this._currentQuality]:null;
+		if (stream) {
+			this._frameArray = [];
+			for (var key in stream.frames) {
+				var time = Math.floor(Number(key.replace("frame_","")));
+				this._frameArray.push({ src:stream.frames[key], time:time });
+			}
+			this._frameArray.sort(function(a,b) {
+				return a.time - b.time;
+			});
+			this._ready = true;
+			this._currentTime = 0;
+			this._duration = stream.duration;
+			this._loadCurrentFrame();
+			paella.events.trigger("paella:imagevideoready");
+			return this._deferredAction(function() {
+				return stream;
+			});
+		}
+		else {
+			return paella_DeferredRejected(new Error("Could not load video: invalid quality stream index"));
+		}
+	}
+
+	supportAutoplay() {
+		return true;
+	}
+
+	getQualities() {
+		return new Promise((resolve) => {
+			setTimeout(() => {
+				var result = [];
+				var sources = this._stream.sources[this._streamName];
+				var index = -1;
+				sources.forEach((s) => {
+					index++;
+					result.push(this._getQualityObject(index,s));
+				});
+				resolve(result);
+			},10);
+		});
+	}
+
+	setQuality(index) {
+		return new Promise((resolve) => {
+			let paused = this._paused;
+			let sources = this._stream.sources.image;
+			this._currentQuality = index<sources.length ? index:0;
+			var currentTime = this._currentTime;
+			this.load()
+				.then(function() {
+					this._loadCurrentFrame();
+					resolve();
+				});
+		});
+	}
+
+	getCurrentQuality() {
+		return new Promise((resolve) => {
+			resolve(this._getQualityObject(this._currentQuality,this._stream.sources.image[this._currentQuality]));
+		});
+	}
+
+	play() {
+		let This = this;
+		return this._deferredAction(() => {
+			This._playTimer = new base.Timer(function() {
+				This._currentTime += 0.25 * This._playbackRate;
+				This._loadCurrentFrame();
+			}, 250);
+			This._playTimer.repeat = true;
+		});
+	}
+
+	pause() {
+		let This = this;
+		return this._deferredAction(() => {
+			This._playTimer.repeat = false;
+			This._playTimer = null;
+		});
+	}
+
+	isPaused() {
+		return this._deferredAction(() => {
+			return this._paused;
+		});
+	}
+
+	duration() {
+		return this._deferredAction(() => {
+			return this._duration;
+		});
+	}
+
+	setCurrentTime(time) {
+		return this._deferredAction(() => {
+			this._currentTime = time;
+			this._loadCurrentFrame();
+		});
+	}
+
+	currentTime() {
+		return this._deferredAction(() => {
+			return this._currentTime;
+		});
+	}
+
+	setVolume(volume) {
+		return this._deferredAction(function() {
+			// No audo sources in image video
+		});
+	}
+
+	volume() {
+		return this._deferredAction(function() {
+			// No audo sources in image video
+			return 0;
+		});
+	}
+
+	setPlaybackRate(rate) {
+		return this._deferredAction(() => {
+			this._playbackRate = rate;
+		});
+	}
+
+	playbackRate() {
+		return this._deferredAction(() => {
+			return this._playbackRate;
+		});
+	}
+
+	goFullScreen() {
+		return this._deferredAction(() => {
+			var elem = this.img;
+			if (elem.requestFullscreen) {
+				elem.requestFullscreen();
+			}
+			else if (elem.msRequestFullscreen) {
+				elem.msRequestFullscreen();
+			}
+			else if (elem.mozRequestFullScreen) {
+				elem.mozRequestFullScreen();
+			}
+			else if (elem.webkitEnterFullscreen) {
+				elem.webkitEnterFullscreen();
+			}
+		});
+	}
+
+	unFreeze(){
+		return this._deferredAction(function() {});
+	}
+
+	freeze(){
+		return this._deferredAction(function() {});
+	}
+
+	unload() {
+		this._callUnloadEvent();
+		return paella_DeferredNotImplemented();
+	}
+
+	getDimensions() {
+		return paella_DeferredNotImplemented();
+	}
+}
+
+paella.ImageVideo = ImageVideo;
+
+
+class ImageVideoFactory {
+	isStreamCompatible(streamData) {
+		try {
+			for (var key in streamData.sources) {
+				if (key=='image') return true;
+			}
+		}
+		catch (e) {}
+		return false;
+	}
+
+	getVideoObject(id, streamData, rect) {
+		return new paella.ImageVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+	}
+}
+
+paella.videoFactories.ImageVideoFactory = ImageVideoFactory;
+
+})();
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+(() => {
+
+class BackgroundContainer extends paella.DomNode {
+	constructor(id,image) {
+		super('img',id,{position:'relative',top:'0px',left:'0px',right:'0px',bottom:'0px',zIndex:GlobalParams.background.zIndex});
+		this.domElement.setAttribute('src',image);
+		this.domElement.setAttribute('alt','');
+		this.domElement.setAttribute('width','100%');
+		this.domElement.setAttribute('height','100%');
+	}
+
+	setImage(image) {
+		this.domElement.setAttribute('src',image);
+	}
+}
+
+paella.BackgroundContainer = BackgroundContainer;
+
+class VideoOverlay extends paella.DomNode {
+	get size() {
+		if (!this._size) {
+			this._size = {w:1280,h:720};
+		}
+		return this._size;
+	}
+
+	constructor() {
+		var style = {position:'absolute',left:'0px',right:'0px',top:'0px',bottom:'0px',overflow:'hidden',zIndex:10};
+		super('div','overlayContainer',style);
+		this.domElement.setAttribute("role", "main");
+	}
+
+	_generateId() {
+		return Math.ceil(Date.now() * Math.random());
+	}
+
+	enableBackgroundMode() {
+		this.domElement.className = 'overlayContainer background';
+	}
+
+	disableBackgroundMode() {
+		this.domElement.className = 'overlayContainer';
+	}
+
+	clear() {
+		this.domElement.innerText = "";
+	}
+
+	getVideoRect(index) {
+		return paella.player.videoContainer.getVideoRect(index);
+	}
+
+	addText(text,rect,isDebug) {
+		var textElem = document.createElement('div');
+		textElem.innerText = text;
+		textElem.className = "videoOverlayText";
+		if (isDebug) textElem.style.backgroundColor = "red";
+		return this.addElement(textElem,rect);
+	}
+
+	addElement(element,rect) {
+		this.domElement.appendChild(element);
+		element.style.position = 'absolute';
+		element.style.left = this.getHSize(rect.left) + '%';
+		element.style.top = this.getVSize(rect.top) + '%';
+		element.style.width = this.getHSize(rect.width) + '%';
+		element.style.height = this.getVSize(rect.height) + '%';
+		return element;
+	}
+
+	getLayer(id,zindex) {
+		id = id || this._generateId();
+		return $(this.domElement).find("#" + id)[0] || this.addLayer(id,zindex);
+	}
+
+	addLayer(id,zindex) {
+		zindex = zindex || 10;
+		var element = document.createElement('div');
+		element.className = "row";
+		element.id = id || this._generateId();
+		return this.addElement(element,{ left:0, top: 0, width:1280, height:720 });
+	}
+
+	removeLayer(id) {
+		var elem = $(this.domElement).find("#" + id)[0];
+		if (elem) {
+			this.domElement.removeChild(elem);
+		}
+	}
+
+	removeElement(element) {
+		if (element) {
+			try {
+				this.domElement.removeChild(element);
+			}
+			catch (e) {
+				
+			}
+		}
+	}
+
+	getVSize(px) {
+		return px*100/this.size.h;
+	}
+
+	getHSize(px) {
+		return px*100/this.size.w;
+	}
+}
+
+paella.VideoOverlay = VideoOverlay;
+
+class VideoWrapper extends paella.DomNode {
+	constructor(id, left, top, width, height) {
+		var relativeSize = new paella.RelativeVideoSize();
+		var percentTop = relativeSize.percentVSize(top) + '%';
+		var percentLeft = relativeSize.percentWSize(left) + '%';
+		var percentWidth = relativeSize.percentWSize(width) + '%';
+		var percentHeight = relativeSize.percentVSize(height) + '%';
+		var style = {
+			top: percentTop,
+			left: percentLeft,
+			width: percentWidth,
+			height: percentHeight,
+			position: 'absolute',
+			zIndex: GlobalParams.video.zIndex,
+			overflow: 'hidden'
+		};
+		super('div',id,style);
+		this._rect = { left:left, top:top, width:width, height:height };
+		this.domElement.className = "videoWrapper";
+	}
+
+	setRect(rect,animate) {
+		this._rect = JSON.parse(JSON.stringify(rect));
+		var relativeSize = new paella.RelativeVideoSize();
+		var percentTop = relativeSize.percentVSize(rect.top) + '%';
+		var percentLeft = relativeSize.percentWSize(rect.left) + '%';
+		var percentWidth = relativeSize.percentWSize(rect.width) + '%';
+		var percentHeight = relativeSize.percentVSize(rect.height) + '%';
+		var style = {top:percentTop,left:percentLeft,width:percentWidth,height:percentHeight,position:'absolute'};
+		if (animate) {
+			this.disableClassName();
+			var thisClass = this;
+
+			$(this.domElement).animate(style,400,function(){
+				thisClass.enableClassName();
+				paella.events.trigger(paella.events.setComposition, { video:thisClass });
+			});
+			this.enableClassNameAfter(400);
+		}
+		else {
+			$(this.domElement).css(style);
+			paella.events.trigger(paella.events.setComposition, { video:this });
+		}
+	}
+
+	getRect() {
+		return this._rect;
+	}
+
+	disableClassName() {
+		this.classNameBackup = this.domElement.className;
+		this.domElement.className = "";
+	}
+
+	enableClassName() {
+		this.domElement.className = this.classNameBackup;
+	}
+
+	enableClassNameAfter(millis) {
+		setTimeout("$('#" + this.domElement.id + "')[0].className = '" + this.classNameBackup + "'",millis);
+	}
+
+	setVisible(visible,animate) {
+		if (typeof(visible=="string")) {
+			visible = /true/i.test(visible) ? true : false;
+		}
+		if (visible && animate) {
+			$(this.domElement).show();
+			$(this.domElement).animate({opacity:1.0},300);
+		}
+		else if (visible && !animate) {
+			$(this.domElement).show();
+		}
+		else if (!visible && animate) {
+			$(this.domElement).animate({opacity:0.0},300);
+		}
+		else if (!visible && !animate) {
+			$(this.domElement).hide();
+		}
+	}
+
+	setLayer(layer) {
+		this.domElement.style.zIndex = layer;
+	}
+}
+
+paella.VideoWrapper = VideoWrapper;
+
+paella.SeekType = {
+	FULL: 1,
+	BACKWARDS_ONLY: 2,
+	FORWARD_ONLY: 3,
+	DISABLED: 4
+};
+
+class VideoContainerBase extends paella.DomNode {
+	
+	constructor(id) {
+		var style = {position:'absolute',left:'0px',right:'0px',top:'0px',bottom:'0px',overflow:'hidden'};
+		super('div',id,style);
+
+		this._trimming = {enabled:false,start:0,end:0};
+		this.timeupdateEventTimer = null;
+		this.timeupdateInterval = 250;
+		this.masterVideoData = null;
+		this.slaveVideoData = null;
+		this.currentMasterVideoData = null;
+		this.currentSlaveVideoData = null;
+		this._force = false;
+		this._playOnClickEnabled =  true;
+		this._seekDisabled =  false;
+		this._seekType = paella.SeekType.FULL;
+		this._seekTimeLimit = 0;
+		this._attenuationEnabled = false;
+		
+		$(this.domElement).click((evt) => {
+			if (this.firstClick && base.userAgent.browser.IsMobileVersion) return;
+			if (this.firstClick && !this._playOnClickEnabled) return;
+			paella.player.videoContainer.paused()
+				.then((paused) => {
+					// If some player needs mouse events support, the click is ignored
+					if (this.firstClick && this.streamProvider.videoPlayers.some((p) => p.canvasData.mouseEventsSupport)) {
+						return;
+					}
+
+					this.firstClick = true;
+					if (paused) {
+						paella.player.play();
+					}
+					else {
+						paella.player.pause();
+					}
+				});
+		});
+
+		this.domElement.addEventListener("touchstart",(event) => {
+			if (paella.player.controls) {
+				paella.player.controls.restartHideTimer();
+			}
+		});
+
+		let endedTimer = null;
+		paella.events.bind(paella.events.endVideo,(event) => {
+			if (endedTimer) {
+				clearTimeout(endedTimer);
+				endedTimer = null;
+			}
+			endedTimer = setTimeout(() => {
+				paella.events.trigger(paella.events.ended);
+			}, 1000);
+		});
+	}
+
+	set attenuationEnabled(att) {
+		this._attenuationEnabled = att;
+
+		Array.from(paella.player.videoContainer.container.domElement.children).forEach((ch) => {
+			if (ch.id == "overlayContainer") {
+				return;
+			}
+			if (att) {
+				$(ch).addClass("dimmed-element");
+			}
+			else {
+				$(ch).removeClass("dimmed-element");
+			}
+		});
+	}
+
+	get attenuationEnabled() {
+		return this._attenuationEnabled;
+	}
+
+	set seekType(type) {
+		switch (type) {
+		case paella.SeekType.FULL:
+		case paella.SeekType.BACKWARDS_ONLY:
+		case paella.SeekType.FORWARD_ONLY:
+		case paella.SeekType.DISABLED:
+			this._seekType = type;
+			paella.events.trigger(paella.events.seekAvailabilityChanged, {
+				type: type,
+				enabled: type==paella.SeekType.FULL,
+				disabled: type!=paella.SeekType.FULL
+			});
+			break;
+		default:
+			throw new Error(`Invalid seekType. Allowed seek types:
+				paella.SeekType.FULL
+				paella.SeekType.BACKWARDS_ONLY
+				paella.SeekType.FORWARD_ONLY
+				paella.SeekType.DISABLED`);
+		}
+	}
+
+	get seekType() { return this._seekType; }
+
+	triggerTimeupdate() {
+		var paused = 0;
+		var duration = 0;
+		this.paused()
+			.then((p) => {
+				paused = p;
+				return this.duration();
+			})
+
+			.then((d) => {
+				duration = d;
+				return this.currentTime();
+			})
+
+			.then((currentTime) => {
+				if (!paused || this._force) {
+					this._seekTimeLimit = currentTime>this._seekTimeLimit ? currentTime:this._seekTimeLimit;
+					this._force = false;
+					paella.events.trigger(paella.events.timeupdate, {
+						videoContainer: this,
+						currentTime: currentTime,
+						duration: duration
+					});
+				}
+			});
+	}
+
+	startTimeupdate() {
+		this.timeupdateEventTimer = new Timer((timer) => {
+			this.triggerTimeupdate();
+		}, this.timeupdateInterval);
+		this.timeupdateEventTimer.repeat = true;
+	}
+
+	stopTimeupdate() {
+		if (this.timeupdateEventTimer) {
+			this.timeupdateEventTimer.repeat = false;
+		}
+		this.timeupdateEventTimer = null;
+	}
+
+	enablePlayOnClick() {
+		this._playOnClickEnabled = true;
+	}
+
+	disablePlayOnClick() {
+		this._playOnClickEnabled = false;
+	}
+
+	isPlayOnClickEnabled() {
+		return this._playOnClickEnabled;
+	}
+
+	play() {
+		this.streamProvider.startVideoSync(this.audioPlayer);
+		this.startTimeupdate();
+		setTimeout(() => paella.events.trigger(paella.events.play), 50)
+	}
+
+	pause() {
+		paella.events.trigger(paella.events.pause);
+		this.stopTimeupdate();
+		this.streamProvider.stopVideoSync();
+	}
+
+	seekTo(newPositionPercent) {
+		return new Promise((resolve, reject) => {
+			let time = 0;
+			paella.player.videoContainer.currentTime()
+				.then((t) => {
+					time = t;
+					return paella.player.videoContainer.duration()			
+				})
+
+				.then((duration) => {
+					if (this._seekTimeLimit>0 && this._seekType==paella.SeekType.BACKWARDS_ONLY) {
+						time = this._seekTimeLimit;
+					}
+					let currentPercent = time / duration * 100;
+					switch (this._seekType) {
+					case paella.SeekType.FULL:
+						break;
+					case paella.SeekType.BACKWARDS_ONLY:
+						if (newPositionPercent>currentPercent) {
+							reject(new Error("Warning: Seek is disabled"));
+							return;
+						}
+						break;
+					case paella.SeekType.FORWARD_ONLY:
+						if (newPositionPercent<currentPercent) {
+							reject(new Error("Warning: Seek is disabled"));
+							return;
+						}
+						break;
+					case paella.SeekType.DISABLED:
+						reject(new Error("Warning: Seek is disabled"));
+						return;
+					}
+
+					this.setCurrentPercent(newPositionPercent)
+						.then((timeData) => {
+							this._force = true;
+							this.triggerTimeupdate();
+							paella.events.trigger(paella.events.seekToTime,{ newPosition:timeData.time });
+							paella.events.trigger(paella.events.seekTo,{ newPositionPercent:newPositionPercent });
+							resolve();
+						});
+				})
+		});
+	}
+
+	seekToTime(time) {
+		return new Promise((resolve, reject) => {
+			paella.player.videoContainer.currentTime()
+				.then((currentTime) => {
+					if (this._seekTimeLimit && this._seekType==paella.SeekType.BACKWARDS_ONLY) {
+						currentTime = this._seekTimeLimit;
+					}
+					switch (this._seekType) {
+					case paella.SeekType.FULL:
+						break;
+					case paella.SeekType.BACKWARDS_ONLY:
+						if (time>currentTime) {
+							reject(new Error("Warning: Seek is disabled"));
+							return;
+						}
+						break;
+					case paella.SeekType.FORWARD_ONLY:
+						if (time<currentTime) {
+							reject(new Error("Warning: Seek is disabled"));
+							return;
+						}
+						break;
+					case paella.SeekType.DISABLED:
+						reject(new Error("Warning: Seek is disabled"));
+						return;
+					}
+
+					this.setCurrentTime(time)
+						.then((timeData) => {
+							this._force = true;
+							this.triggerTimeupdate();
+							let percent = timeData.time * 100 / timeData.duration;
+							paella.events.trigger(paella.events.seekToTime,{ newPosition:timeData.time });
+							paella.events.trigger(paella.events.seekTo,{ newPositionPercent:percent });
+						});
+				});
+		});
+	}
+
+	setPlaybackRate(params) {
+		paella.events.trigger(paella.events.setPlaybackRate, { rate: params });
+	}
+
+	mute() {
+
+	}
+
+	unmute() {
+
+	}
+
+	setVolume(params) {
+	}
+
+	volume() {
+		return 1;
+	}
+
+	trimStart() {
+		return new Promise((resolve) => {
+			resolve(this._trimming.start);
+		});
+	}
+
+	trimEnd() {
+		return new Promise((resolve) => {
+			resolve(this._trimming.end);
+		});
+	}
+
+	trimEnabled() {
+		return new Promise((resolve) => {
+			resolve(this._trimming.enabled);
+		});
+	}
+
+	trimming() {
+		return new Promise((resolve) => {
+			resolve(this._trimming);
+		});
+	}
+
+	enableTrimming() {
+		this._trimming.enabled = true;
+		let cap=paella.captions.getActiveCaptions()
+		if(cap!==undefined) paella.plugins.captionsPlugin.buildBodyContent(cap._captions,"list");
+		paella.events.trigger(paella.events.setTrim,{trimEnabled:this._trimming.enabled,trimStart:this._trimming.start,trimEnd:this._trimming.end});
+	}
+
+	disableTrimming() {
+		this._trimming.enabled = false;
+		let cap=paella.captions.getActiveCaptions()
+		if(cap!==undefined) paella.plugins.captionsPlugin.buildBodyContent(cap._captions,"list");
+		paella.events.trigger(paella.events.setTrim,{trimEnabled:this._trimming.enabled,trimStart:this._trimming.start,trimEnd:this._trimming.end});
+	}
+
+	setTrimming(start,end) {
+		return new Promise((resolve) => {
+			let currentTime = 0;
+
+			this.currentTime(true)
+				.then((c) => {
+					currentTime = c;
+					return this.duration();
+				})
+
+				.then((duration) => {
+					this._trimming.start = Math.floor(start);
+					this._trimming.end = Math.floor(end);
+					if(this._trimming.enabled){
+						if (currentTime<this._trimming.start) {
+							this.setCurrentTime(0);
+						}
+						if (currentTime>this._trimming.end) {
+							this.setCurrentTime(duration);
+						}
+
+						let cap=paella.captions.getActiveCaptions();
+						if(cap!==undefined) paella.plugins.captionsPlugin.buildBodyContent(cap._captions,"list");
+					}
+					paella.events.trigger(paella.events.setTrim,{trimEnabled:this._trimming.enabled,trimStart:this._trimming.start,trimEnd:this._trimming.end});
+					resolve();
+				});
+		});
+	}
+
+	setTrimmingStart(start) {
+ 		return this.setTrimming(start,this._trimming.end);
+	}
+
+	setTrimmingEnd(end) {
+		return this.setTrimming(this._trimming.start,end);
+	}
+
+	setCurrentPercent(percent) {
+		var duration = 0;
+		return new Promise((resolve) => {
+			this.duration()
+				.then((d) => {
+					duration = d;
+					return this.trimming();
+				})
+				.then((trimming) => {
+					var position = 0;
+					if (trimming.enabled) {
+						var start = trimming.start;
+						var end = trimming.end;
+						duration = end - start;
+						var trimedPosition = percent * duration / 100;
+						position = parseFloat(trimedPosition);
+					}
+					else {
+						position = percent * duration / 100;
+					}
+					return this.setCurrentTime(position);
+				})
+				.then(function(timeData) {
+					resolve(timeData);
+				});
+		});
+	}
+
+	setCurrentTime(time) {
+		base.log.debug("VideoContainerBase.setCurrentTime(" +  time + ")");
+	}
+
+	currentTime() {
+		base.log.debug("VideoContainerBase.currentTime()");
+		return 0;
+	}
+
+	duration() {
+		base.log.debug("VideoContainerBase.duration()");
+		return 0;
+	}
+
+	paused() {
+		base.log.debug("VideoContainerBase.paused()");
+		return true;
+	}
+
+	setupVideo(onSuccess) {
+		base.log.debug("VideoContainerBase.setupVide()");
+	}
+
+	isReady() {
+		base.log.debug("VideoContainerBase.isReady()");
+		return true;
+	}
+
+	onresize() { super.onresize(onresize);
+	}
+}
+
+paella.VideoContainerBase = VideoContainerBase;
+
+// Profile frame strategies
+
+class ProfileFrameStrategy {
+	static Factory() {
+		var config = paella.player.config;
+
+		try {
+			var strategyClass = config.player.profileFrameStrategy;
+			var ClassObject = paella.utils.objectFromString(strategyClass);
+			var strategy = new ClassObject();
+			if (strategy instanceof paella.ProfileFrameStrategy) {
+				return strategy;
+			}
+		}
+		catch (e) {
+		}
+		
+		return null;
+	}
+
+	valid() { return true; }
+
+	adaptFrame(videoDimensions,frameRect) {
+		return frameRect;
+	}
+}
+
+paella.ProfileFrameStrategy = ProfileFrameStrategy;
+
+class LimitedSizeProfileFrameStrategy extends ProfileFrameStrategy {
+	adaptFrame(videoDimensions,frameRect) {
+		if (videoDimensions.width<frameRect.width|| videoDimensions.height<frameRect.height) {
+			var frameRectCopy = JSON.parse(JSON.stringify(frameRect));
+			frameRectCopy.width = videoDimensions.width;
+			frameRectCopy.height = videoDimensions.height;
+			var diff = { w:frameRect.width - videoDimensions.width,
+						h:frameRect.height - videoDimensions.height };
+			frameRectCopy.top = frameRectCopy.top + diff.h/2;
+			frameRectCopy.left = frameRectCopy.left + diff.w/2;
+			return frameRectCopy;
+		}
+		return frameRect;
+	}
+}
+
+paella.LimitedSizeProfileFrameStrategy = LimitedSizeProfileFrameStrategy;
+
+class StreamProvider {
+	constructor(videoData) {
+		this._mainStream = null;
+		this._videoStreams = [];
+		this._audioStreams = [];
+
+		this._mainPlayer = null;
+		this._audioPlayer = null;
+		this._videoPlayers = [];
+		this._audioPlayers = [];
+		this._players = [];
+
+		this._autoplay = base.parameters.get('autoplay')=='true' || this.isLiveStreaming;
+		this._startTime = 0;
+	}
+
+	init(videoData) {
+		if (videoData.length==0) throw Error("Empty video data.");
+		this._videoData = videoData;
+
+		if (!this._videoData.some((stream) => { return stream.role=="master"; })) {
+			this._videoData[0].role = "master";
+		}
+
+		this._videoData.forEach((stream, index) => {
+			stream.type = stream.type || 'video';
+			if (stream.role=='master') {
+				this._mainStream = stream;
+			}
+
+			if (stream.type=='video') {
+				this._videoStreams.push(stream);
+			}
+			else if (stream.type=='audio') {
+				this._audioStreams.push(stream);
+			}
+		});
+
+		if (this._videoStreams.length==0) {
+			throw new Error("No video streams found. Paella Player requires at least one video stream.");
+		}
+
+		// Create video players
+		let autoplay = this.autoplay;
+		this._videoStreams.forEach((videoStream,index) => {
+			let rect = {x:0,y:0,w:1280,h:720};
+			let player = paella.videoFactory.getVideoObject(`video_${ index }`, videoStream, rect);
+			player.setVideoQualityStrategy(this._qualityStrategy);
+			player.setAutoplay(autoplay);
+
+			if (videoStream==this._mainStream) {
+				this._mainPlayer = player;
+				this._audioPlayer = player;
+			}
+			else {
+				player.setVolume(0);
+			}
+
+			this._videoPlayers.push(player);
+			this._players.push(player);
+		});
+
+		// Create audio player
+		this._audioStreams.forEach((audioStream,index) => {
+			let player = paella.audioFactory.getAudioObject(`audio_${ index }`,audioStream);
+			player.setAutoplay(autoplay);
+			if (player) {
+				this._audioPlayers.push(player);
+				this._players.push(player);
+			}
+		});
+	}
+
+	startVideoSync(syncProviderPlayer) {
+		this._syncProviderPlayer = syncProviderPlayer;
+		this._audioPlayer = syncProviderPlayer; // The player that provides the synchronization is also used as main audio player.
+		this.stopVideoSync();
+		
+		console.debug("Start sync to player:");
+		console.debug(this._syncProviderPlayer);
+		let maxDiff = 0.3;
+		let sync = () => {
+			this._syncProviderPlayer.currentTime()
+				.then((t) => {
+					this.players.forEach((player) => {
+						if (player!=syncProviderPlayer &&
+							player.currentTimeSync!=null &&
+							Math.abs(player.currentTimeSync-t)>maxDiff)
+						{
+							console.debug(`Sync player current time: ${ player.currentTimeSync } to time ${ t }`);
+							console.debug(player);	
+							player.setCurrentTime(t);
+						}
+					});
+					
+				});
+			this._syncTimer = setTimeout(() => sync(), 1000);
+		};
+	
+		this._syncTimer = setTimeout(() => sync(), 1000);
+	}
+
+	stopVideoSync() {
+		if (this._syncTimer) {
+			console.debug("Stop video sync");
+			clearTimeout(this._syncTimer);
+			this._syncTimer = null;
+		}
+	}
+
+	loadVideos() {
+		let promises = [];
+
+		this._players.forEach((player) => {
+			promises.push(player.load());
+		});
+		
+		return Promise.all(promises);
+	}
+
+	get startTime() {
+		return this._startTime;
+	}
+
+	set startTime(s) {
+		this._startTime = s;
+	}
+
+	get isMonostream() {
+		return this._videoStreams.length==1;
+	}
+
+	get mainStream() {
+		return this._mainStream;
+	}
+
+	get videoStreams() {
+		//return this._videoData;
+		return this._videoStreams;
+	}
+
+	
+	get audioStreams() {
+		return this._audioStreams;
+	}
+	
+	get streams() {
+		return this._videoStreams.concat(this._audioStreams);
+	}
+
+	get videoPlayers() {
+		return this._videoPlayers;
+	}
+
+	get audioPlayers() {
+		return this._audioPlayers;
+	}
+
+	get players() {
+		return this._videoPlayers.concat(this._audioPlayers);
+	}
+
+	callPlayerFunction(fnName) {
+		let promises = [];
+		let functionArguments = [];
+		for (let i=1; i<arguments.length; ++i) {
+			functionArguments.push(arguments[i]);
+		}
+
+		this.players.forEach((player) => {
+			promises.push(player[fnName](...functionArguments));
+		});
+
+		return new Promise((resolve,reject) => {
+			Promise.all(promises)
+				.then(() => {
+					if (fnName=='play' && !this._firstPlay) {
+						this._firstPlay = true;
+						if (this._startTime) {
+							this.players.forEach((p) => p.setCurrentTime(this._startTime));
+						}
+					}
+					resolve();
+				})
+				.catch((err) => {
+					reject(err);
+				});
+		});
+	}
+
+	get mainVideoPlayer() {
+		return this._mainPlayer;
+	}
+
+	get mainAudioPlayer() {
+		return this._audioPlayer;
+	}
+
+	get isLiveStreaming() {
+		return paella.player.isLiveStream();
+	}
+
+	set qualityStrategy(strategy) {
+		this._qualityStrategy = strategy;
+		this._videoPlayers.forEach((player) => {
+			player.setVideoQualityStrategy(strategy);
+		})
+	}
+
+	get qualityStrategy() { return this._qualityStrategy || null; }
+
+	get autoplay() {
+		return this.supportAutoplay && this._autoplay;
+	}
+
+	set autoplay(ap) {
+		if (!this.supportAutoplay || this.isLiveStreaming) return;
+		this._autoplay = ap;
+		if (this.videoPlayers) {
+			this.videoPlayers.forEach((player) => player.setAutoplay(ap));
+			this.audioPlayers.forEach((player) => player.setAutoplay(ap));
+		}
+	}
+
+	get supportAutoplay() {
+		return this.videoPlayers.every((player) => player.supportAutoplay());
+	}
+}
+
+paella.StreamProvider = StreamProvider;
+
+function addVideoWrapper(id,videoPlayer) {
+	let wrapper = new paella.VideoWrapper(id);
+	wrapper.addNode(videoPlayer);
+	this.videoWrappers.push(wrapper);
+	this.container.addNode(wrapper);
+	return wrapper;
+}
+
+class VideoContainer extends paella.VideoContainerBase {
+
+	get streamProvider() { return this._streamProvider; }
+	get ready() { return this._ready; }
+	get isMonostream() { return this._streamProvider.isMonostream; }
+	get trimmingHandler() { return this._trimmingHandler; }
+	get videoWrappers() { return this._videoWrappers; }
+	get container() { return this._container; }
+	get profileFrameStrategy() { return this._profileFrameStrategy; }
+	get sourceData() { return this._sourceData; }
+
+	constructor(id) {
+		super(id);
+
+		this._streamProvider = new paella.StreamProvider();
+		this._ready = false;
+		this._videoWrappers = [];
+
+		this._container = new paella.DomNode('div','playerContainer_videoContainer_container',{position:'relative',display:'block',marginLeft:'auto',marginRight:'auto',width:'1024px',height:'567px'});
+		this._container.domElement.setAttribute('role','main');
+		this.addNode(this._container);
+
+		this.overlayContainer = new paella.VideoOverlay(this.domElement);
+		this.container.addNode(this.overlayContainer);
+
+		this.setProfileFrameStrategy(paella.ProfileFrameStrategy.Factory());
+		this.setVideoQualityStrategy(paella.VideoQualityStrategy.Factory());
+
+		this._audioTag = paella.player.config.player.defaultAudioTag ||
+						 paella.dictionary.currentLanguage();
+		this._audioPlayer = null;
+
+		// Initial volume level
+		this._volume = paella.utils.cookies.get("volume") ? Number(paella.utils.cookies.get("volume")) : 1;
+		this._muted = false;
+	}
+
+	// Playback and status functions
+	play() {
+		return new Promise((resolve,reject) => {
+			this.streamProvider.startTime = this._startTime;
+			this.streamProvider.callPlayerFunction('play')
+				.then(() => {
+					super.play();
+					resolve();
+				})
+				.catch((err) => {
+					reject(err);
+				});
+		});
+	}
+
+	pause() {
+		return new Promise((resolve,reject) => {
+			this.streamProvider.callPlayerFunction('pause')
+				.then(() => {
+					super.pause();
+					resolve();
+				})
+				.catch((err) => {
+					reject(err);
+				})
+		});
+	}
+
+	setCurrentTime(time) {
+		return new Promise((resolve,reject) => {
+			this.trimming()
+				.then((trimmingData) => {
+					if (trimmingData.enabled) {
+						time += trimmingData.start;
+						if (time<trimmingData.start) {
+							time = trimmingData.start;
+						}
+						if (time>trimmingData.end) {
+							time = trimmingData.end;
+						}
+					}
+					return this.streamProvider.callPlayerFunction('setCurrentTime',time);
+				})
+			
+				.then(() => {
+					return this.duration(false);
+				})
+
+				.then((duration) => {
+					resolve({ time:time, duration:duration });
+				})
+
+				.catch((err) => {
+					reject(err);
+				})
+		})
+	}
+
+	currentTime(ignoreTrimming = false) {
+		return new Promise((resolve) => {
+			let trimmingData = null;
+			let p = ignoreTrimming ? Promise.resolve({ enabled:false }) : this.trimming();
+
+			p.then((t) => {
+				trimmingData = t;
+				return this.masterVideo().currentTime();
+			})
+
+			.then((time) => {
+				if (trimmingData.enabled) {
+					time = time - trimmingData.start;
+				}
+				resolve(time)
+			});
+		});
+	}
+
+	setPlaybackRate(rate) {
+		this.streamProvider.callPlayerFunction('setPlaybackRate',rate);
+		super.setPlaybackRate(rate);
+	}
+
+	mute() {
+		return new Promise((resolve) => {
+			this._muted = true;
+			this._audioPlayer.setVolume(0)
+				.then(() => {
+					paella.events.trigger(paella.events.setVolume, { master: 0 });
+					resolve();
+				});
+		});
+	}
+
+	unmute() {
+		return new Promise((resolve) => {
+			this._muted = false;
+			this._audioPlayer.setVolume(this._volume)
+				.then(() => {
+					paella.events.trigger(paella.events.setVolume, { master: this._volume });
+					resolve();
+				});
+		});
+	}
+
+	get muted() {
+		return this._muted;
+	}
+
+	setVolume(params) {
+		if (typeof(params)=='object') {
+			console.warn("videoContainer.setVolume(): set parameter as object is deprecated");
+			return Promise.resolve();
+		}
+		else if (params==0) {
+			return this.mute();
+		}
+		else {
+			return new Promise((resolve,reject) => {
+				paella.utils.cookies.set("volume",params);
+				this._volume = params;
+				this._audioPlayer.setVolume(params)
+					.then(() => {
+						paella.events.trigger(paella.events.setVolume, { master:params });
+						resolve(params);
+					})
+					.catch((err) => {
+						reject(err);
+					});
+			});
+		}
+	}
+
+	volume() {
+		return this._audioPlayer.volume();
+	}
+
+	duration(ignoreTrimming = false) {
+		return new Promise((resolve) => {
+			let trimmingData = null;
+			let p = ignoreTrimming ? Promise.resolve({ enabled:false }) : this.trimming();
+
+			p.then((t) => {
+				trimmingData = t;
+				return this.masterVideo().duration();
+			})
+			
+			.then((duration) => {
+				if (trimmingData.enabled) {
+					duration = trimmingData.end - trimmingData.start;
+				}
+				resolve(duration);
+			});
+		})
+	}
+
+	paused() {
+		return this.masterVideo().isPaused();
+	}
+
+	// Video quality functions
+	getQualities() {
+		return this.masterVideo().getQualities();
+	}
+
+	setQuality(index) {
+		let qualities = [];
+		let promises = [];
+		this.streamProvider.videoPlayers.forEach((player) => {
+			let playerData = {
+				player:player,
+				promise:player.getQualities()
+			};
+			qualities.push(playerData);
+			promises.push(playerData.promise);
+		});
+
+		return new Promise((resolve) => {
+			let resultPromises = [];
+			Promise.all(promises)
+				.then(() => {
+					qualities.forEach((data) => {
+						data.promise.then((videoQualities) => {						
+							let videoQuality = videoQualities.length>index ? index:videoQualities.length - 1;
+							resultPromises.push(data.player.setQuality(videoQuality));
+						});
+					});
+
+					return Promise.all(resultPromises);
+				})
+
+				.then(() => {
+					//setTimeout(() => {
+						paella.events.trigger(paella.events.qualityChanged);
+						resolve();
+					//},10);
+				});
+		});
+	}
+	getCurrentQuality() {
+		return this.masterVideo().getCurrentQuality();
+	}
+
+	// Current audio functions
+	get audioTag() {
+		return this._audioTag;
+	}
+
+	get audioPlayer() {
+		return this._audioPlayer;
+	}
+
+	getAudioTags() {
+		return new Promise((resolve) => {
+			let lang = [];
+			let p = this.streamProvider.players;
+			p.forEach((player) => {
+				if (player.stream.audioTag) {
+					lang.push(player.stream.audioTag);
+				}
+			})
+			resolve(lang);
+		})
+	}
+
+	setAudioTag(lang) {
+		this.streamProvider.stopVideoSync();
+		return new Promise((resolve) => {
+			let audioSet = false;
+			let firstAudioPlayer = null;
+			let promises = [];
+			this.streamProvider.players.forEach((player) => {
+				if (!firstAudioPlayer) {
+					firstAudioPlayer = player;
+				}
+
+				if (!audioSet && player.stream.audioTag==lang) {
+					audioSet = true;
+					this._audioPlayer = player;
+				}
+				promises.push(player.setVolume(0));
+			});
+
+			// NOTE: The audio only streams must define a valid audio tag
+			if (!audioSet && this.streamProvider.mainVideoPlayer) {
+				this._audioPlayer = this.streamProvider.mainVideoPlayer;
+			}
+			else if (!audioSet && firstAudioPlayer) {
+				this._audioPlayer = firstAudioPlayer;
+			}
+
+			Promise.all(promises).then(() => {
+				return this._audioPlayer.setVolume(this._volume);
+			})
+
+			.then(() => {
+				this._audioTag = this._audioPlayer.stream.audioTag;
+				paella.events.trigger(paella.events.audioTagChanged);
+				this.streamProvider.startVideoSync(this.audioPlayer);
+				resolve();
+			});
+		})
+	}
+
+	setProfileFrameStrategy(strategy) {
+		this._profileFrameStrategy = strategy;
+	}
+
+	setVideoQualityStrategy(strategy) {
+		this.streamProvider.qualityStrategy = strategy;
+	}
+
+	autoplay() { return this.streamProvider.autoplay; }
+	supportAutoplay() { return this.streamProvider.supportAutoplay; }
+	setAutoplay(ap=true) {
+		this.streamProvider.autoplay = ap;
+		return this.streamProvider.supportAutoplay;
+	}
+
+	masterVideo() {
+		return this.streamProvider.mainVideoPlayer || this.audioPlayer;
+	}
+
+	getVideoRect(videoIndex) {
+		if (this.videoWrappers.length>videoIndex) {
+			return this.videoWrappers[videoIndex].getRect();
+		}
+		else {
+			throw new Error(`Video wrapper with index ${ videoIndex } not found`);
+		}
+	}
+
+	setStreamData(videoData) {
+		var urlParamTime = base.parameters.get("time");
+		var hashParamTime = base.hashParams.get("time");
+		var timeString = hashParamTime ? hashParamTime:urlParamTime ? urlParamTime:"0s";
+		var startTime = paella.utils.timeParse.timeToSeconds(timeString);
+		if (startTime) {
+			this._startTime = startTime;
+		}
+		
+		videoData.forEach((stream) => {
+			for (var type in stream.sources) {
+				let source = stream.sources[type];
+				source.forEach((item) => {
+					if (item.res) {
+						item.res.w = Number(item.res.w);
+						item.res.h = Number(item.res.h);
+					}
+				});
+			}
+		});
+		this._sourceData = videoData;
+		return new Promise((resolve,reject) => {
+			this.streamProvider.init(videoData);
+
+			let streamDataAudioTag = null;
+			videoData.forEach((video) => {
+				if (video.audioTag && streamDataAudioTag==null) {
+					streamDataAudioTag = video.audioTag;
+				}
+
+				if (video.audioTag==this._audioTag) {
+					streamDataAudioTag = this._audioTag;
+				}
+			});
+
+			if (streamDataAudioTag!=this._audioTag && streamDataAudioTag!=null) {
+				this._audioTag = streamDataAudioTag;
+			}
+
+			this.streamProvider.videoPlayers.forEach((player,index) => {
+				addVideoWrapper.apply(this,['videoPlayerWrapper_' + index,player]);
+				player.setAutoplay(this.autoplay());
+			});
+
+			this.streamProvider.loadVideos()
+				.catch((err) => {
+					reject(err)
+				})
+
+				.then(() => {
+					return this.setAudioTag(this.audioTag);
+				})
+
+				.then(() => {
+					let endedTimer = null;
+					let eventBindingObject = this.masterVideo().video || this.masterVideo().audio;
+					$(eventBindingObject).bind('timeupdate', (evt) => {
+						this.trimming().then((trimmingData) => {
+							let current = evt.currentTarget.currentTime;
+							let duration = evt.currentTarget.duration;
+							if (trimmingData.enabled) {
+								current -= trimmingData.start;
+								duration = trimmingData.end - trimmingData.start;
+							}
+							paella.events.trigger(paella.events.timeupdate, { videoContainer:this, currentTime:current, duration:duration });
+							if (current>=duration) {
+								this.streamProvider.callPlayerFunction('pause');
+								if (endedTimer) {
+									clearTimeout(endedTimer);
+									endedTimer = null;
+								}
+								endedTimer = setTimeout(() => {
+									paella.events.trigger(paella.events.ended);
+								}, 1000);
+							}
+						})
+					});
+
+					this._ready = true;
+					paella.events.trigger(paella.events.videoReady);
+					let profileToUse = base.parameters.get('profile') ||
+										base.cookies.get('profile') ||
+										paella.profiles.getDefaultProfile();
+
+					if (paella.profiles.setProfile(profileToUse, false)) {
+						resolve();
+					}
+					else if (!paella.profiles.setProfile(paella.profiles.getDefaultProfile(), false)) {
+						resolve();
+					}
+				});
+		});
+	}
+
+	resizePortrait() {
+		var width = (paella.player.isFullScreen() == true) ? $(window).width() : $(this.domElement).width();
+		var relativeSize = new paella.RelativeVideoSize();
+		var height = relativeSize.proportionalHeight(width);
+		this.container.domElement.style.width = width + 'px';
+		this.container.domElement.style.height = height + 'px';
+
+		var containerHeight = (paella.player.isFullScreen() == true) ? $(window).height() : $(this.domElement).height();
+		var newTop = containerHeight / 2 - height / 2;
+		this.container.domElement.style.top = newTop + "px";
+	}
+
+	resizeLandscape() {
+		var height = (paella.player.isFullScreen() == true) ? $(window).height() : $(this.domElement).height();
+		var relativeSize = new paella.RelativeVideoSize();
+		var width = relativeSize.proportionalWidth(height);
+		this.container.domElement.style.width = width + 'px';
+		this.container.domElement.style.height = height + 'px';
+		this.container.domElement.style.top = '0px';
+	}
+
+	onresize() {
+		super.onresize();
+		var relativeSize = new paella.RelativeVideoSize();
+		var aspectRatio = relativeSize.aspectRatio();
+		var width = (paella.player.isFullScreen() == true) ? $(window).width() : $(this.domElement).width();
+		var height = (paella.player.isFullScreen() == true) ? $(window).height() : $(this.domElement).height();
+		var containerAspectRatio = width/height;
+
+		if (containerAspectRatio>aspectRatio) {
+			this.resizeLandscape();
+		}
+		else {
+			this.resizePortrait();
+		}
+		//paella.profiles.setProfile(paella.player.selectedProfile,false)
+	}
+}
+
+paella.VideoContainer = VideoContainer;
+
+})();
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function() {
+
+class PluginManager {
+	
+	setupPlugin(plugin) {
+		plugin.setup();
+		this.enabledPlugins.push(plugin);
+		if (eval("plugin instanceof paella.UIPlugin")) {
+			plugin.checkVisibility();
+		}	
+	}
+
+	checkPluginsVisibility() {	
+		this.enabledPlugins.forEach(function(plugin) {		
+			if (eval("plugin instanceof paella.UIPlugin")) {
+				plugin.checkVisibility();
+			}								
+		});	
+	}
+
+	constructor() {
+		this.targets = null;
+		this.pluginList =  [];
+		this.eventDrivenPlugins =  [];
+		this.enabledPlugins =  [];
+		this.doResize =  true;
+		
+		this.targets = {};
+		paella.events.bind(paella.events.loadPlugins,(event) => {
+			this.loadPlugins("paella.DeferredLoadPlugin");
+		});
+		
+		var timer = new base.Timer(() => {
+			if (paella.player && paella.player.controls && this.doResize) paella.player.controls.onresize();
+		}, 1000);
+		timer.repeat = true;
+	}
+
+	setTarget(pluginType,target) {
+		if (target.addPlugin) {
+			this.targets[pluginType] = target;
+		}
+	}
+
+	getTarget(pluginType) {
+		// PluginManager can handle event-driven events:
+		if (pluginType=="eventDriven") {
+			return this;
+		}
+		else {
+			var target = this.targets[pluginType];
+			return target;
+		}
+	}
+
+	registerPlugin(plugin) {
+		// Registra los plugins en una lista y los ordena
+		this.importLibraries(plugin);
+		this.pluginList.push(plugin);
+		this.pluginList.sort(function(a,b) {
+			return a.getIndex() - b.getIndex();
+		});
+	}
+
+	importLibraries(plugin) {
+		plugin.getDependencies().forEach(function(lib) {
+			var script = document.createElement('script');
+			script.type = "text/javascript";
+			script.src = 'javascript/' + lib + '.js';
+			document.head.appendChild(script);
+		});
+	}
+	
+	// callback => function(plugin,pluginConfig)
+	loadPlugins(pluginBaseClass) {
+		if (pluginBaseClass != undefined) {
+			var This = this;
+			this.foreach(function(plugin,config) {
+				// Prevent load a plugin twice
+				if (plugin.isLoaded()) return;
+				if (eval("plugin instanceof " + pluginBaseClass)) {
+					if (config.enabled) {
+						base.log.debug("Load plugin (" + pluginBaseClass + "): " + plugin.getName());
+						plugin.config = config;							
+						plugin.load(This);
+					}				
+				}
+			});
+		}
+	}
+	
+	foreach(callback) {
+		var enablePluginsByDefault = false;
+		var pluginsConfig = {};
+		try {
+			enablePluginsByDefault = paella.player.config.plugins.enablePluginsByDefault;
+		}
+		catch(e){}
+		try {
+			pluginsConfig = paella.player.config.plugins.list;
+		}
+		catch(e){}
+				
+		this.pluginList.forEach(function(plugin){			
+			var name = plugin.getName();
+			var config = pluginsConfig[name];
+			if (!config) {
+				config = {enabled: enablePluginsByDefault};
+			}
+			callback(plugin, config);
+		});
+	}
+
+	addPlugin(plugin) {
+		// Prevent add a plugin twice
+		if (plugin.__added__) return;
+		plugin.__added__ = true;
+		plugin.checkEnabled((isEnabled) => {
+			if (plugin.type=="eventDriven" && isEnabled) {
+				paella.pluginManager.setupPlugin(plugin);
+				this.eventDrivenPlugins.push(plugin);
+				var events = plugin.getEvents();
+				var eventBind = function(event,params) {
+					plugin.onEvent(event.type,params);
+				};
+
+				for (var i=0; i<events.length;++i) {
+					var eventName = events[i];
+					paella.events.bind(eventName, eventBind);
+				}
+			}
+		});
+	}
+
+	getPlugin(name) {
+		for (var i=0;i<this.pluginList.length;++i) {
+			if (this.pluginList[i].getName()==name) return this.pluginList[i];
+		}
+		return null;
+	}
+
+	registerPlugins() {
+		g_pluginCallbackList.forEach((pluginCallback) => {
+			let PluginClass = pluginCallback();
+			let pluginInstance = new PluginClass();
+			if (pluginInstance.getInstanceName()) {
+				paella.plugins = paella.plugins || {};
+				paella.plugins[pluginInstance.getInstanceName()] = pluginInstance;
+			}
+			paella.pluginManager.registerPlugin(pluginInstance);
+		});
+	}
+}
+
+paella.PluginManager = PluginManager;
+
+paella.pluginManager = new paella.PluginManager();
+
+let g_pluginCallbackList = [];
+paella.addPlugin = function(cb) {
+	g_pluginCallbackList.push(cb);
+};
+
+	
+class Plugin {
+	get type() { return ""; }
+
+	isLoaded() { return this.__loaded__; }
+
+	getDependencies() {
+		return [];
+	}
+
+	load(pluginManager) {
+		if (this.__loaded__) return;
+		this.__loaded__ = true;
+		var target = pluginManager.getTarget(this.type);
+		if (target && target.addPlugin) {
+			target.addPlugin(this);
+		}
+	}
+
+	getInstanceName() { return null; }
+
+	getRootNode(id) {
+		return null;
+	}
+
+	checkEnabled(onSuccess) {
+		onSuccess(true);
+	}
+
+	setup() {
+
+	}
+
+	getIndex() {
+		return 0;
+	}
+
+	getName() {
+		return "";
+	}
+}
+
+paella.Plugin = Plugin;
+	
+class FastLoadPlugin extends paella.Plugin {}
+class EarlyLoadPlugin extends paella.Plugin {}
+class DeferredLoadPlugin extends paella.Plugin {}
+
+paella.FastLoadPlugin = FastLoadPlugin;
+paella.EarlyLoadPlugin = EarlyLoadPlugin;
+paella.DeferredLoadPlugin = DeferredLoadPlugin;
+
+class PopUpContainer extends paella.DomNode {
+
+	constructor(id,className) {
+		var style = {};
+		super('div',id,style);
+
+		this.containers = null;
+		this.currentContainerId = -1;
+
+		this.domElement.className = className;
+
+		this.containers = {};
+	}
+
+	hideContainer(identifier,button) {
+		var container = this.containers[identifier];
+		if (container && this.currentContainerId==identifier) {
+			container.identifier = identifier;
+			paella.events.trigger(paella.events.hidePopUp,{container:container});
+			container.plugin.willHideContent();
+			$(container.element).hide();
+			container.button.className = container.button.className.replace(' selected','');
+			$(this.domElement).css({width:'0px'});
+			this.currentContainerId = -1;
+			container.plugin.didHideContent();
+		}
+	}
+
+	showContainer(identifier, button) {
+		var thisClass = this;
+		var width = 0;
+		
+		function hideContainer(container) {
+			paella.events.trigger(paella.events.hidePopUp,{container:container});
+			container.plugin.willHideContent();
+			$(container.element).hide();
+			$(thisClass.domElement).css({width:'0px'});
+			container.button.className = container.button.className.replace(' selected','');
+			thisClass.currentContainerId = -1;
+			container.plugin.didHideContent();			
+		}
+		function showContainer(container) {
+			paella.events.trigger(paella.events.showPopUp,{container:container});
+			container.plugin.willShowContent();
+			container.button.className = container.button.className + ' selected';
+			$(container.element).show();
+			width = $(container.element).width();			
+			if (container.plugin.getAlignment() == 'right') {
+				var right = $(button.parentElement).width() - $(button).position().left - $(button).width();
+				$(thisClass.domElement).css({width:width + 'px', right:right + 'px', left:''});				
+			}
+			else {
+				var left = $(button).position().left;
+				$(thisClass.domElement).css({width:width + 'px', left:left + 'px', right:''});						
+			}			
+			thisClass.currentContainerId = identifier;
+			container.plugin.didShowContent();			
+		}
+		
+		var container = this.containers[identifier];
+		if (container && this.currentContainerId!=identifier && this.currentContainerId!=-1) {
+			var prevContainer = this.containers[this.currentContainerId];
+			hideContainer(prevContainer);
+			showContainer(container);
+		}
+		else if (container && this.currentContainerId==identifier) {
+			hideContainer(container);
+		}
+		else if (container) {
+			showContainer(container);
+		}
+	}
+
+	registerContainer(identifier,domElement,button,plugin) {
+		var containerInfo = {
+			identifier:identifier,
+			button:button,
+			element:domElement,
+			plugin:plugin
+		};
+		this.containers[identifier] = containerInfo;
+		if (plugin.closeOnMouseOut && plugin.closeOnMouseOut()) {
+			let popUpId = identifier;
+			let btn = button;
+			$(domElement).mouseleave(function(evt) {
+				paella.player.controls.playbackControl().hidePopUp(popUpId,btn);
+			});
+		}
+		
+
+		// this.domElement.appendChild(domElement);
+		$(domElement).hide();
+		button.popUpIdentifier = identifier;
+		button.sourcePlugin = plugin;
+		$(button).click(function(event) {
+			if (!this.plugin.isPopUpOpen()) {
+				paella.player.controls.playbackControl().showPopUp(this.popUpIdentifier,this);
+			}
+			else {
+				paella.player.controls.playbackControl().hidePopUp(this.popUpIdentifier,this);
+			}
+		});
+		$(button).keyup(function(event) {
+			if ( (event.keyCode == 13) && (!this.plugin.isPopUpOpen()) ){
+				paella.player.controls.playbackControl().showPopUp(this.popUpIdentifier,this);
+			}
+			else if ( (event.keyCode == 27)){
+				paella.player.controls.playbackControl().hidePopUp(this.popUpIdentifier,this);
+			}
+		});
+		plugin.containerManager = this;
+	}
+}
+
+paella.PopUpContainer = PopUpContainer;
+
+class TimelineContainer extends paella.PopUpContainer {
+	hideContainer(identifier,button) {
+		var container = this.containers[identifier];
+		if (container && this.currentContainerId==identifier) {
+			paella.events.trigger(paella.events.hidePopUp,{container:container});
+			container.plugin.willHideContent();
+			$(container.element).hide();
+			container.button.className = container.button.className.replace(' selected','');
+			this.currentContainerId = -1;
+			$(this.domElement).css({height:'0px'});
+			container.plugin.didHideContent();
+		}
+	}
+
+	showContainer(identifier,button) {
+		var height =0;
+		var container = this.containers[identifier];
+		if (container && this.currentContainerId!=identifier && this.currentContainerId!=-1) {
+			var prevContainer = this.containers[this.currentContainerId];
+			prevContainer.button.className = prevContainer.button.className.replace(' selected','');
+			container.button.className = container.button.className + ' selected';
+			paella.events.trigger(paella.events.hidePopUp,{container:prevContainer});
+			prevContainer.plugin.willHideContent();
+			$(prevContainer.element).hide();
+			prevContainer.plugin.didHideContent();
+			paella.events.trigger(paella.events.showPopUp,{container:container});
+			container.plugin.willShowContent();
+			$(container.element).show();
+			this.currentContainerId = identifier;
+			height = $(container.element).height();
+			$(this.domElement).css({height:height + 'px'});
+			container.plugin.didShowContent();
+		}
+		else if (container && this.currentContainerId==identifier) {
+			paella.events.trigger(paella.events.hidePopUp,{container:container});
+			container.plugin.willHideContent();
+			$(container.element).hide();
+			container.button.className = container.button.className.replace(' selected','');
+			$(this.domElement).css({height:'0px'});
+			this.currentContainerId = -1;
+			container.plugin.didHideContent();
+		}
+		else if (container) {
+			paella.events.trigger(paella.events.showPopUp,{container:container});
+			container.plugin.willShowContent();
+			container.button.className = container.button.className + ' selected';
+			$(container.element).show();
+			this.currentContainerId = identifier;
+			height = $(container.element).height();
+			$(this.domElement).css({height:height + 'px'});
+			container.plugin.didShowContent();
+		}
+	}
+}
+
+paella.TimelineContainer = TimelineContainer;
+			
+class UIPlugin extends paella.DeferredLoadPlugin {
+	get ui() { return this._ui; }
+	set ui(val) { this._ui = val; }
+	
+	checkVisibility() {
+		var modes = this.config.visibleOn || [	paella.PaellaPlayer.mode.standard, 
+												paella.PaellaPlayer.mode.fullscreen, 
+												paella.PaellaPlayer.mode.embed ];
+		
+		var visible = false;
+		modes.forEach(function(m){
+			if (m == paella.player.getPlayerMode()) {
+				visible = true;
+			}
+		});
+		
+		if (visible){
+			this.showUI();
+		}
+		else {
+			this.hideUI();
+		}
+	}
+	
+	hideUI() {
+		this.ui.setAttribute('aria-hidden', 'true');
+		$(this.ui).hide();
+	}
+	
+	showUI() {
+		var thisClass = this;
+		paella.pluginManager.enabledPlugins.forEach(function(p) {
+			if (p == thisClass) {
+				thisClass.ui.setAttribute('aria-hidden', 'false');
+				$(thisClass.ui).show();				
+			}
+		});	
+	}
+}
+
+paella.UIPlugin = UIPlugin;
+	
+class ButtonPlugin extends paella.UIPlugin {
+	get type() { return 'button'; }
+
+	constructor() {
+		super();
+		this.subclass = '';
+		this.container = null;
+		this.containerManager = null;
+	} 
+
+	getAlignment() {
+		return 'left';	// or right
+	}
+
+	// Returns the button subclass.
+	getSubclass() {
+		return "myButtonPlugin";
+	}
+
+	getIconClass() {
+		return "";
+	}
+
+	addSubclass($subclass) {
+		$(this.container).addClass($subclass);
+	}
+	
+	removeSubclass($subclass) {
+		$(this.container).removeClass($subclass);
+	}
+
+	action(button) {
+		// Implement this if you want to do something when the user push the plugin button
+	}
+
+	getName() {
+		return "ButtonPlugin";
+	}
+
+	getMinWindowSize() {
+		return this.config.minWindowSize || 0;
+	}
+
+	buildContent(domElement) {
+		// Override if your plugin
+	}
+
+	willShowContent() {
+		base.log.debug(this.getName() + " willDisplayContent");
+	}
+
+	didShowContent() {
+		base.log.debug(this.getName() + " didDisplayContent");
+	}
+
+	willHideContent() {
+		base.log.debug(this.getName() + " willHideContent");
+	}
+
+	didHideContent() {
+		base.log.debug(this.getName() + " didHideContent");
+	}
+
+	getButtonType() {
+		//return paella.ButtonPlugin.type.popUpButton;
+		//return paella.ButtonPlugin.type.timeLineButton;
+		return paella.ButtonPlugin.type.actionButton;
+		
+	}
+
+	getText() {
+		return "";
+	}
+
+	getAriaLabel() {
+		return "";
+	}
+	
+	setText(text) {
+		this.container.innerHTML = '<span class="button-text">' + paella.AntiXSS.htmlEscape(text) + '</span>';
+		if (this._i) {
+			this.container.appendChild(this._i);
+		}
+	}
+
+	hideButton() {
+		this.hideUI();
+	}
+
+	showButton() {
+		this.showUI();
+	}
+
+	// Utility functions: do not override
+	changeSubclass(newSubclass) {
+		this.subclass = newSubclass;
+		this.container.className = this.getClassName();
+	}
+
+	changeIconClass(newClass) {
+		this._i.className = 'button-icon ' + newClass;
+	}
+
+	getClassName() {
+		return paella.ButtonPlugin.kClassName + ' ' + this.getAlignment() + ' ' + this.subclass;
+	}
+
+	getContainerClassName() {
+		if (this.getButtonType()==paella.ButtonPlugin.type.timeLineButton) {
+			return paella.ButtonPlugin.kTimeLineClassName + ' ' + this.getSubclass();
+		}
+		else if (this.getButtonType()==paella.ButtonPlugin.type.popUpButton) {
+			return paella.ButtonPlugin.kPopUpClassName + ' ' + this.getSubclass();
+		}
+	}
+
+	setToolTip(message) {
+		this.button.setAttribute("title", message);
+		this.button.setAttribute("aria-label", message);
+	}
+
+	getDefaultToolTip() {
+		return "";
+	}
+
+	isPopUpOpen() {
+		return (this.button.popUpIdentifier == this.containerManager.currentContainerId);
+	}
+
+	getExpandableContent() {
+		return null;
+	}
+
+	expand() {
+		if (this._expand) {
+			$(this._expand).show();
+		}
+	}
+
+	contract() {
+		if (this._expand) {
+			$(this._expand).hide();
+		}
+	}
+
+	static BuildPluginButton(plugin,id) {
+		plugin.subclass = plugin.getSubclass();
+		var elem = document.createElement('div');
+		let ariaLabel = plugin.getAriaLabel();
+		if (ariaLabel!="") {
+			elem = document.createElement('button');
+		}
+		elem.className = plugin.getClassName();
+		elem.id = id;
+
+		let buttonText = document.createElement('span');
+		buttonText.className = "button-text";
+		buttonText.innerHTML = paella.AntiXSS.htmlEscape(plugin.getText());
+		buttonText.plugin = plugin;
+		elem.appendChild(buttonText);
+		if (ariaLabel) {
+			elem.setAttribute("tabindex", 1000 + plugin.getIndex());
+			elem.setAttribute("aria-label",ariaLabel);
+		}	
+		elem.setAttribute("alt", "");
+
+		elem.plugin = plugin;
+		plugin.button = elem;
+		plugin.container = elem;
+		plugin.ui = elem;
+		plugin.setToolTip(plugin.getDefaultToolTip());
+
+		let icon = document.createElement('i');
+		icon.className = 'button-icon ' + plugin.getIconClass();
+		icon.plugin = plugin;
+		elem.appendChild(icon);
+		plugin._i = icon;
+			
+		function onAction(self) {
+			paella.userTracking.log("paella:button:action", self.plugin.getName());
+			self.plugin.action(self);
+		}
+		
+		$(elem).click(function(event) {
+			onAction(this);
+		});
+		$(elem).keyup(function(event) {
+
+			event.preventDefault();
+		});
+		$(elem).focus(function(event) {
+			plugin.expand();
+		});
+
+		return elem;
+	}
+
+	static BuildPluginExpand(plugin,id) {
+		let expandContent = plugin.getExpandableContent();
+		if (expandContent) {
+			let expand = document.createElement('span');
+			expand.plugin = plugin;
+			expand.className = 'expandable-content ' + plugin.getClassName();
+			plugin._expand = expand;
+			expand.appendChild(expandContent);
+			$(plugin._expand).hide();
+			return expand;
+		}
+		return null;
+	}
+
+	static BuildPluginPopUp(parent,plugin,id) {
+		plugin.subclass = plugin.getSubclass();
+		var elem = document.createElement('div');
+		parent.appendChild(elem);
+		elem.className = plugin.getContainerClassName();
+		elem.id = id;
+		elem.plugin = plugin;
+		plugin.buildContent(elem);
+		return elem;
+	}
+}
+
+paella.ButtonPlugin = ButtonPlugin;
+	
+paella.ButtonPlugin.alignment = {
+	left:'left',
+	right:'right'
+};
+paella.ButtonPlugin.kClassName = 'buttonPlugin';
+paella.ButtonPlugin.kPopUpClassName = 'buttonPluginPopUp';
+paella.ButtonPlugin.kTimeLineClassName = 'buttonTimeLine';
+paella.ButtonPlugin.type = {
+	actionButton:1,
+	popUpButton:2,
+	timeLineButton:3
+};
+	
+class VideoOverlayButtonPlugin extends paella.ButtonPlugin {
+	get type() { return 'videoOverlayButton'; }
+
+	// Returns the button subclass.
+	getSubclass() {
+		return "myVideoOverlayButtonPlugin" + " " + this.getAlignment();
+	}
+
+	action(button) {
+		// Implement this if you want to do something when the user push the plugin button
+	}
+
+	getName() {
+		return "VideoOverlayButtonPlugin";
+	}
+
+	get tabIndex() {
+		return -1;
+	}
+}
+
+paella.VideoOverlayButtonPlugin = VideoOverlayButtonPlugin;
+	
+	
+class EventDrivenPlugin extends paella.EarlyLoadPlugin {
+	get type() { return 'eventDriven'; }
+
+	constructor() {
+		super();
+		var events = this.getEvents();
+		for (var i = 0; i<events.length;++i) {
+			var event = events[i];
+			if (event==paella.events.loadStarted) {
+				this.onEvent(paella.events.loadStarted);
+			}
+		}
+	}
+
+	getEvents() {
+		return [];
+	}
+
+	onEvent(eventType,params) {
+	}
+
+	getName() {
+		return "EventDrivenPlugin";
+	}
+}
+
+paella.EventDrivenPlugin = EventDrivenPlugin;
+	
+})();
+
+(function() {
+
+    class VideoCanvas {
+        constructor(stream) {
+            this._stream = stream;
+        }
+
+        loadVideo(videoPlugin,stream) {
+            return Promise.reject(new Error("Not implemented"));
+        }
+
+        allowZoom() {
+            return true;
+        }
+    }
+
+    paella.VideoCanvas = VideoCanvas;
+
+    function initWebGLCanvas() {
+        if (!paella.WebGLCanvas) {
+        
+            class WebGLCanvas extends bg.app.WindowController {
+                constructor(stream) {
+                    super();
+                    this._stream = stream;
+                }
+
+                get stream() { return this._stream; }
+
+                get video() { return this.texture ? this.texture.video : null; }
+
+                get camera() { return this._camera; }
+
+                get texture() { return this._texture; }
+
+                loaded() {
+                    return new Promise((resolve) => {
+                        let checkLoaded = () => {
+                            if (this.video) {
+                                resolve(this);
+                            }
+                            else {
+                                setTimeout(checkLoaded,100);
+                            }
+                        }
+                        checkLoaded();
+                    });
+                }
+
+                loadVideo(videoPlugin,stream) {
+                    return Promise.reject(new Error("Not implemented"));
+                }
+
+                allowZoom() {
+                    return false;
+                }
+
+                // WebGL engine functions
+                registerPlugins() {
+                    bg.base.Loader.RegisterPlugin(new bg.base.TextureLoaderPlugin());
+                    bg.base.Loader.RegisterPlugin(new bg.base.VideoTextureLoaderPlugin());
+                    bg.base.Loader.RegisterPlugin(new bg.base.VWGLBLoaderPlugin());
+                }
+
+                loadVideoTexture() {
+                    return bg.base.Loader.Load(this.gl, this.stream.src);
+                }
+
+                buildVideoSurface(sceneRoot,videoTexture) {
+                    let sphere = bg.scene.PrimitiveFactory.Sphere(this.gl,1,50);
+                    let sphereNode = new bg.scene.Node(this.gl);
+                    sphereNode.addComponent(sphere);
+                    sphere.getMaterial(0).texture = videoTexture;
+                    sphere.getMaterial(0).lightEmission = 0;
+                    sphere.getMaterial(0).lightEmissionMaskInvert = false;
+                    sphere.getMaterial(0).cullFace = false;
+                    sphereNode.addComponent(new bg.scene.Transform(bg.Matrix4.Scale(1,-1,1)));
+                    sceneRoot.addChild(sphereNode);
+                }
+
+                buildCamera() {
+                    let cameraNode = new bg.scene.Node(this.gl,"Camera");
+                    let camera = new bg.scene.Camera();
+                    cameraNode.addComponent(camera);
+                    cameraNode.addComponent(new bg.scene.Transform());
+                    let projection = new bg.scene.OpticalProjectionStrategy();
+                    projection.far = 100;
+                    projection.focalLength = 55;
+                    camera.projectionStrategy = projection;
+                    
+                    let oc = new bg.manipulation.OrbitCameraController();
+                    oc.maxPitch = 90;
+                    oc.minPitch = -90;
+                    oc.maxDistance = 0;
+                    oc.minDistance = 0;
+                    this._cameraController = oc;
+                    cameraNode.addComponent(oc);
+
+                    return cameraNode;
+                }
+
+                buildScene() {
+                    this._root = new bg.scene.Node(this.gl, "Root node");
+
+                    this.registerPlugins();
+
+                    this.loadVideoTexture()
+                        .then((texture) => {
+                            this._texture = texture;
+                            this.buildVideoSurface(this._root,texture);
+                        });
+
+                    let lightNode = new bg.scene.Node(this.gl,"Light");
+                    let light = new bg.base.Light();
+                    light.ambient = bg.Color.White();
+                    light.diffuse = bg.Color.Black();
+                    light.specular = bg.Color.Black();
+                    lightNode.addComponent(new bg.scene.Light(light));
+                    this._root.addChild(lightNode);
+
+                    let cameraNode = this.buildCamera();
+                    this._camera = cameraNode.component("bg.scene.Camera");
+                    this._root.addChild(cameraNode);
+                }
+
+                init() {
+                    bg.Engine.Set(new bg.webgl1.Engine(this.gl));
+
+                    this.buildScene();
+
+                    this._renderer = bg.render.Renderer.Create(this.gl,bg.render.RenderPath.FORWARD);
+
+                    this._inputVisitor = new bg.scene.InputVisitor();
+                }
+
+                frame(delta) {
+                    if (this.texture) {
+                        this.texture.update();
+                    }
+                    this._renderer.frame(this._root,delta);
+                    this.postReshape();
+                }
+
+                display() {
+                    this._renderer.display(this._root, this._camera);
+                }
+
+                reshape(width,height) {
+                    this._camera.viewport = new bg.Viewport(0,0,width,height);
+                    if (!this._camera.projectionStrategy) {
+                        this._camera.projection.perspective(60,this._camera.viewport.aspectRatio,0.1,100);
+                    }
+                }
+
+                mouseDrag(evt) {
+                    this._inputVisitor.mouseDrag(this._root,evt);
+                    this.postRedisplay();
+                }
+                
+                mouseWheel(evt) {
+                    this._inputVisitor.mouseWheel(this._root,evt);
+                    this.postRedisplay();
+                }
+                
+                touchMove(evt) {
+                    this._inputVisitor.touchMove(this._root,evt);
+                    this.postRedisplay();
+                }
+                
+                mouseDown(evt) { this._inputVisitor.mouseDown(this._root,evt); }
+                touchStar(evt) { this._inputVisitor.touchStar(this._root,evt); }
+                mouseUp(evt) { this._inputVisitor.mouseUp(this._root,evt); }
+                mouseMove(evt) { this._inputVisitor.mouseMove(this._root,evt); }
+                mouseOut(evt) { this._inputVisitor.mouseOut(this._root,evt); }
+                touchEnd(evt) { this._inputVisitor.touchEnd(this._root,evt); }
+            }
+
+            paella.WebGLCanvas = WebGLCanvas;
+        }
+    }
+
+    function buildVideoCanvas(stream) {
+        if (!paella.WebGLCanvas) {
+            class WebGLCanvas extends bg.app.WindowController {
+                constructor(stream) {
+                    super();
+                    this._stream = stream;
+                }
+
+                get stream() { return this._stream; }
+
+                get video() { return this.texture ? this.texture.video : null; }
+
+                get camera() { return this._camera; }
+
+                get texture() { return this._texture; }
+
+                allowZoom() {
+                    return false;
+                }
+
+                loaded() {
+                    return new Promise((resolve) => {
+                        let checkLoaded = () => {
+                            if (this.video) {
+                                resolve(this);
+                            }
+                            else {
+                                setTimeout(checkLoaded,100);
+                            }
+                        }
+                        checkLoaded();
+                    });
+                }
+
+                registerPlugins() {
+                    bg.base.Loader.RegisterPlugin(new bg.base.TextureLoaderPlugin());
+                    bg.base.Loader.RegisterPlugin(new bg.base.VideoTextureLoaderPlugin());
+                    bg.base.Loader.RegisterPlugin(new bg.base.VWGLBLoaderPlugin());
+                }
+
+                loadVideoTexture() {
+                    return bg.base.Loader.Load(this.gl, this.stream.src);
+                }
+
+                buildVideoSurface(sceneRoot,videoTexture) {
+                    let sphere = bg.scene.PrimitiveFactory.Sphere(this.gl,1,50);
+                    let sphereNode = new bg.scene.Node(this.gl);
+                    sphereNode.addComponent(sphere);
+                    sphere.getMaterial(0).texture = videoTexture;
+                    sphere.getMaterial(0).lightEmission = 0;
+                    sphere.getMaterial(0).lightEmissionMaskInvert = false;
+                    sphere.getMaterial(0).cullFace = false;
+                    sphereNode.addComponent(new bg.scene.Transform(bg.Matrix4.Scale(1,-1,1)));
+                    sceneRoot.addChild(sphereNode);
+                }
+
+                buildCamera() {
+                    let cameraNode = new bg.scene.Node(this.gl,"Camera");
+                    let camera = new bg.scene.Camera();
+                    cameraNode.addComponent(camera);
+                    cameraNode.addComponent(new bg.scene.Transform());
+                    let projection = new bg.scene.OpticalProjectionStrategy();
+                    projection.far = 100;
+                    projection.focalLength = 55;
+                    camera.projectionStrategy = projection;
+                    
+                    let oc = new bg.manipulation.OrbitCameraController();
+                    oc.maxPitch = 90;
+                    oc.minPitch = -90;
+                    oc.maxDistance = 0;
+                    oc.minDistance = 0;
+                    this._cameraController = oc;
+                    cameraNode.addComponent(oc);
+
+                    return cameraNode;
+                }
+
+                buildScene() {
+                    this._root = new bg.scene.Node(this.gl, "Root node");
+
+                    this.registerPlugins();
+
+                    this.loadVideoTexture()
+                        .then((texture) => {
+                            this._texture = texture;
+                            this.buildVideoSurface(this._root,texture);
+                        });
+
+                    let lightNode = new bg.scene.Node(this.gl,"Light");
+                    let light = new bg.base.Light();
+                    light.ambient = bg.Color.White();
+                    light.diffuse = bg.Color.Black();
+                    light.specular = bg.Color.Black();
+                    lightNode.addComponent(new bg.scene.Light(light));
+                    this._root.addChild(lightNode);
+
+                    let cameraNode = this.buildCamera();
+                    this._camera = cameraNode.component("bg.scene.Camera");
+                    this._root.addChild(cameraNode);
+                }
+
+                init() {
+                    bg.Engine.Set(new bg.webgl1.Engine(this.gl));
+
+                    this.buildScene();
+
+                    this._renderer = bg.render.Renderer.Create(this.gl,bg.render.RenderPath.FORWARD);
+
+                    this._inputVisitor = new bg.scene.InputVisitor();
+                }
+
+                frame(delta) {
+                    if (this.texture) {
+                        this.texture.update();
+                    }
+                    this._renderer.frame(this._root,delta);
+                    this.postReshape();
+                }
+
+                display() {
+                    this._renderer.display(this._root, this._camera);
+                }
+
+                reshape(width,height) {
+                    this._camera.viewport = new bg.Viewport(0,0,width,height);
+                    if (!this._camera.projectionStrategy) {
+                        this._camera.projection.perspective(60,this._camera.viewport.aspectRatio,0.1,100);
+                    }
+                }
+
+                mouseDrag(evt) {
+                    this._inputVisitor.mouseDrag(this._root,evt);
+                    this.postRedisplay();
+                }
+                
+                mouseWheel(evt) {
+                    this._inputVisitor.mouseWheel(this._root,evt);
+                    this.postRedisplay();
+                }
+                
+                touchMove(evt) {
+                    this._inputVisitor.touchMove(this._root,evt);
+                    this.postRedisplay();
+                }
+                
+                mouseDown(evt) { this._inputVisitor.mouseDown(this._root,evt); }
+                touchStar(evt) { this._inputVisitor.touchStar(this._root,evt); }
+                mouseUp(evt) { this._inputVisitor.mouseUp(this._root,evt); }
+                mouseMove(evt) { this._inputVisitor.mouseMove(this._root,evt); }
+                mouseOut(evt) { this._inputVisitor.mouseOut(this._root,evt); }
+                touchEnd(evt) { this._inputVisitor.touchEnd(this._root,evt); }
+            }
+
+            paella.WebGLCanvas = WebGLCanvas;
+        }
+
+        return paella.WebGLCanvas;
+    }
+
+    let g_canvasCallbacks = {};
+
+    paella.addCanvasPlugin = function(canvasType, webglSupport, mouseEventsSupport, canvasPluginCallback) {
+        g_canvasCallbacks[canvasType] = {
+            callback: canvasPluginCallback,
+            webglSupport: webglSupport,
+            mouseEventsSupport: mouseEventsSupport
+        };
+    }
+
+    function loadWebGLDeps() {
+        return new Promise((resolve) => {
+            if (!window.$paella_bg) {
+                paella.require(`${ paella.baseUrl }javascript/bg2e-es2015.js`)
+                    .then(() => {
+                        window.$paella_bg = bg;
+                        buildVideoCanvas();
+                       // loadWebGLDeps();
+                        resolve(window.$paella_bg);
+                    })
+            }
+            else {
+                resolve(window.$paella_bg);
+            }
+        });
+    }
+
+    function loadCanvasPlugin(canvasType) {
+        return new Promise((resolve,reject) => {
+            let callbackData = g_canvasCallbacks[canvasType];
+            if (callbackData) {
+                (callbackData.webglSupport ? loadWebGLDeps() : Promise.resolve())
+                    .then(() => {
+                        resolve(callbackData.callback());
+                    })
+
+                    .catch((err) => {
+                        reject(err);
+                    });
+            }
+            else {
+                reject(new Error(`No such canvas type: "${canvasType}"`));
+            }
+        });
+    }
+
+    paella.getVideoCanvas = function(type) {
+        return new Promise((resolve,reject) => {
+            let canvasData = g_canvasCallbacks[type];
+            if (!canvasData) {
+                reject(new Error("No such canvas type: " + type));
+            }
+            else {
+                if (canvasData.webglSupport) {
+                    loadWebGLDeps()
+                        .then(() => {
+                            resolve(canvasData.callback());
+                        });
+                }
+                else {
+                    resolve(canvasData.callback());
+                }
+            }
+        })
+    }
+
+    paella.getVideoCanvasData = function(type) {
+        return g_canvasCallbacks[type];
+    }
+
+    // Standard <video> canvas
+    paella.addCanvasPlugin("video", false, false, () => {
+        return class VideoCanvas extends paella.VideoCanvas {
+            constructor(stream) {
+                super(stream);
+            }
+
+            loadVideo(videoPlugin,stream,doLoadCallback = null) {
+                return new Promise((resolve,reject) => {
+                    doLoadCallback = doLoadCallback || function(video) {
+                        return new Promise((cbResolve,cbReject) => {
+                            var sourceElem = video.querySelector('source');
+                            if (!sourceElem) {
+                                sourceElem = document.createElement('source');
+                                video.appendChild(sourceElem);
+                            }
+                            if (video._posterFrame) {
+                                video.setAttribute("poster",video._posterFrame);
+                            }
+                
+                            sourceElem.src = stream.src;
+                            sourceElem.type = stream.type;
+                            video.load();
+                            video.playbackRate = video._playbackRate || 1;
+                            cbResolve();
+                        })
+                    };
+
+                    doLoadCallback(videoPlugin.video).then(() => {
+                        resolve(stream);
+                    });
+                });
+            }
+        }
+    });
+
+    /*
+    
+    paella.getVideoCanvas = function(type, stream) {
+        console.log("TODO: Remove paella.getVideoCanvas() function");
+        return new Promise((resolve,reject) => {
+            if (!window.$paella_bg) {
+                paella.require(`${ paella.baseUrl }javascript/bg2e-es2015.js`)
+                    .then(() => {
+                        window.$paella_bg = bg;
+                        loadCanvasPlugins();
+                        resolve(buildVideoCanvas(stream));
+                    })
+                    .catch((err) => {
+                        console.error(err);
+                        reject(err);
+                    });
+            }
+            else {
+                resolve(buildVideoCanvas(stream));
+            }
+        });
+    }
+    */
+    
+})();
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+
+(function(){
+
+class CaptionParserManager {
+	addPlugin(plugin) {
+		var self = this;
+		var ext = plugin.ext;
+		
+		if ( ((Array.isArray && Array.isArray(ext)) || (ext instanceof Array)) == false) {
+			ext = [ext]; 
+		}
+		if (ext.length == 0) {
+			base.log.debug("No extension provided by the plugin " + plugin.getName());
+		}
+		else {
+			base.log.debug("New captionParser added: " + plugin.getName());		
+			ext.forEach(function(f){
+				self._formats[f] = plugin;
+			});
+		}
+	}
+
+	constructor() {
+		this._formats = {};
+		paella.pluginManager.setTarget('captionParser', this);	
+	}
+}
+
+let captionParserManager = new CaptionParserManager();
+
+class SearchCallback extends base.AsyncLoaderCallback {
+	constructor(caption, text) {
+		super();
+		this.name = "captionSearchCallback";
+		this.caption = caption;
+		this.text = text;
+	}
+
+	load(onSuccess, onError) {
+		this.caption.search(this.text, (err, result) => {
+			if (err) {
+				onError();
+			}
+			else {
+				this.result = result;
+				onSuccess();
+			}
+		});
+	}
+}
+
+paella.captions = {
+	parsers: {},
+	_captions: {},
+	_activeCaption: undefined,
+		
+	addCaptions: function(captions) {
+		var cid = captions._captionsProvider + ':' + captions._id;		
+		this._captions[cid] = captions;
+		paella.events.trigger(paella.events.captionAdded, cid);
+	},	
+		
+	getAvailableLangs: function() {
+		var ret = [];
+		var self = this;
+		Object.keys(this._captions).forEach(function(k){
+			var c = self._captions[k];
+			ret.push({
+				id: k,
+				lang: c._lang
+			});
+		});
+		return ret;
+	},
+	
+	getCaptions: function(cid) {	
+		if (cid && this._captions[cid]) {
+			return this._captions[cid];
+		}
+		return undefined;
+	},	
+	
+	getActiveCaptions: function(cid) {
+		return this._activeCaption;
+	},
+	
+	setActiveCaptions: function(cid) {
+		this._activeCaption = this.getCaptions(cid);
+		
+		if (this._activeCaption != undefined) {				
+			paella.events.trigger(paella.events.captionsEnabled, cid);
+		}
+		else {
+			paella.events.trigger(paella.events.captionsDisabled);			
+		}
+		
+		return this._activeCaption;
+	},
+		
+	getCaptionAtTime: function(cid, time) {
+		var c = this.getCaptions(cid);		
+		if (c != undefined) {
+			return c.getCaptionAtTime(time);
+		}
+		return undefined;			
+	},
+	
+	search: function(text, next) {
+		var self = this;
+		var asyncLoader = new base.AsyncLoader();
+		
+		this.getAvailableLangs().forEach(function(l) {			
+			asyncLoader.addCallback(new SearchCallback(self.getCaptions(l.id), text));
+		});
+		
+		asyncLoader.load(function() {
+				var res = [];
+				Object.keys(asyncLoader.callbackArray).forEach(function(k) {
+					res = res.concat(asyncLoader.getCallback(k).result);
+				});
+				if (next) next(false, res);
+			},
+			function() {
+				if (next) next(true);
+			}
+		);		
+	}
+};
+
+
+class Caption {
+	constructor(id, format, url, lang, next) {
+		this._id = id;
+		this._format = format;
+		this._url = url;
+		this._captions = undefined;
+		this._index = undefined;
+		
+		if (typeof(lang) == "string") { lang = {code: lang, txt: lang}; }
+		this._lang = lang;
+		this._captionsProvider = "downloadCaptionsProvider";
+		
+		this.reloadCaptions(next);
+	}
+	
+	canEdit(next) {
+		// next(err, canEdit)
+		next(false, false);
+	}
+	
+	goToEdit() {	
+	
+	}
+	
+	reloadCaptions(next) {
+		var self = this;
+	
+	
+		jQuery.ajax({
+			url: self._url,
+			cache:false,
+			type: 'get',
+			dataType: "text"
+		})
+		.then(function(dataRaw){
+			var parser = captionParserManager._formats[self._format];			
+			if (parser == undefined) {
+				base.log.debug("Error adding captions: Format not supported!");
+				paella.player.videoContainer.duration(true)
+				.then((duration)=>{
+					self._captions = [{
+						id: 0,
+		            	begin: 0,
+		            	end: duration,
+		            	content: base.dictionary.translate("Error! Captions format not supported.")
+					}];
+					if (next) { next(true); }
+				});
+			}
+			else {
+				parser.parse(dataRaw, self._lang.code, function(err, c) {
+					if (!err) {
+						self._captions = c;
+						self._index = lunr(function () {
+							var thisLunr = this;
+							thisLunr.ref('id');
+							thisLunr.field('content', {boost: 10});
+							self._captions.forEach(function(cap){
+								thisLunr.add({
+									id: cap.id,
+									content: cap.content,
+								});
+							});
+						});
+					}
+					if (next) { next(err); }
+				});
+			}
+		})
+		.fail(function(error){
+			base.log.debug("Error loading captions: " + self._url);
+				if (next) { next(true); }
+		});
+	}
+	
+	getCaptions() {
+		return this._captions;	
+	}
+	
+	getCaptionAtTime(time) {
+		if (this._captions != undefined) {
+			for (var i=0; i<this._captions.length; ++i) {			
+				var l_cap = this._captions[i];
+				if ((l_cap.begin <= time) && (l_cap.end >= time)) {
+					return l_cap;
+				}
+			}
+		}
+		return undefined;		
+	}
+	
+	getCaptionById(id) {
+		if (this._captions != undefined) {
+			for (var i=0; i<this._captions.length; ++i) {			
+				let l_cap = this._captions[i];
+				if (l_cap.id == id) {
+					return l_cap;
+				}
+			}
+		}
+		return undefined;
+	}
+	
+	search(txt, next) {
+		var self = this;	
+		if (this._index == undefined) {
+			if (next) {
+				next(true, "Error. No captions found.");
+			}
+		}
+		else {
+			var results = [];
+			paella.player.videoContainer.trimming()
+				.then((trimming)=>{
+					this._index.search(txt).forEach(function(s){
+						var c = self.getCaptionById(s.ref);
+						if(trimming.enabled && (c.end<trimming.start || c.begin>trimming.end)){
+							return;
+						}
+						results.push({time: c.begin, content: c.content, score: s.score});
+					});		
+					if (next) {
+						next(false, results);
+					}
+				});
+		}
+	}	
+}
+
+paella.captions.Caption = Caption;
+
+class CaptionParserPlugIn extends paella.FastLoadPlugin {
+	get type() { return 'captionParser'; }
+	getIndex() {return -1;}
+	
+	get ext() {
+		if (!this._ext) {
+			this._ext = [];
+		}
+		return this._ext;
+	}
+
+	parse(content, lang, next) {
+		throw new Error('paella.CaptionParserPlugIn#parse must be overridden by subclass');
+	}
+}
+
+paella.CaptionParserPlugIn = CaptionParserPlugIn;
+
+
+}());
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+
+(function(){
+
+
+var searchServiceManager = {
+	_plugins: [],
+	
+	addPlugin: function(plugin) {
+		this._plugins.push(plugin);
+	},
+
+	initialize: function() {
+		paella.pluginManager.setTarget('SearchServicePlugIn', this);	
+	}
+};
+
+
+class SearchCallback extends base.AsyncLoaderCallback {
+	constructor(plugin, text) {
+		super();
+		this.name = "searchCallback";
+		this.plugin = plugin;
+		this.text = text;
+	}
+
+	load(onSuccess, onError) {
+		this.plugin.search(this.text, (err, result) => {
+			if (err) {
+				onError();
+			}
+			else {
+				this.result = result;
+				onSuccess();
+			}
+		});
+	}
+}
+
+
+paella.searchService = {
+	
+	search: function(text, next) {
+		let asyncLoader = new base.AsyncLoader();
+		
+		paella.userTracking.log("paella:searchService:search", text);
+		
+		searchServiceManager._plugins.forEach(function(p) {
+			asyncLoader.addCallback(new SearchCallback(p, text));
+		});
+		
+		asyncLoader.load(function() {
+				var res = [];
+				Object.keys(asyncLoader.callbackArray).forEach(function(k) {
+					res = res.concat(asyncLoader.getCallback(k).result);
+				});
+				if (next) next(false, res);
+			},
+			function() {
+				if (next) next(true);
+			}
+		);	
+	}
+};
+
+
+class SearchServicePlugIn extends paella.FastLoadPlugin {
+	get type() { return 'SearchServicePlugIn'; }
+	getIndex() {return -1;}
+	
+	search(text, next) {
+		throw new Error('paella.SearchServicePlugIn#search must be overridden by subclass');
+	}
+}
+
+paella.SearchServicePlugIn = SearchServicePlugIn;
+searchServiceManager.initialize();
+
+}());
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(function(){
+
+
+var userTrackingManager = {
+	_plugins: [],
+
+	addPlugin: function(plugin) {
+		plugin.checkEnabled((isEnabled) => {
+			if (isEnabled) {
+				plugin.setup();
+				this._plugins.push(plugin);
+			}
+		});
+	},
+	initialize: function() {
+		paella.pluginManager.setTarget('userTrackingSaverPlugIn', this);
+	}
+};
+
+paella.userTracking = {};
+userTrackingManager.initialize();
+
+class SaverPlugIn extends paella.FastLoadPlugin {
+	get type() { return 'userTrackingSaverPlugIn'; }
+	getIndex() { return -1; }
+	checkEnabled(onSuccess) { onSuccess(true); }
+
+	log(event, params) {
+		throw new Error('paella.userTracking.SaverPlugIn#log must be overridden by subclass');
+	}
+}
+
+paella.userTracking.SaverPlugIn = SaverPlugIn;
+
+
+var evsentsToLog = {};
+
+paella.userTracking.log = function(event, params) {
+	if (evsentsToLog[event] != undefined) {
+		evsentsToLog[event].cancel();
+	}
+	evsentsToLog[event] = new base.Timer(function(timer) {
+		userTrackingManager._plugins.forEach(function(p) {
+			p.log(event, params);
+		});
+		delete evsentsToLog[event];
+	}, 500);
+};
+
+
+
+//////////////////////////////////////////////////////////
+// Log automatic events
+//////////////////////////////////////////////////////////
+// Log simple events
+[
+	paella.events.play,
+	paella.events.pause,
+	paella.events.endVideo,
+	paella.events.showEditor,
+	paella.events.hideEditor,
+	paella.events.enterFullscreen,
+	paella.events.exitFullscreen,
+	paella.events.loadComplete
+].forEach(function(event){
+	paella.events.bind(event, function(ev, params) {
+		paella.userTracking.log(event);
+	});
+});
+
+// Log show/hide PopUp
+[
+	paella.events.showPopUp,
+	paella.events.hidePopUp]
+.forEach(function(event){
+	paella.events.bind(event, function(ev, params) {
+		paella.userTracking.log(event, params.identifier);
+	});
+});
+
+// Log captions Events
+[
+	// paella.events.captionAdded, 
+	paella.events.captionsEnabled,
+	paella.events.captionsDisabled
+].forEach(function(event){
+	paella.events.bind(event, function(ev, params) {
+		var log;
+		if (params != undefined) {
+			var c = paella.captions.getCaptions(params);
+			log = {id: params, lang: c._lang, url: c._url};
+		}
+		paella.userTracking.log(event, log);
+	});
+});
+
+// Log setProfile
+[
+	paella.events.setProfile
+].forEach(function(event){
+	paella.events.bind(event, function(ev, params) {
+		paella.userTracking.log(event, params.profileName);
+	});
+});
+
+
+// Log seek events
+[
+	paella.events.seekTo,
+	paella.events.seekToTime
+].forEach(function(event){
+	paella.events.bind(event, function(ev, params) {
+		var log;
+		try {
+			JSON.stringify(params);
+			log = params;
+		}
+		catch(e) {}
+
+		paella.userTracking.log(event, log);
+	});
+});
+
+
+// Log param events
+[
+	paella.events.setVolume,
+	paella.events.resize,
+	paella.events.setPlaybackRate,
+	paella.events.qualityChanged
+].forEach(function(event){
+	paella.events.bind(event, function(ev, params) {
+		var log;
+		try {
+			JSON.stringify(params);
+			log = params;
+		}
+		catch(e) {}
+
+		paella.userTracking.log(event, log);
+	});
+});
+
+
+}());
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+
+(() => {
+
+class TimeControl extends paella.DomNode {
+	constructor(id) {
+		super('div',id,{left:"0%"});
+		this.domElement.className = 'timeControlOld';
+		this.domElement.className = 'timeControl';
+		//this.domElement.innerText = "0:00:00";
+		var thisClass = this;
+		paella.events.bind(paella.events.timeupdate,function(event,params) { thisClass.onTimeUpdate(params); });
+	}
+
+	onTimeUpdate(memo) {
+		this.domElement.innerText = this.secondsToHours(parseInt(memo.currentTime));
+	}
+
+	secondsToHours(sec_numb) {
+		var hours   = Math.floor(sec_numb / 3600);
+		var minutes = Math.floor((sec_numb - (hours * 3600)) / 60);
+		var seconds = sec_numb - (hours * 3600) - (minutes * 60);
+
+		if (hours < 10) {hours = "0"+hours;}
+		if (minutes < 10) {minutes = "0"+minutes;}
+		if (seconds < 10) {seconds = "0"+seconds;}
+		return hours + ':' + minutes + ':' + seconds;
+	}
+}
+
+paella.TimeControl = TimeControl;
+
+class PlaybackBar extends paella.DomNode {
+
+	constructor(id) {
+		var style = {};
+		super('div',id,style);
+
+		this.playbackFullId = '';
+		this.updatePlayBar = true;
+		this.timeControlId = '';
+		this._images = null;
+		this._keys = null;
+		this._prev = null;
+		this._next = null;
+		this._videoLength = null;
+		this._lastSrc = null;
+		this._aspectRatio = 1.777777778;
+		this._hasSlides = null;
+		this._imgNode = null;
+		this._canvas = null;
+		
+		this.domElement.className = "playbackBar";
+		this.domElement.setAttribute("alt", "");
+		//this.domElement.setAttribute("title", "Timeline Slider");
+		this.domElement.setAttribute("aria-label", "Timeline Slider");
+		this.domElement.setAttribute("role", "slider");
+		this.domElement.setAttribute("aria-valuemin", "0");
+		this.domElement.setAttribute("aria-valuemax", "100");
+		this.domElement.setAttribute("aria-valuenow", "0");
+		this.domElement.setAttribute("tabindex", "1100");
+		$(this.domElement).keyup((event) => {
+			var currentTime = 0;
+			var duration = 0;
+			paella.player.videoContainer.currentTime()
+				.then((t) => {
+					currentTime = t;
+					return paella.player.videoContainer.duration();
+				})
+
+				.then((d) => {
+					duration = d;
+					var curr, selectedPosition;
+					switch(event.keyCode) {
+						case 37: //Left
+							curr = 100*currentTime/duration;
+							selectedPosition = curr - 5;
+							paella.player.videoContainer.seekTo(selectedPosition);
+							break;
+						case 39: //Right
+							curr = 100*currentTime/duration;
+							selectedPosition = curr + 5;
+							paella.player.videoContainer.seekTo(selectedPosition);
+							break;
+					}
+				});
+		});
+
+		this.playbackFullId = id + "_full";
+		this.timeControlId = id + "_timeControl";
+		var playbackFull = new paella.DomNode('div',this.playbackFullId,{width:'0%'});
+		playbackFull.domElement.className = "playbackBarFull";
+		this.addNode(playbackFull);
+		this.addNode(new paella.TimeControl(this.timeControlId));
+		var thisClass = this;
+		paella.events.bind(paella.events.timeupdate,function(event,params) { thisClass.onTimeUpdate(params); });
+		$(this.domElement).bind('mousedown',function(event) {
+			paella.utils.mouseManager.down(thisClass,event); event.stopPropagation();
+		});
+		$(playbackFull.domElement).bind('mousedown',function(event) {
+			paella.utils.mouseManager.down(thisClass,event); event.stopPropagation();
+		});
+		if (!base.userAgent.browser.IsMobileVersion) {
+			$(this.domElement).bind('mousemove',function(event) {
+				thisClass.movePassive(event); paella.utils.mouseManager.move(event);
+			});
+			$(playbackFull.domElement).bind('mousemove',function(event) {
+				paella.utils.mouseManager.move(event);
+			});
+			$(this.domElement).bind("mouseout",function(event) {
+				thisClass.mouseOut(event);
+			});
+		}
+		
+		this.domElement.addEventListener('touchstart',(event) => {
+			paella.utils.mouseManager.down(thisClass,event); event.stopPropagation();
+		}, false);
+		this.domElement.addEventListener('touchmove',(event) => {
+			thisClass.movePassive(event);
+			paella.utils.mouseManager.move(event);
+		}, false);
+		this.domElement.addEventListener('touchend',(event) => {
+			paella.utils.mouseManager.up(event);
+		}, false);
+	
+		$(this.domElement).bind('mouseup',function(event) {
+			paella.utils.mouseManager.up(event);
+		});
+		$(playbackFull.domElement).bind('mouseup',function(event) {
+			paella.utils.mouseManager.up(event);
+		});
+
+		if (paella.player.isLiveStream()) {
+			$(this.domElement).hide();
+		}
+
+		paella.events.bind(paella.events.seekAvailabilityChanged, (e,data) => {
+			if (data.type!=paella.SeekType.DISABLED) {
+				$(playbackFull.domElement).removeClass("disabled");
+			}
+			else {
+				$(playbackFull.domElement).addClass("disabled");
+			}
+		});
+	}
+
+	mouseOut(event){
+		if(this._hasSlides) {
+			$("#divTimeImageOverlay").remove();
+		}
+		else {
+			$("#divTimeOverlay").remove();
+		}
+	}
+
+	drawTimeMarks(){
+		let trimming = {};
+		paella.player.videoContainer.trimming()
+			.then((t) => {
+				trimming = t;
+				return this.imageSetup();
+			})
+			
+			.then(() => {
+				// Updated duration value. The duration may change during playback, because it's
+				// possible to set the trimming during playback (for instance, using a plugin)
+				let duration = trimming.enabled ? trimming.end - trimming.start : this._videoLength;
+				let parent = $("#playerContainer_controls_playback_playbackBar");
+				this.clearCanvas();
+				if (this._keys && paella.player.config.player.slidesMarks.enabled) {
+					this._keys.forEach((l) => {
+						let timeInstant = parseInt(l) - trimming.start;
+						if (timeInstant>0) {
+							var aux = (timeInstant * parent.width()) / this._videoLength; // conversion to canvas
+							this.drawTimeMark(aux);
+						}
+					});
+				}
+			});
+	}
+
+	drawTimeMark(sec){
+		var ht = 12; //default height value
+		var ctx = this.getCanvasContext();
+		ctx.fillStyle = paella.player.config.player.slidesMarks.color;
+		ctx.fillRect(sec,0,1,ht);	
+	}
+
+	clearCanvas() {
+		if (this._canvas) {
+			var ctx = this.getCanvasContext();
+			ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
+		}
+	}
+
+	getCanvas(){
+		if (!this._canvas) {
+			var parent = $("#playerContainer_controls_playback_playbackBar");
+			var canvas = document.createElement("canvas");
+			canvas.className = "playerContainer_controls_playback_playbackBar_canvas";
+			canvas.id = ("playerContainer_controls_playback_playbackBar_canvas");
+			canvas.width = parent.width();
+			var ht = canvas.height = parent.height();
+			parent.prepend(canvas);
+			this._canvas = document.getElementById("playerContainer_controls_playback_playbackBar_canvas");
+		}
+		return this._canvas;
+	}
+
+	getCanvasContext(){
+		return this.getCanvas().getContext("2d");
+	}
+
+	movePassive(event){
+		var This = this;
+
+		function updateTimePreview(duration,trimming) {
+			// CONTROLS_BAR POSITON
+			var p = $(This.domElement);
+			var pos = p.offset();
+
+			var width = p.width();
+			var left = (event.clientX-pos.left);
+			left = (left < 0) ? 0 : left;
+			var position = left * 100 / width; // GET % OF THE STREAM
+
+			var time = position * duration / 100;
+			if (trimming.enabled) {
+				time += trimming.start;
+			}
+
+			var hou = Math.floor((time - trimming.start) / 3600)%24;
+			hou = ("00"+hou).slice(hou.toString().length);
+
+			var min = Math.floor((time - trimming.start) / 60)%60;
+			min = ("00"+min).slice(min.toString().length);
+
+			var sec = Math.floor((time - trimming.start)%60);
+			sec = ("00"+sec).slice(sec.toString().length);
+
+			var timestr = (hou+":"+min+":"+sec);
+
+			// CREATING THE OVERLAY
+			if(This._hasSlides) {
+				if($("#divTimeImageOverlay").length == 0)
+					This.setupTimeImageOverlay(timestr,pos.top,width);
+				else {
+					$("#divTimeOverlay")[0].innerText = timestr; //IF CREATED, UPDATE TIME AND IMAGE
+				}
+
+				// CALL IMAGEUPDATE
+				This.imageUpdate(time);
+			}
+			else {
+				if($("#divTimeOverlay").length == 0) {
+					This.setupTimeOnly(timestr,pos.top,width);
+				}
+				else {
+					$("#divTimeOverlay")[0].innerText = timestr;
+				}
+			}
+
+			// UPDATE POSITION IMAGE OVERLAY
+			if (This._hasSlides) {
+				var ancho = $("#divTimeImageOverlay").width();
+				var posx = event.clientX-(ancho/2);
+				if(event.clientX > (ancho/2 + pos.left)  &&  event.clientX < (pos.left+width - ancho/2) ) { // LEFT
+					$("#divTimeImageOverlay").css("left",posx); // CENTER THE DIV HOVER THE MOUSE
+				}
+				else if(event.clientX < width / 2)
+					$("#divTimeImageOverlay").css("left",pos.left);
+				else
+					$("#divTimeImageOverlay").css("left",pos.left + width - ancho);
+			}
+
+			// UPDATE POSITION TIME OVERLAY
+			var ancho2 = $("#divTimeOverlay").width();
+			var posx2 = event.clientX-(ancho2/2);
+			if(event.clientX > ancho2/2 + pos.left  && event.clientX < (pos.left+width - ancho2/2) ){
+				$("#divTimeOverlay").css("left",posx2); // CENTER THE DIV HOVER THE MOUSE
+			}
+			else if(event.clientX < width / 2)
+				$("#divTimeOverlay").css("left",pos.left);
+			else
+				$("#divTimeOverlay").css("left",pos.left + width - ancho2-2);
+
+			if(This._hasSlides) {
+				$("#divTimeImageOverlay").css("bottom",$('.playbackControls').height());
+			}
+		}
+
+		paella.player.videoContainer.duration()
+			let duration = 0;
+			paella.player.videoContainer.duration()
+				.then(function(d) {
+					duration = d;
+					return paella.player.videoContainer.trimming();
+				})
+				.then(function(trimming) {
+					updateTimePreview(duration,trimming);
+				});
+	}
+
+	imageSetup(){
+		return new Promise((resolve) => {
+			paella.player.videoContainer.duration()
+				.then((duration) => {
+					//  BRING THE IMAGE ARRAY TO LOCAL
+					this._images = {};
+					var n = paella.initDelegate.initParams.videoLoader.frameList;
+
+					if( !n || Object.keys(n).length === 0) {
+						this._hasSlides = false;
+						return;
+					}
+					else {
+						this._hasSlides = true;
+					}
+
+
+					this._images = n; // COPY TO LOCAL
+					this._videoLength = duration;
+
+					// SORT KEYS FOR SEARCH CLOSEST
+					this._keys = Object.keys(this._images);
+					this._keys = this._keys.sort(function(a, b){return parseInt(a)-parseInt(b);}); // SORT FRAME NUMBERS STRINGS
+
+					//NEXT
+					this._next = 0;
+					this._prev = 0;
+
+					resolve();
+				});
+		});
+	}
+
+	imageUpdate(sec){
+		var src = $("#imgOverlay").attr('src');
+		$(this._imgNode).show();
+		if(sec > this._next || sec < this._prev) {
+			src = this.getPreviewImageSrc(sec);
+			if (src) {
+				this._lastSrc = src;
+				$( "#imgOverlay" ).attr('src', src); // UPDATING IMAGE
+			}
+			else {
+				this.hideImg();
+			}
+		} // RELOAD IF OUT OF INTERVAL
+		else { 	
+			if(src!=undefined) {
+				return;
+			}
+			else { 
+				$( "#imgOverlay" ).attr('src', this._lastSrc); 
+			}// KEEP LAST IMAGE
+		}
+	}
+
+	hideImg() {
+		$(this._imgNode).hide();
+	}
+
+	getPreviewImageSrc(sec){
+		var keys = Object.keys(this._images);
+
+		keys.push(sec);
+
+		keys.sort(function(a,b){
+			return parseInt(a)-parseInt(b);
+		});
+
+		var n = keys.indexOf(sec)-1;
+		n = (n > 0) ? n : 0;
+
+		var i = keys[n];
+
+		var next = keys[n+2];
+		var prev = keys[n];
+
+		next = (next==undefined) ? keys.length-1 : parseInt(next);
+		this._next = next;
+
+		prev = (prev==undefined) ? 0 : parseInt(prev);
+		this._prev = prev;
+
+		i=parseInt(i);
+		if(this._images[i]){
+			return this._images[i].url || this._images[i].url;
+		}
+		else return false;
+	}
+
+	setupTimeImageOverlay(time_str,top,width){
+		var div = document.createElement("div");
+		div.className = "divTimeImageOverlay";
+		div.id = ("divTimeImageOverlay");
+
+		var aux = Math.round(width/10);
+		div.style.width = Math.round(aux*self._aspectRatio)+"px"; //KEEP ASPECT RATIO 4:3
+		//div.style.height = Math.round(aux)+"px";
+
+		if (this._hasSlides) {
+			var img = document.createElement("img");
+			img.className =  "imgOverlay";
+			img.id = "imgOverlay";
+			this._imgNode = img;
+
+			div.appendChild(img);
+		}
+
+
+		var div2 = document.createElement("div");
+		div2.className = "divTimeOverlay";
+		div2.style.top = (top-20)+"px"; 
+		div2.id = ("divTimeOverlay");
+		div2.innerText = time_str;
+
+		div.appendChild(div2);
+
+		//CHILD OF CONTROLS_BAR
+		$(this.domElement).parent().append(div);
+	}
+	
+	setupTimeOnly(time_str,top,width){
+		var div2 = document.createElement("div");
+		div2.className = "divTimeOverlay";
+		div2.style.top = (top-20)+"px"; 
+		div2.id = ("divTimeOverlay");
+		div2.innerText = time_str;
+
+		//CHILD OF CONTROLS_BAR
+		$(this.domElement).parent().append(div2);
+	}
+
+	playbackFull() {
+		return this.getNode(this.playbackFullId);
+	}
+
+	timeControl() {
+		return this.getNode(this.timeControlId);
+	}
+
+	setPlaybackPosition(percent) {
+		this.playbackFull().domElement.style.width = percent + '%';
+	}
+
+	isSeeking() {
+		return !this.updatePlayBar;
+	}
+
+	onTimeUpdate(memo) {
+		if (this.updatePlayBar) {
+			var currentTime = memo.currentTime;
+			var duration = memo.duration;
+			this.setPlaybackPosition(currentTime * 100 / duration);
+		}
+	}
+
+	down(event,x,y) {
+		this.updatePlayBar = false;
+		this.move(event,x,y);
+	}
+
+	move(event,x,y) {
+		var width = $(this.domElement).width();
+		var selectedPosition = x - $(this.domElement).offset().left; // pixels
+		if (selectedPosition<0) {
+			selectedPosition = 0;
+		}
+		else if (selectedPosition>width) {
+			selectedPosition = 100;
+		}
+		else {
+			selectedPosition = selectedPosition * 100 / width; // percent
+		}
+		this.setPlaybackPosition(selectedPosition);
+	}
+
+	up(event,x,y) {
+		var width = $(this.domElement).width();
+		var selectedPosition = x - $(this.domElement).offset().left; // pixels
+		if (selectedPosition<0) {
+			selectedPosition = 0;
+		}
+		else if (selectedPosition>width) {
+			selectedPosition = 100;
+		}
+		else {
+			selectedPosition = selectedPosition * 100 / width; // percent
+		}
+		paella.player.videoContainer.seekTo(selectedPosition);
+		this.updatePlayBar = true;
+	}
+
+	onresize() {
+		let playbackBar = $("#playerContainer_controls_playback_playbackBar");
+		this.getCanvas().width = playbackBar.width();
+		this.drawTimeMarks();
+	}
+}
+
+paella.PlaybackBar = PlaybackBar;
+
+class PlaybackControl extends paella.DomNode {
+
+	addPlugin(plugin) {
+		var id = 'buttonPlugin' + this.buttonPlugins.length;
+		this.buttonPlugins.push(plugin);
+		var button = paella.ButtonPlugin.BuildPluginButton(plugin,id);
+		button.plugin = plugin;
+		let expand = paella.ButtonPlugin.BuildPluginExpand(plugin,id);
+		plugin.button = button;
+		plugin._expandElement = expand;
+		this.pluginsContainer.domElement.appendChild(button);
+		if (expand) {
+			let This = this;
+			$(button).mouseover(function(evt) {
+				evt.target.plugin.expand();
+				This._expandedPlugin = evt.target.plugin;
+			});
+			this.pluginsContainer.domElement.appendChild(expand);
+		}
+		$(button).hide();
+		plugin.checkEnabled((isEnabled) => {
+			var parent;
+			if (isEnabled) {
+				$(plugin.button).show();
+				paella.pluginManager.setupPlugin(plugin);
+
+				var id = 'buttonPlugin' + this.buttonPlugins.length;
+				if (plugin.getButtonType()==paella.ButtonPlugin.type.popUpButton) {
+					parent = this.popUpPluginContainer.domElement;
+					var popUpContent = paella.ButtonPlugin.BuildPluginPopUp(parent,plugin,id + '_container');
+					this.popUpPluginContainer.registerContainer(plugin.getName(),popUpContent,button,plugin);
+				}
+				else if (plugin.getButtonType()==paella.ButtonPlugin.type.timeLineButton) {
+					parent = this.timeLinePluginContainer.domElement;
+					var timeLineContent = paella.ButtonPlugin.BuildPluginPopUp(parent, plugin,id + '_timeline');
+					this.timeLinePluginContainer.registerContainer(plugin.getName(),timeLineContent,button,plugin);
+				}
+			}
+			else {
+				this.pluginsContainer.domElement.removeChild(plugin.button);
+			}
+		});
+	}
+
+	constructor(id) {
+		var style = {};
+		super('div',id,style);
+
+		this.playbackBarId = '';
+		this.pluginsContainer = null;
+		this._popUpPluginContainer = null;
+		this._timeLinePluginContainer = null;
+		this.playbackPluginsWidth = 0;
+		this.popupPluginsWidth = 0;
+		this.minPlaybackBarSize = 120;
+		this.playbackBarInstance = null;
+		this.buttonPlugins = [];
+
+		
+		this.domElement.className = 'playbackControls';
+		this.playbackBarId = id + '_playbackBar';
+
+		var thisClass = this;
+		this.pluginsContainer = new paella.DomNode('div',id + '_playbackBarPlugins');
+		this.pluginsContainer.domElement.className = 'playbackBarPlugins';
+		this.pluginsContainer.domElement.setAttribute("role", "toolbar");
+		this.addNode(this.pluginsContainer);
+
+		this.addNode(new paella.PlaybackBar(this.playbackBarId));
+
+		paella.pluginManager.setTarget('button',this);
+
+		$(window).mousemove((evt) => {
+			if (this._expandedPlugin && ($(window).height() - evt.clientY)> 50) {
+				this._expandedPlugin.contract();
+				this._expandPlugin = null;
+			}
+		});
+	}
+
+	get popUpPluginContainer() {
+		if (!this._popUpPluginContainer) {
+			this._popUpPluginContainer = new paella.PopUpContainer(this.identifier + '_popUpPluginContainer','popUpPluginContainer');
+			this.addNode(this._popUpPluginContainer);
+		}
+		return this._popUpPluginContainer;
+	}
+
+	get timeLinePluginContainer() {
+		if (!this._timeLinePluginContainer) {
+			this._timeLinePluginContainer = new paella.TimelineContainer(this.identifier + '_timelinePluginContainer','timelinePluginContainer');
+			this.addNode(this._timeLinePluginContainer);
+		}
+		return this._timeLinePluginContainer;
+	}
+
+	showPopUp(identifier,button) {
+		this.popUpPluginContainer.showContainer(identifier,button);
+		this.timeLinePluginContainer.showContainer(identifier,button);
+	}
+
+	hidePopUp(identifier,button) {
+		this.popUpPluginContainer.hideContainer(identifier,button);
+		this.timeLinePluginContainer.hideContainer(identifier,button);
+	}
+
+	playbackBar() {
+		if (this.playbackBarInstance==null) {
+			this.playbackBarInstance = this.getNode(this.playbackBarId);
+		}
+		return this.playbackBarInstance;
+	}
+
+	onresize() {
+		var windowSize = $(this.domElement).width();
+		base.log.debug("resize playback bar (width=" + windowSize + ")");
+
+		for (var i=0;i<this.buttonPlugins.length;++i) {
+			var plugin = this.buttonPlugins[i];
+			var minSize = plugin.getMinWindowSize();
+			if (minSize > 0 && windowSize < minSize) {
+				plugin.hideUI();
+			}
+			else {
+				plugin.checkVisibility();
+			}
+		}
+
+		this.getNode(this.playbackBarId).onresize();
+	}
+}
+
+paella.PlaybackControl = PlaybackControl;
+
+class ControlsContainer extends paella.DomNode {
+	addPlugin(plugin) {
+		var id = 'videoOverlayButtonPlugin' + this.buttonPlugins.length;
+		this.buttonPlugins.push(plugin);
+		var button = paella.ButtonPlugin.BuildPluginButton(plugin,id);
+		this.videoOverlayButtons.domElement.appendChild(button);
+		plugin.button = button;
+		$(button).hide();
+		plugin.checkEnabled(function(isEnabled) {
+			if (isEnabled) {
+				$(plugin.button).show();
+				paella.pluginManager.setupPlugin(plugin);
+			}
+		});
+	}
+
+	constructor(id) {
+		super('div',id);
+
+		this.playbackControlId = '';
+		this.editControlId = '';
+		this.isEnabled = true;
+		this.autohideTimer = null;
+		this.hideControlsTimeMillis = 3000;
+		this.playbackControlInstance = null;
+		this.videoOverlayButtons = null;
+		this.buttonPlugins = [];
+		this._hidden = false;
+		this._over = false;
+
+		this.viewControlId = id + '_view';
+		this.playbackControlId = id + '_playback';
+		this.editControlId = id + '_editor';
+		this.addNode(new paella.PlaybackControl(this.playbackControlId));
+		var thisClass = this;
+		paella.events.bind(paella.events.showEditor,function(event) { thisClass.onShowEditor(); });
+		paella.events.bind(paella.events.hideEditor,function(event) { thisClass.onHideEditor(); });
+
+		paella.events.bind(paella.events.play,function(event) { thisClass.onPlayEvent(); });
+		paella.events.bind(paella.events.pause,function(event) { thisClass.onPauseEvent(); });
+		$(document).mousemove(function(event) {
+			paella.player.controls.restartHideTimer();
+		});
+
+		$(this.domElement).bind("mousemove",function(event) { thisClass._over = true; });
+		$(this.domElement).bind("mouseout",function(event) { thisClass._over = false; });
+
+		paella.events.bind(paella.events.endVideo,function(event) { thisClass.onEndVideoEvent(); });
+		paella.events.bind('keydown',function(event) { thisClass.onKeyEvent(); });
+
+		this.videoOverlayButtons = new paella.DomNode('div',id + '_videoOverlayButtonPlugins');
+		this.videoOverlayButtons.domElement.className = 'videoOverlayButtonPlugins';
+		this.videoOverlayButtons.domElement.setAttribute("role", "toolbar");
+		this.addNode(this.videoOverlayButtons);
+
+		paella.pluginManager.setTarget('videoOverlayButton',this);
+	}
+
+	onShowEditor() {
+		var editControl = this.editControl();
+		if (editControl) $(editControl.domElement).hide();
+	}
+
+	onHideEditor() {
+		var editControl = this.editControl();
+		if (editControl) $(editControl.domElement).show();
+	}
+
+	enterEditMode() {
+		var playbackControl = this.playbackControl();
+		var editControl = this.editControl();
+		if (playbackControl && editControl) {
+			$(playbackControl.domElement).hide();
+		}
+	}
+
+	exitEditMode() {
+		var playbackControl = this.playbackControl();
+		var editControl = this.editControl();
+		if (playbackControl && editControl) {
+			$(playbackControl.domElement).show();
+		}
+	}
+
+	playbackControl() {
+		if (this.playbackControlInstance==null) {
+			this.playbackControlInstance = this.getNode(this.playbackControlId);
+		}
+		return this.playbackControlInstance;
+	}
+
+	editControl() {
+		return this.getNode(this.editControlId);
+	}
+
+	disable() {
+		this.isEnabled = false;
+		this.hide();
+	}
+
+	enable() {
+		this.isEnabled = true;
+		this.show();
+	}
+
+	isHidden() {
+		return this._hidden;
+	}
+
+	hide() {
+		var This = this;
+		this._doHide = true;
+		
+		function hideIfNotCanceled() {
+			if (This._doHide) {
+				$(This.domElement).css({opacity:0.0});
+				$(This.domElement).hide();
+				This.domElement.setAttribute('aria-hidden', 'true');
+				This._hidden = true;
+				paella.events.trigger(paella.events.controlBarDidHide);
+			}
+		}
+
+		paella.events.trigger(paella.events.controlBarWillHide);
+		if (this._doHide) {
+			if (!base.userAgent.browser.IsMobileVersion && !base.userAgent.browser.Explorer) {			
+				$(this.domElement).animate({opacity:0.0},{duration:300, complete: hideIfNotCanceled});
+			}
+			else {
+				hideIfNotCanceled();
+			}		
+		}
+	}
+
+	showPopUp(identifier) {
+		this.playbackControl().showPopUp(identifier);
+	}
+
+	hidePopUp(identifier) {
+		this.playbackControl().hidePopUp(identifier);
+	}
+
+	show() {
+		if (this.isEnabled) {
+			$(this.domElement).stop();
+			this._doHide = false;
+			this.domElement.style.opacity = 1.0;
+			this.domElement.setAttribute('aria-hidden', 'false');
+			this._hidden = false;
+			$(this.domElement).show();
+			paella.events.trigger(paella.events.controlBarDidShow);
+		}
+	}
+
+	autohideTimeout() {
+		var playbackBar = this.playbackControl().playbackBar();
+		if (playbackBar.isSeeking() || this._over) {
+			paella.player.controls.restartHideTimer();
+		}
+		else {
+			paella.player.controls.hideControls();
+		}
+	}
+
+	hideControls() {
+		paella.player.videoContainer.paused()
+			.then((paused) => {
+				if (!paused) {
+					this.hide();
+				}
+				else {
+					this.show();
+				}
+			});
+	}
+
+	showControls() {
+		this.show();
+	}
+
+	onPlayEvent() {
+		this.restartHideTimer();
+	}
+
+	onPauseEvent() {
+		this.clearAutohideTimer();
+	}
+
+	onEndVideoEvent() {
+		this.show();
+		this.clearAutohideTimer();
+	}
+
+	onKeyEvent() {
+		this.restartHideTimer();
+		paella.player.videoContainer.paused()
+			.then(function(paused) {
+				if (!paused) {
+					paella.player.controls.restartHideTimer();
+				}
+			});
+	}
+
+	cancelHideBar() {
+		this.restartTimerEvent();
+	}
+
+	restartTimerEvent() {
+		if (this.isHidden()){
+			this.showControls();
+		}
+		this._doHide = false;
+		paella.player.videoContainer.paused((paused) => {
+			if (!paused) {
+				this.restartHideTimer();
+			}
+		});
+	}
+
+	clearAutohideTimer() {
+		if (this.autohideTimer!=null) {
+			this.autohideTimer.cancel();
+			this.autohideTimer = null;
+		}
+	}
+
+	restartHideTimer() {
+		this.showControls();
+		this.clearAutohideTimer();
+		var thisClass = this;
+		this.autohideTimer = new base.Timer(function(timer) {
+			thisClass.autohideTimeout();
+		},this.hideControlsTimeMillis);
+	}
+
+	onresize() {
+		this.playbackControl().onresize();
+	}
+}
+
+paella.ControlsContainer = ControlsContainer;
+
+
+})();
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+(function() {
+
+	class LoaderContainer extends paella.DomNode {
+	
+		constructor(id) {
+			super('div',id,{position:'fixed',backgroundColor:'white',opacity:'0.7',top:'0px',left:'0px',right:'0px',bottom:'0px',zIndex:10000});
+			this.timer = null;
+			this.loader = null;
+			this.loaderPosition = 0;
+
+			this.loader = this.addNode(new paella.DomNode('i','',{
+				width: "100px",
+				height: "100px",
+				color: "black",
+				display: "block",
+				marginLeft: "auto",
+				marginRight: "auto",
+				marginTop: "32%",
+				fontSize: "100px",
+			}));
+			this.loader.domElement.className = "icon-spinner";
+	
+			paella.events.bind(paella.events.loadComplete,(event,params) => { this.loadComplete(params); });
+			this.timer = new base.Timer((timer) => {
+				//thisClass.loaderPosition -= 128;
+				
+				//thisClass.loader.domElement.style.backgroundPosition = thisClass.loaderPosition + 'px';
+				this.loader.domElement.style.transform = `rotate(${ this.loaderPosition }deg`;
+				this.loaderPosition+=45;
+			},250);
+			this.timer.repeat = true;
+		}
+	
+		loadComplete(params) {
+			$(this.domElement).hide();
+			this.timer.repeat = false;
+		}
+	}
+
+	paella.LoaderContainer = LoaderContainer;
+	
+	paella.Keys = {
+		Space:32,
+		Left:37,
+		Up:38,
+		Right:39,
+		Down:40,
+		A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90
+	};
+
+	class KeyPlugin extends paella.FastLoadPlugin {
+		get type() { return 'keyboard'; }
+
+		onKeyPress(key) {
+			console.log(key);
+			return false;
+		}
+	}
+
+	paella.KeyPlugin = KeyPlugin;
+
+	let g_keyboardEventSet = false;
+	class KeyManager {
+		get isPlaying() { return this._isPlaying; }
+		set isPlaying(p) { this._isPlaying = p; }
+		
+		get enabled() { return this._enabled!==undefined ? this._enabled : true; }
+		set enabled(e) { this._enabled = e; }
+	
+		constructor() {
+			this._isPlaying = false;
+			var thisClass = this;
+			paella.events.bind(paella.events.loadComplete,function(event,params) { thisClass.loadComplete(event,params); });
+			paella.events.bind(paella.events.play,function(event) { thisClass.onPlay(); });
+			paella.events.bind(paella.events.pause,function(event) { thisClass.onPause(); });
+
+			paella.pluginManager.setTarget('keyboard',this);
+
+			this._pluginList = []; 
+			
+		}
+
+		addPlugin(plugin) {
+			if (plugin.checkEnabled((e) => {
+				this._pluginList.push(plugin);
+				plugin.setup();
+			}));
+		}
+	
+		loadComplete(event,params) {
+			if (g_keyboardEventSet) {
+				return;
+			}
+			paella.events.bind("keyup",(event) => {
+				this.keyUp(event);
+			});
+			g_keyboardEventSet = true;
+		}
+	
+		onPlay() {
+			this.isPlaying = true;
+		}
+	
+		onPause() {
+			this.isPlaying = false;
+		}
+	
+		keyUp(event) {
+			if (!this.enabled) return;
+
+			this._pluginList.some((plugin) => {
+				return plugin.onKeyPress(event);
+			});
+		}
+	}
+
+	paella.keyManager = new KeyManager();
+
+})();
+
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+(() => {
+
+	class VideoLoader {
+		constructor() {
+			this.metadata = {		// Video metadata
+				title:"",
+				duration:0
+			};
+			this.streams = [];		// {sources:{mp4:{src:"videourl.mp4",type:"video/mp4"},
+									//			 ogg:{src:"videourl.ogv",type:"video/ogg"},
+									//			 webm:{src:"videourl.webm",type:"video/webm"},
+									//			 flv:{src:"videourl.flv",type:"video/x-flv"},
+									//			 rtmp:{src:"rtmp://server.com/endpoint/url.loquesea",type="video/mp4 | video/x-flv"},
+									//			 image:{frames:{frame_1:'frame_1.jpg',...frame_n:'frame_n.jpg'},duration:183},
+									//	preview:'video_preview.jpg'}
+			this.frameList = [];	// frameList[timeInstant] = { id:"frame_id", mimetype:"image/jpg", time:timeInstant, url:"image_url"}
+
+			this.loadStatus = false;
+			this.codecStatus = false;
+		}
+	
+		getMetadata() {
+			return this.metadata;
+		}
+	
+		getVideoId() {
+			return paella.initDelegate.getId();
+		}
+	
+		getVideoUrl() {
+			// This function must to return the base video URL
+			return "";
+		}
+	
+		getDataUrl() {
+			// This function must to return the location of the video data file
+		}
+	
+		loadVideo(onSuccess) {
+			// This function must to:
+			//	- load this.streams and this.frameList
+			// 	- Check streams compatibility using this.isStreamCompatible(streamIndex)
+			//	- Set this.loadStatus = true if load is Ok, or false if something gone wrong
+			//	- Set this.codecStatus = true if the browser can reproduce all streams
+			//	- Call onSuccess()
+			onSuccess();
+		}
+	}
+
+	paella.VideoLoader = VideoLoader;
+	
+	class AccessControl {
+		canRead() {
+			return paella_DeferredResolved(true);
+		}
+	
+		canWrite() {
+			return paella_DeferredResolved(false);
+		}
+	
+		userData() {
+			return paella_DeferredResolved({
+				username: 'anonymous',
+				name: 'Anonymous',
+				avatar: paella.utils.folders.resources() + '/images/default_avatar.png',
+				isAnonymous: true
+			});
+		}
+	
+		getAuthenticationUrl(callbackParams) {
+			var authCallback = this._authParams.authCallbackName && window[this._authParams.authCallbackName];
+			if (!authCallback && paella.player.config.auth) {
+				authCallback = paella.player.config.auth.authCallbackName && window[paella.player.config.auth.authCallbackName];
+			}
+	
+			if (typeof(authCallback)=="function") {
+				return authCallback(callbackParams);
+			}
+			return "";
+		}
+	}
+
+	paella.AccessControl = AccessControl;
+	
+	class PlayerBase {
+		
+		checkCompatibility() {
+			let message = "";
+			if (base.parameters.get('ignoreBrowserCheck')) {
+				return true;
+			}
+			if (base.userAgent.browser.IsMobileVersion) return true;
+			let isCompatible =	base.userAgent.browser.Chrome ||
+								base.userAgent.browser.Safari ||
+								base.userAgent.browser.Firefox ||
+								base.userAgent.browser.Opera ||
+								base.userAgent.browser.Edge ||
+								(base.userAgent.browser.Explorer && base.userAgent.browser.Version.major>=9);
+			if (isCompatible) {
+				return true;
+			}
+			else {
+				var errorMessage = base.dictionary.translate("It seems that your browser is not HTML 5 compatible");
+				paella.events.trigger(paella.events.error,{error:errorMessage});
+				message = errorMessage + '<div style="display:block;width:470px;height:140px;margin-left:auto;margin-right:auto;font-family:Verdana,sans-sherif;font-size:12px;"><a href="http://www.google.es/chrome" style="color:#004488;float:left;margin-right:20px;"><img src="'+paella.utils.folders.resources()+'images/chrome.png" style="width:80px;height:80px" alt="Google Chrome"></img><p>Google Chrome</p></a><a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home" style="color:#004488;float:left;margin-right:20px;"><img src="'+paella.utils.folders.resources()+'images/explorer.png" style="width:80px;height:80px" alt="Internet Explorer 9"></img><p>Internet Explorer 9</p></a><a href="http://www.apple.com/safari/" style="float:left;margin-right:20px;color:#004488"><img src="'+paella.utils.folders.resources()+'images/safari.png" style="width:80px;height:80px" alt="Safari"></img><p>Safari 5</p></a><a href="http://www.mozilla.org/firefox/" style="float:left;color:#004488"><img src="'+paella.utils.folders.resources()+'images/firefox.png" style="width:80px;height:80px" alt="Firefox"></img><p>Firefox 12</p></a></div>';
+				message += '<div style="margin-top:30px;"><a id="ignoreBrowserCheckLink" href="#" onclick="window.location = window.location + \'&ignoreBrowserCheck=true\'">' + base.dictionary.translate("Continue anyway") + '</a></div>';
+				paella.messageBox.showError(message,{height:'40%'});
+			}
+			return false;
+		}
+	
+		constructor(playerId) {
+			this.config = null;
+			this.playerId = '';
+			this.mainContainer = null;
+			this.videoContainer = null;
+			this.controls = null;
+			this.accessControl = null;
+	
+			if (base.parameters.get('log') != undefined) {
+				var log = 0;
+				switch(base.parameters.get('log')) {
+					case "error":
+						log = base.Log.kLevelError;
+						break;					
+					case "warn":
+						log = base.Log.kLevelWarning;
+						break;					
+					case "debug":
+						log = base.Log.kLevelDebug;
+						break;					
+					case "log":
+					case "true":
+						log = base.Log.kLevelLog;
+						break;
+				}
+				base.log.setLevel(log);
+			}		
+				
+			if (!this.checkCompatibility()) {
+				base.log.debug('It seems that your browser is not HTML 5 compatible');
+			}
+			else {
+				paella.player = this;
+				this.playerId = playerId;
+				this.mainContainer = $('#' + this.playerId)[0];
+				var thisClass = this;
+				paella.events.bind(paella.events.loadComplete,function(event,params) { thisClass.loadComplete(event,params); });
+			}
+		}
+
+		get repoUrl() { return paella.player.videoLoader._url || paella.player.config.standalone && paella.player.config.standalone.repository; }
+		get videoUrl() { return paella.player.videoLoader.getVideoUrl(); }
+		get dataUrl() { return paella.player.videoLoader.getDataUrl(); }
+		get videoId() { return paella.initDelegate.getId(); }
+	
+		loadComplete(event,params) {
+	
+		}
+	
+		get auth() {
+			return {
+				login: function(redirect) {
+					redirect = redirect || window.location.href;
+					var url = paella.initDelegate.initParams.accessControl.getAuthenticationUrl(redirect);
+					if (url) {
+						window.location.href = url;
+					}
+				},
+		
+				// The following functions returns promises
+				canRead:function() {
+					return paella.initDelegate.initParams.accessControl.canRead();
+				},
+		
+				canWrite:function() {
+					return paella.initDelegate.initParams.accessControl.canWrite();
+				},
+		
+				userData:function() {
+					return paella.initDelegate.initParams.accessControl.userData();
+				}
+			}
+		}
+	}
+
+	paella.PlayerBase = PlayerBase;
+	
+	class InitDelegate {
+		get initParams() {
+			if (!this._initParams) {
+				this._initParams = {
+					configUrl:paella.baseUrl + 'config/config.json',
+					dictionaryUrl:paella.baseUrl + 'localization/paella',
+					accessControl:null,
+					videoLoader:null,
+			
+					// Other parameters set externally:
+					//	config: json containing the configuration file
+					//	loadConfig: function(defaultConfigUrl). Returns a promise with the config.json data
+					//	url: attribute. Contains the repository base URL
+					//	videoUrl: function. Returns the base URL of the video (example: baseUrl + videoID)
+					//	dataUrl: function. Returns the full URL to get the data.json file
+					//	loadVideo: Function. Returns a promise with the data.json file content
+				};
+			}
+			return this._initParams;
+		}
+	
+		constructor(params) {
+			if (arguments.length==2) {
+				this._config = arguments[0];
+			}
+	
+			if (params) {
+				for (var key in params) {
+					this.initParams[key] = params[key];
+				}
+			}
+
+			if (!this.initParams.getId) {
+				this.initParams.getId = function() {
+					return base.parameters.get('id') || "noid";
+				} 
+			}
+		}
+	
+		getId() {
+			return this.initParams.getId();
+		}
+	
+		loadDictionary() {
+			return new Promise((resolve) => {
+				base.ajax.get({ url:this.initParams.dictionaryUrl + "_" + base.dictionary.currentLanguage() + '.json' }, function(data,type,returnCode) {
+					base.dictionary.addDictionary(data);
+					resolve(data);
+				},
+				function(data,type,returnCode) {
+					resolve();
+				});
+			});
+		}
+	
+		loadConfig() {
+			let loadAccessControl = (data) => {
+				var AccessControlClass = Class.fromString(data.player.accessControlClass || "paella.AccessControl");
+				this.initParams.accessControl = new AccessControlClass();
+			};
+	
+			if (this.initParams.config) {
+				return new Promise((resolve) => {
+					loadAccessControl(this.initParams.config);
+					resolve(this.initParams.config);
+				})
+			}
+			else if (this.initParams.loadConfig) {
+				return new Promise((resolve,reject) => {
+					this.initParams.loadConfig(this.initParams.configUrl)
+						.then((data) => {
+							loadAccessControl(data);
+							resolve(data);
+						})
+						.catch((err) => {
+							reject(err);
+						});
+				})
+			}
+			else {
+				return new Promise((resolve,reject) => {
+					var configUrl = this.initParams.configUrl;
+					var params = {};
+					params.url = configUrl;
+					base.ajax.get(params,(data,type,returnCode) => {
+							try {
+								data = JSON.parse(data);
+							}
+							catch(e) {}
+							loadAccessControl(data);
+							resolve(data);
+						},
+						function(data,type,returnCode) {
+							paella.messageBox.showError(base.dictionary.translate("Error! Config file not found. Please configure paella!"));
+							//onSuccess({});
+						});
+				});
+			}
+		}
+	}
+
+	paella.InitDelegate = InitDelegate;
+	
+	window.paellaPlayer = null;
+	paella.plugins = {};
+	paella.plugins.events = {};
+	paella.initDelegate = null;
+	
+})();
+
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+(() => {
+	class PaellaPlayer extends paella.PlayerBase {
+	
+		getPlayerMode() {	
+			if (paella.player.isFullScreen()) {
+				return paella.PaellaPlayer.mode.fullscreen;
+			}
+			else if (window.self !== window.top) {
+				return paella.PaellaPlayer.mode.embed
+			}
+	
+			return paella.PaellaPlayer.mode.standard;
+		}
+	
+	
+		checkFullScreenCapability() {
+			var fs = document.getElementById(paella.player.mainContainer.id);
+			if ((fs.webkitRequestFullScreen) || (fs.mozRequestFullScreen) || (fs.msRequestFullscreen) || (fs.requestFullScreen)) {
+				return true;
+			}
+			if (base.userAgent.browser.IsMobileVersion && paella.player.videoContainer.isMonostream) {
+				return true;
+			}		
+			return false;
+		}
+	
+		addFullScreenListeners() {
+			var thisClass = this;
+			
+			var onFullScreenChangeEvent = function() {
+				setTimeout(function() {
+					paella.pluginManager.checkPluginsVisibility();
+				}, 1000);
+	
+				var fs = document.getElementById(paella.player.mainContainer.id);
+				
+				if (paella.player.isFullScreen()) {				
+					fs.style.width = '100%';
+					fs.style.height = '100%';
+				}
+				else {
+					fs.style.width = '';
+					fs.style.height = '';
+				}
+				
+				if (thisClass.isFullScreen()) {
+					paella.events.trigger(paella.events.enterFullscreen);				
+				}
+				else{
+					paella.events.trigger(paella.events.exitFullscreen);
+				}			
+			};
+		
+			if (!this.eventFullScreenListenerAdded) {
+				this.eventFullScreenListenerAdded = true;
+				document.addEventListener("fullscreenchange", onFullScreenChangeEvent, false);
+				document.addEventListener("webkitfullscreenchange", onFullScreenChangeEvent, false);
+				document.addEventListener("mozfullscreenchange", onFullScreenChangeEvent, false);	
+				document.addEventListener("MSFullscreenChange", onFullScreenChangeEvent, false);
+				document.addEventListener("webkitendfullscreen", onFullScreenChangeEvent, false);
+			}
+		}
+	
+		isFullScreen() {
+			var webKitIsFullScreen = (document.webkitIsFullScreen === true);
+			var msIsFullScreen = (document.msFullscreenElement !== undefined && document.msFullscreenElement !== null);
+			var mozIsFullScreen = (document.mozFullScreen === true);
+			var stdIsFullScreen = (document.fullScreenElement !== undefined && document.fullScreenElement !== null);
+			
+			return (webKitIsFullScreen || msIsFullScreen || mozIsFullScreen || stdIsFullScreen);
+		}
+
+		goFullScreen() {
+			if (!this.isFullScreen()) {
+				if (base.userAgent.system.iOS &&
+					(paella.utils.userAgent.browser.Version.major<12 ||
+					 !paella.utils.userAgent.system.iPad))
+				{
+					paella.player.videoContainer.masterVideo().goFullScreen();
+				}
+				else {			
+					var fs = document.getElementById(paella.player.mainContainer.id);		
+					if (fs.webkitRequestFullScreen) {			
+						fs.webkitRequestFullScreen();
+					}
+					else if (fs.mozRequestFullScreen){
+						fs.mozRequestFullScreen();
+					}
+					else if (fs.msRequestFullscreen) {
+						fs.msRequestFullscreen();
+					}
+					else if (fs.requestFullScreen) {
+						fs.requestFullScreen();
+					}
+				}
+			}
+		}
+		
+		exitFullScreen() {
+			if (this.isFullScreen()) {			
+				if (document.webkitCancelFullScreen) {
+					document.webkitCancelFullScreen();
+				}
+				else if (document.mozCancelFullScreen) {
+					document.mozCancelFullScreen();
+				}
+				else if (document.msExitFullscreen()) {
+					document.msExitFullscreen();
+				}
+				else if (document.cancelFullScreen) {
+					document.cancelFullScreen();
+				}								
+			}		
+		}
+	
+		setProfile(profileName,animate) {
+			if (paella.profiles.setProfile(profileName,animate)) {
+				let profileData = paella.player.getProfile(profileName);
+				if (profileData && !paella.player.videoContainer.isMonostream) {
+					base.cookies.set('lastProfile', profileName);
+				}
+				paella.events.trigger(paella.events.setProfile,{profileName:profileName});
+			}
+		}
+	
+		getProfile(profileName) {
+			return paella.profiles.getProfile(profileName);
+		}
+	
+		constructor(playerId) {
+			super(playerId);
+
+			this.player = null;
+	
+			this.videoIdentifier = '';
+			this.loader = null;
+		
+			// Video data:
+			this.videoData = null;
+	
+			// if initialization ok
+			if (this.playerId==playerId) {
+				this.loadPaellaPlayer();
+				var thisClass = this;
+			}
+		}
+
+		get selectedProfile(){ return paella.profiles.currentProfileName; }
+	
+		loadPaellaPlayer() {
+			var This = this;
+			this.loader = new paella.LoaderContainer('paellaPlayer_loader');
+			$('body')[0].appendChild(this.loader.domElement);
+			paella.events.trigger(paella.events.loadStarted);
+	
+			paella.initDelegate.loadDictionary()
+				.then(function() {
+					return paella.initDelegate.loadConfig();
+				})
+	
+				.then(function(config) {
+					This.accessControl = paella.initDelegate.initParams.accessControl;
+					This.videoLoader = paella.initDelegate.initParams.videoLoader;
+					This.onLoadConfig(config);
+					if (config.skin) {
+						var skin = config.skin.default || 'dark';
+						paella.utils.skin.restore(skin);
+					}
+				});
+		}
+	
+		onLoadConfig(configData) {
+			paella.data = new paella.Data(configData);
+			paella.pluginManager.registerPlugins();
+	
+			this.config = configData;
+			this.videoIdentifier = paella.initDelegate.getId();
+	
+			if (this.videoIdentifier) {
+				if (this.mainContainer) {
+					this.videoContainer = new paella.VideoContainer(this.playerId + "_videoContainer");
+					var videoQualityStrategy = new paella.BestFitVideoQualityStrategy();
+					try {
+						var StrategyClass = this.config.player.videoQualityStrategy;
+						var ClassObject = Class.fromString(StrategyClass);
+						videoQualityStrategy = new ClassObject();
+					}
+					catch(e) {
+						base.log.warning("Error selecting video quality strategy: strategy not found");
+					}
+					this.videoContainer.setVideoQualityStrategy(videoQualityStrategy);
+					
+					this.mainContainer.appendChild(this.videoContainer.domElement);
+				}
+				$(window).resize(function(event) { paella.player.onresize(); });
+				this.onload();
+			}
+			
+			paella.pluginManager.loadPlugins("paella.FastLoadPlugin");
+		}
+	
+		onload() {
+			var thisClass = this;
+			var ac = this.accessControl;
+			var canRead = false;
+			var userData = {};
+			this.accessControl.canRead()
+				.then(function(c) {
+					canRead = c;
+					return thisClass.accessControl.userData();
+				})
+	
+				.then(function(d) {
+					userData = d;
+					if (canRead) {
+						thisClass.loadVideo();
+					}
+					else if (userData.isAnonymous) {
+						var redirectUrl = paella.initDelegate.initParams.accessControl.getAuthenticationUrl("player/?id=" + paella.player.videoIdentifier);
+						var message = '<div>' + base.dictionary.translate("You are not authorized to view this resource") + '</div>';
+						if (redirectUrl) {
+							message += '<div class="login-link"><a href="' + redirectUrl + '">' + base.dictionary.translate("Login") + '</a></div>';
+						}
+						thisClass.unloadAll(message);
+					}
+					else {
+						let errorMessage = base.dictionary.translate("You are not authorized to view this resource");
+						thisClass.unloadAll(errorMessage);
+						paella.events.trigger(paella.events.error,{error:errorMessage});
+					}
+				})
+	
+				.catch((error) => {
+					let errorMessage = base.dictionary.translate(error);
+					thisClass.unloadAll(errorMessage);
+					paella.events.trigger(paella.events.error,{error:errorMessage});
+				});
+		}
+	
+		onresize() {		
+			this.videoContainer.onresize();
+			if (this.controls) this.controls.onresize();
+	
+			// Resize the layout profile
+			if (this.videoContainer.ready) {
+				var cookieProfile = paella.utils.cookies.get('lastProfile');
+				if (cookieProfile) {
+					this.setProfile(cookieProfile,false);
+				}
+				else {
+					this.setProfile(paella.player.selectedProfile, false);
+				}
+			}
+			
+			paella.events.trigger(paella.events.resize,{width:$(this.videoContainer.domElement).width(), height:$(this.videoContainer.domElement).height()});
+		}
+
+		unloadAll(message) {
+			var loaderContainer = $('#paellaPlayer_loader')[0];
+			this.mainContainer.innerText = "";
+			paella.messageBox.showError(message);
+		}
+	
+		reloadVideos(masterQuality,slaveQuality) {
+			if (this.videoContainer) {
+				this.videoContainer.reloadVideos(masterQuality,slaveQuality);
+				this.onresize();
+			}
+		}
+	
+		loadVideo() {
+			if (this.videoIdentifier) {
+				var This = this;
+				var loader = paella.player.videoLoader;
+				this.onresize();
+				loader.loadVideo(() => {
+					var playOnLoad = false;
+					This.videoContainer.setStreamData(loader.streams)
+						.then(function() {
+							paella.events.trigger(paella.events.loadComplete);
+							This.addFullScreenListeners();
+							This.onresize();
+							// If the player has been loaded using lazyLoad, the video should be
+							// played as soon as it loads
+							if (This.videoContainer.autoplay() || g_lazyLoadInstance!=null) {
+								This.play();
+							}
+							else if (loader.metadata.preview) {
+								This.lazyLoadContainer = new LazyThumbnailContainer(loader.metadata.preview);
+								document.body.appendChild(This.lazyLoadContainer.domElement);
+							}
+						})
+						.catch((error) => {
+							console.log(error);
+							paella.messageBox.showError(base.dictionary.translate("Could not load the video"));
+						});
+				});
+			}
+		}
+	
+		showPlaybackBar() {
+			if (!this.controls) {
+				this.controls = new paella.ControlsContainer(this.playerId + '_controls');
+				this.mainContainer.appendChild(this.controls.domElement);
+				this.controls.onresize();
+				paella.events.trigger(paella.events.loadPlugins,{pluginManager:paella.pluginManager});
+	
+			}
+		}
+	
+		isLiveStream() {
+			var loader = paella.initDelegate.initParams.videoLoader;
+			var checkSource = function(sources,index) {
+				if (sources.length>index) {
+					var source = sources[index];
+					for (var key in source.sources) {
+						if (typeof(source.sources[key])=="object") {
+							for (var i=0; i<source.sources[key].length; ++i) {
+								var stream = source.sources[key][i];
+								if (stream.isLiveStream) return true;
+							}
+						}
+					}
+				}
+				return false;
+			};
+			return checkSource(loader.streams,0) || checkSource(loader.streams,1);
+		}
+	
+		loadPreviews() {
+			var streams = paella.initDelegate.initParams.videoLoader.streams;
+			var slavePreviewImg = null;
+	
+			var masterPreviewImg = streams[0].preview;
+			if (streams.length >=2) {
+				slavePreviewImg = streams[1].preview;
+			}
+			if (masterPreviewImg) {
+				var masterRect = paella.player.videoContainer.overlayContainer.getVideoRect(0);
+				this.masterPreviewElem = document.createElement('img');
+				this.masterPreviewElem.src = masterPreviewImg;
+				paella.player.videoContainer.overlayContainer.addElement(this.masterPreviewElem,masterRect);
+			}
+			if (slavePreviewImg) {
+				var slaveRect = paella.player.videoContainer.overlayContainer.getVideoRect(1);
+				this.slavePreviewElem = document.createElement('img');
+				this.slavePreviewElem.src = slavePreviewImg;
+				paella.player.videoContainer.overlayContainer.addElement(this.slavePreviewElem,slaveRect);
+			}
+			paella.events.bind(paella.events.timeUpdate,function(event) {
+				paella.player.unloadPreviews();
+			});
+		}
+	
+		unloadPreviews() {
+			if (this.masterPreviewElem) {
+				paella.player.videoContainer.overlayContainer.removeElement(this.masterPreviewElem);
+				this.masterPreviewElem = null;
+			}
+			if (this.slavePreviewElem) {
+				paella.player.videoContainer.overlayContainer.removeElement(this.slavePreviewElem);
+				this.slavePreviewElem = null;
+			}
+		}
+	
+		loadComplete(event,params) {
+			var thisClass = this;
+	
+			//var master = paella.player.videoContainer.masterVideo();
+
+			paella.pluginManager.loadPlugins("paella.EarlyLoadPlugin");
+			if (paella.player.videoContainer._autoplay){
+				this.play();
+			}		
+		}
+	
+		play() {
+			if (this.lazyLoadContainer) {
+				document.body.removeChild(this.lazyLoadContainer.domElement);
+				this.lazyLoadContainer = null;
+			}
+			return new Promise((resolve,reject) => {
+				this.videoContainer.play()
+					.then(() => {
+						if (!this.controls) {
+							this.showPlaybackBar();
+							paella.events.trigger(paella.events.controlBarLoaded);
+							this.controls.onresize();
+						}
+						resolve();
+					})
+					.catch((err) => {
+						reject(err);
+					});
+			});
+		}
+	
+		pause() {
+			return this.videoContainer.pause();
+		}
+	
+		playing() {
+			return new Promise((resolve) => {
+				this.paused()
+					.then((p) => {
+						resolve(!p);
+					});
+			});
+		}
+	
+		paused() {
+			return this.videoContainer.paused();
+		}
+	}
+	
+	paella.PaellaPlayer = PaellaPlayer;
+	window.PaellaPlayer = PaellaPlayer;
+	
+	paella.PaellaPlayer.mode = {
+		standard: 'standard',
+		fullscreen: 'fullscreen',
+		embed: 'embed'
+	};
+
+	class LazyThumbnailContainer extends paella.DomNode {
+
+		static GetIconElement() {
+			let container = document.createElement('div');
+			container.className = "play-button-on-screen";
+			container.style.width = "100%";
+			container.style.height = "100%";
+			container.style.pointerEvents = "none";
+		
+			let icon = document.createElement('div');
+			icon['className'] = 'play-icon';
+			container.appendChild(icon);
+
+			return container;
+		}
+
+
+		constructor(src) {
+			super('img','lazyLoadThumbnailContainer',{});
+			this.domElement.src = src;
+			this.domElement.alt = "";
+
+			this.container = LazyThumbnailContainer.GetIconElement();
+			if (!paella.player.videoContainer) {
+				document.body.appendChild(this.container);
+			}
+		}
+
+		setImage(url) {
+			this.domElement.src = url;
+		}
+
+		onClick(closure) {
+			this.domElement.onclick = closure;
+		}
+
+		destroyElements() {
+			document.body.removeChild(this.domElement);
+			document.body.removeChild(this.container);
+		}
+	}
+
+	paella.LazyThumbnailContainer = LazyThumbnailContainer;
+
+	
+	let g_lazyLoadInstance = null;
+	class PaellaPlayerLazy extends PaellaPlayer {
+		constructor(playerId,initDelegate) {
+			super(playerId,initDelegate);
+			g_lazyLoadInstance = this;
+		}
+
+		set onPlay(closure) {
+			this._onPlayClosure = closure;
+
+		}
+
+		loadComplete(event,params) {
+		}
+
+		onLoadConfig(configData) {
+			//paella.data = new paella.Data(configData);
+	
+			this.config = configData;
+			this.videoIdentifier = paella.initDelegate.getId();
+	
+			if (this.videoIdentifier) {
+				$(window).resize(function(event) { paella.player.onresize(); });
+				this.onload();
+			}
+		}
+
+		loadVideo() {
+			if (this.videoIdentifier) {
+				var This = this;
+				var loader = paella.player.videoLoader;
+				this.onresize();
+				loader.loadVideo(() => {
+					if (!loader.metadata.preview) {
+						paella.load(this.playerId,paella.loaderFunctionParams);
+						g_lazyLoadInstance = null;	// Lazy load is disabled when the video has no preview
+					}
+					else {
+						this.lazyLoadContainer = new LazyThumbnailContainer(loader.metadata.preview);
+						document.body.appendChild(this.lazyLoadContainer.domElement);
+						this.lazyLoadContainer.onClick(() => {
+							this.lazyLoadContainer.destroyElements();
+							this.lazyLoadContainer = null;
+							this._onPlayClosure && this._onPlayClosure();
+						});
+						paella.events.trigger(paella.events.loadComplete);
+					}
+				});
+			}
+		}
+
+		onresize() {}
+	}
+
+	paella.PaellaPlayerLazy = PaellaPlayerLazy;
+	
+	/* Initializer function */
+	window.initPaellaEngage = function(playerId,initDelegate) {
+		if (!initDelegate) {
+			initDelegate = new paella.InitDelegate();
+		}
+		paella.initDelegate = initDelegate;
+		paellaPlayer = new PaellaPlayer(playerId,paella.initDelegate);
+	}
+})();
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+(() => {
+
+// Default Video Loader
+//
+class DefaultVideoLoader extends paella.VideoLoader {
+	
+	constructor(data) {
+		super(data);
+		this._url = null;
+		if (typeof(data)=="object") {
+			this._data = data;
+		}
+		else {
+			try {
+				this._data = JSON.parse(data);
+			}
+			catch (e) {
+				this._url = data;
+			}
+		}
+	}
+
+	getVideoUrl() {
+		if (paella.initDelegate.initParams.videoUrl) {
+			return typeof(paella.initDelegate.initParams.videoUrl)=="function" ?
+				paella.initDelegate.initParams.videoUrl() :
+				paella.initDelegate.initParams.videoUrl;
+		}
+		else {
+			let url = this._url || (paella.player.config.standalone && paella.player.config.standalone.repository) || '';
+			return (/\/$/.test(url) ? url:url + '/') + paella.initDelegate.getId() + '/';
+		}
+	}
+
+	getDataUrl() {
+		if (paella.initDelegate.initParams.dataUrl) {
+			return typeof(paella.initDelegate.initParams.dataUrl)=='function' ?
+				paella.initDelegate.initParams.dataUrl() :
+				paella.initDelegate.initParams.dataUrl;
+		}
+		else {
+			return this.getVideoUrl() + 'data.json';
+		}
+	}
+
+	loadVideo(onSuccess) {
+		let loadVideoDelegate = paella.initDelegate.initParams.loadVideo;
+		let url = this._url || this.getDataUrl();
+
+		if (this._data) {
+			this.loadVideoData(this._data, onSuccess);
+		}
+		else if (loadVideoDelegate) {
+			loadVideoDelegate().then((data) => {
+				this._data = data;
+				this.loadVideoData(this._data, onSuccess);
+			});
+		}
+		else if (url) {
+			var This = this;
+			base.ajax.get({ url:this.getDataUrl() },
+				function(data,type,err) {
+					if (typeof(data)=="string") {
+						try {
+							data = JSON.parse(data);
+						}
+						catch(e) {}
+					}
+					This._data = data;
+					This.loadVideoData(This._data,onSuccess);
+				},
+				function(data,type,err) {
+					switch (err) {
+					case 401:
+						paella.messageBox.showError(base.dictionary.translate("You are not logged in"));
+						break;
+					case 403:
+						paella.messageBox.showError(base.dictionary.translate("You are not authorized to view this resource"));
+						break;
+					case 404:
+						paella.messageBox.showError(base.dictionary.translate("The specified video identifier does not exist"));
+						break;
+					default:
+						paella.messageBox.showError(base.dictionary.translate("Could not load the video"));
+					}
+				});
+		}
+	}
+
+	loadVideoData(data,onSuccess) {
+		var This = this;
+		if (data.metadata) {
+			this.metadata = data.metadata;
+		}
+
+		if (data.streams) {
+			data.streams.forEach(function(stream) {
+				This.loadStream(stream);
+			});
+		}
+		if (data.frameList) {
+			this.loadFrameData(data);
+		}
+		if (data.captions) {
+			this.loadCaptions(data.captions);
+		}
+		if (data.blackboard) {
+			this.loadBlackboard(data.streams[0],data.blackboard);
+		}
+		this.streams = data.streams;
+		this.frameList = data.frameList;
+		this.loadStatus = this.streams.length>0;
+		onSuccess();
+	}
+
+	loadFrameData(data) {
+		var This = this;
+		if (data.frameList && data.frameList.forEach) {
+			var newFrames = {};
+			data.frameList.forEach(function(frame) {
+				if (! /^[a-zA-Z]+:\/\//.test(frame.url) && !/^data:/.test(frame.url)) {
+					frame.url = This.getVideoUrl() + frame.url;
+				}
+				if (frame.thumb && ! /^[a-zA-Z]+:\/\//.test(frame.thumb) && !/^data:/.test(frame.thumb)) {
+					frame.thumb = This.getVideoUrl() + frame.thumb;
+				}
+				var id = frame.time;
+				newFrames[id] = frame;
+
+			});
+			data.frameList = newFrames;
+		}
+	}
+
+	loadStream(stream) {
+		var This=this;
+		if (stream.preview && ! /^[a-zA-Z]+:\/\//.test(stream.preview) && !/^data:/.test(stream.preview)) {
+			stream.preview = This.getVideoUrl() + stream.preview;
+		}
+
+		if (!stream.sources) {
+			return;
+		}
+
+		if (stream.sources.image) {
+			stream.sources.image.forEach(function(image) {
+				if (image.frames.forEach) {
+					var newFrames = {};
+					image.frames.forEach(function(frame) {
+						if (frame.src && ! /^[a-zA-Z]+:\/\//.test(frame.src) && !/^data:/.test(frame.src)) {
+							frame.src = This.getVideoUrl() + frame.src;
+						}
+						if (frame.thumb && ! /^[a-zA-Z]+:\/\//.test(frame.thumb) && !/^data:/.test(frame.thumb)) {
+							frame.thumb = This.getVideoUrl() + frame.thumb;
+						}
+						var id = "frame_" + frame.time;
+						newFrames[id] = frame.src;
+					});
+					image.frames = newFrames;
+				}
+			});
+		}
+		for (var type in stream.sources) {
+			if (stream.sources[type]) {
+				if (type != 'image') {
+					var source = stream.sources[type];
+					source.forEach(function (sourceItem) {
+						var pattern = /^[a-zA-Z\:]+\:\/\//gi;
+						if (typeof(sourceItem.src)=="string") {
+							if(sourceItem.src.match(pattern) == null){
+								sourceItem.src = This.getVideoUrl() + sourceItem.src;
+							}
+						}
+						sourceItem.type = sourceItem.mimetype;
+					});
+				}
+			}
+			else {
+				delete stream.sources[type];
+			}
+		}
+	}
+
+	loadCaptions(captions) {
+		if (captions) {
+			for (var i=0; i<captions.length; ++i) {
+				var url = captions[i].url;
+
+				if (! /^[a-zA-Z]+:\/\//.test(url)) {
+					url = this.getVideoUrl() + url;
+				}
+				var c = new paella.captions.Caption(i, captions[i].format, url, {code: captions[i].lang, txt: captions[i].text});
+				paella.captions.addCaptions(c);
+			}
+		}
+	}
+
+	loadBlackboard(stream, blackboard) {
+		var This = this;
+		if (!stream.sources.image) {
+			stream.sources.image = [];
+		}
+		var imageObject = {
+			count: blackboard.frames.length,
+			duration: blackboard.duration,
+			mimetype: blackboard.mimetype,
+			res: blackboard.res,
+			frames: {}
+		};
+
+		blackboard.frames.forEach(function(frame) {
+			var id = "frame_" + Math.round(frame.time);
+			if (!/^[a-zA-Z]+:\/\//.test(frame.src)) {
+				frame.src = This.getVideoUrl() + frame.src;
+			}
+			imageObject.frames[id] = frame.src;
+		});
+
+		stream.sources.image.push(imageObject);
+	}
+}
+
+paella.DefaultVideoLoader = DefaultVideoLoader;
+
+class DefaultInitDelegate extends paella.InitDelegate {
+}
+
+paella.DefaultInitDelegate = DefaultInitDelegate;
+
+function getManifestFromParameters(params) {
+	let master = null;
+	if (master = paella.utils.parameters.get('video')) {
+		let slave = paella.utils.parameters.get('videoSlave');
+		slave = slave && decodeURIComponent(slave);
+		let masterPreview = paella.utils.parameters.get('preview');
+		masterPreview = masterPreview && decodeURIComponent(masterPreview);
+		let slavePreview = paella.utils.parameters.get('previewSlave');
+		slavePreview = slavePreview && decodeURIComponent(slavePreview);
+		let title = paella.utils.parameters.get('preview') || "Untitled Video";
+		
+		let data = {
+			metadata: {
+				title: title
+			},
+			streams: [
+				{
+					sources: {
+						mp4: [
+							{
+								src:decodeURIComponent(master),
+								mimetype:"video/mp4",
+								res:{ w:0, h:0 }
+							}
+						]
+					},
+					preview:masterPreview
+				}
+			]
+		}
+
+		if (slave) {
+			data.streams.push({
+				sources: {
+					mp4: [
+						{
+							src:slave,
+							mimetype:"video/mp4",
+							res:{ w:0, h:0 }
+						} 
+					]
+				},
+				preview:slavePreview
+			});
+		}
+
+		return data;
+	}
+	return null;
+}
+
+/*
+ *	playerContainer	Player DOM container id
+ *	params.configUrl		Url to the config json file
+ *	params.config			Use this configuration file
+ *	params.data				Paella video data schema
+ *	params.url				Repository URL
+ */
+paella.load = function(playerContainer, params) {
+	paella.loaderFunctionParams = params;
+	var auth = (params && params.auth) || {};
+
+	// Build custom init data using url parameters
+	let data = getManifestFromParameters(params);
+	if (data) {
+		params.data = data;
+	}
+
+	var initObjects = params;
+	initObjects.videoLoader = new paella.DefaultVideoLoader(params.data || params.url);
+
+	paella.initDelegate = new paella.DefaultInitDelegate(initObjects);
+	new PaellaPlayer(playerContainer,paella.initDelegate);
+};
+
+/*
+ *	playerContainer	Player DOM container id
+ *	params.configUrl		Url to the config json file
+ *	params.config			Use this configuration file
+ *	params.data				Paella video data schema
+ *	params.url				Repository URL
+ *  forceLazyLoad			Use lazyLoad even if your browser does not allow automatic playback of the video
+ */
+paella.lazyLoad = function(playerContainer, params, forceLazyLoad = true) {
+	paella.loaderFunctionParams = params;
+	var auth = (params && params.auth) || {};
+
+	// Check autoplay. If autoplay is enabled, this function must call paella.load()
+	paella.Html5Video.IsAutoplaySupported()
+		.then((supported) => {
+			if (supported || forceLazyLoad) {
+				// Build custom init data using url parameters
+				let data = getManifestFromParameters(params);
+				if (data) {
+					params.data = data;
+				}
+
+				var initObjects = params;
+				initObjects.videoLoader = new paella.DefaultVideoLoader(params.data || params.url);
+
+				paella.initDelegate = new paella.DefaultInitDelegate(initObjects);
+				let lazyLoad = new paella.PaellaPlayerLazy(playerContainer,paella.initDelegate);
+				lazyLoad.onPlay = () => {
+					$('#' + playerContainer).innerHTML = "";
+					paella.load(playerContainer,params);
+				};
+			}
+			else {
+				paella.load(playerContainer,params);
+			}
+		});
+}
+
+})();
+
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+(() => {
+
+	class RightBarPlugin extends paella.DeferredLoadPlugin {
+		get type() { return 'rightBarPlugin'; }
+		getName() { return "es.upv.paella.RightBarPlugin"; }
+	
+		buildContent(domElement) {}
+	}
+
+	paella.RightBarPlugin = RightBarPlugin;
+	
+	class TabBarPlugin extends paella.DeferredLoadPlugin {
+		get type() { return 'tabBarPlugin'; }
+		getName() { return "es.upv.paella.TabBarPlugin"; }
+	
+		getTabName() {
+			return "New Tab";
+		}
+	
+		action(tab) {
+		}
+	
+		buildContent(domElement) {
+		}
+		
+		setToolTip(message) {
+			this.button.setAttribute("title", message);
+			this.button.setAttribute("aria-label", message);
+		}
+	
+		getDefaultToolTip() {
+			return "";
+		}
+	}
+
+	paella.TabBarPlugin = TabBarPlugin;
+	
+	
+	class ExtendedAdapter {
+		
+		constructor() {
+			this.rightContainer = null;
+			this.bottomContainer = null;
+			this.rightBarPlugins = [];
+			this.tabBarPlugins = [];
+			this.currentTabIndex = 0;
+			this.bottomContainerTabs = null;
+			this.bottomContainerContent = null;
+	
+			this.rightContainer = document.createElement('div');
+			//this.rightContainer.id = this.settings.rightContainerId;
+			this.rightContainer.className = "rightPluginContainer";
+	
+			this.bottomContainer = document.createElement('div');
+			//this.bottomContainer.id = this.settings.bottomContainerId;
+			this.bottomContainer.className = "tabsPluginContainer";
+	
+			var tabs = document.createElement('div');
+			//tabs.id = 'bottomContainer_tabs';
+			tabs.className = 'tabsLabelContainer';
+			this.bottomContainerTabs = tabs;
+			this.bottomContainer.appendChild(tabs);
+	
+			var bottomContent = document.createElement('div');
+			//bottomContent.id = 'bottomContainer_content';
+			bottomContent.className = 'tabsContentContainer';
+			this.bottomContainerContent = bottomContent;
+			this.bottomContainer.appendChild(bottomContent);
+	
+	
+			this.initPlugins();
+		}
+	
+		initPlugins() {
+			paella.pluginManager.setTarget('rightBarPlugin', this);
+			paella.pluginManager.setTarget('tabBarPlugin', this);
+		}
+	
+		addPlugin(plugin) {
+			var thisClass = this;
+			plugin.checkEnabled(function(isEnabled) {
+				if (isEnabled) {
+					paella.pluginManager.setupPlugin(plugin);
+					if (plugin.type=='rightBarPlugin') {
+						thisClass.rightBarPlugins.push(plugin);
+						thisClass.addRightBarPlugin(plugin);
+					}
+					if (plugin.type=='tabBarPlugin') {
+						thisClass.tabBarPlugins.push(plugin);
+						thisClass.addTabPlugin(plugin);
+					}
+				}
+			});
+		}
+	
+		showTab(tabIndex) {
+			var i =0;
+			var labels = this.bottomContainer.getElementsByClassName("tabLabel");
+			var contents = this.bottomContainer.getElementsByClassName("tabContent");
+		
+			for (i=0; i < labels.length; ++i) {
+				if (labels[i].getAttribute("tab") == tabIndex) {
+					labels[i].className = "tabLabel enabled";
+				}
+				else {
+					labels[i].className = "tabLabel disabled";
+				}
+			}
+			
+			for (i=0; i < contents.length; ++i) {
+				if (contents[i].getAttribute("tab") == tabIndex) {
+					contents[i].className = "tabContent enabled";
+				}
+				else {
+					contents[i].className = "tabContent disabled";
+				}
+			}
+		}
+	
+		addTabPlugin(plugin) {
+			var thisClass = this;
+			var tabIndex = this.currentTabIndex;
+	
+			// Add tab
+			var tabItem = document.createElement('div');
+			tabItem.setAttribute("tab", tabIndex);
+			tabItem.className = "tabLabel disabled";		
+			tabItem.innerText = plugin.getTabName();
+			tabItem.plugin = plugin;
+			$(tabItem).click(function(event) { if (/disabled/.test(this.className)) { thisClass.showTab(tabIndex); this.plugin.action(this); } });
+			$(tabItem).keyup(function(event) {
+				if (event.keyCode == 13) {
+					if (/disabledTabItem/.test(this.className)) { thisClass.showTab(tabIndex); this.plugin.action(this); }
+				}
+			});
+			this.bottomContainerTabs.appendChild(tabItem);
+	
+			// Add tab content
+			var tabContent = document.createElement('div');
+			tabContent.setAttribute("tab", tabIndex);
+			tabContent.className = "tabContent disabled " + plugin.getSubclass();
+			this.bottomContainerContent.appendChild(tabContent);
+			plugin.buildContent(tabContent);
+	
+			plugin.button = tabItem;
+			plugin.container = tabContent;
+	
+			plugin.button.setAttribute("tabindex", 3000+plugin.getIndex());
+			plugin.button.setAttribute("alt", "");
+			plugin.setToolTip(plugin.getDefaultToolTip());
+	
+	
+			// Show tab
+			if (this.firstTabShown===undefined) {
+				this.showTab(tabIndex);
+				this.firstTabShown = true;
+			}
+			++this.currentTabIndex;
+		}
+	
+		addRightBarPlugin(plugin) {
+			var container = document.createElement('div');
+			container.className = "rightBarPluginContainer " + plugin.getSubclass();
+			this.rightContainer.appendChild(container);
+			plugin.buildContent(container);
+		}
+	}
+
+	paella.ExtendedAdapter = ExtendedAdapter;
+	
+	
+	paella.extendedAdapter = new paella.ExtendedAdapter();
+})();
+
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+/*
+Class ("paella.editor.EmbedPlayer", base.AsyncLoaderCallback,{
+	editar:null,
+
+	initialize:function() {
+		this.editor = paella.editor.instance;
+	},
+
+	load:function(onSuccess,onError) {
+		var barHeight = this.editor.bottomBar.getHeight() + 20;
+		var rightBarWidth = this.editor.rightBar.getWidth() + 20;
+		$(paella.player.mainContainer).css({
+			'position':'fixed',
+			"width":"",
+			"bottom":barHeight + "px",
+			"right":rightBarWidth + "px",
+			"left":"20px",
+			"top":"20px"
+		});
+		paella.player.mainContainer.className = "paellaMainContainerEditorMode";
+		new Timer(function(timer) {
+			paella.player.controls.disable();
+			paella.player.onresize();
+			if (onSuccess) {
+				onSuccess();
+			}
+		},500);
+	},
+
+	restorePlayer:function() {
+		$('body')[0].appendChild(paella.player.mainContainer);
+		paella.player.controls.enable();
+		paella.player.mainContainer.className = "";
+		$(paella.player.mainContainer).css({
+			'position':'',
+			"width":"",
+			"bottom":"",
+			"left":"",
+			"right":"",
+			"top":""
+		});
+		paella.player.onresize();
+	},
+
+	onresize:function() {
+		var barHeight = this.editor.bottomBar.getHeight() + 20;
+		var rightBarWidth = this.editor.rightBar.getWidth() + 20;
+		$(paella.player.mainContainer).css({
+			'position':'fixed',
+			"width":"",
+			"bottom":barHeight + "px",
+			"right":rightBarWidth + "px",
+			"left":"20px",
+			"top":"20px"
+		});
+
+	}
+});
+
+*/
+/*  
+	Paella HTML 5 Multistream Player
+	Copyright (C) 2017  Universitat Politècnica de València Licensed under the
+	Educational Community 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.osedu.org/licenses/ECL-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.
+*/
+
+///////////////////////////////////////////////////////
+// Deprecated functions/objects
+//
+//    Will be removed in next paella version.
+///////////////////////////////////////////////////////
+
+
+function DeprecatedClass(name, replacedBy, p) {
+	Class (name, p, {
+		initialize: function() {
+			base.log.warning(name +  " is deprecated, use " + replacedBy + " instead.");
+			this.parent.apply(this, arguments);
+		}
+	});
+}
+
+function DeprecatedFunc(name, replacedBy, func) {
+	function ret(){
+		base.log.warning(name +  " is deprecated, use " + replacedBy + " instead.");
+		func.apply(this, arguments);
+	}
+	
+	return ret;
+}
+
+// Pella Dictionary
+///////////////////////////////////////////////////////
+DeprecatedClass("paella.Dictionary", "base.Dictionary", base.Dictionary);
+paella.dictionary = base.dictionary;
+
+// Paella AsyncLoader
+///////////////////////////////////////////////////////
+DeprecatedClass("paella.AsyncLoaderCallback", "base.AsyncLoaderCallback", base.AsyncLoaderCallback);
+DeprecatedClass("paella.AjaxCallback", "base.AjaxCallback", base.AjaxCallback);
+DeprecatedClass("paella.JSONCallback", "base.JSONCallback", base.JSONCallback);
+DeprecatedClass("paella.DictionaryCallback", "base.DictionaryCallback", base.DictionaryCallback);
+DeprecatedClass("paella.AsyncLoader", "base.AsyncLoader", base.AsyncLoader);
+
+// Paella Timer
+///////////////////////////////////////////////////////
+DeprecatedClass("paella.Timer", "base.Timer", base.Timer);
+DeprecatedClass("paella.utils.Timer", "base.Timer", base.Timer);
+
+
+// Paella Ajax
+///////////////////////////////////////////////////////
+paella.ajax = {};
+paella.ajax['send'] = DeprecatedFunc("paella.ajax.send", "base.ajax.send", base.ajax.send);
+paella.ajax['get'] = DeprecatedFunc("paella.ajax.get", "base.ajax.get", base.ajax.get);
+paella.ajax['put'] = DeprecatedFunc("paella.ajax.put", "base.ajax.put", base.ajax.put);
+paella.ajax['post'] = DeprecatedFunc("paella.ajax.post", "base.ajax.post", base.ajax.post);
+paella.ajax['delete'] = DeprecatedFunc("paella.ajax.delete", "base.ajax.delete", base.ajax.send);
+
+
+
+// Paella UI
+///////////////////////////////////////////////////////
+paella.ui = {};
+
+paella.ui.Container = function(params) {
+	var elem = document.createElement('div');
+	if (params.id) elem.id = params.id;
+	if (params.className) elem.className = params.className;
+	if (params.style) $(elem).css(params.style);
+	return elem;
+};
+
+
+
+
+// paella.utils
+///////////////////////////////////////////////////////
+paella.utils.ajax = base.ajax;
+paella.utils.cookies = base.cookies;
+paella.utils.parameters = base.parameters;
+paella.utils.require = base.require;
+paella.utils.importStylesheet = base.importStylesheet;
+paella.utils.language = base.dictionary.currentLanguage;
+paella.utils.uuid = base.uuid;
+paella.utils.userAgent = base.userAgent;
+
+
+
+
+// paella.debug
+///////////////////////////////////////////////////////
+paella.debug = {
+	log:function(msg) {
+		base.log.warning("paella.debug.log is deprecated, use base.debug.[error/warning/debug/log] instead.");
+		base.log.log(msg);
+	}
+};
+
+paella.debugReady = true;
+paella.addPlugin(function() {
+	class FlexSkipPlugin extends paella.ButtonPlugin {
+		getAlignment() { return 'left'; }
+		getName() { return "edu.harvard.dce.paella.flexSkipPlugin"; }
+		getIndex() { return 121; }
+		getSubclass() { return 'flexSkip_Rewind_10'; }
+		getIconClass() { return 'icon-back-10-s'; }
+		formatMessage() { return 'Rewind 10 seconds'; }
+		getDefaultToolTip() { return base.dictionary.translate(this.formatMessage()); }
+	
+		checkEnabled(onSuccess) {
+			onSuccess(!paella.player.isLiveStream());
+		}
+		
+		action(button) {
+			paella.player.videoContainer.currentTime()
+				.then(function(currentTime) {
+					paella.player.videoContainer.seekToTime(currentTime - 10);
+				});
+		}
+	}
+
+	paella.plugins.FlexSkipPlugin = FlexSkipPlugin;
+
+	return FlexSkipPlugin;
+});
+
+paella.addPlugin(function() {
+
+	return class FlexSkipForwardPlugin extends paella.plugins.FlexSkipPlugin {
+		getIndex() { return 122; }
+		getName() { return "edu.harvard.dce.paella.flexSkipForwardPlugin"; }
+		getSubclass() { return 'flexSkip_Forward_30'; }
+		getIconClass() { return 'icon-forward-30-s'; }
+		formatMessage() { return 'Forward 30 seconds'; }
+		
+		action(button) {
+			paella.player.videoContainer.currentTime()
+				.then(function(currentTime) {
+					paella.player.videoContainer.seekToTime(currentTime + 30);
+				});
+		}
+	}
+});
+
+paella.addPlugin(function () {
+    /////////////////////////////////////////////////
+    // WebVTT Parser
+    /////////////////////////////////////////////////
+    return class WebVTTParserPlugin extends paella.CaptionParserPlugIn {
+        get ext() { return ["vtt"] }
+        getName() { return "es.teltek.paella.captions.WebVTTParserPlugin"; }
+
+        parse(content, lang, next) {
+            var captions = [];
+            var self = this;
+            var lls = content.split("\n");
+            var c;
+            var id = 0;
+            var skip = false;
+            for (var idx = 0; idx < lls.length; ++idx) {
+                var ll = lls[idx].trim();
+                if ((/^WEBVTT/.test(ll) && c === undefined) || ll.length === 0) {
+                    continue;
+                }
+                if ((/^[0-9]+$/.test(ll) || /^[0-9]+ -/.test(ll)) && lls[idx - 1].trim().length === 0) {
+                    continue;
+                }
+                if (/^NOTE/.test(ll) || /^STYLE/.test(ll)) {
+                    skip = true;
+                    continue;
+                }
+                if (/^(([0-9]+:)?[0-9]{2}:[0-9]{2}.[0-9]{3} --> ([0-9]+:)?[0-9]{2}:[0-9]{2}.[0-9]{3})/.test(ll)) {
+                    skip = false;
+                    if (c != undefined) {
+                        captions.push(c);
+                        id++;
+                    }
+                    c = {
+                        id: id,
+                        begin: self.parseTimeTextToSeg(ll.split("-->")[0]),
+                        end: self.parseTimeTextToSeg(ll.split("-->")[1]),
+                    }
+                    continue;
+                }
+                if (c !== undefined && !skip) {
+                    ll = ll.replace(/^- /, "");
+                    ll = ll.replace(/<[^>]*>/g, "");
+                    if (c.content === undefined) {
+                        c.content = ll;
+                    } else {
+                        c.content += "\n" + ll;
+                    }
+                }
+            }
+            captions.push(c);
+            if (captions.length > 0) {
+                next(false, captions);
+            } else {
+                next(true);
+            }
+        }
+
+        parseTimeTextToSeg(ttime) {
+            var nseg = 0;
+            var factor = 1;
+            ttime = /(([0-9]+:)?[0-9]{2}:[0-9]{2}.[0-9]{3})/.exec(ttime);
+            var split = ttime[0].split(":");
+            for (var i = split.length - 1; i >= 0; i--) {
+                factor = Math.pow(60, (split.length - 1 - i));
+                nseg += split[i] * factor;
+            }
+            return nseg;
+        }
+    }
+})
+
+paella.addPlugin(function() {
+  return class xAPISaverPlugin extends paella.userTracking.SaverPlugIn {
+    getName() {return "es.teltek.paella.usertracking.xAPISaverPlugin";}
+
+    setup(){
+      this.endpoint = this.config.endpoint;
+      this.auth = this.config.auth;
+      this.user_info = {}
+      this.paused = true
+      this.played_segments = ""
+      this.played_segments_segment_start = null
+      this.played_segments_segment_end = null
+      this.progress = 0
+      this.duration = 0
+      this.current_time = []
+      this.completed = false
+      this.volume = null
+      this.speed = null
+      this.language = "us-US"
+      this.quality = null
+      this.fullscreen = false
+      this.title = "No title available"
+      this.description = ""
+      this.user_agent = ""
+      this.total_time = 0
+      this.total_time_start = 0
+      this.total_time_end = 0
+      this.session_id = ""
+
+      let self = this
+      this._loadDeps().then(function (){
+        let conf = {
+          "endpoint" : self.endpoint,
+          "auth" : "Basic " + toBase64(self.auth)
+        };
+        ADL.XAPIWrapper.changeConfig(conf);
+      })
+      paella.events.bind(paella.events.timeUpdate, function(event,params){
+        self.current_time.push(params.currentTime)
+        if (self.current_time.length >=10){
+          self.current_time = self.current_time.slice(-10)
+        }
+
+        var a = Math.round(self.current_time[0])
+        var b = Math.round(self.current_time[9])
+
+        if ((params.currentTime !== 0)  && (a + 1 >= b) && (b - 1 >= a)){
+          self.progress = self.get_progress(params.currentTime, params.duration)
+          if (self.progress >= 0.95 && self.completed === false){
+            self.completed = true
+            self.end_played_segment(params.currentTime)
+            self.start_played_segment(params.currentTime)
+            self.send_completed(params.currentTime, self.progress)
+          }
+        }
+      })
+    }
+
+    get_session_data(){
+      var myparams = ADL.XAPIWrapper.searchParams();
+      var agent = JSON.stringify({"mbox" : this.user_info.email})
+      var timestamp = new Date()
+      timestamp.setDate(timestamp.getDate() - 1);
+      timestamp = timestamp.toISOString()
+      myparams['activity'] = window.location.href;
+      myparams['verb'] = 'http://adlnet.gov/expapi/verbs/terminated';
+      myparams['since'] = timestamp
+      myparams['limit']	= 1;
+      myparams['agent'] = agent
+      var ret = ADL.XAPIWrapper.getStatements(myparams);
+      if (ret.statements.length === 1){
+        this.played_segments = ret.statements[0].result.extensions['https://w3id.org/xapi/video/extensions/played-segments']
+        this.progress = ret.statements[0].result.extensions['https://w3id.org/xapi/video/extensions/progress']
+        ADL.XAPIWrapper.lrs.registration = ret.statements[0].context.registration
+      }
+      else{
+        ADL.XAPIWrapper.lrs.registration = ADL.ruuid()
+      }
+    }
+
+    getCookie(cname) {
+      var name = cname + "=";
+      var decodedCookie = decodeURIComponent(document.cookie);
+      var ca = decodedCookie.split(';');
+      for(var i = 0; i <ca.length; i++) {
+        var c = ca[i];
+        while (c.charAt(0) == ' ') {
+          c = c.substring(1);
+        }
+        if (c.indexOf(name) == 0) {
+          return c.substring(name.length, c.length);
+        }
+      }
+      return "";
+    }
+
+    setCookie(cname, cvalue, exdays) {
+      var d = new Date();
+      d.setTime(d.getTime() + (exdays*24*60*60*1000));
+      var expires = "expires="+ d.toUTCString();
+      document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
+    }
+
+    checkCookie(){
+      var user_info = this.getCookie("user_info");
+      if (user_info === "") {
+        user_info = JSON.stringify(generateName())
+      }
+      this.setCookie("user_info", user_info);
+      return JSON.parse(user_info)
+    }
+
+    checkEnabled(onSuccess) {
+      this._url = this.config.url;
+      this._index = this.config.index || "paellaplayer";
+      this._type = this.config.type || "usertracking";
+
+      onSuccess(true);
+    }
+
+    _loadDeps() {
+      return new Promise((resolve,reject) => {
+        if (!window.$paella_mpd) {
+          require(['resources/deps/xapiwrapper.min.js'],function() {
+            require(['resources/deps/random_name_generator.js'],function() {
+              window.$paella_bg2e = true;
+              resolve(window.$paella_bg2e);
+            });
+          });
+        }
+        else {
+          defer.resolve(window.$paella_mpd);
+        }
+      });
+    }
+
+    log(event, params) {
+      var p = params;
+      let self = this
+      // console.log(event)
+      // console.log(params)
+      switch (event) {
+        //Retrieve initial parameters from player
+        case "paella:loadComplete":
+        this.user_agent = navigator.userAgent.toString();
+        this.get_title()
+        this.get_description()
+        paella.player.videoContainer.duration().then(function(duration) {
+          return paella.player.videoContainer.streamProvider.mainAudioPlayer.volume()
+          .then(function(volume) {
+            return paella.player.videoContainer.getCurrentQuality().then(function(quality) {
+              return paella.player.auth.userData().then(function (user_info){
+                self.duration = duration
+                self.volume = volume
+                self.speed = 1
+                if (paella.player.videoContainer.streamProvider.mainAudioPlayer.stream.language){
+                  self.language = paella.player.videoContainer.streamProvider.mainAudioPlayer.stream.language.replace("_","-")
+                }
+                self.quality = quality.shortLabel()
+
+                if (user_info.email && user_info.name){
+                  self.user_info = user_info
+                }
+                else{
+                  self.user_info = self.checkCookie()
+                }
+
+                self.get_session_data()
+
+                self.send_initialized()
+              });
+            });
+          });
+        });
+        window.onbeforeunload = function(e) {
+          if (!self.paused){
+            self.send_pause(self)
+          }
+          //TODO Algunas veces se envia terminated antes que paused
+          self.send_terminated(self)
+          // var dialogText = 'Dialog text here';
+          // e.returnValue = dialogText;
+          // window.onbeforeunload = null;
+          // return dialogText;
+        };
+        break;
+        case "paella:play":
+        this.send_play(self)
+        break;
+        case "paella:pause":
+        this.send_pause(self)
+        break;
+        case "paella:seektotime":
+        this.send_seek(self, params)
+        break;
+        //Player options
+        case "paella:setVolume":
+        paella.player.videoContainer.currentTime()
+        .then(function(currentTime) {
+          var current_time = self.format_float(currentTime)
+          self.volume = params.master
+          //self.send_interacted(current_time, {"https://w3id.org/xapi/video/extensions/volume": params.master})
+          var interacted = {"https://w3id.org/xapi/video/extensions/volume": self.format_float(params.master)}
+          self.send_interacted(current_time, interacted)
+
+        });
+        break;
+        case "paella:setplaybackrate":
+        paella.player.videoContainer.currentTime()
+        .then(function(currentTime) {
+          var current_time = self.format_float(currentTime)
+          self.speed = params.rate
+          var interacted = {"https://w3id.org/xapi/video/extensions/speed": params.rate + "x"}
+          self.send_interacted(current_time, interacted)
+        })
+        break;
+        case "paella:qualityChanged":
+        paella.player.videoContainer.currentTime().then(function(currentTime) {
+          return paella.player.videoContainer.getCurrentQuality().then(function(quality) {
+            self.quality = quality.shortLabel()
+            var current_time = self.format_float(currentTime)
+            var interacted = {"https://w3id.org/xapi/video/extensions/quality": quality.shortLabel()}
+            self.send_interacted(current_time, interacted)
+          })
+        })
+        break;
+        case "paella:enterFullscreen":
+        case "paella:exitFullscreen":
+        paella.player.videoContainer.currentTime().then(function(currentTime) {
+          var current_time = self.format_float(currentTime)
+          self.fullscreen ? self.fullscreen = false : self.fullscreen = true
+          var interacted = {"https://w3id.org/xapi/video/extensions/full-screen": self.fullscreen}
+          self.send_interacted(current_time, interacted)
+        })
+        break;
+        default:
+        break;
+      }
+    }
+
+    send(params){
+      var agent = new ADL.XAPIStatement.Agent(this.user_info.email, this.user_info.name)
+      var verb = new ADL.XAPIStatement.Verb(params.verb.id, params.verb.description)
+      var activity = new ADL.XAPIStatement.Activity(window.location.href, this.title, this.description)
+      activity.definition.type = "https://w3id.org/xapi/video/activity-type/video"
+      paella.player.videoContainer.streamProvider.mainAudioPlayer.volume().then(function(volume){})
+      var statement = new ADL.XAPIStatement(agent, verb, activity)
+      statement.result = params.result
+      if (params.verb.id === "http://adlnet.gov/expapi/verbs/initialized"){
+        statement.generateId()
+        this.session_id = statement.id
+      }
+
+
+      var ce_base = {
+        "https://w3id.org/xapi/video/extensions/session-id": this.session_id,
+        "https://w3id.org/xapi/video/extensions/length": Math.floor(this.duration),
+        "https://w3id.org/xapi/video/extensions/user-agent": this.user_agent
+      }
+      var ce_interactions = {
+        "https://w3id.org/xapi/video/extensions/volume": this.format_float(this.volume),
+        "https://w3id.org/xapi/video/extensions/speed": this.speed + "x",
+        "https://w3id.org/xapi/video/extensions/quality": this.quality,
+        "https://w3id.org/xapi/video/extensions/full-screen": this.fullscreen
+      }
+      var context_extensions = {}
+      if (params.interacted){
+        context_extensions = $.extend({}, ce_base, params.interacted)
+      }
+      else{
+        context_extensions = $.extend({}, ce_base, ce_interactions)
+      }
+
+      statement.context = {
+        "language": this.language,
+        "extensions": context_extensions,
+        "contextActivities":{
+          "category":[{
+            "objectType":"Activity",
+            "id":"https://w3id.org/xapi/video"
+          }]
+        }
+      }
+
+      // Dispatch the statement to the LRS
+      var result = ADL.XAPIWrapper.sendStatement(statement);
+    }
+
+    send_initialized() {
+      var statement = {
+        "verb":{
+          "id":"http://adlnet.gov/expapi/verbs/initialized",
+          "description":"initalized"
+        },
+      }
+      this.send(statement)
+    }
+
+    send_terminated(self) {
+      paella.player.videoContainer.currentTime()
+      .then(function(end_time) {
+        var statement = {
+          "verb":{
+            "id":"http://adlnet.gov/expapi/verbs/terminated",
+            "description":"terminated"
+          },
+          "result" : {
+            "extensions":{
+              "https://w3id.org/xapi/video/extensions/time" : end_time,
+              "https://w3id.org/xapi/video/extensions/progress": self.progress,
+              "https://w3id.org/xapi/video/extensions/played-segments": self.played_segments
+            }
+          }
+        }
+        self.send(statement)
+      })
+    }
+
+    send_play(self){
+      this.paused = false
+      this.total_time_start = new Date().getTime() / 1000;
+      paella.player.videoContainer.currentTime()
+      .then(function(currentTime) {
+        var start_time = self.format_float(currentTime)
+        //When the video starts we force start_time to 0
+        if (start_time <= 1){
+          start_time = 0
+        }
+        self.start_played_segment(start_time)
+        var statement = {
+          "verb":{
+            "id":"https://w3id.org/xapi/video/verbs/played",
+            "description":"played"
+          },
+          "result" : {
+            "extensions":{
+              "https://w3id.org/xapi/video/extensions/time" : start_time
+            }
+          }
+        }
+        self.send(statement)
+      });
+    }
+
+    send_pause(self){
+      this.paused = true
+      this.total_time_end = new Date().getTime() / 1000;
+      this.total_time += (this.total_time_end - this.total_time_start)
+      paella.player.videoContainer.currentTime().then(function(currentTime) {
+        //return paella.player.videoContainer.duration().then(function(duration) {
+        var end_time = self.format_float(currentTime)
+        //self.progress = self.get_progress(end_time, duration)
+        //If a video end, the player go to the video start and raise a pause event with currentTime = 0
+        if (end_time === 0){
+          end_time = self.duration
+        }
+        self.end_played_segment(end_time)
+        var statement = {
+          "verb":{
+            "id":"https://w3id.org/xapi/video/verbs/paused",
+            "description":"paused"
+          },
+          "result" : {
+            "extensions":{
+              "https://w3id.org/xapi/video/extensions/time" : end_time,
+              "https://w3id.org/xapi/video/extensions/progress": self.progress,
+              "https://w3id.org/xapi/video/extensions/played-segments": self.played_segments
+            }
+          }
+        }
+        self.send(statement)
+      });
+      //});
+    }
+
+    send_seek(self, params){
+      var seekedto = this.format_float(params.newPosition)
+      //FIXME Metodo para obtener el instante desde donde empieza el seek
+      var a = this.current_time.filter(function(value){
+        return value <= seekedto -1
+      })
+      if (a.length === 0){
+        a = this.current_time.filter(function(value){
+          return value >= seekedto + 1
+        })
+      }
+      //In some cases, when you seek to the end of the video the array contains zeros at the end
+      var seekedfrom = a.filter(Number).pop()
+      this.current_time = []
+      this.current_time.push(seekedto)
+      // Fin de FIXME
+      //If the video is paused it's not neccesary create a new segment, because the pause event already close a segment
+      self.progress = self.get_progress(seekedfrom, self.duration)
+      if (!this.paused){
+        this.end_played_segment(seekedfrom)
+        this.start_played_segment(seekedto)
+      }
+      //paella.player.videoContainer.duration().then(function(duration) {
+      //var progress = self.get_progress(seekedfrom, duration)
+
+      var statement = {
+        "verb":{
+          "id":"https://w3id.org/xapi/video/verbs/seeked",
+          "description":"seeked"
+        },
+        "result" : {
+          "extensions":{
+            "https://w3id.org/xapi/video/extensions/time-from" : seekedfrom,
+            "https://w3id.org/xapi/video/extensions/time-to": seekedto,
+            // Aqui tambien deberiamos de enviar los segmentos reproducidos y el porcentaje
+            "https://w3id.org/xapi/video/extensions/progress": self.progress,
+            "https://w3id.org/xapi/video/extensions/played-segments": self.played_segments
+          }
+        }
+      }
+      self.send(statement)
+      //})
+    }
+
+    send_completed(time, progress){
+      var statement = {
+        "verb":{
+          "id":"http://adlnet.gov/xapi/verbs/completed",
+          "description":"completed"
+        },
+        "result" : {
+          "completion": true,
+          "success": true,
+          "duration": "PT" + this.total_time +"S",
+          "extensions":{
+            "https://w3id.org/xapi/video/extensions/time" : time,
+            "https://w3id.org/xapi/video/extensions/progress" : progress,
+            "https://w3id.org/xapi/video/extensions/played-segments": this.played_segments
+          }
+        }
+      }
+      this.send(statement)
+    }
+
+    send_interacted(current_time, interacted){
+      var statement = {
+        "verb":{
+          "id":"http://adlnet.gov/expapi/verbs/interacted",
+          "description":"interacted"
+        },
+        "result" : {
+          "extensions":{
+            "https://w3id.org/xapi/video/extensions/time" : current_time
+          }
+        },
+        "interacted" : interacted
+      }
+      this.send(statement)
+    }
+
+    start_played_segment(start_time){
+      this.played_segments_segment_start = start_time;
+    }
+
+    end_played_segment(end_time){
+      var arr;
+      arr = (this.played_segments === "")? []:this.played_segments.split("[,]");
+      arr.push(this.played_segments_segment_start + "[.]" + end_time);
+      this.played_segments = arr.join("[,]");
+      this.played_segments_segment_end = end_time;
+      //this.played_segments_segment_start = null;
+    }
+
+    format_float(number){
+      number = parseFloat(number) //Ensure that number is a float
+      return parseFloat(number.toFixed(3))
+    }
+
+    get_title(){
+      if (paella.player.videoLoader.getMetadata().i18nTitle){
+        this.title = paella.player.videoLoader.getMetadata().i18nTitle
+      }
+      else if (paella.player.videoLoader.getMetadata().title){
+        this.title = paella.player.videoLoader.getMetadata().title
+      }
+    }
+
+    get_description(){
+      if (paella.player.videoLoader.getMetadata().i18nTitle){
+        this.description = paella.player.videoLoader.getMetadata().i18nDescription
+      }
+      else {
+        this.description = paella.player.videoLoader.getMetadata().description
+      }
+    }
+
+    get_progress(currentTime, duration){
+      var arr, arr2;
+
+      //get played segments array
+      arr = (this.played_segments === "")? []:this.played_segments.split("[,]");
+      if(this.played_segments_segment_start != null){
+        arr.push(this.played_segments_segment_start + "[.]" + currentTime);
+      }
+
+      arr2 = [];
+      arr.forEach(function(v,i) {
+        arr2[i] = v.split("[.]");
+        arr2[i][0] *= 1;
+        arr2[i][1] *= 1;
+      });
+
+      //sort the array
+      arr2.sort(function(a,b) { return a[0] - b[0];});
+
+      //normalize the segments
+      arr2.forEach(function(v,i) {
+        if(i > 0) {
+          if(arr2[i][0] < arr2[i-1][1]) { 	//overlapping segments: this segment's starting point is less than last segment's end point.
+          //console.log(arr2[i][0] + " < " + arr2[i-1][1] + " : " + arr2[i][0] +" = " +arr2[i-1][1] );
+          arr2[i][0] = arr2[i-1][1];
+          if(arr2[i][0] > arr2[i][1])
+          arr2[i][1] = arr2[i][0];
+        }
+      }
+    });
+
+    //calculate progress_length
+    var progress_length = 0;
+    arr2.forEach(function(v,i) {
+      if(v[1] > v[0])
+      progress_length += v[1] - v[0];
+    });
+
+    var progress = 1 * (progress_length / duration).toFixed(2);
+    return progress;
+  }
+}});
+
+
+paella.addPlugin(function() {
+    return class SingleStreamProfilePlugin extends paella.EventDrivenPlugin {
+        getName() {
+            return "es.upv.paella.singleStreamProfilePlugin";
+        }
+
+        checkEnabled(onSuccess) {
+            let config = this.config;
+            config.videoSets.forEach((videoSet,index) => {
+                let validContent = videoSet.content
+                if (validContent.length==1) {
+                    let streamCount = 0;
+                    paella.player.videoContainer.streamProvider.videoStreams.forEach((v) => {
+                        if (validContent.indexOf(v.content)!=-1) {
+                            streamCount++
+                        }
+                    })
+                    if (streamCount>=1) {
+                        onSuccess(true);
+                        paella.addProfile(() => {
+                            return new Promise((resolve,reject) => {
+                                resolve({
+                                    id:videoSet.id,
+                                    name:{es:"Un stream"},
+                                    hidden:false,
+                                    icon:videoSet.icon,
+                                    videos: [
+                                        {
+                                            content:validContent[0],
+                                            rect:[
+                                                { aspectRatio:"1/1",left:280,top:0,width:720,height:720 },
+                                                { aspectRatio:"6/5",left:208,top:0,width:864,height:720 },
+                                                { aspectRatio:"5/4",left:190,top:0,width:900,height:720 },
+                                                { aspectRatio:"4/3",left:160,top:0,width:960,height:720 },
+                                                { aspectRatio:"11/8",left:145,top:0,width:990,height:720 },
+                                                { aspectRatio:"1.41/1",left:132,top:0,width:1015,height:720 },
+                                                { aspectRatio:"1.43/1",left:125,top:0,width:1029,height:720 },
+                                                { aspectRatio:"3/2",left:100,top:0,width:1080,height:720 },
+                                                { aspectRatio:"16/10",left:64,top:0,width:1152,height:720 },
+                                                { aspectRatio:"5/3",left:40,top:0,width:1200,height:720 },
+                                                { aspectRatio:"16/9",left:0,top:0,width:1280,height:720 },
+                                                { aspectRatio:"1.85/1",left:0,top:14,width:1280,height:692 },
+                                                { aspectRatio:"2.35/1",left:0,top:87,width:1280,height:544 },
+                                                { aspectRatio:"2.41/1",left:0,top:94,width:1280,height:531 },
+                                                { aspectRatio:"2.76/1",left:0,top:128,width:1280,height:463 }
+                                            ],
+                                            visible:true,
+                                            layer:1
+                                        }
+                                    ],
+                                    background:{content:"slide_professor_paella.jpg",zIndex:5,rect:{left:0,top:0,width:1280,height:720},visible:true,layer:0},
+                                    logos:[{content:"paella_logo.png",zIndex:5,rect:{top:10,left:10,width:49,height:42}}],
+                                    buttons: [],
+                                    onApply: function() {
+                                    }
+                                })
+                            })
+                        });
+                    }
+                    else {
+                        onSuccess(false)
+                    }
+                }
+            })
+        }
+    }
+})
+
+paella.addPlugin(function() {
+	return class DualStreamProfilePlugin extends paella.EventDrivenPlugin {
+		
+		getName() {
+			return "es.upv.paella.dualStreamProfilePlugin";
+		}
+		
+		checkEnabled(onSuccess) {
+            let config = this.config;
+            config.videoSets.forEach((videoSet,index) => {
+                let validContent = videoSet.content
+                if (validContent.length==2) {
+                    let streamCount = 0;
+                    paella.player.videoContainer.streamProvider.videoStreams.forEach((v) => {
+                        if (validContent.indexOf(v.content)!=-1) {
+                            streamCount++
+                        }
+                    })
+                    if (streamCount>=2) {
+                        onSuccess(true)
+                        paella.addProfile(() => {
+                            return new Promise((resolve,reject) => {
+                                resolve({
+                                    id:videoSet.id,
+                                    name:{es:"Dos streams con posición dinámica"},
+                                    hidden:false,
+                                    icon:videoSet.icon,
+                                    videos: [
+                                        {
+                                            content:validContent[0],
+                                            rect:[
+                                                {aspectRatio:"16/9",left:712,top:302,width:560,height:315},
+                                                {aspectRatio:"16/10",left:712,top:267,width:560,height:350},
+                                                {aspectRatio:"4/3",left:712,top:198,width:560,height:420},
+                                                {aspectRatio:"5/3",left:712,top:281,width:560,height:336},
+                                                {aspectRatio:"5/4",left:712,top:169,width:560,height:448}
+                                            ],
+                                            visible:true,
+                                            layer:1
+                                        },
+                                        {
+                                            content:validContent[1],
+                                            rect:[
+                                                {aspectRatio:"16/9",left:10,top:225,width:695,height:390},
+                                                {aspectRatio:"16/10",left:10,top:183,width:695,height:434},
+                                                {aspectRatio:"4/3",left:10,top:96,width:695,height:521},
+                                                {aspectRatio:"5/3",left:10,top:200,width:695,height:417},
+                                                {aspectRatio:"5/4",left:10,top:62,width:695,height:556}
+                                            ],
+                                            visible:true,
+                                            layer:"1"
+                                        }
+                                    ],
+                                    background:{content:"slide_professor_paella.jpg",zIndex:5,rect:{left:0,top:0,width:1280,height:720},visible:true,layer:0},
+                                    logos:[{content:"paella_logo.png",zIndex:5,rect:{top:10,left:10,width:49,height:42}}],
+                                    buttons: [
+                                        {
+                                            rect: { left: 682, top: 565, width: 45, height: 45 },
+                                            onClick: function(event) { this.switch(); },
+                                            label:"Switch",
+                                            icon:"icon_rotate.svg",
+                                            layer: 2
+                                        },
+                                        {
+                                            rect: { left: 682, top: 515, width: 45, height: 45 },
+                                            onClick: function(event) { this.switchMinimize(); },
+                                            label:"Minimize",
+                                            icon:"minimize.svg",
+                                            layer: 2
+                                        }
+                                    ],
+                                    onApply: function() {
+                                    },
+                                    switch: function() {
+                                        let v0 = this.videos[0].content;
+                                        let v1 = this.videos[1].content;
+                                        this.videos[0].content = v1;
+                                        this.videos[1].content = v0;
+                                        paella.profiles.placeVideos();
+                                    },
+                                    switchMinimize: function() {
+                                        if (this.minimized) {
+                                            this.minimized = false;
+                                            this.videos = [
+                                                {
+                                                    content:validContent[0],
+                                                    rect:[
+                                                        {aspectRatio:"16/9",left:712,top:302,width:560,height:315},
+                                                        {aspectRatio:"16/10",left:712,top:267,width:560,height:350},
+                                                        {aspectRatio:"4/3",left:712,top:198,width:560,height:420},
+                                                        {aspectRatio:"5/3",left:712,top:281,width:560,height:336},
+                                                        {aspectRatio:"5/4",left:712,top:169,width:560,height:448}
+                                                    ],
+                                                    visible:true,
+                                                    layer:1
+                                                },
+                                                {
+                                                    content:validContent[1],
+                                                    rect:[
+                                                        {aspectRatio:"16/9",left:10,top:225,width:695,height:390},
+                                                        {aspectRatio:"16/10",left:10,top:183,width:695,height:434},
+                                                        {aspectRatio:"4/3",left:10,top:96,width:695,height:521},
+                                                        {aspectRatio:"5/3",left:10,top:200,width:695,height:417},
+                                                        {aspectRatio:"5/4",left:10,top:62,width:695,height:556}
+                                                    ],
+                                                    visible:true,
+                                                    layer:2
+                                                }
+                                            ];
+                                            this.buttons = [
+                                                {
+                                                    rect: { left: 682, top: 565, width: 45, height: 45 },
+                                                    onClick: function(event) { this.switch(); },
+                                                    label:"Switch",
+                                                    icon:"icon_rotate.svg",
+                                                    layer: 2
+                                                },
+                                                {
+                                                    rect: { left: 682, top: 515, width: 45, height: 45 },
+                                                    onClick: function(event) { this.switchMinimize(); },
+                                                    label:"Minimize",
+                                                    icon:"minimize.svg",
+                                                    layer: 2
+                                                }
+                                            ];
+                                        }
+                                        else {
+                                            this.minimized = true;
+                                            this.videos = [
+                                                {
+                                                    content:validContent[0],rect:[
+                                                        {aspectRatio:"16/9",left:0,top:0,width:1280,height:720},
+                                                        {aspectRatio:"16/10",left:64,top:0,width:1152,height:720},
+                                                        {aspectRatio:"5/3",left:40,top:0,width:1200,height:720},
+                                                        {aspectRatio:"5/4",left:190,top:0,width:900,height:720},
+                                                        {aspectRatio:"4/3",left:160,top:0,width:960,height:720}
+                                                    ],
+                                                    visible:true,
+                                                    layer:1
+                                                },
+                                                {
+                                                    content:validContent[1],rect:[
+                                                        {aspectRatio:"16/9",left:50,top:470,width:350,height:197},
+                                                        {aspectRatio:"16/10",left:50,top:448,width:350,height:219},
+                                                        {aspectRatio:"5/3",left:50,top:457,width:350,height:210},
+                                                        {aspectRatio:"5/4",left:50,top:387,width:350,height:280},
+                                                        {aspectRatio:"4/3",left:50,top:404,width:350,height:262}
+                                                    ],
+                                                    visible:true,
+                                                    layer:2
+                                                }
+                                            ];
+                                            this.buttons = [
+                                                {
+                                                    rect: { left: 388, top: 465, width: 45, height: 45 },
+                                                    onClick: function(event) { this.switch(); },
+                                                    label:"Switch",
+                                                    icon:"icon_rotate.svg",
+                                                    layer: 2
+                                                },
+                                                {
+                                                    rect: { left: 388, top: 415, width: 45, height: 45 },
+                                                    onClick: function(event) { this.switchMinimize(); },
+                                                    label:"Switch",
+                                                    icon:"minimize.svg",
+                                                    layer: 2
+                                                }
+                                            ];
+                                        }
+                                        paella.profiles.placeVideos();
+                                    }
+                                })
+                            })
+                        });
+                    }
+                    else {
+                        onSuccess(false);
+                    }
+                }
+            })
+        }
+	};
+});
+
+paella.addPlugin(function() {
+	return class TripleStreamProfilePlugin extends paella.EventDrivenPlugin {
+		
+		getName() {
+			return "es.upv.paella.tripleStreamProfilePlugin";
+		}
+		
+		checkEnabled(onSuccess) {
+            let config = this.config;
+            config.videoSets.forEach((videoSet,index) => {
+                let validContent = videoSet.content
+                if (validContent.length==3) {
+                    let streamCount = 0;
+                    paella.player.videoContainer.streamProvider.videoStreams.forEach((v) => {
+                        if (validContent.indexOf(v.content)!=-1) {
+                            streamCount++
+                        }
+                    })
+                    if (streamCount>=3) {
+                        onSuccess(true);
+                        paella.addProfile(() => {
+                            return new Promise((resolve,reject) => {
+                                resolve({
+                                    id:videoSet.id,
+                                    name:{es:"Tres streams posición dinámica"},
+                                    hidden:false,
+                                    icon:videoSet.icon,
+                                    videos: [
+                                        {
+                                            content: validContent[0],
+                                            rect:[
+                                                { aspectRatio:"16/9",left:239, top:17, width:803, height:451 }
+                                            ],
+                                            visible:true,
+                                            layer:1
+                                        },
+                                        {
+                                            content:  validContent[1],
+                                            rect:[
+                                                { aspectRatio:"16/9",left:44, top:482, width:389, height:218 }
+                                            ],
+                                            visible:true,
+                                            layer:1
+                                        },
+                                        {
+                                            content:  validContent[2],
+                                            rect:[
+                                                { aspectRatio:"16/9",left:847, top:482, width:389, height:218 }
+                                            ],
+                                            visible:true,
+                                            layer:1
+                                        }
+                                    ],
+                                    background: {content:"slide_professor_paella.jpg",zIndex:5,rect: { left:0,top:0,width:1280,height:720},visible: true,layer:0},
+                                    logos: [{content:"paella_logo.png",zIndex:5,rect: { top:10,left:10,width:49,height:42}}],
+                                    buttons: [
+                                        {
+                                            rect: { left: 618, top: 495, width: 45, height: 45 },
+                                            onClick: function(event) { this.rotate(); },
+                                            label:"Rotate",
+                                            icon:"icon_rotate.svg",
+                                            layer: 2
+                                        }
+                                    ],
+                                    onApply: function() {
+                                    },
+                                    rotate: function() {
+                                        let v0 = this.videos[0].content;
+                                        let v1 = this.videos[1].content;
+                                        let v2 = this.videos[2].content;
+                                        this.videos[0].content = v2;
+                                        this.videos[1].content = v0;
+                                        this.videos[2].content = v1;
+                                        paella.profiles.placeVideos();
+                                    }
+                                })
+                            })
+                        });
+                    }
+                    else {
+                        onSuccess(false);
+                    }
+                }
+            })
+        }
+	};
+});
+
+paella.addProfile(() => {
+    return new Promise((resolve,reject) => {
+        paella.events.bind(paella.events.videoReady,() => {
+            let available = paella.player.videoContainer.streamProvider.videoStreams.some((v) => v.content=="blackboard")
+			if(!available) {
+                resolve(null);
+            }
+            else {
+                resolve({
+                    id:"blackboard_video_stream",
+                    name:{es:"Pizarra"},
+                    hidden:false,
+                    icon:"s_p_blackboard.svg",
+                    videos: [
+                        {
+                            content: "presentation",
+                            rect:[
+                            {aspectRatio:"16/9",left:10,top:70,width:432,height:243}],
+                            visible:true,
+                            layer:1
+                        },
+                        {
+                            content:"blackboard",
+                            rect:[{aspectRatio:"16/9",left:450,top:135,width:816,height:459}],
+                            visible:true,
+                            layer:1
+                        },
+                        {
+                            content:"presenter",
+                            rect:[{aspectRatio:"16/9",left:10,top:325,width:432,height:324}],
+                            visible:true,
+                            layer:1
+
+                        }
+                    ],
+                    //blackBoardImages: {left:10,top:325,width:432,height:324},
+                    background: {content:"slide_professor_paella.jpg",zIndex:5,rect: { left:0,top:0,width:1280,height:720},visible: true,layer:0},
+                    logos: [{content:"paella_logo.png",zIndex:5,rect: { top:10,left:10,width:49,height:42}}],
+                    buttons: [
+                        {
+                            rect: { left: 422, top: 295, width: 45, height: 45 },
+                            onClick: function(event) { this.rotate(); },
+                            label:"Rotate",
+                            icon:"icon_rotate.svg",
+                            layer: 2
+                        }
+                    ],
+                    rotate: function() {
+                        let v0 = this.videos[0].content;
+                        let v1 = this.videos[1].content;
+                        let v2 = this.videos[2].content;
+                        this.videos[0].content = v2;
+                        this.videos[1].content = v0;
+                        this.videos[2].content = v1;
+                        paella.profiles.placeVideos();
+                    }
+                });
+            }
+        });
+    })
+});
+
+paella.addProfile(() => {
+    return new Promise((resolve,reject) => {
+        paella.events.bind(paella.events.videoReady, () => {
+            // TODO: videoContainer.sourceData is deprecated. Update this code
+            var n = paella.player.videoContainer.sourceData[0].sources;
+            if (!n.chroma) {
+                resolve(null);
+            }
+            else {
+                resolve({
+                    id:"chroma",
+                    name:{es:"Polimedia"},
+                    hidden:false,
+                    icon:"chroma.svg",
+                    videos: [
+                        {
+                            content:"presenter",rect:[
+                                {aspectRatio:"16/9",left:0,top:0,width:1280,height:720},
+                                {aspectRatio:"16/10",left:64,top:0,width:1152,height:720},
+                                {aspectRatio:"5/3",left:40,top:0,width:1200,height:720},
+                                {aspectRatio:"5/4",left:190,top:0,width:900,height:720},
+                                {aspectRatio:"4/3",left:160,top:0,width:960,height:720}
+                            ],visible:"true",layer:"1"
+                        },
+                        {
+                            content:"presentation",rect:[
+                                {aspectRatio:"16/9",left:0,top:0,width:1280,height:720},
+                                {aspectRatio:"16/10",left:64,top:0,width:1152,height:720},
+                                {aspectRatio:"5/3",left:40,top:0,width:1200,height:720},
+                                {aspectRatio:"5/4",left:190,top:0,width:900,height:720},
+                                {aspectRatio:"4/3",left:160,top:0,width:960,height:720}
+                            ],visible:"true",layer:"0"
+                        }
+                    ],
+                    background:{content:"default_background_paella.jpg",zIndex:5,rect:{left:0,top:0,width:1280,height:720},visible:"true",layer:"0"},
+                    logos:[{content:"paella_logo.png",zIndex:5,rect:{top:10,left:10,width:49,height:42}}]
+                })
+            }
+        })
+    })
+});
+
+
+/*
+paella.plugins.TrimmingTrackPlugin = Class.create(paella.editor.MainTrackPlugin,{
+	trimmingTrack:null,
+	trimmingData:{s:0,e:0},
+
+	getTrackItems:function() {
+		if (this.trimmingTrack==null) {
+			this.trimmingTrack = {id:1,s:0,e:0};
+			this.trimmingTrack.s = paella.player.videoContainer.trimStart();
+			this.trimmingTrack.e = paella.player.videoContainer.trimEnd();
+			this.trimmingData.s = this.trimmingTrack.s;
+			this.trimmingData.e = this.trimmingTrack.e;
+		}		
+		var tracks = [];
+		tracks.push(this.trimmingTrack);
+		return tracks;
+	},
+		
+	getName:function() { return "es.upv.paella.editor.trimmingTrackPlugin"; },
+
+	getTools:function() {
+		if(this.config.enableResetButton) {
+			return [
+				{name:'reset', label:base.dictionary.translate('Reset'), hint:base.dictionary.translate('Resets the trimming bar to the default length of the video.')}
+			];
+		}
+	},
+
+	onToolSelected:function(toolName) {
+		if(this.config.enableResetButton) {
+		    if(toolName=='reset') {
+			this.trimmingTrack = {id:1,s:0,e:0};
+			this.trimmingTrack.s = 0;
+			this.trimmingTrack.e = paella.player.videoContainer.duration(true);
+			return true;
+			}
+		}
+	},
+
+	getTrackName:function() {
+		return base.dictionary.translate("Trimming");
+	},
+	
+	getColor:function() {
+		return 'rgb(0, 51, 107)';
+	},
+	
+	//checkEnabled:function(isEnabled) {
+	//	isEnabled(paella.plugins.trimmingLoaderPlugin.config.enabled);
+		//isEnabled(paella.player.config.trimming && paella.player.config.trimming.enabled);
+		//},
+	
+	onSave:function(onDone) {
+		paella.player.videoContainer.enableTrimming();
+		paella.player.videoContainer.setTrimmingStart(this.trimmingTrack.s);
+		paella.player.videoContainer.setTrimmingEnd(this.trimmingTrack.e);
+
+		this.trimmingData.s = this.trimmingTrack.s;
+		this.trimmingData.e = this.trimmingTrack.e;
+		
+		paella.data.write('trimming',{id:paella.initDelegate.getId()},{start:this.trimmingTrack.s,end:this.trimmingTrack.e},function(data,status) {
+			onDone(status);
+		});
+	},
+	
+	onDiscard:function(onDone) {
+		this.trimmingTrack.s = this.trimmingData.s;
+		this.trimmingTrack.e = this.trimmingData.e;
+		onDone(true);
+	},
+	
+	allowDrag:function() {
+		return false;
+	},
+	
+	onTrackChanged:function(id,start,end) {
+		//Checks if the trimming is valid (start >= 0 and end <= duration_of_the_video)
+		playerEnd = paella.player.videoContainer.duration(true);
+		start = (start < 0)? 0 : start;
+		end = (end > playerEnd)? playerEnd : end;
+		this.trimmingTrack.s = start;
+		this.trimmingTrack.e = end;
+		this.parent(id,start,end);
+	},
+
+	contextHelpString:function() {
+		// TODO: Implement this using the standard base.dictionary class
+		if (base.dictionary.currentLanguage()=="es") {
+			return "Utiliza la herramienta de recorte para definir el instante inicial y el instante final de la clase. Para cambiar la duración solo hay que arrastrar el inicio o el final de la pista \"Recorte\", en la linea de tiempo.";
+		}
+		else {
+			return "Use this tool to define the start and finish time.";
+		}
+	}
+});
+
+paella.plugins.trimmingTrackPlugin = new paella.plugins.TrimmingTrackPlugin();
+
+*/
+paella.addPlugin(function() {
+
+
+	
+	return class TrimmingLoaderPlugin extends paella.EventDrivenPlugin {
+		
+		getName() { return "es.upv.paella.trimmingPlayerPlugin"; }
+			
+		getEvents() { return [paella.events.controlBarLoaded, paella.events.showEditor, paella.events.hideEditor]; }
+	
+		onEvent(eventType,params) {
+			switch (eventType) {
+				case paella.events.controlBarLoaded:
+					this.loadTrimming();
+					break;
+				case paella.events.showEditor:
+					paella.player.videoContainer.disableTrimming();
+					break;
+				case paella.events.hideEditor:
+					if (paella.player.config.trimming && paella.player.config.trimming.enabled) {
+						paella.player.videoContainer.enableTrimming();
+					}
+					break;
+			}
+		}
+		
+		loadTrimming() {
+			var videoId = paella.initDelegate.getId();
+			paella.data.read('trimming',{id:videoId},function(data,status) {
+				if (data && status && data.end>0) {
+					paella.player.videoContainer.enableTrimming();
+					paella.player.videoContainer.setTrimming(data.start, data.end)
+						.then(() => {})
+					
+				}
+				else {
+					// Check for optional trim 'start' and 'end', in seconds, in location args
+					var startTime =  base.parameters.get('start');
+					var endTime = base.parameters.get('end');
+					if (startTime && endTime) {
+						paella.player.videoContainer.setTrimming(startTime, endTime).then(function() {
+							return paella.player.videoContainer.enableTrimming();
+						});
+					}
+				}
+			});
+		}
+	}
+});
+
+paella.addPlugin(function() {
+
+	return class AirPlayPlugin extends paella.ButtonPlugin {
+		getIndex() { return 552; }
+		getAlignment() { return 'right'; }
+		getSubclass() { return "AirPlayButton"; }
+		getIconClass() { return 'icon-airplay'; }
+		getName() { return "es.upv.paella.airPlayPlugin"; }
+		checkEnabled(onSuccess) {
+			this._visible = false;
+			// PIP is only available with single stream videos
+            if (paella.player.videoContainer.streamProvider.videoStreams.length!=1) {
+                onSuccess(false);
+            }
+            else {
+				onSuccess(window.WebKitPlaybackTargetAvailabilityEvent);
+			}
+		}
+		getDefaultToolTip() { return base.dictionary.translate("Emit to AirPlay."); }
+	
+		setup() {
+			let video = paella.player.videoContainer.masterVideo().video;
+			if (window.WebKitPlaybackTargetAvailabilityEvent) {
+				video.addEventListener('webkitplaybacktargetavailabilitychanged', (event) => {
+					switch (event.availability) {
+					case "available":
+						this._visible = true;
+						break;
+					case "not-available":
+						this._visible = false;
+						break;
+					}
+					this.updateClassName();
+				});
+			}
+		}
+	
+		action(button) {
+			let video = paella.player.videoContainer.masterVideo().video;
+			video.webkitShowPlaybackTargetPicker();
+		}
+	
+		updateClassName() {
+			this.button.className = this.getButtonItemClass(true);
+		}
+	
+		getButtonItemClass(selected) {
+			return 'buttonPlugin ' + this.getSubclass() + " " + this.getAlignment() + " " + (this._visible ? "available":"not-available");
+		}
+	}
+});
+
+
+paella.addPlugin(function() {
+
+	return class ArrowSlidesNavigator extends paella.EventDrivenPlugin {
+		getName() { return "es.upv.paella.arrowSlidesNavigatorPlugin"; }
+
+		checkEnabled(onSuccess) {
+			if (!paella.initDelegate.initParams.videoLoader.frameList ||
+				Object.keys(paella.initDelegate.initParams.videoLoader.frameList).length==0 ||
+				paella.player.videoContainer.isMonostream)
+			{
+				onSuccess(false);
+			}
+			else {
+				onSuccess(true);
+			}
+		}
+		
+		setup() {
+			var self = this;
+			this._showArrowsIn = this.config.showArrowsIn || 'slave';
+			this.createOverlay();
+				
+			self._frames = [];		
+			var frames = paella.initDelegate.initParams.videoLoader.frameList;
+			var numFrames;
+			if (frames) {
+				var framesKeys = Object.keys(frames);
+				numFrames = framesKeys.length;
+	
+				framesKeys.map(function(i){return Number(i, 10);})
+				.sort(function(a, b){return a-b;})
+				.forEach(function(key){
+					self._frames.push(frames[key]);
+				});
+			}
+		}
+		
+		createOverlay(){
+			var self = this;
+	
+			let overlayContainer = paella.player.videoContainer.overlayContainer;
+			
+			if (!this.arrows) {
+				this.arrows = document.createElement('div');
+				this.arrows.id = "arrows";
+				this.arrows.style.marginTop = "25%";
+				
+				let arrowNext = document.createElement('div');
+				arrowNext.className = "buttonPlugin arrowSlideNavidator nextButton right icon-next2"
+				this.arrows.appendChild(arrowNext);
+		
+				let arrowPrev = document.createElement('div');
+				arrowPrev.className = "buttonPlugin arrowSlideNavidator prevButton left icon-previous2"
+				this.arrows.appendChild(arrowPrev);
+		
+		
+				$(arrowNext).click(function(e) {
+					self.goNextSlide();
+					e.stopPropagation();
+				});
+				$(arrowPrev).click(function(e) {
+					self.goPrevSlide();
+					e.stopPropagation();
+				});			
+			}
+			
+			if (this.container) {
+				overlayContainer.removeElement(this.container);
+			}
+
+			let rect = null;
+			let element = null;
+			
+			if (!paella.profiles.currentProfile) {
+				return null;
+			}
+
+			this.config.content = this.config.content || ["presentation"];
+			let profilesContent = [];
+			paella.profiles.currentProfile.videos.forEach((profileData) => {
+				profilesContent.push(profileData.content);
+			});
+
+			// Default content, if the "content" setting is not set in the configuration file
+			let selectedContent = profilesContent.length==1 ? profilesContent[0] : (profilesContent.length>1 ? profilesContent[1] : "");
+
+			this.config.content.some((preferredContent) => {
+				if (profilesContent.indexOf(preferredContent)!=-1) {
+					selectedContent = preferredContent;
+					return true;
+				}
+			})
+
+
+			if (!selectedContent) {
+				this.container = overlayContainer.addLayer();
+				this.container.style.marginRight = "0";
+				this.container.style.marginLeft = "0";			
+				this.arrows.style.marginTop = "25%";
+			}
+			else {
+				let videoIndex = 0;
+				paella.player.videoContainer.streamProvider.streams.forEach((stream,index) => {
+					if (stream.type=="video" && selectedContent==stream.content) {
+						videoIndex = index;
+					}
+				});
+				element = document.createElement('div');
+				rect = overlayContainer.getVideoRect(videoIndex);	// content
+				this.container = overlayContainer.addElement(element,rect);
+				this.visible = rect.visible;
+				this.arrows.style.marginTop = "33%";
+			}
+			
+			this.container.appendChild(this.arrows);
+			this.hideArrows();
+		}
+		
+		getCurrentRange() {
+			return new Promise((resolve) => {
+				if (this._frames.length<1) {
+					resolve(null);
+				}
+				else {
+					let trimming = null;
+					let duration = 0;
+					paella.player.videoContainer.duration()
+						.then((d) => {
+							duration = d;
+							return paella.player.videoContainer.trimming();
+						})
+	
+						.then((t) => {
+							trimming = t;
+							return paella.player.videoContainer.currentTime();
+						})
+	
+						.then((currentTime) => {
+							if (!this._frames.some((f1,i,array) => {
+								if (i+1==array.length) { return; }
+								let f0 = i==0 ? f1 : this._frames[i-1];
+								let f2 = this._frames[i+1];
+								let t0 = trimming.enabled ? f0.time - trimming.start : f0.time;
+								let t1 = trimming.enabled ? f1.time - trimming.start : f1.time;
+								let t2 = trimming.enabled ? f2.time - trimming.start : f2.time;
+								if ((t1<currentTime && t2>currentTime) || t1==currentTime) {
+									let range = {
+										prev: t0,
+										next: t2
+									};
+									if (t0<0) {
+										range.prev = t1>0 ? t1 : 0;
+									}
+									resolve(range);
+									return true;
+								}
+							})) {
+								let t0 = this._frames[this._frames.length-2].time;
+								let t1 = this._frames[this._frames.length-1].time;
+								resolve({
+									prev: trimming.enabled ? t0 - trimming.start : t0,
+									next: trimming.enabled ? t1 - trimming.start : t1
+								});
+							}
+						});
+				}
+			})
+		}
+	
+		goNextSlide() {
+			var self = this;
+			let trimming;
+			this.getCurrentRange()
+				.then((range) => {
+					return paella.player.videoContainer.seekToTime(range.next);
+				})
+
+				.then(() => {
+					paella.player.videoContainer.play();
+				});
+		}
+	
+		goPrevSlide() {
+			var self = this;
+			let trimming = null;
+			this.getCurrentRange()
+				.then((range) => {
+					return paella.player.videoContainer.seekToTime(range.prev);
+				})
+				
+				.then(() => {
+					paella.player.videoContainer.play();
+				});
+		}
+		
+		showArrows(){ if (this.visible) $(this.arrows).show(); }
+		hideArrows(){ $(this.arrows).hide(); }
+		
+		getEvents() { return [paella.events.controlBarDidShow, paella.events.controlBarDidHide, paella.events.setComposition]; }
+	
+		onEvent(eventType,params) {
+			var self = this;
+			switch(eventType) {
+				case paella.events.controlBarDidShow:
+					this.showArrows();
+					break;
+				case paella.events.controlBarDidHide:
+					this.hideArrows();
+					break;
+				case paella.events.setComposition:
+					this.createOverlay();
+					break;
+			}
+		}
+	} 
+});
+
+paella.addPlugin(function() {
+	return class AudioSelector extends paella.ButtonPlugin {
+		getAlignment() { return 'right'; }
+		getSubclass() { return "audioSelector"; }
+		getIconClass() { return 'icon-headphone'; }
+		getIndex() { return 2040; }
+		getName() { return "es.upv.paella.audioSelector"; }
+		getDefaultToolTip() { return base.dictionary.translate("Set audio stream"); }
+
+		closeOnMouseOut() { return true; }
+			
+		checkEnabled(onSuccess) {
+			paella.player.videoContainer.getAudioTags()
+				.then((tags) => {
+					this._tags = tags;
+					onSuccess(tags.length>1);
+				});
+		}
+
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+		
+		buildContent(domElement) {
+			this._tags.forEach((tag) => {
+				domElement.appendChild(this.getItemButton(tag));
+			});
+		}
+
+		getItemButton(lang) {
+			var elem = document.createElement('div');
+			let currentTag = paella.player.videoContainer.audioTag;
+			let label = lang.replace(/[-\_]/g," ");
+			elem.className = this.getButtonItemClass(label,lang==currentTag);
+			elem.id = "audioTagSelectorItem_" + lang;
+			elem.innerText = label;
+			elem.data = lang;
+			$(elem).click(function(event) {
+				$('.videoAudioTrackItem').removeClass('selected');
+				$('.videoAudioTrackItem.' + this.data).addClass('selected');
+				paella.player.videoContainer.setAudioTag(this.data);
+			});
+
+			return elem;
+		}
+		
+		setQualityLabel() {
+			var This = this;
+			paella.player.videoContainer.getCurrentQuality()
+				.then(function(q) {
+					This.setText(q.shortLabel());
+				});
+		}
+
+		getButtonItemClass(tag,selected) {
+			return 'videoAudioTrackItem ' + tag  + ((selected) ? ' selected':'');
+		}
+	}
+});
+paella.addPlugin(function() {
+	return class BlackBoard2 extends paella.EventDrivenPlugin {
+		getName() { return "es.upv.paella.blackBoardPlugin"; }
+		getIndex() {return 10; }
+		getAlignment() { return 'right'; }
+		getSubclass() { return "blackBoardButton2"; }
+		getDefaultToolTip() { return base.dictionary.translate("BlackBoard"); }
+	
+		checkEnabled(onSuccess) {
+			this._blackBoardProfile = "s_p_blackboard2";
+			this._blackBoardDIV = null;
+			this._hasImages = null;
+			this._active = false;
+			this._creationTimer = 500;
+			this._zImages = null;
+			this._videoLength = null;
+			this._keys = null;
+			this._currentImage = null;
+			this._next = null;
+			this._prev = null;
+			this._lensDIV = null;
+			this._lensContainer = null;
+			this._lensWidth = null;
+			this._lensHeight = null;
+			this._conImg = null;
+			this._zoom = 250;
+			this._currentZoom = null;
+			this._maxZoom = 500;
+			this._mousePos = null;
+			this._containerRect = null;
+			onSuccess(true);
+		}
+	
+		getEvents() {
+			return[
+				paella.events.setProfile,
+				paella.events.timeUpdate
+			];
+		}
+	
+		onEvent(event, params) {
+			var self = this;
+			switch(event){
+				case paella.events.setProfile:
+					if(params.profileName!=self._blackBoardProfile){
+						if(self._active){
+							self.destroyOverlay();
+							self._active = false;
+						}
+						break;
+					}
+					else{ 
+					
+						if(!self._hasImages){
+							paella.player.setProfile("slide_professor");
+						}
+						if(self._hasImages && !self._active){
+							self.createOverlay();
+							self._active = true;
+						}
+					}
+					break;
+				case paella.events.timeUpdate:
+					if(self._active && self._hasImages) {
+						paella.player.videoContainer.trimming()
+							.then((trimmingData) => {
+								if (trimmingData.enabled) {
+									params.currentTime += trimmingData.start;
+								}
+								
+								self.imageUpdate(event,params);
+							})
+					}
+					break;
+			}
+		}
+	
+		setup() {
+			var self = this;	
+	
+			var n = paella.player.videoContainer.sourceData[0].sources;
+			if(n.hasOwnProperty("image")){
+				self._hasImages = true;
+				//  BRING THE IMAGE ARRAY TO LOCAL
+				self._zImages = {};
+				self._zImages = paella.player.videoContainer.sourceData[0].sources.image[0].frames; // COPY TO LOCAL
+				self._videoLength = paella.player.videoContainer.sourceData[0].sources.image[0].duration; // video duration in frames
+	
+				// SORT KEYS FOR SEARCH CLOSEST
+				self._keys = Object.keys(self._zImages);
+				self._keys = self._keys.sort(function(a, b){
+					a = a.slice(6);
+					b = b.slice(6);
+					return parseInt(a)-parseInt(b); 
+				});
+			}
+			else{
+				self._hasImages = false;
+	
+				if (paella.player.selectedProfile == self._blackBoardProfile) {
+					let defaultprofile = paella.player.config.defaultProfile;
+					paella.player.setProfile(defaultprofile);
+				}
+			}
+	
+	
+			//NEXT
+			this._next = 0;
+			this._prev = 0;
+	
+			if(paella.player.selectedProfile == self._blackBoardProfile){
+				self.createOverlay();
+				self._active = true;
+			}
+	
+			self._mousePos = {};
+	
+	
+			paella.Profiles.loadProfile(self._blackBoardProfile,function(profileData) {
+				self._containerRect = profileData.blackBoardImages;
+			});
+		}
+	
+		createLens() {
+			var self = this;
+			if(self._currentZoom == null) { self._currentZoom = self._zoom; }
+			var lens = document.createElement("div");
+			lens.className = "lensClass";
+	
+			self._lensDIV = lens;
+	
+			var p = $('.conImg').offset();
+			var width = $('.conImg').width();
+			var height = $('.conImg').height();
+			lens.style.width = (width/(self._currentZoom/100))+"px";
+			lens.style.height = (height/(self._currentZoom/100))+"px";
+			self._lensWidth = parseInt(lens.style.width);
+			self._lensHeight = parseInt(lens.style.height);
+			$(self._lensContainer).append(lens);
+			
+			$(self._lensContainer).mousemove(function(event) {	
+				let mouseX = (event.pageX-p.left);
+				let mouseY = (event.pageY-p.top);
+				
+				self._mousePos.x = mouseX;
+				self._mousePos.y = mouseY;
+	
+				let lensTop = (mouseY - self._lensHeight/2);
+				lensTop = (lensTop < 0) ? 0 : lensTop;
+				lensTop = (lensTop > (height-self._lensHeight)) ? (height-self._lensHeight) : lensTop; 
+	
+				let lensLeft = (mouseX - self._lensWidth/2);
+				lensLeft = (lensLeft < 0) ? 0 : lensLeft;
+				lensLeft = (lensLeft > (width-self._lensWidth)) ? (width-self._lensWidth) : lensLeft; 
+	
+				self._lensDIV.style.left = lensLeft + "px";
+				self._lensDIV.style.top = lensTop + "px";
+				if(self._currentZoom != 100){
+					let x = (lensLeft) * 100 / (width-self._lensWidth);
+					let y = (lensTop) * 100 / (height-self._lensHeight);
+					self._blackBoardDIV.style.backgroundPosition = x.toString() + '% ' + y.toString() + '%';
+				}
+					
+				else if(self._currentZoom == 100){
+						var xRelative = mouseX * 100 / width;
+						var yRelative = mouseY * 100 / height;
+						self._blackBoardDIV.style.backgroundPosition = xRelative.toString() + '% ' + yRelative.toString() + '%';
+					}
+	
+				self._blackBoardDIV.style.backgroundSize = self._currentZoom+'%';
+			});
+	
+			$(self._lensContainer).bind('wheel mousewheel', function(e){
+				let delta;
+	
+				if (e.originalEvent.wheelDelta !== undefined) {
+					delta = e.originalEvent.wheelDelta;
+				}
+				else {
+					delta = e.originalEvent.deltaY * -1;
+				}
+	
+				if(delta > 0 && self._currentZoom<self._maxZoom) {
+					self.reBuildLens(10);
+				}
+				else if(self._currentZoom>100){
+					self.reBuildLens(-10);
+				}
+				else if(self._currentZoom==100){
+					self._lensDIV.style.left = 0+"px";
+					self._lensDIV.style.top = 0+"px";
+				}
+				self._blackBoardDIV.style.backgroundSize = (self._currentZoom)+"%";
+			
+			});	
+		}
+	
+		reBuildLens(zoomValue) {
+			var self = this;
+			self._currentZoom += zoomValue;
+			var p = $('.conImg').offset();
+			var width = $('.conImg').width();
+			var height = $('.conImg').height();
+			self._lensDIV.style.width = (width/(self._currentZoom/100))+"px";
+			self._lensDIV.style.height = (height/(self._currentZoom/100))+"px";
+			self._lensWidth = parseInt(self._lensDIV.style.width);
+			self._lensHeight = parseInt(self._lensDIV.style.height);
+			
+			if(self._currentZoom != 100){
+				let mouseX = self._mousePos.x;
+				let mouseY = self._mousePos.y;
+	
+				let lensTop = (mouseY - self._lensHeight/2);
+				lensTop = (lensTop < 0) ? 0 : lensTop;
+				lensTop = (lensTop > (height-self._lensHeight)) ? (height-self._lensHeight) : lensTop; 
+	
+				let lensLeft = (mouseX - self._lensWidth/2);
+				lensLeft = (lensLeft < 0) ? 0 : lensLeft;
+				lensLeft = (lensLeft > (width-self._lensWidth)) ? (width-self._lensWidth) : lensLeft; 
+	
+				self._lensDIV.style.left = lensLeft + "px";
+				self._lensDIV.style.top = lensTop + "px";
+	
+				let x = (lensLeft) * 100 / (width-self._lensWidth);
+				let y = (lensTop) * 100 / (height-self._lensHeight);
+				self._blackBoardDIV.style.backgroundPosition = x.toString() + '% ' + y.toString() + '%';
+			}
+		}
+	
+		destroyLens() {
+			var self=this;
+			if(self._lensDIV){
+				$(self._lensDIV).remove();
+				self._blackBoardDIV.style.backgroundSize = 100+'%';
+				self._blackBoardDIV.style.opacity = 0;
+			}
+			//self._currentZoom = self._zoom;
+		}
+	
+		createOverlay() {
+			var self = this;
+	
+			var blackBoardDiv = document.createElement("div");
+			blackBoardDiv.className = "blackBoardDiv";
+			self._blackBoardDIV = blackBoardDiv;
+			self._blackBoardDIV.style.opacity = 0;
+	
+			var lensContainer = document.createElement("div");
+			lensContainer.className = "lensContainer";
+			self._lensContainer = lensContainer;
+	
+			var conImg = document.createElement("img");
+			conImg.className = "conImg";
+			self._conImg = conImg;
+	
+			if (self._currentImage) {
+				self._conImg.src = self._currentImage;
+				$(self._blackBoardDIV).css('background-image', 'url(' + self._currentImage + ')');
+			}
+	
+			$(lensContainer).append(conImg);
+	
+			$(self._lensContainer).mouseenter(function(){self.createLens(); self._blackBoardDIV.style.opacity = 1.0;});
+			$(self._lensContainer).mouseleave(function(){self.destroyLens();});
+	
+			setTimeout(function(){ // TIMER FOR NICE VIEW
+				let overlayContainer = paella.player.videoContainer.overlayContainer;
+				overlayContainer.addElement(blackBoardDiv, overlayContainer.getVideoRect(0));
+				overlayContainer.addElement(lensContainer, self._containerRect);
+			}, self._creationTimer);
+		}
+	
+		destroyOverlay() {
+			var self = this;
+	
+			if (self._blackBoardDIV) {
+				$(self._blackBoardDIV).remove();
+			}
+			if (self._lensContainer){
+				$(self._lensContainer).remove();
+			}
+		}
+	
+		imageUpdate(event,params) {
+			var self = this;
+			var sec = Math.round(params.currentTime);
+			var src = $(self._blackBoardDIV).css('background-image');
+	
+			if($(self._blackBoardDIV).length>0){
+	
+				if(self._zImages.hasOwnProperty("frame_"+sec)) { // SWAP IMAGES WHEN PLAYING
+					if(src == self._zImages["frame_"+sec]) {
+						return;
+					}
+					else {
+						src = self._zImages["frame_"+sec];
+					}
+				}
+				else if(sec > self._next || sec < self._prev) {
+					src = self.returnSrc(sec); 
+				} // RELOAD IF OUT OF INTERVAL
+				else {
+					return;
+				}
+	
+				//PRELOAD NEXT IMAGE
+				var image = new Image();
+				image.onload = function(){
+					$(self._blackBoardDIV).css('background-image', 'url(' + src + ')'); // UPDATING IMAGE
+				};
+				image.src = src;
+	
+				self._currentImage = src;
+				self._conImg.src = self._currentImage;
+			}
+		}
+	
+		returnSrc(sec) {
+			var prev = 0;
+			for (let i=0; i<this._keys.length; i++){
+				var id = parseInt(this._keys[i].slice(6));
+				var lastId = parseInt(this._keys[(this._keys.length-1)].slice(6));
+				if(sec < id) {  // PREVIOUS IMAGE
+					this._next = id; 
+					this._prev = prev; 
+					this._imageNumber = i-1;
+					return this._zImages["frame_" + prev];	 // return previous and keep next change
+				}
+				else if (sec > lastId && sec < this._videoLength) { // LAST INTERVAL
+					this._next = this._videoLength;
+					this._prev = lastId;
+					return this._zImages["frame_" + prev]; 
+				}
+				else {
+					prev = id;
+				}
+			}
+		}
+	}
+
+});
+
+paella.addPlugin(() => {
+	return class BreaksPlayerPlugin extends paella.EventDrivenPlugin {
+		getName() { return "es.upv.paella.breaksPlayerPlugin"; }
+
+		checkEnabled(onSuccess) {
+			onSuccess(true);
+		}
+
+		setup() {
+			this.breaks = [];
+			this.status = false;
+			this.lastTime = 0;
+			paella.data.read('breaks', { id: paella.player.videoIdentifier }, (data) => {
+				if (data && typeof (data) == 'object' && data.breaks && data.breaks.length > 0) {
+					this.breaks = data.breaks;
+				}
+			});
+		}
+
+		getEvents() { return [ paella.events.timeUpdate ]; }
+
+		onEvent(eventType, params) {
+			paella.player.videoContainer.currentTime(true)
+				.then((currentTime) => {
+					// The event type checking must to be done using the time difference, because
+					// the timeUpdate event may arrive before the seekToTime event
+					let diff = Math.abs(currentTime - this.lastTime);
+					this.checkBreaks(currentTime,diff>=1 ? paella.events.seekToTime : paella.events.timeUpdate);
+					this.lastTime = currentTime;
+				});
+		}
+
+		checkBreaks(currentTime,eventType) {
+			let breakMessage = "";
+			if (this.breaks.some((breakItem) => {
+				if (breakItem.s<=currentTime && breakItem.e>=currentTime) {
+					if (eventType==paella.events.timeUpdate && !this.status) {
+						this.skipTo(breakItem.e);
+					}
+					breakMessage = breakItem.text;
+					return true;
+				}
+			})) {
+				this.showMessage(breakMessage);
+				this.status = true;
+			}
+			else {
+				this.hideMessage();
+				this.status = false;
+			}
+		}
+
+		skipTo(time) {
+			paella.player.videoContainer.trimming()
+				.then((trimming) => {
+					if (trimming.enabled) {
+						paella.player.videoContainer.seekToTime(time + trimming.start);
+					}
+					else {
+						paella.player.videoContainer.seekToTime(time);
+					}
+				})
+		}
+
+		showMessage(text) {
+			if (this.currentText != text) {
+				if (this.messageContainer) {
+					paella.player.videoContainer.overlayContainer.removeElement(this.messageContainer);
+				}
+				var rect = {
+					left: 100,
+					top: 350,
+					width: 1080,
+					height: 40
+				};
+				this.currentText = text;
+				this.messageContainer = paella.player.videoContainer.overlayContainer.addText(paella.dictionary.translate(text), rect);
+				this.messageContainer.className = 'textBreak';
+				this.currentText = text;
+			}
+		}
+
+		hideMessage() {
+			if (this.messageContainer) {
+				paella.player.videoContainer.overlayContainer.removeElement(this.messageContainer);
+				this.messageContainer = null;
+			}
+			this.currentText = "";
+		}
+	}
+});
+
+paella.addPlugin(function() {
+		
+	/////////////////////////////////////////////////
+	// DFXP Parser
+	/////////////////////////////////////////////////
+	return class DFXPParserPlugin extends paella.CaptionParserPlugIn {
+		get ext() { return ["dfxp"] }
+		getName() { return "es.upv.paella.captions.DFXPParserPlugin"; }
+		parse(content, lang, next) {
+			var captions = [];
+			var self = this;
+			var xml = $(content);
+			var g_lang = xml.attr("xml:lang");
+			
+			var lls = xml.find("div");
+			for(var idx=0; idx<lls.length; ++idx) {
+				var ll = $(lls[idx]);
+				var l_lang = ll.attr("xml:lang");
+				if ((l_lang == undefined) || (l_lang == "")){
+					if ((g_lang == undefined) || (g_lang == "")) {
+						base.log.debug("No xml:lang found! Using '" + lang + "' lang instead.");
+						l_lang = lang;
+					}
+					else {
+						l_lang = g_lang;
+					}
+				}
+				//
+				if (l_lang == lang) {
+					ll.find("p").each(function(i, cap){
+						var c = {
+							id: i,
+							begin: self.parseTimeTextToSeg(cap.getAttribute("begin")),
+							end: self.parseTimeTextToSeg(cap.getAttribute("end")),
+							content: $(cap).text().trim()
+						};				
+						captions.push(c);				
+					});
+					break;
+				}
+			}
+			
+			if (captions.length > 0) {
+				next(false, captions);
+			}
+			else {
+				next(true);
+			}
+		}
+
+		parseTimeTextToSeg(ttime){
+				var nseg = 0;
+				var segtime = /^([0-9]*([.,][0-9]*)?)s/.test(ttime);
+				if (segtime){
+						nseg = parseFloat(RegExp.$1);
+				}
+				else {
+						var split = ttime.split(":");
+						var h = parseInt(split[0]);
+						var m = parseInt(split[1]);
+						var s = parseInt(split[2]);
+						nseg = s+(m*60)+(h*60*60);
+				}
+				return nseg;
+		}
+	}
+});
+paella.addPlugin(function() {
+	return class CaptionsPlugin extends paella.ButtonPlugin {
+		getInstanceName() { return "captionsPlugin"; }	// plugin instance will be available in paella.plugins.captionsPlugin
+		getAlignment() { return 'right'; }
+		getSubclass() { return 'captionsPluginButton'; }
+		getIconClass() { return 'icon-captions'; }
+		getName() { return "es.upv.paella.captionsPlugin"; }
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+		getDefaultToolTip() { return base.dictionary.translate("Subtitles"); }
+		getIndex() { return 509; }
+		closeOnMouseOut() { return false; }
+	
+		checkEnabled(onSuccess) {
+			this._searchTimerTime = 1500;
+			this._searchTimer = null;
+			this._pluginButton = null;
+			this._open = 0; // 0 closed, 1 st clic;
+			this._parent = null;
+			this._body = null;
+			this._inner = null;
+			this._bar = null;
+			this._input = null;
+			this._select = null;
+			this._editor = null;
+			this._activeCaptions = null;
+			this._lastSel = null;
+			this._browserLang = null;
+			this._defaultBodyHeight = 280;
+			this._autoScroll = true;
+			this._searchOnCaptions = null;
+
+			onSuccess(true);
+		}
+	
+		showUI(){
+			if(paella.captions.getAvailableLangs().length>=1){
+				super.showUI();
+			}
+		}
+	
+		setup() {
+			var self = this;
+	
+			// HIDE UI IF NO Captions
+			if(!paella.captions.getAvailableLangs().length){
+				paella.plugins.captionsPlugin.hideUI();
+			}
+	
+			//BINDS
+			paella.events.bind(paella.events.captionsEnabled,function(event,params){
+				self.onChangeSelection(params);
+			});
+	
+			paella.events.bind(paella.events.captionsDisabled,function(event,params){
+				self.onChangeSelection(params);
+			});
+	
+			paella.events.bind(paella.events.captionAdded,function(event,params){
+				self.onCaptionAdded(params);
+				paella.plugins.captionsPlugin.showUI();
+			});
+	
+			paella.events.bind(paella.events.timeUpdate, function(event,params){
+				if(self._searchOnCaptions){
+					self.updateCaptionHiglighted(params);				
+				}
+	
+			});
+	
+			paella.events.bind(paella.events.controlBarWillHide, function(evt) {
+				self.cancelHideBar();
+			});
+	
+			self._activeCaptions = paella.captions.getActiveCaptions();
+	
+			self._searchOnCaptions = self.config.searchOnCaptions || false;
+		}
+	
+		cancelHideBar() {
+			var thisClass = this;
+			if(thisClass._open > 0){
+				paella.player.controls.cancelHideBar();
+			}
+		}
+	
+		updateCaptionHiglighted(time) {
+			var thisClass = this;
+			var sel = null;
+			var id = null;
+			if(time){
+				paella.player.videoContainer.trimming()
+					.then((trimming) => {
+						let offset = trimming.enabled ? trimming.start : 0;
+						let c = paella.captions.getActiveCaptions();
+						let caption = c && c.getCaptionAtTime(time.currentTime + offset);
+						let id = caption && caption.id;
+	
+						if(id != null){
+							sel = $( ".bodyInnerContainer[sec-id='"+id+"']" );
+	
+							if(sel != thisClass._lasSel){
+								$(thisClass._lasSel).removeClass("Highlight");
+							}
+	
+							if(sel){
+								$(sel).addClass("Highlight");
+								if(thisClass._autoScroll){
+									thisClass.updateScrollFocus(id);
+								}
+								thisClass._lasSel = sel;
+							}
+						}
+					});
+			}
+		}
+	
+		updateScrollFocus(id) {
+			var thisClass = this;
+			var resul = 0;
+			var t = $(".bodyInnerContainer").slice(0,id);
+			t = t.toArray();
+	
+			t.forEach(function(l){
+				var i = $(l).outerHeight(true);
+				resul += i;
+			});
+	
+			var x = parseInt(resul / 280);
+			$(".captionsBody").scrollTop( x*thisClass._defaultBodyHeight );
+		}
+	
+		onCaptionAdded(obj) {
+			var thisClass = this;
+	
+			var newCap = paella.captions.getCaptions(obj);
+	
+			var defOption = document.createElement("option"); // NO ONE SELECT
+			defOption.text = newCap._lang.txt;
+			defOption.value = obj;
+	
+			thisClass._select.add(defOption);
+		}
+	
+		changeSelection() {
+			var thisClass = this;
+	
+			var sel = $(thisClass._select).val();
+			   if(sel == ""){ 
+				   $(thisClass._body).empty();
+				   paella.captions.setActiveCaptions(sel);
+				   return;
+			   } // BREAK IF NO ONE SELECTED
+			paella.captions.setActiveCaptions(sel);
+			thisClass._activeCaptions = sel;
+			if(thisClass._searchOnCaptions){
+				thisClass.buildBodyContent(paella.captions.getActiveCaptions()._captions,"list");	
+			}
+			thisClass.setButtonHideShow();
+		}
+		
+		onChangeSelection(obj) {
+			var thisClass = this;
+	
+			if(thisClass._activeCaptions != obj){
+				$(thisClass._body).empty();
+				if(obj==undefined){
+					thisClass._select.value = "";
+					$(thisClass._input).prop('disabled', true);
+				}
+				else{
+					$(thisClass._input).prop('disabled', false);
+					thisClass._select.value = obj;
+					if(thisClass._searchOnCaptions){
+						thisClass.buildBodyContent(paella.captions.getActiveCaptions()._captions,"list");
+					}
+				}
+				thisClass._activeCaptions = obj;
+				thisClass.setButtonHideShow();
+			}
+		}
+	
+		action() {
+			var self = this;
+			self._browserLang = base.dictionary.currentLanguage();
+			self._autoScroll = true;
+	
+			switch(self._open){
+				case 0:
+					if(self._browserLang && paella.captions.getActiveCaptions()==undefined){
+						self.selectDefaultBrowserLang(self._browserLang);
+					}
+					self._open = 1;
+					paella.keyManager.enabled = false;
+					break;
+			
+				case 1: 
+					paella.keyManager.enabled = true;
+					self._open = 0;
+					break;
+			}
+		}
+	
+		buildContent(domElement) {
+			var thisClass = this;
+	
+			//captions CONTAINER
+			thisClass._parent = document.createElement('div');
+			thisClass._parent.className = 'captionsPluginContainer';  
+			//captions BAR
+			   thisClass._bar = document.createElement('div');
+			thisClass._bar.className = 'captionsBar';
+			//captions BODY
+			if(thisClass._searchOnCaptions){
+				thisClass._body = document.createElement('div');
+				thisClass._body.className = 'captionsBody';
+				thisClass._parent.appendChild(thisClass._body);
+				 //BODY JQUERY
+				$(thisClass._body).scroll(function(){
+					thisClass._autoScroll = false;
+				});
+	
+				//INPUT
+				thisClass._input = document.createElement("input");
+				thisClass._input.className = "captionsBarInput";
+				thisClass._input.type = "text";
+				thisClass._input.id ="captionsBarInput";
+				thisClass._input.name = "captionsString";
+				thisClass._input.placeholder = base.dictionary.translate("Search captions");
+				thisClass._bar.appendChild(thisClass._input);
+	
+				//INPUT jQuery
+				 $(thisClass._input).change(function(){
+					var text = $(thisClass._input).val();
+					thisClass.doSearch(text);
+				});
+	
+				$(thisClass._input).keyup(function(){
+					var text = $(thisClass._input).val();
+					if(thisClass._searchTimer != null){
+						thisClass._searchTimer.cancel();
+					}
+					thisClass._searchTimer = new base.Timer(function(timer) {
+						thisClass.doSearch(text);
+					}, thisClass._searchTimerTime);			
+				});
+			}
+	
+				
+	
+			//SELECT
+			thisClass._select = document.createElement("select");
+			thisClass._select.className = "captionsSelector";
+			
+			var defOption = document.createElement("option"); // NO ONE SELECT
+			defOption.text = base.dictionary.translate("None");
+			defOption.value = "";
+			thisClass._select.add(defOption);
+	
+			paella.captions.getAvailableLangs().forEach(function(l){
+				var option = document.createElement("option");
+				option.text = l.lang.txt;
+				option.value = l.id;
+				thisClass._select.add(option);
+			});
+	
+			 thisClass._bar.appendChild(thisClass._select);
+			 thisClass._parent.appendChild( thisClass._bar);
+	
+			//jQuery SELECT
+			$(thisClass._select).change(function(){
+			   thisClass.changeSelection();
+			});
+	
+			//BUTTON EDITOR
+			thisClass._editor = document.createElement("button");
+			thisClass._editor.className = "editorButton";
+			thisClass._editor.innerText = "";
+			thisClass._bar.appendChild(thisClass._editor);
+	
+			//BUTTON jQuery
+			$(thisClass._editor).prop("disabled",true);
+			$(thisClass._editor).click(function(){
+				var c = paella.captions.getActiveCaptions();        	
+				paella.userTracking.log("paella:caption:edit", {id: c._captionsProvider + ':' + c._id, lang: c._lang});
+				c.goToEdit();
+			});
+	
+			domElement.appendChild(thisClass._parent);
+		}
+	
+		selectDefaultBrowserLang(code) {
+			var thisClass = this;
+			var provider = null;
+			paella.captions.getAvailableLangs().forEach(function(l){
+				if(l.lang.code == code){ provider = l.id; }
+			});
+			
+			if(provider){
+				paella.captions.setActiveCaptions(provider);
+			}
+			/*
+			else{
+				$(thisClass._input).prop("disabled",true);
+			}
+			*/
+	
+		}
+	
+		doSearch(text) {
+			var thisClass = this;
+			var c = paella.captions.getActiveCaptions();
+			if(c){
+				if(text==""){thisClass.buildBodyContent(paella.captions.getActiveCaptions()._captions,"list");}
+				else{
+					c.search(text,function(err,resul){
+						if(!err){
+							thisClass.buildBodyContent(resul,"search");
+						}
+					});
+				}
+			}
+		}
+	
+		setButtonHideShow() {
+			var thisClass = this;
+			var editor = $('.editorButton');
+			var c = paella.captions.getActiveCaptions();
+			var res = null;
+			   if(c!=null){
+				   $(thisClass._select).width('39%');
+				
+				c.canEdit(function(err, r){res=r;});
+				if(res){
+					$(editor).prop("disabled",false);
+					$(editor).show();
+				}
+				else{
+					$(editor).prop("disabled",true);
+					$(editor).hide();
+					$(thisClass._select).width('47%');
+				}
+			}
+			else {
+				$(editor).prop("disabled",true);
+				$(editor).hide();
+				$(thisClass._select).width('47%');
+			}
+
+			if(!thisClass._searchOnCaptions){
+				if(res){$(thisClass._select).width('92%');}
+				else{$(thisClass._select).width('100%');}
+			 }
+		}
+
+		buildBodyContent(obj,type) {
+			paella.player.videoContainer.trimming()
+				.then((trimming)=>{
+					var thisClass = this;
+					$(thisClass._body).empty();
+					obj.forEach(function(l){
+						if(trimming.enabled && (l.end<trimming.start || l.begin>trimming.end)){
+							return;
+						}
+						thisClass._inner = document.createElement('div');
+						thisClass._inner.className = 'bodyInnerContainer';
+						thisClass._inner.innerText = l.content;
+						if(type=="list"){
+							thisClass._inner.setAttribute('sec-begin',l.begin);
+							thisClass._inner.setAttribute('sec-end',l.end);
+							thisClass._inner.setAttribute('sec-id',l.id);
+							thisClass._autoScroll = true;
+						}
+						if(type=="search"){
+							thisClass._inner.setAttribute('sec-begin',l.time);
+						}
+						thisClass._body.appendChild(thisClass._inner);
+	
+						//JQUERY
+						$(thisClass._inner).hover(
+							function(){ 
+								$(this).css('background-color','rgba(250, 161, 102, 0.5)');	           		
+							},
+							function(){ 
+								$(this).removeAttr('style');
+							}
+						);
+						$(thisClass._inner).click(function(){ 
+								var secBegin = $(this).attr("sec-begin");
+								paella.player.videoContainer.trimming()
+									.then((trimming) => {
+										let offset = trimming.enabled ? trimming.start : 0;
+										paella.player.videoContainer.seekToTime(secBegin - offset + 0.1);
+									});
+						});
+					});
+			});
+		}
+	}
+	
+});
+paella.addPlugin(function() {
+	return class CaptionsOnScreen extends paella.EventDrivenPlugin {
+		
+		checkEnabled(onSuccess) {
+			this.containerId = 'paella_plugin_CaptionsOnScreen';
+			this.container = null;
+			this.innerContainer = null;
+			this.top = null;
+			this.actualPos = null;
+			this.lastEvent = null;
+			this.controlsPlayback = null;
+			this.captions = false;
+			this.captionProvider = null;
+			onSuccess(!paella.player.isLiveStream());
+		}
+
+		setup() {
+		}
+
+		getEvents() {
+			return [paella.events.controlBarDidHide, paella.events.resize, paella.events.controlBarDidShow, paella.events.captionsEnabled, paella.events.captionsDisabled ,paella.events.timeUpdate];
+		}
+
+		onEvent(eventType,params) {
+			var thisClass = this;
+
+			switch (eventType) {
+				case paella.events.controlBarDidHide:
+					if(thisClass.lastEvent == eventType || thisClass.captions==false)break;
+					thisClass.moveCaptionsOverlay("down");
+					break;
+				case paella.events.resize:
+					if(thisClass.captions==false)break;
+					if(paella.player.controls.isHidden()){
+						thisClass.moveCaptionsOverlay("down");
+					}
+					else {
+						thisClass.moveCaptionsOverlay("top");
+					}
+					break;
+
+				case paella.events.controlBarDidShow:
+					if(thisClass.lastEvent == eventType || thisClass.captions==false)break;
+					thisClass.moveCaptionsOverlay("top");
+					break;
+				case paella.events.captionsEnabled:
+					thisClass.buildContent(params);
+					thisClass.captions = true;
+					if(paella.player.controls.isHidden()){
+						thisClass.moveCaptionsOverlay("down");
+					}
+					else {
+						thisClass.moveCaptionsOverlay("top");
+					}
+					break;
+				case paella.events.captionsDisabled:
+					thisClass.hideContent();
+					thisClass.captions = false;
+					break;
+				case paella.events.timeUpdate:
+					if(thisClass.captions){ thisClass.updateCaptions(params); }
+					break;
+
+			}
+			thisClass.lastEvent = eventType; 
+		}
+
+		buildContent(provider){
+			var thisClass = this;
+			thisClass.captionProvider = provider;
+
+			if(thisClass.container==null){ // PARENT
+				thisClass.container = document.createElement('div');
+				thisClass.container.className = "CaptionsOnScreen";
+				thisClass.container.id = thisClass.containerId;
+
+				thisClass.innerContainer = document.createElement('div');
+				thisClass.innerContainer.className = "CaptionsOnScreenInner";
+
+				thisClass.container.appendChild(thisClass.innerContainer);			
+
+				if(thisClass.controlsPlayback==null) thisClass.controlsPlayback = $('#playerContainer_controls_playback');
+
+
+				paella.player.videoContainer.domElement.appendChild(thisClass.container);
+			}
+			else {
+				$(thisClass.container).show();
+			}
+		}
+
+		updateCaptions(time){
+			if (this.captions) {
+				paella.player.videoContainer.trimming()
+					.then((trimming) => {
+						let offset = trimming.enabled ? trimming.start : 0;
+						var c = paella.captions.getActiveCaptions();
+						var caption = c.getCaptionAtTime(time.currentTime + offset);
+						if(caption){
+							$(this.container).show();
+							this.innerContainer.innerText = caption.content;
+							this.moveCaptionsOverlay("auto");
+
+						}
+						else { 
+							this.innerContainer.innerText = ""; 
+							this.hideContent();
+						}
+					});
+			}
+		}
+		
+		hideContent(){
+			var thisClass = this;
+
+			$(thisClass.container).hide();
+		}
+	
+		moveCaptionsOverlay(pos){
+			var thisClass = this;
+			var marginbottom = 10;
+
+			if(thisClass.controlsPlayback==null) thisClass.controlsPlayback = $('#playerContainer_controls_playback');
+
+			if(pos=="auto" || pos==undefined) {
+				pos = paella.player.controls.isHidden() ? "down" : "top";
+			}
+			if(pos=="down"){
+				var t = thisClass.container.offsetHeight;
+				t -= thisClass.innerContainer.offsetHeight + marginbottom;
+				thisClass.innerContainer.style.bottom = (0 - t) + "px";
+			}
+			if(pos=="top") {
+				var t2 = thisClass.controlsPlayback.offset().top;
+				t2 -= thisClass.innerContainer.offsetHeight + marginbottom;
+				thisClass.innerContainer.style.bottom = (0-t2)+"px";
+			}
+		}
+
+		getIndex() {
+			return 1050;
+		}
+
+		getName() {
+			return "es.upv.paella.overlayCaptionsPlugin";
+		}
+	}
+});
+
+
+
+(() => {
+
+	function buildChromaVideoCanvas(stream, canvas) {
+		class ChromaVideoCanvas extends bg.app.WindowController {
+	
+			constructor(stream) {
+				super();
+				this.stream = stream;
+				this._chroma = bg.Color.White();
+				this._crop = new bg.Vector4(0.3,0.01,0.3,0.01);
+				this._transform = bg.Matrix4.Identity().translate(0.6,-0.04,0);
+				this._bias = 0.01;
+			}
+	
+			get chroma() { return this._chroma; }
+			get bias() { return this._bias; }
+			get crop() { return this._crop; }
+			get transform() { return this._transform; }
+			set chroma(c) { this._chroma = c; }
+			set bias(b) { this._bias = b; }
+			set crop(c) { this._crop = c; }
+			set transform(t) { this._transform = t; }
+	
+			get video() {
+				return this.texture ? this.texture.video : null;
+			}
+	
+			loaded() {
+				return new Promise((resolve) => {
+					let checkLoaded = () => {
+						if (this.video) {
+							resolve(this);
+						}
+						else {
+							setTimeout(checkLoaded,100);
+						}
+					}
+					checkLoaded();
+				});
+			}
+	
+			buildShape() {
+				this.plist = new bg.base.PolyList(this.gl);
+				
+				this.plist.vertex = [ -1,-1,0, 1,-1,0, 1,1,0, -1,1,0, ];
+				this.plist.texCoord0 = [ 0,0, 1,0, 1,1, 0,1 ];
+				this.plist.index = [ 0, 1, 2, 2, 3, 0 ];
+				
+				this.plist.build();
+			}
+			
+			buildShader() {
+				let vshader = `
+						attribute vec4 position;
+						attribute vec2 texCoord;
+						uniform mat4 inTransform;
+						varying vec2 vTexCoord;
+						void main() {
+							gl_Position = inTransform * position;
+							vTexCoord = texCoord;
+						}
+					`;
+				let fshader = `
+						precision mediump float;
+						varying vec2 vTexCoord;
+						uniform sampler2D inTexture;
+						uniform vec4 inChroma;
+						uniform float inBias;
+						uniform vec4 inCrop;
+						void main() {
+							vec4 result = texture2D(inTexture,vTexCoord);
+							
+							if ((result.r>=inChroma.r-inBias && result.r<=inChroma.r+inBias &&
+								result.g>=inChroma.g-inBias && result.g<=inChroma.g+inBias &&
+								result.b>=inChroma.b-inBias && result.b<=inChroma.b+inBias) ||
+								(vTexCoord.x<inCrop.x || vTexCoord.x>inCrop.z || vTexCoord.y<inCrop.w || vTexCoord.y>inCrop.y)
+							)
+							{
+								discard;
+							}
+							else {
+								gl_FragColor = result;
+							}
+						}
+					`;
+				
+				this.shader = new bg.base.Shader(this.gl);
+				this.shader.addShaderSource(bg.base.ShaderType.VERTEX, vshader);
+	
+				this.shader.addShaderSource(bg.base.ShaderType.FRAGMENT, fshader);
+	
+				status = this.shader.link();
+				if (!this.shader.status) {
+					console.log(this.shader.compileError);
+					console.log(this.shader.linkError);
+				}
+				
+				this.shader.initVars(["position","texCoord"],["inTransform","inTexture","inChroma","inBias","inCrop"]);
+			}
+			
+			init() {
+				// Use WebGL V1 engine
+				bg.Engine.Set(new bg.webgl1.Engine(this.gl));
+	
+				bg.base.Loader.RegisterPlugin(new bg.base.VideoTextureLoaderPlugin());
+				
+				this.buildShape();
+				this.buildShader();
+						
+				this.pipeline = new bg.base.Pipeline(this.gl);
+				bg.base.Pipeline.SetCurrent(this.pipeline);
+				this.pipeline.clearColor = bg.Color.Transparent();
+	
+				bg.base.Loader.Load(this.gl,this.stream.src)
+					.then((texture) => {
+						this.texture = texture;
+					});
+			}
+	
+			frame(delta) {
+				if (this.texture) {
+					this.texture.update();
+				}
+			}
+			
+			display() {
+				this.pipeline.clearBuffers(bg.base.ClearBuffers.COLOR | bg.base.ClearBuffers.DEPTH);
+				
+				if (this.texture) {
+					this.shader.setActive();
+					this.shader.setInputBuffer("position",this.plist.vertexBuffer,3);
+					this.shader.setInputBuffer("texCoord",this.plist.texCoord0Buffer,2);
+					this.shader.setMatrix4("inTransform",this.transform);
+					this.shader.setTexture("inTexture",this.texture || bg.base.TextureCache.WhiteTexture(this.gl),bg.base.TextureUnit.TEXTURE_0);
+					this.shader.setVector4("inChroma",this.chroma);
+					this.shader.setValueFloat("inBias",this.bias);
+					this.shader.setVector4("inCrop",new bg.Vector4(this.crop.x, 1.0 - this.crop.y, 1.0 - this.crop.z, this.crop.w));
+					this.plist.draw();
+					
+					this.shader.disableInputBuffer("position");
+					this.shader.disableInputBuffer("texCoord");
+					this.shader.clearActive();
+				}
+			}
+			
+			reshape(width,height) {
+				let canvas = this.canvas.domElement;
+				canvas.width = width;
+				canvas.height = height;
+				this.pipeline.viewport = new bg.Viewport(0,0,width,height);
+			}
+			
+			mouseMove(evt) { this.postRedisplay(); }
+		}
+	
+		let controller = new ChromaVideoCanvas(stream);
+		let mainLoop = bg.app.MainLoop.singleton;
+	
+		mainLoop.updateMode = bg.app.FrameUpdate.AUTO;
+		mainLoop.canvas = canvas;
+		mainLoop.run(controller);
+	
+		return controller.loaded();
+	}
+	
+	class ChromaVideo extends paella.VideoElementBase {
+		
+		constructor(id,stream,left,top,width,height,streamName) {
+			super(id,stream,'canvas',left,top,width,height);
+
+			this._posterFrame = null;
+			this._currentQuality = null;
+			this._autoplay = false;
+			this._streamName = null;
+			this._streamName = streamName || 'chroma';
+			var This = this;
+	
+			if (this._stream.sources[this._streamName]) {
+				this._stream.sources[this._streamName].sort(function (a, b) {
+					return a.res.h - b.res.h;
+				});
+			}
+	
+			this.video = null;
+	
+			function onProgress(event) {
+				if (!This._ready && This.video.readyState==4) {
+					This._ready = true;
+					if (This._initialCurrentTipe!==undefined) {
+						This.video.currentTime = This._initialCurrentTime;
+						delete This._initialCurrentTime;
+					}
+					This._callReadyEvent();
+				}
+			}
+	
+			function evtCallback(event) { onProgress.apply(This,event); }
+	
+			function onUpdateSize() {
+				if (This.canvasController) {
+					let canvas = This.canvasController.canvas.domElement;
+					This.canvasController.reshape($(canvas).width(),$(canvas).height());
+				}
+			}
+	
+			let timer = new paella.Timer(function(timer) {
+				onUpdateSize();
+			},500);
+			timer.repeat = true;
+		}
+	
+		defaultProfile() {
+			return 'chroma';
+		}
+	
+		_setVideoElem(video) {
+			$(this.video).bind('progress', evtCallback);
+			$(this.video).bind('loadstart',evtCallback);
+			$(this.video).bind('loadedmetadata',evtCallback);
+			$(this.video).bind('canplay',evtCallback);
+			$(this.video).bind('oncanplay',evtCallback);
+		}
+	
+		_loadDeps() {
+			return new Promise((resolve,reject) => {
+				if (!window.$paella_bg2e) {
+					paella.require(paella.baseUrl + 'javascript/bg2e-es2015.js')
+						.then(() => {
+							window.$paella_bg2e = bg;
+							resolve(window.$paella_bg2e);
+						})
+						.catch((err) => {
+							console.error(err.message);
+							reject();
+						});
+				}
+				else {
+					defer.resolve(window.$paella_bg2e);
+				}
+			});
+		}
+	
+		_deferredAction(action) {
+			return new Promise((resolve,reject) => {
+				if (this.video) {
+					resolve(action());
+				}
+				else {
+					$(this.video).bind('canplay',() => {
+						this._ready = true;
+						resolve(action());
+					});
+				}
+			});
+		}
+	
+		_getQualityObject(index, s) {
+			return {
+				index: index,
+				res: s.res,
+				src: s.src,
+				toString:function() { return this.res.w + "x" + this.res.h; },
+				shortLabel:function() { return this.res.h + "p"; },
+				compare:function(q2) { return this.res.w*this.res.h - q2.res.w*q2.res.h; }
+			};
+		}
+	
+		// Initialization functions
+		
+		getVideoData() {
+			var This = this;
+			return new Promise((resolve,reject) => {
+				this._deferredAction(() => {
+					resolve({
+						duration: This.video.duration,
+						currentTime: This.video.currentTime,
+						volume: This.video.volume,
+						paused: This.video.paused,
+						ended: This.video.ended,
+						res: {
+							w: This.video.videoWidth,
+							h: This.video.videoHeight
+						}
+					});
+				});
+			});
+		}
+		
+		setPosterFrame(url) {
+			this._posterFrame = url;
+		}
+	
+		setAutoplay(auto) {
+			this._autoplay = auto;
+			if (auto && this.video) {
+				this.video.setAttribute("autoplay",auto);
+			}
+		}
+	
+		load() {
+			var This = this;
+			return new Promise((resolve,reject) => {
+				this._loadDeps() 
+					.then(() => {
+						var sources = this._stream.sources[this._streamName];
+						if (this._currentQuality===null && this._videoQualityStrategy) {
+							this._currentQuality = this._videoQualityStrategy.getQualityIndex(sources);
+						}
+	
+						var stream = this._currentQuality<sources.length ? sources[this._currentQuality]:null;
+						this.video = null;
+						this.domElement.parentNode.style.backgroundColor = "transparent";
+						if (stream) {
+							this.canvasController = null;
+							buildChromaVideoCanvas(stream,this.domElement)
+								.then((canvasController) => {
+									this.canvasController = canvasController;
+									this.video = canvasController.video;
+									this.video.pause();
+									if (stream.crop) {
+										this.canvasController.crop = new bg.Vector4(stream.crop.left,stream.crop.top,stream.crop.right,stream.crop.bottom);
+									}
+									if (stream.displacement) {
+										this.canvasController.transform = bg.Matrix4.Translation(stream.displacement.x, stream.displacement.y, 0);
+									}
+									if (stream.chromaColor) {
+										this.canvasController.chroma = new bg.Color(stream.chromaColor[0],
+																						 stream.chromaColor[1],
+																						 stream.chromaColor[2],
+																						 stream.chromaColor[3])
+									}
+									if (stream.chromaBias) {
+										this.canvasController.bias = stream.chromaBias;
+									}
+									resolve(stream);
+								});
+						}
+						else {
+							reject(new Error("Could not load video: invalid quality stream index"));
+						}
+					});
+			});
+		}
+	
+		getQualities() {
+			return new Promise((resolve,reject) => {
+				setTimeout(() => {
+					var result = [];
+					var sources = this._stream.sources[this._streamName];
+					var index = -1;
+					sources.forEach((s) => {
+						index++;
+						result.push(this._getQualityObject(index,s));
+					});
+					resolve(result);
+				},10);
+			});
+		}
+	
+		setQuality(index) {
+			return new Promise((resolve) => {
+				var paused = this.video.paused;
+				var sources = this._stream.sources[this._streamName];
+				this._currentQuality = index<sources.length ? index:0;
+				var currentTime = this.video.currentTime;
+				this.freeze()
+	
+					.then(() => {
+						this._ready = false;
+						return this.load();
+					})
+	
+					.then(() => {
+						if (!paused) {
+							this.play();
+						}
+						$(this.video).on('seeked',() => {
+							this.unFreeze();
+							resolve();
+							$(this.video).off('seeked');
+						});
+						this.video.currentTime = currentTime;
+					});
+			});
+		}
+	
+		getCurrentQuality() {
+			return new Promise((resolve) => {	
+				resolve(this._getQualityObject(this._currentQuality,this._stream.sources[this._streamName][this._currentQuality]));
+			});
+		}
+	
+		play() {
+			return this._deferredAction(() => {
+				bg.app.MainLoop.singleton.updateMode = bg.app.FrameUpdate.AUTO;
+				this.video.play();
+			});
+		}
+	
+		pause() {
+			return this._deferredAction(() => {
+				bg.app.MainLoop.singleton.updateMode = bg.app.FrameUpdate.MANUAL;
+				this.video.pause();
+			});
+		}
+	
+		isPaused() {
+			return this._deferredAction(() => {
+				return this.video.paused;
+			});
+		}
+	
+		duration() {
+			return this._deferredAction(() => {
+				return this.video.duration;
+			});
+		}
+	
+		setCurrentTime(time) {
+			return this._deferredAction(() => {
+				this.video.currentTime = time;
+				$(this.video).on('seeked',() => {
+					this.canvasController.postRedisplay();
+					$(this.video).off('seeked');
+				});
+			});
+		}
+	
+		currentTime() {
+			return this._deferredAction(() => {
+				return this.video.currentTime;
+			});
+		}
+	
+		setVolume(volume) {
+			return this._deferredAction(() => {
+				this.video.volume = volume;
+			});
+		}
+	
+		volume() {
+			return this._deferredAction(() => {
+				return this.video.volume;
+			});
+		}
+	
+		setPlaybackRate(rate) {
+			return this._deferredAction(() => {
+				this.video.playbackRate = rate;
+			});
+		}
+	
+		playbackRate() {
+			return this._deferredAction(() => {
+				return this.video.playbackRate;
+			});
+		}
+	
+		goFullScreen() {
+			return this._deferredAction(() => {
+				var elem = this.video;
+				if (elem.requestFullscreen) {
+					elem.requestFullscreen();
+				}
+				else if (elem.msRequestFullscreen) {
+					elem.msRequestFullscreen();
+				}
+				else if (elem.mozRequestFullScreen) {
+					elem.mozRequestFullScreen();
+				}
+				else if (elem.webkitEnterFullscreen) {
+					elem.webkitEnterFullscreen();
+				}
+			});
+		}
+	
+		unFreeze(){
+			return this._deferredAction(() => {
+				var c = document.getElementById(this.video.className + "canvas");
+				$(c).remove();
+			});
+		}
+		
+		freeze(){
+			var This = this;
+			return this._deferredAction(function() {});
+		}
+	
+		unload() {
+			this._callUnloadEvent();
+			return paella_DeferredNotImplemented();
+		}
+	
+		getDimensions() {
+			return paella_DeferredNotImplemented();
+		}
+	}
+	
+	paella.ChromaVideo = ChromaVideo;
+	
+	class ChromaVideoFactory extends paella.VideoFactory {
+		isStreamCompatible(streamData) {
+			try {
+				if (paella.ChromaVideo._loaded) {
+					return false;
+				}
+				if (paella.videoFactories.Html5VideoFactory.s_instances>0 && 
+					base.userAgent.system.iOS)
+				{
+					return false;
+				}
+				for (var key in streamData.sources) {
+					if (key=='chroma') return true;
+				}
+			}
+			catch (e) {}
+			return false;
+		}
+	
+		getVideoObject(id, streamData, rect) {
+			paella.ChromaVideo._loaded = true;
+			++paella.videoFactories.Html5VideoFactory.s_instances;
+			return new paella.ChromaVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+		}
+	}
+
+	paella.videoFactories.ChromaVideoFactory = ChromaVideoFactory;
+
+})();
+
+/*
+paella.addPlugin(function() {
+	return class CommentsPlugin extends paella.TabBarPlugin {
+		get divPublishComment() { return this._divPublishComment; }
+		set divPublishComment(v) { this._divPublishComment = v; }
+		get divComments() { return this._divComments; }
+		set divComments(v) { this._divComments = v; }
+		get publishCommentTextArea() { return this._publishCommentTextArea; }
+		set publishCommentTextArea(v) { this._publishCommentTextArea = v; }
+		get publishCommentButtons() { return this._publishCommentButtons; }
+		set publishCommentButtons(v) { this._publishCommentButtons = v; }
+		get canPublishAComment() { return this._canPublishAComment; }
+		set canPublishAComment(v) { this._canPublishAComment = v; }
+		get comments() { return this._comments; }
+		set comments(v) { this._comments = v; }
+		get commentsTree() { return this._commentsTree; }
+		set commentsTree(v) { this._commentsTree = v; }
+		get domElement() { return this._domElement; }
+		set domElement(v) { this._domElement = v; }
+	
+		getSubclass() { return "showCommentsTabBar"; }
+		getName() { return "es.upv.paella.commentsPlugin"; }
+		getTabName() { return base.dictionary.translate("Comments"); }
+		checkEnabled(onSuccess) { onSuccess(true); }
+		getIndex() { return 40; }
+		getDefaultToolTip() { return base.dictionary.translate("Comments"); }
+						
+		action(tab) {
+			this.loadContent();
+		}
+				
+		buildContent(domElement) {
+			this.domElement = domElement;
+			this.canPublishAComment = paella.initDelegate.initParams.accessControl.permissions.canWrite;
+			this.loadContent();
+		}
+					
+		loadContent() {
+			this.divRoot = this.domElement;
+			this.divRoot.innerText ="";
+			
+			this.divPublishComment = document.createElement('div');
+			this.divPublishComment.className = 'CommentPlugin_Publish';
+			this.divPublishComment.id = 'CommentPlugin_Publish';
+
+			this.divComments = document.createElement('div'); 
+			this.divComments.className = 'CommentPlugin_Comments';
+			this.divComments.id = 'CommentPlugin_Comments';
+
+			if(this.canPublishAComment){
+				this.divRoot.appendChild(this.divPublishComment);
+				this.createPublishComment();
+			}
+			this.divRoot.appendChild(this.divComments);
+			
+			this.reloadComments();
+		}
+		
+		//Allows the user to write a new comment
+		createPublishComment() {
+			var thisClass = this;
+			var rootID = this.divPublishComment.id+"_entry";
+			
+			var divEntry;
+			divEntry = document.createElement('div');
+			divEntry.id = rootID;
+			divEntry.className = 'comments_entry';
+			
+			var divSil;
+			divSil = document.createElement('img');
+			divSil.className = "comments_entry_silhouette";
+			divSil.style.width = "48px";
+			divSil.src = paella.initDelegate.initParams.accessControl.userData.avatar;
+			divSil.id = rootID+"_silhouette";
+			divEntry.appendChild(divSil);
+			
+			var divTextAreaContainer;
+			divTextAreaContainer = document.createElement('div');
+			divTextAreaContainer.className = "comments_entry_container";
+			divTextAreaContainer.id = rootID+"_textarea_container";
+			divEntry.appendChild(divTextAreaContainer);
+			
+			this.publishCommentTextArea = document.createElement('textarea');
+			this.publishCommentTextArea.id = rootID+"_textarea";
+			this.publishCommentTextArea.onclick = function(){paella.keyManager.enabled = false;};
+			this.publishCommentTextArea.onblur = function(){paella.keyManager.enabled = true;};
+			divTextAreaContainer.appendChild(this.publishCommentTextArea);
+			
+			this.publishCommentButtons = document.createElement('div');
+			this.publishCommentButtons.id = rootID+"_buttons_area";
+			divTextAreaContainer.appendChild(this.publishCommentButtons);
+			
+			var btnAddComment;
+			btnAddComment = document.createElement('button');
+			btnAddComment.id = rootID+"_btnAddComment";
+			btnAddComment.className = "publish";
+			btnAddComment.onclick = function(){
+				var txtValue = thisClass.publishCommentTextArea.value;
+				if (txtValue.replace(/\s/g,'') != "") {
+					thisClass.addComment();
+				}
+			};
+			btnAddComment.innerText = base.dictionary.translate("Publish");
+			
+			this.publishCommentButtons.appendChild(btnAddComment);
+			
+			divTextAreaContainer.commentsTextArea = this.publishCommentTextArea;
+			divTextAreaContainer.commentsBtnAddComment = btnAddComment;
+			divTextAreaContainer.commentsBtnAddCommentToInstant = this.btnAddCommentToInstant;
+			
+			this.divPublishComment.appendChild(divEntry);
+		}
+			
+		addComment() {
+			var thisClass = this;
+			var txtValue = paella.AntiXSS.htmlEscape(thisClass.publishCommentTextArea.value);
+			//var txtValue = thisClass.publishCommentTextArea.value;
+			var now = new Date();
+			
+			this.comments.push({
+				id: base.uuid(),
+				userName:paella.initDelegate.initParams.accessControl.userData.name,
+				mode: "normal",
+				value: txtValue,
+				created: now
+			});
+
+			var data = {
+				allComments: this.comments
+			};
+			
+			paella.data.write('comments',{id:paella.initDelegate.getId()},data,function(response,status){
+				if (status) {thisClass.loadContent();}
+			});
+		}
+		
+		addReply(annotationID, domNodeId) {
+			var thisClass = this;
+			var textArea = document.getElementById(domNodeId);
+			var txtValue = paella.AntiXSS.htmlEscape(textArea.value);
+			var now = new Date();
+			
+			paella.keyManager.enabled = true;
+
+			this.comments.push({
+				id: base.uuid(),
+				userName:paella.initDelegate.initParams.accessControl.userData.name,
+				mode: "reply",
+				parent: annotationID,
+				value: txtValue,
+				created: now
+			});
+
+			var data = {
+				allComments: this.comments
+			};
+			
+			paella.data.write('comments',{id:paella.initDelegate.getId()},data,function(response,status){
+				if (status) thisClass.reloadComments();
+			});
+		}
+		
+		reloadComments() {     
+			var thisClass = this;
+			thisClass.commentsTree = [];
+			thisClass.comments = [];
+			this.divComments.innerText ="";
+			
+			paella.data.read('comments',{id:paella.initDelegate.getId()},function(data,status) {
+				var i;
+				var valueText;
+				var comment;
+				if (data && typeof(data)=='object' && data.allComments && data.allComments.length>0) {
+					thisClass.comments = data.allComments;
+					var tempDict = {};
+
+					// obtain normal comments  
+					for (i =0; i < data.allComments.length; ++i ) {
+						valueText = data.allComments[i].value;
+													
+						if (data.allComments[i].mode !== "reply") { 
+							comment = {};
+							comment["id"] = data.allComments[i].id;
+							comment["userName"] = data.allComments[i].userName;
+							comment["mode"] = data.allComments[i].mode;
+							comment["value"] = valueText;
+							comment["created"] = data.allComments[i].created;
+							comment["replies"] = [];    
+
+							thisClass.commentsTree.push(comment); 
+							tempDict[comment["id"]] = thisClass.commentsTree.length - 1;
+						}
+					}
+				
+					// obtain reply comments
+					for (i =0; i < data.allComments.length; ++i ){
+						valueText = data.allComments[i].value;
+
+						if (data.allComments[i].mode === "reply") { 
+							comment = {};
+							comment["id"] = data.allComments[i].id;
+							comment["userName"] = data.allComments[i].userName;
+							comment["mode"] = data.allComments[i].mode;
+							comment["value"] = valueText;
+							comment["created"] = data.allComments[i].created;
+
+							var index = tempDict[data.allComments[i].parent];
+							thisClass.commentsTree[index]["replies"].push(comment);
+						}
+					}
+					thisClass.displayComments();
+				} 
+			});
+		}
+		
+		displayComments() {
+			var thisClass = this;
+			for (var i =0; i < thisClass.commentsTree.length; ++i ){
+				var comment = thisClass.commentsTree[i];
+				var e = thisClass.createACommentEntry(comment);
+				thisClass.divComments.appendChild(e);
+			} 
+		}
+		
+		createACommentEntry(comment) {
+			var thisClass = this;
+			var rootID = this.divPublishComment.id+"_entry"+comment["id"];
+			var users;
+			
+			var divEntry;
+			divEntry = document.createElement('div');
+			divEntry.id = rootID;
+			divEntry.className = "comments_entry";
+			
+			var divSil;
+			divSil = document.createElement('img');
+			divSil.className = "comments_entry_silhouette";
+			divSil.id = rootID+"_silhouette";
+
+			divEntry.appendChild(divSil);
+			
+			var divCommentContainer;
+			divCommentContainer = document.createElement('div');
+			divCommentContainer.className = "comments_entry_container";
+			divCommentContainer.id = rootID+"_comment_container";
+			divEntry.appendChild(divCommentContainer);
+			
+			var divCommentMetadata;
+			divCommentMetadata = document.createElement('div');
+			divCommentMetadata.id = rootID+"_comment_metadata"; 
+			divCommentContainer.appendChild(divCommentMetadata);
+			
+			
+			
+	//		var datePublish = comment["created"];
+			var datePublish = "";
+			if (comment["created"]) {
+				var dateToday=new Date();
+				var dateComment = paella.utils.timeParse.matterhornTextDateToDate(comment["created"]);			
+				datePublish = paella.utils.timeParse.secondsToText((dateToday.getTime()-dateComment.getTime())/1000);
+			}
+			
+			// var headLine = "<span class='comments_entry_username'>" + comment["userName"] + "</span>";
+			// headLine += "<span class='comments_entry_datepublish'>" + datePublish + "</span>";
+			// divCommentMetadata.innerHTML = headLine;
+			
+			
+			var divCommentValue;
+			divCommentValue = document.createElement('div');
+			divCommentValue.id = rootID+"_comment_value";
+			divCommentValue.className = "comments_entry_comment";
+			divCommentContainer.appendChild(divCommentValue);		
+			
+			divCommentValue.innerText = comment["value"];
+			
+			var divCommentReply = document.createElement('div');
+			divCommentReply.id = rootID+"_comment_reply";
+			divCommentContainer.appendChild(divCommentReply);
+			
+			paella.data.read('userInfo',{username:comment["userName"]}, function(data,status) {
+				if (data) {
+					divSil.src = data.avatar;
+					
+					var headLine = "<span class='comments_entry_username'>" + data.name + " " + data.lastname + "</span>";
+					headLine += "<span class='comments_entry_datepublish'>" + datePublish + "</span>";				
+					divCommentMetadata.innerHTML = headLine;
+				}
+			});
+
+			if (this.canPublishAComment == true) {
+				//var btnRplyComment = document.createElement('button');
+				var btnRplyComment = document.createElement('div');
+				btnRplyComment.className = "reply_button";
+				btnRplyComment.innerText = base.dictionary.translate("Reply");
+				
+				btnRplyComment.id = rootID+"_comment_reply_button";
+				btnRplyComment.onclick = function(){
+					var e = thisClass.createAReplyEntry(comment["id"]);
+					this.style.display="none";
+					this.parentElement.parentElement.appendChild(e);
+				};
+				divCommentReply.appendChild(btnRplyComment);
+			}
+			
+			for (var i =0; i < comment.replies.length; ++i ){
+				var e = thisClass.createACommentReplyEntry(comment["id"], comment["replies"][i]);
+				divCommentContainer.appendChild(e);
+			}
+			return divEntry;
+		}
+		
+		createACommentReplyEntry(parentID, comment) {
+			var thisClass = this;
+			var rootID = this.divPublishComment.id+"_entry_" + parentID + "_reply_" + comment["id"];
+
+			var divEntry;
+			divEntry = document.createElement('div');
+			divEntry.id = rootID;
+			divEntry.className = "comments_entry";
+			
+			var divSil;
+			divSil = document.createElement('img');
+			divSil.className = "comments_entry_silhouette";
+			divSil.id = rootID+"_silhouette";
+
+			divEntry.appendChild(divSil);
+				
+			var divCommentContainer;
+			divCommentContainer = document.createElement('div');
+			divCommentContainer.className = "comments_entry_container";
+			divCommentContainer.id = rootID+"_comment_container";
+			divEntry.appendChild(divCommentContainer);
+				
+			var divCommentMetadata;
+			divCommentMetadata = document.createElement('div');
+			divCommentMetadata.id = rootID+"_comment_metadata"; 
+			divCommentContainer.appendChild(divCommentMetadata);
+	//		var datePublish = comment["created"];
+			var datePublish = "";
+			if (comment["created"]) {
+				var dateToday=new Date();
+				var dateComment = paella.utils.timeParse.matterhornTextDateToDate(comment["created"]);			
+				datePublish = paella.utils.timeParse.secondsToText((dateToday.getTime()-dateComment.getTime())/1000);
+			}
+			
+			// var headLine = "<span class='comments_entry_username'>" + comment["userName"] + "</span>";
+			// headLine += "<span class='comments_entry_datepublish'>" + datePublish + "</span>";
+			// divCommentMetadata.innerHTML = headLine;
+			
+			var divCommentValue;
+			divCommentValue = document.createElement('div');
+			divCommentValue.id = rootID+"_comment_value";
+			divCommentValue.className = "comments_entry_comment";
+			divCommentContainer.appendChild(divCommentValue);		
+			
+			divCommentValue.innerText = comment["value"];
+			
+			paella.data.read('userInfo',{username:comment["userName"]}, function(data,status) {
+				if (data) {
+					divSil.src = data.avatar;
+					
+					var headLine = "<span class='comments_entry_username'>" + data.name + " " + data.lastname + "</span>";
+					headLine += "<span class='comments_entry_datepublish'>" + datePublish + "</span>";				
+					divCommentMetadata.innerHTML = headLine;
+				}
+			});	
+				
+			return divEntry;
+		}
+		
+		//Allows the user to write a new reply
+		createAReplyEntry(annotationID) {
+			var thisClass = this;
+			var rootID = this.divPublishComment.id+"_entry_" + annotationID + "_reply";
+
+			var divEntry;
+			divEntry = document.createElement('div');
+			divEntry.id = rootID+"_entry";
+			divEntry.className = "comments_entry";
+			
+			var divSil;
+			divSil = document.createElement('img');
+			divSil.className = "comments_entry_silhouette";
+			divSil.style.width = "48px";		
+			divSil.id = rootID+"_silhouette";
+			divSil.src = paella.initDelegate.initParams.accessControl.userData.avatar;
+			divEntry.appendChild(divSil);
+			
+			var divCommentContainer;
+			divCommentContainer = document.createElement('div');
+			divCommentContainer.className = "comments_entry_container comments_reply_container";
+			divCommentContainer.id = rootID+"_reply_container";
+			divEntry.appendChild(divCommentContainer);
+		
+			var textArea;
+			textArea = document.createElement('textArea');
+			textArea.onclick = function(){paella.keyManager.enabled = false;};
+			textArea.draggable = false;
+			textArea.id = rootID+"_textarea";
+			divCommentContainer.appendChild(textArea);
+			
+			this.publishCommentButtons = document.createElement('div');
+			this.publishCommentButtons.id = rootID+"_buttons_area";
+			divCommentContainer.appendChild(this.publishCommentButtons);
+			
+			var btnAddComment;
+			btnAddComment = document.createElement('button');
+			btnAddComment.id = rootID+"_btnAddComment";
+			btnAddComment.className = "publish";
+			btnAddComment.onclick = function(){
+				var txtValue = textArea.value;
+				if (txtValue.replace(/\s/g,'') != "") {
+					thisClass.addReply(annotationID,textArea.id);
+				}
+			};
+			btnAddComment.innerText = base.dictionary.translate("Reply");
+			
+			this.publishCommentButtons.appendChild(btnAddComment);
+			
+			return divEntry;
+		}
+	}
+});
+*/
+
+
+/*
+paella.addPlugin(function() {
+
+	return class DescriptionPlugin extends paella.TabBarPlugin {
+		getSubclass() { return "showDescriptionTabBar"; }
+		getName() { return "es.upv.paella.descriptionPlugin"; }
+		getTabName() { return "Descripción"; }
+				
+		get domElement() { return this._domElement || null; }
+		set domElement(d) { this._domElement = d; }
+				
+		buildContent(domElement) {
+			this.domElement = domElement;
+			this.loadContent();
+		}
+				
+		action(tab) {
+			this.loadContent();
+		}
+				
+		loadContent() {
+			var container = this.domElement;
+			container.innerText = "Loading...";
+			new paella.Timer(function(t) {
+				container.innerText = "Loading done";
+			},2000);
+		}
+	}
+})
+*/
+
+
+paella.addPlugin(function() {
+	return class extendedTabAdapterPlugin extends paella.ButtonPlugin {
+		get currentUrl() { return this._currentUrl; }
+		set currentUrl(v) { this._currentUrl = v; }
+		get currentMaster() { return this._currentMaster; }
+		set currentMaster(v) { this._currentMaster = v; }
+		get currentSlave() { return this._currentSlave; }
+		set currentSlave(v) { this._currentSlave = v; }
+		get availableMasters() { return this._availableMasters; }
+		set availableMasters(v) { this._availableMasters = v; }
+		get availableSlaves() { return this._availableSlaves }
+		set availableSlaves(v) { this._availableSlaves = v; }
+		get showWidthRes() { return this._showWidthRes; }
+		set showWidthRes(v) { this._showWidthRes = v; }
+
+		getAlignment() { return 'right'; }
+		getSubclass() { return "extendedTabAdapterPlugin"; }
+		getIconClass() { return 'icon-folder'; }
+		getIndex() { return 2030; }
+		getName() { return "es.upv.paella.extendedTabAdapterPlugin"; }
+		getDefaultToolTip() { return base.dictionary.translate("Extended Tab Adapter"); }
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+		
+		buildContent(domElement) {
+			domElement.appendChild(paella.extendedAdapter.bottomContainer);
+		}
+	}
+});
+paella.addPlugin(function() {
+	return class FootPrintsPlugin extends paella.ButtonPlugin {
+		get INTERVAL_LENGTH() { return this._INTERVAL_LENGTH; }
+		set INTERVAL_LENGTH(v) { this._INTERVAL_LENGTH = v; }
+		get inPosition() { return this._inPosition; }
+		set inPosition(v) { this._inPosition = v; }
+		get outPosition() { return this._outPosition; }
+		set outPosition(v) { this._outPosition = v; }
+		get canvas() { return this._canvas; }
+		set canvas(v) { this._canvas = v; }
+		get footPrintsTimer() { return this._footPrintsTimer; }
+		set footPrintsTimer(v) { this._footPrintsTimer = v; }
+		get footPrintsData() { return this._footPrintsData; }
+		set footPrintsData(v) { this._footPrintsData = v; }
+
+		getAlignment() { return 'right'; }
+		getSubclass() { return "footPrints"; }
+		getIconClass() { return 'icon-stats'; }
+		getIndex() { return 590; }
+		getDefaultToolTip() { return base.dictionary.translate("Show statistics"); }
+		getName() { return "es.upv.paella.footprintsPlugin"; }
+		getButtonType() { return paella.ButtonPlugin.type.timeLineButton; }
+	
+		setup(){
+			this._INTERVAL_LENGTH = 5;
+			var thisClass = this;
+			paella.events.bind(paella.events.timeUpdate, function(event) { thisClass.onTimeUpdate(); });
+	
+			switch(this.config.skin) {
+			case 'custom':
+				this.fillStyle = this.config.fillStyle;
+				this.strokeStyle = this.config.strokeStyle;
+				break;
+	
+			case 'dark':
+				this.fillStyle = '#727272';
+				this.strokeStyle = '#424242';
+				break;
+	
+			case 'light':
+				this.fillStyle = '#d8d8d8';
+				this.strokeStyle = '#ffffff';
+				break;
+	
+			default:
+				this.fillStyle = '#d8d8d8';
+				this.strokeStyle = '#ffffff';
+				break;
+			}
+		}
+	
+		checkEnabled(onSuccess) {
+			onSuccess(!paella.player.isLiveStream());
+		}
+	
+		buildContent(domElement) {
+			var container = document.createElement('div');
+			container.className = 'footPrintsContainer';
+	
+			this.canvas = document.createElement('canvas');
+			this.canvas.id = 'footPrintsCanvas';
+			this.canvas.className = 'footPrintsCanvas';
+			container.appendChild(this.canvas);
+	
+	
+			domElement.appendChild(container);
+		}
+	
+		onTimeUpdate() {
+			let currentTime = -1;
+			paella.player.videoContainer.currentTime()
+				.then((c) => {
+					currentTime = c;
+					return paella.player.videoContainer.trimming();
+				})
+				.then((trimming) => {
+					let videoCurrentTime = Math.round(currentTime + (trimming.enabled ? trimming.start : 0));
+					if (this.inPosition <= videoCurrentTime && videoCurrentTime <= this.inPosition + this.INTERVAL_LENGTH) {
+						this.outPosition = videoCurrentTime;
+						if ((this.inPosition + this.INTERVAL_LENGTH)===this.outPosition) {
+							this.trackFootPrint(this.inPosition, this.outPosition);
+							this.inPosition = this.outPosition;
+						}
+					}
+					else {
+						this.trackFootPrint(this.inPosition, this.outPosition);
+						this.inPosition = videoCurrentTime;
+						this.outPosition = videoCurrentTime;
+					}
+				});
+		}
+
+		trackFootPrint(inPosition, outPosition) {
+			var data = {"in": inPosition, "out": outPosition};
+			paella.data.write('footprints',{id:paella.initDelegate.getId()}, data);
+		}
+	
+		willShowContent() {
+			var thisClass = this;
+			this.loadFootprints();
+			this.footPrintsTimer = new base.Timer(function(timer) {
+				thisClass.loadFootprints();
+			},5000);
+			this.footPrintsTimer.repeat = true;
+		}
+	
+		didHideContent() {
+			if (this.footPrintsTimer!=null) {
+				this.footPrintsTimer.cancel();
+				this.footPrintsTimer = null;
+			}
+		}
+	
+		loadFootprints() {
+			var thisClass = this;
+			paella.data.read('footprints',{id:paella.initDelegate.getId()},function(data,status) {
+				var footPrintsData = {};
+				paella.player.videoContainer.duration().then(function(duration){
+					var trimStart = Math.floor(paella.player.videoContainer.trimStart());
+	
+					var lastPosition = -1;
+					var lastViews = 0;
+					for (var i = 0; i < data.length; i++) {
+						var position = data[i].position - trimStart;
+						if (position < duration){
+							var views = data[i].views;
+	
+							if (position - 1 != lastPosition){
+								for (var j = lastPosition + 1; j < position; j++) {
+									footPrintsData[j] = lastViews;
+								}
+							}
+							footPrintsData[position] = views;
+							lastPosition = position;
+							lastViews = views;
+						}
+					}
+					thisClass.drawFootPrints(footPrintsData);
+				});
+			});
+		}
+
+		drawFootPrints(footPrintsData) {
+			if (this.canvas) {
+				var duration = Object.keys(footPrintsData).length;
+				var ctx = this.canvas.getContext("2d");
+				var h = 20;
+				var i;
+				for (i = 0; i<duration; ++i) {
+					if (footPrintsData[i] > h) { h = footPrintsData[i]; }
+				}
+	
+				this.canvas.setAttribute("width", duration);
+				this.canvas.setAttribute("height", h);
+				ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
+				ctx.fillStyle = this.fillStyle; //'#faa166'; //'#9ED4EE';
+				ctx.strokeStyle = this.strokeStyle; //'#fa8533'; //"#0000FF";
+				ctx.lineWidth = 2;
+	
+				ctx.webkitImageSmoothingEnabled = false;
+				ctx.mozImageSmoothingEnabled = false;
+	
+				for (i = 0; i<duration-1; ++i) {
+					ctx.beginPath();
+					ctx.moveTo(i, h);
+					ctx.lineTo(i, h-footPrintsData[i]);
+					ctx.lineTo(i+1, h-footPrintsData[i+1]);
+					ctx.lineTo(i+1, h);
+					ctx.closePath();
+					ctx.fill();
+	
+					ctx.beginPath();
+					ctx.moveTo(i, h-footPrintsData[i]);
+					ctx.lineTo(i+1, h-footPrintsData[i+1]);
+					ctx.closePath();
+					ctx.stroke();
+				}
+			}
+		}
+	}
+});
+
+paella.addPlugin(function() {
+	return class FrameCaptionsSearchPlugIn extends paella.SearchServicePlugIn {
+		getName() { return "es.upv.paella.frameCaptionsSearchPlugin"; }
+
+		search(text, next) {
+			let re = RegExp(text,"i");
+			let results = [];
+			for (var key in paella.player.videoLoader.frameList) {
+				var value = paella.player.videoLoader.frameList[key];
+				if (typeof(value)=="object") {
+					if (re.test(value.caption)) {
+						results.push({
+							time: key,
+							content: value.caption,
+							score: 0
+						});					
+					}
+				}
+			}
+			if (next) {
+				next(false, results);
+			}
+		}	
+	}
+});
+
+paella.addPlugin(function() {
+	return class FrameControlPlugin extends paella.ButtonPlugin {
+		get frames() { return this._frames; }
+		set frames(v) { this._frames = v; }
+		get highResFrames() { return this._highResFrames; }
+		set highResFrames(v) { this._highResFrames = v; }
+		get currentFrame() { return this._currentFrame; }
+		set currentFrame(v) { this._currentFrame = v; }
+		get navButtons() { return this._navButtons; }
+		set navButtons(v) { this._navButtons = v; }
+		get buttons() {
+			if (!this._buttons) {
+				this._buttons = [];
+			}
+			return this._buttons;
+		}
+		set buttons(v) { this._buttons = v; }
+		get contx() { return this._contx; }
+		set contx(v) { this._contx = v; }
+		
+		getAlignment() { return 'right'; }
+		getSubclass() { return "frameControl"; }
+		getIconClass() { return 'icon-photo'; }
+		getIndex() { return 510; }
+		getName() { return "es.upv.paella.frameControlPlugin"; }
+		getButtonType() { return paella.ButtonPlugin.type.timeLineButton; }
+		getDefaultToolTip() { return base.dictionary.translate("Navigate by slides"); }
+
+		checkEnabled(onSuccess) {
+			this._img = null;
+			this._searchTimer = null;
+			this._searchTimerTime = 250;
+
+			if (paella.initDelegate.initParams.videoLoader.frameList==null) onSuccess(false);
+			else if (paella.initDelegate.initParams.videoLoader.frameList.length===0) onSuccess(false);
+			else if (Object.keys(paella.initDelegate.initParams.videoLoader.frameList).length==0) onSuccess(false);
+			else onSuccess(true);
+		}
+
+		setup() {
+			this._showFullPreview = this.config.showFullPreview || "auto";
+			
+			var thisClass = this;
+			var oldClassName;
+			var blockCounter = 1;
+			var correctJump = 0;
+			var selectedItem = -1;
+			var jumpAtItem;
+			var Keys = {Tab:9,Return:13,Esc:27,End:35,Home:36,Left:37,Up:38,Right:39,Down:40};
+
+			$(this.button).keyup(function(event) {
+				var visibleItems = Math.floor(thisClass.contx.offsetWidth/100);
+				var rest = thisClass.buttons.length%visibleItems;
+				var blocks = Math.floor(thisClass.buttons.length/visibleItems);
+
+				if (thisClass.isPopUpOpen()){
+					if (event.keyCode == Keys.Left) {
+					if(selectedItem > 0){
+							thisClass.buttons[selectedItem].className = oldClassName;
+
+							selectedItem--;
+
+							if(blockCounter > blocks) correctJump = visibleItems - rest;
+							jumpAtItem = ((visibleItems)*(blockCounter-1))-1-correctJump;
+
+							if(selectedItem == jumpAtItem && selectedItem != 0){
+								thisClass.navButtons.left.scrollContainer.scrollLeft -= visibleItems*105;
+								--blockCounter;
+							}
+
+							if(this.hiResFrame) thisClass.removeHiResFrame();
+							if (!base.userAgent.browser.IsMobileVersion) {
+								thisClass.buttons[selectedItem].frameControl.onMouseOver(null,thisClass.buttons[selectedItem].frameData);
+							}
+							
+							oldClassName = thisClass.buttons[selectedItem].className;
+							thisClass.buttons[selectedItem].className = 'frameControlItem selected';
+						}
+					}
+					else if (event.keyCode == Keys.Right) {
+						if(selectedItem<thisClass.buttons.length-1){
+							if(selectedItem >= 0){
+								thisClass.buttons[selectedItem].className = oldClassName;
+							}
+
+							selectedItem++;
+
+							if (blockCounter == 1) correctJump = 0;
+							jumpAtItem = (visibleItems)*blockCounter-correctJump;
+
+							if(selectedItem == jumpAtItem){
+								thisClass.navButtons.left.scrollContainer.scrollLeft += visibleItems*105;
+								++blockCounter;
+							}
+
+							if(this.hiResFrame)thisClass.removeHiResFrame();
+							if (!base.userAgent.browser.IsMobileVersion) {
+								thisClass.buttons[selectedItem].frameControl.onMouseOver(null,thisClass.buttons[selectedItem].frameData);
+							}
+							
+							oldClassName = thisClass.buttons[selectedItem].className;
+							thisClass.buttons[selectedItem].className = 'frameControlItem selected';
+						}
+					}
+					else if (event.keyCode == Keys.Return) {
+						thisClass.buttons[selectedItem].frameControl.onClick(null,thisClass.buttons[selectedItem].frameData);
+						oldClassName = 'frameControlItem current';
+					}
+					else if (event.keyCode == Keys.Esc){
+						thisClass.removeHiResFrame();
+					}
+				}
+			});
+		}
+
+		buildContent(domElement) {
+			var thisClass = this;
+			this.frames = [];
+			var container = document.createElement('div');
+			container.className = 'frameControlContainer';
+
+			thisClass.contx = container;
+
+			var content = document.createElement('div');
+			content.className = 'frameControlContent';
+
+			this.navButtons = {
+				left:document.createElement('div'),
+				right:document.createElement('div')
+			};
+			this.navButtons.left.className = 'frameControl navButton left';
+			this.navButtons.right.className = 'frameControl navButton right';
+
+			var frame = this.getFrame(null);
+
+			domElement.appendChild(this.navButtons.left);
+			domElement.appendChild(container);
+			container.appendChild(content);
+			domElement.appendChild(this.navButtons.right);
+
+			this.navButtons.left.scrollContainer = container;
+			$(this.navButtons.left).click(function(event) {
+				this.scrollContainer.scrollLeft -= 100;
+			});
+
+			this.navButtons.right.scrollContainer = container;
+			$(this.navButtons.right).click(function(event) {
+				this.scrollContainer.scrollLeft += 100;
+			});
+
+			content.appendChild(frame);
+
+			var itemWidth = $(frame).outerWidth(true);
+			content.innerText = '';
+			$(window).mousemove(function(event) {
+				if ($(content).offset().top>event.pageY || !$(content).is(":visible") ||
+					($(content).offset().top + $(content).height())<event.pageY)
+				{
+					thisClass.removeHiResFrame();
+				}
+			});
+
+			var frames = paella.initDelegate.initParams.videoLoader.frameList;
+			var numFrames;
+			if (frames) {
+				var framesKeys = Object.keys(frames);
+				numFrames = framesKeys.length;
+
+				framesKeys.map(function(i){return Number(i, 10);})
+				.sort(function(a, b){return a-b;})
+				.forEach(function(key){
+					var frameItem = thisClass.getFrame(frames[key]);
+					content.appendChild(frameItem,'frameContrlItem_' + numFrames);
+					thisClass.frames.push(frameItem);
+				});
+			}
+
+			$(content).css({width:(numFrames * itemWidth) + 'px'});
+
+			paella.events.bind(paella.events.setTrim,(event,params) => {
+				this.updateFrameVisibility(params.trimEnabled,params.trimStart,params.trimEnd);
+			});
+			paella.player.videoContainer.trimming()
+				.then((trimData) => {
+					this.updateFrameVisibility(trimData.enabled,trimData.start,trimData.end);
+				});
+			
+
+			paella.events.bind(paella.events.timeupdate,(event,params) => this.onTimeUpdate(params.currentTime) );
+		}
+
+		showHiResFrame(url,caption) {
+			var frameRoot = document.createElement("div");
+			var frame = document.createElement("div");
+			var hiResImage = document.createElement('img');
+			this._img = hiResImage;
+			hiResImage.className = 'frameHiRes';
+			hiResImage.setAttribute('src',url);
+			hiResImage.setAttribute('style', 'width: 100%;');
+
+			$(frame).append(hiResImage);
+			$(frameRoot).append(frame);
+
+			frameRoot.setAttribute('style', 'display: table;');
+			frame.setAttribute('style', 'display: table-cell; vertical-align:middle;');
+
+		    if (this.config.showCaptions === true){
+			var captionContainer = document.createElement('p');
+			captionContainer.className = "frameCaption";
+			captionContainer.innerText = caption || "";
+			frameRoot.append(captionContainer);
+			this._caption = captionContainer;
+		    }
+
+			let overlayContainer = paella.player.videoContainer.overlayContainer;
+			
+			switch(this._showFullPreview) {
+				case "auto":
+					var streams = paella.initDelegate.initParams.videoLoader.streams;
+					if (streams.length == 1){
+						overlayContainer.addElement(frameRoot, overlayContainer.getVideoRect(0));
+					}
+					else if (streams.length >= 2){
+						overlayContainer.addElement(frameRoot, overlayContainer.getVideoRect(1));
+					}
+					overlayContainer.enableBackgroundMode();
+					this.hiResFrame = frameRoot;
+					break;
+				case "master":
+					overlayContainer.addElement(frameRoot, overlayContainer.getVideoRect(0));
+					overlayContainer.enableBackgroundMode();
+					this.hiResFrame = frameRoot;
+					break;
+				case "slave":
+					var streams = paella.initDelegate.initParams.videoLoader.streams;
+					if (streams.length >= 2){
+						overlayContainer.addElement(frameRoot, overlayContainer.getVideoRect(0));
+						overlayContainer.enableBackgroundMode();
+						this.hiResFrame = frameRoot;
+					}
+					break;
+			}
+		}
+
+		removeHiResFrame() {
+			var thisClass = this;
+			var overlayContainer = paella.player.videoContainer.overlayContainer;
+			if (this.hiResFrame) {
+				overlayContainer.removeElement(this.hiResFrame);
+			}
+			overlayContainer.disableBackgroundMode();
+			thisClass._img = null;
+		}
+
+		updateFrameVisibility(trimEnabled,trimStart,trimEnd) {
+			var i;
+			if (!trimEnabled) {
+				for (i = 0; i<this.frames.length;++i) {
+					$(this.frames[i]).show();
+				}
+			}
+			else {
+				for (i = 0; i<this.frames.length; ++i) {
+					var frameElem = this.frames[i];
+					var frameData = frameElem.frameData;
+					if (frameData.time<trimStart) {
+						if (this.frames.length>i+1 && this.frames[i+1].frameData.time>trimStart) {
+							$(frameElem).show();
+						}
+						else {
+							$(frameElem).hide();
+						}
+					}
+					else if (frameData.time>trimEnd) {
+						$(frameElem).hide();
+					}
+					else {
+						$(frameElem).show();
+					}
+				}
+			}
+		}
+
+		getFrame(frameData,id) {
+			var frame = document.createElement('div');
+			frame.className = 'frameControlItem';
+			if (id) frame.id = id;
+			if (frameData) {
+
+				this.buttons.push(frame);
+
+				frame.frameData = frameData;
+				frame.frameControl = this;
+				var image = frameData.thumb ? frameData.thumb:frameData.url;
+				var labelTime = paella.utils.timeParse.secondsToTime(frameData.time);
+				frame.innerHTML = '<img src="' + image + '" alt="" class="frameControlImage" title="'+labelTime+'" aria-label="'+labelTime+'"></img>';
+				if (!base.userAgent.browser.IsMobileVersion) {
+					$(frame).mouseover(function(event) {
+						this.frameControl.onMouseOver(event,this.frameData);
+					});
+				}
+				
+				$(frame).mouseout(function(event) {
+					this.frameControl.onMouseOut(event,this.frameData);
+				});
+				$(frame).click(function(event) {
+					this.frameControl.onClick(event,this.frameData);
+				});
+			}
+			return frame;
+		}
+
+		onMouseOver(event,frameData) {
+			var frames = paella.initDelegate.initParams.videoLoader.frameList;
+			var frame = frames[frameData.time];
+			if (frame) {
+				var image = frame.url;
+				if(this._img){
+				    this._img.setAttribute('src',image);
+				    if (this.config.showCaptions === true){
+					this._caption.innerText = frame.caption || "";
+				    }
+				}
+				else{
+					this.showHiResFrame(image,frame.caption);
+				}
+			}
+			
+			if(this._searchTimer != null){
+				clearTimeout(this._searchTimer);
+			}
+		}
+
+		onMouseOut(event,frameData) {
+			this._searchTimer = setTimeout((timer) => this.removeHiResFrame(), this._searchTimerTime);
+		}
+
+		onClick(event,frameData) {
+			paella.player.videoContainer.trimming()
+				.then((trimming) => {
+					let time = trimming.enabled ? frameData.time - trimming.start : frameData.time;
+					if (time>0) {
+						paella.player.videoContainer.seekToTime(time + 1);
+					}
+					else {
+						paella.player.videoContainer.seekToTime(0);
+					}
+				});
+		}
+
+		onTimeUpdate(currentTime) {
+			var frame = null;
+			paella.player.videoContainer.trimming()
+				.then((trimming) => {
+				    let time = trimming.enabled ? currentTime + trimming.start : currentTime;
+
+			for (var i = 0; i<this.frames.length; ++i) {
+				if (this.frames[i].frameData && this.frames[i].frameData.time<=time) {
+				    frame = this.frames[i];
+				}
+				else {
+					break;
+				}
+			}
+			if (this.currentFrame!=frame && frame) {
+				//this.navButtons.left.scrollContainer.scrollLeft += 100;
+
+				if (this.currentFrame) this.currentFrame.className = 'frameControlItem';
+				this.currentFrame = frame;
+				this.currentFrame.className = 'frameControlItem current';
+			}
+
+
+				});
+
+		}
+	}
+});
+
+paella.addPlugin(function() {
+	return class FullScreenPlugin extends paella.ButtonPlugin {
+		
+		getIndex() { return 551; }
+		getAlignment() { return 'right'; }
+		getSubclass() { return "showFullScreenButton"; }
+		getIconClass() { return 'icon-fullscreen'; }
+		getName() { return "es.upv.paella.fullScreenButtonPlugin"; }
+		checkEnabled(onSuccess) {
+			this._reload = null;
+			var enabled = paella.player.checkFullScreenCapability();
+			onSuccess(enabled);
+		}
+		getDefaultToolTip() { return base.dictionary.translate("Go Fullscreen"); }
+		
+		setup() {
+			this._reload = this.config.reloadOnFullscreen ? this.config.reloadOnFullscreen.enabled:false;
+			paella.events.bind(paella.events.enterFullscreen, (event) => this.onEnterFullscreen());
+			paella.events.bind(paella.events.exitFullscreen, (event) => this.onExitFullscreen());
+		}
+	
+		action(button) {
+			if (paella.player.isFullScreen()) {
+				paella.player.exitFullScreen();
+			}
+			else if ((!paella.player.checkFullScreenCapability() || base.userAgent.browser.Explorer) && window.location !== window.parent.location) {
+				// Iframe and no fullscreen support
+				var url = window.location.href;
+	
+				paella.player.pause();
+				paella.player.videoContainer.currentTime()
+					.then((currentTime) => {
+						var obj = this.secondsToHours(currentTime);
+						window.open(url+"&time="+obj.h+"h"+obj.m+"m"+obj.s+"s&autoplay=true");
+					});
+				
+				return;
+			}
+			else {
+				paella.player.goFullScreen();
+			}
+	
+			if (paella.player.config.player.reloadOnFullscreen && paella.player.videoContainer.supportAutoplay()) {
+				setTimeout(() => {
+					if(this._reload) {
+						paella.player.videoContainer.setQuality(null)
+							.then(() => {
+							});
+						//paella.player.reloadVideos();
+					}
+				}, 1000);
+			}
+		}
+	
+		secondsToHours(sec_numb) {
+			var hours   = Math.floor(sec_numb / 3600);
+			var minutes = Math.floor((sec_numb - (hours * 3600)) / 60);
+			var seconds =  Math.floor(sec_numb - (hours * 3600) - (minutes * 60));
+			var obj = {};
+	
+			if (hours < 10) {hours = "0"+hours;}
+			if (minutes < 10) {minutes = "0"+minutes;}
+			if (seconds < 10) {seconds = "0"+seconds;}
+			obj.h = hours;
+			obj.m = minutes;
+			obj.s = seconds;
+			return obj;
+		}
+	
+		onEnterFullscreen() {
+			this.setToolTip(base.dictionary.translate("Exit Fullscreen"));
+			this.button.className = this.getButtonItemClass(true);
+			this.changeIconClass('icon-windowed');
+		}
+		
+		onExitFullscreen() {
+			this.setToolTip(base.dictionary.translate("Go Fullscreen"));
+			this.button.className = this.getButtonItemClass(false);
+			this.changeIconClass('icon-fullscreen');
+			setTimeout(() => {
+				paella.player.onresize();
+			}, 100);
+		}
+	
+		getButtonItemClass(selected) {
+			return 'buttonPlugin '+this.getAlignment() +' '+ this.getSubclass() + ((selected) ? ' active':'');
+		}
+	}
+});
+
+paella.addPlugin(function() {
+	return class HelpPlugin extends paella.ButtonPlugin {
+
+		getIndex() { return 509; }
+		getAlignment() { return 'right'; }
+		getSubclass() { return "helpButton"; }
+		getIconClass() { return 'icon-help'; }
+		getName() { return "es.upv.paella.helpPlugin"; }
+
+		getDefaultToolTip() { return base.dictionary.translate("Show help") + ' (' + base.dictionary.translate("Paella version:") + ' ' + paella.version + ')'; }
+
+
+		checkEnabled(onSuccess) { 
+			var availableLangs = (this.config && this.config.langs) || [];
+			onSuccess(availableLangs.length>0); 
+		}
+
+		action(button) {
+			var mylang = base.dictionary.currentLanguage();
+			
+			var availableLangs = (this.config && this.config.langs) || [];
+			var idx = availableLangs.indexOf(mylang);
+			if (idx < 0) { idx = 0; }
+							
+			//paella.messageBox.showFrame("http://paellaplayer.upv.es/?page=usage");
+			let url = "resources/style/help/help_" + availableLangs[idx] + ".html";
+			if (base.userAgent.browser.IsMobileVersion) {
+				window.open(url);
+			}
+			else {
+				paella.messageBox.showFrame(url);
+			}
+		}
+		
+	}
+});
+
+(() => {
+
+	let s_preventVideoDump = [];
+
+	class HLSPlayer extends paella.Html5Video {
+		get config() {
+			let config = {
+				autoStartLoad: true,
+				startPosition : -1,
+				capLevelToPlayerSize: true,
+				debug: false,
+				defaultAudioCodec: undefined,
+				initialLiveManifestSize: 1,
+				maxBufferLength: 30,
+				maxMaxBufferLength: 600,
+				maxBufferSize: 60*1000*1000,
+				maxBufferHole: 0.5,
+				lowBufferWatchdogPeriod: 0.5,
+				highBufferWatchdogPeriod: 3,
+				nudgeOffset: 0.1,
+				nudgeMaxRetry : 3,
+				maxFragLookUpTolerance: 0.2,
+				liveSyncDurationCount: 3,
+				liveMaxLatencyDurationCount: 10,
+				enableWorker: true,
+				enableSoftwareAES: true,
+				manifestLoadingTimeOut: 10000,
+				manifestLoadingMaxRetry: 1,
+				manifestLoadingRetryDelay: 500,
+				manifestLoadingMaxRetryTimeout : 64000,
+				startLevel: undefined,
+				levelLoadingTimeOut: 10000,
+				levelLoadingMaxRetry: 4,
+				levelLoadingRetryDelay: 500,
+				levelLoadingMaxRetryTimeout: 64000,
+				fragLoadingTimeOut: 20000,
+				fragLoadingMaxRetry: 6,
+				fragLoadingRetryDelay: 500,
+				fragLoadingMaxRetryTimeout: 64000,
+				startFragPrefetch: false,
+				appendErrorMaxRetry: 3,
+				
+				// loader: customLoader,
+				// fLoader: customFragmentLoader,
+				// pLoader: customPlaylistLoader,
+				// xhrSetup: XMLHttpRequestSetupCallback,
+				// fetchSetup: FetchSetupCallback,
+				// abrController: customAbrController,
+				// timelineController: TimelineController,
+
+				enableWebVTT: true,
+				enableCEA708Captions: true,
+				stretchShortVideoTrack: false,
+				maxAudioFramesDrift : 1,
+				forceKeyFrameOnDiscontinuity: true,
+				abrEwmaFastLive: 5.0,
+				abrEwmaSlowLive: 9.0,
+				abrEwmaFastVoD: 4.0,
+				abrEwmaSlowVoD: 15.0,
+				abrEwmaDefaultEstimate: 500000,
+				abrBandWidthFactor: 0.95,
+				abrBandWidthUpFactor: 0.7,
+				minAutoBitrate: 0
+			};
+
+			let pluginConfig = {};
+			paella.player.config.player.methods.some((methodConfig) => {
+				if (methodConfig.factory=="HLSVideoFactory") {
+					pluginConfig = methodConfig.config || {};
+					return true;
+				}
+			});
+
+			for (let key in config) {
+				if (pluginConfig[key]!=undefined) {
+					config[key] = pluginConfig[key];
+				}
+			}
+
+			return config;
+		}
+
+		constructor(id,stream,left,top,width,height) {
+			super(id,stream,left,top,width,height,'hls');
+		}
+		
+		_loadDeps() {
+			return new Promise((resolve,reject) => {
+				if (!window.$paella_hls) {
+					require([paella.baseUrl +'resources/deps/hls.min.js'],function(hls) {
+						window.$paella_hls = hls;
+						resolve(window.$paella_hls);
+					});
+				}
+				else {
+					resolve(window.$paella_hls);
+				}	
+			});
+		}
+	
+		setupHls(video,url) {
+			return new Promise((resolve,reject) => {
+				this._loadDeps()
+					.then((Hls) => {
+						if (Hls.isSupported()) {
+							let cfg = this.config;
+							this._hls = new Hls(cfg);
+							this._hls.loadSource(url);
+							this._hls.attachMedia(video);
+							this.autoQuality = true;
+
+							this._hls.on(Hls.Events.LEVEL_SWITCHED, (ev,data) => {
+								this._qualities = this._qualities || [];
+								this._qualityIndex = this.autoQuality ? this._qualities.length - 1 : data.level;
+								paella.events.trigger(paella.events.qualityChanged,{});
+								if (console && console.log) console.log(`HLS: quality level changed to ${ data.level }`);
+							});
+
+							this._hls.on(Hls.Events.ERROR, (event, data) => {
+								if (data.fatal) {
+									switch (data.type) {
+									case Hls.ErrorTypes.NETWORK_ERROR:
+										console.error("paella.HLSPlayer: Fatal network error encountered, try to recover");
+										this._hls.startLoad();
+										break;
+									case Hls.ErrorTypes.MEDIA_ERROR:
+										console.error("paella.HLSPlayer: Fatal media error encountered, try to recover");
+										this._hls.recoverMediaError();
+										break;
+									default:
+										console.error("paella.HLSPlayer: Fatal error. Can not recover");
+										this._hls.destroy();
+										reject(new Errro("Invalid media"));
+										break;
+									}
+								}
+							});
+
+							this._hls.on(Hls.Events.MANIFEST_PARSED, () => {
+								//this._deferredAction(function() {
+									resolve(video);
+								//});
+							});
+						}
+						else {
+							reject(new Error("HLS not supported"));
+						}
+					})
+			});
+		}
+
+		webGlDidLoad() {
+			// Register a new video loader in the webgl engine, to enable the
+			// hls compatibility in webgl canvas
+			bg.utils.HTTPResourceProvider.AddVideoLoader('m3u8', (url,onSuccess,onFail) => {
+				var video = document.createElement("video");
+				s_preventVideoDump.push(video);
+				this.setupHls(video,url)
+					.then(() => onSuccess(video))
+					.catch(() => onFail());
+			});
+			return Promise.resolve();
+		}
+
+		loadVideoStream(canvasInstance,stream) {
+			return canvasInstance.loadVideo(this,stream,(videoElem) => {
+				return this.setupHls(videoElem,stream.src);
+			});
+		}
+	
+		getQualities() {
+			if (base.userAgent.system.iOS)// ||
+		//		base.userAgent.browser.Safari)
+			{
+				return new Promise((resolve,reject) => {
+					resolve([
+						{
+							index: 0,
+							res: "",
+							src: "",
+							toString:function() { return "auto"; },
+							shortLabel:function() { return "auto"; },
+							compare:function(q2) { return 0; }
+						}
+					]);
+				});
+			}
+			else {
+				let This = this;
+				return new Promise((resolve) => {
+					if (!this._qualities || this._qualities.length==0) {
+						This._qualities = [];
+						This._hls.levels.forEach(function(q, index){
+							This._qualities.push(This._getQualityObject(index, {
+								index: index,
+								res: { w:q.width, h:q.height },
+								bitrate: q.bitrate
+							}));					
+						});
+						if (this._qualities.length>1) {
+							// If there is only one quality level, don't add the "auto" option
+							This._qualities.push(
+								This._getQualityObject(This._qualities.length, {
+									index:This._qualities.length,
+									res: { w:0, h:0 },
+									bitrate: 0
+								}));
+						}
+					}
+					This.qualityIndex = This._qualities.length - 1;
+					resolve(This._qualities);
+				});
+			}
+		}
+		
+		printQualityes() {
+			return new Promise((resolve,reject) => {
+				this.getCurrentQuality()
+					.then((cq)=>{
+						return this.getNextQuality();
+					})
+					.then((nq) => {
+						resolve();
+					})
+			});		
+		}
+		
+		setQuality(index) {
+			if (base.userAgent.system.iOS)// ||
+				//base.userAgent.browser.Safari)
+			{
+				return Promise.resolve();
+			}
+			else if (index!==null) {
+				try {
+					this.qualityIndex = index;
+					let level = index;
+					this.autoQuality = false;
+					if (index==this._qualities.length-1) {
+						level = -1;
+						this.autoQuality = true;
+					}
+					this._hls.currentLevel = level;
+				}
+				catch(err) {
+	
+				}
+				return Promise.resolve();
+			}
+			else {
+				return Promise.resolve();
+			}
+		}
+	
+		getNextQuality() {
+			return new Promise((resolve,reject) => {
+				let index = this.qualityIndex;
+				resolve(this._qualities[index]);
+			});
+		}
+		
+		getCurrentQuality() {
+			if (base.userAgent.system.iOS)// ||
+				//base.userAgent.browser.Safari)
+			{
+				return Promise.resolve(0);
+			}
+			else {
+				return new Promise((resolve,reject) => {
+					resolve(this._qualities[this.qualityIndex]);
+				});
+			}
+		}
+	}
+
+	paella.HLSPlayer = HLSPlayer;
+	
+	
+	class HLSVideoFactory extends paella.VideoFactory {
+		get config() {
+			let hlsConfig = null;
+			paella.player.config.player.methods.some((methodConfig) => {
+				if (methodConfig.factory=="HLSVideoFactory") {
+					hlsConfig = methodConfig;
+				}
+				return hlsConfig!=null;
+			});
+			return hlsConfig || {
+				iOSMaxStreams: 1,
+				androidMaxStreams: 1
+			};
+		}
+
+		isStreamCompatible(streamData) {
+			if (paella.videoFactories.HLSVideoFactory.s_instances===undefined) {
+				paella.videoFactories.HLSVideoFactory.s_instances = 0;
+			}
+			try {
+				let cfg = this.config;
+				if ((base.userAgent.system.iOS &&
+					paella.videoFactories.HLSVideoFactory.s_instances>=cfg.iOSMaxStreams) ||
+					(base.userAgent.system.Android &&
+					paella.videoFactories.HLSVideoFactory.s_instances>=cfg.androidMaxStreams))
+			//	In some old mobile devices, playing a high number of HLS streams may cause that the browser tab crash
+				{
+					return false;
+				}
+				
+				for (var key in streamData.sources) {
+					if (key=='hls') return true;
+				}
+			}
+			catch (e) {}
+			return false;	
+		}
+	
+		getVideoObject(id, streamData, rect) {
+			++paella.videoFactories.HLSVideoFactory.s_instances;
+			return new paella.HLSPlayer(id, streamData, rect.x, rect.y, rect.w, rect.h);
+		}
+	}
+
+	paella.videoFactories.HLSVideoFactory = HLSVideoFactory;
+	
+})();
+
+paella.addPlugin(() => {
+    return class DefaultKeyPlugin extends paella.KeyPlugin {
+        checkEnabled(onSuccess) {
+			onSuccess(true);
+        }
+        
+        getName() { return "es.upv.paella.defaultKeysPlugin"; }
+    
+        setup() {
+
+        }
+
+        onKeyPress(event) {
+            // Matterhorn standard keys
+			if (event.altKey && event.ctrlKey) {
+				if (event.which==paella.Keys.P) {
+                    this.togglePlayPause();
+                    return true;
+				}
+				else if (event.which==paella.Keys.S) {
+                    this.pause();
+                    return true;
+				}
+				else if (event.which==paella.Keys.M) {
+                    this.mute();
+                    return true;
+				}
+				else if (event.which==paella.Keys.U) {
+                    this.volumeUp();
+                    return true;
+				}
+				else if (event.which==paella.Keys.D) {
+                    this.volumeDown();
+                    return true;
+				}
+			}
+			else { // Paella player keys
+				if (event.which==paella.Keys.Space) {
+                    this.togglePlayPause();
+                    return true;
+				}
+				else if (event.which==paella.Keys.Up) {
+                    this.volumeUp();
+                    return true;
+				}
+				else if (event.which==paella.Keys.Down) {
+                    this.volumeDown();
+                    return true;
+				}
+				else if (event.which==paella.Keys.M) {
+                    this.mute();
+                    return true;
+				}
+            }
+            
+            return false;
+        }
+
+        togglePlayPause() {
+            paella.player.videoContainer.paused().then((p) => {
+                p ? paella.player.play() : paella.player.pause();
+            });
+		}
+	
+		pause() {
+			paella.player.pause();
+		}
+	
+		mute() {
+			var videoContainer = paella.player.videoContainer;
+			if (videoContainer.muted) {
+				videoContainer.unmute();
+			}
+			else {
+				videoContainer.mute();
+			}
+			// videoContainer.volume().then(function(volume){
+			// 	var newVolume = 0;
+			// 	if (volume==0) { newVolume = 1.0; }
+			// 	paella.player.videoContainer.setVolume({ master:newVolume, slave: 0});
+			// });
+		}
+	
+		volumeUp() {
+			var videoContainer = paella.player.videoContainer;
+			videoContainer.volume().then(function(volume){
+				volume += 0.1;
+				volume = (volume>1) ? 1.0:volume;
+				paella.player.videoContainer.setVolume(volume);
+			});
+		}
+	
+		volumeDown() {
+			var videoContainer = paella.player.videoContainer;
+			videoContainer.volume().then(function(volume){
+				volume -= 0.1;
+				volume = (volume<0) ? 0.0:volume;
+				paella.player.videoContainer.setVolume(volume);
+			});
+		}
+    };
+})
+
+paella.addPlugin(() => {
+    return class LegalPlugin extends paella.VideoOverlayButtonPlugin {
+        getIndex() { return 0; }
+        getSubclass() { return "legal"; }
+        getAlignment() { return paella.player.config.plugins.list[this.getName()].position; }
+        getDefaultToolTip() { return ""; }
+
+        checkEnabled(onSuccess) {
+            onSuccess(true);
+        }
+
+        setup() {
+            let plugin = paella.player.config.plugins.list[this.getName()];
+            let title = document.createElement('a');
+            title.innerText = plugin.label;
+            this._url = plugin.legalUrl;
+            title.className = "";
+            this.button.appendChild(title);
+        }
+
+        action(button) {
+            window.open(this._url);
+        }
+
+        getName() { return "es.upv.paella.legalPlugin"; }
+    }
+});
+
+
+paella.addPlugin(function() {
+    return class LiveStreamIndicator extends paella.VideoOverlayButtonPlugin {
+        isEditorVisible() { return paella.editor.instance!=null; }
+        getIndex() {return 10;}
+        getSubclass() { return "liveIndicator"; }
+        getAlignment() { return 'right'; }
+        getDefaultToolTip() { return base.dictionary.translate("This video is a live stream"); }
+        getName() { return "es.upv.paella.liveStreamingIndicatorPlugin"; }
+
+        checkEnabled(onSuccess) {
+            onSuccess(paella.player.isLiveStream());
+        }
+
+        setup() {}
+
+        action(button) {
+            paella.messageBox.showMessage(base.dictionary.translate("Live streaming mode: This is a live video, so, some capabilities of the player are disabled"));
+        }
+    }
+});
+
+(() => {
+
+class MpegDashVideo extends paella.Html5Video {
+
+	constructor(id,stream,left,top,width,height) {
+		super(id,stream,left,top,width,height,'mpd');
+		this._posterFrame = null;
+		this._player = null;
+	}
+
+	_loadDeps() {
+		return new Promise((resolve,reject) => {
+			if (!window.$paella_mpd) {
+				require([paella.baseUrl +'resources/deps/dash.all.js'],function() {
+					window.$paella_mpd = true;
+					resolve(window.$paella_mpd);
+				});
+			}
+			else {
+				resolve(window.$paella_mpd);
+			}	
+		});
+	}
+
+	_getQualityObject(item, index, bitrates) {
+		var total = bitrates.length;
+		var percent = Math.round(index * 100 / total);
+		var label = index==0 ? "min":(index==total-1 ? "max":percent + "%");
+		return {
+			index: index,
+			res: { w:null, h:null },
+			bitrate: item.bitrate,
+			src: null,
+			toString:function() { return percent; },
+			shortLabel:function() { return label; },
+			compare:function(q2) { return this.bitrate - q2.bitrate; }
+		};
+	}
+
+	webGlDidLoad() {
+		// Register a new video loader in the webgl engine, to enable the
+		// hls compatibility in webgl canvas
+		bg.utils.HTTPResourceProvider.AddVideoLoader('mpd', (url,onSuccess,onFail) => {
+			var video = document.createElement("video");
+			s_preventVideoDump.push(video);
+			// this.setupHls(video,url)
+			// 	.then(() => onSuccess(video))
+			// 	.catch(() => onFail());
+		});
+		return Promise.resolve();
+	}
+
+	loadVideoStream(canvasInstance,stream) {
+		let This = this;
+		return canvasInstance.loadVideo(this,stream,(videoElem) => {
+			return new Promise((resolve,reject) => {
+				this._loadDeps()
+					.then(() => {
+						
+						var player = dashjs.MediaPlayer().create();
+						player.initialize(videoElem,stream.src,true);
+						player.getDebug().setLogToBrowserConsole(false);
+						this._player = player;
+
+						
+						player.on(dashjs.MediaPlayer.events.STREAM_INITIALIZED, function(a,b) {
+							var bitrates = player.getBitrateInfoListFor("video");
+							This._deferredAction(function() {
+								if (!This._firstPlay) {
+									This._player.pause();
+									This._firstPlay = true;
+								}
+								resolve();
+							});
+						});
+				
+					});
+				});
+		}); 
+	}
+
+	// load() {
+	// 	let This = this;
+	// 	return new Promise((resolve,reject) => {
+	// 		var source = this._stream.sources.mpd;
+	// 		if (source && source.length>0) {
+	// 			source = source[0];
+	// 			this._loadDeps()
+	// 				.then(function() {
+	// 					var context = dashContext;
+	// 					var player = dashjs.MediaPlayer().create();
+	// 					var dashContext = context;
+	// 					player.initialize(This.video,source.src,true);
+	// 					player.getDebug().setLogToBrowserConsole(false);
+	// 					This._player = player;
+	// 					player.on(dashjs.MediaPlayer.events.STREAM_INITIALIZED,function(a,b) {
+	// 						var bitrates = player.getBitrateInfoListFor("video");
+	// 						This._deferredAction(function() {
+	// 							if (!This._firstPlay) {
+	// 								This._player.pause();
+	// 								This._firstPlay = true;	
+	// 							}
+	// 							resolve();
+	// 						});
+	// 					});
+	// 				});
+	// 		}
+	// 		else {
+	// 			reject(new Error("Invalid source"));
+	// 		}
+	// 	});
+	// }
+
+	supportAutoplay() {
+		return true;
+	}
+
+	getQualities() {
+		return new Promise((resolve) => {
+			this._deferredAction(() => {
+				if (!this._qualities) {
+					this._qualities = [];
+					this._player
+						.getBitrateInfoListFor("video")
+
+						.sort((a,b) => {
+							return a.bitrate - b.bitrate;
+						})
+
+						.forEach((item,index,bitrates) => {
+							this._qualities.push(this._getQualityObject(item,index,bitrates));
+						});
+						
+					this.autoQualityIndex = this._qualities.length; 
+					this._qualities.push({
+						index: this.autoQualityIndex,
+						res: { w:null, h:null },
+						bitrate: -1,
+						src: null,
+						toString:function() { return "auto"; },
+						shortLabel:function() { return "auto"; },
+						compare:function(q2) { return this.bitrate - q2.bitrate; }
+					});
+					
+				}
+				resolve(this._qualities);
+			});
+		});
+	}
+
+	setQuality(index) {
+		return new Promise((resolve,reject) => {
+			let currentQuality = this._player.getQualityFor("video");
+			if (index==this.autoQualityIndex) {
+				this._player.setAutoSwitchQuality(true);
+				resolve();
+			}
+			else if (index!=currentQuality) {
+				this._player.setAutoSwitchQuality(false);
+				this._player.off(dashjs.MediaPlayer.events.METRIC_CHANGED);
+				this._player.on(dashjs.MediaPlayer.events.METRIC_CHANGED, (a,b) => {
+					if (a.type=="metricchanged") {
+						if (currentQuality!=this._player.getQualityFor("video")) {
+							currentQuality = this._player.getQualityFor("video");
+							resolve();
+						}
+					}
+				});
+				this._player.setQualityFor("video",index);
+			}
+			else {
+				resolve();
+			}
+		});
+	}
+
+	getCurrentQuality() {
+		return new Promise((resolve,reject) => {
+			if (this._player.getAutoSwitchQuality()) {// auto quality
+				resolve({
+					index: this.autoQualityIndex,
+					res: { w:null, h:null },
+					bitrate: -1,
+					src: null,
+					toString:function() { return "auto"; },
+					shortLabel:function() { return "auto"; },
+					compare:function(q2) { return this.bitrate - q2.bitrate; }
+				});
+			}
+			else {
+				var index = this._player.getQualityFor("video");
+				resolve(this._getQualityObject(this._qualities[index],index,this._player.getBitrateInfoListFor("video")));
+			}
+		});
+	}
+
+	unFreeze(){
+		return paella_DeferredNotImplemented();
+	}
+
+	freeze(){
+		return paella_DeferredNotImplemented();
+	}
+
+	unload() {
+		this._callUnloadEvent();
+		return paella_DeferredNotImplemented();
+	}
+}
+
+paella.MpegDashVideo = MpegDashVideo;
+
+
+class MpegDashVideoFactory extends paella.VideoFactory {
+	isStreamCompatible(streamData) {
+		try {
+			if (base.userAgent.system.iOS) {
+				return false;
+			}
+			for (var key in streamData.sources) {
+				if (key=='mpd') return true;
+			}
+		}
+		catch (e) {}
+		return false;
+	}
+
+	getVideoObject(id, streamData, rect) {
+		++paella.videoFactories.Html5VideoFactory.s_instances;
+		return new paella.MpegDashVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+	}
+}
+
+paella.videoFactories.MpegDashVideoFactory = MpegDashVideoFactory;
+
+})();
+
+
+paella.addPlugin(function() {
+	return class MultipleQualitiesPlugin extends paella.ButtonPlugin {
+		
+		getAlignment() { return 'right'; }
+		getSubclass() { return "showMultipleQualitiesPlugin"; }
+		getIconClass() { return 'icon-screen'; }
+		getIndex() { return 2030; }
+		getName() { return "es.upv.paella.multipleQualitiesPlugin"; }
+		getDefaultToolTip() { return base.dictionary.translate("Change video quality"); }
+		
+		closeOnMouseOut() { return true; }
+		
+		checkEnabled(onSuccess) {
+			this._available = [];
+			paella.player.videoContainer.getQualities()
+				.then((q) => {
+					this._available = q;
+					onSuccess(q.length>1);
+				});
+		}		
+			
+		setup() {
+			this.setQualityLabel();
+			paella.events.bind(paella.events.qualityChanged, (event) => this.setQualityLabel());
+		}
+
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+		
+		buildContent(domElement) {
+			this._available.forEach((q) => {
+				var title = q.shortLabel();
+				domElement.appendChild(this.getItemButton(q));
+			});
+		}
+
+		getItemButton(quality) {
+			var elem = document.createElement('div');
+			let This = this;
+			paella.player.videoContainer.getCurrentQuality()
+				.then((currentIndex,currentData) => {
+					var label = quality.shortLabel();
+					elem.className = this.getButtonItemClass(label,quality.index==currentIndex);
+					elem.id = label;
+					elem.innerText = label;
+					elem.data = quality;
+					$(elem).click(function(event) {
+						$('.multipleQualityItem').removeClass('selected');
+						$('.multipleQualityItem.' + this.data.toString()).addClass('selected');
+						paella.player.videoContainer.setQuality(this.data.index)
+							.then(() => {
+								paella.player.controls.hidePopUp(This.getName());
+								This.setQualityLabel();
+							});
+					});
+				});
+			return elem;
+		}
+		
+		setQualityLabel() {
+			paella.player.videoContainer.getCurrentQuality()
+				.then((q) => {
+					this.setText(q.shortLabel());
+				});
+		}
+
+		getButtonItemClass(profileName,selected) {
+			return 'multipleQualityItem ' + profileName  + ((selected) ? ' selected':'');
+		}
+	}
+});
+paella.addPlugin(function() {
+    return class PIPModePlugin extends paella.ButtonPlugin {
+        getIndex() { return 551; }
+        getAlignment() { return 'right'; }
+        getSubclass() { return "PIPModeButton"; }
+        getIconClass() { return 'icon-pip'; }
+        getName() { return "es.upv.paella.pipModePlugin"; }
+        checkEnabled(onSuccess) {
+            var mainVideo = paella.player.videoContainer.masterVideo();
+            var video = mainVideo.video;
+
+            // PIP is only available with single stream videos
+            if (paella.player.videoContainer.streamProvider.videoStreams.length!=1) {
+                onSuccess(false);
+            }
+            else if (video && video.webkitSetPresentationMode) {
+                onSuccess(true);
+            }
+            else if (video && 'pictureInPictureEnabled' in document) {
+                onSuccess(true);
+            }
+            else {
+                onSuccess(false);
+            }
+        }
+        getDefaultToolTip() { return base.dictionary.translate("Set picture-in-picture mode."); }
+
+        setup() {
+
+        }
+
+        action(button) {
+            var video = paella.player.videoContainer.masterVideo().video;
+            if (video.webkitSetPresentationMode) {
+                if (video.webkitPresentationMode=="picture-in-picture") {
+                    video.webkitSetPresentationMode("inline");
+                }
+                else {
+                    video.webkitSetPresentationMode("picture-in-picture");
+                }
+            }
+            else if ('pictureInPictureEnabled' in document) {
+                if (video !== document.pictureInPictureElement) {
+                    video.requestPictureInPicture();
+                } else {
+                    document.exitPictureInPicture();
+                }
+            }
+
+        }
+    }
+});
+
+//paella.plugins.PlayPauseButtonPlugin = Class.create(paella.ButtonPlugin, {
+paella.addPlugin(function() {
+	return class PlayPauseButtonPlugin extends paella.ButtonPlugin {
+		constructor() {
+			super();
+			this.playIconClass = 'icon-play';
+			this.pauseIconClass = 'icon-pause';
+			this.playSubclass = 'playButton';
+			this.pauseSubclass = 'pauseButton';
+		}
+	
+		getAlignment() { return 'left'; }
+		getSubclass() { return this.playSubclass; }
+		getIconClass() { return this.playIconClass; }
+		getName() { return "es.upv.paella.playPauseButtonPlugin"; }
+		getDefaultToolTip() { return base.dictionary.translate("Play"); }
+		getIndex() { return 110; }
+	
+		checkEnabled(onSuccess) {
+			onSuccess(true);
+		}
+	
+		setup() {
+			if (paella.player.playing()) {
+				this.changeIconClass(this.playIconClass);
+			}
+			paella.events.bind(paella.events.play,(event) => {
+				this.changeIconClass(this.pauseIconClass);
+				this.changeSubclass(this.pauseSubclass);
+				this.setToolTip(paella.dictionary.translate("Pause"));
+			});
+
+			paella.events.bind(paella.events.pause,(event) => {
+				this.changeIconClass(this.playIconClass);
+				this.changeSubclass(this.playSubclass);
+				this.setToolTip(paella.dictionary.translate("Play"));
+			});
+
+			paella.events.bind(paella.events.ended,(event) => {
+				this.changeIconClass(this.playIconClass);
+				this.changeSubclass(this.playSubclass);
+				this.setToolTip(paella.dictionary.translate("Play"));
+			});
+		}
+	
+		action(button) {
+			paella.player.videoContainer.paused()
+				.then(function(paused) {
+					if (paused) {
+						paella.player.play();
+					}
+					else {
+						paella.player.pause();
+					}
+				});
+		}
+	}	
+});
+
+
+
+paella.addPlugin(function() {
+	return class PlayButtonOnScreen extends paella.EventDrivenPlugin {
+		constructor() {
+			super();
+			this.containerId = 'paella_plugin_PlayButtonOnScreen';
+			this.container = null;
+			this.enabled = true;
+			this.isPlaying = false;
+			this.showIcon = true;
+			this.firstPlay = false;
+		}
+	
+		checkEnabled(onSuccess) {
+			this.showOnEnd = true;
+			paella.data.read('relatedVideos', {id:paella.player.videoIdentifier}, (data) => {
+                this.showOnEnd = !Array.isArray(data) ||  data.length == 0;
+			});
+			
+			onSuccess(!paella.player.isLiveStream() || base.userAgent.system.Android 
+				|| base.userAgent.system.iOS || !paella.player.videoContainer.supportAutoplay());
+		}
+	
+		getIndex() { return 1010; }
+		getName() { return "es.upv.paella.playButtonOnScreenPlugin"; }
+	
+		setup() {
+			this.container = paella.LazyThumbnailContainer.GetIconElement();
+			paella.player.videoContainer.domElement.appendChild(this.container);
+			$(this.container).click(() =>  this.onPlayButtonClick());
+		}
+	
+		getEvents() {
+			return [paella.events.endVideo,paella.events.play,paella.events.pause,paella.events.showEditor,paella.events.hideEditor];
+		}
+	
+		onEvent(eventType,params) {
+			switch (eventType) {
+				case paella.events.endVideo:
+					this.endVideo();
+					break;
+				case paella.events.play:
+					this.play();
+					break;
+				case paella.events.pause:
+					this.pause();
+					break;
+				case paella.events.showEditor:
+					this.showEditor();
+					break;
+				case paella.events.hideEditor:
+					this.hideEditor();
+					break;
+			}
+		}
+	
+		onPlayButtonClick() {
+			this.firstPlay = true;
+			this.checkStatus();
+		}
+	
+		endVideo() {
+			this.isPlaying = false;
+			this.showIcon = this.showOnEnd;
+			this.checkStatus();
+		}
+	
+		play() {
+			this.isPlaying = true;
+			this.showIcon = false;
+			this.checkStatus();
+		}
+	
+		pause() {
+			this.isPlaying = false;
+			this.showIcon = true;
+			this.checkStatus();
+		}
+	
+		showEditor() {
+			this.enabled = false;
+			this.checkStatus();
+		}
+	
+		hideEditor() {
+			this.enabled = true;
+			this.checkStatus();
+		}
+		
+		checkStatus() {
+			if ((this.enabled && this.isPlaying) || !this.enabled || !this.showIcon) {
+				$(this.container).hide();
+			}
+			// Only show play button if none of the video players require mouse events
+			else if (!paella.player.videoContainer.streamProvider.videoPlayers.every((p) => p.canvasData.mouseEventsSupport)) {
+				$(this.container).show();
+			}
+		}	
+	}
+});
+
+
+
+paella.addPlugin(function() {
+	return class PlaybackRate extends paella.ButtonPlugin {
+		
+		getAlignment() { return 'left'; }
+		getSubclass() { return "showPlaybackRateButton"; }
+		getIconClass() { return 'icon-screen'; }
+		getIndex() { return 140; }
+		getName() { return "es.upv.paella.playbackRatePlugin"; }
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+		getDefaultToolTip() { return base.dictionary.translate("Set playback rate"); }
+
+		checkEnabled(onSuccess) {
+			this.buttonItems = null;
+			this.buttons =  [];
+			this.selected_button =  null;
+			this.defaultRate = null;
+			this._domElement = null;
+			this.available_rates =  null;
+			var enabled = (!base.userAgent.browser.IsMobileVersion && paella.player.videoContainer.masterVideo() instanceof paella.Html5Video);
+			onSuccess(enabled && !paella.player.videoContainer.streamProvider.isLiveStreaming);
+		}
+
+		closeOnMouseOut() { return true; }
+
+		setup() {
+			this.defaultRate = 1.0;
+			this.available_rates = this.config.availableRates || [0.75, 1, 1.25, 1.5];
+		}
+
+		buildContent(domElement) {
+			this._domElement = domElement;
+			this.buttonItems = {};
+			this.available_rates.forEach((rate) => {
+				domElement.appendChild(this.getItemButton(rate+"x", rate));
+			});
+		}
+
+		getItemButton(label,rate) {
+			var elem = document.createElement('div');
+			if(rate == 1.0){
+				elem.className = this.getButtonItemClass(label,true);
+			}
+			else{
+				elem.className = this.getButtonItemClass(label,false);
+			}
+			elem.id = label + '_button';
+			elem.innerText = label;
+			elem.data = {
+				label:label,
+				rate:rate,
+				plugin:this
+			};
+			$(elem).click(function(event) {
+				this.data.plugin.onItemClick(this,this.data.label,this.data.rate);
+			});
+			return elem;
+		}
+
+		onItemClick(button,label,rate) {
+			var self = this;
+			paella.player.videoContainer.setPlaybackRate(rate);
+			this.setText(label);
+			paella.player.controls.hidePopUp(this.getName());
+
+
+			var arr = self._domElement.children;
+			for(var i=0; i < arr.length; i++){
+				arr[i].className = self.getButtonItemClass(i,false);
+			}
+			button.className = self.getButtonItemClass(i,true);
+		}
+
+		getText() {
+			return "1x";
+		}
+
+		getProfileItemButton(profile,profileData) {
+			var elem = document.createElement('div');
+			elem.className = this.getButtonItemClass(profile,false);
+			elem.id = profile + '_button';
+
+			elem.data = {
+				profile:profile,
+				profileData:profileData,
+				plugin:this
+			};
+			$(elem).click(function(event) {
+				this.data.plugin.onItemClick(this,this.data.profile,this.data.profileData);
+			});
+			return elem;
+		}
+
+		getButtonItemClass(profileName,selected) {
+			return 'playbackRateItem ' + profileName  + ((selected) ? ' selected':'');
+		}
+	}
+});
+
+paella.addPlugin(function() {
+	return class RatePlugin extends paella.ButtonPlugin {
+		
+		getAlignment() { return 'right'; }
+		getSubclass() { return "rateButtonPlugin"; }
+		getIconClass() { return 'icon-star'; }
+		getIndex() { return 540; }
+		getName() { return "es.upv.paella.ratePlugin"; }
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+		getDefaultToolTip() { return base.dictionary.translate("Rate this video"); }		
+		checkEnabled(onSuccess) {
+			this.buttonItems = null;
+			this.buttons =  [];
+			this.selected_button =  null;
+			this.score = 0;
+			this.count = 0;
+			this.myScore = 0;
+			this.canVote = false;
+			this.scoreContainer =  {
+				header:null,
+				rateButtons:null
+			};
+			paella.data.read('rate',{id:paella.initDelegate.getId()}, (data,status) => {
+				if (data && typeof(data)=='object') {
+					this.score = Number(data.mean).toFixed(1);
+					this.count = data.count;
+					this.myScore = data.myScore;
+					this.canVote = data.canVote;
+				}
+				onSuccess(status);
+			});
+		}
+
+		setup() {
+		}
+
+		setScore(s) {
+			this.score = s;
+			this.updateScore();
+		}
+
+		closeOnMouseOut() { return true; }
+
+		updateHeader() {
+			let score = base.dictionary.translate("Not rated");
+			if (this.count>0) {
+				score = '<i class="glyphicon glyphicon-star"></i>';
+				score += ` ${ this.score } ${ this.count } ${ base.dictionary.translate('votes') }`;
+			}
+
+			this.scoreContainer.header.innerHTML = `
+			<div>
+				<h4>${ base.dictionary.translate('Video score') }:</h4>
+				<h5>
+					${ score }
+				</h5>
+				</h4>
+				<h4>${ base.dictionary.translate('Vote:') }</h4>
+			</div>
+			`;
+		}
+
+		updateRateButtons() {
+			this.scoreContainer.rateButtons.className = "rateButtons";
+			this.buttons = [];
+			if (this.canVote) {
+				this.scoreContainer.rateButtons.innerText = "";
+				for (let i = 0; i<5; ++i) {
+					let btn = this.getStarButton(i + 1);
+					this.buttons.push(btn);
+					this.scoreContainer.rateButtons.appendChild(btn);
+				}
+			}
+			else {
+				this.scoreContainer.rateButtons.innerHTML = `<h5>${ base.dictionary.translate('Login to vote')}</h5>`;
+			}
+			this.updateVote();
+		}
+
+		buildContent(domElement) {
+			var This = this;
+			This._domElement = domElement;
+
+			var header = document.createElement('div');
+			domElement.appendChild(header);
+			header.className = "rateContainerHeader";
+			this.scoreContainer.header = header;
+			this.updateHeader();
+
+			var rateButtons = document.createElement('div');
+			this.scoreContainer.rateButtons = rateButtons;
+			domElement.appendChild(rateButtons);
+			this.updateRateButtons();
+		}
+
+		getStarButton(score) {
+			let This = this;
+			let elem = document.createElement('i');
+			elem.data = {
+				score: score,
+				active: false
+			};
+			elem.className = "starButton glyphicon glyphicon-star-empty";
+			$(elem).click(function(event) {
+				This.vote(this.data.score);
+			});
+			return elem;
+		}
+
+		vote(score) {
+			this.myScore = score;
+			let data = {
+				mean: this.score,
+				count: this.count,
+				myScore: score,
+				canVote: this.canVote
+			};
+			paella.data.write('rate',{id:paella.initDelegate.getId()}, data, (result) => {
+				paella.data.read('rate',{id:paella.initDelegate.getId()}, (data,status) => {
+					if (data && typeof(data)=='object') {
+						this.score = Number(data.mean).toFixed(1);
+						this.count = data.count;
+						this.myScore = data.myScore;
+						this.canVote = data.canVote;
+					}
+					this.updateHeader();
+					this.updateRateButtons();
+				});
+			});
+		}
+
+		updateVote() {
+			this.buttons.forEach((item,index) => {
+				item.className = index<this.myScore ? "starButton glyphicon glyphicon-star" : "starButton glyphicon glyphicon-star-empty";
+			});
+		}
+	}
+});
+
+// Change this data delegate to read the related videos form an external source
+// Default behaviour is to get the related videos from the data.json file
+
+paella.addDataDelegate("relatedVideos",() => {
+    return class RelatedVideoDataDelegate extends paella.DataDelegate {
+        read(context,params,onSuccess) {
+            let videoMetadata = paella.player.videoLoader.getMetadata();
+            if (videoMetadata.related) {
+                onSuccess(videoMetadata.related);
+            }
+        }
+    }
+});
+
+paella.addPlugin(() => {
+    return class RelatedVideoPlugin extends paella.EventDrivenPlugin {
+        getName() { return "es.upv.paella.relatedVideosPlugin"; }
+
+        checkEnabled(onSuccess) {
+            paella.data.read('relatedVideos', {id:paella.player.videoIdentifier}, (data) => {
+                this._relatedVideos = data;
+                onSuccess(Array.isArray(this._relatedVideos) &&  this._relatedVideos.length > 0);
+            });
+        }
+
+        setup() {
+
+        }
+
+        getEvents() { return [
+            paella.events.ended,
+            paella.events.timeUpdate,
+            paella.events.play,
+            paella.events.seekTo,
+            paella.events.seekToTime,
+        ];}
+
+        onEvent(eventType, params) {
+            if (eventType == paella.events.ended) {
+                this.showRelatedVideos();
+            }
+            else {
+                this.hideRelatedVideos();
+            }
+        }
+
+        showRelatedVideos() {
+            this.hideRelatedVideos();
+            let container = document.createElement('div');
+            container.className = "related-video-container";
+
+            function getRelatedVideoLink(data,className) {
+                let linkContainer = document.createElement("a");
+                linkContainer.className = "related-video-link " + className;
+                linkContainer.innerHTML = `
+                <img src="${ data.thumb }" alt="">
+                <p>${ data.title }</p>
+                `;
+                linkContainer.href = data.url;
+                return linkContainer;
+            }
+
+            this._messageContainer = paella.player.videoContainer.overlayContainer.addElement(container, {
+                left: 0,
+                right: 0,
+                width: 1280,
+                height: 720
+            });
+            switch (this._relatedVideos.length) {
+            case 1:
+                container.appendChild(getRelatedVideoLink(this._relatedVideos[0],'related-video-single'));
+                break;
+            case 2:
+            default:
+                container.appendChild(getRelatedVideoLink(this._relatedVideos[0],'related-video-dual-1'));
+                container.appendChild(getRelatedVideoLink(this._relatedVideos[1],'related-video-dual-2'));
+                break;
+            }
+            
+            paella.player.videoContainer.attenuationEnabled = true;
+        }
+
+        hideRelatedVideos() {
+            if (this._messageContainer) {
+                paella.player.videoContainer.overlayContainer.removeElement(this._messageContainer);
+                this._messageContainer = null;
+
+                paella.player.videoContainer.attenuationEnabled = false;
+            }
+        }
+    }
+});
+
+
+(() => {
+
+class RTMPVideo extends paella.VideoElementBase {
+
+	constructor(id,stream,left,top,width,height) {
+		super(id,stream,'div',left,top,width,height);
+
+		this._posterFrame = null;
+		this._currentQuality = null;
+		this._duration = 0;
+		this._paused = true;
+		this._streamName = null;
+		this._flashId = null;
+		this._swfContainer = null;
+		this._flashVideo = null;
+		this._volume = 1;
+
+		this._flashId = id + 'Movie';
+		this._streamName = 'rtmp';
+		var This = this;
+
+		this._stream.sources.rtmp.sort(function(a,b) {
+			return a.res.h - b.res.h;
+		});
+
+		var processEvent = function(eventName,params) {
+			if (eventName!="loadedmetadata" && eventName!="pause" && !This._isReady) {
+				This._isReady = true;
+				This._duration = params.duration;
+				$(This.swfContainer).trigger("paella:flashvideoready");
+			}
+			if (eventName=="progress") {
+				try { This.flashVideo.setVolume(This._volume); }
+				catch(e) {}
+				base.log.debug("Flash video event: " + eventName + ", progress: " + This.flashVideo.currentProgress());
+			}
+			else if (eventName=="ended") {
+				base.log.debug("Flash video event: " + eventName);
+				paella.events.trigger(paella.events.pause);
+				paella.player.controls.showControls();
+			}
+			else {
+				base.log.debug("Flash video event: " + eventName);
+			}
+		};
+
+		var eventReceived = function(eventName,params) {
+			params = params.split(",");
+			var processedParams = {};
+			for (var i=0; i<params.length; ++i) {
+				var splitted = params[i].split(":");
+				var key = splitted[0];
+				var value = splitted[1];
+				if (value=="NaN") {
+					value = NaN;
+				}
+				else if (/^true$/i.test(value)) {
+					value = true;
+				}
+				else if (/^false$/i.test(value)) {
+					value = false;
+				}
+				else if (!isNaN(parseFloat(value))) {
+					value = parseFloat(value);
+				}
+				processedParams[key] = value;
+			}
+			processEvent(eventName,processedParams);
+		};
+
+		paella.events.bind(paella.events.flashVideoEvent,function(event,params) {
+			if (This.flashId==params.source) {
+				eventReceived(params.eventName,params.values);
+			}
+		});
+	}
+
+	get swfContainer() { return this._swfContainer; };
+
+	get flashId() { return this._flashId; }
+
+	get flashVideo() { return this._flashVideo; }
+
+	_createSwfObject(swfFile,flashVars) {
+		var id = this.identifier;
+		var parameters = { wmode:'transparent' };
+
+		var domElement = document.createElement('div');
+		this.domElement.appendChild(domElement);
+		domElement.id = id + "Movie";
+		this._swfContainer = domElement;
+
+		if (swfobject.hasFlashPlayerVersion("9.0.0")) {
+			swfobject.embedSWF(swfFile,domElement.id,"100%","100%","9.0.0","",flashVars,parameters, null, function callbackFn(e){
+				if (e.success == false){
+					var message = document.createElement('div');
+
+					var header = document.createElement('h3');
+					header.innerText = base.dictionary.translate("Flash player problem");
+					var text = document.createElement('div');
+					text.innerHTML = base.dictionary.translate("A problem occurred trying to load flash player.") + "<br>" +
+						base.dictionary.translate("Please go to {0} and install it.")
+							.replace("{0}", "<a style='color: #800000; text-decoration: underline;' href='http://www.adobe.com/go/getflash'>http://www.adobe.com/go/getflash</a>") + '<br>' +
+
+						base.dictionary.translate("If the problem presist, contact us.");
+
+					var link = document.createElement('a');
+					link.setAttribute("href", "http://www.adobe.com/go/getflash");
+					link.innerHTML = '<img style="margin:5px;" src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtener Adobe Flash Player" />';
+
+					message.appendChild(header);
+					message.appendChild(text);
+					message.appendChild(link);
+
+					paella.messageBox.showError(message.innerHTML);
+				}
+			});
+		}
+		else {
+			var message = document.createElement('div');
+
+			var header = document.createElement('h3');
+			header.innerText = base.dictionary.translate("Flash player needed");
+
+			var text = document.createElement('div');
+
+			text.innerHTML = base.dictionary.translate("You need at least Flash player 9 installed.") + "<br>" +
+				base.dictionary.translate("Please go to {0} and install it.")
+					.replace("{0}", "<a style='color: #800000; text-decoration: underline;' href='http://www.adobe.com/go/getflash'>http://www.adobe.com/go/getflash</a>");
+
+			var link = document.createElement('a');
+			link.setAttribute("href", "http://www.adobe.com/go/getflash");
+			link.innerHTML = '<img style="margin:5px;" src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtener Adobe Flash Player" />';
+
+			message.appendChild(header);
+			message.appendChild(text);
+			message.appendChild(link);
+
+			paella.messageBox.showError(message.innerHTML);
+		}
+
+		var flashObj = $('#' + domElement.id)[0];
+		return flashObj;
+	}
+
+	_deferredAction(action) {
+		return new Promise((resolve,reject) => {
+			if (this.ready) {
+				resolve(action());
+			}
+			else {
+				$(this.swfContainer).bind('paella:flashvideoready', () => {
+					this._ready = true;
+					resolve(action());
+				});
+			}
+		});
+	}
+
+	_getQualityObject(index, s) {
+		return {
+			index: index,
+			res: s.res,
+			src: s.src,
+			toString:function() { return this.res.w + "x" + this.res.h; },
+			shortLabel:function() { return this.res.h + "p"; },
+			compare:function(q2) { return this.res.w*this.res.h - q2.res.w*q2.res.h; }
+		};
+	}
+
+	// Initialization functions
+	getVideoData() {
+		let FlashVideoPlugin = this;
+		return new Promise((resolve,reject) => {
+			this._deferredAction(() => {
+				let videoData = {
+					duration: FlashVideoPlugin.flashVideo.duration(),
+					currentTime: FlashVideoPlugin.flashVideo.getCurrentTime(),
+					volume: FlashVideoPlugin.flashVideo.getVolume(),
+					paused: FlashVideoPlugin._paused,
+					ended: FlashVideoPlugin._ended,
+					res: {
+						w: FlashVideoPlugin.flashVideo.getWidth(),
+						h: FlashVideoPlugin.flashVideo.getHeight()
+					}
+				};
+				resolve(videoData);
+			});
+		});
+	}
+
+	setPosterFrame(url) {
+		if (this._posterFrame==null) {
+			this._posterFrame = url;
+			var posterFrame = document.createElement('img');
+			posterFrame.src = url;
+			posterFrame.className = "videoPosterFrameImage";
+			posterFrame.alt = "poster frame";
+			this.domElement.appendChild(posterFrame);
+			this._posterFrameElement = posterFrame;
+		}
+	//	this.video.setAttribute("poster",url);
+	}
+
+	setAutoplay(auto) {
+		this._autoplay = auto;
+	}
+
+	load() {
+		var This = this;
+		var sources = this._stream.sources.rtmp;
+		if (this._currentQuality===null && this._videoQualityStrategy) {
+			this._currentQuality = this._videoQualityStrategy.getQualityIndex(sources);
+		}
+
+		var isValid = function(stream) {
+			return stream.src && typeof(stream.src)=='object' && stream.src.server && stream.src.stream;
+		};
+
+		var stream = this._currentQuality<sources.length ? sources[this._currentQuality]:null;
+		if (stream) {
+			if (!isValid(stream)) {
+				return paella_DeferredRejected(new Error("Invalid video data"));
+			}
+			else {
+				var subscription = false;
+				if (stream.src.requiresSubscription===undefined && paella.player.config.player.rtmpSettings) {
+					subscription = paella.player.config.player.rtmpSettings.requiresSubscription || false;
+				}
+				else if (stream.src.requiresSubscription) {
+					subscription = stream.src.requiresSubscription;
+				}
+				var parameters = {};
+				var swfName = 'resources/deps/player_streaming.swf';
+				if (this._autoplay) {
+					parameters.autoplay = this._autoplay;
+				}
+				if (base.parameters.get('debug')=="true") {
+					parameters.debugMode = true;
+				}
+
+				parameters.playerId = this.flashId;
+				parameters.isLiveStream = stream.isLiveStream!==undefined ? stream.isLiveStream:false;
+				parameters.server = stream.src.server;
+				parameters.stream = stream.src.stream;
+				parameters.subscribe = subscription;
+				if (paella.player.config.player.rtmpSettings && paella.player.config.player.rtmpSettings.bufferTime!==undefined) {
+					parameters.bufferTime = paella.player.config.player.rtmpSettings.bufferTime;
+				}
+				this._flashVideo = this._createSwfObject(swfName,parameters);
+
+				$(this.swfContainer).trigger("paella:flashvideoready");
+
+				return this._deferredAction(function() {
+					return stream;
+				});
+			}
+
+		}
+		else {
+			return paella_DeferredRejected(new Error("Could not load video: invalid quality stream index"));
+		}
+	}
+
+	getQualities() {
+		return new Promise((resolve,reject) => {
+			setTimeout(() => {
+				var result = [];
+				var sources = this._stream.sources.rtmp;
+				var index = -1;
+				sources.forEach((s) => {
+					index++;
+					result.push(this._getQualityObject(index,s));
+				});
+				resolve(result);
+			},50);
+		});
+	}
+
+	setQuality(index) {
+		index = index!==undefined && index!==null ? index:0;
+		return new Promise((resolve,reject) => {
+			var paused = this._paused;
+			var sources = this._stream.sources.rtmp;
+			this._currentQuality = index<sources.length ? index:0;
+			var source = sources[index];
+			this._ready = false;
+			this._isReady = false;
+			this.load()
+				.then(function() {
+					resolve();
+				});
+		});
+	}
+
+	getCurrentQuality() {
+		return new Promise((resolve,reject) => {
+			resolve(this._getQualityObject(this._currentQuality,
+										   this._stream.sources.rtmp[this._currentQuality]));
+		});
+	}
+
+	play() {
+		var This = this;
+		return this._deferredAction(function() {
+			if (This._posterFrameElement) {
+				This._posterFrameElement.parentNode.removeChild(This._posterFrameElement);
+				This._posterFrameElement = null;
+			}
+			This._paused = false;
+			This.flashVideo.play();
+		});
+	}
+
+	pause() {
+		var This = this;
+		return this._deferredAction(function() {
+			This._paused = true;
+			This.flashVideo.pause();
+		});
+	}
+
+	isPaused() {
+		var This = this;
+		return this._deferredAction(function() {
+			return This._paused;
+		});
+	}
+
+	duration() {
+		var This = this;
+		return this._deferredAction(function() {
+			return This.flashVideo.duration();
+		});
+	}
+
+	setCurrentTime(time) {
+		var This = this;
+		return this._deferredAction(function() {
+			var duration = This.flashVideo.duration();
+			This.flashVideo.seekTo(time * 100 / duration);
+		});
+	}
+
+	currentTime() {
+		var This = this;
+		return this._deferredAction(function() {
+			return This.flashVideo.getCurrentTime();
+		});
+	}
+
+	setVolume(volume) {
+		var This = this;
+		this._volume = volume;
+		return this._deferredAction(function() {
+			This.flashVideo.setVolume(volume);
+		});
+	}
+
+	volume() {
+		var This = this;
+		return this._deferredAction(function() {
+			return This.flashVideo.getVolume();
+		});
+	}
+
+	setPlaybackRate(rate) {
+		var This = this;
+		return this._deferredAction(function() {
+			This._playbackRate = rate;
+		});
+	}
+
+	playbackRate() {
+		var This = this;
+		return this._deferredAction(function() {
+			return This._playbackRate;
+		});
+	}
+
+	goFullScreen() {
+		return paella_DeferredNotImplemented();
+	}
+
+	unFreeze(){
+		return this._deferredAction(function() {});
+	}
+
+	freeze() {
+		return this._deferredAction(function() {});
+	}
+
+	unload() {
+		this._callUnloadEvent();
+		return paella_DeferredNotImplemented();
+	}
+
+	getDimensions() {
+		return paella_DeferredNotImplemented();
+	}
+}
+
+paella.RTMPVideo = RTMPVideo;
+
+class RTMPVideoFactory extends paella.VideoFactory {
+	isStreamCompatible(streamData) {
+		try {
+			if (base.userAgent.system.iOS || base.userAgent.system.Android) {
+				return false;
+			}
+			for (var key in streamData.sources) {
+				if (key=='rtmp') return true;
+			}
+		}
+		catch (e) {}
+		return false;
+	}
+
+	getVideoObject(id, streamData, rect) {
+		return new paella.RTMPVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+	}
+}
+
+paella.videoFactories.RTMPVideoFactory = RTMPVideoFactory;
+
+})();
+/////////////////////////////////////////////////
+// Caption Search
+/////////////////////////////////////////////////
+paella.addPlugin(function() {
+	return class CaptionsSearchPlugIn extends paella.SearchServicePlugIn {
+		getName() { return "es.upv.paella.search.captionsSearchPlugin"; }
+	
+		search(text, next) {
+			paella.captions.search(text, next);
+		}	
+	}
+});
+
+paella.addPlugin(function() {
+	return class SearchPlugin extends paella.ButtonPlugin {
+		getAlignment() { return 'right'; }
+		getSubclass() { return 'searchButton'; }
+		getIconClass() { return 'icon-binoculars'; }
+		getName() { return "es.upv.paella.searchPlugin"; }
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }	
+		getDefaultToolTip() { return base.dictionary.translate("Search"); }
+		getIndex() {return 510;}
+		
+		closeOnMouseOut() { return true; }
+		
+		checkEnabled(onSuccess) {
+			this._open = false;
+			this._sortDefault = 'time';
+			this._colorSearch = false;
+			this._localImages = null;
+			this._searchTimer = null;
+			this._searchTimerTime = 1500;
+			this._searchBody = null;
+			this._trimming = null;
+			onSuccess(true);
+		}
+
+		setup() {
+			var self = this;
+			$('.searchButton').click(function(event){
+				if(self._open){
+					self._open = false;
+				}
+				else {
+					self._open = true;
+					setTimeout(function(){
+						$("#searchBarInput").focus();
+					}, 0);
+				}
+			});
+			//GET THE FRAME LIST
+			self._localImages = paella.initDelegate.initParams.videoLoader.frameList;
+
+			//config
+			self._colorSearch = self.config.colorSearch || false;
+			self._sortDefault = self.config.sortType || "time";
+			
+			paella.events.bind(paella.events.controlBarWillHide, function(evt) { if(self._open)paella.player.controls.cancelHideBar(); });
+			paella.player.videoContainer.trimming()
+				.then((trimData) => {
+					self._trimming = trimData;
+				});
+		}
+
+		prettyTime(seconds){
+			// TIME FORMAT
+			var hou = Math.floor(seconds / 3600)%24;
+			hou = ("00"+hou).slice(hou.toString().length);
+
+			var min = Math.floor(seconds / 60)%60;
+			min = ("00"+min).slice(min.toString().length);
+
+			var sec = Math.floor(seconds % 60);
+			sec = ("00"+sec).slice(sec.toString().length);
+			var timestr = (hou+":"+min+":"+sec);
+
+			return timestr;
+		}
+
+		search(text,cb){
+			paella.searchService.search(text, cb);
+		}
+
+		getPreviewImage(time){
+			var thisClass = this;
+			var keys = Object.keys(thisClass._localImages);
+
+			keys.push(time);
+
+			keys.sort(function(a,b){
+				return parseInt(a)-parseInt(b);
+			});
+
+			var n = keys.indexOf(time)-1;
+			n = (n > 0) ? n : 0;
+
+			var i = keys[n];
+			i=parseInt(i);
+
+			return thisClass._localImages[i].url;
+		}
+
+		createLoadingElement(parent){
+			var loadingResults = document.createElement('div');
+			loadingResults.className = "loader";
+
+			var htmlLoader = "<svg version=\"1.1\" id=\"loader-1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"40px\" height=\"40px\" viewBox=\"0 0 50 50\" style=\"enable-background:new 0 0 50 50;\" xml:space=\"preserve\">"+
+			"<path fill=\"#000\" d=\"M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z\">"+
+			"<animateTransform attributeType=\"xml\""+
+			"attributeName=\"transform\""+
+			"type=\"rotate\""+
+			"from=\"0 25 25\""+
+			"to=\"360 25 25\""+
+			"dur=\"0.6s\""+
+			"repeatCount=\"indefinite\"/>"+
+			"</path>"+
+			"</svg>";
+			loadingResults.innerHTML = htmlLoader;
+			parent.appendChild(loadingResults);
+			var sBodyText = document.createElement('p');
+			sBodyText.className = 'sBodyText';
+			sBodyText.innerText = base.dictionary.translate("Searching") + "...";
+			parent.appendChild(sBodyText);
+		}
+
+		createNotResultsFound(parent){
+			var noResults = document.createElement('div');
+			noResults.className = "noResults";
+			noResults.innerText = base.dictionary.translate("Sorry! No results found.");
+			parent.appendChild(noResults);
+		}
+
+		doSearch(txt,searchBody) {
+			var thisClass = this;
+			$(searchBody).empty();
+
+			//LOADING CONTAINER
+			thisClass.createLoadingElement(searchBody);
+		
+			thisClass.search(txt, function(err, results){
+
+			$(searchBody).empty();
+			//BUILD SEARCH RESULTS
+			if(!err){
+				if(results.length == 0){ // 0 RESULTS FOUND
+					thisClass.createNotResultsFound(searchBody);
+				}
+				else {
+					for(var i=0; i<results.length; i++){ // FILL THE BODY CONTAINER WITH RESULTS
+						if (thisClass._trimming.enabled && results[i].time <= thisClass._trimming.start){
+							continue;
+						}
+						//SEARCH SORT TYPE (TIME oR SCoRE)
+						if(thisClass._sortDefault == 'score') {
+							results.sort(function(a,b){
+								return b.score - a.score;
+							});
+						}
+						if(thisClass._sortDefault == 'time') {
+							results.sort(function(a,b){
+								return a.time - b.time;
+							});
+						}
+
+						var sBodyInnerContainer = document.createElement('div');
+						sBodyInnerContainer.className = 'sBodyInnerContainer';
+						
+						//COLOR
+						if(thisClass._colorSearch){ 
+
+							if(results[i].score <= 0.3) {$(sBodyInnerContainer).addClass('redScore');}
+
+							if(results[i].score >= 0.7) {$(sBodyInnerContainer).addClass('greenScore');}
+						}
+
+						var TimePicContainer = document.createElement('div');
+						TimePicContainer.className = 'TimePicContainer';
+
+
+						var sBodyPicture = document.createElement('img');
+						sBodyPicture.className = 'sBodyPicture';
+						sBodyPicture.src = thisClass.getPreviewImage(results[i].time);
+
+						
+						var sBodyText = document.createElement('p');
+						sBodyText.className = 'sBodyText';
+						let time = thisClass._trimming.enabled ? results[i].time - thisClass._trimming.start : results[i].time;
+						sBodyText.innerHTML = "<span class='timeSpan'>"+thisClass.prettyTime(time)+"</span>"+paella.AntiXSS.htmlEscape(results[i].content);
+
+
+						TimePicContainer.appendChild(sBodyPicture);
+						
+
+						sBodyInnerContainer.appendChild(TimePicContainer);
+						sBodyInnerContainer.appendChild(sBodyText);
+						
+
+						searchBody.appendChild(sBodyInnerContainer);
+						//ADD SECS TO DOM FOR EASY HANDLE
+						sBodyInnerContainer.setAttribute('sec', time);
+
+						//jQuery Binds for the search
+						$(sBodyInnerContainer).hover(
+							function(){ 
+								$(this).css('background-color','#faa166');	           		
+							},
+							function(){ 
+								$(this).removeAttr('style');
+							}
+						);
+
+						$(sBodyInnerContainer).click(function(){ 
+							var sec = $(this).attr("sec");
+							paella.player.videoContainer.seekToTime(parseInt(sec));
+							paella.player.play();
+						});
+					}
+				}
+			}
+			});
+		}
+
+		buildContent(domElement) {
+			var thisClass = this;
+			var myUrl = null;
+
+			//SEARCH CONTAINER
+			var searchPluginContainer = document.createElement('div');
+			searchPluginContainer.className = 'searchPluginContainer';
+				
+				//SEARCH BODY
+				var searchBody = document.createElement('div');
+				searchBody.className = 'searchBody';
+				searchPluginContainer.appendChild(searchBody);
+				
+				thisClass._searchBody = searchBody;
+
+
+			//SEARCH BAR
+			var searchBar = document.createElement('div');
+			searchBar.className = 'searchBar';
+			searchPluginContainer.appendChild(searchBar);
+
+				//INPUT
+				var input = document.createElement("input");
+				input.className = "searchBarInput";
+				input.type = "text";
+				input.id ="searchBarInput";
+				input.name = "searchString";
+				input.placeholder = base.dictionary.translate("Search");
+				searchBar.appendChild(input);
+
+				$(input).change(function(){
+					var text = $(input).val();
+					if(thisClass._searchTimer != null){
+						thisClass._searchTimer.cancel();
+					}
+					if(text!=""){
+						thisClass.doSearch(text, searchBody);
+					}
+				});
+
+				$(input).keyup(function(event){
+					if(event.keyCode != 13){ //IF no ENTER PRESSED SETUP THE TIMER
+						var text = $(input).val();
+						if(thisClass._searchTimer != null){
+							thisClass._searchTimer.cancel();
+						}
+						if(text!=""){
+							thisClass._searchTimer = new base.Timer(function(timer) {
+								thisClass.doSearch(text, searchBody);
+							}, thisClass._searchTimerTime);
+						}
+						else {
+							$(thisClass._searchBody).empty();
+						}
+					}			
+				});
+				
+				$(input).focus(function(){
+					paella.keyManager.enabled = false;
+				});
+				
+				$(input).focusout(function(){
+					paella.keyManager.enabled = true;
+				});
+				
+				
+
+			domElement.appendChild(searchPluginContainer);
+
+		}
+
+	}
+});
+
+paella.addPlugin(function() {
+	return class ShowEditorPlugin extends paella.VideoOverlayButtonPlugin {
+		getName() {
+			return "es.upv.paella.showEditorPlugin";
+		}
+		getSubclass() { return "showEditorButton"; }
+		getIconClass() { return 'icon-pencil'; }
+		getAlignment() { return 'right'; }
+		getIndex() {return 10;}
+		getDefaultToolTip() { return base.dictionary.translate("Enter editor mode"); }
+
+		checkEnabled(onSuccess) {			
+			if (this.config.editorUrl) {
+				paella.initDelegate.initParams.accessControl.canWrite()
+				.then((canWrite)=>{
+					var enabled = (canWrite); // && !base.userAgent.browser.IsMobileVersion && !paella.player.isLiveStream());					
+					onSuccess(enabled);
+				});	
+			}
+			else {				
+				onSuccess(false);
+			}
+		}
+
+		action(button) {
+			var editorUrl = this.config.editorUrl.replace("{id}", paella.player.videoIdentifier);
+			window.location.href = editorUrl;
+		}
+	}
+});
+
+
+paella.addPlugin(function() {
+	return class SocialPlugin extends paella.ButtonPlugin {
+		getAlignment() { return 'right'; }
+		getSubclass() { return "showSocialPluginButton"; }
+		getIconClass() { return 'icon-social'; }
+		getIndex() { return 560; }
+		getName() { return "es.upv.paella.socialPlugin"; }
+		checkEnabled(onSuccess) { onSuccess(true); }
+		getDefaultToolTip() { return base.dictionary.translate("Share this video"); }
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+		
+		closeOnMouseOut() { return true; }
+		
+		setup() {
+			this.buttonItems = null;
+			this.socialMedia = null;
+			this.buttons = [];
+			this.selected_button = null;
+			
+			if (base.dictionary.currentLanguage()=='es') {
+				var esDict = {
+					'Custom size:': 'Tamaño personalizado:',
+					'Choose your embed size. Copy the text and paste it in your html page.': 'Elija el tamaño del video a embeber. Copie el texto y péguelo en su página html.',
+					'Width:':'Ancho:',
+					'Height:':'Alto:'
+				};
+				base.dictionary.addDictionary(esDict);
+			}
+			var thisClass = this;
+
+			var Keys = {Tab:9,Return:13,Esc:27,End:35,Home:36,Left:37,Up:38,Right:39,Down:40};
+
+			$(this.button).keyup(function(event) {
+				if(thisClass.isPopUpOpen()) {
+					if (event.keyCode == Keys.Up) {
+					if(thisClass.selected_button>0){
+							if(thisClass.selected_button<thisClass.buttons.length)
+								thisClass.buttons[thisClass.selected_button].className = 'socialItemButton '+thisClass.buttons[thisClass.selected_button].data.mediaData;
+
+							thisClass.selected_button--;
+							thisClass.buttons[thisClass.selected_button].className = thisClass.buttons[thisClass.selected_button].className+' selected';
+						}
+					}
+					else if (event.keyCode == Keys.Down) {
+						if(thisClass.selected_button<thisClass.buttons.length-1){
+							if(thisClass.selected_button>=0)
+								thisClass.buttons[thisClass.selected_button].className = 'socialItemButton '+thisClass.buttons[thisClass.selected_button].data.mediaData;
+
+							thisClass.selected_button++;
+							thisClass.buttons[thisClass.selected_button].className = thisClass.buttons[thisClass.selected_button].className+' selected';
+						}
+					}
+					else if (event.keyCode == Keys.Return) {
+						thisClass.onItemClick(thisClass.buttons[thisClass.selected_button].data.mediaData);
+					}
+				}
+			});
+		}
+
+		buildContent(domElement) {
+			this.buttonItems = {};
+			this.socialMedia = ['facebook','twitter', 'embed'];
+			this.socialMedia.forEach((mediaData) => {
+			var buttonItem = this.getSocialMediaItemButton(mediaData);
+			this.buttonItems[this.socialMedia.indexOf(mediaData)] = buttonItem;
+			domElement.appendChild(buttonItem);
+			this.buttons.push(buttonItem);
+			});
+			this.selected_button = this.buttons.length;
+		}
+
+		getSocialMediaItemButton(mediaData) {
+			var elem = document.createElement('div');
+			elem.className = 'socialItemButton ' + mediaData;
+			elem.id = mediaData + '_button';
+			elem.data = {
+				mediaData:mediaData,
+				plugin:this
+			};
+			$(elem).click(function(event) {
+				this.data.plugin.onItemClick(this.data.mediaData);
+			});
+			return elem;
+		}
+
+		onItemClick(mediaData) {
+			var url = this.getVideoUrl();
+			switch (mediaData) {
+				case ('twitter'):
+					window.open('http://twitter.com/home?status=' + url);
+					break;
+				case ('facebook'):
+					window.open('http://www.facebook.com/sharer.php?u=' + url);
+					break;
+				case ('embed'):
+					this.embedPress();
+					break;
+			}
+			paella.player.controls.hidePopUp(this.getName());
+		}
+
+		getVideoUrl() {
+			var url = document.location.href;
+			return url;
+		}
+
+		embedPress() {
+			var host = document.location.protocol + "//" +document.location.host;
+			var pathname = document.location.pathname;
+
+			var p = pathname.split("/");
+			if (p.length > 0){p[p.length-1] = "embed.html";}
+			var id = paella.initDelegate.getId();
+			var url = host+p.join("/")+"?id="+id;
+			//var paused = paella.player.videoContainer.paused();
+			//$(document).trigger(paella.events.pause);
+
+
+			var divSelectSize="<div style='display:inline-block;'> " +
+				"    <div class='embedSizeButton' style='width:110px; height:73px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 620x349 </span></div>" +
+				"    <div class='embedSizeButton' style='width:100px; height:65px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 540x304 </span></div>" +
+				"    <div class='embedSizeButton' style='width:90px;  height:58px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 460x259 </span></div>" +
+				"    <div class='embedSizeButton' style='width:80px;  height:50px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 380x214 </span></div>" +
+				"    <div class='embedSizeButton' style='width:70px;  height:42px;'> <span style='display:flex; align-items:center; justify-content:center; width:100%; height:100%;'> 300x169 </span></div>" +
+				"</div><div style='display:inline-block; vertical-align:bottom; margin-left:10px;'>"+
+				"    <div>"+base.dictionary.translate("Custom size:")+"</div>" +
+				"    <div>"+base.dictionary.translate("Width:")+" <input id='social_embed_width-input' class='embedSizeInput' maxlength='4' type='text' name='Costum width min 300px' alt='Costum width min 300px' title='Costum width min 300px' value=''></div>" +
+				"    <div>"+base.dictionary.translate("Height:")+" <input id='social_embed_height-input' class='embedSizeInput' maxlength='4' type='text' name='Costum width min 300px' alt='Costum width min 300px' title='Costum width min 300px' value=''></div>" +
+				"</div>";
+
+
+			var divEmbed = "<div id='embedContent' style='text-align:left; font-size:14px; color:black;'><div id=''>"+divSelectSize+"</div> <div id=''>"+base.dictionary.translate("Choose your embed size. Copy the text and paste it in your html page.")+"</div> <div id=''><textarea id='social_embed-textarea' class='social_embed-textarea' rows='4' cols='1' style='font-size:12px; width:95%; overflow:auto; margin-top:5px; color:black;'></textarea></div>  </div>";
+
+
+			paella.messageBox.showMessage(divEmbed, {
+				closeButton:true,
+				width:'750px',
+				height:'210px',
+				onClose() {
+				//      if (paused == false) {$(document).trigger(paella.events.play);}
+				}
+			});
+			var w_e = $('#social_embed_width-input')[0];
+			var h_e = $('#social_embed_height-input')[0];
+			w_e.onkeyup = function(event){
+				var width = parseInt(w_e.value);
+				var height = parseInt(h_e.value);
+				if (isNaN(width)){
+					w_e.value="";
+				}
+				else{
+					if (width<300){
+						$("#social_embed-textarea")[0].value = "Embed width too low. The minimum value is a width of 300.";
+					}
+					else{
+						if (isNaN(height)){
+							height = (width/(16/9)).toFixed();
+							h_e.value = height;
+						}
+						$("#social_embed-textarea")[0].value = '<iframe allowfullscreen src="'+url+'" style="border:0px #FFFFFF none;" name="Paella Player" scrolling="no" frameborder="0" marginheight="0px" marginwidth="0px" width="'+width+'" height="'+height+'"></iframe>';
+					}
+				}
+			};
+			var embs = $(".embedSizeButton");
+			for (var i=0; i< embs.length; i=i+1){
+				var e = embs[i];
+				e.onclick=function(event){
+					var value = event.target? event.target.textContent: event.toElement.textContent;
+					if (value) {
+						var size = value.trim().split("x");
+
+						w_e.value = size[0];
+						h_e.value = size[1];
+						$("#social_embed-textarea")[0].value = '<iframe allowfullscreen src="'+url+'" style="border:0px #FFFFFF none;" name="Paella Player" scrolling="no" frameborder="0" marginheight="0px" marginwidth="0px" width="'+size[0]+'" height="'+size[1]+'"></iframe>';
+					}
+				};
+			}
+		}
+	}
+
+});
+
+paella.addPlugin(function() {
+	return class ThemeChooserPlugin extends paella.ButtonPlugin {
+		getAlignment() { return 'right'; }
+		getSubclass() { return "themeChooserPlugin"; }
+		getIconClass() { return 'icon-paintbrush'; }
+		getIndex() { return 2030; }
+		getName() { return "es.upv.paella.themeChooserPlugin"; }	
+		getDefaultToolTip() { return base.dictionary.translate("Change theme"); }	
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+		
+		checkEnabled(onSuccess) { 
+			this.currentUrl = null;
+			this.currentMaster = null;
+			this.currentSlave = null;
+			this.availableMasters = [];
+			this.availableSlaves = [];
+			if ( paella.player.config.skin && paella.player.config.skin.available
+				&& (paella.player.config.skin.available instanceof Array) 
+				&& (paella.player.config.skin.available.length >0)) {
+				
+				onSuccess(true);			
+			}
+			else {
+				onSuccess(false);
+			}
+		}
+		
+		buildContent(domElement) {
+			var This = this;
+			paella.player.config.skin.available.forEach(function(item){
+				var elem = document.createElement('div');
+				elem.className = "themebutton";
+				elem.innerText = item.replace('-',' ').replace('_',' ');
+				$(elem).click(function(event) {
+					paella.utils.skin.set(item);
+					paella.player.controls.hidePopUp(This.getName());
+				});
+				
+				domElement.appendChild(elem);			
+			});
+		}
+	}
+});
+
+
+paella.addDataDelegate("cameraTrack",() => {
+    return class TrackCameraDataDelegate extends paella.DataDelegate {
+        read(context,params,onSuccess) {
+            let videoUrl = paella.player.videoLoader.getVideoUrl();
+            if (videoUrl) {
+                videoUrl += 'trackhd.json';
+                paella.utils.ajax.get({ url:videoUrl },
+                    (data) => {
+                        if (typeof(data)==="string") {
+                            try {
+                                data = JSON.parse(data);
+                            }
+                            catch(err) {}
+                        }
+                        data.positions.sort((a,b) => {
+                            return a.time-b.time;
+                        });
+                        onSuccess(data);
+                    },
+                    () => onSuccess(null) );
+            }
+            else {
+                onSuccess(null);
+            }
+        }
+
+        write(context,params,value,onSuccess) {
+        }
+
+        remove(context,params,onSuccess) {
+        }
+    };
+});
+
+(() => {
+    // Used to connect the toolbar button with the track4k plugin
+    let g_track4kPlugin = null;
+
+
+    function updatePosition(positionData,nextFrameData) {
+        let twinTime = nextFrameData ? (nextFrameData.time - positionData.time) * 1000 : 100;
+        if (twinTime>2000) twinTime = 2000;
+        let rect = (positionData && positionData.rect) || [0, 0, 0, 0];
+        let offset_x = Math.abs(rect[0]);
+        let offset_y = Math.abs(rect[1]);
+        let view_width = rect[2];
+        let view_height = rect[3];
+        let zoom = this._videoData.originalWidth / view_width;
+        let left = offset_x / this._videoData.originalWidth;
+        let top = offset_y / this._videoData.originalHeight;
+        paella.player.videoContainer.masterVideo().setZoom(zoom  * 100,left * zoom * 100, top * zoom * 100, twinTime);
+    }
+
+    function nextFrame(time) {
+        let index = -1;
+        time = Math.round(time);
+        this._trackData.some((data,i) => {
+            if (data.time>=time) {
+                index = i;
+            }
+            return index!==-1;
+        });
+        // Index contains the current frame index
+        if (this._trackData.length>index+1) {
+            return this._trackData[index+1];
+        }
+        else {
+            return null;
+        }
+    }
+
+    function prevFrame(time) {
+        let frame = this._trackData[0];
+        time = Math.round(time);
+        this._trackData.some((data, i, frames) => {
+          if (frames[i+1]) {
+            if (data.time <= time && frames[i+1].time > time) {
+                return true;
+            }
+          } else {
+            return true;
+          }
+          frame = data;
+          return false;
+        });
+        return frame;
+    }
+
+    function curFrame(time) {
+        let frameRect = null;
+        time = Math.round(time);
+        this._trackData.some((data,i, frames) => {
+          if (data.time <= time) {
+            if (frames[i+1]) {
+              if (frames[i+1].time > time) {
+                frameRect = data;
+              }
+            } else {
+              frameRect = data;
+            }
+          }
+          return frameRect!==null;
+        });
+        return frameRect;
+    }
+
+
+    paella.addPlugin(function() {
+        return class Track4KPlugin extends paella.EventDrivenPlugin {
+            constructor() {
+                super();
+
+                g_track4kPlugin = this;
+
+                this._videoData = {};
+                this._trackData = [];
+
+                this._enabled = true;
+            }
+
+            checkEnabled(cb) {
+                paella.data.read('cameraTrack',{id:paella.initDelegate.getId()},(data) => {
+                    if (data) {
+                        this._videoData.width = data.width;
+                        this._videoData.height = data.height;
+                        this._videoData.originalWidth = data.originalWidth;
+                        this._videoData.originalHeight = data.originalHeight;
+                        this._trackData = data.positions;
+                        this._enabled = true;
+                    }
+                    else {
+                        this._enabled = false;
+                    }
+                    cb(this._enabled);
+                });
+            }
+
+            get enabled() { return this._enabled; }
+
+            set enabled(e) {
+                this._enabled = e;
+                if (this._enabled) {
+                  let thisClass = this;
+                  paella.player.videoContainer.currentTime().then(function(time) {
+                    thisClass.updateZoom(time);
+                  });
+                }
+            }
+
+            getName() { return "es.upv.paella.track4kPlugin"; }
+            getEvents() {
+                return [ paella.events.timeupdate, paella.events.play, paella.events.seekToTime ];
+            }
+            onEvent(eventType,data) {
+                if (!this._trackData.length) return;
+                if (eventType===paella.events.play) {
+                }
+                else if (eventType===paella.events.timeupdate) {
+                    this.updateZoom(data.currentTime);
+                }
+                else if (eventType===paella.events.seekToTime) {
+                    this.seekTo(data.newPosition);
+                }
+            }
+
+            updateZoom(currentTime) {
+              if (this._enabled) {
+                let data = curFrame.apply(this,[currentTime]);
+                let nextFrameData = nextFrame.apply(this,[currentTime]);
+                if (data && this._lastPosition!==data) {
+                    this._lastPosition = data;
+                    updatePosition.apply(this,[data,nextFrameData]);
+                }
+              }
+            }
+
+            seekTo(time) {
+                let data = prevFrame.apply(this,[time]);
+                if (data && this._enabled) {
+                    this._lastPosition = data;
+                    updatePosition.apply(this,[data]);
+                }
+            }
+
+        };
+    });
+
+    paella.addPlugin(function() {
+
+        return class VideoZoomTrack4KPlugin extends paella.ButtonPlugin {
+            getAlignment() { return 'right'; }
+            getSubclass() { return "videoZoomToolbar"; }
+            getIconClass() { return 'icon-screen'; }
+            closeOnMouseOut() { return true; }
+            getIndex() { return 2030; }
+            getName() { return "es.upv.paella.videoZoomTrack4kPlugin"; }
+            getDefaultToolTip() { return base.dictionary.translate("Set video zoom"); }
+            getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+
+            checkEnabled(onSuccess) {
+                let players = paella.player.videoContainer.streamProvider.videoPlayers;
+                let pluginData = paella.player.config.plugins.list[this.getName()];
+                let playerIndex = pluginData.targetStreamIndex;
+                let autoByDefault = pluginData.autoModeByDefault;
+                this.targetPlayer = players.length>playerIndex ? players[playerIndex] : null;
+                g_track4kPlugin.enabled = autoByDefault;
+                onSuccess(paella.player.config.player.videoZoom.enabled &&
+                            this.targetPlayer &&
+                            this.targetPlayer.allowZoom());
+            }
+
+            setup() {
+                if (this.config.autoModeByDefault) {
+                    this.zoomAuto()
+                }
+                else {
+                    this.resetZoom()
+                }
+            }
+
+            buildContent(domElement) {
+                this.changeIconClass("icon-mini-zoom-in");
+                g_track4kPlugin.updateTrackingStatus = () => {
+                    if (g_track4kPlugin.enabled) {
+                      $('.zoom-auto').addClass("autoTrackingActivated");
+                      $('.icon-mini-zoom-in').addClass("autoTrackingActivated");
+                    } else {
+                      $('.zoom-auto').removeClass("autoTrackingActivated");
+                      $('.icon-mini-zoom-in').removeClass("autoTrackingActivated");
+                    }
+                };
+                paella.events.bind(paella.events.videoZoomChanged, (evt,target) => {
+                    g_track4kPlugin.updateTrackingStatus;
+                });
+                g_track4kPlugin.updateTrackingStatus;
+
+                function getZoomButton(className,onClick,content) {
+                    let btn = document.createElement('div');
+                    btn.className = `videoZoomToolbarItem ${ className }`;
+                    if (content) {
+                        btn.innerText = content;
+                    }
+                    else {
+                        btn.innerHTML = `<i class="glyphicon glyphicon-${ className }"></i>`;
+                    }
+                    $(btn).click(onClick);
+                    return btn;
+                }
+                domElement.appendChild(getZoomButton('zoom-in',(evt) => {
+                    this.zoomIn();
+                }));
+                domElement.appendChild(getZoomButton('zoom-out',(evt) => {
+                    this.zoomOut();
+                }));
+                domElement.appendChild(getZoomButton('picture',(evt) => {
+                    this.resetZoom();
+                }));
+                domElement.appendChild(getZoomButton('zoom-auto',(evt) => {
+                    this.zoomAuto();
+                    paella.player.controls.hidePopUp(this.getName());
+                }, "auto"));
+            }
+
+            zoomIn() {
+              g_track4kPlugin.enabled = false;
+              this.targetPlayer.zoomIn();
+            }
+
+            zoomOut() {
+              g_track4kPlugin.enabled = false;
+              this.targetPlayer.zoomOut();
+            }
+
+            resetZoom() {
+              g_track4kPlugin.enabled = false;
+              this.targetPlayer.setZoom(100,0,0,500);
+              if (g_track4kPlugin.updateTrackingStatus) g_track4kPlugin.updateTrackingStatus();
+            }
+
+            zoomAuto() {
+              g_track4kPlugin.enabled = ! g_track4kPlugin.enabled;
+              if (g_track4kPlugin.updateTrackingStatus) g_track4kPlugin.updateTrackingStatus();
+            }
+        };
+    });
+})();
+
+
+
+
+(() => {
+
+paella.plugins.translectures = {};
+/*
+Class ("paella.captions.translectures.Caption", paella.captions.Caption, {
+	initialize: function(id, format, url, lang, editURL, next) {
+		this.parent(id, format, url, lang, next);
+		this._captionsProvider = "translecturesCaptionsProvider";
+		this._editURL = editURL;
+	},
+	
+	canEdit: function(next) {
+		// next(err, canEdit)
+		next(false, ((this._editURL != undefined)&&(this._editURL != "")));
+	},
+	
+	goToEdit: function() {		
+		var self = this;
+		paella.player.auth.userData().then(function(userData){
+			if (userData.isAnonymous == true) {
+				self.askForAnonymousOrLoginEdit();
+			}
+			else {
+				self.doEdit();
+			}		
+		});	
+	},
+		
+	doEdit: function() {
+		window.location.href = this._editURL;		
+	},
+	doLoginAndEdit: function() {
+		paella.player.auth.login(this._editURL);
+	},
+	
+	askForAnonymousOrLoginEdit: function() {
+		var self = this;
+
+		var messageBoxElem = document.createElement('div');
+		messageBoxElem.className = "translecturesCaptionsMessageBox";
+
+		var messageBoxTitle = document.createElement('div');
+		messageBoxTitle.className = "title";
+		messageBoxTitle.innerText = base.dictionary.translate("You are trying to modify the transcriptions, but you are not Logged in!");		
+		messageBoxElem.appendChild(messageBoxTitle);
+
+		var messageBoxAuthContainer = document.createElement('div');
+		messageBoxAuthContainer.className = "authMethodsContainer";
+		messageBoxElem.appendChild(messageBoxAuthContainer);
+
+		// Anonymous edit
+		var messageBoxAuth = document.createElement('div');
+		messageBoxAuth.className = "authMethod";
+		messageBoxAuthContainer.appendChild(messageBoxAuth);
+
+		var messageBoxAuthLink = document.createElement('a');
+		messageBoxAuthLink.href = "#";
+		messageBoxAuthLink.style.color = "#004488";
+		messageBoxAuth.appendChild(messageBoxAuthLink);
+
+		var messageBoxAuthLinkImg = document.createElement('img');
+		messageBoxAuthLinkImg.src = "resources/style/caption_mlangs_anonymous.png";
+		messageBoxAuthLinkImg.alt = "Anonymous";
+		messageBoxAuthLinkImg.style.height = "100px";
+		messageBoxAuthLink.appendChild(messageBoxAuthLinkImg);
+
+		var messageBoxAuthLinkText = document.createElement('p');
+		messageBoxAuthLinkText.innerText = base.dictionary.translate("Continue editing the transcriptions anonymously");
+		messageBoxAuthLink.appendChild(messageBoxAuthLinkText);
+
+		$(messageBoxAuthLink).click(function() {
+			self.doEdit();
+		});
+
+		// Auth edit
+		messageBoxAuth = document.createElement('div');
+		messageBoxAuth.className = "authMethod";
+		messageBoxAuthContainer.appendChild(messageBoxAuth);
+
+		messageBoxAuthLink = document.createElement('a');
+		messageBoxAuthLink.href = "#";
+		messageBoxAuthLink.style.color = "#004488";
+		messageBoxAuth.appendChild(messageBoxAuthLink);
+
+		messageBoxAuthLinkImg = document.createElement('img');
+		messageBoxAuthLinkImg.src = "resources/style/caption_mlangs_lock.png";
+		messageBoxAuthLinkImg.alt = "Login";
+		messageBoxAuthLinkImg.style.height = "100px";
+		messageBoxAuthLink.appendChild(messageBoxAuthLinkImg);
+
+		messageBoxAuthLinkText = document.createElement('p');
+		messageBoxAuthLinkText.innerText = base.dictionary.translate("Log in and edit the transcriptions");
+		messageBoxAuthLink.appendChild(messageBoxAuthLinkText);
+
+
+		$(messageBoxAuthLink).click(function() {
+			self.doLoginAndEdit();
+		});
+
+		// Show UI		
+		paella.messageBox.showElement(messageBoxElem);
+	}
+});
+
+paella.captions.translectures.Caption = Caption;
+
+Class ("paella.plugins.translectures.CaptionsPlugIn", paella.EventDrivenPlugin, {
+		
+	getName:function() { return "es.upv.paella.translecture.captionsPlugin"; },
+	getEvents:function() { return []; },
+	onEvent:function(eventType,params) {},
+
+	checkEnabled: function(onSuccess) {
+		var self = this;
+		var video_id = paella.player.videoIdentifier;
+				
+		if ((this.config.tLServer == undefined) || (this.config.tLdb == undefined)){
+			base.log.warning(this.getName() + " plugin not configured!");
+			onSuccess(false);
+		}
+		else {
+			var langs_url = (this.config.tLServer + "/langs?db=${tLdb}&id=${videoId}").replace(/\$\{videoId\}/ig, video_id).replace(/\$\{tLdb\}/ig, this.config.tLdb);
+			base.ajax.get({url: langs_url},
+				function(data, contentType, returnCode, dataRaw) {					
+					if (data.scode == 0) {
+						data.langs.forEach(function(l){
+							var l_get_url = (self.config.tLServer + "/dfxp?format=1&pol=0&db=${tLdb}&id=${videoId}&lang=${tl.lang.code}")
+								.replace(/\$\{videoId\}/ig, video_id)
+								.replace(/\$\{tLdb\}/ig, self.config.tLdb)
+								.replace(/\$\{tl.lang.code\}/ig, l.code);
+														
+							var l_edit_url;							
+							if (self.config.tLEdit) {
+								l_edit_url = self.config.tLEdit
+									.replace(/\$\{videoId\}/ig, video_id)
+									.replace(/\$\{tLdb\}/ig, self.config.tLdb)
+									.replace(/\$\{tl.lang.code\}/ig, l.code);
+							}
+							
+							var l_txt = l.value;
+				            switch(l.type){
+						    	case 0:
+						    		l_txt += " (" + paella.dictionary.translate("Auto") + ")";
+						    		break;
+						    	case 1:
+						    		l_txt += " (" + paella.dictionary.translate("Under review") + ")";
+						    		break;
+						    }
+														
+							var c = new paella.captions.translectures.Caption(l.code , "dfxp", l_get_url, {code: l.code, txt: l_txt}, l_edit_url);
+							paella.captions.addCaptions(c);
+						});
+						onSuccess(false);
+					}
+					else {
+						base.log.debug("Error getting available captions from translectures: " + langs_url);
+						onSuccess(false);
+					}
+				},						
+				function(data, contentType, returnCode) {
+					base.log.debug("Error getting available captions from translectures: " + langs_url);
+					onSuccess(false);
+				}
+			);			
+		}
+	}	
+});
+
+//new paella.plugins.translectures.CaptionsPlugIn();
+*/
+})();
+paella.addPlugin(function() {
+	return class ElasticsearchSaverPlugin extends paella.userTracking.SaverPlugIn {
+		getName() { return "es.upv.paella.usertracking.elasticsearchSaverPlugin"; }
+		
+		checkEnabled(onSuccess) {
+			this.type = 'userTrackingSaverPlugIn';
+			this._url = this.config.url;
+			this._index = this.config.index || "paellaplayer";
+			this._type = this.config.type || "usertracking";
+			
+			var enabled = true;
+			if (this._url == undefined){
+				enabled = false;
+				base.log.debug("No ElasticSearch URL found in config file. Disabling ElasticSearch PlugIn");
+			}
+			
+			onSuccess(enabled);
+		}
+		
+		log(event, params) {	
+			var p = params;
+			if (typeof(p) != "object") {
+				p = {value: p};
+			}
+			
+			let currentTime = 0;
+			paella.player.videoContainer.currentTime()
+				.then((t) => {
+					currentTime = t;
+					return paella.player.videoContainer.paused();
+				})
+				.then((paused) => {
+					var log = {
+						date: new Date(),
+						video: paella.initDelegate.getId(),
+						playing: !paused,
+						time: parseInt(currentTime + paella.player.videoContainer.trimStart()),
+						event: event,
+						params: p
+					};		
+					
+					paella.ajax.post({url:this._url+ "/"+ this._index + "/" + this._type + "/", params:JSON.stringify(log) });
+				});
+		}
+	}
+});
+
+
+paella.addPlugin(function() {
+	return class GoogleAnalyticsTracking extends paella.userTracking.SaverPlugIn {
+		getName() { return "es.upv.paella.usertracking.GoogleAnalyticsSaverPlugin"; }
+			
+		checkEnabled(onSuccess) {
+			var trackingID = this.config.trackingID;
+			var domain = this.config.domain || "auto";
+			if (trackingID){
+				base.log.debug("Google Analitycs Enabled");
+				/* jshint ignore:start */
+					(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+					(i[r].q=i[r].q||[]).push(arguments);},i[r].l=1*new Date();a=s.createElement(o),
+					m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+					})(window,document,'script','//www.google-analytics.com/analytics.js','__gaTracker');
+				/* jshint ignore:end */
+				__gaTracker('create', trackingID, domain);
+				__gaTracker('send', 'pageview');
+				onSuccess(true);
+			}		
+			else {
+				base.log.debug("No Google Tracking ID found in config file. Disabling Google Analitycs PlugIn");
+				onSuccess(false);
+			}				
+		}
+	
+	
+		log(event, params) {
+			if ((this.config.category === undefined) || (this.config.category ===true)) {
+				var category = this.config.category || "PaellaPlayer";
+				var action = event;
+				var label =  "";
+				
+				try {
+					label = JSON.stringify(params);
+				}
+				catch(e) {}
+				
+				__gaTracker('send', 'event', category, action, label);
+			}
+		}
+		
+	}
+});
+
+
+
+
+
+
+
+
+var _paq = _paq || [];
+
+paella.addPlugin(function() {
+	return class PiwikAnalyticsTracking extends paella.userTracking.SaverPlugIn {
+
+		getName() { return "es.upv.paella.usertracking.piwikSaverPlugIn"; }
+		
+		checkEnabled(onSuccess) {
+			if (this.config.tracker && this.config.siteId) {
+				_paq.push(['trackPageView']);
+				_paq.push(['enableLinkTracking']);
+				(function() {
+					var u=this.config.tracker;
+					_paq.push(['setTrackerUrl', u+'/piwik.php']);
+					_paq.push(['setSiteId', this.config.siteId]);
+					var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+					g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
+					onSuccess(true);
+				})();			
+			}
+			else {
+				onSuccess(false);
+			}
+		}
+		
+		log(event, params) {
+				var category = this.config.category || "PaellaPlayer";
+				var action = event;
+				var label =  "";
+				
+				try {
+					label = JSON.stringify(params);
+				}
+				catch(e) {}
+				
+				_paq.push(['trackEvent', category, action, label]);
+		}
+	}
+});
+
+
+(() => {
+
+paella.addCanvasPlugin("video360", true, true, () => {
+	return class Video360Canvas extends paella.WebGLCanvas {
+		constructor(stream) {
+			super(stream);
+		}
+
+		loadVideo(videoPlugin,stream) {
+			return new Promise((resolve,reject) => {
+				let checkLoaded = () => {
+					if (this.video) {
+						resolve(this);
+					}
+					else {
+						setTimeout(checkLoaded,100);
+					}
+				}
+				checkLoaded();
+			});
+		}
+
+		buildVideoSurface(sceneRoot,videoTexture) {
+			let sphere = bg.scene.PrimitiveFactory.Sphere(this.gl,1,50);
+			let sphereNode = new bg.scene.Node(this.gl);
+			sphereNode.addComponent(sphere);
+			sphere.getMaterial(0).texture = videoTexture;
+			sphere.getMaterial(0).lightEmission = 0;
+			sphere.getMaterial(0).lightEmissionMaskInvert = false;
+			sphere.getMaterial(0).cullFace = false;
+			sphereNode.addComponent(new bg.scene.Transform(bg.Matrix4.Scale(1,-1,1)));
+			sceneRoot.addChild(sphereNode);
+		}
+
+		buildCamera() {
+			let cameraNode = new bg.scene.Node(this.gl,"Camera");
+			let camera = new bg.scene.Camera()
+			cameraNode.addComponent(camera);
+			cameraNode.addComponent(new bg.scene.Transform());
+			let projection = new bg.scene.OpticalProjectionStrategy();
+			projection.far = 100;
+			projection.focalLength = 55;
+			camera.projectionStrategy = projection;
+
+			let oc = new bg.manipulation.OrbitCameraController();
+			oc.maxPitch = 90;
+			oc.minPitch = -90;
+			oc.maxDistance = 0;
+			oc.minDistance = 0;
+			this._cameraController = oc;
+			cameraNode.addComponent(oc);
+
+			return cameraNode;
+		}
+	}
+});
+
+})();
+
+(() => {
+
+	function cyln2world(a, e) {
+		return (new bg.Vector3(
+			Math.cos(e) * Math.cos(a),
+			Math.cos(e) * Math.sin(a),
+			Math.sin(e)));
+	}
+
+	function world2fish(x, y, z) {
+		let nz = z;
+		if (z < -1.0) nz = -1.0;
+		else if (z > 1.0) nz = 1.0;
+		return (new bg.Vector2(
+			Math.atan2(y, x),
+			Math.acos(nz) / Math.PI)); // 0.0 to 1.0
+	}
+
+	function calcTexUv(i, j, lens) {
+		const world = cyln2world(
+			((i + 90) / 180.0 - 1.0) * Math.PI, // rotate 90 deg for polygon
+			(0.5 - j / 180.0) * Math.PI);
+		const ar = world2fish(
+			Math.sin(-0.5 * Math.PI) * world.z + Math.cos(-0.5 * Math.PI) * world.x,
+			world.y,
+			Math.cos(-0.5 * Math.PI) * world.z - Math.sin(-0.5 * Math.PI) * world.x);
+
+		const fishRad = 0.883;
+		const fishRad2 = fishRad * 0.88888888888888;
+		const fishCenter = 1.0 - 0.44444444444444;
+		const x = (lens === 0) ?
+			fishRad * ar.y * Math.cos(ar.x) * 0.5 + 0.25 :
+			fishRad * (1.0 - ar.y) * Math.cos(-1.0 * ar.x + Math.PI) * 0.5 + 0.75;
+		const y = (lens === 0) ?
+			fishRad2 * ar.y * Math.sin(ar.x) + fishCenter :
+			fishRad2 * (1.0 - ar.y) * Math.sin(-1.0 * ar.x + Math.PI) + fishCenter;
+		return (new bg.Vector2(x, y));
+	}
+
+	function buildViewerNode(ctx) {
+		let radius = 1;
+		let node = new bg.scene.Node(ctx);
+		let drw = new bg.scene.Drawable();
+		node.addComponent(drw);
+
+		let plist = new bg.base.PolyList(ctx);
+
+		let vertex = [];
+		let normals = [];
+		let uvs = [];
+		let index = [];
+		for (let j = 0; j <= 180; j += 5) {
+			for (let i = 0; i <= 360; i += 5) {
+				vertex.push(new bg.Vector3(Math.sin(Math.PI * j / 180.0) * Math.sin(Math.PI * i / 180.0) * radius,
+										   Math.cos(Math.PI * j / 180.0) * radius,
+										   Math.sin(Math.PI * j / 180.0) * Math.cos(Math.PI * i / 180.0) * radius));
+
+				normals.push(new bg.Vector3(0, 0, -1));
+			}
+			/* devide texture */
+			for (let k = 0; k <= 180; k += 5) {
+				uvs.push(calcTexUv(k, j, 0));
+			}
+			for (let l = 180; l <= 360; l += 5) {
+				uvs.push(calcTexUv(l, j, 1));
+			}
+		}
+
+		function addFace(v0, v1, v2, n0, n1, n2, uv0, uv1, uv2) {
+			plist.vertex.push(v0.x); plist.vertex.push(v0.y); plist.vertex.push(v0.z);
+			plist.vertex.push(v1.x); plist.vertex.push(v1.y); plist.vertex.push(v1.z);
+			plist.vertex.push(v2.x); plist.vertex.push(v2.y); plist.vertex.push(v2.z);
+
+			plist.normal.push(n0.x); plist.normal.push(n0.y); plist.normal.push(n0.z);
+			plist.normal.push(n1.x); plist.normal.push(n1.y); plist.normal.push(n1.z);
+			plist.normal.push(n2.x); plist.normal.push(n2.z); plist.normal.push(n2.z);
+
+			plist.texCoord0.push(uv0.x); plist.texCoord0.push(1 - uv0.y);
+			plist.texCoord0.push(uv1.x); plist.texCoord0.push(1 - uv1.y);
+			plist.texCoord0.push(uv2.x); plist.texCoord0.push(1 - uv2.y);
+
+			plist.index.push(plist.index.length);
+			plist.index.push(plist.index.length);
+			plist.index.push(plist.index.length);
+		}
+
+		for (let m = 0; m < 36; m++) {
+			for (let n = 0; n < 72; n++) {
+				const v = m * 73 + n;
+				const t = (n < 36) ? m * 74 + n : m * 74 + n + 1;
+				([uvs[t + 0], uvs[t + 1], uvs[t + 74]], [uvs[t + 1], uvs[t + 75], uvs[t + 74]]);
+
+				let v0 = vertex[v + 0];	 let n0 = normals[v + 0];	let uv0 = uvs[t + 0];
+				let v1 = vertex[v + 1];  let n1 = normals[v + 1];	let uv1 = uvs[t + 1];
+				let v2 = vertex[v + 73]; let n2 = normals[v + 73];	let uv2 = uvs[t + 74];
+				let v3 = vertex[v + 74]; let n3 = normals[v + 74];	let uv3 = uvs[t + 75];
+
+				addFace(v0, v1, v2, n0, n1, n2, uv0, uv1, uv2);
+				addFace(v1, v3, v2, n1, n3, n2, uv1, uv3, uv2);
+			}
+		}
+		plist.build();
+
+		drw.addPolyList(plist);
+
+		let trx = bg.Matrix4.Scale(-1,1,1);
+		node.addComponent(new bg.scene.Transform(trx));
+
+		return node;
+	}
+
+	paella.addCanvasPlugin("video360Theta", true, true, () => {
+		return class Video360ThetaCanvas extends paella.WebGLCanvas {
+			constructor(stream) {
+				super(stream);
+			}
+	
+			loadVideo(videoPlugin,stream) {
+				return new Promise((resolve,reject) => {
+					let checkLoaded = () => {
+						if (this.video) {
+							resolve(this);
+						}
+						else {
+							setTimeout(checkLoaded,100);
+						}
+					}
+					checkLoaded();
+				});
+			}
+	
+			buildVideoSurface(sceneRoot,videoTexture) {
+				let sphereNode = buildViewerNode(this.gl);
+				let sphere = sphereNode.drawable;
+				sphere.getMaterial(0).texture = videoTexture;
+				sphere.getMaterial(0).lightEmission = 0;
+				sphere.getMaterial(0).lightEmissionMaskInvert = false;
+				sphere.getMaterial(0).cullFace = false;
+				sceneRoot.addChild(sphereNode);
+			}
+	
+			buildCamera() {
+				let cameraNode = new bg.scene.Node(this.gl,"Camera");
+				let camera = new bg.scene.Camera()
+				cameraNode.addComponent(camera);
+				cameraNode.addComponent(new bg.scene.Transform());
+				let projection = new bg.scene.OpticalProjectionStrategy();
+				projection.far = 100;
+				projection.focalLength = 55;
+				camera.projectionStrategy = projection;
+	
+				let oc = new bg.manipulation.OrbitCameraController();
+				oc.maxPitch = 90;
+				oc.minPitch = -90;
+				oc.maxDistance = 0;
+				oc.minDistance = 0;
+				this._cameraController = oc;
+				cameraNode.addComponent(oc);
+	
+				return cameraNode;
+			}
+		}
+	});
+
+})();
+
+paella.addDataDelegate('metadata', () => {
+    return class VideoManifestMetadataDataDelegate extends paella.DataDelegate {
+        read(context, params, onSuccess) {
+            let metadata = paella.player.videoLoader.getMetadata();
+            onSuccess(metadata[params], true);
+        }
+
+        write(context, params, value, onSuccess) {
+            onSuccess({}, true);
+        }
+
+        remove(context, params, onSuccess) {
+            onSuccess({}, true);
+        }
+    }
+});
+
+paella.addPlugin(function() {
+
+    return class VideoDataPlugin extends paella.VideoOverlayButtonPlugin {
+        
+        getIndex() { return 10; }
+
+        getSubclass() {
+            return "videoData";
+        }
+
+        getAlignment() {
+            return 'left';
+        }
+
+        getDefaultToolTip() { return ""; }
+
+        checkEnabled(onSuccess) {
+            // Check if enabled
+            let plugin = paella.player.config.plugins.list["es.upv.paella.videoDataPlugin"];
+            let exclude = (plugin && plugin.excludeLocations) || [];
+            let excludeParent = (plugin && plugin.excludeParentLocations) || [];
+            let excluded = exclude.some((url) => {
+                let re = RegExp(url,"i");
+                return re.test(location.href);
+            });
+
+            if (window!=window.parent) {
+                excluded = excluded || excludeParent.some((url) => {
+                    let re = RegExp(url,"i");
+                    try {
+                        return re.test(parent.location.href);
+                    }
+                    catch(e) {
+                        // Cross domain error
+                        return false;
+                    }
+                });
+            }
+            onSuccess(!excluded);
+        }
+
+        setup() {
+            let title = document.createElement("h1");
+            title.innerText = "";
+            title.className = "videoTitle";
+            this.button.appendChild(title);
+
+            paella.data.read("metadata","title",function(data) {
+                title.innerText = data;
+            });
+        }
+
+        action(button) {
+        }
+
+        getName() {
+            return "es.upv.paella.videoDataPlugin";
+        }
+    }
+});
+paella.addPlugin(function() {
+    let g_canvasWidth = 320;
+    let g_canvasHeight = 180;
+
+    function getThumbnailContainer(videoIndex) {
+        let container = document.createElement('canvas');
+        container.width = g_canvasWidth;
+        container.height = g_canvasHeight;
+        container.className = "zoom-thumbnail";
+        container.id = "zoomContainer" + videoIndex;
+        return container;
+    }
+
+    function getZoomRect() {
+        let zoomRect = document.createElement('div');
+        zoomRect.className = "zoom-rect";
+
+        return zoomRect;
+    }
+
+    function updateThumbnail(thumbElem) {
+        let player = thumbElem.player;
+        let canvas = thumbElem.canvas;
+        player.captureFrame()
+            .then((frameData) => {
+                let ctx = canvas.getContext("2d");
+                ctx.drawImage(frameData.source,0,0,g_canvasWidth,g_canvasHeight);
+            });
+    }
+
+    function setupButtons(videoPlayer) {
+        let wrapper = videoPlayer.parent;
+        let wrapperDom = wrapper.domElement;
+
+        let zoomButton = document.createElement('div');
+        wrapperDom.appendChild(zoomButton);
+        zoomButton.className = "videoZoomButton btn zoomIn";
+        zoomButton.innerHTML = '<i class="glyphicon glyphicon-zoom-in"></i>'
+        $(zoomButton).on('mousedown',() => {
+            paella.player.videoContainer.disablePlayOnClick();
+            videoPlayer.zoomIn();
+        });
+        $(zoomButton).on('mouseup',() => {
+            setTimeout(() => paella.player.videoContainer.enablePlayOnClick(),10);
+        });
+
+        zoomButton = document.createElement('div');
+        wrapperDom.appendChild(zoomButton);
+        zoomButton.className = "videoZoomButton btn zoomOut";
+        zoomButton.innerHTML = '<i class="glyphicon glyphicon-zoom-out"></i>'
+        $(zoomButton).on('mousedown',() => {
+            paella.player.videoContainer.disablePlayOnClick();
+            videoPlayer.zoomOut();
+        });
+        $(zoomButton).on('mouseup',() => {
+            setTimeout(() => paella.player.videoContainer.enablePlayOnClick(),10);
+        });
+
+    }
+
+    return class VideoZoomPlugin extends paella.VideoOverlayButtonPlugin {
+        getIndex() {return 10; }
+        getSubclass() { return "videoZoom"; }
+        getAlignment() { return 'right'; }
+        getDefaultToolTip() { return ""; }
+
+        checkEnabled(onSuccess) {
+            onSuccess(true);
+        }
+
+        setup() {
+            var thisClass = this;
+            this._thumbnails = [];
+            this._visible = false;
+            this._available = false;
+            function checkVisibility() {
+                let buttons = $('.videoZoomButton');
+                let thumbs = $('.videoZoom');
+                if (this._visible && this._available) {
+                    buttons.show();    
+                    thumbs.show();
+                }
+                else {
+                    buttons.hide();
+                    thumbs.hide();
+                }
+            }
+
+            let players = paella.player.videoContainer.streamProvider.videoPlayers;
+            players.forEach((player,index) => {
+                if (player.allowZoom()) {
+                    this._available = player.zoomAvailable();
+                    this._visible = this._available;
+                    setupButtons.apply(this,[player]);
+                    player.supportsCaptureFrame().then((supports) => {
+                        if (supports) {
+                            let thumbContainer = document.createElement('div');
+                            thumbContainer.className = "zoom-container"
+                            let thumb = getThumbnailContainer.apply(this,[index]);
+                            let zoomRect = getZoomRect.apply(this);
+                            this.button.appendChild(thumbContainer);
+                            thumbContainer.appendChild(thumb);
+                            thumbContainer.appendChild(zoomRect);
+                            $(thumbContainer).hide();
+                            this._thumbnails.push({
+                                player:player,
+                                thumbContainer:thumbContainer,
+                                zoomRect:zoomRect,
+                                canvas:thumb
+                            });
+                            checkVisibility.apply(this);
+                        }
+                    })
+                }
+            });
+            
+            let update = false;
+            paella.events.bind(paella.events.play,(evt) => {
+                let updateThumbs = () => {
+                    this._thumbnails.forEach((item) => {
+                        updateThumbnail(item);
+                    });
+                    if (update) {
+                        setTimeout(() => {
+                            updateThumbs();
+                        }, 2000);
+                    }
+                }
+                update = true;
+                updateThumbs();
+            });
+
+            paella.events.bind(paella.events.pause,(evt) => {
+                update = false;
+            });
+
+            paella.events.bind(paella.events.videoZoomChanged, (evt,target) => {
+                this._thumbnails.some((thumb) => {
+                    if (thumb.player==target.video) {
+                        if (thumb.player.zoom>100) {
+                            $(thumb.thumbContainer).show();
+                            let x = target.video.zoomOffset.x * 100 / target.video.zoom;
+                            let y = target.video.zoomOffset.y * 100 / target.video.zoom;
+                            
+                            let zoomRect = thumb.zoomRect;
+                            $(zoomRect).css({
+                                left: x + '%',
+                                top: y + '%',
+                                width: (10000 / target.video.zoom) + '%',
+                                height: (10000 / target.video.zoom) + '%'
+                            });
+                        }
+                        else {
+                            $(thumb.thumbContainer).hide();
+                        }
+                        return true;
+                    }
+                })
+            });
+
+            paella.events.bind(paella.events.zoomAvailabilityChanged, (evt,target) => {
+                this._available = target.available;
+                this._visible = target.available;
+                checkVisibility.apply(this);
+            });
+
+            paella.events.bind(paella.events.controlBarDidHide, () => {
+                this._visible = false;
+                checkVisibility.apply(this);
+            });
+
+            paella.events.bind(paella.events.controlBarDidShow, () => {
+                this._visible = true;
+                checkVisibility.apply(this);
+            });
+        }
+
+        action(button) {
+            //paella.messageBox.showMessage(base.dictionary.translate("Live streaming mode: This is a live video, so, some capabilities of the player are disabled"));
+        }
+
+        getName() {
+            return "es.upv.paella.videoZoomPlugin";
+        }
+    }
+});
+
+paella.addPlugin(function() {
+    
+    return class VideoZoomToolbarPlugin extends paella.ButtonPlugin {
+        getAlignment() { return 'right'; }
+        getSubclass() { return "videoZoomToolbar"; }
+        getIconClass() { return 'icon-screen'; }
+        getIndex() { return 2030; }
+        getName() { return "es.upv.paella.videoZoomToolbarPlugin"; }
+        getDefaultToolTip() { return base.dictionary.translate("Set video zoom"); }
+        getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+
+        checkEnabled(onSuccess) {
+            let players = paella.player.videoContainer.streamProvider.videoPlayers;
+            let pluginData = paella.player.config.plugins.list["es.upv.paella.videoZoomToolbarPlugin"];
+            let playerIndex = pluginData.targetStreamIndex;
+            this.targetPlayer = players.length>playerIndex ? players[playerIndex] : null;
+            onSuccess(paella.player.config.player.videoZoom.enabled &&
+                        this.targetPlayer &&
+                        this.targetPlayer.allowZoom());
+    
+        }
+        
+        buildContent(domElement) {
+            paella.events.bind(paella.events.videoZoomChanged, (evt,target) => {
+                this.setText(Math.round(target.video.zoom) + "%");
+            });
+
+            this.setText("100%");
+
+            function getZoomButton(className,onClick) {
+                let btn = document.createElement('div');
+                btn.className = `videoZoomToolbarItem ${ className }`;
+                btn.innerHTML = `<i class="glyphicon glyphicon-${ className }"></i>`;
+                $(btn).click(onClick);
+                return btn;
+            }
+            domElement.appendChild(getZoomButton('zoom-in',(evt) => {
+                this.targetPlayer.zoomIn();
+            }));
+            domElement.appendChild(getZoomButton('zoom-out',(evt) => {
+                this.targetPlayer.zoomOut();
+            }));
+        }
+    }
+});
+
+paella.addPlugin(function() {
+	return class ViewModePlugin extends paella.ButtonPlugin {
+		
+		getAlignment() { return 'right'; }
+		getSubclass() { return "showViewModeButton"; }
+		getIconClass() { return 'icon-presentation-mode'; }
+		getIndex() { return 540; }
+		getName() { return "es.upv.paella.viewModePlugin"; }
+		getButtonType() { return paella.ButtonPlugin.type.popUpButton; }
+		getDefaultToolTip() { return base.dictionary.translate("Change video layout"); }		
+		checkEnabled(onSuccess) {
+			this.buttonItems =null;
+			this.buttons = [];
+			this.selected_button = null;
+			this.active_profiles = null;
+			this.active_profiles = this.config.activeProfiles;
+			onSuccess(!paella.player.videoContainer.isMonostream);
+		}
+	
+		closeOnMouseOut() { return true; }
+	
+		setup() {
+			var thisClass = this;
+	
+			var Keys = {Tab:9,Return:13,Esc:27,End:35,Home:36,Left:37,Up:38,Right:39,Down:40};
+	
+		  paella.events.bind(paella.events.setProfile,function(event,params) {
+			  thisClass.onProfileChange(params.profileName);
+		  });
+	
+			$(this.button).keyup(function(event) {
+				if (thisClass.isPopUpOpen()){
+					if (event.keyCode == Keys.Up) {
+					   if(thisClass.selected_button>0){
+							if(thisClass.selected_button<thisClass.buttons.length)
+								thisClass.buttons[thisClass.selected_button].className = 'viewModeItemButton '+thisClass.buttons[thisClass.selected_button].data.profile;
+	
+							thisClass.selected_button--;
+							thisClass.buttons[thisClass.selected_button].className = thisClass.buttons[thisClass.selected_button].className+' selected';
+						   }
+					}
+					else if (event.keyCode == Keys.Down) {
+						if( thisClass.selected_button < thisClass.buttons.length-1){
+							if(thisClass.selected_button>=0)
+								thisClass.buttons[thisClass.selected_button].className = 'viewModeItemButton '+thisClass.buttons[thisClass.selected_button].data.profile;
+	
+							thisClass.selected_button++;
+							   thisClass.buttons[thisClass.selected_button].className = thisClass.buttons[thisClass.selected_button].className+' selected';
+						}
+					}
+					else if (event.keyCode == Keys.Return) {
+						thisClass.onItemClick(thisClass.buttons[thisClass.selected_button],thisClass.buttons[thisClass.selected_button].data.profile,thisClass.buttons[thisClass.selected_button].data.profile);
+					}
+				}
+			});
+		}
+
+		rebuildProfileList() {
+			this.buttonItems = {};
+			this.domElement.innerText = "";
+			paella.profiles.profileList.forEach((profileData) => {
+				if (profileData.hidden) return;
+				if (this.active_profiles) {
+					var active = false;
+					this.active_profiles.forEach(function(ap) {
+						if (ap == profile) {active = true;}
+					});
+					if (active == false) {
+						return;
+					}
+				}
+
+				var buttonItem = this.getProfileItemButton(profileData.id, profileData);
+				this.buttonItems[profileData.id] = buttonItem;
+				this.domElement.appendChild(buttonItem);
+				this.buttons.push(buttonItem);
+				if(paella.player.selectedProfile == profileData.id){
+					this.buttonItems[profileData.id].className = this.getButtonItemClass(profileData.id, true);
+				}
+			});
+			this.selected_button = this.buttons.length;
+		}
+	
+		buildContent(domElement) {
+			var thisClass = this;
+			this.domElement = domElement;
+			this.rebuildProfileList();
+
+			paella.events.bind(paella.events.profileListChanged,() => {
+				this.rebuildProfileList();
+			});
+		}
+	
+		getProfileItemButton(profile,profileData) {
+			var elem = document.createElement('div');
+			elem.className = this.getButtonItemClass(profile,false);
+			let url = this.getButtonItemIcon(profileData);
+			url = url.replace(/\\/ig,'/');
+			elem.style.backgroundImage = `url(${ url })`;
+			elem.id = profile + '_button';
+			elem.data = {
+				profile:profile,
+				profileData:profileData,
+				plugin:this
+			};
+			$(elem).click(function(event) {
+				this.data.plugin.onItemClick(this,this.data.profile,this.data.profileData);
+			});
+			return elem;
+		}
+	
+		onProfileChange(profileName) {
+			var thisClass = this;
+			var ButtonItem = this.buttonItems[profileName];
+
+			var n = this.buttonItems;
+			var arr = Object.keys(n);
+			arr.forEach(function(i){
+					thisClass.buttonItems[i].className = thisClass.getButtonItemClass(i,false);
+			});
+	
+			if(ButtonItem) {
+				ButtonItem.className = thisClass.getButtonItemClass(profileName,true);
+			}
+		}
+	
+		onItemClick(button,profile,profileData) {
+			var ButtonItem = this.buttonItems[profile];
+	
+			if (ButtonItem) {
+				paella.player.setProfile(profile);
+			}
+			paella.player.controls.hidePopUp(this.getName());
+		}
+	
+		getButtonItemClass(profileName,selected) {
+			return 'viewModeItemButton ' + profileName  + ((selected) ? ' selected':'');
+		}
+
+		getButtonItemIcon(profileData) {
+			return `${ paella.baseUrl }resources/style/${ profileData.icon }`;
+		}
+	}
+});
+
+
+paella.addPlugin(function() {
+	return class VolumeRangePlugin extends paella.ButtonPlugin {
+		getAlignment() { return 'left'; }
+		getSubclass() { return 'volumeRangeButton'; }
+		getIconClass() { return 'icon-volume-high'; }
+		getName() { return "es.upv.paella.volumeRangePlugin"; }
+		getDefaultToolTip() { return base.dictionary.translate("Volume"); }
+		getIndex() {return 9999;}
+		getAriaLabel() { return base.dictionary.translate("Volume"); }
+
+		checkEnabled(onSuccess) {
+			this._tempMasterVolume = 0;
+			this._inputMaster = null;
+			this._control_NotMyselfEvent = true;
+			this._storedValue = false;
+			var enabled = !base.userAgent.browser.IsMobileVersion;
+			onSuccess(enabled);
+		}
+
+		setup() {
+			var self = this;
+			//STORE VALUES
+			paella.events.bind(paella.events.videoUnloaded,function(event,params) {self.storeVolume();});
+			//RECOVER VALUES
+			paella.events.bind(paella.events.singleVideoReady,function(event,params) {self.loadStoredVolume(params);});
+
+			paella.events.bind(paella.events.setVolume, function(evt,par){ self.updateVolumeOnEvent(par);});
+		}
+
+		updateVolumeOnEvent(volume){
+			var thisClass = this;
+
+			if(thisClass._control_NotMyselfEvent){
+				thisClass._inputMaster = volume.master;
+			}
+			else {thisClass._control_NotMyselfEvent = true;}
+		}
+
+		storeVolume(){
+			var This = this;
+			paella.player.videoContainer.streamProvider.mainAudioPlayer.volume()
+				.then(function(v) {
+					This._tempMasterVolume = v;
+					This._storedValue = true;
+				});
+		}
+
+		loadStoredVolume(params){
+			if (this._storedValue == false) {
+				this.storeVolume();
+			}
+
+			if(this._tempMasterVolume){
+				paella.player.videoContainer.setVolume(this._tempMasterVolume);
+			}
+			this._storedValue = false;
+		}
+
+		action(button) {
+			if (paella.player.videoContainer.muted) {
+				paella.player.videoContainer.unmute();
+			}
+			else {
+				paella.player.videoContainer.mute();
+			}
+		}
+
+		getExpandableContent() {
+			var rangeInput = document.createElement('input');
+			this._inputMaster = rangeInput;
+			rangeInput.type = "range";
+			rangeInput.min = 0;
+			rangeInput.max = 1;
+			rangeInput.step = 0.01;
+			paella.player.videoContainer.audioPlayer.volume()
+				.then((vol) => {
+					rangeInput.value = vol;
+				})
+
+			let updateMasterVolume = () => {
+				var masterVolume = $(rangeInput).val();
+				var slaveVolume = 0;
+				this._control_NotMyselfEvent = false;
+				paella.player.videoContainer.setVolume(masterVolume);
+			};
+			$(rangeInput).bind('input', function (e) { updateMasterVolume(); });
+			$(rangeInput).change(function() { updateMasterVolume(); });
+
+			paella.events.bind(paella.events.setVolume, (event,params) => {
+				rangeInput.value = params.master;
+				this.updateClass();
+			});
+			this.updateClass();
+
+			return rangeInput;
+		}
+
+		updateClass() {
+			var selected = '';
+			var self = this;
+			
+			paella.player.videoContainer.volume()
+				.then((volume) => {
+					if (volume === undefined) { selected = 'icon-volume-mid'; }
+					else if (volume == 0) { selected = 'icon-volume-mute'; }
+					else if (volume < 0.33) { selected = 'icon-volume-low'; }
+					else if (volume < 0.66) { selected = 'icon-volume-mid'; }
+					else { selected = 'icon-volume-high'; }
+					this.changeIconClass(selected);
+				})
+		}
+	};
+});
+
+
+(() => {
+
+class WebmVideoFactory extends paella.VideoFactory {
+	webmCapable() {
+		var testEl = document.createElement( "video" );
+		if ( testEl.canPlayType ) {
+			return "" !== testEl.canPlayType( 'video/webm; codecs="vp8, vorbis"' );
+		}
+		else {
+			return false;
+		}
+	}
+
+	isStreamCompatible(streamData) {
+		try {
+			if (!this.webmCapable()) return false;
+			for (var key in streamData.sources) {
+				if (key=='webm') return true;
+			}
+		}
+		catch (e) {}
+		return false;
+	}
+
+	getVideoObject(id, streamData, rect) {
+		return new paella.Html5Video(id, streamData, rect.x, rect.y, rect.w, rect.h,'webm');
+	}
+}
+
+paella.videoFactories.WebmVideoFactory = WebmVideoFactory;
+
+})();
+
+paella.addPlugin(function() {
+	return class WindowTitlePlugin extends paella.EventDrivenPlugin {
+		
+		getName() {
+			return "es.upv.paella.windowTitlePlugin";
+		}
+		
+		checkEnabled(onSuccess) {
+			this._initDone = false;
+			paella.player.videoContainer.masterVideo().duration()
+				.then((d) => {
+					this.loadTitle();
+				});
+			onSuccess(true);
+		}
+
+		loadTitle() {
+			var title = paella.player.videoLoader.getMetadata() && paella.player.videoLoader.getMetadata().title;
+			document.title = title || document.title;
+			this._initDone = true;
+		}
+	};
+});
+
+(() => {
+	
+class YoutubeVideo extends paella.VideoElementBase {
+
+	constructor(id,stream,left,top,width,height) {
+		super(id,stream,'div',left,top,width,height);
+		this._posterFrame = null;
+		this._currentQuality = null;
+		this._autoplay = false;
+		this._readyPromise = null;
+
+		this._readyPromise = $.Deferred();
+	}
+
+	get video() { return this._youtubePlayer; }
+
+	_deferredAction(action) {
+		return new Promise((resolve,reject) => {
+			this._readyPromise.then(function() {
+					resolve(action());
+				},
+				function() {
+					reject();
+				});
+		});
+	}
+
+	_getQualityObject(index, s) {
+		var level = 0;
+		switch (s) {
+			case 'small':
+				level = 1;
+				break;
+			case 'medium':
+				level = 2;
+				break;
+			case 'large':
+				level = 3;
+				break;
+			case 'hd720':
+				level = 4;
+				break;
+			case 'hd1080':
+				level = 5;
+				break;
+			case 'highres':
+				level = 6;
+				break;
+		}
+		return {
+			index: index,
+			res: { w:null, h:null},
+			src: null,
+			label:s,
+			level:level,
+			bitrate:level,
+			toString:function() { return this.label; },
+			shortLabel:function() { return this.label; },
+			compare:function(q2) { return this.level - q2.level; }
+		};
+	}
+
+	_onStateChanged(e) {
+		console.log("On state changed");
+	}
+
+	// Initialization functions
+	getVideoData() {
+		var This = this;
+		return new Promise((resolve,reject) => {
+			var stream = this._stream.sources.youtube[0];
+			this._deferredAction(() => {
+				var videoData = {
+					duration: This.video.getDuration(),
+					currentTime: This.video.getCurrentTime(),
+					volume: This.video.getVolume(),
+					paused: !This._playing,
+					ended: This.video.ended,
+					res: {
+						w: stream.res.w,
+						h: stream.res.h
+					}
+				};
+				resolve(videoData);
+			})
+		});
+	}
+
+	setPosterFrame(url) {
+		this._posterFrame = url;
+	}
+
+	setAutoplay(auto) {
+		this._autoplay = auto;
+
+	}
+
+	setRect(rect,animate) {
+		this._rect = JSON.parse(JSON.stringify(rect));
+		var relativeSize = new paella.RelativeVideoSize();
+		var percentTop = relativeSize.percentVSize(rect.top) + '%';
+		var percentLeft = relativeSize.percentWSize(rect.left) + '%';
+		var percentWidth = relativeSize.percentWSize(rect.width) + '%';
+		var percentHeight = relativeSize.percentVSize(rect.height) + '%';
+		var style = {top:percentTop,left:percentLeft,width:percentWidth,height:percentHeight,position:'absolute'};
+		if (animate) {
+			this.disableClassName();
+			var thisClass = this;
+
+			$('#' + this.identifier).animate(style,400,function(){
+				thisClass.enableClassName();
+				paella.events.trigger(paella.events.setComposition, { video:thisClass });
+			});
+			this.enableClassNameAfter(400);
+		}
+		else {
+			$('#' + this.identifier).css(style);
+			paella.events.trigger(paella.events.setComposition, { video:this });
+		}
+	}
+
+	setVisible(visible,animate) {
+		if (visible=="true" && animate) {
+			$('#' + this.identifier).show();
+			$('#' + this.identifier).animate({opacity:1.0},300);
+		}
+		else if (visible=="true" && !animate) {
+			$('#' + this.identifier).show();
+		}
+		else if (visible=="false" && animate) {
+			$('#' + this.identifier).animate({opacity:0.0},300);
+		}
+		else if (visible=="false" && !animate) {
+			$('#' + this.identifier).hide();
+		}
+	}
+
+	setLayer(layer) {
+		$('#' + this.identifier).css({ zIndex:layer});
+	}
+
+	load() {
+		var This = this;
+		return new Promise((resolve,reject) => {
+			this._qualityListReadyPromise = $.Deferred();
+			paella.youtubePlayerVars.apiReadyPromise.
+				then(() => {
+					var stream = this._stream.sources.youtube[0];
+
+					if (stream) {
+						// TODO: poster frame
+						this._youtubePlayer = new YT.Player(This.identifier, {
+							height: '390',
+							width: '640',
+							videoId:stream.id,
+							playerVars: {
+								controls: 0,
+								disablekb: 1
+							},
+							events: {
+								onReady: function(e) {
+									This._readyPromise.resolve();
+								},
+								onStateChanged:function(e) {
+									console.log("state changed");
+								},
+								onPlayerStateChange:function(e) {
+									console.log("state changed");
+								}
+							}
+						});
+
+						resolve();
+					}
+					else {
+						reject(new Error("Could not load video: invalid quality stream index"));
+					}
+				});
+		});
+	}
+
+	getQualities() {
+		let This = this;
+		return new Promise((resolve,reject) => {
+			This._qualityListReadyPromise.then(function(q) {
+				var result = [];
+				var index = -1;
+				This._qualities = {};
+				q.forEach((item) => {
+					index++;
+					This._qualities[item] = This._getQualityObject(index,item);
+					result.push(This._qualities[item]);
+				});
+				resolve(result);
+			});
+		});
+	}
+
+	setQuality(index) {
+		return new Promise((resolve,reject) => {
+			this._qualityListReadyPromise.then((q) => {
+				for (var key in this._qualities) {
+					var searchQ = this._qualities[key];
+					if (typeof(searchQ)=="object" && searchQ.index==index) {
+						this.video.setPlaybackQuality(searchQ.label);
+						break;
+					}
+				}
+				resolve();
+			});
+		});
+	}
+
+	getCurrentQuality() {
+		return new Promise((resolve,reject) => {
+			this._qualityListReadyPromise.then((q) => {
+				resolve(this._qualities[this.video.getPlaybackQuality()]);
+			});
+		});
+	}
+
+	play() {
+		let This = this;
+		return new Promise((resolve,reject) => {
+			This._playing = true;
+			This.video.playVideo();
+			new base.Timer((timer) => {
+				var q = this.video.getAvailableQualityLevels();
+				if (q.length) {
+					timer.repeat = false;
+					this._qualityListReadyPromise.resolve(q);
+					resolve();
+				}
+				else {
+					timer.repeat = true;
+				}
+			},500);
+		});
+	}
+
+	pause() {
+		return this._deferredAction(() => {
+			this._playing = false;
+			this.video.pauseVideo();
+		});
+	}
+
+	isPaused() {
+		return this._deferredAction(() => {
+			return !this._playing;
+		});
+	}
+
+	duration() {
+		return this._deferredAction(() => {
+			return this.video.getDuration();
+		});
+	}
+
+	setCurrentTime(time) {
+		return this._deferredAction(() => {
+			this.video.seekTo(time);
+		});
+	}
+
+	currentTime() {
+		return this._deferredAction(() => {
+			return this.video.getCurrentTime();
+		});
+	}
+
+	setVolume(volume) {
+		return this._deferredAction(() => {
+			this.video.setVolume && this.video.setVolume(volume * 100);
+		});
+	}
+
+	volume() {
+		return this._deferredAction(() => {
+			return this.video.getVolume() / 100;
+		});
+	}
+
+	setPlaybackRate(rate) {
+		return this._deferredAction(() => {
+			this.video.playbackRate = rate;
+		});
+	}
+
+	playbackRate() {
+		return this._deferredAction(() => {
+			return this.video.playbackRate;
+		});
+	}
+
+	goFullScreen() {
+		return this._deferredAction(() => {
+			var elem = this.video;
+			if (elem.requestFullscreen) {
+				elem.requestFullscreen();
+			}
+			else if (elem.msRequestFullscreen) {
+				elem.msRequestFullscreen();
+			}
+			else if (elem.mozRequestFullScreen) {
+				elem.mozRequestFullScreen();
+			}
+			else if (elem.webkitEnterFullscreen) {
+				elem.webkitEnterFullscreen();
+			}
+		});
+	}
+
+	unFreeze(){
+		return this._deferredAction(() => {
+			var c = document.getElementById(this.video.className + "canvas");
+			$(c).remove();
+		});
+	}
+
+	freeze(){
+		return this._deferredAction(() => {
+			var canvas = document.createElement("canvas");
+			canvas.id = this.video.className + "canvas";
+			canvas.width = this.video.videoWidth;
+			canvas.height = this.video.videoHeight;
+			canvas.style.cssText = this.video.style.cssText;
+			canvas.style.zIndex = 2;
+
+			var ctx = canvas.getContext("2d");
+			ctx.drawImage(this.video, 0, 0, Math.ceil(canvas.width/16)*16, Math.ceil(canvas.height/16)*16);//Draw image
+			this.video.parentElement.appendChild(canvas);
+		});
+	}
+
+	unload() {
+		this._callUnloadEvent();
+		return paella_DeferredNotImplemented();
+	}
+
+	getDimensions() {
+		return paella_DeferredNotImplemented();
+	}
+}
+
+paella.YoutubeVideo = YoutubeVideo;
+
+class YoutubeVideoFactory extends paella.VideoFactory {
+	initYoutubeApi() {
+		if (!this._initialized) {
+			var tag = document.createElement('script');
+
+			tag.src = "https://www.youtube.com/iframe_api";
+			var firstScriptTag = document.getElementsByTagName('script')[0];
+			firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+			paella.youtubePlayerVars = {
+				apiReadyPromise: new $.Deferred()
+			};
+			this._initialized = true;
+		}
+	}
+
+	isStreamCompatible(streamData) {
+		try {
+			for (var key in streamData.sources) {
+				if (key=='youtube') return true;
+			}
+		}
+		catch (e) {}
+		return false;
+	}
+
+	getVideoObject(id, streamData, rect) {
+		this.initYoutubeApi();
+		return new paella.YoutubeVideo(id, streamData, rect.x, rect.y, rect.w, rect.h);
+	}
+}
+
+paella.videoFactories.YoutubeVideoFactory = YoutubeVideoFactory;
+
+//paella.youtubePlayerVars = {
+//	apiReadyPromise: $.Promise()
+//};
+
+
+})();
+
+
+function onYouTubeIframeAPIReady() {
+	//	console.log("Youtube iframe API ready");
+	paella.youtubePlayerVars.apiReadyPromise.resolve();
+}
+
+
+paella.addPlugin(function() {
+  return class MatomoTracking extends paella.userTracking.SaverPlugIn {
+    getName() { return "org.opencast.usertracking.MatomoSaverPlugIn"; }
+
+    checkEnabled(onSuccess) {
+
+      var site_id = this.config.site_id,
+          server = this.config.server,
+          heartbeat = this.config.heartbeat,
+          thisClass = this;
+
+      if (server && site_id){
+        if (server.substr(-1) != '/') server += '/';
+        require([server + "piwik.js"], function(matomo) {
+          base.log.debug("Matomo Analytics Enabled");
+          paella.userTracking.matomotracker = Piwik.getAsyncTracker( server + "piwik.php", site_id );
+          paella.userTracking.matomotracker.client_id = thisClass.config.client_id;
+          if (heartbeat && heartbeat > 0) paella.userTracking.matomotracker.enableHeartBeatTimer(heartbeat);
+          if (Piwik && Piwik.MediaAnalytics) {
+            paella.events.bind(paella.events.videoReady, () => {
+              Piwik.MediaAnalytics.scanForMedia();
+            });
+          }
+          thisClass.registerVisit();
+        });
+        onSuccess(true);
+      }	else {
+        base.log.debug("No Matomo Site ID found in config file. Disabling Matomo Analytics PlugIn");
+        onSuccess(false);
+      }
+    }
+
+    registerVisit() {
+      var title,
+          event_id,
+          series_title,
+          series_id,
+          presenter,
+          view_mode;
+
+      if (paella.opencast && paella.opencast._episode) {
+        title = paella.opencast._episode.dcTitle;
+        event_id = paella.opencast._episode.id;
+        presenter = paella.opencast._episode.dcCreator;
+        paella.userTracking.matomotracker.setCustomVariable(5, "client",
+          (paella.userTracking.matomotracker.client_id || "Paella Opencast"));
+      } else {
+        paella.userTracking.matomotracker.setCustomVariable(5, "client",
+          (paella.userTracking.matomotracker.client_id || "Paella Standalone"));
+      }
+
+      if (paella.opencast && paella.opencast._episode && paella.opencast._episode.mediapackage) {
+        series_id = paella.opencast._episode.mediapackage.series;
+        series_title = paella.opencast._episode.mediapackage.seriestitle;
+      }
+
+      if (title)
+        paella.userTracking.matomotracker.setCustomVariable(1, "event", title + " (" + event_id + ")", "page");
+      if (series_title)
+        paella.userTracking.matomotracker.setCustomVariable(2, "series", series_title + " (" + series_id + ")", "page");
+      if (presenter) paella.userTracking.matomotracker.setCustomVariable(3, "presenter", presenter, "page");
+      paella.userTracking.matomotracker.setCustomVariable(4, "view_mode", view_mode, "page");
+      if (title && presenter) {
+        paella.userTracking.matomotracker.setDocumentTitle(title + " - " + (presenter || "Unknown"));
+        paella.userTracking.matomotracker.trackPageView(title + " - " + (presenter || "Unknown"));
+      } else {
+        paella.userTracking.matomotracker.trackPageView();
+      }
+    }
+
+    log(event, params) {
+      if (paella.userTracking.matomotracker === undefined) {
+        base.log.debug("Matomo Tracker is missing");
+        return;
+      }
+      if ((this.config.category === undefined) || (this.config.category ===true)) {
+
+        var value = "";
+
+        try {
+          value = JSON.stringify(params);
+        } catch(e) {}
+
+        switch (event) {
+          case paella.events.play:
+            paella.userTracking.matomotracker.trackEvent("Player.Controls","Play");
+            break;
+          case paella.events.pause:
+            paella.userTracking.matomotracker.trackEvent("Player.Controls","Pause");
+            break;
+          case paella.events.endVideo:
+            paella.userTracking.matomotracker.trackEvent("Player.Status","Ended");
+            break;
+          case paella.events.showEditor:
+            paella.userTracking.matomotracker.trackEvent("Player.Editor","Show");
+            break;
+          case paella.events.hideEditor:
+            paella.userTracking.matomotracker.trackEvent("Player.Editor","Hide");
+            break;
+          case paella.events.enterFullscreen:
+            paella.userTracking.matomotracker.trackEvent("Player.View","Fullscreen");
+            break;
+          case paella.events.exitFullscreen:
+            paella.userTracking.matomotracker.trackEvent("Player.View","ExitFullscreen");
+            break;
+          case paella.events.loadComplete:
+            paella.userTracking.matomotracker.trackEvent("Player.Status","LoadComplete");
+            break;
+          case paella.events.showPopUp:
+            paella.userTracking.matomotracker.trackEvent("Player.PopUp","Show", value);
+            break;
+          case paella.events.hidePopUp:
+            paella.userTracking.matomotracker.trackEvent("Player.PopUp","Hide", value);
+            break;
+          case paella.events.captionsEnabled:
+            paella.userTracking.matomotracker.trackEvent("Player.Captions","Enabled", value);
+            break;
+          case paella.events.captionsDisabled:
+            paella.userTracking.matomotracker.trackEvent("Player.Captions","Disabled", value);
+            break;
+          case paella.events.setProfile:
+            paella.userTracking.matomotracker.trackEvent("Player.View","Profile", value);
+            break;
+          case paella.events.seekTo:
+          case paella.events.seekToTime:
+            paella.userTracking.matomotracker.trackEvent("Player.Controls","Seek", value);
+            break;
+          case paella.events.setVolume:
+            paella.userTracking.matomotracker.trackEvent("Player.Settings","Volume", value);
+            break;
+          case paella.events.resize:
+            paella.userTracking.matomotracker.trackEvent("Player.View","resize", value);
+            break;
+          case paella.events.setPlaybackRate:
+            paella.userTracking.matomotracker.trackEvent("Player.Controls","PlaybackRate", value);
+            break;
+
+        }
+      }
+    }
+
+  }
+});
+
+
+
+
+
+
+
+paella.addPlugin(function() {
+    var self = this;
+    return class X5gonTracking extends paella.userTracking.SaverPlugIn {
+        getName() { 
+            return "org.opencast.usertracking.x5gonSaverPlugIn"; 
+        };
+
+        checkEnabled(onSuccess) {
+            var urlCookieconsentJS = "https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js",
+                token = this.config.token,
+                translations = [],
+                path,
+                testingEnvironment = this.config.testing_environment,
+                trackingPermission,
+                tracked;
+           
+            function trackX5gon() {
+                base.log.debug("X5GON: trackX5gon permission check [trackingPermission " + trackingPermission + "] [tracked " + tracked + "]");
+                if (isTrackingPermission() && !tracked) {
+                    if (!token) {
+                        base.log.debug("X5GON: token missing! Disabling X5gon PlugIn");
+                        onSuccess(false);
+                        }
+                    else {
+                        // load x5gon lib from remote server
+                        base.log.debug("X5GON: trackX5gon loading x5gon-snippet, token: " + token);
+                        require(["https://platform.x5gon.org/api/v1/snippet/latest/x5gon-log.min.js"], function (x5gon) {
+                            base.log.debug("X5GON: external x5gon snippet loaded");
+                            if (typeof x5gonActivityTracker !== 'undefined') {
+                                x5gonActivityTracker(token, testingEnvironment);
+                                base.log.debug("X5GON: send data to X5gon servers");
+                                tracked = true;
+                            }                                             
+                        });
+                    }
+                    onSuccess(true);
+                } else {
+                    onSuccess(false);
+                }
+            }
+
+            function initCookieNotification() {
+                // load cookieconsent lib from remote server
+                require([urlCookieconsentJS], function (cookieconsent) {
+                    base.log.debug("X5GON: external cookie consent lib loaded");
+                    window.cookieconsent.initialise({
+                        "palette": {
+                            "popup": {
+                                "background": "#1d8a8a"
+                            },
+                            "button": {
+                                "background": "#62ffaa"
+                            }
+                        },
+                        "type": "opt-in",
+                        "position": "top",
+                        "content": {
+                            "message": translate('x5_message', "On this site the X5gon service can be included, to provide personalized Open Educational Ressources."),
+                            "allow": translate('x5_accept', "Accept"),
+                            "deny": translate('x5_deny', "Deny"),
+                            "link": translate('x5_more_info', "More information"),
+                            "policy": translate('x5_policy', "Cookie Policy"),
+                            // link to the X5GON platform privacy policy - describing what are we collecting
+                            // through the platform
+                            "href": "https://platform.x5gon.org/privacy-policy"
+                        },
+                        onInitialise: function (status) {
+                            var type = this.options.type;
+                            var didConsent = this.hasConsented();
+                            // enable cookies - send user data to the platform
+                            // only if the user enabled cookies
+                            if (type == 'opt-in' && didConsent) {
+                                setTrackingPermission(true);
+                            } else {
+                                setTrackingPermission(false);
+                            }
+                        },
+                        onStatusChange: function (status, chosenBefore) {
+                            var type = this.options.type;
+                            var didConsent = this.hasConsented();
+                            // enable cookies - send user data to the platform
+                            // only if the user enabled cookies
+                            if (type == 'opt-in' && didConsent) {
+                                setTrackingPermission(true);
+                            } else {
+                                setTrackingPermission(false);
+                            }
+                        },
+                        onRevokeChoice: function () {
+                            var type = this.options.type;
+                            var didConsent = this.hasConsented();
+                            // disable cookies - set what to do when
+                            // the user revokes cookie usage
+                            if (type == 'opt-in' && didConsent) {
+                                setTrackingPermission(true);
+                            } else {
+                                setTrackingPermission(false);
+                            }
+                        }
+                    })
+                })
+            }
+
+            function initTranslate(language, funcSuccess, funcError) {
+                base.log.debug('X5GON: selecting language ' + language.slice(0,2));
+                var jsonstr = window.location.origin + '/player/localization/paella_' + language.slice(0,2) + '.json';
+                $.ajax({
+                    url: jsonstr,
+                    dataType: 'json',
+                    success: function (data) {
+                        if (data) {
+                            data.value_locale = language;
+                            translations = data;
+                            if (funcSuccess) {
+                                funcSuccess(translations);
+                            }
+                        } else if (funcError) {
+                            funcError();
+                        }
+                    },
+                    error: function () {
+                        if (funcError) {
+                            funcError();
+                        }
+                    }
+                });
+            }
+
+            function translate(str, strIfNotFound) {
+                return (translations[str] != undefined) ? translations[str] : strIfNotFound;
+            }
+
+            function isTrackingPermission() {
+                if (checkDoNotTrackStatus() || !trackingPermission) {
+                    return false;
+                } else {
+                    return true;   
+                }  
+            }
+
+            function checkDoNotTrackStatus() {
+                if (window.navigator.doNotTrack == 1 || window.navigator.msDoNotTrack == 1) {
+                    base.log.debug("X5GON: Browser DoNotTrack: true");
+                    return true;
+                }
+                base.log.debug("X5GON: Browser DoNotTrack: false");
+                return false;
+            }
+
+            function setTrackingPermission(permissionStatus) {
+                trackingPermission = permissionStatus;
+                base.log.debug("X5GON: trackingPermissions: " + permissionStatus);
+                trackX5gon();
+            };
+
+            initTranslate(navigator.language, function () {
+                base.log.debug('X5GON: Successfully translated.');
+                initCookieNotification();
+            }, function () {
+                base.log.debug('X5gon: Error translating.');
+                initCookieNotification();
+            });
+
+            trackX5gon();
+
+            onSuccess(true);
+        };
+
+        log(event, params) {
+            if ((this.config.category === undefined) || (this.config.category === true)) {
+                var category = this.config.category || "PaellaPlayer";
+                var action = event;
+                var label = "";
+
+                try {
+                    label = JSON.stringify(params);
+                } catch (e) {}
+            }
+        };
+    };
+});
diff --git a/src/main/webapp/static/js/paella/player/javascript/polyfill.min.js b/src/main/webapp/static/js/paella/player/javascript/polyfill.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1cdc7b8acf0b864238a18dba6dcb2ee6155983f
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/javascript/polyfill.min.js
@@ -0,0 +1 @@
+!function r(c,a,f){function o(n,t){if(!a[n]){if(!c[n]){var e="function"==typeof require&&require;if(!t&&e)return e(n,!0);if(s)return s(n,!0);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}var u=a[n]={exports:{}};c[n][0].call(u.exports,function(t){return o(c[n][1][t]||t)},u,u.exports,r,c,a,f)}return a[n].exports}for(var s="function"==typeof require&&require,t=0;t<f.length;t++)o(f[t]);return o}({1:[function(t,n,r){"use strict";t(2);var e=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(t(15));e.default._babelPolyfill&&"undefined"!=typeof console&&console.warn&&console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning."),e.default._babelPolyfill=!0},{15:15,2:2}],2:[function(t,n,r){"use strict";t(3),t(5),t(4),t(11),t(10),t(13),t(12),t(14),t(7),t(8),t(6),t(9),t(306),t(307)},{10:10,11:11,12:12,13:13,14:14,3:3,306:306,307:307,4:4,5:5,6:6,7:7,8:8,9:9}],3:[function(t,n,r){t(278),t(214),t(216),t(215),t(218),t(220),t(225),t(219),t(217),t(227),t(226),t(222),t(223),t(221),t(213),t(224),t(228),t(229),t(180),t(182),t(181),t(231),t(230),t(201),t(211),t(212),t(202),t(203),t(204),t(205),t(206),t(207),t(208),t(209),t(210),t(184),t(185),t(186),t(187),t(188),t(189),t(190),t(191),t(192),t(193),t(194),t(195),t(196),t(197),t(198),t(199),t(200),t(265),t(270),t(277),t(268),t(260),t(261),t(266),t(271),t(273),t(256),t(257),t(258),t(259),t(262),t(263),t(264),t(267),t(269),t(272),t(274),t(275),t(276),t(175),t(177),t(176),t(179),t(178),t(163),t(161),t(168),t(165),t(171),t(173),t(160),t(167),t(157),t(172),t(155),t(170),t(169),t(162),t(166),t(154),t(156),t(159),t(158),t(174),t(164),t(247),t(248),t(254),t(249),t(250),t(251),t(252),t(253),t(232),t(183),t(255),t(290),t(291),t(279),t(280),t(285),t(288),t(289),t(283),t(286),t(284),t(287),t(281),t(282),t(233),t(234),t(235),t(236),t(237),t(240),t(238),t(239),t(241),t(242),t(243),t(244),t(246),t(245),n.exports=t(52)},{154:154,155:155,156:156,157:157,158:158,159:159,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,186:186,187:187,188:188,189:189,190:190,191:191,192:192,193:193,194:194,195:195,196:196,197:197,198:198,199:199,200:200,201:201,202:202,203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,216:216,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,52:52}],4:[function(t,n,r){t(292),n.exports=t(52).Array.flatMap},{292:292,52:52}],5:[function(t,n,r){t(293),n.exports=t(52).Array.includes},{293:293,52:52}],6:[function(t,n,r){t(294),n.exports=t(52).Object.entries},{294:294,52:52}],7:[function(t,n,r){t(295),n.exports=t(52).Object.getOwnPropertyDescriptors},{295:295,52:52}],8:[function(t,n,r){t(296),n.exports=t(52).Object.values},{296:296,52:52}],9:[function(t,n,r){"use strict";t(232),t(297),n.exports=t(52).Promise.finally},{232:232,297:297,52:52}],10:[function(t,n,r){t(298),n.exports=t(52).String.padEnd},{298:298,52:52}],11:[function(t,n,r){t(299),n.exports=t(52).String.padStart},{299:299,52:52}],12:[function(t,n,r){t(301),n.exports=t(52).String.trimRight},{301:301,52:52}],13:[function(t,n,r){t(300),n.exports=t(52).String.trimLeft},{300:300,52:52}],14:[function(t,n,r){t(302),n.exports=t(151).f("asyncIterator")},{151:151,302:302}],15:[function(t,n,r){t(32),n.exports=t(18).global},{18:18,32:32}],16:[function(t,n,r){n.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},{}],17:[function(t,n,r){var e=t(28);n.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},{28:28}],18:[function(t,n,r){var e=n.exports={version:"2.6.10"};"number"==typeof __e&&(__e=e)},{}],19:[function(t,n,r){var o=t(16);n.exports=function(e,i,t){if(o(e),void 0===i)return e;switch(t){case 1:return function(t){return e.call(i,t)};case 2:return function(t,n){return e.call(i,t,n)};case 3:return function(t,n,r){return e.call(i,t,n,r)}}return function(){return e.apply(i,arguments)}}},{16:16}],20:[function(t,n,r){n.exports=!t(23)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{23:23}],21:[function(t,n,r){var e=t(28),i=t(24).document,o=e(i)&&e(i.createElement);n.exports=function(t){return o?i.createElement(t):{}}},{24:24,28:28}],22:[function(t,n,r){var g=t(24),y=t(18),d=t(19),x=t(26),m=t(25),S="prototype",b=function(t,n,r){var e,i,o,u=t&b.F,c=t&b.G,a=t&b.S,f=t&b.P,s=t&b.B,l=t&b.W,h=c?y:y[n]||(y[n]={}),p=h[S],v=c?g:a?g[n]:(g[n]||{})[S];for(e in c&&(r=n),r)(i=!u&&v&&void 0!==v[e])&&m(h,e)||(o=i?v[e]:r[e],h[e]=c&&"function"!=typeof v[e]?r[e]:s&&i?d(o,g):l&&v[e]==o?function(e){function qb(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)}return qb[S]=e[S],qb}(o):f&&"function"==typeof o?d(Function.call,o):o,f&&((h.virtual||(h.virtual={}))[e]=o,t&b.R&&p&&!p[e]&&x(p,e,o)))};b.F=1,b.G=2,b.S=4,b.P=8,b.B=16,b.W=32,b.U=64,b.R=128,n.exports=b},{18:18,19:19,24:24,25:25,26:26}],23:[function(t,n,r){n.exports=function(t){try{return!!t()}catch(t){return!0}}},{}],24:[function(t,n,r){var e=n.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},{}],25:[function(t,n,r){var e={}.hasOwnProperty;n.exports=function(t,n){return e.call(t,n)}},{}],26:[function(t,n,r){var e=t(29),i=t(30);n.exports=t(20)?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},{20:20,29:29,30:30}],27:[function(t,n,r){n.exports=!t(20)&&!t(23)(function(){return 7!=Object.defineProperty(t(21)("div"),"a",{get:function(){return 7}}).a})},{20:20,21:21,23:23}],28:[function(t,n,r){n.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],29:[function(t,n,r){var e=t(17),i=t(27),o=t(31),u=Object.defineProperty;r.f=t(20)?Object.defineProperty:function defineProperty(t,n,r){if(e(t),n=o(n,!0),e(r),i)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},{17:17,20:20,27:27,31:31}],30:[function(t,n,r){n.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},{}],31:[function(t,n,r){var i=t(28);n.exports=function(t,n){if(!i(t))return t;var r,e;if(n&&"function"==typeof(r=t.toString)&&!i(e=r.call(t)))return e;if("function"==typeof(r=t.valueOf)&&!i(e=r.call(t)))return e;if(!n&&"function"==typeof(r=t.toString)&&!i(e=r.call(t)))return e;throw TypeError("Can't convert object to primitive value")}},{28:28}],32:[function(t,n,r){var e=t(22);e(e.G,{global:t(24)})},{22:22,24:24}],33:[function(t,n,r){arguments[4][16][0].apply(r,arguments)},{16:16}],34:[function(t,n,r){var e=t(48);n.exports=function(t,n){if("number"!=typeof t&&"Number"!=e(t))throw TypeError(n);return+t}},{48:48}],35:[function(t,n,r){var e=t(152)("unscopables"),i=Array.prototype;null==i[e]&&t(72)(i,e,{}),n.exports=function(t){i[e][t]=!0}},{152:152,72:72}],36:[function(t,n,r){"use strict";var e=t(129)(!0);n.exports=function(t,n,r){return n+(r?e(t,n).length:1)}},{129:129}],37:[function(t,n,r){n.exports=function(t,n,r,e){if(!(t instanceof n)||void 0!==e&&e in t)throw TypeError(r+": incorrect invocation!");return t}},{}],38:[function(t,n,r){arguments[4][17][0].apply(r,arguments)},{17:17,81:81}],39:[function(t,n,r){"use strict";var f=t(142),s=t(137),l=t(141);n.exports=[].copyWithin||function copyWithin(t,n){var r=f(this),e=l(r.length),i=s(t,e),o=s(n,e),u=2<arguments.length?arguments[2]:void 0,c=Math.min((void 0===u?e:s(u,e))-o,e-i),a=1;for(o<i&&i<o+c&&(a=-1,o+=c-1,i+=c-1);0<c--;)o in r?r[i]=r[o]:delete r[i],i+=a,o+=a;return r}},{137:137,141:141,142:142}],40:[function(t,n,r){"use strict";var c=t(142),a=t(137),f=t(141);n.exports=function fill(t){for(var n=c(this),r=f(n.length),e=arguments.length,i=a(1<e?arguments[1]:void 0,r),o=2<e?arguments[2]:void 0,u=void 0===o?r:a(o,r);i<u;)n[i++]=t;return n}},{137:137,141:141,142:142}],41:[function(t,n,r){var a=t(140),f=t(141),s=t(137);n.exports=function(c){return function(t,n,r){var e,i=a(t),o=f(i.length),u=s(r,o);if(c&&n!=n){for(;u<o;)if((e=i[u++])!=e)return!0}else for(;u<o;u++)if((c||u in i)&&i[u]===n)return c||u||0;return!c&&-1}}},{137:137,140:140,141:141}],42:[function(t,n,r){var m=t(54),S=t(77),b=t(142),w=t(141),e=t(45);n.exports=function(l,t){var h=1==l,p=2==l,v=3==l,g=4==l,y=6==l,d=5==l||y,x=t||e;return function(t,n,r){for(var e,i,o=b(t),u=S(o),c=m(n,r,3),a=w(u.length),f=0,s=h?x(t,a):p?x(t,0):void 0;f<a;f++)if((d||f in u)&&(i=c(e=u[f],f,o),l))if(h)s[f]=i;else if(i)switch(l){case 3:return!0;case 5:return e;case 6:return f;case 2:s.push(e)}else if(g)return!1;return y?-1:v||g?g:s}}},{141:141,142:142,45:45,54:54,77:77}],43:[function(t,n,r){var s=t(33),l=t(142),h=t(77),p=t(141);n.exports=function(t,n,r,e,i){s(n);var o=l(t),u=h(o),c=p(o.length),a=i?c-1:0,f=i?-1:1;if(r<2)for(;;){if(a in u){e=u[a],a+=f;break}if(a+=f,i?a<0:c<=a)throw TypeError("Reduce of empty array with no initial value")}for(;i?0<=a:a<c;a+=f)a in u&&(e=n(e,u[a],a,o));return e}},{141:141,142:142,33:33,77:77}],44:[function(t,n,r){var e=t(81),i=t(79),o=t(152)("species");n.exports=function(t){var n;return i(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!i(n.prototype)||(n=void 0),e(n)&&null===(n=n[o])&&(n=void 0)),void 0===n?Array:n}},{152:152,79:79,81:81}],45:[function(t,n,r){var e=t(44);n.exports=function(t,n){return new(e(t))(n)}},{44:44}],46:[function(t,n,r){"use strict";var o=t(33),u=t(81),c=t(76),a=[].slice,f={};n.exports=Function.bind||function bind(n){var r=o(this),e=a.call(arguments,1),i=function(){var t=e.concat(a.call(arguments));return this instanceof i?function(t,n,r){if(!(n in f)){for(var e=[],i=0;i<n;i++)e[i]="a["+i+"]";f[n]=Function("F,a","return new F("+e.join(",")+")")}return f[n](t,r)}(r,t.length,t):c(r,t,n)};return u(r.prototype)&&(i.prototype=r.prototype),i}},{33:33,76:76,81:81}],47:[function(t,n,r){var i=t(48),o=t(152)("toStringTag"),u="Arguments"==i(function(){return arguments}());n.exports=function(t){var n,r,e;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),o))?r:u?i(n):"Object"==(e=i(n))&&"function"==typeof n.callee?"Arguments":e}},{152:152,48:48}],48:[function(t,n,r){var e={}.toString;n.exports=function(t){return e.call(t).slice(8,-1)}},{}],49:[function(t,n,r){"use strict";function ag(t,n){var r,e=p(n);if("F"!==e)return t._i[e];for(r=t._f;r;r=r.n)if(r.k==n)return r}var u=t(99).f,c=t(98),a=t(117),f=t(54),s=t(37),l=t(68),e=t(85),i=t(87),o=t(123),h=t(58),p=t(94).fastKey,v=t(149),g=h?"_s":"size";n.exports={getConstructor:function(t,o,r,e){var i=t(function(t,n){s(t,i,o,"_i"),t._t=o,t._i=c(null),t._f=void 0,t._l=void 0,t[g]=0,null!=n&&l(n,r,t[e],t)});return a(i.prototype,{clear:function clear(){for(var t=v(this,o),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[g]=0},delete:function(t){var n=v(this,o),r=ag(n,t);if(r){var e=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=e),e&&(e.p=i),n._f==r&&(n._f=e),n._l==r&&(n._l=i),n[g]--}return!!r},forEach:function forEach(t){v(this,o);for(var n,r=f(t,1<arguments.length?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function has(t){return!!ag(v(this,o),t)}}),h&&u(i.prototype,"size",{get:function(){return v(this,o)[g]}}),i},def:function(t,n,r){var e,i,o=ag(t,n);return o?o.v=r:(t._l=o={i:i=p(n,!0),k:n,v:r,p:e=t._l,n:void 0,r:!1},t._f||(t._f=o),e&&(e.n=o),t[g]++,"F"!==i&&(t._i[i]=o)),t},getEntry:ag,setStrong:function(t,r,n){e(t,r,function(t,n){this._t=v(t,r),this._k=n,this._l=void 0},function(){for(var t=this,n=t._k,r=t._l;r&&r.r;)r=r.p;return t._t&&(t._l=r=r?r.n:t._t._f)?i(0,"keys"==n?r.k:"values"==n?r.v:[r.k,r.v]):(t._t=void 0,i(1))},n?"entries":"values",!n,!0),o(r)}}},{117:117,123:123,149:149,37:37,54:54,58:58,68:68,85:85,87:87,94:94,98:98,99:99}],50:[function(t,n,r){"use strict";function _g(t){return t._l||(t._l=new g)}function bh(t,n){return o(t.a,function(t){return t[0]===n})}var u=t(117),c=t(94).getWeak,i=t(38),a=t(81),f=t(37),s=t(68),e=t(42),l=t(71),h=t(149),o=e(5),p=e(6),v=0,g=function(){this.a=[]};g.prototype={get:function(t){var n=bh(this,t);if(n)return n[1]},has:function(t){return!!bh(this,t)},set:function(t,n){var r=bh(this,t);r?r[1]=n:this.a.push([t,n])},delete:function(n){var t=p(this.a,function(t){return t[0]===n});return~t&&this.a.splice(t,1),!!~t}},n.exports={getConstructor:function(t,r,e,i){var o=t(function(t,n){f(t,o,r,"_i"),t._t=r,t._i=v++,t._l=void 0,null!=n&&s(n,e,t[i],t)});return u(o.prototype,{delete:function(t){if(!a(t))return!1;var n=c(t);return!0===n?_g(h(this,r)).delete(t):n&&l(n,this._i)&&delete n[this._i]},has:function has(t){if(!a(t))return!1;var n=c(t);return!0===n?_g(h(this,r)).has(t):n&&l(n,this._i)}}),o},def:function(t,n,r){var e=c(i(n),!0);return!0===e?_g(t).set(n,r):e[t._i]=r,t},ufstore:_g}},{117:117,149:149,37:37,38:38,42:42,68:68,71:71,81:81,94:94}],51:[function(t,n,r){"use strict";var y=t(70),d=t(62),x=t(118),m=t(117),S=t(94),b=t(68),w=t(37),_=t(81),E=t(64),O=t(86),F=t(124),I=t(75);n.exports=function(e,t,n,r,i,o){function ci(t){var r=f[t];x(f,t,"delete"==t?function(t){return!(o&&!_(t))&&r.call(this,0===t?0:t)}:"has"==t?function has(t){return!(o&&!_(t))&&r.call(this,0===t?0:t)}:"get"==t?function get(t){return o&&!_(t)?void 0:r.call(this,0===t?0:t)}:"add"==t?function add(t){return r.call(this,0===t?0:t),this}:function set(t,n){return r.call(this,0===t?0:t,n),this})}var u=y[e],c=u,a=i?"set":"add",f=c&&c.prototype,s={};if("function"==typeof c&&(o||f.forEach&&!E(function(){(new c).entries().next()}))){var l=new c,h=l[a](o?{}:-0,1)!=l,p=E(function(){l.has(1)}),v=O(function(t){new c(t)}),g=!o&&E(function(){for(var t=new c,n=5;n--;)t[a](n,n);return!t.has(-0)});v||(((c=t(function(t,n){w(t,c,e);var r=I(new u,t,c);return null!=n&&b(n,i,r[a],r),r})).prototype=f).constructor=c),(p||g)&&(ci("delete"),ci("has"),i&&ci("get")),(g||h)&&ci(a),o&&f.clear&&delete f.clear}else c=r.getConstructor(t,e,i,a),m(c.prototype,n),S.NEED=!0;return F(c,e),s[e]=c,d(d.G+d.W+d.F*(c!=u),s),o||r.setStrong(c,e,i),c}},{117:117,118:118,124:124,37:37,62:62,64:64,68:68,70:70,75:75,81:81,86:86,94:94}],52:[function(t,n,r){arguments[4][18][0].apply(r,arguments)},{18:18}],53:[function(t,n,r){"use strict";var e=t(99),i=t(116);n.exports=function(t,n,r){n in t?e.f(t,n,i(0,r)):t[n]=r}},{116:116,99:99}],54:[function(t,n,r){arguments[4][19][0].apply(r,arguments)},{19:19,33:33}],55:[function(t,n,r){"use strict";function Qi(t){return 9<t?t:"0"+t}var e=t(64),i=Date.prototype.getTime,o=Date.prototype.toISOString;n.exports=e(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!e(function(){o.call(new Date(NaN))})?function toISOString(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),r=t.getUTCMilliseconds(),e=n<0?"-":9999<n?"+":"";return e+("00000"+Math.abs(n)).slice(e?-6:-4)+"-"+Qi(t.getUTCMonth()+1)+"-"+Qi(t.getUTCDate())+"T"+Qi(t.getUTCHours())+":"+Qi(t.getUTCMinutes())+":"+Qi(t.getUTCSeconds())+"."+(99<r?r:"0"+Qi(r))+"Z"}:o},{64:64}],56:[function(t,n,r){"use strict";var e=t(38),i=t(143);n.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return i(e(this),"number"!=t)}},{143:143,38:38}],57:[function(t,n,r){n.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},{}],58:[function(t,n,r){arguments[4][20][0].apply(r,arguments)},{20:20,64:64}],59:[function(t,n,r){arguments[4][21][0].apply(r,arguments)},{21:21,70:70,81:81}],60:[function(t,n,r){n.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],61:[function(t,n,r){var c=t(107),a=t(104),f=t(108);n.exports=function(t){var n=c(t),r=a.f;if(r)for(var e,i=r(t),o=f.f,u=0;i.length>u;)o.call(t,e=i[u++])&&n.push(e);return n}},{104:104,107:107,108:108}],62:[function(t,n,r){var g=t(70),y=t(52),d=t(72),x=t(118),m=t(54),S="prototype",b=function(t,n,r){var e,i,o,u,c=t&b.F,a=t&b.G,f=t&b.S,s=t&b.P,l=t&b.B,h=a?g:f?g[n]||(g[n]={}):(g[n]||{})[S],p=a?y:y[n]||(y[n]={}),v=p[S]||(p[S]={});for(e in a&&(r=n),r)o=((i=!c&&h&&void 0!==h[e])?h:r)[e],u=l&&i?m(o,g):s&&"function"==typeof o?m(Function.call,o):o,h&&x(h,e,o,t&b.U),p[e]!=o&&d(p,e,u),s&&v[e]!=o&&(v[e]=o)};g.core=y,b.F=1,b.G=2,b.S=4,b.P=8,b.B=16,b.W=32,b.U=64,b.R=128,n.exports=b},{118:118,52:52,54:54,70:70,72:72}],63:[function(t,n,r){var e=t(152)("match");n.exports=function(n){var r=/./;try{"/./"[n](r)}catch(t){try{return r[e]=!1,!"/./"[n](r)}catch(t){}}return!0}},{152:152}],64:[function(t,n,r){arguments[4][23][0].apply(r,arguments)},{23:23}],65:[function(t,n,r){"use strict";t(248);var s=t(118),l=t(72),h=t(64),p=t(57),v=t(152),g=t(120),y=v("species"),d=!h(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),x=function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var r="ab".split(t);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();n.exports=function(r,t,n){var e=v(r),o=!h(function(){var t={};return t[e]=function(){return 7},7!=""[r](t)}),i=o?!h(function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===r&&(n.constructor={},n.constructor[y]=function(){return n}),n[e](""),!t}):void 0;if(!o||!i||"replace"===r&&!d||"split"===r&&!x){var u=/./[e],c=n(p,e,""[r],function maybeCallNative(t,n,r,e,i){return n.exec===g?o&&!i?{done:!0,value:u.call(n,r,e)}:{done:!0,value:t.call(r,n,e)}:{done:!1}}),a=c[0],f=c[1];s(String.prototype,r,a),l(RegExp.prototype,e,2==t?function(t,n){return f.call(t,this,n)}:function(t){return f.call(t,this)})}}},{118:118,120:120,152:152,248:248,57:57,64:64,72:72}],66:[function(t,n,r){"use strict";var e=t(38);n.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},{38:38}],67:[function(t,n,r){"use strict";var p=t(79),v=t(81),g=t(141),y=t(54),d=t(152)("isConcatSpreadable");n.exports=function flattenIntoArray(t,n,r,e,i,o,u,c){for(var a,f,s=i,l=0,h=!!u&&y(u,c,3);l<e;){if(l in r){if(a=h?h(r[l],l,n):r[l],f=!1,v(a)&&(f=void 0!==(f=a[d])?!!f:p(a)),f&&0<o)s=flattenIntoArray(t,n,a,g(a.length),s,o-1)-1;else{if(9007199254740991<=s)throw TypeError();t[s]=a}s++}l++}return s}},{141:141,152:152,54:54,79:79,81:81}],68:[function(t,n,r){var h=t(54),p=t(83),v=t(78),g=t(38),y=t(141),d=t(153),x={},m={};(r=n.exports=function(t,n,r,e,i){var o,u,c,a,f=i?function(){return t}:d(t),s=h(r,e,n?2:1),l=0;if("function"!=typeof f)throw TypeError(t+" is not iterable!");if(v(f)){for(o=y(t.length);l<o;l++)if((a=n?s(g(u=t[l])[0],u[1]):s(t[l]))===x||a===m)return a}else for(c=f.call(t);!(u=c.next()).done;)if((a=p(c,s,u.value,n))===x||a===m)return a}).BREAK=x,r.RETURN=m},{141:141,153:153,38:38,54:54,78:78,83:83}],69:[function(t,n,r){n.exports=t(126)("native-function-to-string",Function.toString)},{126:126}],70:[function(t,n,r){arguments[4][24][0].apply(r,arguments)},{24:24}],71:[function(t,n,r){arguments[4][25][0].apply(r,arguments)},{25:25}],72:[function(t,n,r){arguments[4][26][0].apply(r,arguments)},{116:116,26:26,58:58,99:99}],73:[function(t,n,r){var e=t(70).document;n.exports=e&&e.documentElement},{70:70}],74:[function(t,n,r){arguments[4][27][0].apply(r,arguments)},{27:27,58:58,59:59,64:64}],75:[function(t,n,r){var o=t(81),u=t(122).set;n.exports=function(t,n,r){var e,i=n.constructor;return i!==r&&"function"==typeof i&&(e=i.prototype)!==r.prototype&&o(e)&&u&&u(t,e),t}},{122:122,81:81}],76:[function(t,n,r){n.exports=function(t,n,r){var e=void 0===r;switch(n.length){case 0:return e?t():t.call(r);case 1:return e?t(n[0]):t.call(r,n[0]);case 2:return e?t(n[0],n[1]):t.call(r,n[0],n[1]);case 3:return e?t(n[0],n[1],n[2]):t.call(r,n[0],n[1],n[2]);case 4:return e?t(n[0],n[1],n[2],n[3]):t.call(r,n[0],n[1],n[2],n[3])}return t.apply(r,n)}},{}],77:[function(t,n,r){var e=t(48);n.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},{48:48}],78:[function(t,n,r){var e=t(88),i=t(152)("iterator"),o=Array.prototype;n.exports=function(t){return void 0!==t&&(e.Array===t||o[i]===t)}},{152:152,88:88}],79:[function(t,n,r){var e=t(48);n.exports=Array.isArray||function isArray(t){return"Array"==e(t)}},{48:48}],80:[function(t,n,r){var e=t(81),i=Math.floor;n.exports=function isInteger(t){return!e(t)&&isFinite(t)&&i(t)===t}},{81:81}],81:[function(t,n,r){arguments[4][28][0].apply(r,arguments)},{28:28}],82:[function(t,n,r){var e=t(81),i=t(48),o=t(152)("match");n.exports=function(t){var n;return e(t)&&(void 0!==(n=t[o])?!!n:"RegExp"==i(t))}},{152:152,48:48,81:81}],83:[function(t,n,r){var o=t(38);n.exports=function(n,t,r,e){try{return e?t(o(r)[0],r[1]):t(r)}catch(t){var i=n.return;throw void 0!==i&&o(i.call(n)),t}}},{38:38}],84:[function(t,n,r){"use strict";var e=t(98),i=t(116),o=t(124),u={};t(72)(u,t(152)("iterator"),function(){return this}),n.exports=function(t,n,r){t.prototype=e(u,{next:i(1,r)}),o(t,n+" Iterator")}},{116:116,124:124,152:152,72:72,98:98}],85:[function(t,n,r){"use strict";function Qn(){return this}var x=t(89),m=t(62),S=t(118),b=t(72),w=t(88),_=t(84),E=t(124),O=t(105),F=t(152)("iterator"),I=!([].keys&&"next"in[].keys()),P="values";n.exports=function(t,n,r,e,i,o,u){_(r,n,e);function Yn(t){if(!I&&t in p)return p[t];switch(t){case"keys":return function keys(){return new r(this,t)};case P:return function values(){return new r(this,t)}}return function entries(){return new r(this,t)}}var c,a,f,s=n+" Iterator",l=i==P,h=!1,p=t.prototype,v=p[F]||p["@@iterator"]||i&&p[i],g=v||Yn(i),y=i?l?Yn("entries"):g:void 0,d="Array"==n&&p.entries||v;if(d&&(f=O(d.call(new t)))!==Object.prototype&&f.next&&(E(f,s,!0),x||"function"==typeof f[F]||b(f,F,Qn)),l&&v&&v.name!==P&&(h=!0,g=function values(){return v.call(this)}),x&&!u||!I&&!h&&p[F]||b(p,F,g),w[n]=g,w[s]=Qn,i)if(c={values:l?g:Yn(P),keys:o?g:Yn("keys"),entries:y},u)for(a in c)a in p||S(p,a,c[a]);else m(m.P+m.F*(I||h),n,c);return c}},{105:105,118:118,124:124,152:152,62:62,72:72,84:84,88:88,89:89}],86:[function(t,n,r){var o=t(152)("iterator"),u=!1;try{var e=[7][o]();e.return=function(){u=!0},Array.from(e,function(){throw 2})}catch(t){}n.exports=function(t,n){if(!n&&!u)return!1;var r=!1;try{var e=[7],i=e[o]();i.next=function(){return{done:r=!0}},e[o]=function(){return i},t(e)}catch(t){}return r}},{152:152}],87:[function(t,n,r){n.exports=function(t,n){return{value:n,done:!!t}}},{}],88:[function(t,n,r){n.exports={}},{}],89:[function(t,n,r){n.exports=!1},{}],90:[function(t,n,r){var e=Math.expm1;n.exports=!e||22025.465794806718<e(10)||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function expm1(t){return 0==(t=+t)?t:-1e-6<t&&t<1e-6?t+t*t/2:Math.exp(t)-1}:e},{}],91:[function(t,n,r){var o=t(93),e=Math.pow,u=e(2,-52),c=e(2,-23),a=e(2,127)*(2-c),f=e(2,-126);n.exports=Math.fround||function fround(t){var n,r,e=Math.abs(t),i=o(t);return e<f?i*function(t){return t+1/u-1/u}(e/f/c)*f*c:a<(r=(n=(1+c/u)*e)-(n-e))||r!=r?i*(1/0):i*r}},{93:93}],92:[function(t,n,r){n.exports=Math.log1p||function log1p(t){return-1e-8<(t=+t)&&t<1e-8?t-t*t/2:Math.log(1+t)}},{}],93:[function(t,n,r){n.exports=Math.sign||function sign(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},{}],94:[function(t,n,r){function tp(t){u(t,e,{value:{i:"O"+ ++c,w:{}}})}var e=t(147)("meta"),i=t(81),o=t(71),u=t(99).f,c=0,a=Object.isExtensible||function(){return!0},f=!t(64)(function(){return a(Object.preventExtensions({}))}),s=n.exports={KEY:e,NEED:!1,fastKey:function(t,n){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,e)){if(!a(t))return"F";if(!n)return"E";tp(t)}return t[e].i},getWeak:function(t,n){if(!o(t,e)){if(!a(t))return!0;if(!n)return!1;tp(t)}return t[e].w},onFreeze:function(t){return f&&s.NEED&&a(t)&&!o(t,e)&&tp(t),t}}},{147:147,64:64,71:71,81:81,99:99}],95:[function(t,n,r){var u=t(70),c=t(136).set,a=u.MutationObserver||u.WebKitMutationObserver,f=u.process,s=u.Promise,l="process"==t(48)(f);n.exports=function(){function Qp(){var t,n;for(l&&(t=f.domain)&&t.exit();r;){n=r.fn,r=r.next;try{n()}catch(t){throw r?i():e=void 0,t}}e=void 0,t&&t.enter()}var r,e,i;if(l)i=function(){f.nextTick(Qp)};else if(!a||u.navigator&&u.navigator.standalone)if(s&&s.resolve){var t=s.resolve(void 0);i=function(){t.then(Qp)}}else i=function(){c.call(u,Qp)};else{var n=!0,o=document.createTextNode("");new a(Qp).observe(o,{characterData:!0}),i=function(){o.data=n=!n}}return function(t){var n={fn:t,next:void 0};e&&(e.next=n),r||(r=n,i()),e=n}}},{136:136,48:48,70:70}],96:[function(t,n,r){"use strict";var i=t(33);function PromiseCapability(t){var r,e;this.promise=new t(function(t,n){if(void 0!==r||void 0!==e)throw TypeError("Bad Promise constructor");r=t,e=n}),this.resolve=i(r),this.reject=i(e)}n.exports.f=function(t){return new PromiseCapability(t)}},{33:33}],97:[function(t,n,r){"use strict";var h=t(58),p=t(107),v=t(104),g=t(108),y=t(142),d=t(77),i=Object.assign;n.exports=!i||t(64)(function(){var t={},n={},r=Symbol(),e="abcdefghijklmnopqrst";return t[r]=7,e.split("").forEach(function(t){n[t]=t}),7!=i({},t)[r]||Object.keys(i({},n)).join("")!=e})?function assign(t,n){for(var r=y(t),e=arguments.length,i=1,o=v.f,u=g.f;i<e;)for(var c,a=d(arguments[i++]),f=o?p(a).concat(o(a)):p(a),s=f.length,l=0;l<s;)c=f[l++],h&&!u.call(a,c)||(r[c]=a[c]);return r}:i},{104:104,107:107,108:108,142:142,58:58,64:64,77:77}],98:[function(e,t,n){function Pq(){}var i=e(38),o=e(100),u=e(60),c=e(125)("IE_PROTO"),a="prototype",f=function(){var t,n=e(59)("iframe"),r=u.length;for(n.style.display="none",e(73).appendChild(n),n.src="javascript:",(t=n.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),f=t.F;r--;)delete f[a][u[r]];return f()};t.exports=Object.create||function create(t,n){var r;return null!==t?(Pq[a]=i(t),r=new Pq,Pq[a]=null,r[c]=t):r=f(),void 0===n?r:o(r,n)}},{100:100,125:125,38:38,59:59,60:60,73:73}],99:[function(t,n,r){arguments[4][29][0].apply(r,arguments)},{143:143,29:29,38:38,58:58,74:74}],100:[function(t,n,r){var u=t(99),c=t(38),a=t(107);n.exports=t(58)?Object.defineProperties:function defineProperties(t,n){c(t);for(var r,e=a(n),i=e.length,o=0;o<i;)u.f(t,r=e[o++],n[r]);return t}},{107:107,38:38,58:58,99:99}],101:[function(t,n,r){var e=t(108),i=t(116),o=t(140),u=t(143),c=t(71),a=t(74),f=Object.getOwnPropertyDescriptor;r.f=t(58)?f:function getOwnPropertyDescriptor(t,n){if(t=o(t),n=u(n,!0),a)try{return f(t,n)}catch(t){}if(c(t,n))return i(!e.f.call(t,n),t[n])}},{108:108,116:116,140:140,143:143,58:58,71:71,74:74}],102:[function(t,n,r){var e=t(140),i=t(103).f,o={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];n.exports.f=function getOwnPropertyNames(t){return u&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return u.slice()}}(t):i(e(t))}},{103:103,140:140}],103:[function(t,n,r){var e=t(106),i=t(60).concat("length","prototype");r.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return e(t,i)}},{106:106,60:60}],104:[function(t,n,r){r.f=Object.getOwnPropertySymbols},{}],105:[function(t,n,r){var e=t(71),i=t(142),o=t(125)("IE_PROTO"),u=Object.prototype;n.exports=Object.getPrototypeOf||function(t){return t=i(t),e(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},{125:125,142:142,71:71}],106:[function(t,n,r){var u=t(71),c=t(140),a=t(41)(!1),f=t(125)("IE_PROTO");n.exports=function(t,n){var r,e=c(t),i=0,o=[];for(r in e)r!=f&&u(e,r)&&o.push(r);for(;n.length>i;)u(e,r=n[i++])&&(~a(o,r)||o.push(r));return o}},{125:125,140:140,41:41,71:71}],107:[function(t,n,r){var e=t(106),i=t(60);n.exports=Object.keys||function keys(t){return e(t,i)}},{106:106,60:60}],108:[function(t,n,r){r.f={}.propertyIsEnumerable},{}],109:[function(t,n,r){var i=t(62),o=t(52),u=t(64);n.exports=function(t,n){var r=(o.Object||{})[t]||Object[t],e={};e[t]=n(r),i(i.S+i.F*u(function(){r(1)}),"Object",e)}},{52:52,62:62,64:64}],110:[function(t,n,r){var a=t(58),f=t(107),s=t(140),l=t(108).f;n.exports=function(c){return function(t){for(var n,r=s(t),e=f(r),i=e.length,o=0,u=[];o<i;)n=e[o++],a&&!l.call(r,n)||u.push(c?[n,r[n]]:r[n]);return u}}},{107:107,108:108,140:140,58:58}],111:[function(t,n,r){var e=t(103),i=t(104),o=t(38),u=t(70).Reflect;n.exports=u&&u.ownKeys||function ownKeys(t){var n=e.f(o(t)),r=i.f;return r?n.concat(r(t)):n}},{103:103,104:104,38:38,70:70}],112:[function(t,n,r){var e=t(70).parseFloat,i=t(134).trim;n.exports=1/e(t(135)+"-0")!=-1/0?function parseFloat(t){var n=i(String(t),3),r=e(n);return 0===r&&"-"==n.charAt(0)?-0:r}:e},{134:134,135:135,70:70}],113:[function(t,n,r){var e=t(70).parseInt,i=t(134).trim,o=t(135),u=/^[-+]?0[xX]/;n.exports=8!==e(o+"08")||22!==e(o+"0x16")?function parseInt(t,n){var r=i(String(t),3);return e(r,n>>>0||(u.test(r)?16:10))}:e},{134:134,135:135,70:70}],114:[function(t,n,r){n.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},{}],115:[function(t,n,r){var e=t(38),i=t(81),o=t(96);n.exports=function(t,n){if(e(t),i(n)&&n.constructor===t)return n;var r=o.f(t);return(0,r.resolve)(n),r.promise}},{38:38,81:81,96:96}],116:[function(t,n,r){arguments[4][30][0].apply(r,arguments)},{30:30}],117:[function(t,n,r){var i=t(118);n.exports=function(t,n,r){for(var e in n)i(t,e,n[e],r);return t}},{118:118}],118:[function(t,n,r){var o=t(70),u=t(72),c=t(71),a=t(147)("src"),e=t(69),i="toString",f=(""+e).split(i);t(52).inspectSource=function(t){return e.call(t)},(n.exports=function(t,n,r,e){var i="function"==typeof r;i&&(c(r,"name")||u(r,"name",n)),t[n]!==r&&(i&&(c(r,a)||u(r,a,t[n]?""+t[n]:f.join(String(n)))),t===o?t[n]=r:e?t[n]?t[n]=r:u(t,n,r):(delete t[n],u(t,n,r)))})(Function.prototype,i,function toString(){return"function"==typeof this&&this[a]||e.call(this)})},{147:147,52:52,69:69,70:70,71:71,72:72}],119:[function(t,n,r){"use strict";var i=t(47),o=RegExp.prototype.exec;n.exports=function(t,n){var r=t.exec;if("function"==typeof r){var e=r.call(t,n);if("object"!=typeof e)throw new TypeError("RegExp exec method returned something other than an Object or null");return e}if("RegExp"!==i(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,n)}},{47:47}],120:[function(t,n,r){"use strict";var e,i,u=t(66),c=RegExp.prototype.exec,a=String.prototype.replace,o=c,f="lastIndex",s=(e=/a/,i=/b*/g,c.call(e,"a"),c.call(i,"a"),0!==e[f]||0!==i[f]),l=void 0!==/()??/.exec("")[1];(s||l)&&(o=function exec(t){var n,r,e,i,o=this;return l&&(r=new RegExp("^"+o.source+"$(?!\\s)",u.call(o))),s&&(n=o[f]),e=c.call(o,t),s&&e&&(o[f]=o.global?e.index+e[0].length:n),l&&e&&1<e.length&&a.call(e[0],r,function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(e[i]=void 0)}),e}),n.exports=o},{66:66}],121:[function(t,n,r){n.exports=Object.is||function is(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n}},{}],122:[function(n,t,r){function Wu(t,n){if(i(t),!e(n)&&null!==n)throw TypeError(n+": can't set as prototype!")}var e=n(81),i=n(38);t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,r,e){try{(e=n(54)(Function.call,n(101).f(Object.prototype,"__proto__").set,2))(t,[]),r=!(t instanceof Array)}catch(t){r=!0}return function setPrototypeOf(t,n){return Wu(t,n),r?t.__proto__=n:e(t,n),t}}({},!1):void 0),check:Wu}},{101:101,38:38,54:54,81:81}],123:[function(t,n,r){"use strict";var e=t(70),i=t(99),o=t(58),u=t(152)("species");n.exports=function(t){var n=e[t];o&&n&&!n[u]&&i.f(n,u,{configurable:!0,get:function(){return this}})}},{152:152,58:58,70:70,99:99}],124:[function(t,n,r){var e=t(99).f,i=t(71),o=t(152)("toStringTag");n.exports=function(t,n,r){t&&!i(t=r?t:t.prototype,o)&&e(t,o,{configurable:!0,value:n})}},{152:152,71:71,99:99}],125:[function(t,n,r){var e=t(126)("keys"),i=t(147);n.exports=function(t){return e[t]||(e[t]=i(t))}},{126:126,147:147}],126:[function(t,n,r){var e=t(52),i=t(70),o="__core-js_shared__",u=i[o]||(i[o]={});(n.exports=function(t,n){return u[t]||(u[t]=void 0!==n?n:{})})("versions",[]).push({version:e.version,mode:t(89)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},{52:52,70:70,89:89}],127:[function(t,n,r){var i=t(38),o=t(33),u=t(152)("species");n.exports=function(t,n){var r,e=i(t).constructor;return void 0===e||null==(r=i(e)[u])?n:o(r)}},{152:152,33:33,38:38}],128:[function(t,n,r){"use strict";var e=t(64);n.exports=function(t,n){return!!t&&e(function(){n?t.call(null,function(){},1):t.call(null)})}},{64:64}],129:[function(t,n,r){var a=t(139),f=t(57);n.exports=function(c){return function(t,n){var r,e,i=String(f(t)),o=a(n),u=i.length;return o<0||u<=o?c?"":void 0:(r=i.charCodeAt(o))<55296||56319<r||o+1===u||(e=i.charCodeAt(o+1))<56320||57343<e?c?i.charAt(o):r:c?i.slice(o,o+2):e-56320+(r-55296<<10)+65536}}},{139:139,57:57}],130:[function(t,n,r){var e=t(82),i=t(57);n.exports=function(t,n,r){if(e(n))throw TypeError("String#"+r+" doesn't accept regex!");return String(i(t))}},{57:57,82:82}],131:[function(t,n,r){function Aw(t,n,r,e){var i=String(u(t)),o="<"+n;return""!==r&&(o+=" "+r+'="'+String(e).replace(c,"&quot;")+'"'),o+">"+i+"</"+n+">"}var e=t(62),i=t(64),u=t(57),c=/"/g;n.exports=function(n,t){var r={};r[n]=t(Aw),e(e.P+e.F*i(function(){var t=""[n]('"');return t!==t.toLowerCase()||3<t.split('"').length}),"String",r)}},{57:57,62:62,64:64}],132:[function(t,n,r){var s=t(141),l=t(133),h=t(57);n.exports=function(t,n,r,e){var i=String(h(t)),o=i.length,u=void 0===r?" ":String(r),c=s(n);if(c<=o||""==u)return i;var a=c-o,f=l.call(u,Math.ceil(a/u.length));return f.length>a&&(f=f.slice(0,a)),e?f+i:i+f}},{133:133,141:141,57:57}],133:[function(t,n,r){"use strict";var i=t(139),o=t(57);n.exports=function repeat(t){var n=String(o(this)),r="",e=i(t);if(e<0||e==1/0)throw RangeError("Count can't be negative");for(;0<e;(e>>>=1)&&(n+=n))1&e&&(r+=n);return r}},{139:139,57:57}],134:[function(t,n,r){function tx(t,n,r){var e={},i=c(function(){return!!a[t]()||"​…"!="​…"[t]()}),o=e[t]=i?n(s):a[t];r&&(e[r]=o),u(u.P+u.F*i,"String",e)}var u=t(62),e=t(57),c=t(64),a=t(135),i="["+a+"]",o=RegExp("^"+i+i+"*"),f=RegExp(i+i+"*$"),s=tx.trim=function(t,n){return t=String(e(t)),1&n&&(t=t.replace(o,"")),2&n&&(t=t.replace(f,"")),t};n.exports=tx},{135:135,57:57,62:62,64:64}],135:[function(t,n,r){n.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},{}],136:[function(t,n,r){function Zx(){var t=+this;if(d.hasOwnProperty(t)){var n=d[t];delete d[t],n()}}function $x(t){Zx.call(t.data)}var e,i,o,u=t(54),c=t(76),a=t(73),f=t(59),s=t(70),l=s.process,h=s.setImmediate,p=s.clearImmediate,v=s.MessageChannel,g=s.Dispatch,y=0,d={},x="onreadystatechange";h&&p||(h=function setImmediate(t){for(var n=[],r=1;r<arguments.length;)n.push(arguments[r++]);return d[++y]=function(){c("function"==typeof t?t:Function(t),n)},e(y),y},p=function clearImmediate(t){delete d[t]},"process"==t(48)(l)?e=function(t){l.nextTick(u(Zx,t,1))}:g&&g.now?e=function(t){g.now(u(Zx,t,1))}:v?(o=(i=new v).port2,i.port1.onmessage=$x,e=u(o.postMessage,o,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts?(e=function(t){s.postMessage(t+"","*")},s.addEventListener("message",$x,!1)):e=x in f("script")?function(t){a.appendChild(f("script"))[x]=function(){a.removeChild(this),Zx.call(t)}}:function(t){setTimeout(u(Zx,t,1),0)}),n.exports={set:h,clear:p}},{48:48,54:54,59:59,70:70,73:73,76:76}],137:[function(t,n,r){var e=t(139),i=Math.max,o=Math.min;n.exports=function(t,n){return(t=e(t))<0?i(t+n,0):o(t,n)}},{139:139}],138:[function(t,n,r){var e=t(139),i=t(141);n.exports=function(t){if(void 0===t)return 0;var n=e(t),r=i(n);if(n!==r)throw RangeError("Wrong length!");return r}},{139:139,141:141}],139:[function(t,n,r){var e=Math.ceil,i=Math.floor;n.exports=function(t){return isNaN(t=+t)?0:(0<t?i:e)(t)}},{}],140:[function(t,n,r){var e=t(77),i=t(57);n.exports=function(t){return e(i(t))}},{57:57,77:77}],141:[function(t,n,r){var e=t(139),i=Math.min;n.exports=function(t){return 0<t?i(e(t),9007199254740991):0}},{139:139}],142:[function(t,n,r){var e=t(57);n.exports=function(t){return Object(e(t))}},{57:57}],143:[function(t,n,r){arguments[4][31][0].apply(r,arguments)},{31:31,81:81}],144:[function(t,n,r){"use strict";if(t(58)){var y=t(89),d=t(70),x=t(64),m=t(62),S=t(146),e=t(145),h=t(54),b=t(37),i=t(116),w=t(72),o=t(117),u=t(139),_=t(141),E=t(138),c=t(137),a=t(143),f=t(71),O=t(47),F=t(81),p=t(142),v=t(78),I=t(98),P=t(105),A=t(103).f,g=t(153),s=t(147),l=t(152),M=t(42),k=t(41),N=t(127),j=t(164),R=t(88),T=t(86),L=t(123),C=t(40),G=t(39),D=t(99),U=t(101),W=D.f,V=U.f,B=d.RangeError,q=d.TypeError,Y=d.Uint8Array,z="ArrayBuffer",X="Shared"+z,$="BYTES_PER_ELEMENT",Q="prototype",Z=Array[Q],J=e.ArrayBuffer,H=e.DataView,K=M(0),tt=M(2),nt=M(3),rt=M(4),et=M(5),it=M(6),ot=k(!0),ut=k(!1),ct=j.values,at=j.keys,ft=j.entries,st=Z.lastIndexOf,lt=Z.reduce,ht=Z.reduceRight,pt=Z.join,vt=Z.sort,gt=Z.slice,yt=Z.toString,dt=Z.toLocaleString,xt=l("iterator"),mt=l("toStringTag"),St=s("typed_constructor"),bt=s("def_constructor"),wt=S.CONSTR,_t=S.TYPED,Et=S.VIEW,Ot="Wrong length!",Ft=M(1,function(t,n){return kt(N(t,t[bt]),n)}),It=x(function(){return 1===new Y(new Uint16Array([1]).buffer)[0]}),Pt=!!Y&&!!Y[Q].set&&x(function(){new Y(1).set({})}),At=function(t,n){var r=u(t);if(r<0||r%n)throw B("Wrong offset!");return r},Mt=function(t){if(F(t)&&_t in t)return t;throw q(t+" is not a typed array!")},kt=function(t,n){if(!(F(t)&&St in t))throw q("It is not a typed array constructor!");return new t(n)},Nt=function(t,n){return jt(N(t,t[bt]),n)},jt=function(t,n){for(var r=0,e=n.length,i=kt(t,e);r<e;)i[r]=n[r++];return i},Rt=function(t,n,r){W(t,n,{get:function(){return this._d[r]}})},Tt=function from(t){var n,r,e,i,o,u,c=p(t),a=arguments.length,f=1<a?arguments[1]:void 0,s=void 0!==f,l=g(c);if(null!=l&&!v(l)){for(u=l.call(c),e=[],n=0;!(o=u.next()).done;n++)e.push(o.value);c=e}for(s&&2<a&&(f=h(f,arguments[2],2)),n=0,r=_(c.length),i=kt(this,r);n<r;n++)i[n]=s?f(c[n],n):c[n];return i},Lt=function of(){for(var t=0,n=arguments.length,r=kt(this,n);t<n;)r[t]=arguments[t++];return r},Ct=!!Y&&x(function(){dt.call(new Y(1))}),Gt=function toLocaleString(){return dt.apply(Ct?gt.call(Mt(this)):Mt(this),arguments)},Dt={copyWithin:function copyWithin(t,n){return G.call(Mt(this),t,n,2<arguments.length?arguments[2]:void 0)},every:function every(t){return rt(Mt(this),t,1<arguments.length?arguments[1]:void 0)},fill:function fill(t){return C.apply(Mt(this),arguments)},filter:function filter(t){return Nt(this,tt(Mt(this),t,1<arguments.length?arguments[1]:void 0))},find:function find(t){return et(Mt(this),t,1<arguments.length?arguments[1]:void 0)},findIndex:function findIndex(t){return it(Mt(this),t,1<arguments.length?arguments[1]:void 0)},forEach:function forEach(t){K(Mt(this),t,1<arguments.length?arguments[1]:void 0)},indexOf:function indexOf(t){return ut(Mt(this),t,1<arguments.length?arguments[1]:void 0)},includes:function includes(t){return ot(Mt(this),t,1<arguments.length?arguments[1]:void 0)},join:function join(t){return pt.apply(Mt(this),arguments)},lastIndexOf:function lastIndexOf(t){return st.apply(Mt(this),arguments)},map:function map(t){return Ft(Mt(this),t,1<arguments.length?arguments[1]:void 0)},reduce:function reduce(t){return lt.apply(Mt(this),arguments)},reduceRight:function reduceRight(t){return ht.apply(Mt(this),arguments)},reverse:function reverse(){for(var t,n=this,r=Mt(n).length,e=Math.floor(r/2),i=0;i<e;)t=n[i],n[i++]=n[--r],n[r]=t;return n},some:function some(t){return nt(Mt(this),t,1<arguments.length?arguments[1]:void 0)},sort:function sort(t){return vt.call(Mt(this),t)},subarray:function subarray(t,n){var r=Mt(this),e=r.length,i=c(t,e);return new(N(r,r[bt]))(r.buffer,r.byteOffset+i*r.BYTES_PER_ELEMENT,_((void 0===n?e:c(n,e))-i))}},Ut=function slice(t,n){return Nt(this,gt.call(Mt(this),t,n))},Wt=function set(t){Mt(this);var n=At(arguments[1],1),r=this.length,e=p(t),i=_(e.length),o=0;if(r<i+n)throw B(Ot);for(;o<i;)this[n+o]=e[o++]},Vt={entries:function entries(){return ft.call(Mt(this))},keys:function keys(){return at.call(Mt(this))},values:function values(){return ct.call(Mt(this))}},Bt=function(t,n){return F(t)&&t[_t]&&"symbol"!=typeof n&&n in t&&String(+n)==String(n)},qt=function getOwnPropertyDescriptor(t,n){return Bt(t,n=a(n,!0))?i(2,t[n]):V(t,n)},Yt=function defineProperty(t,n,r){return!(Bt(t,n=a(n,!0))&&F(r)&&f(r,"value"))||f(r,"get")||f(r,"set")||r.configurable||f(r,"writable")&&!r.writable||f(r,"enumerable")&&!r.enumerable?W(t,n,r):(t[n]=r.value,t)};wt||(U.f=qt,D.f=Yt),m(m.S+m.F*!wt,"Object",{getOwnPropertyDescriptor:qt,defineProperty:Yt}),x(function(){yt.call({})})&&(yt=dt=function toString(){return pt.call(this)});var zt=o({},Dt);o(zt,Vt),w(zt,xt,Vt.values),o(zt,{slice:Ut,set:Wt,constructor:function(){},toString:yt,toLocaleString:Gt}),Rt(zt,"buffer","b"),Rt(zt,"byteOffset","o"),Rt(zt,"byteLength","l"),Rt(zt,"length","e"),W(zt,mt,{get:function(){return this[_t]}}),n.exports=function(t,l,n,i){function CC(t,n){W(t,n,{get:function(){return function(t,n){var r=t._d;return r.v[e](n*l+r.o,It)}(this,n)},set:function(t){return function(t,n,r){var e=t._d;i&&(r=(r=Math.round(r))<0?0:255<r?255:255&r),e.v[o](n*l+e.o,r,It)}(this,n,t)},enumerable:!0})}var h=t+((i=!!i)?"Clamped":"")+"Array",e="get"+t,o="set"+t,p=d[h],u=p||{},r=p&&P(p),c=!p||!S.ABV,a={},f=p&&p[Q];c?(p=n(function(t,n,r,e){b(t,p,h,"_d");var i,o,u,c,a=0,f=0;if(F(n)){if(!(n instanceof J||(c=O(n))==z||c==X))return _t in n?jt(p,n):Tt.call(p,n);i=n,f=At(r,l);var s=n.byteLength;if(void 0===e){if(s%l)throw B(Ot);if((o=s-f)<0)throw B(Ot)}else if(s<(o=_(e)*l)+f)throw B(Ot);u=o/l}else u=E(n),i=new J(o=u*l);for(w(t,"_d",{b:i,o:f,l:o,e:u,v:new H(i)});a<u;)CC(t,a++)}),f=p[Q]=I(zt),w(f,"constructor",p)):x(function(){p(1)})&&x(function(){new p(-1)})&&T(function(t){new p,new p(null),new p(1.5),new p(t)},!0)||(p=n(function(t,n,r,e){var i;return b(t,p,h),F(n)?n instanceof J||(i=O(n))==z||i==X?void 0!==e?new u(n,At(r,l),e):void 0!==r?new u(n,At(r,l)):new u(n):_t in n?jt(p,n):Tt.call(p,n):new u(E(n))}),K(r!==Function.prototype?A(u).concat(A(r)):A(u),function(t){t in p||w(p,t,u[t])}),p[Q]=f,y||(f.constructor=p));var s=f[xt],v=!!s&&("values"==s.name||null==s.name),g=Vt.values;w(p,St,!0),w(f,_t,h),w(f,Et,!0),w(f,bt,p),(i?new p(1)[mt]==h:mt in f)||W(f,mt,{get:function(){return h}}),a[h]=p,m(m.G+m.W+m.F*(p!=u),a),m(m.S,h,{BYTES_PER_ELEMENT:l}),m(m.S+m.F*x(function(){u.of.call(p,1)}),h,{from:Tt,of:Lt}),$ in f||w(f,$,l),m(m.P,h,Dt),L(h),m(m.P+m.F*Pt,h,{set:Wt}),m(m.P+m.F*!v,h,Vt),y||f.toString==yt||(f.toString=yt),m(m.P+m.F*x(function(){new p(1).slice()}),h,{slice:Ut}),m(m.P+m.F*(x(function(){return[1,2].toLocaleString()!=new p([1,2]).toLocaleString()})||!x(function(){f.toLocaleString.call([1,2])})),h,{toLocaleString:Gt}),R[h]=v?s:g,y||v||w(f,xt,g)}}else n.exports=function(){}},{101:101,103:103,105:105,116:116,117:117,123:123,127:127,137:137,138:138,139:139,141:141,142:142,143:143,145:145,146:146,147:147,152:152,153:153,164:164,37:37,39:39,40:40,41:41,42:42,47:47,54:54,58:58,62:62,64:64,70:70,71:71,72:72,78:78,81:81,86:86,88:88,89:89,98:98,99:99}],145:[function(t,n,r){"use strict";var e=t(70),i=t(58),o=t(89),u=t(146),c=t(72),a=t(117),f=t(64),s=t(37),l=t(139),h=t(141),p=t(138),v=t(103).f,g=t(99).f,y=t(40),d=t(124),x="ArrayBuffer",m="DataView",S="prototype",b="Wrong index!",w=e[x],_=e[m],E=e.Math,O=e.RangeError,F=e.Infinity,I=w,P=E.abs,A=E.pow,M=E.floor,k=E.log,N=E.LN2,j="byteLength",R="byteOffset",T=i?"_b":"buffer",L=i?"_l":j,C=i?"_o":R;function packIEEE754(t,n,r){var e,i,o,u=new Array(r),c=8*r-n-1,a=(1<<c)-1,f=a>>1,s=23===n?A(2,-24)-A(2,-77):0,l=0,h=t<0||0===t&&1/t<0?1:0;for((t=P(t))!=t||t===F?(i=t!=t?1:0,e=a):(e=M(k(t)/N),t*(o=A(2,-e))<1&&(e--,o*=2),2<=(t+=1<=e+f?s/o:s*A(2,1-f))*o&&(e++,o/=2),a<=e+f?(i=0,e=a):1<=e+f?(i=(t*o-1)*A(2,n),e+=f):(i=t*A(2,f-1)*A(2,n),e=0));8<=n;u[l++]=255&i,i/=256,n-=8);for(e=e<<n|i,c+=n;0<c;u[l++]=255&e,e/=256,c-=8);return u[--l]|=128*h,u}function unpackIEEE754(t,n,r){var e,i=8*r-n-1,o=(1<<i)-1,u=o>>1,c=i-7,a=r-1,f=t[a--],s=127&f;for(f>>=7;0<c;s=256*s+t[a],a--,c-=8);for(e=s&(1<<-c)-1,s>>=-c,c+=n;0<c;e=256*e+t[a],a--,c-=8);if(0===s)s=1-u;else{if(s===o)return e?NaN:f?-F:F;e+=A(2,n),s-=u}return(f?-1:1)*e*A(2,s-n)}function unpackI32(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function packI8(t){return[255&t]}function packI16(t){return[255&t,t>>8&255]}function packI32(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function packF64(t){return packIEEE754(t,52,8)}function packF32(t){return packIEEE754(t,23,4)}function addGetter(t,n,r){g(t[S],n,{get:function(){return this[r]}})}function get(t,n,r,e){var i=p(+r);if(i+n>t[L])throw O(b);var o=t[T]._b,u=i+t[C],c=o.slice(u,u+n);return e?c:c.reverse()}function set(t,n,r,e,i,o){var u=p(+r);if(u+n>t[L])throw O(b);for(var c=t[T]._b,a=u+t[C],f=e(+i),s=0;s<n;s++)c[a+s]=f[o?s:n-s-1]}if(u.ABV){if(!f(function(){w(1)})||!f(function(){new w(-1)})||f(function(){return new w,new w(1.5),new w(NaN),w.name!=x})){for(var G,D=(w=function ArrayBuffer(t){return s(this,w),new I(p(t))})[S]=I[S],U=v(I),W=0;U.length>W;)(G=U[W++])in w||c(w,G,I[G]);o||(D.constructor=w)}var V=new _(new w(2)),B=_[S].setInt8;V.setInt8(0,2147483648),V.setInt8(1,2147483649),!V.getInt8(0)&&V.getInt8(1)||a(_[S],{setInt8:function setInt8(t,n){B.call(this,t,n<<24>>24)},setUint8:function setUint8(t,n){B.call(this,t,n<<24>>24)}},!0)}else w=function ArrayBuffer(t){s(this,w,x);var n=p(t);this._b=y.call(new Array(n),0),this[L]=n},_=function DataView(t,n,r){s(this,_,m),s(t,w,m);var e=t[L],i=l(n);if(i<0||e<i)throw O("Wrong offset!");if(e<i+(r=void 0===r?e-i:h(r)))throw O("Wrong length!");this[T]=t,this[C]=i,this[L]=r},i&&(addGetter(w,j,"_l"),addGetter(_,"buffer","_b"),addGetter(_,j,"_l"),addGetter(_,R,"_o")),a(_[S],{getInt8:function getInt8(t){return get(this,1,t)[0]<<24>>24},getUint8:function getUint8(t){return get(this,1,t)[0]},getInt16:function getInt16(t){var n=get(this,2,t,arguments[1]);return(n[1]<<8|n[0])<<16>>16},getUint16:function getUint16(t){var n=get(this,2,t,arguments[1]);return n[1]<<8|n[0]},getInt32:function getInt32(t){return unpackI32(get(this,4,t,arguments[1]))},getUint32:function getUint32(t){return unpackI32(get(this,4,t,arguments[1]))>>>0},getFloat32:function getFloat32(t){return unpackIEEE754(get(this,4,t,arguments[1]),23,4)},getFloat64:function getFloat64(t){return unpackIEEE754(get(this,8,t,arguments[1]),52,8)},setInt8:function setInt8(t,n){set(this,1,t,packI8,n)},setUint8:function setUint8(t,n){set(this,1,t,packI8,n)},setInt16:function setInt16(t,n){set(this,2,t,packI16,n,arguments[2])},setUint16:function setUint16(t,n){set(this,2,t,packI16,n,arguments[2])},setInt32:function setInt32(t,n){set(this,4,t,packI32,n,arguments[2])},setUint32:function setUint32(t,n){set(this,4,t,packI32,n,arguments[2])},setFloat32:function setFloat32(t,n){set(this,4,t,packF32,n,arguments[2])},setFloat64:function setFloat64(t,n){set(this,8,t,packF64,n,arguments[2])}});d(w,x),d(_,m),c(_[S],u.VIEW,!0),r[x]=w,r[m]=_},{103:103,117:117,124:124,138:138,139:139,141:141,146:146,37:37,40:40,58:58,64:64,70:70,72:72,89:89,99:99}],146:[function(t,n,r){for(var e,i=t(70),o=t(72),u=t(147),c=u("typed_array"),a=u("view"),f=!(!i.ArrayBuffer||!i.DataView),s=f,l=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(e=i[h[l++]])?(o(e.prototype,c,!0),o(e.prototype,a,!0)):s=!1;n.exports={ABV:f,CONSTR:s,TYPED:c,VIEW:a}},{147:147,70:70,72:72}],147:[function(t,n,r){var e=0,i=Math.random();n.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+i).toString(36))}},{}],148:[function(t,n,r){var e=t(70).navigator;n.exports=e&&e.userAgent||""},{70:70}],149:[function(t,n,r){var e=t(81);n.exports=function(t,n){if(!e(t)||t._t!==n)throw TypeError("Incompatible receiver, "+n+" required!");return t}},{81:81}],150:[function(t,n,r){var e=t(70),i=t(52),o=t(89),u=t(151),c=t(99).f;n.exports=function(t){var n=i.Symbol||(i.Symbol=o?{}:e.Symbol||{});"_"==t.charAt(0)||t in n||c(n,t,{value:u.f(t)})}},{151:151,52:52,70:70,89:89,99:99}],151:[function(t,n,r){r.f=t(152)},{152:152}],152:[function(t,n,r){var e=t(126)("wks"),i=t(147),o=t(70).Symbol,u="function"==typeof o;(n.exports=function(t){return e[t]||(e[t]=u&&o[t]||(u?o:i)("Symbol."+t))}).store=e},{126:126,147:147,70:70}],153:[function(t,n,r){var e=t(47),i=t(152)("iterator"),o=t(88);n.exports=t(52).getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[e(t)]}},{152:152,47:47,52:52,88:88}],154:[function(t,n,r){var e=t(62);e(e.P,"Array",{copyWithin:t(39)}),t(35)("copyWithin")},{35:35,39:39,62:62}],155:[function(t,n,r){"use strict";var e=t(62),i=t(42)(4);e(e.P+e.F*!t(128)([].every,!0),"Array",{every:function every(t){return i(this,t,arguments[1])}})},{128:128,42:42,62:62}],156:[function(t,n,r){var e=t(62);e(e.P,"Array",{fill:t(40)}),t(35)("fill")},{35:35,40:40,62:62}],157:[function(t,n,r){"use strict";var e=t(62),i=t(42)(2);e(e.P+e.F*!t(128)([].filter,!0),"Array",{filter:function filter(t){return i(this,t,arguments[1])}})},{128:128,42:42,62:62}],158:[function(t,n,r){"use strict";var e=t(62),i=t(42)(6),o="findIndex",u=!0;o in[]&&Array(1)[o](function(){u=!1}),e(e.P+e.F*u,"Array",{findIndex:function findIndex(t){return i(this,t,1<arguments.length?arguments[1]:void 0)}}),t(35)(o)},{35:35,42:42,62:62}],159:[function(t,n,r){"use strict";var e=t(62),i=t(42)(5),o="find",u=!0;o in[]&&Array(1)[o](function(){u=!1}),e(e.P+e.F*u,"Array",{find:function find(t){return i(this,t,1<arguments.length?arguments[1]:void 0)}}),t(35)(o)},{35:35,42:42,62:62}],160:[function(t,n,r){"use strict";var e=t(62),i=t(42)(0),o=t(128)([].forEach,!0);e(e.P+e.F*!o,"Array",{forEach:function forEach(t){return i(this,t,arguments[1])}})},{128:128,42:42,62:62}],161:[function(t,n,r){"use strict";var h=t(54),e=t(62),p=t(142),v=t(83),g=t(78),y=t(141),d=t(53),x=t(153);e(e.S+e.F*!t(86)(function(t){Array.from(t)}),"Array",{from:function from(t){var n,r,e,i,o=p(t),u="function"==typeof this?this:Array,c=arguments.length,a=1<c?arguments[1]:void 0,f=void 0!==a,s=0,l=x(o);if(f&&(a=h(a,2<c?arguments[2]:void 0,2)),null==l||u==Array&&g(l))for(r=new u(n=y(o.length));s<n;s++)d(r,s,f?a(o[s],s):o[s]);else for(i=l.call(o),r=new u;!(e=i.next()).done;s++)d(r,s,f?v(i,a,[e.value,s],!0):e.value);return r.length=s,r}})},{141:141,142:142,153:153,53:53,54:54,62:62,78:78,83:83,86:86}],162:[function(t,n,r){"use strict";var e=t(62),i=t(41)(!1),o=[].indexOf,u=!!o&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!t(128)(o)),"Array",{indexOf:function indexOf(t){return u?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},{128:128,41:41,62:62}],163:[function(t,n,r){var e=t(62);e(e.S,"Array",{isArray:t(79)})},{62:62,79:79}],164:[function(t,n,r){"use strict";var e=t(35),i=t(87),o=t(88),u=t(140);n.exports=t(85)(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):i(0,"keys"==n?r:"values"==n?t[r]:[r,t[r]])},"values"),o.Arguments=o.Array,e("keys"),e("values"),e("entries")},{140:140,35:35,85:85,87:87,88:88}],165:[function(t,n,r){"use strict";var e=t(62),i=t(140),o=[].join;e(e.P+e.F*(t(77)!=Object||!t(128)(o)),"Array",{join:function join(t){return o.call(i(this),void 0===t?",":t)}})},{128:128,140:140,62:62,77:77}],166:[function(t,n,r){"use strict";var e=t(62),i=t(140),o=t(139),u=t(141),c=[].lastIndexOf,a=!!c&&1/[1].lastIndexOf(1,-0)<0;e(e.P+e.F*(a||!t(128)(c)),"Array",{lastIndexOf:function lastIndexOf(t){if(a)return c.apply(this,arguments)||0;var n=i(this),r=u(n.length),e=r-1;for(1<arguments.length&&(e=Math.min(e,o(arguments[1]))),e<0&&(e=r+e);0<=e;e--)if(e in n&&n[e]===t)return e||0;return-1}})},{128:128,139:139,140:140,141:141,62:62}],167:[function(t,n,r){"use strict";var e=t(62),i=t(42)(1);e(e.P+e.F*!t(128)([].map,!0),"Array",{map:function map(t){return i(this,t,arguments[1])}})},{128:128,42:42,62:62}],168:[function(t,n,r){"use strict";var e=t(62),i=t(53);e(e.S+e.F*t(64)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var t=0,n=arguments.length,r=new("function"==typeof this?this:Array)(n);t<n;)i(r,t,arguments[t++]);return r.length=n,r}})},{53:53,62:62,64:64}],169:[function(t,n,r){"use strict";var e=t(62),i=t(43);e(e.P+e.F*!t(128)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(t){return i(this,t,arguments.length,arguments[1],!0)}})},{128:128,43:43,62:62}],170:[function(t,n,r){"use strict";var e=t(62),i=t(43);e(e.P+e.F*!t(128)([].reduce,!0),"Array",{reduce:function reduce(t){return i(this,t,arguments.length,arguments[1],!1)}})},{128:128,43:43,62:62}],171:[function(t,n,r){"use strict";var e=t(62),i=t(73),f=t(48),s=t(137),l=t(141),h=[].slice;e(e.P+e.F*t(64)(function(){i&&h.call(i)}),"Array",{slice:function slice(t,n){var r=l(this.length),e=f(this);if(n=void 0===n?r:n,"Array"==e)return h.call(this,t,n);for(var i=s(t,r),o=s(n,r),u=l(o-i),c=new Array(u),a=0;a<u;a++)c[a]="String"==e?this.charAt(i+a):this[i+a];return c}})},{137:137,141:141,48:48,62:62,64:64,73:73}],172:[function(t,n,r){"use strict";var e=t(62),i=t(42)(3);e(e.P+e.F*!t(128)([].some,!0),"Array",{some:function some(t){return i(this,t,arguments[1])}})},{128:128,42:42,62:62}],173:[function(t,n,r){"use strict";var e=t(62),i=t(33),o=t(142),u=t(64),c=[].sort,a=[1,2,3];e(e.P+e.F*(u(function(){a.sort(void 0)})||!u(function(){a.sort(null)})||!t(128)(c)),"Array",{sort:function sort(t){return void 0===t?c.call(o(this)):c.call(o(this),i(t))}})},{128:128,142:142,33:33,62:62,64:64}],174:[function(t,n,r){t(123)("Array")},{123:123}],175:[function(t,n,r){var e=t(62);e(e.S,"Date",{now:function(){return(new Date).getTime()}})},{62:62}],176:[function(t,n,r){var e=t(62),i=t(55);e(e.P+e.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},{55:55,62:62}],177:[function(t,n,r){"use strict";var e=t(62),i=t(142),o=t(143);e(e.P+e.F*t(64)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(t){var n=i(this),r=o(n);return"number"!=typeof r||isFinite(r)?n.toISOString():null}})},{142:142,143:143,62:62,64:64}],178:[function(t,n,r){var e=t(152)("toPrimitive"),i=Date.prototype;e in i||t(72)(i,e,t(56))},{152:152,56:56,72:72}],179:[function(t,n,r){var e=Date.prototype,i="Invalid Date",o="toString",u=e[o],c=e.getTime;new Date(NaN)+""!=i&&t(118)(e,o,function toString(){var t=c.call(this);return t==t?u.call(this):i})},{118:118}],180:[function(t,n,r){var e=t(62);e(e.P,"Function",{bind:t(46)})},{46:46,62:62}],181:[function(t,n,r){"use strict";var e=t(81),i=t(105),o=t(152)("hasInstance"),u=Function.prototype;o in u||t(99).f(u,o,{value:function(t){if("function"!=typeof this||!e(t))return!1;if(!e(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},{105:105,152:152,81:81,99:99}],182:[function(t,n,r){var e=t(99).f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||t(58)&&e(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},{58:58,99:99}],183:[function(t,n,r){"use strict";var e=t(49),i=t(149);n.exports=t(51)("Map",function(t){return function Map(){return t(this,0<arguments.length?arguments[0]:void 0)}},{get:function get(t){var n=e.getEntry(i(this,"Map"),t);return n&&n.v},set:function set(t,n){return e.def(i(this,"Map"),0===t?0:t,n)}},e,!0)},{149:149,49:49,51:51}],184:[function(t,n,r){var e=t(62),i=t(92),o=Math.sqrt,u=Math.acosh;e(e.S+e.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))&&u(1/0)==1/0),"Math",{acosh:function acosh(t){return(t=+t)<1?NaN:94906265.62425156<t?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},{62:62,92:92}],185:[function(t,n,r){var e=t(62),i=Math.asinh;e(e.S+e.F*!(i&&0<1/i(0)),"Math",{asinh:function asinh(t){return isFinite(t=+t)&&0!=t?t<0?-asinh(-t):Math.log(t+Math.sqrt(t*t+1)):t}})},{62:62}],186:[function(t,n,r){var e=t(62),i=Math.atanh;e(e.S+e.F*!(i&&1/i(-0)<0),"Math",{atanh:function atanh(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},{62:62}],187:[function(t,n,r){var e=t(62),i=t(93);e(e.S,"Math",{cbrt:function cbrt(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},{62:62,93:93}],188:[function(t,n,r){var e=t(62);e(e.S,"Math",{clz32:function clz32(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},{62:62}],189:[function(t,n,r){var e=t(62),i=Math.exp;e(e.S,"Math",{cosh:function cosh(t){return(i(t=+t)+i(-t))/2}})},{62:62}],190:[function(t,n,r){var e=t(62),i=t(90);e(e.S+e.F*(i!=Math.expm1),"Math",{expm1:i})},{62:62,90:90}],191:[function(t,n,r){var e=t(62);e(e.S,"Math",{fround:t(91)})},{62:62,91:91}],192:[function(t,n,r){var e=t(62),a=Math.abs;e(e.S,"Math",{hypot:function hypot(t,n){for(var r,e,i=0,o=0,u=arguments.length,c=0;o<u;)c<(r=a(arguments[o++]))?(i=i*(e=c/r)*e+1,c=r):i+=0<r?(e=r/c)*e:r;return c===1/0?1/0:c*Math.sqrt(i)}})},{62:62}],193:[function(t,n,r){var e=t(62),i=Math.imul;e(e.S+e.F*t(64)(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function imul(t,n){var r=65535,e=+t,i=+n,o=r&e,u=r&i;return 0|o*u+((r&e>>>16)*u+o*(r&i>>>16)<<16>>>0)}})},{62:62,64:64}],194:[function(t,n,r){var e=t(62);e(e.S,"Math",{log10:function log10(t){return Math.log(t)*Math.LOG10E}})},{62:62}],195:[function(t,n,r){var e=t(62);e(e.S,"Math",{log1p:t(92)})},{62:62,92:92}],196:[function(t,n,r){var e=t(62);e(e.S,"Math",{log2:function log2(t){return Math.log(t)/Math.LN2}})},{62:62}],197:[function(t,n,r){var e=t(62);e(e.S,"Math",{sign:t(93)})},{62:62,93:93}],198:[function(t,n,r){var e=t(62),i=t(90),o=Math.exp;e(e.S+e.F*t(64)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function sinh(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},{62:62,64:64,90:90}],199:[function(t,n,r){var e=t(62),i=t(90),o=Math.exp;e(e.S,"Math",{tanh:function tanh(t){var n=i(t=+t),r=i(-t);return n==1/0?1:r==1/0?-1:(n-r)/(o(t)+o(-t))}})},{62:62,90:90}],200:[function(t,n,r){var e=t(62);e(e.S,"Math",{trunc:function trunc(t){return(0<t?Math.floor:Math.ceil)(t)}})},{62:62}],201:[function(t,n,r){"use strict";function EN(t){var n=s(t,!1);if("string"==typeof n&&2<n.length){var r,e,i,o=(n=x?n.trim():h(n,3)).charCodeAt(0);if(43===o||45===o){if(88===(r=n.charCodeAt(2))||120===r)return NaN}else if(48===o){switch(n.charCodeAt(1)){case 66:case 98:e=2,i=49;break;case 79:case 111:e=8,i=55;break;default:return+n}for(var u,c=n.slice(2),a=0,f=c.length;a<f;a++)if((u=c.charCodeAt(a))<48||i<u)return NaN;return parseInt(c,e)}}return+n}var e=t(70),i=t(71),o=t(48),u=t(75),s=t(143),c=t(64),a=t(103).f,f=t(101).f,l=t(99).f,h=t(134).trim,p="Number",v=e[p],g=v,y=v.prototype,d=o(t(98)(y))==p,x="trim"in String.prototype;if(!v(" 0o1")||!v("0b1")||v("+0x1")){v=function Number(t){var n=arguments.length<1?0:t,r=this;return r instanceof v&&(d?c(function(){y.valueOf.call(r)}):o(r)!=p)?u(new g(EN(n)),r,v):EN(n)};for(var m,S=t(58)?a(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),b=0;S.length>b;b++)i(g,m=S[b])&&!i(v,m)&&l(v,m,f(g,m));(v.prototype=y).constructor=v,t(118)(e,p,v)}},{101:101,103:103,118:118,134:134,143:143,48:48,58:58,64:64,70:70,71:71,75:75,98:98,99:99}],202:[function(t,n,r){var e=t(62);e(e.S,"Number",{EPSILON:Math.pow(2,-52)})},{62:62}],203:[function(t,n,r){var e=t(62),i=t(70).isFinite;e(e.S,"Number",{isFinite:function isFinite(t){return"number"==typeof t&&i(t)}})},{62:62,70:70}],204:[function(t,n,r){var e=t(62);e(e.S,"Number",{isInteger:t(80)})},{62:62,80:80}],205:[function(t,n,r){var e=t(62);e(e.S,"Number",{isNaN:function isNaN(t){return t!=t}})},{62:62}],206:[function(t,n,r){var e=t(62),i=t(80),o=Math.abs;e(e.S,"Number",{isSafeInteger:function isSafeInteger(t){return i(t)&&o(t)<=9007199254740991}})},{62:62,80:80}],207:[function(t,n,r){var e=t(62);e(e.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{62:62}],208:[function(t,n,r){var e=t(62);e(e.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{62:62}],209:[function(t,n,r){var e=t(62),i=t(112);e(e.S+e.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},{112:112,62:62}],210:[function(t,n,r){var e=t(62),i=t(113);e(e.S+e.F*(Number.parseInt!=i),"Number",{parseInt:i})},{113:113,62:62}],211:[function(t,n,r){"use strict";function XO(t,n){for(var r=-1,e=n;++r<6;)e+=t*u[r],u[r]=e%1e7,e=o(e/1e7)}function YO(t){for(var n=6,r=0;0<=--n;)r+=u[n],u[n]=o(r/t),r=r%t*1e7}function ZO(){for(var t=6,n="";0<=--t;)if(""!==n||0===t||0!==u[t]){var r=String(u[t]);n=""===n?r:n+l.call("0",7-r.length)+r}return n}var e=t(62),f=t(139),s=t(34),l=t(133),i=1..toFixed,o=Math.floor,u=[0,0,0,0,0,0],h="Number.toFixed: incorrect invocation!",p=function(t,n,r){return 0===n?r:n%2==1?p(t,n-1,r*t):p(t*t,n/2,r)};e(e.P+e.F*(!!i&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!t(64)(function(){i.call({})})),"Number",{toFixed:function toFixed(t){var n,r,e,i,o=s(this,h),u=f(t),c="",a="0";if(u<0||20<u)throw RangeError(h);if(o!=o)return"NaN";if(o<=-1e21||1e21<=o)return String(o);if(o<0&&(c="-",o=-o),1e-21<o)if(r=(n=function(t){for(var n=0,r=t;4096<=r;)n+=12,r/=4096;for(;2<=r;)n+=1,r/=2;return n}(o*p(2,69,1))-69)<0?o*p(2,-n,1):o/p(2,n,1),r*=4503599627370496,0<(n=52-n)){for(XO(0,r),e=u;7<=e;)XO(1e7,0),e-=7;for(XO(p(10,e,1),0),e=n-1;23<=e;)YO(1<<23),e-=23;YO(1<<e),XO(1,1),YO(2),a=ZO()}else XO(0,r),XO(1<<-n,0),a=ZO()+l.call("0",u);return a=0<u?c+((i=a.length)<=u?"0."+l.call("0",u-i)+a:a.slice(0,i-u)+"."+a.slice(i-u)):c+a}})},{133:133,139:139,34:34,62:62,64:64}],212:[function(t,n,r){"use strict";var e=t(62),i=t(64),o=t(34),u=1..toPrecision;e(e.P+e.F*(i(function(){return"1"!==u.call(1,void 0)})||!i(function(){u.call({})})),"Number",{toPrecision:function toPrecision(t){var n=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?u.call(n):u.call(n,t)}})},{34:34,62:62,64:64}],213:[function(t,n,r){var e=t(62);e(e.S+e.F,"Object",{assign:t(97)})},{62:62,97:97}],214:[function(t,n,r){var e=t(62);e(e.S,"Object",{create:t(98)})},{62:62,98:98}],215:[function(t,n,r){var e=t(62);e(e.S+e.F*!t(58),"Object",{defineProperties:t(100)})},{100:100,58:58,62:62}],216:[function(t,n,r){var e=t(62);e(e.S+e.F*!t(58),"Object",{defineProperty:t(99).f})},{58:58,62:62,99:99}],217:[function(t,n,r){var e=t(81),i=t(94).onFreeze;t(109)("freeze",function(n){return function freeze(t){return n&&e(t)?n(i(t)):t}})},{109:109,81:81,94:94}],218:[function(t,n,r){var e=t(140),i=t(101).f;t(109)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(t,n){return i(e(t),n)}})},{101:101,109:109,140:140}],219:[function(t,n,r){t(109)("getOwnPropertyNames",function(){return t(102).f})},{102:102,109:109}],220:[function(t,n,r){var e=t(142),i=t(105);t(109)("getPrototypeOf",function(){return function getPrototypeOf(t){return i(e(t))}})},{105:105,109:109,142:142}],221:[function(t,n,r){var e=t(81);t(109)("isExtensible",function(n){return function isExtensible(t){return!!e(t)&&(!n||n(t))}})},{109:109,81:81}],222:[function(t,n,r){var e=t(81);t(109)("isFrozen",function(n){return function isFrozen(t){return!e(t)||!!n&&n(t)}})},{109:109,81:81}],223:[function(t,n,r){var e=t(81);t(109)("isSealed",function(n){return function isSealed(t){return!e(t)||!!n&&n(t)}})},{109:109,81:81}],224:[function(t,n,r){var e=t(62);e(e.S,"Object",{is:t(121)})},{121:121,62:62}],225:[function(t,n,r){var e=t(142),i=t(107);t(109)("keys",function(){return function keys(t){return i(e(t))}})},{107:107,109:109,142:142}],226:[function(t,n,r){var e=t(81),i=t(94).onFreeze;t(109)("preventExtensions",function(n){return function preventExtensions(t){return n&&e(t)?n(i(t)):t}})},{109:109,81:81,94:94}],227:[function(t,n,r){var e=t(81),i=t(94).onFreeze;t(109)("seal",function(n){return function seal(t){return n&&e(t)?n(i(t)):t}})},{109:109,81:81,94:94}],228:[function(t,n,r){var e=t(62);e(e.S,"Object",{setPrototypeOf:t(122).set})},{122:122,62:62}],229:[function(t,n,r){"use strict";var e=t(47),i={};i[t(152)("toStringTag")]="z",i+""!="[object z]"&&t(118)(Object.prototype,"toString",function toString(){return"[object "+e(this)+"]"},!0)},{118:118,152:152,47:47}],230:[function(t,n,r){var e=t(62),i=t(112);e(e.G+e.F*(parseFloat!=i),{parseFloat:i})},{112:112,62:62}],231:[function(t,n,r){var e=t(62),i=t(113);e(e.G+e.F*(parseInt!=i),{parseInt:i})},{113:113,62:62}],232:[function(r,t,n){"use strict";function $R(){}function fS(t){var n;return!(!h(t)||"function"!=typeof(n=t.then))&&n}function gS(s,r){if(!s._n){s._n=!0;var e=s._c;x(function(){for(var a=s._v,f=1==s._s,t=0,n=function(t){var n,r,e,i=f?t.ok:t.fail,o=t.resolve,u=t.reject,c=t.domain;try{i?(f||(2==s._h&&R(s),s._h=1),!0===i?n=a:(c&&c.enter(),n=i(a),c&&(c.exit(),e=!0)),n===t.promise?u(E("Promise-chain cycle")):(r=fS(n))?r.call(n,o,u):o(n)):u(a)}catch(t){c&&!e&&c.exit(),u(t)}};e.length>t;)n(e[t++]);s._c=[],s._n=!1,r&&!s._h&&N(s)})}}function kS(t){var n=this;n._d||(n._d=!0,(n=n._w||n)._v=t,n._s=2,n._a||(n._a=n._c.slice()),gS(n,!0))}var e,i,o,u,c=r(89),a=r(70),f=r(54),s=r(47),l=r(62),h=r(81),p=r(33),v=r(37),g=r(68),y=r(127),d=r(136).set,x=r(95)(),m=r(96),S=r(114),b=r(148),w=r(115),_="Promise",E=a.TypeError,O=a.process,F=O&&O.versions,I=F&&F.v8||"",P=a[_],A="process"==s(O),M=i=m.f,k=!!function(){try{var t=P.resolve(1),n=(t.constructor={})[r(152)("species")]=function(t){t($R,$R)};return(A||"function"==typeof PromiseRejectionEvent)&&t.then($R)instanceof n&&0!==I.indexOf("6.6")&&-1===b.indexOf("Chrome/66")}catch(t){}}(),N=function(o){d.call(a,function(){var t,n,r,e=o._v,i=j(o);if(i&&(t=S(function(){A?O.emit("unhandledRejection",e,o):(n=a.onunhandledrejection)?n({promise:o,reason:e}):(r=a.console)&&r.error&&r.error("Unhandled promise rejection",e)}),o._h=A||j(o)?2:1),o._a=void 0,i&&t.e)throw t.v})},j=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(n){d.call(a,function(){var t;A?O.emit("rejectionHandled",n):(t=a.onrejectionhandled)&&t({promise:n,reason:n._v})})},T=function(t){var r,e=this;if(!e._d){e._d=!0,e=e._w||e;try{if(e===t)throw E("Promise can't be resolved itself");(r=fS(t))?x(function(){var n={_w:e,_d:!1};try{r.call(t,f(T,n,1),f(kS,n,1))}catch(t){kS.call(n,t)}}):(e._v=t,e._s=1,gS(e,!1))}catch(t){kS.call({_w:e,_d:!1},t)}}};k||(P=function Promise(t){v(this,P,_,"_h"),p(t),e.call(this);try{t(f(T,this,1),f(kS,this,1))}catch(t){kS.call(this,t)}},(e=function Promise(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r(117)(P.prototype,{then:function then(t,n){var r=M(y(this,P));return r.ok="function"!=typeof t||t,r.fail="function"==typeof n&&n,r.domain=A?O.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&gS(this,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new e;this.promise=t,this.resolve=f(T,t,1),this.reject=f(kS,t,1)},m.f=M=function(t){return t===P||t===u?new o(t):i(t)}),l(l.G+l.W+l.F*!k,{Promise:P}),r(124)(P,_),r(123)(_),u=r(52)[_],l(l.S+l.F*!k,_,{reject:function reject(t){var n=M(this);return(0,n.reject)(t),n.promise}}),l(l.S+l.F*(c||!k),_,{resolve:function resolve(t){return w(c&&this===u?P:this,t)}}),l(l.S+l.F*!(k&&r(86)(function(t){P.all(t).catch($R)})),_,{all:function all(t){var u=this,n=M(u),c=n.resolve,a=n.reject,r=S(function(){var e=[],i=0,o=1;g(t,!1,function(t){var n=i++,r=!1;e.push(void 0),o++,u.resolve(t).then(function(t){r||(r=!0,e[n]=t,--o||c(e))},a)}),--o||c(e)});return r.e&&a(r.v),n.promise},race:function race(t){var n=this,r=M(n),e=r.reject,i=S(function(){g(t,!1,function(t){n.resolve(t).then(r.resolve,e)})});return i.e&&e(i.v),r.promise}})},{114:114,115:115,117:117,123:123,124:124,127:127,136:136,148:148,152:152,33:33,37:37,47:47,52:52,54:54,62:62,68:68,70:70,81:81,86:86,89:89,95:95,96:96}],233:[function(t,n,r){var e=t(62),o=t(33),u=t(38),c=(t(70).Reflect||{}).apply,a=Function.apply;e(e.S+e.F*!t(64)(function(){c(function(){})}),"Reflect",{apply:function apply(t,n,r){var e=o(t),i=u(r);return c?c(e,n,i):a.call(e,n,i)}})},{33:33,38:38,62:62,64:64,70:70}],234:[function(t,n,r){var e=t(62),c=t(98),a=t(33),f=t(38),s=t(81),i=t(64),l=t(46),h=(t(70).Reflect||{}).construct,p=i(function(){function F(){}return!(h(function(){},[],F)instanceof F)}),v=!i(function(){h(function(){})});e(e.S+e.F*(p||v),"Reflect",{construct:function construct(t,n){a(t),f(n);var r=arguments.length<3?t:a(arguments[2]);if(v&&!p)return h(t,n,r);if(t==r){switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var e=[null];return e.push.apply(e,n),new(l.apply(t,e))}var i=r.prototype,o=c(s(i)?i:Object.prototype),u=Function.apply.call(t,o,n);return s(u)?u:o}})},{33:33,38:38,46:46,62:62,64:64,70:70,81:81,98:98}],235:[function(t,n,r){var e=t(99),i=t(62),o=t(38),u=t(143);i(i.S+i.F*t(64)(function(){Reflect.defineProperty(e.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(t,n,r){o(t),n=u(n,!0),o(r);try{return e.f(t,n,r),!0}catch(t){return!1}}})},{143:143,38:38,62:62,64:64,99:99}],236:[function(t,n,r){var e=t(62),i=t(101).f,o=t(38);e(e.S,"Reflect",{deleteProperty:function deleteProperty(t,n){var r=i(o(t),n);return!(r&&!r.configurable)&&delete t[n]}})},{101:101,38:38,62:62}],237:[function(t,n,r){"use strict";function IU(t){this._t=i(t),this._i=0;var n,r=this._k=[];for(n in t)r.push(n)}var e=t(62),i=t(38);t(84)(IU,"Object",function(){var t,n=this._k;do{if(this._i>=n.length)return{value:void 0,done:!0}}while(!((t=n[this._i++])in this._t));return{value:t,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(t){return new IU(t)}})},{38:38,62:62,84:84}],238:[function(t,n,r){var e=t(101),i=t(62),o=t(38);i(i.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,n){return e.f(o(t),n)}})},{101:101,38:38,62:62}],239:[function(t,n,r){var e=t(62),i=t(105),o=t(38);e(e.S,"Reflect",{getPrototypeOf:function getPrototypeOf(t){return i(o(t))}})},{105:105,38:38,62:62}],240:[function(t,n,r){var o=t(101),u=t(105),c=t(71),e=t(62),a=t(81),f=t(38);e(e.S,"Reflect",{get:function get(t,n){var r,e,i=arguments.length<3?t:arguments[2];return f(t)===i?t[n]:(r=o.f(t,n))?c(r,"value")?r.value:void 0!==r.get?r.get.call(i):void 0:a(e=u(t))?get(e,n,i):void 0}})},{101:101,105:105,38:38,62:62,71:71,81:81}],241:[function(t,n,r){var e=t(62);e(e.S,"Reflect",{has:function has(t,n){return n in t}})},{62:62}],242:[function(t,n,r){var e=t(62),i=t(38),o=Object.isExtensible;e(e.S,"Reflect",{isExtensible:function isExtensible(t){return i(t),!o||o(t)}})},{38:38,62:62}],243:[function(t,n,r){var e=t(62);e(e.S,"Reflect",{ownKeys:t(111)})},{111:111,62:62}],244:[function(t,n,r){var e=t(62),i=t(38),o=Object.preventExtensions;e(e.S,"Reflect",{preventExtensions:function preventExtensions(t){i(t);try{return o&&o(t),!0}catch(t){return!1}}})},{38:38,62:62}],245:[function(t,n,r){var e=t(62),i=t(122);i&&e(e.S,"Reflect",{setPrototypeOf:function setPrototypeOf(t,n){i.check(t,n);try{return i.set(t,n),!0}catch(t){return!1}}})},{122:122,62:62}],246:[function(t,n,r){var c=t(99),a=t(101),f=t(105),s=t(71),e=t(62),l=t(116),h=t(38),p=t(81);e(e.S,"Reflect",{set:function set(t,n,r){var e,i,o=arguments.length<4?t:arguments[3],u=a.f(h(t),n);if(!u){if(p(i=f(t)))return set(i,n,r,o);u=l(0)}if(s(u,"value")){if(!1===u.writable||!p(o))return!1;if(e=a.f(o,n)){if(e.get||e.set||!1===e.writable)return!1;e.value=r,c.f(o,n,e)}else c.f(o,n,l(0,r));return!0}return void 0!==u.set&&(u.set.call(o,r),!0)}})},{101:101,105:105,116:116,38:38,62:62,71:71,81:81,99:99}],247:[function(t,n,r){var e=t(70),o=t(75),i=t(99).f,u=t(103).f,c=t(82),a=t(66),f=e.RegExp,s=f,l=f.prototype,h=/a/g,p=/a/g,v=new f(h)!==h;if(t(58)&&(!v||t(64)(function(){return p[t(152)("match")]=!1,f(h)!=h||f(p)==p||"/a/i"!=f(h,"i")}))){f=function RegExp(t,n){var r=this instanceof f,e=c(t),i=void 0===n;return!r&&e&&t.constructor===f&&i?t:o(v?new s(e&&!i?t.source:t,n):s((e=t instanceof f)?t.source:t,e&&i?a.call(t):n),r?this:l,f)};function DW(n){n in f||i(f,n,{configurable:!0,get:function(){return s[n]},set:function(t){s[n]=t}})}for(var g=u(s),y=0;g.length>y;)DW(g[y++]);(l.constructor=f).prototype=l,t(118)(e,"RegExp",f)}t(123)("RegExp")},{103:103,118:118,123:123,152:152,58:58,64:64,66:66,70:70,75:75,82:82,99:99}],248:[function(t,n,r){"use strict";var e=t(120);t(62)({target:"RegExp",proto:!0,forced:e!==/./.exec},{exec:e})},{120:120,62:62}],249:[function(t,n,r){t(58)&&"g"!=/./g.flags&&t(99).f(RegExp.prototype,"flags",{configurable:!0,get:t(66)})},{58:58,66:66,99:99}],250:[function(t,n,r){"use strict";var l=t(38),h=t(141),p=t(36),v=t(119);t(65)("match",1,function(e,i,f,s){return[function match(t){var n=e(this),r=null==t?void 0:t[i];return void 0!==r?r.call(t,n):new RegExp(t)[i](String(n))},function(t){var n=s(f,t,this);if(n.done)return n.value;var r=l(t),e=String(this);if(!r.global)return v(r,e);for(var i,o=r.unicode,u=[],c=r.lastIndex=0;null!==(i=v(r,e));){var a=String(i[0]);""===(u[c]=a)&&(r.lastIndex=p(e,h(r.lastIndex),o)),c++}return 0===c?null:u}]})},{119:119,141:141,36:36,38:38,65:65}],251:[function(t,n,r){"use strict";var _=t(38),e=t(142),E=t(141),O=t(139),F=t(36),I=t(119),P=Math.max,A=Math.min,h=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,v=/\$([$&`']|\d\d?)/g;t(65)("replace",2,function(i,o,b,w){return[function replace(t,n){var r=i(this),e=null==t?void 0:t[o];return void 0!==e?e.call(t,r,n):b.call(String(r),t,n)},function(t,n){var r=w(b,t,this,n);if(r.done)return r.value;var e=_(t),i=String(this),o="function"==typeof n;o||(n=String(n));var u=e.global;if(u){var c=e.unicode;e.lastIndex=0}for(var a=[];;){var f=I(e,i);if(null===f)break;if(a.push(f),!u)break;""===String(f[0])&&(e.lastIndex=F(i,E(e.lastIndex),c))}for(var s,l="",h=0,p=0;p<a.length;p++){f=a[p];for(var v=String(f[0]),g=P(A(O(f.index),i.length),0),y=[],d=1;d<f.length;d++)y.push(void 0===(s=f[d])?s:String(s));var x=f.groups;if(o){var m=[v].concat(y,g,i);void 0!==x&&m.push(x);var S=String(n.apply(void 0,m))}else S=getSubstitution(v,i,g,y,x,n);h<=g&&(l+=i.slice(h,g)+S,h=g+v.length)}return l+i.slice(h)}];function getSubstitution(o,u,c,a,f,t){var s=c+o.length,l=a.length,n=v;return void 0!==f&&(f=e(f),n=p),b.call(t,n,function(t,n){var r;switch(n.charAt(0)){case"$":return"$";case"&":return o;case"`":return u.slice(0,c);case"'":return u.slice(s);case"<":r=f[n.slice(1,-1)];break;default:var e=+n;if(0==e)return t;if(l<e){var i=h(e/10);return 0===i?t:i<=l?void 0===a[i-1]?n.charAt(1):a[i-1]+n.charAt(1):t}r=a[e-1]}return void 0===r?"":r})}})},{119:119,139:139,141:141,142:142,36:36,38:38,65:65}],252:[function(t,n,r){"use strict";var a=t(38),f=t(121),s=t(119);t(65)("search",1,function(e,i,u,c){return[function search(t){var n=e(this),r=null==t?void 0:t[i];return void 0!==r?r.call(t,n):new RegExp(t)[i](String(n))},function(t){var n=c(u,t,this);if(n.done)return n.value;var r=a(t),e=String(this),i=r.lastIndex;f(i,0)||(r.lastIndex=0);var o=s(r,e);return f(r.lastIndex,i)||(r.lastIndex=i),null===o?-1:o.index}]})},{119:119,121:121,38:38,65:65}],253:[function(t,n,r){"use strict";var l=t(82),m=t(38),S=t(127),b=t(36),w=t(141),_=t(119),h=t(120),e=t(64),E=Math.min,p=[].push,u="split",v="length",g="lastIndex",O=4294967295,F=!e(function(){RegExp(O,"y")});t(65)("split",2,function(i,o,y,d){var x;return x="c"=="abbc"[u](/(b)*/)[1]||4!="test"[u](/(?:)/,-1)[v]||2!="ab"[u](/(?:ab)*/)[v]||4!="."[u](/(.?)(.?)/)[v]||1<"."[u](/()()/)[v]||""[u](/.?/)[v]?function(t,n){var r=String(this);if(void 0===t&&0===n)return[];if(!l(t))return y.call(r,t,n);for(var e,i,o,u=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),a=0,f=void 0===n?O:n>>>0,s=new RegExp(t.source,c+"g");(e=h.call(s,r))&&!(a<(i=s[g])&&(u.push(r.slice(a,e.index)),1<e[v]&&e.index<r[v]&&p.apply(u,e.slice(1)),o=e[0][v],a=i,u[v]>=f));)s[g]===e.index&&s[g]++;return a===r[v]?!o&&s.test("")||u.push(""):u.push(r.slice(a)),u[v]>f?u.slice(0,f):u}:"0"[u](void 0,0)[v]?function(t,n){return void 0===t&&0===n?[]:y.call(this,t,n)}:y,[function split(t,n){var r=i(this),e=null==t?void 0:t[o];return void 0!==e?e.call(t,r,n):x.call(String(r),t,n)},function(t,n){var r=d(x,t,this,n,x!==y);if(r.done)return r.value;var e=m(t),i=String(this),o=S(e,RegExp),u=e.unicode,c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(F?"y":"g"),a=new o(F?e:"^(?:"+e.source+")",c),f=void 0===n?O:n>>>0;if(0==f)return[];if(0===i.length)return null===_(a,i)?[i]:[];for(var s=0,l=0,h=[];l<i.length;){a.lastIndex=F?l:0;var p,v=_(a,F?i:i.slice(l));if(null===v||(p=E(w(a.lastIndex+(F?0:l)),i.length))===s)l=b(i,l,u);else{if(h.push(i.slice(s,l)),h.length===f)return h;for(var g=1;g<=v.length-1;g++)if(h.push(v[g]),h.length===f)return h;l=s=p}}return h.push(i.slice(s)),h}]})},{119:119,120:120,127:127,141:141,36:36,38:38,64:64,65:65,82:82}],254:[function(n,t,r){"use strict";n(249);function XZ(t){n(118)(RegExp.prototype,u,t,!0)}var e=n(38),i=n(66),o=n(58),u="toString",c=/./[u];n(64)(function(){return"/a/b"!=c.call({source:"a",flags:"b"})})?XZ(function toString(){var t=e(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)}):c.name!=u&&XZ(function toString(){return c.call(this)})},{118:118,249:249,38:38,58:58,64:64,66:66}],255:[function(t,n,r){"use strict";var e=t(49),i=t(149);n.exports=t(51)("Set",function(t){return function Set(){return t(this,0<arguments.length?arguments[0]:void 0)}},{add:function add(t){return e.def(i(this,"Set"),t=0===t?0:t,t)}},e)},{149:149,49:49,51:51}],256:[function(t,n,r){"use strict";t(131)("anchor",function(n){return function anchor(t){return n(this,"a","name",t)}})},{131:131}],257:[function(t,n,r){"use strict";t(131)("big",function(t){return function big(){return t(this,"big","","")}})},{131:131}],258:[function(t,n,r){"use strict";t(131)("blink",function(t){return function blink(){return t(this,"blink","","")}})},{131:131}],259:[function(t,n,r){"use strict";t(131)("bold",function(t){return function bold(){return t(this,"b","","")}})},{131:131}],260:[function(t,n,r){"use strict";var e=t(62),i=t(129)(!1);e(e.P,"String",{codePointAt:function codePointAt(t){return i(this,t)}})},{129:129,62:62}],261:[function(t,n,r){"use strict";var e=t(62),u=t(141),c=t(130),a="endsWith",f=""[a];e(e.P+e.F*t(63)(a),"String",{endsWith:function endsWith(t){var n=c(this,t,a),r=1<arguments.length?arguments[1]:void 0,e=u(n.length),i=void 0===r?e:Math.min(u(r),e),o=String(t);return f?f.call(n,o,i):n.slice(i-o.length,i)===o}})},{130:130,141:141,62:62,63:63}],262:[function(t,n,r){"use strict";t(131)("fixed",function(t){return function fixed(){return t(this,"tt","","")}})},{131:131}],263:[function(t,n,r){"use strict";t(131)("fontcolor",function(n){return function fontcolor(t){return n(this,"font","color",t)}})},{131:131}],264:[function(t,n,r){"use strict";t(131)("fontsize",function(n){return function fontsize(t){return n(this,"font","size",t)}})},{131:131}],265:[function(t,n,r){var e=t(62),o=t(137),u=String.fromCharCode,i=String.fromCodePoint;e(e.S+e.F*(!!i&&1!=i.length),"String",{fromCodePoint:function fromCodePoint(t){for(var n,r=[],e=arguments.length,i=0;i<e;){if(n=+arguments[i++],o(n,1114111)!==n)throw RangeError(n+" is not a valid code point");r.push(n<65536?u(n):u(55296+((n-=65536)>>10),n%1024+56320))}return r.join("")}})},{137:137,62:62}],266:[function(t,n,r){"use strict";var e=t(62),i=t(130),o="includes";e(e.P+e.F*t(63)(o),"String",{includes:function includes(t){return!!~i(this,t,o).indexOf(t,1<arguments.length?arguments[1]:void 0)}})},{130:130,62:62,63:63}],267:[function(t,n,r){"use strict";t(131)("italics",function(t){return function italics(){return t(this,"i","","")}})},{131:131}],268:[function(t,n,r){"use strict";var e=t(129)(!0);t(85)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})})},{129:129,85:85}],269:[function(t,n,r){"use strict";t(131)("link",function(n){return function link(t){return n(this,"a","href",t)}})},{131:131}],270:[function(t,n,r){var e=t(62),u=t(140),c=t(141);e(e.S,"String",{raw:function raw(t){for(var n=u(t.raw),r=c(n.length),e=arguments.length,i=[],o=0;o<r;)i.push(String(n[o++])),o<e&&i.push(String(arguments[o]));return i.join("")}})},{140:140,141:141,62:62}],271:[function(t,n,r){var e=t(62);e(e.P,"String",{repeat:t(133)})},{133:133,62:62}],272:[function(t,n,r){"use strict";t(131)("small",function(t){return function small(){return t(this,"small","","")}})},{131:131}],273:[function(t,n,r){"use strict";var e=t(62),i=t(141),o=t(130),u="startsWith",c=""[u];e(e.P+e.F*t(63)(u),"String",{startsWith:function startsWith(t){var n=o(this,t,u),r=i(Math.min(1<arguments.length?arguments[1]:void 0,n.length)),e=String(t);return c?c.call(n,e,r):n.slice(r,r+e.length)===e}})},{130:130,141:141,62:62,63:63}],274:[function(t,n,r){"use strict";t(131)("strike",function(t){return function strike(){return t(this,"strike","","")}})},{131:131}],275:[function(t,n,r){"use strict";t(131)("sub",function(t){return function sub(){return t(this,"sub","","")}})},{131:131}],276:[function(t,n,r){"use strict";t(131)("sup",function(t){return function sup(){return t(this,"sup","","")}})},{131:131}],277:[function(t,n,r){"use strict";t(134)("trim",function(t){return function trim(){return t(this,3)}})},{134:134}],278:[function(t,n,r){"use strict";function B1(t){var n=W[t]=E(j[L]);return n._k=t,n}function E1(t,n){x(t);for(var r,e=y(n=b(n)),i=0,o=e.length;i<o;)Q(t,r=e[i++],n[r]);return t}function G1(t){var n=D.call(this,t=w(t,!0));return!(this===B&&u(W,t)&&!u(V,t))&&(!(n||!u(this,t)||!u(W,t)||u(this,C)&&this[C][t])||n)}function H1(t,n){if(t=b(t),n=w(n,!0),t!==B||!u(W,n)||u(V,n)){var r=M(t,n);return!r||!u(W,n)||u(t,C)&&t[C][n]||(r.enumerable=!0),r}}function I1(t){for(var n,r=N(b(t)),e=[],i=0;r.length>i;)u(W,n=r[i++])||n==C||n==a||e.push(n);return e}function J1(t){for(var n,r=t===B,e=N(r?V:b(t)),i=[],o=0;e.length>o;)!u(W,n=e[o++])||r&&!u(B,n)||i.push(W[n]);return i}var e=t(70),u=t(71),i=t(58),o=t(62),c=t(118),a=t(94).KEY,f=t(64),s=t(126),l=t(124),h=t(147),p=t(152),v=t(151),g=t(150),y=t(61),d=t(79),x=t(38),m=t(81),S=t(142),b=t(140),w=t(143),_=t(116),E=t(98),O=t(102),F=t(101),I=t(104),P=t(99),A=t(107),M=F.f,k=P.f,N=O.f,j=e.Symbol,R=e.JSON,T=R&&R.stringify,L="prototype",C=p("_hidden"),G=p("toPrimitive"),D={}.propertyIsEnumerable,U=s("symbol-registry"),W=s("symbols"),V=s("op-symbols"),B=Object[L],q="function"==typeof j&&!!I.f,Y=e.QObject,z=!Y||!Y[L]||!Y[L].findChild,X=i&&f(function(){return 7!=E(k({},"a",{get:function(){return k(this,"a",{value:7}).a}})).a})?function(t,n,r){var e=M(B,n);e&&delete B[n],k(t,n,r),e&&t!==B&&k(B,n,e)}:k,$=q&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},Q=function defineProperty(t,n,r){return t===B&&Q(V,n,r),x(t),n=w(n,!0),x(r),u(W,n)?(r.enumerable?(u(t,C)&&t[C][n]&&(t[C][n]=!1),r=E(r,{enumerable:_(0,!1)})):(u(t,C)||k(t,C,_(1,{})),t[C][n]=!0),X(t,n,r)):k(t,n,r)};q||(c((j=function Symbol(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var n=h(0<arguments.length?arguments[0]:void 0),r=function(t){this===B&&r.call(V,t),u(this,C)&&u(this[C],n)&&(this[C][n]=!1),X(this,n,_(1,t))};return i&&z&&X(B,n,{configurable:!0,set:r}),B1(n)})[L],"toString",function toString(){return this._k}),F.f=H1,P.f=Q,t(103).f=O.f=I1,t(108).f=G1,I.f=J1,i&&!t(89)&&c(B,"propertyIsEnumerable",G1,!0),v.f=function(t){return B1(p(t))}),o(o.G+o.W+o.F*!q,{Symbol:j});for(var Z="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),J=0;Z.length>J;)p(Z[J++]);for(var H=A(p.store),K=0;H.length>K;)g(H[K++]);o(o.S+o.F*!q,"Symbol",{for:function(t){return u(U,t+="")?U[t]:U[t]=j(t)},keyFor:function keyFor(t){if(!$(t))throw TypeError(t+" is not a symbol!");for(var n in U)if(U[n]===t)return n},useSetter:function(){z=!0},useSimple:function(){z=!1}}),o(o.S+o.F*!q,"Object",{create:function create(t,n){return void 0===n?E(t):E1(E(t),n)},defineProperty:Q,defineProperties:E1,getOwnPropertyDescriptor:H1,getOwnPropertyNames:I1,getOwnPropertySymbols:J1});var tt=f(function(){I.f(1)});o(o.S+o.F*tt,"Object",{getOwnPropertySymbols:function getOwnPropertySymbols(t){return I.f(S(t))}}),R&&o(o.S+o.F*(!q||f(function(){var t=j();return"[null]"!=T([t])||"{}"!=T({a:t})||"{}"!=T(Object(t))})),"JSON",{stringify:function stringify(t){for(var n,r,e=[t],i=1;i<arguments.length;)e.push(arguments[i++]);if(r=n=e[1],(m(n)||void 0!==t)&&!$(t))return d(n)||(n=function(t,n){if("function"==typeof r&&(n=r.call(this,t,n)),!$(n))return n}),e[1]=n,T.apply(R,e)}}),j[L][G]||t(72)(j[L],G,j[L].valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(e.JSON,"JSON",!0)},{101:101,102:102,103:103,104:104,107:107,108:108,116:116,118:118,124:124,126:126,140:140,142:142,143:143,147:147,150:150,151:151,152:152,38:38,58:58,61:61,62:62,64:64,70:70,71:71,72:72,79:79,81:81,89:89,94:94,98:98,99:99}],279:[function(t,n,r){"use strict";var e=t(62),i=t(146),o=t(145),f=t(38),s=t(137),l=t(141),u=t(81),c=t(70).ArrayBuffer,h=t(127),p=o.ArrayBuffer,v=o.DataView,a=i.ABV&&c.isView,g=p.prototype.slice,y=i.VIEW,d="ArrayBuffer";e(e.G+e.W+e.F*(c!==p),{ArrayBuffer:p}),e(e.S+e.F*!i.CONSTR,d,{isView:function isView(t){return a&&a(t)||u(t)&&y in t}}),e(e.P+e.U+e.F*t(64)(function(){return!new p(2).slice(1,void 0).byteLength}),d,{slice:function slice(t,n){if(void 0!==g&&void 0===n)return g.call(f(this),t);for(var r=f(this).byteLength,e=s(t,r),i=s(void 0===n?r:n,r),o=new(h(this,p))(l(i-e)),u=new v(this),c=new v(o),a=0;e<i;)c.setUint8(a++,u.getUint8(e++));return o}}),t(123)(d)},{123:123,127:127,137:137,141:141,145:145,146:146,38:38,62:62,64:64,70:70,81:81}],280:[function(t,n,r){var e=t(62);e(e.G+e.W+e.F*!t(146).ABV,{DataView:t(145).DataView})},{145:145,146:146,62:62}],281:[function(t,n,r){t(144)("Float32",4,function(e){return function Float32Array(t,n,r){return e(this,t,n,r)}})},{144:144}],282:[function(t,n,r){t(144)("Float64",8,function(e){return function Float64Array(t,n,r){return e(this,t,n,r)}})},{144:144}],283:[function(t,n,r){t(144)("Int16",2,function(e){return function Int16Array(t,n,r){return e(this,t,n,r)}})},{144:144}],284:[function(t,n,r){t(144)("Int32",4,function(e){return function Int32Array(t,n,r){return e(this,t,n,r)}})},{144:144}],285:[function(t,n,r){t(144)("Int8",1,function(e){return function Int8Array(t,n,r){return e(this,t,n,r)}})},{144:144}],286:[function(t,n,r){t(144)("Uint16",2,function(e){return function Uint16Array(t,n,r){return e(this,t,n,r)}})},{144:144}],287:[function(t,n,r){t(144)("Uint32",4,function(e){return function Uint32Array(t,n,r){return e(this,t,n,r)}})},{144:144}],288:[function(t,n,r){t(144)("Uint8",1,function(e){return function Uint8Array(t,n,r){return e(this,t,n,r)}})},{144:144}],289:[function(t,n,r){t(144)("Uint8",1,function(e){return function Uint8ClampedArray(t,n,r){return e(this,t,n,r)}},!0)},{144:144}],290:[function(t,n,r){"use strict";function R4(t){return function WeakMap(){return t(this,0<arguments.length?arguments[0]:void 0)}}var o,e=t(70),i=t(42)(0),u=t(118),c=t(94),a=t(97),f=t(50),s=t(81),l=t(149),h=t(149),p=!e.ActiveXObject&&"ActiveXObject"in e,v="WeakMap",g=c.getWeak,y=Object.isExtensible,d=f.ufstore,x={get:function get(t){if(s(t)){var n=g(t);return!0===n?d(l(this,v)).get(t):n?n[this._i]:void 0}},set:function set(t,n){return f.def(l(this,v),t,n)}},m=n.exports=t(51)(v,R4,x,f,!0,!0);h&&p&&(a((o=f.getConstructor(R4,v)).prototype,x),c.NEED=!0,i(["delete","has","get","set"],function(e){var t=m.prototype,i=t[e];u(t,e,function(t,n){if(!s(t)||y(t))return i.call(this,t,n);this._f||(this._f=new o);var r=this._f[e](t,n);return"set"==e?this:r})}))},{118:118,149:149,42:42,50:50,51:51,70:70,81:81,94:94,97:97}],291:[function(t,n,r){"use strict";var e=t(50),i=t(149),o="WeakSet";t(51)(o,function(t){return function WeakSet(){return t(this,0<arguments.length?arguments[0]:void 0)}},{add:function add(t){return e.def(i(this,o),t,!0)}},e,!1,!0)},{149:149,50:50,51:51}],292:[function(t,n,r){"use strict";var e=t(62),i=t(67),o=t(142),u=t(141),c=t(33),a=t(45);e(e.P,"Array",{flatMap:function flatMap(t){var n,r,e=o(this);return c(t),n=u(e.length),r=a(e,0),i(r,e,e,n,0,1,t,arguments[1]),r}}),t(35)("flatMap")},{141:141,142:142,33:33,35:35,45:45,62:62,67:67}],293:[function(t,n,r){"use strict";var e=t(62),i=t(41)(!0);e(e.P,"Array",{includes:function includes(t){return i(this,t,1<arguments.length?arguments[1]:void 0)}}),t(35)("includes")},{35:35,41:41,62:62}],294:[function(t,n,r){var e=t(62),i=t(110)(!0);e(e.S,"Object",{entries:function entries(t){return i(t)}})},{110:110,62:62}],295:[function(t,n,r){var e=t(62),a=t(111),f=t(140),s=t(101),l=t(53);e(e.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(t){for(var n,r,e=f(t),i=s.f,o=a(e),u={},c=0;o.length>c;)void 0!==(r=i(e,n=o[c++]))&&l(u,n,r);return u}})},{101:101,111:111,140:140,53:53,62:62}],296:[function(t,n,r){var e=t(62),i=t(110)(!1);e(e.S,"Object",{values:function values(t){return i(t)}})},{110:110,62:62}],297:[function(t,n,r){"use strict";var e=t(62),i=t(52),o=t(70),u=t(127),c=t(115);e(e.P+e.R,"Promise",{finally:function(n){var r=u(this,i.Promise||o.Promise),t="function"==typeof n;return this.then(t?function(t){return c(r,n()).then(function(){return t})}:n,t?function(t){return c(r,n()).then(function(){throw t})}:n)}})},{115:115,127:127,52:52,62:62,70:70}],298:[function(t,n,r){"use strict";var e=t(62),i=t(132),o=t(148),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padEnd:function padEnd(t){return i(this,t,1<arguments.length?arguments[1]:void 0,!1)}})},{132:132,148:148,62:62}],299:[function(t,n,r){"use strict";var e=t(62),i=t(132),o=t(148),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padStart:function padStart(t){return i(this,t,1<arguments.length?arguments[1]:void 0,!0)}})},{132:132,148:148,62:62}],300:[function(t,n,r){"use strict";t(134)("trimLeft",function(t){return function trimLeft(){return t(this,1)}},"trimStart")},{134:134}],301:[function(t,n,r){"use strict";t(134)("trimRight",function(t){return function trimRight(){return t(this,2)}},"trimEnd")},{134:134}],302:[function(t,n,r){t(150)("asyncIterator")},{150:150}],303:[function(t,n,r){for(var e=t(164),i=t(107),o=t(118),u=t(70),c=t(72),a=t(88),f=t(152),s=f("iterator"),l=f("toStringTag"),h=a.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},v=i(p),g=0;g<v.length;g++){var y,d=v[g],x=p[d],m=u[d],S=m&&m.prototype;if(S&&(S[s]||c(S,s,h),S[l]||c(S,l,d),a[d]=h,x))for(y in e)S[y]||o(S,y,e[y],!0)}},{107:107,118:118,152:152,164:164,70:70,72:72,88:88}],304:[function(t,n,r){var e=t(62),i=t(136);e(e.G+e.B,{setImmediate:i.set,clearImmediate:i.clear})},{136:136,62:62}],305:[function(t,n,r){function y7(i){return function(t,n){var r=2<arguments.length,e=r&&u.call(arguments,2);return i(r?function(){("function"==typeof t?t:Function(t)).apply(this,e)}:t,n)}}var e=t(70),i=t(62),o=t(148),u=[].slice,c=/MSIE .\./.test(o);i(i.G+i.B+i.F*c,{setTimeout:y7(e.setTimeout),setInterval:y7(e.setInterval)})},{148:148,62:62,70:70}],306:[function(t,n,r){t(305),t(304),t(303),n.exports=t(52)},{303:303,304:304,305:305,52:52}],307:[function(t,n,r){var e=function(o){"use strict";var c,t=Object.prototype,a=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},i=n.iterator||"@@iterator",r=n.asyncIterator||"@@asyncIterator",e=n.toStringTag||"@@toStringTag";function wrap(t,n,r,e){var i=n&&n.prototype instanceof Generator?n:Generator,o=Object.create(i.prototype),u=new Context(e||[]);return o._invoke=function makeInvokeMethod(o,u,c){var a=f;return function invoke(t,n){if(a===l)throw new Error("Generator is already running");if(a===h){if("throw"===t)throw n;return doneResult()}for(c.method=t,c.arg=n;;){var r=c.delegate;if(r){var e=maybeInvokeDelegate(r,c);if(e){if(e===p)continue;return e}}if("next"===c.method)c.sent=c._sent=c.arg;else if("throw"===c.method){if(a===f)throw a=h,c.arg;c.dispatchException(c.arg)}else"return"===c.method&&c.abrupt("return",c.arg);a=l;var i=tryCatch(o,u,c);if("normal"===i.type){if(a=c.done?h:s,i.arg===p)continue;return{value:i.arg,done:c.done}}"throw"===i.type&&(a=h,c.method="throw",c.arg=i.arg)}}}(t,r,u),o}function tryCatch(t,n,r){try{return{type:"normal",arg:t.call(n,r)}}catch(t){return{type:"throw",arg:t}}}o.wrap=wrap;var f="suspendedStart",s="suspendedYield",l="executing",h="completed",p={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var u={};u[i]=function(){return this};var v=Object.getPrototypeOf,g=v&&v(v(values([])));g&&g!==t&&a.call(g,i)&&(u=g);var y=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(u);function defineIteratorMethods(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function AsyncIterator(c){var t;this._invoke=function enqueue(r,e){function callInvokeWithMethodAndArg(){return new Promise(function(t,n){!function invoke(t,n,r,e){var i=tryCatch(c[t],c,n);if("throw"!==i.type){var o=i.arg,u=o.value;return u&&"object"==typeof u&&a.call(u,"__await")?Promise.resolve(u.__await).then(function(t){invoke("next",t,r,e)},function(t){invoke("throw",t,r,e)}):Promise.resolve(u).then(function(t){o.value=t,r(o)},function(t){return invoke("throw",t,r,e)})}e(i.arg)}(r,e,t,n)})}return t=t?t.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}function maybeInvokeDelegate(t,n){var r=t.iterator[n.method];if(r===c){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=c,maybeInvokeDelegate(t,n),"throw"===n.method))return p;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var e=tryCatch(r,t.iterator,n.arg);if("throw"===e.type)return n.method="throw",n.arg=e.arg,n.delegate=null,p;var i=e.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=c),n.delegate=null,p):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function pushTryEntry(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function resetTryEntry(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,e=function next(){for(;++r<t.length;)if(a.call(t,r))return next.value=t[r],next.done=!1,next;return next.value=c,next.done=!0,next};return e.next=e}}return{next:doneResult}}function doneResult(){return{value:c,done:!0}}return GeneratorFunction.prototype=y.constructor=GeneratorFunctionPrototype,GeneratorFunctionPrototype.constructor=GeneratorFunction,GeneratorFunctionPrototype[e]=GeneratorFunction.displayName="GeneratorFunction",o.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===GeneratorFunction||"GeneratorFunction"===(n.displayName||n.name))},o.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,e in t||(t[e]="GeneratorFunction")),t.prototype=Object.create(y),t},o.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),AsyncIterator.prototype[r]=function(){return this},o.AsyncIterator=AsyncIterator,o.async=function(t,n,r,e){var i=new AsyncIterator(wrap(t,n,r,e));return o.isGeneratorFunction(n)?i:i.next().then(function(t){return t.done?t.value:i.next()})},defineIteratorMethods(y),y[e]="Generator",y[i]=function(){return this},y.toString=function(){return"[object Generator]"},o.keys=function(n){var r=[];for(var t in n)r.push(t);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in n)return next.value=t,next.done=!1,next}return next.done=!0,next}},o.values=values,Context.prototype={constructor:Context,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=c,this.done=!1,this.delegate=null,this.method="next",this.arg=c,this.tryEntries.forEach(resetTryEntry),!t)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=c)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function handle(t,n){return i.type="throw",i.arg=r,e.next=t,n&&(e.method="next",e.arg=c),!!n}for(var t=this.tryEntries.length-1;0<=t;--t){var n=this.tryEntries[t],i=n.completion;if("root"===n.tryLoc)return handle("end");if(n.tryLoc<=this.prev){var o=a.call(n,"catchLoc"),u=a.call(n,"finallyLoc");if(o&&u){if(this.prev<n.catchLoc)return handle(n.catchLoc,!0);if(this.prev<n.finallyLoc)return handle(n.finallyLoc)}else if(o){if(this.prev<n.catchLoc)return handle(n.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<n.finallyLoc)return handle(n.finallyLoc)}}}},abrupt:function(t,n){for(var r=this.tryEntries.length-1;0<=r;--r){var e=this.tryEntries[r];if(e.tryLoc<=this.prev&&a.call(e,"finallyLoc")&&this.prev<e.finallyLoc){var i=e;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=t,o.arg=n,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(o)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),p},finish:function(t){for(var n=this.tryEntries.length-1;0<=n;--n){var r=this.tryEntries[n];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),p}},catch:function(t){for(var n=this.tryEntries.length-1;0<=n;--n){var r=this.tryEntries[n];if(r.tryLoc===t){var e=r.completion;if("throw"===e.type){var i=e.arg;resetTryEntry(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:values(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=c),p}},o}("object"==typeof n?n.exports:{});try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},{}]},{},[1]);
diff --git a/src/main/webapp/static/js/paella/player/javascript/require.js b/src/main/webapp/static/js/paella/player/javascript/require.js
new file mode 100644
index 0000000000000000000000000000000000000000..78490f91d525e640d0b49deda7174e55f103ef02
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/javascript/require.js
@@ -0,0 +1,2145 @@
+/** vim: et:ts=4:sw=4:sts=4
+ * @license RequireJS 2.3.6 Copyright jQuery Foundation and other contributors.
+ * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
+ */
+//Not using strict: uneven strict support in browsers, #392, and causes
+//problems with requirejs.exec()/transpiler plugins that may not be strict.
+/*jslint regexp: true, nomen: true, sloppy: true */
+/*global window, navigator, document, importScripts, setTimeout, opera */
+
+var requirejs, require, define;
+(function (global, setTimeout) {
+    var req, s, head, baseElement, dataMain, src,
+        interactiveScript, currentlyAddingScript, mainScript, subPath,
+        version = '2.3.6',
+        commentRegExp = /\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,
+        cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
+        jsSuffixRegExp = /\.js$/,
+        currDirRegExp = /^\.\//,
+        op = Object.prototype,
+        ostring = op.toString,
+        hasOwn = op.hasOwnProperty,
+        isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document),
+        isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
+        //PS3 indicates loaded and complete, but need to wait for complete
+        //specifically. Sequence is 'loading', 'loaded', execution,
+        // then 'complete'. The UA check is unfortunate, but not sure how
+        //to feature test w/o causing perf issues.
+        readyRegExp = isBrowser && navigator.platform === 'PLAYSTATION 3' ?
+                      /^complete$/ : /^(complete|loaded)$/,
+        defContextName = '_',
+        //Oh the tragedy, detecting opera. See the usage of isOpera for reason.
+        isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]',
+        contexts = {},
+        cfg = {},
+        globalDefQueue = [],
+        useInteractive = false;
+
+    //Could match something like ')//comment', do not lose the prefix to comment.
+    function commentReplace(match, singlePrefix) {
+        return singlePrefix || '';
+    }
+
+    function isFunction(it) {
+        return ostring.call(it) === '[object Function]';
+    }
+
+    function isArray(it) {
+        return ostring.call(it) === '[object Array]';
+    }
+
+    /**
+     * Helper function for iterating over an array. If the func returns
+     * a true value, it will break out of the loop.
+     */
+    function each(ary, func) {
+        if (ary) {
+            var i;
+            for (i = 0; i < ary.length; i += 1) {
+                if (ary[i] && func(ary[i], i, ary)) {
+                    break;
+                }
+            }
+        }
+    }
+
+    /**
+     * Helper function for iterating over an array backwards. If the func
+     * returns a true value, it will break out of the loop.
+     */
+    function eachReverse(ary, func) {
+        if (ary) {
+            var i;
+            for (i = ary.length - 1; i > -1; i -= 1) {
+                if (ary[i] && func(ary[i], i, ary)) {
+                    break;
+                }
+            }
+        }
+    }
+
+    function hasProp(obj, prop) {
+        return hasOwn.call(obj, prop);
+    }
+
+    function getOwn(obj, prop) {
+        return hasProp(obj, prop) && obj[prop];
+    }
+
+    /**
+     * Cycles over properties in an object and calls a function for each
+     * property value. If the function returns a truthy value, then the
+     * iteration is stopped.
+     */
+    function eachProp(obj, func) {
+        var prop;
+        for (prop in obj) {
+            if (hasProp(obj, prop)) {
+                if (func(obj[prop], prop)) {
+                    break;
+                }
+            }
+        }
+    }
+
+    /**
+     * Simple function to mix in properties from source into target,
+     * but only if target does not already have a property of the same name.
+     */
+    function mixin(target, source, force, deepStringMixin) {
+        if (source) {
+            eachProp(source, function (value, prop) {
+                if (force || !hasProp(target, prop)) {
+                    if (deepStringMixin && typeof value === 'object' && value &&
+                        !isArray(value) && !isFunction(value) &&
+                        !(value instanceof RegExp)) {
+
+                        if (!target[prop]) {
+                            target[prop] = {};
+                        }
+                        mixin(target[prop], value, force, deepStringMixin);
+                    } else {
+                        target[prop] = value;
+                    }
+                }
+            });
+        }
+        return target;
+    }
+
+    //Similar to Function.prototype.bind, but the 'this' object is specified
+    //first, since it is easier to read/figure out what 'this' will be.
+    function bind(obj, fn) {
+        return function () {
+            return fn.apply(obj, arguments);
+        };
+    }
+
+    function scripts() {
+        return document.getElementsByTagName('script');
+    }
+
+    function defaultOnError(err) {
+        throw err;
+    }
+
+    //Allow getting a global that is expressed in
+    //dot notation, like 'a.b.c'.
+    function getGlobal(value) {
+        if (!value) {
+            return value;
+        }
+        var g = global;
+        each(value.split('.'), function (part) {
+            g = g[part];
+        });
+        return g;
+    }
+
+    /**
+     * Constructs an error with a pointer to an URL with more information.
+     * @param {String} id the error ID that maps to an ID on a web page.
+     * @param {String} message human readable error.
+     * @param {Error} [err] the original error, if there is one.
+     *
+     * @returns {Error}
+     */
+    function makeError(id, msg, err, requireModules) {
+        var e = new Error(msg + '\nhttps://requirejs.org/docs/errors.html#' + id);
+        e.requireType = id;
+        e.requireModules = requireModules;
+        if (err) {
+            e.originalError = err;
+        }
+        return e;
+    }
+
+    if (typeof define !== 'undefined') {
+        //If a define is already in play via another AMD loader,
+        //do not overwrite.
+        return;
+    }
+
+    if (typeof requirejs !== 'undefined') {
+        if (isFunction(requirejs)) {
+            //Do not overwrite an existing requirejs instance.
+            return;
+        }
+        cfg = requirejs;
+        requirejs = undefined;
+    }
+
+    //Allow for a require config object
+    if (typeof require !== 'undefined' && !isFunction(require)) {
+        //assume it is a config object.
+        cfg = require;
+        require = undefined;
+    }
+
+    function newContext(contextName) {
+        var inCheckLoaded, Module, context, handlers,
+            checkLoadedTimeoutId,
+            config = {
+                //Defaults. Do not set a default for map
+                //config to speed up normalize(), which
+                //will run faster if there is no default.
+                waitSeconds: 7,
+                baseUrl: './',
+                paths: {},
+                bundles: {},
+                pkgs: {},
+                shim: {},
+                config: {}
+            },
+            registry = {},
+            //registry of just enabled modules, to speed
+            //cycle breaking code when lots of modules
+            //are registered, but not activated.
+            enabledRegistry = {},
+            undefEvents = {},
+            defQueue = [],
+            defined = {},
+            urlFetched = {},
+            bundlesMap = {},
+            requireCounter = 1,
+            unnormalizedCounter = 1;
+
+        /**
+         * Trims the . and .. from an array of path segments.
+         * It will keep a leading path segment if a .. will become
+         * the first path segment, to help with module name lookups,
+         * which act like paths, but can be remapped. But the end result,
+         * all paths that use this function should look normalized.
+         * NOTE: this method MODIFIES the input array.
+         * @param {Array} ary the array of path segments.
+         */
+        function trimDots(ary) {
+            var i, part;
+            for (i = 0; i < ary.length; i++) {
+                part = ary[i];
+                if (part === '.') {
+                    ary.splice(i, 1);
+                    i -= 1;
+                } else if (part === '..') {
+                    // If at the start, or previous value is still ..,
+                    // keep them so that when converted to a path it may
+                    // still work when converted to a path, even though
+                    // as an ID it is less than ideal. In larger point
+                    // releases, may be better to just kick out an error.
+                    if (i === 0 || (i === 1 && ary[2] === '..') || ary[i - 1] === '..') {
+                        continue;
+                    } else if (i > 0) {
+                        ary.splice(i - 1, 2);
+                        i -= 2;
+                    }
+                }
+            }
+        }
+
+        /**
+         * Given a relative module name, like ./something, normalize it to
+         * a real name that can be mapped to a path.
+         * @param {String} name the relative name
+         * @param {String} baseName a real name that the name arg is relative
+         * to.
+         * @param {Boolean} applyMap apply the map config to the value. Should
+         * only be done if this normalization is for a dependency ID.
+         * @returns {String} normalized name
+         */
+        function normalize(name, baseName, applyMap) {
+            var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex,
+                foundMap, foundI, foundStarMap, starI, normalizedBaseParts,
+                baseParts = (baseName && baseName.split('/')),
+                map = config.map,
+                starMap = map && map['*'];
+
+            //Adjust any relative paths.
+            if (name) {
+                name = name.split('/');
+                lastIndex = name.length - 1;
+
+                // If wanting node ID compatibility, strip .js from end
+                // of IDs. Have to do this here, and not in nameToUrl
+                // because node allows either .js or non .js to map
+                // to same file.
+                if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
+                    name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
+                }
+
+                // Starts with a '.' so need the baseName
+                if (name[0].charAt(0) === '.' && baseParts) {
+                    //Convert baseName to array, and lop off the last part,
+                    //so that . matches that 'directory' and not name of the baseName's
+                    //module. For instance, baseName of 'one/two/three', maps to
+                    //'one/two/three.js', but we want the directory, 'one/two' for
+                    //this normalization.
+                    normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
+                    name = normalizedBaseParts.concat(name);
+                }
+
+                trimDots(name);
+                name = name.join('/');
+            }
+
+            //Apply map config if available.
+            if (applyMap && map && (baseParts || starMap)) {
+                nameParts = name.split('/');
+
+                outerLoop: for (i = nameParts.length; i > 0; i -= 1) {
+                    nameSegment = nameParts.slice(0, i).join('/');
+
+                    if (baseParts) {
+                        //Find the longest baseName segment match in the config.
+                        //So, do joins on the biggest to smallest lengths of baseParts.
+                        for (j = baseParts.length; j > 0; j -= 1) {
+                            mapValue = getOwn(map, baseParts.slice(0, j).join('/'));
+
+                            //baseName segment has config, find if it has one for
+                            //this name.
+                            if (mapValue) {
+                                mapValue = getOwn(mapValue, nameSegment);
+                                if (mapValue) {
+                                    //Match, update name to the new value.
+                                    foundMap = mapValue;
+                                    foundI = i;
+                                    break outerLoop;
+                                }
+                            }
+                        }
+                    }
+
+                    //Check for a star map match, but just hold on to it,
+                    //if there is a shorter segment match later in a matching
+                    //config, then favor over this star map.
+                    if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) {
+                        foundStarMap = getOwn(starMap, nameSegment);
+                        starI = i;
+                    }
+                }
+
+                if (!foundMap && foundStarMap) {
+                    foundMap = foundStarMap;
+                    foundI = starI;
+                }
+
+                if (foundMap) {
+                    nameParts.splice(0, foundI, foundMap);
+                    name = nameParts.join('/');
+                }
+            }
+
+            // If the name points to a package's name, use
+            // the package main instead.
+            pkgMain = getOwn(config.pkgs, name);
+
+            return pkgMain ? pkgMain : name;
+        }
+
+        function removeScript(name) {
+            if (isBrowser) {
+                each(scripts(), function (scriptNode) {
+                    if (scriptNode.getAttribute('data-requiremodule') === name &&
+                            scriptNode.getAttribute('data-requirecontext') === context.contextName) {
+                        scriptNode.parentNode.removeChild(scriptNode);
+                        return true;
+                    }
+                });
+            }
+        }
+
+        function hasPathFallback(id) {
+            var pathConfig = getOwn(config.paths, id);
+            if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) {
+                //Pop off the first array value, since it failed, and
+                //retry
+                pathConfig.shift();
+                context.require.undef(id);
+
+                //Custom require that does not do map translation, since
+                //ID is "absolute", already mapped/resolved.
+                context.makeRequire(null, {
+                    skipMap: true
+                })([id]);
+
+                return true;
+            }
+        }
+
+        //Turns a plugin!resource to [plugin, resource]
+        //with the plugin being undefined if the name
+        //did not have a plugin prefix.
+        function splitPrefix(name) {
+            var prefix,
+                index = name ? name.indexOf('!') : -1;
+            if (index > -1) {
+                prefix = name.substring(0, index);
+                name = name.substring(index + 1, name.length);
+            }
+            return [prefix, name];
+        }
+
+        /**
+         * Creates a module mapping that includes plugin prefix, module
+         * name, and path. If parentModuleMap is provided it will
+         * also normalize the name via require.normalize()
+         *
+         * @param {String} name the module name
+         * @param {String} [parentModuleMap] parent module map
+         * for the module name, used to resolve relative names.
+         * @param {Boolean} isNormalized: is the ID already normalized.
+         * This is true if this call is done for a define() module ID.
+         * @param {Boolean} applyMap: apply the map config to the ID.
+         * Should only be true if this map is for a dependency.
+         *
+         * @returns {Object}
+         */
+        function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {
+            var url, pluginModule, suffix, nameParts,
+                prefix = null,
+                parentName = parentModuleMap ? parentModuleMap.name : null,
+                originalName = name,
+                isDefine = true,
+                normalizedName = '';
+
+            //If no name, then it means it is a require call, generate an
+            //internal name.
+            if (!name) {
+                isDefine = false;
+                name = '_@r' + (requireCounter += 1);
+            }
+
+            nameParts = splitPrefix(name);
+            prefix = nameParts[0];
+            name = nameParts[1];
+
+            if (prefix) {
+                prefix = normalize(prefix, parentName, applyMap);
+                pluginModule = getOwn(defined, prefix);
+            }
+
+            //Account for relative paths if there is a base name.
+            if (name) {
+                if (prefix) {
+                    if (isNormalized) {
+                        normalizedName = name;
+                    } else if (pluginModule && pluginModule.normalize) {
+                        //Plugin is loaded, use its normalize method.
+                        normalizedName = pluginModule.normalize(name, function (name) {
+                            return normalize(name, parentName, applyMap);
+                        });
+                    } else {
+                        // If nested plugin references, then do not try to
+                        // normalize, as it will not normalize correctly. This
+                        // places a restriction on resourceIds, and the longer
+                        // term solution is not to normalize until plugins are
+                        // loaded and all normalizations to allow for async
+                        // loading of a loader plugin. But for now, fixes the
+                        // common uses. Details in #1131
+                        normalizedName = name.indexOf('!') === -1 ?
+                                         normalize(name, parentName, applyMap) :
+                                         name;
+                    }
+                } else {
+                    //A regular module.
+                    normalizedName = normalize(name, parentName, applyMap);
+
+                    //Normalized name may be a plugin ID due to map config
+                    //application in normalize. The map config values must
+                    //already be normalized, so do not need to redo that part.
+                    nameParts = splitPrefix(normalizedName);
+                    prefix = nameParts[0];
+                    normalizedName = nameParts[1];
+                    isNormalized = true;
+
+                    url = context.nameToUrl(normalizedName);
+                }
+            }
+
+            //If the id is a plugin id that cannot be determined if it needs
+            //normalization, stamp it with a unique ID so two matching relative
+            //ids that may conflict can be separate.
+            suffix = prefix && !pluginModule && !isNormalized ?
+                     '_unnormalized' + (unnormalizedCounter += 1) :
+                     '';
+
+            return {
+                prefix: prefix,
+                name: normalizedName,
+                parentMap: parentModuleMap,
+                unnormalized: !!suffix,
+                url: url,
+                originalName: originalName,
+                isDefine: isDefine,
+                id: (prefix ?
+                        prefix + '!' + normalizedName :
+                        normalizedName) + suffix
+            };
+        }
+
+        function getModule(depMap) {
+            var id = depMap.id,
+                mod = getOwn(registry, id);
+
+            if (!mod) {
+                mod = registry[id] = new context.Module(depMap);
+            }
+
+            return mod;
+        }
+
+        function on(depMap, name, fn) {
+            var id = depMap.id,
+                mod = getOwn(registry, id);
+
+            if (hasProp(defined, id) &&
+                    (!mod || mod.defineEmitComplete)) {
+                if (name === 'defined') {
+                    fn(defined[id]);
+                }
+            } else {
+                mod = getModule(depMap);
+                if (mod.error && name === 'error') {
+                    fn(mod.error);
+                } else {
+                    mod.on(name, fn);
+                }
+            }
+        }
+
+        function onError(err, errback) {
+            var ids = err.requireModules,
+                notified = false;
+
+            if (errback) {
+                errback(err);
+            } else {
+                each(ids, function (id) {
+                    var mod = getOwn(registry, id);
+                    if (mod) {
+                        //Set error on module, so it skips timeout checks.
+                        mod.error = err;
+                        if (mod.events.error) {
+                            notified = true;
+                            mod.emit('error', err);
+                        }
+                    }
+                });
+
+                if (!notified) {
+                    req.onError(err);
+                }
+            }
+        }
+
+        /**
+         * Internal method to transfer globalQueue items to this context's
+         * defQueue.
+         */
+        function takeGlobalQueue() {
+            //Push all the globalDefQueue items into the context's defQueue
+            if (globalDefQueue.length) {
+                each(globalDefQueue, function(queueItem) {
+                    var id = queueItem[0];
+                    if (typeof id === 'string') {
+                        context.defQueueMap[id] = true;
+                    }
+                    defQueue.push(queueItem);
+                });
+                globalDefQueue = [];
+            }
+        }
+
+        handlers = {
+            'require': function (mod) {
+                if (mod.require) {
+                    return mod.require;
+                } else {
+                    return (mod.require = context.makeRequire(mod.map));
+                }
+            },
+            'exports': function (mod) {
+                mod.usingExports = true;
+                if (mod.map.isDefine) {
+                    if (mod.exports) {
+                        return (defined[mod.map.id] = mod.exports);
+                    } else {
+                        return (mod.exports = defined[mod.map.id] = {});
+                    }
+                }
+            },
+            'module': function (mod) {
+                if (mod.module) {
+                    return mod.module;
+                } else {
+                    return (mod.module = {
+                        id: mod.map.id,
+                        uri: mod.map.url,
+                        config: function () {
+                            return getOwn(config.config, mod.map.id) || {};
+                        },
+                        exports: mod.exports || (mod.exports = {})
+                    });
+                }
+            }
+        };
+
+        function cleanRegistry(id) {
+            //Clean up machinery used for waiting modules.
+            delete registry[id];
+            delete enabledRegistry[id];
+        }
+
+        function breakCycle(mod, traced, processed) {
+            var id = mod.map.id;
+
+            if (mod.error) {
+                mod.emit('error', mod.error);
+            } else {
+                traced[id] = true;
+                each(mod.depMaps, function (depMap, i) {
+                    var depId = depMap.id,
+                        dep = getOwn(registry, depId);
+
+                    //Only force things that have not completed
+                    //being defined, so still in the registry,
+                    //and only if it has not been matched up
+                    //in the module already.
+                    if (dep && !mod.depMatched[i] && !processed[depId]) {
+                        if (getOwn(traced, depId)) {
+                            mod.defineDep(i, defined[depId]);
+                            mod.check(); //pass false?
+                        } else {
+                            breakCycle(dep, traced, processed);
+                        }
+                    }
+                });
+                processed[id] = true;
+            }
+        }
+
+        function checkLoaded() {
+            var err, usingPathFallback,
+                waitInterval = config.waitSeconds * 1000,
+                //It is possible to disable the wait interval by using waitSeconds of 0.
+                expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),
+                noLoads = [],
+                reqCalls = [],
+                stillLoading = false,
+                needCycleCheck = true;
+
+            //Do not bother if this call was a result of a cycle break.
+            if (inCheckLoaded) {
+                return;
+            }
+
+            inCheckLoaded = true;
+
+            //Figure out the state of all the modules.
+            eachProp(enabledRegistry, function (mod) {
+                var map = mod.map,
+                    modId = map.id;
+
+                //Skip things that are not enabled or in error state.
+                if (!mod.enabled) {
+                    return;
+                }
+
+                if (!map.isDefine) {
+                    reqCalls.push(mod);
+                }
+
+                if (!mod.error) {
+                    //If the module should be executed, and it has not
+                    //been inited and time is up, remember it.
+                    if (!mod.inited && expired) {
+                        if (hasPathFallback(modId)) {
+                            usingPathFallback = true;
+                            stillLoading = true;
+                        } else {
+                            noLoads.push(modId);
+                            removeScript(modId);
+                        }
+                    } else if (!mod.inited && mod.fetched && map.isDefine) {
+                        stillLoading = true;
+                        if (!map.prefix) {
+                            //No reason to keep looking for unfinished
+                            //loading. If the only stillLoading is a
+                            //plugin resource though, keep going,
+                            //because it may be that a plugin resource
+                            //is waiting on a non-plugin cycle.
+                            return (needCycleCheck = false);
+                        }
+                    }
+                }
+            });
+
+            if (expired && noLoads.length) {
+                //If wait time expired, throw error of unloaded modules.
+                err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads);
+                err.contextName = context.contextName;
+                return onError(err);
+            }
+
+            //Not expired, check for a cycle.
+            if (needCycleCheck) {
+                each(reqCalls, function (mod) {
+                    breakCycle(mod, {}, {});
+                });
+            }
+
+            //If still waiting on loads, and the waiting load is something
+            //other than a plugin resource, or there are still outstanding
+            //scripts, then just try back later.
+            if ((!expired || usingPathFallback) && stillLoading) {
+                //Something is still waiting to load. Wait for it, but only
+                //if a timeout is not already in effect.
+                if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) {
+                    checkLoadedTimeoutId = setTimeout(function () {
+                        checkLoadedTimeoutId = 0;
+                        checkLoaded();
+                    }, 50);
+                }
+            }
+
+            inCheckLoaded = false;
+        }
+
+        Module = function (map) {
+            this.events = getOwn(undefEvents, map.id) || {};
+            this.map = map;
+            this.shim = getOwn(config.shim, map.id);
+            this.depExports = [];
+            this.depMaps = [];
+            this.depMatched = [];
+            this.pluginMaps = {};
+            this.depCount = 0;
+
+            /* this.exports this.factory
+               this.depMaps = [],
+               this.enabled, this.fetched
+            */
+        };
+
+        Module.prototype = {
+            init: function (depMaps, factory, errback, options) {
+                options = options || {};
+
+                //Do not do more inits if already done. Can happen if there
+                //are multiple define calls for the same module. That is not
+                //a normal, common case, but it is also not unexpected.
+                if (this.inited) {
+                    return;
+                }
+
+                this.factory = factory;
+
+                if (errback) {
+                    //Register for errors on this module.
+                    this.on('error', errback);
+                } else if (this.events.error) {
+                    //If no errback already, but there are error listeners
+                    //on this module, set up an errback to pass to the deps.
+                    errback = bind(this, function (err) {
+                        this.emit('error', err);
+                    });
+                }
+
+                //Do a copy of the dependency array, so that
+                //source inputs are not modified. For example
+                //"shim" deps are passed in here directly, and
+                //doing a direct modification of the depMaps array
+                //would affect that config.
+                this.depMaps = depMaps && depMaps.slice(0);
+
+                this.errback = errback;
+
+                //Indicate this module has be initialized
+                this.inited = true;
+
+                this.ignore = options.ignore;
+
+                //Could have option to init this module in enabled mode,
+                //or could have been previously marked as enabled. However,
+                //the dependencies are not known until init is called. So
+                //if enabled previously, now trigger dependencies as enabled.
+                if (options.enabled || this.enabled) {
+                    //Enable this module and dependencies.
+                    //Will call this.check()
+                    this.enable();
+                } else {
+                    this.check();
+                }
+            },
+
+            defineDep: function (i, depExports) {
+                //Because of cycles, defined callback for a given
+                //export can be called more than once.
+                if (!this.depMatched[i]) {
+                    this.depMatched[i] = true;
+                    this.depCount -= 1;
+                    this.depExports[i] = depExports;
+                }
+            },
+
+            fetch: function () {
+                if (this.fetched) {
+                    return;
+                }
+                this.fetched = true;
+
+                context.startTime = (new Date()).getTime();
+
+                var map = this.map;
+
+                //If the manager is for a plugin managed resource,
+                //ask the plugin to load it now.
+                if (this.shim) {
+                    context.makeRequire(this.map, {
+                        enableBuildCallback: true
+                    })(this.shim.deps || [], bind(this, function () {
+                        return map.prefix ? this.callPlugin() : this.load();
+                    }));
+                } else {
+                    //Regular dependency.
+                    return map.prefix ? this.callPlugin() : this.load();
+                }
+            },
+
+            load: function () {
+                var url = this.map.url;
+
+                //Regular dependency.
+                if (!urlFetched[url]) {
+                    urlFetched[url] = true;
+                    context.load(this.map.id, url);
+                }
+            },
+
+            /**
+             * Checks if the module is ready to define itself, and if so,
+             * define it.
+             */
+            check: function () {
+                if (!this.enabled || this.enabling) {
+                    return;
+                }
+
+                var err, cjsModule,
+                    id = this.map.id,
+                    depExports = this.depExports,
+                    exports = this.exports,
+                    factory = this.factory;
+
+                if (!this.inited) {
+                    // Only fetch if not already in the defQueue.
+                    if (!hasProp(context.defQueueMap, id)) {
+                        this.fetch();
+                    }
+                } else if (this.error) {
+                    this.emit('error', this.error);
+                } else if (!this.defining) {
+                    //The factory could trigger another require call
+                    //that would result in checking this module to
+                    //define itself again. If already in the process
+                    //of doing that, skip this work.
+                    this.defining = true;
+
+                    if (this.depCount < 1 && !this.defined) {
+                        if (isFunction(factory)) {
+                            //If there is an error listener, favor passing
+                            //to that instead of throwing an error. However,
+                            //only do it for define()'d  modules. require
+                            //errbacks should not be called for failures in
+                            //their callbacks (#699). However if a global
+                            //onError is set, use that.
+                            if ((this.events.error && this.map.isDefine) ||
+                                req.onError !== defaultOnError) {
+                                try {
+                                    exports = context.execCb(id, factory, depExports, exports);
+                                } catch (e) {
+                                    err = e;
+                                }
+                            } else {
+                                exports = context.execCb(id, factory, depExports, exports);
+                            }
+
+                            // Favor return value over exports. If node/cjs in play,
+                            // then will not have a return value anyway. Favor
+                            // module.exports assignment over exports object.
+                            if (this.map.isDefine && exports === undefined) {
+                                cjsModule = this.module;
+                                if (cjsModule) {
+                                    exports = cjsModule.exports;
+                                } else if (this.usingExports) {
+                                    //exports already set the defined value.
+                                    exports = this.exports;
+                                }
+                            }
+
+                            if (err) {
+                                err.requireMap = this.map;
+                                err.requireModules = this.map.isDefine ? [this.map.id] : null;
+                                err.requireType = this.map.isDefine ? 'define' : 'require';
+                                return onError((this.error = err));
+                            }
+
+                        } else {
+                            //Just a literal value
+                            exports = factory;
+                        }
+
+                        this.exports = exports;
+
+                        if (this.map.isDefine && !this.ignore) {
+                            defined[id] = exports;
+
+                            if (req.onResourceLoad) {
+                                var resLoadMaps = [];
+                                each(this.depMaps, function (depMap) {
+                                    resLoadMaps.push(depMap.normalizedMap || depMap);
+                                });
+                                req.onResourceLoad(context, this.map, resLoadMaps);
+                            }
+                        }
+
+                        //Clean up
+                        cleanRegistry(id);
+
+                        this.defined = true;
+                    }
+
+                    //Finished the define stage. Allow calling check again
+                    //to allow define notifications below in the case of a
+                    //cycle.
+                    this.defining = false;
+
+                    if (this.defined && !this.defineEmitted) {
+                        this.defineEmitted = true;
+                        this.emit('defined', this.exports);
+                        this.defineEmitComplete = true;
+                    }
+
+                }
+            },
+
+            callPlugin: function () {
+                var map = this.map,
+                    id = map.id,
+                    //Map already normalized the prefix.
+                    pluginMap = makeModuleMap(map.prefix);
+
+                //Mark this as a dependency for this plugin, so it
+                //can be traced for cycles.
+                this.depMaps.push(pluginMap);
+
+                on(pluginMap, 'defined', bind(this, function (plugin) {
+                    var load, normalizedMap, normalizedMod,
+                        bundleId = getOwn(bundlesMap, this.map.id),
+                        name = this.map.name,
+                        parentName = this.map.parentMap ? this.map.parentMap.name : null,
+                        localRequire = context.makeRequire(map.parentMap, {
+                            enableBuildCallback: true
+                        });
+
+                    //If current map is not normalized, wait for that
+                    //normalized name to load instead of continuing.
+                    if (this.map.unnormalized) {
+                        //Normalize the ID if the plugin allows it.
+                        if (plugin.normalize) {
+                            name = plugin.normalize(name, function (name) {
+                                return normalize(name, parentName, true);
+                            }) || '';
+                        }
+
+                        //prefix and name should already be normalized, no need
+                        //for applying map config again either.
+                        normalizedMap = makeModuleMap(map.prefix + '!' + name,
+                                                      this.map.parentMap,
+                                                      true);
+                        on(normalizedMap,
+                            'defined', bind(this, function (value) {
+                                this.map.normalizedMap = normalizedMap;
+                                this.init([], function () { return value; }, null, {
+                                    enabled: true,
+                                    ignore: true
+                                });
+                            }));
+
+                        normalizedMod = getOwn(registry, normalizedMap.id);
+                        if (normalizedMod) {
+                            //Mark this as a dependency for this plugin, so it
+                            //can be traced for cycles.
+                            this.depMaps.push(normalizedMap);
+
+                            if (this.events.error) {
+                                normalizedMod.on('error', bind(this, function (err) {
+                                    this.emit('error', err);
+                                }));
+                            }
+                            normalizedMod.enable();
+                        }
+
+                        return;
+                    }
+
+                    //If a paths config, then just load that file instead to
+                    //resolve the plugin, as it is built into that paths layer.
+                    if (bundleId) {
+                        this.map.url = context.nameToUrl(bundleId);
+                        this.load();
+                        return;
+                    }
+
+                    load = bind(this, function (value) {
+                        this.init([], function () { return value; }, null, {
+                            enabled: true
+                        });
+                    });
+
+                    load.error = bind(this, function (err) {
+                        this.inited = true;
+                        this.error = err;
+                        err.requireModules = [id];
+
+                        //Remove temp unnormalized modules for this module,
+                        //since they will never be resolved otherwise now.
+                        eachProp(registry, function (mod) {
+                            if (mod.map.id.indexOf(id + '_unnormalized') === 0) {
+                                cleanRegistry(mod.map.id);
+                            }
+                        });
+
+                        onError(err);
+                    });
+
+                    //Allow plugins to load other code without having to know the
+                    //context or how to 'complete' the load.
+                    load.fromText = bind(this, function (text, textAlt) {
+                        /*jslint evil: true */
+                        var moduleName = map.name,
+                            moduleMap = makeModuleMap(moduleName),
+                            hasInteractive = useInteractive;
+
+                        //As of 2.1.0, support just passing the text, to reinforce
+                        //fromText only being called once per resource. Still
+                        //support old style of passing moduleName but discard
+                        //that moduleName in favor of the internal ref.
+                        if (textAlt) {
+                            text = textAlt;
+                        }
+
+                        //Turn off interactive script matching for IE for any define
+                        //calls in the text, then turn it back on at the end.
+                        if (hasInteractive) {
+                            useInteractive = false;
+                        }
+
+                        //Prime the system by creating a module instance for
+                        //it.
+                        getModule(moduleMap);
+
+                        //Transfer any config to this other module.
+                        if (hasProp(config.config, id)) {
+                            config.config[moduleName] = config.config[id];
+                        }
+
+                        try {
+                            req.exec(text);
+                        } catch (e) {
+                            return onError(makeError('fromtexteval',
+                                             'fromText eval for ' + id +
+                                            ' failed: ' + e,
+                                             e,
+                                             [id]));
+                        }
+
+                        if (hasInteractive) {
+                            useInteractive = true;
+                        }
+
+                        //Mark this as a dependency for the plugin
+                        //resource
+                        this.depMaps.push(moduleMap);
+
+                        //Support anonymous modules.
+                        context.completeLoad(moduleName);
+
+                        //Bind the value of that module to the value for this
+                        //resource ID.
+                        localRequire([moduleName], load);
+                    });
+
+                    //Use parentName here since the plugin's name is not reliable,
+                    //could be some weird string with no path that actually wants to
+                    //reference the parentName's path.
+                    plugin.load(map.name, localRequire, load, config);
+                }));
+
+                context.enable(pluginMap, this);
+                this.pluginMaps[pluginMap.id] = pluginMap;
+            },
+
+            enable: function () {
+                enabledRegistry[this.map.id] = this;
+                this.enabled = true;
+
+                //Set flag mentioning that the module is enabling,
+                //so that immediate calls to the defined callbacks
+                //for dependencies do not trigger inadvertent load
+                //with the depCount still being zero.
+                this.enabling = true;
+
+                //Enable each dependency
+                each(this.depMaps, bind(this, function (depMap, i) {
+                    var id, mod, handler;
+
+                    if (typeof depMap === 'string') {
+                        //Dependency needs to be converted to a depMap
+                        //and wired up to this module.
+                        depMap = makeModuleMap(depMap,
+                                               (this.map.isDefine ? this.map : this.map.parentMap),
+                                               false,
+                                               !this.skipMap);
+                        this.depMaps[i] = depMap;
+
+                        handler = getOwn(handlers, depMap.id);
+
+                        if (handler) {
+                            this.depExports[i] = handler(this);
+                            return;
+                        }
+
+                        this.depCount += 1;
+
+                        on(depMap, 'defined', bind(this, function (depExports) {
+                            if (this.undefed) {
+                                return;
+                            }
+                            this.defineDep(i, depExports);
+                            this.check();
+                        }));
+
+                        if (this.errback) {
+                            on(depMap, 'error', bind(this, this.errback));
+                        } else if (this.events.error) {
+                            // No direct errback on this module, but something
+                            // else is listening for errors, so be sure to
+                            // propagate the error correctly.
+                            on(depMap, 'error', bind(this, function(err) {
+                                this.emit('error', err);
+                            }));
+                        }
+                    }
+
+                    id = depMap.id;
+                    mod = registry[id];
+
+                    //Skip special modules like 'require', 'exports', 'module'
+                    //Also, don't call enable if it is already enabled,
+                    //important in circular dependency cases.
+                    if (!hasProp(handlers, id) && mod && !mod.enabled) {
+                        context.enable(depMap, this);
+                    }
+                }));
+
+                //Enable each plugin that is used in
+                //a dependency
+                eachProp(this.pluginMaps, bind(this, function (pluginMap) {
+                    var mod = getOwn(registry, pluginMap.id);
+                    if (mod && !mod.enabled) {
+                        context.enable(pluginMap, this);
+                    }
+                }));
+
+                this.enabling = false;
+
+                this.check();
+            },
+
+            on: function (name, cb) {
+                var cbs = this.events[name];
+                if (!cbs) {
+                    cbs = this.events[name] = [];
+                }
+                cbs.push(cb);
+            },
+
+            emit: function (name, evt) {
+                each(this.events[name], function (cb) {
+                    cb(evt);
+                });
+                if (name === 'error') {
+                    //Now that the error handler was triggered, remove
+                    //the listeners, since this broken Module instance
+                    //can stay around for a while in the registry.
+                    delete this.events[name];
+                }
+            }
+        };
+
+        function callGetModule(args) {
+            //Skip modules already defined.
+            if (!hasProp(defined, args[0])) {
+                getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]);
+            }
+        }
+
+        function removeListener(node, func, name, ieName) {
+            //Favor detachEvent because of IE9
+            //issue, see attachEvent/addEventListener comment elsewhere
+            //in this file.
+            if (node.detachEvent && !isOpera) {
+                //Probably IE. If not it will throw an error, which will be
+                //useful to know.
+                if (ieName) {
+                    node.detachEvent(ieName, func);
+                }
+            } else {
+                node.removeEventListener(name, func, false);
+            }
+        }
+
+        /**
+         * Given an event from a script node, get the requirejs info from it,
+         * and then removes the event listeners on the node.
+         * @param {Event} evt
+         * @returns {Object}
+         */
+        function getScriptData(evt) {
+            //Using currentTarget instead of target for Firefox 2.0's sake. Not
+            //all old browsers will be supported, but this one was easy enough
+            //to support and still makes sense.
+            var node = evt.currentTarget || evt.srcElement;
+
+            //Remove the listeners once here.
+            removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange');
+            removeListener(node, context.onScriptError, 'error');
+
+            return {
+                node: node,
+                id: node && node.getAttribute('data-requiremodule')
+            };
+        }
+
+        function intakeDefines() {
+            var args;
+
+            //Any defined modules in the global queue, intake them now.
+            takeGlobalQueue();
+
+            //Make sure any remaining defQueue items get properly processed.
+            while (defQueue.length) {
+                args = defQueue.shift();
+                if (args[0] === null) {
+                    return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' +
+                        args[args.length - 1]));
+                } else {
+                    //args are id, deps, factory. Should be normalized by the
+                    //define() function.
+                    callGetModule(args);
+                }
+            }
+            context.defQueueMap = {};
+        }
+
+        context = {
+            config: config,
+            contextName: contextName,
+            registry: registry,
+            defined: defined,
+            urlFetched: urlFetched,
+            defQueue: defQueue,
+            defQueueMap: {},
+            Module: Module,
+            makeModuleMap: makeModuleMap,
+            nextTick: req.nextTick,
+            onError: onError,
+
+            /**
+             * Set a configuration for the context.
+             * @param {Object} cfg config object to integrate.
+             */
+            configure: function (cfg) {
+                //Make sure the baseUrl ends in a slash.
+                if (cfg.baseUrl) {
+                    if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {
+                        cfg.baseUrl += '/';
+                    }
+                }
+
+                // Convert old style urlArgs string to a function.
+                if (typeof cfg.urlArgs === 'string') {
+                    var urlArgs = cfg.urlArgs;
+                    cfg.urlArgs = function(id, url) {
+                        return (url.indexOf('?') === -1 ? '?' : '&') + urlArgs;
+                    };
+                }
+
+                //Save off the paths since they require special processing,
+                //they are additive.
+                var shim = config.shim,
+                    objs = {
+                        paths: true,
+                        bundles: true,
+                        config: true,
+                        map: true
+                    };
+
+                eachProp(cfg, function (value, prop) {
+                    if (objs[prop]) {
+                        if (!config[prop]) {
+                            config[prop] = {};
+                        }
+                        mixin(config[prop], value, true, true);
+                    } else {
+                        config[prop] = value;
+                    }
+                });
+
+                //Reverse map the bundles
+                if (cfg.bundles) {
+                    eachProp(cfg.bundles, function (value, prop) {
+                        each(value, function (v) {
+                            if (v !== prop) {
+                                bundlesMap[v] = prop;
+                            }
+                        });
+                    });
+                }
+
+                //Merge shim
+                if (cfg.shim) {
+                    eachProp(cfg.shim, function (value, id) {
+                        //Normalize the structure
+                        if (isArray(value)) {
+                            value = {
+                                deps: value
+                            };
+                        }
+                        if ((value.exports || value.init) && !value.exportsFn) {
+                            value.exportsFn = context.makeShimExports(value);
+                        }
+                        shim[id] = value;
+                    });
+                    config.shim = shim;
+                }
+
+                //Adjust packages if necessary.
+                if (cfg.packages) {
+                    each(cfg.packages, function (pkgObj) {
+                        var location, name;
+
+                        pkgObj = typeof pkgObj === 'string' ? {name: pkgObj} : pkgObj;
+
+                        name = pkgObj.name;
+                        location = pkgObj.location;
+                        if (location) {
+                            config.paths[name] = pkgObj.location;
+                        }
+
+                        //Save pointer to main module ID for pkg name.
+                        //Remove leading dot in main, so main paths are normalized,
+                        //and remove any trailing .js, since different package
+                        //envs have different conventions: some use a module name,
+                        //some use a file name.
+                        config.pkgs[name] = pkgObj.name + '/' + (pkgObj.main || 'main')
+                                     .replace(currDirRegExp, '')
+                                     .replace(jsSuffixRegExp, '');
+                    });
+                }
+
+                //If there are any "waiting to execute" modules in the registry,
+                //update the maps for them, since their info, like URLs to load,
+                //may have changed.
+                eachProp(registry, function (mod, id) {
+                    //If module already has init called, since it is too
+                    //late to modify them, and ignore unnormalized ones
+                    //since they are transient.
+                    if (!mod.inited && !mod.map.unnormalized) {
+                        mod.map = makeModuleMap(id, null, true);
+                    }
+                });
+
+                //If a deps array or a config callback is specified, then call
+                //require with those args. This is useful when require is defined as a
+                //config object before require.js is loaded.
+                if (cfg.deps || cfg.callback) {
+                    context.require(cfg.deps || [], cfg.callback);
+                }
+            },
+
+            makeShimExports: function (value) {
+                function fn() {
+                    var ret;
+                    if (value.init) {
+                        ret = value.init.apply(global, arguments);
+                    }
+                    return ret || (value.exports && getGlobal(value.exports));
+                }
+                return fn;
+            },
+
+            makeRequire: function (relMap, options) {
+                options = options || {};
+
+                function localRequire(deps, callback, errback) {
+                    var id, map, requireMod;
+
+                    if (options.enableBuildCallback && callback && isFunction(callback)) {
+                        callback.__requireJsBuild = true;
+                    }
+
+                    if (typeof deps === 'string') {
+                        if (isFunction(callback)) {
+                            //Invalid call
+                            return onError(makeError('requireargs', 'Invalid require call'), errback);
+                        }
+
+                        //If require|exports|module are requested, get the
+                        //value for them from the special handlers. Caveat:
+                        //this only works while module is being defined.
+                        if (relMap && hasProp(handlers, deps)) {
+                            return handlers[deps](registry[relMap.id]);
+                        }
+
+                        //Synchronous access to one module. If require.get is
+                        //available (as in the Node adapter), prefer that.
+                        if (req.get) {
+                            return req.get(context, deps, relMap, localRequire);
+                        }
+
+                        //Normalize module name, if it contains . or ..
+                        map = makeModuleMap(deps, relMap, false, true);
+                        id = map.id;
+
+                        if (!hasProp(defined, id)) {
+                            return onError(makeError('notloaded', 'Module name "' +
+                                        id +
+                                        '" has not been loaded yet for context: ' +
+                                        contextName +
+                                        (relMap ? '' : '. Use require([])')));
+                        }
+                        return defined[id];
+                    }
+
+                    //Grab defines waiting in the global queue.
+                    intakeDefines();
+
+                    //Mark all the dependencies as needing to be loaded.
+                    context.nextTick(function () {
+                        //Some defines could have been added since the
+                        //require call, collect them.
+                        intakeDefines();
+
+                        requireMod = getModule(makeModuleMap(null, relMap));
+
+                        //Store if map config should be applied to this require
+                        //call for dependencies.
+                        requireMod.skipMap = options.skipMap;
+
+                        requireMod.init(deps, callback, errback, {
+                            enabled: true
+                        });
+
+                        checkLoaded();
+                    });
+
+                    return localRequire;
+                }
+
+                mixin(localRequire, {
+                    isBrowser: isBrowser,
+
+                    /**
+                     * Converts a module name + .extension into an URL path.
+                     * *Requires* the use of a module name. It does not support using
+                     * plain URLs like nameToUrl.
+                     */
+                    toUrl: function (moduleNamePlusExt) {
+                        var ext,
+                            index = moduleNamePlusExt.lastIndexOf('.'),
+                            segment = moduleNamePlusExt.split('/')[0],
+                            isRelative = segment === '.' || segment === '..';
+
+                        //Have a file extension alias, and it is not the
+                        //dots from a relative path.
+                        if (index !== -1 && (!isRelative || index > 1)) {
+                            ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length);
+                            moduleNamePlusExt = moduleNamePlusExt.substring(0, index);
+                        }
+
+                        return context.nameToUrl(normalize(moduleNamePlusExt,
+                                                relMap && relMap.id, true), ext,  true);
+                    },
+
+                    defined: function (id) {
+                        return hasProp(defined, makeModuleMap(id, relMap, false, true).id);
+                    },
+
+                    specified: function (id) {
+                        id = makeModuleMap(id, relMap, false, true).id;
+                        return hasProp(defined, id) || hasProp(registry, id);
+                    }
+                });
+
+                //Only allow undef on top level require calls
+                if (!relMap) {
+                    localRequire.undef = function (id) {
+                        //Bind any waiting define() calls to this context,
+                        //fix for #408
+                        takeGlobalQueue();
+
+                        var map = makeModuleMap(id, relMap, true),
+                            mod = getOwn(registry, id);
+
+                        mod.undefed = true;
+                        removeScript(id);
+
+                        delete defined[id];
+                        delete urlFetched[map.url];
+                        delete undefEvents[id];
+
+                        //Clean queued defines too. Go backwards
+                        //in array so that the splices do not
+                        //mess up the iteration.
+                        eachReverse(defQueue, function(args, i) {
+                            if (args[0] === id) {
+                                defQueue.splice(i, 1);
+                            }
+                        });
+                        delete context.defQueueMap[id];
+
+                        if (mod) {
+                            //Hold on to listeners in case the
+                            //module will be attempted to be reloaded
+                            //using a different config.
+                            if (mod.events.defined) {
+                                undefEvents[id] = mod.events;
+                            }
+
+                            cleanRegistry(id);
+                        }
+                    };
+                }
+
+                return localRequire;
+            },
+
+            /**
+             * Called to enable a module if it is still in the registry
+             * awaiting enablement. A second arg, parent, the parent module,
+             * is passed in for context, when this method is overridden by
+             * the optimizer. Not shown here to keep code compact.
+             */
+            enable: function (depMap) {
+                var mod = getOwn(registry, depMap.id);
+                if (mod) {
+                    getModule(depMap).enable();
+                }
+            },
+
+            /**
+             * Internal method used by environment adapters to complete a load event.
+             * A load event could be a script load or just a load pass from a synchronous
+             * load call.
+             * @param {String} moduleName the name of the module to potentially complete.
+             */
+            completeLoad: function (moduleName) {
+                var found, args, mod,
+                    shim = getOwn(config.shim, moduleName) || {},
+                    shExports = shim.exports;
+
+                takeGlobalQueue();
+
+                while (defQueue.length) {
+                    args = defQueue.shift();
+                    if (args[0] === null) {
+                        args[0] = moduleName;
+                        //If already found an anonymous module and bound it
+                        //to this name, then this is some other anon module
+                        //waiting for its completeLoad to fire.
+                        if (found) {
+                            break;
+                        }
+                        found = true;
+                    } else if (args[0] === moduleName) {
+                        //Found matching define call for this script!
+                        found = true;
+                    }
+
+                    callGetModule(args);
+                }
+                context.defQueueMap = {};
+
+                //Do this after the cycle of callGetModule in case the result
+                //of those calls/init calls changes the registry.
+                mod = getOwn(registry, moduleName);
+
+                if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) {
+                    if (config.enforceDefine && (!shExports || !getGlobal(shExports))) {
+                        if (hasPathFallback(moduleName)) {
+                            return;
+                        } else {
+                            return onError(makeError('nodefine',
+                                             'No define call for ' + moduleName,
+                                             null,
+                                             [moduleName]));
+                        }
+                    } else {
+                        //A script that does not call define(), so just simulate
+                        //the call for it.
+                        callGetModule([moduleName, (shim.deps || []), shim.exportsFn]);
+                    }
+                }
+
+                checkLoaded();
+            },
+
+            /**
+             * Converts a module name to a file path. Supports cases where
+             * moduleName may actually be just an URL.
+             * Note that it **does not** call normalize on the moduleName,
+             * it is assumed to have already been normalized. This is an
+             * internal API, not a public one. Use toUrl for the public API.
+             */
+            nameToUrl: function (moduleName, ext, skipExt) {
+                var paths, syms, i, parentModule, url,
+                    parentPath, bundleId,
+                    pkgMain = getOwn(config.pkgs, moduleName);
+
+                if (pkgMain) {
+                    moduleName = pkgMain;
+                }
+
+                bundleId = getOwn(bundlesMap, moduleName);
+
+                if (bundleId) {
+                    return context.nameToUrl(bundleId, ext, skipExt);
+                }
+
+                //If a colon is in the URL, it indicates a protocol is used and it is just
+                //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)
+                //or ends with .js, then assume the user meant to use an url and not a module id.
+                //The slash is important for protocol-less URLs as well as full paths.
+                if (req.jsExtRegExp.test(moduleName)) {
+                    //Just a plain path, not module name lookup, so just return it.
+                    //Add extension if it is included. This is a bit wonky, only non-.js things pass
+                    //an extension, this method probably needs to be reworked.
+                    url = moduleName + (ext || '');
+                } else {
+                    //A module that needs to be converted to a path.
+                    paths = config.paths;
+
+                    syms = moduleName.split('/');
+                    //For each module name segment, see if there is a path
+                    //registered for it. Start with most specific name
+                    //and work up from it.
+                    for (i = syms.length; i > 0; i -= 1) {
+                        parentModule = syms.slice(0, i).join('/');
+
+                        parentPath = getOwn(paths, parentModule);
+                        if (parentPath) {
+                            //If an array, it means there are a few choices,
+                            //Choose the one that is desired
+                            if (isArray(parentPath)) {
+                                parentPath = parentPath[0];
+                            }
+                            syms.splice(0, i, parentPath);
+                            break;
+                        }
+                    }
+
+                    //Join the path parts together, then figure out if baseUrl is needed.
+                    url = syms.join('/');
+                    url += (ext || (/^data\:|^blob\:|\?/.test(url) || skipExt ? '' : '.js'));
+                    url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url;
+                }
+
+                return config.urlArgs && !/^blob\:/.test(url) ?
+                       url + config.urlArgs(moduleName, url) : url;
+            },
+
+            //Delegates to req.load. Broken out as a separate function to
+            //allow overriding in the optimizer.
+            load: function (id, url) {
+                req.load(context, id, url);
+            },
+
+            /**
+             * Executes a module callback function. Broken out as a separate function
+             * solely to allow the build system to sequence the files in the built
+             * layer in the right sequence.
+             *
+             * @private
+             */
+            execCb: function (name, callback, args, exports) {
+                return callback.apply(exports, args);
+            },
+
+            /**
+             * callback for script loads, used to check status of loading.
+             *
+             * @param {Event} evt the event from the browser for the script
+             * that was loaded.
+             */
+            onScriptLoad: function (evt) {
+                //Using currentTarget instead of target for Firefox 2.0's sake. Not
+                //all old browsers will be supported, but this one was easy enough
+                //to support and still makes sense.
+                if (evt.type === 'load' ||
+                        (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) {
+                    //Reset interactive script so a script node is not held onto for
+                    //to long.
+                    interactiveScript = null;
+
+                    //Pull out the name of the module and the context.
+                    var data = getScriptData(evt);
+                    context.completeLoad(data.id);
+                }
+            },
+
+            /**
+             * Callback for script errors.
+             */
+            onScriptError: function (evt) {
+                var data = getScriptData(evt);
+                if (!hasPathFallback(data.id)) {
+                    var parents = [];
+                    eachProp(registry, function(value, key) {
+                        if (key.indexOf('_@r') !== 0) {
+                            each(value.depMaps, function(depMap) {
+                                if (depMap.id === data.id) {
+                                    parents.push(key);
+                                    return true;
+                                }
+                            });
+                        }
+                    });
+                    return onError(makeError('scripterror', 'Script error for "' + data.id +
+                                             (parents.length ?
+                                             '", needed by: ' + parents.join(', ') :
+                                             '"'), evt, [data.id]));
+                }
+            }
+        };
+
+        context.require = context.makeRequire();
+        return context;
+    }
+
+    /**
+     * Main entry point.
+     *
+     * If the only argument to require is a string, then the module that
+     * is represented by that string is fetched for the appropriate context.
+     *
+     * If the first argument is an array, then it will be treated as an array
+     * of dependency string names to fetch. An optional function callback can
+     * be specified to execute when all of those dependencies are available.
+     *
+     * Make a local req variable to help Caja compliance (it assumes things
+     * on a require that are not standardized), and to give a short
+     * name for minification/local scope use.
+     */
+    req = requirejs = function (deps, callback, errback, optional) {
+
+        //Find the right context, use default
+        var context, config,
+            contextName = defContextName;
+
+        // Determine if have config object in the call.
+        if (!isArray(deps) && typeof deps !== 'string') {
+            // deps is a config object
+            config = deps;
+            if (isArray(callback)) {
+                // Adjust args if there are dependencies
+                deps = callback;
+                callback = errback;
+                errback = optional;
+            } else {
+                deps = [];
+            }
+        }
+
+        if (config && config.context) {
+            contextName = config.context;
+        }
+
+        context = getOwn(contexts, contextName);
+        if (!context) {
+            context = contexts[contextName] = req.s.newContext(contextName);
+        }
+
+        if (config) {
+            context.configure(config);
+        }
+
+        return context.require(deps, callback, errback);
+    };
+
+    /**
+     * Support require.config() to make it easier to cooperate with other
+     * AMD loaders on globally agreed names.
+     */
+    req.config = function (config) {
+        return req(config);
+    };
+
+    /**
+     * Execute something after the current tick
+     * of the event loop. Override for other envs
+     * that have a better solution than setTimeout.
+     * @param  {Function} fn function to execute later.
+     */
+    req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {
+        setTimeout(fn, 4);
+    } : function (fn) { fn(); };
+
+    /**
+     * Export require as a global, but only if it does not already exist.
+     */
+    if (!require) {
+        require = req;
+    }
+
+    req.version = version;
+
+    //Used to filter out dependencies that are already paths.
+    req.jsExtRegExp = /^\/|:|\?|\.js$/;
+    req.isBrowser = isBrowser;
+    s = req.s = {
+        contexts: contexts,
+        newContext: newContext
+    };
+
+    //Create default context.
+    req({});
+
+    //Exports some context-sensitive methods on global require.
+    each([
+        'toUrl',
+        'undef',
+        'defined',
+        'specified'
+    ], function (prop) {
+        //Reference from contexts instead of early binding to default context,
+        //so that during builds, the latest instance of the default context
+        //with its config gets used.
+        req[prop] = function () {
+            var ctx = contexts[defContextName];
+            return ctx.require[prop].apply(ctx, arguments);
+        };
+    });
+
+    if (isBrowser) {
+        head = s.head = document.getElementsByTagName('head')[0];
+        //If BASE tag is in play, using appendChild is a problem for IE6.
+        //When that browser dies, this can be removed. Details in this jQuery bug:
+        //http://dev.jquery.com/ticket/2709
+        baseElement = document.getElementsByTagName('base')[0];
+        if (baseElement) {
+            head = s.head = baseElement.parentNode;
+        }
+    }
+
+    /**
+     * Any errors that require explicitly generates will be passed to this
+     * function. Intercept/override it if you want custom error handling.
+     * @param {Error} err the error object.
+     */
+    req.onError = defaultOnError;
+
+    /**
+     * Creates the node for the load command. Only used in browser envs.
+     */
+    req.createNode = function (config, moduleName, url) {
+        var node = config.xhtml ?
+                document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') :
+                document.createElement('script');
+        node.type = config.scriptType || 'text/javascript';
+        node.charset = 'utf-8';
+        node.async = true;
+        return node;
+    };
+
+    /**
+     * Does the request to load a module for the browser case.
+     * Make this a separate function to allow other environments
+     * to override it.
+     *
+     * @param {Object} context the require context to find state.
+     * @param {String} moduleName the name of the module.
+     * @param {Object} url the URL to the module.
+     */
+    req.load = function (context, moduleName, url) {
+        var config = (context && context.config) || {},
+            node;
+        if (isBrowser) {
+            //In the browser so use a script tag
+            node = req.createNode(config, moduleName, url);
+
+            node.setAttribute('data-requirecontext', context.contextName);
+            node.setAttribute('data-requiremodule', moduleName);
+
+            //Set up load listener. Test attachEvent first because IE9 has
+            //a subtle issue in its addEventListener and script onload firings
+            //that do not match the behavior of all other browsers with
+            //addEventListener support, which fire the onload event for a
+            //script right after the script execution. See:
+            //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution
+            //UNFORTUNATELY Opera implements attachEvent but does not follow the script
+            //script execution mode.
+            if (node.attachEvent &&
+                    //Check if node.attachEvent is artificially added by custom script or
+                    //natively supported by browser
+                    //read https://github.com/requirejs/requirejs/issues/187
+                    //if we can NOT find [native code] then it must NOT natively supported.
+                    //in IE8, node.attachEvent does not have toString()
+                    //Note the test for "[native code" with no closing brace, see:
+                    //https://github.com/requirejs/requirejs/issues/273
+                    !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) &&
+                    !isOpera) {
+                //Probably IE. IE (at least 6-8) do not fire
+                //script onload right after executing the script, so
+                //we cannot tie the anonymous define call to a name.
+                //However, IE reports the script as being in 'interactive'
+                //readyState at the time of the define call.
+                useInteractive = true;
+
+                node.attachEvent('onreadystatechange', context.onScriptLoad);
+                //It would be great to add an error handler here to catch
+                //404s in IE9+. However, onreadystatechange will fire before
+                //the error handler, so that does not help. If addEventListener
+                //is used, then IE will fire error before load, but we cannot
+                //use that pathway given the connect.microsoft.com issue
+                //mentioned above about not doing the 'script execute,
+                //then fire the script load event listener before execute
+                //next script' that other browsers do.
+                //Best hope: IE10 fixes the issues,
+                //and then destroys all installs of IE 6-9.
+                //node.attachEvent('onerror', context.onScriptError);
+            } else {
+                node.addEventListener('load', context.onScriptLoad, false);
+                node.addEventListener('error', context.onScriptError, false);
+            }
+            node.src = url;
+
+            //Calling onNodeCreated after all properties on the node have been
+            //set, but before it is placed in the DOM.
+            if (config.onNodeCreated) {
+                config.onNodeCreated(node, config, moduleName, url);
+            }
+
+            //For some cache cases in IE 6-8, the script executes before the end
+            //of the appendChild execution, so to tie an anonymous define
+            //call to the module name (which is stored on the node), hold on
+            //to a reference to this node, but clear after the DOM insertion.
+            currentlyAddingScript = node;
+            if (baseElement) {
+                head.insertBefore(node, baseElement);
+            } else {
+                head.appendChild(node);
+            }
+            currentlyAddingScript = null;
+
+            return node;
+        } else if (isWebWorker) {
+            try {
+                //In a web worker, use importScripts. This is not a very
+                //efficient use of importScripts, importScripts will block until
+                //its script is downloaded and evaluated. However, if web workers
+                //are in play, the expectation is that a build has been done so
+                //that only one script needs to be loaded anyway. This may need
+                //to be reevaluated if other use cases become common.
+
+                // Post a task to the event loop to work around a bug in WebKit
+                // where the worker gets garbage-collected after calling
+                // importScripts(): https://webkit.org/b/153317
+                setTimeout(function() {}, 0);
+                importScripts(url);
+
+                //Account for anonymous modules
+                context.completeLoad(moduleName);
+            } catch (e) {
+                context.onError(makeError('importscripts',
+                                'importScripts failed for ' +
+                                    moduleName + ' at ' + url,
+                                e,
+                                [moduleName]));
+            }
+        }
+    };
+
+    function getInteractiveScript() {
+        if (interactiveScript && interactiveScript.readyState === 'interactive') {
+            return interactiveScript;
+        }
+
+        eachReverse(scripts(), function (script) {
+            if (script.readyState === 'interactive') {
+                return (interactiveScript = script);
+            }
+        });
+        return interactiveScript;
+    }
+
+    //Look for a data-main script attribute, which could also adjust the baseUrl.
+    if (isBrowser && !cfg.skipDataMain) {
+        //Figure out baseUrl. Get it from the script tag with require.js in it.
+        eachReverse(scripts(), function (script) {
+            //Set the 'head' where we can append children by
+            //using the script's parent.
+            if (!head) {
+                head = script.parentNode;
+            }
+
+            //Look for a data-main attribute to set main script for the page
+            //to load. If it is there, the path to data main becomes the
+            //baseUrl, if it is not already set.
+            dataMain = script.getAttribute('data-main');
+            if (dataMain) {
+                //Preserve dataMain in case it is a path (i.e. contains '?')
+                mainScript = dataMain;
+
+                //Set final baseUrl if there is not already an explicit one,
+                //but only do so if the data-main value is not a loader plugin
+                //module ID.
+                if (!cfg.baseUrl && mainScript.indexOf('!') === -1) {
+                    //Pull off the directory of data-main for use as the
+                    //baseUrl.
+                    src = mainScript.split('/');
+                    mainScript = src.pop();
+                    subPath = src.length ? src.join('/')  + '/' : './';
+
+                    cfg.baseUrl = subPath;
+                }
+
+                //Strip off any trailing .js since mainScript is now
+                //like a module name.
+                mainScript = mainScript.replace(jsSuffixRegExp, '');
+
+                //If mainScript is still a path, fall back to dataMain
+                if (req.jsExtRegExp.test(mainScript)) {
+                    mainScript = dataMain;
+                }
+
+                //Put the data-main script in the files to load.
+                cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [mainScript];
+
+                return true;
+            }
+        });
+    }
+
+    /**
+     * The function that handles definitions of modules. Differs from
+     * require() in that a string for the module should be the first argument,
+     * and the function to execute after dependencies are loaded should
+     * return a value to define the module corresponding to the first argument's
+     * name.
+     */
+    define = function (name, deps, callback) {
+        var node, context;
+
+        //Allow for anonymous modules
+        if (typeof name !== 'string') {
+            //Adjust args appropriately
+            callback = deps;
+            deps = name;
+            name = null;
+        }
+
+        //This module may not have dependencies
+        if (!isArray(deps)) {
+            callback = deps;
+            deps = null;
+        }
+
+        //If no name, and callback is a function, then figure out if it a
+        //CommonJS thing with dependencies.
+        if (!deps && isFunction(callback)) {
+            deps = [];
+            //Remove comments from the callback string,
+            //look for require calls, and pull them into the dependencies,
+            //but only if there are function args.
+            if (callback.length) {
+                callback
+                    .toString()
+                    .replace(commentRegExp, commentReplace)
+                    .replace(cjsRequireRegExp, function (match, dep) {
+                        deps.push(dep);
+                    });
+
+                //May be a CommonJS thing even without require calls, but still
+                //could use exports, and module. Avoid doing exports and module
+                //work though if it just needs require.
+                //REQUIRES the function to expect the CommonJS variables in the
+                //order listed below.
+                deps = (callback.length === 1 ? ['require'] : ['require', 'exports', 'module']).concat(deps);
+            }
+        }
+
+        //If in IE 6-8 and hit an anonymous define() call, do the interactive
+        //work.
+        if (useInteractive) {
+            node = currentlyAddingScript || getInteractiveScript();
+            if (node) {
+                if (!name) {
+                    name = node.getAttribute('data-requiremodule');
+                }
+                context = contexts[node.getAttribute('data-requirecontext')];
+            }
+        }
+
+        //Always save off evaluating the def call until the script onload handler.
+        //This allows multiple modules to be in a file without prematurely
+        //tracing dependencies, and allows for anonymous module support,
+        //where the module name is not known until the script onload event
+        //occurs. If no context, use the global queue, and get it processed
+        //in the onscript load callback.
+        if (context) {
+            context.defQueue.push([name, deps, callback]);
+            context.defQueueMap[name] = true;
+        } else {
+            globalDefQueue.push([name, deps, callback]);
+        }
+    };
+
+    define.amd = {
+        jQuery: true
+    };
+
+    /**
+     * Executes the text. Normally just uses eval, but can be modified
+     * to use a better, environment-specific call. Only used for transpiling
+     * loader plugins, not for plain JS modules.
+     * @param {String} text the text to execute/evaluate.
+     */
+    req.exec = function (text) {
+        /*jslint evil: true */
+        return eval(text);
+    };
+
+    //Set up with config info.
+    req(cfg);
+}(this, (typeof setTimeout === 'undefined' ? undefined : setTimeout)));
diff --git a/src/main/webapp/static/js/paella/player/javascript/swfobject.js b/src/main/webapp/static/js/paella/player/javascript/swfobject.js
new file mode 100644
index 0000000000000000000000000000000000000000..8eafe9dd83f91b52c2decd532db81527bb98e488
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/javascript/swfobject.js
@@ -0,0 +1,4 @@
+/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
+	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
+*/
+var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/localization/paella_de.json b/src/main/webapp/static/js/paella/player/localization/paella_de.json
new file mode 100644
index 0000000000000000000000000000000000000000..c82f652158d8a32b1f5fd1fe754886136370e667
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/localization/paella_de.json
@@ -0,0 +1,59 @@
+{
+	"Your browser is not compatible with the required video codec": "Ihr Browser ist mit dem erforderlichen Videocodec nicht kompatibel",
+	"It seems that your browser is not HTML 5 compatible": "Ihr Browser ist anscheinend nicht HTML 5 kompatibel",
+	"The specified video identifier does not exist": "Der spezifizierte Video Identifikator existiert nicht",
+	"This video is not published": "Dieses Video ist nicht veröffentlicht",
+	"You are not authorized to view this resource": "Sie sind nicht autorisiert diese Ressource zu betrachten",
+	"You are not logged in": "Sie sind nicht eingeloggt",
+	"Continue anyway": "Dennoch fortfahren",
+	"1 second ago": "vor 1 Sekunde",
+	"1 minute ago": "vor 1 Minute",
+	"1 hour ago": "vor 1 Stunde",
+	"1 day ago": "vor 1 Tag",
+	"1 month ago": "vor 1 Monat",
+	"1 year ago": "vor 1 Jahr",
+	"{0} seconds ago": "vor {0} Sekunden",
+	"{0} minutes ago": "vor {0} Minuten",
+	"{0} hours ago": "vor {0} Stunden",
+	"{0} days ago": "vor {0} Tagen",
+	"{0} months ago": "vor {0} Monaten",
+	"{0} years ago": "vor {0} Jahren",
+	"Searching...": "Suchen...",
+	"Search in this recording": "In dieser Aufnahme suchen",
+	"Previous": "Vorheriges",
+	"Page:": "Seite:",
+	"Next": "Nächstes",
+	"Description": "Beschreibung",
+	"Videos in this series:": "Videos in dieser Serie:",
+	"Title:": "Titel:",
+	"Presenter:": "Vortragender:",
+	"Series:": "Serie:",
+	"Date:": "Datum:",
+	"Views:": "Ansichten:",
+	"Contributor:": "Mitarbeiter:",
+	"Subject:": "Thema:",
+	"Language:": "Sprache:",
+	"Description:": "Beschreibung:",
+	"Search": "Suche",
+	"Search Relevance:": "Relevante Suche:",
+	"Results for '{0}'": "Ergebnisse für '{0}'",
+	"Results for '{0}; (no actual results for '{1}' found)": "Ergebnisse für '{0}'; (aktuell keine Ergebnisse für '{1}' gefunden)",
+	"Comments": "Kommentare",
+	"Publish": "Veröffentlichen",
+	"Publish at {0}": "Veröffentlichen bei {0}",
+	"Reply": "Antworten",
+	"Results {0}-{1} of {2}": "Ergebnisse {0}-{1} von {2}",
+	"Results {0}-{1} of {2} for \"{3}\"": "Ergebnisse {0}-{1} von {2} für \"{3}\"",
+	"No recordings found": "Keine Aufnahmen gefunden",
+	"No recordings found: \"{0}\"": "Keine Aufnahmen gefunden: \"{0}\"",
+	"There are unsaved changes": "Es liegen ungespeicherte Veränderungen vor",
+	"Live streaming mode: This is a live video, so, some capabilities of the player are disabled": "Live Streaming Modus: Da dies ein Live Video ist, sind einige Funktionen des Players deaktiviert",
+	"You are using Firefox version, and some required video playback capabilities are not available until Firefox min_version. Please, update your browser and try again.": "Sie benutzen Firefox version, einige benötigte Funktionen zum Abspielen des Videos sind vor min_version nicht verfügbar. Bitte aktualisieren Sie Ihren Browser und versuchen Sie es erneut.",
+	"This video is not compatible with any codec installed in your system": "Dieses Video ist mit keinem Codec kompatibel, der auf Ihrem System installiert ist",
+	"Could not load the video": "Das Video konnte nicht geladen werden",
+	"x5_message": "Auf dieser Seite kann der Dienst X5gon eingebunden werden, um Empfehlungen für freie Bildungsressourcen zu erstellen.",
+	"x5_more_info": "Mehr erfahren",
+	"x5_accept": "Erlauben",
+	"x5_deny": "Ablehnen",
+	"x5_policy": "Cookie-Richtlinie"
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/localization/paella_en.json b/src/main/webapp/static/js/paella/player/localization/paella_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/localization/paella_en.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/localization/paella_es.json b/src/main/webapp/static/js/paella/player/localization/paella_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..e6af08a3c4413efe496a3715dd14b6bd3737f001
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/localization/paella_es.json
@@ -0,0 +1,101 @@
+{
+	"Your browser is not compatible with the required video codec": "Tu navegador no dispone de los codecs de vídeo necesarios.",
+	"It seems that your browser is not HTML 5 compatible": "Parece que tu navegador no es compatible con HTML 5. Puedes utilizar cualquiera de los siguientes navegadores:",
+	"The specified video identifier does not exist": "El vídeo solicitado no existe",
+	"This video is not published": "Este vídeo no está publicado",
+	"You are not authorized to view this resource": "No estás autorizado a ver este recurso",
+	"You are not logged in": "No estás identificado en el sistema",
+	"Continue anyway": "Continuar de todos modos",
+	"1 second ago": "hace 1 segundo",
+	"1 minute ago": "hace 1 minuto",
+	"1 hour ago": "hace 1 hora",
+	"1 day ago": "hace 1 dia",
+	"1 month ago": "hace 1 mes",
+	"1 year ago": "hace 1 año",
+	"{0} seconds ago": "hace {0} segundos",
+	"{0} minutes ago": "hace {0} minutos",
+	"{0} hours ago": "hace {0} horas",
+	"{0} days ago": "hace {0} dias",
+	"{0} months ago": "hace {0} meses",
+	"{0} years ago": "hace {0} años",
+	"Searching...": "Buscando...",
+	"Search in this recording": "Buscar en este video",
+	"Previous": "Anterior",
+	"Page:": "Página:",
+	"Next": "Siguiente",
+	"Description": "Descripción",
+	"Videos in this series:": "Videos en esta serie:",
+	"Title:": "Título:",
+	"Presenter:": "Ponente:",
+	"Series:": "Serie:",
+	"Date:": "Fecha:",
+	"Views:": "Visitas:",
+	"Contributor:": "Contribuyente:",
+	"Subject:": "Asignatura:",
+	"Language:": "Idioma:",
+	"Description:": "Descripción:",
+	"Search": "Busqueda",
+	"Search Relevance:": "Relevancia:",
+	"Results for '{0}'": "Resultados para '{0}'",
+	"Results for '{0}; (no actual results for '{1}' found)": "No se encontraron resultados para '{1}'. Mostrando resultador para '{0}'",
+	"Comments": "Comentarios",
+	"Publish": "Publicar",
+	"Publish at {0}": "Publicar en {0}",
+	"Reply": "Responder",
+	"Results {0}-{1} of {2}": "Resultados {0}-{1} de {2}",
+	"Results {0}-{1} of {2} for \"{3}\"": "Resultados {0}-{1} de {2} para \"{3}\"",
+	"No recordings found": "No se han encontrado videos",
+	"No recordings found: \"{0}\"": "No se han encontrado videos para: \"{0}\"",
+	"There are unsaved changes": "Hay cambios sin guardar",
+	"Live streaming mode: This is a live video, so, some capabilities of the player are disabled": "Emisión en directo: Este vídeo es una emisión en directo. Por tanto, algunas características del reproductor están desactivadas",
+	"You are using Firefox version, and some required video playback capabilities are not available until Firefox min_version. Please, update your browser and try again.": "Estás utilizando Firefox version, y algunas capacidades de vídeo necesarias no están disponibles hasta Firefox min_version. Por favor, actualiza tu navegador y prueba otra vez.",
+	"This video is not compatible with any codec installed in your system": "Este vídeo no es compatible con ningún codec instalado en su sistema",
+	"Could not load the video": "No se ha podido cargar el vídeo",
+	"Error! Captions format not supported.": "Error! El formato de los subtitulos no está soportado.",
+	"Trimming": "Ajuste de inicio y fin",
+	"Breaks": "Descansos",
+	"Break": "Descanso",
+	"Create a new break in the current position": "Añade un descanso en el instante actual",
+	"Delete selected break": "Borra el descanso seleccionado",
+	"Use this tool to create, delete and edit breaks. To create a break, select the time instant clicking the timeline's background and press 'create' button. Use this tab to edit the break text.": "Utiliza esta herramienta para crear, borrar y editar descansos. Para crear un descanso, selecciona el instante de tiempo haciendo clic en el fondo de la línea de tiempo, y pulsa el botón 'Crear'. Utiliza esta pestaña para editar el texto de los descansos",
+	"Subtitles": "Subtítulos",
+	"Search captions": "Buscar Subtítulos",
+	"None": "Ninguno",
+	"Show statistics": "Mostrar las estadísticas",
+	"Navigate by slides": "Navegar por las diapositivas",
+	"Go Fullscreen": "Ir a pantalla completa",
+	"Exit Fullscreen": "Salir de pantalla completa",
+	"Your browser does not support fullscreen mode": "Tu navegador no soporta la pantalla completa",
+	"Show help": "Mostrar ayuda",
+	"Paella version:": "Versión de paella:",
+	"This video is a live stream": "Este video es una emisión en directo",
+	"Presenter": "Presentador",
+	"Slide": "Diapositiva",
+	"Change video quality": "Cambiar la calidad del video",
+	"Play": "Reproducir",
+	"Pause": "Pausar",
+	"Video score": "Puntuación del vídeo",
+	"Not rated": "No puntuado",
+	"Vote": "Votar",
+	"Login to vote": "Inicia sesión para votar",
+	"Searching": "Realizando búsqueda",
+	"Sorry! No results found.": "Lo sentimos, No se encontraron resultados.",
+	"Enter editor mode": "Entrar en el editor",
+	"Share this video": "Comparte este video",
+	"Custom size:": "Tamaño personalizado:",
+	"Choose your embed size. Copy the text and paste it in your html page.": "Elija el tamaño del video a embeber. Copie el texto y péguelo en su página html.",
+	"Width:": "Ancho:",
+	"Height:": "Alto:",
+	"Change theme": "Cambiar el tema",
+	"You are trying to modify the transcriptions, but you are not Logged in!": "Has seleccionado editar las transcripciones, pero no estás identificado!",
+	"Continue editing the transcriptions anonymously": "Editar las transcripciones de forma anónima",
+	"Log in and edit the transcriptions": "Identificarse y editar las transcripciones",
+	"Under review": "Revisando",
+	"Change video layout": "Modificar el diseño del video",
+	"Volume": "Volumen",
+	"x5_message": "Este sitio web utiliza cookies con fines funcionales y analíticos. Además, utilizamos cookies para ofrecer servicios personalizados y receptivos y para mejorar el sitio. Esto se hace en colaboración con el proyecto X5GON.",
+	"x5_more_info": "Conozca más",
+	"x5_accept": "Permitir",
+	"x5_deny": "Declive",
+	"x5_policy": "Política de cookies"
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/localization/paella_eu.json b/src/main/webapp/static/js/paella/player/localization/paella_eu.json
new file mode 100644
index 0000000000000000000000000000000000000000..8856765ddfc7f75d609045e9b9348f55b7c8a7be
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/localization/paella_eu.json
@@ -0,0 +1,96 @@
+{
+	"Your browser is not compatible with the required video codec": "Zure nabigatzaileak ez du beharrezko bideo kodek-ik.",
+	"It seems that your browser is not HTML 5 compatible": "Badirudi zure nabigatzailea ez dela bateragarria HTML 5ekin. Nabigatzaile hauetako edozein erabil dezakezu:",
+	"The specified video identifier does not exist": "Eskatutako bideoa ez dago",
+	"This video is not published": "Bideo hau ez dago argitaratuta",
+	"You are not authorized to view this resource": "Ez daukazu baimenik baliabide hau ikusteko",
+	"You are not logged in": "Ez zaude sisteman identifikatuta",
+	"Continue anyway": "Jarraitu edonola ere",
+	"1 second ago": "duela 1 segundo",
+	"1 minute ago": "duela 1 minutu",
+	"1 hour ago": "duela 1 ordu",
+	"1 day ago": "duela 1 egun",
+	"1 month ago": "duela hilabete bat",
+	"1 year ago": "duela 1 urte",
+	"{0} seconds ago": "duela {0} segundo",
+	"{0} minutes ago": "duela {0} minutu",
+	"{0} hours ago": "duela {0} ordu",
+	"{0} days ago": "duela {0} egun",
+	"{0} months ago": "duela {0} hilabete",
+	"{0} years ago": "duela {0} urte",
+	"Searching...": "Bilatzen…",
+	"Search in this recording": "Bilatu bideo honetan",
+	"Previous": "Aurrekoa",
+	"Page:": "Orrialdea:",
+	"Next": "Hurrengoa",
+	"Description": "Deskribapena",
+	"Videos in this series:": "Bideoak sail honetan:",
+	"Title:": "Izenburua:",
+	"Presenter:": "Hizlaria:",
+	"Series:": "Saila:",
+	"Date:": "Data:",
+	"Views:": "Bisitak:",
+	"Contributor:": "Laguntzailea:",
+	"Subject:": "Irakasgaia:",
+	"Language:": "Hizkuntza:",
+	"Description:": "Deskribapena:",
+	"Search": "Bilaketa",
+	"Search Relevance:": "Garrantzia:",
+	"Results for '{0}'": "'{0}'-rentzako emaitzak",
+	"Results for '{0}; (no actual results for '{1}' found)": "Ez da emaitzarik aurkitu '{1}'-rentzat. '{0}'-rentzako emaitzak erakusten",
+	"Comments": "Comentarios",
+	"Publish": "Publicar",
+	"Publish at {0}": "Argitaratu {0}-en",
+	"Reply": "Responder",
+	"Results {0}-{1} of {2}": " {2}-ren {0}-{1} emaitzak",
+	"Results {0}-{1} of {2} for \"{3}\"": "\"{3}\"-rentzako {2}-ko {0}-{1} emaitzak ",
+	"No recordings found": "Ez da bideorik aurkitu",
+	"No recordings found: \"{0}\"": "Ez da bideorik aurkitu honentzat: \"{0}\"",
+	"There are unsaved changes": "Gorde gabeko aldaketak daude",
+	"Live streaming mode: This is a live video, so, some capabilities of the player are disabled": "Emisión en directo: Este vídeo es una emisión en directo. Por tanto, algunas características del reproductor están desactivadas",
+	"You are using Firefox version, and some required video playback capabilities are not available until Firefox min_version. Please, update your browser and try again.": "Firefox bertsioa erabiltzen ari zara, eta beharrezkoak diren zenbait bideo-gaitasun ez daude erabilgarri Firefoxen gutxieneko _ bertsiora arte. Mesedez, eguneratu zure nabigatzailea eta probatu berriz.",
+	"This video is not compatible with any codec installed in your system": "Bideo hau ez da bateragarria zure sisteman instalatutako ezein kodek-ekin",
+	"Could not load the video": "Ezin izan da bideoa kargatu",
+	"Error! Captions format not supported.": "Error! El formato de los subtitulos no está soportado.",
+	"Trimming": "Hasierako eta bukaerako doikuntza",
+	"Breaks": "Atsedenaldiak",
+	"Break": "Atsedenaldia",
+	"Create a new break in the current position": "Gehitu atsedenaldi bat oraintxe",
+	"Delete selected break": "Ezabatu hautatutako atsedenaldia",
+	"Use this tool to create, delete and edit breaks. To create a break, select the time instant clicking the timeline's background and press 'create' button. Use this tab to edit the break text.": "Erabili tresna hau atsedenaldiak sortu, ezabatu eta editatzeko. Atsedenaldi bat sortzeko, hautatu denbora istanta, denbora lerroaren atzealdean klik eginez, eta sakatu ‘sortu’ botoia. Erabili erlaitz hau atsedenaldien testua editatzeko",
+	"Subtitles": "Azpidatziak",
+	"Search captions": "Bilatu azpidatziak",
+	"None": "Batere ez",
+	"Show statistics": "Erakutsi estatistikak",
+	"Navigate by slides": "Nabigatu diapositibetan",
+	"Go Fullscreen": "Joan pantaila osora",
+	"Exit Fullscreen": "Atera pantaila osotik",
+	"Your browser does not support fullscreen mode": "Zure nabigatzaileak ez du eusten pantaila osoa",
+	"Show help": "Erakutsi laguntza",
+	"Paella version:": "Paella bertsioa:",
+	"This video is a live stream": "Bideo hau zuzeneko emanaldi bat da",
+	"Presenter": "Aurkezlea",
+	"Slide": "Diapositiba",
+	"Change video quality": "Aldatu bideoaren kalitatea",
+	"Play": "Erreproduzitu",
+	"Pause": "Gelditu",
+	"Video score": "Bideoaren puntuazioa",
+	"Not rated": "Puntuatu gabea",
+	"Vote": "Bozkatu",
+	"Login to vote": "Hasi saioa bozkatzeko",
+	"Searching": "Bilatzen",
+	"Sorry! No results found.": "Sentitzen dugu, ez da emaitzarik aurkitu.",
+	"Enter editor mode": "Entrar en el editor",
+	"Share this video": "Partekatu bideo hau",
+	"Custom size:": "Tamaina pertsonalizatua:",
+	"Choose your embed size. Copy the text and paste it in your html page.": "Hautatu xurgatu beharreko bideoaren tamaina. Kopiatu testua eta itsatsi zure html orrialdean.",
+	"Width:": "Zabalera:",
+	"Height:": "Altuera:",
+	"Change theme": "Aldatu gaia",
+	"You are trying to modify the transcriptions, but you are not Logged in!": "Transkripzioak editatu nahi dituzu, baina ez zaude identifikatuta!",
+	"Continue editing the transcriptions anonymously": "Editar las transcripciones de forma anónima",
+	"Log in and edit the transcriptions": "Identificarse y editar las transcripciones",
+	"Under review": "Berrikusten",
+	"Change video layout": "aldatu bideoaren diseinua",
+	"Volume": "Bolumena"
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/localization/paella_fr.json b/src/main/webapp/static/js/paella/player/localization/paella_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..42896828066e603ed1a1b81294679aef344a5bc7
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/localization/paella_fr.json
@@ -0,0 +1,99 @@
+{
+	"Your browser is not compatible with the required video codec": "Votre navigateur n'a pas les codecs vidéo nécessaires.",
+	"It seems that your browser is not HTML 5 compatible": "Votre navigateur ne semble pas supporter HTML 5. Vous pouvez utiliser l'un des navigateurs suivants",
+	"The specified video identifier does not exist": "La vidéo demandée n'existe pas.",
+	"This video is not published": "Cette vidéo n'est pas publiée.",
+	"You are not authorized to view this resource": "Vous n'avez pas le droit de voir cette ressource.",
+	"You are not logged in": "Vous n'êtes pas identifié dans le système.",
+	"Continue anyway": "Continuez quand même.",
+	"1 second ago": "Il y a une seconde.",
+	"1 minute ago": "Il y a 1 minute.",
+	"1 hour ago": "Il y a 1 heure",
+	"1 day ago": "Il y a un jour.",
+	"1 month ago": "Il y a un mois",
+	"1 year ago": "Il y a un an",
+	"{0} seconds ago": "Il y a {0} secondes.",
+	"{0} minutes ago": "Il y a {0} minutes.",
+	"{0} hours ago": "Il y a {0} heures.",
+	"{0} days ago": "Il y a {0} jours.",
+	"{0} months ago": "Il y a {0} mois.",
+	"{0} years ago": "Il y a {0} ans.",
+	"Searching...": "Chercher...",
+	"Search in this recording": "Chercher dans cette vidéo.",
+	"Previous": "Précédent.",
+	"Page": "Page",
+	"Next": "Suivant.",
+	"Description": "Description",
+	"Videos in this series": "Les vidéos de cette série",
+	"Title": "Titre",
+	"Presenter": "Présentateur.",
+	"Series": "Série",
+	"Date": "Date",
+	"Views": "Visites",
+	"Contributor": "Contributeur",
+	"Subject": "Sujet",
+	"Language": "Langue",
+	"Search": "Chercher.",
+	"Search Relevance": "Pertinence",
+	"Results for '{0}'": "Résultats pour'{0}'",
+	"Results for '{0}: (no actual results for '{1}' found)": "Aucun résultat n'a été trouvé pour '{1}'. Affichage du résultat pour '{0}'",
+	"Comments": "Commentaires.",
+	"Publish": "Publier.",
+	"Publish at {0}": "Publier dans {0}",
+	"Reply": "Répondez.",
+	"Results {0}-{1} of {2}": "Résultats {0}-{1} de {2}",
+	"Results {0}-{1} of {2} for \"{3}\"": "Résultats {0}-{1} de {2} pour \"{3}\"",
+	"No recordings found": "Aucune vidéo trouvée.",
+	"No recordings found: \"{0}\"": "Aucune vidéo n'a été trouvée pour \"{0}\"",
+	"There are unsaved changes": "Il y a des changements non sauvegarder.",
+	"Live streaming mode: This is a live video, so, some capabilities of the player are disabled": "Diffusion en direct : Ceci est une diffusion en direct certaines possibilités de votre lecteur ont été désactivées",
+	"You are using Firefox version, and some required video playback capabilities are not available until Firefox min_version. Please, update your browser and try again.": "Vous utilisez la version Firefox, et certaines capacit?s vidéo nécessaires ne sont pas disponibles avant la min_version de Firefox. Veuillez mettre à jour votre navigateur et réessayer.",
+	"This video is not compatible with any codec installed in your system": "Cette vidéo n'est compatible avec aucun codec installé sur votre système",
+	"Could not load the video": "La vidéo n'a pas pu être téléchargée.",
+	"Trimming": "Réglage du début et de la fin",
+	"Breaks": "Repose-toi.",
+	"Break": "Repose-toi.",
+	"Create a new break in the current position": "Ajoutez un peu de repos à l'instant présent.",
+	"Delete selected break": "Effacer le repos sélectionné.",
+	"Use this tool to create, delete and edit breaks. To create a break, select the time instant clicking the timeline's background and press 'create' button. Use this tab to edit the break text.": "Utilisez cet outil pour créer, supprimer et modifier des pauses. Pour créer une pause, sélectionnez l'instant en cliquant sur le bas de la ligne de temps, puis cliquez sur le bouton'Créer'. Utilisez cet onglet pour éditer le texte des pauses",
+	"Subtitles": "Sous-titres.",
+	"Search captions": "Recherche de sous-titres.",
+	"None": "Aucun.",
+	"Show statistics": "Afficher les statistiques.",
+	"Navigate by slides": "Naviguer dans les diapositives.",
+	"Go Fullscreen": "Aller en plein écran.",
+	"Exit Fullscreen": "Quitter plein écran.",
+	"Your browser does not support fullscreen mode": "Votre navigateur ne supporte pas le plein écran.",
+	"Show help": "Montrer de l'aide.",
+	"Paella version": "Version de Paella",
+	"This video is a live stream": "Cette vidéo est diffusée en direct.",
+	"Slide": "Diapositive",
+	"Change video quality": "Changer la qualité de la vidéo.",
+	"Play": "Joue.",
+	"Pause": "Pause.",
+	"Video score": "Note de la vidéo.",
+	"Not rated": "Pas noté.",
+	"Vote": "Votez.",
+	"Login to vote": "Connectez-vous pour voter.",
+	"Searching": "Je cherche.",
+	"Sorry! No results found.": "Désolé ! , aucun résultat trouvé.",
+	"Share this video": "Partagez cette vidéo.",
+	"Custom size": "Taille sur mesure",
+	"Choose your embed size. Copy the text and paste it in your html page.": "Choisissez la taille de la vidéo à intégrer. Copiez le texte et collez-le dans votre page html.",
+	"Width": "Largeur",
+	"Height": "Hauteur",
+	"Video loaded in {0} seconds": "Vidéo chargée en {0} secondes",
+	"Change theme": "Change de thème.",
+	"You are trying to modify the transcriptions, but you are not Logged in!": "Vous avez choisi d'éditer les transcriptions, mais vous n'êtes pas connecté !",
+	"Continue editing the transcriptions anonymously": "Modifier les transcriptions anonymement.",
+	"Log in and edit the transcriptions": "Identifiez-vous et éditez les transcriptions.",
+	"Under review": "Vérification.",
+	"Change video layout": "Modifier la mise en page de la vidéo.",
+	"Volume": "Volume.",
+	"Set playback rate": "Régler la vitesse de lecture",
+	"Rewind 10 seconds": "Reculer de 10 seconde",
+	"Forward 30 seconds": "Avancer de 30 seconde",
+	"Downloads": "Télécharger",
+	"Video file": "Fichier vidéo",
+	"Video zoom": "Zoom vidéo"
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/localization/paella_gl.json b/src/main/webapp/static/js/paella/player/localization/paella_gl.json
new file mode 100644
index 0000000000000000000000000000000000000000..ba94aeec4a479dee703516444a8099d1824b5cc5
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/localization/paella_gl.json
@@ -0,0 +1,96 @@
+{
+	"Your browser is not compatible with the required video codec": "O teu navegador non dispón dos códecs de vídeo necesarios.",
+	"It seems that your browser is not HTML 5 compatible": "Semella que o teu navegador non é compatible con HTML5. Podes usar un dos seguintes:",
+	"The specified video identifier does not exist": "O vídeo solicitado non existe",
+	"This video is not published": "Este vídeo non está publicado",
+	"You are not authorized to view this resource": "Non tes autorización para ver este recurso",
+	"You are not logged in": "Non estás identificado no sistema",
+	"Continue anyway": "Continuar de tódolos xeitos",
+	"1 second ago": "fai 1 segundo",
+	"1 minute ago": "fai 1 minuto",
+	"1 hour ago": "fai 1 hora",
+	"1 day ago": "fai 1 dia",
+	"1 month ago": "fai 1 mes",
+	"1 year ago": "fai 1 ano",
+	"{0} seconds ago": "fai {0} segundos",
+	"{0} minutes ago": "fai {0} minutos",
+	"{0} hours ago": "fai {0} horas",
+	"{0} days ago": "fai {0} dias",
+	"{0} months ago": "fai {0} meses",
+	"{0} years ago": "fai {0} anos",
+	"Searching...": "Pesquisando...",
+	"Search in this recording": "Pesquisar neste vídeo",
+	"Previous": "Anterior",
+	"Page:": "Páxina:",
+	"Next": "Seguinte",
+	"Description": "Descripción",
+	"Videos in this series:": "Videos nesta serie:",
+	"Title:": "Título:",
+	"Presenter:": "Poñente:",
+	"Series:": "Serie:",
+	"Date:": "Data:",
+	"Views:": "Visitas:",
+	"Contributor:": "Contribuínte:",
+	"Subject:": "Asignatura:",
+	"Language:": "Idioma:",
+	"Description:": "Descripción:",
+	"Search": "pesquisa",
+	"Search Relevance:": "Relevancia:",
+	"Results for '{0}'": "Resultados para '{0}'",
+	"Results for '{0}; (no actual results for '{1}' found)": "Non se encontraron resultados para '{1}'. Amosando resultados para '{0}'",
+	"Comments": "Comentarios",
+	"Publish": "Publicar",
+	"Publish at {0}": "Publicar en {0}",
+	"Reply": "Respostar",
+	"Results {0}-{1} of {2}": "Resultados {0}-{1} de {2}",
+	"Results {0}-{1} of {2} for \"{3}\"": "Resultados {0}-{1} de {2} para \"{3}\"",
+	"No recordings found": "NoN se atoparon videos",
+	"No recordings found: \"{0}\"": "Non se atoparon videos para: \"{0}\"",
+	"There are unsaved changes": "Hay cambios sen gardar",
+	"Live streaming mode: This is a live video, so, some capabilities of the player are disabled": "Emisión en directo: Este vídeo é una emisión en directo. Por tanto, algunas características do reproductor están desactivadas",
+	"You are using Firefox version, and some required video playback capabilities are not available until Firefox min_version. Please, update your browser and try again.": "Estás a utilizar Firefox versión e algunha das capacidades de vídeo necesaria non se atopa diponible ata Firefox versión. Por favor, actualiza o teu navegador e proba de novo.",
+	"This video is not compatible with any codec installed in your system": "Este vídeo non é compatible con ningún códec instalado no teu sistema",
+	"Could not load the video": "Non se pudo cargar o vídeo",
+	"Error! Captions format not supported.": "¡Erro! O formato dos subtítulos non é o soportado.",
+	"Trimming": "Axuste de inicio e fin",
+	"Breaks": "Descansos",
+	"Break": "Descanso",
+	"Create a new break in the current position": "Engade un descanso no instante actual",
+	"Delete selected break": "Borra o descanso seleccionado",
+	"Use this tool to create, delete and edit breaks. To create a break, select the time instant clicking the timeline's background and press 'create' button. Use this tab to edit the break text.": "Utiliza esta ferramenta para crear, borrar ou editar descansos. Para crear un descanso, selecciona o instante do tempo facendo clic no fondo da línea de tempo, e pulsa o botón 'Crear'. Utiliza esta pestana para editar o texto dos descansos",
+	"Subtitles": "Subtítulos",
+	"Search captions": "Atopar Subtítulos",
+	"None": "Ningún",
+	"Show statistics": "Amosar as estadísticas",
+	"Navigate by slides": "Navegar polas diapositivas",
+	"Go Fullscreen": "Ir a pantalla completa",
+	"Exit Fullscreen": "Sair de pantalla completa",
+	"Your browser does not support fullscreen mode": "Seu navegador non soporta a pantalla completa",
+	"Show help": "Mostrar axuda",
+	"Paella version:": "Versión de paella:",
+	"This video is a live stream": "Este video é unha emisión en directo",
+	"Presenter": "Presentador",
+	"Slide": "Diapositiva",
+	"Change video quality": "Cambiar a calidade do video",
+	"Play": "Reproducir",
+	"Pause": "Pausar",
+	"Video score": "Puntuación do vídeo",
+	"Not rated": "Non puntuado",
+	"Vote": "Votar",
+	"Login to vote": "Inicia sesión para votar",
+	"Searching": "Realizando búsqueda",
+	"Sorry! No results found.": "Sentímolo, Non se encontraron resultados.",
+	"Enter editor mode": "Entrar no editor",
+	"Share this video": "Comparte este video",
+	"Custom size:": "Tamaño personalizado:",
+	"Choose your embed size. Copy the text and paste it in your html page.": "Elixa o tamaño do video a embeber. Copie o texto e pégueo na sua página html.",
+	"Width:": "Ancho:",
+	"Height:": "Alto:",
+	"Change theme": "Cambiar o tema",
+	"You are trying to modify the transcriptions, but you are not Logged in!": "Has seleccionado editar as transcripciones, pero non estás identificado!",
+	"Continue editing the transcriptions anonymously": "Editar as transcripciones de forma anónima",
+	"Log in and edit the transcriptions": "Identificarse e editar as transcripciones",
+	"Under review": "Revisando",
+	"Change video layout": "Modificar o diseño do video",
+	"Volume": "Volumen"
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/localization/paella_ru.json b/src/main/webapp/static/js/paella/player/localization/paella_ru.json
new file mode 100644
index 0000000000000000000000000000000000000000..b05c400f1af5418ed345b2915b818c1374735737
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/localization/paella_ru.json
@@ -0,0 +1,103 @@
+{
+	"Your browser is not compatible with the required video codec": "Ваш браузер не поддерживает необходимого кодека.",
+	"It seems that your browser is not HTML 5 compatible": "Parece que tu navegador no es compatible con HTML 5. Puedes utilizar cualquiera de los siguientes navegadores:",
+	"The specified video identifier does not exist": "Видео с этим идентификатором не существует",
+	"This video is not published": "Это видео не опубликовано",
+	"You are not authorized to view this resource": "У вас нет прав на просмотр этого ресурса",
+	"You are not logged in": "Вы не авторизованы в системе",
+	"Continue anyway": "Продолжить всё равно",
+	"1 second ago": "1 секунду назад",
+	"1 minute ago": "1 минуту назад",
+	"1 hour ago": "1 час назад",
+	"1 day ago": "1 день назад",
+	"1 month ago": "1 месяц назад",
+	"1 year ago": "1 год назад",
+	"{0} seconds ago": "{0} секунд назад",
+	"{0} minutes ago": "{0} минут назад",
+	"{0} hours ago": "{0} часов назад",
+	"{0} days ago": "{0} дней назад",
+	"{0} months ago": "{0} месяцев назад",
+	"{0} years ago": "{0} лет назад",
+	"Searching...": "Ищем...",
+	"Search in this recording": "Искать в этой записи",
+	"Previous": "Предыдущий",
+	"Page:": "Страница:",
+	"Next": "Следующий",
+	"Description": "Описание",
+	"Videos in this series:": "Другие видео из этого раздела:",
+	"Title:": "Название:",
+	"Presenter:": "Выступающий:",
+	"Series:": "Разделы:",
+	"Date:": "Дата:",
+	"Views:": "Просмотры:",
+	"Contributor:": "Участник:",
+	"Subject:": "Предмет:",
+	"Language:": "Язык:",
+	"Description:": "Описание:",
+	"Search": "Поиск",
+	"Search Relevance:": "Актуальность поиска:",
+	"Results for '{0}'": "Результаты для '{0}'",
+	"Results for '{0}; (no actual results for '{1}' found)": "Не найдено ничего о '{1}'. Показаные результаты для '{0}'",
+	"Comments": "Комментарии",
+	"Publish": "Опубликовать",
+	"Publish at {0}": "Опубликовать в {0}",
+	"Reply": "Ответить",
+	"Results {0}-{1} of {2}": "Результаты {0}-{1} из {2}",
+	"Results {0}-{1} of {2} for \"{3}\"": "Результаты {0}-{1} из {2} для \"{3}\"",
+	"No recordings found": "Видеозаписей не найдено",
+	"No recordings found: \"{0}\"": "Видеозаписей на найдено: \"{0}\"",
+	"There are unsaved changes": "Есть несохранённые изменения",
+	"Live streaming mode: This is a live video, so, some capabilities of the player are disabled": "Прямое вещаение. Некоторые возможности проигрывателя недоступны.",
+	"You are using Firefox version, and some required video playback capabilities are not available until Firefox min_version. Please, update your browser and try again.": "Вы используете FIrefox version. Некоторые возможности по воспроизведению видео недоступны до версии Firefox min_version. Пожалуйста, обновите браузер и попробуйте снова.",
+	"This video is not compatible with any codec installed in your system": "Это виде не поддерживается ни одним из кодеков, установленных в вашей системе.",
+	"Could not load the video": "Невозможно загрузить видео",
+	"Error! Captions format not supported.": "Ошибка! Этот формат субтитров не поддерживается.",
+	"Trimming": "Обрезка",
+	"Breaks": "Разрывы",
+	"Break": "Разрыв",
+	"Create a new break in the current position": "Создать новый разрыв в текущей позиции",
+	"Delete selected break": "Удалить выбранный разрыв",
+	"Use this tool to create, delete and edit breaks. To create a break, select the time instant clicking the timeline's background and press 'create' button. Use this tab to edit the break text.": "Используйте этот инструмент для создания, удаления и редактирования разрывов. Для создания разрыва выберите момент времени на временной шкале с помощью мыши и нажмите кнопку 'создать'. Используйте эту вкладку для редактироавния текста разрыва",
+	"Subtitles": "Субтитры",
+	"Search captions": "Поиск в заголовках",
+	"None": "Ничего",
+	"Show statistics": "Показать статистика",
+	"Navigate by slides": "Навигация по слайдам",
+	"Go Fullscreen": "Перейти в полноэкранный режим",
+	"Exit Fullscreen": "Выйти из полноэкранного режима",
+	"Your browser does not support fullscreen mode": "Ваш браузер не поддерживает полноэкранный режим",
+	"Show help": "Показать инструкции по использованию",
+	"Paella version:": "Версия проигрывателя:",
+	"This video is a live stream": "Это видео - трансляция в реальном времени.",
+	"Presenter": "Выступающий",
+	"Slide": "Слайд",
+	"Change video quality": "Изменить качество видео",
+	"Log in": "Вход в систему",
+	"Play": "Воспроизведение",
+	"Pause": "Пауза",
+	"Video score": "Оценка видео",
+	"Not rated": "Не оценено",
+	"Vote": "Проголосовать",
+	"Login to vote": "Войдите в систему для голосования",
+	"Searching": "Проводим поиск",
+	"Sorry! No results found.": "Извините, результатов не найдено.",
+	"Share this video": "Поделиться этим видео",
+	"Custom size:": "Специальный размер:",
+	"Choose your embed size. Copy the text and paste it in your html page.": "Выберите размер для встраивания. Скопируйте текст и добавьте его в код вашей html страницы.",
+	"Width:": "Ширина:",
+	"Height:": "Высота:",
+	"Video loaded in {0} seconds": "Видео загружено за {0} секунд",
+	"Change theme": "Изменить тему оформления",
+	"You are trying to modify the transcriptions, but you are not Logged in!": "Вы пытаетесь изменить подписи, но не вошли в систему!",
+	"Continue editing the transcriptions anonymously": "Продолжить редактирование подписей анонимно.",
+	"Log in and edit the transcriptions": "Войдите в систему для изменения подписей",
+	"Under review": "В процессе рецензирования",
+	"Change video layout": "Изменить раскладку видео",
+	"Volume": "Громкость",
+	"Set playback rate": "Задать скорость воспроизведения",
+	"Rewind 10 seconds": "Перемотать назад на 10 секунд",
+	"Forward 30 seconds": "Перемотать вперёд на 30 секунд",
+	"Downloads": "Загрузки",
+	"Video file": "Видеофайл",
+	"Video zoom": "Увеличение видео"
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/css/bootstrap.min.css b/src/main/webapp/static/js/paella/player/resources/bootstrap/css/bootstrap.min.css
new file mode 100755
index 0000000000000000000000000000000000000000..4cf729e4342a51d8b300e8d43f2f78b0a6faf403
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/bootstrap/css/bootstrap.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/css/bootstrap.slate.min.css b/src/main/webapp/static/js/paella/player/resources/bootstrap/css/bootstrap.slate.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..d91207095cbdf8bc61fa33b8a1217ad113cd69b2
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/bootstrap/css/bootstrap.slate.min.css
@@ -0,0 +1,9 @@
+/*!
+ * Bootstrap v2.3.1
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:31px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:21px;color:#c8c8c8;}a{color:#fff;text-decoration:none}a:hover,a:focus{color:#fff;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:31px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:21px;font-weight:200;line-height:31.5px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#7a8288}a.muted:hover,a.muted:focus{color:#62686d}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10.5px 0;font-family:inherit;font-weight:bold;line-height:21px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#7a8288}h1,h2,h3{line-height:42px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9.5px;margin:21px 0 31.5px;border-bottom:1px solid #bbbfc2}ul,ol{padding:0;margin:0 0 10.5px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:21px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:21px}dt,dd{line-height:21px}dt{font-weight:bold}dd{margin-left:10.5px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:21px 0;border:0;border-top:1px solid #1c1e22;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #7a8288}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 21px;border-left:5px solid #bbbfc2}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:21px;color:#7a8288}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #bbbfc2;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:21px;font-style:normal;line-height:21px}code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;color:#3a3f44;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:13px;line-height:21px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:21px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 21px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:21px;line-height:42px;color:#3a3f44;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15.75px;color:#7a8288}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:21px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:21px;padding:4px 6px;margin-bottom:10.5px;font-size:14px;line-height:21px;color:#52575c;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:31px;*margin-top:4px;line-height:31px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#7a8288;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#7a8288}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#7a8288}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#7a8288}.radio,.checkbox{min-height:21px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#bbbfc2}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:20px 20px 21px;margin-top:21px;margin-bottom:21px;background-color:#202328;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#eee}.help-block{display:block;margin-bottom:10.5px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10.5px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:21px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:21px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#bbbfc2;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#d1eed1;border-color:#62c462}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10.5px}legend+.control-group{margin-top:21px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:21px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10.5px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:21px}.table th,.table td{padding:8px;line-height:21px;text-align:left;vertical-align:top;border-top:1px solid #1c1e22}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #1c1e22}.table .table{background-color:#272b30}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #1c1e22;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #1c1e22}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#2e3236}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#3a3f44}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#f3f3f3;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9.5px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:transparent;border-bottom:1px solid #1c1e22}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:21px;color:#7a8288;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#22262a;background-image:-moz-linear-gradient(top,#272b30,#1c1e22);background-image:-webkit-gradient(linear,0 0,0 100%,from(#272b30),to(#1c1e22));background-image:-webkit-linear-gradient(top,#272b30,#1c1e22);background-image:-o-linear-gradient(top,#272b30,#1c1e22);background-image:linear-gradient(to bottom,#272b30,#1c1e22);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff272b30',endColorstr='#ff1c1e22',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#22262a;background-image:-moz-linear-gradient(top,#272b30,#1c1e22);background-image:-webkit-gradient(linear,0 0,0 100%,from(#272b30),to(#1c1e22));background-image:-webkit-linear-gradient(top,#272b30,#1c1e22);background-image:-o-linear-gradient(top,#272b30,#1c1e22);background-image:linear-gradient(to bottom,#272b30,#1c1e22);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff272b30',endColorstr='#ff1c1e22',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#7a8288}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#0b0c0d;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#202328;border:1px solid #101214;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:21px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:21px;color:#3a3f44;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#3a3f44;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#3a3f44;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#bbbec2;*background-color:#bbbdc2;background-image:-moz-linear-gradient(top,#bbbfc2,#bbbdc2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#bbbfc2),to(#bbbdc2));background-image:-webkit-linear-gradient(top,#bbbfc2,#bbbdc2);background-image:-o-linear-gradient(top,#bbbfc2,#bbbdc2);background-image:linear-gradient(to bottom,#bbbfc2,#bbbdc2);background-repeat:repeat-x;border-color:#bbbdc2 #bbbdc2 #93969e;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbbbfc2',endColorstr='#ffbbbdc2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#bbbdc2;*background-color:#aeb0b6}.btn-primary:active,.btn-primary.active{background-color:#a0a3aa \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#41454a;*background-color:#272b30;background-image:-moz-linear-gradient(top,#52575c,#272b30);background-image:-webkit-gradient(linear,0 0,0 100%,from(#52575c),to(#272b30));background-image:-webkit-linear-gradient(top,#52575c,#272b30);background-image:-o-linear-gradient(top,#52575c,#272b30);background-image:linear-gradient(to bottom,#52575c,#272b30);background-repeat:repeat-x;border-color:#272b30 #272b30 #050506;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52575c',endColorstr='#ff272b30',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#272b30;*background-color:#1c1e22}.btn-inverse:active,.btn-inverse.active{background-color:#101214 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#fff;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#fff;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#3a3f44;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10.5px;margin-bottom:10.5px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#bbbdc2}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#272b30}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:21px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:21px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:21px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#bbbfc2}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:21px;color:#7a8288;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#fff}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9.5px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:21px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#bbbfc2 #bbbfc2 #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#52575c;cursor:default;background-color:#272b30;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#fff}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#fff;border-bottom-color:#fff}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#52575c;border-bottom-color:#52575c}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#7a8288;border-color:#7a8288}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#7a8288}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#bbbfc2 #ddd #bbbfc2 #bbbfc2}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#bbbfc2 #bbbfc2 #bbbfc2 #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#7a8288}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:21px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#32373c;background-image:-moz-linear-gradient(top,#3a3f44,#272b30);background-image:-webkit-gradient(linear,0 0,0 100%,from(#3a3f44),to(#272b30));background-image:-webkit-linear-gradient(top,#3a3f44,#272b30);background-image:-o-linear-gradient(top,#3a3f44,#272b30);background-image:linear-gradient(to bottom,#3a3f44,#272b30);background-repeat:repeat-x;border:1px solid #0c0d0e;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3a3f44',endColorstr='#ff272b30',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:9.5px 20px 9.5px;margin-left:-20px;font-size:20px;font-weight:200;color:#bbbfc2;text-shadow:0 1px 0 #3a3f44}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#c8c8c8}.navbar-link{color:#c8c8c8}.navbar-link:hover,.navbar-link:focus{color:#fff}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #3a3f44;border-left:1px solid #272b30}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:9.5px 15px 9.5px;color:#c8c8c8;text-decoration:none;text-shadow:0 1px 0 #3a3f44}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#fff;text-decoration:none;background-color:#3a3f44}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#fff;text-decoration:none;background-color:#272b30;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#272a2e;*background-color:#1c1e22;background-image:-moz-linear-gradient(top,#2e3236,#1c1e22);background-image:-webkit-gradient(linear,0 0,0 100%,from(#2e3236),to(#1c1e22));background-image:-webkit-linear-gradient(top,#2e3236,#1c1e22);background-image:-o-linear-gradient(top,#2e3236,#1c1e22);background-image:linear-gradient(to bottom,#2e3236,#1c1e22);background-repeat:repeat-x;border-color:#1c1e22 #1c1e22 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2e3236',endColorstr='#ff1c1e22',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#1c1e22;*background-color:#101214}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#050506 \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #3a3f44;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #3a3f44;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#272b30}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#c8c8c8;border-bottom-color:#c8c8c8}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1e2125;background-image:-moz-linear-gradient(top,#272b30,#101214);background-image:-webkit-gradient(linear,0 0,0 100%,from(#272b30),to(#101214));background-image:-webkit-linear-gradient(top,#272b30,#101214);background-image:-o-linear-gradient(top,#272b30,#101214);background-image:linear-gradient(to bottom,#272b30,#101214);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff272b30',endColorstr='#ff101214',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#7a8288;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#7a8288}.navbar-inverse .navbar-text{color:#7a8288}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#101214}.navbar-inverse .navbar-link{color:#7a8288}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#272b30;border-left-color:#101214}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#101214}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#7a8288;border-bottom-color:#7a8288}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#49515a;border-color:#101214;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#3a3f44;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#121417;*background-color:#050506;background-image:-moz-linear-gradient(top,#1c1e22,#050506);background-image:-webkit-gradient(linear,0 0,0 100%,from(#1c1e22),to(#050506));background-image:-webkit-linear-gradient(top,#1c1e22,#050506);background-image:-o-linear-gradient(top,#1c1e22,#050506);background-image:linear-gradient(to bottom,#1c1e22,#050506);background-repeat:repeat-x;border-color:#050506 #050506 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1c1e22',endColorstr='#ff050506',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#050506;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 21px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#7a8288}.pagination{margin:21px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:21px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#7a8288;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#7a8288;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:21px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#7a8288;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#3a3f44;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#3a3f44;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#3a3f44;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#3a3f44;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#3a3f44;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#3a3f44;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#41474c;border-bottom:1px solid #353a3e;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#3a3f44;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#3a3f44;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#3a3f44;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#3a3f44;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:21px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:21px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#fff;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#52575c}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#7a8288}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#3a3f44}.label-inverse[href],.badge-inverse[href]{background-color:#232628}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:21px;margin-bottom:21px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:21px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:21px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#272b30;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#3a3f44;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:21px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:31.5px;color:inherit;background-color:#202328;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:31.5px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}h1,h2,h3,h4,h5,h6{text-shadow:-1px -1px 0 rgba(0,0,0,0.3)}code,pre{text-shadow:none;background-color:#f7f7f7;border:1px solid #1c1e22}legend,.page-header{border-bottom:1px solid #1c1e22}hr{border-bottom:0}.navbar .navbar-inner{background-color:#3a3f44;background-image:-webkit-gradient(linear,0 0,0 100%,from(#52575c),color-stop(70%,#3a3f44),to(#3a3f44));background-image:-webkit-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:-moz-linear-gradient(top,#52575c,#3a3f44 70%,#3a3f44);background-image:-o-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52575c',endColorstr='#ff3a3f44',GradientType=0)}.navbar .brand{font-weight:bold;text-shadow:1px 1px 1px rgba(0,0,0,0.3);border-right:1px solid #2e3134}.navbar .navbar-text{padding:0 15px;font-weight:bold}.navbar .nav>li>a{text-shadow:1px 1px 1px rgba(0,0,0,0.3);border-right:1px solid rgba(0,0,0,0.2);border-left:1px solid rgba(255,255,255,0.1)}.navbar .nav>li>a:hover{background-color:#3a3f44;background-image:-moz-linear-gradient(280deg,#272b30,#3a3f44);background-image:-webkit-linear-gradient(280deg,#272b30,#3a3f44);background-image:-o-linear-gradient(280deg,#272b30,#3a3f44);background-image:linear-gradient(280deg,#272b30,#3a3f44);background-repeat:repeat-x;border-right:1px solid transparent;border-left:1px solid transparent}.navbar .nav>li.active>a,.navbar .nav>li.active>a:hover{color:#bbbfc2;background-color:#3a3f44;background-color:#43494f;background-image:-moz-linear-gradient(280deg,#30353b,#43494f);background-image:-webkit-linear-gradient(280deg,#30353b,#43494f);background-image:-o-linear-gradient(280deg,#30353b,#43494f);background-image:linear-gradient(280deg,#30353b,#43494f);background-repeat:repeat-x;border-right:1px solid #2e3134}.navbar .navbar-search .search-query{border:1px solid #2e3134}.navbar .btn,.navbar .btn-group{margin:4px 0}.navbar .divider-vertical{background-color:transparent;border-right:0}.navbar .dropdown-menu::after{border-bottom:6px solid #3a3f44}.navbar-inverse .navbar-inner{background-color:#151719;background-image:-webkit-gradient(linear,0 0,0 100%,from(#202328),color-stop(70%,#151719),to(#151719));background-image:-webkit-linear-gradient(#202328,#151719 70%,#151719);background-image:-moz-linear-gradient(top,#202328,#151719 70%,#151719);background-image:-o-linear-gradient(#202328,#151719 70%,#151719);background-image:linear-gradient(#202328,#151719 70%,#151719);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff202328',endColorstr='#ff151719',GradientType=0)}.navbar-inverse .nav li>a{background-color:transparent;background-image:none}.navbar-inverse .nav li>a:hover,.navbar-inverse .nav li.active>a,.navbar-inverse .nav li.active>a:hover{background-color:#1c1e22;background-image:-moz-linear-gradient(280deg,#101214,#1c1e22);background-image:-webkit-linear-gradient(280deg,#101214,#1c1e22);background-image:-o-linear-gradient(280deg,#101214,#1c1e22);background-image:linear-gradient(280deg,#101214,#1c1e22);background-repeat:repeat-x}@media(max-width:979px){.navbar .nav-collapse .nav li>a,.navbar .nav-collapse .nav li>a:hover,.navbar .nav-collapse .nav .active>a,.navbar .nav-collapse .nav .active>a:hover{color:#bbbfc2;background-color:transparent;background-image:none;border:1px solid transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.navbar .nav-collapse .nav li>a:hover,.navbar .nav-collapse .nav .active>a:hover{background-color:#272b30}.navbar .nav-collapse .navbar-form,.navbar .nav-collapse .navbar-search{border-color:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.navbar .nav-collapse .nav-header{color:#7a8288}.navbar-inverse .nav-collapse .nav li>a:hover,.navbar-inverse .nav-collapse .nav .active>a:hover{background-color:#272b30!important}}div.subnav{margin:0 1px;background-color:#3a3f44;background-image:-webkit-gradient(linear,0 0,0 100%,from(#52575c),color-stop(70%,#3a3f44),to(#3a3f44));background-image:-webkit-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:-moz-linear-gradient(top,#52575c,#3a3f44 70%,#3a3f44);background-image:-o-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-repeat:no-repeat;border:1px solid transparent;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52575c',endColorstr='#ff3a3f44',GradientType=0);-webkit-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';-moz-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)'}div.subnav .nav>li>a{color:#bbbfc2;text-shadow:1px 1px 1px rgba(0,0,0,0.3);border-right:1px solid #2e3134;border-left:1px solid #52575c}div.subnav .nav>li>a:hover{color:#bbbfc2;background-color:#3a3f44;background-image:-moz-linear-gradient(280deg,#272b30,#3a3f44);background-image:-webkit-linear-gradient(280deg,#272b30,#3a3f44);background-image:-o-linear-gradient(280deg,#272b30,#3a3f44);background-image:linear-gradient(280deg,#272b30,#3a3f44);background-repeat:repeat-x;border-right:1px solid transparent;border-left:1px solid transparent}div.subnav .nav>li.active>a,div.subnav .nav>li.active>a:hover{color:#bbbfc2;background-color:#3a3f44;background-color:#43494f;background-image:-moz-linear-gradient(280deg,#30353b,#43494f);background-image:-webkit-linear-gradient(280deg,#30353b,#43494f);background-image:-o-linear-gradient(280deg,#30353b,#43494f);background-image:linear-gradient(280deg,#30353b,#43494f);background-repeat:repeat-x;border-right:1px solid #2e3134}div.subnav .nav>li:first-child>a,div.subnav .nav>li:first-child>a:hover{border-left:1px solid transparent}div.subnav .nav>li.active:last-child>a,div.subnav .nav>li:last-child>a:hover{border-right:1px solid #2e3134}div.subnav .open .dropdown-toggle{border-right:1px solid #2e3134;border-left:1px solid #52575c}div.subnav.subnav-fixed{top:40px;margin:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}div.subnav.subnav-fixed .nav>li.active:first-child>a,div.subnav.subnav-fixed .nav>li:first-child>a:hover{border-left:1px solid #2e3134}.nav .nav-header{text-shadow:-1px -1px 0 rgba(0,0,0,0.3)}.nav>li>a{font-weight:bold;color:#7a8288;text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-color:#3a3f44;background-image:-webkit-gradient(linear,0 0,0 100%,from(#52575c),color-stop(70%,#3a3f44),to(#3a3f44));background-image:-webkit-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:-moz-linear-gradient(top,#52575c,#3a3f44 70%,#3a3f44);background-image:-o-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-repeat:no-repeat;border:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52575c',endColorstr='#ff3a3f44',GradientType=0);-webkit-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';-moz-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)'}.nav li.active>a,.nav li.active>a:hover{color:#fff;background-color:transparent;border:0}.nav li>a:hover{color:#bbbfc2;background-color:transparent}.nav-list{background-color:#3a3f44;-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.4);-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.4);box-shadow:1px 1px 1px rgba(0,0,0,0.4)}.nav-list li>a{text-shadow:-1px -1px 0 rgba(0,0,0,0.3);background-image:none}.nav-list .nav-header{color:#52575c;text-shadow:-1px -1px 0 rgba(0,0,0,0.3)}.nav-list .divider{background-color:transparent;border-bottom:1px solid #1c1e22}.nav-tabs{border-bottom:0}.tabs-below .nav-tabs{border-top:0}.tabs-left .nav-tabs{border-right:0}.tabs-right .nav-tabs{border-left:none}.nav-tabs.nav-stacked li>a,.nav-tabs.nav-stacked li>a:hover{background-image:none;border:1px solid #1c1e22}.nav-tabs.nav-stacked li>a:hover,.nav-tabs.nav-stacked .active>a,.nav-tabs.nav-stacked .active>a:hover{color:#fff;background-color:#202328}.breadcrumb{background-color:#3a3f44;background-image:-webkit-gradient(linear,0 0,0 100%,from(#52575c),color-stop(70%,#3a3f44),to(#3a3f44));background-image:-webkit-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:-moz-linear-gradient(top,#52575c,#3a3f44 70%,#3a3f44);background-image:-o-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-repeat:no-repeat;border:1px solid transparent;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52575c',endColorstr='#ff3a3f44',GradientType=0);-webkit-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';-moz-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)'}.breadcrumb a{font-weight:bold;color:#bbbfc2}.breadcrumb li{font-weight:bold;color:#7a8288;text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.pagination ul{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.pagination ul>li>a,.pagination ul>li>span{font-weight:bold;color:#bbbfc2;text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-color:#3a3f44;background-image:-webkit-gradient(linear,0 0,0 100%,from(#52575c),color-stop(70%,#3a3f44),to(#3a3f44));background-image:-webkit-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:-moz-linear-gradient(top,#52575c,#3a3f44 70%,#3a3f44);background-image:-o-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-repeat:no-repeat;border-top:0;border-right:1px solid #2e3134;border-bottom:0;border-left:1px solid #52575c;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52575c',endColorstr='#ff3a3f44',GradientType=0);-webkit-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';-moz-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)'}.pagination ul>li>a:hover,.pagination ul>li>span:hover{background-color:#3a3f44;background-image:-moz-linear-gradient(280deg,#272b30,#3a3f44);background-image:-webkit-linear-gradient(280deg,#272b30,#3a3f44);background-image:-o-linear-gradient(280deg,#272b30,#3a3f44);background-image:linear-gradient(280deg,#272b30,#3a3f44);background-repeat:repeat-x;border-left:1px solid transparent}.pagination ul>.active>a,.pagination ul>.active>a:hover,.pagination ul>.active>span,.pagination ul>.active>span:hover{color:#bbbfc2;background-color:#3a3f44;background-color:#43494f;background-image:-moz-linear-gradient(280deg,#30353b,#43494f);background-image:-webkit-linear-gradient(280deg,#30353b,#43494f);background-image:-o-linear-gradient(280deg,#30353b,#43494f);background-image:linear-gradient(280deg,#30353b,#43494f);background-repeat:repeat-x;border-left:1px solid transparent}.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>span,.pagination ul>.disabled>span:hover{background-color:#52575c;background-image:-webkit-gradient(linear,0 0,0 100%,from(#7a8288),color-stop(70%,#52575c),to(#52575c));background-image:-webkit-linear-gradient(#7a8288,#52575c 70%,#52575c);background-image:-moz-linear-gradient(top,#7a8288,#52575c 70%,#52575c);background-image:-o-linear-gradient(#7a8288,#52575c 70%,#52575c);background-image:linear-gradient(#7a8288,#52575c 70%,#52575c);background-repeat:no-repeat;border-top:0;border-right:1px solid #2e3134;border-bottom:0;border-left:1px solid #52575c;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff7a8288',endColorstr='#ff52575c',GradientType=0)}.pager li>a,.pager li>span{background-color:#3a3f44;background-image:-webkit-gradient(linear,0 0,0 100%,from(#52575c),color-stop(70%,#3a3f44),to(#3a3f44));background-image:-webkit-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:-moz-linear-gradient(top,#52575c,#3a3f44 70%,#3a3f44);background-image:-o-linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-image:linear-gradient(#52575c,#3a3f44 70%,#3a3f44);background-repeat:no-repeat;border:1px solid transparent;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52575c',endColorstr='#ff3a3f44',GradientType=0);-webkit-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';-moz-box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)';box-shadow:'0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)'}.pager li>a:hover,.pager li>span:hover{background-color:#3a3f44;background-image:-moz-linear-gradient(280deg,#272b30,#3a3f44);background-image:-webkit-linear-gradient(280deg,#272b30,#3a3f44);background-image:-o-linear-gradient(280deg,#272b30,#3a3f44);background-image:linear-gradient(280deg,#272b30,#3a3f44);background-repeat:repeat-x;border:1px solid transparent}.pager .disabled a,.pager .disabled a:hover{background-color:transparent}.btn{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#484d51;*background-color:#3a3e41;background-image:-moz-linear-gradient(top,#52575c,#3a3e41);background-image:-webkit-gradient(linear,0 0,0 100%,from(#52575c),to(#3a3e41));background-image:-webkit-linear-gradient(top,#52575c,#3a3e41);background-image:-o-linear-gradient(top,#52575c,#3a3e41);background-image:linear-gradient(to bottom,#52575c,#3a3e41);background-repeat:repeat-x;border:1px solid #272b30;border-color:#3a3e41 #3a3e41 #161719;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52575c',endColorstr='#ff3a3e41',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#fff;background-color:#3a3e41;*background-color:#2e3134}.btn:active,.btn.active{background-color:#222426 \9}.btn,.btn:hover{font-weight:bold;color:#fff;text-shadow:-1px -1px 1px rgba(0,0,0,0.3)}.btn-primary{color:#fff;color:#3a3f44;text-shadow:0 -1px 0 rgba(0,0,0,0.25);text-shadow:1px 1px 1px rgba(255,255,255,0.3);background-color:#bbbec2;*background-color:#bbbdc2;background-image:-moz-linear-gradient(top,#bbbfc2,#bbbdc2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#bbbfc2),to(#bbbdc2));background-image:-webkit-linear-gradient(top,#bbbfc2,#bbbdc2);background-image:-o-linear-gradient(top,#bbbfc2,#bbbdc2);background-image:linear-gradient(to bottom,#bbbfc2,#bbbdc2);background-repeat:repeat-x;border-color:#bbbdc2 #bbbdc2 #93959e;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbbbfc2',endColorstr='#ffbbbdc2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#bbbdc2;*background-color:#aeb0b6}.btn-primary:active,.btn-primary.active{background-color:#a0a2aa \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#41454a;*background-color:#272b30;background-image:-moz-linear-gradient(top,#52575c,#272b30);background-image:-webkit-gradient(linear,0 0,0 100%,from(#52575c),to(#272b30));background-image:-webkit-linear-gradient(top,#52575c,#272b30);background-image:-o-linear-gradient(top,#52575c,#272b30);background-image:linear-gradient(to bottom,#52575c,#272b30);background-repeat:repeat-x;border-color:#272b30 #272b30 #050506;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52575c',endColorstr='#ff272b30',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#272b30;*background-color:#1c1e22}.btn-inverse:active,.btn-inverse.active{background-color:#101214 \9}.caret{border-top-color:#fff}.table tbody tr.success td{background-color:#468847}.table tbody tr.error td{background-color:#b94a48}.table tbody tr.info td{background-color:#3a87ad}label,input,button,select,textarea,legend{color:#c8c8c8}legend,label{text-shadow:-1px -1px 0 rgba(0,0,0,0.3)}.input-prepend .add-on,.input-append .add-on{text-shadow:none;vertical-align:top;background-color:#52575c;border-top:1px solid #7a8288;border-right:1px solid #3a3f44;border-bottom:1px solid #3a3f44;border-left:1px solid #7a8288}.input-append .btn,.input-prepend .btn{padding:5px 14px;margin-top:-1px}.uneditable-input,input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{color:#bbbfc2}.form-actions{border-top:0}.dropdown-menu{-webkit-box-shadow:0 5px 5px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 5px rgba(0,0,0,0.2);box-shadow:0 5px 5px rgba(0,0,0,0.2)}.dropdown.open .dropdown-toggle{color:#bbbfc2;background-color:#3a3f44}.dropdown-submenu>a::after{border-left-color:#fff}.label,.alert{color:rgba(255,255,255,0.9);text-shadow:-1px -1px 0 rgba(0,0,0,0.3);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.3);-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.3);box-shadow:1px 1px 1px rgba(0,0,0,0.3)}.alert{background-color:#f89406;border-color:#f89406}.alert .alert-heading{color:rgba(255,255,255,0.9);text-shadow:-1px -1px 0 rgba(0,0,0,0.4)}.alert-success{background-color:#468847;border-color:#468847}.alert-error{background-color:#b94a48;border-color:#b94a48}.alert-info{background-color:#3a87ad;border-color:#3a87ad}.well,.hero-unit{-webkit-box-shadow:inset 1px 1px 1px rgba(0,0,0,0.5);-moz-box-shadow:inset 1px 1px 1px rgba(0,0,0,0.5);box-shadow:inset 1px 1px 1px rgba(0,0,0,0.5)}.thumbnail,a.thumbnail:hover{border:1px solid #1c1e22}.progress{background-color:#202328;background-image:-moz-linear-gradient(top,#202328,#202328);background-image:-webkit-gradient(linear,0 0,0 100%,from(#202328),to(#202328));background-image:-webkit-linear-gradient(top,#202328,#202328);background-image:-o-linear-gradient(top,#202328,#202328);background-image:linear-gradient(to bottom,#202328,#202328);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff202328',endColorstr='#ff202328',GradientType=0);-webkit-box-shadow:inset 1px 1px 1px rgba(0,0,0,0.5);-moz-box-shadow:inset 1px 1px 1px rgba(0,0,0,0.5);box-shadow:inset 1px 1px 1px rgba(0,0,0,0.5)}.footer{border-top:1px solid #1c1e22}.footer p{color:#c8c8c8}.modal{background-color:#2e3236}.modal-header{border-bottom:0}.modal-body{border-bottom:1px solid #1c1e22}.modal-footer{background-color:#272b30;border-top:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}@media(max-width:979px){.navbar .brand{border-right:0}}@media(max-width:768px){div.subnav .nav>li+li>a{border-top:1px solid transparent}}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.eot b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.eot differ
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.svg b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000000000000000000000000000000000000..94fb5490a2ed10b2c69a4a567a4fd2e4f706d841
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
+<font-face units-per-em="1200" ascent="960" descent="-240" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="400" />
+<glyph unicode=" " />
+<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
+<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
+<glyph unicode="&#x2000;" horiz-adv-x="650" />
+<glyph unicode="&#x2001;" horiz-adv-x="1300" />
+<glyph unicode="&#x2002;" horiz-adv-x="650" />
+<glyph unicode="&#x2003;" horiz-adv-x="1300" />
+<glyph unicode="&#x2004;" horiz-adv-x="433" />
+<glyph unicode="&#x2005;" horiz-adv-x="325" />
+<glyph unicode="&#x2006;" horiz-adv-x="216" />
+<glyph unicode="&#x2007;" horiz-adv-x="216" />
+<glyph unicode="&#x2008;" horiz-adv-x="162" />
+<glyph unicode="&#x2009;" horiz-adv-x="260" />
+<glyph unicode="&#x200a;" horiz-adv-x="72" />
+<glyph unicode="&#x202f;" horiz-adv-x="260" />
+<glyph unicode="&#x205f;" horiz-adv-x="325" />
+<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
+<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
+<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
+<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
+<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
+<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
+<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
+<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
+<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
+<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
+<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
+<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
+<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
+<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
+<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
+<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
+<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
+<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
+<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
+<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
+<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
+<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
+<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
+<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
+<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
+<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
+<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
+<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
+<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
+<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
+<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
+<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
+<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
+<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
+<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
+<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
+<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
+<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
+<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
+<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
+<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
+<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
+<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
+<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
+<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
+<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
+<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
+<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
+<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
+<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
+<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
+<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
+<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
+<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
+<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
+<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
+<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
+<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
+<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
+<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
+<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
+<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
+<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
+<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
+<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
+<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
+<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
+<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
+<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
+<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
+<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
+<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
+<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
+<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
+<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
+<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
+<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
+<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
+<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
+<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
+<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
+<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
+<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
+<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
+<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
+<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
+<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
+<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
+<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
+<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
+<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
+<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
+<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
+<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
+<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
+<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
+<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
+<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
+<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
+<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
+<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
+<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
+<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
+<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
+<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
+<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
+<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
+<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
+<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
+<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
+<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
+<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
+<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
+<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
+<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
+<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
+<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
+<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
+<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
+<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
+<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
+<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
+<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
+<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
+<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
+<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
+<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
+<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
+<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
+<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
+<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
+<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
+<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
+<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
+<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
+<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
+<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
+<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
+<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
+<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
+<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
+<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
+<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
+<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
+<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
+<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
+<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
+<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
+<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
+<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
+<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
+<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
+<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
+<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
+<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
+<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
+<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
+<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
+<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
+<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
+<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
+<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
+<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
+<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
+<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
+<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
+<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
+<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
+<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.ttf b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.ttf differ
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.woff b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..9e612858f802245ddcbf59788a0db942224bab35
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.woff differ
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/bootstrap/fonts/glyphicons-halflings-regular.woff2 differ
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/img/glyphicons-halflings-white.png b/src/main/webapp/static/js/paella/player/resources/bootstrap/img/glyphicons-halflings-white.png
new file mode 100755
index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/bootstrap/img/glyphicons-halflings-white.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/img/glyphicons-halflings.png b/src/main/webapp/static/js/paella/player/resources/bootstrap/img/glyphicons-halflings.png
new file mode 100755
index 0000000000000000000000000000000000000000..a9969993201f9cee63cf9f49217646347297b643
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/bootstrap/img/glyphicons-halflings.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/js/bootstrap.js b/src/main/webapp/static/js/paella/player/resources/bootstrap/js/bootstrap.js
new file mode 100755
index 0000000000000000000000000000000000000000..4170ab416c5e4b4c6b21628b657d0e15fd5f4c2f
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/bootstrap/js/bootstrap.js
@@ -0,0 +1,2287 @@
+/* ===================================================
+ * bootstrap-transition.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#transitions
+ * ===================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ========================================================== */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+  /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
+   * ======================================================= */
+
+  $(function () {
+
+    $.support.transition = (function () {
+
+      var transitionEnd = (function () {
+
+        var el = document.createElement('bootstrap')
+          , transEndEventNames = {
+               'WebkitTransition' : 'webkitTransitionEnd'
+            ,  'MozTransition'    : 'transitionend'
+            ,  'OTransition'      : 'oTransitionEnd otransitionend'
+            ,  'transition'       : 'transitionend'
+            }
+          , name
+
+        for (name in transEndEventNames){
+          if (el.style[name] !== undefined) {
+            return transEndEventNames[name]
+          }
+        }
+
+      }())
+
+      return transitionEnd && {
+        end: transitionEnd
+      }
+
+    })()
+
+  })
+
+}(window.jQuery);
+/* =========================================================
+ * bootstrap-modal.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#modals
+ * =========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ========================================================= */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* MODAL CLASS DEFINITION
+  * ====================== */
+
+  var Modal = function (element, options) {
+    this.options = options
+    this.$element = $(element)
+      .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
+    this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
+  }
+
+  Modal.prototype = {
+
+      constructor: Modal
+
+    , toggle: function () {
+        return this[!this.isShown ? 'show' : 'hide']()
+      }
+
+    , show: function () {
+        var that = this
+          , e = $.Event('show')
+
+        this.$element.trigger(e)
+
+        if (this.isShown || e.isDefaultPrevented()) return
+
+        this.isShown = true
+
+        this.escape()
+
+        this.backdrop(function () {
+          var transition = $.support.transition && that.$element.hasClass('fade')
+
+          if (!that.$element.parent().length) {
+            that.$element.appendTo(document.body) //don't move modals dom position
+          }
+
+          that.$element.show()
+
+          if (transition) {
+            that.$element[0].offsetWidth // force reflow
+          }
+
+          that.$element
+            .addClass('in')
+            .attr('aria-hidden', false)
+
+          that.enforceFocus()
+
+          transition ?
+            that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
+            that.$element.focus().trigger('shown')
+
+        })
+      }
+
+    , hide: function (e) {
+        e && e.preventDefault()
+
+        var that = this
+
+        e = $.Event('hide')
+
+        this.$element.trigger(e)
+
+        if (!this.isShown || e.isDefaultPrevented()) return
+
+        this.isShown = false
+
+        this.escape()
+
+        $(document).off('focusin.modal')
+
+        this.$element
+          .removeClass('in')
+          .attr('aria-hidden', true)
+
+        $.support.transition && this.$element.hasClass('fade') ?
+          this.hideWithTransition() :
+          this.hideModal()
+      }
+
+    , enforceFocus: function () {
+        var that = this
+        $(document).on('focusin.modal', function (e) {
+          if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
+            that.$element.focus()
+          }
+        })
+      }
+
+    , escape: function () {
+        var that = this
+        if (this.isShown && this.options.keyboard) {
+          this.$element.on('keyup.dismiss.modal', function ( e ) {
+            e.which == 27 && that.hide()
+          })
+        } else if (!this.isShown) {
+          this.$element.off('keyup.dismiss.modal')
+        }
+      }
+
+    , hideWithTransition: function () {
+        var that = this
+          , timeout = setTimeout(function () {
+              that.$element.off($.support.transition.end)
+              that.hideModal()
+            }, 500)
+
+        this.$element.one($.support.transition.end, function () {
+          clearTimeout(timeout)
+          that.hideModal()
+        })
+      }
+
+    , hideModal: function () {
+        var that = this
+        this.$element.hide()
+        this.backdrop(function () {
+          that.removeBackdrop()
+          that.$element.trigger('hidden')
+        })
+      }
+
+    , removeBackdrop: function () {
+        this.$backdrop && this.$backdrop.remove()
+        this.$backdrop = null
+      }
+
+    , backdrop: function (callback) {
+        var that = this
+          , animate = this.$element.hasClass('fade') ? 'fade' : ''
+
+        if (this.isShown && this.options.backdrop) {
+          var doAnimate = $.support.transition && animate
+
+          this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
+            .appendTo(document.body)
+
+          this.$backdrop.click(
+            this.options.backdrop == 'static' ?
+              $.proxy(this.$element[0].focus, this.$element[0])
+            : $.proxy(this.hide, this)
+          )
+
+          if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
+
+          this.$backdrop.addClass('in')
+
+          if (!callback) return
+
+          doAnimate ?
+            this.$backdrop.one($.support.transition.end, callback) :
+            callback()
+
+        } else if (!this.isShown && this.$backdrop) {
+          this.$backdrop.removeClass('in')
+
+          $.support.transition && this.$element.hasClass('fade')?
+            this.$backdrop.one($.support.transition.end, callback) :
+            callback()
+
+        } else if (callback) {
+          callback()
+        }
+      }
+  }
+
+
+ /* MODAL PLUGIN DEFINITION
+  * ======================= */
+
+  var old = $.fn.modal
+
+  $.fn.modal = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('modal')
+        , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
+      if (!data) $this.data('modal', (data = new Modal(this, options)))
+      if (typeof option == 'string') data[option]()
+      else if (options.show) data.show()
+    })
+  }
+
+  $.fn.modal.defaults = {
+      backdrop: true
+    , keyboard: true
+    , show: true
+  }
+
+  $.fn.modal.Constructor = Modal
+
+
+ /* MODAL NO CONFLICT
+  * ================= */
+
+  $.fn.modal.noConflict = function () {
+    $.fn.modal = old
+    return this
+  }
+
+
+ /* MODAL DATA-API
+  * ============== */
+
+  $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
+    var $this = $(this)
+      , href = $this.attr('href')
+      , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
+      , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
+
+    e.preventDefault()
+
+    $target
+      .modal(option)
+      .one('hide', function () {
+        $this.focus()
+      })
+  })
+
+}(window.jQuery);
+
+/* ============================================================
+ * bootstrap-dropdown.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#dropdowns
+ * ============================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ============================================================ */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* DROPDOWN CLASS DEFINITION
+  * ========================= */
+
+  var toggle = '[data-toggle=dropdown]'
+    , Dropdown = function (element) {
+        var $el = $(element).on('click.dropdown.data-api', this.toggle)
+        $('html').on('click.dropdown.data-api', function () {
+          $el.parent().removeClass('open')
+        })
+      }
+
+  Dropdown.prototype = {
+
+    constructor: Dropdown
+
+  , toggle: function (e) {
+      var $this = $(this)
+        , $parent
+        , isActive
+
+      if ($this.is('.disabled, :disabled')) return
+
+      $parent = getParent($this)
+
+      isActive = $parent.hasClass('open')
+
+      clearMenus()
+
+      if (!isActive) {
+        $parent.toggleClass('open')
+      }
+
+      $this.focus()
+
+      return false
+    }
+
+  , keydown: function (e) {
+      var $this
+        , $items
+        , $active
+        , $parent
+        , isActive
+        , index
+
+      if (!/(38|40|27)/.test(e.keyCode)) return
+
+      $this = $(this)
+
+      e.preventDefault()
+      e.stopPropagation()
+
+      if ($this.is('.disabled, :disabled')) return
+
+      $parent = getParent($this)
+
+      isActive = $parent.hasClass('open')
+
+      if (!isActive || (isActive && e.keyCode == 27)) {
+        if (e.which == 27) $parent.find(toggle).focus()
+        return $this.click()
+      }
+
+      $items = $('[role=menu] li:not(.divider):visible a', $parent)
+
+      if (!$items.length) return
+
+      index = $items.index($items.filter(':focus'))
+
+      if (e.keyCode == 38 && index > 0) index--                                        // up
+      if (e.keyCode == 40 && index < $items.length - 1) index++                        // down
+      if (!~index) index = 0
+
+      $items
+        .eq(index)
+        .focus()
+    }
+
+  }
+
+  function clearMenus() {
+    $(toggle).each(function () {
+      getParent($(this)).removeClass('open')
+    })
+  }
+
+  function getParent($this) {
+    var selector = $this.attr('data-target')
+      , $parent
+
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+    }
+
+    $parent = selector && $(selector)
+
+    if (!$parent || !$parent.length) $parent = $this.parent()
+
+    return $parent
+  }
+
+
+  /* DROPDOWN PLUGIN DEFINITION
+   * ========================== */
+
+  var old = $.fn.dropdown
+
+  $.fn.dropdown = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('dropdown')
+      if (!data) $this.data('dropdown', (data = new Dropdown(this)))
+      if (typeof option == 'string') data[option].call($this)
+    })
+  }
+
+  $.fn.dropdown.Constructor = Dropdown
+
+
+ /* DROPDOWN NO CONFLICT
+  * ==================== */
+
+  $.fn.dropdown.noConflict = function () {
+    $.fn.dropdown = old
+    return this
+  }
+
+
+  /* APPLY TO STANDARD DROPDOWN ELEMENTS
+   * =================================== */
+
+  $(document)
+    .on('click.dropdown.data-api', clearMenus)
+    .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
+    .on('click.dropdown-menu', function (e) { e.stopPropagation() })
+    .on('click.dropdown.data-api'  , toggle, Dropdown.prototype.toggle)
+    .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
+
+}(window.jQuery);
+
+/* =============================================================
+ * bootstrap-scrollspy.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#scrollspy
+ * =============================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ============================================================== */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* SCROLLSPY CLASS DEFINITION
+  * ========================== */
+
+  function ScrollSpy(element, options) {
+    var process = $.proxy(this.process, this)
+      , $element = $(element).is('body') ? $(window) : $(element)
+      , href
+    this.options = $.extend({}, $.fn.scrollspy.defaults, options)
+    this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
+    this.selector = (this.options.target
+      || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
+      || '') + ' .nav li > a'
+    this.$body = $('body')
+    this.refresh()
+    this.process()
+  }
+
+  ScrollSpy.prototype = {
+
+      constructor: ScrollSpy
+
+    , refresh: function () {
+        var self = this
+          , $targets
+
+        this.offsets = $([])
+        this.targets = $([])
+
+        $targets = this.$body
+          .find(this.selector)
+          .map(function () {
+            var $el = $(this)
+              , href = $el.data('target') || $el.attr('href')
+              , $href = /^#\w/.test(href) && $(href)
+            return ( $href
+              && $href.length
+              && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
+          })
+          .sort(function (a, b) { return a[0] - b[0] })
+          .each(function () {
+            self.offsets.push(this[0])
+            self.targets.push(this[1])
+          })
+      }
+
+    , process: function () {
+        var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
+          , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
+          , maxScroll = scrollHeight - this.$scrollElement.height()
+          , offsets = this.offsets
+          , targets = this.targets
+          , activeTarget = this.activeTarget
+          , i
+
+        if (scrollTop >= maxScroll) {
+          return activeTarget != (i = targets.last()[0])
+            && this.activate ( i )
+        }
+
+        for (i = offsets.length; i--;) {
+          activeTarget != targets[i]
+            && scrollTop >= offsets[i]
+            && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
+            && this.activate( targets[i] )
+        }
+      }
+
+    , activate: function (target) {
+        var active
+          , selector
+
+        this.activeTarget = target
+
+        $(this.selector)
+          .parent('.active')
+          .removeClass('active')
+
+        selector = this.selector
+          + '[data-target="' + target + '"],'
+          + this.selector + '[href="' + target + '"]'
+
+        active = $(selector)
+          .parent('li')
+          .addClass('active')
+
+        if (active.parent('.dropdown-menu').length)  {
+          active = active.closest('li.dropdown').addClass('active')
+        }
+
+        active.trigger('activate')
+      }
+
+  }
+
+
+ /* SCROLLSPY PLUGIN DEFINITION
+  * =========================== */
+
+  var old = $.fn.scrollspy
+
+  $.fn.scrollspy = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('scrollspy')
+        , options = typeof option == 'object' && option
+      if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  $.fn.scrollspy.Constructor = ScrollSpy
+
+  $.fn.scrollspy.defaults = {
+    offset: 10
+  }
+
+
+ /* SCROLLSPY NO CONFLICT
+  * ===================== */
+
+  $.fn.scrollspy.noConflict = function () {
+    $.fn.scrollspy = old
+    return this
+  }
+
+
+ /* SCROLLSPY DATA-API
+  * ================== */
+
+  $(window).on('load', function () {
+    $('[data-spy="scroll"]').each(function () {
+      var $spy = $(this)
+      $spy.scrollspy($spy.data())
+    })
+  })
+
+}(window.jQuery);
+/* ========================================================
+ * bootstrap-tab.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#tabs
+ * ========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ======================================================== */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* TAB CLASS DEFINITION
+  * ==================== */
+
+  var Tab = function (element) {
+    this.element = $(element)
+  }
+
+  Tab.prototype = {
+
+    constructor: Tab
+
+  , show: function () {
+      var $this = this.element
+        , $ul = $this.closest('ul:not(.dropdown-menu)')
+        , selector = $this.attr('data-target')
+        , previous
+        , $target
+        , e
+
+      if (!selector) {
+        selector = $this.attr('href')
+        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+      }
+
+      if ( $this.parent('li').hasClass('active') ) return
+
+      previous = $ul.find('.active:last a')[0]
+
+      e = $.Event('show', {
+        relatedTarget: previous
+      })
+
+      $this.trigger(e)
+
+      if (e.isDefaultPrevented()) return
+
+      $target = $(selector)
+
+      this.activate($this.parent('li'), $ul)
+      this.activate($target, $target.parent(), function () {
+        $this.trigger({
+          type: 'shown'
+        , relatedTarget: previous
+        })
+      })
+    }
+
+  , activate: function ( element, container, callback) {
+      var $active = container.find('> .active')
+        , transition = callback
+            && $.support.transition
+            && $active.hasClass('fade')
+
+      function next() {
+        $active
+          .removeClass('active')
+          .find('> .dropdown-menu > .active')
+          .removeClass('active')
+
+        element.addClass('active')
+
+        if (transition) {
+          element[0].offsetWidth // reflow for transition
+          element.addClass('in')
+        } else {
+          element.removeClass('fade')
+        }
+
+        if ( element.parent('.dropdown-menu') ) {
+          element.closest('li.dropdown').addClass('active')
+        }
+
+        callback && callback()
+      }
+
+      transition ?
+        $active.one($.support.transition.end, next) :
+        next()
+
+      $active.removeClass('in')
+    }
+  }
+
+
+ /* TAB PLUGIN DEFINITION
+  * ===================== */
+
+  var old = $.fn.tab
+
+  $.fn.tab = function ( option ) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('tab')
+      if (!data) $this.data('tab', (data = new Tab(this)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  $.fn.tab.Constructor = Tab
+
+
+ /* TAB NO CONFLICT
+  * =============== */
+
+  $.fn.tab.noConflict = function () {
+    $.fn.tab = old
+    return this
+  }
+
+
+ /* TAB DATA-API
+  * ============ */
+
+  $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
+    e.preventDefault()
+    $(this).tab('show')
+  })
+
+}(window.jQuery);
+/* ===========================================================
+ * bootstrap-tooltip.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#tooltips
+ * Inspired by the original jQuery.tipsy by Jason Frame
+ * ===========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ========================================================== */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* TOOLTIP PUBLIC CLASS DEFINITION
+  * =============================== */
+
+  var Tooltip = function (element, options) {
+    this.init('tooltip', element, options)
+  }
+
+  Tooltip.prototype = {
+
+    constructor: Tooltip
+
+  , init: function (type, element, options) {
+      var eventIn
+        , eventOut
+        , triggers
+        , trigger
+        , i
+
+      this.type = type
+      this.$element = $(element)
+      this.options = this.getOptions(options)
+      this.enabled = true
+
+      triggers = this.options.trigger.split(' ')
+
+      for (i = triggers.length; i--;) {
+        trigger = triggers[i]
+        if (trigger == 'click') {
+          this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
+        } else if (trigger != 'manual') {
+          eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
+          eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
+          this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
+          this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
+        }
+      }
+
+      this.options.selector ?
+        (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
+        this.fixTitle()
+    }
+
+  , getOptions: function (options) {
+      options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
+
+      if (options.delay && typeof options.delay == 'number') {
+        options.delay = {
+          show: options.delay
+        , hide: options.delay
+        }
+      }
+
+      return options
+    }
+
+  , enter: function (e) {
+      var defaults = $.fn[this.type].defaults
+        , options = {}
+        , self
+
+      this._options && $.each(this._options, function (key, value) {
+        if (defaults[key] != value) options[key] = value
+      }, this)
+
+      self = $(e.currentTarget)[this.type](options).data(this.type)
+
+      if (!self.options.delay || !self.options.delay.show) return self.show()
+
+      clearTimeout(this.timeout)
+      self.hoverState = 'in'
+      this.timeout = setTimeout(function() {
+        if (self.hoverState == 'in') self.show()
+      }, self.options.delay.show)
+    }
+
+  , leave: function (e) {
+      var self = $(e.currentTarget)[this.type](this._options).data(this.type)
+
+      if (this.timeout) clearTimeout(this.timeout)
+      if (!self.options.delay || !self.options.delay.hide) return self.hide()
+
+      self.hoverState = 'out'
+      this.timeout = setTimeout(function() {
+        if (self.hoverState == 'out') self.hide()
+      }, self.options.delay.hide)
+    }
+
+  , show: function () {
+      var $tip
+        , pos
+        , actualWidth
+        , actualHeight
+        , placement
+        , tp
+        , e = $.Event('show')
+
+      if (this.hasContent() && this.enabled) {
+        this.$element.trigger(e)
+        if (e.isDefaultPrevented()) return
+        $tip = this.tip()
+        this.setContent()
+
+        if (this.options.animation) {
+          $tip.addClass('fade')
+        }
+
+        placement = typeof this.options.placement == 'function' ?
+          this.options.placement.call(this, $tip[0], this.$element[0]) :
+          this.options.placement
+
+        $tip
+          .detach()
+          .css({ top: 0, left: 0, display: 'block' })
+
+        this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
+
+        pos = this.getPosition()
+
+        actualWidth = $tip[0].offsetWidth
+        actualHeight = $tip[0].offsetHeight
+
+        switch (placement) {
+          case 'bottom':
+            tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
+            break
+          case 'top':
+            tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
+            break
+          case 'left':
+            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
+            break
+          case 'right':
+            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
+            break
+        }
+
+        this.applyPlacement(tp, placement)
+        this.$element.trigger('shown')
+      }
+    }
+
+  , applyPlacement: function(offset, placement){
+      var $tip = this.tip()
+        , width = $tip[0].offsetWidth
+        , height = $tip[0].offsetHeight
+        , actualWidth
+        , actualHeight
+        , delta
+        , replace
+
+      $tip
+        .offset(offset)
+        .addClass(placement)
+        .addClass('in')
+
+      actualWidth = $tip[0].offsetWidth
+      actualHeight = $tip[0].offsetHeight
+
+      if (placement == 'top' && actualHeight != height) {
+        offset.top = offset.top + height - actualHeight
+        replace = true
+      }
+
+      if (placement == 'bottom' || placement == 'top') {
+        delta = 0
+
+        if (offset.left < 0){
+          delta = offset.left * -2
+          offset.left = 0
+          $tip.offset(offset)
+          actualWidth = $tip[0].offsetWidth
+          actualHeight = $tip[0].offsetHeight
+        }
+
+        this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
+      } else {
+        this.replaceArrow(actualHeight - height, actualHeight, 'top')
+      }
+
+      if (replace) $tip.offset(offset)
+    }
+
+  , replaceArrow: function(delta, dimension, position){
+      this
+        .arrow()
+        .css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
+    }
+
+  , setContent: function () {
+      var $tip = this.tip()
+        , title = this.getTitle()
+
+      $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
+      $tip.removeClass('fade in top bottom left right')
+    }
+
+  , hide: function () {
+      var that = this
+        , $tip = this.tip()
+        , e = $.Event('hide')
+
+      this.$element.trigger(e)
+      if (e.isDefaultPrevented()) return
+
+      $tip.removeClass('in')
+
+      function removeWithAnimation() {
+        var timeout = setTimeout(function () {
+          $tip.off($.support.transition.end).detach()
+        }, 500)
+
+        $tip.one($.support.transition.end, function () {
+          clearTimeout(timeout)
+          $tip.detach()
+        })
+      }
+
+      $.support.transition && this.$tip.hasClass('fade') ?
+        removeWithAnimation() :
+        $tip.detach()
+
+      this.$element.trigger('hidden')
+
+      return this
+    }
+
+  , fixTitle: function () {
+      var $e = this.$element
+      if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
+        $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
+      }
+    }
+
+  , hasContent: function () {
+      return this.getTitle()
+    }
+
+  , getPosition: function () {
+      var el = this.$element[0]
+      return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
+        width: el.offsetWidth
+      , height: el.offsetHeight
+      }, this.$element.offset())
+    }
+
+  , getTitle: function () {
+      var title
+        , $e = this.$element
+        , o = this.options
+
+      title = $e.attr('data-original-title')
+        || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
+
+      return title
+    }
+
+  , tip: function () {
+      return this.$tip = this.$tip || $(this.options.template)
+    }
+
+  , arrow: function(){
+      return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
+    }
+
+  , validate: function () {
+      if (!this.$element[0].parentNode) {
+        this.hide()
+        this.$element = null
+        this.options = null
+      }
+    }
+
+  , enable: function () {
+      this.enabled = true
+    }
+
+  , disable: function () {
+      this.enabled = false
+    }
+
+  , toggleEnabled: function () {
+      this.enabled = !this.enabled
+    }
+
+  , toggle: function (e) {
+      var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
+      self.tip().hasClass('in') ? self.hide() : self.show()
+    }
+
+  , destroy: function () {
+      this.hide().$element.off('.' + this.type).removeData(this.type)
+    }
+
+  }
+
+
+ /* TOOLTIP PLUGIN DEFINITION
+  * ========================= */
+
+  var old = $.fn.tooltip
+
+  $.fn.tooltip = function ( option ) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('tooltip')
+        , options = typeof option == 'object' && option
+      if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  $.fn.tooltip.Constructor = Tooltip
+
+  $.fn.tooltip.defaults = {
+    animation: true
+  , placement: 'top'
+  , selector: false
+  , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
+  , trigger: 'hover focus'
+  , title: ''
+  , delay: 0
+  , html: false
+  , container: false
+  }
+
+
+ /* TOOLTIP NO CONFLICT
+  * =================== */
+
+  $.fn.tooltip.noConflict = function () {
+    $.fn.tooltip = old
+    return this
+  }
+
+}(window.jQuery);
+
+/* ===========================================================
+ * bootstrap-popover.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#popovers
+ * ===========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * =========================================================== */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* POPOVER PUBLIC CLASS DEFINITION
+  * =============================== */
+
+  var Popover = function (element, options) {
+    this.init('popover', element, options)
+  }
+
+
+  /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
+     ========================================== */
+
+  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
+
+    constructor: Popover
+
+  , setContent: function () {
+      var $tip = this.tip()
+        , title = this.getTitle()
+        , content = this.getContent()
+
+      $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
+      $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
+
+      $tip.removeClass('fade top bottom left right in')
+    }
+
+  , hasContent: function () {
+      return this.getTitle() || this.getContent()
+    }
+
+  , getContent: function () {
+      var content
+        , $e = this.$element
+        , o = this.options
+
+      content = (typeof o.content == 'function' ? o.content.call($e[0]) :  o.content)
+        || $e.attr('data-content')
+
+      return content
+    }
+
+  , tip: function () {
+      if (!this.$tip) {
+        this.$tip = $(this.options.template)
+      }
+      return this.$tip
+    }
+
+  , destroy: function () {
+      this.hide().$element.off('.' + this.type).removeData(this.type)
+    }
+
+  })
+
+
+ /* POPOVER PLUGIN DEFINITION
+  * ======================= */
+
+  var old = $.fn.popover
+
+  $.fn.popover = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('popover')
+        , options = typeof option == 'object' && option
+      if (!data) $this.data('popover', (data = new Popover(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  $.fn.popover.Constructor = Popover
+
+  $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
+    placement: 'right'
+  , trigger: 'click'
+  , content: ''
+  , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+  })
+
+
+ /* POPOVER NO CONFLICT
+  * =================== */
+
+  $.fn.popover.noConflict = function () {
+    $.fn.popover = old
+    return this
+  }
+
+}(window.jQuery);
+
+/* ==========================================================
+ * bootstrap-affix.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#affix
+ * ==========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ========================================================== */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* AFFIX CLASS DEFINITION
+  * ====================== */
+
+  var Affix = function (element, options) {
+    this.options = $.extend({}, $.fn.affix.defaults, options)
+    this.$window = $(window)
+      .on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
+      .on('click.affix.data-api',  $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
+    this.$element = $(element)
+    this.checkPosition()
+  }
+
+  Affix.prototype.checkPosition = function () {
+    if (!this.$element.is(':visible')) return
+
+    var scrollHeight = $(document).height()
+      , scrollTop = this.$window.scrollTop()
+      , position = this.$element.offset()
+      , offset = this.options.offset
+      , offsetBottom = offset.bottom
+      , offsetTop = offset.top
+      , reset = 'affix affix-top affix-bottom'
+      , affix
+
+    if (typeof offset != 'object') offsetBottom = offsetTop = offset
+    if (typeof offsetTop == 'function') offsetTop = offset.top()
+    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
+
+    affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
+      false    : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
+      'bottom' : offsetTop != null && scrollTop <= offsetTop ?
+      'top'    : false
+
+    if (this.affixed === affix) return
+
+    this.affixed = affix
+    this.unpin = affix == 'bottom' ? position.top - scrollTop : null
+
+    this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
+  }
+
+
+ /* AFFIX PLUGIN DEFINITION
+  * ======================= */
+
+  var old = $.fn.affix
+
+  $.fn.affix = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('affix')
+        , options = typeof option == 'object' && option
+      if (!data) $this.data('affix', (data = new Affix(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  $.fn.affix.Constructor = Affix
+
+  $.fn.affix.defaults = {
+    offset: 0
+  }
+
+
+ /* AFFIX NO CONFLICT
+  * ================= */
+
+  $.fn.affix.noConflict = function () {
+    $.fn.affix = old
+    return this
+  }
+
+
+ /* AFFIX DATA-API
+  * ============== */
+
+  $(window).on('load', function () {
+    $('[data-spy="affix"]').each(function () {
+      var $spy = $(this)
+        , data = $spy.data()
+
+      data.offset = data.offset || {}
+
+      data.offsetBottom && (data.offset.bottom = data.offsetBottom)
+      data.offsetTop && (data.offset.top = data.offsetTop)
+
+      $spy.affix(data)
+    })
+  })
+
+
+}(window.jQuery);
+/* ==========================================================
+ * bootstrap-alert.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#alerts
+ * ==========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ========================================================== */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* ALERT CLASS DEFINITION
+  * ====================== */
+
+  var dismiss = '[data-dismiss="alert"]'
+    , Alert = function (el) {
+        $(el).on('click', dismiss, this.close)
+      }
+
+  Alert.prototype.close = function (e) {
+    var $this = $(this)
+      , selector = $this.attr('data-target')
+      , $parent
+
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+    }
+
+    $parent = $(selector)
+
+    e && e.preventDefault()
+
+    $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
+
+    $parent.trigger(e = $.Event('close'))
+
+    if (e.isDefaultPrevented()) return
+
+    $parent.removeClass('in')
+
+    function removeElement() {
+      $parent
+        .trigger('closed')
+        .remove()
+    }
+
+    $.support.transition && $parent.hasClass('fade') ?
+      $parent.on($.support.transition.end, removeElement) :
+      removeElement()
+  }
+
+
+ /* ALERT PLUGIN DEFINITION
+  * ======================= */
+
+  var old = $.fn.alert
+
+  $.fn.alert = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('alert')
+      if (!data) $this.data('alert', (data = new Alert(this)))
+      if (typeof option == 'string') data[option].call($this)
+    })
+  }
+
+  $.fn.alert.Constructor = Alert
+
+
+ /* ALERT NO CONFLICT
+  * ================= */
+
+  $.fn.alert.noConflict = function () {
+    $.fn.alert = old
+    return this
+  }
+
+
+ /* ALERT DATA-API
+  * ============== */
+
+  $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
+
+}(window.jQuery);
+/* ============================================================
+ * bootstrap-button.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#buttons
+ * ============================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ============================================================ */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* BUTTON PUBLIC CLASS DEFINITION
+  * ============================== */
+
+  var Button = function (element, options) {
+    this.$element = $(element)
+    this.options = $.extend({}, $.fn.button.defaults, options)
+  }
+
+  Button.prototype.setState = function (state) {
+    var d = 'disabled'
+      , $el = this.$element
+      , data = $el.data()
+      , val = $el.is('input') ? 'val' : 'html'
+
+    state = state + 'Text'
+    data.resetText || $el.data('resetText', $el[val]())
+
+    $el[val](data[state] || this.options[state])
+
+    // push to event loop to allow forms to submit
+    setTimeout(function () {
+      state == 'loadingText' ?
+        $el.addClass(d).attr(d, d) :
+        $el.removeClass(d).removeAttr(d)
+    }, 0)
+  }
+
+  Button.prototype.toggle = function () {
+    var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
+
+    $parent && $parent
+      .find('.active')
+      .removeClass('active')
+
+    this.$element.toggleClass('active')
+  }
+
+
+ /* BUTTON PLUGIN DEFINITION
+  * ======================== */
+
+  var old = $.fn.button
+
+  $.fn.button = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('button')
+        , options = typeof option == 'object' && option
+      if (!data) $this.data('button', (data = new paella.Button(this, options)))
+      if (option == 'toggle') data.toggle()
+      else if (option) data.setState(option)
+    })
+  }
+
+  $.fn.button.defaults = {
+    loadingText: 'loading...'
+  }
+
+  $.fn.button.Constructor = Button
+
+
+ /* BUTTON NO CONFLICT
+  * ================== */
+
+  $.fn.button.noConflict = function () {
+    $.fn.button = old
+    return this
+  }
+
+
+ /* BUTTON DATA-API
+  * =============== */
+
+  $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
+    var $btn = $(e.target)
+    if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
+    $btn.button('toggle')
+  })
+
+}(window.jQuery);
+/* =============================================================
+ * bootstrap-collapse.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#collapse
+ * =============================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ============================================================ */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* COLLAPSE PUBLIC CLASS DEFINITION
+  * ================================ */
+
+  var Collapse = function (element, options) {
+    this.$element = $(element)
+    this.options = $.extend({}, $.fn.collapse.defaults, options)
+
+    if (this.options.parent) {
+      this.$parent = $(this.options.parent)
+    }
+
+    this.options.toggle && this.toggle()
+  }
+
+  Collapse.prototype = {
+
+    constructor: Collapse
+
+  , dimension: function () {
+      var hasWidth = this.$element.hasClass('width')
+      return hasWidth ? 'width' : 'height'
+    }
+
+  , show: function () {
+      var dimension
+        , scroll
+        , actives
+        , hasData
+
+      if (this.transitioning || this.$element.hasClass('in')) return
+
+      dimension = this.dimension()
+      scroll = $.camelCase(['scroll', dimension].join('-'))
+      actives = this.$parent && this.$parent.find('> .accordion-group > .in')
+
+      if (actives && actives.length) {
+        hasData = actives.data('collapse')
+        if (hasData && hasData.transitioning) return
+        actives.collapse('hide')
+        hasData || actives.data('collapse', null)
+      }
+
+      this.$element[dimension](0)
+      this.transition('addClass', $.Event('show'), 'shown')
+      $.support.transition && this.$element[dimension](this.$element[0][scroll])
+    }
+
+  , hide: function () {
+      var dimension
+      if (this.transitioning || !this.$element.hasClass('in')) return
+      dimension = this.dimension()
+      this.reset(this.$element[dimension]())
+      this.transition('removeClass', $.Event('hide'), 'hidden')
+      this.$element[dimension](0)
+    }
+
+  , reset: function (size) {
+      var dimension = this.dimension()
+
+      this.$element
+        .removeClass('collapse')
+        [dimension](size || 'auto')
+        [0].offsetWidth
+
+      this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
+
+      return this
+    }
+
+  , transition: function (method, startEvent, completeEvent) {
+      var that = this
+        , complete = function () {
+            if (startEvent.type == 'show') that.reset()
+            that.transitioning = 0
+            that.$element.trigger(completeEvent)
+          }
+
+      this.$element.trigger(startEvent)
+
+      if (startEvent.isDefaultPrevented()) return
+
+      this.transitioning = 1
+
+      this.$element[method]('in')
+
+      $.support.transition && this.$element.hasClass('collapse') ?
+        this.$element.one($.support.transition.end, complete) :
+        complete()
+    }
+
+  , toggle: function () {
+      this[this.$element.hasClass('in') ? 'hide' : 'show']()
+    }
+
+  }
+
+
+ /* COLLAPSE PLUGIN DEFINITION
+  * ========================== */
+
+  var old = $.fn.collapse
+
+  $.fn.collapse = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('collapse')
+        , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
+      if (!data) $this.data('collapse', (data = new Collapse(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  $.fn.collapse.defaults = {
+    toggle: true
+  }
+
+  $.fn.collapse.Constructor = Collapse
+
+
+ /* COLLAPSE NO CONFLICT
+  * ==================== */
+
+  $.fn.collapse.noConflict = function () {
+    $.fn.collapse = old
+    return this
+  }
+
+
+ /* COLLAPSE DATA-API
+  * ================= */
+
+  $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
+    var $this = $(this), href
+      , target = $this.attr('data-target')
+        || e.preventDefault()
+        || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
+      , option = $(target).data('collapse') ? 'toggle' : $this.data()
+    $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
+    $(target).collapse(option)
+  })
+
+}(window.jQuery);
+/* ==========================================================
+ * bootstrap-carousel.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#carousel
+ * ==========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ========================================================== */
+
+
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
+
+ /* CAROUSEL CLASS DEFINITION
+  * ========================= */
+
+  var Carousel = function (element, options) {
+    this.$element = $(element)
+    this.$indicators = this.$element.find('.carousel-indicators')
+    this.options = options
+    this.options.pause == 'hover' && this.$element
+      .on('mouseenter', $.proxy(this.pause, this))
+      .on('mouseleave', $.proxy(this.cycle, this))
+  }
+
+  Carousel.prototype = {
+
+    cycle: function (e) {
+      if (!e) this.paused = false
+      if (this.interval) clearInterval(this.interval);
+      this.options.interval
+        && !this.paused
+        && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
+      return this
+    }
+
+  , getActiveIndex: function () {
+      this.$active = this.$element.find('.item.active')
+      this.$items = this.$active.parent().children()
+      return this.$items.index(this.$active)
+    }
+
+  , to: function (pos) {
+      var activeIndex = this.getActiveIndex()
+        , that = this
+
+      if (pos > (this.$items.length - 1) || pos < 0) return
+
+      if (this.sliding) {
+        return this.$element.one('slid', function () {
+          that.to(pos)
+        })
+      }
+
+      if (activeIndex == pos) {
+        return this.pause().cycle()
+      }
+
+      return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
+    }
+
+  , pause: function (e) {
+      if (!e) this.paused = true
+      if (this.$element.find('.next, .prev').length && $.support.transition.end) {
+        this.$element.trigger($.support.transition.end)
+        this.cycle(true)
+      }
+      clearInterval(this.interval)
+      this.interval = null
+      return this
+    }
+
+  , next: function () {
+      if (this.sliding) return
+      return this.slide('next')
+    }
+
+  , prev: function () {
+      if (this.sliding) return
+      return this.slide('prev')
+    }
+
+  , slide: function (type, next) {
+      var $active = this.$element.find('.item.active')
+        , $next = next || $active[type]()
+        , isCycling = this.interval
+        , direction = type == 'next' ? 'left' : 'right'
+        , fallback  = type == 'next' ? 'first' : 'last'
+        , that = this
+        , e
+
+      this.sliding = true
+
+      isCycling && this.pause()
+
+      $next = $next.length ? $next : this.$element.find('.item')[fallback]()
+
+      e = $.Event('slide', {
+        relatedTarget: $next[0]
+      , direction: direction
+      })
+
+      if ($next.hasClass('active')) return
+
+      if (this.$indicators.length) {
+        this.$indicators.find('.active').removeClass('active')
+        this.$element.one('slid', function () {
+          var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
+          $nextIndicator && $nextIndicator.addClass('active')
+        })
+      }
+
+      if ($.support.transition && this.$element.hasClass('slide')) {
+        this.$element.trigger(e)
+        if (e.isDefaultPrevented()) return
+        $next.addClass(type)
+        $next[0].offsetWidth // force reflow
+        $active.addClass(direction)
+        $next.addClass(direction)
+        this.$element.one($.support.transition.end, function () {
+          $next.removeClass([type, direction].join(' ')).addClass('active')
+          $active.removeClass(['active', direction].join(' '))
+          that.sliding = false
+          setTimeout(function () { that.$element.trigger('slid') }, 0)
+        })
+      } else {
+        this.$element.trigger(e)
+        if (e.isDefaultPrevented()) return
+        $active.removeClass('active')
+        $next.addClass('active')
+        this.sliding = false
+        this.$element.trigger('slid')
+      }
+
+      isCycling && this.cycle()
+
+      return this
+    }
+
+  }
+
+
+ /* CAROUSEL PLUGIN DEFINITION
+  * ========================== */
+
+  var old = $.fn.carousel
+
+  $.fn.carousel = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('carousel')
+        , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
+        , action = typeof option == 'string' ? option : options.slide
+      if (!data) $this.data('carousel', (data = new Carousel(this, options)))
+      if (typeof option == 'number') data.to(option)
+      else if (action) data[action]()
+      else if (options.interval) data.pause().cycle()
+    })
+  }
+
+  $.fn.carousel.defaults = {
+    interval: 5000
+  , pause: 'hover'
+  }
+
+  $.fn.carousel.Constructor = Carousel
+
+
+ /* CAROUSEL NO CONFLICT
+  * ==================== */
+
+  $.fn.carousel.noConflict = function () {
+    $.fn.carousel = old
+    return this
+  }
+
+ /* CAROUSEL DATA-API
+  * ================= */
+
+  $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
+    var $this = $(this), href
+      , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
+      , options = $.extend({}, $target.data(), $this.data())
+      , slideIndex
+
+    $target.carousel(options)
+
+    if (slideIndex = $this.attr('data-slide-to')) {
+      $target.data('carousel').pause().to(slideIndex).cycle()
+    }
+
+    e.preventDefault()
+  })
+
+}(window.jQuery);
+/* =============================================================
+ * bootstrap-typeahead.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#typeahead
+ * =============================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * 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.
+ * ============================================================ */
+
+
+!function($){
+
+  "use strict"; // jshint ;_;
+
+
+ /* TYPEAHEAD PUBLIC CLASS DEFINITION
+  * ================================= */
+
+  var Typeahead = function (element, options) {
+    this.$element = $(element)
+    this.options = $.extend({}, $.fn.typeahead.defaults, options)
+    this.matcher = this.options.matcher || this.matcher
+    this.sorter = this.options.sorter || this.sorter
+    this.highlighter = this.options.highlighter || this.highlighter
+    this.updater = this.options.updater || this.updater
+    this.source = this.options.source
+    this.$menu = $(this.options.menu)
+    this.shown = false
+    this.listen()
+  }
+
+  Typeahead.prototype = {
+
+    constructor: Typeahead
+
+  , select: function () {
+      var val = this.$menu.find('.active').attr('data-value')
+      this.$element
+        .val(this.updater(val))
+        .change()
+      return this.hide()
+    }
+
+  , updater: function (item) {
+      return item
+    }
+
+  , show: function () {
+      var pos = $.extend({}, this.$element.position(), {
+        height: this.$element[0].offsetHeight
+      })
+
+      this.$menu
+        .insertAfter(this.$element)
+        .css({
+          top: pos.top + pos.height
+        , left: pos.left
+        })
+        .show()
+
+      this.shown = true
+      return this
+    }
+
+  , hide: function () {
+      this.$menu.hide()
+      this.shown = false
+      return this
+    }
+
+  , lookup: function (event) {
+      var items
+
+      this.query = this.$element.val()
+
+      if (!this.query || this.query.length < this.options.minLength) {
+        return this.shown ? this.hide() : this
+      }
+
+      items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
+
+      return items ? this.process(items) : this
+    }
+
+  , process: function (items) {
+      var that = this
+
+      items = $.grep(items, function (item) {
+        return that.matcher(item)
+      })
+
+      items = this.sorter(items)
+
+      if (!items.length) {
+        return this.shown ? this.hide() : this
+      }
+
+      return this.render(items.slice(0, this.options.items)).show()
+    }
+
+  , matcher: function (item) {
+      return ~item.toLowerCase().indexOf(this.query.toLowerCase())
+    }
+
+  , sorter: function (items) {
+      var beginswith = []
+        , caseSensitive = []
+        , caseInsensitive = []
+        , item
+
+      while (item = items.shift()) {
+        if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
+        else if (~item.indexOf(this.query)) caseSensitive.push(item)
+        else caseInsensitive.push(item)
+      }
+
+      return beginswith.concat(caseSensitive, caseInsensitive)
+    }
+
+  , highlighter: function (item) {
+      var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
+      return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
+        return '<strong>' + match + '</strong>'
+      })
+    }
+
+  , render: function (items) {
+      var that = this
+
+      items = $(items).map(function (i, item) {
+        i = $(that.options.item).attr('data-value', item)
+        i.find('a').html(that.highlighter(item))
+        return i[0]
+      })
+
+      items.first().addClass('active')
+      this.$menu.html(items)
+      return this
+    }
+
+  , next: function (event) {
+      var active = this.$menu.find('.active').removeClass('active')
+        , next = active.next()
+
+      if (!next.length) {
+        next = $(this.$menu.find('li')[0])
+      }
+
+      next.addClass('active')
+    }
+
+  , prev: function (event) {
+      var active = this.$menu.find('.active').removeClass('active')
+        , prev = active.prev()
+
+      if (!prev.length) {
+        prev = this.$menu.find('li').last()
+      }
+
+      prev.addClass('active')
+    }
+
+  , listen: function () {
+      this.$element
+        .on('focus',    $.proxy(this.focus, this))
+        .on('blur',     $.proxy(this.blur, this))
+        .on('keypress', $.proxy(this.keypress, this))
+        .on('keyup',    $.proxy(this.keyup, this))
+
+      if (this.eventSupported('keydown')) {
+        this.$element.on('keydown', $.proxy(this.keydown, this))
+      }
+
+      this.$menu
+        .on('click', $.proxy(this.click, this))
+        .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
+        .on('mouseleave', 'li', $.proxy(this.mouseleave, this))
+    }
+
+  , eventSupported: function(eventName) {
+      var isSupported = eventName in this.$element
+      if (!isSupported) {
+        this.$element.setAttribute(eventName, 'return;')
+        isSupported = typeof this.$element[eventName] === 'function'
+      }
+      return isSupported
+    }
+
+  , move: function (e) {
+      if (!this.shown) return
+
+      switch(e.keyCode) {
+        case 9: // tab
+        case 13: // enter
+        case 27: // escape
+          e.preventDefault()
+          break
+
+        case 38: // up arrow
+          e.preventDefault()
+          this.prev()
+          break
+
+        case 40: // down arrow
+          e.preventDefault()
+          this.next()
+          break
+      }
+
+      e.stopPropagation()
+    }
+
+  , keydown: function (e) {
+      this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
+      this.move(e)
+    }
+
+  , keypress: function (e) {
+      if (this.suppressKeyPressRepeat) return
+      this.move(e)
+    }
+
+  , keyup: function (e) {
+      switch(e.keyCode) {
+        case 40: // down arrow
+        case 38: // up arrow
+        case 16: // shift
+        case 17: // ctrl
+        case 18: // alt
+          break
+
+        case 9: // tab
+        case 13: // enter
+          if (!this.shown) return
+          this.select()
+          break
+
+        case 27: // escape
+          if (!this.shown) return
+          this.hide()
+          break
+
+        default:
+          this.lookup()
+      }
+
+      e.stopPropagation()
+      e.preventDefault()
+  }
+
+  , focus: function (e) {
+      this.focused = true
+    }
+
+  , blur: function (e) {
+      this.focused = false
+      if (!this.mousedover && this.shown) this.hide()
+    }
+
+  , click: function (e) {
+      e.stopPropagation()
+      e.preventDefault()
+      this.select()
+      this.$element.focus()
+    }
+
+  , mouseenter: function (e) {
+      this.mousedover = true
+      this.$menu.find('.active').removeClass('active')
+      $(e.currentTarget).addClass('active')
+    }
+
+  , mouseleave: function (e) {
+      this.mousedover = false
+      if (!this.focused && this.shown) this.hide()
+    }
+
+  }
+
+
+  /* TYPEAHEAD PLUGIN DEFINITION
+   * =========================== */
+
+  var old = $.fn.typeahead
+
+  $.fn.typeahead = function (option) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('typeahead')
+        , options = typeof option == 'object' && option
+      if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  $.fn.typeahead.defaults = {
+    source: []
+  , items: 8
+  , menu: '<ul class="typeahead dropdown-menu"></ul>'
+  , item: '<li><a href="#"></a></li>'
+  , minLength: 1
+  }
+
+  $.fn.typeahead.Constructor = Typeahead
+
+
+ /* TYPEAHEAD NO CONFLICT
+  * =================== */
+
+  $.fn.typeahead.noConflict = function () {
+    $.fn.typeahead = old
+    return this
+  }
+
+
+ /* TYPEAHEAD DATA-API
+  * ================== */
+
+  $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
+    var $this = $(this)
+    if ($this.data('typeahead')) return
+    $this.typeahead($this.data())
+  })
+
+}(window.jQuery);
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/js/bootstrap.min.js b/src/main/webapp/static/js/paella/player/resources/bootstrap/js/bootstrap.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..f6736a8608a9ce72019335a85c14986f354b9675
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/bootstrap/js/bootstrap.min.js
@@ -0,0 +1,7 @@
+/**
+* Bootstrap.js by @fat & @mdo
+* plugins: bootstrap-transition.js, bootstrap-modal.js, bootstrap-dropdown.js, bootstrap-scrollspy.js, bootstrap-tab.js, bootstrap-tooltip.js, bootstrap-popover.js, bootstrap-affix.js, bootstrap-alert.js, bootstrap-button.js, bootstrap-collapse.js, bootstrap-carousel.js, bootstrap-typeahead.js
+* Copyright 2012 Twitter, Inc.
+* http://www.apache.org/licenses/LICENSE-2.0.txt
+*/
+!function(a){a(function(){a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){var b=function(b,c){this.options=c,this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this,c=a.Event("show");this.$element.trigger(c);if(this.isShown||c.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var c=a.support.transition&&b.$element.hasClass("fade");b.$element.parent().length||b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in").attr("aria-hidden",!1),b.enforceFocus(),c?b.$element.one(a.support.transition.end,function(){b.$element.focus().trigger("shown")}):b.$element.focus().trigger("shown")})},hide:function(b){b&&b.preventDefault();var c=this;b=a.Event("hide"),this.$element.trigger(b);if(!this.isShown||b.isDefaultPrevented())return;this.isShown=!1,this.escape(),a(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),a.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var b=this;a(document).on("focusin.modal",function(a){b.$element[0]!==a.target&&!b.$element.has(a.target).length&&b.$element.focus()})},escape:function(){var a=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(b){b.which==27&&a.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),b.hideModal()},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),b.hideModal()})},hideModal:function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?a.proxy(this.$element[0].focus,this.$element[0]):a.proxy(this.hide,this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!b)return;e?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b):b()):b&&b()}};var c=a.fn.modal;a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("modal"),f=a.extend({},a.fn.modal.defaults,d.data(),typeof c=="object"&&c);e||d.data("modal",e=new b(this,f)),typeof c=="string"?e[c]():f.show&&e.show()})},a.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f).one("hide",function(){c.focus()})})}(window.jQuery),!function(a){function d(){a(b).each(function(){e(a(this)).removeClass("open")})}function e(b){var c=b.attr("data-target"),d;c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,"")),d=c&&a(c);if(!d||!d.length)d=b.parent();return d}var b="[data-toggle=dropdown]",c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),f,g;if(c.is(".disabled, :disabled"))return;return f=e(c),g=f.hasClass("open"),d(),g||f.toggleClass("open"),c.focus(),!1},keydown:function(c){var d,f,g,h,i,j;if(!/(38|40|27)/.test(c.keyCode))return;d=a(this),c.preventDefault(),c.stopPropagation();if(d.is(".disabled, :disabled"))return;h=e(d),i=h.hasClass("open");if(!i||i&&c.keyCode==27)return c.which==27&&h.find(b).focus(),d.click();f=a("[role=menu] li:not(.divider):visible a",h);if(!f.length)return;j=f.index(f.filter(":focus")),c.keyCode==38&&j>0&&j--,c.keyCode==40&&j<f.length-1&&j++,~j||(j=0),f.eq(j).focus()}};var f=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=f,this},a(document).on("click.dropdown.data-api",d).on("click.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.dropdown-menu",function(a){a.stopPropagation()}).on("click.dropdown.data-api",b,c.prototype.toggle).on("keydown.dropdown.data-api",b+", [role=menu]",c.prototype.keydown)}(window.jQuery),!function(a){function b(b,c){var d=a.proxy(this.process,this),e=a(b).is("body")?a(window):a(b),f;this.options=a.extend({},a.fn.scrollspy.defaults,c),this.$scrollElement=e.on("scroll.scroll-spy.data-api",d),this.selector=(this.options.target||(f=a(b).attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=a("body"),this.refresh(),this.process()}b.prototype={constructor:b,refresh:function(){var b=this,c;this.offsets=a([]),this.targets=a([]),c=this.$body.find(this.selector).map(function(){var c=a(this),d=c.data("target")||c.attr("href"),e=/^#\w/.test(d)&&a(d);return e&&e.length&&[[e.position().top+(!a.isWindow(b.$scrollElement.get(0))&&b.$scrollElement.scrollTop()),d]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},process:function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},activate:function(b){var c,d;this.activeTarget=b,a(this.selector).parent(".active").removeClass("active"),d=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',c=a(d).parent("li").addClass("active"),c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active")),c.trigger("activate")}};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("scrollspy"),f=typeof c=="object"&&c;e||d.data("scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.defaults={offset:10},a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){var b=function(b){this.element=a(b)};b.prototype={constructor:b,show:function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target"),e,f,g;d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;e=c.find(".active:last a")[0],g=a.Event("show",{relatedTarget:e}),b.trigger(g);if(g.isDefaultPrevented())return;f=a(d),this.activate(b.parent("li"),c),this.activate(f,f.parent(),function(){b.trigger({type:"shown",relatedTarget:e})})},activate:function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g):g(),e.removeClass("in")}};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("tab");e||d.data("tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f,g,h,i;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,g=this.options.trigger.split(" ");for(i=g.length;i--;)h=g[i],h=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):h!="manual"&&(e=h=="hover"?"mouseenter":"focus",f=h=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this)));this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,this.$element.data(),b),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a.fn[this.type].defaults,d={},e;this._options&&a.each(this._options,function(a,b){c[a]!=b&&(d[a]=b)},this),e=a(b.currentTarget)[this.type](d).data(this.type);if(!e.options.delay||!e.options.delay.show)return e.show();clearTimeout(this.timeout),e.hoverState="in",this.timeout=setTimeout(function(){e.hoverState=="in"&&e.show()},e.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var b,c,d,e,f,g,h=a.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(h);if(h.isDefaultPrevented())return;b=this.tip(),this.setContent(),this.options.animation&&b.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,b[0],this.$element[0]):this.options.placement,b.detach().css({top:0,left:0,display:"block"}),this.options.container?b.appendTo(this.options.container):b.insertAfter(this.$element),c=this.getPosition(),d=b[0].offsetWidth,e=b[0].offsetHeight;switch(f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}this.applyPlacement(g,f),this.$element.trigger("shown")}},applyPlacement:function(a,b){var c=this.tip(),d=c[0].offsetWidth,e=c[0].offsetHeight,f,g,h,i;c.offset(a).addClass(b).addClass("in"),f=c[0].offsetWidth,g=c[0].offsetHeight,b=="top"&&g!=e&&(a.top=a.top+e-g,i=!0),b=="bottom"||b=="top"?(h=0,a.left<0&&(h=a.left*-2,a.left=0,c.offset(a),f=c[0].offsetWidth,g=c[0].offsetHeight),this.replaceArrow(h-d+f,f,"left")):this.replaceArrow(g-e,g,"top"),i&&c.offset(a)},replaceArrow:function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function e(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip(),d=a.Event("hide");this.$element.trigger(d);if(d.isDefaultPrevented())return;return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?e():c.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var b=this.$element[0];return a.extend({},typeof b.getBoundingClientRect=="function"?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=b?a(b.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=(typeof c.content=="function"?c.content.call(b[0]):c.content)||b.attr("data-content"),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),!function(a){var b=function(b,c){this.options=a.extend({},a.fn.affix.defaults,c),this.$window=a(window).on("scroll.affix.data-api",a.proxy(this.checkPosition,this)).on("click.affix.data-api",a.proxy(function(){setTimeout(a.proxy(this.checkPosition,this),1)},this)),this.$element=a(b),this.checkPosition()};b.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var b=a(document).height(),c=this.$window.scrollTop(),d=this.$element.offset(),e=this.options.offset,f=e.bottom,g=e.top,h="affix affix-top affix-bottom",i;typeof e!="object"&&(f=g=e),typeof g=="function"&&(g=e.top()),typeof f=="function"&&(f=e.bottom()),i=this.unpin!=null&&c+this.unpin<=d.top?!1:f!=null&&d.top+this.$element.height()>=b-f?"bottom":g!=null&&c<=g?"top":!1;if(this.affixed===i)return;this.affixed=i,this.unpin=i=="bottom"?d.top-c:null,this.$element.removeClass(h).addClass("affix"+(i?"-"+i:""))};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("affix"),f=typeof c=="object"&&c;e||d.data("affix",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.defaults={offset:0},a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery),!function(a){var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.alert.data-api",b,c.prototype.close)}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b,c,d,e;if(this.transitioning||this.$element.hasClass("in"))return;b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find("> .accordion-group > .in");if(d&&d.length){e=d.data("collapse");if(e&&e.transitioning)return;d.collapse("hide"),e||d.data("collapse",null)}this.$element[b](0),this.transition("addClass",a.Event("show"),"shown"),a.support.transition&&this.$element[b](this.$element[0][c])},hide:function(){var b;if(this.transitioning||!this.$element.hasClass("in"))return;b=this.dimension(),this.reset(this.$element[b]()),this.transition("removeClass",a.Event("hide"),"hidden"),this.$element[b](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a!==null?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c.type=="show"&&e.reset(),e.transitioning=0,e.$element.trigger(d)};this.$element.trigger(c);if(c.isDefaultPrevented())return;this.transitioning=1,this.$element[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=a.extend({},a.fn.collapse.defaults,d.data(),typeof c=="object"&&c);e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();c[a(e).hasClass("in")?"addClass":"removeClass"]("collapsed"),a(e).collapse(f)})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(b){var c=this.getActiveIndex(),d=this;if(b>this.$items.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){d.to(b)}):c==b?this.pause().cycle():this.slide(b>c?"next":"prev",a(this.$items[b]))},pause:function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j;this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h](),j=a.Event("slide",{relatedTarget:e[0],direction:g});if(e.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")}));if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=a.extend({},a.fn.carousel.defaults,typeof c=="object"&&c),g=typeof c=="string"?c:f.slide;e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),c.data()),g;e.carousel(f),(g=c.attr("data-slide-to"))&&e.data("carousel").pause().to(g).cycle(),b.preventDefault()})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=a(this.options.menu),this.shown=!1,this.listen()};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(a)).change(),this.hide()},updater:function(a){return a},show:function(){var b=a.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:b.top+b.height,left:b.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){var c;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(c=a.isFunction(this.source)?this.source(this.query,a.proxy(this.process,this)):this.source,c?this.process(c):this)},process:function(b){var c=this;return b=a.grep(b,function(a){return c.matcher(a)}),b=this.sorter(b),b.length?this.render(b.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(a){return~a.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){var b=[],c=[],d=[],e;while(e=a.shift())e.toLowerCase().indexOf(this.query.toLowerCase())?~e.indexOf(this.query)?c.push(e):d.push(e):b.push(e);return b.concat(c,d)},highlighter:function(a){var b=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return a.replace(new RegExp("("+b+")","ig"),function(a,b){return"<strong>"+b+"</strong>"})},render:function(b){var c=this;return b=a(b).map(function(b,d){return b=a(c.options.item).attr("data-value",d),b.find("a").html(c.highlighter(d)),b[0]}),b.first().addClass("active"),this.$menu.html(b),this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active")},listen:function(){this.$element.on("focus",a.proxy(this.focus,this)).on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",a.proxy(this.keydown,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this)).on("mouseleave","li",a.proxy(this.mouseleave,this))},eventSupported:function(a){var b=a in this.$element;return b||(this.$element.setAttribute(a,"return;"),b=typeof this.$element[a]=="function"),b},move:function(a){if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:a.preventDefault(),this.prev();break;case 40:a.preventDefault(),this.next()}a.stopPropagation()},keydown:function(b){this.suppressKeyPressRepeat=~a.inArray(b.keyCode,[40,38,9,13,27]),this.move(b)},keypress:function(a){if(this.suppressKeyPressRepeat)return;this.move(a)},keyup:function(a){switch(a.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}a.stopPropagation(),a.preventDefault()},focus:function(a){this.focused=!0},blur:function(a){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(a){a.stopPropagation(),a.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(b){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")},mouseleave:function(a){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var c=a.fn.typeahead;a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},a.fn.typeahead.Constructor=b,a.fn.typeahead.noConflict=function(){return a.fn.typeahead=c,this},a(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);if(c.data("typeahead"))return;c.typeahead(c.data())})}(window.jQuery)
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/bootstrap/js/npm.js b/src/main/webapp/static/js/paella/player/resources/bootstrap/js/npm.js
new file mode 100644
index 0000000000000000000000000000000000000000..bf6aa80602d9303b61e8d5e63c10568e55b6a4d8
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/bootstrap/js/npm.js
@@ -0,0 +1,13 @@
+// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
+require('../../js/transition.js')
+require('../../js/alert.js')
+require('../../js/button.js')
+require('../../js/carousel.js')
+require('../../js/collapse.js')
+require('../../js/dropdown.js')
+require('../../js/modal.js')
+require('../../js/tooltip.js')
+require('../../js/popover.js')
+require('../../js/scrollspy.js')
+require('../../js/tab.js')
+require('../../js/affix.js')
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/deps/dash.all.js b/src/main/webapp/static/js/paella/player/resources/deps/dash.all.js
new file mode 100644
index 0000000000000000000000000000000000000000..843ab7a3e274f74513e164b8f2229a22def07301
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/deps/dash.all.js
@@ -0,0 +1,14 @@
+!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(b,c,d){"use strict";var e={};e.encode=function(a){for(var b=[],c=0;c<a.length;++c){var d=a.charCodeAt(c);d<128?b.push(d):d<2048?(b.push(192|d>>6),b.push(128|63&d)):d<65536?(b.push(224|d>>12),b.push(128|63&d>>6),b.push(128|63&d)):(b.push(240|d>>18),b.push(128|63&d>>12),b.push(128|63&d>>6),b.push(128|63&d))}return b},e.decode=function(a){for(var b=[],c=0;c<a.length;){var d=a[c++];d<128||(d<224?(d=(31&d)<<6,d|=63&a[c++]):d<240?(d=(15&d)<<12,d|=(63&a[c++])<<6,d|=63&a[c++]):(d=(7&d)<<18,d|=(63&a[c++])<<12,d|=(63&a[c++])<<6,d|=63&a[c++])),b.push(String.fromCharCode(d))}return b.join("")};var f={};!function(b){var c=function(a){for(var c=0,d=[],e=0|a.length/3;0<e--;){var f=(a[c]<<16)+(a[c+1]<<8)+a[c+2];c+=3,d.push(b.charAt(63&f>>18)),d.push(b.charAt(63&f>>12)),d.push(b.charAt(63&f>>6)),d.push(b.charAt(63&f))}if(2==a.length-c){var f=(a[c]<<16)+(a[c+1]<<8);d.push(b.charAt(63&f>>18)),d.push(b.charAt(63&f>>12)),d.push(b.charAt(63&f>>6)),d.push("=")}else if(1==a.length-c){var f=a[c]<<16;d.push(b.charAt(63&f>>18)),d.push(b.charAt(63&f>>12)),d.push("==")}return d.join("")},d=function(){for(var a=[],c=0;c<b.length;++c)a[b.charCodeAt(c)]=c;return a["=".charCodeAt(0)]=0,a}(),g=function(a){for(var b=0,c=[],e=0|a.length/4;0<e--;){var f=(d[a.charCodeAt(b)]<<18)+(d[a.charCodeAt(b+1)]<<12)+(d[a.charCodeAt(b+2)]<<6)+d[a.charCodeAt(b+3)];c.push(255&f>>16),c.push(255&f>>8),c.push(255&f),b+=4}return c&&("="==a.charAt(b-2)?(c.pop(),c.pop()):"="==a.charAt(b-1)&&c.pop()),c},h={};h.encode=function(a){for(var b=[],c=0;c<a.length;++c)b.push(a.charCodeAt(c));return b},h.decode=function(b){for(var c=0;c<s.length;++c)a[c]=String.fromCharCode(a[c]);return a.join("")},f.decodeArray=function(a){var b=g(a);return new Uint8Array(b)},f.encodeASCII=function(a){var b=h.encode(a);return c(b)},f.decodeASCII=function(a){var b=g(a);return h.decode(b)},f.encode=function(a){var b=e.encode(a);return c(b)},f.decode=function(a){var b=g(a);return e.decode(b)}}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),"undefined"!=typeof d&&(d.decode=f.decode,d.decodeArray=f.decodeArray)},{}],2:[function(a,b,c){"use strict";!function(a){var b={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},c=function(a){var c=a;return b.hasOwnProperty(a)&&(c=b[a]),String.fromCharCode(c)},d=15,e=32,f={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},g={17:2,18:4,21:6,22:8,23:10,19:13,20:15},h={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},i={25:2,26:4,29:6,30:8,31:10,27:13,28:15},j=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],k={verboseFilter:{DATA:3,DEBUG:3,INFO:2,WARNING:2,TEXT:1,ERROR:0},time:null,verboseLevel:0,setTime:function(a){this.time=a},log:function(a,b){var c=this.verboseFilter[a];this.verboseLevel>=c&&console.log(this.time+" ["+a+"] "+b)}},l=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c].toString(16));return b},m=function(a,b,c,d,e){this.foreground=a||"white",this.underline=b||!1,this.italics=c||!1,this.background=d||"black",this.flash=e||!1};m.prototype={reset:function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},setStyles:function(a){for(var b=["foreground","underline","italics","background","flash"],c=0;c<b.length;c++){var d=b[c];a.hasOwnProperty(d)&&(this[d]=a[d])}},isDefault:function(){return"white"===this.foreground&&!this.underline&&!this.italics&&"black"===this.background&&!this.flash},equals:function(a){return this.foreground===a.foreground&&this.underline===a.underline&&this.italics===a.italics&&this.background===a.background&&this.flash===a.flash},copy:function(a){this.foreground=a.foreground,this.underline=a.underline,this.italics=a.italics,this.background=a.background,this.flash=a.flash},toString:function(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash}};var n=function(a,b,c,d,e,f){this.uchar=a||" ",this.penState=new m(b,c,d,e,f)};n.prototype={reset:function(){this.uchar=" ",this.penState.reset()},setChar:function(a,b){this.uchar=a,this.penState.copy(b)},setPenState:function(a){this.penState.copy(a)},equals:function(a){return this.uchar===a.uchar&&this.penState.equals(a.penState)},copy:function(a){this.uchar=a.uchar,this.penState.copy(a.penState)},isEmpty:function(){return" "===this.uchar&&this.penState.isDefault()}};var o=function(){this.chars=[];for(var a=0;a<e;a++)this.chars.push(new n);this.pos=0,this.currPenState=new m};o.prototype={equals:function(a){for(var b=!0,c=0;c<e;c++)if(!this.chars[c].equals(a.chars[c])){b=!1;break}return b},copy:function(a){for(var b=0;b<e;b++)this.chars[b].copy(a.chars[b])},isEmpty:function(){for(var a=!0,b=0;b<e;b++)if(!this.chars[b].isEmpty()){a=!1;break}return a},setCursor:function(a){this.pos!==a&&(this.pos=a),this.pos<0?(k.log("ERROR","Negative cursor position "+this.pos),this.pos=0):this.pos>e&&(k.log("ERROR","Too large cursor position "+this.pos),this.pos=e)},moveCursor:function(a){var b=this.pos+a;if(a>1)for(var c=this.pos+1;c<b+1;c++)this.chars[c].setPenState(this.currPenState);this.setCursor(b)},backSpace:function(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)},insertChar:function(a){a>=144&&this.backSpace();var b=c(a);return this.pos>=e?void k.log("ERROR","Cannot insert "+a.toString(16)+" ("+b+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(b,this.currPenState),void this.moveCursor(1))},clearFromPos:function(a){var b;for(b=a;b<e;b++)this.chars[b].reset()},clear:function(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()},clearToEndOfRow:function(){this.clearFromPos(this.pos)},getTextString:function(){for(var a=[],b=!0,c=0;c<e;c++){var d=this.chars[c].uchar;" "!==d&&(b=!1),a.push(d)}return b?"":a.join("")},setPenStyles:function(a){this.currPenState.setStyles(a);var b=this.chars[this.pos];b.setPenState(this.currPenState)}};var p=function(){this.rows=[];for(var a=0;a<d;a++)this.rows.push(new o);this.currRow=d-1,this.nrRollUpRows=null,this.reset()};p.prototype={reset:function(){for(var a=0;a<d;a++)this.rows[a].clear();this.currRow=d-1},equals:function(a){for(var b=!0,c=0;c<d;c++)if(!this.rows[c].equals(a.rows[c])){b=!1;break}return b},copy:function(a){for(var b=0;b<d;b++)this.rows[b].copy(a.rows[b])},isEmpty:function(){for(var a=!0,b=0;b<d;b++)if(!this.rows[b].isEmpty()){a=!1;break}return a},backSpace:function(){var a=this.rows[this.currRow];a.backSpace()},clearToEndOfRow:function(){var a=this.rows[this.currRow];a.clearToEndOfRow()},insertChar:function(a){var b=this.rows[this.currRow];b.insertChar(a)},setPen:function(a){var b=this.rows[this.currRow];b.setPenStyles(a)},moveCursor:function(a){var b=this.rows[this.currRow];b.moveCursor(a)},setCursor:function(a){k.log("INFO","setCursor: "+a);var b=this.rows[this.currRow];b.setCursor(a)},setPAC:function(a){k.log("INFO","pacData = "+JSON.stringify(a));var b=a.row-1;this.nrRollUpRows&&b<this.nrRollUpRows-1&&(b=this.nrRollUpRows-1),this.currRow=b;var c=this.rows[this.currRow];if(null!==a.indent){var d=a.indent,e=Math.max(d-1,0);c.setCursor(a.indent),a.color=c.chars[e].penState.foreground}var f={foreground:a.color,underline:a.underline,italics:a.italics,background:"black",flash:!1};this.setPen(f)},setBkgData:function(a){k.log("INFO","bkgData = "+JSON.stringify(a)),this.backSpace(),this.setPen(a),this.insertChar(32)},setRollUpRows:function(a){this.nrRollUpRows=a},rollUp:function(){if(null===this.nrRollUpRows)return void k.log("DEBUG","roll_up but nrRollUpRows not set yet");k.log("TEXT",this.getDisplayText());var a=this.currRow+1-this.nrRollUpRows,b=this.rows.splice(a,1)[0];b.clear(),this.rows.splice(this.currRow,0,b),k.log("INFO","Rolling up")},getDisplayText:function(a){a=a||!1;for(var b=[],c="",e=-1,f=0;f<d;f++){var g=this.rows[f].getTextString();g&&(e=f+1,a?b.push("Row "+e+': "'+g+'"'):b.push(g.trim()))}return b.length>0&&(c=a?"["+b.join(" | ")+"]":b.join("\n")),c},getTextAndFormat:function(){return this.rows}};var q=function(a,b){this.chNr=a,this.outputFilter=b,this.mode=null,this.verbose=0,this.displayedMemory=new p,this.nonDisplayedMemory=new p,this.lastOutputScreen=new p,this.currRollUpRow=this.displayedMemory.rows[d-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null};q.prototype={modes:["MODE_ROLL-UP","MODE_POP-ON","MODE_PAINT-ON","MODE_TEXT"],reset:function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[d-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.lastCueEndTime=null},getHandler:function(){return this.outputFilter},setHandler:function(a){this.outputFilter=a},setPAC:function(a){this.writeScreen.setPAC(a)},setBkgData:function(a){this.writeScreen.setBkgData(a)},setMode:function(a){a!==this.mode&&(this.mode=a,k.log("INFO","MODE="+a),"MODE_POP-ON"==this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=a)},insertChars:function(a){for(var b=0;b<a.length;b++)this.writeScreen.insertChar(a[b]);var c=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";k.log("INFO",c+": "+this.writeScreen.getDisplayText(!0)),"MODE_PAINT-ON"!==this.mode&&"MODE_ROLL-UP"!==this.mode||(k.log("TEXT","DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())},cc_RCL:function(){k.log("INFO","RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")},cc_BS:function(){k.log("INFO","BS - BackSpace"),"MODE_TEXT"!==this.mode&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())},cc_AOF:function(){},cc_AON:function(){},cc_DER:function(){k.log("INFO","DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()},cc_RU:function(a){k.log("INFO","RU("+a+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(a)},cc_FON:function(){k.log("INFO","FON - Flash On"),this.writeScreen.setPen({flash:!0})},cc_RDC:function(){k.log("INFO","RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")},cc_TR:function(){k.log("INFO","TR"),this.setMode("MODE_TEXT")},cc_RTD:function(){k.log("INFO","RTD"),this.setMode("MODE_TEXT")},cc_EDM:function(){k.log("INFO","EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate()},cc_CR:function(){k.log("CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate()},cc_ENM:function(){k.log("INFO","ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()},cc_EOC:function(){if(k.log("INFO","EOC - End Of Caption"),"MODE_POP-ON"===this.mode){var a=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=a,this.writeScreen=this.nonDisplayedMemory,k.log("TEXT","DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate()},cc_TO:function(a){k.log("INFO","TO("+a+") - Tab Offset"),this.writeScreen.moveCursor(a)},cc_MIDROW:function(a){var b={flash:!1};if(b.underline=a%2===1,b.italics=a>=46,b.italics)b.foreground="white";else{var c=Math.floor(a/2)-16,d=["white","green","blue","cyan","red","yellow","magenta"];b.foreground=d[c]}k.log("INFO","MIDROW: "+JSON.stringify(b)),this.writeScreen.setPen(b)},outputDataUpdate:function(){var a=k.time;null!==a&&this.outputFilter&&(this.outputFilter.updateData&&this.outputFilter.updateData(a,this.displayedMemory),null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,a,this.lastOutputScreen),this.cueStartTime=this.displayedMemory.isEmpty()?null:a):this.cueStartTime=a,this.lastOutputScreen.copy(this.displayedMemory))},cueSplitAtTime:function(a){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,a,this.displayedMemory),this.cueStartTime=a))}};var r=function(a,b,c){this.field=a||1,this.outputs=[b,c],this.channels=[new q(1,b),new q(2,c)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.bufferedData=[],this.startTime=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}};r.prototype={getHandler:function(a){return this.channels[a].getHandler()},setHandler:function(a,b){this.channels[a].setHandler(b)},addData:function(a,b){var c,d,e,f=!1;this.lastTime=a,k.setTime(a);for(var g=0;g<b.length;g+=2)if(d=127&b[g],e=127&b[g+1],0!==d||0!==e){if(k.log("DATA","["+l([b[g],b[g+1]])+"] -> ("+l([d,e])+")"),c=this.parseCmd(d,e),c||(c=this.parseMidrow(d,e)),c||(c=this.parsePAC(d,e)),c||(c=this.parseBackgroundAttributes(d,e)),!c&&(f=this.parseChars(d,e)))if(this.currChNr&&this.currChNr>=0){var h=this.channels[this.currChNr-1];h.insertChars(f)}else k.log("WARNING","No channel found yet. TEXT-MODE?");c?this.dataCounters.cmd+=2:f?this.dataCounters.char+=2:(this.dataCounters.other+=2,k.log("WARNING","Couldn't parse cleaned data "+l([d,e])+" orig: "+l([b[g],b[g+1]])))}else this.dataCounters.padding+=2},parseCmd:function(a,b){var c=null,d=(20===a||28===a)&&32<=b&&b<=47,e=(23===a||31===a)&&33<=b&&b<=35;if(!d&&!e)return!1;if(a===this.lastCmdA&&b===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,k.log("DEBUG","Repeated command ("+l([a,b])+") is dropped"),!0;c=20===a||23===a?1:2;var f=this.channels[c-1];return 20===a||28===a?32===b?f.cc_RCL():33===b?f.cc_BS():34===b?f.cc_AOF():35===b?f.cc_AON():36===b?f.cc_DER():37===b?f.cc_RU(2):38===b?f.cc_RU(3):39===b?f.cc_RU(4):40===b?f.cc_FON():41===b?f.cc_RDC():42===b?f.cc_TR():43===b?f.cc_RTD():44===b?f.cc_EDM():45===b?f.cc_CR():46===b?f.cc_ENM():47===b&&f.cc_EOC():f.cc_TO(b-32),this.lastCmdA=a,this.lastCmdB=b,this.currChNr=c,!0},parseMidrow:function(a,b){var c=null;if((17===a||25===a)&&32<=b&&b<=47){if(c=17===a?1:2,c!==this.currChNr)return k.log("ERROR","Mismatch channel in midrow parsing"),!1;var d=this.channels[c-1];return d.cc_MIDROW(b),k.log("DEBUG","MIDROW ("+l([a,b])+")"),!0}return!1},parsePAC:function(a,b){var c=null,d=null,e=(17<=a&&a<=23||25<=a&&a<=31)&&64<=b&&b<=127,j=(16===a||24===a)&&64<=b&&b<=95;if(!e&&!j)return!1;if(a===this.lastCmdA&&b===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,!0;c=a<=23?1:2,d=64<=b&&b<=95?1===c?f[a]:h[a]:1===c?g[a]:i[a];var k=this.interpretPAC(d,b),l=this.channels[c-1];return l.setPAC(k),this.lastCmdA=a,this.lastCmdB=b,this.currChNr=c,!0},interpretPAC:function(a,b){var c=b,d={color:null,italics:!1,indent:null,underline:!1,row:a};return c=b>95?b-96:b-64,d.underline=1===(1&c),c<=13?d.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(c/2)]:c<=15?(d.italics=!0,d.color="white"):d.indent=4*Math.floor((c-16)/2),d},parseChars:function(a,b){var d=null,e=null,f=null;if(a>=25?(d=2,f=a-8):(d=1,f=a),17<=f&&f<=19){var g=b;g=17===f?b+80:18===f?b+112:b+144,k.log("INFO","Special char '"+c(g)+"' in channel "+d),e=[g]}else 32<=a&&a<=127&&(e=0===b?[a]:[a,b]);if(e){var h=l(e);k.log("DEBUG","Char codes =  "+h.join(",")),this.lastCmdA=null,this.lastCmdB=null}return e},parseBackgroundAttributes:function(a,b){var c,d,e,f,g=(16===a||24===a)&&32<=b&&b<=47,h=(23===a||31===a)&&45<=b&&b<=47;return!(!g&&!h)&&(c={},16===a||24===a?(d=Math.floor((b-32)/2),c.background=j[d],b%2===1&&(c.background=c.background+"_semi")):45===b?c.background="transparent":(c.foreground="black",47===b&&(c.underline=!0)),e=a<24?1:2,f=this.channels[e-1],f.setBkgData(c),this.lastCmdA=null,this.lastCmdB=null,!0)},reset:function(){for(var a=0;a<this.channels.length;a++)this.channels[a]&&this.channels[a].reset();this.lastCmdA=null,this.lastCmdB=null},cueSplitAtTime:function(a){for(var b=0;b<this.channels.length;b++)this.channels[b]&&this.channels[b].cueSplitAtTime(a)}};var s=function(a,b,c){for(var d=0,e=b,f=0,g=[],h=function(a,b,c,d){if(4!==a||b<8)return null;var e=c.getUint8(d),f=c.getUint16(d+1),g=c.getUint32(d+3),h=c.getUint8(d+7);return 181==e&&49==f&&1195456820==g&&3==h};e<b+c;){if(d=a.getUint32(e),f=31&a.getUint8(e+4),6===f)for(var i=e+5,j=-1;i<e+4+d-1;){j=0;for(var k=255;255===k;)k=a.getUint8(i),j+=k,i++;var l=0;for(k=255;255===k;)k=a.getUint8(i),l+=k,i++;h(j,l,a,i)&&g.push([i,l]),i+=l}e+=d+4}return g},t=function(a,b){var c=b[0],d=[[],[]];c+=8;var e=31&a.getUint8(c);c+=2;for(var f=0;f<e;f++){var g=a.getUint8(c),h=4&g,i=3&g;c++;var j=a.getUint8(c);c++;var k=a.getUint8(c);c++,h&&(127&j)+(127&k)!==0&&(0===i?(d[0].push(j),d[0].push(k)):1===i&&(d[1].push(j),d[1].push(k)))}return d};a.logger=k,a.PenState=m,a.CaptionScreen=p,a.Cea608Parser=r,a.findCea608Nalus=s,a.extractCea608DataFromRange=t}("undefined"==typeof c?(void 0).cea608parser={}:c)},{}],3:[function(a,b,c){"use strict";function d(a){var b,c,d;for(b=[],d=0,c=a.length;d<c;d+=1)a[d].isRoot?b.push("root"):b.push(a[d].name);var e=function(a,b){var c;if(null!==a&&null!==b)for(c in a)a.hasOwnProperty(c)&&(b.hasOwnProperty(c)||(b[c]=a[c]))},f=function(a,b,c){var d,f,g,h,i;if(null!==a&&0!==a.length)for(d=0,f=a.length;d<f;d+=1)g=a[d],b.hasOwnProperty(g.name)&&(c.hasOwnProperty(g.name)?g.merge&&(h=b[g.name],i=c[g.name],"object"==typeof h&&"object"==typeof i?e(h,i):null!=g.mergeFunction?c[g.name]=g.mergeFunction(h,i):c[g.name]=h+i):c[g.name]=b[g.name])},g=function a(b,c){var d,e,g,h,i,j,k,l=b;if(null!==l.children&&0!==l.children.length)for(d=0,e=l.children.length;d<e;d+=1)if(j=l.children[d],c.hasOwnProperty(j.name))if(j.isArray)for(i=c[j.name+"_asArray"],g=0,h=i.length;g<h;g+=1)k=i[g],f(l.properties,c,k),a(j,k);else k=c[j.name],f(l.properties,c,k),a(j,k)},h=function c(d){var e,f,h,i,j,k,l;if(null===d)return d;if("object"!=typeof d)return d;for(e=0,f=b.length;e<f;e+=1)"root"===b[e]&&(j=a[e],k=d,g(j,k));for(i in d)if(d.hasOwnProperty(i)&&"__children"!=i){if(h=b.indexOf(i),h!==-1)if(j=a[h],j.isArray)for(l=d[i+"_asArray"],e=0,f=l.length;e<f;e+=1)k=l[e],g(j,k);else k=d[i],g(j,k);c(d[i])}return d};return{run:h}}Object.defineProperty(c,"__esModule",{value:!0}),c.default=d,b.exports=c.default},{}],4:[function(a,b,c){"use strict";function d(a,b,c){function d(a){var b=a.localName;return null==b&&(b=a.baseName),null!=b&&""!=b||(b=a.nodeName),b}function e(a){return a.prefix}function f(a){return"string"==typeof a?a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;"):a}function g(a){return a.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&#x2F;/g,"/")}function h(f){if(f.nodeType==u.DOCUMENT_NODE){var i,j,k,l=f.firstChild;for(j=0,k=f.childNodes.length;j<k;j+=1)if(f.childNodes[j].nodeType!==u.COMMENT_NODE){l=f.childNodes[j];break}if(c)i=h(l);else{i={};var m=d(l);i[m]=h(l)}return i}if(f.nodeType==u.ELEMENT_NODE){var i=new Object;i.__cnt=0;for(var n=[],o=f.childNodes,p=0;p<o.length;p++){var l=o.item(p),m=d(l);if(i.__cnt++,null==i[m]){var q=h(l);if("#text"!=m||/[^\s]/.test(q)){var r={};r[m]=q,n.push(r)}i[m]=q,i[m+"_asArray"]=new Array(1),i[m+"_asArray"][0]=i[m]}else{if(null!=i[m]&&!(i[m]instanceof Array)){var s=i[m];i[m]=new Array,i[m][0]=s,i[m+"_asArray"]=i[m]}for(var v=0;null!=i[m][v];)v++;var q=h(l);if("#text"!=m||/[^\s]/.test(q)){var r={};r[m]=q,n.push(r)}i[m][v]=q}}i.__children=n;for(var w=0;w<f.attributes.length;w++){var x=f.attributes.item(w);i.__cnt++;for(var y=x.value,z=0,A=a.length;z<A;z++){var B=a[z];B.test(x)&&(y=B.converter(x.value))}i[b+x.name]=y}var C=e(f);return null!=C&&""!=C&&(i.__cnt++,i.__prefix=C),1==i.__cnt&&null!=i["#text"]&&(i=i["#text"]),null!=i["#text"]&&(i.__text=i["#text"],t&&(i.__text=g(i.__text)),delete i["#text"],delete i["#text_asArray"]),null!=i["#cdata-section"]&&(i.__cdata=i["#cdata-section"],delete i["#cdata-section"],delete i["#cdata-section_asArray"]),null==i.__text&&null==i.__cdata||(i.toString=function(){return(null!=this.__text?this.__text:"")+(null!=this.__cdata?this.__cdata:"")}),i}return f.nodeType==u.TEXT_NODE||f.nodeType==u.CDATA_SECTION_NODE?f.nodeValue:f.nodeType==u.COMMENT_NODE?null:void 0}function i(a,b,c,d){var e="<"+(null!=a&&null!=a.__prefix?a.__prefix+":":"")+b;if(null!=c)for(var f=0;f<c.length;f++){var g=c[f],h=a[g];e+=" "+g.substr(1)+"='"+h+"'"}return e+=d?"/>":">"}function j(a,b){return"</"+(null!=a.__prefix?a.__prefix+":":"")+b+">"}function k(a,b){return a.indexOf(b,a.length-b.length)!==-1}function l(a,b){return!!(k(b.toString(),"_asArray")||0==b.toString().indexOf("_")||a[b]instanceof Function)}function m(a){var b=0;if(a instanceof Object)for(var c in a)l(a,c)||b++;return b}function n(a){var b=[];if(a instanceof Object)for(var c in a)c.toString().indexOf("__")==-1&&0==c.toString().indexOf("_")&&b.push(c);return b}function o(a){var b="";return null!=a.__cdata&&(b+="<![CDATA["+a.__cdata+"]]>"),null!=a.__text&&(b+=t?f(a.__text):a.__text),b}function p(a){var b="";return a instanceof Object?b+=o(a):null!=a&&(b+=t?f(a):a),b}function q(a,b,c){var d="";if(0==a.length)d+=i(a,b,c,!0);else for(var e=0;e<a.length;e++)d+=i(a[e],b,n(a[e]),!1),d+=r(a[e]),d+=j(a[e],b);return d}function r(a){var b="",c=m(a);if(c>0)for(var d in a)if(!l(a,d)){var e=a[d],f=n(e);if(null==e||void 0==e)b+=i(e,d,f,!0);else if(e instanceof Object)if(e instanceof Array)b+=q(e,d,f);else{var g=m(e);g>0||null!=e.__text||null!=e.__cdata?(b+=i(e,d,f,!1),b+=r(e),b+=j(e,d)):b+=i(e,d,f,!0)}else b+=i(e,d,f,!1),b+=p(e),b+=j(e,d)}return b+=p(a)}null!==b&&void 0!==b||(b="_"),null!==c&&void 0!==c||(c=!1);var s="1.0.11",t=!1,u={ELEMENT_NODE:1,TEXT_NODE:3,CDATA_SECTION_NODE:4,COMMENT_NODE:8,DOCUMENT_NODE:9};this.parseXmlString=function(a){var b,c,d;if(window.DOMParser){c=new window.DOMParser;try{d=c.parseFromString("<","text/xml").getElementsByTagName("parsererror")[0].namespaceURI}catch(e){}try{b=c.parseFromString(a,"text/xml"),d&&b.getElementsByTagNameNS(d,"parsererror").length&&(b=void 0)}catch(e){}}else 0==a.indexOf("<?")&&(a=a.substr(a.indexOf("?>")+2)),b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a);return b},this.xml2json=function(a){return h(a)},this.xml_str2json=function(a){var b=this.parseXmlString(a);return b?this.xml2json(b):void 0},this.json2xml_str=function(a){return r(a)},this.json2xml=function(a){var b=this.json2xml_str(a);return this.parseXmlString(b)},this.getVersion=function(){return s},this.escapeMode=function(a){t=a}}Object.defineProperty(c,"__esModule",{value:!0}),c.default=d,b.exports=c.default},{}],5:[function(a,b,c){(function(b){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}Object.defineProperty(c,"__esModule",{value:!0});var e=a(51),f=d(e),g=a(106),h=d(g),i=a(75),j=d(i),k=a(53),l=d(k),m=a(11),n=window||b,o=n.dashjs;o||(o=n.dashjs={}),o.MediaPlayer=f.default,o.Protection=h.default,o.MetricsReporting=j.default,o.MediaPlayerFactory=l.default,o.Version=(0,m.getVersionString)(),c.default=o,c.MediaPlayer=f.default,c.Protection=h.default,c.MetricsReporting=j.default,c.MediaPlayerFactory=l.default}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{106:106,11:11,51:51,53:53,75:75}],6:[function(a,b,c){/*! codem-isoboxer v0.2.2 https://github.com/madebyhiro/codem-isoboxer/blob/master/LICENSE.txt */
+var d={};d.parseBuffer=function(a){return new e(a).parse()},d.Utils={},d.Utils.dataViewToString=function(a,b){var c=b||"utf-8";if("undefined"!=typeof TextDecoder)return new TextDecoder(c).decode(a);var d=[],e=0;if("utf-8"===c)for(;e<a.byteLength;){var f=a.getUint8(e++);f<128||(f<224?(f=(31&f)<<6,f|=63&a.getUint8(e++)):f<240?(f=(15&f)<<12,f|=(63&a.getUint8(e++))<<6,f|=63&a.getUint8(e++)):(f=(7&f)<<18,f|=(63&a.getUint8(e++))<<12,f|=(63&a.getUint8(e++))<<6,f|=63&a.getUint8(e++))),d.push(String.fromCharCode(f))}else for(;e<a.byteLength;)d.push(String.fromCharCode(a.getUint8(e++)));return d.join("")},"undefined"!=typeof c&&(c.parseBuffer=d.parseBuffer,c.Utils=d.Utils),d.Cursor=function(a){this.offset="undefined"==typeof a?0:a};var e=function(a){this._raw=new DataView(a),this._cursor=new d.Cursor,this.boxes=[]};e.prototype.fetch=function(a){var b=this.fetchAll(a,!0);return b.length?b[0]:null},e.prototype.fetchAll=function(a,b){var c=[];return e._sweep.call(this,a,c,b),c},e.prototype.parse=function(){for(this._cursor.offset=0,this.boxes=[];this._cursor.offset<this._raw.byteLength;){var a=f.parse(this);if("undefined"==typeof a.type)break;this.boxes.push(a)}return this},e._sweep=function(a,b,c){this.type&&this.type==a&&b.push(this);for(var d in this.boxes){if(b.length&&c)return;e._sweep.call(this.boxes[d],a,b,c)}};var f=function(){this._cursor=new d.Cursor};f.parse=function(a){var b=new f;return b._offset=a._cursor.offset,b._root=a._root?a._root:a,b._raw=a._raw,b._parent=a,b._parseBox(),a._cursor.offset=b._raw.byteOffset+b._raw.byteLength,b},f.prototype._readInt=function(a){var b=null;switch(a){case 8:b=this._raw.getInt8(this._cursor.offset-this._raw.byteOffset);break;case 16:b=this._raw.getInt16(this._cursor.offset-this._raw.byteOffset);break;case 32:b=this._raw.getInt32(this._cursor.offset-this._raw.byteOffset);break;case 64:var c=this._raw.getInt32(this._cursor.offset-this._raw.byteOffset),d=this._raw.getInt32(this._cursor.offset-this._raw.byteOffset+4);b=c*Math.pow(2,32)+d}return this._cursor.offset+=a>>3,b},f.prototype._readUint=function(a){var b=null;switch(a){case 8:b=this._raw.getUint8(this._cursor.offset-this._raw.byteOffset);break;case 16:b=this._raw.getUint16(this._cursor.offset-this._raw.byteOffset);break;case 24:var c=this._raw.getUint16(this._cursor.offset-this._raw.byteOffset),d=this._raw.getUint8(this._cursor.offset-this._raw.byteOffset+2);b=(c<<8)+d;break;case 32:b=this._raw.getUint32(this._cursor.offset-this._raw.byteOffset);break;case 64:var c=this._raw.getUint32(this._cursor.offset-this._raw.byteOffset),d=this._raw.getUint32(this._cursor.offset-this._raw.byteOffset+4);b=c*Math.pow(2,32)+d}return this._cursor.offset+=a>>3,b},f.prototype._readString=function(a){for(var b="",c=0;c<a;c++){var d=this._readUint(8);b+=String.fromCharCode(d)}return b},f.prototype._readTerminatedString=function(){for(var a="";;){var b=this._readUint(8);if(0==b)break;a+=String.fromCharCode(b)}return a},f.prototype._readTemplate=function(a){var b=this._readUint(a/2),c=this._readUint(a/2);return b+c/Math.pow(2,a/2)},f.prototype._parseBox=function(){if(this._cursor.offset=this._offset,this._offset+8>this._raw.buffer.byteLength)return void(this._root._incomplete=!0);switch(this.size=this._readUint(32),this.type=this._readString(4),1==this.size&&(this.largesize=this._readUint(64)),"uuid"==this.type&&(this.usertype=this._readString(16)),this.size){case 0:this._raw=new DataView(this._raw.buffer,this._offset,this._raw.byteLength-this._cursor.offset);break;case 1:this._offset+this.size>this._raw.buffer.byteLength?(this._incomplete=!0,this._root._incomplete=!0):this._raw=new DataView(this._raw.buffer,this._offset,this.largesize);break;default:this._offset+this.size>this._raw.buffer.byteLength?(this._incomplete=!0,this._root._incomplete=!0):this._raw=new DataView(this._raw.buffer,this._offset,this.size)}!this._incomplete&&this._boxParsers[this.type]&&this._boxParsers[this.type].call(this)},f.prototype._parseFullBox=function(){this.version=this._readUint(8),this.flags=this._readUint(24)},f.prototype._boxParsers={},["moov","trak","tref","mdia","minf","stbl","edts","dinf","mvex","moof","traf","mfra","udta","meco","strk","vttc"].forEach(function(a){f.prototype._boxParsers[a]=function(){for(this.boxes=[];this._cursor.offset-this._raw.byteOffset<this._raw.byteLength;)this.boxes.push(f.parse(this))}}),f.prototype._boxParsers.elst=function(){this._parseFullBox(),this.entry_count=this._readUint(32),this.entries=[];for(var a=1;a<=this.entry_count;a++){var b={};1==this.version?(b.segment_duration=this._readUint(64),b.media_time=this._readInt(64)):(b.segment_duration=this._readUint(32),b.media_time=this._readInt(32)),b.media_rate_integer=this._readInt(16),b.media_rate_fraction=this._readInt(16),this.entries.push(b)}},f.prototype._boxParsers.emsg=function(){this._parseFullBox(),this.scheme_id_uri=this._readTerminatedString(),this.value=this._readTerminatedString(),this.timescale=this._readUint(32),this.presentation_time_delta=this._readUint(32),this.event_duration=this._readUint(32),this.id=this._readUint(32),this.message_data=new DataView(this._raw.buffer,this._cursor.offset,this._raw.byteLength-(this._cursor.offset-this._offset))},f.prototype._boxParsers.free=f.prototype._boxParsers.skip=function(){this.data=new DataView(this._raw.buffer,this._cursor.offset,this._raw.byteLength-(this._cursor.offset-this._offset))},f.prototype._boxParsers.ftyp=f.prototype._boxParsers.styp=function(){for(this.major_brand=this._readString(4),this.minor_versions=this._readUint(32),this.compatible_brands=[];this._cursor.offset-this._raw.byteOffset<this._raw.byteLength;)this.compatible_brands.push(this._readString(4))},f.prototype._boxParsers.hdlr=function(){this._parseFullBox(),this.pre_defined=this._readUint(32),this.handler_type=this._readString(4),this.reserved=[this._readUint(32),this._readUint(32),this._readUint(32)],this.name=this._readTerminatedString()},f.prototype._boxParsers.mdat=function(){this.data=new DataView(this._raw.buffer,this._cursor.offset,this._raw.byteLength-(this._cursor.offset-this._offset))},f.prototype._boxParsers.mdhd=function(){this._parseFullBox(),1==this.version?(this.creation_time=this._readUint(64),this.modification_time=this._readUint(64),this.timescale=this._readUint(32),this.duration=this._readUint(64)):(this.creation_time=this._readUint(32),this.modification_time=this._readUint(32),this.timescale=this._readUint(32),this.duration=this._readUint(32));var a=this._readUint(16);this.pad=a>>15,this.language=String.fromCharCode((a>>10&31)+96,(a>>5&31)+96,(31&a)+96),this.pre_defined=this._readUint(16)},f.prototype._boxParsers.mfhd=function(){this._parseFullBox(),this.sequence_number=this._readUint(32)},f.prototype._boxParsers.mvhd=function(){this._parseFullBox(),1==this.version?(this.creation_time=this._readUint(64),this.modification_time=this._readUint(64),this.timescale=this._readUint(32),this.duration=this._readUint(64)):(this.creation_time=this._readUint(32),this.modification_time=this._readUint(32),this.timescale=this._readUint(32),this.duration=this._readUint(32)),this.rate=this._readTemplate(32),this.volume=this._readTemplate(16),this.reserved1=this._readUint(16),this.reserved2=[this._readUint(32),this._readUint(32)],this.matrix=[];for(var a=0;a<9;a++)this.matrix.push(this._readTemplate(32));this.pre_defined=[];for(var a=0;a<6;a++)this.pre_defined.push(this._readUint(32));this.next_track_ID=this._readUint(32)},f.prototype._boxParsers.payl=function(){var a=new DataView(this._raw.buffer,this._cursor.offset,this._raw.byteLength-(this._cursor.offset-this._offset));this.cue_text=d.Utils.dataViewToString(a)},f.prototype._boxParsers.sidx=function(){this._parseFullBox(),this.reference_ID=this._readUint(32),this.timescale=this._readUint(32),0==this.version?(this.earliest_presentation_time=this._readUint(32),this.first_offset=this._readUint(32)):(this.earliest_presentation_time=this._readUint(64),this.first_offset=this._readUint(64)),this.reserved=this._readUint(16),this.reference_count=this._readUint(16),this.references=[];for(var a=0;a<this.reference_count;a++){var b={},c=this._readUint(32);b.reference_type=c>>31&1,b.referenced_size=2147483647&c,b.subsegment_duration=this._readUint(32);var d=this._readUint(32);b.starts_with_SAP=d>>31&1,b.SAP_type=d>>28&7,b.SAP_delta_time=268435455&d,this.references.push(b)}},f.prototype._boxParsers.ssix=function(){this._parseFullBox(),this.subsegment_count=this._readUint(32),this.subsegments=[];for(var a=0;a<this.subsegment_count;a++){var b={};b.ranges_count=this._readUint(32),b.ranges=[];for(var c=0;c<b.ranges_count;c++){var d={};d.level=this._readUint(8),d.range_size=this._readUint(24),b.ranges.push(d)}this.subsegments.push(b)}},f.prototype._boxParsers.tfdt=function(){this._parseFullBox(),1==this.version?this.baseMediaDecodeTime=this._readUint(64):this.baseMediaDecodeTime=this._readUint(32)},f.prototype._boxParsers.tfhd=function(){this._parseFullBox(),this.track_ID=this._readUint(32),1&this.flags&&(this.base_data_offset=this._readUint(64)),2&this.flags&&(this.sample_description_offset=this._readUint(32)),8&this.flags&&(this.default_sample_duration=this._readUint(32)),16&this.flags&&(this.default_sample_size=this._readUint(32)),32&this.flags&&(this.default_sample_flags=this._readUint(32))},f.prototype._boxParsers.tkhd=function(){this._parseFullBox(),1==this.version?(this.creation_time=this._readUint(64),this.modification_time=this._readUint(64),this.track_ID=this._readUint(32),this.reserved1=this._readUint(32),this.duration=this._readUint(64)):(this.creation_time=this._readUint(32),this.modification_time=this._readUint(32),this.track_ID=this._readUint(32),this.reserved1=this._readUint(32),this.duration=this._readUint(32)),this.reserved2=[this._readUint(32),this._readUint(32)],this.layer=this._readUint(16),this.alternate_group=this._readUint(16),this.volume=this._readTemplate(16),this.reserved3=this._readUint(16),this.matrix=[];for(var a=0;a<9;a++)this.matrix.push(this._readTemplate(32));this.width=this._readUint(32),this.height=this._readUint(32)},f.prototype._boxParsers.trun=function(){this._parseFullBox(),this.sample_count=this._readUint(32),1&this.flags&&(this.data_offset=this._readInt(32)),4&this.flags&&(this.first_sample_flags=this._readUint(32)),this.samples=[];for(var a=0;a<this.sample_count;a++){var b={};256&this.flags&&(b.sample_duration=this._readUint(32)),512&this.flags&&(b.sample_size=this._readUint(32)),1024&this.flags&&(b.sample_flags=this._readUint(32)),2048&this.flags&&(0==this.version?b.sample_composition_time_offset=this._readUint(32):b.sample_composition_time_offset=this._readInt(32)),this.samples.push(b)}},f.prototype._boxParsers.vlab=function(){var a=new DataView(this._raw.buffer,this._cursor.offset,this._raw.byteLength-(this._cursor.offset-this._offset));this.source_label=d.Utils.dataViewToString(a)},f.prototype._boxParsers.vttC=function(){var a=new DataView(this._raw.buffer,this._cursor.offset,this._raw.byteLength-(this._cursor.offset-this._offset));this.config=d.Utils.dataViewToString(a)},f.prototype._boxParsers.vtte=function(){}},{}],7:[function(a,b,c){var d=c.decimalAdjust=function(a,b,c){return"undefined"==typeof c||0===+c?Math[a](b):(b=+b,c=+c,isNaN(b)||"number"!=typeof c||c%1!==0?NaN:(b=b.toString().split("e"),b=Math[a](+(b[0]+"e"+(b[1]?+b[1]-c:-c))),b=b.toString().split("e"),+(b[0]+"e"+(b[1]?+b[1]+c:c))))};b.exports={round10:function(a,b){return d("round",a,b)},floor10:function(a,b){return d("floor",a,b)},ceil10:function(a,b){return d("ceil",a,b)}},b.exports.polyfill=function(){Math.round10||(Math.round10=b.exports.round10),Math.floor10||(Math.floor10=b.exports.floor10),Math.ceil10||(Math.ceil10=b.exports.ceil10)}},{}],8:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){k=!0,l=!0,m=(new Date).getTime()}function b(a){l=a}function c(a){k=a}function d(){return k}function e(){var a="",b=null;l&&(b=(new Date).getTime(),a+="["+(b-m)+"]"),a.length>0&&(a+=" "),Array.apply(null,arguments).forEach(function(b){a+=b+" "}),k&&console.log(a),h.trigger(i.default.LOG,{message:a})}var f=this.context,h=(0,g.default)(f).getInstance(),j=void 0,k=void 0,l=void 0,m=void 0;return j={log:e,setLogTimestampVisible:b,setLogToBrowserConsole:c,getLogToBrowserConsole:d},a(),j}Object.defineProperty(c,"__esModule",{value:!0});var f=a(9),g=d(f),h=a(13),i=d(h),j=a(10),k=d(j);e.__dashjs_factory_name="Debug",c.default=k.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,9:9}],9:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b,c){var e=arguments.length<=3||void 0===arguments[3]?h:arguments[3];if(!a)throw new Error("event type cannot be null or undefined");if(!b||"function"!=typeof b)throw new Error("listener must be a function: "+b);if(!(d(a,b,c)>=0)){f[a]=f[a]||[];var g={callback:b,scope:c,priority:e},i=f[a].some(function(b,c){if(e>b.priority)return f[a].splice(c,0,g),!0});i||f[a].push(g)}}function b(a,b,c){if(a&&b&&f[a]){var e=d(a,b,c);e<0||f[a].splice(e,1)}}function c(a,b){if(a&&f[a]){if(b=b||{},b.hasOwnProperty("type"))throw new Error("'type' is a reserved word for event dispatching");b.type=a,f[a].forEach(function(a){return a.callback.call(a.scope,b)})}}function d(a,b,c){var d=-1;return f[a]?(f[a].some(function(a,e){if(a.callback===b&&(!c||c===a.scope))return d=e,!0}),d):d}function e(){f={}}var f={},g={on:a,off:b,trigger:c,reset:e};return g}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=0,i=5e3;e.__dashjs_factory_name="EventBus";var j=g.default.getSingletonFactory(e);j.EVENT_PRIORITY_LOW=h,j.EVENT_PRIORITY_HIGH=i,c.default=j,b.exports=c.default},{10:10}],10:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d=function(){function a(a,b,c,d){var e=g(d);!e[a]&&b&&(e[a]={instance:b,override:c})}function b(a,b){for(var c in j){var d=j[c];if(d.context===a&&d.name===b)return d.instance}return null}function c(a,b,c){for(var d in j){var e=j[d];if(e.context===a&&e.name===b)return void(j[d].instance=c)}j.push({name:b,context:a,instance:c})}function d(a){return function(b){return void 0===b&&(b={}),{create:function(){return f(a.__dashjs_factory_name,a.apply({context:b},arguments),b,arguments)}}}}function e(a){return function(c){var d=void 0;return void 0===c&&(c={}),{getInstance:function(){return d||(d=b(c,a.__dashjs_factory_name)),d||(d=f(a.__dashjs_factory_name,a.apply({context:c},arguments),c,arguments),j.push({name:a.__dashjs_factory_name,context:c,instance:d})),d}}}}function f(a,b,c,d){var e=g(c),f=e[a];if(f){var i=f.instance;if(!f.override)return i.apply({context:c,factory:h},d);i=i.apply({context:c,factory:h,parent:b},d);for(var j in i)b.hasOwnProperty(j)&&(b[j]=i[j])}return b}function g(a){var b=void 0;return i.forEach(function(c){c===a&&(b=c)}),b||(b=i.push(a)),b}var h=void 0,i=[],j=[];return h={extend:a,getSingletonInstance:b,setSingletonInstance:c,getSingletonFactory:e,getClassFactory:d}}();c.default=d,b.exports=c.default},{}],11:[function(a,b,c){"use strict";function d(){return e}Object.defineProperty(c,"__esModule",{value:!0}),c.getVersionString=d;var e="2.3.0"},{}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(14),i=d(h),j=function(a){function b(){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),this.AST_IN_FUTURE="astinfuture",this.BUFFERING_COMPLETED="bufferingCompleted",this.BUFFER_CLEARED="bufferCleared",this.BUFFER_LEVEL_UPDATED="bufferLevelUpdated",this.BYTES_APPENDED="bytesAppended",this.CHECK_FOR_EXISTENCE_COMPLETED="checkForExistenceCompleted",this.CHUNK_APPENDED="chunkAppended",this.CURRENT_TRACK_CHANGED="currenttrackchanged",this.DATA_UPDATE_COMPLETED="dataUpdateCompleted",this.DATA_UPDATE_STARTED="dataUpdateStarted",this.FRAGMENT_LOADING_COMPLETED="fragmentLoadingCompleted",this.FRAGMENT_LOADING_STARTED="fragmentLoadingStarted",this.FRAGMENT_LOADING_ABANDONED="fragmentLoadingAbandoned",this.INITIALIZATION_LOADED="initializationLoaded",this.INIT_FRAGMENT_LOADED="initFragmentLoaded",this.INIT_REQUESTED="initRequested",this.INTERNAL_MANIFEST_LOADED="internalManifestLoaded",this.LIVE_EDGE_SEARCH_COMPLETED="liveEdgeSearchCompleted",this.LOADING_COMPLETED="loadingCompleted",this.LOADING_PROGRESS="loadingProgress",this.MANIFEST_UPDATED="manifestUpdated",this.MEDIA_FRAGMENT_LOADED="mediaFragmentLoaded",this.QUOTA_EXCEEDED="quotaExceeded",this.REPRESENTATION_UPDATED="representationUpdated",this.SEGMENTS_LOADED="segmentsLoaded",this.SERVICE_LOCATION_BLACKLIST_CHANGED="serviceLocationBlacklistChanged",this.SOURCEBUFFER_APPEND_COMPLETED="sourceBufferAppendCompleted",this.SOURCEBUFFER_REMOVE_COMPLETED="sourceBufferRemoveCompleted",this.STREAMS_COMPOSED="streamsComposed",this.STREAM_BUFFERING_COMPLETED="streamBufferingCompleted",this.STREAM_COMPLETED="streamCompleted",this.STREAM_INITIALIZED="streaminitialized",this.STREAM_TEARDOWN_COMPLETE="streamTeardownComplete",this.TIMED_TEXT_REQUESTED="timedTextRequested",this.TIME_SYNCHRONIZATION_COMPLETED="timeSynchronizationComplete",this.URL_RESOLUTION_FAILED="urlResolutionFailed",this.WALLCLOCK_TIME_UPDATED="wallclockTimeUpdated",this.XLINK_ALL_ELEMENTS_LOADED="xlinkAllElementsLoaded",this.XLINK_ELEMENT_LOADED="xlinkElementLoaded",this.XLINK_READY="xlinkReady"}return f(b,a),b}(i.default);c.default=j,b.exports=c.default},{14:14}],13:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(12),i=d(h),j=function(a){function b(){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).apply(this,arguments)}return f(b,a),b}(i.default),k=new j;c.default=k,b.exports=c.default},{12:12}],14:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(){function a(){d(this,a)}return e(a,[{key:"extend",value:function(a,b){if(a){var c=!!b&&b.override,d=!!b&&b.publicOnly;for(var e in a)!a.hasOwnProperty(e)||this[e]&&!c||d&&a[e].indexOf("public_")===-1||(this[e]=a[e])}}}]),a}();c.default=f,b.exports=c.default},{}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a){a&&a.dashManifestModel&&(I=a.dashManifestModel)}function b(){J=[],K={}}function c(a,b){return b.getRepresentationForQuality(a.quality)}function d(a){return K[a.streamInfo.id][a.index]}function e(a){for(var b=J.length,c=0;c<b;c++){var d=J[c];if(a.id===d.id)return d}return null}function f(a,b){var c=new h.default,d=b.adaptation.period.mpd.manifest.Period_asArray[b.adaptation.period.index].AdaptationSet_asArray[b.adaptation.index],e=I.getRepresentationFor(b.index,d);return c.id=b.id,c.quality=b.index,c.bandwidth=I.getBandwidth(e),c.DVRWindow=b.segmentAvailabilityRange,c.fragmentDuration=b.segmentDuration||(b.segments&&b.segments.length>0?b.segments[0].duration:NaN),c.MSETimeOffset=b.MSETimeOffset,c.useCalculatedLiveEdgeTime=b.useCalculatedLiveEdgeTime,c.mediaInfo=g(a,b.adaptation),c}function g(a,b){var c,d=new j.default,e=b.period.mpd.manifest.Period_asArray[b.period.index].AdaptationSet_asArray[b.index];return d.id=b.id,d.index=b.index,d.type=b.type,d.streamInfo=k(a,b.period),d.representationCount=I.getRepresentationCount(e),d.lang=I.getLanguageForAdaptation(e),c=I.getViewpointForAdaptation(e),d.viewpoint=c?c.value:void 0,d.accessibility=I.getAccessibilityForAdaptation(e).map(function(a){var b=a.value,c=b;return a.schemeIdUri&&a.schemeIdUri.search("cea-608")>=0&&"undefined"!=typeof t.default&&(c=b?"cea-608:"+b:"cea-608",d.embeddedCaptions=!0),c}),d.audioChannelConfiguration=I.getAudioChannelConfigurationForAdaptation(e).map(function(a){return a.value}),d.roles=I.getRolesForAdaptation(e).map(function(a){return a.value}),d.codec=I.getCodec(e),d.mimeType=I.getMimeType(e),d.contentProtection=I.getContentProtectionData(e),d.bitrateList=I.getBitrateListForAdaptation(e),d.contentProtection&&d.contentProtection.forEach(function(a){a.KID=I.getKID(a)}),d.isText=I.getIsTextTrack(d.mimeType),d}function i(a,b,c){a.id=b,a.index=100+parseInt(b.substring(2,3)),a.type="embeddedText",a.codec="cea-608-in-SEI",a.isText=!0,a.isEmbedded=!0,a.lang=b+" "+c,a.roles=["caption"]}function k(a,b){var c=new l.default,d=1;return c.id=b.id,c.index=b.index,c.start=b.start,c.duration=b.duration,c.manifestInfo=m(a,b.mpd),c.isLast=1===a.Period_asArray.length||Math.abs(c.start+c.duration-c.manifestInfo.duration)<d,c.isFirst=1===a.Period_asArray.length||I.getRegularPeriods(a,I.getMpd(a))[0].id===b.id,c}function m(a,b){var c=new n.default;return c.DVRWindowSize=b.timeShiftBufferDepth,c.loadedTime=b.manifest.loadedTime,c.availableFrom=b.availabilityStartTime,c.minBufferTime=b.manifest.minBufferTime,c.maxFragmentDuration=b.maxSegmentDuration,c.duration=I.getDuration(a),c.isDynamic=I.getIsDynamic(a),c}function o(a,b,c){var d=I.getAdaptationForType(a,b.index,c,b);if(!d)return null;var f=e(b),h=f.id,i=I.getIndexForAdaptation(d,a,b.index);return K[h]=K[h]||I.getAdaptationsForPeriod(a,f),g(a,K[h][i])}function q(a,b,c){var d,f,h,j,k,l,m=e(b),n=m.id,o=I.getAdaptationsForType(a,b.index,"embeddedText"!==c?c:"video"),p=[];if(!o)return p;for(K[n]=K[n]||I.getAdaptationsForPeriod(a,m),j=0,l=o.length;j<l;j++){if(d=o[j],h=I.getIndexForAdaptation(d,a,b.index),f=g(a,K[n][h]),"embeddedText"===c){var q=f.accessibility.length;for(k=0;k<q;k++)if(f){var r=f.accessibility[k];if(0===r.indexOf("cea-608:")){var s=r.substring(8),t=s.split(";");if("CC"===t[0].substring(0,2))for(k=0;k<t.length;k++)f||(f=g.call(this,a,K[n][h])),i(f,t[k].substring(0,3),t[k].substring(4)),p.push(f),f=null;else for(k=0;k<t.length;k++)f||(f=g.call(this,a,K[n][h])),i(f,"CC"+(k+1),t[k]),p.push(f),f=null}else 0===r.indexOf("cea-608")&&(i(f,"CC1","eng"),p.push(f),f=null)}}f&&"embeddedText"!==c&&p.push(f)}return p}function r(a){var b,c,d,e=[];if(!a)return null;for(b=I.getMpd(a),J=I.getRegularPeriods(a,b),b.checkTime=I.getCheckTime(a,J[0]),K={},c=J.length,d=0;d<c;d++)e.push(k(a,J[d]));return e}function s(a){var b=I.getMpd(a);return m(a,b)}function u(a,b){var c=a.getRepresentationController().getRepresentationForQuality(b);return a.getIndexHandler().getInitRequest(c)}function w(a,b){var d=c(b,a.getRepresentationController());return a.getIndexHandler().getNextSegmentRequest(d)}function x(a,b,d,e){var f=c(b,a.getRepresentationController());return a.getIndexHandler().getSegmentRequestForTime(f,d,e)}function y(a,b,d){var e=c(b,a.getRepresentationController());return a.getIndexHandler().generateSegmentRequestForTime(e,d)}function z(a){return a.getIndexHandler().getCurrentTime()}function A(a,b){return a.getIndexHandler().setCurrentTime(b)}function B(a,b){var c,f,g=e(b.getStreamInfo()),h=b.getMediaInfo(),i=d(h),j=b.getType();c=h.id,f=c?I.getAdaptationForId(c,a,g.index):I.getAdaptationForIndex(h.index,a,g.index),b.getRepresentationController().updateData(f,i,j)}function C(a,b,c){var d=b.getRepresentationForQuality(c);return d?f(a,d):null}function D(a,b){var c=b.getCurrentRepresentation();return c?f(a,c):null}function E(a,b,c){var d=new p.default,e=a.scheme_id_uri,f=a.value,g=a.timescale,h=a.presentation_time_delta,i=a.event_duration,j=a.id,k=a.message_data,l=c*g+h;return b[e]?(d.eventStream=b[e],d.eventStream.value=f,d.eventStream.timescale=g,d.duration=i,d.id=j,d.presentationTime=l,d.messageData=k,d.presentationTimeDelta=h,d):null}function F(a,b,f){var g=[];return b instanceof l.default?g=I.getEventsForPeriod(a,e(b)):b instanceof j.default?g=I.getEventStreamForAdaptationSet(a,d(b)):b instanceof h.default&&(g=I.getEventStreamForRepresentation(a,c(b,f.getRepresentationController()))),g}function G(){J=[],K={}}var H=void 0,I=void 0,J=void 0,K=void 0;return H={initialize:b,convertDataToTrack:f,convertDataToMedia:g,convertDataToStream:k,getDataForTrack:c,getDataForMedia:d,getDataForStream:e,getStreamsInfo:r,getManifestInfo:s,getMediaInfoForType:o,getAllMediaInfoForType:q,getCurrentRepresentationInfo:D,getRepresentationInfoForQuality:C,updateData:B,getInitRequest:u,getNextFragmentRequest:w,getFragmentRequestForTime:x,generateFragmentRequestForTime:y,getIndexHandlerTime:z,setIndexHandlerTime:A,getEventsFor:F,getEvent:E,setConfig:a,reset:G,metricsList:v}}Object.defineProperty(c,"__esModule",{value:!0});var g=a(172),h=e(g),i=a(167),j=e(i),k=a(169),l=e(k),m=a(166),n=e(m),o=a(41),p=e(o),q=a(10),r=e(q),s=a(2),t=e(s),u=a(20),v=d(u);f.__dashjs_factory_name="DashAdapter",c.default=r.default.getSingletonFactory(f),b.exports=c.default},{10:10,166:166,167:167,169:169,172:172,2:2,20:20,41:41}],16:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){U=-1,Y=0,Z=NaN,M.on(l.default.INITIALIZATION_LOADED,I,T),M.on(l.default.SEGMENTS_LOADED,J,T)}function c(b){$=b,X=$.getType(),W=$.isDynamic(),_=(0,w.default)(K).create(a,W)}function d(){return $}function e(a){Y=a}function f(){return Y}function h(){return U}function k(){return Z}function m(){_=null,Y=0,Z=NaN,V=NaN,U=-1,W=null,X=null,$=null,M.off(l.default.INITIALIZATION_LOADED,I,T),M.off(l.default.SEGMENTS_LOADED,J,T)}function o(a){return a.split("$$").join("$")}function p(a,b){if(null===b||a.indexOf("$RepresentationID$")===-1)return a;var c=b.toString();return a.split("$RepresentationID$").join(c)}function q(a,b,c){var d,e,f=S.resolve(c.path);return f&&b!==f.url&&N.isRelative(b)?(d=f.url,e=f.serviceLocation,b&&(d+=b)):d=b,!N.isRelative(d)&&(a.url=d,a.serviceLocation=e,!0)}function s(a,b){var c,d,e=new g.default;if(c=a.adaptation.period,e.mediaType=b,e.type=j.HTTPRequest.INIT_SEGMENT_TYPE,e.range=a.range,d=c.start,e.availabilityStartTime=P.calcAvailabilityStartTimeFromPresentationTime(d,a.adaptation.period.mpd,W),e.availabilityEndTime=P.calcAvailabilityEndTimeFromPresentationTime(d+c.duration,c.mpd,W),e.quality=a.index,e.mediaInfo=$.getMediaInfo(),q(e,a.initialization,a))return e}function v(a){var b;return a?b=s(a,X):null}function y(a){var b,c,d,e=a.adaptation.period,f=a.segmentInfoType,g=!1;return U<0?g=!1:W||U<a.availableSegmentsNumber?(c=(0,u.getSegmentByIndex)(U,a),c&&(d=c.presentationStartTime-e.start,b=a.adaptation.period.duration,L(a.segmentInfoType+": "+d+" / "+b),g=("SegmentTimeline"!==f||!W)&&d>=b)):g=!0,g}function z(a){return _.getSegments(a,V,U,A)}function A(a,b){if(a.segments=b,b&&b.length>0&&(Z=isNaN(Z)?b[0].presentationStartTime:Math.min(b[0].presentationStartTime,Z)),W&&isNaN(P.getExpectedLiveEdge())){var c=b.length-1,d=b[c],e=d.presentationStartTime,f=R.getMetricsFor("stream");P.setExpectedLiveEdge(e),R.updateManifestUpdateInfo(Q.getCurrentManifestUpdate(f),{presentationStartTime:e})}}function B(a){if(!a)throw new i.default("no representation");return a.segments=null,z(a),a}function C(a,b){var c,d=a.initialization,e="BaseURL"!==a.segmentInfoType&&"SegmentBase"!==a.segmentInfoType&&!a.indexRange;return a.segmentDuration||a.segments||B(a),a.segmentAvailabilityRange=null,a.segmentAvailabilityRange=P.calcSegmentAvailabilityRange(a,W),a.segmentAvailabilityRange.end<a.segmentAvailabilityRange.start&&!a.useCalculatedLiveEdgeTime?(c=new i.default(x,"no segments are available yet",{availabilityDelay:a.segmentAvailabilityRange.start-a.segmentAvailabilityRange.end}),void M.trigger(l.default.REPRESENTATION_UPDATED,{sender:this,representation:a,error:c})):(b||(U=-1),a.segmentDuration&&B(a),d||O.loadInitialization(a),e||O.loadSegments(a,X,a.indexRange),void(d&&e&&M.trigger(l.default.REPRESENTATION_UPDATED,{sender:this,representation:a})))}function D(a,b,c){var d,e,f,g,h,i=b.segments,j=i?i.length:null,k=-1;if(i&&j>0)for(h=0;h<j;h++)if(e=i[h],f=e.presentationStartTime,g=e.duration,d=void 0===c||null===c?g/2:c,a+d>=f&&a-d<f+g){k=e.availabilityIdx;break}return k}function E(a){if(null===a||void 0===a)return null;var b=new g.default,c=a.representation,d=c.adaptation.period.mpd.manifest.Period_asArray[c.adaptation.period.index].AdaptationSet_asArray[c.adaptation.index].Representation_asArray[c.index].bandwidth,e=a.media;return e=(0,u.replaceTokenForTemplate)(e,"Number",a.replacementNumber),e=(0,u.replaceTokenForTemplate)(e,"Time",a.replacementTime),e=(0,u.replaceTokenForTemplate)(e,"Bandwidth",d),e=p(e,c.id),e=o(e),b.mediaType=X,b.type=j.HTTPRequest.MEDIA_SEGMENT_TYPE,b.range=a.mediaRange,b.startTime=a.presentationStartTime,b.duration=a.duration,b.timescale=c.timescale,b.availabilityStartTime=a.availabilityStartTime,b.availabilityEndTime=a.availabilityEndTime,b.wallStartTime=a.wallStartTime,b.quality=c.index,b.index=a.availabilityIdx,b.mediaInfo=$.getMediaInfo(),b.adaptationIndex=c.adaptation.index,q(b,e,c)?b:void 0}function F(a,b,c){var d,e,f,h=U,i=!!c&&c.keepIdx,j=c?c.timeThreshold:null,k=!(!c||!c.ignoreIsFinished);return a?(V!==b&&(V=b,L("Getting the request for "+X+" time : "+b)),U=D(b,a,j),z(a),U<0&&(U=D(b,a,j)),U>0&&L("Index for "+X+" time "+b+" is "+U),f=!k&&y(a),f?(d=new g.default,d.action=g.default.ACTION_COMPLETE,d.index=U,d.mediaType=X,d.mediaInfo=$.getMediaInfo(),L("Signal complete.",d)):(e=(0,u.getSegmentByIndex)(U,a),d=E(e)),i&&h>=0&&(U="SegmentTimeline"===a.segmentInfoType&&W?U:h),d):null}function G(a,b){var c=(a.segmentAvailabilityRange.end-a.segmentAvailabilityRange.start)/2;return a.segments=null,a.segmentAvailabilityRange={start:b-c,end:b+c},F(a,b,{keepIdx:!1,ignoreIsFinished:!0})}function H(a){var b,c,d;return a&&U!==-1?(V=null,U++,L("Getting the next request at index: "+U),d=y(a),d?(b=new g.default,b.action=g.default.ACTION_COMPLETE,b.index=U,b.mediaType=X,b.mediaInfo=$.getMediaInfo(),L("Signal complete.")):(z(a),c=(0,u.getSegmentByIndex)(U,a),b=E(c),!c&&W&&U--),b):null}function I(a){var b=a.representation;b.segments&&M.trigger(l.default.REPRESENTATION_UPDATED,{sender:this,representation:b})}function J(a){if(!a.error&&X===a.mediaType){var b,c,d,e,f=a.segments,g=a.representation,h=[],i=0;for(b=0,c=f.length;b<c;b++)d=f[b],e=(0,u.getTimeBasedSegment)(P,W,g,d.startTime,d.duration,d.timescale,d.media,d.mediaRange,i),h.push(e),e=null,i++;g.segmentAvailabilityRange={start:h[0].presentationStartTime,end:h[c-1].presentationStartTime},g.availableSegmentsNumber=c,A(g,h),g.initialization&&M.trigger(l.default.REPRESENTATION_UPDATED,{sender:this,
+representation:g})}}var K=this.context,L=(0,r.default)(K).getInstance().log,M=(0,n.default)(K).getInstance(),N=(0,t.default)(K).getInstance(),O=a.segmentBaseLoader,P=a.timelineConverter,Q=a.dashMetrics,R=a.metricsModel,S=a.baseURLController,T=void 0,U=void 0,V=void 0,W=void 0,X=void 0,Y=void 0,Z=void 0,$=void 0,_=void 0;return T={initialize:c,getStreamProcessor:d,getInitRequest:v,getSegmentRequestForTime:F,getNextSegmentRequest:H,generateSegmentRequestForTime:G,updateRepresentation:C,setCurrentTime:e,getCurrentTime:f,getCurrentIndex:h,getEarliestTime:k,reset:m},b(),T}Object.defineProperty(c,"__esModule",{value:!0});var f=a(163),g=d(f),h=a(162),i=d(h),j=a(179),k=a(13),l=d(k),m=a(9),n=d(m),o=a(10),p=d(o),q=a(8),r=d(q),s=a(158),t=d(s),u=a(35),v=a(34),w=d(v),x=1;e.__dashjs_factory_name="DashHandler";var y=p.default.getClassFactory(e);y.SEGMENTS_UNAVAILABLE_ERROR_CODE=x,c.default=y,b.exports=c.default},{10:10,13:13,158:158,162:162,163:163,179:179,34:34,35:35,8:8,9:9}],17:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a,b){var c,d=C.getValue(),e=d.Period_asArray[b];return c=x(e,a),null===c?null:c.bandwidth}function b(a,b){var c,d=C.getValue(),e=d.Period_asArray[b];return c=w(e,a)}function c(a,b){var c,d=C.getValue(),e=d.Period_asArray[b];return c=z(e,a)}function d(a){return m(a,o.TRACK_SWITCH)}function e(a){return m(a,o.BUFFER_LEVEL)}function f(a){var b=e(a);return b?(0,p.round10)(b.level/1e3,-3):0}function h(a){return a.RequestsQueue}function j(a){if(null===a)return null;var b,c,d=a.HttpList,e=null;if(null===d||d.length<=0)return null;for(b=d.length,c=b-1;c>=0;){if(d[c].responsecode){e=d[c];break}c--}return e}function l(a){return null===a?[]:a.HttpList?a.HttpList:[]}function m(a,b){if(null===a)return null;var c=a[b];if(null===c)return null;var d=c.length;return d<=0?null:c[d-1]}function n(a){return m(a,o.DROPPED_FRAMES)}function q(a){return m(a,o.SCHEDULING_INFO)}function r(a){return m(a,o.MANIFEST_UPDATE)}function s(a){return m(a,o.DVR_INFO)}function t(a,b){var c,d,e,f={};if(null===a)return null;for(c=l(a),e=c.length-1;e>=0;e--)if(d=c[e],d.type===g.HTTPRequest.MPD_TYPE){f=v(d._responseHeaders);break}return void 0===f[b]?null:f[b]}function u(a,b){if(null===a)return null;var c,d=j(a);return null===d||null===d._responseHeaders?null:(c=v(d._responseHeaders),void 0===c[b]?null:c[b])}function v(a){var b={};if(!a)return b;for(var c=a.split("\r\n"),d=0,e=c.length;d<e;d++){var f=c[d],g=f.indexOf(": ");g>0&&(b[f.substring(0,g)]=f.substring(g+2))}return b}function w(a,b){var c=x(a,b,!0);return null!==c?c:-1}function x(a,b,c){var d,e,f,g,h,i;for(e=a.AdaptationSet_asArray,h=0;h<e.length;h+=1)for(d=e[h],g=d.Representation_asArray,i=0;i<g.length;i+=1)if(f=g[i],b===f.id)return c?i:f;return null}function y(a,b){return(0,k.default)(B).getInstance().getIsTypeOf(a,b)}function z(a,b){var c,d,e,f;if(!a||!b)return-1;for(d=a.AdaptationSet_asArray,f=0;f<d.length;f+=1)if(c=d[f],e=c.Representation_asArray,y(c,b))return e.length;return-1}var A=void 0,B=this.context,C=(0,i.default)(B).getInstance();return A={getBandwidthForRepresentation:a,getIndexForRepresentation:b,getMaxIndexForBufferType:c,getCurrentRepresentationSwitch:d,getLatestBufferLevelVO:e,getCurrentBufferLevel:f,getCurrentHttpRequest:j,getHttpRequests:l,getCurrentDroppedFrames:n,getCurrentSchedulingInfo:q,getCurrentDVRInfo:s,getCurrentManifestUpdate:r,getLatestFragmentRequestHeaderValueByID:u,getLatestMPDRequestHeaderValueByID:t,getRequestsQueue:h}}Object.defineProperty(c,"__esModule",{value:!0});var g=a(179),h=a(100),i=e(h),j=a(22),k=e(j),l=a(10),m=e(l),n=a(20),o=d(n),p=a(7);f.__dashjs_factory_name="DashMetrics",c.default=m.default.getSingletonFactory(f),b.exports=c.default},{10:10,100:100,179:179,20:20,22:22,7:7}],18:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){u=(0,m.default)(n).getInstance(),v=(0,s.default)(n).getInstance(),x=(0,g.default)(n).getInstance()}function b(a){a.baseURLController&&(y=a.baseURLController)}function c(a,b){var d=!0,e=null,f=null,g=new XMLHttpRequest,i=y.resolve(a.path),k=b||{url:i?i.url:void 0,range:{start:0,end:1500},searching:!1,bytesLoaded:0,bytesToLoad:1500,request:g};p("Start searching for initialization."),g.onload=function(){g.status<200||g.status>299||(d=!1,k.bytesLoaded=k.range.end,f=v.parse(g.response),e=h(f),e?(a.range=e,a.initialization=k.url,r.trigger(o.default.INITIALIZATION_LOADED,{representation:a})):(k.range.end=k.bytesLoaded+k.bytesToLoad,c(a,k)))},g.onloadend=g.onerror=function(){d&&(d=!1,u.downloadError("initialization",k.url,g),r.trigger(o.default.INITIALIZATION_LOADED,{representation:a}))},j(g,k),p("Perform init search: "+k.url)}function d(a,b,c,e,g){if(c&&(void 0===c.start||void 0===c.end)){var h=c?c.toString().split("-"):null;c=h?{start:parseFloat(h[0]),end:parseFloat(h[1])}:null}g=g?g:l;var i=!0,k=null,m=null,n=!!c,o=new XMLHttpRequest,q=y.resolve(a.path),r={url:q?q.url:void 0,range:n?c:{start:0,end:1500},searching:!n,bytesLoaded:e?e.bytesLoaded:0,bytesToLoad:1500,request:o};o.onload=function(){if(!(o.status<200||o.status>299)){var c=r.bytesToLoad,e=o.response.byteLength;if(i=!1,r.bytesLoaded=r.range.end-r.range.start,k=v.parse(o.response),m=k.getBox("sidx"),m&&m.isComplete){var h,j,l=m.references;if(null!==l&&void 0!==l&&l.length>0&&(h=1===l[0].reference_type),h){p("Initiate multiple SIDX load."),r.range.end=r.range.start+m.size;var n,q,s,t,u,w=[],x=0,y=(m.offset||r.range.start)+m.size,z=function(c){c?(w=w.concat(c),x++,x>=q&&g(w,a,b)):g(null,a,b)};for(n=0,q=l.length;n<q;n++)s=y,t=y+l[n].referenced_size-1,y+=l[n].referenced_size,u={start:s,end:t},d(a,null,u,r,z)}else p("Parsing segments from SIDX."),j=f(m,r),g(j,a,b)}else{if(m)r.range.start=m.offset||r.range.start,r.range.end=r.range.start+(m.size||c);else{if(e<r.bytesLoaded)return void g(null,a,b);var A=k.getLastBox();A&&A.size?(r.range.start=A.offset+A.size,r.range.end=r.range.start+c):r.range.end+=c}d(a,b,r.range,r,g)}}},o.onloadend=o.onerror=function(){i&&(i=!1,u.downloadError("SIDX",r.url,o),g(null,a,b))},j(o,r),p("Perform SIDX load: "+r.url)}function e(){u=null,v=null,x=null,p=null}function f(a,b){for(var c,d,e,f,g=a.references,h=g.length,j=a.timescale,k=a.earliest_presentation_time,l=b.range.start+a.offset+a.first_offset+a.size,m=[],n=0;n<h;n++)e=g[n].subsegment_duration,f=g[n].referenced_size,c=new i.default,c.duration=e,c.media=b.url,c.startTime=k,c.timescale=j,d=l+f-1,c.mediaRange=l+"-"+d,m.push(c),k+=e,l+=f;return m}function h(a){var b,c,d=a.getBox("ftyp"),e=a.getBox("moov"),f=null;return p("Searching for initialization."),e&&e.isComplete&&(b=d?d.offset:e.offset,c=e.offset+e.size-1,f=b+"-"+c,p("Found the initialization.  Range: "+f)),f}function j(a,b){b.url&&(a.open("GET",x.modifyRequestURL(b.url)),a.responseType="arraybuffer",a.setRequestHeader("Range","bytes="+b.range.start+"-"+b.range.end),a=x.modifyRequestHeader(a),a.send(null))}function l(a,b,c){a?r.trigger(o.default.SEGMENTS_LOADED,{segments:a,representation:b,mediaType:c}):r.trigger(o.default.SEGMENTS_LOADED,{segments:null,representation:b,mediaType:c,error:new k.default(null,"error loading segments",null)})}var n=this.context,p=(0,w.default)(n).getInstance().log,r=(0,q.default)(n).getInstance(),t=void 0,u=void 0,v=void 0,x=void 0,y=void 0;return t={setConfig:b,initialize:a,loadInitialization:c,loadSegments:d,reset:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(156),g=d(f),h=a(46),i=d(h),j=a(162),k=d(j),l=a(151),m=d(l),n=a(13),o=d(n),p=a(9),q=d(p),r=a(146),s=d(r),t=a(10),u=d(t),v=a(8),w=d(v);e.__dashjs_factory_name="SegmentBaseLoader",c.default=u.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,146:146,151:151,156:156,162:162,46:46,8:8,9:9}],19:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){y={EBML:{tag:440786851,required:!0},Segment:{tag:408125543,required:!0,SeekHead:{tag:290298740,required:!0},Info:{tag:357149030,required:!0,TimecodeScale:{tag:2807729,required:!0,parse:"getMatroskaUint"},Duration:{tag:17545,required:!0,parse:"getMatroskaFloat"}},Tracks:{tag:374648427,required:!0},Cues:{tag:475249515,required:!0,CuePoint:{tag:187,required:!0,CueTime:{tag:179,required:!0,parse:"getMatroskaUint"},CueTrackPositions:{tag:183,required:!0,CueTrack:{tag:247,required:!0,parse:"getMatroskaUint"},CueClusterPosition:{tag:241,required:!0,parse:"getMatroskaUint"},CueBlockNumber:{tag:21368}}}}},Void:{tag:236,required:!0}}}function b(){A=(0,q.default)(p).getInstance(),B=(0,s.default)(p).getInstance(),D=(0,z.default)(p).create({errHandler:A,metricsModel:C,requestModifier:B})}function c(a){if(!a.baseURLController||!a.metricsModel)throw new Error("Missing config parameter(s)");E=a.baseURLController,C=a.metricsModel}function d(a){var b=[],c=void 0,d=void 0,e=void 0,f=(0,k.default)(p).create({data:a}),g=void 0;for(f.consumeTag(y.Segment.Cues),d=f.getMatroskaCodedNum();f.moreData()&&f.consumeTagAndSize(y.Segment.Cues.CuePoint,!0);){for(c={},c.CueTime=f.parseTag(y.Segment.Cues.CuePoint.CueTime),c.CueTracks=[];f.moreData()&&f.consumeTagAndSize(y.Segment.Cues.CuePoint.CueTrackPositions,!0);){if(e={},e.Track=f.parseTag(y.Segment.Cues.CuePoint.CueTrackPositions.CueTrack),0===e.Track)throw new Error("Cue track cannot be 0");e.ClusterPosition=f.parseTag(y.Segment.Cues.CuePoint.CueTrackPositions.CueClusterPosition),f.getPos()+4>d||!f.consumeTag(y.Segment.Cues.CuePoint.CueTrackPositions.CueBlockNumber,!0)?c.CueTracks.push(e):(g=f.getMatroskaCodedNum(),e.BlockNumber=f.getMatroskaUint(g),c.CueTracks.push(e))}if(0===c.CueTracks.length)throw new Error("Mandatory cuetrack not found");b.push(c)}if(0===b.length)throw new Error("mandatory cuepoint not found");return b}function e(a,b,c,e,f){var g=void 0,h=void 0,i=void 0,j=void 0,k=void 0,l=void 0,m=void 0,n=void 0;for(h=d(a),i=[],k=0,l=h.length;k<l;k+=1)j=new u.default,g=0,g=k<h.length-1?h[k+1].CueTime-h[k].CueTime:f-h[k].CueTime,j.duration=g,j.media=b,j.startTime=h[k].CueTime,j.timescale=1e3,m=h[k].CueTracks[0].ClusterPosition+c,n=k<h.length-1?h[k+1].CueTracks[0].ClusterPosition+c-1:e-1,j.mediaRange=m+"-"+n,i.push(j);return r("Parsed cues: "+i.length+" cues."),i}function f(a,b,c,d){var f=(0,k.default)(p).create({data:a}),g=void 0,h=void 0,i=c.split("-"),j=null,l={url:b,range:{start:parseFloat(i[0]),end:parseFloat(i[1])},request:j},n=void 0,o=void 0;for(r("Parse EBML header: "+l.url),f.skipOverElement(y.EBML),f.consumeTag(y.Segment),n=f.getMatroskaCodedNum(),n+=f.getPos(),o=f.getPos();f.moreData()&&!f.consumeTagAndSize(y.Segment.Info,!0);)if(!(f.skipOverElement(y.Segment.SeekHead,!0)||f.skipOverElement(y.Segment.Tracks,!0)||f.skipOverElement(y.Segment.Cues,!0)||f.skipOverElement(y.Void,!0)))throw new Error("no valid top level element found");for(;void 0===g;){var q=f.getMatroskaCodedNum(!0),s=f.getMatroskaCodedNum();switch(q){case y.Segment.Info.Duration.tag:g=f[y.Segment.Info.Duration.parse](s);break;default:f.setPos(f.getPos()+s)}}j=m(l);var t=function(a){h=e(a,l.url,o,n,g),d(h)},u=function(){r("Download Error: Cues "+l.url),d(null)};D.load({request:j,success:t,error:u}),r("Perform cues load: "+l.url+" bytes="+l.range.start+"-"+l.range.end)}function h(a,b){var c=null,d=E.resolve(a.path),e=d?d.url:void 0,f=a.range.split("-"),h=b||{range:{start:parseFloat(f[0]),end:parseFloat(f[1])},request:c,url:e,init:!0};r("Start loading initialization."),c=m(h);var i=function(){a.initialization=h.url,t.trigger(g.default.INITIALIZATION_LOADED,{representation:a})},j=function(){t.trigger(g.default.INITIALIZATION_LOADED,{representation:a})};D.load({request:c,success:i,error:j}),r("Perform init load: "+h.url)}function j(a,b,c,d){var e=null,g=E.resolve(a.path),h=g?g.url:void 0,i=8192,j={bytesLoaded:0,bytesToLoad:i,range:{start:0,end:i},request:e,url:h,init:!1};d=d?d:l,e=m(j),r("Parsing ebml header");var k=function(e){f(e,h,c,function(c){d(c,a,b)})},n=function(){d(null,a,b)};D.load({request:e,success:k,error:n})}function l(a,b,c){a?t.trigger(g.default.SEGMENTS_LOADED,{segments:a,representation:b,mediaType:c}):t.trigger(g.default.SEGMENTS_LOADED,{segments:null,representation:b,mediaType:c,error:new Error(null,"error loading segments",null)})}function m(a){var b=new x.default;return b.type=a.init?v.HTTPRequest.INIT_SEGMENT_TYPE:v.HTTPRequest.MEDIA_SEGMENT_TYPE,b.url=a.url,b.range=a.range.start+"-"+a.range.end,b}function n(){A=null,B=null,r=null}var p=this.context,r=(0,o.default)(p).getInstance().log,t=(0,i.default)(p).getInstance(),w=void 0,y=void 0,A=void 0,B=void 0,C=void 0,D=void 0,E=void 0;return w={setConfig:c,initialize:b,loadInitialization:h,loadSegments:j,reset:n},a(),w}Object.defineProperty(c,"__esModule",{value:!0});var f=a(13),g=d(f),h=a(9),i=d(h),j=a(150),k=d(j),l=a(10),m=d(l),n=a(8),o=d(n),p=a(151),q=d(p),r=a(156),s=d(r),t=a(46),u=d(t),v=a(179),w=a(163),x=d(w),y=a(58),z=d(y);e.__dashjs_factory_name="WebmSegmentBaseLoader",c.default=m.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,150:150,151:151,156:156,163:163,179:179,46:46,58:58,8:8,9:9}],20:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d="TcpList";c.TCP_CONNECTION=d;var e="HttpList";c.HTTP_REQUEST=e;var f="RepSwitchList";c.TRACK_SWITCH=f;var g="BufferLevel";c.BUFFER_LEVEL=g;var h="BufferState";c.BUFFER_STATE=h;var i="DVRInfo";c.DVR_INFO=i;var j="DroppedFrames";c.DROPPED_FRAMES=j;var k="SchedulingInfo";c.SCHEDULING_INFO=k;var l="RequestsQueue";c.REQUESTS_QUEUE=l;var m="ManifestUpdate";c.MANIFEST_UPDATE=m;var n="ManifestUpdatePeriodInfo";c.MANIFEST_UPDATE_STREAM_INFO=n;var o="ManifestUpdateRepresentationInfo";c.MANIFEST_UPDATE_TRACK_INFO=o;var p="PlayList";c.PLAY_LIST=p;var q="DVBErrors";c.DVB_ERRORS=q},{}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){P=null,Q=-1,R=!0,S=[],V=(0,m.default)(M).getInstance(),X=(0,q.default)(M).getInstance(),Y=(0,o.default)(M).getInstance(),Z=(0,s.default)(M).getInstance(),$=(0,u.default)(M).getInstance(),_=(0,y.default)(M).getInstance(),aa=(0,k.default)(M).getInstance(),ba=(0,g.default)(M).getInstance(),ca=(0,i.default)(M).getInstance(),da=(0,w.default)(M).getInstance(),N.on(E.default.QUALITY_CHANGE_REQUESTED,K,O),N.on(E.default.REPRESENTATION_UPDATED,G,O),N.on(E.default.WALLCLOCK_TIME_UPDATED,H,O),N.on(E.default.BUFFER_LEVEL_UPDATED,J,O),N.on(E.default.LIVE_EDGE_SEARCH_COMPLETED,I,O)}function b(a){a.abrController&&(V=a.abrController)}function c(a){U=a,W=U.getIndexHandler()}function d(){return U}function e(){return P}function f(){return Q}function h(){return R}function j(){return T}function l(){N.off(E.default.QUALITY_CHANGE_REQUESTED,K,O),N.off(E.default.REPRESENTATION_UPDATED,G,O),N.off(E.default.WALLCLOCK_TIME_UPDATED,H,O),N.off(E.default.BUFFER_LEVEL_UPDATED,J,O),N.off(E.default.LIVE_EDGE_SEARCH_COMPLETED,I,O),P=null,Q=-1,R=!0,S=[],V=null,X=null,Y=null,Z=null,$=null,_=null,aa=null,ba=null,ca=null,da=null}function n(a,b,c){var d,e,f=null,g=U.getStreamInfo(),h=V.getTopQualityIndexFor(c,g.id);if(R=!0,N.trigger(E.default.DATA_UPDATE_STARTED,{sender:this}),S=z(b),null===P&&"fragmentedText"!==c?(e=V.getAverageThroughput(c),f=e||V.getInitialBitrateFor(c,g),d=V.getQualityForBitrate(U.getMediaInfo(),f)):d=V.getQualityFor(c,g),d>h&&(d=h),T=t(d),P=a,"video"!==c&&"audio"!==c&&"fragmentedText"!==c)return R=!1,void N.trigger(E.default.DATA_UPDATE_COMPLETED,{sender:this,data:P,currentRepresentation:T});for(var i=0;i<S.length;i++)W.updateRepresentation(S[i],!0)}function p(){var a=new Date,b=j(),c=1e3*Y.getTime();$.addRepresentationSwitch(b.adaptation.type,a,c,b.id)}function r(){var a=aa.calcSegmentAvailabilityRange(T,U.isDynamic());$.addDVRInfo(U.getType(),Y.getTime(),U.getStreamInfo().manifestInfo,a)}function t(a){return S[a]}function v(a){return S.indexOf(a)}function x(){for(var a=0,b=S.length;a<b;a++){var c=S[a].segmentInfoType;if(null===S[a].segmentAvailabilityRange||null===S[a].initialization||("SegmentBase"===c||"BaseURL"===c)&&!S[a].segments)return!1}return!0}function z(a){var b,c=Z.getValue();return Q=ba.getIndexForAdaptation(P,c,a.period.index),b=ba.getRepresentationsForAdaptation(c,a)}function B(a){for(var b,c=0,d=S.length;c<d;c++)b=S[c],b.segmentAvailabilityRange=aa.calcSegmentAvailabilityRange(b,a)}function D(){S.forEach(function(a){a.segmentAvailabilityRange=null})}function F(a){var b=a,c=function(){if(!h()){R=!0,N.trigger(E.default.DATA_UPDATE_STARTED,{sender:O}),D();for(var a=0;a<S.length;a++)W.updateRepresentation(S[a],!0)}};R=!1,N.trigger(E.default.AST_IN_FUTURE,{delay:b}),setTimeout(c,b)}function G(a){if(a.sender.getStreamProcessor()===U&&h()){var b,c,d,e=a.representation,f=$.getMetricsFor("stream"),g=$.getMetricsFor(j().adaptation.type),i=ca.getCurrentManifestUpdate(f),k=!1,l=0;if("dynamic"===e.adaptation.period.mpd.manifest.type){var m=e.segmentAvailabilityRange.end-e.segmentAvailabilityRange.start,n=Y.computeLiveDelay(T.segmentDuration,U.getStreamInfo().manifestInfo.DVRWindowSize);l=1e3*(n-m)}if(l>0)return r(),F(l),c=new A.default(L,"Segments update failed",null),void N.trigger(E.default.DATA_UPDATE_COMPLETED,{sender:this,data:P,currentRepresentation:T,error:c});if(i){for(var o=0;o<i.trackInfo.length;o++)if(b=i.trackInfo[o],b.index===e.index&&b.mediaType===U.getType()){k=!0;break}k||$.addManifestUpdateRepresentationInfo(i,e.id,e.index,e.adaptation.period.index,U.getType(),e.presentationTimeOffset,e.startNumber,e.segmentInfoType)}x()&&(R=!1,V.setPlaybackQuality(U.getType(),U.getStreamInfo(),v(T)),$.updateManifestUpdateInfo(i,{latency:T.segmentAvailabilityRange.end-Y.getTime()}),d=ca.getCurrentRepresentationSwitch(g),d||p(),N.trigger(E.default.DATA_UPDATE_COMPLETED,{sender:this,data:P,currentRepresentation:T}))}}function H(a){a.isDynamic&&B(a.isDynamic)}function I(a){if(!a.error){B(!0),W.updateRepresentation(T,!1);var b=Z.getValue(),c=T.adaptation.period,d=X.getActiveStreamInfo();d.isLast&&(c.mpd.checkTime=ba.getCheckTime(b,c),c.duration=ba.getEndTimeForLastPeriod(Z.getValue(),c)-c.start,d.duration=c.duration)}}function J(a){a.sender.getStreamProcessor()===U&&r()}function K(a){a.mediaType===U.getType()&&U.getStreamInfo().id===a.streamInfo.id&&a.oldQuality!==a.newQuality&&(T=t(a.newQuality),_.setSavedBitrateSettings(a.mediaType,T.bandwidth),p())}var L=1,M=this.context,N=(0,C.default)(M).getInstance(),O=void 0,P=void 0,Q=void 0,R=void 0,S=void 0,T=void 0,U=void 0,V=void 0,W=void 0,X=void 0,Y=void 0,Z=void 0,$=void 0,_=void 0,aa=void 0,ba=void 0,ca=void 0,da=void 0;return O={initialize:c,setConfig:b,getData:e,getDataIndex:f,isUpdating:h,updateData:n,getStreamProcessor:d,getCurrentRepresentation:j,getRepresentationForQuality:t,reset:l},a(),O}Object.defineProperty(c,"__esModule",{value:!0});var f=a(22),g=d(f),h=a(17),i=d(h),j=a(37),k=d(j),l=a(60),m=d(l),n=a(68),o=d(n),p=a(71),q=d(p),r=a(100),s=d(r),t=a(102),u=d(t),v=a(101),w=d(v),x=a(149),y=d(x),z=a(162),A=d(z),B=a(9),C=d(B),D=a(13),E=d(D),F=a(10),G=d(F);e.__dashjs_factory_name="RepresentationController",c.default=G.default.getClassFactory(e),b.exports=c.default},{10:10,100:100,101:101,102:102,13:13,149:149,162:162,17:17,22:22,37:37,60:60,68:68,71:71,9:9}],22:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b){var c,d,e,f=!1,g=!1,h=a.ContentComponent_asArray,i="text"!==b?new RegExp(b):new RegExp("(vtt|ttml)");if(a.Representation_asArray.length>0&&a.Representation_asArray[0].hasOwnProperty("codecs")){var j=a.Representation_asArray[0].codecs;if("stpp"===j||"wvtt"===j)return"fragmentedText"===b}if(h){if(h.length>1)return"muxed"===b;h[0]&&h[0].contentType===b&&(f=!0,g=!0)}if(a.hasOwnProperty("mimeType")&&(f=i.test(a.mimeType),g=!0),!g)for(c=0,d=a.Representation_asArray.length;!g&&c<d;)e=a.Representation_asArray[c],e.hasOwnProperty("mimeType")&&(f=i.test(e.mimeType),g=!0),c++;return f}function b(b){return a(b,"audio")}function c(b){return a(b,"video")}function d(b){return a(b,"fragmentedText")}function e(b){return a(b,"text")}function f(b){return a(b,"muxed")}function h(a){return"text/vtt"===a||"application/ttml+xml"===a}function j(a){var b="";return a.hasOwnProperty("lang")&&(b=a.lang.replace(/[^A-Za-z0-9-]/g,"")),b}function l(a){return a.hasOwnProperty("Viewpoint")?a.Viewpoint:null}function n(a){return a.hasOwnProperty("Role_asArray")?a.Role_asArray:[]}function p(a){return a.hasOwnProperty("Accessibility_asArray")?a.Accessibility_asArray:[]}function r(a){return a.hasOwnProperty("AudioChannelConfiguration_asArray")?a.AudioChannelConfiguration_asArray:[]}function t(a){return n(a).filter(function(a){return"main"===a.value})[0]}function v(){return function(a,b){return a.bandwidth-b.bandwidth}}function x(a){return void 0!==a.Representation_asArray&&null!==a.Representation_asArray&&a.Representation_asArray.sort(v()),a}function z(a,b,c){var d,e,f=b.Period_asArray[c].AdaptationSet_asArray;for(d=0,e=f.length;d<e;d++)if(f[d].hasOwnProperty("id")&&f[d].id===a)return f[d];return null}function B(a,b,c){var d=b.Period_asArray[c].AdaptationSet_asArray;return d[a]}function D(a,b,c){var d,e,f=b.Period_asArray[c].AdaptationSet_asArray;for(d=0,e=f.length;d<e;d++)if(f[d]===a)return d;return-1}function E(b,c,d){var e,f,g=b.Period_asArray[c].AdaptationSet_asArray,h=[];for(e=0,f=g.length;e<f;e++)a(g[e],d)&&h.push(x(g[e]));return h}function F(a,b,c,d){var e=E(a,b,c);if(!e||0===e.length)return null;if(e.length>1&&d)for(var f=la.getCurrentTrackFor(c,d),g=ma.getAllMediaInfoForType(a,d,c),h=0,i=e.length;h<i;h++){if(f&&la.isTracksEqual(f,g[h]))return e[h];if(t(e[h]))return e[h]}return e[0]}function G(a){var b=a.Representation_asArray[0];return b.mimeType+';codecs="'+b.codecs+'"'}function H(a){return a.Representation_asArray[0].mimeType}function I(a){return a&&a.hasOwnProperty("cenc:default_KID")?a["cenc:default_KID"]:null}function J(a){return a&&a.hasOwnProperty("ContentProtection_asArray")&&0!==a.ContentProtection_asArray.length?a.ContentProtection_asArray:null}function K(a){var b=!1;return a.hasOwnProperty("type")&&(b="dynamic"===a.type),b}function L(a){var b,c,d=K(a);return b=!isNaN(a.timeShiftBufferDepth),c=d&&b}function M(a,b){var c=!1;return a.profiles&&a.profiles.length>0&&(c=a.profiles.indexOf(b)!==-1),c}function N(a){return M(a,"urn:mpeg:dash:profile:isoff-on-demand:2011")}function O(a){return M(a,"urn:dvb:dash:profile:dvb-dash:2014")}function P(a){var b;return b=a.hasOwnProperty("mediaPresentationDuration")?a.mediaPresentationDuration:Number.MAX_VALUE}function Q(a){return a.bandwidth}function R(a){var b=NaN,c=2;return a.hasOwnProperty("minimumUpdatePeriod")&&(b=Math.max(parseFloat(a.minimumUpdatePeriod),c)),b}function S(a){return a.Representation_asArray.length}function T(a){if(!a||!a.Representation_asArray||!a.Representation_asArray.length)return null;for(var b=x(a),c=b.Representation_asArray,d=c.length,e=[],f=0;f<d;f++)e.push({bandwidth:c[f].bandwidth,width:c[f].width||0,height:c[f].height||0});return e}function U(a,b){return b.Representation_asArray[a]}function V(a,b){for(var c,d,e,f,i,j=x(a.Period_asArray[b.period.index].AdaptationSet_asArray[b.index]),k=[],l=0;l<j.Representation_asArray.length;l++)f=j.Representation_asArray[l],c=new g.default,c.index=l,c.adaptation=b,f.hasOwnProperty("id")&&(c.id=f.id),f.hasOwnProperty("bandwidth")&&(c.bandwidth=f.bandwidth),f.hasOwnProperty("maxPlayoutRate")&&(c.maxPlayoutRate=f.maxPlayoutRate),f.hasOwnProperty("SegmentBase")?(e=f.SegmentBase,c.segmentInfoType="SegmentBase"):f.hasOwnProperty("SegmentList")?(e=f.SegmentList,e.hasOwnProperty("SegmentTimeline")?(c.segmentInfoType="SegmentTimeline",i=e.SegmentTimeline.S_asArray[e.SegmentTimeline.S_asArray.length-1],(!i.hasOwnProperty("r")||i.r>=0)&&(c.useCalculatedLiveEdgeTime=!0)):(c.segmentInfoType="SegmentList",c.useCalculatedLiveEdgeTime=!0)):f.hasOwnProperty("SegmentTemplate")?(e=f.SegmentTemplate,e.hasOwnProperty("SegmentTimeline")?(c.segmentInfoType="SegmentTimeline",i=e.SegmentTimeline.S_asArray[e.SegmentTimeline.S_asArray.length-1],(!i.hasOwnProperty("r")||i.r>=0)&&(c.useCalculatedLiveEdgeTime=!0)):c.segmentInfoType="SegmentTemplate",e.hasOwnProperty("initialization")&&(c.initialization=e.initialization.split("$Bandwidth$").join(f.bandwidth).split("$RepresentationID$").join(f.id))):(e=f.BaseURL,c.segmentInfoType="BaseURL"),e.hasOwnProperty("Initialization")?(d=e.Initialization,d.hasOwnProperty("sourceURL")?c.initialization=d.sourceURL:d.hasOwnProperty("range")&&(c.range=d.range)):f.hasOwnProperty("mimeType")&&h(f.mimeType)&&(c.range=0),e.hasOwnProperty("timescale")&&(c.timescale=e.timescale),e.hasOwnProperty("duration")&&(c.segmentDuration=e.duration/c.timescale),e.hasOwnProperty("startNumber")&&(c.startNumber=e.startNumber),e.hasOwnProperty("indexRange")&&(c.indexRange=e.indexRange),e.hasOwnProperty("presentationTimeOffset")&&(c.presentationTimeOffset=e.presentationTimeOffset/c.timescale),c.MSETimeOffset=ka.calcMSETimeOffset(c),c.path=[b.period.index,b.index,l],k.push(c);return k}function W(a,e){for(var g,h,j=a.Period_asArray[e.index],k=[],l=0;l<j.AdaptationSet_asArray.length;l++)h=j.AdaptationSet_asArray[l],g=new i.default,h.hasOwnProperty("id")&&(g.id=h.id),g.index=l,g.period=e,f(h)?g.type="muxed":b(h)?g.type="audio":c(h)?g.type="video":d(h)?g.type="fragmentedText":g.type="text",k.push(g);return k}function X(a,b){var c,d,e=K(a),f=[],g=null,h=null,i=null,j=null;for(d=0,c=a.Period_asArray.length;d<c;d++)h=a.Period_asArray[d],h.hasOwnProperty("start")?(j=new k.default,j.start=h.start):null!==g&&h.hasOwnProperty("duration")&&null!==i?(j=new k.default,j.start=i.start+i.duration,j.duration=h.duration):0!==d||e||(j=new k.default,j.start=0),null!==i&&isNaN(i.duration)&&(i.duration=j.start-i.start),null!==j&&(j.id=Y(h)),null!==j&&h.hasOwnProperty("duration")&&(j.duration=h.duration),null!==j&&(j.index=d,j.mpd=b,f.push(j),g=h,i=j),h=null,j=null;return 0===f.length?f:(null!==i&&isNaN(i.duration)&&(i.duration=aa(a,i)-i.start),f)}function Y(a){if(!a)throw new Error("Period cannot be null or undefined");var b=k.default.DEFAULT_ID;return a.hasOwnProperty("id")&&"__proto__"!==a.id&&(b=a.id),b}function Z(a){var b=new m.default;return b.manifest=a,a.hasOwnProperty("availabilityStartTime")?b.availabilityStartTime=new Date(a.availabilityStartTime.getTime()):b.availabilityStartTime=new Date(a.loadedTime.getTime()),a.hasOwnProperty("availabilityEndTime")&&(b.availabilityEndTime=new Date(a.availabilityEndTime.getTime())),a.hasOwnProperty("suggestedPresentationDelay")&&(b.suggestedPresentationDelay=a.suggestedPresentationDelay),a.hasOwnProperty("timeShiftBufferDepth")&&(b.timeShiftBufferDepth=a.timeShiftBufferDepth),a.hasOwnProperty("maxSegmentDuration")&&(b.maxSegmentDuration=a.maxSegmentDuration),b}function $(a,b){return ka.calcPresentationTimeFromWallTime(a.loadedTime,b)}function _(a,b){var c,d=NaN;return a.hasOwnProperty("minimumUpdatePeriod")&&(c=$(a,b),d=c+a.minimumUpdatePeriod),d}function aa(a,b){var c,d=_(a,b);if(a.mediaPresentationDuration)c=a.mediaPresentationDuration;else{if(isNaN(d))throw new Error("Must have @mediaPresentationDuration or @minimumUpdatePeriod on MPD or an explicit @duration on the last period.");c=d}return c}function ba(a,b){var c=a.Period_asArray,d=c[b.index].EventStream_asArray,e=[];if(d)for(var f=0;f<d.length;f++){var g=new A.default;if(g.period=b,g.timescale=1,!d[f].hasOwnProperty("schemeIdUri"))throw new Error("Invalid EventStream. SchemeIdUri has to be set");g.schemeIdUri=d[f].schemeIdUri,d[f].hasOwnProperty("timescale")&&(g.timescale=d[f].timescale),d[f].hasOwnProperty("value")&&(g.value=d[f].value);for(var h=0;h<d[f].Event_asArray.length;h++){var i=new w.default;i.presentationTime=0,i.eventStream=g,d[f].Event_asArray[h].hasOwnProperty("presentationTime")&&(i.presentationTime=d[f].Event_asArray[h].presentationTime),d[f].Event_asArray[h].hasOwnProperty("duration")&&(i.duration=d[f].Event_asArray[h].duration),d[f].Event_asArray[h].hasOwnProperty("id")&&(i.id=d[f].Event_asArray[h].id),e.push(i)}}return e}function ca(a,b){var c=[];if(!a)return c;for(var d=0;d<a.length;d++){var e=new A.default;if(e.timescale=1,e.representation=b,!a[d].hasOwnProperty("schemeIdUri"))throw new Error("Invalid EventStream. SchemeIdUri has to be set");e.schemeIdUri=a[d].schemeIdUri,a[d].hasOwnProperty("timescale")&&(e.timescale=a[d].timescale),a[d].hasOwnProperty("value")&&(e.value=a[d].value),c.push(e)}return c}function da(a,b){var c=a.Period_asArray[b.period.index].AdaptationSet_asArray[b.index].InbandEventStream_asArray;return ca(c,null)}function ea(a,b){var c=a.Period_asArray[b.adaptation.period.index].AdaptationSet_asArray[b.adaptation.index].Representation_asArray[b.index].InbandEventStream_asArray;return ca(c,b)}function fa(a){var b=K(a),c=a.hasOwnProperty("availabilityStartTime"),d=a.UTCTiming_asArray,e=[];return(b||c)&&d&&d.forEach(function(a){var b=new o.default;a.hasOwnProperty("schemeIdUri")&&(b.schemeIdUri=a.schemeIdUri,a.hasOwnProperty("value")&&(b.value=a.value.toString(),e.push(b)))}),e}function ga(a){var b=[],c=a.BaseURL_asArray||[a.baseUri],d=!1;return c.some(function(c){if(c){var e=new y.default,f=c.__text||c;return na.isRelative(f)&&(d=!0,a.baseUri&&(f=a.baseUri+f)),e.url=f,c.hasOwnProperty("serviceLocation")&&c.serviceLocation.length?e.serviceLocation=c.serviceLocation:e.serviceLocation=f,c.hasOwnProperty("dvb:priority")&&(e.dvb_priority=c["dvb:priority"]),c.hasOwnProperty("dvb:weight")&&(e.dvb_weight=c["dvb:weight"]),b.push(e),d}}),b}function ha(a){return a.hasOwnProperty("Location")&&(a.Location=a.Location_asArray[0]),a.Location}var ia=void 0,ja=this.context,ka=(0,q.default)(ja).getInstance(),la=(0,s.default)(ja).getInstance(),ma=(0,u.default)(ja).getInstance(),na=(0,C.default)(ja).getInstance();return ia={getIsTypeOf:a,getIsAudio:b,getIsVideo:c,getIsText:e,getIsMuxed:f,getIsTextTrack:h,getIsFragmentedText:d,getIsMain:t,getLanguageForAdaptation:j,getViewpointForAdaptation:l,getRolesForAdaptation:n,getAccessibilityForAdaptation:p,getAudioChannelConfigurationForAdaptation:r,processAdaptation:x,getAdaptationForIndex:B,getIndexForAdaptation:D,getAdaptationForId:z,getAdaptationsForType:E,getAdaptationForType:F,getCodec:G,getMimeType:H,getKID:I,getContentProtectionData:J,getIsDynamic:K,getIsDVR:L,getIsOnDemand:N,getIsDVB:O,getDuration:P,getBandwidth:Q,getRefreshDelay:R,getRepresentationCount:S,getBitrateListForAdaptation:T,getRepresentationFor:U,getRepresentationsForAdaptation:V,getAdaptationsForPeriod:W,getRegularPeriods:X,getPeriodId:Y,getMpd:Z,getFetchTime:$,getCheckTime:_,getEndTimeForLastPeriod:aa,getEventsForPeriod:ba,getEventStreams:ca,getEventStreamForAdaptationSet:da,getEventStreamForRepresentation:ea,getUTCTimingSources:fa,getBaseURLsFromElement:ga,getRepresentationSortFunction:v,getLocation:ha}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(45),g=d(f),h=a(39),i=d(h),j=a(44),k=d(j),l=a(43),m=d(l),n=a(47),o=d(n),p=a(37),q=d(p),r=a(66),s=d(r),t=a(15),u=d(t),v=a(41),w=d(v),x=a(40),y=d(x),z=a(42),A=d(z),B=a(158),C=d(B),D=a(10),E=d(D);e.__dashjs_factory_name="DashManifestModel",c.default=E.default.getSingletonFactory(e),b.exports=c.default},{10:10,15:15,158:158,37:37,39:39,40:40,41:41,42:42,43:43,44:44,45:45,47:47,66:66}],23:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){h=[new q.default,new s.default,new u.default],i=new o.default(h,"",(!0)),j=new m.default([new w.default,new y.default])}function b(a,b){var c;try{var f=window.performance.now();if(c=i.xml_str2json(a),!c)throw new Error("parser error");var g=window.performance.now();j.run(c);var k=window.performance.now();b.setMatchers(h),b.setIron(j),d("Parsing complete: ( xml2json: "+(g-f).toPrecision(3)+"ms, objectiron: "+(k-g).toPrecision(3)+"ms, total: "+((k-f)/1e3).toPrecision(3)+"s)")}catch(l){return e.manifestError("parsing the manifest failed","parse",a,l),null}return c}var c=this.context,d=(0,k.default)(c).getInstance().log,e=(0,g.default)(c).getInstance(),f=void 0,h=void 0,i=void 0,j=void 0;return f={
+parse:b},a(),f}Object.defineProperty(c,"__esModule",{value:!0});var f=a(151),g=d(f),h=a(10),i=d(h),j=a(8),k=d(j),l=a(3),m=d(l),n=a(4),o=d(n),p=a(30),q=d(p),r=a(29),s=d(r),t=a(31),u=d(t),v=a(26),w=d(v),x=a(27),y=d(x);e.__dashjs_factory_name="DashParser",c.default=i.default.getClassFactory(e),b.exports=c.default},{10:10,151:151,26:26,27:27,29:29,3:3,30:30,31:31,4:4,8:8}],24:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(){function a(b,c){d(this,a);var e=function(a){return a&&a.length&&a.charAt(0)===a.charAt(0).toUpperCase()};this._name=b,this._merge=void 0!==c?c:e(b)}return e(a,[{key:"name",get:function(){return this._name}},{key:"merge",get:function(){return this._merge}}]),a}();c.default=f,b.exports=c.default},{}],25:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),g=a(24),h=d(g),i=function(){function a(b,c,d,f,g){var i=this;e(this,a),this._name=b||"",this._properties=[],this._children=d||[],this._isRoot=f||!1,this._isArray=g||!0,Array.isArray(c)&&c.forEach(function(a){i._properties.push(new h.default(a))})}return f(a,[{key:"name",get:function(){return this._name}},{key:"isRoot",get:function(){return this._isRoot}},{key:"isArray",get:function(){return this._isArray}},{key:"children",get:function(){return this._children}},{key:"properties",get:function(){return this._properties}}]),a}();c.default=i,b.exports=c.default},{24:24}],26:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(25),i=d(h),j=function(a){function b(){e(this,b);var a=["profiles","width","height","sar","frameRate","audioSamplingRate","mimeType","segmentProfiles","codecs","maximumSAPPeriod","startWithSAP","maxPlayoutRate","codingDependency","scanType","FramePacking","AudioChannelConfiguration","ContentProtection","EssentialProperty","SupplementalProperty","InbandEventStream"];return g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,"AdaptationSet",a,[new i.default("Representation",a,[new i.default("SubRepresentation",a)])])}return f(b,a),b}(i.default);c.default=j,b.exports=c.default},{25:25}],27:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(25),i=d(h),j=function(a){function b(){e(this,b);var a=["SegmentBase","SegmentTemplate","SegmentList"];return g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,"Period",a,[new i.default("AdaptationSet",a,[new i.default("Representation",a)])])}return f(b,a),b}(i.default);c.default=j,b.exports=c.default},{25:25}],28:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(){function a(b,c){d(this,a),this._test=b,this._converter=c}return e(a,[{key:"test",get:function(){return this._test}},{key:"converter",get:function(){return this._converter}}]),a}();c.default=f,b.exports=c.default},{}],29:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(28),i=d(h),j=60,k=60,l=1e3,m=/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})(?::([0-9]*)(\.[0-9]*)?)?(?:([+-])([0-9]{2})(?::?)([0-9]{2}))?/,n=function(a){function b(){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,function(a){return m.test(a.value)},function(a){var b=m.exec(a),c=void 0;if(c=Date.UTC(parseInt(b[1],10),parseInt(b[2],10)-1,parseInt(b[3],10),parseInt(b[4],10),parseInt(b[5],10),b[6]&&parseInt(b[6],10)||0,b[7]&&parseFloat(b[7])*l||0),b[9]&&b[10]){var d=parseInt(b[9],10)*k+parseInt(b[10],10);c+=("+"===b[8]?-1:1)*d*j*l}return new Date(c)})}return f(b,a),b}(i.default);c.default=n,b.exports=c.default},{28:28}],30:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(28),i=d(h),j=/^([-])?P(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/,k=31536e3,l=2592e3,m=86400,n=3600,o=60,p=function(a){function b(){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,function(a){for(var b=["minBufferTime","mediaPresentationDuration","minimumUpdatePeriod","timeShiftBufferDepth","maxSegmentDuration","maxSubsegmentDuration","suggestedPresentationDelay","start","starttime","duration"],c=b.length,d=0;d<c;d++)if(a.nodeName===b[d])return j.test(a.value);return!1},function(a){var b=j.exec(a),c=parseFloat(b[2]||0)*k+parseFloat(b[4]||0)*l+parseFloat(b[6]||0)*m+parseFloat(b[8]||0)*n+parseFloat(b[10]||0)*o+parseFloat(b[12]||0);return void 0!==b[1]&&(c=-c),c})}return f(b,a),b}(i.default);c.default=p,b.exports=c.default},{28:28}],31:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(28),i=d(h),j=/^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$/,k=function(a){function b(){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,function(a){return j.test(a.value)},function(a){return parseFloat(a)})}return f(b,a),b}(i.default);c.default=k,b.exports=c.default},{28:28}],32:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){a&&a.boxParser&&(e=a.boxParser)}function b(a){var b,c,d,f,g,h,i,j,k,l,m,n=e.parse(a),o=n.getBox("tfhd"),p=n.getBox("tfdt"),q=n.getBox("trun"),r=n.getBox("moof"),s=n.getBox("mfhd");for(l=s.sequence_number,d=q.sample_count,g=p.baseMediaDecodeTime,k=(o.base_data_offset||0)+(q.data_offset||0),h=[],j=0;j<d;j++)i=q.samples[j],b=void 0!==i.sample_duration?i.sample_duration:o.default_sample_duration,f=void 0!==i.sample_size?i.sample_size:o.default_sample_size,c=void 0!==i.sample_composition_time_offset?i.sample_composition_time_offset:0,h.push({dts:g,cts:g+c,duration:b,offset:r.offset+k,size:f}),k+=f,g+=b;return m=g-p.baseMediaDecodeTime,{sampleList:h,sequenceNumber:l,totalDuration:m}}function c(a){var b=e.parse(a),c=b.getBox("mdhd");return c?c.timescale:NaN}var d=void 0,e=void 0;return d={getSamplesInfo:b,getMediaTimescaleFromMoov:c,setConfig:a}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="FragmentedTextBoxParser",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],33:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){function c(a,c,e,f){var g,i,j,k,l,m,n,o=a.adaptation.period.mpd.manifest.Period_asArray[a.adaptation.period.index].AdaptationSet_asArray[a.adaptation.index].Representation_asArray[a.index].SegmentList,p=o.SegmentURL_asArray.length,q=[];for(n=a.startNumber,k=(0,h.decideSegmentListRangeForTemplate)(d,b,a,c,e,f),l=Math.max(k.start,0),m=Math.min(k.end,o.SegmentURL_asArray.length-1),g=l;g<=m;g++)j=o.SegmentURL_asArray[g],i=(0,h.getIndexBasedSegment)(d,b,a,g),i.replacementTime=(n+g-1)*a.segmentDuration,i.media=j.media?j.media:"",i.mediaRange=j.mediaRange,i.index=j.index,i.indexRange=j.indexRange,q.push(i),i=null;return a.availableSegmentsNumber=p,q}var d=a.timelineConverter,e=void 0;return e={getSegments:c}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(35);e.__dashjs_factory_name="ListSegmentsGetter";var i=g.default.getClassFactory(e);c.default=i,b.exports=c.default},{10:10,35:35}],34:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){function c(){h=(0,i.default)(f).create(a,b),j=(0,k.default)(f).create(a,b),l=(0,m.default)(f).create(a,b)}function d(a,b,c,d,f){var g,i=a.segmentInfoType;return"SegmentBase"!==i&&"BaseURL"!==i&&e(a,c)?("SegmentTimeline"===i?g=h.getSegments(a,b,c,f):"SegmentTemplate"===i?g=j.getSegments(a,b,c,f):"SegmentList"===i&&(g=l.getSegments(a,b,c,f)),d&&d(a,g)):g=a.segments,g}function e(a,b){var c,d,e=a.segments,f=!1;return e&&0!==e.length?(d=e[0].availabilityIdx,c=e[e.length-1].availabilityIdx,f=b<d||b>c):f=!0,f}var f=this.context,g=void 0,h=void 0,j=void 0,l=void 0;return g={getSegments:d},c(),g}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(38),i=d(h),j=a(36),k=d(j),l=a(33),m=d(l);e.__dashjs_factory_name="SegmentsGetter";var n=g.default.getClassFactory(e);c.default=n,b.exports=c.default},{10:10,33:33,36:36,38:38}],35:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){for(;a.length<b;)a="0"+a;return a}function f(a,b){return a.representation.startNumber+b}function g(a,b,c){for(var d,f,g,h,i,j,k="%0",l=b.length,m=k.length;;){if(d=a.indexOf("$"+b),d<0)return a;if(f=a.indexOf("$",d+l),f<0)return a;if(g=a.indexOf(k,d+l),g>d&&g<f)switch(h=a.charAt(f-1),i=parseInt(a.substring(g+m,f-1),10),h){case"d":case"i":case"u":j=e(c.toString(),i);break;case"x":j=e(c.toString(16),i);break;case"X":j=e(c.toString(16),i).toUpperCase();break;case"o":j=e(c.toString(8),i);break;default:return a}else j=c;a=a.substring(0,d)+j+a.substring(f+1)}}function h(a,b,c,d){var e,g,h,i;return g=c.segmentDuration,isNaN(g)&&(g=c.adaptation.period.duration),h=c.adaptation.period.start+d*g,i=h+g,e=new n.default,e.representation=c,e.duration=g,e.presentationStartTime=h,e.mediaStartTime=a.calcMediaTimeFromPresentationTime(e.presentationStartTime,c),e.availabilityStartTime=a.calcAvailabilityStartTimeFromPresentationTime(e.presentationStartTime,c.adaptation.period.mpd,b),e.availabilityEndTime=a.calcAvailabilityEndTimeFromPresentationTime(i,c.adaptation.period.mpd,b),e.wallStartTime=a.calcWallTimeForSegment(e,b),e.replacementNumber=f(e,d),e.availabilityIdx=d,e}function i(a,b,c,d,e,h,i,j,k){var l,m,o,p=d/h,q=Math.min(e/h,c.adaptation.period.mpd.maxSegmentDuration);return l=a.calcPresentationTimeFromMediaTime(p,c),m=l+q,o=new n.default,o.representation=c,o.duration=q,o.mediaStartTime=p,o.presentationStartTime=l,o.availabilityStartTime=c.adaptation.period.mpd.manifest.loadedTime,o.availabilityEndTime=a.calcAvailabilityEndTimeFromPresentationTime(m,c.adaptation.period.mpd,b),o.wallStartTime=a.calcWallTimeForSegment(o,b),o.replacementTime=d,o.replacementNumber=f(o,k),i=g(i,"Number",o.replacementNumber),i=g(i,"Time",o.replacementTime),o.media=i,o.mediaRange=j,o.availabilityIdx=k,o}function j(a,b){if(!b||!b.segments)return null;var c,d,e=b.segments.length;if(a<e&&(c=b.segments[a],c&&c.availabilityIdx===a))return c;for(d=0;d<e;d++)if(c=b.segments[d],c&&c.availabilityIdx===a)return c;return null}function k(a,b,c,d,e){var f,g,h,i=2,j=e||10,k=0,l=Number.POSITIVE_INFINITY;return b&&!a.isTimeSyncCompleted()?h={start:k,end:l}:!b&&c||d<0?null:(f=Math.max(d-i,k),g=Math.min(d+j,l),h={start:f,end:g})}function l(a,b,c,d,e,f){var g,h,i,k=c.segmentDuration,l=c.adaptation.period.mpd.manifest.minBufferTime,m=c.segmentAvailabilityRange,n={start:a.calcPeriodRelativeTimeFromMpdRelativeTime(c,m.start),end:a.calcPeriodRelativeTimeFromMpdRelativeTime(c,m.end)},o=c.segments,p=2*k,q=f||Math.max(2*l,10*k),r=NaN,s=null;return n.start=Math.max(n.start,0),b&&!a.isTimeSyncCompleted()?(g=Math.floor(n.start/k),h=Math.floor(n.end/k),i={start:g,end:h}):(o&&o.length>0?(s=j(e,c),r=s?a.calcPeriodRelativeTimeFromMpdRelativeTime(c,s.presentationStartTime):e>0?e*k:a.calcPeriodRelativeTimeFromMpdRelativeTime(c,d)):r=e>0?e*k:b?n.end:n.start,g=Math.floor(Math.max(r-p,n.start)/k),h=Math.floor(Math.min(g+q/k,n.end/k)),i={start:g,end:h})}Object.defineProperty(c,"__esModule",{value:!0}),c.replaceTokenForTemplate=g,c.getIndexBasedSegment=h,c.getTimeBasedSegment=i,c.getSegmentByIndex=j,c.decideSegmentListRangeForTimeline=k,c.decideSegmentListRangeForTemplate=l;var m=a(46),n=d(m)},{46:46}],36:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){function c(a,c,e,f){var g,i,j,k,l,m=a.adaptation.period.mpd.manifest.Period_asArray[a.adaptation.period.index].AdaptationSet_asArray[a.adaptation.index].Representation_asArray[a.index].SegmentTemplate,n=a.segmentDuration,o=a.segmentAvailabilityRange,p=[],q=null,r=null;for(l=a.startNumber,g=isNaN(n)&&!b?{start:l,end:l}:(0,h.decideSegmentListRangeForTemplate)(d,b,a,c,e,f),j=g.start,k=g.end,i=j;i<=k;i++)r=(0,h.getIndexBasedSegment)(d,b,a,i),r.replacementTime=(l+i-1)*a.segmentDuration,q=m.media,q=(0,h.replaceTokenForTemplate)(q,"Number",r.replacementNumber),q=(0,h.replaceTokenForTemplate)(q,"Time",r.replacementTime),r.media=q,p.push(r),r=null;return isNaN(n)?a.availableSegmentsNumber=1:a.availableSegmentsNumber=Math.ceil((o.end-o.start)/n),p}var d=a.timelineConverter,e=void 0;return e={getSegments:c}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(35);e.__dashjs_factory_name="TemplateSegmentsGetter";var i=g.default.getClassFactory(e);c.default=i,b.exports=c.default},{10:10,35:35}],37:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){z=0,A=!1,B=NaN,x.on(i.default.LIVE_EDGE_SEARCH_COMPLETED,s,this),x.on(i.default.TIME_SYNCHRONIZATION_COMPLETED,t,this)}function b(){return A}function c(a){A=a}function d(){return z}function e(){return B}function f(a){B=a}function h(a,b,c,d){var e=NaN;return e=d?c&&b.timeShiftBufferDepth!=Number.POSITIVE_INFINITY?new Date(b.availabilityStartTime.getTime()+1e3*(a+b.timeShiftBufferDepth)):b.availabilityEndTime:c?new Date(b.availabilityStartTime.getTime()+1e3*(a-z)):b.availabilityStartTime}function j(a,b,c){return h.call(this,a,b,c)}function k(a,b,c){return h.call(this,a,b,c,!0)}function l(a,b){return(a.getTime()-b.mpd.availabilityStartTime.getTime()+1e3*z)/1e3}function m(a,b){var c=b.adaptation.period.start,d=b.presentationTimeOffset;return a+(c-d)}function n(a,b){var c=b.adaptation.period.start,d=b.presentationTimeOffset;return a-c+d}function o(a,b){var c,d,e;return b&&(c=a.representation.adaptation.period.mpd.suggestedPresentationDelay,d=a.presentationStartTime+c,e=new Date(a.availabilityStartTime.getTime()+1e3*d)),e}function p(a,b){var c,d,e=a.adaptation.period.start,f=e+a.adaptation.period.duration,g={start:e,end:f},h=a.segmentDuration||(a.segments&&a.segments.length?a.segments[a.segments.length-1].duration:0);if(!b)return g;if(!A&&a.segmentAvailabilityRange)return a.segmentAvailabilityRange;c=a.adaptation.period.mpd.checkTime,d=l(new Date,a.adaptation.period),e=Math.max(d-a.adaptation.period.mpd.timeShiftBufferDepth,a.adaptation.period.start);var i=isNaN(c)?d:Math.min(c,d),j=a.adaptation.period.start+a.adaptation.period.duration;return f=(i>=j&&i-h<j?j:i)-h,g={start:e,end:f}}function q(a,b){var c=a.adaptation.period.start;return b-c}function r(a,b){var c=a.adaptation.period.start;return b+c}function s(a){A||a.error||(z+=a.liveEdge-(B+a.searchTime),A=!0)}function t(a){A||a.error||(z=a.offset/1e3,A=!0)}function u(a){var b=a.presentationTimeOffset,c=a.adaptation.period.start;return c-b}function v(){x.off(i.default.LIVE_EDGE_SEARCH_COMPLETED,s,this),x.off(i.default.TIME_SYNCHRONIZATION_COMPLETED,t,this),z=0,A=!1,B=NaN}var w=this.context,x=(0,g.default)(w).getInstance(),y=void 0,z=void 0,A=void 0,B=void 0;return y={initialize:a,isTimeSyncCompleted:b,setTimeSyncCompleted:c,getClientTimeOffset:d,getExpectedLiveEdge:e,setExpectedLiveEdge:f,calcAvailabilityStartTimeFromPresentationTime:j,calcAvailabilityEndTimeFromPresentationTime:k,calcPresentationTimeFromWallTime:l,calcPresentationTimeFromMediaTime:m,calcPeriodRelativeTimeFromMpdRelativeTime:q,calcMpdRelativeTimeFromPeriodRelativeTime:r,calcMediaTimeFromPresentationTime:n,calcSegmentAvailabilityRange:p,calcWallTimeForSegment:o,calcMSETimeOffset:u,reset:v}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(9),g=d(f),h=a(13),i=d(h),j=a(10),k=d(j);e.__dashjs_factory_name="TimelineConverter",c.default=k.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,9:9}],38:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){function c(a,c,e,f){var g,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a.adaptation.period.mpd.manifest.Period_asArray[a.adaptation.period.index].AdaptationSet_asArray[a.adaptation.index].Representation_asArray[a.index].SegmentTemplate||a.adaptation.period.mpd.manifest.Period_asArray[a.adaptation.period.index].AdaptationSet_asArray[a.adaptation.index].Representation_asArray[a.index].SegmentList,w=v.SegmentTimeline,x=v.SegmentURL_asArray,y=a.availableSegmentsNumber>0,z=10,A=0,B=0,C=-1,D=[],E=!1,F=function(c,e){var f=v.media,g=c.mediaRange;return x&&(f=x[e].media||"",g=x[e].mediaRange),(0,h.getTimeBasedSegment)(d,b,a,A,c.d,u,f,g,C)};for(u=a.timescale,g=w.S_asArray,p=(0,h.decideSegmentListRangeForTimeline)(d,b,c,e,f),p?(s=p.start,t=p.end):r=d.calcMediaTimeFromPresentationTime(c||0,a),j=0,k=g.length;j<k;j++){if(i=g[j],m=0,i.hasOwnProperty("r")&&(m=i.r),i.hasOwnProperty("t")&&(A=i.t,B=A/u),m<0){if(o=g[j+1],o&&o.hasOwnProperty("t"))n=o.t/u;else{var G=a.segmentAvailabilityRange?a.segmentAvailabilityRange.end:d.calcSegmentAvailabilityRange(a,b).end;n=d.calcMediaTimeFromPresentationTime(G,a),a.segmentDuration=i.d/u}m=Math.ceil((n-B)/(i.d/u))-1}if(q){if(y)break;C+=m+1}else for(l=0;l<=m;l++){if(C++,p){if(C>t){if(q=!0,y)break;continue}C>=s&&D.push(F(i,C))}else{if(D.length>z){if(q=!0,y)break;continue}E?D.push(F(i,C)):B>=r-i.d/u*1.5&&(E=!0,D.push(F(i,C)))}A+=i.d,B=A/u}}return y||(a.availableSegmentsNumber=C+1),D}var d=a.timelineConverter,e=void 0;return e={getSegments:c}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(35);e.__dashjs_factory_name="TimelineSegmentsGetter";var i=g.default.getClassFactory(e);c.default=i,b.exports=c.default},{10:10,35:35}],39:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.period=null,this.index=-1,this.type=null};c.default=e,b.exports=c.default},{}],40:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=1,f=1,g=function a(b,c,g,h){d(this,a),this.url=b||"",this.serviceLocation=c||b||"",this.dvb_priority=g||e,this.dvb_weight=h||f};g.DEFAULT_DVB_PRIORITY=e,g.DEFAULT_DVB_WEIGHT=f,c.default=g,b.exports=c.default},{}],41:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.duration=NaN,this.presentationTime=NaN,this.id=NaN,this.messageData="",this.eventStream=null,this.presentationTimeDelta=NaN};c.default=e,b.exports=c.default},{}],42:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.adaptionSet=null,this.representation=null,this.period=null,this.timescale=1,this.value="",this.schemeIdUri=""};c.default=e,b.exports=c.default},{}],43:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.manifest=null,this.suggestedPresentationDelay=0,this.availabilityStartTime=null,this.availabilityEndTime=Number.POSITIVE_INFINITY,this.timeShiftBufferDepth=Number.POSITIVE_INFINITY,this.maxSegmentDuration=Number.POSITIVE_INFINITY,this.checkTime=NaN,this.clientServerTimeShift=0,this.isClientServerTimeSyncCompleted=!1};c.default=e,b.exports=c.default},{}],44:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.id=null,this.index=-1,this.duration=NaN,this.start=NaN,this.mpd=null};e.DEFAULT_ID="defaultId",c.default=e,b.exports=c.default},{}],45:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.id=null,this.index=-1,this.adaptation=null,this.segmentInfoType=null,this.initialization=null,this.segmentDuration=NaN,this.timescale=1,this.startNumber=1,this.indexRange=null,this.range=null,this.presentationTimeOffset=0,this.MSETimeOffset=NaN,this.segmentAvailabilityRange=null,this.availableSegmentsNumber=0,this.bandwidth=NaN,this.maxPlayoutRate=NaN};c.default=e,b.exports=c.default},{}],46:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.indexRange=null,this.index=null,this.mediaRange=null,this.media=null,this.duration=NaN,this.replacementTime=null,this.replacementNumber=NaN,this.mediaStartTime=NaN,this.presentationStartTime=NaN,this.availabilityStartTime=NaN,this.availabilityEndTime=NaN,this.availabilityIdx=NaN,this.wallStartTime=NaN,this.representation=null};c.default=e,b.exports=c.default},{}],47:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.schemeIdUri="",this.value=""};c.default=e,b.exports=c.default},{}],48:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){n=(0,g.default)(h).create({errHandler:a.errHandler,metricsModel:a.metricsModel,requestModifier:a.requestModifier})}function c(a){var b=function(b){j.trigger(o.default.CHECK_FOR_EXISTENCE_COMPLETED,{request:a,exists:b})};if(a){var c=new i.default(a.url);n.load({request:c,success:function(){b(!0)},error:function(){b(!1)}})}else b(!1)}function d(a){var b=function(b,c){j.trigger(o.default.LOADING_COMPLETED,{request:a,response:b||null,error:c||null,sender:l})};a?n.load({request:a,progress:function(){j.trigger(o.default.LOADING_PROGRESS,{request:a})},success:function(a){b(a)},error:function(a,c,d){b(void 0,new k.default(r,d,c))}}):b(void 0,new k.default(s,t))}function e(){n&&n.abort()}function f(){n&&(n.abort(),n=null)}var h=this.context,j=(0,m.default)(h).getInstance(),l=void 0,n=void 0;return l={checkForExistence:c,load:d,abort:e,reset:f},b(),l}Object.defineProperty(c,"__esModule",{value:!0});var f=a(58),g=d(f),h=a(164),i=d(h),j=a(162),k=d(j),l=a(9),m=d(l),n=a(13),o=d(n),p=a(10),q=d(p),r=1,s=2,t="request is null";e.__dashjs_factory_name="FragmentLoader";var u=q.default.getClassFactory(e);u.FRAGMENT_LOADER_ERROR_LOADING_FAILURE=r,u.FRAGMENT_LOADER_ERROR_NULL_REQUEST=s,c.default=u,b.exports=c.default},{10:10,13:13,162:162,164:164,58:58,9:9}],49:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){h.on(t.default.XLINK_READY,c,n),q=(0,i.default)(f).create({errHandler:a.errHandler,metricsModel:a.metricsModel,requestModifier:a.requestModifier}),s=(0,g.default)(f).create({errHandler:a.errHandler,metricsModel:a.metricsModel,requestModifier:a.requestModifier})}function c(a){h.trigger(t.default.INTERNAL_MANIFEST_LOADED,{manifest:a.manifest})}function d(a){var b=new m.default(a,p.HTTPRequest.MPD_TYPE);q.load({request:b,success:function(b,c,d){var e,f;d.responseURL&&d.responseURL!==a?(f=j.parseBaseUrl(d.responseURL),e=d.responseURL):(j.isRelative(a)&&(a=j.parseBaseUrl(window.location.href)+a),f=j.parseBaseUrl(a));var g=l.parse(b,s);g?(g.url=e||a,g.originalUrl||(g.originalUrl=g.url),g.baseUri=f,g.loadedTime=new Date,s.resolveManifestOnLoad(g)):h.trigger(t.default.INTERNAL_MANIFEST_LOADED,{manifest:null,error:new o.default(w,y)})},error:function(b,c,d){h.trigger(t.default.INTERNAL_MANIFEST_LOADED,{manifest:null,error:new o.default(x,"Failed loading manifest: "+a+", "+d)})}})}function e(){h.off(t.default.XLINK_READY,c,n),s&&(s.reset(),s=null),q&&(q.abort(),q=null)}var f=this.context,h=(0,r.default)(f).getInstance(),j=(0,k.default)(f).getInstance(),l=a.parser,n=void 0,q=void 0,s=void 0;return n={load:d,reset:e},b(),n}Object.defineProperty(c,"__esModule",{value:!0});var f=a(74),g=d(f),h=a(58),i=d(h),j=a(158),k=d(j),l=a(170),m=d(l),n=a(162),o=d(n),p=a(179),q=a(9),r=d(q),s=a(13),t=d(s),u=a(10),v=d(u),w=1,x=2,y="parsing failed";e.__dashjs_factory_name="ManifestLoader";var z=v.default.getClassFactory(e);z.MANIFEST_LOADER_ERROR_PARSING_FAILURE=w,z.MANIFEST_LOADER_ERROR_LOADING_FAILURE=x,c.default=z,b.exports=c.default},{10:10,13:13,158:158,162:162,170:170,179:179,58:58,74:74,9:9}],50:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){a&&(a.manifestModel&&(z=a.manifestModel),a.dashManifestModel&&(A=a.dashManifestModel))}function b(a){y=a,u=NaN,v=null,x=!1,w=!0,s.on(i.default.STREAMS_COMPOSED,p,this),s.on(i.default.PLAYBACK_STARTED,n,this),s.on(i.default.PLAYBACK_PAUSED,o,this),s.on(i.default.INTERNAL_MANIFEST_LOADED,l,this)}function c(a){j(a)}function d(){return y}function e(){s.off(i.default.PLAYBACK_STARTED,n,this),s.off(i.default.PLAYBACK_PAUSED,o,this),s.off(i.default.STREAMS_COMPOSED,p,this),s.off(i.default.INTERNAL_MANIFEST_LOADED,l,this),w=!0,x=!1,f(),u=NaN}function f(){null!==v&&(clearInterval(v),v=null)}function h(){f(),isNaN(u)||(r("Refresh manifest in "+u+" seconds."),v=setTimeout(k,Math.min(1e3*u,Math.pow(2,31)-1),this))}function j(a){var b,c,d=new Date;z.setValue(a),r("Manifest has been refreshed at "+d+"["+d.getTime()/1e3+"] "),b=A.getRefreshDelay(a),c=((new Date).getTime()-a.loadedTime.getTime())/1e3,u=Math.max(b-c,0),s.trigger(i.default.MANIFEST_UPDATED,{manifest:a}),w||h()}function k(){var a,b;if(!w&&!x){x=!0,a=z.getValue(),b=a.url;var c=A.getLocation(a);c&&(b=c),y.load(b)}}function l(a){a.error||j(a.manifest)}function n(){w=!1,h()}function o(){w=!0,f()}function p(){x=!1}var q=this.context,r=(0,m.default)(q).getInstance().log,s=(0,g.default)(q).getInstance(),t=void 0,u=void 0,v=void 0,w=void 0,x=void 0,y=void 0,z=void 0,A=void 0;return t={initialize:b,setManifest:c,getManifestLoader:d,setConfig:a,reset:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(9),g=d(f),h=a(13),i=d(h),j=a(10),k=d(j),l=a(8),m=d(l);e.__dashjs_factory_name="ManifestUpdater",c.default=k.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,8:8,9:9}],51:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){_b=!1,ac=!1,bc=!0,ec=null,$b=null,gc=null,ea.default.extend(ga.default),ic=(0,I.default)(Ub).getInstance()}function b(a,b,c){return kc=(0,u.default)(Ub).getInstance(),jc=(0,s.default)(Ub).getInstance(),kc.supportsMediaSource()?void(_b||(_b=!0,cc=(0,M.default)(Ub).getInstance(),nc=(0,i.default)(Ub).getInstance(),dc=(0,m.default)(Ub).getInstance(),dc.initialize(),pc=(0,pa.default)(Ub).getInstance(),oc=(0,ra.default)(Ub).getInstance(),hc=(0,K.default)(Ub).getInstance(),hc.setConfig({adapter:Jb()}),db(),oa(void 0===c||c),a&&zb(a),b&&Db(b),Xb("[dash.js "+R()+"] MediaPlayer has been initialized"))):void jc.capabilityError("mediasource")}function c(){return!!qc&&!!Zb}function d(){if(!ac)throw Qb;(!bc||f()&&ac)&&nc.play()}function e(){if(!ac)throw Qb;nc.pause()}function f(){if(!ac)throw Qb;return nc.isPaused()}function h(){if(!ac)throw Qb;return nc.isSeeking()}function j(a){if(!qc)throw Rb;yb().muted=a}function l(){if(!qc)throw Rb;return yb().muted}function n(a){if(!qc)throw Rb;yb().volume=a}function p(){if(!qc)throw Rb;return yb().volume}function r(a){var b=["video","audio","fragmentedText"];if(a){
+if(b.indexOf(a)!==-1){var c=va().getCurrentBufferLevel(wa(a));return c?c:NaN}return Xb("Warning  - getBufferLength requested for invalid type"),NaN}return b.map(function(a){return Ka(a).length>0?va().getCurrentBufferLevel(wa(a)):Number.MAX_VALUE}).reduce(function(a,b){return Math.min(a,b)})}function t(){var a=Mb();return a?a.manifestInfo.DVRWindowSize:0}function v(a){var b=Mb();if(!b)return 0;var c=b.range.start+a;return c>b.range.end&&(c=b.range.end),c}function x(a){if(!ac)throw Qb;var b=nc.getIsDynamic()?v(a):a;nc.seek(b)}function z(a){if(!ac)throw Qb;var b=yb().currentTime;if(void 0!==a)b=lc.getTimeRelativeToStreamId(b,a);else if(nc.getIsDynamic()){var c=Mb();b=null===c?0:B()-(c.range.end-c.time)}return b}function B(){if(!ac)throw Qb;var a=yb().duration;if(nc.getIsDynamic()){var b,c=Mb();if(!c)return 0;b=c.range.end-c.range.start,a=b<c.manifestInfo.DVRWindowSize?b:c.manifestInfo.DVRWindowSize}return a}function D(){if(!ac)throw Qb;return z()<0?NaN:Nb(z())}function F(){if(!ac)throw Qb;return Nb(B())}function H(a,b,c){var d=new Date(1e3*a),e=d.toLocaleDateString(b),f=d.toLocaleTimeString(b,{hour12:c});return f+" "+e}function J(a){a=Math.max(a,0);var b=Math.floor(a/3600),c=Math.floor(a%3600/60),d=Math.floor(a%3600%60);return(0===b?"":b<10?"0"+b.toString()+":":b.toString()+":")+(c<10?"0"+c.toString():c.toString())+":"+(d<10?"0"+d.toString():d.toString())}function L(a,b,c){ia.default.extend(a,b,c,Ub)}function N(a,b,c){Vb.on(a,b,c)}function P(a,b,c){Vb.off(a,b,c)}function R(){return(0,ja.getVersionString)()}function T(){return Wb}function V(){if(!qc)throw Rb;return qc}function X(a){ic.setLiveDelayFragmentCount(a)}function Z(a){ic.setLiveDelay(a)}function _(a){ic.setUseSuggestedPresentationDelay(a)}function ba(a,b){ic.setLastBitrateCachingInfo(a,b)}function da(a,b){ic.setLastMediaSettingsCachingInfo(a,b)}function fa(a,b){cc.setMaxAllowedBitrateFor(a,b)}function ha(a){return cc.getMaxAllowedBitrateFor(a)}function ka(a,b){cc.setMaxAllowedRepresentationRatioFor(a,b)}function ma(a){return cc.getMaxAllowedRepresentationRatioFor(a)}function oa(a){bc=a}function qa(){return bc}function sa(a){ic.setScheduleWhilePaused(a)}function ua(){return ic.getScheduleWhilePaused()}function va(){return oc}function wa(a){return hc.getReadOnlyMetricsFor(a)}function xa(a){if(!ac)throw Qb;return cc.getQualityFor(a,lc.getActiveStreamInfo())}function ya(a,b){if(!ac)throw Qb;cc.setPlaybackQuality(a,lc.getActiveStreamInfo(),b)}function za(){return cc.getLimitBitrateByPortal()}function Aa(a){cc.setLimitBitrateByPortal(a)}function Ba(){return cc.getUsePixelRatioInLimitBitrateByPortal()}function Ca(a){cc.setUsePixelRatioInLimitBitrateByPortal(a)}function Da(a){if(!ac)throw Qb;void 0===rc&&(rc=(0,C.default)(Ub).getInstance());for(var b=yb().textTracks,c=b.length,d=0;d<c;d++){var e=b[d],f=a===d?"showing":"hidden";e.mode!==f&&(e.mode=f)}rc.setTextTrack()}function Ea(a){if(!ac)throw Qb;var b=Ob();return b?b.getBitrateListFor(a):[]}function Fa(a,b){cc.setInitialBitrateFor(a,b)}function Ga(a){if(!ac)throw Qb;return cc.getInitialBitrateFor(a)}function Ha(a,b){cc.setInitialRepresentationRatioFor(a,b)}function Ia(a){return cc.getInitialRepresentationRatioFor(a)}function Ja(a){if(!ac)throw Qb;return gc.getStreamsInfo(a)}function Ka(a){if(!ac)throw Qb;var b=lc.getActiveStreamInfo();return b?dc.getTracksFor(a,b):[]}function La(a,b,c){if(!ac)throw Qb;return c=c||gc.getStreamsInfo(b)[0],c?gc.getAllMediaInfoForType(b,c,a):[]}function Ma(a){if(!ac)throw Qb;var b=lc.getActiveStreamInfo();return b?dc.getCurrentTrackFor(a,b):null}function Na(a,b){dc.setInitialSettings(a,b)}function Oa(a){return dc.getInitialSettings(a)}function Pa(a){if(!ac)throw Qb;dc.setTrack(a)}function Qa(a){return dc.getSwitchMode(a)}function Ra(a,b){dc.setSwitchMode(a,b)}function Sa(a){dc.setSelectionModeForInitialTrack(a)}function Ta(){return dc.getSelectionModeForInitialTrack()}function Ua(){return cc.getAutoSwitchBitrateFor("video")||cc.getAutoSwitchBitrateFor("audio")}function Va(a){cc.setAutoSwitchBitrateFor("video",a),cc.setAutoSwitchBitrateFor("audio",a)}function Wa(a){return cc.getAutoSwitchBitrateFor(a)}function Xa(a,b){cc.setAutoSwitchBitrateFor(a,b)}function Ya(a){ic.setFastSwitchEnabled(a)}function Za(){return ic.getFastSwitchEnabled()}function $a(a){ic.setBufferOccupancyABREnabled(a)}function _a(a,b){var c=Hb(),d=this,e=function a(e){e.error?b(null,e.error):b(e.manifest),Vb.off(ea.default.INTERNAL_MANIFEST_LOADED,a,d),c.reset()};Vb.on(ea.default.INTERNAL_MANIFEST_LOADED,e,d);var f=(0,E.default)(Ub).getInstance();f.initialize(),c.load(f.parseURI(a))}function ab(a,b){bb(a,b);var c=new g.default;c.schemeIdUri=a,c.value=b,ic.getUTCTimingSources().push(c)}function bb(a,b){var c=ic.getUTCTimingSources();c.forEach(function(d,e){d.schemeIdUri===a&&d.value===b&&c.splice(e,1)})}function cb(){ic.setUTCTimingSources([])}function db(){ab(I.default.DEFAULT_UTC_TIMING_SOURCE.scheme,I.default.DEFAULT_UTC_TIMING_SOURCE.value)}function eb(a){ic.setUseManifestDateHeaderTimeSource(a)}function fb(a){ic.setBufferToKeep(a)}function gb(a){ic.setBufferPruningInterval(a)}function hb(a){ic.setStableBufferTime(a)}function ib(a){ic.setBufferTimeAtTopQuality(a)}function jb(a){ic.setBufferTimeAtTopQualityLongForm(a)}function kb(a){ic.setLongFormContentDurationThreshold(a)}function lb(a){ic.setRichBufferThreshold(a)}function mb(a){ic.setBandwidthSafetyFactor(a)}function nb(){return ic.getBandwidthSafetyFactor()}function ob(a){ic.setAbandonLoadTimeout(a)}function pb(a){ic.setFragmentRetryAttempts(a)}function qb(a){ic.setFragmentRetryInterval(a)}function rb(a){ic.setXHRWithCredentials(a)}function sb(){return Kb()}function tb(a){ec=a}function ub(a){$b=a}function vb(a){var b=(0,w.default)(Ub).getInstance();b.setConfig({videoModel:qc}),b.initialize(),b.displayCConTop(a)}function wb(){return qc?qc.getVideoContainer():null}function xb(a){if(!qc)throw Rb;qc.setVideoContainer(a)}function yb(){if(!qc)throw Rb;return qc.getElement()}function zb(a){if(!_b)throw Tb;qc=null,a&&(qc=(0,S.default)(Ub).getInstance(),qc.initialize(),qc.setElement(a),Kb(),Lb()),Fb()}function Ab(){return qc?qc.getTTMLRenderingDiv():null}function Bb(a){if(!qc)throw Rb;qc.setTTMLRenderingDiv(a)}function Cb(){if(!Zb)throw Sb;return Zb}function Db(a){if(!_b)throw Tb;if("string"==typeof a){var b=(0,E.default)(Ub).getInstance();b.initialize(),Zb=b.parseURI(a)}else Zb=a;Fb()}function Eb(){Db(null),zb(null),$b=null,ec=null}function Fb(){ac?(ac=!1,gc.reset(),lc.reset(),nc.reset(),cc.reset(),mc.reset(),dc.reset(),lc=null,fc=null,c()&&Pb()):c()&&Pb()}function Gb(){var a=(0,W.default)(Ub).getInstance();a.initialize();var b=(0,Q.default)(Ub).getInstance();b.initialize();var c=(0,y.default)(Ub).getInstance();c.setConfig({dashManifestModel:pc}),dc.initialize(),dc.setConfig({errHandler:jc}),mc=(0,U.default)(Ub).getInstance(),mc.initialize(),mc.setConfig({abrRulesCollection:b,synchronizationRulesCollection:a}),lc=(0,k.default)(Ub).getInstance(),lc.setConfig({capabilities:kc,manifestLoader:Hb(),manifestModel:(0,G.default)(Ub).getInstance(),dashManifestModel:pc,protectionController:ec,adapter:gc,metricsModel:hc,dashMetrics:oc,liveEdgeFinder:(0,q.default)(Ub).getInstance(),mediaSourceController:(0,Y.default)(Ub).getInstance(),timeSyncController:(0,O.default)(Ub).getInstance(),baseURLController:(0,$.default)(Ub).getInstance(),errHandler:jc,timelineConverter:(0,ta.default)(Ub).getInstance()}),lc.initialize(bc,$b),cc.setConfig({abrRulesCollection:b,rulesController:mc,streamController:lc})}function Hb(){return(0,o.default)(Ub).create({errHandler:jc,parser:Ib(),metricsModel:hc,requestModifier:(0,A.default)(Ub).getInstance()})}function Ib(){return(0,na.default)(Ub).create()}function Jb(){return gc=(0,la.default)(Ub).getInstance(),gc.initialize(),gc.setConfig({dashManifestModel:pc}),gc}function Kb(){if(ec)return ec;var a=dashjs.Protection;if("function"==typeof a){var b=a(Ub).create();return ea.default.extend(a.events),ga.default.extend(a.events,{publicOnly:!0}),ec=b.createProtectionSystem({log:Xb,videoModel:qc,capabilities:kc,eventBus:Vb,adapter:gc})}return null}function Lb(){if(fc)return fc;var a=dashjs.MetricsReporting;if("function"==typeof a){var b=a(Ub).create();return fc=b.createMetricsReporting({log:Xb,eventBus:Vb,mediaElement:yb(),dashManifestModel:pc,metricsModel:hc})}return null}function Mb(){var a=hc.getReadOnlyMetricsFor("video")||hc.getReadOnlyMetricsFor("audio");return oc.getCurrentDVRInfo(a)}function Nb(a){var b,c,d=Mb();return d?(b=d.manifestInfo.availableFrom.getTime()/1e3,c=a+(b+d.range.start)):0}function Ob(){if(!ac)throw Qb;var a=lc.getActiveStreamInfo();return a?lc.getStreamById(a.id):null}function Pb(){ac||(ac=!0,Xb("Playback Initialized"),Gb(),"string"==typeof Zb?lc.load(Zb):lc.loadWithManifest(Zb))}var Qb="You must first call play() to init playback before calling this method",Rb="You must first call attachView() to set the video element before calling this method",Sb="You must first call attachSource() with a valid source before calling this method",Tb="MediaPlayer not initialized!",Ub=this.context,Vb=(0,ca.default)(Ub).getInstance(),Wb=(0,aa.default)(Ub).getInstance(),Xb=Wb.log,Yb=void 0,Zb=void 0,$b=void 0,_b=void 0,ac=void 0,bc=void 0,cc=void 0,dc=void 0,ec=void 0,fc=void 0,gc=void 0,hc=void 0,ic=void 0,jc=void 0,kc=void 0,lc=void 0,mc=void 0,nc=void 0,oc=void 0,pc=void 0,qc=void 0,rc=void 0;return Yb={initialize:b,on:N,off:P,extend:L,attachView:zb,attachSource:Db,isReady:c,play:d,isPaused:f,pause:e,isSeeking:h,seek:x,setMute:j,isMuted:l,setVolume:n,getVolume:p,time:z,duration:B,timeAsUTC:D,durationAsUTC:F,getActiveStream:Ob,getDVRWindowSize:t,getDVRSeekOffset:v,convertToTimeCode:J,formatUTC:H,getVersion:R,getDebug:T,getBufferLength:r,getVideoModel:V,getVideoContainer:wb,getTTMLRenderingDiv:Ab,getVideoElement:yb,getSource:Cb,setLiveDelayFragmentCount:X,setLiveDelay:Z,useSuggestedPresentationDelay:_,enableLastBitrateCaching:ba,enableLastMediaSettingsCaching:da,setMaxAllowedBitrateFor:fa,getMaxAllowedBitrateFor:ha,setMaxAllowedRepresentationRatioFor:ka,getMaxAllowedRepresentationRatioFor:ma,setAutoPlay:oa,getAutoPlay:qa,setScheduleWhilePaused:sa,getScheduleWhilePaused:ua,getDashMetrics:va,getMetricsFor:wa,getQualityFor:xa,setQualityFor:ya,getLimitBitrateByPortal:za,setLimitBitrateByPortal:Aa,getUsePixelRatioInLimitBitrateByPortal:Ba,setUsePixelRatioInLimitBitrateByPortal:Ca,setTextTrack:Da,getBitrateInfoListFor:Ea,setInitialBitrateFor:Fa,getInitialBitrateFor:Ga,setInitialRepresentationRatioFor:Ha,getInitialRepresentationRatioFor:Ia,getStreamsFromManifest:Ja,getTracksFor:Ka,getTracksForTypeFromManifest:La,getCurrentTrackFor:Ma,setInitialMediaSettingsFor:Na,getInitialMediaSettingsFor:Oa,setCurrentTrack:Pa,getTrackSwitchModeFor:Qa,setTrackSwitchModeFor:Ra,setSelectionModeForInitialTrack:Sa,getSelectionModeForInitialTrack:Ta,getAutoSwitchQuality:Ua,setAutoSwitchQuality:Va,setFastSwitchEnabled:Ya,getFastSwitchEnabled:Za,getAutoSwitchQualityFor:Wa,setAutoSwitchQualityFor:Xa,enableBufferOccupancyABR:$a,setBandwidthSafetyFactor:mb,getBandwidthSafetyFactor:nb,setAbandonLoadTimeout:ob,retrieveManifest:_a,addUTCTimingSource:ab,removeUTCTimingSource:bb,clearDefaultUTCTimingSources:cb,restoreDefaultUTCTimingSources:db,setBufferToKeep:fb,setBufferPruningInterval:gb,setStableBufferTime:hb,setBufferTimeAtTopQuality:ib,setFragmentLoaderRetryAttempts:pb,setFragmentLoaderRetryInterval:qb,setXHRWithCredentials:rb,setBufferTimeAtTopQualityLongForm:jb,setLongFormContentDurationThreshold:kb,setRichBufferThreshold:lb,getProtectionController:sb,attachProtectionController:tb,setProtectionData:ub,enableManifestDateHeaderTimeSource:eb,displayCaptionsOnTop:vb,attachVideoContainer:xb,attachTTMLRenderingDiv:Bb,reset:Eb},a(),Yb}Object.defineProperty(c,"__esModule",{value:!0});var f=a(47),g=d(f),h=a(68),i=d(h),j=a(71),k=d(j),l=a(66),m=d(l),n=a(49),o=d(n),p=a(154),q=d(p),r=a(151),s=d(r),t=a(147),u=d(t),v=a(57),w=d(v),x=a(70),y=d(x),z=a(156),A=d(z),B=a(56),C=d(B),D=a(103),E=d(D),F=a(100),G=d(F),H=a(101),I=d(H),J=a(102),K=d(J),L=a(60),M=d(L),N=a(73),O=d(N),P=a(131),Q=d(P),R=a(104),S=d(R),T=a(129),U=d(T),V=a(144),W=d(V),X=a(67),Y=d(X),Z=a(61),$=d(Z),_=a(8),aa=d(_),ba=a(9),ca=d(ba),da=a(13),ea=d(da),fa=a(52),ga=d(fa),ha=a(10),ia=d(ha),ja=a(11),ka=a(15),la=d(ka),ma=a(23),na=d(ma),oa=a(22),pa=d(oa),qa=a(17),ra=d(qa),sa=a(37),ta=d(sa);e.__dashjs_factory_name="MediaPlayer";var ua=ia.default.getClassFactory(e);ua.events=ga.default,c.default=ua,b.exports=c.default},{10:10,100:100,101:101,102:102,103:103,104:104,11:11,129:129,13:13,131:131,144:144,147:147,15:15,151:151,154:154,156:156,17:17,22:22,23:23,37:37,47:47,49:49,52:52,56:56,57:57,60:60,61:61,66:66,67:67,68:68,70:70,71:71,73:73,8:8,9:9}],52:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(14),i=d(h),j=function(a){function b(){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),this.BUFFER_EMPTY="bufferstalled",this.BUFFER_LOADED="bufferloaded",this.BUFFER_LEVEL_STATE_CHANGED="bufferStateChanged",this.ERROR="error",this.LOG="log",this.MANIFEST_LOADED="manifestloaded",this.METRICS_CHANGED="metricschanged",this.METRIC_CHANGED="metricchanged",this.METRIC_ADDED="metricadded",this.METRIC_UPDATED="metricupdated",this.PERIOD_SWITCH_COMPLETED="streamswitchcompleted",this.PERIOD_SWITCH_STARTED="streamswitchstarted",this.QUALITY_CHANGE_REQUESTED="qualityChangeRequested",this.QUALITY_CHANGE_RENDERED="qualityChangeRendered",this.STREAM_INITIALIZED="streaminitialized",this.TEXT_TRACKS_ADDED="alltexttracksadded",this.TEXT_TRACK_ADDED="texttrackadded",this.CAN_PLAY="canPlay",this.PLAYBACK_ENDED="playbackEnded",this.PLAYBACK_ERROR="playbackError",this.PLAYBACK_NOT_ALLOWED="playbackNotAllowed",this.PLAYBACK_METADATA_LOADED="playbackMetaDataLoaded",this.PLAYBACK_PAUSED="playbackPaused",this.PLAYBACK_PLAYING="playbackPlaying",this.PLAYBACK_PROGRESS="playbackProgress",this.PLAYBACK_RATE_CHANGED="playbackRateChanged",this.PLAYBACK_SEEKED="playbackSeeked",this.PLAYBACK_SEEKING="playbackSeeking",this.PLAYBACK_STARTED="playbackStarted",this.PLAYBACK_TIME_UPDATED="playbackTimeUpdated"}return f(b,a),b}(i.default),k=new j;c.default=k,b.exports=c.default},{14:14}],53:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b,c){if(!a||"VIDEO"!==a.nodeName)return null;if(a._dashjs_player)return a._dashjs_player;var e,f=a.id||a.name||"video element";if(b=b||[].slice.call(a.querySelectorAll("source")).filter(function(a){return a.type==d})[0],!b&&a.src)b=document.createElement("source"),b.src=a.src;else if(!b&&!a.src)return null;return c=c||{},e=(0,h.default)(c).create(),e.initialize(a,b.src,a.autoplay),e.getDebug().log("Converted "+f+" to dash.js player and added content: "+b.src),a._dashjs_player=e,e}function b(b,e){var f=[];b=b||"[data-dashjs-player]",e=e||document;for(var g=e.querySelectorAll(b),h=0;h<g.length;h++){var i=a(g[h],null);f.push(i)}for(var j=e.querySelectorAll('source[type="'+d+'"]'),h=0;h<j.length;h++){var k=c(j[h]),i=a(k,null);f.push(i)}return f}function c(a){for(var b=!0;b;){var c=a;if(b=!1,"video"===c.nodeName.toLowerCase())return c;a=c.parentNode,b=!0}}var d="application/dash+xml";return{create:a,createAll:b}}function f(){window.removeEventListener("load",f),i.createAll()}Object.defineProperty(c,"__esModule",{value:!0});var g=a(51),h=d(g),i=e(),j=window&&window.dashjs&&window.dashjs.skipAutoCreate;!j&&window&&window.addEventListener&&("complete"===window.document.readyState?i.createAll():window.addEventListener("load",f)),c.default=i,b.exports=c.default},{51:51}],54:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){ja=[],ka=!1,la=!1,ma=null,na={},oa=!1,pa=!1,ra=(0,g.default)($).getInstance(),sa=(0,w.default)($).getInstance(),wa=(0,q.default)($).getInstance(),ta=(0,k.default)($).getInstance(),ua=(0,o.default)($).create(),xa=(0,O.default)($).getInstance(),aa.on(I.default.BUFFERING_COMPLETED,U,ia),aa.on(I.default.DATA_UPDATE_COMPLETED,V,ia)}function c(a,b){ma=a,qa=b,qa&&(aa.on(I.default.KEY_ERROR,D,ia),aa.on(I.default.SERVER_CERTIFICATE_UPDATED,D,ia),aa.on(I.default.LICENSE_REQUEST_COMPLETE,D,ia),aa.on(I.default.KEY_SYSTEM_SELECTED,D,ia),aa.on(I.default.KEY_SESSION_CREATED,D,ia))}function d(a){ka?T():(aa.on(I.default.CURRENT_TRACK_CHANGED,J,ia),Q(a))}function e(){for(var a=ja.length,b=0;b<a;b++)ja[b].reset();ja=[],ka=!1,la=!1,x(),aa.off(I.default.CURRENT_TRACK_CHANGED,J,ia)}function f(){sa&&(sa.pause(),sa=null),ua&&(ua.reset(),ua=null),ra.abortSearch(),e(),ta=null,wa=null,ca=null,ba=null,da=null,ea=null,_=null,fa=null,oa=!1,pa=!1,na={},aa.off(I.default.DATA_UPDATE_COMPLETED,V,ia),aa.off(I.default.BUFFERING_COMPLETED,U,ia),aa.off(I.default.KEY_ERROR,D,ia),aa.off(I.default.SERVER_CERTIFICATE_UPDATED,D,ia),aa.off(I.default.LICENSE_REQUEST_COMPLETE,D,ia),aa.off(I.default.KEY_SYSTEM_SELECTED,D,ia),aa.off(I.default.KEY_SESSION_CREATED,D,ia)}function h(){return ma.duration}function j(){return ma.start}function l(){return ma.index}function n(){return ma.id}function p(){return ma}function r(a){return null!==S(a)}function t(a){var b=S(a);return wa.getBitrateList(b)}function v(){va&&va.start()}function x(){va&&va.clear()}function z(){return ka}function B(){return pa}function D(a){a.error&&(fa.mediaKeySessionError(a.error),_(a.error),f())}function F(a){return"text"===a.type?a.mimeType:a.type}function H(a,b,c){var d,e,f=a.type;if("muxed"===f&&a)return e="Multiplexed representations are intentionally not supported, as they are not compliant with the DASH-AVC/264 guidelines",_(e),fa.manifestError(e,"multiplexedrep",ba.getValue()),!1;if("text"===f||"fragmentedText"===f||"embeddedText"===f)return!0;if(d=a.codec,_(f+" codec: "+d),a.contentProtection&&!ea.supportsEncryptedMedia())fa.capabilityError("encryptedmedia");else if(!ea.supportsCodec((0,s.default)($).getInstance().getElement(),d))return e=f+"Codec ("+d+") is not supported.",fa.manifestError(e,"codec",c),_(e),!1;return!0}function J(a){if(a.newMediaInfo.streamInfo.id===ma.id){var b=W(a.oldMediaInfo);if(b){var c=sa.getTime(),d=b.getBuffer(),e=a.newMediaInfo,f=ba.getValue(),g=ja.indexOf(b),h=b.getMediaSource();"fragmentedText"!==e.type?(b.reset(!0),N(e,f,h,{buffer:d,replaceIdx:g,currentTime:c}),sa.seek(sa.getTime())):b.updateMediaInfo(f,e)}}}function L(a){var b=a.split("/")[1];return"webm"===b.toLowerCase()}function M(a){var b=L(a.mimeType)?(0,C.default)($).getInstance():(0,A.default)($).getInstance();b.setConfig({baseURLController:ha,metricsModel:(0,u.default)($).getInstance()}),b.initialize();var c=(0,y.default)($).create({segmentBaseLoader:b,timelineConverter:ga,dashMetrics:(0,E.default)($).getInstance(),metricsModel:(0,u.default)($).getInstance(),baseURLController:ha});return c}function N(a,b,c,d){var e=(0,i.default)($).create({indexHandler:M(a),timelineConverter:ga,adapter:da,manifestModel:ba}),f=da.getAllMediaInfoForType(b,ma,a.type);if(e.initialize(F(a),ua,c,ia,va),wa.updateTopQualityIndex(a),d?(e.setBuffer(d.buffer),e.getIndexHandler().setCurrentTime(d.currentTime),ja[d.replaceIdx]=e):ja.push(e),"text"===a.type||"fragmentedText"===a.type){for(var g,h=0;h<f.length;h++)f[h].index===a.index&&(g=h),e.updateMediaInfo(b,f[h]);"fragmentedText"===a.type&&e.updateMediaInfo(b,f[g])}else e.updateMediaInfo(b,a);return e}function P(a,b){var c,d=ba.getValue(),e=da.getAllMediaInfoForType(d,ma,a),f=null;if(!e||0===e.length)return void _("No "+a+" data.");for(var g=0,h=e.length;g<h;g++)if(f=e[g],"embeddedText"===a)xa.addEmbeddedTrack(f);else{if(!H(f,b,d))continue;ta.isMultiTrackSupportedByType(f.type)&&ta.addTrack(f,ma)}"embeddedText"!==a&&0!==ta.getTracksFor(a,ma).length&&(ta.checkInitialMediaSettingsForType(a,ma),c=ta.getCurrentTrackFor(a,ma),N(c,d,b))}function Q(a){var b,c=ba.getValue();if(va=(0,m.default)($).getInstance(),va.initialize(),va.setConfig({manifestModel:ba,manifestUpdater:ca}),b=da.getEventsFor(c,ma),va.addInlineEvents(b),oa=!0,P("video",a),P("audio",a),P("text",a),P("fragmentedText",a),P("embeddedText",a),P("muxed",a),T(),la=!0,oa=!1,0===ja.length){var d="No streams to play.";fa.manifestError(d,"nostreams",c),_(d)}else ra.initialize(ga,ja[0]),R()}function R(){var a=ja.length,b=!!na.audio||!!na.video,c=b?new Error(Z,"Data update failed",null):null,d=0;for(d;d<a;d++)if(ja[d].isUpdating()||oa)return;pa=!0,ka=!0,la&&(qa&&qa.initialize(ba.getValue(),S("audio"),S("video")),aa.trigger(I.default.STREAM_INITIALIZED,{streamInfo:ma,error:c}))}function S(a){for(var b=ja.length,c=null,d=0;d<b;d++)if(c=ja[d],c.getType()===a)return c.getMediaInfo();return null}function T(){for(var a=0,b=ja.length;a<b;a++)ja[a].createBuffer()}function U(a){if(a.streamInfo===ma){var b=X(),c=b.length,d=0;for(d;d<c;d++)if(!b[d].isBufferingCompleted())return;aa.trigger(I.default.STREAM_BUFFERING_COMPLETED,{streamInfo:ma})}}function V(a){var b=a.sender.getStreamProcessor();b.getStreamInfo()===ma&&(na[b.getType()]=a.error,R())}function W(a){if(!a)return!1;var b=X();return b.filter(function(b){return b.getType()===a.type})[0]}function X(){var a,b,c=ja.length,d=[],e=0;for(e;e<c;e++)b=ja[e],a=b.getType(),"audio"!==a&&"video"!==a&&"fragmentedText"!==a||d.push(b);return d}function Y(a){_("Manifest updated... updating data system wide.");var b=ba.getValue();if(ka=!1,oa=!0,pa=!1,ma=a,va){var c=da.getEventsFor(b,ma);va.addInlineEvents(c)}for(var d=0,e=ja.length;d<e;d++){var f=ja[d],g=da.getMediaInfoForType(b,ma,f.getType());wa.updateTopQualityIndex(g),f.updateMediaInfo(b,g)}oa=!1,R()}var Z=1,$=this.context,_=(0,K.default)($).getInstance().log,aa=(0,G.default)($).getInstance(),ba=a.manifestModel,ca=a.manifestUpdater,da=a.adapter,ea=a.capabilities,fa=a.errHandler,ga=a.timelineConverter,ha=a.baseURLController,ia=void 0,ja=void 0,ka=void 0,la=void 0,ma=void 0,na=void 0,oa=void 0,pa=void 0,qa=void 0,ra=void 0,sa=void 0,ta=void 0,ua=void 0,va=void 0,wa=void 0,xa=void 0;return ia={initialize:c,activate:d,deactivate:e,getDuration:h,getStartTime:j,getStreamIndex:l,getId:n,getStreamInfo:p,hasMedia:r,getBitrateListFor:t,startEventController:v,isActivated:z,isInitialized:B,updateData:Y,reset:f,getProcessors:X},b(),ia}Object.defineProperty(c,"__esModule",{value:!0});var f=a(154),g=d(f),h=a(55),i=d(h),j=a(66),k=d(j),l=a(64),m=d(l),n=a(65),o=d(n),p=a(60),q=d(p),r=a(104),s=d(r),t=a(102),u=d(t),v=a(68),w=d(v),x=a(16),y=d(x),z=a(18),A=d(z),B=a(19),C=d(B),D=a(17),E=d(D),F=a(9),G=d(F),H=a(13),I=d(H),J=a(8),K=d(J),L=a(10),M=d(L),N=a(56),O=d(N);e.__dashjs_factory_name="Stream",c.default=M.default.getClassFactory(e),b.exports=c.default},{10:10,102:102,104:104,13:13,154:154,16:16,17:17,18:18,19:19,55:55,56:56,60:60,64:64,65:65,66:66,68:68,8:8,9:9}],55:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){ca=[]}function c(a,b,c,d,e){ba=a,da=d,ea=e,ja=b,_=da.getStreamInfo().manifestInfo.isDynamic,W.initialize(this),fa=(0,g.default)(V).getInstance(),fa.initialize(ba,this),ga=U(a),ha=(0,q.default)(V).create({metricsModel:(0,w.default)(V).getInstance(),manifestModel:Z,adapter:Y,dashMetrics:(0,I.default)(V).getInstance(),dashManifestModel:(0,G.default)(V).getInstance(),timelineConverter:X,rulesController:(0,s.default)(V).getInstance(),mediaPlayerModel:(0,u.default)(V).getInstance()}),ga.initialize(ba,c,this),ha.initialize(ba,this),ka=(0,y.default)(V).create({metricsModel:(0,w.default)(V).getInstance(),errHandler:(0,M.default)(V).getInstance(),requestModifier:(0,A.default)(V).getInstance()}),la=ha.getFragmentModel(),la.setLoader(ka),ia=(0,K.default)(V).create(),ia.initialize(this)}function d(a){W.reset(),ga&&(ga.reset(a),ga=null),ha&&(ha.reset(),ha=null),ia&&(ia.reset(),ia=null),ja=null,ka=null,ea=null,da=null,_=null,aa=null,ca=[],ba=null}function e(){return ia.isUpdating()}function f(){return ba}function h(){return fa}function j(){return ia}function l(){return ka}function n(){return W}function p(){return ja}function r(){return ga.getBuffer()}function t(a){ga.setBuffer(a)}function v(){return ga}function x(){return la}function z(){return da.getStreamInfo()}function B(a,b){b===aa||b&&aa&&b.type!==aa.type||(aa=b),ca.indexOf(b)===-1&&ca.push(b),Y.updateData(a,this)}function D(){return ca}function F(){return aa}function H(){return ga.getMediaSource()}function J(){return ha}function L(){return ea}function N(){ha.start()}function O(){ha.stop()}function P(){return Y.getCurrentRepresentationInfo(Z.getValue(),ia)}function Q(a){return Y.getRepresentationInfoForQuality(Z.getValue(),ia,a)}function R(){return ga.getIsBufferingCompleted()}function S(){return ga.getBuffer()||ga.createBuffer(aa)}function T(){return _}function U(a){var b=null;return b="video"===a||"audio"===a||"fragmentedText"===a?(0,i.default)(V).create({metricsModel:(0,w.default)(V).getInstance(),manifestModel:Z,sourceBufferController:(0,C.default)(V).getInstance(),errHandler:(0,M.default)(V).getInstance(),streamController:(0,k.default)(V).getInstance(),mediaController:(0,m.default)(V).getInstance(),adapter:Y,textSourceBuffer:(0,E.default)(V).getInstance()}):(0,o.default)(V).create({errHandler:(0,M.default)(V).getInstance(),sourceBufferController:(0,C.default)(V).getInstance()})}var V=this.context,W=a.indexHandler,X=a.timelineConverter,Y=a.adapter,Z=a.manifestModel,$=void 0,_=void 0,aa=void 0,ba=void 0,ca=void 0,da=void 0,ea=void 0,fa=void 0,ga=void 0,ha=void 0,ia=void 0,ja=void 0,ka=void 0,la=void 0;return $={initialize:c,isUpdating:e,getType:f,getBufferController:v,getABRController:h,getFragmentLoader:l,getFragmentModel:x,getScheduleController:J,getEventController:L,getFragmentController:p,getRepresentationController:j,getIndexHandler:n,getCurrentRepresentationInfo:P,getRepresentationInfoForQuality:Q,isBufferingCompleted:R,createBuffer:S,getStreamInfo:z,updateMediaInfo:B,getMediaInfoArr:D,getMediaInfo:F,getMediaSource:H,getBuffer:r,setBuffer:t,start:N,stop:O,isDynamic:T,reset:d},b(),$}Object.defineProperty(c,"__esModule",{value:!0});var f=a(60),g=d(f),h=a(63),i=d(h),j=a(71),k=d(j),l=a(66),m=d(l),n=a(72),o=d(n),p=a(69),q=d(p),r=a(129),s=d(r),t=a(101),u=d(t),v=a(102),w=d(v),x=a(48),y=d(x),z=a(156),A=d(z),B=a(70),C=d(B),D=a(56),E=d(D),F=a(22),G=d(F),H=a(17),I=d(H),J=a(21),K=d(J),L=a(151),M=d(L),N=a(10),O=d(N);e.__dashjs_factory_name="StreamProcessor",c.default=O.default.getClassFactory(e),b.exports=c.default},{10:10,101:101,102:102,129:129,151:151,156:156,17:17,21:21,22:22,48:48,56:56,60:60,63:63,66:66,69:69,70:70,71:71,72:72}],56:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,c){M=!1,N=null,U=null,V=!1,W=NaN,X=[],$=null,E||b();var d=c.getStreamProcessor();if(R=d.getMediaInfoArr(),S.setConfig({videoModel:Y}),S.initialize(),T=!K.getIsTextTrack(a),H=(0,k.default)(C).getInstance(),Q=(0,i.default)(C).getInstance(),Q.setConfig({boxParser:H}),T){U=d.getFragmentModel(),this.buffered=(0,m.default)(C).create(),X=L.getTracksFor("fragmentedText",Z.getActiveStreamInfo());for(var e=L.getCurrentTrackFor("fragmentedText",Z.getActiveStreamInfo()),f=0;f<X.length;f++)if(X[f]===e){_=f;break}}}function b(){aa=[],R=[],Y=(0,s.default)(C).getInstance(),S=(0,u.default)(C).getInstance(),S.setConfig({videoModel:Y}),S.initialize(),H=(0,k.default)(C).getInstance(),Q=(0,i.default)(C).getInstance(),Q.setConfig({boxParser:H}),T=!1,_=null,ba=!1,ca=0,fa=[],ea=[],da=null,E=!0}function c(a,b){function c(a,b){var c=new g.default,d={subtitle:"subtitles",caption:"captions"},e=function(){var a=b.roles.length>0?d[b.roles[0]]:d.caption;return a=a===d.caption||a===d.subtitle?a:d.caption},f=function(){var a=!1;return b.codec&&b.codec.search("stpp")>=0&&(a=!0),b.mimeType&&b.mimeType.search("ttml")>=0&&(a=!0),a};c.captionData=a,c.lang=b.lang,c.label=b.id,c.index=b.index,c.isTTML=f(),c.video=Y.getElement(),c.defaultTrack=A(b),c.isFragmented=T,c.isEmbedded=!!b.isEmbedded,c.kind=e();var h=(R?R.length:0)+aa.length;S.addTextTrack(c,h)}var e,f,h,i,j,k=b.mediaInfo,l=k.type,m=k.mimeType,n=k.codec||m;if(!n)return void D("No text type defined");if("fragmentedText"===l)if(V)if(i=Q.getSamplesInfo(a),f=i.sampleList,!$&&f.length>0&&($=f[0].cts-b.start*W),n.search("stpp")>=0)for(N=null!==N?N:B(n),h=0;h<f.length;h++){var p=f[h],q=p.cts,r=q-$;this.buffered.add(r/W,(r+p.duration)/W);var s=new DataView(a,p.offset,p.size);j=w.default.Utils.dataViewToString(s,"utf-8");try{e=N.parse(j,q/W,(q+p.duration)/W),S.addCaptions(_,$/W,e)}catch(t){D("TTML parser error: "+t.message)}}else{var u=[];for(h=0;h<f.length;h++){var v=f[h];v.cts-=$,this.buffered.add(v.cts/W,(v.cts+v.duration)/W);for(var x=a.slice(v.offset,v.offset+v.size),z=w.default.parseBuffer(x),C=0;C<z.boxes.length;C++){var E=z.boxes[C];if(D("VTT box1: "+E.type),"vtte"!==E.type&&"vttc"===E.type){D("VTT vttc boxes.length = "+E.boxes.length);for(var F=0;F<E.boxes.length;F++){var G=E.boxes[F];if(D("VTT box2: "+G.type),"payl"===G.type){var H=G.cue_text;D("VTT cue_text = "+H);var J=v.cts/W,K=(v.cts+v.duration)/W;u.push({start:J,end:K,data:H,styles:{}}),D("VTT "+J+"-"+K+" : "+H)}}}}}u.length>0&&S.addCaptions(_,0,u)}else{for(V=!0,h=0;h<R.length;h++)c(null,R[h]);W=Q.getMediaTimescaleFromMoov(a)}else if("text"===l){var s=new DataView(a,0,a.byteLength);j=w.default.Utils.dataViewToString(s,"utf-8");try{e=B(n).parse(j),c(e,k)}catch(t){I.timedTextError(t,"parse",j)}}else if("video"===l)if("InitializationSegment"===b.segmentType){if(0===ca)for(ca=Q.getMediaTimescaleFromMoov(a),h=0;h<aa.length;h++)c(null,aa[h])}else{if(0===ca)return void D("CEA-608: No timescale for embeddedTextTrack yet");var L=function(a,b){function c(a,c,d){var e=null;if(Y.getTTMLRenderingDiv())e=o(Y.getElement(),a,c,d);else{var f=d.getDisplayText();e=[{start:a,end:c,data:f,styles:{}}]}e&&S.addCaptions(b,0,e)}return c};i=Q.getSamplesInfo(a);var M=i.sequenceNumber;if(!fa[0]&&!fa[1]){var O=void 0,P=void 0,U=void 0;for(h=0;h<aa.length;h++){if("CC1"===aa[h].id?(O=0,U=S.getTrackIdxForId("CC1")):"CC3"===aa[h].id&&(O=1,U=S.getTrackIdxForId("CC3")),U===-1)return void D("CEA-608: data before track is ready.");P=L(this,U),fa[h]=new y.default.Cea608Parser(h,{newCue:P},null)}}if(ca&&ea.indexOf(M)==-1){if(null!==da&&M!==da+1)for(h=0;h<fa.length;h++)fa[h]&&fa[h].reset();for(var X=d(a),Z=0;Z<fa.length;Z++){var ba=X.fields[Z],ga=fa[Z];if(ga){for(h=0;h<ba.length;h++)ga.addData(ba[h][0]/ca,ba[h][1]);X.endTime&&ga.cueSplitAtTime(X.endTime/ca)}}da=M,ea.push(M)}}}function d(a){var b=function(a,b,c){var d=a.length;if(d>0){if(b>=a[d-1][0])a.push([b,c]);else for(var e=d-1;e>=0;e--)if(b<a[e][0]){a.splice(e,0,[b,c]);break}}else a.push([b,c])},c=H.parse(a),d=c.getBox("moof"),e=c.getBox("tfdt"),f=c.getBoxes("trun"),g=null;if(0===f.length)return null;g=f[0],f.length>1&&D("Warning: Too many truns");for(var h=d.offset+g.data_offset,i=g.sample_count,j=h,k=e.baseMediaDecodeTime,l=new DataView(a),m={startTime:null,endTime:null,fields:[[],[]]},n=0,o=0;o<i;o++){for(var p=g.samples[o],q=k+n+p.sample_composition_time_offset,r=y.default.findCea608Nalus(l,j,p.sample_size),s=0;s<r.length;s++)for(var t=y.default.extractCea608DataFromRange(l,r[s]),u=0;u<2;u++)t[u].length>0&&b(m.fields[u],q,t[u]);n+=p.sample_duration,j+=p.sample_size}var v=k+n;return m.startTime=k,m.endTime=v,m}function e(a){for(var b="",c=0;c<a.length;++c){var d=a[c];b+=d.uchar}var e=b.length,f=b.replace(/^\s+/,"").length;return e-f}function f(a){return"left: "+3.125*a.x+"%; top: "+6.66*a.y1+"%; width: "+(100-3.125*a.x)+"%; height: "+6.66*Math.max(a.y2-1-a.y1,1)+"%; align-items: flex-start; overflow: visible; -webkit-writing-mode: horizontal-tb;";
+}function h(a){return"red"==a?"rgb(255, 0, 0)":"green"==a?"rgb(0, 255, 0)":"blue"==a?"rgb(0, 0, 255)":"cyan"==a?"rgb(0, 255, 255)":"magenta"==a?"rgb(255, 0, 255)":"yellow"==a?"rgb(255, 255, 0)":"white"==a?"rgb(255, 255, 255)":"black"==a?"rgb(0, 0, 0)":a}function j(a,b){var c=a.videoHeight/15;return b?"font-size: "+c+"px; font-family: Menlo, Consolas, 'Cutive Mono', monospace; color: "+(b.foreground?h(b.foreground):"rgb(255, 255, 255)")+"; font-style: "+(b.italics?"italic":"normal")+"; text-decoration: "+(b.underline?"underline":"none")+"; white-space: pre; background-color: "+(b.background?h(b.background):"transparent")+";":"font-size: "+c+"px; font-family: Menlo, Consolas, 'Cutive Mono', monospace; justify-content: flex-start; text-align: left; color: rgb(255, 255, 255); font-style: normal; white-space: pre; line-height: normal; font-weight: normal; text-decoration: none; width: 100%; display: flex;"}function l(a){var b=a.replace(/^\s+/g,"");return b}function n(a){var b=a.replace(/\s+$/g,"");return b}function o(a,b,c,d){var g=null,h=null,i=!1,k=-1,m={start:b,end:c,spans:[]},o="style_cea608_white_black",p={},q={},r=[],s=void 0,t=void 0;for(s=0;s<15;++s){var u=d.rows[s],v="",w=null;if(!1===u.isEmpty()){var x=e(u.chars);null===g&&(g={x:x,y1:s,y2:s+1,p:[]}),x!==k&&i&&(g.p.push(m),m={start:b,end:c,spans:[]},g.y2=s,g.name="region_"+g.x+"_"+g.y1+"_"+g.y2,!1===p.hasOwnProperty(g.name)?(r.push(g),p[g.name]=g):(h=p[g.name],h.p.contat(g.p)),g={x:x,y1:s,y2:s+1,p:[]});for(var y=0;y<u.chars.length;++y){var z=u.chars[y],A=z.penState;if(null===w||!A.equals(w)){v.trim().length>0&&(m.spans.push({name:o,line:v,row:s}),v="");var B="style_cea608_"+A.foreground+"_"+A.background;A.underline&&(B+="_underline"),A.italics&&(B+="_italics"),q.hasOwnProperty(B)||(q[B]=JSON.parse(JSON.stringify(A))),w=A,o=B}v+=z.uchar}v.trim().length>0&&m.spans.push({name:o,line:v,row:s}),i=!0,k=x}else i=!1,k=-1,g&&(g.p.push(m),m={start:b,end:c,spans:[]},g.y2=s,g.name="region_"+g.x+"_"+g.y1+"_"+g.y2,!1===p.hasOwnProperty(g.name)?(r.push(g),p[g.name]=g):(h=p[g.name],h.p.contat(g.p)),g=null)}g&&(g.p.push(m),g.y2=s+1,g.name="region_"+g.x+"_"+g.y1+"_"+g.y2,!1===p.hasOwnProperty(g.name)?(r.push(g),p[g.name]=g):(h=p[g.name],h.p.contat(g.p)),g=null);var C=[];for(s=0;s<r.length;++s){var D=r[s],E="sub_cea608_"+F++,G=document.createElement("div");G.id=E;var H=f(D);G.style.cssText="position: absolute; margin: 0; display: flex; box-sizing: border-box; pointer-events: none;"+H;var I=document.createElement("div");I.className="paragraph bodyStyle",I.style.cssText=j(a);var J=document.createElement("div");J.className="cueUniWrapper",J.style.cssText="unicode-bidi: normal; direction: ltr;";for(var K=0;K<D.p.length;++K){var L=D.p[K],M=0;for(t=0;t<L.spans.length;++t){var N=L.spans[t];if(N.line.length>0){if(0!==t&&M!=N.row){var O=document.createElement("br");O.className="lineBreak",J.appendChild(O)}var P=!1;M===N.row&&(P=!0),M=N.row;var Q=q[N.name],R=document.createElement("span");R.className="spanPadding "+N.name+" customSpanColor",R.style.cssText=j(a,Q),0!==t&&P?t===L.spans.length-1?R.textContent=n(N.line):R.textContent=N.line:0===t&&L.spans.length>1&&N.row===L.spans[1].row?R.textContent=l(N.line):R.textContent=N.line.trim(),J.appendChild(R)}}}I.appendChild(J),G.appendChild(I);var S={bodyStyle:90};for(t in q)q.hasOwnProperty(t)&&(S[t]=90);C.push({type:"html",start:b,end:c,cueHTMLElement:G,cueID:E,cellResolution:[32,15],isFromCEA608:!0,regions:r,regionID:D.name,videoHeight:a.videoHeight,videoWidth:a.videoWidth,fontSize:S||{defaultFontSize:"100"},lineHeight:{},linePadding:{}})}return C}function p(){S.deleteAllTextTracks(),M=!1,N=null,Q=null,R=null,S=null,T=!1,U=null,V=!1,W=NaN,X=[],Y=null,Z=null,E=!1,aa=null}function r(a){E||b(),"CC1"===a.id||"CC3"===a.id?aa.push(a):D("Warning: Embedded track "+a.id+" not supported!")}function t(){E=!1,aa=[],fa=[null,null],ea=[],da=null}function v(){return M}function x(a){a&&(a.errHandler&&(I=a.errHandler),a.adapter&&(J=a.adapter),a.dashManifestModel&&(K=a.dashManifestModel),a.mediaController&&(L=a.mediaController),a.videoModel&&(Y=a.videoModel),a.streamController&&(Z=a.streamController),a.textTracks&&(S=a.textTracks),a.VTTParser&&(O=a.VTTParser),a.TTMLParser&&(P=a.TTMLParser))}function z(){for(var a=Y.getElement(),b=a.textTracks,c=b.length,d=c-aa.length,e=S.getCurrentTrackIdx(),f=0;f<c;f++){var g=b[f];if(M="showing"!==g.mode,"showing"===g.mode){if(e!==f&&(S.setCurrentTrackIdx(f),S.addCaptions(f,0,null),T&&f<d)){var h=L.getCurrentTrackFor("fragmentedText",Z.getActiveStreamInfo()),i=X[f];i!==h&&(U.abortRequests(),S.deleteTrackCues(h),L.setTrack(i),_=f)}break}}M&&S.setCurrentTrackIdx(-1)}function A(a){var b=!1;return aa.length>1?b=a.id&&"CC1"===a.id:1===aa.length?a.id&&"CC"===a.id.substring(0,2)&&(b=!0):b=a.index===R[0].index,b}function B(a){var b;return a.search("vtt")>=0?b=O:(a.search("ttml")>=0||a.search("stpp")>=0)&&(b=P,b.setConfig({videoModel:Y})),b}var C=this.context,D=(0,q.default)(C).getInstance().log,E=!1,F=0,G=void 0,H=void 0,I=void 0,J=void 0,K=void 0,L=void 0,M=void 0,N=void 0,O=void 0,P=void 0,Q=void 0,R=void 0,S=void 0,T=void 0,U=void 0,V=void 0,W=void 0,X=void 0,Y=void 0,Z=void 0,$=void 0,_=void 0,aa=void 0,ba=void 0,ca=void 0,da=void 0,ea=void 0,fa=void 0;return G={initialize:a,append:c,abort:p,getAllTracksAreDisabled:v,setTextTrack:z,setConfig:x,addEmbeddedTrack:r,resetEmbedded:t}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(171),g=d(f),h=a(32),i=d(h),j=a(146),k=d(j),l=a(148),m=d(l),n=a(10),o=d(n),p=a(8),q=d(p),r=a(104),s=d(r),t=a(57),u=d(t),v=a(6),w=d(v),x=a(2),y=d(x);e.__dashjs_factory_name="TextSourceBuffer",c.default=o.default.getSingletonFactory(e),b.exports=c.default},{10:10,104:104,146:146,148:148,171:171,2:2,32:32,57:57,6:6,8:8}],57:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){D=window.VTTCue||window.TextTrackCue,G=[],H=[],I=-1,J=0,K=0,L=0,M=0,N=null,O=null,R=!1,S=2147483647,P=!!navigator.userAgent.match(/Chrome/)&&!navigator.userAgent.match(/Edge/),void 0!==document.fullscreenElement?Q="fullscreenElement":void 0!==document.webkitIsFullScreen?Q="webkitIsFullScreen":document.msFullscreenElement?Q="msFullscreenElement":document.mozFullScreen&&(Q="mozFullScreen")}function b(a){var b=G[a].kind,c=void 0!==G[a].label?G[a].label:G[a].lang,d=G[a].lang,e=P?document.createElement("track"):F.addTextTrack(b,c,d);return P&&(e.kind=b,e.label=c,e.srclang=d),e}function c(a){R=a,N&&!document[Q]&&(N.style.zIndex=a?S:null)}function d(a,c){if(G.length===c)return void B("Trying to add too many tracks.");if(G.push(a),void 0===F&&(F=a.video),G.length===c){G.sort(function(a,b){return a.index-b.index}),N=E.getTTMLRenderingDiv();for(var d=-1,e=0;e<G.length;e++){var f=b.call(this,e);H.push(f),G[e].defaultTrack&&(f.default=!0,d=e),P&&F.appendChild(f);var g=F.textTracks[e];g.nonAddedCues=[],N&&(G[e].isTTML||G[e].isEmbedded)?g.renderingType="html":g.renderingType="default",this.addCaptions(e,0,G[e].captionData),A.trigger(i.default.TEXT_TRACK_ADDED)}q.call(this,d),d>=0&&(F.textTracks[d].mode="showing",this.addCaptions(d,0,null)),A.trigger(i.default.TEXT_TRACKS_ADDED,{index:I,tracks:G})}}function e(a,b,c,d,e,f){var g=a/b,h=c/d,i=0,j=0;g>h?(j=b,i=j/d*c):(i=a,j=i/c*d);var k=0,l=0,m=0,n=0,o=i/j;return o>e?(n=j,m=j/(1/e),k=(a-m)/2,l=0):(m=i,n=i/e,k=0,l=(b-n)/2),f?{x:k+.1*m,y:l+.1*n,w:.8*m,h:.8*n}:{x:k,y:l,w:m,h:n}}function f(){var a=this.getCurrentTextTrack();if(a&&"html"===a.renderingType){var b=F.clientWidth/F.clientHeight,c=!1;a.isFromCEA608&&(b=3.5/3,c=!0);var d=e.call(this,F.clientWidth,F.clientHeight,F.videoWidth,F.videoHeight,b,c),f=d.w,g=d.h;if(f!=L||g!=M){J=d.x,K=d.y,L=f,M=g,N.style.left=J+"px",N.style.top=K+"px",N.style.width=L+"px",N.style.height=M+"px";for(var h=0;a.activeCues&&h<a.activeCues.length;++h){var i=a.activeCues[h];i.scaleCue(i)}Q&&document[Q]||R?N.style.zIndex=S:N.style.zIndex=null}}}function h(a,b){var c=Math.round(.01*a*b).toString()+"px";return c}function j(a){var b=L,c=M;if(b*c!==0&&a.layout){var d=a.layout,e=h(d.left,b),f=h(d.top,c),g=h(d.width,b),i=h(d.height,c);N.style.left=e,N.style.top=f,N.style.width=g,N.style.height=i;var j=N.firstChild;j&&j.style&&(j.style.left="0px",j.style.top="0px",j.style.width=g,j.style.height=i)}}function k(a){var b,c,d,e=L,f=M,g=[e/a.cellResolution[0],f/a.cellResolution[1]];if(a.linePadding)for(b in a.linePadding)if(a.linePadding.hasOwnProperty(b)){var h=a.linePadding[b];c=(h*g[0]).toString();for(var i=document.getElementsByClassName("spanPadding"),j=0;j<i.length;j++)i[j].style.cssText=i[j].style.cssText.replace(/(padding-left\s*:\s*)[\d.,]+(?=\s*px)/gi,"$1"+c),i[j].style.cssText=i[j].style.cssText.replace(/(padding-right\s*:\s*)[\d.,]+(?=\s*px)/gi,"$1"+c)}if(a.fontSize)for(b in a.fontSize)if(a.fontSize.hasOwnProperty(b)){var k=a.fontSize[b]/100;c=(k*g[1]).toString(),d="defaultFontSize"!==b?document.getElementsByClassName(b):document.getElementsByClassName("paragraph");for(var l=0;l<d.length;l++)d[l].style.cssText=d[l].style.cssText.replace(/(font-size\s*:\s*)[\d.,]+(?=\s*px)/gi,"$1"+c)}if(a.lineHeight)for(b in a.lineHeight)if(a.lineHeight.hasOwnProperty(b)){var m=a.lineHeight[b]/100;c=(m*g[1]).toString(),d=document.getElementsByClassName(b);for(var n=0;n<d.length;n++)d[n].style.cssText=d[n].style.cssText.replace(/(line-height\s*:\s*)[\d.,]+(?=\s*px)/gi,"$1"+c)}}function l(a,b,c){var d=a>=0?F.textTracks[a]:null,e=this;if(d){if("showing"!==d.mode)return void(c&&c.length>0&&(d.nonAddedCues=d.nonAddedCues.concat(c)));if(c||(c=d.nonAddedCues,d.nonAddedCues=[]),c&&0!==c.length)for(var g in c){var h,i=c[g];d.cellResolution=i.cellResolution,d.isFromCEA608=i.isFromCEA608,O||"html"!==i.type&&"image"!==i.type||(O=setInterval(f.bind(this),500)),"image"===i.type?(h=new D(i.start-b,i.end-b,""),h.image=i.data,h.id=i.id,h.size=0,h.type="image",h.layout=i.layout,h.scaleCue=j.bind(e),h.onenter=function(){if(N&&"showing"===d.mode){var a=new Image;a.id="ttmlImage_"+this.id,a.src=this.image,a.style.cssText="z-index: 2147483648; pointer-events: none; display: block; visibility: visible !important; position: relative !important;",N.appendChild(a),j.call(e,this)}},h.onexit=function(){if(N)for(var a=N.childNodes,b=0;b<a.length;b++)a[b].id==="ttmlImage_"+this.id&&N.removeChild(a[b])}):"html"===i.type?(h=new D(i.start-b,i.end-b,""),h.cueHTMLElement=i.cueHTMLElement,h.regions=i.regions,h.regionID=i.regionID,h.cueID=i.cueID,h.videoWidth=i.videoWidth,h.videoHeight=i.videoHeight,h.cellResolution=i.cellResolution,h.fontSize=i.fontSize,h.lineHeight=i.lineHeight,h.linePadding=i.linePadding,h.scaleCue=k.bind(e),N.style.left=J+"px",N.style.top=K+"px",N.style.width=L+"px",N.style.height=M+"px",h.onenter=function(){"showing"===d.mode&&(B("Cue "+this.startTime+"-"+this.endTime+" : "+this.cueHTMLElement.id+" : "+this.cueHTMLElement.innerText),N.appendChild(this.cueHTMLElement),k.call(e,this))},h.onexit=function(){for(var a=N.childNodes,b=0;b<a.length;++b)a[b].id===this.cueID&&N.removeChild(a[b])}):(h=new D(i.start-b,i.end-b,i.data),i.styles&&(void 0!==i.styles.align&&h.hasOwnProperty("align")&&(h.align=i.styles.align),void 0!==i.styles.line&&h.hasOwnProperty("line")&&(h.line=i.styles.line),void 0!==i.styles.position&&h.hasOwnProperty("position")&&(h.position=i.styles.position),void 0!==i.styles.size&&h.hasOwnProperty("size")&&(h.size=i.styles.size))),d.addCue(h)}}}function n(){return I>=0?F.textTracks[I]:null}function o(){return I}function p(a){for(var b=-1,c=0;c<F.textTracks.length;c++)if(F.textTracks[c].label===a){b=c;break}return b}function q(a){if(I=a,x.call(this),a>=0){var b=F.textTracks[a];"html"===b.renderingType?v.call(this):w.call(this)}else w.call(this)}function r(a){return F.textTracks[a]}function s(a){if(a.cues){for(var b=a.cues,c=b.length-1,d=c;d>=0;d--)a.removeCue(b[d]);a.mode="disabled"}}function t(){for(var a=H.length,b=0;b<a;b++)if(P)F.removeChild(H[b]);else{var c=r.call(this,b);c.nonAddedCues=[],s.call(this,c)}H=[],G=[],O&&(clearInterval(O),O=null),x.call(this)}function u(a){F.removeChild(H[a]),H.splice(a,1)}function v(){if(P){var a=document.getElementById("native-cue-style");if(!a){a=document.createElement("style"),a.id="native-cue-style",document.head.appendChild(a);var b=a.sheet;F.id?b.insertRule("#"+F.id+"::cue {background: transparent}",0):0!==F.classList.length?b.insertRule("."+F.className+"::cue {background: transparent}",0):b.insertRule("video::cue {background: transparent}",0)}}}function w(){if(P){var a=document.getElementById("native-cue-style");a&&document.head.removeChild(a)}}function x(){if(N)for(;N.firstChild;)N.removeChild(N.firstChild)}function y(a){a&&a.videoModel&&(E=a.videoModel)}var z=this.context,A=(0,g.default)(z).getInstance(),B=(0,m.default)(z).getInstance().log,C=void 0,D=void 0,E=void 0,F=void 0,G=void 0,H=void 0,I=void 0,J=void 0,K=void 0,L=void 0,M=void 0,N=void 0,O=void 0,P=void 0,Q=void 0,R=void 0,S=void 0;return C={initialize:a,displayCConTop:c,addTextTrack:d,addCaptions:l,getTextTrack:r,getCurrentTextTrack:n,getCurrentTrackIdx:o,setCurrentTrackIdx:q,getTrackIdxForId:p,deleteTrackCues:s,deleteAllTextTracks:t,deleteTextTrack:u,setConfig:y}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(9),g=d(f),h=a(13),i=d(h),j=a(10),k=d(j),l=a(8),m=d(l);e.__dashjs_factory_name="TextTracks",c.default=k.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,8:8,9:9}],58:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function f(a){function b(){var a;p=[],q=[],r=[],a={},e(a,g.HTTPRequest.MPD_TYPE,m.default.DOWNLOAD_ERROR_ID_MANIFEST),e(a,g.HTTPRequest.XLINK_EXPANSION_TYPE,m.default.DOWNLOAD_ERROR_ID_XLINK),e(a,g.HTTPRequest.INIT_SEGMENT_TYPE,m.default.DOWNLOAD_ERROR_ID_INITIALIZATION),e(a,g.HTTPRequest.MEDIA_SEGMENT_TYPE,m.default.DOWNLOAD_ERROR_ID_CONTENT),e(a,g.HTTPRequest.INDEX_SEGMENT_TYPE,m.default.DOWNLOAD_ERROR_ID_CONTENT),e(a,g.HTTPRequest.BITSTREAM_SWITCHING_SEGMENT_TYPE,m.default.DOWNLOAD_ERROR_ID_CONTENT),e(a,g.HTTPRequest.OTHER_TYPE,m.default.DOWNLOAD_ERROR_ID_CONTENT),s=a}function c(a,b){var d=a.request,e=new XMLHttpRequest,f=[],g=!0,h=!0,k=new Date,m=k,o=0,t=function(a){h=!1,d.requestStartDate=k,d.requestEndDate=new Date,d.firstByteDate=d.firstByteDate||k,d.checkExistenceOnly||l.addHttpRequest(d.mediaType,null,d.type,d.url,e.responseURL||null,d.serviceLocation||null,d.range||null,d.requestStartDate,d.firstByteDate,d.requestEndDate,e.status,d.duration,e.getAllResponseHeaders(),a?f:null)},u=function(){p.indexOf(e)!==-1&&(p.splice(p.indexOf(e),1),h&&(t(!1),b>0?(b--,r.push(setTimeout(function(){c(a,b)},i.getRetryIntervalForType(d.type)))):(j.downloadError(s[d.type],d.url,d),a.error&&a.error(d,"error",e.statusText),a.complete&&a.complete(d,e.statusText))))},v=function(b){var c=new Date;g&&(g=!1,(!b.lengthComputable||b.lengthComputable&&b.total!==b.loaded)&&(d.firstByteDate=c)),b.lengthComputable&&(d.bytesLoaded=b.loaded,d.bytesTotal=b.total),f.push({s:m,d:c.getTime()-m.getTime(),b:[b.loaded?b.loaded-o:0]}),m=c,o=b.loaded,a.progress&&a.progress()},w=function(){e.status>=200&&e.status<=299&&(t(!0),a.success&&a.success(e.response,e.statusText,e),a.complete&&a.complete(d,e.statusText))};try{var x=n.modifyRequestURL(d.url),y=d.checkExistenceOnly?"HEAD":"GET";e.open(y,x,!0),d.responseType&&(e.responseType=d.responseType),d.range&&e.setRequestHeader("Range","bytes="+d.range),d.requestStartDate||(d.requestStartDate=k),e=n.modifyRequestHeader(e),e.withCredentials=i.getXHRWithCredentials(),e.onload=w,e.onloadend=u,e.onerror=u,e.onprogress=v;var z=(new Date).getTime();isNaN(d.delayLoadingTime)||z>=d.delayLoadingTime?(p.push(e),e.send()):!function(){var a={xhr:e};q.push(a),a.delayTimeout=setTimeout(function(){if(q.indexOf(a)!==-1){q.splice(q.indexOf(a),1);try{p.push(a.xhr),a.xhr.send()}catch(b){a.xhr.onerror()}}},d.delayLoadingTime-z)}()}catch(A){e.onerror()}}function d(a){a.request&&c(a,i.getRetryAttemptsForType(a.request.type))}function f(){r.forEach(function(a){return clearTimeout(a)}),r=[],q.forEach(function(a){return clearTimeout(a.delayTimeout)}),q=[],p.forEach(function(a){a.onloadend=a.onerror=a.onprogress=void 0,a.abort()}),p=[]}var h=this.context,i=(0,k.default)(h).getInstance(),j=a.errHandler,l=a.metricsModel,n=a.requestModifier,o=void 0,p=void 0,q=void 0,r=void 0,s=void 0;return o={load:d,abort:f},b(),o}Object.defineProperty(c,"__esModule",{value:!0});var g=a(179),h=a(10),i=d(h),j=a(101),k=d(j),l=a(151),m=d(l);f.__dashjs_factory_name="XHRLoader";var n=i.default.getClassFactory(f);c.default=n,b.exports=c.default},{10:10,101:101,151:151,179:179}],59:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a,b,c){var e=function(d,e){b.resolved=!0,b.resolvedContent=d?d:null,f.trigger(p.default.XLINK_ELEMENT_LOADED,{element:b,resolveObject:c,error:d||e?null:new g.default(s,"Failed loading Xlink element: "+a)})};if(a===d)e(null,!0);else{var i=new l.default(a,j.HTTPRequest.XLINK_TYPE);h.load({request:i,success:function(a){e(a)},error:function(){e(null)}})}}function c(){h&&(h.abort(),h=null)}var d="urn:mpeg:dash:resolve-to-zero:2013",e=this.context,f=(0,n.default)(e).getInstance(),h=(0,i.default)(e).create({errHandler:a.errHandler,metricsModel:a.metricsModel,requestModifier:a.requestModifier}),k=void 0;return k={load:b,reset:c}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(162),g=d(f),h=a(58),i=d(h),j=a(179),k=a(170),l=d(k),m=a(9),n=d(m),o=a(13),p=d(o),q=a(10),r=d(q),s=1;e.__dashjs_factory_name="XlinkLoader";var t=r.default.getClassFactory(e);t.XLINK_LOADER_ERROR_LOADING_FAILURE=s,c.default=t,b.exports=c.default},{10:10,13:13,162:162,170:170,179:179,58:58,9:9}],60:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){ha={video:!0,audio:!0},ia={},ja={},ka={},la={},ma={},na={},pa={},oa={},ra=!1,sa=!1,xa=(0,k.default)(ba).getInstance(),wa=(0,o.default)(ba).getInstance(),ta=(0,y.default)(ba).getInstance(),ua=(0,A.default)(ba).getInstance(),va=(0,C.default)(ba).getInstance()}function b(a,b){oa[a]=b,pa[a]=pa[a]||{},pa[a].state=E,ca.on(u.default.LOADING_PROGRESS,aa,this)}function c(a){a&&(a.abrRulesCollection&&(ea=a.abrRulesCollection),a.rulesController&&(fa=a.rulesController),a.streamController&&(ga=a.streamController))}function d(a,b){var c;return ia[b]=ia[b]||{},ia[b].hasOwnProperty(a)||(ia[b][a]=0),c=Z(ia[b][a],a),c=$(c,a,ia[b][a]),c=_(c,a)}function e(a){var b=xa.getSavedBitrateSettings(a);if(!la.hasOwnProperty(a))if(ma.hasOwnProperty(a)){var c=ta.getValue(),d=ua.getAdaptationForType(c,0,a).Representation;if(Array.isArray(d)){var e=Math.max(Math.round(d.length*ma[a])-1,0);la[a]=d[e].bandwidth}else la[a]=0}else isNaN(b)?la[a]="video"===a?F:G:la[a]=b;return la[a]}function f(a,b){la[a]=b}function h(a){return ma.hasOwnProperty(a)?ma[a]:null}function j(a,b){ma[a]=b}function l(a){return la.hasOwnProperty("max")&&la.max.hasOwnProperty(a)?la.max[a]:NaN}function n(a,b){la.max=la.max||{},la.max[a]=b}function p(a){return ma.hasOwnProperty("max")&&ma.max.hasOwnProperty(a)?ma.max[a]:1}function r(a,b){ma.max=ma.max||{},ma.max[a]=b}function t(a){return ha[a]}function v(a,b){ha[a]=b}function w(){return ra}function x(a){ra=a}function z(){return sa}function B(a){sa=a}function I(a,b){var c=a.getType(),e=a.getStreamInfo(),f=e.id,h=function(a){var g=d(c,f),h=a.value;h<0&&(h=0),h>g&&(h=g);var i=U(c,e);h!==i&&(pa[c].state===E||h>i)&&(X(c,f,a.confidence),K(c,e,i,h,a.reason)),b&&b()};if(t(c)){var i=ea.getRules(m.default.QUALITY_SWITCH_RULES);fa.applyRules(i,a,h,U(c,e),function(a,b){return a=a===g.default.NO_CHANGE?0:a,Math.max(a,b)})}else b&&b()}function J(a,b,c,e){var f=b.id,g=U(a,b),h=null!==c&&!isNaN(c)&&c%1===0;if(!h)throw new Error("argument is not an integer");c!==g&&c>=0&&c<=d(a,f)&&K(a,b,g,c,e)}function K(a,b,c,d,e){V(a,b.id,d),ca.trigger(u.default.QUALITY_CHANGE_REQUESTED,{mediaType:a,streamInfo:b,oldQuality:c,newQuality:d,reason:e})}function L(a,b){pa[a].state=b}function M(a){return pa[a].state}function N(a,b){var c=O(a);if(!c||0===c.length)return H;for(var d=c.length-1;d>=0;d--){var e=c[d];if(1e3*b>=e.bitrate)return d}return 0}function O(a){if(!a||!a.bitrateList)return null;for(var b,c=a.bitrateList,d=a.type,e=[],f=0,g=c.length;f<g;f++)b=new i.default,b.mediaType=d,b.qualityIndex=f,b.bitrate=c[f].bandwidth,b.width=c[f].width,b.height=c[f].height,e.push(b);return e}function P(a,b){na[a]=b}function Q(a){return na[a]}function R(a){var b=a.type,c=a.streamInfo.id,d=a.representationCount-1;return Y(b,c,d),d}function S(a){var b,c=a.id,e=U("audio",a),f=U("video",a);return b=e===d("audio",c)&&f===d("video",c)}function T(){ca.off(u.default.LOADING_PROGRESS,aa,this),clearTimeout(qa),qa=null,a()}function U(a,b){var c,d=b.id;return ja[d]=ja[d]||{},ja[d].hasOwnProperty(a)||(ja[d][a]=H),c=ja[d][a]}function V(a,b,c){ja[b]=ja[b]||{},ja[b][a]=c}function W(a,b){var c;return ka[b]=ka[b]||{},ka[b].hasOwnProperty(a)||(ka[b][a]=0),c=ka[b][a]}function X(a,b,c){ka[b]=ka[b]||{},ka[b][a]=c}function Y(a,b,c){ia[b]=ia[b]||{},ia[b][a]=c}function Z(a,b){var c=l(b);if(isNaN(c)||!oa[b])return a;var d=N(oa[b].getMediaInfo(),c);return Math.min(a,d)}function $(a,b,c){var d=p(b);return isNaN(d)||d>=1||d<0?a:Math.min(a,Math.round(c*d))}function _(a,b){if("video"!==b||!ra||!oa[b])return a;var c=sa&&window.hasOwnProperty("devicePixelRatio"),d=c?window.devicePixelRatio:1,e=va.getElement(),f=e.clientWidth*d,g=e.clientHeight*d,h=ta.getValue(),i=ua.getAdaptationForType(h,0,b).Representation,j=a;if(f>0&&g>0){for(;j>0&&i[j]&&f<i[j].width&&f-i[j-1].width<i[j].width-f;)j-=1;i.length-2>=j&&i[j].width===i[j+1].width&&(j=Math.min(a,j+1))}return j}function aa(a){var b=a.request.mediaType;if(t(b)){var c=function(){var c=ea.getRules(m.default.ABANDON_FRAGMENT_RULES),d=oa[b].getScheduleController();if(!d)return{v:void 0};var e=function(c){if(c.confidence===g.default.STRONG&&c.value<U(b,ga.getActiveStreamInfo())){var e=d.getFragmentModel(),f=e.getRequests({state:q.default.FRAGMENT_MODEL_LOADING,index:a.request.index})[0];f&&(e.abortRequests(),L(b,D),J(b,ga.getActiveStreamInfo(),c.value,c.reason),ca.trigger(u.default.FRAGMENT_LOADING_ABANDONED,{streamProcessor:oa[b],request:f,mediaType:b}),clearTimeout(qa),qa=setTimeout(function(){L(b,E),qa=null},wa.getAbandonLoadTimeout()))}};fa.applyRules(c,oa[b],e,a,function(a,b){return b})}();if("object"==typeof c)return c.v}}var ba=this.context,ca=(0,s.default)(ba).getInstance(),da=void 0,ea=void 0,fa=void 0,ga=void 0,ha=void 0,ia=void 0,ja=void 0,ka=void 0,la=void 0,ma=void 0,na=void 0,oa=void 0,pa=void 0,qa=void 0,ra=void 0,sa=void 0,ta=void 0,ua=void 0,va=void 0,wa=void 0,xa=void 0;return da={isPlayingAtTopQuality:S,updateTopQualityIndex:R,getAverageThroughput:Q,getBitrateList:O,getQualityForBitrate:N,getMaxAllowedBitrateFor:l,setMaxAllowedBitrateFor:n,getMaxAllowedRepresentationRatioFor:p,setMaxAllowedRepresentationRatioFor:r,getInitialBitrateFor:e,setInitialBitrateFor:f,getInitialRepresentationRatioFor:h,setInitialRepresentationRatioFor:j,setAutoSwitchBitrateFor:v,getAutoSwitchBitrateFor:t,setLimitBitrateByPortal:x,getLimitBitrateByPortal:w,getUsePixelRatioInLimitBitrateByPortal:z,setUsePixelRatioInLimitBitrateByPortal:B,getConfidenceFor:W,getQualityFor:U,getAbandonmentStateFor:M,setAbandonmentStateFor:L,setPlaybackQuality:J,getPlaybackQuality:I,setAverageThroughput:P,getTopQualityIndexFor:d,initialize:b,setConfig:c,reset:T},a(),da}Object.defineProperty(c,"__esModule",{value:!0});var f=a(130),g=d(f),h=a(160),i=d(h),j=a(149),k=d(j),l=a(131),m=d(l),n=a(101),o=d(n),p=a(99),q=d(p),r=a(9),s=d(r),t=a(13),u=d(t),v=a(10),w=d(v),x=a(100),y=d(x),z=a(22),A=d(z),B=a(104),C=d(B),D="abandonload",E="allowload",F=1e3,G=100,H=0;e.__dashjs_factory_name="AbrController";var I=w.default.getSingletonFactory(e);I.ABANDON_LOAD=D,I.QUALITY_DEFAULT=H,c.default=I,b.exports=c.default},{10:10,100:100,101:101,104:104,13:13,130:130,131:131,149:149,160:160,22:22,9:9,99:99}],61:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){o.invalidateSelectedIndexes(a.entry)}function b(){o=(0,g.default)(j).create(),p=(0,i.default)(j).create(),l.on(s.default.SERVICE_LOCATION_BLACKLIST_CHANGED,a,h)}function c(a){o.update(a),p.chooseSelectorFromManifest(a)}function d(a){var b=o.getForPath(a),c=b.reduce(function(a,b){var c=p.select(b);return c&&(n.isRelative(c.url)?a.url+=c.url:n.isPathAbsolute(c.url)?a.url=n.parseOrigin(a.url)+c.url:(a.url=c.url,a.serviceLocation=c.serviceLocation)),a},new m.default);if(!n.isRelative(c.url))return c}function e(){o.reset(),p.reset()}function f(a){c(a)}var h=void 0,j=this.context,l=(0,q.default)(j).getInstance(),n=(0,k.default)(j).getInstance(),o=void 0,p=void 0;return h={reset:e,initialize:f,resolve:d},b(),h}Object.defineProperty(c,"__esModule",{value:!0});var f=a(98),g=d(f),h=a(145),i=d(h),j=a(158),k=d(j),l=a(40),m=d(l),n=a(10),o=d(n),p=a(9),q=d(p),r=a(13),s=d(r);e.__dashjs_factory_name="BaseURLController",c.default=o.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,145:145,158:158,40:40,9:9,98:98}],62:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a){return!!(g.length&&a&&a.length)&&g.indexOf(a)!==-1}function c(a){g.indexOf(a)===-1&&(g.push(a),h.trigger(j,{entry:a}))}function d(a){a.error&&c(a.request.serviceLocation)}function e(){k&&h.on(k,d,this)}function f(){g=[]}var g=[],h=(0,i.default)(this.context).getInstance(),j=a.updateEventName,k=a.loadFailedEventName;return e(),{add:c,contains:b,reset:f}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(9),i=d(h);e.__dashjs_factory_name="BlackListController",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10,9:9}],63:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){oa=m.default.QUALITY_DEFAULT,pa=!1,qa=0,ra=Number.POSITIVE_INFINITY,ta=0,ua=0,wa=null,xa=E,za=0,Aa=!1,Ba=!1,Ca=!1,Da=!1}function c(a,b,c){va=a,$(b),Fa=c,Ia=(0,i.default)(ca).getInstance(),Ea=(0,o.default)(ca).getInstance(),Ga=(0,m.default)(ca).getInstance(),Ja=(0,C.default)(ca).getInstance(),Ha=Fa.getScheduleController(),oa=Ga.getQualityFor(va,Fa.getStreamInfo()),ea.on(u.default.DATA_UPDATE_COMPLETED,O,this),ea.on(u.default.INIT_FRAGMENT_LOADED,f,this),ea.on(u.default.MEDIA_FRAGMENT_LOADED,j,this),ea.on(u.default.QUALITY_CHANGE_REQUESTED,p,this),ea.on(u.default.STREAM_COMPLETED,P,this),ea.on(u.default.PLAYBACK_PROGRESS,t,this),ea.on(u.default.PLAYBACK_TIME_UPDATED,t,this),ea.on(u.default.PLAYBACK_RATE_CHANGED,S,this),ea.on(u.default.PLAYBACK_SEEKING,r,this),ea.on(u.default.WALLCLOCK_TIME_UPDATED,R,this),ea.on(u.default.CURRENT_TRACK_CHANGED,Q,this,s.default.EVENT_PRIORITY_HIGH),ea.on(u.default.SOURCEBUFFER_APPEND_COMPLETED,n,this),ea.on(u.default.SOURCEBUFFER_REMOVE_COMPLETED,M,this)}function d(a){if(!a||!sa||!Fa)return null;var b=null;try{b=ha.createSourceBuffer(sa,a),b&&b.hasOwnProperty("initialize")&&b.initialize(va,this)}catch(c){ia.mediaSourceError("Error creating "+va+" source buffer.")}return X(b),N(Fa.getRepresentationInfoForQuality(oa).MSETimeOffset),b}function e(){return Fa.getStreamInfo().id===ja.getActiveStreamInfo().id}function f(a){a.fragmentModel===Fa.getFragmentModel()&&(da("Init fragment finished loading saving to",va+"'s init cache"),Ja.save(a.chunk),l(a.chunk))}function h(a,b){var c=Ja.extract(a,va,b);c?l(c):ea.trigger(u.default.INIT_REQUESTED,{sender:na})}function j(a){if(a.fragmentModel===Fa.getFragmentModel()){var b=a.chunk,c=b.bytes,d=b.quality,e=Fa.getRepresentationInfoForQuality(d),f=ga.getValue(),h=la.getEventsFor(f,e.mediaInfo,Fa),i=la.getEventsFor(f,e,Fa);if(h.length>0||i.length>0){var j=Fa.getFragmentModel().getRequests({state:g.default.FRAGMENT_MODEL_EXECUTED,quality:d,index:b.index})[0],k=G(c,j,h,i);Fa.getEventController().addInbandEvents(k)}b.bytes=H(c),l(b)}}function l(a){Ba=!0,ya=a,ha.append(wa,a),"video"===a.mediaInfo.type&&a.mediaInfo.embeddedCaptions&&ma.append(a.bytes,a)}function n(a){if(wa===a.buffer){if(a.error||!I())return a.error.code===k.default.QUOTA_EXCEEDED_ERROR_CODE&&(ra=.8*ha.getTotalBufferedTime(wa)),void(a.error.code!==k.default.QUOTA_EXCEEDED_ERROR_CODE&&I()||(ea.trigger(u.default.QUOTA_EXCEEDED,{sender:na,criticalBufferLevel:ra}),L(K())));isNaN(ya.index)||(ta=Math.max(ya.index,ta),y());var b=ha.getAllRanges(wa);if(b&&b.length>0)for(var c=0,d=b.length;c<d;c++)da("Buffered Range for type:",va,":",b.start(c)," - ",b.end(c));t(),Ba=!1,ea.trigger(u.default.BYTES_APPENDED,{sender:na,quality:ya.quality,startTime:ya.start,index:ya.index,bufferedRanges:b})}}function p(a){oa!==a.newQuality&&va===a.mediaType&&Fa.getStreamInfo().id===a.streamInfo.id&&(N(Fa.getRepresentationInfoForQuality(a.newQuality).MSETimeOffset),oa=a.newQuality)}function r(){ua=0,pa=!1,t()}function t(){v(),x()}function v(){qa=ha.getBufferLength(wa,Ea.getTime()),ea.trigger(u.default.BUFFER_LEVEL_UPDATED,{sender:na,bufferLevel:qa}),z()}function x(){e()&&(fa.addBufferState(va,xa,Ha.getBufferTarget()),fa.addBufferLevel(va,new Date,1e3*qa))}function y(){var a=ta===ua-1;a&&!pa&&(pa=!0,ea.trigger(u.default.BUFFERING_COMPLETED,{sender:na,streamInfo:Fa.getStreamInfo()}))}function z(){B(qa<F&&!pa?E:D)}function B(a){xa===a||"fragmentedText"===va&&ma.getAllTracksAreDisabled()||(xa=a,x(),ea.trigger(u.default.BUFFER_LEVEL_STATE_CHANGED,{sender:na,state:a,mediaType:va,streamInfo:Fa.getStreamInfo()}),ea.trigger(a===D?u.default.BUFFER_LOADED:u.default.BUFFER_EMPTY,{mediaType:va}),da(a===D?"Got enough buffer to start.":"Waiting for more buffer before starting playback."))}function G(a,b,c,d){var e=Math.max(isNaN(b.startTime)?0:b.startTime,0),f=[],g=[];Da=!1;for(var h=c.concat(d),i=0,j=h.length;i<j;i++)f[h[i].schemeIdUri]=h[i];for(var k=(0,w.default)(ca).getInstance().parse(a),l=k.getBoxes("emsg"),i=0,j=l.length;i<j;i++){var m=la.getEvent(l[i],f,e);m&&g.push(m)}return g}function H(a){if(!Da)return a;for(var b=a.length,c=Math.pow(256,2),d=Math.pow(256,3),e=new Uint8Array(a.length),f=0,g=0;f<b;){var h=String.fromCharCode(a[f+4],a[f+5],a[f+6],a[f+7]),i=a[f]*d+a[f+1]*c+256*a[f+2]+1*a[f+3];if("emsg"!=h)for(var j=f;j<f+i;j++)e[g]=a[j],g++;f+=i}return e.subarray(0,g)}function I(){var a=ha.getTotalBufferedTime(wa);return a<ra}function J(){if("fragmentedText"!==va){var a=wa.buffered.length?wa.buffered.start(0):0,b=Ea.getTime()-a-Ia.getBufferToKeep();b>0&&(da("pruning buffer: "+b+" seconds."),Ca=!0,ha.remove(wa,0,Math.round(a+b),sa))}}function K(){if(!wa)return null;var a=Ea.getTime(),b=Fa.getFragmentModel().getRequests({state:g.default.FRAGMENT_MODEL_EXECUTED,time:a})[0],c=ha.getBufferRange(wa,a),d=b&&!isNaN(b.startTime)?b.startTime:Math.floor(a);return null===c&&wa.buffered.length>0&&(d=wa.buffered.end(wa.buffered.length-1)),{start:wa.buffered.start(0),end:d}}function L(a){a&&wa&&ha.remove(wa,a.start,a.end,sa)}function M(a){wa===a.buffer&&(Ca&&(Ca=!1),v(),ea.trigger(u.default.BUFFER_CLEARED,{sender:na,from:a.from,to:a.to,hasEnoughSpaceToAppend:I()}))}function N(a){wa&&wa.timestampOffset!==a&&!isNaN(a)&&(wa.timestampOffset=a)}function O(a){a.sender.getStreamProcessor()!==Fa||a.error||N(a.currentRepresentation.MSETimeOffset)}function P(a){a.fragmentModel===Fa.getFragmentModel()&&(ua=a.request.index,y())}function Q(a){wa&&a.newMediaInfo.type===va&&a.newMediaInfo.streamInfo.id===Fa.getStreamInfo().id&&ka.getSwitchMode(va)===q.default.TRACK_SWITCH_MODE_ALWAYS_REPLACE&&L(K())}function R(){za++;var a=za*(Ia.getWallclockTimeUpdateInterval()/1e3);a>=Ia.getBufferPruningInterval()&&!Ba&&(za=0,J())}function S(){z()}function T(){return va}function U(){return Fa}function V(a){Fa=a}function W(){return wa}function X(a){wa=a}function Y(){return qa}function Z(){return ra}function $(a){sa=a}function _(){return sa}function aa(){return pa}function ba(a){ea.off(u.default.DATA_UPDATE_COMPLETED,O,this),ea.off(u.default.QUALITY_CHANGE_REQUESTED,p,this),ea.off(u.default.INIT_FRAGMENT_LOADED,f,this),ea.off(u.default.MEDIA_FRAGMENT_LOADED,j,this),ea.off(u.default.STREAM_COMPLETED,P,this),
+ea.off(u.default.CURRENT_TRACK_CHANGED,Q,this),ea.off(u.default.PLAYBACK_PROGRESS,t,this),ea.off(u.default.PLAYBACK_TIME_UPDATED,t,this),ea.off(u.default.PLAYBACK_RATE_CHANGED,S,this),ea.off(u.default.PLAYBACK_SEEKING,r,this),ea.off(u.default.WALLCLOCK_TIME_UPDATED,R,this),ea.off(u.default.SOURCEBUFFER_APPEND_COMPLETED,n,this),ea.off(u.default.SOURCEBUFFER_REMOVE_COMPLETED,M,this),ra=Number.POSITIVE_INFINITY,xa=E,oa=m.default.QUALITY_DEFAULT,ua=0,ta=0,ya=null,Aa=!1,pa=!1,Ba=!1,Ca=!1,Ea=null,Fa=null,Ga=null,Ha=null,a||(ha.abort(sa,wa),ha.removeSourceBuffer(sa,wa)),wa=null}var ca=this.context,da=(0,A.default)(ca).getInstance().log,ea=(0,s.default)(ca).getInstance(),fa=a.metricsModel,ga=a.manifestModel,ha=a.sourceBufferController,ia=a.errHandler,ja=a.streamController,ka=a.mediaController,la=a.adapter,ma=a.textSourceBuffer,na=void 0,oa=void 0,pa=void 0,qa=void 0,ra=void 0,sa=void 0,ta=void 0,ua=void 0,va=void 0,wa=void 0,xa=void 0,ya=void 0,za=void 0,Aa=void 0,Ba=void 0,Ca=void 0,Da=void 0,Ea=void 0,Fa=void 0,Ga=void 0,Ha=void 0,Ia=void 0,Ja=void 0;return na={initialize:c,createBuffer:d,getType:T,getStreamProcessor:U,setStreamProcessor:V,getBuffer:W,setBuffer:X,getBufferLevel:Y,getCriticalBufferLevel:Z,setMediaSource:$,getMediaSource:_,getIsBufferingCompleted:aa,switchInitData:h,reset:ba},b(),na}Object.defineProperty(c,"__esModule",{value:!0});var f=a(99),g=d(f),h=a(101),i=d(h),j=a(70),k=d(j),l=a(60),m=d(l),n=a(68),o=d(n),p=a(66),q=d(p),r=a(9),s=d(r),t=a(13),u=d(t),v=a(146),w=d(v),x=a(10),y=d(x),z=a(8),A=d(z),B=a(152),C=d(B),D="bufferLoaded",E="bufferStalled",F=.5;e.__dashjs_factory_name="BufferController";var G=y.default.getClassFactory(e);G.BUFFER_LOADED=D,G.BUFFER_EMPTY=E,c.default=G,b.exports=c.default},{10:10,101:101,13:13,146:146,152:152,60:60,66:66,68:68,70:70,8:8,9:9,99:99}],64:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){D=!1,u={},v={},w={},x=null,y=100,z=y/1e3,C=(0,g.default)(q).getInstance()}function b(){null!==x&&D&&(clearInterval(x),x=null,D=!1)}function c(){r("Start Event Controller"),D||isNaN(y)||(D=!0,x=setInterval(h,y))}function d(a){if(u={},a)for(var b=0;b<a.length;b++){var c=a[b];u[c.id]=c,r("Add inline event with id "+c.id)}r("Added "+a.length+" inline events")}function e(a){for(var b=0;b<a.length;b++){var c=a[b];c.id in v?r("Repeated event with id "+c.id):(v[c.id]=c,r("Add inband event with id "+c.id))}}function f(){if(w)for(var a=C.getTime(),b=Object.keys(w),c=0;c<b.length;c++){var d=b[c],e=w[d];null!==e&&(e.duration+e.presentationTime)/e.eventStream.timescale<a&&(r("Remove Event "+d+" at time "+a),e=null,delete w[d])}}function h(){j(v),j(u),f()}function i(){var a=A.getValue(),b=a.url;a.hasOwnProperty("Location")&&(b=a.Location),r("Refresh manifest @ "+b),B.getManifestLoader().load(b)}function j(a){var b,c=C.getTime();if(a)for(var d=Object.keys(a),e=0;e<d.length;e++){var f=d[e],g=a[f];void 0!==g&&(b=g.presentationTime/g.eventStream.timescale,(0===b||b<=c&&b+z>c)&&(r("Start Event "+f+" at "+c),g.duration>0&&(w[f]=g),g.eventStream.schemeIdUri==o&&g.eventStream.value==p?i():s.trigger(g.eventStream.schemeIdUri,{event:g}),delete a[f]))}}function l(a){a&&(a.manifestModel&&(A=a.manifestModel),a.manifestUpdater&&(B=a.manifestUpdater))}function n(){b(),u=null,v=null,w=null,C=null}var o="urn:mpeg:dash:event:2012",p=1,q=this.context,r=(0,k.default)(q).getInstance().log,s=(0,m.default)(q).getInstance(),t=void 0,u=void 0,v=void 0,w=void 0,x=void 0,y=void 0,z=void 0,A=void 0,B=void 0,C=void 0,D=void 0;return t={initialize:a,addInlineEvents:d,addInbandEvents:e,clear:b,start:c,setConfig:l,reset:n}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(68),g=d(f),h=a(10),i=d(h),j=a(8),k=d(j),l=a(9),m=d(l);e.__dashjs_factory_name="EventController",c.default=i.default.getSingletonFactory(e),b.exports=c.default},{10:10,68:68,8:8,9:9}],65:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){r={},o.on(p.default.FRAGMENT_LOADING_COMPLETED,i,q)}function b(a){var b=null;return null!==a&&void 0!==a&&a.byteLength>0&&(b=new Uint8Array(a)),b}function c(a){var b=r[a];return b||(b=(0,j.default)(k).create({metricsModel:(0,l.default)(k).getInstance()}),r[a]=b),b}function d(a){return a&&a.type&&a.type===f.HTTPRequest.INIT_SEGMENT_TYPE}function e(){o.off(p.default.FRAGMENT_LOADING_COMPLETED,i,this);for(var a in r)r[a].reset();r={}}function g(a,b,c){var d=new h.default;return d.streamId=c,d.mediaInfo=b.mediaInfo,d.segmentType=b.type,d.start=b.startTime,d.duration=b.duration,d.end=d.start+d.duration,d.bytes=a,d.index=b.index,d.quality=b.quality,d}function i(a){if(r[a.request.mediaType]===a.sender){var b=a.sender.getScheduleController(),c=a.request,e=a.response,f=d(c),h=b.getStreamProcessor().getStreamInfo().id;if(!e)return void m("No "+c.mediaType+" bytes to push.");var i=g(e,c,h);o.trigger(f?p.default.INIT_FRAGMENT_LOADED:p.default.MEDIA_FRAGMENT_LOADED,{chunk:i,fragmentModel:a.sender})}}var k=this.context,m=(0,t.default)(k).getInstance().log,o=(0,n.default)(k).getInstance(),q=void 0,r=void 0;return q={process:b,getModel:c,isInitializationRequest:d,reset:e},a(),q}Object.defineProperty(c,"__esModule",{value:!0});var f=a(179),g=a(161),h=d(g),i=a(99),j=d(i),k=a(102),l=d(k),m=a(9),n=d(m),o=a(13),p=d(o),q=a(10),r=d(q),s=a(8),t=d(s);e.__dashjs_factory_name="FragmentController",c.default=r.default.getClassFactory(e),b.exports=c.default},{10:10,102:102,13:13,161:161,179:179,8:8,9:9,99:99}],66:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){N={},E(),D()}function b(a,b){var c=k(a),e=d(a,b),f=[];return"fragmentedText"===a?void h(e[0]):(c||(c=L.getSavedMediaSettings(a),j(a,c)),void(e&&0!==e.length&&(c&&e.forEach(function(a){C(c,a)&&f.push(a)}),h(0===f.length?F(e):f.length>1?F(f):f[0]))))}function c(a){var b=a?a.type:null,c=a?a.streamInfo.id:null,d=k(b);return!(!a||!x(b))&&(N[c]=N[c]||G(),!(N[c][b].list.indexOf(a)>=0)&&(N[c][b].list.push(a),d&&C(d,a)&&!e(b,a.streamInfo)&&h(a),!0))}function d(a,b){if(!a||!b)return[];var c=b.id;return N[c]&&N[c][a]?N[c][a].list:[]}function e(a,b){return!a||!b||b&&!N[b.id]?null:N[b.id][a].current}function f(a){var b=a.type,c=a.streamInfo.id;return N[c]&&N[c][b]&&y(N[c][b].current,a)}function h(a){if(a){var b=a.type,c=a.streamInfo,d=c.id,f=e(b,c);if(N[d]&&N[d][b]&&(!f||!y(a,f))){N[d][b].current=a,f&&J.trigger(g.default.CURRENT_TRACK_CHANGED,{oldMediaInfo:f,newMediaInfo:a,switchMode:Q[b]});var h=B(a);h&&N[d][b].storeLastSettings&&(h.roles&&(h.role=h.roles[0],delete h.roles),h.accessibility&&(h.accessibility=h.accessibility[0]),h.audioChannelConfiguration&&(h.audioChannelConfiguration=h.audioChannelConfiguration[0]),L.setSavedMediaSettings(b,h))}}}function j(a,b){a&&b&&(O[a]=b)}function k(a){return a?O[a]:null}function l(a,b){var c=S.indexOf(b)!==-1;return c?void(Q[a]=b):void I("track switch mode is not supported: "+b)}function n(a){return Q[a]}function p(a){var b=T.indexOf(a)!==-1;return b?void(P=a):void I("track selection mode is not supported: "+a)}function w(){return P||v}function x(a){return"audio"===a||"video"===a||"text"===a||"fragmentedText"===a}function y(a,b){var c=a.id===b.id,d=a.viewpoint===b.viewpoint,e=a.lang===b.lang,f=a.roles.toString()===b.roles.toString(),g=a.accessibility.toString()===b.accessibility.toString(),h=a.audioChannelConfiguration.toString()===b.audioChannelConfiguration.toString();return c&&d&&e&&f&&g&&h}function z(a){a&&a.errHandler&&(R=a.errHandler)}function A(){a(),K.resetEmbedded()}function B(a){var b={lang:a.lang,viewpoint:a.viewpoint,roles:a.roles,accessibility:a.accessibility,audioChannelConfiguration:a.audioChannelConfiguration},c=b.lang||b.viewpoint||b.role&&b.role.length>0||b.accessibility&&b.accessibility.length>0||b.audioChannelConfiguration&&b.audioChannelConfiguration.length>0;return c?b:null}function C(a,b){var c=!a.lang||a.lang===b.lang,d=!a.viewpoint||a.viewpoint===b.viewpoint,e=!a.role||!!b.roles.filter(function(b){return b===a.role})[0],f=!a.accessibility||!!b.accessibility.filter(function(b){return b===a.accessibility})[0],g=!a.audioChannelConfiguration||!!b.audioChannelConfiguration.filter(function(b){return b===a.audioChannelConfiguration})[0];return c&&d&&e&&f&&g}function D(){Q={audio:s,video:r}}function E(){O={audio:null,video:null}}function F(a){var b=w(),c=[],d=function(a){var b,c=0,d=[];return a.forEach(function(a){b=Math.max.apply(Math,a.bitrateList.map(function(a){return a.bandwidth})),b>c?(c=b,d=[a]):b===c&&d.push(a)}),d},e=function(a){var b,c=0,d=[];return a.forEach(function(a){b=a.representationCount,b>c?(c=b,d=[a]):b===c&&d.push(a)}),d};switch(b){case t:c=d(a),c.length>1&&(c=e(c));break;case u:c=e(a),c.length>1&&(c=d(a));break;default:I("track selection mode is not supported: "+b)}return c[0]}function G(){return{audio:{list:[],storeLastSettings:!0,current:null},video:{list:[],storeLastSettings:!0,current:null},text:{list:[],storeLastSettings:!0,current:null},fragmentedText:{list:[],storeLastSettings:!0,current:null}}}var H=this.context,I=(0,m.default)(H).getInstance().log,J=(0,i.default)(H).getInstance(),K=(0,o.default)(H).getInstance(),L=(0,q.default)(H).getInstance(),M=void 0,N=void 0,O=void 0,P=void 0,Q=void 0,R=void 0,S=[s,r],T=[t,u];return M={initialize:a,checkInitialMediaSettingsForType:b,addTrack:c,getTracksFor:d,getCurrentTrackFor:e,isCurrentTrack:f,setTrack:h,setInitialSettings:j,getInitialSettings:k,setSwitchMode:l,getSwitchMode:n,setSelectionModeForInitialTrack:p,getSelectionModeForInitialTrack:w,isMultiTrackSupportedByType:x,isTracksEqual:y,setConfig:z,reset:A}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(13),g=d(f),h=a(9),i=d(h),j=a(10),k=d(j),l=a(8),m=d(l),n=a(56),o=d(n),p=a(149),q=d(p),r="neverReplace",s="alwaysReplace",t="highestBitrate",u="widestRange",v=t;e.__dashjs_factory_name="MediaController";var w=k.default.getSingletonFactory(e);w.TRACK_SWITCH_MODE_NEVER_REPLACE=r,w.TRACK_SWITCH_MODE_ALWAYS_REPLACE=s,w.TRACK_SELECTION_MODE_HIGHEST_BITRATE=t,w.TRACK_SELECTION_MODE_WIDEST_RANGE=u,w.DEFAULT_INIT_TRACK_SELECTION_MODE=v,c.default=w,b.exports=c.default},{10:10,13:13,149:149,56:56,8:8,9:9}],67:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){var a="WebKitMediaSource"in window,b="MediaSource"in window;return b?new MediaSource:a?new WebKitMediaSource:null}function b(a,b){var c=window.URL.createObjectURL(a);return b.setSource(c),c}function c(a){a.setSource(null)}function d(a,b){return a.duration!=b&&(a.duration=b),a.duration}function e(a){var b=a.sourceBuffers,c=b.length,d=0;if("open"===a.readyState){for(d;d<c;d++){if(b[d].updating)return;if(0===b[d].buffered.length)return}a.endOfStream()}}var f=void 0;return f={createMediaSource:a,attachMediaSource:b,detachMediaSource:c,setDuration:d,signalEndOfStream:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="MediaSourceController",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],68:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){ma=0,na=NaN,oa=null,ra=null,ta=!1,pa={},sa=(0,k.default)(_).getInstance()}function b(a){qa=a,da=la.getElement(),Z(),ra=qa.manifestInfo.isDynamic,na=qa.start,ba.on(o.default.DATA_UPDATE_COMPLETED,I,this),ba.on(o.default.LIVE_EDGE_SEARCH_COMPLETED,J,this),ba.on(o.default.BYTES_APPENDED,X,this),ba.on(o.default.BUFFER_LEVEL_STATE_CHANGED,Y,this),ba.on(o.default.PERIOD_SWITCH_STARTED,c,this),ta&&(ta=!1,j())}function c(a){a.fromStreamInfo&&pa[a.fromStreamInfo.id]&&delete pa[a.fromStreamInfo.id]}function d(){return C(!0)+qa.duration-r()}function e(){return r()>0}function f(){return qa.id}function h(){return qa.duration}function j(){if(da){da.autoplay=!0;var a=da.play();a&&"undefined"!=typeof Promise&&a instanceof Promise&&a.catch(function(a){"NotAllowedError"===a.name&&ba.trigger(o.default.PLAYBACK_NOT_ALLOWED),aa("Caught pending play exception - continuing ("+a+")")})}else ta=!0}function l(){if(da)return da.paused}function n(){da&&(da.pause(),da.autoplay=!1)}function p(){if(da)return da.seeking}function q(a){la&&(aa("Requesting seek to time: "+a),la.setCurrentTime(a))}function r(){if(da)return da.currentTime}function t(){if(da)return da.playbackRate}function u(){if(da)return da.played}function v(){if(da)return da.ended}function w(){return ra}function x(a){na=a}function y(){return na}function z(a,b){var c=ja.getMpd(ia.getValue()),d=void 0,e=10;d=sa.getUseSuggestedPresentationDelay()&&c.hasOwnProperty("suggestedPresentationDelay")?c.suggestedPresentationDelay:sa.getLiveDelay()?sa.getLiveDelay():isNaN(a)?2*qa.manifestInfo.minBufferTime:a*sa.getLiveDelayFragmentCount();var f=Math.max(b-e,b/2);return Math.min(d,f)}function A(){la&&da&&(ba.off(o.default.DATA_UPDATE_COMPLETED,I,this),ba.off(o.default.BUFFER_LEVEL_STATE_CHANGED,Y,this),ba.off(o.default.LIVE_EDGE_SEARCH_COMPLETED,J,this),ba.off(o.default.BYTES_APPENDED,X,this),F(),$()),la=null,qa=null,da=null,ra=null,a()}function B(a){a&&(a.streamController&&(ea=a.streamController),a.timelineConverter&&(fa=a.timelineConverter),a.metricsModel&&(ga=a.metricsModel),a.dashMetrics&&(ha=a.dashMetrics),a.manifestModel&&(ia=a.manifestModel),a.dashManifestModel&&(ja=a.dashManifestModel),a.adapter&&(ka=a.adapter),a.videoModel&&(la=a.videoModel))}function C(a){var b=void 0,c=(0,i.default)(_).getInstance().getURIFragmentData(),d=parseInt(c.s,10),e=parseInt(c.t,10),f=NaN;if(a||(f=isNaN(d)?e:d),ra)!isNaN(f)&&f>1262304e3&&(b=f-qa.manifestInfo.availableFrom.getTime()/1e3,(b>na||b<na-qa.manifestInfo.DVRWindowSize)&&(b=null)),b=b||na;else if(!isNaN(f)&&f<Math.max(qa.manifestInfo.duration,qa.duration)&&f>=0)b=f;else{var g=pa[qa.id];void 0===g&&(g=ea.getActiveStreamCommonEarliestTime()),b=Math.max(g,qa.start)}return b}function D(a){var b,c=ga.getReadOnlyMetricsFor("video")||ga.getReadOnlyMetricsFor("audio"),d=ha.getCurrentDVRInfo(c),e=d?d.range:null;return e?a>=e.start&&a<=e.end?a:b=Math.max(e.end-2*qa.manifestInfo.minBufferTime,e.start):NaN}function E(){if(null===oa){var a=function(){W()};oa=setInterval(a,sa.getWallclockTimeUpdateInterval())}}function F(){clearInterval(oa),oa=null}function G(){var a=C(!1);a>0&&(q(a),aa("Starting playback at offset: "+a))}function H(){if(!l()&&ra&&0!==da.readyState){var a=r(),b=D(a),c=!isNaN(b)&&b!==a;c&&q(b)}}function I(a){if(!a.error){var b=ka.convertDataToTrack(ia.getValue(),a.currentRepresentation),c=b.mediaInfo.streamInfo;qa.id===c.id&&(qa=c,H())}}function J(a){a.error||0===da.readyState||G()}function K(){ba.trigger(o.default.CAN_PLAY)}function L(){aa("Native video element event: play"),H(),E(),ba.trigger(o.default.PLAYBACK_STARTED,{startTime:r()})}function M(){aa("Native video element event: playing"),ba.trigger(o.default.PLAYBACK_PLAYING,{playingTime:r()})}function N(){aa("Native video element event: pause"),ba.trigger(o.default.PLAYBACK_PAUSED,{ended:v()})}function O(){var a=r();aa("Seeking to: "+a),E(),ba.trigger(o.default.PLAYBACK_SEEKING,{seekTime:a})}function P(){aa("Native video element event: seeked"),ba.trigger(o.default.PLAYBACK_SEEKED)}function Q(){var a=r();a!==ma&&(ma=a,ba.trigger(o.default.PLAYBACK_TIME_UPDATED,{timeToEnd:d(),time:a}))}function R(){ba.trigger(o.default.PLAYBACK_PROGRESS)}function S(){var a=t();aa("Native video element event: ratechange: ",a),ba.trigger(o.default.PLAYBACK_RATE_CHANGED,{playbackRate:a})}function T(){aa("Native video element event: loadedmetadata"),(!ra&&qa.isFirst||fa.isTimeSyncCompleted())&&G(),ba.trigger(o.default.PLAYBACK_METADATA_LOADED),E()}function U(){aa("Native video element event: ended"),n(),F(),ba.trigger(o.default.PLAYBACK_ENDED)}function V(a){var b=a.target||a.srcElement;ba.trigger(o.default.PLAYBACK_ERROR,{error:b.error})}function W(){ba.trigger(o.default.WALLCLOCK_TIME_UPDATED,{isDynamic:ra,time:new Date})}function X(a){var b=a.bufferedRanges;if(b&&b.length){var c=Math.max(b.start(0),qa.start),d=void 0===pa[qa.id]?c:Math.max(pa[qa.id],c);d!==pa[qa.id]&&(!ra&&C(!0)<d&&r()<d&&q(d),pa[qa.id]=d)}}function Y(a){a.streamInfo.id===qa.id&&la.setStallState(a.mediaType,a.state===g.default.BUFFER_EMPTY)}function Z(){da.addEventListener("canplay",K),da.addEventListener("play",L),da.addEventListener("playing",M),da.addEventListener("pause",N),da.addEventListener("error",V),da.addEventListener("seeking",O),da.addEventListener("seeked",P),da.addEventListener("timeupdate",Q),da.addEventListener("progress",R),da.addEventListener("ratechange",S),da.addEventListener("loadedmetadata",T),da.addEventListener("ended",U)}function $(){da.removeEventListener("canplay",K),da.removeEventListener("play",L),da.removeEventListener("playing",M),da.removeEventListener("pause",N),da.removeEventListener("error",V),da.removeEventListener("seeking",O),da.removeEventListener("seeked",P),da.removeEventListener("timeupdate",Q),da.removeEventListener("progress",R),da.removeEventListener("ratechange",S),da.removeEventListener("loadedmetadata",T),da.removeEventListener("ended",U)}var _=this.context,aa=(0,s.default)(_).getInstance().log,ba=(0,m.default)(_).getInstance(),ca=void 0,da=void 0,ea=void 0,fa=void 0,ga=void 0,ha=void 0,ia=void 0,ja=void 0,ka=void 0,la=void 0,ma=void 0,na=void 0,oa=void 0,pa=void 0,qa=void 0,ra=void 0,sa=void 0,ta=void 0;return ca={initialize:b,setConfig:B,getStreamStartTime:C,getTimeToStreamEnd:d,isPlaybackStarted:e,getStreamId:f,getStreamDuration:h,getTime:r,getPlaybackRate:t,getPlayedRanges:u,getEnded:v,getIsDynamic:w,setLiveStartTime:x,getLiveStartTime:y,computeLiveDelay:z,play:j,isPaused:l,pause:n,isSeeking:p,seek:q,reset:A},a(),ca}Object.defineProperty(c,"__esModule",{value:!0});var f=a(63),g=d(f),h=a(103),i=d(h),j=a(101),k=d(j),l=a(9),m=d(l),n=a(13),o=d(n),p=a(10),q=d(p),r=a(8),s=d(r);e.__dashjs_factory_name="PlaybackController",c.default=q.default.getSingletonFactory(e),b.exports=c.default},{10:10,101:101,103:103,13:13,63:63,8:8,9:9}],69:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){wa=!0,Ra=NaN,Qa=NaN,Sa=[],xa=!1,ya=null,za=null,Aa=!0,Ba=!1,Ca=0,Ea=NaN}function c(a,b){ra=a,Ia=b,La=(0,F.default)(ga).getInstance(),Fa=(0,h.default)(ga).getInstance(),Ga=(0,n.default)(ga).getInstance(),Ha=(0,j.default)(ga).getInstance(),Ja=(0,N.default)(ga).getInstance(),Ka=Ia.getFragmentController(),Ma=Ia.getBufferController(),ta=Ka.getModel(ra),ta.setScheduleController(this),ua=Ia.isDynamic(),Pa=pa.getScheduleWhilePaused(),Na=(0,p.default)(ga).create({dashMetrics:(0,z.default)(ga).getInstance(),metricsModel:(0,v.default)(ga).getInstance(),textSourceBuffer:(0,t.default)(ga).getInstance()}),Oa=(0,r.default)(ga).create({adapter:(0,B.default)(ga).getInstance(),sourceBufferController:(0,D.default)(ga).getInstance(),textSourceBuffer:(0,t.default)(ga).getInstance()}),na.getIsTextTrack(ra)&&ia.on(J.default.TIMED_TEXT_REQUESTED,R,this),ia.on(J.default.LIVE_EDGE_SEARCH_COMPLETED,V,this),ia.on(J.default.QUALITY_CHANGE_REQUESTED,s,this),ia.on(J.default.DATA_UPDATE_STARTED,K,this),ia.on(J.default.DATA_UPDATE_COMPLETED,w,this),ia.on(J.default.FRAGMENT_LOADING_COMPLETED,C,this),ia.on(J.default.STREAM_COMPLETED,A,this),ia.on(J.default.STREAM_INITIALIZED,y,this),ia.on(J.default.BUFFER_LEVEL_STATE_CHANGED,M,this),ia.on(J.default.BUFFER_CLEARED,L,this),ia.on(J.default.BYTES_APPENDED,G,this),ia.on(J.default.INIT_REQUESTED,m,this),ia.on(J.default.QUOTA_EXCEEDED,O,this),ia.on(J.default.BUFFER_LEVEL_STATE_CHANGED,M,this),ia.on(J.default.PLAYBACK_STARTED,S,this),ia.on(J.default.PLAYBACK_SEEKING,T,this),ia.on(J.default.PLAYBACK_RATE_CHANGED,U,this),ia.on(J.default.PLAYBACK_TIME_UPDATED,E,this),ia.on(J.default.URL_RESOLUTION_FAILED,Q,this),ia.on(J.default.FRAGMENT_LOADING_ABANDONED,I,this)}function d(){sa&&(ea(),xa=!1,wa?o(va.quality):k(0),wa&&(wa=!1),ha("Schedule controller starting for "+ra))}function e(){xa||(xa=!0,clearTimeout(Da),ha("Schedule controller stopping for "+ra))}function g(){if(!(xa||Ba||!Ma||Fa.isPaused()&&!Pa)){i();var a=Sa.length>0,b=Na.execute(Ia,ra,Ja.isVideoTrackPresent());if(b||a){var c=function(){if(va.quality!==Ra)Ra=va.quality,Ma.switchInitData(Ia.getStreamInfo().id,va.quality);else{var a=Oa.execute(Ia,Sa.shift());a?ta.executeRequest(a):(Ba=!1,k(250))}};Ba=!0,a?c():Ha.getPlaybackQuality(Ia,c)}else k(500)}}function i(){var a=1.5*va.fragmentDuration,b=ta.getRequests({state:x.default.FRAGMENT_MODEL_EXECUTED,time:Fa.getTime()+a,threshold:0})[0];b&&Sa.indexOf(b)===-1&&!na.getIsTextTrack(ra)&&(!Ga.isCurrentTrack(b.mediaInfo)||pa.getFastSwitchEnabled()&&b.quality<va.quality&&Ma.getBufferLevel()>=a&&Ha.getAbandonmentStateFor(ra)!==j.default.ABANDON_LOAD?(q(b),ha("Reloading outdated fragment at index: ",b.index)):b.quality>va.quality&&X(Fa.getTime()+Ma.getBufferLevel()))}function k(a){clearTimeout(Da),Da=setTimeout(g,a)}function m(a){a.sender.getStreamProcessor()===Ia&&o(va.quality)}function o(a){Ra=a;var b=la.getInitRequest(Ia,a);b&&(Ba=!0,ta.executeRequest(b))}function q(a){Sa.push(a)}function s(a){if(ra===a.mediaType&&Ia.getStreamInfo().id===a.streamInfo.id){if(va=Ia.getRepresentationInfoForQuality(a.newQuality),null===va||void 0===va)throw new Error("Unexpected error! - currentRepresentationInfo is null or undefined");da(new Date,f.PlayListTrace.REPRESENTATION_SWITCH_STOP_REASON),ea()}}function u(a){var b=ta.getRequests({state:x.default.FRAGMENT_MODEL_EXECUTED,time:Fa.getTime(),threshold:0})[0];b&&Fa.getTime()>=b.startTime&&(b.quality!==Qa&&a&&ia.trigger(J.default.QUALITY_CHANGE_RENDERED,{mediaType:ra,oldQuality:Qa,newQuality:b.quality}),Qa=b.quality)}function w(a){a.error||a.sender.getStreamProcessor()!==Ia||(va=la.convertDataToTrack(ka.getValue(),a.currentRepresentation))}function y(a){a.error||Ia.getStreamInfo().id!==a.streamInfo.id||(va=Ia.getCurrentRepresentationInfo(),ua&&null===La.getLiveEdge()||(sa=!0),xa&&d())}function A(a){a.fragmentModel===ta&&(e(),Ba=!1,ha("Stream is complete"))}function C(a){a.sender===ta&&(na.getIsTextTrack(ra)&&(Ba=!1),a.error&&a.serviceLocation&&!xa&&q(a.request))}function E(){u(!0)}function G(a){a.sender.getStreamProcessor()===Ia&&(Ba=!1,k(0))}function I(a){a.streamProcessor===Ia&&(q(a.request),Ba=!1,k(0))}function K(a){a.sender.getStreamProcessor()===Ia&&e()}function L(a){a.sender.getStreamProcessor()===Ia&&(ta.removeExecutedRequestsBeforeTime(a.to),a.hasEnoughSpaceToAppend&&!Ma.getIsBufferingCompleted()&&xa&&d())}function M(a){a.sender.getStreamProcessor()!==Ia||a.state!==l.default.BUFFER_EMPTY||Fa.isSeeking()||(ha("Buffer is empty! Stalling!"),da(new Date,f.PlayListTrace.REBUFFERING_REASON))}function O(a){a.sender.getStreamProcessor()===Ia&&e()}function Q(){ta.abortRequests(),e()}function R(a){a.sender.getStreamProcessor()===Ia&&o(a.index)}function S(){xa&&d()}function T(a){Ea=a.seekTime,Z(0),xa&&d();var b=ma.getCurrentManifestUpdate(ja.getMetricsFor("stream")),c=va.DVRWindow?va.DVRWindow.end-Fa.getTime():NaN;ja.updateManifestUpdateInfo(b,{latency:c})}function U(a){za&&(za.playbackspeed=a.playbackRate.toString())}function V(a){if(!a.error){var b=va.mediaInfo.streamInfo.manifestInfo.DVRWindowSize/2,c=a.liveEdge-Fa.computeLiveDelay(va.fragmentDuration,b),e=ma.getCurrentManifestUpdate(ja.getMetricsFor("stream")),f=Fa.getLiveStartTime(),g=la.getFragmentRequestForTime(Ia,va,c,{ignoreIsFinished:!0});Ea=f,(isNaN(f)||g.startTime>f)&&(Fa.setLiveStartTime(g.startTime),Ea=g.startTime),ja.updateManifestUpdateInfo(e,{currentTime:Ea,presentationStartTime:a.liveEdge,latency:a.liveEdge-Ea,clientTimeOffset:oa.getClientTimeOffset()}),sa=!0,xa&&d()}}function W(){return Ea}function X(a){Ea=a}function Y(){return ta}function Z(a){Ca=a}function $(){return Ca}function _(){return Ia}function aa(){return Na.getBufferTarget(Ia,ra,Ja.isVideoTrackPresent())}function ba(a){ya=a}function ca(a,b){da(a,b),ya=null}function da(a,b){if(ya&&Aa===!1){var c=za.start,d=a.getTime()-c.getTime();za.duration=d,za.stopreason=b,ya.trace.push(za),Aa=!0}}function ea(){ya&&Aa===!0&&va&&(Aa=!1,za=new f.PlayListTrace,za.representationid=va.id,za.start=new Date,za.mstart=1e3*Fa.getTime(),za.playbackspeed=Fa.getPlaybackRate().toString())}function fa(){ia.off(J.default.LIVE_EDGE_SEARCH_COMPLETED,V,this),ia.off(J.default.DATA_UPDATE_STARTED,K,this),ia.off(J.default.DATA_UPDATE_COMPLETED,w,this),ia.off(J.default.BUFFER_LEVEL_STATE_CHANGED,M,this),ia.off(J.default.QUALITY_CHANGE_REQUESTED,s,this),ia.off(J.default.FRAGMENT_LOADING_COMPLETED,C,this),ia.off(J.default.STREAM_COMPLETED,A,this),ia.off(J.default.STREAM_INITIALIZED,y,this),ia.off(J.default.QUOTA_EXCEEDED,O,this),ia.off(J.default.BYTES_APPENDED,G,this),ia.off(J.default.BUFFER_CLEARED,L,this),ia.off(J.default.INIT_REQUESTED,m,this),ia.off(J.default.PLAYBACK_RATE_CHANGED,U,this),ia.off(J.default.PLAYBACK_SEEKING,T,this),ia.off(J.default.PLAYBACK_STARTED,S,this),ia.off(J.default.PLAYBACK_TIME_UPDATED,E,this),ia.off(J.default.URL_RESOLUTION_FAILED,Q,this),ia.off(J.default.FRAGMENT_LOADING_ABANDONED,I,this),na.getIsTextTrack(ra)&&ia.off(J.default.TIMED_TEXT_REQUESTED,R,this),e(),u(!1),Ba=!1,Ca=0,Ea=NaN,Fa=null,ya=null}var ga=this.context,ha=(0,P.default)(ga).getInstance().log,ia=(0,H.default)(ga).getInstance(),ja=a.metricsModel,ka=a.manifestModel,la=a.adapter,ma=a.dashMetrics,na=a.dashManifestModel,oa=a.timelineConverter,pa=a.mediaPlayerModel,qa=void 0,ra=void 0,sa=void 0,ta=void 0,ua=void 0,va=void 0,wa=void 0,xa=void 0,ya=void 0,za=void 0,Aa=void 0,Ba=void 0,Ca=void 0,Da=void 0,Ea=void 0,Fa=void 0,Ga=void 0,Ha=void 0,Ia=void 0,Ja=void 0,Ka=void 0,La=void 0,Ma=void 0,Na=void 0,Oa=void 0,Pa=void 0,Qa=void 0,Ra=void 0,Sa=void 0;return qa={initialize:c,getStreamProcessor:_,getSeekTarget:W,setSeekTarget:X,getFragmentModel:Y,setTimeToLoadDelay:Z,getTimeToLoadDelay:$,replaceRequest:q,start:d,stop:e,reset:fa,setPlayList:ba,getBufferTarget:aa,finalisePlayList:ca},b(),qa}Object.defineProperty(c,"__esModule",{value:!0});var f=a(181),g=a(68),h=d(g),i=a(60),j=d(i),k=a(63),l=d(k),m=a(66),n=d(m),o=a(140),p=d(o),q=a(141),r=d(q),s=a(56),t=d(s),u=a(102),v=d(u),w=a(99),x=d(w),y=a(17),z=d(y),A=a(15),B=d(A),C=a(70),D=d(C),E=a(154),F=d(E),G=a(9),H=d(G),I=a(13),J=d(I),K=a(10),L=d(K),M=a(71),N=d(M),O=a(8),P=d(O);e.__dashjs_factory_name="ScheduleController",c.default=L.default.getClassFactory(e),b.exports=c.default},{10:10,102:102,13:13,140:140,141:141,15:15,154:154,17:17,181:181,56:56,60:60,63:63,66:66,68:68,70:70,71:71,8:8,9:9,99:99}],70:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b){var c=b.codec,d=null;try{if(c.match(/application\/mp4;\s*codecs="(stpp|wvtt)"/i))throw new y.default("not really supported");d=a.addSourceBuffer(c)}catch(e){if(!b.isText&&c.indexOf('codecs="stpp"')===-1&&c.indexOf('codecs="wvtt"')===-1)throw e;d=(0,g.default)(t).getInstance(),d.setConfig({errHandler:(0,m.default)(t).getInstance(),adapter:(0,k.default)(t).getInstance(),dashManifestModel:z,mediaController:(0,i.default)(t).getInstance(),videoModel:(0,w.default)(t).getInstance(),streamController:(0,o.default)(t).getInstance(),textTracks:(0,q.default)(t).getInstance(),VTTParser:(0,s.default)(t).getInstance(),TTMLParser:(0,u.default)(t).getInstance()})}return d}function b(a,b){try{a.removeSourceBuffer(b)}catch(c){}}function c(a,b,c){var d,e,f=null,g=0,h=0,i=null,j=null,k=0,l=c||.15;try{f=a.buffered}catch(m){return null}if(null!==f&&void 0!==f){for(e=0,d=f.length;e<d;e++)if(g=f.start(e),h=f.end(e),null===i)k=Math.abs(g-b),b>=g&&b<h?(i=g,j=h):k<=l&&(i=g,j=h);else{if(k=g-j,!(k<=l))break;j=h}if(null!==i)return{start:i,end:j}}return null}function d(a){var b=null;try{return b=a.buffered}catch(c){return null}}function e(a){var b,c,e=d(a),f=0;if(!e)return f;for(c=0,b=e.length;c<b;c++)f+=e.end(c)-e.start(c);return f}function f(a,b,d){var e,f;return e=c(a,b,d),f=null===e?0:e.end-b}function h(a,b){if(!b)return null;var c,e,f,g,h,i,j,k,l,m=d(b);if(!m)return null;for(var n=0,o=m.length;n<o;n++){if(k=a.length>n,h=k?{start:a.start(n),end:a.end(n)}:null,c=m.start(n),e=m.end(n),!h)return l={start:c,end:e};if(f=h.start===c,g=h.end===e,!f||!g){if(f)l={start:h.end,end:e};else{if(!g)return l={start:c,end:e};l={start:c,end:h.start}}return i=a.length>n+1?{start:a.start(n+1),end:a.end(n+1)}:null,j=n+1<o?{start:m.start(n+1),end:m.end(n+1)}:null,!i||j&&j.start===i.start&&j.end===i.end||(l.end=i.start),l}}return null}function j(a,b){var c=b.bytes,d="append"in a?"append":"appendBuffer"in a?"appendBuffer":null,e="Object"===Object.prototype.toString.call(a).slice(8,-1);if(d)try{r(a,function(){e?a[d](c,b):a[d](c),r(a,function(){v.trigger(C.default.SOURCEBUFFER_APPEND_COMPLETED,{buffer:a,bytes:c})})})}catch(f){v.trigger(C.default.SOURCEBUFFER_APPEND_COMPLETED,{buffer:a,bytes:c,error:new y.default(f.code,f.message,null)})}}function l(a,b,c,d){try{r(a,function(){b>=0&&c>b&&"ended"!==d.readyState&&a.remove(b,c),r(a,function(){v.trigger(C.default.SOURCEBUFFER_REMOVE_COMPLETED,{buffer:a,from:b,to:c})})})}catch(e){v.trigger(C.default.SOURCEBUFFER_REMOVE_COMPLETED,{buffer:a,from:b,to:c,error:new y.default(e.code,e.message,null)})}}function n(a,b){try{"open"===a.readyState?b.abort():b.setTextTrack&&"ended"===a.readyState&&b.abort()}catch(c){}}function p(a){a&&a.dashManifestModel&&(z=a.dashManifestModel)}function r(a,b){var c,d=50,e=function(){a.updating||(clearInterval(c),b())},f=function c(){a.updating||(a.removeEventListener("updateend",c,!1),b())};if(!a.updating)return void b();if("function"==typeof a.addEventListener)try{a.addEventListener("updateend",f,!1)}catch(g){c=setInterval(e,d)}else c=setInterval(e,d)}var t=this.context,v=(0,A.default)(t).getInstance(),x=void 0,z=void 0;return x={append:j,remove:l,abort:n,createSourceBuffer:a,removeSourceBuffer:b,getBufferRange:c,getAllRanges:d,getTotalBufferedTime:e,getBufferLength:f,getRangeDifference:h,setConfig:p}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(56),g=d(f),h=a(66),i=d(h),j=a(15),k=d(j),l=a(151),m=d(l),n=a(71),o=d(n),p=a(57),q=d(p),r=a(159),s=d(r),t=a(157),u=d(t),v=a(104),w=d(v),x=a(162),y=d(x),z=a(9),A=d(z),B=a(13),C=d(B),D=a(10),E=d(D),F=22;e.__dashjs_factory_name="SourceBufferController";var G=E.default.getSingletonFactory(e);G.QUOTA_EXCEEDED_ERROR_CODE=F,c.default=G,b.exports=c.default},{10:10,104:104,13:13,15:15,151:151,157:157,159:159,162:162,56:56,57:57,66:66,71:71,9:9}],71:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){oa=null,ma=[],ya=(0,u.default)(V).getInstance(),qa=!0,ra=!1,sa=!1,za=!1,Aa=!0,Ba=null,ta=!1,ua=!1}function b(a,b){qa=a,pa=b,la.initialize(),ja=(0,B.default)(V).getInstance(),$=(0,k.default)(V).getInstance(),$.setConfig({log:W,manifestModel:aa,dashManifestModel:ba}),$.initialize(_),wa=(0,s.default)(V).getInstance(),xa=(0,g.default)(V).getInstance(),xa.setConfig({streamController:Y,timelineConverter:la,metricsModel:da,dashMetrics:ea,manifestModel:aa,dashManifestModel:ba,adapter:ca,videoModel:wa}),X.on(o.default.TIME_SYNCHRONIZATION_COMPLETED,I,this),X.on(o.default.PLAYBACK_SEEKING,n,this),X.on(o.default.PLAYBACK_TIME_UPDATED,j,this),X.on(o.default.PLAYBACK_ENDED,l,this),X.on(o.default.PLAYBACK_ERROR,h,this),X.on(o.default.PLAYBACK_STARTED,p,this),X.on(o.default.PLAYBACK_PAUSED,r,this),X.on(o.default.MANIFEST_UPDATED,J,this),X.on(o.default.STREAM_BUFFERING_COMPLETED,t,this)}function c(a,b){b=b||new Date,Ba&&(na&&na.getProcessors().forEach(function(c){var d=c.getScheduleController();d&&d.finalisePlayList(b,a)}),da.addPlayList(Ba),Ba=null)}function d(a){Ba=new x.PlayList,Ba.start=new Date,Ba.mstart=1e3*xa.getTime(),Ba.starttype=a,na&&na.getProcessors().forEach(function(a){var b=a.getScheduleController();b&&b.setPlayList(Ba)})}function e(a,b,c){X.trigger(a,{fromStreamInfo:b?b.getStreamInfo():null,toStreamInfo:c.getStreamInfo()})}function f(){na.isActivated()&&Aa&&0===na.getStreamInfo().index&&(na.startEventController(),qa&&xa.play())}function h(a){if(a.error){var b="";switch(a.error.code){case 1:b="MEDIA_ERR_ABORTED";break;case 2:b="MEDIA_ERR_NETWORK";break;case 3:b="MEDIA_ERR_DECODE";break;case 4:b="MEDIA_ERR_SRC_NOT_SUPPORTED";break;case 5:b="MEDIA_ERR_ENCRYPTED";break;default:
+b="UNKNOWN"}ta=!0,a.error.msExtendedCode&&(b+=" (0x"+(a.error.msExtendedCode>>>0).toString(16).toUpperCase()+")"),W("Video Element Error: "+b),a.error&&W(a.error),ka.mediaSourceError(b),T()}}function j(a){if(K()){var b=wa.getPlaybackQuality();b&&da.addDroppedFrames("video",b)}xa.isSeeking()||a.timeToEnd<U&&ga.signalEndOfStream(va)}function l(){var a=v();a&&C(na,a,NaN),c(a?x.PlayListTrace.END_OF_PERIOD_STOP_REASON:x.PlayListTrace.END_OF_CONTENT_STOP_REASON)}function n(a){var b=w(a.seekTime);b&&b!==na?(c(x.PlayListTrace.END_OF_PERIOD_STOP_REASON),C(na,b,a.seekTime)):c(x.PlayListTrace.USER_REQUEST_STOP_REASON),d(x.PlayList.SEEK_START_REASON)}function p(){Aa?(Aa=!1,d(x.PlayList.INITIAL_PLAYOUT_START_REASON)):za&&(za=!1,d(x.PlayList.RESUME_FROM_PAUSE_START_REASON))}function r(a){a.ended||(za=!0,c(x.PlayListTrace.USER_REQUEST_STOP_REASON))}function t(a){va&&a.streamInfo.isLast&&ga.signalEndOfStream(va)}function v(){var a=na.getStreamInfo().start,b=na.getStreamInfo().duration;return ma.filter(function(c){return c.getStreamInfo().start===a+b})[0]}function w(a){var b=0,c=null,d=ma.length;d>0&&(b+=ma[0].getStartTime());for(var e=0;e<d;e++)if(c=ma[e],b+=c.getDuration(),a<b)return c;return null}function y(a,b){for(var c=null,d=0,e=0,f=null,g=ma.length,h=0;h<g;h++){if(c=ma[h],e=c.getStartTime(),f=c.getDuration(),Number.isFinite(e)&&(d=e),c.getId()===b)return a-d;Number.isFinite(f)&&(d+=f)}return null}function A(){var a=[];return na.getProcessors().forEach(function(b){a.push(b.getIndexHandler().getEarliestTime())}),Math.min.apply(Math,a)}function C(a,b,c){function d(){isNaN(c)?!function(){var a=xa.getStreamStartTime(!0);na.getProcessors().forEach(function(b){ca.setIndexHandlerTime(b,a)}),xa.seek(a)}():xa.seek(c),xa.play(),na.startEventController(),ra=!1,e(o.default.PERIOD_SWITCH_COMPLETED,a,b)}!ra&&a&&b&&a!==b&&(ra=!0,e(o.default.PERIOD_SWITCH_STARTED,a,b),a.deactivate(),na=b,xa.initialize(na.getStreamInfo()),Ca=L(),D(d))}function D(a){function b(){W("MediaSource is open!"),window.URL.revokeObjectURL(c),va.removeEventListener("sourceopen",b),va.removeEventListener("webkitsourceopen",b),E(),na.activate(va),a&&a()}var c=void 0;va?ga.detachMediaSource(wa):va=ga.createMediaSource(),va.addEventListener("sourceopen",b,!1),va.addEventListener("webkitsourceopen",b,!1),c=ga.attachMediaSource(va,wa),W("MediaSource attached to element.  Waiting on open...")}function E(){var a,b;a=na.getStreamInfo().manifestInfo.duration,b=ga.setDuration(va,a),W("Duration successfully set to: "+b)}function F(){var a,b,c,d,f,g,h,j=aa.getValue(),k=da.getMetricsFor("stream"),l=ea.getCurrentManifestUpdate(k),m=[];if(j){g=ca.getStreamsInfo(j),oa&&(X.trigger(o.default.PROTECTION_CREATED,{controller:oa,manifest:j}),oa.setMediaElement(wa.getElement()),pa&&oa.setProtectionData(pa));try{if(0===g.length)throw new Error("There are no streams");for(da.updateManifestUpdateInfo(l,{currentTime:xa.getTime(),buffered:wa.getElement().buffered,presentationStartTime:g[0].start,clientTimeOffset:la.getClientTimeOffset()}),sa=!0,d=0,b=g.length;d<b;d++){for(a=g[d],f=0,c=ma.length;f<c;f++)ma[f].getId()===a.id&&(h=ma[f],m.push(h),h.updateData(a));h||(h=(0,i.default)(V).create({manifestModel:aa,manifestUpdater:$,adapter:ca,timelineConverter:la,capabilities:Z,errHandler:ka,baseURLController:ia}),h.initialize(a,oa),X.on(o.default.STREAM_INITIALIZED,H,this),m.push(h),na&&h.updateData(a)),da.addManifestUpdateStreamInfo(l,a.id,a.index,a.start,a.duration),h=null}ma=m,na||(na=ma[0],e(o.default.PERIOD_SWITCH_STARTED,null,na),xa.initialize(na.getStreamInfo()),e(o.default.PERIOD_SWITCH_COMPLETED,null,na)),va||D(),sa=!1,G()}catch(n){ka.manifestError(n.message,"nostreamscomposed",j),ua=!0,T()}}}function G(){if(!sa){var a=ma.length,b=0;for(f(),b;b<a;b++)if(!ma[b].isInitialized())return;X.trigger(o.default.STREAMS_COMPOSED)}}function H(){G()}function I(){F()}function J(a){if(a.error)ua=!0,T();else{var b,c,d=a.manifest,e=ca.getStreamsInfo(d)[0],f=ca.getMediaInfoForType(d,e,"video")||ca.getMediaInfoForType(d,e,"audio");f&&(b=ca.getDataForMedia(f),c=ba.getRepresentationsForAdaptation(d,b)[0].useCalculatedLiveEdgeTime,c&&(W("SegmentTimeline detected using calculated Live Edge Time"),ya.setUseManifestDateHeaderTimeSource(!1)));var g=ba.getUTCTimingSources(a.manifest),h=!ba.getIsDynamic(d)||c?g:g.concat(ya.getUTCTimingSources()),i=(0,q.default)(V).getInstance().isManifestHTTPS();h.forEach(function(a){a.value.replace(/.*?:\/\//g,"")===u.default.DEFAULT_UTC_TIMING_SOURCE.value.replace(/.*?:\/\//g,"")&&(a.value=a.value.replace(i?new RegExp(/^(http:)?\/\//i):new RegExp(/^(https:)?\/\//i),i?"https://":"http://"),W("Matching default timing source protocol to manifest protocol: ",a.value))}),ia.initialize(d),ha.setConfig({metricsModel:da,dashMetrics:ea}),ha.initialize(h,ya.getUseManifestDateHeaderTimeSource())}}function K(){return void 0===Ca&&(Ca=L()),Ca}function L(){var a=!1;return na.getProcessors().forEach(function(b){"video"===b.getMediaInfo().type&&(a=!0)}),a}function M(){return qa}function N(){return na?na.getStreamInfo():null}function O(a){return na.getId()===a.id}function P(a){return ma.filter(function(b){return b.getId()===a})[0]}function Q(a){_.load(a)}function R(a){$.setManifest(a)}function S(a){a&&(a.capabilities&&(Z=a.capabilities),a.manifestLoader&&(_=a.manifestLoader),a.manifestModel&&(aa=a.manifestModel),a.dashManifestModel&&(ba=a.dashManifestModel),a.protectionController&&(oa=a.protectionController),a.adapter&&(ca=a.adapter),a.metricsModel&&(da=a.metricsModel),a.dashMetrics&&(ea=a.dashMetrics),a.liveEdgeFinder&&(fa=a.liveEdgeFinder),a.mediaSourceController&&(ga=a.mediaSourceController),a.timeSyncController&&(ha=a.timeSyncController),a.baseURLController&&(ia=a.baseURLController),a.errHandler&&(ka=a.errHandler),a.timelineConverter&&(la=a.timelineConverter))}function T(){ha.reset(),c(ta||ua?x.PlayListTrace.FAILURE_STOP_REASON:x.PlayListTrace.USER_REQUEST_STOP_REASON);for(var a=0,b=ma.length;a<b;a++){var d=ma[a];X.off(o.default.STREAM_INITIALIZED,H,this),d.reset(ta)}ma=[],X.off(o.default.PLAYBACK_TIME_UPDATED,j,this),X.off(o.default.PLAYBACK_SEEKING,n,this),X.off(o.default.PLAYBACK_ERROR,h,this),X.off(o.default.PLAYBACK_STARTED,p,this),X.off(o.default.PLAYBACK_PAUSED,r,this),X.off(o.default.PLAYBACK_ENDED,l,this),X.off(o.default.MANIFEST_UPDATED,J,this),X.off(o.default.STREAM_BUFFERING_COMPLETED,t,this),ia.reset(),$.reset(),da.clearAllCurrentMetrics(),aa.setValue(null),_.reset(),la.reset(),fa.reset(),ca.reset(),ja.reset(),ra=!1,sa=!1,na=null,ta=!1,ua=!1,Ca=void 0,Aa=!0,za=!1,va&&(ga.detachMediaSource(wa),va=null),wa=null,oa&&(oa.setMediaElement(null),oa=null,pa=null,aa.getValue()&&X.trigger(o.default.PROTECTION_DESTROYED,{data:aa.getValue().url})),X.trigger(o.default.STREAM_TEARDOWN_COMPLETE)}var U=1,V=this.context,W=(0,z.default)(V).getInstance().log,X=(0,m.default)(V).getInstance(),Y=void 0,Z=void 0,$=void 0,_=void 0,aa=void 0,ba=void 0,ca=void 0,da=void 0,ea=void 0,fa=void 0,ga=void 0,ha=void 0,ia=void 0,ja=void 0,ka=void 0,la=void 0,ma=void 0,na=void 0,oa=void 0,pa=void 0,qa=void 0,ra=void 0,sa=void 0,ta=void 0,ua=void 0,va=void 0,wa=void 0,xa=void 0,ya=void 0,za=void 0,Aa=void 0,Ba=void 0,Ca=void 0;return Y={initialize:b,getAutoPlay:M,getActiveStreamInfo:N,isStreamActive:O,isVideoTrackPresent:K,getStreamById:P,getTimeRelativeToStreamId:y,load:Q,loadWithManifest:R,getActiveStreamCommonEarliestTime:A,setConfig:S,reset:T},a(),Y}Object.defineProperty(c,"__esModule",{value:!0});var f=a(68),g=d(f),h=a(54),i=d(h),j=a(50),k=d(j),l=a(9),m=d(l),n=a(13),o=d(n),p=a(103),q=d(p),r=a(104),s=d(r),t=a(101),u=d(t),v=a(10),w=d(v),x=a(181),y=a(8),z=d(y),A=a(152),B=d(A);e.__dashjs_factory_name="StreamController",c.default=w.default.getSingletonFactory(e),b.exports=c.default},{10:10,101:101,103:103,104:104,13:13,152:152,181:181,50:50,54:54,68:68,8:8,9:9}],72:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){s=!1,t=null,u=null,v=null,w=null,x=null,o.on(i.default.DATA_UPDATE_COMPLETED,l,this),o.on(i.default.INIT_FRAGMENT_LOADED,m,this)}function c(a,b,c){v=a,h(b),w=c,x=w.getRepresentationController()}function d(a){try{u=p.createSourceBuffer(t,a),s||(u.hasOwnProperty("initialize")&&u.initialize(v,this),s=!0)}catch(b){q.mediaSourceError("Error creating "+v+" source buffer.")}return u}function e(){return u}function f(a){u=a}function h(a){t=a}function j(){return w}function k(a){o.off(i.default.DATA_UPDATE_COMPLETED,l,this),o.off(i.default.INIT_FRAGMENT_LOADED,m,this),a||(p.abort(t,u),p.removeSourceBuffer(t,u))}function l(a){a.sender.getStreamProcessor()===w&&o.trigger(i.default.TIMED_TEXT_REQUESTED,{index:0,sender:a.sender})}function m(a){a.fragmentModel===w.getFragmentModel()&&a.chunk.bytes&&p.append(u,a.chunk)}var n=this.context,o=(0,g.default)(n).getInstance(),p=a.sourceBufferController,q=a.errHandler,r=void 0,s=void 0,t=void 0,u=void 0,v=void 0,w=void 0,x=void 0;return r={initialize:c,createBuffer:d,getBuffer:e,setBuffer:f,getStreamProcessor:j,setMediaSource:h,reset:k},b(),r}Object.defineProperty(c,"__esModule",{value:!0});var f=a(9),g=d(f),h=a(13),i=d(h),j=a(10),k=d(j);e.__dashjs_factory_name="TextController",c.default=k.default.getClassFactory(e),b.exports=c.default},{10:10,13:13,9:9}],73:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b){H=b,E=0,F=!1,G=!1,I={"urn:mpeg:dash:utc:http-head:2014":v,"urn:mpeg:dash:utc:http-xsdate:2014":u.bind(null,m),"urn:mpeg:dash:utc:http-iso:2014":u.bind(null,n),"urn:mpeg:dash:utc:direct:2014":t,"urn:mpeg:dash:utc:http-head:2012":v,"urn:mpeg:dash:utc:http-xsdate:2012":u.bind(null,m),"urn:mpeg:dash:utc:http-iso:2012":u.bind(null,n),"urn:mpeg:dash:utc:direct:2012":t,"urn:mpeg:dash:utc:http-ntp:2014":s,"urn:mpeg:dash:utc:ntp:2014":s,"urn:mpeg:dash:utc:sntp:2014":s},e()||(y(a),f(!0))}function b(a){a&&(a.metricsModel&&(J=a.metricsModel),a.dashMetrics&&(K=a.dashMetrics))}function c(){return j()}function d(a){F=a}function e(){return F}function f(a){G=a}function h(a){E=a}function j(){return E}function l(a){var b,c,d=60,e=60,f=1e3,g=/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})(?::([0-9]*)(\.[0-9]*)?)?(?:([+\-])([0-9]{2})([0-9]{2}))?/,h=g.exec(a);return b=Date.UTC(parseInt(h[1],10),parseInt(h[2],10)-1,parseInt(h[3],10),parseInt(h[4],10),parseInt(h[5],10),h[6]&&(parseInt(h[6],10)||0),h[7]&&parseFloat(h[7])*f||0),h[9]&&h[10]&&(c=parseInt(h[9],10)*e+parseInt(h[10],10),b+=("+"===h[8]?-1:1)*c*d*f),new Date(b).getTime()}function m(a){var b=Date.parse(a);return isNaN(b)&&(b=l(a)),b}function n(a){return Date.parse(a)}function r(a){return Date.parse(a)}function s(a,b,c){c()}function t(a,b,c){var d=m(a);return isNaN(d)?void c():void b(d)}function u(a,b,c,d,e){var f,g,h=!1,i=new XMLHttpRequest,j=e?"HEAD":"GET",k=b.match(/\S+/g);b=k.shift(),f=function(){h||(h=!0,k.length?u(a,k.join(" "),c,d,e):d())},g=function(){var b,d;200===i.status&&(b=e?i.getResponseHeader("Date"):i.response,d=a(b),isNaN(d)||(c(d),h=!0))},i.open(j,b),i.timeout=q||0,i.onload=g,i.onloadend=f,i.send()}function v(a,b,c){u(r,a,b,c,!0)}function w(){var a=J.getReadOnlyMetricsFor("stream"),b=K.getLatestMPDRequestHeaderValueByID(a,"Date"),c=null!==b?new Date(b).getTime():Number.NaN;isNaN(c)?x(!0):(h(c-(new Date).getTime()),x(!1,c/1e3,E))}function x(a,b,c){d(!1),C.trigger(k.default.TIME_SYNCHRONIZATION_COMPLETED,{time:b,offset:c,error:a?new g.default(p):null})}function y(a,b){var c=b||0,e=a[c],f=function(a,b){var c=!a||!b;c&&H?w():x(c,a,b)};d(!0),e?I.hasOwnProperty(e.schemeIdUri)?I[e.schemeIdUri](e.value,function(a){var b=(new Date).getTime(),c=a-b;h(c),B("Local time:      "+new Date(b)),B("Server time:     "+new Date(a)),B("Difference (ms): "+c),f(a,c)},function(){y(a,c+1)}):y(a,c+1):(h(0),f())}function z(){f(!1),d(!1)}var A=this.context,B=(0,o.default)(A).getInstance().log,C=(0,i.default)(A).getInstance(),D=void 0,E=void 0,F=void 0,G=void 0,H=void 0,I=void 0,J=void 0,K=void 0;return D={initialize:a,getOffsetToDeviceTimeMs:c,setConfig:b,reset:z}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(162),g=d(f),h=a(9),i=d(h),j=a(13),k=d(j),l=a(10),m=d(l),n=a(8),o=d(n),p=1,q=5e3;e.__dashjs_factory_name="TimeSyncController";var r=m.default.getSingletonFactory(e);r.TIME_SYNC_FAILED_ERROR_CODE=p,r.HTTP_TIMEOUT_MS=q,c.default=r,b.exports=c.default},{10:10,13:13,162:162,8:8,9:9}],74:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){A.on(k.default.XLINK_ELEMENT_LOADED,j,C),H=(0,g.default)(z).create({errHandler:a.errHandler,metricsModel:a.metricsModel,requestModifier:a.requestModifier})}function c(a){D=a}function d(a){E=a}function e(a){var b;G=new o.default(D,"",(!0)),F=a,b=m(F.Period_asArray,F,t,r),h(b,t,r)}function f(){A.off(k.default.XLINK_ELEMENT_LOADED,j,C),H&&(H.reset(),H=null)}function h(a,b,c){var d,e,f,g={};for(g.elements=a,g.type=b,g.resolveType=c,0===g.elements.length&&l(g),f=0;f<g.elements.length;f++)d=g.elements[f],e=B.isHTTPURL(d.url)?d.url:d.originalContent.BaseURL+d.url,H.load(e,d,g)}function j(a){var b,c,d,e="<response>",f="</response>",g="";b=a.element,c=a.resolveObject,b.resolvedContent&&(d=b.resolvedContent.indexOf(">")+1,g=b.resolvedContent.substr(0,d)+e+b.resolvedContent.substr(d)+f,b.resolvedContent=G.xml_str2json(g)),x(c)&&l(c)}function l(a){var b,c,d=[];if(n(a),a.resolveType===s&&A.trigger(k.default.XLINK_READY,{manifest:F}),a.resolveType===r)switch(a.type){case t:for(b=0;b<F[t+"_asArray"].length;b++)c=F[t+"_asArray"][b],c.hasOwnProperty(u+"_asArray")&&(d=d.concat(m(c[u+"_asArray"],c,u,r))),c.hasOwnProperty(v+"_asArray")&&(d=d.concat(m(c[v+"_asArray"],c,v,r)));h(d,u,r);break;case u:A.trigger(k.default.XLINK_READY,{manifest:F})}}function m(a,b,c,d){var e,f,g,h=[];for(f=a.length-1;f>=0;f--)e=a[f],e.hasOwnProperty("xlink:href")&&e["xlink:href"]===w&&a.splice(f,1);for(f=0;f<a.length;f++)e=a[f],e.hasOwnProperty("xlink:href")&&e.hasOwnProperty("xlink:actuate")&&e["xlink:actuate"]===d&&(g=p(e["xlink:href"],b,c,f,d,e),h.push(g));return h}function n(a){var b,c,d,e,f,g,h=[];for(e=a.elements.length-1;e>=0;e--){if(b=a.elements[e],c=b.type+"_asArray",!b.resolvedContent||y())delete b.originalContent["xlink:actuate"],delete b.originalContent["xlink:href"],h.push(b.originalContent);else if(b.resolvedContent)for(f=0;f<b.resolvedContent[c].length;f++)d=b.resolvedContent[c][f],h.push(d);for(b.parentElement[c].splice(b.index,1),g=0;g<h.length;g++)b.parentElement[c].splice(b.index+g,0,h[g]);h=[]}a.elements.length>0&&E.run(F)}function p(a,b,c,d,e,f){return{url:a,parentElement:b,type:c,index:d,resolveType:e,originalContent:f,resolvedContent:null,resolved:!1}}function x(a){var b,c;for(b=0;b<a.elements.length;b++)if(c=a.elements[b],c.resolved===!1)return!1;return!0}function y(){return!1}var z=this.context,A=(0,i.default)(z).getInstance(),B=(0,q.default)(z).getInstance(),C=void 0,D=void 0,E=void 0,F=void 0,G=void 0,H=void 0;return C={resolveManifestOnLoad:e,setMatchers:c,setIron:d,reset:f},b(),C}Object.defineProperty(c,"__esModule",{value:!0});var f=a(59),g=d(f),h=a(9),i=d(h),j=a(13),k=d(j),l=a(10),m=d(l),n=a(4),o=d(n),p=a(158),q=d(p),r="onLoad",s="onActuate",t="Period",u="AdaptationSet",v="EventStream",w="urn:mpeg:dash:resolve-to-zero:2013";e.__dashjs_factory_name="XlinkController",c.default=m.default.getClassFactory(e),b.exports=c.default},{10:10,13:13,158:158,4:4,59:59,9:9}],75:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){return f=(0,g.default)(d).getInstance({eventBus:a.eventBus,metricsModel:a.metricsModel}),(0,k.default)(d).create(a)}function b(){return(0,o.default)(d).getInstance()}function c(){return(0,m.default)(d).getInstance()}var d=this.context,e=void 0,f=void 0;return e={createMetricsReporting:a,getReportingFactory:b,getMetricsHandlerFactory:c}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(89),g=d(f),h=a(76),i=d(h),j=a(77),k=d(j),l=a(82),m=d(l),n=a(87),o=d(n),p=a(10),q=d(p);e.__dashjs_factory_name="MetricsReporting";var r=q.default.getClassFactory(e);r.events=i.default,c.default=r,b.exports=c.default},{10:10,76:76,77:77,82:82,87:87,89:89}],76:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(14),i=d(h),j=function(a){function b(){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),this.METRICS_INITIALISATION_COMPLETE="internal_metricsReportingInitialized",this.BECAME_REPORTING_PLAYER="internal_becameReportingPlayer"}return f(b,a),b}(i.default),k=new j;c.default=k,b.exports=c.default},{14:14}],77:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(b){if(!b.error){var c=Object.keys(e),d=(0,i.default)(f).getInstance({dashManifestModel:a.dashManifestModel}).getMetrics(b.manifest);d.forEach(function(b){var d=JSON.stringify(b);if(e.hasOwnProperty(d))c.splice(d,1);else try{var h=(0,g.default)(f).create(a);h.initialize(b),e[d]=h}catch(i){}}),c.forEach(function(a){e[a].reset(),delete e[a]}),h.trigger(m.default.METRICS_INITIALISATION_COMPLETE)}}function c(){Object.keys(e).forEach(function(a){e[a].reset()}),e={}}function d(){h.on(o.default.MANIFEST_UPDATED,b),h.on(o.default.STREAM_TEARDOWN_COMPLETE,c)}var e={},f=this.context,h=a.eventBus;return d(),{}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(78),g=d(f),h=a(91),i=d(h),j=a(10),k=d(j),l=a(76),m=d(l),n=a(13),o=d(n);e.__dashjs_factory_name="MetricsCollectionController",c.default=k.default.getClassFactory(e),b.exports=c.default},{10:10,13:13,76:76,78:78,91:91}],78:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(b){try{f=(0,i.default)(h).create({mediaElement:a.mediaElement}),f.initialize(b.Range),e=(0,k.default)(h).create({log:a.log}),e.initialize(b.Reporting,f),d=(0,m.default)(h).create({log:a.log,eventBus:a.eventBus}),d.initialize(b.metrics,e)}catch(g){throw c(),g}}function c(){d&&d.reset(),e&&e.reset(),f&&f.reset()}var d=void 0,e=void 0,f=void 0,g=void 0,h=this.context;return g={initialize:b,reset:c}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(80),i=d(h),j=a(81),k=d(j),l=a(79),m=d(l);e.__dashjs_factory_name="MetricsController",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10,79:79,80:80,81:81}],79:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a){e.forEach(function(b){b.handleNewMetric(a.metric,a.value,a.mediaType)})}function c(a,c){a.split(",").forEach(function(a,b,d){var f;if(a.indexOf("(")!==-1&&a.indexOf(")")===-1){var g=d[b+1];g&&g.indexOf("(")===-1&&g.indexOf(")")!==-1&&(a+=","+g,delete d[b+1])}f=j.create(a,c),f&&e.push(f)}),i.on(k.default.METRIC_ADDED,b,f),i.on(k.default.METRIC_UPDATED,b,f)}function d(){i.off(k.default.METRIC_ADDED,b,f),i.off(k.default.METRIC_UPDATED,b,f),e.forEach(function(a){return a.reset()}),e=[]}var e=[],f=void 0,h=this.context,i=a.eventBus,j=(0,g.default)(h).getInstance({log:a.log,eventBus:a.eventBus});return f={initialize:c,reset:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(82),g=d(f),h=a(10),i=d(h),j=a(52),k=d(j);e.__dashjs_factory_name="MetricsHandlersController",c.default=i.default.getClassFactory(e),b.exports=c.default},{10:10,52:52,82:82}],80:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a){a&&a.length&&(a.forEach(function(a){var b=a.starttime,c=b+a.duration;j.add(b,c)}),f=!!a[0]._useWallClockTime)}function c(){j.clear()}function d(){j=(0,i.default)(g).create()}function e(){var a,b=j.length;if(!b)return!0;a=f?(new Date).getTime()/1e3:k.currentTime;for(var c=0;c<b;c+=1){var d=j.start(c),e=j.end(c);if(d<=a&&a<e)return!0}return!1}var f=!1,g=this.context,h=void 0,j=void 0,k=a.mediaElement;return h={initialize:b,reset:c,isEnabled:e},d(),h}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(148),i=d(h);e.__dashjs_factory_name="RangeController",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10,148:148}],81:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a,b){a.some(function(a){var c=g.create(a,b);if(c)return e.push(c),!0})}function c(){e.forEach(function(a){return a.reset()}),e=[]}function d(a,b){e.forEach(function(c){return c.report(a,b)})}var e=[],f=void 0,g=(0,i.default)(this.context).getInstance({log:a.log});return f={initialize:b,reset:c,report:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(87),i=d(h);e.__dashjs_factory_name="ReportingController",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10,87:87}],82:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(b,c){var d,e=b.match(g);if(e){try{d=j[e[1]](h).create({eventBus:a.eventBus}),d.initialize(e[1],c,e[3],e[5])}catch(i){d=null,f("MetricsHandlerFactory: Could not create handler for type "+e[1]+" with args "+e[3]+", "+e[5]+" ("+i.message+")")}return d}}function c(a,b){j[a]=b}function d(a){delete j[a]}var e=void 0,f=a.log,g=/([a-zA-Z]*)(\(([0-9]*)(\,\s*([a-zA-Z]*))?\))?/,h=this.context,j={BufferLevel:i.default,DVBErrors:k.default,HttpList:m.default,PlayList:o.default,RepSwitchList:o.default,TcpList:o.default};return e={create:b,register:c,unregister:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(83),i=d(h),j=a(84),k=d(j),l=a(86),m=d(l),n=a(85),o=d(n);e.__dashjs_factory_name="MetricsHandlerFactory",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10,83:83,84:84,85:85,86:86}],83:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){try{return Object.keys(o).map(function(a){return o[a]}).reduce(function(a,b){return a.level<b.level?a:b})}catch(a){return}}function b(){var b=a();b&&l!==b.t&&(l=b.t,g.report(j,b))}function c(a,c,d){c&&(h=n.validateN(d),g=c,j=n.reconstructFullMetricName(a,d),k=setInterval(b,h))}function d(){clearInterval(k),k=null,h=0,g=null,l=null}function e(a,b,c){"BufferLevel"===a&&(o[c]=b)}var f=void 0,g=void 0,h=void 0,j=void 0,k=void 0,l=void 0,m=this.context,n=(0,i.default)(m).getInstance(),o=[];return f={initialize:c,reset:d,handleNewMetric:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(90),i=d(h);e.__dashjs_factory_name="BufferLevelHandler",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10,90:90}],84:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){h.off(i.default.METRICS_INITIALISATION_COMPLETE,b,this),h.trigger(i.default.BECAME_REPORTING_PLAYER)}function c(a,c){c&&(g=c,h.on(i.default.METRICS_INITIALISATION_COMPLETE,b,this))}function d(){g=null}function e(a,b){"DVBErrors"===a&&g&&g.report(a,b)}var f=void 0,g=void 0,h=a.eventBus;return f={initialize:c,reset:d,handleNewMetric:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(76),i=d(h);c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10,76:76}],85:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b){e=a,f=b}function b(){f=null,e=void 0}function c(a,b){a===e&&f&&f.report(e,b)}var d=void 0,e=void 0,f=void 0;return d={initialize:a,reset:b,handleNewMetric:c}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="GenericMetricHandler",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10}],86:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){var a=l;a.length&&f&&f.report(j,a),l=[]}function b(b,c,d,e){c&&(g=m.validateN(d),f=c,e&&e.length&&(h=e),j=m.reconstructFullMetricName(b,d,e),k=setInterval(a,g))}function c(){clearInterval(k),k=null,g=null,h=null,l=[],f=null}function d(a,b){"HttpList"===a&&(h&&h!==b.type||l.push(b))}var e=void 0,f=void 0,g=void 0,h=void 0,j=void 0,k=void 0,l=[],m=(0,i.default)(this.context).getInstance();return e={initialize:b,reset:c,handleNewMetric:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(90),i=d(h);e.__dashjs_factory_name="HttpListHandler",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10,90:90}],87:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a,b){var c;try{c=e[a.schemeIdUri](f).create(),c.initialize(a,b)}catch(d){c=null,g("ReportingFactory: could not create Reporting with schemeIdUri "+a.schemeIdUri+" ("+d.message+")")}return c}function c(a,b){e[a]=b}function d(a){delete e[a]}var e={"urn:dvb:dash:reporting:2014":i.default},f=this.context,g=a.log,h=void 0;return h={create:b,register:c,unregister:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(88),i=d(h);e.__dashjs_factory_name="ReportingFactory",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10,88:88}],88:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b,c){var d=new XMLHttpRequest,e=function(){var a=q.indexOf(d);a!==-1&&(q.splice(a,1),d.status>=200&&d.status<300?b&&b():c&&c())};q.push(d);try{d.open("GET",a),d.onloadend=e,d.onerror=e,d.send()}catch(f){d.onerror()}}function b(b,c){Array.isArray(c)||(c=[c]),l&&o.isEnabled()&&c.forEach(function(c){var d=g.serialise(c);j&&"DVBErrors"!==b&&(d="metricname="+b+"&"+d),d=n+"?"+d,a(d,null,function(){l=!1})})}function c(a,b){var c;if(o=b,n=a["dvb:reportingUrl"],!n)throw new Error("required parameter missing (dvb:reportingUrl)");m||(c=a["dvb:probability"]||a["dvb:priority"]||0,c&&(1e3===c||c/1e3>=h.random())&&(l=!0),m=!0)}function d(){p||(q.forEach(function(a){return a.abort()}),q=[]),m=!1,l=!1,n=null,o=null}var e=void 0,f=this.context,g=(0,i.default)(f).getInstance(),h=(0,k.default)(f).getInstance(),j=!0,l=!1,m=!1,n=null,o=null,p=!0,q=[];return e={report:b,initialize:c,reset:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(92),i=d(h),j=a(93),k=d(j);e.__dashjs_factory_name="DVBReporting",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10,92:92,93:93}],89:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a){var b=new g.default;if(r){for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);b.mpdurl||(b.mpdurl=r.originalUrl||r.url),b.terror||(b.terror=new Date),q.addDVBErrors(b)}}function c(a){a.error||(r=a.manifest)}function d(a){b({errorcode:g.default.BASE_URL_CHANGED,servicelocation:a.entry})}function e(){b({errorcode:g.default.BECAME_REPORTER})}function f(a){(0===a.responsecode||a.responsecode>=400||a.responsecode<100||a.responsecode>=600)&&b({errorcode:a.responsecode||g.default.CONNECTION_ERROR,url:a.url,terror:a.tresponse,servicelocation:a._serviceLocation})}function h(a){switch(a.metric){case"HttpList":f(a.value)}}function j(a){var c,d=a.error?a.error.code:0;switch(d){case MediaError.MEDIA_ERR_NETWORK:c=g.default.CONNECTION_ERROR;break;case MediaError.MEDIA_ERR_DECODE:c=g.default.CORRUPT_MEDIA_OTHER;break;default:return}b({errorcode:c})}function l(){p.on(i.default.MANIFEST_UPDATED,c,o),p.on(i.default.SERVICE_LOCATION_BLACKLIST_CHANGED,d,o),p.on(k.default.METRIC_ADDED,h,o),p.on(k.default.METRIC_UPDATED,h,o),p.on(k.default.PLAYBACK_ERROR,j,o),p.on(m.default.BECAME_REPORTING_PLAYER,e,o)}function n(){p.off(i.default.MANIFEST_UPDATED,c,o),p.off(i.default.SERVICE_LOCATION_BLACKLIST_CHANGED,d,o),p.off(k.default.METRIC_ADDED,h,o),p.off(k.default.METRIC_UPDATED,h,o),p.off(k.default.PLAYBACK_ERROR,j,o),p.off(m.default.BECAME_REPORTING_PLAYER,e,o)}var o=void 0,p=a.eventBus,q=a.metricsModel,r=void 0;return o={initialise:l,reset:n},l(),o}Object.defineProperty(c,"__esModule",{value:!0});var f=a(94),g=d(f),h=a(13),i=d(h),j=a(52),k=d(j),l=a(76),m=d(l),n=a(10),o=d(n);e.__dashjs_factory_name="DVBErrorsTranslator",c.default=o.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,52:52,76:76,94:94}],90:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){return{reconstructFullMetricName:function(a,b,c){var d=a;return b&&(d+="("+b,c&&c.length&&(d+=","+c),d+=")"),d},validateN:function(a){if(!a)throw new Error("missing n");if(isNaN(a))throw new Error("n is NaN");if(a<0)throw new Error("n must be positive");return a}}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="HandlerHelpers",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],91:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a,b,c){var d,f,g=e.getMpd(a),h=0;return b?h=g.availabilityStartTime.getTime()/1e3:(d=this.getRegularPeriods(a,g),d.length&&(h=d[0].start)),f=h,c&&c.hasOwnProperty("starttime")&&(f+=c.starttime),f}function c(a){var c=[];return a.Metrics_asArray&&a.Metrics_asArray.forEach(function(d){var f=new g.default,h=e.getIsDynamic(a);d.hasOwnProperty("metrics")&&(f.metrics=d.metrics,d.Range_asArray&&d.Range_asArray.forEach(function(c){var d=new i.default;d.starttime=b(a,h,c),c.hasOwnProperty("duration")?d.duration=c.duration:d.duration=e.getDuration(a),d._useWallClockTime=h,f.Range.push(d)}),d.Reporting_asArray&&(d.Reporting_asArray.forEach(function(a){var b=new k.default;if(a.hasOwnProperty("schemeIdUri")){b.schemeIdUri=a.schemeIdUri;for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);f.Reporting.push(b)}}),c.push(f)))}),c}var d=void 0,e=a.dashManifestModel;return d={getMetrics:c}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(95),g=d(f),h=a(96),i=d(h),j=a(97),k=d(j),l=a(10),m=d(l);e.__dashjs_factory_name="ManifestParsing",c.default=m.default.getSingletonFactory(e),b.exports=c.default},{10:10,95:95,96:96,97:97}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(b){var c,d,e=[],f=[];for(c in b)if(b.hasOwnProperty(c)&&0!==c.indexOf("_")){if(d=b[c],void 0!==d&&null!==d||(d=""),Array.isArray(d)){if(!d.length)continue;f=[],d.forEach(function(b){var c="Object"!==Object.prototype.toString.call(b).slice(8,-1);f.push(c?b:a(b))}),d=encodeURIComponent(f.join(","))}else"string"==typeof d?d=encodeURIComponent(d):d instanceof Date?d=d.toISOString():"number"==typeof d&&(d=Math.round(d));e.push(c+"="+d)}return e.join("&")}return{serialise:a}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="MetricSerialiser",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],93:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){c&&(g||(g=new d(f)),c.getRandomValues(g),h=0)}function b(b,d){var f;return b||(b=0),d||(d=1),c?(h===g.length&&a(),f=g[h]/e,h+=1):f=Math.random(),f*(d-b)+b}var c=window.crypto||window.msCrypto,d=Uint32Array,e=Math.pow(2,8*d.BYTES_PER_ELEMENT)-1,f=10,g=void 0,h=void 0,i=void 0;return i={random:b},a(),i}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="RNG",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],94:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){
+d(this,a),this.mpdurl=null,this.errorcode=null,this.terror=null,this.url=null,this.ipaddress=null,this.servicelocation=null};e.SSL_CONNECTION_FAILED_PREFIX="SSL",e.DNS_RESOLUTION_FAILED="C00",e.HOST_UNREACHABLE="C01",e.CONNECTION_REFUSED="C02",e.CONNECTION_ERROR="C03",e.CORRUPT_MEDIA_ISOBMFF="M00",e.CORRUPT_MEDIA_OTHER="M01",e.BASE_URL_CHANGED="F00",e.BECAME_REPORTER="S00",c.default=e,b.exports=c.default},{}],95:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.metrics="",this.Range=[],this.Reporting=[]};c.default=e,b.exports=c.default},{}],96:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.starttime=0,this.duration=1/0,this._useWallClockTime=!1};c.default=e,b.exports=c.default},{}],97:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.schemeIdUri="",this.value=""};c.default=e,b.exports=c.default},{}],98:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(){function a(){l=new n}function b(a,b,c){var d=p.getBaseURLsFromElement(c);a[b]?q.areSimpleEquivalent(d,a[b].data.baseUrls)||(a[b].data.baseUrls=d,a[b].data.selectedIdx=m):a[b]=new n(d)}function c(a){var c=p.getBaseURLsFromElement(a);q.areSimpleEquivalent(c,l.data.baseUrls)||(l.data.baseUrls=c,l.data.selectedIdx=m),a.Period_asArray&&a.Period_asArray.forEach(function(a,c){b(l.children,c,a),a.AdaptationSet_asArray&&a.AdaptationSet_asArray.forEach(function(a,d){b(l.children[c].children,d,a),a.Representation_asArray&&a.Representation_asArray.sort(p.getRepresentationSortFunction()).forEach(function(a,e){b(l.children[c].children[d].children,e,a)})})})}function d(a,b){var c=b||l;a(c.data),c.children&&c.children.forEach(function(b){return d(a,b)})}function e(a){d(function(b){isNaN(b.selectedIdx)||a===b.baseUrls[b.selectedIdx].serviceLocation&&(b.selectedIdx=m)})}function f(a){c(a)}function g(){l=new n}function i(a){var b=l,c=[b.data];return a.forEach(function(a){b=b.children[a],b&&c.push(b.data)}),c.filter(function(a){return a.baseUrls.length})}var k=void 0,l=void 0,o=this.context,p=(0,h.default)(o).getInstance(),q=(0,j.default)(o).getInstance();return k={reset:g,update:f,getForPath:i,invalidateSelectedIndexes:e},a(),k}Object.defineProperty(c,"__esModule",{value:!0});var g=a(22),h=d(g),i=a(155),j=d(i),k=a(10),l=d(k),m=NaN,n=function a(b,c){e(this,a),this.data={baseUrls:b||null,selectedIdx:c||m},this.children=[]};f.__dashjs_factory_name="BaseURLTreeModel",c.default=l.default.getClassFactory(f),b.exports=c.default},{10:10,155:155,22:22}],99:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){D=null,G=null,E=[],F=[],A.on(i.default.LOADING_COMPLETED,w,C)}function c(a){G=a}function d(a){D=a}function e(){return D}function f(a){var b=function(a,b){return a.action===m.default.ACTION_COMPLETE&&a.action===b.action},c=function(a,b){return!isNaN(a.index)&&a.startTime===b.startTime&&a.adaptationIndex===b.adaptationIndex},d=function(a,b){return isNaN(a.index)&&isNaN(b.index)&&a.quality===b.quality},e=function(e){var f=!1;return e.some(function(e){if(c(a,e)||d(a,e)||b(a,e))return f=!0}),f};return e(E)}function h(a){var b=a.state instanceof Array?a.state:[a.state],c=[];return b.forEach(function(b){var d=u(b);c=c.concat(t(d,a))}),c}function j(a){E=E.filter(function(b){return isNaN(b.startTime)||b.startTime>=a})}function k(){G.abort(),F=[]}function l(a){switch(a.action){case m.default.ACTION_COMPLETE:E.push(a),v(a,q),A.trigger(i.default.STREAM_COMPLETED,{request:a,fragmentModel:this});break;case m.default.ACTION_DOWNLOAD:v(a,p),F.push(a),n(a);break;default:z("Unknown request action.")}}function n(a){A.trigger(i.default.FRAGMENT_LOADING_STARTED,{sender:C,request:a}),G.load(a)}function r(a,b,c){for(var d=a.length-1,e=d;e>=0;e--){var f=a[e],g=f.startTime,h=g+f.duration;if(c=void 0!==c?c:f.duration/2,!isNaN(g)&&!isNaN(h)&&b+c>=g&&b-c<h||isNaN(g)&&isNaN(b))return f}return null}function t(a,b){return b.hasOwnProperty("time")?[r(a,b.time,b.threshold)]:a.filter(function(a){for(var c in b)if("state"!==c&&b.hasOwnProperty(c)&&a[c]!=b[c])return!1;return!0})}function u(a){var b=void 0;switch(a){case p:b=F;break;case q:b=E;break;default:b=[]}return b}function v(a,b){B.addSchedulingInfo(a.mediaType,new Date,a.type,a.startTime,a.availabilityStartTime,a.duration,a.quality,a.range,b),B.addRequestsQueue(a.mediaType,F,E)}function w(a){a.sender===G&&(F.splice(F.indexOf(a.request),1),a.response&&!a.error&&E.push(a.request),v(a.request,a.error?s:q),A.trigger(i.default.FRAGMENT_LOADING_COMPLETED,{request:a.request,response:a.response,error:a.error,sender:this}))}function x(){A.off(i.default.LOADING_COMPLETED,w,this),G&&(G.reset(),G=null),E=[],F=[]}var y=this.context,z=(0,o.default)(y).getInstance().log,A=(0,g.default)(y).getInstance(),B=a.metricsModel,C=void 0,D=void 0,E=void 0,F=void 0,G=void 0;return C={setLoader:c,setScheduleController:d,getScheduleController:e,getRequests:h,isFragmentLoaded:f,removeExecutedRequestsBeforeTime:j,abortRequests:k,executeRequest:l,reset:x},b(),C}Object.defineProperty(c,"__esModule",{value:!0});var f=a(9),g=d(f),h=a(13),i=d(h),j=a(10),k=d(j),l=a(163),m=d(l),n=a(8),o=d(n),p="loading",q="executed",r="canceled",s="failed";e.__dashjs_factory_name="FragmentModel";var t=k.default.getClassFactory(e);t.FRAGMENT_MODEL_LOADING=p,t.FRAGMENT_MODEL_EXECUTED=q,t.FRAGMENT_MODEL_CANCELED=r,t.FRAGMENT_MODEL_FAILED=s,c.default=t,b.exports=c.default},{10:10,13:13,163:163,8:8,9:9}],100:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){return f}function b(a){f=a,a&&d.trigger(i.default.MANIFEST_LOADED,{data:a})}var c=this.context,d=(0,g.default)(c).getInstance(),e=void 0,f=void 0;return e={getValue:a,setValue:b}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(9),g=d(f),h=a(13),i=d(h),j=a(10),k=d(j);e.__dashjs_factory_name="ManifestModel",c.default=k.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,9:9}],101:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function f(){function a(){var a,b;ya=[],xa=!1,wa=!0,Ba=!0,Qa=!1,Sa=!1,Ea={enabled:!0,ttl:l},Fa={enabled:!0,ttl:m},za=k,Aa=void 0,Ca=p,Da=q,Ga=NaN,Ha=t,Ia=u,Ja=v,Ka=w,La=n,Ma=o,Pa=D,Ra=E,a={},e(a,i.HTTPRequest.MPD_TYPE,z),e(a,i.HTTPRequest.XLINK_EXPANSION_TYPE,B),e(a,i.HTTPRequest.MEDIA_SEGMENT_TYPE,x),e(a,i.HTTPRequest.INIT_SEGMENT_TYPE,x),e(a,i.HTTPRequest.BITSTREAM_SWITCHING_SEGMENT_TYPE,x),e(a,i.HTTPRequest.INDEX_SEGMENT_TYPE,x),e(a,i.HTTPRequest.OTHER_TYPE,x),Na=a,b={},e(b,i.HTTPRequest.MPD_TYPE,A),e(b,i.HTTPRequest.XLINK_EXPANSION_TYPE,C),e(b,i.HTTPRequest.MEDIA_SEGMENT_TYPE,y),e(b,i.HTTPRequest.INIT_SEGMENT_TYPE,y),e(b,i.HTTPRequest.BITSTREAM_SWITCHING_SEGMENT_TYPE,y),e(b,i.HTTPRequest.INDEX_SEGMENT_TYPE,y),e(b,i.HTTPRequest.OTHER_TYPE,y),Oa=b}function b(a){Qa=a}function c(){return Qa}function d(a){La=a}function f(){return La}function g(a){Ma=a}function h(){return Ma}function j(a){Ga=a}function F(){return isNaN(Ga)?Sa?s:r:Ga}function G(a){Ha=a}function H(){return Ha}function I(a){Ia=a}function J(){return Ia}function K(a){Ja=a}function L(){return Ja}function M(a){Ka=a}function N(){return Ka}function O(a){Ca=a}function P(){return Ca}function Q(a,b){Ea.enabled=a,void 0===b||isNaN(b)||"number"!=typeof b||(Ea.ttl=b)}function R(){return Ea}function S(a,b){Fa.enabled=a,void 0===b||isNaN(b)||"number"!=typeof b||(Fa.ttl=b)}function T(){return Fa}function U(a){Da=a}function V(){return Da}function W(a){Na[i.HTTPRequest.MEDIA_SEGMENT_TYPE]=a}function X(a,b){Na[a]=b}function Y(){return Na[i.HTTPRequest.MEDIA_SEGMENT_TYPE]}function Z(a){return Na[a]}function $(a){Oa[i.HTTPRequest.MEDIA_SEGMENT_TYPE]=a}function _(a,b){Oa[a]=b}function aa(){return Oa[i.HTTPRequest.MEDIA_SEGMENT_TYPE]}function ba(a){return Oa[a]}function ca(a){Pa=a}function da(){return Pa}function ea(a){Ba=a}function fa(){return Ba}function ga(a){za=a}function ha(a){Aa=a}function ia(){return za}function ja(){return Aa}function ka(a){wa=a}function la(){return wa}function ma(a){xa=a}function na(){return xa}function oa(a){ya=a}function pa(){return ya}function qa(a){Ra=!!a}function ra(){return Ra}function sa(){return Sa}function ta(a){Sa=a}function ua(){}var va=void 0,wa=void 0,xa=void 0,ya=void 0,za=void 0,Aa=void 0,Ba=void 0,Ca=void 0,Da=void 0,Ea=void 0,Fa=void 0,Ga=void 0,Ha=void 0,Ia=void 0,Ja=void 0,Ka=void 0,La=void 0,Ma=void 0,Na=void 0,Oa=void 0,Pa=void 0,Qa=void 0,Ra=void 0,Sa=void 0;return va={setBufferOccupancyABREnabled:b,getBufferOccupancyABREnabled:c,setBandwidthSafetyFactor:d,getBandwidthSafetyFactor:f,setAbandonLoadTimeout:g,getAbandonLoadTimeout:h,setLastBitrateCachingInfo:Q,getLastBitrateCachingInfo:R,setLastMediaSettingsCachingInfo:S,getLastMediaSettingsCachingInfo:T,setStableBufferTime:j,getStableBufferTime:F,setBufferTimeAtTopQuality:G,getBufferTimeAtTopQuality:H,setBufferTimeAtTopQualityLongForm:I,getBufferTimeAtTopQualityLongForm:J,setLongFormContentDurationThreshold:K,getLongFormContentDurationThreshold:L,setRichBufferThreshold:M,getRichBufferThreshold:N,setBufferToKeep:O,getBufferToKeep:P,setBufferPruningInterval:U,getBufferPruningInterval:V,setFragmentRetryAttempts:W,getFragmentRetryAttempts:Y,setRetryAttemptsForType:X,getRetryAttemptsForType:Z,setFragmentRetryInterval:$,getFragmentRetryInterval:aa,setRetryIntervalForType:_,getRetryIntervalForType:ba,setWallclockTimeUpdateInterval:ca,getWallclockTimeUpdateInterval:da,setScheduleWhilePaused:ea,getScheduleWhilePaused:fa,getUseSuggestedPresentationDelay:na,setUseSuggestedPresentationDelay:ma,setLiveDelayFragmentCount:ga,getLiveDelayFragmentCount:ia,getLiveDelay:ja,setLiveDelay:ha,setUseManifestDateHeaderTimeSource:ka,getUseManifestDateHeaderTimeSource:la,setUTCTimingSources:oa,getUTCTimingSources:pa,setXHRWithCredentials:qa,getXHRWithCredentials:ra,setFastSwitchEnabled:ta,getFastSwitchEnabled:sa,reset:ua},a(),va}Object.defineProperty(c,"__esModule",{value:!0});var g=a(10),h=d(g),i=a(179),j={scheme:"urn:mpeg:dash:utc:http-xsdate:2014",value:"http://time.akamai.com/?iso"},k=4,l=36e4,m=36e4,n=.9,o=1e4,p=30,q=30,r=12,s=20,t=30,u=60,v=600,w=20,x=3,y=1e3,z=3,A=500,B=1,C=500,D=50,E=!1;f.__dashjs_factory_name="MediaPlayerModel";var F=h.default.getSingletonFactory(f);F.DEFAULT_UTC_TIMING_SOURCE=j,c.default=F,b.exports=c.default},{10:10,179:179}],102:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){T={}}function b(a){a&&a.adapter&&(S=a.adapter)}function c(){Q.trigger(C.default.METRICS_CHANGED)}function d(a){Q.trigger(C.default.METRIC_CHANGED,{mediaType:a}),c()}function e(a,b,c){Q.trigger(C.default.METRIC_UPDATED,{mediaType:a,metric:b,value:c}),d(a)}function f(a,b,c){Q.trigger(C.default.METRIC_ADDED,{mediaType:a,metric:b,value:c}),d(a)}function h(a){delete T[a],d(a)}function k(){T={},c()}function m(a){return T.hasOwnProperty(a)?T[a]:null}function o(a){var b;return T.hasOwnProperty(a)?b=T[a]:(b=new g.default,T[a]=b),b}function q(a,b,c,d,e,g){var h=new i.default;return h.tcpid=b,h.dest=c,h.topen=d,h.tclose=e,h.tconnect=g,o(a).TcpList.push(h),f(a,S.metricsList.TCP_CONNECTION,h),h}function s(a,b,c,d){var e=new j.HTTPRequestTrace;return e.s=b,e.d=c,e.b=d,a.trace.push(e),a.interval||(a.interval=0),a.interval+=c,e}function v(a,b,c,d,e,g,h,i,k,l,m,n,p,q){var r=new j.HTTPRequest;return e&&e!==d&&(v(a,null,c,d,null,null,h,i,null,null,null,n,null,null),r.actualurl=e),r.tcpid=b,r.type=c,r.url=d,r.range=h,r.trequest=i,r.tresponse=k,r.responsecode=m,r._tfinish=l,r._stream=a,r._mediaduration=n,r._responseHeaders=p,r._serviceLocation=g,q?q.forEach(function(a){s(r,a.s,a.d,a.b)}):(delete r.interval,delete r.trace),o(a).HttpList.push(r),f(a,S.metricsList.HTTP_REQUEST,r),r}function x(a,b,c,d,e){var g=new l.default;return g.t=b,g.mt=c,g.to=d,e?g.lto=e:delete g.lto,o(a).RepSwitchList.push(g),f(a,S.metricsList.TRACK_SWITCH,g),g}function z(a,b,c){var d=new n.default;return d.t=b,d.level=c,o(a).BufferLevel.push(d),f(a,S.metricsList.BUFFER_LEVEL,d),d}function B(a,b,c){var d=new p.default;return d.target=c,d.state=b,o(a).BufferState.push(d),f(a,S.metricsList.BUFFER_STATE,d),d}function D(a,b,c,d){var e=new r.default;return e.time=b,e.range=d,e.manifestInfo=c,o(a).DVRInfo.push(e),f(a,S.metricsList.DVR_INFO,e),e}function E(a,b){var c=new t.default,d=o(a).DroppedFrames;return c.time=b.creationTime,c.droppedFrames=b.droppedVideoFrames,d.length>0&&d[d.length-1]==c?d[d.length-1]:(d.push(c),f(a,S.metricsList.DROPPED_FRAMES,c),c)}function F(a,b,c,d,e,g,h,i,j){var k=new w.default;return k.mediaType=a,k.t=b,k.type=c,k.startTime=d,k.availabilityStartTime=e,k.duration=g,k.quality=h,k.range=i,k.state=j,o(a).SchedulingInfo.push(k),f(a,S.metricsList.SCHEDULING_INFO,k),k}function H(a,b,c){var d=new A.default;d.loadingRequests=b,d.executedRequests=c,o(a).RequestsQueue=d,f(a,S.metricsList.REQUESTS_QUEUE,d)}function I(a,b,c,d,e,g,h,i,j,k){var l=new u.ManifestUpdate,m=o("stream");return l.mediaType=a,l.type=b,l.requestTime=c,l.fetchTime=d,l.availabilityStartTime=e,l.presentationStartTime=g,l.clientTimeOffset=h,l.currentTime=i,l.buffered=j,l.latency=k,m.ManifestUpdate.push(l),f(a,S.metricsList.MANIFEST_UPDATE,l),l}function J(a,b){if(a){for(var c in b)a[c]=b[c];e(a.mediaType,S.metricsList.MANIFEST_UPDATE,a)}}function K(a,b,c,d,f){if(a){var g=new u.ManifestUpdateStreamInfo;return g.id=b,g.index=c,g.start=d,g.duration=f,a.streamInfo.push(g),e(a.mediaType,S.metricsList.MANIFEST_UPDATE_STREAM_INFO,a),g}return null}function L(a,b,c,d,f,g,h,i){if(a){var j=new u.ManifestUpdateTrackInfo;return j.id=b,j.index=c,j.streamIndex=d,j.mediaType=f,j.startNumber=h,j.fragmentInfoType=i,j.presentationTimeOffset=g,a.trackInfo.push(j),e(a.mediaType,S.metricsList.MANIFEST_UPDATE_TRACK_INFO,a),j}return null}function M(a){var b="stream";return a.trace&&Array.isArray(a.trace)?a.trace.forEach(function(a){a.hasOwnProperty("subreplevel")&&!a.subreplevel&&delete a.subreplevel}):delete a.trace,o(b).PlayList.push(a),f(b,S.metricsList.PLAY_LIST,a),a}function N(a){var b="stream";return o(b).DVBErrors.push(a),f(b,S.metricsList.DVB_ERRORS,a),a}function O(a,b){var c=new G.default;return c._s=b,o(a).BolaState=[c],f(a,"BolaState",c),c}var P=this.context,Q=(0,y.default)(P).getInstance(),R=void 0,S=void 0,T=void 0;return R={metricsChanged:c,metricChanged:d,metricUpdated:e,metricAdded:f,clearCurrentMetricsForType:h,clearAllCurrentMetrics:k,getReadOnlyMetricsFor:m,getMetricsFor:o,addTcpConnection:q,addHttpRequest:v,addRepresentationSwitch:x,addBufferLevel:z,addBufferState:B,addDVRInfo:D,addDroppedFrames:E,addSchedulingInfo:F,addRequestsQueue:H,addManifestUpdate:I,updateManifestUpdateInfo:J,addManifestUpdateStreamInfo:K,addManifestUpdateRepresentationInfo:L,addPlayList:M,addDVBErrors:N,updateBolaState:O,setConfig:b},a(),R}Object.defineProperty(c,"__esModule",{value:!0});var f=a(168),g=d(f),h=a(185),i=d(h),j=a(179),k=a(182),l=d(k),m=a(175),n=d(m),o=a(176),p=d(o),q=a(177),r=d(q),s=a(178),t=d(s),u=a(180),v=a(184),w=d(v),x=a(9),y=d(x),z=a(183),A=d(z),B=a(13),C=d(B),D=a(10),E=d(D),F=a(174),G=d(F);e.__dashjs_factory_name="MetricsModel",c.default=E.default.getSingletonFactory(e),b.exports=c.default},{10:10,13:13,168:168,174:174,175:175,176:176,177:177,178:178,179:179,180:180,182:182,183:183,184:184,185:185,9:9}],103:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){h=new g.default,i=[],j=!1}function b(){return h}function c(){return i}function d(){return j}function e(a){function b(a,b,c,d){var e=d[0].split(/[=]/);return d.push({key:e[0],value:e[1]}),d.shift(),d}function c(a,b,c){return b>0&&(l&&0===i.length?i=c[b].split(/[&]/):m&&(e=c[b].split(/[&]/))),c}if(!a)return null;var d,e=[],f=new RegExp(/[?]/),g=new RegExp(/[#]/),k=new RegExp(/^(https:)?\/\//i),l=f.test(a),m=g.test(a);return j=k.test(a),d=a.split(/[?#]/).map(c),i.length>0&&(i=i.reduce(b,null)),e.length>0&&(e=e.reduce(b,null),e.forEach(function(a){h[a.key]=a.value})),a}var f=void 0,h=void 0,i=void 0,j=void 0;return f={initialize:a,parseURI:e,getURIFragmentData:b,getURIQueryData:c,isManifestHTTPS:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(173),g=d(f),h=a(10),i=d(h);e.__dashjs_factory_name="URIQueryAndFragmentModel",c.default=i.default.getSingletonFactory(e),b.exports=c.default},{10:10,173:173}],104:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){v=[]}function b(a){!s||s.readyState<2||(s.playbackRate=a)}function c(a){if(s.currentTime!=a)try{s.currentTime=a}catch(b){0===s.readyState&&b.code===b.INVALID_STATE_ERR&&setTimeout(function(){s.currentTime=a},400)}}function d(){return s}function e(a){s=a,s.preload="auto"}function f(a){a?s.src=a:(s.removeAttribute("src"),s.load())}function g(){return s.src}function h(){return u}function i(a){u=a}function j(){return t}function k(a){t=a,t.style.position="absolute",t.style.display="flex",t.style.overflow="hidden",t.style.pointerEvents="none",t.style.top=0,t.style.left=0}function l(a,b){p(a,b)}function m(){return v.length>0}function n(a){var c=void 0;null===a||s.seeking||v.indexOf(a)!==-1||(v.push(a),1===v.length&&(c=document.createEvent("Event"),c.initEvent("waiting",!0,!1),w=s.playbackRate,b(0),s.dispatchEvent(c)))}function o(a){var c=v.indexOf(a),d=void 0;null!==a&&(c!==-1&&v.splice(c,1),m()===!1&&0===s.playbackRate&&(d=document.createEvent("Event"),d.initEvent("playing",!0,!1),b(w||1),s.dispatchEvent(d)))}function p(a,b){b?n(a):o(a)}function q(){var a="webkitDroppedFrameCount"in s,b="getVideoPlaybackQuality"in s,c=null;return b?c=s.getVideoPlaybackQuality():a&&(c={droppedVideoFrames:s.webkitDroppedFrameCount,creationTime:new Date}),c}var r=void 0,s=void 0,t=void 0,u=void 0,v=void 0,w=void 0;return r={initialize:a,setCurrentTime:c,setStallState:l,getElement:d,setElement:e,setSource:f,getSource:g,getVideoContainer:h,setVideoContainer:i,getTTMLRenderingDiv:j,setTTMLRenderingDiv:k,getPlaybackQuality:q}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="VideoModel",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],105:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),g=a(1),h=d(g),i=function(){function a(){e(this,a)}return f(a,null,[{key:"findCencContentProtection",value:function(a){for(var b=null,c=0;c<a.length;++c){var d=a[c];"urn:mpeg:dash:mp4protection:2011"===d.schemeIdUri.toLowerCase()&&"cenc"===d.value.toLowerCase()&&(b=d)}return b}},{key:"getPSSHData",value:function(a){var b=8,c=new DataView(a),d=c.getUint8(b);return b+=20,d>0&&(b+=4+16*c.getUint32(b)),b+=4,a.slice(b)}},{key:"getPSSHForKeySystem",value:function(b,c){var d=a.parsePSSHList(c);return d.hasOwnProperty(b.uuid.toLowerCase())?d[b.uuid.toLowerCase()]:null}},{key:"parseInitDataFromContentProtection",value:function(a){return"pssh"in a?h.default.decodeArray(a.pssh.__text).buffer:null}},{key:"parsePSSHList",value:function(a){if(null===a)return[];for(var b=new DataView(a),c=!1,d={},e=0;!c;){var f,g,h,i,j,k=e;if(e>=b.buffer.byteLength)break;if(f=b.getUint32(e),g=e+f,e+=4,1886614376===b.getUint32(e))if(e+=4,h=b.getUint8(e),0===h||1===h){e++,e+=3,i="";var l,m;for(l=0;l<4;l++)m=b.getUint8(e+l).toString(16),i+=1===m.length?"0"+m:m;for(e+=4,i+="-",l=0;l<2;l++)m=b.getUint8(e+l).toString(16),i+=1===m.length?"0"+m:m;for(e+=2,i+="-",l=0;l<2;l++)m=b.getUint8(e+l).toString(16),i+=1===m.length?"0"+m:m;for(e+=2,i+="-",l=0;l<2;l++)m=b.getUint8(e+l).toString(16),i+=1===m.length?"0"+m:m;for(e+=2,i+="-",l=0;l<6;l++)m=b.getUint8(e+l).toString(16),i+=1===m.length?"0"+m:m;e+=6,i=i.toLowerCase(),j=b.getUint32(e),e+=4,d[i]=b.buffer.slice(k,g),e=g}else e=g;else e=g}return d}}]),a}();c.default=i,b.exports=c.default},{1:1}],106:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){var c=null,d=(0,i.default)(e).getInstance();d.setConfig({log:a.log}),d.initialize();var f=b(a);return!c&&f&&(c=(0,g.default)(e).create({protectionModel:f,protectionKeyController:d,adapter:a.adapter,eventBus:a.eventBus,log:a.log}),a.capabilities.setEncryptedMediaSupported(!0)),c}function b(a){var b=a.log,d=a.eventBus,f=a.videoModel.getElement();return void 0!==f.onencrypted&&void 0!==f.mediaKeys&&void 0!==navigator.requestMediaKeySystemAccess&&"function"==typeof navigator.requestMediaKeySystemAccess?(b("EME detected on this user agent! (ProtectionModel_21Jan2015)"),(0,m.default)(e).create({log:b,eventBus:d})):c(f,u)?(b("EME detected on this user agent! (ProtectionModel_3Feb2014)"),(0,o.default)(e).create({log:b,eventBus:d,api:c(f,u)})):c(f,t)?(b("EME detected on this user agent! (ProtectionModel_01b)"),(0,q.default)(e).create({log:b,eventBus:d,api:c(f,t)})):(b("No supported version of EME detected on this user agent! - Attempts to play encrypted content will fail!"),null)}function c(a,b){for(var c=0;c<b.length;c++){var d=b[c];if("function"==typeof a[d[Object.keys(d)[0]]])return d}return null}var d=void 0,e=this.context;return d={createProtectionSystem:a}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(108),g=d(f),h=a(109),i=d(h),j=a(107),k=d(j),l=a(114),m=d(l),n=a(115),o=d(n),p=a(113),q=d(p),r=a(10),s=d(r),t=[{generateKeyRequest:"generateKeyRequest",addKey:"addKey",cancelKeyRequest:"cancelKeyRequest",needkey:"needkey",keyerror:"keyerror",keyadded:"keyadded",keymessage:"keymessage"},{generateKeyRequest:"webkitGenerateKeyRequest",addKey:"webkitAddKey",cancelKeyRequest:"webkitCancelKeyRequest",needkey:"webkitneedkey",keyerror:"webkitkeyerror",keyadded:"webkitkeyadded",keymessage:"webkitkeymessage"}],u=[{setMediaKeys:"setMediaKeys",MediaKeys:"MediaKeys",release:"close",needkey:"needkey",error:"keyerror",message:"keymessage",ready:"keyadded",close:"keyclose"},{setMediaKeys:"msSetMediaKeys",MediaKeys:"MSMediaKeys",release:"close",needkey:"msneedkey",error:"mskeyerror",message:"mskeymessage",ready:"mskeyadded",close:"mskeyclose"}];e.__dashjs_factory_name="Protection";var v=s.default.getClassFactory(e);v.events=k.default,c.default=v,b.exports=c.default},{10:10,107:107,108:108,109:109,113:113,114:114,115:115}],107:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(14),i=d(h),j=function(a){function b(){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),this.INTERNAL_KEY_MESSAGE="internalKeyMessage",this.INTERNAL_KEY_SYSTEM_SELECTED="internalKeySystemSelected",this.KEY_ADDED="public_keyAdded",this.KEY_ERROR="public_keyError",this.KEY_MESSAGE="public_keyMessage",this.KEY_SESSION_CLOSED="public_keySessionClosed",this.KEY_SESSION_CREATED="public_keySessionCreated",this.KEY_SESSION_REMOVED="public_keySessionRemoved",this.KEY_STATUSES_CHANGED="public_keyStatusesChanged",this.KEY_SYSTEM_ACCESS_COMPLETE="keySystemAccessComplete",this.KEY_SYSTEM_SELECTED="public_keySystemSelected",this.LICENSE_REQUEST_COMPLETE="public_licenseRequestComplete",this.NEED_KEY="needkey",this.PROTECTION_CREATED="public_protectioncreated",this.PROTECTION_DESTROYED="public_protectiondestroyed",this.SERVER_CERTIFICATE_UPDATED="serverCertificateUpdated",this.TEARDOWN_COMPLETE="protectionTeardownComplete",this.VIDEO_ELEMENT_SELECTED="videoElementSelected"}return f(b,a),b}(i.default),k=new j;c.default=k,b.exports=c.default},{14:14}],108:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){D=x.getKeySystems(),E=[],I=!1,J="temporary",K="",i.default.extend(q.default.events)}function c(a,b,c){if(!I){var d;b||c||(d=z.getStreamsInfo(a)[0]),F=b||(d?z.getMediaInfoForType(a,d,"audio"):null),G=c||(d?z.getMediaInfoForType(a,d,"video"):null);var e=G?G:F,f=x.getSupportedKeySystemsFromContentProtection(e.contentProtection);f&&f.length>0&&t(f,!0),I=!0}}function d(a){var b=g.default.getPSSHForKeySystem(L,a);if(b){for(var c=y.getAllInitData(),d=0;d<c.length;d++)if(x.initDataEquals(b,c[d]))return void B("DRM: Ignoring initData because we have already seen it!");try{y.createKeySession(b,J)}catch(e){A.trigger(i.default.KEY_SESSION_CREATED,{data:null,error:"Error creating key session! "+e.message})}}else A.trigger(i.default.KEY_SESSION_CREATED,{data:null,error:"Selected key system is "+L.systemString+".  needkey/encrypted event contains no initData corresponding to that key system!"})}function e(a){y.loadKeySession(a)}function f(a){y.removeKeySession(a)}function h(a){y.closeKeySession(a)}function j(a){y.setServerCertificate(a)}function l(a){a?(y.setMediaElement(a),A.on(i.default.NEED_KEY,w,this),A.on(i.default.INTERNAL_KEY_MESSAGE,v,this)):null===a&&(y.setMediaElement(a),A.off(i.default.NEED_KEY,w,this),A.off(i.default.INTERNAL_KEY_MESSAGE,v,this))}function n(a){J=a}function o(a){K=a}function p(a){H=a}function r(){l(null),L=void 0,y&&(y.reset(),y=null)}function s(a){var b=null,c=a.systemString;return H&&(b=c in H?H[c]:null),b}function t(a,b){var c=this,e=[],f=[];G&&f.push(new k.default(G.codec,K)),F&&e.push(new k.default(F.codec,K));var g,h=new m.default(e,f,"optional","temporary"===J?"optional":"required",[J]),j=[];if(L){for(g=0;g<a.length;g++)if(L===a[g].ks){var l=function(){j.push({ks:a[g].ks,configs:[h]});var e=function e(f){A.off(i.default.KEY_SYSTEM_ACCESS_COMPLETE,e,c),f.error?b||A.trigger(i.default.KEY_SYSTEM_SELECTED,{error:"DRM: KeySystem Access Denied! -- "+f.error}):(B("DRM: KeySystem Access Granted"),A.trigger(i.default.KEY_SYSTEM_SELECTED,{data:f.data}),d(a[g].initData))};return A.on(i.default.KEY_SYSTEM_ACCESS_COMPLETE,e,c),y.requestKeySystemAccess(j),"break"}();if("break"===l)break}}else if(void 0===L){L=null,E.push(a);for(var n=0;n<a.length;n++)j.push({ks:a[n].ks,configs:[h]});var o,p=function a(d){A.off(i.default.KEY_SYSTEM_ACCESS_COMPLETE,a,c),d.error?(L=void 0,A.off(i.default.INTERNAL_KEY_SYSTEM_SELECTED,q,c),b||A.trigger(i.default.KEY_SYSTEM_SELECTED,{data:null,error:"DRM: KeySystem Access Denied! -- "+d.error})):(o=d.data,B("DRM: KeySystem Access Granted ("+o.keySystem.systemString+")!  Selecting key system..."),y.selectKeySystem(o))},q=function a(e){if(A.off(i.default.INTERNAL_KEY_SYSTEM_SELECTED,a,c),A.off(i.default.KEY_SYSTEM_ACCESS_COMPLETE,p,c),e.error)L=void 0,b||A.trigger(i.default.KEY_SYSTEM_SELECTED,{data:null,error:"DRM: Error selecting key system! -- "+e.error});else{L=y.getKeySystem(),A.trigger(i.default.KEY_SYSTEM_SELECTED,{data:o});for(var f=0;f<E.length;f++)for(g=0;g<E[f].length;g++)if(L===E[f][g].ks){d(E[f][g].initData);break}}};A.on(i.default.INTERNAL_KEY_SYSTEM_SELECTED,q,c),A.on(i.default.KEY_SYSTEM_ACCESS_COMPLETE,p,c),y.requestKeySystemAccess(j)}else E.push(a)}function u(a,b){A.trigger(i.default.LICENSE_REQUEST_COMPLETE,{data:a,error:b})}function v(a){if(B("DRM: onKeyMessage"),a.error)return void B(a.error);var b=a.data;A.trigger(i.default.KEY_MESSAGE,{data:b});var c=b.messageType?b.messageType:"license-request",d=b.message,e=b.sessionToken,f=s(L),h=L.systemString,j=x.getLicenseServer(L,f,c),k={sessionToken:e,messageType:c};if(!j)return B("DRM: License server request not required for this message (type = "+a.data.messageType+").  Session ID = "+e.getSessionID()),void u(k);if(x.isClearKey(L)){var l=x.processClearKeyLicenseRequest(f,d);if(l)return B("DRM: ClearKey license request handled by application!"),u(k),void y.updateKeySession(e,l)}var m=new XMLHttpRequest,n=null;if(f)if(f.serverURL){var o=f.serverURL;"string"==typeof o&&""!==o?n=o:"object"==typeof o&&o.hasOwnProperty(c)&&(n=o[c])}else f.laURL&&""!==f.laURL&&(n=f.laURL);else n=L.getLicenseServerURLFromInitData(g.default.getPSSHData(e.initData)),n||(n=a.data.laURL);if(n=j.getServerURLFromMessage(n,d,c),!n)return void u(k,"DRM: No license server URL specified!");m.open(j.getHTTPMethod(c),n,!0),m.responseType=j.getResponseType(h,c),m.onload=function(){200==this.status?(u(k),y.updateKeySession(e,j.getLicenseMessage(this.response,h,c))):u(k,"DRM: "+h+' update, XHR status is "'+this.statusText+'" ('+this.status+"), expected to be 200. readyState is "+this.readyState+".  Response is "+(this.response?j.getErrorResponse(this.response,h,c):"NONE"))},m.onabort=function(){u(k,"DRM: "+h+' update, XHR aborted. status is "'+this.statusText+'" ('+this.status+"), readyState is "+this.readyState)},m.onerror=function(){u(k,"DRM: "+h+' update, XHR error. status is "'+this.statusText+'" ('+this.status+"), readyState is "+this.readyState)};var p=function(a){var b;if(a)for(b in a)"authorization"===b.toLowerCase()&&(m.withCredentials=!0),m.setRequestHeader(b,a[b])};f&&p(f.httpRequestHeaders),p(L.getRequestHeadersFromMessage(d)),f&&f.withCredentials&&(m.withCredentials=!0),m.send(L.getLicenseRequestFromMessage(d))}function w(a){if(B("DRM: onNeedKey"),"cenc"!==a.key.initDataType)return void B("DRM:  Only 'cenc' initData is supported!  Ignoring initData of type: "+a.key.initDataType);var b=a.key.initData;ArrayBuffer.isView(b)&&(b=b.buffer),B("DRM: initData:",String.fromCharCode.apply(null,new Uint8Array(b)));var c=x.getSupportedKeySystems(b,H);return 0===c.length?void B("DRM: Received needkey event with initData, but we don't support any of the key systems!"):void t(c,!1)}var x=a.protectionKeyController,y=a.protectionModel,z=a.adapter,A=a.eventBus,B=a.log,C=void 0,D=void 0,E=void 0,F=void 0,G=void 0,H=void 0,I=void 0,J=void 0,K=void 0,L=void 0;return C={initialize:c,createKeySession:d,loadKeySession:e,removeKeySession:f,closeKeySession:h,setServerCertificate:j,setMediaElement:l,setSessionType:n,setRobustnessLevel:o,setProtectionData:p,reset:r},b(),C}Object.defineProperty(c,"__esModule",{value:!0});var f=a(105),g=d(f),h=a(13),i=d(h),j=a(126),k=d(j),l=a(125),m=d(l),n=a(10),o=d(n),p=a(106),q=d(p);e.__dashjs_factory_name="ProtectionController",c.default=o.default.getClassFactory(e),b.exports=c.default},{10:10,105:105,106:106,125:125,126:126,13:13}],109:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){a&&a.log&&(t=a.log)}function b(){v=[];var a;a=(0,m.default)(p).getInstance(),v.push(a),a=(0,k.default)(p).getInstance(),v.push(a),a=(0,i.default)(p).getInstance(),v.push(a),w=a}function c(){return v}function d(a){for(var b=0;b<v.length;b++)if(v[b].systemString===a)return v[b];return null}function e(a){return a===w}function f(a,b){if(a.byteLength===b.byteLength){for(var c=new Uint8Array(a),d=new Uint8Array(b),e=0;e<c.length;e++)if(c[e]!==d[e])return!1;return!0}return!1}function h(a){
+var b,c,d,e,f=[];if(a)for(d=0;d<v.length;++d)for(c=v[d],e=0;e<a.length;++e)if(b=a[e],b.schemeIdUri.toLowerCase()===c.schemeIdURI){var g=c.getInitData(b);g&&f.push({ks:v[d],initData:g})}return f}function j(a,b){var c,d=[],e=g.default.parsePSSHList(a);for(c=0;c<v.length;++c){var f=v[c].systemString,h=!b||f in b;v[c].uuid in e&&h&&d.push({ks:v[c],initData:e[v[c].uuid]})}return d}function l(a,b,c){if("license-release"===c||"individualization-request"===c)return null;var d=null;return b&&b.hasOwnProperty("drmtoday")?d=(0,o.default)(p).getInstance():"com.widevine.alpha"===a.systemString?d=(0,s.default)(p).getInstance():"com.microsoft.playready"===a.systemString?d=(0,q.default)(p).getInstance():"org.w3.clearkey"===a.systemString&&(d=(0,u.default)(p).getInstance()),d}function n(a,b){try{return w.getClearKeysFromProtectionData(a,b)}catch(c){return t("Failed to retrieve clearkeys from ProtectionData"),null}}var p=this.context,r=void 0,t=void 0,v=void 0,w=void 0;return r={initialize:b,isClearKey:e,initDataEquals:f,getKeySystems:c,getKeySystemBySystemString:d,getSupportedKeySystemsFromContentProtection:h,getSupportedKeySystems:j,getLicenseServer:l,processClearKeyLicenseRequest:n,setConfig:a}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(105),g=d(f),h=a(110),i=d(h),j=a(112),k=d(j),l=a(111),m=d(l),n=a(117),o=d(n),p=a(118),q=d(p),r=a(119),s=d(r),t=a(116),u=d(t),v=a(10),w=d(v);e.__dashjs_factory_name="ProtectionKeyController",c.default=w.default.getSingletonFactory(e),b.exports=c.default},{10:10,105:105,110:110,111:111,112:112,116:116,117:117,118:118,119:119}],110:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b){var c=null;if(a){for(var d=JSON.parse(String.fromCharCode.apply(null,new Uint8Array(b))),e=[],f=0;f<d.kids.length;f++){var h=d.kids[f],j=a.clearkeys.hasOwnProperty(h)?a.clearkeys[h]:null;if(!j)throw new Error("DRM: ClearKey keyID ("+h+") is not known!");e.push(new g.default(h,j))}c=new i.default(e)}return c}function b(a){return k.default.parseInitDataFromContentProtection(a)}function c(){return null}function d(a){return new Uint8Array(a)}function e(){return null}var f=void 0;return f={uuid:n,schemeIdURI:p,systemString:o,getInitData:b,getRequestHeadersFromMessage:c,getLicenseRequestFromMessage:d,getLicenseServerURLFromInitData:e,getClearKeysFromProtectionData:a}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(123),g=d(f),h=a(120),i=d(h),j=a(105),k=d(j),l=a(10),m=d(l),n="1077efec-c0b2-4d02-ace3-3c1e52e2fb4b",o="org.w3.clearkey",p="urn:uuid:"+n;e.__dashjs_factory_name="KeySystemClearKey",c.default=m.default.getSingletonFactory(e),b.exports=c.default},{10:10,105:105,120:120,123:123}],111:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){var b,c,d={},e=new DOMParser,f="utf16"===h?new Uint16Array(a):new Uint8Array(a);b=String.fromCharCode.apply(null,f),c=e.parseFromString(b,"application/xml");for(var g=c.getElementsByTagName("name"),i=c.getElementsByTagName("value"),j=0;j<g.length;j++)d[g[j].childNodes[0].nodeValue]=i[j].childNodes[0].nodeValue;return d.hasOwnProperty("Content")&&(d["Content-Type"]=d.Content,delete d.Content),d}function b(a){var b,c,d=null,e=new DOMParser,f="utf16"===h?new Uint16Array(a):new Uint8Array(a);if(b=String.fromCharCode.apply(null,f),c=e.parseFromString(b,"application/xml"),c.getElementsByTagName("Challenge")[0]){var g=c.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;g&&(d=m.default.decode(g))}return d}function c(a){if(a)for(var b=new DataView(a),c=b.getUint16(4,!0),d=6,e=new DOMParser,f=0;f<c;f++){var g=b.getUint16(d,!0);d+=2;var h=b.getUint16(d,!0);if(d+=2,1===g){var i=a.slice(d,d+h),j=String.fromCharCode.apply(null,new Uint16Array(i)),k=e.parseFromString(j,"application/xml");if(k.getElementsByTagName("LA_URL")[0]){var l=k.getElementsByTagName("LA_URL")[0].childNodes[0].nodeValue;if(l)return l}if(k.getElementsByTagName("LUI_URL")[0]){var m=k.getElementsByTagName("LUI_URL")[0].childNodes[0].nodeValue;if(m)return m}}else d+=h}return null}function d(a){var b,c,d,e,f,h=new Uint8Array([112,115,115,104,0,0,0,0]),i=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]),j=0,k=null;if("pssh"in a)return g.default.parseInitDataFromContentProtection(a);if("pro"in a)k=m.default.decodeArray(a.pro.__text);else{if(!("prheader"in a))return null;k=m.default.decodeArray(a.prheader.__text)}return b=k.length,c=4+h.length+i.length+4+b,d=new ArrayBuffer(c),e=new Uint8Array(d),f=new DataView(d),f.setUint32(j,c),j+=4,e.set(h,j),j+=h.length,e.set(i,j),j+=i.length,f.setUint32(j,b),j+=4,e.set(k,j),j+=b,e.buffer}function e(a){if("utf8"!==a&&"utf16"!==a)throw new i.default("Illegal PlayReady message format! -- "+a);h=a}var f=void 0,h="utf16";return f={uuid:n,schemeIdURI:p,systemString:o,getInitData:d,getRequestHeadersFromMessage:a,getLicenseRequestFromMessage:b,getLicenseServerURLFromInitData:c,setPlayReadyMessageFormat:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(105),g=d(f),h=a(162),i=d(h),j=a(10),k=d(j),l=a(1),m=d(l),n="9a04f079-9840-4286-ab92-e65be0885f95",o="com.microsoft.playready",p="urn:uuid:"+n;e.__dashjs_factory_name="KeySystemPlayReady",c.default=k.default.getSingletonFactory(e),b.exports=c.default},{1:1,10:10,105:105,162:162}],112:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){return g.default.parseInitDataFromContentProtection(a)}function b(){return null}function c(a){return new Uint8Array(a)}function d(){return null}var e=void 0;return e={uuid:j,schemeIdURI:l,systemString:k,getInitData:a,getRequestHeadersFromMessage:b,getLicenseRequestFromMessage:c,getLicenseServerURLFromInitData:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(105),g=d(f),h=a(10),i=d(h),j="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",k="com.widevine.alpha",l="urn:uuid:"+j;e.__dashjs_factory_name="KeySystemWidevine",c.default=i.default.getSingletonFactory(e),b.exports=c.default},{10:10,105:105}],113:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){E=null,F=null,I=[],J=[],G=(0,g.default)(z).getInstance(),H=(0,u.default)(z).getInstance(),L=w()}function c(){E&&y();for(var a=0;a<J.length;a++)p(J[a]);A.trigger(s.default.TEARDOWN_COMPLETE)}function d(){return F}function e(){for(var a=[],b=0;b<I.length;b++)a.push(I[b].initData);for(var b=0;b<J.length;b++)a.push(J[b].initData);return a}function f(a){var b=E;b||(b=document.createElement("video"));for(var c=!1,d=0;d<a.length;d++)for(var e=a[d].ks.systemString,f=a[d].configs,g=null,h=null,i=0;i<f.length;i++){var j=f[i].videoCapabilities;if(j&&0!==j.length){h=[];for(var k=0;k<j.length;k++)""!==b.canPlayType(j[k].contentType,e)&&h.push(j[k])}if(!(!g&&!h||g&&0===g.length||h&&0===h.length)){c=!0;var l=new o.default(g,h),m=G.getKeySystemBySystemString(e);A.trigger(s.default.KEY_SYSTEM_ACCESS_COMPLETE,{data:new q.default(m,l)});break}}c||A.trigger(s.default.KEY_SYSTEM_ACCESS_COMPLETE,{error:"Key system access denied! -- No valid audio/video content configurations detected!"})}function h(a){F=a.keySystem,A.trigger(s.default.INTERNAL_KEY_SYSTEM_SELECTED)}function j(a){E!==a&&(E&&y(),E=a,E&&(E.addEventListener(C.keyerror,L),E.addEventListener(C.needkey,L),E.addEventListener(C.keymessage,L),E.addEventListener(C.keyadded,L),A.trigger(s.default.VIDEO_ELEMENT_SELECTED)))}function l(a){if(!F)throw new Error("Can not create sessions until you have selected a key system");if(K||0===J.length){var b={sessionID:null,initData:a,getSessionID:function(){return this.sessionID},getExpirationTime:function(){return NaN},getSessionType:function(){return"temporary"}};return I.push(b),E[C.generateKeyRequest](F.systemString,new Uint8Array(a)),b}throw new Error("Multiple sessions not allowed!")}function n(a,b){var c=a.sessionID;if(G.isClearKey(F))for(var d=0;d<b.keyPairs.length;d++)E[C.addKey](F.systemString,b.keyPairs[d].key,b.keyPairs[d].keyID,c);else E[C.addKey](F.systemString,new Uint8Array(b),a.initData,c)}function p(a){E[C.cancelKeyRequest](F.systemString,a.sessionID)}function r(){}function t(){}function v(){}function w(){return{handleEvent:function(a){var b=null;switch(a.type){case C.needkey:var c=ArrayBuffer.isView(a.initData)?a.initData.buffer:a.initData;A.trigger(s.default.NEED_KEY,{key:new i.default(c,"cenc")});break;case C.keyerror:if(b=x(J,a.sessionId),b||(b=x(I,a.sessionId)),b){var d="";switch(a.errorCode.code){case 1:d+="MEDIA_KEYERR_UNKNOWN - An unspecified error occurred. This value is used for errors that don't match any of the other codes.";break;case 2:d+="MEDIA_KEYERR_CLIENT - The Key System could not be installed or updated.";break;case 3:d+="MEDIA_KEYERR_SERVICE - The message passed into update indicated an error from the license service.";break;case 4:d+="MEDIA_KEYERR_OUTPUT - There is no available output device with the required characteristics for the content protection system.";break;case 5:d+="MEDIA_KEYERR_HARDWARECHANGE - A hardware configuration change caused a content protection error.";break;case 6:d+="MEDIA_KEYERR_DOMAIN - An error occurred in a multi-device domain licensing configuration. The most common error is a failure to join the domain."}d+="  System Code = "+a.systemCode,A.trigger(s.default.KEY_ERROR,{data:new k.default(b,d)})}else B("No session token found for key error");break;case C.keyadded:b=x(J,a.sessionId),b||(b=x(I,a.sessionId)),b?(B("DRM: Key added."),A.trigger(s.default.KEY_ADDED,{data:b})):B("No session token found for key added");break;case C.keymessage:if(K=null!==a.sessionId&&void 0!==a.sessionId,K?(b=x(J,a.sessionId),!b&&I.length>0&&(b=I.shift(),J.push(b),b.sessionID=a.sessionId)):I.length>0&&(b=I.shift(),J.push(b),0!==I.length&&H.mediaKeyMessageError("Multiple key sessions were creates with a user-agent that does not support sessionIDs!! Unpredictable behavior ahead!")),b){var e=ArrayBuffer.isView(a.message)?a.message.buffer:a.message;b.keyMessage=e,A.trigger(s.default.INTERNAL_KEY_MESSAGE,{data:new m.default(b,e,a.defaultURL)})}else B("No session token found for key message")}}}}function x(a,b){if(b&&a){for(var c=a.length,d=0;d<c;d++)if(a[d].sessionID==b)return a[d];return null}return null}function y(){E.removeEventListener(C.keyerror,L),E.removeEventListener(C.needkey,L),E.removeEventListener(C.keymessage,L),E.removeEventListener(C.keyadded,L)}var z=this.context,A=a.eventBus,B=a.log,C=a.api,D=void 0,E=void 0,F=void 0,G=void 0,H=void 0,I=void 0,J=void 0,K=void 0,L=void 0;return D={getAllInitData:e,requestKeySystemAccess:f,getKeySystem:d,selectKeySystem:h,setMediaElement:j,createKeySession:l,updateKeySession:n,closeKeySession:p,setServerCertificate:r,loadKeySession:t,removeKeySession:v,reset:c},b(),D}Object.defineProperty(c,"__esModule",{value:!0});var f=a(109),g=d(f),h=a(127),i=d(h),j=a(121),k=d(j),l=a(122),m=d(l),n=a(125),o=d(n),p=a(124),q=d(p),r=a(13),s=d(r),t=a(151),u=d(t),v=a(10),w=d(v);e.__dashjs_factory_name="ProtectionModel_01b",c.default=w.default.getClassFactory(e),b.exports=c.default},{10:10,109:109,121:121,122:122,124:124,125:125,127:127,13:13,151:151}],114:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){A=null,B=null,C=null,D=[],F=(0,g.default)(G).getInstance(),E=w()}function c(){var a,b=D.length;if(0!==b)for(var c=function(a){x(a),0===D.length&&(B?(B.removeEventListener("encrypted",E),B.setMediaKeys(null).then(function(){H.trigger(q.default.TEARDOWN_COMPLETE)})):H.trigger(q.default.TEARDOWN_COMPLETE))},d=0;d<b;d++)a=D[d],function(b){a.session.closed.then(function(){c(b)}),v(a).catch(function(){c(b)})}(a);else H.trigger(q.default.TEARDOWN_COMPLETE)}function d(){return A}function e(){for(var a=[],b=0;b<D.length;b++)a.push(D[b].initData);return a}function f(a){u(a,0)}function h(a){a.mksa.createMediaKeys().then(function(b){A=a.keySystem,C=b,B&&B.setMediaKeys(C),H.trigger(q.default.INTERNAL_KEY_SYSTEM_SELECTED)}).catch(function(){H.trigger(q.default.INTERNAL_KEY_SYSTEM_SELECTED,{error:"Error selecting keys system ("+a.keySystem.systemString+")! Could not create MediaKeys -- TODO"})})}function j(a){B!==a&&(B&&(B.removeEventListener("encrypted",E),B.setMediaKeys(null)),B=a,B&&(B.addEventListener("encrypted",E),C&&B.setMediaKeys(C)))}function l(a){if(!A||!C)throw new Error("Can not set server certificate until you have selected a key system");C.setServerCertificate(a).then(function(){I("DRM: License server certificate successfully updated."),H.trigger(q.default.SERVER_CERTIFICATE_UPDATED)}).catch(function(a){H.trigger(q.default.SERVER_CERTIFICATE_UPDATED,{error:"Error updating server certificate -- "+a.name})})}function n(a,b){if(!A||!C)throw new Error("Can not create sessions until you have selected a key system");var c=C.createSession(b),d=y(c,a,b);c.generateRequest("cenc",a).then(function(){I("DRM: Session created.  SessionID = "+d.getSessionID()),H.trigger(q.default.KEY_SESSION_CREATED,{data:d})}).catch(function(a){x(d),H.trigger(q.default.KEY_SESSION_CREATED,{data:null,error:"Error generating key request -- "+a.name})})}function p(a,b){var c=a.session;F.isClearKey(A)&&(b=b.toJWK()),c.update(b).catch(function(b){H.trigger(q.default.KEY_ERROR,{data:new k.default(a,"Error sending update() message! "+b.name)})})}function r(a){if(!A||!C)throw new Error("Can not load sessions until you have selected a key system");var b=C.createSession();b.load(a).then(function(c){if(c){var d=y(b);I("DRM: Session created.  SessionID = "+d.getSessionID()),H.trigger(q.default.KEY_SESSION_CREATED,{data:d})}else H.trigger(q.default.KEY_SESSION_CREATED,{data:null,error:"Could not load session! Invalid Session ID ("+a+")"})}).catch(function(b){H.trigger(q.default.KEY_SESSION_CREATED,{data:null,error:"Could not load session ("+a+")! "+b.name})})}function s(a){var b=a.session;b.remove().then(function(){I("DRM: Session removed.  SessionID = "+a.getSessionID()),H.trigger(q.default.KEY_SESSION_REMOVED,{data:a.getSessionID()})},function(b){H.trigger(q.default.KEY_SESSION_REMOVED,{data:null,error:"Error removing session ("+a.getSessionID()+"). "+b.name})})}function t(a){v(a).catch(function(b){x(a),H.trigger(q.default.KEY_SESSION_CLOSED,{data:null,error:"Error closing session ("+a.getSessionID()+") "+b.name})})}function u(a,b){!function(b){var c=a[b].ks,d=a[b].configs;navigator.requestMediaKeySystemAccess(c.systemString,d).then(function(a){var b="function"==typeof a.getConfiguration?a.getConfiguration():null,d=new o.default(c,b);d.mksa=a,H.trigger(q.default.KEY_SYSTEM_ACCESS_COMPLETE,{data:d})}).catch(function(){++b<a.length?u(a,b):H.trigger(q.default.KEY_SYSTEM_ACCESS_COMPLETE,{error:"Key system access denied!"})})}(b)}function v(a){var b=a.session;return b.removeEventListener("keystatuseschange",a),b.removeEventListener("message",a),b.close()}function w(){return{handleEvent:function(a){switch(a.type){case"encrypted":if(a.initData){var b=ArrayBuffer.isView(a.initData)?a.initData.buffer:a.initData;H.trigger(q.default.NEED_KEY,{key:new i.default(b,a.initDataType)})}}}}}function x(a){for(var b=0;b<D.length;b++)if(D[b]===a){D.splice(b,1);break}}function y(a,b,c){var d={session:a,initData:b,handleEvent:function(a){switch(a.type){case"keystatuseschange":H.trigger(q.default.KEY_STATUSES_CHANGED,{data:this});break;case"message":var b=ArrayBuffer.isView(a.message)?a.message.buffer:a.message;H.trigger(q.default.INTERNAL_KEY_MESSAGE,{data:new m.default(this,b,(void 0),a.messageType)})}},getSessionID:function(){return a.sessionId},getExpirationTime:function(){return a.expiration},getKeyStatuses:function(){return a.keyStatuses},getSessionType:function(){return c}};return a.addEventListener("keystatuseschange",d),a.addEventListener("message",d),a.closed.then(function(){x(d),I("DRM: Session closed.  SessionID = "+d.getSessionID()),H.trigger(q.default.KEY_SESSION_CLOSED,{data:d.getSessionID()})}),D.push(d),d}var z,A,B,C,D,E,F,G=this.context,H=a.eventBus,I=a.log;return z={getAllInitData:e,requestKeySystemAccess:f,getKeySystem:d,selectKeySystem:h,setMediaElement:j,setServerCertificate:l,createKeySession:n,updateKeySession:p,loadKeySession:r,removeKeySession:s,closeKeySession:t,reset:c},b(),z}Object.defineProperty(c,"__esModule",{value:!0});var f=a(109),g=d(f),h=a(127),i=d(h),j=a(121),k=d(j),l=a(122),m=d(l),n=a(124),o=d(n),p=a(13),q=d(p),r=a(10),s=d(r);e.__dashjs_factory_name="ProtectionModel_21Jan2015",c.default=s.default.getClassFactory(e),b.exports=c.default},{10:10,109:109,121:121,122:122,124:124,127:127,13:13}],115:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){D=null,E=null,F=null,G=null,H=[],J=(0,g.default)(y).getInstance(),I=v()}function c(){try{for(var a=0;a<H.length;a++)p(H[a]);D&&D.removeEventListener(B.needkey,I),z.trigger(s.default.TEARDOWN_COMPLETE)}catch(b){z.trigger(s.default.TEARDOWN_COMPLETE,{error:"Error tearing down key sessions and MediaKeys! -- "+b.message})}}function d(){return E}function e(){for(var a=[],b=0;b<H.length;b++)a.push(H[b].initData);return a}function f(a){for(var b=!1,c=0;c<a.length;c++)for(var d=a[c].ks.systemString,e=a[c].configs,f=null,g=null,h=0;h<e.length;h++){var i=e[h].audioCapabilities,j=e[h].videoCapabilities;if(i&&0!==i.length){f=[];for(var k=0;k<i.length;k++)window[B.MediaKeys].isTypeSupported(d,i[k].contentType)&&f.push(i[k])}if(j&&0!==j.length){g=[];for(var l=0;l<j.length;l++)window[B.MediaKeys].isTypeSupported(d,j[l].contentType)&&g.push(j[l])}if(!(!f&&!g||f&&0===f.length||g&&0===g.length)){b=!0;var m=new o.default(f,g),n=J.getKeySystemBySystemString(d);z.trigger(s.default.KEY_SYSTEM_ACCESS_COMPLETE,{data:new q.default(n,m)});break}}b||z.trigger(s.default.KEY_SYSTEM_ACCESS_COMPLETE,{error:"Key system access denied! -- No valid audio/video content configurations detected!"})}function h(a){try{F=a.mediaKeys=new window[B.MediaKeys](a.keySystem.systemString),E=a.keySystem,G=a,D&&w(),z.trigger(s.default.INTERNAL_KEY_SYSTEM_SELECTED)}catch(b){z.trigger(s.default.INTERNAL_KEY_SYSTEM_SELECTED,{error:"Error selecting keys system ("+E.systemString+")! Could not create MediaKeys -- TODO"})}}function j(a){D!==a&&(D&&D.removeEventListener(B.needkey,I),D=a,D&&(D.addEventListener(B.needkey,I),F&&w()))}function l(a){if(!E||!F||!G)throw new Error("Can not create sessions until you have selected a key system");var b=null;if(null!==G.ksConfiguration.videoCapabilities&&G.ksConfiguration.videoCapabilities.length>0&&(b=G.ksConfiguration.videoCapabilities[0]),null===b&&null!==G.ksConfiguration.audioCapabilities&&G.ksConfiguration.audioCapabilities.length>0&&(b=G.ksConfiguration.audioCapabilities[0]),null===b)throw new Error("Can not create sessions for unknown content types.");var c=b.contentType,d=F.createSession(c,new Uint8Array(a)),e=x(d,a);d.addEventListener(B.error,e),d.addEventListener(B.message,e),d.addEventListener(B.ready,e),d.addEventListener(B.close,e),H.push(e),A("DRM: Session created.  SessionID = "+e.getSessionID()),z.trigger(s.default.KEY_SESSION_CREATED,{data:e})}function n(a,b){var c=a.session;J.isClearKey(E)?c.update(new Uint8Array(b.toJWK())):c.update(new Uint8Array(b))}function p(a){var b=a.session;b.removeEventListener(B.error,a),b.removeEventListener(B.message,a),b.removeEventListener(B.ready,a),b.removeEventListener(B.close,a);for(var c=0;c<H.length;c++)if(H[c]===a){H.splice(c,1);break}b[B.release]()}function r(){}function t(){}function u(){}function v(){return{handleEvent:function(a){switch(a.type){case B.needkey:if(a.initData){var b=ArrayBuffer.isView(a.initData)?a.initData.buffer:a.initData;z.trigger(s.default.NEED_KEY,{key:new i.default(b,"cenc")})}}}}}function w(){var a=null,b=function(){D.removeEventListener("loadedmetadata",a),D[B.setMediaKeys](F),z.trigger(s.default.VIDEO_ELEMENT_SELECTED)};D.readyState>=1?b():(a=b.bind(this),D.addEventListener("loadedmetadata",a))}function x(a,b){return{session:a,initData:b,getSessionID:function(){return this.session.sessionId},getExpirationTime:function(){return NaN},getSessionType:function(){return"temporary"},handleEvent:function(a){switch(a.type){case B.error:var b="KeyError";z.trigger(s.default.KEY_ERROR,{data:new k.default(this,b)});break;case B.message:var c=ArrayBuffer.isView(a.message)?a.message.buffer:a.message;z.trigger(s.default.INTERNAL_KEY_MESSAGE,{data:new m.default(this,c,a.destinationURL)});break;case B.ready:A("DRM: Key added."),z.trigger(s.default.KEY_ADDED);break;case B.close:A("DRM: Session closed.  SessionID = "+this.getSessionID()),z.trigger(s.default.KEY_SESSION_CLOSED,{data:this.getSessionID()})}}}}var y=this.context,z=a.eventBus,A=a.log,B=a.api,C=void 0,D=void 0,E=void 0,F=void 0,G=void 0,H=void 0,I=void 0,J=void 0;return C={getAllInitData:e,requestKeySystemAccess:f,getKeySystem:d,selectKeySystem:h,setMediaElement:j,createKeySession:l,updateKeySession:n,closeKeySession:p,setServerCertificate:r,loadKeySession:t,removeKeySession:u,reset:c},b(),C}Object.defineProperty(c,"__esModule",{value:!0});var f=a(109),g=d(f),h=a(127),i=d(h),j=a(121),k=d(j),l=a(122),m=d(l),n=a(125),o=d(n),p=a(124),q=d(p),r=a(13),s=d(r),t=a(10),u=d(t);e.__dashjs_factory_name="ProtectionModel_3Feb2014",c.default=u.default.getClassFactory(e),b.exports=c.default},{10:10,109:109,121:121,122:122,124:124,125:125,127:127,13:13}],116:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b){var c=JSON.parse(String.fromCharCode.apply(null,new Uint8Array(b)));a+="/?";for(var d=0;d<c.kids.length;d++)a+=c.kids[d]+"&";return a=a.substring(0,a.length-1)}function b(){return"GET"}function c(){return"json"}function d(a){if(!a.hasOwnProperty("keys"))return null;for(var b=[],c=0;c<a.keys.length;c++){var d=a.keys[c],e=d.kid.replace(/=/g,""),f=d.k.replace(/=/g,"");b.push(new g.default(e,f))}return new i.default(b)}function e(a){return String.fromCharCode.apply(null,new Uint8Array(a))}var f=void 0;return f={getServerURLFromMessage:a,getHTTPMethod:b,getResponseType:c,getLicenseMessage:d,getErrorResponse:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(123),g=d(f),h=a(120),i=d(h),j=a(10),k=d(j);e.__dashjs_factory_name="ClearKey",c.default=k.default.getSingletonFactory(e),b.exports=c.default},{10:10,120:120,123:123}],117:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){return a}function b(){return"POST"}function c(a){return f[a].responseType}function d(a,b){return f[b].getLicenseMessage(a)}function e(a,b){return f[b].getErrorResponse(a)}var f={"com.widevine.alpha":{responseType:"json",getLicenseMessage:function(a){return i.default.decodeArray(a.license)},getErrorResponse:function(a){return a}},"com.microsoft.playready":{responseType:"arraybuffer",getLicenseMessage:function(a){return a},getErrorResponse:function(a){return String.fromCharCode.apply(null,new Uint8Array(a))}}},g=void 0;return g={getServerURLFromMessage:a,getHTTPMethod:b,getResponseType:c,getLicenseMessage:d,getErrorResponse:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(1),i=d(h);e.__dashjs_factory_name="DRMToday",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{1:1,10:10}],118:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){return a}function b(){return"POST"}function c(){return"arraybuffer"}function d(a){return a}function e(a){return String.fromCharCode.apply(null,new Uint8Array(a))}var f=void 0;return f={getServerURLFromMessage:a,getHTTPMethod:b,getResponseType:c,getLicenseMessage:d,getErrorResponse:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="PlayReady",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],119:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){return a}function b(){return"POST"}function c(){return"arraybuffer"}function d(a){return a}function e(a){return String.fromCharCode.apply(null,new Uint8Array(a))}var f=void 0;return f={getServerURLFromMessage:a,getHTTPMethod:b,getResponseType:c,getLicenseMessage:d,getErrorResponse:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="Widevine",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],120:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(){function a(b,c){if(d(this,a),c&&"persistent"!==c&&"temporary"!==c)throw new Error("Invalid ClearKey key set type!  Must be one of 'persistent' or 'temporary'");this.keyPairs=b,this.type=c}return e(a,[{key:"toJWK",value:function(){var a,b=this.keyPairs.length,c={keys:[]};for(a=0;a<b;a++){var d={kty:"oct",alg:"A128KW",kid:this.keyPairs[a].keyID,k:this.keyPairs[a].key};c.keys.push(d)}this.type&&(c.type=this.type);var e=JSON.stringify(c),f=e.length,g=new ArrayBuffer(f),h=new Uint8Array(g);for(a=0;a<f;a++)h[a]=e.charCodeAt(a);return g}}]),a}();c.default=f,b.exports=c.default},{}],121:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(b,c){d(this,a),this.sessionToken=b,this.error=c};c.default=e,b.exports=c.default},{}],122:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(b,c,e,f){d(this,a),this.sessionToken=b,this.message=c,this.defaultURL=e,this.messageType=f?f:"license-request"};c.default=e,b.exports=c.default},{}],123:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(b,c){d(this,a),this.keyID=b,this.key=c};c.default=e,b.exports=c.default},{}],124:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(b,c){d(this,a),this.keySystem=b,this.ksConfiguration=c};c.default=e,b.exports=c.default},{}],125:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(b,c,e,f,g){d(this,a),this.initDataTypes=["cenc"],this.audioCapabilities=b,this.videoCapabilities=c,this.distinctiveIdentifier=e,this.persistentState=f,this.sessionTypes=g};c.default=e,b.exports=c.default},{}],126:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(b,c){d(this,a),this.contentType=b,this.robustness=c};c.default=e,b.exports=c.default},{}],127:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(b,c){d(this,a),this.initData=b,this.initDataType=c};c.default=e,b.exports=c.default},{}],128:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){return i.mediaInfo.streamInfo}function c(){return i.mediaInfo}function d(){return i}function e(){return k}function f(){return i.mediaInfo.streamInfo.manifestInfo}function g(){return j}var h=void 0,i=a.streamProcessor.getCurrentRepresentationInfo(),j=a.streamProcessor,k=a.currentValue;return h={getStreamInfo:b,getMediaInfo:c,getTrackInfo:d,getCurrentValue:e,getManifestInfo:f,getStreamProcessor:g}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="RulesContext",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10}],129:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){j={}}function b(a){a&&(a.abrRulesCollection&&(j[p]=a.abrRulesCollection),a.synchronizationRulesCollection&&(j[q]=a.synchronizationRulesCollection))}function c(a,b,c,d,f){var g,h,j={},k={},l=a.length,m=l,n=e(b,d),o=function(a){var b,e,g;if(a.value!==i.default.NO_CHANGE){var h=f(j[a.priority],a.value);h!==j[a.priority]&&(j[a.priority]=h,k[a.priority]=a.reason)}--l||(j[i.default.WEAK]!==i.default.NO_CHANGE&&(g=i.default.WEAK,b=j[i.default.WEAK],e=k[i.default.WEAK]),j[i.default.DEFAULT]!==i.default.NO_CHANGE&&(g=i.default.DEFAULT,b=j[i.default.DEFAULT],e=k[i.default.DEFAULT]),j[i.default.STRONG]!==i.default.NO_CHANGE&&(g=i.default.STRONG,b=j[i.default.STRONG],e=k[i.default.STRONG]),g!=i.default.STRONG&&g!=i.default.WEAK&&(g=i.default.DEFAULT),c(void 0!==b?{value:b,confidence:g,reason:e}:{value:d,confidence:g,reason:{name:"NO_CHANGE"}}))};for(j[i.default.STRONG]=i.default.NO_CHANGE,j[i.default.WEAK]=i.default.NO_CHANGE,j[i.default.DEFAULT]=i.default.NO_CHANGE,h=0;h<m;h++)g=a[h],g.execute(n,o)}function d(){var a,b,c=j[p],d=j[q],e=(c.getRules(k.default.QUALITY_SWITCH_RULES)||[]).concat(c.getRules(k.default.ABANDON_FRAGMENT_RULES)||[]).concat(d.getRules(m.default.TIME_SYNCHRONIZED_RULES)||[]).concat(d.getRules(m.default.BEST_GUESS_RULES)||[]),f=e.length;for(b=0;b<f;b++)a=e[b],"function"==typeof a.reset&&a.reset();j={}}function e(a,b){return(0,g.default)(f).create({streamProcessor:a,currentValue:b})}var f=this.context,h=void 0,j=void 0;return h={initialize:a,setConfig:b,applyRules:c,reset:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(128),g=d(f),h=a(130),i=d(h),j=a(131),k=d(j),l=a(144),m=d(l),n=a(10),o=d(n),p=0,q=1;e.__dashjs_factory_name="RulesController";var r=o.default.getSingletonFactory(e);r.ABR_RULE=p,r.SYNC_RULE=q,c.default=r,b.exports=c.default},{10:10,128:128,130:130,131:131,144:144}],130:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b,c){var d=void 0===a?h:a,e=void 0===b?i:b,f=void 0===c?null:c,g={value:d,priority:e,reason:f};return g}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=999,i=.5,j=1,k=0;e.__dashjs_factory_name="SwitchRequest";var l=g.default.getClassFactory(e);l.NO_CHANGE=h,l.DEFAULT=i,l.STRONG=j,l.WEAK=k,c.default=l,b.exports=c.default},{10:10}],131:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){e=[],f=[];var a=(0,u.default)(c).getInstance(),b=(0,w.default)(c).getInstance(),d=(0,s.default)(c).getInstance();d.getBufferOccupancyABREnabled()?(e.push((0,o.default)(c).create({metricsModel:a,dashMetrics:(0,w.default)(c).getInstance()})),f.push((0,q.default)(c).create({metricsModel:a,dashMetrics:(0,w.default)(c).getInstance()}))):(e.push((0,g.default)(c).create({metricsModel:a,dashMetrics:b})),e.push((0,i.default)(c).create({metricsModel:a,dashMetrics:b})),e.push((0,k.default)(c).create({metricsModel:a})),f.push((0,m.default)(c).create()))}function b(a){switch(a){case z:return e;case A:return f;default:return null}}var c=this.context,d=void 0,e=void 0,f=void 0;return d={initialize:a,getRules:b}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(137),g=d(f),h=a(135),i=d(h),j=a(136),k=d(j),l=a(132),m=d(l),n=a(134),o=d(n),p=a(133),q=d(p),r=a(101),s=d(r),t=a(102),u=d(t),v=a(17),w=d(v),x=a(10),y=d(x),z="qualitySwitchRules",A="abandonFragmentRules";e.__dashjs_factory_name="ABRRulesCollection";var B=y.default.getSingletonFactory(e);B.QUALITY_SWITCH_RULES=z,B.ABANDON_FRAGMENT_RULES=A,c.default=B,b.exports=c.default},{10:10,101:101,102:102,132:132,133:133,134:134,135:135,136:136,137:137,17:17}],132:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){o={},p={},q=[],r=(0,i.default)(l).getInstance();
+}function b(a,b){o[a]=o[a]||{},o[a][b]=o[a][b]||{}}function c(a,b){q[a]=q[a]||[],q[a].push(b)}function d(a,d){var f=a.getMediaInfo(),i=f.type,m=a.getCurrentValue().request,s=(0,g.default)(l).create(g.default.NO_CHANGE,g.default.WEAK,{name:e.__dashjs_factory_name});if(!isNaN(m.index)){b(i,m.index);var t=o[i][m.index];if(null===t||null===m.firstByteDate||p.hasOwnProperty(t.id))return void d(s);if(void 0===t.firstByteTime&&(q[i]=[],t.firstByteTime=m.firstByteDate.getTime(),t.segmentDuration=m.duration,t.bytesTotal=m.bytesTotal,t.id=m.index),t.bytesLoaded=m.bytesLoaded,t.elapsedTime=(new Date).getTime()-t.firstByteTime,t.bytesLoaded>0&&t.elapsedTime>0&&c(i,Math.round(8*t.bytesLoaded/t.elapsedTime)),q[i].length>=k&&t.elapsedTime>j&&t.bytesLoaded<t.bytesTotal){var u=q[i].reduce(function(a,b){return a+b},0);if(t.measuredBandwidthInKbps=Math.round(u/q[i].length),t.estimatedTimeOfDownload=(8*t.bytesTotal/t.measuredBandwidthInKbps/1e3).toFixed(2),t.estimatedTimeOfDownload<t.segmentDuration*h||0===a.getTrackInfo().quality)return void d(s);if(!p.hasOwnProperty(t.id)){var v=a.getStreamProcessor().getABRController(),w=t.bytesTotal-t.bytesLoaded,x=v.getBitrateList(f),y=v.getQualityForBitrate(f,t.measuredBandwidthInKbps*r.getBandwidthSafetyFactor()),z=t.bytesTotal*x[y].bitrate/x[v.getQualityFor(i,f.streamInfo)].bitrate;w>z&&(s.value=y,s.priority=g.default.STRONG,s.reason.throughput=t.measuredBandwidthInKbps,p[t.id]=t,n("AbandonRequestsRule ( ",i,"frag id",t.id,") is asking to abandon and switch to quality to ",y," measured bandwidth was",t.measuredBandwidthInKbps),delete o[i][t.id])}}else t.bytesLoaded===t.bytesTotal&&delete o[i][t.id]}d(s)}function f(){a()}var h=1.8,j=500,k=5,l=this.context,n=(0,m.default)(l).getInstance().log,o=void 0,p=void 0,q=void 0,r=void 0,s={execute:d,reset:f};return a(),s}Object.defineProperty(c,"__esModule",{value:!0});var f=a(130),g=d(f),h=a(101),i=d(h),j=a(10),k=d(j),l=a(8),m=d(l);e.__dashjs_factory_name="AbandonRequestsRule",c.default=k.default.getClassFactory(e),b.exports=c.default},{10:10,101:101,130:130,8:8}],133:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){s={},t=(0,i.default)(l).getInstance()}function c(a,b,c){s[a]={index:b,quality:c}}function d(a,b,c){var d=s[a];return!d||(b!==d.index||c<d.quality)}function f(a,b){var f=a.getMediaInfo(),h=f.type,i=q.getReadOnlyMetricsFor(h),m=a.getCurrentValue(),r=m.request,t=(0,g.default)(l).create(g.default.NO_CHANGE,g.default.WEAK,{name:e.__dashjs_factory_name});if(0===i.BolaState.length)return n("WARNING: executing BolaAbandonRule before initializing BolaRule"),s[h]=null,void b(t);var u=i.BolaState[0]._s,v=r.index,w=r.quality;if(isNaN(v)||0===w||!d(h,v,w)||!r.firstByteDate)return void b(t);var x=Date.now(),y=x-r.firstByteDate.getTime(),z=r.bytesLoaded,A=r.bytesTotal,B=A-z,C=r.duration,D=p.getCurrentBufferLevel(i)?p.getCurrentBufferLevel(i):0,E=D+u.virtualBuffer,F=8*z/(.001*y),G=u.bandwidthSafetyFactor*F,H=.001*(r.firstByteDate.getTime()-r.requestStartDate.getTime());H<.001*k&&(H=.001*k);var I=H+8*A/G,J="";o.default.BOLA_DEBUG&&(J="index="+v+" quality="+w+" bytesLoaded/bytesTotal="+z+"/"+A+" bufferLevel="+D+" timeSince1stByte="+(y/1e3).toFixed(3)+" estThroughput="+(G/1e6).toFixed(3)+" latency="+H.toFixed(3));var K=A*u.bitrates[0]/u.bitrates[w],L=B-H*G/8;if(L<1&&(L=1),y<j||B<=K||D>u.bufferTarget||L<=K||I<=C)return void b(t);var M=E-H;M<0&&(M=0);for(var N=0;N+1<w&&A*u.bitrates[N+1]/u.bitrates[w]<L;)++N;var O=w;if(u.state===o.default.BOLA_STATE_STARTUP){O=0;for(var P=0;P<=N&&(K=A*u.bitrates[P]/u.bitrates[w],!(8*K/C>G));++P)O=P}else for(var Q=(u.Vp*(u.utilities[w]+u.gp)-M)/L,P=0;P<=N;++P){K=A*u.bitrates[P]/u.bitrates[w];var R=(u.Vp*(u.utilities[P]+u.gp)-M)/K;R>Q&&(O=P,Q=R)}var S=u.rebufferSafetyFactor*F*(D-H)/8;if(O===w&&L>S&&(O=N),O===w)return void b(t);for(;O>0&&(K=A*u.bitrates[O]/u.bitrates[w],!(K<=S));)--O;u.lastQuality=O,q.updateBolaState(h,u),o.default.BOLA_DEBUG&&n("BolaDebug "+h+" BolaAbandonRule abandon to "+O+" - "+J),c(h,v,w),t.value=O,t.priority=g.default.STRONG,t.reason.state=u.state,t.reason.throughput=F,t.reason.bufferLevel=D,t.reason.bytesLoaded=r.bytesLoaded,t.reason.bytesTotal=r.bytesTotal,t.reason.elapsedTimeMs=y,b(t)}function h(){s={}}var j=500,k=200,l=this.context,n=(0,m.default)(l).getInstance().log,p=a.dashMetrics,q=a.metricsModel,r=void 0,s=void 0,t=void 0;return r={execute:f,reset:h},b(),r}Object.defineProperty(c,"__esModule",{value:!0});var f=a(130),g=d(f),h=a(101),i=d(h),j=a(10),k=d(j),l=a(8),m=d(l),n=a(134),o=d(n);e.__dashjs_factory_name="BolaAbandonRule",c.default=k.default.getClassFactory(e),b.exports=c.default},{10:10,101:101,130:130,134:134,8:8}],134:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){N={},O=[],P=(0,k.default)(H).getInstance(),Q=(0,m.default)(H).getInstance(),R=(0,p.default)(H).getInstance(),L.on(t.default.BUFFER_EMPTY,q,M),L.on(t.default.PLAYBACK_SEEKING,s,M),L.on(t.default.PERIOD_SWITCH_STARTED,u,M)}function c(a){return a.map(function(a){return Math.log(a)})}function d(a,b,d,e){var f=NaN;if(e?(f=0,e.forEach(function(a,b){a>e[f]&&(f=b)})):(e=c(d),f=e.length-1),0===f)return null;var g=1-e[0]+(e[f]-e[0])/(b/a-1),h=a/(e[0]+g-1);return{utilities:e,gp:g,Vp:h}}function f(a){var b={},c=a.getMediaInfo(),e=a.getStreamProcessor(),f=a.getStreamInfo(),g=a.getTrackInfo(),h=e.isDynamic(),i=f.manifestInfo.duration,j=g.fragmentDuration,k=c.bitrateList.map(function(a){return a.bandwidth}),l=d(A,B,k,null);if(null===l)return b.state=w,b;if(b.state=x,b.bitrates=k,b.utilities=l.utilities,b.Vp=l.Vp,b.gp=l.gp,b.isDynamic=h,b.movieDuration=i,b.fragmentDuration=j,b.bandwidthSafetyFactor=P.getBandwidthSafetyFactor(),b.rebufferSafetyFactor=C,b.bufferTarget=P.getStableBufferTime(),b.lastQuality=0,b.virtualBuffer=0,b.throughputCount=h?F:G,z){for(var m="",n=0;n<k.length;++n){var o=l.utilities[n],p=k[n],q=0;if(n>0){var r=l.utilities[n-1],s=k[n-1];q=l.Vp*((r*p-o*s)/(p-s)+l.gp)}var t=l.Vp*(o+l.gp);m+="\n"+n+":"+(1e-6*k[n]).toFixed(3)+"Mbps "+q.toFixed(3)+"/"+t.toFixed(3)}I("BolaDebug "+c.type+" bitrates"+m)}return b}function h(a,b){for(var c=a.bitrates.length,d=NaN,e=NaN,f=0;f<c;++f){var g=(a.Vp*(a.utilities[f]+a.gp)-b)/a.bitrates[f];(isNaN(e)||g>=e)&&(e=g,d=f)}return d}function i(a,b){for(var c=J.getHttpRequests(a),d=[],e=c.length-1;e>=0&&d.length<b;--e){var f=c[e];f.type===n.HTTPRequest.MEDIA_SEGMENT_TYPE&&f._tfinish&&f.tresponse&&f.trace&&d.push(f)}return d}function j(a,b,c){var d=i(a,b);if(0===d.length)return 0;for(var e=0,f="",g=0;g<d.length;++g){var h=.001*(d[g]._tfinish.getTime()-d[g].trequest.getTime()),j=8*d[g].trace.reduce(function(a,b){return a+b.b[0]},0);z&&(f+=" "+(1e-6*j).toFixed(3)+"/"+h.toFixed(3)+"="+(1e-6*j/h).toFixed(3)+"Mbps"),e+=h/j}return z&&I("BolaDebug "+c+" BolaRule recent throughput = "+(d.length/(1e6*e)).toFixed(3)+"Mbps:"+f),d.length/e}function l(a,b){var c=0;return a.bitrates.some(function(a,d){return a>b||(c=d,!1)}),c}function o(a,b){var c=i(a,1);if(0===c.length)return 0;var d=c[0],e=Date.now(),f=d._tfinish.getTime();f>e&&(f=e);var g=N[b];N[b]=e;var h=0;return h=g&&g>f?e-g:e-f,h<=0?0:.001*h}function q(){z&&I("BolaDebug BUFFER_EMPTY"),O.forEach(function(a){var b=K.getReadOnlyMetricsFor(a);if(0!==b.BolaState.length){var c=b.BolaState[0]._s;c.state===y&&(c.virtualBuffer=0,K.updateBolaState(a,c))}})}function s(a){z&&I("BolaDebug PLAYBACK_SEEKING "+a.seekTime.toFixed(3)),O.forEach(function(a){var b=K.getReadOnlyMetricsFor(a);if(0!==b.BolaState.length){var c=b.BolaState[0]._s;c.state!==w&&(c.state=x),K.updateBolaState(a,c)}})}function u(){}function D(a,b){var c=a.getStreamProcessor();c.getScheduleController().setTimeToLoadDelay(0);var d=(0,g.default)(H).create(g.default.NO_CHANGE,g.default.WEAK,{name:e.__dashjs_factory_name}),i=a.getMediaInfo(),k=i.type,m=K.getReadOnlyMetricsFor(k);if(0===m.BolaState.length){z&&I("BolaDebug "+k+"\nBolaDebug "+k+" BolaRule for state=- fragmentStart="+R.getIndexHandlerTime(a.getStreamProcessor()).toFixed(3));var n=f(a);K.updateBolaState(k,n);var p=0;if(n.state!==w){O.push(k);var q=j(m,n.throughputCount,k);if(0===q)return z&&I("BolaDebug "+k+" BolaRule quality unchanged for INITIALIZE"),void b(d);p=l(n,q*n.bandwidthSafetyFactor),n.lastQuality=p,d.value=p,d.priority=g.default.DEFAULT,d.reason.state=n.state,d.reason.throughput=q}return z&&I("BolaDebug "+k+" BolaRule quality "+p+" for INITIALIZE"),void b(d)}var r=m.BolaState[0]._s;if(r.state===w)return z&&I("BolaDebug "+k+" BolaRule quality 0 for ONE_BITRATE"),void b(d);var s=r.bitrates,t=r.utilities;z&&I("BolaDebug "+k+"\nBolaDebug "+k+" EXECUTE BolaRule for state="+r.state+" fragmentStart="+R.getIndexHandlerTime(a.getStreamProcessor()).toFixed(3));var u=J.getCurrentBufferLevel(m)?J.getCurrentBufferLevel(m):0,v=j(m,r.throughputCount,k);u<=.1&&(r.virtualBuffer=0);var A=o(m,k);A>0&&(r.virtualBuffer+=A),r.virtualBuffer<0&&(r.virtualBuffer=0);var B=u+r.virtualBuffer,D=h(r,B);if(z&&I("BolaDebug "+k+" BolaRule bufferLevel="+u.toFixed(3)+"(+"+r.virtualBuffer.toFixed(3)+"="+B.toFixed(3)+") recentThroughput="+(1e-6*v).toFixed(3)+" tentativeQuality="+D),r.state===x){var p=l(r,v*r.bandwidthSafetyFactor);if(u>r.fragmentDuration/C){r.state=y;for(var E=0,F=0;F<p;++F){var G=r.Vp*(r.gp+(s[p]*t[F]-s[F]*t[p])/(s[p]-s[F]));G>E&&(E=G)}E>u&&(r.virtualBuffer=E-u)}return z&&I("BolaDebug "+k+" BolaRule quality "+p+" for STARTUP"),r.lastQuality=p,K.updateBolaState(k,r),d.value=p,d.priority=g.default.DEFAULT,d.reason.state=x,d.reason.throughput=v,void b(d)}if(D>r.lastQuality){var p=l(r,v);D>p&&(p<r.lastQuality&&(p=r.lastQuality),D=p)}if(v>0)for(var L=C*v*u/r.fragmentDuration;D>0&&s[D]>L;)--D;var M=0,N=r.Vp*(t[D]+r.gp);M=B-N,M>0&&(M>r.virtualBuffer?(M-=r.virtualBuffer,r.virtualBuffer=0):(r.virtualBuffer-=M,M=0)),M>0?D===s.length-1?M=0:c.getScheduleController().setTimeToLoadDelay(1e3*M):M=0,r.lastQuality=D,K.updateBolaState(k,r),d.value=D,d.priority=g.default.DEFAULT,d.reason.state=r.state,d.reason.throughput=v,d.reason.bufferLevel=u,z&&I("BolaDebug "+k+" BolaRule quality "+D+" delay="+M.toFixed(3)+" for STEADY"),b(d)}function E(){L.off(t.default.BUFFER_EMPTY,q,M),L.off(t.default.PLAYBACK_SEEKING,s,M),L.off(t.default.PERIOD_SWITCH_STARTED,u,M),b()}var F=2,G=3,H=this.context,I=(0,v.default)(H).getInstance().log,J=a.dashMetrics,K=a.metricsModel,L=(0,r.default)(H).getInstance(),M=void 0,N=void 0,O=void 0,P=void 0,Q=void 0,R=void 0;return M={execute:D,reset:E},b(),M}Object.defineProperty(c,"__esModule",{value:!0});var f=a(130),g=d(f),h=a(10),i=d(h),j=a(101),k=d(j),l=a(68),m=d(l),n=a(179),o=a(15),p=d(o),q=a(9),r=d(q),s=a(13),t=d(s),u=a(8),v=d(u),w=0,x=1,y=2,z=!1,A=10,B=30,C=.5;e.__dashjs_factory_name="BolaRule";var D=i.default.getClassFactory(e);D.BOLA_STATE_ONE_BITRATE=w,D.BOLA_STATE_STARTUP=x,D.BOLA_STATE_STEADY=y,D.BOLA_DEBUG=z,c.default=D,b.exports=c.default},{10:10,101:101,13:13,130:130,15:15,179:179,68:68,8:8,9:9}],135:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){n=0,p=(0,i.default)(h).getInstance()}function c(a,b){var c=(new Date).getTime()/1e3,d=a.getMediaInfo(),f=a.getTrackInfo(),i=d.type,o=isNaN(f.fragmentDuration)?2:f.fragmentDuration/2,q=a.getCurrentValue(),r=a.getStreamProcessor(),s=r.getABRController(),t=l.getReadOnlyMetricsFor(i),u=m.getCurrentBufferLevel(t),v=t.BufferState.length>0?t.BufferState[t.BufferState.length-1]:null,w=!1,x=d.representationCount-1,y=(0,g.default)(h).create(g.default.NO_CHANGE,g.default.WEAK,{name:e.__dashjs_factory_name});return c-n<o||s.getAbandonmentStateFor(i)===k.default.ABANDON_LOAD?void b(y):(null!==v&&u>v.target&&(w=u-v.target>p.getRichBufferThreshold(),w&&d.representationCount>1&&(y.value=x,y.priority=g.default.STRONG,y.reason.bufferLevel=u,y.reason.bufferTarget=v.target)),y.value!==g.default.NO_CHANGE&&y.value!==q&&j("BufferOccupancyRule requesting switch to index: ",y.value,"type: ",i," Priority: ",y.priority===g.default.DEFAULT?"Default":y.priority===g.default.STRONG?"Strong":"Weak"),void b(y))}function d(){n=0}var f=void 0,h=this.context,j=(0,o.default)(h).getInstance().log,l=a.metricsModel,m=a.dashMetrics,n=void 0,p=void 0;return f={execute:c,reset:d},b(),f}Object.defineProperty(c,"__esModule",{value:!0});var f=a(130),g=d(f),h=a(101),i=d(h),j=a(60),k=d(j),l=a(10),m=d(l),n=a(8),o=d(n);e.__dashjs_factory_name="BufferOccupancyRule",c.default=m.default.getClassFactory(e),b.exports=c.default},{10:10,101:101,130:130,60:60,8:8}],136:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){r={},s=0,t=1e3,n.on(m.default.PLAYBACK_SEEKING,f,p)}function c(a,b){var c=(new Date).getTime(),f=a.getMediaInfo().type,h=a.getCurrentValue(),k=o.getReadOnlyMetricsFor(f),m=k.BufferState.length>0?k.BufferState[k.BufferState.length-1]:null,n=(0,g.default)(j).create(g.default.NO_CHANGE,g.default.WEAK,{name:e.__dashjs_factory_name});return c-s<t||null===m?void b(n):(d(f,m.state),m.state===i.default.BUFFER_EMPTY&&void 0!==r[f].firstBufferLoadedEvent&&(n.value=0,n.priority=g.default.STRONG,n.reason.bufferState=m.state,n=(0,g.default)(j).create(0,g.default.STRONG)),n.value!==g.default.NO_CHANGE&&n.value!==h&&l("InsufficientBufferRule requesting switch to index: ",n.value,"type: ",f," Priority: ",n.priority===g.default.DEFAULT?"Default":n.priority===g.default.STRONG?"Strong":"Weak"),s=c,void b(n))}function d(a,b){r[a]=r[a]||{},r[a].state=b,b!==i.default.BUFFER_LOADED||r[a].firstBufferLoadedEvent||(r[a].firstBufferLoadedEvent=!0)}function f(){r={}}function h(){n.off(m.default.PLAYBACK_SEEKING,f,p),r={},s=0}var j=this.context,l=(0,q.default)(j).getInstance().log,n=(0,k.default)(j).getInstance(),o=a.metricsModel,p=void 0,r=void 0,s=void 0,t=void 0;return p={execute:c,reset:h},b(),p}Object.defineProperty(c,"__esModule",{value:!0});var f=a(130),g=d(f),h=a(63),i=d(h),j=a(9),k=d(j),l=a(13),m=d(l),n=a(10),o=d(n),p=a(8),q=d(p);e.__dashjs_factory_name="InsufficientBufferRule",c.default=o.default.getClassFactory(e),b.exports=c.default},{10:10,13:13,130:130,63:63,8:8,9:9}],137:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){z=[],A={audio:{threshold:s,value:NaN},video:{threshold:q,value:NaN}},B=(0,m.default)(v).getInstance()}function c(a,b){z[a]=z[a]||[],z[a].push(b)}function d(a,b){var c=Math.min(z[a].length,b?o:p),d=z[a].slice(c*-1,z[a].length);return d.length>1&&d.reduce(function(a,b){return(a*u<=b||a>=b*t)&&c++,b}),c=Math.min(z[a].length,c),z[a].slice(c*-1,z[a].length)}function f(a,b){var c=d(a,b),e=0;if(c.length>0){var f=c.reduce(function(a,b){return a+b},0);e=f/c.length}return z[a].length>=l&&z[a].shift(),e/1e3*B.getBandwidthSafetyFactor()}function h(a,b){var d=a.getMediaInfo(),h=d.type,j=a.getCurrentValue(),l=y.getReadOnlyMetricsFor(h),m=a.getStreamProcessor(),o=m.getABRController(),p=m.isDynamic(),q=x.getCurrentHttpRequest(l),r=l.BufferState.length>0?l.BufferState[l.BufferState.length-1]:null,s=(0,g.default)(v).create(g.default.NO_CHANGE,g.default.WEAK,{name:e.__dashjs_factory_name});if(!l||!q||q.type!==n.HTTPRequest.MEDIA_SEGMENT_TYPE||!r)return void b(s);var t=void 0;if(q.trace&&q.trace.length){t=q._tfinish.getTime()-q.tresponse.getTime()+1;var u=q.trace.reduce(function(a,b){return a+b.b[0]},0),z=Math.round(8*u/(t/1e3));t<=A[h].threshold?A[h].value=z/1e3:(A[h].value=NaN,c(h,z))}var B=Math.round(isNaN(A[h].value)?f(h,p):A[h].value);if(o.setAverageThroughput(h,B),o.getAbandonmentStateFor(h)!==k.default.ABANDON_LOAD){if(r.state===i.default.BUFFER_LOADED||p){var C=o.getQualityForBitrate(d,B);m.getScheduleController().setTimeToLoadDelay(0),s.value=C,s.priority=g.default.DEFAULT,s.reason.throughput=B}s.value!==g.default.NO_CHANGE&&s.value!==j&&w("ThroughputRule requesting switch to index: ",s.value,"type: ",h," Priority: ",s.priority===g.default.DEFAULT?"Default":s.priority===g.default.STRONG?"Strong":"Weak","Average throughput",Math.round(B),"kbps")}b(s)}function j(){b()}var l=20,o=3,p=4,q=50,s=5,t=1.3,u=1.3,v=this.context,w=(0,r.default)(v).getInstance().log,x=a.dashMetrics,y=a.metricsModel,z=void 0,A=void 0,B=void 0,C={execute:h,reset:j};return b(),C}Object.defineProperty(c,"__esModule",{value:!0});var f=a(130),g=d(f),h=a(63),i=d(h),j=a(60),k=d(j),l=a(101),m=d(l),n=a(179),o=a(10),p=d(o),q=a(8),r=d(q);e.__dashjs_factory_name="ThroughputRule",c.default=p.default.getClassFactory(e),b.exports=c.default},{10:10,101:101,130:130,179:179,60:60,63:63,8:8}],138:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a){var b,c=0;return a&&a.some(function(a,b){return c=b,!d.contains(a.serviceLocation)})&&(b=a[c]),b}var c=void 0,d=a.blacklistController;return c={select:b}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="BasicSelector",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10}],139:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a){var b=[],c=function(a){return!b.length||!a.dvb_priority||b.indexOf(a.dvb_priority)===-1},d=function(a){return!f.contains(a.serviceLocation)||(a.dvb_priority&&b.push(a.dvb_priority),!1)};return a.filter(d).filter(c)}function c(a){var b,c,d=function(a,b){var c=a.dvb_priority-b.dvb_priority;return isNaN(c)?0:c},e=function(a,b,c){return!b||c[0].dvb_priority&&a.dvb_priority&&c[0].dvb_priority===a.dvb_priority},f=0,g=[],h=0;if(c=a.sort(d).filter(e),c.length)return c.length>1&&(c.forEach(function(a){f+=a.dvb_weight,g.push(f)}),b=Math.floor(Math.random()*(f-1)),g.every(function(a,c){return h=c,!(b<a)})),c[h]}function d(a){return a&&c(b(a))}var e=void 0,f=a.blacklistController;return e={select:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="DVBSelector",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10}],140:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){k=(0,g.default)(e).getInstance(),l=(0,i.default)(e).getInstance()}function c(a,b,c){var e=f.getCurrentBufferLevel(h.getReadOnlyMetricsFor(b));return e<d(a,b,c)}function d(a,b,c){var d=NaN,e=a.getCurrentRepresentationInfo();if("fragmentedText"===b)d=j.getAllTracksAreDisabled()?0:e.fragmentDuration;else if("audio"===b&&c){var g=f.getCurrentBufferLevel(h.getReadOnlyMetricsFor("video"));d=Math.floor(Math.max(g,e.fragmentDuration))}else{var i=e.mediaInfo.streamInfo,l=a.getABRController();if(l.isPlayingAtTopQuality(i)){var m=i.manifestInfo.duration>=k.getLongFormContentDurationThreshold();d=m?k.getBufferTimeAtTopQualityLongForm():k.getBufferTimeAtTopQuality()}else d=k.getStableBufferTime()}return d}var e=this.context,f=a.dashMetrics,h=a.metricsModel,j=a.textSourceBuffer,k=void 0,l=void 0,m={execute:c,getBufferTarget:d};return b(),m}Object.defineProperty(c,"__esModule",{value:!0});var f=a(101),g=d(f),h=a(68),i=d(h),j=a(10),k=d(j);e.__dashjs_factory_name="BufferLevelRule",c.default=k.default.getClassFactory(e),b.exports=c.default},{10:10,101:101,68:68}],141:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a,b){var c=a.getCurrentRepresentationInfo(),g=c.mediaInfo,i=g.type,j=a.getScheduleController(),k=j.getSeekTarget(),l=!isNaN(k),m=a.getBuffer(),n=l?k:e.getIndexHandlerTime(a);if(isNaN(n)||"fragmentedText"===i&&h.getAllTracksAreDisabled())return null;if(l&&j.setSeekTarget(NaN),m){var o=f.getBufferRange(a.getBuffer(),n);null!==o&&(d("Prior to making a request for time, NextFragmentRequestRule is aligning index handler's currentTime with bufferedRange.end.",n," was changed to ",o.end),n=o.end)}var p=void 0;return b?(n=b.startTime+b.duration/2,p=e.getFragmentRequestForTime(a,c,n,{timeThreshold:0,ignoreIsFinished:!0})):(p=e.getFragmentRequestForTime(a,c,n,{keepIdx:!l}),p&&a.getFragmentModel().isFragmentLoaded(p)&&(p=e.getNextFragmentRequest(a,c)),p&&(e.setIndexHandlerTime(a,p.startTime+p.duration),p.delayLoadingTime=(new Date).getTime()+j.getTimeToLoadDelay(),j.setTimeToLoadDelay(0))),p}var c=this.context,d=(0,g.default)(c).getInstance().log,e=a.adapter,f=a.sourceBufferController,h=a.textSourceBuffer,i={execute:b};return i}Object.defineProperty(c,"__esModule",{value:!0});var f=a(8),g=d(f),h=a(10),i=d(h);e.__dashjs_factory_name="NextFragmentRequestRule",c.default=i.default.getClassFactory(e),b.exports=c.default},{10:10,8:8}],142:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){r=NaN,s=null,t=NaN,u=null,v=!1,w=NaN,x=g.default.DEFAULT}function c(a,b){var c,d;if(y=b,A=a.getStreamProcessor(),z=A.getFragmentLoader(),u=a.getTrackInfo(),w=u.fragmentDuration,d=u.DVRWindow,r=d.end,u.useCalculatedLiveEdgeTime){var i=p.getExpectedLiveEdge();return p.setExpectedLiveEdge(r),void y((0,g.default)(l).create(i,x))}s={start:Math.max(0,r-n),end:r+n},t=Math.floor((d.end-d.start)/2),c=o.getFragmentRequestForTime(A,u,r,{ignoreIsFinished:!0}),e(r,h,f,c)}function d(){r=NaN,s=null,t=NaN,u=null,v=!1,w=NaN,A=null,z=null}function e(a,b,c,d){var f;if(null===d)f=o.generateFragmentRequestForTime(A,u,a),e(a,b,c,f);else{var g=function d(e){m.off(k.default.CHECK_FOR_EXISTENCE_COMPLETED,d,this),e.exists?b(e.request,a):c(e.request,a)};m.on(k.default.CHECK_FOR_EXISTENCE_COMPLETED,g,this),z.checkForExistence(d)}}function f(a,b){var c,d,i;return v?void j(!1,b):(i=b-r,c=i>0?r-i:r+Math.abs(i)+t,void(c<s.start&&c>s.end?y((0,g.default)(l).create(null,x)):(d=o.getFragmentRequestForTime(A,u,c,{ignoreIsFinished:!0}),e(c,h,f,d))))}function h(a,b){var c,d,f=a.startTime;if(!v){if(!u.fragmentDuration)return void y((0,g.default)(l).create(f,x));if(v=!0,s.end=f+2*t,b===r)return d=b+w,c=o.getFragmentRequestForTime(A,u,d,{ignoreIsFinished:!0}),void e(d,function(){j(!0,d)},function(){y((0,g.default)(l).create(d,x))},c)}j(!0,b)}function j(a,b){var c,d,i;a?s.start=b:s.end=b,c=Math.floor(s.end-s.start)<=w,c?y((0,g.default)(l).create(a?b:b-w,x)):(i=(s.start+s.end)/2,d=o.getFragmentRequestForTime(A,u,i,{ignoreIsFinished:!0}),e(i,h,f,d))}var l=this.context,m=(0,i.default)(l).getInstance(),o=a.adapter,p=a.timelineConverter,q=void 0,r=void 0,s=void 0,t=void 0,u=void 0,v=void 0,w=void 0,x=void 0,y=void 0,z=void 0,A=void 0;return q={execute:c,reset:d},b(),q}Object.defineProperty(c,"__esModule",{value:!0});var f=a(130),g=d(f),h=a(9),i=d(h),j=a(13),k=d(j),l=a(10),m=d(l),n=43200;e.__dashjs_factory_name="LiveEdgeBinarySearchRule",c.default=m.default.getClassFactory(e),b.exports=c.default},{10:10,13:13,130:130,9:9}],143:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(a,b){var c=a.getTrackInfo(),f=c.DVRWindow.end,h=g.default.DEFAULT;if(c.useCalculatedLiveEdgeTime){var i=e.getExpectedLiveEdge();e.setExpectedLiveEdge(f),b((0,g.default)(d).create(i,h))}else b((0,g.default)(d).create(f,h))}var c=void 0,d=this.context,e=a.timelineConverter;return c={execute:b}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(130),g=d(f),h=a(10),i=d(h);e.__dashjs_factory_name="LiveEdgeWithTimeSynchronizationRule",c.default=i.default.getClassFactory(e),b.exports=c.default},{10:10,130:130}],144:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){e=[],f=[],e.push((0,m.default)(c).create({timelineConverter:(0,i.default)(c).getInstance()})),f.push((0,k.default)(c).create({timelineConverter:(0,i.default)(c).getInstance(),adapter:(0,o.default)(c).getInstance()}))}function b(a){switch(a){case p:return e;case q:return f;default:return null}}var c=this.context,d=void 0,e=void 0,f=void 0;return d={initialize:a,getRules:b}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(37),i=d(h),j=a(142),k=d(j),l=a(143),m=d(l),n=a(15),o=d(n),p="withAccurateTimeSourceRules",q="bestGuestRules";e.__dashjs_factory_name="SynchronizationRulesCollection";var r=g.default.getSingletonFactory(e);r.TIME_SYNCHRONIZED_RULES=p,r.BEST_GUESS_RULES=q,c.default=r,b.exports=c.default},{10:10,142:142,143:143,15:15,37:37}],145:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){l=(0,m.default)(e).create({updateEventName:i.default.SERVICE_LOCATION_BLACKLIST_CHANGED,loadFailedEventName:i.default.FRAGMENT_LOADING_COMPLETED}),n=(0,q.default)(e).create({blacklistController:l}),p=(0,o.default)(e).create({blacklistController:l}),r=n}function b(a){r=h.getIsDVB(a)?p:n}function c(a){var b=a.baseUrls,c=a.selectedIdx;if(!isNaN(c))return b[c];var d=r.select(b);return d?(a.selectedIdx=b.indexOf(d),d):void f.trigger(i.default.URL_RESOLUTION_FAILED,{error:new Error(t,u)})}function d(){l.reset()}var e=this.context,f=(0,g.default)(e).getInstance(),h=(0,k.default)(e).getInstance(),j=void 0,l=void 0,n=void 0,p=void 0,r=void 0;return j={chooseSelectorFromManifest:b,select:c,reset:d},a(),j}Object.defineProperty(c,"__esModule",{value:!0});var f=a(9),g=d(f),h=a(13),i=d(h),j=a(22),k=d(j),l=a(62),m=d(l),n=a(139),o=d(n),p=a(138),q=d(p),r=a(10),s=d(r),t=1,u="Failed to resolve a valid URL";e.__dashjs_factory_name="BaseURLSelector";var v=s.default.getClassFactory(e);v.URL_RESOLUTION_FAILED_GENERIC_ERROR_CODE=t,v.URL_RESOLUTION_FAILED_GENERIC_ERROR_MESSAGE=u,c.default=v,b.exports=c.default},{10:10,13:13,138:138,139:139,22:22,62:62,9:9}],146:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){if(!a)return null;void 0===a.fileStart&&(a.fileStart=0);var b=k.default.parseBuffer(a),d=(0,g.default)(c).create();return d.setData(b),d}var b=void 0,c=this.context;return b={parse:a}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(153),g=d(f),h=a(10),i=d(h),j=a(6),k=d(j);e.__dashjs_factory_name="BoxParser",c.default=i.default.getSingletonFactory(e),b.exports=c.default},{10:10,153:153,6:6}],147:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){g=!1}function b(){var a="WebKitMediaSource"in window,b="MediaSource"in window;return a||b}function c(){return g}function d(a){g=a}function e(a,b){var c=a.canPlayType(b);return"probably"===c||"maybe"===c}var f=void 0,g=void 0;return f={supportsMediaSource:b,supportsEncryptedMedia:c,supportsCodec:e,setEncryptedMediaSupported:d},a(),f}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="Capabilities",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],148:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b){var c=0;for(c=0;c<this.customTimeRangeArray.length&&a>this.customTimeRangeArray[c].start;c++);for(this.customTimeRangeArray.splice(c,0,{start:a,end:b}),c=0;c<this.customTimeRangeArray.length-1;c++)this.mergeRanges(c,c+1)&&c--;this.length=this.customTimeRangeArray.length}function b(){this.customTimeRangeArray=[],this.length=0}function c(a,b){for(var c=0;c<this.customTimeRangeArray.length;c++)if(a<=this.customTimeRangeArray[c].start&&b>=this.customTimeRangeArray[c].end)this.customTimeRangeArray.splice(c,1),c--;else{if(a>this.customTimeRangeArray[c].start&&b<this.customTimeRangeArray[c].end){this.customTimeRangeArray.splice(c+1,0,{start:b,end:this.customTimeRangeArray[c].end}),this.customTimeRangeArray[c].end=a;break}a>this.customTimeRangeArray[c].start&&a<this.customTimeRangeArray[c].end?this.customTimeRangeArray[c].end=a:b>this.customTimeRangeArray[c].start&&b<this.customTimeRangeArray[c].end&&(this.customTimeRangeArray[c].start=b)}this.length=this.customTimeRangeArray.length}function d(a,b){var c=this.customTimeRangeArray[a],d=this.customTimeRangeArray[b];return c.start<=d.start&&d.start<=c.end&&c.end<=d.end?(c.end=d.end,this.customTimeRangeArray.splice(b,1),!0):d.start<=c.start&&c.start<=d.end&&d.end<=c.end?(c.start=d.start,this.customTimeRangeArray.splice(b,1),!0):d.start<=c.start&&c.start<=d.end&&c.end<=d.end?(this.customTimeRangeArray.splice(a,1),!0):c.start<=d.start&&d.start<=c.end&&d.end<=c.end&&(this.customTimeRangeArray.splice(b,1),!0)}function e(a){return this.customTimeRangeArray[a].start}function f(a){return this.customTimeRangeArray[a].end}var g=[],h=0;return{customTimeRangeArray:g,length:h,add:a,clear:b,remove:c,mergeRanges:d,start:e,end:f}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="CustomTimeRanges",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10}],149:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){if(void 0!==t)return t;t=!1;var b,c="1",d="1";try{"undefined"!=typeof window&&(b=window[a])}catch(e){return r("Warning: DOMStorage access denied: "+e.message),t}if(!b||a!==o&&a!==p)return t;try{b.setItem(c,d),b.removeItem(c),t=!0}catch(e){r("Warning: DOMStorage is supported, but cannot be used: "+e.message)}return t}function b(){a(o)&&l.forEach(function(a){var b=localStorage.getItem(a.oldKey);if(b){localStorage.removeItem(a.oldKey);try{localStorage.setItem(a.newKey,b)}catch(c){r(c.message)}}})}function c(){u=(0,i.default)(q).getInstance(),b()}function d(){var a=6e5;return Math.round((new Date).getTime()/a)*a}function e(b,c){return a(b)&&u["get"+c+"CachingInfo"]().enabled}function f(a){if(!e(o,"LastMediaSettings"))return null;var b=n.replace(/\?/,a),c=JSON.parse(localStorage.getItem(b))||{},d=(new Date).getTime()-parseInt(c.timestamp,10)>=u.getLastMediaSettingsCachingInfo().ttl||!1,f=c.settings;return d&&(localStorage.removeItem(b),f=null),f}function g(a){var b=NaN;if(e(o,"LastBitrate")){var c=m.replace(/\?/,a),d=JSON.parse(localStorage.getItem(c))||{},f=(new Date).getTime()-parseInt(d.timestamp,10)>=u.getLastBitrateCachingInfo().ttl||!1,g=parseInt(d.bitrate,10);isNaN(g)||f?f&&localStorage.removeItem(c):(b=g,r("Last saved bitrate for "+a+" was "+g))}return b}function h(a,b){if(e(o,"LastMediaSettings")){var c=n.replace(/\?/,a);try{localStorage.setItem(c,JSON.stringify({settings:b,timestamp:d()}))}catch(f){r(f.message)}}}function j(a,b){if(e(o,"LastBitrate")&&b){var c=m.replace(/\?/,a);try{localStorage.setItem(c,JSON.stringify({bitrate:b/1e3,timestamp:d()}))}catch(f){r(f.message)}}}var q=this.context,r=(0,k.default)(q).getInstance().log,s=void 0,t=void 0,u=void 0;return s={getSavedBitrateSettings:g,setSavedBitrateSettings:j,getSavedMediaSettings:f,setSavedMediaSettings:h,isSupported:a},c(),s}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(101),i=d(h),j=a(8),k=d(j),l=[{oldKey:"dashjs_vbitrate",newKey:"dashjs_video_bitrate"},{oldKey:"dashjs_abitrate",newKey:"dashjs_audio_bitrate"},{oldKey:"dashjs_vsettings",newKey:"dashjs_video_settings"},{oldKey:"dashjs_asettings",newKey:"dashjs_audio_settings"}],m="dashjs_?_bitrate",n="dashjs_?_settings",o="localStorage",p="sessionStorage";e.__dashjs_factory_name="DOMStorage";var q=g.default.getSingletonFactory(e);c.default=q,b.exports=c.default},{10:10,101:101,8:8}],150:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){function b(){return o}function c(a){o=a}function d(a,b){var c=!0,d=0,e=void 0,f=void 0;if(void 0===b&&(b=!1),a.tag>16777215?(n.getUint32(o)!==a.tag&&(c=!1),d=4):a.tag>65535?(e=n.getUint16(o),f=n.getUint8(o+2),256*e+f!==a.tag&&(c=!1),d=3):a.tag>255?(n.getUint16(o)!==a.tag&&(c=!1),d=2):(n.getUint8(o)!==a.tag&&(c=!1),d=1),!c&&a.required&&!b)throw new i.default("required tag not found");return c&&(o+=d),c}function e(a,b){var c=d(a,b);return c&&h(),c}function f(a){var b=void 0;return d(a),b=h(),m[a.parse](b)}function g(a,b){var c=d(a,b),e=void 0;return c&&(e=h(),o+=e),c}function h(a){var b=1,c=128,d=8,e=-1,f=0,g=n.getUint8(o),h=void 0;for(h=0;h<d;h+=1){if((g&c)===c){f=void 0===a?g&~c:g,e=h;break}c>>=1}for(h=0;h<e;h+=1,b+=1)f=f<<8|255&n.getUint8(o+b);return o+=b,f}function j(a){var b=void 0;switch(a){case 4:b=n.getFloat32(o),o+=4;break;case 8:b=n.getFloat64(o),o+=8}return b}function k(a){var b=0,c=void 0;for(c=0;c<a;c+=1)b<<=8,b|=255&n.getUint8(o+c);return o+=a,b}function l(){return o<n.byteLength}var m=void 0,n=new DataView(a.data),o=0;return m={getPos:b,
+setPos:c,consumeTag:d,consumeTagAndSize:e,parseTag:f,skipOverElement:g,getMatroskaCodedNum:h,getMatroskaFloat:j,getMatroskaUint:k,moreData:l}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(162),i=d(h);e.__dashjs_factory_name="EBMLParser",c.default=g.default.getClassFactory(e),b.exports=c.default},{10:10,162:162}],151:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){l.trigger(i.default.ERROR,{error:"capability",event:a})}function b(a,b,c){l.trigger(i.default.ERROR,{error:"download",event:{id:a,url:b,request:c}})}function c(a,b,c,d){l.trigger(i.default.ERROR,{error:"manifestError",event:{message:a,id:b,manifest:c,event:d}})}function d(a,b,c){l.trigger(i.default.ERROR,{error:"cc",event:{message:a,id:b,cc:c}})}function e(a){l.trigger(i.default.ERROR,{error:"mediasource",event:a})}function f(a){l.trigger(i.default.ERROR,{error:"key_session",event:a})}function h(a){l.trigger(i.default.ERROR,{error:"key_message",event:a})}var j=void 0,k=this.context,l=(0,g.default)(k).getInstance();return j={capabilityError:a,downloadError:b,manifestError:c,timedTextError:d,mediaSourceError:e,mediaKeySessionError:f,mediaKeyMessageError:h}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(9),g=d(f),h=a(13),i=d(h),j=a(10),k=d(j),l="mediasource",m="mediakeys",n="manifest",o="SIDX",p="content",q="initialization",r="xlink",s="codec",t="parse",u="nostreams",v="parse";e.__dashjs_factory_name="ErrorHandler";var w=k.default.getSingletonFactory(e);w.CAPABILITY_ERROR_MEDIASOURCE=l,w.CAPABILITY_ERROR_MEDIAKEYS=m,w.DOWNLOAD_ERROR_ID_MANIFEST=n,w.DOWNLOAD_ERROR_ID_SIDX=o,w.DOWNLOAD_ERROR_ID_CONTENT=p,w.DOWNLOAD_ERROR_ID_INITIALIZATION=q,w.DOWNLOAD_ERROR_ID_XLINK=r,w.MANIFEST_ERROR_ID_CODEC=s,w.MANIFEST_ERROR_ID_PARSE=t,w.MANIFEST_ERROR_ID_NOSTREAMS=u,w.TIMED_TEXT_ERROR_ID_PARSE=v,c.default=w,b.exports=c.default},{10:10,13:13,9:9}],152:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){var b=a.streamId,c=a.mediaInfo.type,e=a.quality;d[b]=d[b]||{},d[b][c]=d[b][c]||{},d[b][c][e]=a}function b(a,b,c){return d[a][b][c]}function c(){d={}}var d={},e={save:a,extract:b,reset:c};return e}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="InitCache",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],153:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){return a&&k&&k.boxes&&0!==k.boxes.length?i(k.fetch(a)):null}function b(a){for(var b,c=k.fetchAll(a),d=[],e=0,f=c.length;e<f;e++)b=i(c[e]),b&&d.push(b);return d}function c(a){k=a}function d(){if(!k||!k.boxes||!k.boxes.length)return null;var a=k.boxes[k.boxes.length-1].type,c=b(a);return c[c.length-1]}function e(){return k._cursor.offset}function f(){l={offset:"_offset",size:"size",type:"type"},m={references:"references",timescale:"timescale",earliest_presentation_time:"earliest_presentation_time",first_offset:"first_offset"},n={reference_type:"reference_type",referenced_size:"referenced_size",subsegment_duration:"subsegment_duration"},o={id:"id",value:"value",timescale:"timescale",scheme_id_uri:"scheme_id_uri",presentation_time_delta:"presentation_time_delta",event_duration:"event_duration",message_data:"message_data"},p={timescale:"timescale"},q={sequence_number:"sequence_number"},r={base_data_offset:"base_data_offset",sample_description_index:"sample_description_index",default_sample_duration:"default_sample_duration",default_sample_size:"default_sample_size",default_sample_flags:"default_sample_flags",flags:"flags"},s={version:"version",baseMediaDecodeTime:"baseMediaDecodeTime",flags:"flags"},t={sample_count:"sample_count",first_sample_flags:"first_sample_flags",data_offset:"data_offset",flags:"flags",samples:"samples"},u={sample_size:"sample_size",sample_duration:"sample_duration",sample_composition_time_offset:"sample_composition_time_offset"}}function h(a,b,c){for(var d in c)b[d]=a[c[d]]}function i(a){if(!a)return null;var b,c,d=new g.default;switch(h(a,d,l),a.hasOwnProperty("_incomplete")&&(d.isComplete=!a._incomplete),d.type){case"sidx":if(h(a,d,m),d.references)for(b=0,c=d.references.length;b<c;b++)h(a.references[b],d.references[b],n);break;case"emsg":h(a,d,o);break;case"mdhd":h(a,d,p);break;case"mfhd":h(a,d,q);break;case"tfhd":h(a,d,r);break;case"tfdt":h(a,d,s);break;case"trun":if(h(a,d,t),d.samples)for(b=0,c=d.samples.length;b<c;b++)h(a.samples[b],d.samples[b],u)}return d}var j=void 0,k=void 0,l=void 0,m=void 0,n=void 0,o=void 0,p=void 0,q=void 0,r=void 0,s=void 0,t=void 0,u=void 0;return j={getBox:a,getBoxes:b,setData:c,getLastBox:d,getOffset:e},f(),j}Object.defineProperty(c,"__esModule",{value:!0});var f=a(165),g=d(f),h=a(10),i=d(h);e.__dashjs_factory_name="IsoFile",c.default=i.default.getClassFactory(e),b.exports=c.default},{10:10,165:165}],154:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b){n=a,p=b,s=!1,t=NaN,v=null,q=(0,o.default)(h).getInstance(),w=g.default.BEST_GUESS_RULES,j.on(m.default.STREAM_INITIALIZED,f,this)}function b(){s=!1,t=NaN}function c(){return v}function d(){j.off(m.default.STREAM_INITIALIZED,f,this),b(),v=null,n=null,p=null,s=!1,t=NaN,w=null,q=null}function e(a){var b=((new Date).getTime()-t)/1e3;v=a.value,j.trigger(m.default.LIVE_EDGE_SEARCH_COMPLETED,{liveEdge:v,searchTime:b,error:null===v?new i.default(r,"live edge has not been found",null):null})}function f(a){!p.isDynamic()||s||a.error||(w=n.isTimeSyncCompleted()?g.default.TIME_SYNCHRONIZED_RULES:g.default.BEST_GUESS_RULES,u=(0,g.default)(h).getInstance().getRules(w),s=!0,t=(new Date).getTime(),q.applyRules(u,p,e,null,function(a,b){return b}))}var h=this.context,j=(0,k.default)(h).getInstance(),l=void 0,n=void 0,p=void 0,q=void 0,s=void 0,t=void 0,u=void 0,v=void 0,w=void 0;return l={initialize:a,abortSearch:b,getLiveEdge:c,reset:d}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(144),g=d(f),h=a(162),i=d(h),j=a(9),k=d(j),l=a(13),m=d(l),n=a(129),o=d(n),p=a(10),q=d(p),r=1;e.__dashjs_factory_name="LiveEdgeFinder";var s=q.default.getSingletonFactory(e);s.LIVE_EDGE_NOT_FOUND_ERROR_CODE=r,c.default=s,b.exports=c.default},{10:10,129:129,13:13,144:144,162:162,9:9}],155:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a,b){return JSON.stringify(a)===JSON.stringify(b)}var b=void 0;return b={areSimpleEquivalent:a}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="ObjectUtils",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],156:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){return a}function b(a){return a}var c=void 0;return c={modifyRequestURL:a,modifyRequestHeader:b}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="RequestModifier",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],157:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){a&&a.videoModel&&(ba=a.videoModel)}function b(a){if(a.hasOwnProperty("begin")&&a.hasOwnProperty("end")){var b=o(a.begin),c=o(a.end);return[b,c]}return null}function c(){var a="cue_TTML_"+ca;return ca++,a}function d(a,b,c){function d(a,b){if(a.hasOwnProperty(b)){var c=a[b];f.indexOf(c)<0&&f.push(c)}}for(var e=[],f=[],g=[],h=0;h<a.length;h++){var i=a[h];d(i,"begin"),d(i,"end")}if(0===f.length)return g;if("undefined"!=typeof b&&"undefined"!=typeof c){for(var h=0;h<f.length;h++){var j=o(f[h]);b<j&&j<c&&e.push(j)}e.push(b),e.push(c)}else for(var h=0;h<f.length;h++)e.push(o(f[h]));e.sort(function(a,b){return a-b});for(var h=0;h<e.length-1;h++)g.push([e[h],e[h+1]]);return g}function e(a,b){return"undefined"!=typeof startInterval&&a<b&&(a=b),a}function f(a,b){return"undefined"!=typeof b&&a>b&&(a=b),a}function g(a,b,c){var d=o(a.begin),g=o(a.end);return d=e(d,b),g=f(g,c),"undefined"!=typeof b&&"undefined"!=typeof c&&(g<b||d>c)?(L("TTML: Cue "+d+"-"+g+" outside interval "+b+"-"+c),null):[d,g]}function h(a,c){var d=!0;if(a.hasOwnProperty("span")){var e=b(a.span);null!==e&&(d=e[0]<c[1]&&e[1]>c[0])}return d}function j(a,e,f){var j=void 0,k=void 0,l=void 0,m=void 0,n=void 0,o="",r=new i.default([],"",(!1));if(O=r.xml_str2json(a),!O)throw new Error("TTML document could not be parsed");if(ba.getTTMLRenderingDiv()&&(n="html"),j=O.tt,!j)throw new Error("TTML document lacks tt element");var s=p(j,"http://www.w3.org/ns/ttml");if(s&&q(j,s),m=j["tts:extent"],k=j.head,!k)throw new Error("TTML document lacks head element");if(k.layout&&(Q=k.layout.region_asArray),k.styling&&(P=k.styling.style_asArray),l=j.body,!l)throw new Error("TTML document lacks body element");var w=E(),x=ba.getElement().clientWidth,y=ba.getElement().clientHeight,z=[x/w[0],y/w[1]];V["font-size"]=z[1]+"px;";var D=[];if(Q)for(var J=0;J<Q.length;J++)D.push(B(JSON.parse(JSON.stringify(Q[J])),z));var K=p(O.tt,"http://www.w3.org/ns/ttml#parameter");j.hasOwnProperty(K+":frameRate")&&(j.frameRate=parseInt(j[K+":frameRate"],10));for(var M=[],N=j.body_asArray[0].__children,U=0;U<N.length;U++){var W=N[U].div,X=null;if(null===(X=b(W))){var Y=W.p_asArray;if(null===X&&(!Y||0===Y.length))return o="TTML has div that contains no timing and no paragraphs.",L(o),M;for(var Z=0;Z<Y.length;Z++){var $=Y[Z],_=$.span_asArray,aa=[];if($.hasOwnProperty("begin")&&$.hasOwnProperty("end")){var ca=g($,e,f);null!==ca&&aa.push(ca)}else aa=d(_,e,f);if(0!==aa.length)for(var da=$.__children,ea=0;ea<aa.length;ea++){for(var fa=aa[ea],ga=[],ha=0;ha<da.length;ha++){var ia=da[ha];h(ia,fa)&&ga.push(ia)}if(0!==ga.length)if("html"===n){S={},T={},R={};var ja=H($,W,z),ka=I($,z),la=ka[1];ka=ka[0];var ma=document.createElement("div");ma.className=la;var na=G(ga,z);na.className="cueDirUniWrapper",t("unicode-bidi",ka)&&(na.style.cssText+=u("unicode-bidi",ka),v("unicode-bidi",ka)),t("direction",ka)&&(na.style.cssText+=u("direction",ka),v("direction",ka)),t("padding-left",ka)&&t("padding-right",ka)&&(na.innerHTML=F(na,ka)),t("padding-left",ka)&&t("padding-right",ka)&&(v("padding-left",ka),v("padding-right",ka));var oa="";if(t("regionID",ja)){var pa=u("regionID",ja);oa=pa.slice(pa.indexOf(":")+1,pa.length-1)}ka&&(ma.style.cssText=ka.join(" ")+"display:flex;"),ja&&(ja=ja.join(" ")),ma.appendChild(na);var qa=document.createElement("div");qa.appendChild(ma),qa.id=c(),qa.style.cssText="position: absolute; margin: 0; display: flex; box-sizing: border-box; pointer-events: none;"+ja,0===Object.keys(R).length&&(R.defaultFontSize="100"),M.push({start:fa[0],end:fa[1],type:"html",cueHTMLElement:qa,regions:D,regionID:oa,cueID:qa.id,videoHeight:y,videoWidth:x,cellResolution:w,fontSize:R||{defaultFontSize:"100"},lineHeight:S,linePadding:T})}else{var ra="",sa=ga;sa.length&&sa.forEach(function(a){if(a.hasOwnProperty("span")){var b=a.span.__children;b.forEach(function(a){b.hasOwnProperty("metadata")||(a.hasOwnProperty("#text")?ra+=a["#text"].replace(/[\r\n]+/gm," ").trim():"br"in a&&(ra+="\n"))})}else ra+=a.hasOwnProperty("br")?"\n":a["#text"].replace(/[\r\n]+/gm," ").trim()}),M.push({start:fa[0],end:fa[1],data:ra,type:"text"})}}else o="TTML: Empty paragraph"}}else{var ta=void 0;if(W.region){var ua=C(Q,W.region);ta=A(ua,m)}ta||(ta=A(W,m));var va=j.head.metadata.image_asArray;if(void 0!==W["smpte:backgroundImage"])for(var wa=0;wa<va.length;wa++)"#"+va[wa]["xml:id"]===W["smpte:backgroundImage"]&&M.push({start:X[0],end:X[1],id:c(),data:"data:image/"+va[wa].imagetype.toLowerCase()+";base64, "+va[wa].__text,type:"image",layout:ta})}}if(""!==o&&L(o),M.length>0)return M;throw new Error(o)}function n(){N=/^([0-9][0-9]+):([0-5][0-9]):([0-5][0-9])|(60)(\.([0-9])+)?$/,R={},S={},T={},U={top:"auto;",left:"auto;",width:"90%;",height:"10%;","align-items":"flex-start;",overflow:"visible;","-ms-writing-mode":"lr-tb, horizontal-tb;","-webkit-writing-mode":"horizontal-tb;","-moz-writing-mode":"horizontal-tb;","writing-mode":"horizontal-tb;"},V={color:"rgb(255,255,255);",direction:"ltr;","font-family":"monospace, sans-serif;","font-style":"normal;","line-height":"normal;","font-weight":"normal;","text-align":"start;","justify-content":"flex-start;","text-decoration":"none;","unicode-bidi":"normal;","white-space":"normal;",width:"100%;"},W={monospace:"font-family: monospace;",sansSerif:"font-family: sans-serif;",serif:"font-family: serif;",monospaceSansSerif:"font-family: monospace, sans-serif;",monospaceSerif:"font-family: monospace, serif;",proportionalSansSerif:"font-family: Arial;",proportionalSerif:"font-family: Times New Roman;",default:"font-family: monospace, sans-serif;"},X={right:["justify-content: flex-end;","text-align: right;"],start:["justify-content: flex-start;","text-align: start;"],center:["justify-content: center;","text-align: center;"],end:["justify-content: flex-end;","text-align: end;"],left:["justify-content: flex-start;","text-align: left;"]},Y={start:"text-align: start;",center:"text-align: center;",end:"text-align: end;",auto:""},Z={wrap:"white-space: normal;",noWrap:"white-space: nowrap;"},$={normal:"unicode-bidi: normal;",embed:"unicode-bidi: embed;",bidiOverride:"unicode-bidi: bidi-override;"},_={before:"align-items: flex-start;",center:"align-items: center;",after:"align-items: flex-end;"},aa={lrtb:"-webkit-writing-mode: horizontal-tb;writing-mode: horizontal-tb;",rltb:"-webkit-writing-mode: horizontal-tb;writing-mode: horizontal-tb;direction: rtl;unicode-bidi: bidi-override;",tbrl:"-webkit-writing-mode: vertical-rl;writing-mode: vertical-rl;-webkit-text-orientation: upright;text-orientation: upright;",tblr:"-webkit-writing-mode: vertical-lr;writing-mode: vertical-lr;-webkit-text-orientation: upright;text-orientation: upright;",lr:"-webkit-writing-mode: horizontal-tb;writing-mode: horizontal-tb;",rl:"-webkit-writing-mode: horizontal-tb;writing-mode: horizontal-tb;direction: rtl;",tb:"-webkit-writing-mode: vertical-rl;writing-mode: vertical-rl;-webkit-text-orientation: upright;text-orientation: upright;"}}function o(a){var b,c,d,e=N.test(a);if(!e)return NaN;if(b=a.split(":"),c=parseFloat(b[0])*l+parseFloat(b[1])*m+parseFloat(b[2]),b[3]){if(d=O.tt.frameRate,!d||isNaN(d))return NaN;c+=parseFloat(b[3])/d}return c}function p(a,b){var c=Object.keys(a).filter(function(c){return("xmlns"===c.split(":")[0]||"xmlns"===c.split(":")[1])&&a[c]===b}).map(function(a){return a.split(":")[2]||a.split(":")[1]});return 1!=c.length?null:c[0]}function q(a,b){for(var c in a)if(a.hasOwnProperty(c)){if(("object"==typeof a[c]||a[c]instanceof Object)&&!Array.isArray(a[c]))q(a[c],b);else if(Array.isArray(a[c]))for(var d=0;d<a[c].length;d++)q(a[c][d],b);var e=c.slice(c.indexOf(b)+b.length+1);a[e]=a[c],delete a[c]}}function r(a){return a.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function s(a){var b=a.slice(1),c=b.match(/.{2}/g),d=parseFloat(parseInt(parseInt(c[3],16)/255*1e3,10)/1e3),e=c.slice(0,3).map(function(a){return parseInt(a,16)});return"rgba("+e.join(",")+","+d+");"}function t(a,b){for(var c=0;c<b.length;c++)if(b[c].indexOf(a)>-1)return!0;return!1}function u(a,b){for(var c=0;c<b.length;c++)if(b[c].indexOf(a)>-1)return b[c];return null}function v(a,b){b.splice(b.indexOf(u(a,b)),1)}function w(a,b){for(var c=0;c<a.length;c++)for(var d=0;d<b.length;d++)a[c]&&a[c].split(":")[0].indexOf(b[d].split(":")[0])>-1&&a.splice(c,1);return a.concat(b)}function x(a,b,c){var d=[];for(var e in a)if(a.hasOwnProperty(e)){var f=e.replace("ebutts:","");f=f.replace("xml:",""),f=f.replace("tts:",""),f=r(f),a[f]=a[e],delete a[e]}if("line-padding"in a){var g=parseFloat(a["line-padding"].slice(a["line-padding"].indexOf(":")+1,a["line-padding"].indexOf("c")));"id"in a&&(T[a.id]=g);var h=g*b[0]+"px;";d.push("padding-left:"+h),d.push("padding-right:"+h)}if("font-size"in a){var i=parseFloat(a["font-size"].slice(a["font-size"].indexOf(":")+1,a["font-size"].indexOf("%")));"id"in a&&(R[a.id]=i);var j=i/100*b[1]+"px;";d.push("font-size:"+j)}if("line-height"in a)if("normal"===a["line-height"])d.push("line-height: normal;");else{var k=parseFloat(a["line-height"].slice(a["line-height"].indexOf(":")+1,a["line-height"].indexOf("%")));"id"in a&&(S[a.id]=k);var l=k/100*b[1]+"px;";d.push("line-height:"+l)}"font-family"in a&&(a["font-family"]in W?d.push(W[a["font-family"]]):d.push("font-family:"+a["font-family"]+";")),"text-align"in a&&a["text-align"]in X&&(d.push(X[a["text-align"]][0]),d.push(X[a["text-align"]][1])),"multi-row-align"in a&&(t("text-align",d)&&"auto"!=a["multi-row-align"]&&v("text-align",d),a["multi-row-align"]in Y&&d.push(Y[a["multi-row-align"]]));var m;return"background-color"in a&&(a["background-color"].indexOf("#")>-1&&a["background-color"].length-1===8?(m=s(a["background-color"]),d.push("background-color: "+m)):d.push("background-color:"+a["background-color"]+";")),"color"in a&&(a.color.indexOf("#")>-1&&a.color.length-1===8?(m=s(a.color),d.push("color: "+m)):d.push("color:"+a.color+";")),"wrap-option"in a&&(a["wrap-option"]in Z?d.push(Z[a["wrap-option"]]):d.push("white-space:"+a["wrap-option"])),"unicode-bidi"in a&&(a["unicode-bidi"]in $?d.push($[a["unicode-bidi"]]):d.push("unicode-bidi:"+a["unicode-bidi"])),"font-style"in a&&d.push("font-style:"+a["font-style"]+";"),"font-weight"in a&&d.push("font-weight:"+a["font-weight"]+";"),"direction"in a&&d.push("direction:"+a.direction+";"),"text-decoration"in a&&d.push("text-decoration:"+a["text-decoration"]+";"),c&&(d=d.concat(B(a,b))),O.tt.hasOwnProperty("xml:space")&&"preserve"===O.tt["xml:space"]&&d.push("white-space: pre;"),d}function y(a,b){for(var c=0;c<a.length;c++){var d=a[c];if(d["xml:id"]===b||d.id===b)return d}return null}function z(a,b,c){var d=[],e=a.match(/\S+/g);return e.forEach(function(a){var e=y(P,a);if(e){var f=x(JSON.parse(JSON.stringify(e)),b,c);d=d.concat(f)}}),d}function A(a,b){var c=/([\d\.]+)(%|px)\s+([\d\.]+)(%|px)/;if("tts:extent"in a&&"tts:origin"in a){var d=c.exec(a["tts:extent"]),e=c.exec(a["tts:origin"]);if(null===d||null===e)return L("Bad extent or origin: "+a["tts:extent"]+" "+a["tts:origin"]),null;var f=parseFloat(d[1]),g=parseFloat(d[3]),h=parseFloat(e[1]),i=parseFloat(e[3]);if(b){var j=c.exec(b);if(null===j||"px"!==j[2]||"px"!==j[4])return L("Bad tt.extent: "+b),null;var k=parseFloat(j[1]),l=parseFloat(j[3]);"px"===d[2]&&(f=f/k*100),"px"===d[4]&&(g=g/l*100),"px"===e[2]&&(h=h/k*100),"px"===e[4]&&(i=i/l*100)}return{left:h,top:i,width:f,height:g}}return null}function B(a,b){var c=[];for(var d in a){var e=d.replace("tts:","");e=e.replace("xml:",""),e=r(e),a[e]=a[d],e!==d&&delete a[d]}if("extent"in a){var f=a.extent.split(/\s/);c.push("width: "+f[0]+";"),c.push("height: "+f[1]+";")}if("origin"in a){var g=a.origin.split(/\s/);c.push("left: "+g[0]+";"),c.push("top: "+g[1]+";")}if("display-align"in a&&c.push(_[a["display-align"]]),"writing-mode"in a&&c.push(aa[a["writing-mode"]]),"style"in a){var h=z(a.style,b,!0);c=c.concat(h)}return"padding"in a&&c.push("padding:"+a.padding+";"),"overflow"in a&&c.push("overflow:"+a.overflow+";"),"show-background"in a&&c.push("show-background:"+a["show-background"]+";"),"id"in a&&c.push("regionID:"+a.id+";"),c}function C(a,b){for(var c=0;c<a.length;c++){var d=a[c];if(d["xml:id"]===b||d.id===b)return d}return null}function D(a,b){var c=[],d=a.match(/\S+/g);return d.forEach(function(a){var d=C(Q,a);if(d){var e=B(JSON.parse(JSON.stringify(d)),b);c=c.concat(e)}}),c}function E(){var a=[32,15];return O.tt.hasOwnProperty("ttp:cellResolution")?O.tt["ttp:cellResolution"].split(" ").map(parseFloat):a}function F(a,b){for(var c=u("padding-left",b),d=u("padding-right",b),e=c.concat(" "+d+" "),f="",g="",h="",i=Array.prototype.slice.call(a.children),j=a.getElementsByClassName("lineBreak")[0],k=i.indexOf(j),l=[];k!=-1;)l.push(k),k=i.indexOf(j,k+1);var m="</span>",n="<br>",o='<span class="spanPadding" style="-webkit-box-decoration-break: clone; box-decoration-break: clone; ';if(l.length)l.forEach(function(a,b){if(0===b){for(var c="",d=0;d<a;d++)f+=i[d].outerHTML,0===d&&(c=e.concat(i[d].style.cssText));f=o+c+'">'+f}for(var j="",k=a+1;k<i.length;k++)g+=i[k].outerHTML,k===i.length-1&&(j+=e.concat(i[k].style.cssText));g=o+j+'">'+g,f&&g&&b===l.length-1?h+=f+m+n+g+m:f&&g&&b!==l.length-1?h+=f+m+n+g+m+n:f&&!g?h+=f+m:!f&&g&&b===l.length-1?h+=g+m:!f&&g&&b!==l.length-1&&(h+=g+m+n)});else{for(var p="",q=0;q<i.length;q++)p+=i[q].style.cssText;h=o+e+p+'">'+a.innerHTML+m}return h}function G(a,b){var c=document.createElement("div");return a.forEach(function(a){if(!a.hasOwnProperty("metadata"))if(a.hasOwnProperty("span")){var d=a.span.__children,e=document.createElement("span");if(a.span.hasOwnProperty("style")){var f=z(a.span.style,b);e.className="spanPadding "+a.span.style,e.style.cssText=f.join(" ")}d.forEach(function(a){if(!d.hasOwnProperty("metadata"))if(a.hasOwnProperty("#text")){var b=document.createTextNode(a["#text"]);e.appendChild(b)}else if("br"in a){e.hasChildNodes()&&c.appendChild(e);var f=document.createElement("br");f.className="lineBreak",c.appendChild(f);var g=document.createElement("span");g.className=e.className,g.style.cssText=e.style.cssText,e=g}}),c.appendChild(e)}else if(a.hasOwnProperty("br")){var g=document.createElement("br");g.className="lineBreak",c.appendChild(g)}else if(a.hasOwnProperty("#text")){var h=document.createElement("span");h.textContent=a["#text"],c.appendChild(h)}}),c}function H(a,b,c){var d,e,f=[],g=a.region,h=b.region;return h&&(d=D(h,c)),g?(e=f.concat(D(g,c)),f=d?w(d,e):e):d&&(f=d),J(f,U),f}function I(a,b){var c,d,e,f=[],g=a.style,h=O.tt.body.style,i=O.tt.body.div.style,j="";return h&&(c=z(h,b),j="paragraph "+h),i&&(d=z(i,b),c?(d=w(c,d),j+=" "+i):j="paragraph "+i),g?(e=z(g,b),c&&d?(f=w(d,e),j+=" "+g):c?(f=w(c,e),j+=" "+g):d?(f=w(d,e),j+=" "+g):(f=e,j="paragraph "+g)):c&&!d?f=c:!c&&d&&(f=d),J(f,V),[f,j]}function J(a,b){for(var c in b)b.hasOwnProperty(c)&&(t(c,a)||a.push(c+":"+b[c]))}var K=this.context,L=(0,k.default)(K).getInstance().log,M=void 0,N=void 0,O=void 0,P=void 0,Q=void 0,R=void 0,S=void 0,T=void 0,U=void 0,V=void 0,W=void 0,X=void 0,Y=void 0,Z=void 0,$=void 0,_=void 0,aa=void 0,ba=void 0,ca=0;return M={parse:j,setConfig:a},n(),M}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(4),i=d(h),j=a(8),k=d(j),l=3600,m=60;e.__dashjs_factory_name="TTMLParser",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10,4:4,8:8}],158:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(a){var b="";return a.indexOf("/")!==-1&&(a.indexOf("?")!==-1&&(a=a.substring(0,a.indexOf("?"))),b=a.substring(0,a.lastIndexOf("/")+1)),b}function b(a){var b=a.match(i);return b?b[1]:""}function c(a){return!g.test(a)}function d(a){return g.test(a)&&"/"===a.charAt(0)}function e(a){return h.test(a)}var f=void 0,g=/^(?:(?:[a-z]+:)?\/)?\//i,h=/^https?:\/\//i,i=/^(https?:\/\/[^\/]+)\/?/i;return f={parseBaseUrl:a,parseOrigin:b,isRelative:c,isPathAbsolute:d,isHTTPURL:e}}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f);e.__dashjs_factory_name="URLUtils",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10}],159:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){k=/(?:\r\n|\r|\n)/gm,l=/-->/,m=/(^[\s]+|[\s]+$)/g,n=/\s\b/g}function b(a){var b,e,g=[];a=a.split(k),b=a.length,e=-1;for(var i=0;i<b;i++){var j=a[i];if(j.length>0&&"WEBVTT"!==j&&j.match(l)){var n=d(j),o=n.cuePoints,p=n.styles,q=f(a,i+1),r=c(o[0].replace(m,"")),s=c(o[1].replace(m,""));!isNaN(r)&&!isNaN(s)&&r>=e&&s>r?""!==q?(e=r,g.push({start:r,end:s,data:q,styles:p})):h("Skipping cue due to empty/malformed cue text"):h("Skipping cue due to incorrect cue timing")}}return g}function c(a){var b=a.split(":"),c=b.length-1;return a=60*parseInt(b[c-1],10)+parseFloat(b[c]),2===c&&(a+=3600*parseInt(b[0],10)),a}function d(a){var b=a.split(l),c=b[1].split(n);return c.shift(),b[1]=c[0],c.shift(),{cuePoints:b,styles:e(c)}}function e(a){var b={};return a.forEach(function(a){if(a.split(/:/).length>1){var c=a.split(/:/)[1];c&&c.search(/%/)!=-1&&(c=parseInt(c.replace(/%/,""),10)),(a.match(/align/)||a.match(/A/))&&(b.align=c),(a.match(/line/)||a.match(/L/))&&(b.line=c),(a.match(/position/)||a.match(/P/))&&(b.position=c),(a.match(/size/)||a.match(/S/))&&(b.size=c)}}),b}function f(a,b){for(var c,d=b,e="",f="";""!==a[d]&&d<a.length;)d++;if(c=d-b,c>1)for(var g=0;g<c;g++){if(f=a[b+g],f.match(l)){e="";break}e+=f,g!==c-1&&(e+="\n")}else f=a[b],f.match(l)||(e=f);return decodeURI(e)}var g=this.context,h=(0,i.default)(g).getInstance().log,j=void 0,k=void 0,l=void 0,m=void 0,n=void 0;return j={parse:b},a(),j}Object.defineProperty(c,"__esModule",{value:!0});var f=a(10),g=d(f),h=a(8),i=d(h);e.__dashjs_factory_name="VTTParser",c.default=g.default.getSingletonFactory(e),b.exports=c.default},{10:10,8:8}],160:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.mediaType=null,this.bitrate=null,this.width=null,this.height=null,this.qualityIndex=NaN};c.default=e,b.exports=c.default},{}],161:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.streamId=null,this.mediaInfo=null,this.segmentType=null,this.quality=NaN,this.index=NaN,this.bytes=null,this.start=NaN,this.end=NaN,this.duration=NaN};c.default=e,b.exports=c.default},{}],162:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(b,c,e){d(this,a),this.code=b||null,this.message=c||null,this.data=e||null};c.default=e,b.exports=c.default},{}],163:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.action=a.ACTION_DOWNLOAD,this.startTime=NaN,this.mediaType=null,this.mediaInfo=null,this.type=null,this.duration=NaN,this.timescale=NaN,this.range=null,this.url=null,this.serviceLocation=null,this.requestStartDate=null,this.firstByteDate=null,this.requestEndDate=null,this.quality=NaN,this.index=NaN,this.availabilityStartTime=null,this.availabilityEndTime=null,this.wallStartTime=null,this.bytesLoaded=NaN,this.bytesTotal=NaN,this.delayLoadingTime=NaN,this.responseType="arraybuffer"};e.ACTION_DOWNLOAD="download",e.ACTION_COMPLETE="complete",c.default=e,b.exports=c.default},{}],164:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(163),i=d(h),j=function(a){function b(a){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),this.url=a||null,this.checkForExistenceOnly=!0}return f(b,a),b}(i.default);c.default=j,b.exports=c.default},{163:163}],165:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.offset=NaN,this.type=null,this.size=NaN,this.isComplete=!0};c.default=e,b.exports=c.default},{}],166:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.DVRWindowSize=NaN,this.loadedTime=null,this.availableFrom=null,this.minBufferTime=NaN,this.duration=NaN,this.isDynamic=!1,this.maxFragmentDuration=null};c.default=e,b.exports=c.default},{}],167:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.id=null,this.index=null,this.type=null,this.streamInfo=null,this.representationCount=0,this.lang=null,this.viewpoint=null,this.accessibility=null,this.audioChannelConfiguration=null,this.roles=null,this.codec=null,this.mimeType=null,this.contentProtection=null,this.isText=!1,this.KID=null,this.bitrateList=null};c.default=e,b.exports=c.default},{}],168:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.TcpList=[],this.HttpList=[],this.RepSwitchList=[],this.BufferLevel=[],this.BufferState=[],this.PlayList=[],this.DroppedFrames=[],this.SchedulingInfo=[],this.DVRInfo=[],this.ManifestUpdate=[],this.RequestsQueue=null,this.DVBErrors=[],this.BolaState=[]};c.default=e,b.exports=c.default},{}],169:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.id=null,this.index=null,this.start=NaN,this.duration=NaN,this.manifestInfo=null,this.isLast=!0,this.isFirst=!0};c.default=e,b.exports=c.default},{}],170:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(c,"__esModule",{value:!0});var g=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},h=a(163),i=d(h),j=function(a){function b(a,c){e(this,b),g(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),this.url=a||null,this.type=c||null,this.mediaType="stream",this.responseType="text"}return f(b,a),b}(i.default);c.default=j,b.exports=c.default},{163:163}],171:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.video=null,this.captionData=null,this.label=null,this.lang=null,this.defaultTrack=!1,this.kind=null,this.isFragmented=!1,this.isEmbedded=!1};c.default=e,b.exports=c.default},{}],172:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.id=null,this.quality=null,this.DVRWindow=null,this.fragmentDuration=null,this.mediaInfo=null,this.MSETimeOffset=null};c.default=e,b.exports=c.default},{}],173:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){
+d(this,a),this.t=null,this.xywh=null,this.track=null,this.id=null,this.s=null};c.default=e,b.exports=c.default},{}],174:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this._s=void 0};c.default=e,b.exports=c.default},{}],175:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.t=null,this.level=null};c.default=e,b.exports=c.default},{}],176:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var f=a(63),g=d(f),h=function a(){e(this,a),this.target=null,this.state=g.default.BUFFER_EMPTY};c.default=h,b.exports=c.default},{63:63}],177:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.time=null,this.range=null,this.manifestInfo=null};c.default=e,b.exports=c.default},{}],178:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.time=null,this.droppedFrames=null};c.default=e,b.exports=c.default},{}],179:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.tcpid=null,this.type=null,this.url=null,this.actualurl=null,this.range=null,this.trequest=null,this.tresponse=null,this.responsecode=null,this.interval=null,this.trace=[],this._stream=null,this._tfinish=null,this._mediaduration=null,this._responseHeaders=null,this._serviceLocation=null},f=function a(){d(this,a),this.s=null,this.d=null,this.b=[]};e.MPD_TYPE="MPD",e.XLINK_EXPANSION_TYPE="XLinkExpansion",e.INIT_SEGMENT_TYPE="InitializationSegment",e.INDEX_SEGMENT_TYPE="IndexSegment",e.MEDIA_SEGMENT_TYPE="MediaSegment",e.BITSTREAM_SWITCHING_SEGMENT_TYPE="BitstreamSwitchingSegment",e.OTHER_TYPE="other",c.HTTPRequest=e,c.HTTPRequestTrace=f},{}],180:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.mediaType=null,this.type=null,this.requestTime=null,this.fetchTime=null,this.availabilityStartTime=null,this.presentationStartTime=0,this.clientTimeOffset=0,this.currentTime=null,this.buffered=null,this.latency=0,this.streamInfo=[],this.trackInfo=[]},f=function a(){d(this,a),this.id=null,this.index=null,this.start=null,this.duration=null},g=function a(){d(this,a),this.id=null,this.index=null,this.mediaType=null,this.streamIndex=null,this.presentationTimeOffset=null,this.startNumber=null,this.fragmentInfoType=null};c.ManifestUpdate=e,c.ManifestUpdateStreamInfo=f,c.ManifestUpdateTrackInfo=g},{}],181:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.start=null,this.mstart=null,this.starttype=null,this.trace=[]};e.INITIAL_PLAYOUT_START_REASON="initial_playout",e.SEEK_START_REASON="seek",e.RESUME_FROM_PAUSE_START_REASON="resume",e.METRICS_COLLECTION_START_REASON="metrics_collection_start";var f=function a(){d(this,a),this.representationid=null,this.subreplevel=null,this.start=null,this.mstart=null,this.duration=null,this.playbackspeed=null,this.stopreason=null};f.REPRESENTATION_SWITCH_STOP_REASON="representation_switch",f.REBUFFERING_REASON="rebuffering",f.USER_REQUEST_STOP_REASON="user_request",f.END_OF_PERIOD_STOP_REASON="end_of_period",f.END_OF_CONTENT_STOP_REASON="end_of_content",f.METRICS_COLLECTION_STOP_REASON="metrics_collection_end",f.FAILURE_STOP_REASON="failure",c.PlayList=e,c.PlayListTrace=f},{}],182:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.t=null,this.mt=null,this.to=null,this.lto=null};c.default=e,b.exports=c.default},{}],183:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.loadingRequests=[],this.executedRequests=[]};c.default=e,b.exports=c.default},{}],184:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.mediaType=null,this.t=null,this.type=null,this.startTime=null,this.availabilityStartTime=null,this.duration=null,this.quality=null,this.range=null,this.state=null};c.default=e,b.exports=c.default},{}],185:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function a(){d(this,a),this.tcpid=null,this.dest=null,this.topen=null,this.tclose=null,this.tconnect=null};c.default=e,b.exports=c.default},{}]},{},[5]);
+//# sourceMappingURL=dash.all.min.js.map
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/deps/hls.min.js b/src/main/webapp/static/js/paella/player/resources/deps/hls.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..6687506934a03c491eb159231fe4b03f3cd30482
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/deps/hls.min.js
@@ -0,0 +1,32 @@
+// Copyright (c) 2017 Dailymotion (http://www.dailymotion.com)
+
+// 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.
+
+// src/remux/mp4-generator.js and src/demux/exp-golomb.js implementation in this project
+// are derived from the HLS library for video.js (https://github.com/videojs/videojs-contrib-hls)
+
+// That work is also covered by the Apache 2 License, following copyright:
+// Copyright (c) 2013-2015 Brightcove
+
+
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Hls=e():t.Hls=e()}("undefined"!=typeof self?self:this,function(){return function(t){function e(i){if(r[i])return r[i].exports;var a=r[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,e),a.l=!0,a.exports}var r={};return e.m=t,e.c=r,e.d=function(t,r,i){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=27)}([function(t,e,r){"use strict";function i(){}function a(t,e){return e="["+t+"] > "+e}function n(t){var e=self.console[t];return e?function(){for(var r=arguments.length,i=Array(r),n=0;n<r;n++)i[n]=arguments[n];i[0]&&(i[0]=a(t,i[0])),e.apply(self.console,i)}:i}function o(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];r.forEach(function(e){u[e]=t[e]?t[e].bind(t):n(e)})}r.d(e,"a",function(){return d}),r.d(e,"b",function(){return c});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},l={trace:i,debug:i,log:i,warn:i,info:i,error:i},u=l,d=function(t){if(!0===t||"object"===(void 0===t?"undefined":s(t))){o(t,"debug","log","info","warn","error");try{u.log()}catch(t){u=l}}else u=l},c=u},function(t,e,r){"use strict";var i={MEDIA_ATTACHING:"hlsMediaAttaching",MEDIA_ATTACHED:"hlsMediaAttached",MEDIA_DETACHING:"hlsMediaDetaching",MEDIA_DETACHED:"hlsMediaDetached",BUFFER_RESET:"hlsBufferReset",BUFFER_CODECS:"hlsBufferCodecs",BUFFER_CREATED:"hlsBufferCreated",BUFFER_APPENDING:"hlsBufferAppending",BUFFER_APPENDED:"hlsBufferAppended",BUFFER_EOS:"hlsBufferEos",BUFFER_FLUSHING:"hlsBufferFlushing",BUFFER_FLUSHED:"hlsBufferFlushed",MANIFEST_LOADING:"hlsManifestLoading",MANIFEST_LOADED:"hlsManifestLoaded",MANIFEST_PARSED:"hlsManifestParsed",LEVEL_SWITCHING:"hlsLevelSwitching",LEVEL_SWITCHED:"hlsLevelSwitched",LEVEL_LOADING:"hlsLevelLoading",LEVEL_LOADED:"hlsLevelLoaded",LEVEL_UPDATED:"hlsLevelUpdated",LEVEL_PTS_UPDATED:"hlsLevelPtsUpdated",AUDIO_TRACKS_UPDATED:"hlsAudioTracksUpdated",AUDIO_TRACK_SWITCHING:"hlsAudioTrackSwitching",AUDIO_TRACK_SWITCHED:"hlsAudioTrackSwitched",AUDIO_TRACK_LOADING:"hlsAudioTrackLoading",AUDIO_TRACK_LOADED:"hlsAudioTrackLoaded",SUBTITLE_TRACKS_UPDATED:"hlsSubtitleTracksUpdated",SUBTITLE_TRACK_SWITCH:"hlsSubtitleTrackSwitch",SUBTITLE_TRACK_LOADING:"hlsSubtitleTrackLoading",SUBTITLE_TRACK_LOADED:"hlsSubtitleTrackLoaded",SUBTITLE_FRAG_PROCESSED:"hlsSubtitleFragProcessed",INIT_PTS_FOUND:"hlsInitPtsFound",FRAG_LOADING:"hlsFragLoading",FRAG_LOAD_PROGRESS:"hlsFragLoadProgress",FRAG_LOAD_EMERGENCY_ABORTED:"hlsFragLoadEmergencyAborted",FRAG_LOADED:"hlsFragLoaded",FRAG_DECRYPTED:"hlsFragDecrypted",FRAG_PARSING_INIT_SEGMENT:"hlsFragParsingInitSegment",FRAG_PARSING_USERDATA:"hlsFragParsingUserdata",FRAG_PARSING_METADATA:"hlsFragParsingMetadata",FRAG_PARSING_DATA:"hlsFragParsingData",FRAG_PARSED:"hlsFragParsed",FRAG_BUFFERED:"hlsFragBuffered",FRAG_CHANGED:"hlsFragChanged",FPS_DROP:"hlsFpsDrop",FPS_DROP_LEVEL_CAPPING:"hlsFpsDropLevelCapping",ERROR:"hlsError",DESTROYING:"hlsDestroying",KEY_LOADING:"hlsKeyLoading",KEY_LOADED:"hlsKeyLoaded",STREAM_STATE_TRANSITION:"hlsStreamStateTransition"};e.a=i},function(t,e,r){"use strict";r.d(e,"b",function(){return i}),r.d(e,"a",function(){return a});var i={NETWORK_ERROR:"networkError",MEDIA_ERROR:"mediaError",KEY_SYSTEM_ERROR:"keySystemError",MUX_ERROR:"muxError",OTHER_ERROR:"otherError"},a={KEY_SYSTEM_NO_KEYS:"keySystemNoKeys",KEY_SYSTEM_NO_ACCESS:"keySystemNoAccess",KEY_SYSTEM_NO_SESSION:"keySystemNoSession",KEY_SYSTEM_LICENSE_REQUEST_FAILED:"keySystemLicenseRequestFailed",MANIFEST_LOAD_ERROR:"manifestLoadError",MANIFEST_LOAD_TIMEOUT:"manifestLoadTimeOut",MANIFEST_PARSING_ERROR:"manifestParsingError",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"manifestIncompatibleCodecsError",LEVEL_LOAD_ERROR:"levelLoadError",LEVEL_LOAD_TIMEOUT:"levelLoadTimeOut",LEVEL_SWITCH_ERROR:"levelSwitchError",AUDIO_TRACK_LOAD_ERROR:"audioTrackLoadError",AUDIO_TRACK_LOAD_TIMEOUT:"audioTrackLoadTimeOut",FRAG_LOAD_ERROR:"fragLoadError",FRAG_LOAD_TIMEOUT:"fragLoadTimeOut",FRAG_DECRYPT_ERROR:"fragDecryptError",FRAG_PARSING_ERROR:"fragParsingError",REMUX_ALLOC_ERROR:"remuxAllocError",KEY_LOAD_ERROR:"keyLoadError",KEY_LOAD_TIMEOUT:"keyLoadTimeOut",BUFFER_ADD_CODEC_ERROR:"bufferAddCodecError",BUFFER_APPEND_ERROR:"bufferAppendError",BUFFER_APPENDING_ERROR:"bufferAppendingError",BUFFER_STALLED_ERROR:"bufferStalledError",BUFFER_FULL_ERROR:"bufferFullError",BUFFER_SEEK_OVER_HOLE:"bufferSeekOverHole",BUFFER_NUDGE_ON_STALL:"bufferNudgeOnStall",INTERNAL_EXCEPTION:"internalException"}},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(0),n=r(2),o=r(1),s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},l=new Set(["hlsEventGeneric","hlsHandlerDestroying","hlsHandlerDestroyed"]),u=function(){function t(e){i(this,t),this.hls=e,this.onEvent=this.onEvent.bind(this);for(var r=arguments.length,a=Array(r>1?r-1:0),n=1;n<r;n++)a[n-1]=arguments[n];this.handledEvents=a,this.useGenericHandler=!0,this.registerListeners()}return t.prototype.destroy=function(){this.onHandlerDestroying(),this.unregisterListeners(),this.onHandlerDestroyed()},t.prototype.onHandlerDestroying=function(){},t.prototype.onHandlerDestroyed=function(){},t.prototype.isEventHandler=function(){return"object"===s(this.handledEvents)&&this.handledEvents.length&&"function"==typeof this.onEvent},t.prototype.registerListeners=function(){this.isEventHandler()&&this.handledEvents.forEach(function(t){if(l.has(t))throw new Error("Forbidden event-name: "+t);this.hls.on(t,this.onEvent)},this)},t.prototype.unregisterListeners=function(){this.isEventHandler()&&this.handledEvents.forEach(function(t){this.hls.off(t,this.onEvent)},this)},t.prototype.onEvent=function(t,e){this.onEventGeneric(t,e)},t.prototype.onEventGeneric=function(t,e){var r=function(t,e){var r="on"+t.replace("hls","");if("function"!=typeof this[r])throw new Error("Event "+t+" has no generic handler in this "+this.constructor.name+" class (tried "+r+")");return this[r].bind(this,e)};try{r.call(this,t,e).call()}catch(e){a.b.error("An internal error happened while handling event "+t+'. Error message: "'+e.message+'". Here is a stacktrace:',e),this.hls.trigger(o.a.ERROR,{type:n.b.OTHER_ERROR,details:n.a.INTERNAL_EXCEPTION,fatal:!1,event:t,err:e})}},t}();e.a=u},function(t,e,r){!function(e){var r=/^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/\;?#]*)?(.*?)??(;.*?)?(\?.*?)?(#.*?)?$/,i=/^([^\/;?#]*)(.*)$/,a=/(?:\/|^)\.(?=\/)/g,n=/(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g,o={buildAbsoluteURL:function(t,e,r){if(r=r||{},t=t.trim(),!(e=e.trim())){if(!r.alwaysNormalize)return t;var a=o.parseURL(t);if(!a)throw new Error("Error trying to parse base URL.");return a.path=o.normalizePath(a.path),o.buildURLFromParts(a)}var n=o.parseURL(e);if(!n)throw new Error("Error trying to parse relative URL.");if(n.scheme)return r.alwaysNormalize?(n.path=o.normalizePath(n.path),o.buildURLFromParts(n)):e;var s=o.parseURL(t);if(!s)throw new Error("Error trying to parse base URL.");if(!s.netLoc&&s.path&&"/"!==s.path[0]){var l=i.exec(s.path);s.netLoc=l[1],s.path=l[2]}s.netLoc&&!s.path&&(s.path="/");var u={scheme:s.scheme,netLoc:n.netLoc,path:null,params:n.params,query:n.query,fragment:n.fragment};if(!n.netLoc&&(u.netLoc=s.netLoc,"/"!==n.path[0]))if(n.path){var d=s.path,c=d.substring(0,d.lastIndexOf("/")+1)+n.path;u.path=o.normalizePath(c)}else u.path=s.path,n.params||(u.params=s.params,n.query||(u.query=s.query));return null===u.path&&(u.path=r.alwaysNormalize?o.normalizePath(n.path):n.path),o.buildURLFromParts(u)},parseURL:function(t){var e=r.exec(t);return e?{scheme:e[1]||"",netLoc:e[2]||"",path:e[3]||"",params:e[4]||"",query:e[5]||"",fragment:e[6]||""}:null},normalizePath:function(t){for(t=t.split("").reverse().join("").replace(a,"");t.length!==(t=t.replace(n,"")).length;);return t.split("").reverse().join("")},buildURLFromParts:function(t){return t.scheme+t.netLoc+t.path+t.params+t.query+t.fragment}};t.exports=o}()},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.d(e,"b",function(){return n});var a=function(){function t(){i(this,t)}return t.isHeader=function(t,e){return e+10<=t.length&&73===t[e]&&68===t[e+1]&&51===t[e+2]&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128},t.isFooter=function(t,e){return e+10<=t.length&&51===t[e]&&68===t[e+1]&&73===t[e+2]&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128},t.getID3Data=function(e,r){for(var i=r,a=0;t.isHeader(e,r);){a+=10;a+=t._readSize(e,r+6),t.isFooter(e,r+10)&&(a+=10),r+=a}if(a>0)return e.subarray(i,i+a)},t._readSize=function(t,e){var r=0;return r=(127&t[e])<<21,r|=(127&t[e+1])<<14,r|=(127&t[e+2])<<7,r|=127&t[e+3]},t.getTimeStamp=function(e){for(var r=t.getID3Frames(e),i=0;i<r.length;i++){var a=r[i];if(t.isTimeStampFrame(a))return t._readTimeStamp(a)}},t.isTimeStampFrame=function(t){return t&&"PRIV"===t.key&&"com.apple.streaming.transportStreamTimestamp"===t.info},t._getFrameData=function(e){var r=String.fromCharCode(e[0],e[1],e[2],e[3]),i=t._readSize(e,4);return{type:r,size:i,data:e.subarray(10,10+i)}},t.getID3Frames=function(e){for(var r=0,i=[];t.isHeader(e,r);){var a=t._readSize(e,r+6);r+=10;for(var n=r+a;r+8<n;){var o=t._getFrameData(e.subarray(r)),s=t._decodeFrame(o);s&&i.push(s),r+=o.size+10}t.isFooter(e,r)&&(r+=10)}return i},t._decodeFrame=function(e){return"PRIV"===e.type?t._decodePrivFrame(e):"T"===e.type[0]?t._decodeTextFrame(e):"W"===e.type[0]?t._decodeURLFrame(e):void 0},t._readTimeStamp=function(t){if(8===t.data.byteLength){var e=new Uint8Array(t.data),r=1&e[3],i=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return i/=45,r&&(i+=47721858.84),Math.round(i)}},t._decodePrivFrame=function(e){if(!(e.size<2)){var r=t._utf8ArrayToStr(e.data,!0),i=new Uint8Array(e.data.subarray(r.length+1));return{key:e.type,info:r,data:i.buffer}}},t._decodeTextFrame=function(e){if(!(e.size<2)){if("TXXX"===e.type){var r=1,i=t._utf8ArrayToStr(e.data.subarray(r));r+=i.length+1;var a=t._utf8ArrayToStr(e.data.subarray(r));return{key:e.type,info:i,data:a}}var n=t._utf8ArrayToStr(e.data.subarray(1));return{key:e.type,data:n}}},t._decodeURLFrame=function(e){if("WXXX"===e.type){if(e.size<2)return;var r=1,i=t._utf8ArrayToStr(e.data.subarray(r));r+=i.length+1;var a=t._utf8ArrayToStr(e.data.subarray(r));return{key:e.type,info:i,data:a}}var n=t._utf8ArrayToStr(e.data);return{key:e.type,data:n}},t._utf8ArrayToStr=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=t.length,i=void 0,a=void 0,n=void 0,o="",s=0;s<r;){if(0===(i=t[s++])&&e)return o;if(0!==i&&3!==i)switch(i>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(i);break;case 12:case 13:a=t[s++],o+=String.fromCharCode((31&i)<<6|63&a);break;case 14:a=t[s++],n=t[s++],o+=String.fromCharCode((15&i)<<12|(63&a)<<6|(63&n)<<0)}}return o},t}(),n=a._utf8ArrayToStr;e.a=a},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(4),n=r.n(a),o=r(16),s=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),l=function(){function t(){var e;i(this,t),this._url=null,this._byteRange=null,this._decryptdata=null,this.tagList=[],this._elementaryStreams=(e={},e[t.ElementaryStreamTypes.AUDIO]=!1,e[t.ElementaryStreamTypes.VIDEO]=!1,e)}return t.prototype.addElementaryStream=function(t){this._elementaryStreams[t]=!0},t.prototype.hasElementaryStream=function(t){return!0===this._elementaryStreams[t]},t.prototype.createInitializationVector=function(t){for(var e=new Uint8Array(16),r=12;r<16;r++)e[r]=t>>8*(15-r)&255;return e},t.prototype.fragmentDecryptdataFromLevelkey=function(t,e){var r=t;return t&&t.method&&t.uri&&!t.iv&&(r=new o.a,r.method=t.method,r.baseuri=t.baseuri,r.reluri=t.reluri,r.iv=this.createInitializationVector(e)),r},s(t,[{key:"url",get:function(){return!this._url&&this.relurl&&(this._url=n.a.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url},set:function(t){this._url=t}},{key:"programDateTime",get:function(){return!this._programDateTime&&this.rawProgramDateTime&&(this._programDateTime=new Date(Date.parse(this.rawProgramDateTime))),this._programDateTime}},{key:"byteRange",get:function(){if(!this._byteRange&&!this.rawByteRange)return[];if(this._byteRange)return this._byteRange;var t=[];if(this.rawByteRange){var e=this.rawByteRange.split("@",2);if(1===e.length){var r=this.lastByteRangeEndOffset;t[0]=r||0}else t[0]=parseInt(e[1]);t[1]=parseInt(e[0])+t[0],this._byteRange=t}return t}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"decryptdata",get:function(){return this._decryptdata||(this._decryptdata=this.fragmentDecryptdataFromLevelkey(this.levelkey,this.sn)),this._decryptdata}}],[{key:"ElementaryStreamTypes",get:function(){return{AUDIO:"audio",VIDEO:"video"}}}]),t}();e.a=l},function(t,e,r){"use strict";var i={search:function(t,e){for(var r=0,i=t.length-1,a=null,n=null;r<=i;){a=(r+i)/2|0,n=t[a];var o=e(n);if(o>0)r=a+1;else{if(!(o<0))return n;i=a-1}}return null}};e.a=i},function(t,e,r){"use strict";var i={isBuffered:function(t,e){try{if(t)for(var r=t.buffered,i=0;i<r.length;i++)if(e>=r.start(i)&&e<=r.end(i))return!0}catch(t){}return!1},bufferInfo:function(t,e,r){try{if(t){var i=t.buffered,a=[],n=void 0;for(n=0;n<i.length;n++)a.push({start:i.start(n),end:i.end(n)});return this.bufferedInfo(a,e,r)}}catch(t){}return{len:0,start:e,end:e,nextStart:void 0}},bufferedInfo:function(t,e,r){var i=[],a=void 0,n=void 0,o=void 0,s=void 0,l=void 0;for(t.sort(function(t,e){var r=t.start-e.start;return r||e.end-t.end}),l=0;l<t.length;l++){var u=i.length;if(u){var d=i[u-1].end;t[l].start-d<r?t[l].end>d&&(i[u-1].end=t[l].end):i.push(t[l])}else i.push(t[l])}for(l=0,a=0,n=o=e;l<i.length;l++){var c=i[l].start,h=i[l].end;if(e+r>=c&&e<h)n=c,o=h,a=o-e;else if(e+r<c){s=c;break}}return{len:a,start:n,end:o,nextStart:s}}};e.a=i},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(33),n=r(34),o=r(35),s=r(2),l=r(0),u=function(){function t(e,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=a.removePKCS7Padding,o=void 0===n||n;if(i(this,t),this.logEnabled=!0,this.observer=e,this.config=r,this.removePKCS7Padding=o,o)try{var s=crypto||self.crypto;this.subtle=s.subtle||s.webkitSubtle}catch(t){}this.disableWebCrypto=!this.subtle}return t.prototype.isSync=function(){return this.disableWebCrypto&&this.config.enableSoftwareAES},t.prototype.decrypt=function(t,e,r,i){var s=this;if(this.disableWebCrypto&&this.config.enableSoftwareAES){this.logEnabled&&(l.b.log("JS AES decrypt"),this.logEnabled=!1);var u=this.decryptor;u||(this.decryptor=u=new o.a),u.expandKey(e),i(u.decrypt(t,0,r,this.removePKCS7Padding))}else{this.logEnabled&&(l.b.log("WebCrypto AES decrypt"),this.logEnabled=!1);var d=this.subtle;this.key!==e&&(this.key=e,this.fastAesKey=new n.a(d,e)),this.fastAesKey.expandKey().then(function(n){new a.a(d,r).decrypt(t,n).catch(function(a){s.onWebCryptoError(a,t,e,r,i)}).then(function(t){i(t)})}).catch(function(a){s.onWebCryptoError(a,t,e,r,i)})}},t.prototype.onWebCryptoError=function(t,e,r,i,a){this.config.enableSoftwareAES?(l.b.log("WebCrypto Error, disable WebCrypto API"),this.disableWebCrypto=!0,this.logEnabled=!0,this.decrypt(e,r,i,a)):(l.b.error("decrypting error : "+t.message),this.observer.trigger(Event.ERROR,{type:s.b.MEDIA_ERROR,details:s.a.FRAG_DECRYPT_ERROR,fatal:!0,reason:t.message}))},t.prototype.destroy=function(){var t=this.decryptor;t&&(t.destroy(),this.decryptor=void 0)},t}();e.a=u},function(t,e){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(t){return"function"==typeof t}function a(t){return"number"==typeof t}function n(t){return"object"==typeof t&&null!==t}function o(t){return void 0===t}t.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(t){if(!a(t)||t<0||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},r.prototype.emit=function(t){var e,r,a,s,l,u;if(this._events||(this._events={}),"error"===t&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var d=new Error('Uncaught, unspecified "error" event. ('+e+")");throw d.context=e,d}if(r=this._events[t],o(r))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(n(r))for(s=Array.prototype.slice.call(arguments,1),u=r.slice(),a=u.length,l=0;l<a;l++)u[l].apply(this,s);return!0},r.prototype.addListener=function(t,e){var a;if(!i(e))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,i(e.listener)?e.listener:e),this._events[t]?n(this._events[t])?this._events[t].push(e):this._events[t]=[this._events[t],e]:this._events[t]=e,n(this._events[t])&&!this._events[t].warned&&(a=o(this._maxListeners)?r.defaultMaxListeners:this._maxListeners)&&a>0&&this._events[t].length>a&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(t,e){function r(){this.removeListener(t,r),a||(a=!0,e.apply(this,arguments))}if(!i(e))throw TypeError("listener must be a function");var a=!1;return r.listener=e,this.on(t,r),this},r.prototype.removeListener=function(t,e){var r,a,o,s;if(!i(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(r=this._events[t],o=r.length,a=-1,r===e||i(r.listener)&&r.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(n(r)){for(s=o;s-- >0;)if(r[s]===e||r[s].listener&&r[s].listener===e){a=s;break}if(a<0)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(a,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},r.prototype.removeAllListeners=function(t){var e,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[t],i(r))this.removeListener(t,r);else if(r)for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},r.prototype.listeners=function(t){return this._events&&this._events[t]?i(this._events[t])?[this._events[t]]:this._events[t].slice():[]},r.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(i(e))return 1;if(e)return e.length}return 0},r.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e,r){"use strict";function i(){if("undefined"!=typeof window)return window.MediaSource||window.WebKitMediaSource}e.a=i},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.d(e,"a",function(){return l}),r.d(e,"b",function(){return u});var o=r(3),s=r(1),l={NOT_LOADED:"NOT_LOADED",APPENDING:"APPENDING",PARTIAL:"PARTIAL",OK:"OK"},u=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,s.a.BUFFER_APPENDED,s.a.FRAG_BUFFERED,s.a.FRAG_LOADED));return n.bufferPadding=.2,n.fragments=Object.create(null),n.timeRanges=Object.create(null),n.config=r.config,n}return n(e,t),e.prototype.destroy=function(){this.fragments=null,this.timeRanges=null,this.config=null,o.a.prototype.destroy.call(this),t.prototype.destroy.call(this)},e.prototype.getBufferedFrag=function(t,e){var r=this.fragments,i=Object.keys(r).filter(function(i){var a=r[i];if(a.body.type!==e)return!1;if(!a.buffered)return!1;var n=a.body;return n.startPTS<=t&&t<=n.endPTS});if(0===i.length)return null;var a=i.pop();return r[a].body},e.prototype.detectEvictedFragments=function(t,e){var r=this,i=void 0,a=void 0;Object.keys(this.fragments).forEach(function(n){var o=r.fragments[n];if(!0===o.buffered){var s=o.range[t];if(s){i=s.time;for(var l=0;l<i.length;l++)if(a=i[l],!1===r.isTimeBuffered(a.startPTS,a.endPTS,e)){r.removeFragment(o.body);break}}}})},e.prototype.detectPartialFragments=function(t){var e=this,r=this.getFragmentKey(t),i=this.fragments[r];i&&(i.buffered=!0,Object.keys(this.timeRanges).forEach(function(r){if(!0===t.hasElementaryStream(r)){var a=e.timeRanges[r];i.range[r]=e.getBufferedTimes(t.startPTS,t.endPTS,a)}}))},e.prototype.getBufferedTimes=function(t,e,r){for(var i=[],a=void 0,n=void 0,o=!1,s=0;s<r.length;s++){if(a=r.start(s)-this.bufferPadding,n=r.end(s)+this.bufferPadding,t>=a&&e<=n){i.push({startPTS:Math.max(t,r.start(s)),endPTS:Math.min(e,r.end(s))});break}if(t<n&&e>a)i.push({startPTS:Math.max(t,r.start(s)),endPTS:Math.min(e,r.end(s))}),o=!0;else if(e<=a)break}return{time:i,partial:o}},e.prototype.getFragmentKey=function(t){return t.type+"_"+t.level+"_"+t.sn},e.prototype.getPartialFragment=function(t){var e=this,r=void 0,i=void 0,a=void 0,n=null,o=0;return Object.keys(this.fragments).forEach(function(s){var l=e.fragments[s];e.isPartial(l)&&(i=l.body.startPTS-e.bufferPadding,a=l.body.endPTS+e.bufferPadding,t>=i&&t<=a&&(r=Math.min(t-i,a-t),o<=r&&(n=l.body,o=r)))}),n},e.prototype.getState=function(t){var e=this.getFragmentKey(t),r=this.fragments[e],i=l.NOT_LOADED;return void 0!==r&&(i=r.buffered?!0===this.isPartial(r)?l.PARTIAL:l.OK:l.APPENDING),i},e.prototype.isPartial=function(t){return!0===t.buffered&&(void 0!==t.range.video&&!0===t.range.video.partial||void 0!==t.range.audio&&!0===t.range.audio.partial)},e.prototype.isTimeBuffered=function(t,e,r){for(var i=void 0,a=void 0,n=0;n<r.length;n++){if(i=r.start(n)-this.bufferPadding,a=r.end(n)+this.bufferPadding,t>=i&&e<=a)return!0;if(e<=i)return!1}return!1},e.prototype.onFragLoaded=function(t){var e=t.frag;if(!isNaN(e.sn)){var r=this.getFragmentKey(e),i={body:e,range:Object.create(null),buffered:!1};this.fragments[r]=i}},e.prototype.onBufferAppended=function(t){var e=this;this.timeRanges=t.timeRanges,Object.keys(this.timeRanges).forEach(function(t){var r=e.timeRanges[t];e.detectEvictedFragments(t,r)})},e.prototype.onFragBuffered=function(t){this.detectPartialFragments(t.frag)},e.prototype.hasFragment=function(t){var e=this.getFragmentKey(t);return void 0!==this.fragments[e]},e.prototype.removeFragment=function(t){var e=this.getFragmentKey(t);delete this.fragments[e]},e.prototype.removeAllFragments=function(){this.fragments=Object.create(null)},e}(o.a)},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(3),s=function(t){function e(r){i(this,e);for(var n=arguments.length,o=Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];var l=a(this,t.call.apply(t,[this,r].concat(o)));return l._tickInterval=null,l._tickCallCount=0,l}return n(e,t),e.prototype.destroy=function(){this.clearInterval(),t.prototype.destroy.call(this)},e.prototype.hasInterval=function(){return null!==this._tickInterval},e.prototype.setInterval=function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}(function(t){return!this._tickInterval&&(this._tickInterval=setInterval(this.tick.bind(this,!1),t),!0)}),e.prototype.clearInterval=function(t){function e(){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}(function(){return!!this._tickInterval&&(clearInterval(this._tickInterval),this._tickInterval=null,!0)}),e.prototype.tick=function(){1===++this._tickCallCount&&(this.doTick(),this._tickCallCount>1&&setTimeout(this.tick.bind(this),0),this._tickCallCount=0)},e.prototype.doTick=function(){throw new Error("TaskLoop is abstract and `doLoop` must be implemented")},e}(o.a);e.a=s},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=r(2),u=r(0),d=r(15),c=r(28),h=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),f={MANIFEST:"manifest",LEVEL:"level",AUDIO_TRACK:"audioTrack",SUBTITLE_TRACK:"subtitleTrack"},p={MAIN:"main",AUDIO:"audio",SUBTITLE:"subtitle"},v=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,o.a.MANIFEST_LOADING,o.a.LEVEL_LOADING,o.a.AUDIO_TRACK_LOADING,o.a.SUBTITLE_TRACK_LOADING));return n.loaders={},n}return n(e,t),e.canHaveQualityLevels=function(t){return t!==f.AUDIO_TRACK&&t!==f.SUBTITLE_TRACK},e.mapContextToLevelType=function(t){switch(t.type){case f.AUDIO_TRACK:return p.AUDIO;case f.SUBTITLE_TRACK:return p.SUBTITLE;default:return p.MAIN}},e.getResponseUrl=function(t,e){var r=t.url;return void 0!==r&&0!==r.indexOf("data:")||(r=e.url),r},e.prototype.createInternalLoader=function(t){var e=this.hls.config,r=e.pLoader,i=e.loader,a=r||i,n=new a(e);return t.loader=n,this.loaders[t.type]=n,n},e.prototype.getInternalLoader=function(t){return this.loaders[t.type]},e.prototype.resetInternalLoader=function(t){this.loaders[t]&&delete this.loaders[t]},e.prototype.destroyInternalLoaders=function(){for(var t in this.loaders){var e=this.loaders[t];e&&e.destroy(),this.resetInternalLoader(t)}},e.prototype.destroy=function(){this.destroyInternalLoaders(),t.prototype.destroy.call(this)},e.prototype.onManifestLoading=function(t){this.load(t.url,{type:f.MANIFEST})},e.prototype.onLevelLoading=function(t){this.load(t.url,{type:f.LEVEL,level:t.level,id:t.id})},e.prototype.onAudioTrackLoading=function(t){this.load(t.url,{type:f.AUDIO_TRACK,id:t.id})},e.prototype.onSubtitleTrackLoading=function(t){this.load(t.url,{type:f.SUBTITLE_TRACK,id:t.id})},e.prototype.load=function(t,e){var r=this.hls.config,i=this.getInternalLoader(e);if(i){var a=i.context;if(a&&a.url===t)return u.b.trace("playlist request ongoing"),!1;u.b.warn("aborting previous loader for type: "+e.type),i.abort()}var n=void 0,o=void 0,s=void 0,l=void 0;switch(e.type){case f.MANIFEST:n=r.manifestLoadingMaxRetry,o=r.manifestLoadingTimeOut,s=r.manifestLoadingRetryDelay,l=r.manifestLoadingMaxRetryTimeout;break;case f.LEVEL:n=0,o=r.levelLoadingTimeOut;break;default:n=r.levelLoadingMaxRetry,o=r.levelLoadingTimeOut,s=r.levelLoadingRetryDelay,l=r.levelLoadingMaxRetryTimeout,u.b.log("Playlist loader for "+e.type+" "+(e.level||e.id))}i=this.createInternalLoader(e),e.url=t,e.responseType=e.responseType||"";var d=void 0,c=void 0;return d={timeout:o,maxRetry:n,retryDelay:s,maxRetryDelay:l},c={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},i.load(e,d,c),!0},e.prototype.loadsuccess=function(t,e,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(r.isSidxRequest)return this._handleSidxRequest(t,r),void this._handlePlaylistLoaded(t,e,r,i);this.resetInternalLoader(r.type);var a=t.data;if(e.tload=performance.now(),0!==a.indexOf("#EXTM3U"))return void this._handleManifestParsingError(t,r,"no EXTM3U delimiter",i);a.indexOf("#EXTINF:")>0||a.indexOf("#EXT-X-TARGETDURATION:")>0?this._handleTrackOrLevelPlaylist(t,e,r,i):this._handleMasterPlaylist(t,e,r,i)},e.prototype.loaderror=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._handleNetworkError(e,r)},e.prototype.loadtimeout=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._handleNetworkError(e,r,!0)},e.prototype._handleMasterPlaylist=function(t,r,i,a){var n=this.hls,s=t.data,l=e.getResponseUrl(t,i),d=c.a.parseMasterPlaylist(s,l);if(!d.length)return void this._handleManifestParsingError(t,i,"no level found in manifest",a);var h=d.map(function(t){return{id:t.attrs.AUDIO,codec:t.audioCodec}}),f=c.a.parseMasterPlaylistMedia(s,l,"AUDIO",h),p=c.a.parseMasterPlaylistMedia(s,l,"SUBTITLES");if(f.length){var v=!1;f.forEach(function(t){t.url||(v=!0)}),!1===v&&d[0].audioCodec&&!d[0].attrs.AUDIO&&(u.b.log("audio codec signaled in quality level, but no embedded audio track signaled, create one"),f.unshift({type:"main",name:"main"}))}n.trigger(o.a.MANIFEST_LOADED,{levels:d,audioTracks:f,subtitles:p,url:l,stats:r,networkDetails:a})},e.prototype._handleTrackOrLevelPlaylist=function(t,r,i,a){var n=this.hls,s=i.id,l=i.level,u=i.type,d=e.getResponseUrl(t,i),h=isNaN(l)?isNaN(s)?0:s:l,p=e.mapContextToLevelType(i),v=c.a.parseLevelPlaylist(t.data,d,h,p);if(v.tload=r.tload,u===f.MANIFEST){var g={url:d,details:v};n.trigger(o.a.MANIFEST_LOADED,{levels:[g],audioTracks:[],url:d,stats:r,networkDetails:a})}if(r.tparsed=performance.now(),v.needSidxRanges){var y=v.initSegment.url;return void this.load(y,{isSidxRequest:!0,type:u,level:l,levelDetails:v,id:s,rangeStart:0,rangeEnd:2048,responseType:"arraybuffer"})}i.levelDetails=v,this._handlePlaylistLoaded(t,r,i,a)},e.prototype._handleSidxRequest=function(t,e){var r=d.a.parseSegmentIndex(new Uint8Array(t.data));r.references.forEach(function(t,r){var i=t.info,a=e.levelDetails.fragments[r];0===a.byteRange.length&&(a.rawByteRange=String(1+i.end-i.start)+"@"+String(i.start))}),e.levelDetails.initSegment.rawByteRange=String(r.moovEndOffset)+"@0"},e.prototype._handleManifestParsingError=function(t,e,r,i){this.hls.trigger(o.a.ERROR,{type:l.b.NETWORK_ERROR,details:l.a.MANIFEST_PARSING_ERROR,fatal:!0,url:t.url,reason:r,networkDetails:i})},e.prototype._handleNetworkError=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=void 0,a=void 0,n=this.getInternalLoader(t);switch(t.type){case f.MANIFEST:i=r?l.a.MANIFEST_LOAD_TIMEOUT:l.a.MANIFEST_LOAD_ERROR,a=!0;break;case f.LEVEL:i=r?l.a.LEVEL_LOAD_TIMEOUT:l.a.LEVEL_LOAD_ERROR,a=!1;break;case f.AUDIO_TRACK:i=r?l.a.AUDIO_TRACK_LOAD_TIMEOUT:l.a.AUDIO_TRACK_LOAD_ERROR,a=!1;break;default:a=!1}n&&(n.abort(),this.resetInternalLoader(t.type)),this.hls.trigger(o.a.ERROR,{type:l.b.NETWORK_ERROR,details:i,fatal:a,url:n.url,loader:n,context:t,networkDetails:e})},e.prototype._handlePlaylistLoaded=function(t,r,i,a){var n=i.type,s=i.level,l=i.id,u=i.levelDetails;if(!u.targetduration)return void this._handleManifestParsingError(t,i,"invalid target duration",a);if(e.canHaveQualityLevels(i.type))this.hls.trigger(o.a.LEVEL_LOADED,{details:u,level:s||0,id:l||0,stats:r,networkDetails:a});else switch(n){case f.AUDIO_TRACK:this.hls.trigger(o.a.AUDIO_TRACK_LOADED,{details:u,id:l,stats:r,networkDetails:a});break;case f.SUBTITLE_TRACK:this.hls.trigger(o.a.SUBTITLE_TRACK_LOADED,{details:u,id:l,stats:r,networkDetails:a})}},h(e,null,[{key:"ContextType",get:function(){return f}},{key:"LevelType",get:function(){return p}}]),e}(s.a);e.a=v},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(0),n=r(1),o=Math.pow(2,32)-1,s=function(){function t(e,r){i(this,t),this.observer=e,this.remuxer=r}return t.prototype.resetTimeStamp=function(t){this.initPTS=t},t.prototype.resetInitSegment=function(e,r,i,a){if(e&&e.byteLength){var o=this.initData=t.parseInitSegment(e);null==r&&(r="mp4a.40.5"),null==i&&(i="avc1.42e01e");var s={};o.audio&&o.video?s.audiovideo={container:"video/mp4",codec:r+","+i,initSegment:a?e:null}:(o.audio&&(s.audio={container:"audio/mp4",codec:r,initSegment:a?e:null}),o.video&&(s.video={container:"video/mp4",codec:i,initSegment:a?e:null})),this.observer.trigger(n.a.FRAG_PARSING_INIT_SEGMENT,{tracks:s})}else r&&(this.audioCodec=r),i&&(this.videoCodec=i)},t.probe=function(e){return t.findBox({data:e,start:0,end:Math.min(e.length,16384)},["moof"]).length>0},t.bin2str=function(t){return String.fromCharCode.apply(null,t)},t.readUint16=function(t,e){t.data&&(e+=t.start,t=t.data);var r=t[e]<<8|t[e+1];return r<0?65536+r:r},t.readUint32=function(t,e){t.data&&(e+=t.start,t=t.data);var r=t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3];return r<0?4294967296+r:r},t.writeUint32=function(t,e,r){t.data&&(e+=t.start,t=t.data),t[e]=r>>24,t[e+1]=r>>16&255,t[e+2]=r>>8&255,t[e+3]=255&r},t.findBox=function(e,r){var i=[],a=void 0,n=void 0,o=void 0,s=void 0,l=void 0,u=void 0,d=void 0;if(e.data?(u=e.start,s=e.end,e=e.data):(u=0,s=e.byteLength),!r.length)return null;for(a=u;a<s;)n=t.readUint32(e,a),o=t.bin2str(e.subarray(a+4,a+8)),d=n>1?a+n:s,o===r[0]&&(1===r.length?i.push({data:e,start:a+8,end:d}):(l=t.findBox({data:e,start:a+8,end:d},r.slice(1)),l.length&&(i=i.concat(l)))),a=d;return i},t.parseSegmentIndex=function(e){var r=t.findBox(e,["moov"])[0],i=r?r.end:null,a=0,n=t.findBox(e,["sidx"]),o=void 0;if(!n||!n[0])return null;o=[],n=n[0];var s=n.data[0];a=0===s?8:16;var l=t.readUint32(n,a);a+=4;a+=0===s?8:16,a+=2;var u=n.end+0,d=t.readUint16(n,a);a+=2;for(var c=0;c<d;c++){var h=a,f=t.readUint32(n,h);h+=4;var p=2147483647&f;if(1===(2147483648&f)>>>31)return void console.warn("SIDX has hierarchical references (not supported)");var v=t.readUint32(n,h);h+=4,o.push({referenceSize:p,subsegmentDuration:v,info:{duration:v/l,start:u,end:u+p-1}}),u+=p,h+=4,a=h}return{earliestPresentationTime:0,timescale:l,version:s,referencesCount:d,references:o,moovEndOffset:i}},t.parseInitSegment=function(e){var r=[];return t.findBox(e,["moov","trak"]).forEach(function(e){var i=t.findBox(e,["tkhd"])[0];if(i){var n=i.data[i.start],o=0===n?12:20,s=t.readUint32(i,o),l=t.findBox(e,["mdia","mdhd"])[0];if(l){n=l.data[l.start],o=0===n?12:20;var u=t.readUint32(l,o),d=t.findBox(e,["mdia","hdlr"])[0];if(d){var c=t.bin2str(d.data.subarray(d.start+8,d.start+12)),h={soun:"audio",vide:"video"}[c];if(h){var f=t.findBox(e,["mdia","minf","stbl","stsd"]);if(f.length){f=f[0];var p=t.bin2str(f.data.subarray(f.start+12,f.start+16));a.b.log("MP4Demuxer:"+h+":"+p+" found")}r[s]={timescale:u,type:h},r[h]={timescale:u,id:s}}}}}}),r},t.getStartDTS=function(e,r){var i=void 0,a=void 0,n=void 0;return i=t.findBox(r,["moof","traf"]),a=[].concat.apply([],i.map(function(r){return t.findBox(r,["tfhd"]).map(function(i){var a=void 0,n=void 0;return a=t.readUint32(i,4),n=e[a].timescale||9e4,t.findBox(r,["tfdt"]).map(function(e){var r=void 0,i=void 0;return r=e.data[e.start],i=t.readUint32(e,4),1===r&&(i*=Math.pow(2,32),i+=t.readUint32(e,8)),i})[0]/n})})),n=Math.min.apply(null,a),isFinite(n)?n:0},t.offsetStartDTS=function(e,r,i){t.findBox(r,["moof","traf"]).map(function(r){return t.findBox(r,["tfhd"]).map(function(a){var n=t.readUint32(a,4),s=e[n].timescale||9e4;t.findBox(r,["tfdt"]).map(function(e){var r=e.data[e.start],a=t.readUint32(e,4);if(0===r)t.writeUint32(e,4,a-i*s);else{a*=Math.pow(2,32),a+=t.readUint32(e,8),a-=i*s,a=Math.max(a,0);var n=Math.floor(a/(o+1)),l=Math.floor(a%(o+1));t.writeUint32(e,4,n),t.writeUint32(e,8,l)}})})})},t.prototype.append=function(e,r,i,a){var o=this.initData;o||(this.resetInitSegment(e,this.audioCodec,this.videoCodec,!1),o=this.initData);var s=void 0,l=this.initPTS;if(void 0===l){var u=t.getStartDTS(o,e);this.initPTS=l=u-r,this.observer.trigger(n.a.INIT_PTS_FOUND,{initPTS:l})}t.offsetStartDTS(o,e,l),s=t.getStartDTS(o,e),this.remuxer.remux(o.audio,o.video,null,null,s,i,a,e)},t.prototype.destroy=function(){},t}();e.a=s},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(4),n=r.n(a),o=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),s=function(){function t(){i(this,t),this.method=null,this.key=null,this.iv=null,this._uri=null}return o(t,[{key:"uri",get:function(){return!this._uri&&this.reluri&&(this._uri=n.a.buildAbsoluteURL(this.baseuri,this.reluri,{alwaysNormalize:!0})),this._uri}}]),t}();e.a=s},function(t,e,r){"use strict";function i(t,e){var r=n[e];return!!r&&!0===r[t.slice(0,4)]}function a(t,e){return MediaSource.isTypeSupported((e||"video")+'/mp4;codecs="'+t+'"')}r.d(e,"b",function(){return i}),r.d(e,"a",function(){return a});var n={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,drac:!0,dvav:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0}}},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(1),n=r(19),o=r(0),s=r(2),l=r(10),u=r.n(l),d=r(45),c=r.n(d),h=r(11),f=Object(h.a)(),p=function(){function t(e,r){i(this,t),this.hls=e,this.id=r;var l=this.observer=new u.a,d=e.config;l.trigger=function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];l.emit.apply(l,[t,t].concat(r))},l.off=function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];l.removeListener.apply(l,[t].concat(r))};var h=function(t,r){r=r||{},r.frag=this.frag,r.id=this.id,e.trigger(t,r)}.bind(this);l.on(a.a.FRAG_DECRYPTED,h),l.on(a.a.FRAG_PARSING_INIT_SEGMENT,h),l.on(a.a.FRAG_PARSING_DATA,h),l.on(a.a.FRAG_PARSED,h),l.on(a.a.ERROR,h),l.on(a.a.FRAG_PARSING_METADATA,h),l.on(a.a.FRAG_PARSING_USERDATA,h),l.on(a.a.INIT_PTS_FOUND,h);var p={mp4:f.isTypeSupported("video/mp4"),mpeg:f.isTypeSupported("audio/mpeg"),mp3:f.isTypeSupported('audio/mp4; codecs="mp3"')},v=navigator.vendor;if(d.enableWorker&&"undefined"!=typeof Worker){o.b.log("demuxing in webworker");var g=void 0;try{g=this.w=c()(46),this.onwmsg=this.onWorkerMessage.bind(this),g.addEventListener("message",this.onwmsg),g.onerror=function(t){e.trigger(a.a.ERROR,{type:s.b.OTHER_ERROR,details:s.a.INTERNAL_EXCEPTION,fatal:!0,event:"demuxerWorker",err:{message:t.message+" ("+t.filename+":"+t.lineno+")"}})},g.postMessage({cmd:"init",typeSupported:p,vendor:v,id:r,config:JSON.stringify(d)})}catch(t){o.b.error("error while initializing DemuxerWorker, fallback on DemuxerInline"),g&&URL.revokeObjectURL(g.objectURL),this.demuxer=new n.a(l,p,d,v),this.w=void 0}}else this.demuxer=new n.a(l,p,d,v)}return t.prototype.destroy=function(){var t=this.w;if(t)t.removeEventListener("message",this.onwmsg),t.terminate(),this.w=null;else{var e=this.demuxer;e&&(e.destroy(),this.demuxer=null)}var r=this.observer;r&&(r.removeAllListeners(),this.observer=null)},t.prototype.push=function(t,e,r,i,a,n,s,l){var u=this.w,d=isNaN(a.startDTS)?a.start:a.startDTS,c=a.decryptdata,h=this.frag,f=!(h&&a.cc===h.cc),p=!(h&&a.level===h.level),v=h&&a.sn===h.sn+1,g=!p&&v;if(f&&o.b.log(this.id+":discontinuity detected"),p&&o.b.log(this.id+":switch detected"),this.frag=a,u)u.postMessage({cmd:"demux",data:t,decryptdata:c,initSegment:e,audioCodec:r,videoCodec:i,timeOffset:d,discontinuity:f,trackSwitch:p,contiguous:g,duration:n,accurateTimeOffset:s,defaultInitPTS:l},t instanceof ArrayBuffer?[t]:[]);else{var y=this.demuxer;y&&y.push(t,c,e,r,i,d,f,p,g,n,s,l)}},t.prototype.onWorkerMessage=function(t){var e=t.data,r=this.hls;switch(e.event){case"init":URL.revokeObjectURL(this.w.objectURL);break;case a.a.FRAG_PARSING_DATA:e.data.data1=new Uint8Array(e.data1),e.data2&&(e.data.data2=new Uint8Array(e.data2));default:e.data=e.data||{},e.data.frag=this.frag,e.data.id=this.id,r.trigger(e.event,e.data)}},t}();e.a=p},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(1),n=r(2),o=r(9),s=r(36),l=r(15),u=r(37),d=r(40),c=r(41),h=r(44),f=function(){function t(e,r,a,n){i(this,t),this.observer=e,this.typeSupported=r,this.config=a,this.vendor=n}return t.prototype.destroy=function(){var t=this.demuxer;t&&t.destroy()},t.prototype.push=function(t,e,r,i,n,s,l,u,d,c,h,f){if(t.byteLength>0&&null!=e&&null!=e.key&&"AES-128"===e.method){var p=this.decrypter;null==p&&(p=this.decrypter=new o.a(this.observer,this.config));var v=this,g=void 0;try{g=performance.now()}catch(t){g=Date.now()}p.decrypt(t,e.key.buffer,e.iv.buffer,function(t){var o=void 0;try{o=performance.now()}catch(t){o=Date.now()}v.observer.trigger(a.a.FRAG_DECRYPTED,{stats:{tstart:g,tdecrypt:o}}),v.pushDecrypted(new Uint8Array(t),e,new Uint8Array(r),i,n,s,l,u,d,c,h,f)})}else this.pushDecrypted(new Uint8Array(t),e,new Uint8Array(r),i,n,s,l,u,d,c,h,f)},t.prototype.pushDecrypted=function(t,e,r,i,o,f,p,v,g,y,m,b){var E=this.demuxer;if(!E||(p||v)&&!this.probe(t)){for(var T=this.observer,S=this.typeSupported,R=this.config,A=[{demux:u.a,remux:c.a},{demux:l.a,remux:h.a},{demux:s.a,remux:c.a},{demux:d.a,remux:c.a}],_=0,w=A.length;_<w;_++){var L=A[_],D=L.demux.probe;if(D(t)){var I=this.remuxer=new L.remux(T,R,S,this.vendor);E=new L.demux(T,I,R,S),this.probe=D;break}}if(!E)return void T.trigger(a.a.ERROR,{type:n.b.MEDIA_ERROR,details:n.a.FRAG_PARSING_ERROR,fatal:!0,reason:"no demux matching with content found"});this.demuxer=E}var O=this.remuxer;(p||v)&&(E.resetInitSegment(r,i,o,y),O.resetInitSegment()),p&&(E.resetTimeStamp(b),O.resetTimeStamp(b)),"function"==typeof E.setDecryptData&&E.setDecryptData(e),E.append(t,f,g,m)},t}();e.a=f},function(t,e,r){"use strict";function i(t,e,r,i){var a=void 0,n=void 0,o=void 0,s=void 0,l=void 0,u=navigator.userAgent.toLowerCase(),d=i,c=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];return a=1+((192&e[r+2])>>>6),(n=(60&e[r+2])>>>2)>c.length-1?void t.trigger(Event.ERROR,{type:p.b.MEDIA_ERROR,details:p.a.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+n}):(s=(1&e[r+2])<<2,s|=(192&e[r+3])>>>6,f.b.log("manifest codec:"+i+",ADTS data:type:"+a+",sampleingIndex:"+n+"["+c[n]+"Hz],channelConfig:"+s),/firefox/i.test(u)?n>=6?(a=5,l=new Array(4),o=n-3):(a=2,l=new Array(2),o=n):-1!==u.indexOf("android")?(a=2,l=new Array(2),o=n):(a=5,l=new Array(4),i&&(-1!==i.indexOf("mp4a.40.29")||-1!==i.indexOf("mp4a.40.5"))||!i&&n>=6?o=n-3:((i&&-1!==i.indexOf("mp4a.40.2")&&(n>=6&&1===s||/vivaldi/i.test(u))||!i&&1===s)&&(a=2,l=new Array(2)),o=n)),l[0]=a<<3,l[0]|=(14&n)>>1,l[1]|=(1&n)<<7,l[1]|=s<<3,5===a&&(l[1]|=(14&o)>>1,l[2]=(1&o)<<7,l[2]|=8,l[3]=0),{config:l,samplerate:c[n],channelCount:s,codec:"mp4a.40."+a,manifestCodec:d})}function a(t,e){return 255===t[e]&&240==(246&t[e+1])}function n(t,e){return 1&t[e+1]?7:9}function o(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function s(t,e){return!!(e+1<t.length&&a(t,e))}function l(t,e){if(e+1<t.length&&a(t,e)){var r=n(t,e),i=r;e+5<t.length&&(i=o(t,e));var s=e+i;if(s===t.length||s+1<t.length&&a(t,s))return!0}return!1}function u(t,e,r,a,n){if(!t.samplerate){var o=i(e,r,a,n);t.config=o.config,t.samplerate=o.samplerate,t.channelCount=o.channelCount,t.codec=o.codec,t.manifestCodec=o.manifestCodec,f.b.log("parsed codec:"+t.codec+",rate:"+o.samplerate+",nb channel:"+o.channelCount)}}function d(t){return 9216e4/t}function c(t,e,r,i,a){var s=void 0,l=void 0,u=void 0,d=t.length;if(s=n(t,e),l=o(t,e),(l-=s)>0&&e+s+l<=d)return u=r+i*a,{headerLength:s,frameLength:l,stamp:u}}function h(t,e,r,i,a){var n=d(t.samplerate),o=c(e,r,i,a,n);if(o){var s=o.stamp,l=o.headerLength,u=o.frameLength,h={unit:e.subarray(r+l,r+l+u),pts:s,dts:s};return t.samples.push(h),t.len+=u,{sample:h,length:u+l}}}e.d=s,e.e=l,e.c=u,e.b=d,e.a=h;var f=r(0),p=r(2)},function(t,e,r){"use strict";var i={BitratesMap:[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],SamplingRateMap:[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],SamplesCoefficients:[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],BytesInSlot:[0,1,1,4],appendFrame:function(t,e,r,i,a){if(!(r+24>e.length)){var n=this.parseHeader(e,r);if(n&&r+n.frameLength<=e.length){var o=9e4*n.samplesPerFrame/n.sampleRate,s=i+a*o,l={unit:e.subarray(r,r+n.frameLength),pts:s,dts:s};return t.config=[],t.channelCount=n.channelCount,t.samplerate=n.sampleRate,t.samples.push(l),t.len+=n.frameLength,{sample:l,length:n.frameLength}}}},parseHeader:function(t,e){var r=t[e+1]>>3&3,a=t[e+1]>>1&3,n=t[e+2]>>4&15,o=t[e+2]>>2&3,s=t[e+2]>>1&1;if(1!==r&&0!==n&&15!==n&&3!==o){var l=3===r?3-a:3===a?3:4,u=1e3*i.BitratesMap[14*l+n-1],d=3===r?0:2===r?1:2,c=i.SamplingRateMap[3*d+o],h=t[e+3]>>6==3?1:2,f=i.SamplesCoefficients[r][a],p=i.BytesInSlot[a],v=8*f*p;return{sampleRate:c,channelCount:h,frameLength:parseInt(f*u/c+s,10)*p,samplesPerFrame:v}}},isHeaderPattern:function(t,e){return 255===t[e]&&224==(224&t[e+1])&&0!=(6&t[e+1])},isHeader:function(t,e){return!!(e+1<t.length&&this.isHeaderPattern(t,e))},probe:function(t,e){if(e+1<t.length&&this.isHeaderPattern(t,e)){var r=this.parseHeader(t,e),i=4;r&&r.frameLength&&(i=r.frameLength);var a=e+i;if(a===t.length||a+1<t.length&&this.isHeaderPattern(t,a))return!0}return!1}};e.a=i},function(t,e,r){"use strict";function i(t,e,r){var i=t[e],a=t[r],n=a.startPTS;isNaN(n)?a.start=r>e?i.start+i.duration:Math.max(i.start-a.duration,0):r>e?(i.duration=n-i.start,i.duration<0&&o.b.warn("negative duration computed for frag "+i.sn+",level "+i.level+", there should be some duration drift between playlist and fragment!")):(a.duration=i.start-n,a.duration<0&&o.b.warn("negative duration computed for frag "+a.sn+",level "+a.level+", there should be some duration drift between playlist and fragment!"))}function a(t,e,r,a,n,o){var s=r;if(!isNaN(e.startPTS)){var l=Math.abs(e.startPTS-r);isNaN(e.deltaPTS)?e.deltaPTS=l:e.deltaPTS=Math.max(l,e.deltaPTS),s=Math.max(r,e.startPTS),r=Math.min(r,e.startPTS),a=Math.max(a,e.endPTS),n=Math.min(n,e.startDTS),o=Math.max(o,e.endDTS)}var u=r-e.start;e.start=e.startPTS=r,e.maxStartPTS=s,e.endPTS=a,e.startDTS=n,e.endDTS=o,e.duration=a-r;var d=e.sn;if(!t||d<t.startSN||d>t.endSN)return 0;var c=void 0,h=void 0,f=void 0;for(c=d-t.startSN,h=t.fragments,h[c]=e,f=c;f>0;f--)i(h,f,f-1);for(f=c;f<h.length-1;f++)i(h,f,f+1);return t.PTSKnown=!0,u}function n(t,e){var r=Math.max(t.startSN,e.startSN)-e.startSN,i=Math.min(t.endSN,e.endSN)-e.startSN,n=e.startSN-t.startSN,s=t.fragments,l=e.fragments,u=0,d=void 0;if(e.initSegment&&t.initSegment&&(e.initSegment=t.initSegment),i<r)return void(e.PTSKnown=!1);for(var c=r;c<=i;c++){var h=s[n+c],f=l[c];f&&h&&(u=h.cc-f.cc,isNaN(h.startPTS)||(f.start=f.startPTS=h.startPTS,f.endPTS=h.endPTS,f.duration=h.duration,f.backtracked=h.backtracked,f.dropped=h.dropped,d=f))}if(u)for(o.b.log("discontinuity sliding from playlist, take drift into account"),c=0;c<l.length;c++)l[c].cc+=u;if(d)a(e,d,d.startPTS,d.endPTS,d.startDTS,d.endDTS);else if(n>=0&&n<s.length){var p=s[n].start;for(c=0;c<l.length;c++)l[c].start+=p}e.PTSKnown=t.PTSKnown}e.b=a,e.a=n;var o=r(0)},function(t,e,r){"use strict";var i={toString:function(t){for(var e="",r=t.length,i=0;i<r;i++)e+="["+t.start(i).toFixed(3)+","+t.end(i).toFixed(3)+"]";return e}};e.a=i},function(t,e,r){"use strict";function i(t,e){for(var r=null,i=0;i<t.length;i+=1){var a=t[i];if(a&&a.cc===e){r=a;break}}return r}function a(t,e){return u.a.search(t,function(t){return t.cc<e?1:t.cc>e?-1:0})}function n(t,e,r){var i=!1;return e&&e.details&&r&&(r.endCC>r.startCC||t&&t.cc<r.startCC)&&(i=!0),i}function o(t,e){var r=t.fragments,a=e.fragments;if(!a.length||!r.length)return void d.b.log("No fragments to align");var n=i(r,a[0].cc);return!n||n&&!n.startPTS?void d.b.log("No frag in previous level to align on"):n}function s(t,e){e.fragments.forEach(function(e){if(e){var r=e.start+t;e.start=e.startPTS=r,e.endPTS=r+e.duration}}),e.PTSKnown=!0}function l(t,e,r){if(n(t,e,r)){var i=o(e.details,r);i&&(d.b.log("Adjusting PTS using last level due to CC increase within current level"),s(i.start,r))}if(!1===r.PTSKnown&&e&&e.details&&e.details.fragments&&e.details.fragments.length){var a=e.details.programDateTime,l=r.programDateTime,u=(l-a)/1e3+e.details.fragments[0].start;isNaN(u)||(d.b.log("adjusting PTS using programDateTime delta, sliding:"+u.toFixed(3)),s(u,r))}}e.b=a,e.a=l;var u=r(7),d=r(0)},function(t,e,r){"use strict";function i(t,e){var r=null;try{r=new window.Event("addtrack")}catch(t){r=document.createEvent("Event"),r.initEvent("addtrack",!1,!1)}r.track=t,e.dispatchEvent(r)}function a(t){if(t&&t.cues)for(;t.cues.length>0;)t.removeCue(t.cues[0])}e.b=i,e.a=a},function(t,e,r){"use strict";function i(){this.window=window,this.state="INITIAL",this.buffer="",this.decoder=new d,this.regionList=[]}function a(t){function e(t,e,r,i){return 3600*(0|t)+60*(0|e)+(0|r)+(0|i)/1e3}var r=t.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return r?r[3]?e(r[1],r[2],r[3].replace(":",""),r[4]):r[1]>59?e(r[1],r[2],0,r[4]):e(0,r[1],r[2],r[4]):null}function n(){this.values=Object.create(null)}function o(t,e,r,i){var a=i?t.split(i):[t];for(var n in a)if("string"==typeof a[n]){var o=a[n].split(r);if(2===o.length){var s=o[0],l=o[1];e(s,l)}}}function s(t,e,r){function i(){var e=a(t);if(null===e)throw new Error("Malformed timestamp: "+l);return t=t.replace(/^[^\sa-zA-Z-]+/,""),e}function s(){t=t.replace(/^\s+/,"")}var l=t;if(s(),e.startTime=i(),s(),"--\x3e"!==t.substr(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+l);t=t.substr(3),s(),e.endTime=i(),s(),function(t,e){var i=new n;o(t,function(t,e){switch(t){case"region":for(var a=r.length-1;a>=0;a--)if(r[a].id===e){i.set(t,r[a].region);break}break;case"vertical":i.alt(t,e,["rl","lr"]);break;case"line":var n=e.split(","),o=n[0];i.integer(t,o),i.percent(t,o)&&i.set("snapToLines",!1),i.alt(t,o,["auto"]),2===n.length&&i.alt("lineAlign",n[1],["start",h,"end"]);break;case"position":n=e.split(","),i.percent(t,n[0]),2===n.length&&i.alt("positionAlign",n[1],["start",h,"end","line-left","line-right","auto"]);break;case"size":i.percent(t,e);break;case"align":i.alt(t,e,["start",h,"end","left","right"])}},/:/,/\s/),e.region=i.get("region",null),e.vertical=i.get("vertical","");var a=i.get("line","auto");"auto"===a&&-1===c.line&&(a=-1),e.line=a,e.lineAlign=i.get("lineAlign","start"),e.snapToLines=i.get("snapToLines",!0),e.size=i.get("size",100),e.align=i.get("align",h);var s=i.get("position","auto");"auto"===s&&50===c.position&&(s="start"===e.align||"left"===e.align?0:"end"===e.align||"right"===e.align?100:50),e.position=s}(t,e)}function l(t){return t.replace(/<br(?: \/)?>/gi,"\n")}r.d(e,"b",function(){return l});var u=r(61),d=function(){return{decode:function(t){if(!t)return"";if("string"!=typeof t)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}};n.prototype={set:function(t,e){this.get(t)||""===e||(this.values[t]=e)},get:function(t,e,r){return r?this.has(t)?this.values[t]:e[r]:this.has(t)?this.values[t]:e},has:function(t){return t in this.values},alt:function(t,e,r){for(var i=0;i<r.length;++i)if(e===r[i]){this.set(t,e);break}},integer:function(t,e){/^-?\d+$/.test(e)&&this.set(t,parseInt(e,10))},percent:function(t,e){return!!(e.match(/^([\d]{1,3})(\.[\d]*)?%$/)&&(e=parseFloat(e))>=0&&e<=100)&&(this.set(t,e),!0)}};var c=new u.a(0,0,0),h="middle"===c.align?"middle":"center";i.prototype={parse:function(t){function e(){var t=r.buffer,e=0;for(t=l(t);e<t.length&&"\r"!==t[e]&&"\n"!==t[e];)++e;var i=t.substr(0,e);return"\r"===t[e]&&++e,"\n"===t[e]&&++e,r.buffer=t.substr(e),i}var r=this;t&&(r.buffer+=r.decoder.decode(t,{stream:!0}));try{var i=void 0;if("INITIAL"===r.state){if(!/\r\n|\n/.test(r.buffer))return this;i=e();var a=i.match(/^()?WEBVTT([ \t].*)?$/);if(!a||!a[0])throw new Error("Malformed WebVTT signature.");r.state="HEADER"}for(var n=!1;r.buffer;){if(!/\r\n|\n/.test(r.buffer))return this;switch(n?n=!1:i=e(),r.state){case"HEADER":/:/.test(i)?function(t){o(t,function(t,e){switch(t){case"Region":console.log("parse region",e)}},/:/)}(i):i||(r.state="ID");continue;case"NOTE":i||(r.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(i)){r.state="NOTE";break}if(!i)continue;if(r.cue=new u.a(0,0,""),r.state="CUE",-1===i.indexOf("--\x3e")){r.cue.id=i;continue}case"CUE":try{s(i,r.cue,r.regionList)}catch(t){r.cue=null,r.state="BADCUE";continue}r.state="CUETEXT";continue;case"CUETEXT":var d=-1!==i.indexOf("--\x3e");if(!i||d&&(n=!0)){r.oncue&&r.oncue(r.cue),r.cue=null,r.state="ID";continue}r.cue.text&&(r.cue.text+="\n"),r.cue.text+=i;continue;case"BADCUE":i||(r.state="ID");continue}}}catch(t){"CUETEXT"===r.state&&r.cue&&r.oncue&&r.oncue(r.cue),r.cue=null,r.state="INITIAL"===r.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var t=this;try{if(t.buffer+=t.decoder.decode(),(t.cue||"HEADER"===t.state)&&(t.buffer+="\n\n",t.parse()),"INITIAL"===t.state)throw new Error("Malformed WebVTT signature.")}catch(t){throw t}return t.onflush&&t.onflush(),this}},e.a=i},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var a=r(4),n=r.n(a),o=r(2),s=r(14),l=r(30),u=r(31),d=r(32),c=r(47),h=r(48),f=r(49),p=r(0),v=r(50),g=r(12),y=r(1),m=r(10),b=r.n(m),E=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}();r(70);var T=function(){function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,t);var a=t.DefaultConfig;if((r.liveSyncDurationCount||r.liveMaxLatencyDurationCount)&&(r.liveSyncDuration||r.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");for(var n in a)n in r||(r[n]=a[n]);if(void 0!==r.liveMaxLatencyDurationCount&&r.liveMaxLatencyDurationCount<=r.liveSyncDurationCount)throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"');if(void 0!==r.liveMaxLatencyDuration&&(r.liveMaxLatencyDuration<=r.liveSyncDuration||void 0===r.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be gt "liveSyncDuration"');Object(p.a)(r.debug),this.config=r,this._autoLevelCapping=-1;var o=this.observer=new b.a;o.trigger=function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];o.emit.apply(o,[t,t].concat(r))},o.off=function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];o.removeListener.apply(o,[t].concat(r))},this.on=o.on.bind(o),this.off=o.off.bind(o),this.trigger=o.trigger.bind(o);var f=this.abrController=new r.abrController(this),v=new r.bufferController(this),y=new r.capLevelController(this),m=new r.fpsController(this),E=new s.a(this),T=new l.a(this),S=new u.a(this),R=new h.a(this),A=this.levelController=new c.a(this),_=new g.b(this),w=this.streamController=new d.a(this,_),L=[A,w],D=r.audioStreamController;D&&L.push(new D(this,_)),this.networkControllers=L;var I=[E,T,S,f,v,y,m,R,_];if(D=r.audioTrackController){var O=new D(this);this.audioTrackController=O,I.push(O)}if(D=r.subtitleTrackController){var k=new D(this);this.subtitleTrackController=k,I.push(k)}if(D=r.emeController){var C=new D(this);this.emeController=C,I.push(C)}[r.subtitleStreamController,r.timelineController].forEach(function(t){t&&I.push(new t(e))}),this.coreComponents=I}return t.isSupported=function(){return Object(f.a)()},E(t,null,[{key:"version",get:function(){return"0.9.1"}},{key:"Events",get:function(){return y.a}},{key:"ErrorTypes",get:function(){return o.b}},{key:"ErrorDetails",get:function(){return o.a}},{key:"DefaultConfig",get:function(){return t.defaultConfig?t.defaultConfig:v.a},set:function(e){t.defaultConfig=e}}]),t.prototype.destroy=function(){p.b.log("destroy"),this.trigger(y.a.DESTROYING),this.detachMedia(),this.coreComponents.concat(this.networkControllers).forEach(function(t){t.destroy()}),this.url=null,this.observer.removeAllListeners(),this._autoLevelCapping=-1},t.prototype.attachMedia=function(t){p.b.log("attachMedia"),this.media=t,this.trigger(y.a.MEDIA_ATTACHING,{media:t})},t.prototype.detachMedia=function(){p.b.log("detachMedia"),this.trigger(y.a.MEDIA_DETACHING),this.media=null},t.prototype.loadSource=function(t){t=n.a.buildAbsoluteURL(window.location.href,t,{alwaysNormalize:!0}),p.b.log("loadSource:"+t),this.url=t,this.trigger(y.a.MANIFEST_LOADING,{url:t})},t.prototype.startLoad=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;p.b.log("startLoad("+t+")"),this.networkControllers.forEach(function(e){e.startLoad(t)})},t.prototype.stopLoad=function(){p.b.log("stopLoad"),this.networkControllers.forEach(function(t){t.stopLoad()})},t.prototype.swapAudioCodec=function(){p.b.log("swapAudioCodec"),this.streamController.swapAudioCodec()},t.prototype.recoverMediaError=function(){p.b.log("recoverMediaError");var t=this.media;this.detachMedia(),this.attachMedia(t)},E(t,[{key:"levels",get:function(){return this.levelController.levels}},{key:"currentLevel",get:function(){return this.streamController.currentLevel},set:function(t){p.b.log("set currentLevel:"+t),this.loadLevel=t,this.streamController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.streamController.nextLevel},set:function(t){p.b.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.streamController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(t){p.b.log("set loadLevel:"+t),this.levelController.manualLevel=t}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel},set:function(t){this.levelController.nextLoadLevel=t}},{key:"firstLevel",get:function(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)},set:function(t){p.b.log("set firstLevel:"+t),this.levelController.firstLevel=t}},{key:"startLevel",get:function(){return this.levelController.startLevel},set:function(t){p.b.log("set startLevel:"+t);var e=this;-1!==t&&(t=Math.max(t,e.minAutoLevel)),e.levelController.startLevel=t}},{key:"autoLevelCapping",get:function(){return this._autoLevelCapping},set:function(t){p.b.log("set autoLevelCapping:"+t),this._autoLevelCapping=t}},{key:"autoLevelEnabled",get:function(){return-1===this.levelController.manualLevel}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}},{key:"minAutoLevel",get:function(){for(var t=this,e=t.levels,r=t.config.minAutoBitrate,i=e?e.length:0,a=0;a<i;a++){if((e[a].realBitrate?Math.max(e[a].realBitrate,e[a].bitrate):e[a].bitrate)>r)return a}return 0}},{key:"maxAutoLevel",get:function(){var t=this,e=t.levels,r=t.autoLevelCapping;return-1===r&&e&&e.length?e.length-1:r}},{key:"nextAutoLevel",get:function(){var t=this;return Math.min(Math.max(t.abrController.nextAutoLevel,t.minAutoLevel),t.maxAutoLevel)},set:function(t){var e=this;e.abrController.nextAutoLevel=Math.max(e.minAutoLevel,t)}},{key:"audioTracks",get:function(){var t=this.audioTrackController;return t?t.audioTracks:[]}},{key:"audioTrack",get:function(){var t=this.audioTrackController;return t?t.audioTrack:-1},set:function(t){var e=this.audioTrackController;e&&(e.audioTrack=t)}},{key:"liveSyncPosition",get:function(){return this.streamController.liveSyncPosition}},{key:"subtitleTracks",get:function(){var t=this.subtitleTrackController;return t?t.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var t=this.subtitleTrackController;return t?t.subtitleTrack:-1},set:function(t){var e=this.subtitleTrackController;e&&(e.subtitleTrack=t)}},{key:"subtitleDisplay",get:function(){var t=this.subtitleTrackController;return!!t&&t.subtitleDisplay},set:function(t){var e=this.subtitleTrackController;e&&(e.subtitleDisplay=t)}}]),t}();e.default=T},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(4),n=r.n(a),o=r(6),s=r(16),l=r(29),u=r(0),d=r(17),c=/#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g,h=/#EXT-X-MEDIA:(.*)/g,f=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/|(?!#)(\S+)/.source,/|#EXT-X-BYTERANGE:*(.+)/.source,/|#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/|#.*/.source].join(""),"g"),p=/(?:(?:#(EXTM3U))|(?:#EXT-X-(PLAYLIST-TYPE):(.+))|(?:#EXT-X-(MEDIA-SEQUENCE): *(\d+))|(?:#EXT-X-(TARGETDURATION): *(\d+))|(?:#EXT-X-(KEY):(.+))|(?:#EXT-X-(START):(.+))|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DISCONTINUITY-SEQ)UENCE:(\d+))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(VERSION):(\d+))|(?:#EXT-X-(MAP):(.+))|(?:(#)(.*):(.*))|(?:(#)(.*))(?:.*)\r?\n?/,v=function(){function t(){i(this,t)}return t.findGroup=function(t,e){if(!t)return null;for(var r=null,i=0;i<t.length;i++){var a=t[i];a.id===e&&(r=a)}return r},t.convertAVC1ToAVCOTI=function(t){var e=void 0,r=t.split(".");return r.length>2?(e=r.shift()+".",e+=parseInt(r.shift()).toString(16),e+=("000"+parseInt(r.shift()).toString(16)).substr(-4)):e=t,e},t.resolve=function(t,e){return n.a.buildAbsoluteURL(e,t,{alwaysNormalize:!0})},t.parseMasterPlaylist=function(e,r){var i=[],a=void 0;for(c.lastIndex=0;null!=(a=c.exec(e));){var n={},o=n.attrs=new l.a(a[1]);n.url=t.resolve(a[2],r);var s=o.decimalResolution("RESOLUTION");s&&(n.width=s.width,n.height=s.height),n.bitrate=o.decimalInteger("AVERAGE-BANDWIDTH")||o.decimalInteger("BANDWIDTH"),n.name=o.NAME,function(t,e){["video","audio"].forEach(function(r){var i=t.filter(function(t){return Object(d.b)(t,r)});if(i.length){var a=i.filter(function(t){return 0===t.lastIndexOf("avc1",0)||0===t.lastIndexOf("mp4a",0)});e[r+"Codec"]=a.length>0?a[0]:i[0],t=t.filter(function(t){return-1===i.indexOf(t)})}}),e.unknownCodecs=t}([].concat((o.CODECS||"").split(/[ ,]+/)),n),n.videoCodec&&-1!==n.videoCodec.indexOf("avc1")&&(n.videoCodec=t.convertAVC1ToAVCOTI(n.videoCodec)),i.push(n)}return i},t.parseMasterPlaylistMedia=function(e,r,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],n=void 0,o=[],s=0;for(h.lastIndex=0;null!==(n=h.exec(e));){var u={},d=new l.a(n[1]);if(d.TYPE===i){if(u.groupId=d["GROUP-ID"],u.name=d.NAME,u.type=i,u.default="YES"===d.DEFAULT,u.autoselect="YES"===d.AUTOSELECT,u.forced="YES"===d.FORCED,d.URI&&(u.url=t.resolve(d.URI,r)),u.lang=d.LANGUAGE,u.name||(u.name=u.lang),a.length){var c=t.findGroup(a,u.groupId);u.audioCodec=c?c.codec:a[0].codec}u.id=s++,o.push(u)}}return o},t.parseLevelPlaylist=function(t,e,r,i){var a=0,n=0,d={type:null,version:null,url:e,fragments:[],live:!0,startSN:0},c=new s.a,h=0,v=null,g=new o.a,y=void 0,m=void 0;for(f.lastIndex=0;null!==(y=f.exec(t));){var b=y[1];if(b){g.duration=parseFloat(b);var E=(" "+y[2]).slice(1);g.title=E||null,g.tagList.push(E?["INF",b,E]:["INF",b])}else if(y[3]){if(!isNaN(g.duration)){var T=a++;g.type=i,g.start=n,g.levelkey=c,g.sn=T,g.level=r,g.cc=h,g.baseurl=e,g.relurl=(" "+y[3]).slice(1),d.programDateTime&&(v?g.rawProgramDateTime?g.pdt=Date.parse(g.rawProgramDateTime):g.pdt=v.pdt+1e3*v.duration:g.pdt=Date.parse(d.programDateTime),g.endPdt=g.pdt+1e3*g.duration),d.fragments.push(g),v=g,n+=g.duration,g=new o.a}}else if(y[4]){if(g.rawByteRange=(" "+y[4]).slice(1),v){var S=v.byteRangeEndOffset;S&&(g.lastByteRangeEndOffset=S)}}else if(y[5])g.rawProgramDateTime=(" "+y[5]).slice(1),g.tagList.push(["PROGRAM-DATE-TIME",g.rawProgramDateTime]),void 0===d.programDateTime&&(d.programDateTime=new Date(new Date(Date.parse(y[5]))-1e3*n));else{for(y=y[0].match(p),m=1;m<y.length&&void 0===y[m];m++);var R=(" "+y[m+1]).slice(1),A=(" "+y[m+2]).slice(1);switch(y[m]){case"#":g.tagList.push(A?[R,A]:[R]);break;case"PLAYLIST-TYPE":d.type=R.toUpperCase();break;case"MEDIA-SEQUENCE":a=d.startSN=parseInt(R);break;case"TARGETDURATION":d.targetduration=parseFloat(R);break;case"VERSION":d.version=parseInt(R);break;case"EXTM3U":break;case"ENDLIST":d.live=!1;break;case"DIS":h++,g.tagList.push(["DIS"]);break;case"DISCONTINUITY-SEQ":h=parseInt(R);break;case"KEY":var _=R,w=new l.a(_),L=w.enumeratedString("METHOD"),D=w.URI,I=w.hexadecimalInteger("IV");L&&(c=new s.a,D&&["AES-128","SAMPLE-AES","SAMPLE-AES-CENC"].indexOf(L)>=0&&(c.method=L,c.baseuri=e,c.reluri=D,c.key=null,c.iv=I));break;case"START":var O=R,k=new l.a(O),C=k.decimalFloatingPoint("TIME-OFFSET");isNaN(C)||(d.startTimeOffset=C);break;case"MAP":var P=new l.a(R);g.relurl=P.URI,g.rawByteRange=P.BYTERANGE,g.baseurl=e,g.level=r,g.type=i,g.sn="initSegment",d.initSegment=g,g=new o.a;break;default:u.b.warn("line parsed but not handled: "+y)}}}return g=v,g&&!g.relurl&&(d.fragments.pop(),n-=g.duration),d.totalduration=n,d.averagetargetduration=n/d.fragments.length,d.endSN=a-1,d.startCC=d.fragments[0]?d.fragments[0].cc:0,d.endCC=h,!d.initSegment&&d.fragments.length&&d.fragments.every(function(t){return t.relurl.endsWith(".mp4")})&&(u.b.warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"),g=new o.a,g.relurl=d.fragments[0].relurl,g.baseurl=e,g.level=r,g.type=i,g.sn="initSegment",d.initSegment=g,d.needSidxRanges=!0),d},t}();e.a=v},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=/^(\d+)x(\d+)$/,n=/\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g,o=function(){function t(e){i(this,t),"string"==typeof e&&(e=t.parseAttrList(e));for(var r in e)e.hasOwnProperty(r)&&(this[r]=e[r])}return t.prototype.decimalInteger=function(t){var e=parseInt(this[t],10);return e>Number.MAX_SAFE_INTEGER?1/0:e},t.prototype.hexadecimalInteger=function(t){if(this[t]){var e=(this[t]||"0x").slice(2);e=(1&e.length?"0":"")+e;for(var r=new Uint8Array(e.length/2),i=0;i<e.length/2;i++)r[i]=parseInt(e.slice(2*i,2*i+2),16);return r}return null},t.prototype.hexadecimalIntegerAsNumber=function(t){var e=parseInt(this[t],16);return e>Number.MAX_SAFE_INTEGER?1/0:e},t.prototype.decimalFloatingPoint=function(t){return parseFloat(this[t])},t.prototype.enumeratedString=function(t){return this[t]},t.prototype.decimalResolution=function(t){var e=a.exec(this[t]);if(null!==e)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}},t.parseAttrList=function(t){var e=void 0,r={};for(n.lastIndex=0;null!==(e=n.exec(t));){var i=e[2];0===i.indexOf('"')&&i.lastIndexOf('"')===i.length-1&&(i=i.slice(1,-1)),r[e[1]]=i}return r},t}();e.a=o},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=r(2),u=r(0),d=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,o.a.FRAG_LOADING));return n.loaders={},n}return n(e,t),e.prototype.destroy=function(){var e=this.loaders;for(var r in e){var i=e[r];i&&i.destroy()}this.loaders={},t.prototype.destroy.call(this)},e.prototype.onFragLoading=function(t){var e=t.frag,r=e.type,i=this.loaders,a=this.hls.config,n=a.fLoader,o=a.loader;e.loaded=0;var s=i[r];s&&(u.b.warn("abort previous fragment loader for type: "+r),s.abort()),s=i[r]=e.loader=a.fLoader?new n(a):new o(a);var l=void 0,d=void 0,c=void 0;l={url:e.url,frag:e,responseType:"arraybuffer",progressData:!1};var h=e.byteRangeStartOffset,f=e.byteRangeEndOffset;isNaN(h)||isNaN(f)||(l.rangeStart=h,l.rangeEnd=f),d={timeout:a.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:a.fragLoadingMaxRetryTimeout},c={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this),onProgress:this.loadprogress.bind(this)},s.load(l,d,c)},e.prototype.loadsuccess=function(t,e,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=t.data,n=r.frag;n.loader=void 0,this.loaders[n.type]=void 0,this.hls.trigger(o.a.FRAG_LOADED,{payload:a,frag:n,stats:e,networkDetails:i})},e.prototype.loaderror=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=e.loader;i&&i.abort(),this.loaders[e.type]=void 0,this.hls.trigger(o.a.ERROR,{type:l.b.NETWORK_ERROR,details:l.a.FRAG_LOAD_ERROR,fatal:!1,frag:e.frag,response:t,networkDetails:r})},e.prototype.loadtimeout=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=e.loader;i&&i.abort(),this.loaders[e.type]=void 0,this.hls.trigger(o.a.ERROR,{type:l.b.NETWORK_ERROR,details:l.a.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e.frag,networkDetails:r})},e.prototype.loadprogress=function(t,e,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=e.frag;a.loaded=t.loaded,this.hls.trigger(o.a.FRAG_LOAD_PROGRESS,{frag:a,stats:t,networkDetails:i})},e}(s.a);e.a=d},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=r(2),u=r(0),d=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,o.a.KEY_LOADING));return n.loaders={},n.decryptkey=null,n.decrypturl=null,n}return n(e,t),e.prototype.destroy=function(){for(var t in this.loaders){var e=this.loaders[t];e&&e.destroy()}this.loaders={},s.a.prototype.destroy.call(this)},e.prototype.onKeyLoading=function(t){var e=t.frag,r=e.type,i=this.loaders[r],a=e.decryptdata,n=a.uri;if(n!==this.decrypturl||null===this.decryptkey){var s=this.hls.config;i&&(u.b.warn("abort previous key loader for type:"+r),i.abort()),e.loader=this.loaders[r]=new s.loader(s),this.decrypturl=n,this.decryptkey=null;var l=void 0,d=void 0,c=void 0;l={url:n,frag:e,responseType:"arraybuffer"},d={timeout:s.fragLoadingTimeOut,maxRetry:s.fragLoadingMaxRetry,retryDelay:s.fragLoadingRetryDelay,maxRetryDelay:s.fragLoadingMaxRetryTimeout},c={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},e.loader.load(l,d,c)}else this.decryptkey&&(a.key=this.decryptkey,this.hls.trigger(o.a.KEY_LOADED,{frag:e}))},e.prototype.loadsuccess=function(t,e,r){var i=r.frag;this.decryptkey=i.decryptdata.key=new Uint8Array(t.data),i.loader=void 0,this.loaders[i.type]=void 0,this.hls.trigger(o.a.KEY_LOADED,{frag:i})},e.prototype.loaderror=function(t,e){var r=e.frag,i=r.loader;i&&i.abort(),this.loaders[e.type]=void 0,this.hls.trigger(o.a.ERROR,{type:l.b.NETWORK_ERROR,details:l.a.KEY_LOAD_ERROR,fatal:!1,frag:r,response:t})},e.prototype.loadtimeout=function(t,e){var r=e.frag,i=r.loader;i&&i.abort(),this.loaders[e.type]=void 0,this.hls.trigger(o.a.ERROR,{type:l.b.NETWORK_ERROR,details:l.a.KEY_LOAD_TIMEOUT,fatal:!1,frag:r})},e}(s.a);e.a=d},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(7),s=r(8),l=r(18),u=r(1),d=r(12),c=r(6),h=r(14),f=r(22),p=r(23),v=r(2),g=r(0),y=r(24),m=r(13),b=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),E={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_LEVEL:"WAITING_LEVEL",PARSING:"PARSING",PARSED:"PARSED",BUFFER_FLUSHING:"BUFFER_FLUSHING",ENDED:"ENDED",ERROR:"ERROR"},T=function(t){function e(r,n){i(this,e);var o=a(this,t.call(this,r,u.a.MEDIA_ATTACHED,u.a.MEDIA_DETACHING,u.a.MANIFEST_LOADING,u.a.MANIFEST_PARSED,u.a.LEVEL_LOADED,u.a.KEY_LOADED,u.a.FRAG_LOADED,u.a.FRAG_LOAD_EMERGENCY_ABORTED,u.a.FRAG_PARSING_INIT_SEGMENT,u.a.FRAG_PARSING_DATA,u.a.FRAG_PARSED,u.a.ERROR,u.a.AUDIO_TRACK_SWITCHING,u.a.AUDIO_TRACK_SWITCHED,u.a.BUFFER_CREATED,u.a.BUFFER_APPENDED,u.a.BUFFER_FLUSHED));return o.fragmentTracker=n,o.config=r.config,o.audioCodecSwap=!1,o._state=E.STOPPED,o}return n(e,t),e.prototype.onHandlerDestroying=function(){this.stopLoad()},e.prototype.onHandlerDestroyed=function(){this.state=E.STOPPED,this.fragmentTracker=null},e.prototype.startLoad=function(t){if(this.levels){var e=this.lastCurrentTime,r=this.hls;if(this.stopLoad(),this.setInterval(100),this.level=-1,this.fragLoadError=0,!this.startFragRequested){var i=r.startLevel;-1===i&&(i=0,this.bitrateTest=!0),this.level=r.nextLoadLevel=i,this.loadedmetadata=!1}e>0&&-1===t&&(g.b.log("override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e),this.state=E.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()}else this.forceStartLoad=!0,this.state=E.STOPPED},e.prototype.stopLoad=function(){var t=this.fragCurrent;t&&(t.loader&&t.loader.abort(),this.fragmentTracker.removeFragment(t),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.clearInterval(),this.state=E.STOPPED,this.forceStartLoad=!1},e.prototype.doTick=function(){switch(this.state){case E.BUFFER_FLUSHING:this.fragLoadError=0;break;case E.IDLE:this._doTickIdle();break;case E.WAITING_LEVEL:var t=this.levels[this.level];t&&t.details&&(this.state=E.IDLE);break;case E.FRAG_LOADING_WAITING_RETRY:var e=performance.now(),r=this.retryDate;(!r||e>=r||this.media&&this.media.seeking)&&(g.b.log("mediaController: retryDate reached, switch back to IDLE state"),this.state=E.IDLE);break;case E.ERROR:case E.STOPPED:case E.FRAG_LOADING:case E.PARSING:case E.PARSED:case E.ENDED:}this._checkBuffer(),this._checkFragmentChanged()},e.prototype._doTickIdle=function(){var t=this.hls,e=t.config,r=this.media;if(void 0!==this.levelLastLoaded&&(r||!this.startFragRequested&&e.startFragPrefetch)){var i=void 0;i=this.loadedmetadata?r.currentTime:this.nextLoadPosition;var a=t.nextLoadLevel,n=this.levels[a];if(n){var o=n.bitrate,l=void 0;l=o?Math.max(8*e.maxBufferSize/o,e.maxBufferLength):e.maxBufferLength,l=Math.min(l,e.maxMaxBufferLength);var d=s.a.bufferInfo(this.mediaBuffer?this.mediaBuffer:r,i,e.maxBufferHole),c=d.len;if(!(c>=l)){g.b.trace("buffer length of "+c.toFixed(3)+" is below max of "+l.toFixed(3)+". checking for more payload ..."),this.level=t.nextLoadLevel=a;var h=n.details;if(void 0===h||!0===h.live&&this.levelLastLoaded!==a)return void(this.state=E.WAITING_LEVEL);var f=this.fragPrevious;if(!h.live&&f&&!f.backtracked&&f.sn===h.endSN&&!d.nextStart){if(Math.min(r.duration,f.start+f.duration)-Math.max(d.end,f.start)<=Math.max(.2,f.duration)){var p={};return this.altAudio&&(p.type="video"),this.hls.trigger(u.a.BUFFER_EOS,p),void(this.state=E.ENDED)}}this._fetchPayloadOrEos(i,d,h)}}}},e.prototype._fetchPayloadOrEos=function(t,e,r){var i=this.fragPrevious,a=this.level,n=r.fragments,o=n.length;if(0!==o){var s=n[0].start,l=n[o-1].start+n[o-1].duration,u=e.end,d=void 0;if(r.initSegment&&!r.initSegment.data)d=r.initSegment;else if(r.live){var c=this.config.initialLiveManifestSize;if(o<c)return void g.b.warn("Can not start playback of a level, reason: not enough fragments "+o+" < "+c);if(null===(d=this._ensureFragmentAtLivePoint(r,u,s,l,i,n,o)))return}else u<s&&(d=n[0]);d||(d=this._findFragment(s,i,o,n,u,l,r)),d&&this._loadFragmentOrKey(d,a,r,t,u)}},e.prototype._ensureFragmentAtLivePoint=function(t,e,r,i,a,n,s){var l=this.hls.config,u=this.media,d=void 0,c=void 0!==l.liveMaxLatencyDuration?l.liveMaxLatencyDuration:l.liveMaxLatencyDurationCount*t.targetduration;if(e<Math.max(r-l.maxFragLookUpTolerance,i-c)){var h=this.liveSyncPosition=this.computeLivePosition(r,t);g.b.log("buffer end: "+e.toFixed(3)+" is located too far from the end of live sliding playlist, reset currentTime to : "+h.toFixed(3)),e=h,u&&u.readyState&&u.duration>h&&(u.currentTime=h),this.nextLoadPosition=h}if(t.PTSKnown&&e>i&&u&&u.readyState)return null;if(this.startFragRequested&&!t.PTSKnown){if(a)if(t.programDateTime)d=this._findFragmentByPDT(n,a.endPdt+1);else{var f=a.sn+1;if(f>=t.startSN&&f<=t.endSN){var p=n[f-t.startSN];a.cc===p.cc&&(d=p,g.b.log("live playlist, switching playlist, load frag with next SN: "+d.sn))}d||(d=o.a.search(n,function(t){return a.cc-t.cc}))&&g.b.log("live playlist, switching playlist, load frag with same CC: "+d.sn)}d||(d=n[Math.min(s-1,Math.round(s/2))],g.b.log("live playlist, switching playlist, unknown, load middle frag : "+d.sn))}return d},e.prototype._findFragmentByPDT=function(t,e){if(!t||void 0===e)return null;if(e<t[0].pdt)return null;if(e>=t[t.length-1].endPdt)return null;for(var r=0;r<t.length;++r){var i=t[r];if(e<i.endPdt)return i}return null},e.prototype._findFragmentBySN=function(t,e,r,i){var a=this.hls.config,n=void 0,s=a.maxFragLookUpTolerance,l=t?e[t.sn-e[0].sn+1]:void 0,u=function(t){var e=Math.min(s,t.duration+(t.deltaPTS?t.deltaPTS:0));return t.start+t.duration-e<=r?1:t.start-e>r&&t.start?-1:0};return r<i&&(r>i-s&&(s=0),n=l&&!u(l)?l:o.a.search(e,u)),n},e.prototype._findFragment=function(t,e,r,i,a,n,o){var s=this.hls.config,l=void 0,u=void 0;if(u=a<n?o.programDateTime?this._findFragmentByPDT(i,1e3*a+(o.programDateTime?Date.parse(o.programDateTime):0)-1e3*t):this._findFragmentBySN(e,i,a,n):i[r-1]){l=u;var d=l.sn-o.startSN,c=e&&l.level===e.level,h=i[d-1],f=i[d+1];if(e&&l.sn===e.sn)if(c&&!l.backtracked)if(l.sn<o.endSN){var p=e.deltaPTS;p&&p>s.maxBufferHole&&e.dropped&&d?(l=h,g.b.warn("SN just loaded, with large PTS gap between audio and video, maybe frag is not starting with a keyframe ? load previous one to try to overcome this")):(l=f,g.b.log("SN just loaded, load next one: "+l.sn))}else l=null;else l.backtracked&&(f&&f.backtracked?(g.b.warn("Already backtracked from fragment "+f.sn+", will not backtrack to fragment "+l.sn+". Loading fragment "+f.sn),l=f):(g.b.warn("Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe"),l.dropped=0,h?(l=h,l.backtracked=!0):d&&(l=null)))}return l},e.prototype._loadFragmentOrKey=function(t,e,r,i,a){if(t.decryptdata&&null!=t.decryptdata.uri&&null==t.decryptdata.key)g.b.log("Loading key for "+t.sn+" of ["+r.startSN+" ,"+r.endSN+"],level "+e),this.state=E.KEY_LOADING,this.hls.trigger(u.a.KEY_LOADING,{frag:t});else{g.b.log("Loading "+t.sn+" of ["+r.startSN+" ,"+r.endSN+"],level "+e+", currentTime:"+i.toFixed(3)+",bufferEnd:"+a.toFixed(3));var n=this.fragmentTracker.getState(t);this.fragCurrent=t,this.startFragRequested=!0,isNaN(t.sn)||t.bitrateTest||(this.nextLoadPosition=t.start+t.duration),t.backtracked||n===d.a.NOT_LOADED?(t.autoLevel=this.hls.autoLevelEnabled,t.bitrateTest=this.bitrateTest,this.hls.trigger(u.a.FRAG_LOADING,{frag:t}),this.demuxer||(this.demuxer=new l.a(this.hls,"main")),this.state=E.FRAG_LOADING):n===d.a.APPENDING&&this._reduceMaxBufferLength(t.duration)&&this.fragmentTracker.removeFragment(t)}},e.prototype.getBufferedFrag=function(t){return this.fragmentTracker.getBufferedFrag(t,h.a.LevelType.MAIN)},e.prototype.followingBufferedFrag=function(t){return t?this.getBufferedFrag(t.endPTS+.5):null},e.prototype._checkFragmentChanged=function(){var t=void 0,e=void 0,r=this.media;if(r&&r.readyState&&!1===r.seeking&&(e=r.currentTime,e>r.playbackRate*this.lastCurrentTime&&(this.lastCurrentTime=e),s.a.isBuffered(r,e)?t=this.getBufferedFrag(e):s.a.isBuffered(r,e+.1)&&(t=this.getBufferedFrag(e+.1)),t)){var i=t;if(i!==this.fragPlaying){this.hls.trigger(u.a.FRAG_CHANGED,{frag:i});var a=i.level;this.fragPlaying&&this.fragPlaying.level===a||this.hls.trigger(u.a.LEVEL_SWITCHED,{level:a}),this.fragPlaying=i}}},e.prototype.immediateLevelSwitch=function(){if(g.b.log("immediateLevelSwitch"),!this.immediateSwitch){this.immediateSwitch=!0;var t=this.media,e=void 0;t?(e=t.paused,t.pause()):e=!0,this.previouslyPaused=e}var r=this.fragCurrent;r&&r.loader&&r.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},e.prototype.immediateLevelSwitchEnd=function(){var t=this.media;t&&t.buffered.length&&(this.immediateSwitch=!1,s.a.isBuffered(t,t.currentTime)&&(t.currentTime-=1e-4),this.previouslyPaused||t.play())},e.prototype.nextLevelSwitch=function(){var t=this.media;if(t&&t.readyState){var e=void 0,r=void 0,i=void 0;if(r=this.getBufferedFrag(t.currentTime),r&&r.startPTS>1&&this.flushMainBuffer(0,r.startPTS-1),t.paused)e=0;else{var a=this.hls.nextLoadLevel,n=this.levels[a],o=this.fragLastKbps;e=o&&this.fragCurrent?this.fragCurrent.duration*n.bitrate/(1e3*o)+1:0}if((i=this.getBufferedFrag(t.currentTime+e))&&(i=this.followingBufferedFrag(i))){var s=this.fragCurrent;s&&s.loader&&s.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(i.maxStartPTS,Number.POSITIVE_INFINITY)}}},e.prototype.flushMainBuffer=function(t,e){this.state=E.BUFFER_FLUSHING;var r={startOffset:t,endOffset:e};this.altAudio&&(r.type="video"),this.hls.trigger(u.a.BUFFER_FLUSHING,r)},e.prototype.onMediaAttached=function(t){var e=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),e.addEventListener("seeking",this.onvseeking),e.addEventListener("seeked",this.onvseeked),e.addEventListener("ended",this.onvended);var r=this.config;this.levels&&r.autoStartLoad&&this.hls.startLoad(r.startPosition)},e.prototype.onMediaDetaching=function(){var t=this.media;t&&t.ended&&(g.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var e=this.levels;e&&e.forEach(function(t){t.details&&t.details.fragments.forEach(function(t){t.backtracked=void 0})}),t&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("seeked",this.onvseeked),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()},e.prototype.onMediaSeeking=function(){var t=this.media,e=t?t.currentTime:void 0,r=this.config;isNaN(e)||g.b.log("media seeking to "+e.toFixed(3));var i=this.mediaBuffer?this.mediaBuffer:t,a=s.a.bufferInfo(i,e,this.config.maxBufferHole);if(this.state===E.FRAG_LOADING){var n=this.fragCurrent;if(0===a.len&&n){var o=r.maxFragLookUpTolerance,l=n.start-o,u=n.start+n.duration+o;e<l||e>u?(n.loader&&(g.b.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),n.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.state=E.IDLE):g.b.log("seeking outside of buffer but within currently loaded fragment range")}}else this.state===E.ENDED&&(0===a.len&&(this.fragPrevious=0),this.state=E.IDLE);t&&(this.lastCurrentTime=e),this.loadedmetadata||(this.nextLoadPosition=this.startPosition=e),this.tick()},e.prototype.onMediaSeeked=function(){var t=this.media,e=t?t.currentTime:void 0;isNaN(e)||g.b.log("media seeked to "+e.toFixed(3)),this.tick()},e.prototype.onMediaEnded=function(){g.b.log("media ended"),this.startPosition=this.lastCurrentTime=0},e.prototype.onManifestLoading=function(){g.b.log("trigger BUFFER_RESET"),this.hls.trigger(u.a.BUFFER_RESET),this.fragmentTracker.removeAllFragments(),this.stalled=!1,this.startPosition=this.lastCurrentTime=0},e.prototype.onManifestParsed=function(t){var e=!1,r=!1,i=void 0;t.levels.forEach(function(t){(i=t.audioCodec)&&(-1!==i.indexOf("mp4a.40.2")&&(e=!0),-1!==i.indexOf("mp4a.40.5")&&(r=!0))}),this.audioCodecSwitch=e&&r,this.audioCodecSwitch&&g.b.log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startFragRequested=!1;var a=this.config;(a.autoStartLoad||this.forceStartLoad)&&this.hls.startLoad(a.startPosition)},e.prototype.onLevelLoaded=function(t){var e=t.details,r=t.level,i=this.levels[this.levelLastLoaded],a=this.levels[r],n=e.totalduration,o=0;if(g.b.log("level "+r+" loaded ["+e.startSN+","+e.endSN+"],duration:"+n),e.live){var s=a.details;s&&e.fragments.length>0?(f.a(s,e),o=e.fragments[0].start,this.liveSyncPosition=this.computeLivePosition(o,s),e.PTSKnown&&!isNaN(o)?g.b.log("live playlist sliding:"+o.toFixed(3)):(g.b.log("live playlist - outdated PTS, unknown sliding"),Object(y.a)(this.fragPrevious,i,e))):(g.b.log("live playlist - first load, unknown sliding"),e.PTSKnown=!1,Object(y.a)(this.fragPrevious,i,e))}else e.PTSKnown=!1;if(a.details=e,this.levelLastLoaded=r,this.hls.trigger(u.a.LEVEL_UPDATED,{details:e,level:r}),!1===this.startFragRequested){if(-1===this.startPosition||-1===this.lastCurrentTime){var l=e.startTimeOffset;isNaN(l)?e.live?(this.startPosition=this.computeLivePosition(o,e),g.b.log("configure startPosition to "+this.startPosition)):this.startPosition=0:(l<0&&(g.b.log("negative start time offset "+l+", count from end of last fragment"),l=o+n+l),g.b.log("start time offset found in playlist, adjust startPosition to "+l),this.startPosition=l),this.lastCurrentTime=this.startPosition}this.nextLoadPosition=this.startPosition}this.state===E.WAITING_LEVEL&&(this.state=E.IDLE),this.tick()},e.prototype.onKeyLoaded=function(){this.state===E.KEY_LOADING&&(this.state=E.IDLE,this.tick())},e.prototype.onFragLoaded=function(t){var e=this.fragCurrent,r=t.frag;if(this.state===E.FRAG_LOADING&&e&&"main"===r.type&&r.level===e.level&&r.sn===e.sn){var i=t.stats,a=this.levels[e.level],n=a.details;if(g.b.log("Loaded  "+e.sn+" of ["+n.startSN+" ,"+n.endSN+"],level "+e.level),this.bitrateTest=!1,this.stats=i,!0===r.bitrateTest&&this.hls.nextLoadLevel)this.state=E.IDLE,this.startFragRequested=!1,i.tparsed=i.tbuffered=performance.now(),this.hls.trigger(u.a.FRAG_BUFFERED,{stats:i,frag:e,id:"main"}),this.tick();else if("initSegment"===r.sn)this.state=E.IDLE,i.tparsed=i.tbuffered=performance.now(),n.initSegment.data=t.payload,this.hls.trigger(u.a.FRAG_BUFFERED,{stats:i,frag:e,id:"main"}),this.tick();else{this.state=E.PARSING;var o=n.totalduration,s=e.level,d=e.sn,c=this.config.defaultAudioCodec||a.audioCodec;this.audioCodecSwap&&(g.b.log("swapping playlist audio codec"),void 0===c&&(c=this.lastAudioCodec),c&&(c=-1!==c.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5")),this.pendingBuffering=!0,this.appended=!1,g.b.log("Parsing "+d+" of ["+n.startSN+" ,"+n.endSN+"],level "+s+", cc "+e.cc);var h=this.demuxer;h||(h=this.demuxer=new l.a(this.hls,"main"));var f=this.media,p=f&&f.seeking,v=!p&&(n.PTSKnown||!n.live),y=n.initSegment?n.initSegment.data:[];h.push(t.payload,y,c,a.videoCodec,e,o,v,void 0)}}this.fragLoadError=0},e.prototype.onFragParsingInitSegment=function(t){var e=this.fragCurrent,r=t.frag;if(e&&"main"===t.id&&r.sn===e.sn&&r.level===e.level&&this.state===E.PARSING){var i=t.tracks,a=void 0,n=void 0;if(i.audio&&this.altAudio&&delete i.audio,n=i.audio){var o=this.levels[this.level].audioCodec,s=navigator.userAgent.toLowerCase();o&&this.audioCodecSwap&&(g.b.log("swapping playlist audio codec"),o=-1!==o.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),this.audioCodecSwitch&&1!==n.metadata.channelCount&&-1===s.indexOf("firefox")&&(o="mp4a.40.5"),-1!==s.indexOf("android")&&"audio/mpeg"!==n.container&&(o="mp4a.40.2",g.b.log("Android: force audio codec to "+o)),n.levelCodec=o,n.id=t.id}n=i.video,n&&(n.levelCodec=this.levels[this.level].videoCodec,n.id=t.id),this.hls.trigger(u.a.BUFFER_CODECS,i);for(a in i){n=i[a],g.b.log("main track:"+a+",container:"+n.container+",codecs[level/parsed]=["+n.levelCodec+"/"+n.codec+"]");var l=n.initSegment;l&&(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(u.a.BUFFER_APPENDING,{type:a,data:l,parent:"main",content:"initSegment"}))}this.tick()}},e.prototype.onFragParsingData=function(t){var e=this,r=this.fragCurrent,i=t.frag;if(r&&"main"===t.id&&i.sn===r.sn&&i.level===r.level&&("audio"!==t.type||!this.altAudio)&&this.state===E.PARSING){var a=this.levels[this.level],n=r;if(isNaN(t.endPTS)&&(t.endPTS=t.startPTS+r.duration,t.endDTS=t.startDTS+r.duration),!0===t.hasAudio&&n.addElementaryStream(c.a.ElementaryStreamTypes.AUDIO),!0===t.hasVideo&&n.addElementaryStream(c.a.ElementaryStreamTypes.VIDEO),g.b.log("Parsed "+t.type+",PTS:["+t.startPTS.toFixed(3)+","+t.endPTS.toFixed(3)+"],DTS:["+t.startDTS.toFixed(3)+"/"+t.endDTS.toFixed(3)+"],nb:"+t.nb+",dropped:"+(t.dropped||0)),"video"===t.type)if(n.dropped=t.dropped,n.dropped)if(n.backtracked)g.b.warn("Already backtracked on this fragment, appending with the gap");else{var o=a.details;if(!o||n.sn!==o.startSN)return g.b.warn("missing video frame(s), backtracking fragment"),this.fragmentTracker.removeFragment(n),n.backtracked=!0,this.nextLoadPosition=t.startPTS,this.state=E.IDLE,this.fragPrevious=n,void this.tick();g.b.warn("missing video frame(s) on first frag, appending with gap")}else n.backtracked=!1;var s=f.b(a.details,n,t.startPTS,t.endPTS,t.startDTS,t.endDTS),l=this.hls;l.trigger(u.a.LEVEL_PTS_UPDATED,{details:a.details,level:this.level,drift:s,type:t.type,start:t.startPTS,end:t.endPTS}),[t.data1,t.data2].forEach(function(r){r&&r.length&&e.state===E.PARSING&&(e.appended=!0,e.pendingBuffering=!0,l.trigger(u.a.BUFFER_APPENDING,{type:t.type,data:r,parent:"main",content:"data"}))}),this.tick()}},e.prototype.onFragParsed=function(t){var e=this.fragCurrent,r=t.frag;e&&"main"===t.id&&r.sn===e.sn&&r.level===e.level&&this.state===E.PARSING&&(this.stats.tparsed=performance.now(),this.state=E.PARSED,this._checkAppendedParsed())},e.prototype.onAudioTrackSwitching=function(t){var e=!!t.url,r=t.id;if(!e){if(this.mediaBuffer!==this.media){g.b.log("switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var i=this.fragCurrent;i.loader&&(g.b.log("switching to main audio track, cancel main fragment load"),i.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=E.IDLE}var a=this.hls;a.trigger(u.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),a.trigger(u.a.AUDIO_TRACK_SWITCHED,{id:r}),this.altAudio=!1}},e.prototype.onAudioTrackSwitched=function(t){var e=t.id,r=!!this.hls.audioTracks[e].url;if(r){var i=this.videoBuffer;i&&this.mediaBuffer!==i&&(g.b.log("switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=i)}this.altAudio=r,this.tick()},e.prototype.onBufferCreated=function(t){var e=t.tracks,r=void 0,i=void 0,a=!1;for(var n in e){var o=e[n];"main"===o.id?(i=n,r=o,"video"===n&&(this.videoBuffer=e[n].buffer)):a=!0}a&&r?(g.b.log("alternate track found, use "+i+".buffered to schedule main fragment loading"),this.mediaBuffer=r.buffer):this.mediaBuffer=this.media},e.prototype.onBufferAppended=function(t){if("main"===t.parent){var e=this.state;e!==E.PARSING&&e!==E.PARSED||(this.pendingBuffering=t.pending>0,this._checkAppendedParsed())}},e.prototype._checkAppendedParsed=function(){if(!(this.state!==E.PARSED||this.appended&&this.pendingBuffering)){var t=this.fragCurrent;if(t){var e=this.mediaBuffer?this.mediaBuffer:this.media;g.b.log("main buffered : "+p.a.toString(e.buffered)),this.fragPrevious=t;var r=this.stats;r.tbuffered=performance.now(),this.fragLastKbps=Math.round(8*r.total/(r.tbuffered-r.tfirst)),this.hls.trigger(u.a.FRAG_BUFFERED,{stats:r,frag:t,id:"main"}),this.state=E.IDLE}this.tick()}},e.prototype.onError=function(t){var e=t.frag||this.fragCurrent;if(!e||"main"===e.type){var r=!!this.media&&s.a.isBuffered(this.media,this.media.currentTime)&&s.a.isBuffered(this.media,this.media.currentTime+.5);switch(t.details){case v.a.FRAG_LOAD_ERROR:case v.a.FRAG_LOAD_TIMEOUT:case v.a.KEY_LOAD_ERROR:case v.a.KEY_LOAD_TIMEOUT:if(!t.fatal)if(this.fragLoadError+1<=this.config.fragLoadingMaxRetry){var i=Math.min(Math.pow(2,this.fragLoadError)*this.config.fragLoadingRetryDelay,this.config.fragLoadingMaxRetryTimeout);g.b.warn("mediaController: frag loading failed, retry in "+i+" ms"),this.retryDate=performance.now()+i,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.fragLoadError++,this.state=E.FRAG_LOADING_WAITING_RETRY}else g.b.error("mediaController: "+t.details+" reaches max retry, redispatch as fatal ..."),t.fatal=!0,this.state=E.ERROR;break;case v.a.LEVEL_LOAD_ERROR:case v.a.LEVEL_LOAD_TIMEOUT:this.state!==E.ERROR&&(t.fatal?(this.state=E.ERROR,g.b.warn("streamController: "+t.details+",switch to "+this.state+" state ...")):t.levelRetry||this.state!==E.WAITING_LEVEL||(this.state=E.IDLE));break;case v.a.BUFFER_FULL_ERROR:"main"!==t.parent||this.state!==E.PARSING&&this.state!==E.PARSED||(r?(this._reduceMaxBufferLength(this.config.maxBufferLength),this.state=E.IDLE):(g.b.warn("buffer full error also media.currentTime is not buffered, flush everything"),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)))}}},e.prototype._reduceMaxBufferLength=function(t){var e=this.config;return e.maxMaxBufferLength>=t&&(e.maxMaxBufferLength/=2,g.b.warn("main:reduce max buffer length to "+e.maxMaxBufferLength+"s"),!0)},e.prototype._checkBuffer=function(){var t=this.media,e=this.config;if(t&&t.readyState){var r=t.currentTime,i=this.mediaBuffer?this.mediaBuffer:t,a=i.buffered;if(!this.loadedmetadata&&a.length){this.loadedmetadata=!0;var n=t.seeking?r:this.startPosition;r!==n&&(g.b.log("target start position not buffered, seek to buffered.start(0) "+n+" from current time"+r+" "),t.currentTime=n)}else if(this.immediateSwitch)this.immediateLevelSwitchEnd();else{var o=s.a.bufferInfo(t,r,e.maxBufferHole),l=!(t.paused&&t.readyState>1||t.ended||0===t.buffered.length),d=r!==this.lastCurrentTime;if(d)this.stallReported&&(g.b.warn("playback not stuck anymore @"+r+", after "+Math.round(performance.now()-this.stalled)+"ms"),this.stallReported=!1),this.stalled=void 0,this.nudgeRetry=0;else if(l){var c=performance.now(),h=this.hls;if(this.stalled){var f=c-this.stalled,p=o.len,y=this.nudgeRetry||0,m=this.fragmentTracker.getPartialFragment(r);if(null!==m)for(var b=0,E=0;E<t.buffered.length;E++){var T=t.buffered.start(E);if(r>=b&&r<T)return t.currentTime=Math.max(T,t.currentTime+.1),g.b.warn("skipping hole, adjusting currentTime from "+r+" to "+t.currentTime),this.stalled=void 0,void h.trigger(u.a.ERROR,{type:v.b.MEDIA_ERROR,details:v.a.BUFFER_SEEK_OVER_HOLE,fatal:!1,reason:"fragment loaded with buffer holes, seeking from "+r+" to "+t.currentTime,frag:m});b=t.buffered.end(E)}if(p>.5&&f>1e3*e.highBufferWatchdogPeriod)if(this.stallReported||(this.stallReported=!0,g.b.warn("playback stalling in high buffer @"+r),h.trigger(u.a.ERROR,{type:v.b.MEDIA_ERROR,details:v.a.BUFFER_STALLED_ERROR,fatal:!1,buffer:p})),this.stalled=void 0,this.nudgeRetry=++y,y<e.nudgeMaxRetry){var S=t.currentTime,R=S+y*e.nudgeOffset;g.b.log("adjust currentTime from "+S+" to "+R),t.currentTime=R,h.trigger(u.a.ERROR,{type:v.b.MEDIA_ERROR,details:v.a.BUFFER_NUDGE_ON_STALL,fatal:!1})}else g.b.error("still stuck in high buffer @"+r+" after "+e.nudgeMaxRetry+", raise fatal error"),h.trigger(u.a.ERROR,{type:v.b.MEDIA_ERROR,details:v.a.BUFFER_STALLED_ERROR,fatal:!0})}else this.stalled=c,this.stallReported=!1}}}},e.prototype.onFragLoadEmergencyAborted=function(){this.state=E.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tick()},e.prototype.onBufferFlushed=function(){var t=this.mediaBuffer?this.mediaBuffer:this.media;this.fragmentTracker.detectEvictedFragments(c.a.ElementaryStreamTypes.VIDEO,t.buffered),this.state=E.IDLE,this.fragPrevious=null},e.prototype.swapAudioCodec=function(){this.audioCodecSwap=!this.audioCodecSwap},e.prototype.computeLivePosition=function(t,e){var r=void 0!==this.config.liveSyncDuration?this.config.liveSyncDuration:this.config.liveSyncDurationCount*e.targetduration;return t+Math.max(0,e.totalduration-r)},b(e,[{key:"state",set:function(t){if(this.state!==t){var e=this.state;this._state=t,g.b.log("main stream:"+e+"->"+t),this.hls.trigger(u.a.STREAM_STATE_TRANSITION,{previousState:e,nextState:t})}},get:function(){return this._state}},{key:"currentLevel",get:function(){var t=this.media;if(t){var e=this.getBufferedFrag(t.currentTime);if(e)return e.level}return-1}},{key:"nextBufferedFrag",get:function(){var t=this.media;return t?this.followingBufferedFrag(this.getBufferedFrag(t.currentTime)):null}},{key:"nextLevel",get:function(){var t=this.nextBufferedFrag;return t?t.level:-1}},{key:"liveSyncPosition",get:function(){return this._liveSyncPosition},set:function(t){this._liveSyncPosition=t}}]),e}(m.a);e.a=T},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=function(){function t(e,r){i(this,t),this.subtle=e,this.aesIV=r}return t.prototype.decrypt=function(t,e){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},e,t)},t}();e.a=a},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=function(){function t(e,r){i(this,t),this.subtle=e,this.key=r}return t.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])},t}();e.a=a},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t){var e=t.byteLength,r=e&&new DataView(t).getUint8(e-1);return r?t.slice(0,e-r):t}var n=function(){function t(){i(this,t),this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.initTable()}return t.prototype.uint8ArrayToUint32Array_=function(t){for(var e=new DataView(t),r=new Uint32Array(4),i=0;i<4;i++)r[i]=e.getUint32(4*i);return r},t.prototype.initTable=function(){var t=this.sBox,e=this.invSBox,r=this.subMix,i=r[0],a=r[1],n=r[2],o=r[3],s=this.invSubMix,l=s[0],u=s[1],d=s[2],c=s[3],h=new Uint32Array(256),f=0,p=0,v=0;for(v=0;v<256;v++)h[v]=v<128?v<<1:v<<1^283;for(v=0;v<256;v++){var g=p^p<<1^p<<2^p<<3^p<<4;g=g>>>8^255&g^99,t[f]=g,e[g]=f;var y=h[f],m=h[y],b=h[m],E=257*h[g]^16843008*g;i[f]=E<<24|E>>>8,a[f]=E<<16|E>>>16,n[f]=E<<8|E>>>24,o[f]=E,E=16843009*b^65537*m^257*y^16843008*f,l[g]=E<<24|E>>>8,u[g]=E<<16|E>>>16,d[g]=E<<8|E>>>24,c[g]=E,f?(f=y^h[h[h[b^y]]],p^=h[h[p]]):f=p=1}},t.prototype.expandKey=function(t){for(var e=this.uint8ArrayToUint32Array_(t),r=!0,i=0;i<e.length&&r;)r=e[i]===this.key[i],i++;if(!r){this.key=e;var a=this.keySize=e.length;if(4!==a&&6!==a&&8!==a)throw new Error("Invalid aes key size="+a);var n=this.ksRows=4*(a+6+1),o=void 0,s=void 0,l=this.keySchedule=new Uint32Array(n),u=this.invKeySchedule=new Uint32Array(n),d=this.sBox,c=this.rcon,h=this.invSubMix,f=h[0],p=h[1],v=h[2],g=h[3],y=void 0,m=void 0;for(o=0;o<n;o++)o<a?y=l[o]=e[o]:(m=y,o%a==0?(m=m<<8|m>>>24,m=d[m>>>24]<<24|d[m>>>16&255]<<16|d[m>>>8&255]<<8|d[255&m],m^=c[o/a|0]<<24):a>6&&o%a==4&&(m=d[m>>>24]<<24|d[m>>>16&255]<<16|d[m>>>8&255]<<8|d[255&m]),l[o]=y=(l[o-a]^m)>>>0);for(s=0;s<n;s++)o=n-s,m=3&s?l[o]:l[o-4],u[s]=s<4||o<=4?m:f[d[m>>>24]]^p[d[m>>>16&255]]^v[d[m>>>8&255]]^g[d[255&m]],u[s]=u[s]>>>0}},t.prototype.networkToHostOrderSwap=function(t){return t<<24|(65280&t)<<8|(16711680&t)>>8|t>>>24},t.prototype.decrypt=function(t,e,r,i){for(var n=this.keySize+6,o=this.invKeySchedule,s=this.invSBox,l=this.invSubMix,u=l[0],d=l[1],c=l[2],h=l[3],f=this.uint8ArrayToUint32Array_(r),p=f[0],v=f[1],g=f[2],y=f[3],m=new Int32Array(t),b=new Int32Array(m.length),E=void 0,T=void 0,S=void 0,R=void 0,A=void 0,_=void 0,w=void 0,L=void 0,D=void 0,I=void 0,O=void 0,k=void 0,C=void 0,P=void 0,x=this.networkToHostOrderSwap;e<m.length;){for(D=x(m[e]),I=x(m[e+1]),O=x(m[e+2]),k=x(m[e+3]),A=D^o[0],_=k^o[1],w=O^o[2],L=I^o[3],C=4,P=1;P<n;P++)E=u[A>>>24]^d[_>>16&255]^c[w>>8&255]^h[255&L]^o[C],T=u[_>>>24]^d[w>>16&255]^c[L>>8&255]^h[255&A]^o[C+1],S=u[w>>>24]^d[L>>16&255]^c[A>>8&255]^h[255&_]^o[C+2],R=u[L>>>24]^d[A>>16&255]^c[_>>8&255]^h[255&w]^o[C+3],A=E,_=T,w=S,L=R,C+=4;E=s[A>>>24]<<24^s[_>>16&255]<<16^s[w>>8&255]<<8^s[255&L]^o[C],T=s[_>>>24]<<24^s[w>>16&255]<<16^s[L>>8&255]<<8^s[255&A]^o[C+1],S=s[w>>>24]<<24^s[L>>16&255]<<16^s[A>>8&255]<<8^s[255&_]^o[C+2],R=s[L>>>24]<<24^s[A>>16&255]<<16^s[_>>8&255]<<8^s[255&w]^o[C+3],C+=3,b[e]=x(E^p),b[e+1]=x(R^v),b[e+2]=x(S^g),b[e+3]=x(T^y),p=D,v=I,g=O,y=k,e+=4}return i?a(b.buffer):b.buffer},t.prototype.destroy=function(){this.key=void 0,this.keySize=void 0,this.ksRows=void 0,this.sBox=void 0,this.invSBox=void 0,this.subMix=void 0,this.invSubMix=void 0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.rcon=void 0},t}();e.a=n},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(20),n=r(0),o=r(5),s=function(){function t(e,r,a){i(this,t),this.observer=e,this.config=a,this.remuxer=r}return t.prototype.resetInitSegment=function(t,e,r,i){this._audioTrack={container:"audio/adts",type:"audio",id:0,sequenceNumber:0,isAAC:!0,samples:[],len:0,manifestCodec:e,duration:i,inputTimeScale:9e4}},t.prototype.resetTimeStamp=function(){},t.probe=function(t){if(!t)return!1;for(var e=o.a.getID3Data(t,0)||[],r=e.length,i=t.length;r<i;r++)if(a.e(t,r))return n.b.log("ADTS sync word found !"),!0;return!1},t.prototype.append=function(t,e,r,i){for(var s=this._audioTrack,l=o.a.getID3Data(t,0)||[],u=o.a.getTimeStamp(l),d=u?90*u:9e4*e,c=0,h=d,f=t.length,p=l.length,v=[{pts:h,dts:h,data:l}];p<f-1;)if(a.d(t,p)&&p+5<f){a.c(s,this.observer,t,p,s.manifestCodec);var g=a.a(s,t,p,d,c);if(!g){n.b.log("Unable to parse AAC frame");break}p+=g.length,h=g.sample.pts,c++}else o.a.isHeader(t,p)?(l=o.a.getID3Data(t,p),v.push({pts:h,dts:h,data:l}),p+=l.length):p++;this.remuxer.remux(s,{samples:[]},{samples:v,inputTimeScale:9e4},{samples:[]},e,r,i)},t.prototype.destroy=function(){},t}();e.a=s},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(20),n=r(21),o=r(1),s=r(38),l=r(39),u=r(0),d=r(2),c={video:0,audio:1,id3:2,text:3},h=function(){function t(e,r,a,n){i(this,t),this.observer=e,this.config=a,this.typeSupported=n,this.remuxer=r,this.sampleAes=null}return t.prototype.setDecryptData=function(t){null!=t&&null!=t.key&&"SAMPLE-AES"===t.method?this.sampleAes=new l.a(this.observer,this.config,t,this.discardEPB):this.sampleAes=null},t.probe=function(e){var r=t._syncOffset(e);return!(r<0)&&(r&&u.b.warn("MPEG2-TS detected but first sync word found @ offset "+r+", junk ahead ?"),!0)},t._syncOffset=function(t){for(var e=Math.min(1e3,t.length-564),r=0;r<e;){if(71===t[r]&&71===t[r+188]&&71===t[r+376])return r;r++}return-1},t.createTrack=function(t,e){return{container:"video"===t||"audio"===t?"video/mp2t":void 0,type:t,id:c[t],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],len:0,dropped:"video"===t?0:void 0,isAAC:"audio"===t||void 0,duration:"audio"===t?e:void 0}},t.prototype.resetInitSegment=function(e,r,i,a){this.pmtParsed=!1,this._pmtId=-1,this._avcTrack=t.createTrack("video",a),this._audioTrack=t.createTrack("audio",a),this._id3Track=t.createTrack("id3",a),this._txtTrack=t.createTrack("text",a),this.aacOverFlow=null,this.aacLastPTS=null,this.avcSample=null,this.audioCodec=r,this.videoCodec=i,this._duration=a},t.prototype.resetTimeStamp=function(){},t.prototype.append=function(e,r,i,a){var n=void 0,s=e.length,l=void 0,c=void 0,h=void 0,f=void 0,p=!1;this.contiguous=i;var v=this.pmtParsed,g=this._avcTrack,y=this._audioTrack,m=this._id3Track,b=g.pid,E=y.pid,T=m.pid,S=this._pmtId,R=g.pesData,A=y.pesData,_=m.pesData,w=this._parsePAT,L=this._parsePMT,D=this._parsePES,I=this._parseAVCPES.bind(this),O=this._parseAACPES.bind(this),k=this._parseMPEGPES.bind(this),C=this._parseID3PES.bind(this),P=t._syncOffset(e);for(s-=(s+P)%188,n=P;n<s;n+=188)if(71===e[n]){if(l=!!(64&e[n+1]),c=((31&e[n+1])<<8)+e[n+2],(48&e[n+3])>>4>1){if((h=n+5+e[n+4])===n+188)continue}else h=n+4;switch(c){case b:l&&(R&&(f=D(R))&&void 0!==f.pts&&I(f,!1),R={data:[],size:0}),R&&(R.data.push(e.subarray(h,n+188)),R.size+=n+188-h);break;case E:l&&(A&&(f=D(A))&&void 0!==f.pts&&(y.isAAC?O(f):k(f)),A={data:[],size:0}),A&&(A.data.push(e.subarray(h,n+188)),A.size+=n+188-h);break;case T:l&&(_&&(f=D(_))&&void 0!==f.pts&&C(f),_={data:[],size:0}),_&&(_.data.push(e.subarray(h,n+188)),_.size+=n+188-h);break;case 0:l&&(h+=e[h]+1),S=this._pmtId=w(e,h);break;case S:l&&(h+=e[h]+1);var x=L(e,h,!0===this.typeSupported.mpeg||!0===this.typeSupported.mp3,null!=this.sampleAes);b=x.avc,b>0&&(g.pid=b),E=x.audio,E>0&&(y.pid=E,y.isAAC=x.isAAC),T=x.id3,T>0&&(m.pid=T),p&&!v&&(u.b.log("reparse from beginning"),p=!1,n=P-188),v=this.pmtParsed=!0;break;case 17:case 8191:break;default:p=!0}}else this.observer.trigger(o.a.ERROR,{type:d.b.MEDIA_ERROR,details:d.a.FRAG_PARSING_ERROR,fatal:!1,reason:"TS packet did not start with 0x47"});R&&(f=D(R))&&void 0!==f.pts?(I(f,!0),g.pesData=null):g.pesData=R,A&&(f=D(A))&&void 0!==f.pts?(y.isAAC?O(f):k(f),y.pesData=null):(A&&A.size&&u.b.log("last AAC PES packet truncated,might overlap between fragments"),y.pesData=A),_&&(f=D(_))&&void 0!==f.pts?(C(f),m.pesData=null):m.pesData=_,null==this.sampleAes?this.remuxer.remux(y,g,m,this._txtTrack,r,i,a):this.decryptAndRemux(y,g,m,this._txtTrack,r,i,a)},t.prototype.decryptAndRemux=function(t,e,r,i,a,n,o){if(t.samples&&t.isAAC){var s=this;this.sampleAes.decryptAacSamples(t.samples,0,function(){s.decryptAndRemuxAvc(t,e,r,i,a,n,o)})}else this.decryptAndRemuxAvc(t,e,r,i,a,n,o)},t.prototype.decryptAndRemuxAvc=function(t,e,r,i,a,n,o){if(e.samples){var s=this;this.sampleAes.decryptAvcSamples(e.samples,0,0,function(){s.remuxer.remux(t,e,r,i,a,n,o)})}else this.remuxer.remux(t,e,r,i,a,n,o)},t.prototype.destroy=function(){this._initPTS=this._initDTS=void 0,this._duration=0},t.prototype._parsePAT=function(t,e){return(31&t[e+10])<<8|t[e+11]},t.prototype._parsePMT=function(t,e,r,i){var a=void 0,n=void 0,o=void 0,s=void 0,l={audio:-1,avc:-1,id3:-1,isAAC:!0};for(a=(15&t[e+1])<<8|t[e+2],n=e+3+a-4,o=(15&t[e+10])<<8|t[e+11],e+=12+o;e<n;){switch(s=(31&t[e+1])<<8|t[e+2],t[e]){case 207:if(!i){u.b.log("unkown stream type:"+t[e]);break}case 15:-1===l.audio&&(l.audio=s);break;case 21:-1===l.id3&&(l.id3=s);break;case 219:if(!i){u.b.log("unkown stream type:"+t[e]);break}case 27:-1===l.avc&&(l.avc=s);break;case 3:case 4:r?-1===l.audio&&(l.audio=s,l.isAAC=!1):u.b.log("MPEG audio found, not supported in this browser for now");break;case 36:u.b.warn("HEVC stream type found, not supported for now");break;default:u.b.log("unkown stream type:"+t[e])}e+=5+((15&t[e+3])<<8|t[e+4])}return l},t.prototype._parsePES=function(t){var e=0,r=void 0,i=void 0,a=void 0,n=void 0,o=void 0,s=void 0,l=void 0,d=void 0,c=t.data;if(!t||0===t.size)return null;for(;c[0].length<19&&c.length>1;){var h=new Uint8Array(c[0].length+c[1].length);h.set(c[0]),h.set(c[1],c[0].length),c[0]=h,c.splice(1,1)}if(r=c[0],1===(r[0]<<16)+(r[1]<<8)+r[2]){if((a=(r[4]<<8)+r[5])&&a>t.size-6)return null;i=r[7],192&i&&(s=536870912*(14&r[9])+4194304*(255&r[10])+16384*(254&r[11])+128*(255&r[12])+(254&r[13])/2,s>4294967295&&(s-=8589934592),64&i?(l=536870912*(14&r[14])+4194304*(255&r[15])+16384*(254&r[16])+128*(255&r[17])+(254&r[18])/2,l>4294967295&&(l-=8589934592),s-l>54e5&&(u.b.warn(Math.round((s-l)/9e4)+"s delta between PTS and DTS, align them"),s=l)):l=s),n=r[8],d=n+9,t.size-=d,o=new Uint8Array(t.size);for(var f=0,p=c.length;f<p;f++){r=c[f];var v=r.byteLength;if(d){if(d>v){d-=v;continue}r=r.subarray(d),v-=d,d=0}o.set(r,e),e+=v}return a&&(a-=n+3),{data:o,pts:s,dts:l,len:a}}return null},t.prototype.pushAccesUnit=function(t,e){if(t.units.length&&t.frame){var r=e.samples,i=r.length;!this.config.forceKeyFrameOnDiscontinuity||!0===t.key||e.sps&&(i||this.contiguous)?(t.id=i,r.push(t)):e.dropped++}t.debug.length&&u.b.log(t.pts+"/"+t.dts+":"+t.debug)},t.prototype._parseAVCPES=function(t,e){var r=this,i=this._avcTrack,a=this._parseAVCNALu(t.data),n=void 0,o=this.avcSample,l=void 0,u=!1,d=void 0,c=this.pushAccesUnit.bind(this),h=function(t,e,r,i){return{key:t,pts:e,dts:r,units:[],debug:i}};t.data=null,o&&a.length&&!i.audFound&&(c(o,i),o=this.avcSample=h(!1,t.pts,t.dts,"")),a.forEach(function(e){switch(e.type){case 1:l=!0,o||(o=r.avcSample=h(!0,t.pts,t.dts,"")),o.frame=!0;var a=e.data;if(u&&a.length>4){var f=new s.a(a).readSliceType();2!==f&&4!==f&&7!==f&&9!==f||(o.key=!0)}break;case 5:l=!0,o||(o=r.avcSample=h(!0,t.pts,t.dts,"")),o.key=!0,o.frame=!0;break;case 6:l=!0,n=new s.a(r.discardEPB(e.data)),n.readUByte();for(var p=0,v=0,g=!1,y=0;!g&&n.bytesAvailable>1;){p=0;do{y=n.readUByte(),p+=y}while(255===y);v=0;do{y=n.readUByte(),v+=y}while(255===y);if(4===p&&0!==n.bytesAvailable){g=!0;if(181===n.readUByte()){if(49===n.readUShort()){if(1195456820===n.readUInt()){if(3===n.readUByte()){var m=n.readUByte(),b=n.readUByte(),E=31&m,T=[m,b];for(d=0;d<E;d++)T.push(n.readUByte()),T.push(n.readUByte()),T.push(n.readUByte());r._insertSampleInOrder(r._txtTrack.samples,{type:3,pts:t.pts,bytes:T})}}}}}else if(v<n.bytesAvailable)for(d=0;d<v;d++)n.readUByte()}break;case 7:if(l=!0,u=!0,!i.sps){n=new s.a(e.data);var S=n.readSPS();i.width=S.width,i.height=S.height,i.pixelRatio=S.pixelRatio,i.sps=[e.data],i.duration=r._duration;var R=e.data.subarray(1,4),A="avc1.";for(d=0;d<3;d++){var _=R[d].toString(16);_.length<2&&(_="0"+_),A+=_}i.codec=A}break;case 8:l=!0,i.pps||(i.pps=[e.data]);break;case 9:l=!1,i.audFound=!0,o&&c(o,i),o=r.avcSample=h(!1,t.pts,t.dts,"");break;case 12:l=!1;break;default:l=!1,o&&(o.debug+="unknown NAL "+e.type+" ")}if(o&&l){o.units.push(e)}}),e&&o&&(c(o,i),this.avcSample=null)},t.prototype._insertSampleInOrder=function(t,e){var r=t.length;if(r>0){if(e.pts>=t[r-1].pts)t.push(e);else for(var i=r-1;i>=0;i--)if(e.pts<t[i].pts){t.splice(i,0,e);break}}else t.push(e)},t.prototype._getLastNalUnit=function(){var t=this.avcSample,e=void 0;if(!t||0===t.units.length){var r=this._avcTrack,i=r.samples;t=i[i.length-1]}if(t){var a=t.units;e=a[a.length-1]}return e},t.prototype._parseAVCNALu=function(t){var e=0,r=t.byteLength,i=void 0,a=void 0,n=this._avcTrack,o=n.naluState||0,s=o,l=[],u=void 0,d=void 0,c=-1,h=void 0;for(-1===o&&(c=0,h=31&t[0],o=0,e=1);e<r;)if(i=t[e++],o)if(1!==o)if(i)if(1===i){if(c>=0)u={data:t.subarray(c,e-o-1),type:h},l.push(u);else{var f=this._getLastNalUnit();if(f&&(s&&e<=4-s&&f.state&&(f.data=f.data.subarray(0,f.data.byteLength-s)),(a=e-o-1)>0)){var p=new Uint8Array(f.data.byteLength+a);p.set(f.data,0),p.set(t.subarray(0,a),f.data.byteLength),f.data=p}}e<r?(d=31&t[e],c=e,h=d,o=0):o=-1}else o=0;else o=3;else o=i?0:2;else o=i?0:1;if(c>=0&&o>=0&&(u={data:t.subarray(c,r),type:h,state:o},l.push(u)),0===l.length){var v=this._getLastNalUnit();if(v){var g=new Uint8Array(v.data.byteLength+t.byteLength);g.set(v.data,0),g.set(t,v.data.byteLength),v.data=g}}return n.naluState=o,l},t.prototype.discardEPB=function(t){for(var e=t.byteLength,r=[],i=1,a=void 0,n=void 0;i<e-2;)0===t[i]&&0===t[i+1]&&3===t[i+2]?(r.push(i+2),i+=2):i++;if(0===r.length)return t;a=e-r.length,n=new Uint8Array(a);var o=0;for(i=0;i<a;o++,i++)o===r[0]&&(o++,r.shift()),n[i]=t[o];return n},t.prototype._parseAACPES=function(t){var e=this._audioTrack,r=t.data,i=t.pts,n=this.aacOverFlow,s=this.aacLastPTS,l=void 0,c=void 0,h=void 0,f=void 0,p=void 0;if(n){var v=new Uint8Array(n.byteLength+r.byteLength);v.set(n,0),v.set(r,n.byteLength),r=v}for(h=0,p=r.length;h<p-1&&!a.d(r,h);h++);if(h){var g=void 0,y=void 0;if(h<p-1?(g="AAC PES did not start with ADTS header,offset:"+h,y=!1):(g="no ADTS header found in AAC PES",y=!0),u.b.warn("parsing error:"+g),this.observer.trigger(o.a.ERROR,{type:d.b.MEDIA_ERROR,details:d.a.FRAG_PARSING_ERROR,fatal:y,reason:g}),y)return}if(a.c(e,this.observer,r,h,this.audioCodec),c=0,l=a.b(e.samplerate),n&&s){var m=s+l;Math.abs(m-i)>1&&(u.b.log("AAC: align PTS for overlapping frames by "+Math.round((m-i)/90)),i=m)}for(;h<p;)if(a.d(r,h)&&h+5<p){var b=a.a(e,r,h,i,c);if(!b)break;h+=b.length,f=b.sample.pts,c++}else h++;n=h<p?r.subarray(h,p):null,this.aacOverFlow=n,this.aacLastPTS=f},t.prototype._parseMPEGPES=function(t){for(var e=t.data,r=e.length,i=0,a=0,o=t.pts;a<r;)if(n.a.isHeader(e,a)){var s=n.a.appendFrame(this._audioTrack,e,a,o,i);if(!s)break;a+=s.length,i++}else a++},t.prototype._parseID3PES=function(t){this._id3Track.samples.push(t)},t}();e.a=h},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(0),n=function(){function t(e){i(this,t),this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0}return t.prototype.loadWord=function(){var t=this.data,e=this.bytesAvailable,r=t.byteLength-e,i=new Uint8Array(4),a=Math.min(4,e);if(0===a)throw new Error("no bytes available");i.set(t.subarray(r,r+a)),this.word=new DataView(i.buffer).getUint32(0),this.bitsAvailable=8*a,this.bytesAvailable-=a},t.prototype.skipBits=function(t){var e=void 0;this.bitsAvailable>t?(this.word<<=t,this.bitsAvailable-=t):(t-=this.bitsAvailable,e=t>>3,t-=e>>3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)},t.prototype.readBits=function(t){var e=Math.min(this.bitsAvailable,t),r=this.word>>>32-e;return t>32&&a.b.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0?this.word<<=e:this.bytesAvailable>0&&this.loadWord(),e=t-e,e>0&&this.bitsAvailable?r<<e|this.readBits(e):r},t.prototype.skipLZ=function(){var t=void 0;for(t=0;t<this.bitsAvailable;++t)if(0!=(this.word&2147483648>>>t))return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()},t.prototype.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.prototype.skipEG=function(){this.skipBits(1+this.skipLZ())},t.prototype.readUEG=function(){var t=this.skipLZ();return this.readBits(t+1)-1},t.prototype.readEG=function(){var t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)},t.prototype.readBoolean=function(){return 1===this.readBits(1)},t.prototype.readUByte=function(){return this.readBits(8)},t.prototype.readUShort=function(){return this.readBits(16)},t.prototype.readUInt=function(){return this.readBits(32)},t.prototype.skipScalingList=function(t){var e=8,r=8,i=void 0,a=void 0;for(i=0;i<t;i++)0!==r&&(a=this.readEG(),r=(e+a+256)%256),e=0===r?e:r},t.prototype.readSPS=function(){var t=0,e=0,r=0,i=0,a=void 0,n=void 0,o=void 0,s=void 0,l=void 0,u=void 0,d=void 0,c=this.readUByte.bind(this),h=this.readBits.bind(this),f=this.readUEG.bind(this),p=this.readBoolean.bind(this),v=this.skipBits.bind(this),g=this.skipEG.bind(this),y=this.skipUEG.bind(this),m=this.skipScalingList.bind(this);if(c(),a=c(),h(5),v(3),c(),y(),100===a||110===a||122===a||244===a||44===a||83===a||86===a||118===a||128===a){var b=f();if(3===b&&v(1),y(),y(),v(1),p())for(u=3!==b?8:12,d=0;d<u;d++)p()&&m(d<6?16:64)}y();var E=f();if(0===E)f();else if(1===E)for(v(1),g(),g(),n=f(),d=0;d<n;d++)g();y(),v(1),o=f(),s=f(),l=h(1),0===l&&v(1),v(1),p()&&(t=f(),e=f(),r=f(),i=f());var T=[1,1];if(p()&&p()){switch(c()){case 1:T=[1,1];break;case 2:T=[12,11];break;case 3:T=[10,11];break;case 4:T=[16,11];break;case 5:T=[40,33];break;case 6:T=[24,11];break;case 7:T=[20,11];break;case 8:T=[32,11];break;case 9:T=[80,33];break;case 10:T=[18,11];break;case 11:T=[15,11];break;case 12:T=[64,33];break;case 13:T=[160,99];break;case 14:T=[4,3];break;case 15:T=[3,2];break;case 16:T=[2,1];break;case 255:T=[c()<<8|c(),c()<<8|c()]}}return{width:Math.ceil(16*(o+1)-2*t-2*e),height:(2-l)*(s+1)*16-(l?2:4)*(r+i),pixelRatio:T}},t.prototype.readSliceType=function(){return this.readUByte(),this.readUEG(),this.readUEG()},t}();e.a=n},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(9),n=function(){function t(e,r,n,o){i(this,t),this.decryptdata=n,this.discardEPB=o,this.decrypter=new a.a(e,r,{removePKCS7Padding:!1})}return t.prototype.decryptBuffer=function(t,e){this.decrypter.decrypt(t,this.decryptdata.key.buffer,this.decryptdata.iv.buffer,e)},t.prototype.decryptAacSample=function(t,e,r,i){var a=t[e].unit,n=a.subarray(16,a.length-a.length%16),o=n.buffer.slice(n.byteOffset,n.byteOffset+n.length),s=this;this.decryptBuffer(o,function(n){n=new Uint8Array(n),a.set(n,16),i||s.decryptAacSamples(t,e+1,r)})},t.prototype.decryptAacSamples=function(t,e,r){for(;;e++){if(e>=t.length)return void r();if(!(t[e].unit.length<32)){var i=this.decrypter.isSync();if(this.decryptAacSample(t,e,r,i),!i)return}}},t.prototype.getAvcEncryptedData=function(t){for(var e=16*Math.floor((t.length-48)/160)+16,r=new Int8Array(e),i=0,a=32;a<=t.length-16;a+=160,i+=16)r.set(t.subarray(a,a+16),i);return r},t.prototype.getAvcDecryptedUnit=function(t,e){e=new Uint8Array(e);for(var r=0,i=32;i<=t.length-16;i+=160,r+=16)t.set(e.subarray(r,r+16),i);return t},t.prototype.decryptAvcSample=function(t,e,r,i,a,n){var o=this.discardEPB(a.data),s=this.getAvcEncryptedData(o),l=this;this.decryptBuffer(s.buffer,function(s){a.data=l.getAvcDecryptedUnit(o,s),n||l.decryptAvcSamples(t,e,r+1,i)})},t.prototype.decryptAvcSamples=function(t,e,r,i){for(;;e++,r=0){if(e>=t.length)return void i();for(var a=t[e].units;!(r>=a.length);r++){var n=a[r];if(!(n.length<=48||1!==n.type&&5!==n.type)){var o=this.decrypter.isSync();if(this.decryptAvcSample(t,e,r,i,n,o),!o)return}}}},t}();e.a=n},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(5),n=r(0),o=r(21),s=function(){function t(e,r,a){i(this,t),this.observer=e,this.config=a,this.remuxer=r}return t.prototype.resetInitSegment=function(t,e,r,i){this._audioTrack={container:"audio/mpeg",type:"audio",id:-1,sequenceNumber:0,isAAC:!1,samples:[],len:0,manifestCodec:e,duration:i,inputTimeScale:9e4}},t.prototype.resetTimeStamp=function(){},t.probe=function(t){var e=void 0,r=void 0,i=a.a.getID3Data(t,0);if(i&&void 0!==a.a.getTimeStamp(i))for(e=i.length,r=Math.min(t.length-1,e+100);e<r;e++)if(o.a.probe(t,e))return n.b.log("MPEG Audio sync word found !"),!0;return!1},t.prototype.append=function(t,e,r,i){for(var n=a.a.getID3Data(t,0),s=a.a.getTimeStamp(n),l=s?90*s:9e4*e,u=n.length,d=t.length,c=0,h=0,f=this._audioTrack,p=[{pts:l,dts:l,data:n}];u<d;)if(o.a.isHeader(t,u)){var v=o.a.appendFrame(f,t,u,l,c);if(!v)break;u+=v.length,h=v.sample.pts,c++}else a.a.isHeader(t,u)?(n=a.a.getID3Data(t,u),p.push({pts:h,dts:h,data:n}),u+=n.length):u++;this.remuxer.remux(f,{samples:[]},{samples:p,inputTimeScale:9e4},{samples:[]},e,r,i)},t.prototype.destroy=function(){},t}();e.a=s},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(42),n=r(1),o=r(0),s=r(43),l=r(2),u=function(){function t(e,r,a,n){i(this,t),this.observer=e,this.config=r,this.typeSupported=a;var o=navigator.userAgent;this.isSafari=n&&n.indexOf("Apple")>-1&&o&&!o.match("CriOS"),this.ISGenerated=!1}return t.prototype.destroy=function(){},t.prototype.resetTimeStamp=function(t){this._initPTS=this._initDTS=t},t.prototype.resetInitSegment=function(){this.ISGenerated=!1},t.prototype.remux=function(t,e,r,i,a,s,l){if(this.ISGenerated||this.generateIS(t,e,a),this.ISGenerated){var u=t.samples.length,d=e.samples.length,c=a,h=a;if(u&&d){var f=(t.samples[0].dts-e.samples[0].dts)/e.inputTimeScale;c+=Math.max(0,f),h+=Math.max(0,-f)}if(u){t.timescale||(o.b.warn("regenerate InitSegment as audio detected"),this.generateIS(t,e,a));var p=this.remuxAudio(t,c,s,l);if(d){var v=void 0;p&&(v=p.endPTS-p.startPTS),e.timescale||(o.b.warn("regenerate InitSegment as video detected"),this.generateIS(t,e,a)),this.remuxVideo(e,h,s,v,l)}}else if(d){var g=this.remuxVideo(e,h,s,0,l);g&&t.codec&&this.remuxEmptyAudio(t,c,s,g)}}r.samples.length&&this.remuxID3(r,a),i.samples.length&&this.remuxText(i,a),this.observer.trigger(n.a.FRAG_PARSED)},t.prototype.generateIS=function(t,e,r){var i=this.observer,a=t.samples,u=e.samples,d=this.typeSupported,c="audio/mp4",h={},f={tracks:h},p=void 0===this._initPTS,v=void 0,g=void 0;if(p&&(v=g=1/0),t.config&&a.length&&(t.timescale=t.samplerate,o.b.log("audio sampling rate : "+t.samplerate),t.isAAC||(d.mpeg?(c="audio/mpeg",t.codec=""):d.mp3&&(t.codec="mp3")),h.audio={container:c,codec:t.codec,initSegment:!t.isAAC&&d.mpeg?new Uint8Array:s.a.initSegment([t]),metadata:{channelCount:t.channelCount}},p&&(v=g=a[0].pts-t.inputTimeScale*r)),e.sps&&e.pps&&u.length){var y=e.inputTimeScale;e.timescale=y,h.video={container:"video/mp4",codec:e.codec,initSegment:s.a.initSegment([e]),metadata:{width:e.width,height:e.height}},p&&(v=Math.min(v,u[0].pts-y*r),g=Math.min(g,u[0].dts-y*r),this.observer.trigger(n.a.INIT_PTS_FOUND,{initPTS:v}))}Object.keys(h).length?(i.trigger(n.a.FRAG_PARSING_INIT_SEGMENT,f),this.ISGenerated=!0,p&&(this._initPTS=v,this._initDTS=g)):i.trigger(n.a.ERROR,{type:l.b.MEDIA_ERROR,details:l.a.FRAG_PARSING_ERROR,fatal:!1,reason:"no audio/video samples found"})},t.prototype.remuxVideo=function(t,e,r,i,a){var u=8,d=t.timescale,c=void 0,h=void 0,f=void 0,p=void 0,v=void 0,g=void 0,y=void 0,m=t.samples,b=[],E=m.length,T=this._PTSNormalize,S=this._initDTS,R=this.nextAvcDts,A=this.isSafari;if(0!==E){A&&(r|=m.length&&R&&(a&&Math.abs(e-R/d)<.1||Math.abs(m[0].pts-R-S)<d/5)),r||(R=e*d),m.forEach(function(t){t.pts=T(t.pts-S,R),t.dts=T(t.dts-S,R)}),m.sort(function(t,e){var r=t.dts-e.dts,i=t.pts-e.pts;return r||i||t.id-e.id});var _=m.reduce(function(t,e){return Math.max(Math.min(t,e.pts-e.dts),-18e3)},0);if(_<0){o.b.warn("PTS < DTS detected in video samples, shifting DTS by "+Math.round(_/90)+" ms to overcome this issue");for(var w=0;w<m.length;w++)m[w].dts+=_}var L=m[0];v=Math.max(L.dts,0),p=Math.max(L.pts,0);var D=Math.round((v-R)/90);r&&D&&(D>1?o.b.log("AVC:"+D+" ms hole between fragments detected,filling it"):D<-1&&o.b.log("AVC:"+-D+" ms overlapping between fragments detected"),v=R,m[0].dts=v,p=Math.max(p-D,R),m[0].pts=p,o.b.log("Video/PTS/DTS adjusted: "+Math.round(p/90)+"/"+Math.round(v/90)+",delta:"+D+" ms")),v,L=m[m.length-1],y=Math.max(L.dts,0),g=Math.max(L.pts,0,y),A&&(c=Math.round((y-v)/(m.length-1)));for(var I=0,O=0,k=0;k<E;k++){for(var C=m[k],P=C.units,x=P.length,F=0,N=0;N<x;N++)F+=P[N].data.length;O+=F,I+=x,C.length=F,C.dts=A?v+k*c:Math.max(C.dts,v),C.pts=Math.max(C.pts,C.dts)}var M=O+4*I+8;try{h=new Uint8Array(M)}catch(t){return void this.observer.trigger(n.a.ERROR,{type:l.b.MUX_ERROR,details:l.a.REMUX_ALLOC_ERROR,fatal:!1,bytes:M,reason:"fail allocating video mdat "+M})}var U=new DataView(h.buffer);U.setUint32(0,M),h.set(s.a.types.mdat,4);for(var B=0;B<E;B++){for(var G=m[B],K=G.units,j=0,H=void 0,V=0,Y=K.length;V<Y;V++){var W=K[V],q=W.data,X=W.data.byteLength;U.setUint32(u,X),u+=4,h.set(q,u),u+=X,j+=4+X}if(A)H=Math.max(0,c*Math.round((G.pts-G.dts)/c));else{if(B<E-1)c=m[B+1].dts-G.dts;else{var z=this.config,Q=G.dts-m[B>0?B-1:B].dts;if(z.stretchShortVideoTrack){var J=z.maxBufferHole,$=Math.floor(J*d),Z=(i?p+i*d:this.nextAudioPts)-G.pts;Z>$?(c=Z-Q,c<0&&(c=Q),o.b.log("It is approximately "+Z/90+" ms to the next segment; using duration "+c/90+" ms for the last video frame.")):c=Q}else c=Q}H=Math.round(G.pts-G.dts)}b.push({size:j,duration:c,cts:H,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:G.key?2:1,isNonSync:G.key?0:1}})}this.nextAvcDts=y+c;var tt=t.dropped;if(t.len=0,t.nbNalu=0,t.dropped=0,b.length&&navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var et=b[0].flags;et.dependsOn=2,et.isNonSync=0}t.samples=b,f=s.a.moof(t.sequenceNumber++,v,t),t.samples=[];var rt={data1:f,data2:h,startPTS:p/d,endPTS:(g+c)/d,startDTS:v/d,endDTS:this.nextAvcDts/d,type:"video",hasAudio:!1,hasVideo:!0,nb:b.length,dropped:tt};return this.observer.trigger(n.a.FRAG_PARSING_DATA,rt),rt}},t.prototype.remuxAudio=function(t,e,r,i){var u=t.inputTimeScale,d=t.timescale,c=u/d,h=t.isAAC?1024:1152,f=h*c,p=this._PTSNormalize,v=this._initDTS,g=!t.isAAC&&this.typeSupported.mpeg,y=void 0,m=void 0,b=void 0,E=void 0,T=void 0,S=void 0,R=void 0,A=t.samples,_=[],w=this.nextAudioPts;if(r|=A.length&&w&&(i&&Math.abs(e-w/u)<.1||Math.abs(A[0].pts-w-v)<20*f),A.forEach(function(t){t.pts=t.dts=p(t.pts-v,e*u)}),A=A.filter(function(t){return t.pts>=0}),0!==A.length){if(r||(w=i?e*u:A[0].pts),t.isAAC)for(var L=this.config.maxAudioFramesDrift,D=0,I=w;D<A.length;){var O,k=A[D],C=k.pts;O=C-I;var P=Math.abs(1e3*O/u);if(O<=-L*f)o.b.warn("Dropping 1 audio frame @ "+(I/u).toFixed(3)+"s due to "+Math.round(P)+" ms overlap."),A.splice(D,1),t.len-=k.unit.length;else if(O>=L*f&&P<1e4&&I){var x=Math.round(O/f);o.b.warn("Injecting "+x+" audio frame @ "+(I/u).toFixed(3)+"s due to "+Math.round(1e3*O/u)+" ms gap.");for(var F=0;F<x;F++){var N=Math.max(I,0);b=a.a.getSilentFrame(t.manifestCodec||t.codec,t.channelCount),b||(o.b.log("Unable to get silent frame for given audio codec; duplicating last frame instead."),b=k.unit.subarray()),A.splice(D,0,{unit:b,pts:N,dts:N}),t.len+=b.length,I+=f,D++}k.pts=k.dts=I,I+=f,D++}else Math.abs(O),k.pts=k.dts=I,I+=f,D++}for(var M=0,U=A.length;M<U;M++){var B=A[M],G=B.unit,K=B.pts;if(void 0!==R)m.duration=Math.round((K-R)/c);else{var j=Math.round(1e3*(K-w)/u),H=0;if(r&&t.isAAC&&j){if(j>0&&j<1e4)H=Math.round((K-w)/f),o.b.log(j+" ms hole between AAC samples detected,filling it"),H>0&&(b=a.a.getSilentFrame(t.manifestCodec||t.codec,t.channelCount),b||(b=G.subarray()),t.len+=H*b.length);else if(j<-12){o.b.log("drop overlapping AAC sample, expected/parsed/delta:"+(w/u).toFixed(3)+"s/"+(K/u).toFixed(3)+"s/"+-j+"ms"),t.len-=G.byteLength;continue}K=w}if(S=K,!(t.len>0))return;var V=g?t.len:t.len+8;y=g?0:8;try{E=new Uint8Array(V)}catch(t){return void this.observer.trigger(n.a.ERROR,{type:l.b.MUX_ERROR,details:l.a.REMUX_ALLOC_ERROR,fatal:!1,bytes:V,reason:"fail allocating audio mdat "+V})}if(!g){new DataView(E.buffer).setUint32(0,V),E.set(s.a.types.mdat,4)}for(var Y=0;Y<H;Y++)b=a.a.getSilentFrame(t.manifestCodec||t.codec,t.channelCount),b||(o.b.log("Unable to get silent frame for given audio codec; duplicating this frame instead."),b=G.subarray()),E.set(b,y),y+=b.byteLength,m={size:b.byteLength,cts:0,duration:1024,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:1}},_.push(m)}E.set(G,y);var W=G.byteLength;y+=W,m={size:W,cts:0,duration:0,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:1}},_.push(m),R=K}var q=0,X=_.length;if(X>=2&&(q=_[X-2].duration,m.duration=q),X){this.nextAudioPts=w=R+c*q,t.len=0,t.samples=_,T=g?new Uint8Array:s.a.moof(t.sequenceNumber++,S/c,t),t.samples=[];var z=S/u,Q=w/u,J={data1:T,data2:E,startPTS:z,endPTS:Q,startDTS:z,endDTS:Q,type:"audio",hasAudio:!0,hasVideo:!1,nb:X};return this.observer.trigger(n.a.FRAG_PARSING_DATA,J),J}return null}},t.prototype.remuxEmptyAudio=function(t,e,r,i){var n=t.inputTimeScale,s=t.samplerate?t.samplerate:n,l=n/s,u=this.nextAudioPts,d=(void 0!==u?u:i.startDTS*n)+this._initDTS,c=i.endDTS*n+this._initDTS,h=1024*l,f=Math.ceil((c-d)/h),p=a.a.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);if(o.b.warn("remux empty Audio"),!p)return void o.b.trace("Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!");for(var v=[],g=0;g<f;g++){var y=d+g*h;v.push({unit:p,pts:y,dts:y}),t.len+=p.length}t.samples=v,this.remuxAudio(t,e,r)},t.prototype.remuxID3=function(t,e){var r=t.samples.length,i=void 0,a=t.inputTimeScale,o=this._initPTS,s=this._initDTS;if(r){for(var l=0;l<r;l++)i=t.samples[l],i.pts=(i.pts-o)/a,i.dts=(i.dts-s)/a;this.observer.trigger(n.a.FRAG_PARSING_METADATA,{samples:t.samples})}t.samples=[],e=e},t.prototype.remuxText=function(t,e){t.samples.sort(function(t,e){return t.pts-e.pts});var r=t.samples.length,i=void 0,a=t.inputTimeScale,o=this._initPTS;if(r){for(var s=0;s<r;s++)i=t.samples[s],i.pts=(i.pts-o)/a;this.observer.trigger(n.a.FRAG_PARSING_USERDATA,{samples:t.samples})}t.samples=[],e=e},t.prototype._PTSNormalize=function(t,e){var r=void 0;if(void 0===e)return t;for(r=e<t?-8589934592:8589934592;Math.abs(t-e)>4294967296;)t+=r;return t},t}();e.a=u},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=function(){function t(){i(this,t)}return t.getSilentFrame=function(t,e){switch(t){case"mp4a.40.2":if(1===e)return new Uint8Array([0,200,0,128,35,128]);if(2===e)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(1===e)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===e)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===e)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},t}();e.a=a},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=Math.pow(2,32)-1,n=function(){function t(){i(this,t)}return t.init=function(){t.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};var e=void 0;for(e in t.types)t.types.hasOwnProperty(e)&&(t.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);var r=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);t.HDLR_TYPES={video:r,audio:i};var a=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),n=new Uint8Array([0,0,0,0,0,0,0,0]);t.STTS=t.STSC=t.STCO=n,t.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),t.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),t.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),t.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);var o=new Uint8Array([105,115,111,109]),s=new Uint8Array([97,118,99,49]),l=new Uint8Array([0,0,0,1]);t.FTYP=t.box(t.types.ftyp,o,l,o,s),t.DINF=t.box(t.types.dinf,t.box(t.types.dref,a))},t.box=function(t){for(var e=Array.prototype.slice.call(arguments,1),r=8,i=e.length,a=i,n=void 0;i--;)r+=e[i].byteLength;for(n=new Uint8Array(r),n[0]=r>>24&255,n[1]=r>>16&255,n[2]=r>>8&255,n[3]=255&r,n.set(t,4),i=0,r=8;i<a;i++)n.set(e[i],r),r+=e[i].byteLength;return n},t.hdlr=function(e){return t.box(t.types.hdlr,t.HDLR_TYPES[e])},t.mdat=function(e){return t.box(t.types.mdat,e)},t.mdhd=function(e,r){r*=e;var i=Math.floor(r/(a+1)),n=Math.floor(r%(a+1));return t.box(t.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,85,196,0,0]))},t.mdia=function(e){return t.box(t.types.mdia,t.mdhd(e.timescale,e.duration),t.hdlr(e.type),t.minf(e))},t.mfhd=function(e){return t.box(t.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))},t.minf=function(e){return"audio"===e.type?t.box(t.types.minf,t.box(t.types.smhd,t.SMHD),t.DINF,t.stbl(e)):t.box(t.types.minf,t.box(t.types.vmhd,t.VMHD),t.DINF,t.stbl(e))},t.moof=function(e,r,i){return t.box(t.types.moof,t.mfhd(e),t.traf(i,r))},t.moov=function(e){for(var r=e.length,i=[];r--;)i[r]=t.trak(e[r]);return t.box.apply(null,[t.types.moov,t.mvhd(e[0].timescale,e[0].duration)].concat(i).concat(t.mvex(e)))},t.mvex=function(e){for(var r=e.length,i=[];r--;)i[r]=t.trex(e[r]);return t.box.apply(null,[t.types.mvex].concat(i))},t.mvhd=function(e,r){r*=e;var i=Math.floor(r/(a+1)),n=Math.floor(r%(a+1)),o=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return t.box(t.types.mvhd,o)},t.sdtp=function(e){var r=e.samples||[],i=new Uint8Array(4+r.length),a=void 0,n=void 0;for(n=0;n<r.length;n++)a=r[n].flags,i[n+4]=a.dependsOn<<4|a.isDependedOn<<2|a.hasRedundancy;return t.box(t.types.sdtp,i)},t.stbl=function(e){return t.box(t.types.stbl,t.stsd(e),t.box(t.types.stts,t.STTS),t.box(t.types.stsc,t.STSC),t.box(t.types.stsz,t.STSZ),t.box(t.types.stco,t.STCO))},t.avc1=function(e){var r=[],i=[],a=void 0,n=void 0,o=void 0;for(a=0;a<e.sps.length;a++)n=e.sps[a],o=n.byteLength,r.push(o>>>8&255),r.push(255&o),r=r.concat(Array.prototype.slice.call(n));for(a=0;a<e.pps.length;a++)n=e.pps[a],o=n.byteLength,i.push(o>>>8&255),i.push(255&o),i=i.concat(Array.prototype.slice.call(n));var s=t.box(t.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|e.sps.length].concat(r).concat([e.pps.length]).concat(i))),l=e.width,u=e.height,d=e.pixelRatio[0],c=e.pixelRatio[1];return t.box(t.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,u>>8&255,255&u,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),s,t.box(t.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),t.box(t.types.pasp,new Uint8Array([d>>24,d>>16&255,d>>8&255,255&d,c>>24,c>>16&255,c>>8&255,255&c])))},t.esds=function(t){var e=t.config.length;return new Uint8Array([0,0,0,0,3,23+e,0,1,0,4,15+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([e]).concat(t.config).concat([6,1,2]))},t.mp4a=function(e){var r=e.samplerate;return t.box(t.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,r>>8&255,255&r,0,0]),t.box(t.types.esds,t.esds(e)))},t.mp3=function(e){var r=e.samplerate;return t.box(t.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,r>>8&255,255&r,0,0]))},t.stsd=function(e){return"audio"===e.type?e.isAAC||"mp3"!==e.codec?t.box(t.types.stsd,t.STSD,t.mp4a(e)):t.box(t.types.stsd,t.STSD,t.mp3(e)):t.box(t.types.stsd,t.STSD,t.avc1(e))},t.tkhd=function(e){var r=e.id,i=e.duration*e.timescale,n=e.width,o=e.height,s=Math.floor(i/(a+1)),l=Math.floor(i%(a+1));return t.box(t.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,r>>24&255,r>>16&255,r>>8&255,255&r,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,l>>24,l>>16&255,l>>8&255,255&l,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>8&255,255&n,0,0,o>>8&255,255&o,0,0]))},t.traf=function(e,r){var i=t.sdtp(e),n=e.id,o=Math.floor(r/(a+1)),s=Math.floor(r%(a+1));return t.box(t.types.traf,t.box(t.types.tfhd,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n])),t.box(t.types.tfdt,new Uint8Array([1,0,0,0,o>>24,o>>16&255,o>>8&255,255&o,s>>24,s>>16&255,s>>8&255,255&s])),t.trun(e,i.length+16+20+8+16+8+8),i)},t.trak=function(e){return e.duration=e.duration||4294967295,t.box(t.types.trak,t.tkhd(e),t.mdia(e))},t.trex=function(e){var r=e.id;return t.box(t.types.trex,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},t.trun=function(e,r){var i=e.samples||[],a=i.length,n=12+16*a,o=new Uint8Array(n),s=void 0,l=void 0,u=void 0,d=void 0,c=void 0,h=void 0;for(r+=8+n,o.set([0,0,15,1,a>>>24&255,a>>>16&255,a>>>8&255,255&a,r>>>24&255,r>>>16&255,r>>>8&255,255&r],0),s=0;s<a;s++)l=i[s],u=l.duration,d=l.size,c=l.flags,h=l.cts,o.set([u>>>24&255,u>>>16&255,u>>>8&255,255&u,d>>>24&255,d>>>16&255,d>>>8&255,255&d,c.isLeading<<2|c.dependsOn,c.isDependedOn<<6|c.hasRedundancy<<4|c.paddingValue<<1|c.isNonSync,61440&c.degradPrio,15&c.degradPrio,h>>>24&255,h>>>16&255,h>>>8&255,255&h],12+16*s);return t.box(t.types.trun,o)},t.initSegment=function(e){t.types||t.init();var r=t.moov(e),i=void 0;return i=new Uint8Array(t.FTYP.byteLength+r.byteLength),i.set(t.FTYP),i.set(r,t.FTYP.byteLength),i},t}();e.a=n},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(1),n=function(){function t(e){i(this,t),this.observer=e}return t.prototype.destroy=function(){},t.prototype.resetTimeStamp=function(){},t.prototype.resetInitSegment=function(){},t.prototype.remux=function(t,e,r,i,n,o,s,l){var u=this.observer,d="";t&&(d+="audio"),e&&(d+="video"),u.trigger(a.a.FRAG_PARSING_DATA,{data1:l,startPTS:n,startDTS:n,type:d,hasAudio:!!t,hasVideo:!!e,nb:1,dropped:0}),u.trigger(a.a.FRAG_PARSED)},t}();e.a=n},function(t,e,r){function i(t){function e(i){if(r[i])return r[i].exports;var a=r[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,e),a.l=!0,a.exports}var r={};e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,i){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:i})},e.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e.oe=function(t){throw console.error(t),t};var i=e(e.s=ENTRY_MODULE);return i.default||i}function a(t){return(t+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function n(t,e,i){var n={};n[i]=[];var o=e.toString(),s=o.match(/^function\s?\(\w+,\s*\w+,\s*(\w+)\)/);if(!s)return n;for(var d,c=s[1],h=new RegExp("(\\\\n|\\W)"+a(c)+u,"g");d=h.exec(o);)"dll-reference"!==d[3]&&n[i].push(d[3]);for(h=new RegExp("\\("+a(c)+'\\("(dll-reference\\s('+l+'))"\\)\\)'+u,"g");d=h.exec(o);)t[d[2]]||(n[i].push(d[1]),t[d[2]]=r(d[1]).m),n[d[2]]=n[d[2]]||[],n[d[2]].push(d[4]);return n}function o(t){return Object.keys(t).reduce(function(e,r){return e||t[r].length>0},!1)}function s(t,e){for(var r={main:[e]},i={main:[]},a={main:{}};o(r);)for(var s=Object.keys(r),l=0;l<s.length;l++){var u=s[l],d=r[u],c=d.pop();if(a[u]=a[u]||{},!a[u][c]&&t[u][c]){a[u][c]=!0,i[u]=i[u]||[],i[u].push(c);for(var h=n(t,t[u][c],u),f=Object.keys(h),p=0;p<f.length;p++)r[f[p]]=r[f[p]]||[],r[f[p]]=r[f[p]].concat(h[f[p]])}}return i}var l="[\\.|\\-|\\+|\\w|/|@]+",u="\\((/\\*.*?\\*/)?s?.*?("+l+").*?\\)";t.exports=function(t,e){e=e||{};var a={main:r.m},n=e.all?{main:Object.keys(a)}:s(a,t),o="";Object.keys(n).filter(function(t){return"main"!==t}).forEach(function(t){for(var e=0;n[t][e];)e++;n[t].push(e),a[t][e]="(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })",o=o+"var "+t+" = ("+i.toString().replace("ENTRY_MODULE",JSON.stringify(e))+")({"+n[t].map(function(e){return JSON.stringify(e)+": "+a[t][e].toString()}).join(",")+"});\n"}),o=o+"("+i.toString().replace("ENTRY_MODULE",JSON.stringify(t))+")({"+n.main.map(function(t){return JSON.stringify(t)+": "+a.main[t].toString()}).join(",")+"})(self);";var l=new window.Blob([o],{type:"text/javascript"});if(e.bare)return l;var u=window.URL||window.webkitURL||window.mozURL||window.msURL,d=u.createObjectURL(l),c=new window.Worker(d);return c.objectURL=d,c}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(19),a=r(1),n=r(0),o=r(10),s=r.n(o),l=function(t){var e=new s.a;e.trigger=function(t){for(var r=arguments.length,i=Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];e.emit.apply(e,[t,t].concat(i))},e.off=function(t){for(var r=arguments.length,i=Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];e.removeListener.apply(e,[t].concat(i))};var r=function(e,r){t.postMessage({event:e,data:r})};t.addEventListener("message",function(a){var o=a.data;switch(o.cmd){case"init":var s=JSON.parse(o.config);t.demuxer=new i.a(e,o.typeSupported,s,o.vendor);try{Object(n.a)(!0===s.debug)}catch(t){console.warn("demuxerWorker: unable to enable logs")}r("init",null);break;case"demux":t.demuxer.push(o.data,o.decryptdata,o.initSegment,o.audioCodec,o.videoCodec,o.timeOffset,o.discontinuity,o.trackSwitch,o.contiguous,o.duration,o.accurateTimeOffset,o.defaultInitPTS)}}),e.on(a.a.FRAG_DECRYPTED,r),e.on(a.a.FRAG_PARSING_INIT_SEGMENT,r),e.on(a.a.FRAG_PARSED,r),e.on(a.a.ERROR,r),e.on(a.a.FRAG_PARSING_METADATA,r),e.on(a.a.FRAG_PARSING_USERDATA,r),e.on(a.a.INIT_PTS_FOUND,r),e.on(a.a.FRAG_PARSING_DATA,function(e,r){var i=[],a={event:e,data:r};r.data1&&(a.data1=r.data1.buffer,i.push(r.data1.buffer),delete r.data1),r.data2&&(a.data2=r.data2.buffer,i.push(r.data2.buffer),delete r.data2),t.postMessage(a,i)})};e.default=l},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=r(0),u=r(2),d=r(17),c=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),h=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,o.a.MANIFEST_LOADED,o.a.LEVEL_LOADED,o.a.FRAG_LOADED,o.a.ERROR));return n.canload=!1,n.currentLevelIndex=null,n.manualLevelIndex=-1,n.timer=null,n}return n(e,t),e.prototype.onHandlerDestroying=function(){this.cleanTimer(),this.manualLevelIndex=-1},e.prototype.cleanTimer=function(){null!==this.timer&&(clearTimeout(this.timer),this.timer=null)},e.prototype.startLoad=function(){var t=this._levels;this.canload=!0,this.levelRetryCount=0,t&&t.forEach(function(t){t.loadError=0;var e=t.details;e&&e.live&&(t.details=void 0)}),null!==this.timer&&this.loadLevel()},e.prototype.stopLoad=function(){this.canload=!1},e.prototype.onManifestLoaded=function(t){var e=[],r=void 0,i={},a=null,n=!1,s=!1,c=/chrome|firefox/.test(navigator.userAgent.toLowerCase()),h=[];if(t.levels.forEach(function(t){t.loadError=0,t.fragmentError=!1,n=n||!!t.videoCodec,s=s||!!t.audioCodec||!(!t.attrs||!t.attrs.AUDIO),!0===c&&t.audioCodec&&-1!==t.audioCodec.indexOf("mp4a.40.34")&&(t.audioCodec=void 0),a=i[t.bitrate],void 0===a?(t.url=[t.url],t.urlId=0,i[t.bitrate]=t,e.push(t)):a.url.push(t.url)}),!0===n&&!0===s&&(e=e.filter(function(t){return!!t.videoCodec})),e=e.filter(function(t){var e=t.audioCodec,r=t.videoCodec;return(!e||Object(d.a)(e))&&(!r||Object(d.a)(r))}),t.audioTracks&&(h=t.audioTracks.filter(function(t){return!t.audioCodec||Object(d.a)(t.audioCodec,"audio")})),e.length>0){r=e[0].bitrate,e.sort(function(t,e){return t.bitrate-e.bitrate}),this._levels=e;for(var f=0;f<e.length;f++)if(e[f].bitrate===r){this._firstLevel=f,l.b.log("manifest loaded,"+e.length+" level(s) found, first bitrate:"+r);break}this.hls.trigger(o.a.MANIFEST_PARSED,{levels:e,audioTracks:h,firstLevel:this._firstLevel,stats:t.stats,audio:s,video:n,altAudio:h.length>0})}else this.hls.trigger(o.a.ERROR,{type:u.b.MEDIA_ERROR,details:u.a.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:this.hls.url,reason:"no level with compatible codecs found in manifest"})},e.prototype.setLevelInternal=function(t){var e=this._levels,r=this.hls;if(t>=0&&t<e.length){if(this.cleanTimer(),this.currentLevelIndex!==t){l.b.log("switching to level "+t),this.currentLevelIndex=t;var i=e[t];i.level=t,r.trigger(o.a.LEVEL_SWITCHING,i)}var a=e[t],n=a.details;if(!n||!0===n.live){var s=a.urlId;r.trigger(o.a.LEVEL_LOADING,{url:a.url[s],level:t,id:s})}}else r.trigger(o.a.ERROR,{type:u.b.OTHER_ERROR,details:u.a.LEVEL_SWITCH_ERROR,level:t,fatal:!1,reason:"invalid level idx"})},e.prototype.onError=function(t){if(!0===t.fatal)return void(t.type===u.b.NETWORK_ERROR&&this.cleanTimer());var e=!1,r=!1,i=void 0;switch(t.details){case u.a.FRAG_LOAD_ERROR:case u.a.FRAG_LOAD_TIMEOUT:case u.a.KEY_LOAD_ERROR:case u.a.KEY_LOAD_TIMEOUT:i=t.frag.level,r=!0;break;case u.a.LEVEL_LOAD_ERROR:case u.a.LEVEL_LOAD_TIMEOUT:i=t.context.level,e=!0;break;case u.a.REMUX_ALLOC_ERROR:i=t.level,e=!0}void 0!==i&&this.recoverLevel(t,i,e,r)},e.prototype.recoverLevel=function(t,e,r,i){var a=this,n=this.hls.config,o=t.details,s=this._levels[e],u=void 0,d=void 0,c=void 0;if(s.loadError++,s.fragmentError=i,!0===r){if(!(this.levelRetryCount+1<=n.levelLoadingMaxRetry))return l.b.error("level controller, cannot recover from "+o+" error"),this.currentLevelIndex=null,this.cleanTimer(),void(t.fatal=!0);d=Math.min(Math.pow(2,this.levelRetryCount)*n.levelLoadingRetryDelay,n.levelLoadingMaxRetryTimeout),this.timer=setTimeout(function(){return a.loadLevel()},d),t.levelRetry=!0,this.levelRetryCount++,l.b.warn("level controller, "+o+", retry in "+d+" ms, current retry count is "+this.levelRetryCount)}!0!==r&&!0!==i||(u=s.url.length,u>1&&s.loadError<u?(l.b.warn("level controller, "+o+" for level "+e+": switching to redundant stream id "+s.urlId),s.urlId=(s.urlId+1)%u,s.details=void 0):-1===this.manualLevelIndex?(c=0===e?this._levels.length-1:e-1,l.b.warn("level controller, "+o+": switch to "+c),this.hls.nextAutoLevel=this.currentLevelIndex=c):!0===i&&(l.b.warn("level controller, "+o+": reload a fragment"),this.currentLevelIndex=null))},e.prototype.onFragLoaded=function(t){var e=t.frag;if(void 0!==e&&"main"===e.type){var r=this._levels[e.level];void 0!==r&&(r.fragmentError=!1,r.loadError=0,this.levelRetryCount=0)}},e.prototype.onLevelLoaded=function(t){var e=this,r=t.level;if(r===this.currentLevelIndex){var i=this._levels[r];!1===i.fragmentError&&(i.loadError=0,this.levelRetryCount=0);var a=t.details;if(a.live){var n=1e3*(a.averagetargetduration?a.averagetargetduration:a.targetduration),o=n,s=i.details;s&&a.endSN===s.endSN&&(o/=2,l.b.log("same live playlist, reload twice faster")),o-=performance.now()-t.stats.trequest,o=Math.max(n/2,Math.round(o)),l.b.log("live playlist, reload in "+Math.round(o)+" ms"),this.timer=setTimeout(function(){return e.loadLevel()},o)}else this.cleanTimer()}},e.prototype.loadLevel=function(){var t=void 0,e=void 0;null!==this.currentLevelIndex&&!0===this.canload&&void 0!==(t=this._levels[this.currentLevelIndex])&&t.url.length>0&&(e=t.urlId,this.hls.trigger(o.a.LEVEL_LOADING,{url:t.url[e],level:this.currentLevelIndex,id:e}))},c(e,[{key:"levels",get:function(){return this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(t){var e=this._levels;e&&(t=Math.min(t,e.length-1),this.currentLevelIndex===t&&void 0!==e[t].details||this.setLevelInternal(t))}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(t){this.manualLevelIndex=t,void 0===this._startLevel&&(this._startLevel=t),-1!==t&&(this.level=t)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(t){this._firstLevel=t}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var t=this.hls.config.startLevel;return void 0!==t?t:this._firstLevel}return this._startLevel},set:function(t){this._startLevel=t}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(t){this.level=t,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=t)}}]),e}(s.a);e.a=h},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=r(5),u=r(25),d=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,o.a.MEDIA_ATTACHED,o.a.MEDIA_DETACHING,o.a.FRAG_PARSING_METADATA));return n.id3Track=void 0,n.media=void 0,n}return n(e,t),e.prototype.destroy=function(){s.a.prototype.destroy.call(this)},e.prototype.onMediaAttached=function(t){this.media=t.media,this.media},e.prototype.onMediaDetaching=function(){Object(u.a)(this.id3Track),this.id3Track=void 0,this.media=void 0},e.prototype.getID3Track=function(t){for(var e=0;e<t.length;e++){var r=t[e];if("metadata"===r.kind&&"id3"===r.label)return Object(u.b)(r,this.media),r}return this.media.addTextTrack("metadata","id3")},e.prototype.onFragParsingMetadata=function(t){var e=t.frag,r=t.samples;this.id3Track||(this.id3Track=this.getID3Track(this.media.textTracks),this.id3Track.mode="hidden");for(var i=window.WebKitDataCue||window.VTTCue||window.TextTrackCue,a=0;a<r.length;a++){var n=l.a.getID3Frames(r[a].data);if(n){var o=r[a].pts,s=a<r.length-1?r[a+1].pts:e.endPTS;o===s&&(s+=1e-4);for(var u=0;u<n.length;u++){var d=n[u];if(!l.a.isTimeStampFrame(d)){var c=new i(o,s,"");c.value=d,this.id3Track.addCue(c)}}}}},e}(s.a);e.a=d},function(t,e,r){"use strict";function i(){var t=Object(a.a)(),e=window.SourceBuffer||window.WebKitSourceBuffer,r=t&&"function"==typeof t.isTypeSupported&&t.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),i=!e||e.prototype&&"function"==typeof e.prototype.appendBuffer&&"function"==typeof e.prototype.remove;return!!r&&!!i}e.a=i;var a=r(11)},function(t,e,r){"use strict";r.d(e,"a",function(){return g});var i=r(51),a=r(54),n=r(55),o=r(56),s=r(57),l=r(58),u=r(59),d=r(60),c=r(62),h=r(66),f=r(67),p=r(68),v=r(69),g={autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,initialLiveManifestSize:1,maxBufferLength:30,maxBufferSize:6e7,maxBufferHole:.5,lowBufferWatchdogPeriod:.5,highBufferWatchdogPeriod:3,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,liveDurationInfinity:!1,maxMaxBufferLength:600,enableWorker:!0,enableSoftwareAES:!0,manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,startLevel:void 0,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:s.a,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,abrController:i.a,bufferController:a.a,capLevelController:n.a,fpsController:o.a,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,requestMediaKeySystemAccessFunc:v.a};g.subtitleStreamController=f.a,g.subtitleTrackController=h.a,g.timelineController=c.a,g.cueHandler=d,g.enableCEA708Captions=!0,g.enableWebVTT=!0,g.captionsTextTrack1Label="English",g.captionsTextTrack1LanguageCode="en",g.captionsTextTrack2Label="Spanish",g.captionsTextTrack2LanguageCode="es",g.audioStreamController=u.a,g.audioTrackController=l.a,g.emeController=p.a},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=r(8),u=r(2),d=r(0),c=r(52),h=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),f=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,o.a.FRAG_LOADING,o.a.FRAG_LOADED,o.a.FRAG_BUFFERED,o.a.ERROR));return n.lastLoadedFragLevel=0,n._nextAutoLevel=-1,n.hls=r,n.timer=null,n._bwEstimator=null,n.onCheck=n._abandonRulesCheck.bind(n),n}return n(e,t),e.prototype.destroy=function(){this.clearTimer(),s.a.prototype.destroy.call(this)},e.prototype.onFragLoading=function(t){var e=t.frag;if("main"===e.type){if(this.timer||(this.timer=setInterval(this.onCheck,100)),!this._bwEstimator){var r=this.hls,i=t.frag.level,a=r.levels[i].details.live,n=r.config,o=void 0,s=void 0;a?(o=n.abrEwmaFastLive,s=n.abrEwmaSlowLive):(o=n.abrEwmaFastVoD,s=n.abrEwmaSlowVoD),this._bwEstimator=new c.a(r,s,o,n.abrEwmaDefaultEstimate)}this.fragCurrent=e}},e.prototype._abandonRulesCheck=function(){var t=this.hls,e=t.media,r=this.fragCurrent,i=r.loader,a=t.minAutoLevel;if(!i||i.stats&&i.stats.aborted)return d.b.warn("frag loader destroy or aborted, disarm abandonRules"),this.clearTimer(),void(this._nextAutoLevel=-1);var n=i.stats;if(e&&n&&(!e.paused&&0!==e.playbackRate||!e.readyState)&&r.autoLevel&&r.level){var s=performance.now()-n.trequest,u=Math.abs(e.playbackRate);if(s>500*r.duration/u){var c=t.levels,h=Math.max(1,n.bw?n.bw/8:1e3*n.loaded/s),f=c[r.level],p=f.realBitrate?Math.max(f.realBitrate,f.bitrate):f.bitrate,v=n.total?n.total:Math.max(n.loaded,Math.round(r.duration*p/8)),g=e.currentTime,y=(v-n.loaded)/h,m=(l.a.bufferInfo(e,g,t.config.maxBufferHole).end-g)/u;if(m<2*r.duration/u&&y>m){var b=void 0,E=void 0;for(E=r.level-1;E>a;E--){var T=c[E].realBitrate?Math.max(c[E].realBitrate,c[E].bitrate):c[E].bitrate;if((b=r.duration*T/(6.4*h))<m)break}b<y&&(d.b.warn("loading too slow, abort fragment loading and switch to level "+E+":fragLoadedDelay["+E+"]<fragLoadedDelay["+(r.level-1)+"];bufferStarvationDelay:"+b.toFixed(1)+"<"+y.toFixed(1)+":"+m.toFixed(1)),t.nextLoadLevel=E,this._bwEstimator.sample(s,n.loaded),i.abort(),this.clearTimer(),t.trigger(o.a.FRAG_LOAD_EMERGENCY_ABORTED,{frag:r,stats:n}))}}}},e.prototype.onFragLoaded=function(t){var e=t.frag;if("main"===e.type&&!isNaN(e.sn)){if(this.clearTimer(),this.lastLoadedFragLevel=e.level,this._nextAutoLevel=-1,this.hls.config.abrMaxWithRealBitrate){var r=this.hls.levels[e.level],i=(r.loaded?r.loaded.bytes:0)+t.stats.loaded,a=(r.loaded?r.loaded.duration:0)+t.frag.duration;r.loaded={bytes:i,duration:a},r.realBitrate=Math.round(8*i/a)}if(t.frag.bitrateTest){var n=t.stats;n.tparsed=n.tbuffered=n.tload,this.onFragBuffered(t)}}},e.prototype.onFragBuffered=function(t){var e=t.stats,r=t.frag;if(!(!0===e.aborted||"main"!==r.type||isNaN(r.sn)||r.bitrateTest&&e.tload!==e.tbuffered)){var i=e.tparsed-e.trequest;d.b.log("latency/loading/parsing/append/kbps:"+Math.round(e.tfirst-e.trequest)+"/"+Math.round(e.tload-e.tfirst)+"/"+Math.round(e.tparsed-e.tload)+"/"+Math.round(e.tbuffered-e.tparsed)+"/"+Math.round(8*e.loaded/(e.tbuffered-e.trequest))),this._bwEstimator.sample(i,e.loaded),e.bwEstimate=this._bwEstimator.getEstimate(),r.bitrateTest?this.bitrateTestDelay=i/1e3:this.bitrateTestDelay=0}},e.prototype.onError=function(t){switch(t.details){case u.a.FRAG_LOAD_ERROR:case u.a.FRAG_LOAD_TIMEOUT:this.clearTimer()}},e.prototype.clearTimer=function(){clearInterval(this.timer),this.timer=null},e.prototype._findBestLevel=function(t,e,r,i,a,n,o,s,l){for(var u=a;u>=i;u--){var c=l[u],h=c.details,f=h?h.totalduration/h.fragments.length:e,p=!!h&&h.live,v=void 0;v=u<=t?o*r:s*r;var g=l[u].realBitrate?Math.max(l[u].realBitrate,l[u].bitrate):l[u].bitrate,y=g*f/v;if(d.b.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+u+"/"+Math.round(v)+"/"+g+"/"+f+"/"+n+"/"+y),v>g&&(!y||p&&!this.bitrateTestDelay||y<n))return u}return-1},h(e,[{key:"nextAutoLevel",get:function(){var t=this._nextAutoLevel,e=this._bwEstimator;if(!(-1===t||e&&e.canEstimate()))return t;var r=this._nextABRAutoLevel;return-1!==t&&(r=Math.min(t,r)),r},set:function(t){this._nextAutoLevel=t}},{key:"_nextABRAutoLevel",get:function(){var t=this.hls,e=t.maxAutoLevel,r=t.levels,i=t.config,a=t.minAutoLevel,n=t.media,o=this.lastLoadedFragLevel,s=this.fragCurrent?this.fragCurrent.duration:0,u=n?n.currentTime:0,c=n&&0!==n.playbackRate?Math.abs(n.playbackRate):1,h=this._bwEstimator?this._bwEstimator.getEstimate():i.abrEwmaDefaultEstimate,f=(l.a.bufferInfo(n,u,i.maxBufferHole).end-u)/c,p=this._findBestLevel(o,s,h,a,e,f,i.abrBandWidthFactor,i.abrBandWidthUpFactor,r);if(p>=0)return p;d.b.trace("rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering");var v=s?Math.min(s,i.maxStarvationDelay):i.maxStarvationDelay,g=i.abrBandWidthFactor,y=i.abrBandWidthUpFactor;if(0===f){var m=this.bitrateTestDelay;if(m){v=(s?Math.min(s,i.maxLoadingDelay):i.maxLoadingDelay)-m,d.b.trace("bitrate test took "+Math.round(1e3*m)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*v)+" ms"),g=y=1}}return p=this._findBestLevel(o,s,h,a,e,f+v,g,y,r),Math.max(p,0)}}]),e}(s.a);e.a=f},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(53),n=function(){function t(e,r,n,o){i(this,t),this.hls=e,this.defaultEstimate_=o,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new a.a(r),this.fast_=new a.a(n)}return t.prototype.sample=function(t,e){t=Math.max(t,this.minDelayMs_);var r=8e3*e/t,i=t/1e3;this.fast_.sample(i,r),this.slow_.sample(i,r)},t.prototype.canEstimate=function(){var t=this.fast_;return t&&t.getTotalWeight()>=this.minWeight_},t.prototype.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},t.prototype.destroy=function(){},t}();e.a=n},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=function(){function t(e){i(this,t),this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=0,this.totalWeight_=0}return t.prototype.sample=function(t,e){var r=Math.pow(this.alpha_,t);this.estimate_=e*(1-r)+r*this.estimate_,this.totalWeight_+=t},t.prototype.getTotalWeight=function(){return this.totalWeight_},t.prototype.getEstimate=function(){if(this.alpha_){var t=1-Math.pow(this.alpha_,this.totalWeight_);return this.estimate_/t}return this.estimate_},t}();e.a=a},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=r(0),u=r(2),d=r(11),c=Object(d.a)(),h=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,o.a.MEDIA_ATTACHING,o.a.MEDIA_DETACHING,o.a.MANIFEST_PARSED,o.a.BUFFER_RESET,o.a.BUFFER_APPENDING,o.a.BUFFER_CODECS,o.a.BUFFER_EOS,o.a.BUFFER_FLUSHING,o.a.LEVEL_PTS_UPDATED,o.a.LEVEL_UPDATED));return n._msDuration=null,n._levelDuration=null,n._live=null,n._objectUrl=null,n.onsbue=n.onSBUpdateEnd.bind(n),n.onsbe=n.onSBUpdateError.bind(n),n.pendingTracks={},n.tracks={},n}return n(e,t),e.prototype.destroy=function(){s.a.prototype.destroy.call(this)},e.prototype.onLevelPtsUpdated=function(t){var e=t.type,r=this.tracks.audio;if("audio"===e&&r&&"audio/mpeg"===r.container){var i=this.sourceBuffer.audio;if(Math.abs(i.timestampOffset-t.start)>.1){var a=i.updating;try{i.abort()}catch(t){a=!0,l.b.warn("can not abort audio buffer: "+t)}a?this.audioTimestampOffset=t.start:(l.b.warn("change mpeg audio timestamp offset from "+i.timestampOffset+" to "+t.start),i.timestampOffset=t.start)}}},e.prototype.onManifestParsed=function(t){var e=t.audio,r=t.video||t.levels.length&&t.audio,i=0;t.altAudio&&(e||r)&&(i=(e?1:0)+(r?1:0),l.b.log(i+" sourceBuffer(s) expected")),this.sourceBufferNb=i},e.prototype.onMediaAttaching=function(t){var e=this.media=t.media;if(e){var r=this.mediaSource=new c;this.onmso=this.onMediaSourceOpen.bind(this),this.onmse=this.onMediaSourceEnded.bind(this),this.onmsc=this.onMediaSourceClose.bind(this),r.addEventListener("sourceopen",this.onmso),r.addEventListener("sourceended",this.onmse),r.addEventListener("sourceclose",this.onmsc),e.src=URL.createObjectURL(r),this._objectUrl=e.src}},e.prototype.onMediaDetaching=function(){l.b.log("media source detaching");var t=this.mediaSource;if(t){if("open"===t.readyState)try{t.endOfStream()}catch(t){l.b.warn("onMediaDetaching:"+t.message+" while calling endOfStream")}t.removeEventListener("sourceopen",this.onmso),t.removeEventListener("sourceended",this.onmse),t.removeEventListener("sourceclose",this.onmsc),this.media&&(URL.revokeObjectURL(this._objectUrl),this.media.src===this._objectUrl?(this.media.removeAttribute("src"),this.media.load()):l.b.warn("media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.pendingTracks={},this.tracks={},this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0}this.onmso=this.onmse=this.onmsc=null,this.hls.trigger(o.a.MEDIA_DETACHED)},e.prototype.onMediaSourceOpen=function(){l.b.log("media source opened"),this.hls.trigger(o.a.MEDIA_ATTACHED,{media:this.media});var t=this.mediaSource;t&&t.removeEventListener("sourceopen",this.onmso),this.checkPendingTracks()},e.prototype.checkPendingTracks=function(){var t=this.pendingTracks,e=Object.keys(t).length;e&&(this.sourceBufferNb<=e||0===this.sourceBufferNb)&&(this.createSourceBuffers(t),this.pendingTracks={},this.doAppending())},e.prototype.onMediaSourceClose=function(){l.b.log("media source closed")},e.prototype.onMediaSourceEnded=function(){l.b.log("media source ended")},e.prototype.onSBUpdateEnd=function(){if(this.audioTimestampOffset){var t=this.sourceBuffer.audio;l.b.warn("change mpeg audio timestamp offset from "+t.timestampOffset+" to "+this.audioTimestampOffset),t.timestampOffset=this.audioTimestampOffset,delete this.audioTimestampOffset}this._needsFlush&&this.doFlush(),this._needsEos&&this.checkEos(),this.appending=!1;var e=this.parent,r=this.segments.reduce(function(t,r){return r.parent===e?t+1:t},0),i={},a=this.sourceBuffer;for(var n in a)i[n]=a[n].buffered;this.hls.trigger(o.a.BUFFER_APPENDED,{parent:e,pending:r,timeRanges:i}),this._needsFlush||this.doAppending(),this.updateMediaElementDuration()},e.prototype.onSBUpdateError=function(t){l.b.error("sourceBuffer error:",t),this.hls.trigger(o.a.ERROR,{type:u.b.MEDIA_ERROR,details:u.a.BUFFER_APPENDING_ERROR,fatal:!1})},e.prototype.onBufferReset=function(){var t=this.sourceBuffer;for(var e in t){var r=t[e];try{this.mediaSource.removeSourceBuffer(r),r.removeEventListener("updateend",this.onsbue),r.removeEventListener("error",this.onsbe)}catch(t){}}this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0},e.prototype.onBufferCodecs=function(t){if(0===Object.keys(this.sourceBuffer).length){for(var e in t)this.pendingTracks[e]=t[e];var r=this.mediaSource;r&&"open"===r.readyState&&this.checkPendingTracks()}},e.prototype.createSourceBuffers=function(t){var e=this.sourceBuffer,r=this.mediaSource;for(var i in t)if(!e[i]){var a=t[i],n=a.levelCodec||a.codec,s=a.container+";codecs="+n;l.b.log("creating sourceBuffer("+s+")");try{var d=e[i]=r.addSourceBuffer(s);d.addEventListener("updateend",this.onsbue),d.addEventListener("error",this.onsbe),this.tracks[i]={codec:n,container:a.container},a.buffer=d}catch(t){l.b.error("error while trying to add sourceBuffer:"+t.message),this.hls.trigger(o.a.ERROR,{type:u.b.MEDIA_ERROR,details:u.a.BUFFER_ADD_CODEC_ERROR,fatal:!1,err:t,mimeType:s})}}this.hls.trigger(o.a.BUFFER_CREATED,{tracks:t})},e.prototype.onBufferAppending=function(t){this._needsFlush||(this.segments?this.segments.push(t):this.segments=[t],this.doAppending())},e.prototype.onBufferAppendFail=function(t){l.b.error("sourceBuffer error:",t.event),this.hls.trigger(o.a.ERROR,{type:u.b.MEDIA_ERROR,details:u.a.BUFFER_APPENDING_ERROR,fatal:!1})},e.prototype.onBufferEos=function(t){var e=this.sourceBuffer,r=t.type;for(var i in e)r&&i!==r||e[i].ended||(e[i].ended=!0,l.b.log(i+" sourceBuffer now EOS"));this.checkEos()},e.prototype.checkEos=function(){var t=this.sourceBuffer,e=this.mediaSource;if(!e||"open"!==e.readyState)return void(this._needsEos=!1);for(var r in t){var i=t[r];if(!i.ended)return;if(i.updating)return void(this._needsEos=!0)}l.b.log("all media data available, signal endOfStream() to MediaSource and stop loading fragment");try{e.endOfStream()}catch(t){l.b.warn("exception while calling mediaSource.endOfStream()")}this._needsEos=!1},e.prototype.onBufferFlushing=function(t){this.flushRange.push({start:t.startOffset,end:t.endOffset,type:t.type}),this.flushBufferCounter=0,this.doFlush()},e.prototype.onLevelUpdated=function(t){var e=t.details;e.fragments.length>0&&(this._levelDuration=e.totalduration+e.fragments[0].start,this._live=e.live,this.updateMediaElementDuration())},e.prototype.updateMediaElementDuration=function(){var t=this.hls.config,e=void 0;if(null!==this._levelDuration&&this.media&&this.mediaSource&&this.sourceBuffer&&0!==this.media.readyState&&"open"===this.mediaSource.readyState){for(var r in this.sourceBuffer)if(!0===this.sourceBuffer[r].updating)return;e=this.media.duration,null===this._msDuration&&(this._msDuration=this.mediaSource.duration),!0===this._live&&!0===t.liveDurationInfinity?(l.b.log("Media Source duration is set to Infinity"),this._msDuration=this.mediaSource.duration=1/0):(this._levelDuration>this._msDuration&&this._levelDuration>e||e===1/0||isNaN(e))&&(l.b.log("Updating Media Source duration to "+this._levelDuration.toFixed(3)),this._msDuration=this.mediaSource.duration=this._levelDuration)}},e.prototype.doFlush=function(){for(;this.flushRange.length;){var t=this.flushRange[0];if(!this.flushBuffer(t.start,t.end,t.type))return void(this._needsFlush=!0);this.flushRange.shift(),this.flushBufferCounter=0}if(0===this.flushRange.length){this._needsFlush=!1;var e=0,r=this.sourceBuffer;try{for(var i in r)e+=r[i].buffered.length}catch(t){l.b.error("error while accessing sourceBuffer.buffered")}this.appended=e,this.hls.trigger(o.a.BUFFER_FLUSHED)}},e.prototype.doAppending=function(){var t=this.hls,e=this.sourceBuffer,r=this.segments;if(Object.keys(e).length){if(this.media.error)return this.segments=[],void l.b.error("trying to append although a media error occured, flush segment and abort");if(this.appending)return;if(r&&r.length){var i=r.shift();try{var a=i.type,n=e[a];n?n.updating?r.unshift(i):(n.ended=!1,this.parent=i.parent,n.appendBuffer(i.data),this.appendError=0,this.appended++,this.appending=!0):this.onSBUpdateEnd()}catch(e){l.b.error("error while trying to append buffer:"+e.message),r.unshift(i);var s={type:u.b.MEDIA_ERROR,parent:i.parent};22!==e.code?(this.appendError?this.appendError++:this.appendError=1,s.details=u.a.BUFFER_APPEND_ERROR,this.appendError>t.config.appendErrorMaxRetry?(l.b.log("fail "+t.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),r=[],s.fatal=!0,t.trigger(o.a.ERROR,s)):(s.fatal=!1,t.trigger(o.a.ERROR,s))):(this.segments=[],s.details=u.a.BUFFER_FULL_ERROR,s.fatal=!1,t.trigger(o.a.ERROR,s))}}}},e.prototype.flushBuffer=function(t,e,r){var i=void 0,a=void 0,n=void 0,o=void 0,s=void 0,u=void 0,d=this.sourceBuffer;if(Object.keys(d).length){if(l.b.log("flushBuffer,pos/start/end: "+this.media.currentTime.toFixed(3)+"/"+t+"/"+e),this.flushBufferCounter<this.appended){for(var c in d)if(!r||c===r){if(i=d[c],i.ended=!1,i.updating)return l.b.warn("cannot flush, sb updating in progress"),!1;try{for(a=0;a<i.buffered.length;a++)if(n=i.buffered.start(a),o=i.buffered.end(a),-1!==navigator.userAgent.toLowerCase().indexOf("firefox")&&e===Number.POSITIVE_INFINITY?(s=t,u=e):(s=Math.max(n,t),u=Math.min(o,e)),Math.min(u,o)-s>.5)return this.flushBufferCounter++,l.b.log("flush "+c+" ["+s+","+u+"], of ["+n+","+o+"], pos:"+this.media.currentTime),i.remove(s,u),!1}catch(t){l.b.warn("exception while accessing sourcebuffer, it might have been removed from MediaSource")}}}else l.b.warn("abort flushing too many retries");l.b.log("buffer flushed")}return!0},e}(s.a);e.a=h},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),u=function(t){function e(r){return i(this,e),a(this,t.call(this,r,o.a.FPS_DROP_LEVEL_CAPPING,o.a.MEDIA_ATTACHING,o.a.MANIFEST_PARSED))}return n(e,t),e.prototype.destroy=function(){this.hls.config.capLevelToPlayerSize&&(this.media=this.restrictedLevels=null,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(this.timer=clearInterval(this.timer)))},e.prototype.onFpsDropLevelCapping=function(t){e.isLevelAllowed(t.droppedLevel,this.restrictedLevels)&&this.restrictedLevels.push(t.droppedLevel)},e.prototype.onMediaAttaching=function(t){this.media=t.media instanceof HTMLVideoElement?t.media:null},e.prototype.onManifestParsed=function(t){var e=this.hls;this.restrictedLevels=[],e.config.capLevelToPlayerSize&&(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.levels=t.levels,e.firstLevel=this.getMaxLevel(t.firstLevel),clearInterval(this.timer),this.timer=setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},e.prototype.detectPlayerSize=function(){if(this.media){var t=this.levels?this.levels.length:0;if(t){var e=this.hls;e.autoLevelCapping=this.getMaxLevel(t-1),e.autoLevelCapping>this.autoLevelCapping&&e.streamController.nextLevelSwitch(),this.autoLevelCapping=e.autoLevelCapping}}},e.prototype.getMaxLevel=function(t){var r=this;if(!this.levels)return-1;var i=this.levels.filter(function(i,a){return e.isLevelAllowed(a,r.restrictedLevels)&&a<=t});return e.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)},e.isLevelAllowed=function(t){return-1===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]).indexOf(t)},e.getMaxLevelByMediaSize=function(t,e,r){if(!t||t&&!t.length)return-1;for(var i=t.length-1,a=0;a<t.length;a+=1){var n=t[a];if((n.width>=e||n.height>=r)&&function(t,e){return!e||(t.width!==e.width||t.height!==e.height)}(n,t[a+1])){i=a;break}}return i},l(e,[{key:"mediaWidth",get:function(){var t=void 0,r=this.media;return r&&(t=r.width||r.clientWidth||r.offsetWidth,t*=e.contentScaleFactor),t}},{key:"mediaHeight",get:function(){var t=void 0,r=this.media;return r&&(t=r.height||r.clientHeight||r.offsetHeight,t*=e.contentScaleFactor),t}}],[{key:"contentScaleFactor",get:function(){var t=1;try{t=window.devicePixelRatio}catch(t){}return t}}]),e}(s.a);e.a=u},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=r(0),u=function(t){function e(r){return i(this,e),a(this,t.call(this,r,o.a.MEDIA_ATTACHING))}return n(e,t),e.prototype.destroy=function(){this.timer&&clearInterval(this.timer),this.isVideoPlaybackQualityAvailable=!1},e.prototype.onMediaAttaching=function(t){var e=this.hls.config;if(e.capLevelOnFPSDrop){"function"==typeof(this.video=t.media instanceof HTMLVideoElement?t.media:null).getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),clearInterval(this.timer),this.timer=setInterval(this.checkFPSInterval.bind(this),e.fpsDroppedMonitoringPeriod)}},e.prototype.checkFPS=function(t,e,r){var i=performance.now();if(e){if(this.lastTime){var a=i-this.lastTime,n=r-this.lastDroppedFrames,s=e-this.lastDecodedFrames,u=1e3*n/a,d=this.hls;if(d.trigger(o.a.FPS_DROP,{currentDropped:n,currentDecoded:s,totalDroppedFrames:r}),u>0&&n>d.config.fpsDroppedMonitoringThreshold*s){var c=d.currentLevel;l.b.warn("drop FPS ratio greater than max allowed value for currentLevel: "+c),c>0&&(-1===d.autoLevelCapping||d.autoLevelCapping>=c)&&(c-=1,d.trigger(o.a.FPS_DROP_LEVEL_CAPPING,{level:c,droppedLevel:d.currentLevel}),d.autoLevelCapping=c,d.streamController.nextLevelSwitch())}}this.lastTime=i,this.lastDroppedFrames=r,this.lastDecodedFrames=e}},e.prototype.checkFPSInterval=function(){var t=this.video;if(t)if(this.isVideoPlaybackQualityAvailable){var e=t.getVideoPlaybackQuality();this.checkFPS(t,e.totalVideoFrames,e.droppedVideoFrames)}else this.checkFPS(t,t.webkitDecodedFrameCount,t.webkitDroppedFrameCount)},e}(s.a);e.a=u},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(0),n=function(){function t(e){i(this,t),e&&e.xhrSetup&&(this.xhrSetup=e.xhrSetup)}return t.prototype.destroy=function(){this.abort(),this.loader=null},t.prototype.abort=function(){var t=this.loader;t&&4!==t.readyState&&(this.stats.aborted=!0,t.abort()),window.clearTimeout(this.requestTimeout),this.requestTimeout=null,window.clearTimeout(this.retryTimeout),this.retryTimeout=null},t.prototype.load=function(t,e,r){this.context=t,this.config=e,this.callbacks=r,this.stats={trequest:performance.now(),retry:0},this.retryDelay=e.retryDelay,this.loadInternal()},t.prototype.loadInternal=function(){var t=void 0,e=this.context;t=this.loader=new XMLHttpRequest;var r=this.stats;r.tfirst=0,r.loaded=0;var i=this.xhrSetup;try{if(i)try{i(t,e.url)}catch(r){t.open("GET",e.url,!0),i(t,e.url)}t.readyState||t.open("GET",e.url,!0)}catch(r){return void this.callbacks.onError({code:t.status,text:r.message},e,t)}e.rangeEnd&&t.setRequestHeader("Range","bytes="+e.rangeStart+"-"+(e.rangeEnd-1)),t.onreadystatechange=this.readystatechange.bind(this),t.onprogress=this.loadprogress.bind(this),t.responseType=e.responseType,this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),this.config.timeout),t.send()},t.prototype.readystatechange=function(t){var e=t.currentTarget,r=e.readyState,i=this.stats,n=this.context,o=this.config;if(!i.aborted&&r>=2)if(window.clearTimeout(this.requestTimeout),0===i.tfirst&&(i.tfirst=Math.max(performance.now(),i.trequest)),4===r){var s=e.status;if(s>=200&&s<300){i.tload=Math.max(i.tfirst,performance.now());var l=void 0,u=void 0;"arraybuffer"===n.responseType?(l=e.response,u=l.byteLength):(l=e.responseText,u=l.length),i.loaded=i.total=u;var d={url:e.responseURL,data:l};this.callbacks.onSuccess(d,i,n,e)}else i.retry>=o.maxRetry||s>=400&&s<499?(a.b.error(s+" while loading "+n.url),this.callbacks.onError({code:s,text:e.statusText},n,e)):(a.b.warn(s+" while loading "+n.url+", retrying in "+this.retryDelay+"..."),this.destroy(),this.retryTimeout=window.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,o.maxRetryDelay),i.retry++)}else this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),o.timeout)},t.prototype.loadtimeout=function(){a.b.warn("timeout while loading "+this.context.url),this.callbacks.onTimeout(this.stats,this.context,null)},t.prototype.loadprogress=function(t){var e=t.currentTarget,r=this.stats;r.loaded=t.loaded,t.lengthComputable&&(r.total=t.total);var i=this.callbacks.onProgress;i&&i(r,this.context,null,e)},t}();e.a=n},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(3),l=r(0),u=r(2),d=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),c=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,o.a.MANIFEST_LOADING,o.a.MANIFEST_PARSED,o.a.AUDIO_TRACK_LOADED,o.a.ERROR));return n.ticks=0,n.ontick=n.tick.bind(n),n}return n(e,t),e.prototype.destroy=function(){this.cleanTimer(),s.a.prototype.destroy.call(this)},e.prototype.cleanTimer=function(){this.timer&&(clearTimeout(this.timer),this.timer=null)},e.prototype.tick=function(){1===++this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(this.tick,1),this.ticks=0)},e.prototype.doTick=function(){this.updateTrack(this.trackId)},e.prototype.onError=function(t){t.fatal&&t.type===u.b.NETWORK_ERROR&&this.cleanTimer()},e.prototype.onManifestLoading=function(){this.tracks=[],this.trackId=-1},e.prototype.onManifestParsed=function(t){var e=this,r=t.audioTracks||[],i=!1;this.tracks=r,this.hls.trigger(o.a.AUDIO_TRACKS_UPDATED,{audioTracks:r});var a=0;r.forEach(function(t){if(t.default&&!i)return e.audioTrack=a,void(i=!0);a++}),!1===i&&r.length&&(l.b.log("no default audio track defined, use first audio track as default"),this.audioTrack=0)},e.prototype.onAudioTrackLoaded=function(t){t.id<this.tracks.length&&(l.b.log("audioTrack "+t.id+" loaded"),this.tracks[t.id].details=t.details,t.details.live&&!this.timer&&(this.timer=setInterval(this.ontick,1e3*t.details.targetduration)),!t.details.live&&this.timer&&this.cleanTimer())},e.prototype.setAudioTrackInternal=function(t){if(t>=0&&t<this.tracks.length){this.cleanTimer(),this.trackId=t,l.b.log("switching to audioTrack "+t);var e=this.tracks[t],r=this.hls,i=e.type,a=e.url,n={id:t,type:i,url:a};r.trigger(o.a.AUDIO_TRACK_SWITCHING,n);var s=e.details;!a||void 0!==s&&!0!==s.live||(l.b.log("(re)loading playlist for audioTrack "+t),r.trigger(o.a.AUDIO_TRACK_LOADING,{url:a,id:t}))}},e.prototype.updateTrack=function(t){if(t>=0&&t<this.tracks.length){this.cleanTimer(),this.trackId=t,l.b.log("updating audioTrack "+t);var e=this.tracks[t],r=e.url,i=e.details;!r||void 0!==i&&!0!==i.live||(l.b.log("(re)loading playlist for audioTrack "+t),this.hls.trigger(o.a.AUDIO_TRACK_LOADING,{url:r,id:t}))}},d(e,[{key:"audioTracks",get:function(){return this.tracks}},{key:"audioTrack",get:function(){return this.trackId},set:function(t){this.trackId===t&&void 0!==this.tracks[t].details||this.setAudioTrackInternal(t)}}]),e}(s.a);e.a=c},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(7),s=r(8),l=r(18),u=r(1),d=r(22),c=r(23),h=r(2),f=r(0),p=r(24),v=r(13),g=r(12),y=r(6),m=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),b={STOPPED:"STOPPED",STARTING:"STARTING",IDLE:"IDLE",PAUSED:"PAUSED",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_TRACK:"WAITING_TRACK",PARSING:"PARSING",PARSED:"PARSED",BUFFER_FLUSHING:"BUFFER_FLUSHING",ENDED:"ENDED",ERROR:"ERROR",WAITING_INIT_PTS:"WAITING_INIT_PTS"},E=function(t){function e(r,n){i(this,e);var o=a(this,t.call(this,r,u.a.MEDIA_ATTACHED,u.a.MEDIA_DETACHING,u.a.AUDIO_TRACKS_UPDATED,u.a.AUDIO_TRACK_SWITCHING,u.a.AUDIO_TRACK_LOADED,u.a.KEY_LOADED,u.a.FRAG_LOADED,u.a.FRAG_PARSING_INIT_SEGMENT,u.a.FRAG_PARSING_DATA,u.a.FRAG_PARSED,u.a.ERROR,u.a.BUFFER_RESET,u.a.BUFFER_CREATED,u.a.BUFFER_APPENDED,u.a.BUFFER_FLUSHED,u.a.INIT_PTS_FOUND));return o.fragmentTracker=n,o.config=r.config,o.audioCodecSwap=!1,o._state=b.STOPPED,o.initPTS=[],o.waitingFragment=null,o.videoTrackCC=null,o}return n(e,t),e.prototype.onHandlerDestroying=function(){this.stopLoad()},e.prototype.onHandlerDestroyed=function(){this.state=b.STOPPED,this.fragmentTracker=null},e.prototype.onInitPtsFound=function(t){var e=t.id,r=t.frag.cc,i=t.initPTS;"main"===e&&(this.initPTS[r]=i,this.videoTrackCC=r,f.b.log("InitPTS for cc: "+r+" found from video track: "+i),this.state===b.WAITING_INIT_PTS&&this.tick())},e.prototype.startLoad=function(t){if(this.tracks){var e=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),this.fragLoadError=0,e>0&&-1===t?(f.b.log("audio:override startPosition with lastCurrentTime @"+e.toFixed(3)),this.state=b.IDLE):(this.lastCurrentTime=this.startPosition?this.startPosition:t,this.state=b.STARTING),this.nextLoadPosition=this.startPosition=this.lastCurrentTime,this.tick()}else this.startPosition=t,this.state=b.STOPPED},e.prototype.stopLoad=function(){var t=this.fragCurrent;t&&(t.loader&&t.loader.abort(),this.fragmentTracker.removeFragment(t),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=b.STOPPED},e.prototype.doTick=function(){var t=void 0,e=void 0,r=void 0,i=this.hls,a=i.config;switch(this.state){case b.ERROR:case b.PAUSED:case b.BUFFER_FLUSHING:break;case b.STARTING:this.state=b.WAITING_TRACK,this.loadedmetadata=!1;break;case b.IDLE:var n=this.tracks;if(!n)break;if(!this.media&&(this.startFragRequested||!a.startFragPrefetch))break;if(this.loadedmetadata)t=this.media.currentTime;else if(void 0===(t=this.nextLoadPosition))break;var l=this.mediaBuffer?this.mediaBuffer:this.media,d=this.videoBuffer?this.videoBuffer:this.media,c=s.a.bufferInfo(l,t,a.maxBufferHole),h=s.a.bufferInfo(d,t,a.maxBufferHole),v=c.len,y=c.end,m=this.fragPrevious,E=Math.min(a.maxBufferLength,a.maxMaxBufferLength),T=Math.max(E,h.len),S=this.audioSwitch,R=this.trackId;if((v<T||S)&&R<n.length){if(void 0===(r=n[R].details)){this.state=b.WAITING_TRACK;break}if(!S&&!r.live&&m&&m.sn===r.endSN&&!c.nextStart&&(!this.media.seeking||this.media.duration-y<m.duration/2)){this.hls.trigger(u.a.BUFFER_EOS,{type:"audio"}),this.state=b.ENDED;break}var A=r.fragments,_=A.length,w=A[0].start,L=A[_-1].start+A[_-1].duration,D=void 0;if(S)if(r.live&&!r.PTSKnown)f.b.log("switching audiotrack, live stream, unknown PTS,load first fragment"),y=0;else if(y=t,r.PTSKnown&&t<w){if(!(c.end>w||c.nextStart))return;f.b.log("alt audio track ahead of main track, seek to start of alt audio track"),this.media.currentTime=w+.05}if(r.initSegment&&!r.initSegment.data)D=r.initSegment;else if(y<=w){if(D=A[0],null!==this.videoTrackCC&&D.cc!==this.videoTrackCC&&(D=Object(p.b)(A,this.videoTrackCC)),r.live&&D.loadIdx&&D.loadIdx===this.fragLoadIdx){var I=c.nextStart?c.nextStart:w;return f.b.log("no alt audio available @currentTime:"+this.media.currentTime+", seeking @"+(I+.05)),void(this.media.currentTime=I+.05)}}else{var O=void 0,k=a.maxFragLookUpTolerance,C=m?A[m.sn-A[0].sn+1]:void 0,P=function(t){var e=Math.min(k,t.duration);return t.start+t.duration-e<=y?1:t.start-e>y&&t.start?-1:0};y<L?(y>L-k&&(k=0),O=C&&!P(C)?C:o.a.search(A,P)):O=A[_-1],O&&(D=O,w=O.start,m&&D.level===m.level&&D.sn===m.sn&&(D.sn<r.endSN?(D=A[D.sn+1-r.startSN],f.b.log("SN just loaded, load next one: "+D.sn)):D=null))}D&&(D.decryptdata&&null!=D.decryptdata.uri&&null==D.decryptdata.key?(f.b.log("Loading key for "+D.sn+" of ["+r.startSN+" ,"+r.endSN+"],track "+R),this.state=b.KEY_LOADING,i.trigger(u.a.KEY_LOADING,{frag:D})):(f.b.log("Loading "+D.sn+", cc: "+D.cc+" of ["+r.startSN+" ,"+r.endSN+"],track "+R+", currentTime:"+t+",bufferEnd:"+y.toFixed(3)),this.fragmentTracker.getState(D)===g.a.NOT_LOADED&&(this.fragCurrent=D,this.startFragRequested=!0,isNaN(D.sn)||(this.nextLoadPosition=D.start+D.duration),i.trigger(u.a.FRAG_LOADING,{frag:D}),this.state=b.FRAG_LOADING)))}break;case b.WAITING_TRACK:e=this.tracks[this.trackId],e&&e.details&&(this.state=b.IDLE);break;case b.FRAG_LOADING_WAITING_RETRY:var x=performance.now(),F=this.retryDate;l=this.media;var N=l&&l.seeking;(!F||x>=F||N)&&(f.b.log("audioStreamController: retryDate reached, switch back to IDLE state"),this.state=b.IDLE);break;case b.WAITING_INIT_PTS:var M=this.videoTrackCC;if(void 0===this.initPTS[M])break;var U=this.waitingFragment;if(U){var B=U.frag.cc;M!==B?(e=this.tracks[this.trackId],e.details&&e.details.live&&(f.b.warn("Waiting fragment CC ("+B+") does not match video track CC ("+M+")"),this.waitingFragment=null,this.state=b.IDLE)):(this.state=b.FRAG_LOADING,this.onFragLoaded(this.waitingFragment),this.waitingFragment=null)}else this.state=b.IDLE;break;case b.STOPPED:case b.FRAG_LOADING:case b.PARSING:case b.PARSED:case b.ENDED:}},e.prototype.onMediaAttached=function(t){var e=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),e.addEventListener("seeking",this.onvseeking),e.addEventListener("ended",this.onvended);var r=this.config;this.tracks&&r.autoStartLoad&&this.startLoad(r.startPosition)},e.prototype.onMediaDetaching=function(){var t=this.media;t&&t.ended&&(f.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),t&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1,this.stopLoad()},e.prototype.onMediaSeeking=function(){this.state===b.ENDED&&(this.state=b.IDLE),this.media&&(this.lastCurrentTime=this.media.currentTime),this.tick()},e.prototype.onMediaEnded=function(){this.startPosition=this.lastCurrentTime=0},e.prototype.onAudioTracksUpdated=function(t){f.b.log("audio tracks updated"),this.tracks=t.audioTracks},e.prototype.onAudioTrackSwitching=function(t){var e=!!t.url;this.trackId=t.id,this.fragCurrent=null,this.state=b.PAUSED,this.waitingFragment=null,e?this.setInterval(100):this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),e&&(this.audioSwitch=!0,this.state=b.IDLE),this.tick()},e.prototype.onAudioTrackLoaded=function(t){var e=t.details,r=t.id,i=this.tracks[r],a=e.totalduration,n=0;if(f.b.log("track "+r+" loaded ["+e.startSN+","+e.endSN+"],duration:"+a),e.live){var o=i.details;o&&e.fragments.length>0?(d.a(o,e),n=e.fragments[0].start,e.PTSKnown?f.b.log("live audio playlist sliding:"+n.toFixed(3)):f.b.log("live audio playlist - outdated PTS, unknown sliding")):(e.PTSKnown=!1,f.b.log("live audio playlist - first load, unknown sliding"))}else e.PTSKnown=!1;if(i.details=e,!this.startFragRequested){if(-1===this.startPosition){var s=e.startTimeOffset;isNaN(s)?this.startPosition=0:(f.b.log("start time offset found in playlist, adjust startPosition to "+s),this.startPosition=s)}this.nextLoadPosition=this.startPosition}this.state===b.WAITING_TRACK&&(this.state=b.IDLE),this.tick()},e.prototype.onKeyLoaded=function(){this.state===b.KEY_LOADING&&(this.state=b.IDLE,this.tick())},e.prototype.onFragLoaded=function(t){var e=this.fragCurrent,r=t.frag;if(this.state===b.FRAG_LOADING&&e&&"audio"===r.type&&r.level===e.level&&r.sn===e.sn){var i=this.tracks[this.trackId],a=i.details,n=a.totalduration,o=e.level,s=e.sn,d=e.cc,c=this.config.defaultAudioCodec||i.audioCodec||"mp4a.40.2",h=this.stats=t.stats;if("initSegment"===s)this.state=b.IDLE,h.tparsed=h.tbuffered=performance.now(),a.initSegment.data=t.payload,this.hls.trigger(u.a.FRAG_BUFFERED,{stats:h,frag:e,id:"audio"}),this.tick();else{this.state=b.PARSING,this.appended=!1,this.demuxer||(this.demuxer=new l.a(this.hls,"audio"));var p=this.initPTS[d],v=a.initSegment?a.initSegment.data:[];if(a.initSegment||void 0!==p){this.pendingBuffering=!0,f.b.log("Demuxing "+s+" of ["+a.startSN+" ,"+a.endSN+"],track "+o);this.demuxer.push(t.payload,v,c,null,e,n,!1,p)}else f.b.log("unknown video PTS for continuity counter "+d+", waiting for video PTS before demuxing audio frag "+s+" of ["+a.startSN+" ,"+a.endSN+"],track "+o),this.waitingFragment=t,this.state=b.WAITING_INIT_PTS}}this.fragLoadError=0},e.prototype.onFragParsingInitSegment=function(t){var e=this.fragCurrent,r=t.frag;if(e&&"audio"===t.id&&r.sn===e.sn&&r.level===e.level&&this.state===b.PARSING){var i=t.tracks,a=void 0;if(i.video&&delete i.video,a=i.audio){a.levelCodec=a.codec,a.id=t.id,this.hls.trigger(u.a.BUFFER_CODECS,i),f.b.log("audio track:audio,container:"+a.container+",codecs[level/parsed]=["+a.levelCodec+"/"+a.codec+"]");var n=a.initSegment;if(n){var o={type:"audio",data:n,parent:"audio",content:"initSegment"};this.audioSwitch?this.pendingData=[o]:(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(u.a.BUFFER_APPENDING,o))}this.tick()}}},e.prototype.onFragParsingData=function(t){var e=this,r=this.fragCurrent,i=t.frag;if(r&&"audio"===t.id&&"audio"===t.type&&i.sn===r.sn&&i.level===r.level&&this.state===b.PARSING){var a=this.trackId,n=this.tracks[a],o=this.hls;isNaN(t.endPTS)&&(t.endPTS=t.startPTS+r.duration,t.endDTS=t.startDTS+r.duration),r.addElementaryStream(y.a.ElementaryStreamTypes.AUDIO),f.b.log("parsed "+t.type+",PTS:["+t.startPTS.toFixed(3)+","+t.endPTS.toFixed(3)+"],DTS:["+t.startDTS.toFixed(3)+"/"+t.endDTS.toFixed(3)+"],nb:"+t.nb),d.b(n.details,r,t.startPTS,t.endPTS);var s=this.audioSwitch,l=this.media,c=!1;if(s&&l)if(l.readyState){var p=l.currentTime;f.b.log("switching audio track : currentTime:"+p),p>=t.startPTS&&(f.b.log("switching audio track : flushing all audio"),this.state=b.BUFFER_FLUSHING,o.trigger(u.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),c=!0,this.audioSwitch=!1,o.trigger(u.a.AUDIO_TRACK_SWITCHED,{id:a}))}else this.audioSwitch=!1,o.trigger(u.a.AUDIO_TRACK_SWITCHED,{id:a});var v=this.pendingData;if(!v)return console.warn("Apparently attempt to enqueue media payload without codec initialization data upfront"),void o.trigger(u.a.ERROR,{type:h.b.MEDIA_ERROR,details:null,fatal:!0});this.audioSwitch||([t.data1,t.data2].forEach(function(e){e&&e.length&&v.push({type:t.type,data:e,parent:"audio",content:"data"})}),!c&&v.length&&(v.forEach(function(t){e.state===b.PARSING&&(e.pendingBuffering=!0,e.hls.trigger(u.a.BUFFER_APPENDING,t))}),this.pendingData=[],this.appended=!0)),this.tick()}},e.prototype.onFragParsed=function(t){var e=this.fragCurrent,r=t.frag;e&&"audio"===t.id&&r.sn===e.sn&&r.level===e.level&&this.state===b.PARSING&&(this.stats.tparsed=performance.now(),this.state=b.PARSED,this._checkAppendedParsed())},e.prototype.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},e.prototype.onBufferCreated=function(t){var e=t.tracks.audio;e&&(this.mediaBuffer=e.buffer,this.loadedmetadata=!0),t.tracks.video&&(this.videoBuffer=t.tracks.video.buffer)},e.prototype.onBufferAppended=function(t){if("audio"===t.parent){var e=this.state;e!==b.PARSING&&e!==b.PARSED||(this.pendingBuffering=t.pending>0,this._checkAppendedParsed())}},e.prototype._checkAppendedParsed=function(){if(!(this.state!==b.PARSED||this.appended&&this.pendingBuffering)){var t=this.fragCurrent,e=this.stats,r=this.hls;if(t){this.fragPrevious=t,e.tbuffered=performance.now(),r.trigger(u.a.FRAG_BUFFERED,{stats:e,frag:t,id:"audio"});var i=this.mediaBuffer?this.mediaBuffer:this.media;f.b.log("audio buffered : "+c.a.toString(i.buffered)),this.audioSwitch&&this.appended&&(this.audioSwitch=!1,r.trigger(u.a.AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.state=b.IDLE}this.tick()}},e.prototype.onError=function(t){var e=t.frag;if(!e||"audio"===e.type)switch(t.details){case h.a.FRAG_LOAD_ERROR:case h.a.FRAG_LOAD_TIMEOUT:if(!t.fatal){var r=this.fragLoadError;r?r++:r=1;var i=this.config;if(r<=i.fragLoadingMaxRetry){this.fragLoadError=r;var a=Math.min(Math.pow(2,r-1)*i.fragLoadingRetryDelay,i.fragLoadingMaxRetryTimeout);f.b.warn("audioStreamController: frag loading failed, retry in "+a+" ms"),this.retryDate=performance.now()+a,this.state=b.FRAG_LOADING_WAITING_RETRY}else f.b.error("audioStreamController: "+t.details+" reaches max retry, redispatch as fatal ..."),t.fatal=!0,this.state=b.ERROR}break;case h.a.AUDIO_TRACK_LOAD_ERROR:case h.a.AUDIO_TRACK_LOAD_TIMEOUT:case h.a.KEY_LOAD_ERROR:case h.a.KEY_LOAD_TIMEOUT:this.state!==b.ERROR&&(this.state=t.fatal?b.ERROR:b.IDLE,f.b.warn("audioStreamController: "+t.details+" while loading frag,switch to "+this.state+" state ..."));break;case h.a.BUFFER_FULL_ERROR:if("audio"===t.parent&&(this.state===b.PARSING||this.state===b.PARSED)){var n=this.mediaBuffer,o=this.media.currentTime;if(n&&s.a.isBuffered(n,o)&&s.a.isBuffered(n,o+.5)){var l=this.config;l.maxMaxBufferLength>=l.maxBufferLength&&(l.maxMaxBufferLength/=2,f.b.warn("audio:reduce max buffer length to "+l.maxMaxBufferLength+"s")),this.state=b.IDLE}else f.b.warn("buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,this.state=b.BUFFER_FLUSHING,this.hls.trigger(u.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"})}}},e.prototype.onBufferFlushed=function(){var t=this,e=this.pendingData;e&&e.length?(f.b.log("appending pending audio data on Buffer Flushed"),e.forEach(function(e){t.hls.trigger(u.a.BUFFER_APPENDING,e)}),this.appended=!0,this.pendingData=[],this.state=b.PARSED):(this.state=b.IDLE,this.fragPrevious=null,this.tick())},m(e,[{key:"state",set:function(t){if(this.state!==t){var e=this.state;this._state=t,f.b.log("audio stream:"+e+"->"+t)}},get:function(){return this._state}}]),e}(v.a);e.a=E},function(t,e,r){"use strict";function i(t,e,r,i){for(var n=void 0,o=void 0,s=void 0,l=void 0,u=void 0,d=window.VTTCue||window.TextTrackCue,c=0;c<i.rows.length;c++)if(n=i.rows[c],s=!0,l=0,u="",!n.isEmpty()){for(var h=0;h<n.chars.length;h++)n.chars[h].uchar.match(/\s/)&&s?l++:(u+=n.chars[h].uchar,s=!1);n.cueStartTime=e,e===r&&(r+=1e-4),o=new d(e,r,Object(a.b)(u.trim())),l>=16?l--:l++,navigator.userAgent.match(/Firefox\//)?o.line=c+1:o.line=c>7?c-2:c+1,o.align="left",o.position=Math.max(0,Math.min(100,l/32*100+(navigator.userAgent.match(/Firefox\//)?50:0))),t.addCue(o)}}Object.defineProperty(e,"__esModule",{value:!0}),e.newCue=i;var a=r(26)},function(t,e,r){"use strict";e.a=function(){function t(t){return"string"==typeof t&&(!!n[t.toLowerCase()]&&t.toLowerCase())}function e(t){return"string"==typeof t&&(!!o[t.toLowerCase()]&&t.toLowerCase())}function r(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var i in r)t[i]=r[i]}return t}function i(i,n,o){var s=this,l=function(){if("undefined"!=typeof navigator)return/MSIE\s8\.0/.test(navigator.userAgent)}(),u={};l?s=document.createElement("custom"):u.enumerable=!0,s.hasBeenReset=!1;var d="",c=!1,h=i,f=n,p=o,v=null,g="",y=!0,m="auto",b="start",E=50,T="middle",S=50,R="middle";if(Object.defineProperty(s,"id",r({},u,{get:function(){return d},set:function(t){d=""+t}})),Object.defineProperty(s,"pauseOnExit",r({},u,{get:function(){return c},set:function(t){c=!!t}})),Object.defineProperty(s,"startTime",r({},u,{get:function(){return h},set:function(t){if("number"!=typeof t)throw new TypeError("Start time must be set to a number.");h=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"endTime",r({},u,{get:function(){return f},set:function(t){if("number"!=typeof t)throw new TypeError("End time must be set to a number.");f=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"text",r({},u,{get:function(){return p},set:function(t){p=""+t,this.hasBeenReset=!0}})),Object.defineProperty(s,"region",r({},u,{get:function(){return v},set:function(t){v=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"vertical",r({},u,{get:function(){return g},set:function(e){var r=t(e);if(!1===r)throw new SyntaxError("An invalid or illegal string was specified.");g=r,this.hasBeenReset=!0}})),Object.defineProperty(s,"snapToLines",r({},u,{get:function(){return y},set:function(t){y=!!t,this.hasBeenReset=!0}})),Object.defineProperty(s,"line",r({},u,{get:function(){return m},set:function(t){if("number"!=typeof t&&t!==a)throw new SyntaxError("An invalid number or illegal string was specified.");m=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"lineAlign",r({},u,{get:function(){return b},set:function(t){var r=e(t);if(!r)throw new SyntaxError("An invalid or illegal string was specified.");b=r,this.hasBeenReset=!0}})),Object.defineProperty(s,"position",r({},u,{get:function(){return E},set:function(t){if(t<0||t>100)throw new Error("Position must be between 0 and 100.");E=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"positionAlign",r({},u,{get:function(){return T},set:function(t){var r=e(t);if(!r)throw new SyntaxError("An invalid or illegal string was specified.");T=r,this.hasBeenReset=!0}})),Object.defineProperty(s,"size",r({},u,{get:function(){return S},set:function(t){if(t<0||t>100)throw new Error("Size must be between 0 and 100.");S=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"align",r({},u,{get:function(){return R},set:function(t){var r=e(t);if(!r)throw new SyntaxError("An invalid or illegal string was specified.");R=r,this.hasBeenReset=!0}})),s.displayState=void 0,l)return s}if("undefined"!=typeof window&&window.VTTCue)return window.VTTCue;var a="auto",n={"":!0,lr:!0,rl:!0},o={start:!0,middle:!0,end:!0,left:!0,right:!0};return i.prototype.getCueAsHTML=function(){return window.WebVTT.convertCueToDOMTree(window,this.text)},i}()},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function o(t,e){return t&&t.label===e.name&&!(t.textTrack1||t.textTrack2)}function s(t,e,r,i){return Math.min(e,i)-Math.max(t,r)}var l=r(1),u=r(3),d=r(63),c=r(64),h=r(65),f=r(0),p=r(25),v=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,l.a.MEDIA_ATTACHING,l.a.MEDIA_DETACHING,l.a.FRAG_PARSING_USERDATA,l.a.FRAG_DECRYPTED,l.a.MANIFEST_LOADING,l.a.MANIFEST_LOADED,l.a.FRAG_LOADED,l.a.LEVEL_SWITCHING,l.a.INIT_PTS_FOUND));if(n.hls=r,n.config=r.config,n.enabled=!0,n.Cues=r.config.cueHandler,n.textTracks=[],n.tracks=[],n.unparsedVttFrags=[],n.initPTS=void 0,n.cueRanges=[],n.config.enableCEA708Captions){var o=new c.a(n,1),s=new c.a(n,2);n.cea608Parser=new d.a(0,o,s)}return n}return n(e,t),e.prototype.addCues=function(t,e,r,i){for(var a=this.cueRanges,n=!1,o=a.length;o--;){var l=a[o],u=s(l[0],l[1],e,r);if(u>=0&&(l[0]=Math.min(l[0],e),l[1]=Math.max(l[1],r),n=!0,u/(r-e)>.5))return}n||a.push([e,r]),this.Cues.newCue(this[t],e,r,i)},e.prototype.onInitPtsFound=function(t){var e=this;void 0===this.initPTS&&(this.initPTS=t.initPTS),this.unparsedVttFrags.length&&(this.unparsedVttFrags.forEach(function(t){e.onFragLoaded(t)}),this.unparsedVttFrags=[])},e.prototype.getExistingTrack=function(t){var e=this.media;if(e)for(var r=0;r<e.textTracks.length;r++){var i=e.textTracks[r],a="textTrack"+t;if(!0===i[a])return i}return null},e.prototype.createCaptionsTrack=function(t){var e="textTrack"+t;if(!this[e]){var r=this.getExistingTrack(t);if(r)this[e]=r,Object(p.a)(this[e]),Object(p.b)(this[e],this.media);else{var i=this.createTextTrack("captions",this.config["captionsTextTrack"+t+"Label"],this.config["captionsTextTrack"+t+"LanguageCode"]);i&&(i[e]=!0,this[e]=i)}}},e.prototype.createTextTrack=function(t,e,r){var i=this.media;if(i)return i.addTextTrack(t,e,r)},e.prototype.destroy=function(){u.a.prototype.destroy.call(this)},e.prototype.onMediaAttaching=function(t){this.media=t.media,this._cleanTracks()},e.prototype.onMediaDetaching=function(){Object(p.a)(this.textTrack1),Object(p.a)(this.textTrack2)},e.prototype.onManifestLoading=function(){this.lastSn=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0},this._cleanTracks()},e.prototype._cleanTracks=function(){var t=this.media;if(t){var e=t.textTracks;if(e)for(var r=0;r<e.length;r++)Object(p.a)(e[r])}},e.prototype.onManifestLoaded=function(t){var e=this;if(this.textTracks=[],this.unparsedVttFrags=this.unparsedVttFrags||[],this.initPTS=void 0,this.cueRanges=[],this.config.enableWebVTT){this.tracks=t.subtitles||[];var r=this.media?this.media.textTracks:[];this.tracks.forEach(function(t,i){var a=void 0;if(i<r.length){var n=r[i];o(n,t)&&(a=n)}a||(a=e.createTextTrack("subtitles",t.name,t.lang)),t.default?a.mode=e.hls.subtitleDisplay?"showing":"hidden":a.mode="disabled",e.textTracks.push(a)})}},e.prototype.onLevelSwitching=function(){this.enabled="NONE"!==this.hls.currentLevel.closedCaptions},e.prototype.onFragLoaded=function(t){var e=t.frag,r=t.payload;if("main"===e.type){var i=e.sn;if(i!==this.lastSn+1){var a=this.cea608Parser;a&&a.reset()}this.lastSn=i}else if("subtitle"===e.type)if(r.byteLength){if(void 0===this.initPTS)return void this.unparsedVttFrags.push(t);var n=e.decryptdata;null!=n&&null!=n.key&&"AES-128"===n.method||this._parseVTTs(e,r)}else this.hls.trigger(l.a.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e})},e.prototype._parseVTTs=function(t,e){var r=this.vttCCs;r[t.cc]||(r[t.cc]={start:t.start,prevCC:this.prevCC,new:!0},this.prevCC=t.cc);var i=this.textTracks,a=this.hls;h.a.parse(e,this.initPTS,r,t.cc,function(e){var r=i[t.trackId];if("disabled"===r.mode)return void a.trigger(l.a.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t});e.forEach(function(t){if(!r.cues.getCueById(t.id))try{r.addCue(t)}catch(i){var e=new window.TextTrackCue(t.startTime,t.endTime,t.text);e.id=t.id,r.addCue(e)}}),a.trigger(l.a.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:t})},function(e){f.b.log("Failed to parse VTT cue: "+e),a.trigger(l.a.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t})})},e.prototype.onFragDecrypted=function(t){var e=t.payload,r=t.frag;if("subtitle"===r.type){if(void 0===this.initPTS)return void this.unparsedVttFrags.push(t);this._parseVTTs(r,e)}},e.prototype.onFragParsingUserdata=function(t){if(this.enabled&&this.config.enableCEA708Captions)for(var e=0;e<t.samples.length;e++){var r=this.extractCea608Data(t.samples[e].bytes);this.cea608Parser.addData(t.samples[e].pts,r)}},e.prototype.extractCea608Data=function(t){for(var e=31&t[0],r=2,i=void 0,a=void 0,n=void 0,o=void 0,s=void 0,l=[],u=0;u<e;u++)i=t[r++],a=127&t[r++],n=127&t[r++],o=0!=(4&i),s=3&i,0===a&&0===n||o&&0===s&&(l.push(a),l.push(n));return l},e}(u.a);e.a=v},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},n=function(t){var e=t;return a.hasOwnProperty(t)&&(e=a[t]),String.fromCharCode(e)},o=15,s=100,l={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},u={17:2,18:4,21:6,22:8,23:10,19:13,20:15},d={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},c={25:2,26:4,29:6,30:8,31:10,27:13,28:15},h=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],f={verboseFilter:{DATA:3,DEBUG:3,INFO:2,WARNING:2,TEXT:1,ERROR:0},time:null,verboseLevel:0,setTime:function(t){this.time=t},log:function(t,e){var r=this.verboseFilter[t];this.verboseLevel>=r&&console.log(this.time+" ["+t+"] "+e)}},p=function(t){for(var e=[],r=0;r<t.length;r++)e.push(t[r].toString(16));return e},v=function(){function t(e,r,a,n,o){i(this,t),this.foreground=e||"white",this.underline=r||!1,this.italics=a||!1,this.background=n||"black",this.flash=o||!1}return t.prototype.reset=function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},t.prototype.setStyles=function(t){for(var e=["foreground","underline","italics","background","flash"],r=0;r<e.length;r++){var i=e[r];t.hasOwnProperty(i)&&(this[i]=t[i])}},t.prototype.isDefault=function(){return"white"===this.foreground&&!this.underline&&!this.italics&&"black"===this.background&&!this.flash},t.prototype.equals=function(t){return this.foreground===t.foreground&&this.underline===t.underline&&this.italics===t.italics&&this.background===t.background&&this.flash===t.flash},t.prototype.copy=function(t){this.foreground=t.foreground,this.underline=t.underline,this.italics=t.italics,this.background=t.background,this.flash=t.flash},t.prototype.toString=function(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash},t}(),g=function(){function t(e,r,a,n,o,s){i(this,t),this.uchar=e||" ",this.penState=new v(r,a,n,o,s)}return t.prototype.reset=function(){this.uchar=" ",this.penState.reset()},t.prototype.setChar=function(t,e){this.uchar=t,this.penState.copy(e)},t.prototype.setPenState=function(t){this.penState.copy(t)},t.prototype.equals=function(t){return this.uchar===t.uchar&&this.penState.equals(t.penState)},t.prototype.copy=function(t){this.uchar=t.uchar,this.penState.copy(t.penState)},t.prototype.isEmpty=function(){return" "===this.uchar&&this.penState.isDefault()},t}(),y=function(){function t(){i(this,t),this.chars=[];for(var e=0;e<s;e++)this.chars.push(new g);this.pos=0,this.currPenState=new v}return t.prototype.equals=function(t){for(var e=!0,r=0;r<s;r++)if(!this.chars[r].equals(t.chars[r])){e=!1;break}return e},t.prototype.copy=function(t){for(var e=0;e<s;e++)this.chars[e].copy(t.chars[e])},t.prototype.isEmpty=function(){for(var t=!0,e=0;e<s;e++)if(!this.chars[e].isEmpty()){t=!1;break}return t},t.prototype.setCursor=function(t){this.pos!==t&&(this.pos=t),this.pos<0?(f.log("ERROR","Negative cursor position "+this.pos),this.pos=0):this.pos>s&&(f.log("ERROR","Too large cursor position "+this.pos),this.pos=s)},t.prototype.moveCursor=function(t){var e=this.pos+t;if(t>1)for(var r=this.pos+1;r<e+1;r++)this.chars[r].setPenState(this.currPenState);this.setCursor(e)},t.prototype.backSpace=function(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)},t.prototype.insertChar=function(t){t>=144&&this.backSpace();var e=n(t);if(this.pos>=s)return void f.log("ERROR","Cannot insert "+t.toString(16)+" ("+e+") at position "+this.pos+". Skipping it!");this.chars[this.pos].setChar(e,this.currPenState),this.moveCursor(1)},t.prototype.clearFromPos=function(t){var e=void 0;for(e=t;e<s;e++)this.chars[e].reset()},t.prototype.clear=function(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()},t.prototype.clearToEndOfRow=function(){this.clearFromPos(this.pos)},t.prototype.getTextString=function(){for(var t=[],e=!0,r=0;r<s;r++){var i=this.chars[r].uchar;" "!==i&&(e=!1),t.push(i)}return e?"":t.join("")},t.prototype.setPenStyles=function(t){this.currPenState.setStyles(t),this.chars[this.pos].setPenState(this.currPenState)},t}(),m=function(){function t(){i(this,t),this.rows=[];for(var e=0;e<o;e++)this.rows.push(new y);this.currRow=o-1,this.nrRollUpRows=null,this.reset()}return t.prototype.reset=function(){for(var t=0;t<o;t++)this.rows[t].clear();this.currRow=o-1},t.prototype.equals=function(t){for(var e=!0,r=0;r<o;r++)if(!this.rows[r].equals(t.rows[r])){e=!1;break}return e},t.prototype.copy=function(t){for(var e=0;e<o;e++)this.rows[e].copy(t.rows[e])},t.prototype.isEmpty=function(){for(var t=!0,e=0;e<o;e++)if(!this.rows[e].isEmpty()){t=!1;break}return t},t.prototype.backSpace=function(){this.rows[this.currRow].backSpace()},t.prototype.clearToEndOfRow=function(){this.rows[this.currRow].clearToEndOfRow()},t.prototype.insertChar=function(t){this.rows[this.currRow].insertChar(t)},t.prototype.setPen=function(t){this.rows[this.currRow].setPenStyles(t)},t.prototype.moveCursor=function(t){this.rows[this.currRow].moveCursor(t)},t.prototype.setCursor=function(t){f.log("INFO","setCursor: "+t),this.rows[this.currRow].setCursor(t)},t.prototype.setPAC=function(t){f.log("INFO","pacData = "+JSON.stringify(t));var e=t.row-1;if(this.nrRollUpRows&&e<this.nrRollUpRows-1&&(e=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==e){for(var r=0;r<o;r++)this.rows[r].clear();var i=this.currRow+1-this.nrRollUpRows,a=this.lastOutputScreen;if(a){var n=a.rows[i].cueStartTime;if(n&&n<f.time)for(var s=0;s<this.nrRollUpRows;s++)this.rows[e-this.nrRollUpRows+s+1].copy(a.rows[i+s])}}this.currRow=e;var l=this.rows[this.currRow];if(null!==t.indent){var u=t.indent,d=Math.max(u-1,0);l.setCursor(t.indent),t.color=l.chars[d].penState.foreground}var c={foreground:t.color,underline:t.underline,italics:t.italics,background:"black",flash:!1};this.setPen(c)},t.prototype.setBkgData=function(t){f.log("INFO","bkgData = "+JSON.stringify(t)),this.backSpace(),this.setPen(t),this.insertChar(32)},t.prototype.setRollUpRows=function(t){this.nrRollUpRows=t},t.prototype.rollUp=function(){if(null===this.nrRollUpRows)return void f.log("DEBUG","roll_up but nrRollUpRows not set yet");f.log("TEXT",this.getDisplayText());var t=this.currRow+1-this.nrRollUpRows,e=this.rows.splice(t,1)[0];e.clear(),this.rows.splice(this.currRow,0,e),f.log("INFO","Rolling up")},t.prototype.getDisplayText=function(t){t=t||!1;for(var e=[],r="",i=-1,a=0;a<o;a++){var n=this.rows[a].getTextString();n&&(i=a+1,t?e.push("Row "+i+": '"+n+"'"):e.push(n.trim()))}return e.length>0&&(r=t?"["+e.join(" | ")+"]":e.join("\n")),r},t.prototype.getTextAndFormat=function(){return this.rows},t}(),b=function(){function t(e,r){i(this,t),this.chNr=e,this.outputFilter=r,this.mode=null,this.verbose=0,this.displayedMemory=new m,this.nonDisplayedMemory=new m,this.lastOutputScreen=new m,this.currRollUpRow=this.displayedMemory.rows[o-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}return t.prototype.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[o-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.lastCueEndTime=null},t.prototype.getHandler=function(){return this.outputFilter},t.prototype.setHandler=function(t){this.outputFilter=t},t.prototype.setPAC=function(t){this.writeScreen.setPAC(t)},t.prototype.setBkgData=function(t){this.writeScreen.setBkgData(t)},t.prototype.setMode=function(t){t!==this.mode&&(this.mode=t,f.log("INFO","MODE="+t),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=t)},t.prototype.insertChars=function(t){for(var e=0;e<t.length;e++)this.writeScreen.insertChar(t[e]);var r=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";f.log("INFO",r+": "+this.writeScreen.getDisplayText(!0)),"MODE_PAINT-ON"!==this.mode&&"MODE_ROLL-UP"!==this.mode||(f.log("TEXT","DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())},t.prototype.ccRCL=function(){f.log("INFO","RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")},t.prototype.ccBS=function(){f.log("INFO","BS - BackSpace"),"MODE_TEXT"!==this.mode&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())},t.prototype.ccAOF=function(){},t.prototype.ccAON=function(){},t.prototype.ccDER=function(){f.log("INFO","DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()},t.prototype.ccRU=function(t){f.log("INFO","RU("+t+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(t)},t.prototype.ccFON=function(){f.log("INFO","FON - Flash On"),this.writeScreen.setPen({flash:!0})},t.prototype.ccRDC=function(){f.log("INFO","RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")},t.prototype.ccTR=function(){f.log("INFO","TR"),this.setMode("MODE_TEXT")},t.prototype.ccRTD=function(){f.log("INFO","RTD"),this.setMode("MODE_TEXT")},t.prototype.ccEDM=function(){f.log("INFO","EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)},t.prototype.ccCR=function(){f.log("CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)},t.prototype.ccENM=function(){f.log("INFO","ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()},t.prototype.ccEOC=function(){if(f.log("INFO","EOC - End Of Caption"),"MODE_POP-ON"===this.mode){var t=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=t,this.writeScreen=this.nonDisplayedMemory,f.log("TEXT","DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)},t.prototype.ccTO=function(t){f.log("INFO","TO("+t+") - Tab Offset"),this.writeScreen.moveCursor(t)},t.prototype.ccMIDROW=function(t){var e={flash:!1};if(e.underline=t%2==1,e.italics=t>=46,e.italics)e.foreground="white";else{var r=Math.floor(t/2)-16,i=["white","green","blue","cyan","red","yellow","magenta"];e.foreground=i[r]}f.log("INFO","MIDROW: "+JSON.stringify(e)),this.writeScreen.setPen(e)},t.prototype.outputDataUpdate=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=f.time;null!==e&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue&&(this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),!0===t&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue()),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))},t.prototype.cueSplitAtTime=function(t){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,t,this.displayedMemory),this.cueStartTime=t))},t}(),E=function(){function t(e,r,a){i(this,t),this.field=e||1,this.outputs=[r,a],this.channels=[new b(1,r),new b(2,a)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.bufferedData=[],this.startTime=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}}return t.prototype.getHandler=function(t){return this.channels[t].getHandler()},t.prototype.setHandler=function(t,e){this.channels[t].setHandler(e)},t.prototype.addData=function(t,e){var r=void 0,i=void 0,a=void 0,n=!1;this.lastTime=t,f.setTime(t);for(var o=0;o<e.length;o+=2)if(i=127&e[o],a=127&e[o+1],0!==i||0!==a){if(f.log("DATA","["+p([e[o],e[o+1]])+"] -> ("+p([i,a])+")"),r=this.parseCmd(i,a),r||(r=this.parseMidrow(i,a)),r||(r=this.parsePAC(i,a)),r||(r=this.parseBackgroundAttributes(i,a)),!r&&(n=this.parseChars(i,a)))if(this.currChNr&&this.currChNr>=0){var s=this.channels[this.currChNr-1];s.insertChars(n)}else f.log("WARNING","No channel found yet. TEXT-MODE?");r?this.dataCounters.cmd+=2:n?this.dataCounters.char+=2:(this.dataCounters.other+=2,f.log("WARNING","Couldn't parse cleaned data "+p([i,a])+" orig: "+p([e[o],e[o+1]])))}else this.dataCounters.padding+=2},t.prototype.parseCmd=function(t,e){var r=null,i=(20===t||28===t)&&e>=32&&e<=47,a=(23===t||31===t)&&e>=33&&e<=35;if(!i&&!a)return!1;if(t===this.lastCmdA&&e===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,f.log("DEBUG","Repeated command ("+p([t,e])+") is dropped"),!0;r=20===t||23===t?1:2;var n=this.channels[r-1];return 20===t||28===t?32===e?n.ccRCL():33===e?n.ccBS():34===e?n.ccAOF():35===e?n.ccAON():36===e?n.ccDER():37===e?n.ccRU(2):38===e?n.ccRU(3):39===e?n.ccRU(4):40===e?n.ccFON():41===e?n.ccRDC():42===e?n.ccTR():43===e?n.ccRTD():44===e?n.ccEDM():45===e?n.ccCR():46===e?n.ccENM():47===e&&n.ccEOC():n.ccTO(e-32),this.lastCmdA=t,this.lastCmdB=e,this.currChNr=r,!0},t.prototype.parseMidrow=function(t,e){var r=null;if((17===t||25===t)&&e>=32&&e<=47){if((r=17===t?1:2)!==this.currChNr)return f.log("ERROR","Mismatch channel in midrow parsing"),!1;return this.channels[r-1].ccMIDROW(e),f.log("DEBUG","MIDROW ("+p([t,e])+")"),!0}return!1},t.prototype.parsePAC=function(t,e){var r=null,i=null,a=(t>=17&&t<=23||t>=25&&t<=31)&&e>=64&&e<=127,n=(16===t||24===t)&&e>=64&&e<=95;if(!a&&!n)return!1;if(t===this.lastCmdA&&e===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,!0;r=t<=23?1:2,i=e>=64&&e<=95?1===r?l[t]:d[t]:1===r?u[t]:c[t];var o=this.interpretPAC(i,e);return this.channels[r-1].setPAC(o),this.lastCmdA=t,this.lastCmdB=e,this.currChNr=r,!0},t.prototype.interpretPAC=function(t,e){var r=e,i={color:null,italics:!1,indent:null,underline:!1,row:t};return r=e>95?e-96:e-64,i.underline=1==(1&r),r<=13?i.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(r/2)]:r<=15?(i.italics=!0,i.color="white"):i.indent=4*Math.floor((r-16)/2),i},t.prototype.parseChars=function(t,e){var r=null,i=null,a=null;if(t>=25?(r=2,a=t-8):(r=1,a=t),a>=17&&a<=19){var o=e;o=17===a?e+80:18===a?e+112:e+144,f.log("INFO","Special char '"+n(o)+"' in channel "+r),i=[o]}else t>=32&&t<=127&&(i=0===e?[t]:[t,e]);if(i){var s=p(i);f.log("DEBUG","Char codes =  "+s.join(",")),this.lastCmdA=null,this.lastCmdB=null}return i},t.prototype.parseBackgroundAttributes=function(t,e){var r=void 0,i=void 0,a=void 0,n=void 0,o=(16===t||24===t)&&e>=32&&e<=47,s=(23===t||31===t)&&e>=45&&e<=47;return!(!o&&!s)&&(r={},16===t||24===t?(i=Math.floor((e-32)/2),r.background=h[i],e%2==1&&(r.background=r.background+"_semi")):45===e?r.background="transparent":(r.foreground="black",47===e&&(r.underline=!0)),a=t<24?1:2,n=this.channels[a-1],n.setBkgData(r),this.lastCmdA=null,this.lastCmdB=null,!0)},t.prototype.reset=function(){for(var t=0;t<this.channels.length;t++)this.channels[t]&&this.channels[t].reset();this.lastCmdA=null,this.lastCmdB=null},t.prototype.cueSplitAtTime=function(t){for(var e=0;e<this.channels.length;e++)this.channels[e]&&this.channels[e].cueSplitAtTime(t)},t}();e.a=E},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=function(){function t(e,r){i(this,t),this.timelineController=e,this.track=r,this.startTime=null,this.endTime=null,this.screen=null}return t.prototype.dispatchCue=function(){null!==this.startTime&&(this.timelineController.addCues("textTrack"+this.track,this.startTime,this.endTime,this.screen),this.startTime=null)},t.prototype.newCue=function(t,e,r){(null===this.startTime||this.startTime>t)&&(this.startTime=t),this.endTime=e,this.screen=r,this.timelineController.createCaptionsTrack(this.track)},t}();e.a=a},function(t,e,r){"use strict";var i=r(26),a=r(5),n=function(t,e,r){return t.substr(r||0,e.length)===e},o=function(t){var e=parseInt(t.substr(-3)),r=parseInt(t.substr(-6,2)),i=parseInt(t.substr(-9,2)),a=t.length>9?parseInt(t.substr(0,t.indexOf(":"))):0;return isNaN(e)||isNaN(r)||isNaN(i)||isNaN(a)?-1:(e+=1e3*r,e+=6e4*i,e+=36e5*a)},s=function(t){for(var e=5381,r=t.length;r;)e=33*e^t.charCodeAt(--r);return(e>>>0).toString()},l=function(t,e,r){var i=t[e],a=t[i.prevCC];if(!a||!a.new&&i.new)return t.ccOffset=t.presentationOffset=i.start,void(i.new=!1);for(;a&&a.new;)t.ccOffset+=i.start-a.start,i.new=!1,i=a,a=t[i.prevCC];t.presentationOffset=r},u={parse:function(t,e,r,u,d,c){var h=/\r\n|\n\r|\n|\r/g,f=Object(a.b)(new Uint8Array(t)).trim().replace(h,"\n").split("\n"),p="00:00.000",v=0,g=0,y=0,m=[],b=void 0,E=!0,T=new i.a;T.oncue=function(t){var e=r[u],i=r.ccOffset;e&&e.new&&(void 0!==g?i=r.ccOffset=e.start:l(r,u,y)),y&&(i=y+r.ccOffset-r.presentationOffset),t.startTime+=i-g,t.endTime+=i-g,t.id=s(t.startTime.toString())+s(t.endTime.toString())+s(t.text),t.text=decodeURIComponent(encodeURIComponent(t.text)),t.endTime>0&&m.push(t)},T.onparsingerror=function(t){b=t},T.onflush=function(){if(b&&c)return void c(b);d(m)},f.forEach(function(t){if(E){if(n(t,"X-TIMESTAMP-MAP=")){E=!1,t.substr(16).split(",").forEach(function(t){n(t,"LOCAL:")?p=t.substr(6):n(t,"MPEGTS:")&&(v=parseInt(t.substr(7)))});try{e=e<0?e+8589934592:e,v-=e,g=o(p)/1e3,y=v/9e4,-1===g&&(b=new Error("Malformed X-TIMESTAMP-MAP: "+t))}catch(e){b=new Error("Malformed X-TIMESTAMP-MAP: "+t)}return}""===t&&(E=!1)}T.parse(t+"\n")}),T.flush()}};e.a=u},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function o(t){for(var e=[],r=0;r<t.length;r++)"subtitles"===t[r].kind&&e.push(t[r]);return e}var s=r(1),l=r(3),u=r(0),d=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),c=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,s.a.MEDIA_ATTACHED,s.a.MEDIA_DETACHING,s.a.MANIFEST_LOADING,s.a.MANIFEST_LOADED,s.a.SUBTITLE_TRACK_LOADED));return n.tracks=[],n.trackId=-1,n.media=void 0,n.subtitleDisplay=!1,n}return n(e,t),e.prototype._onTextTracksChanged=function(){if(this.media){for(var t=-1,e=o(this.media.textTracks),r=0;r<e.length;r++)if("hidden"===e[r].mode)t=r;else if("showing"===e[r].mode){t=r;break}this.subtitleTrack=t}},e.prototype.destroy=function(){l.a.prototype.destroy.call(this)},e.prototype.onMediaAttached=function(t){var e=this;this.media=t.media,this.media&&(void 0!==this.queuedDefaultTrack&&(this.subtitleTrack=this.queuedDefaultTrack,delete this.queuedDefaultTrack),this.trackChangeListener=this._onTextTracksChanged.bind(this),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.subtitlePollingInterval=setInterval(function(){e.trackChangeListener()},500):this.media.textTracks.addEventListener("change",this.trackChangeListener))},e.prototype.onMediaDetaching=function(){this.media&&(this.useTextTrackPolling?clearInterval(this.subtitlePollingInterval):this.media.textTracks.removeEventListener("change",this.trackChangeListener),this.media=void 0)},e.prototype.onManifestLoading=function(){this.tracks=[],this.trackId=-1},e.prototype.onManifestLoaded=function(t){var e=this,r=t.subtitles||[];this.tracks=r,this.trackId=-1,this.hls.trigger(s.a.SUBTITLE_TRACKS_UPDATED,{subtitleTracks:r}),r.forEach(function(t){t.default&&(e.media?e.subtitleTrack=t.id:e.queuedDefaultTrack=t.id)})},e.prototype.onTick=function(){var t=this.trackId,e=this.tracks[t];if(e){var r=e.details;void 0!==r&&!0!==r.live||(u.b.log("(re)loading playlist for subtitle track "+t),this.hls.trigger(s.a.SUBTITLE_TRACK_LOADING,{url:e.url,id:t}))}},e.prototype.onSubtitleTrackLoaded=function(t){var e=this;t.id<this.tracks.length&&(u.b.log("subtitle track "+t.id+" loaded"),this.tracks[t.id].details=t.details,t.details.live&&!this.timer&&(this.timer=setInterval(function(){e.onTick()},1e3*t.details.targetduration,this)),!t.details.live&&this.timer&&(clearInterval(this.timer),this.timer=null))},e.prototype.setSubtitleTrackInternal=function(t){if(!(t<-1||t>=this.tracks.length)){this.timer&&(clearInterval(this.timer),this.timer=null);var e=o(this.media.textTracks);if(-1!==this.trackId&&(e[this.trackId].mode="disabled"),this.trackId=t,u.b.log("switching to subtitle track "+t),this.hls.trigger(s.a.SUBTITLE_TRACK_SWITCH,{id:t}),-1!==t){var r=this.tracks[t];t<e.length&&(e[t].mode=this.subtitleDisplay?"showing":"hidden");var i=r.details;void 0!==i&&!0!==i.live||(u.b.log("(re)loading playlist for subtitle track "+t),this.hls.trigger(s.a.SUBTITLE_TRACK_LOADING,{url:r.url,id:t}))}}},d(e,[{key:"subtitleTracks",get:function(){return this.tracks}},{key:"subtitleTrack",get:function(){return this.trackId},set:function(t){this.trackId!==t&&this.setSubtitleTrackInternal(t)}}]),e}(l.a);e.a=c},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(1),s=r(0),l=r(9),u=r(13),d={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING"},c=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,o.a.MEDIA_ATTACHED,o.a.ERROR,o.a.KEY_LOADED,o.a.FRAG_LOADED,o.a.SUBTITLE_TRACKS_UPDATED,o.a.SUBTITLE_TRACK_SWITCH,o.a.SUBTITLE_TRACK_LOADED,o.a.SUBTITLE_FRAG_PROCESSED));return n.config=r.config,n.vttFragSNsProcessed={},n.vttFragQueues=void 0,n.currentlyProcessing=null,n.state=d.STOPPED,n.currentTrackId=-1,n.decrypter=new l.a(r.observer,r.config),n}return n(e,t),e.prototype.onHandlerDestroyed=function(){this.state=d.STOPPED},e.prototype.clearVttFragQueues=function(){var t=this;this.vttFragQueues={},this.tracks.forEach(function(e){t.vttFragQueues[e.id]=[]})},e.prototype.nextFrag=function(){if(null===this.currentlyProcessing&&this.currentTrackId>-1&&this.vttFragQueues[this.currentTrackId].length){var t=this.currentlyProcessing=this.vttFragQueues[this.currentTrackId].shift();this.fragCurrent=t,this.hls.trigger(o.a.FRAG_LOADING,{frag:t}),this.state=d.FRAG_LOADING}},e.prototype.onSubtitleFragProcessed=function(t){t.success&&this.vttFragSNsProcessed[t.frag.trackId].push(t.frag.sn),this.currentlyProcessing=null,this.state=d.IDLE,this.nextFrag()},e.prototype.onMediaAttached=function(){this.state=d.IDLE},e.prototype.onError=function(t){var e=t.frag;e&&"subtitle"!==e.type||this.currentlyProcessing&&(this.currentlyProcessing=null,this.nextFrag())},e.prototype.doTick=function(){var t=this;switch(this.state){case d.IDLE:var e=this.tracks,r=this.currentTrackId,i=this.vttFragSNsProcessed[r],a=this.vttFragQueues[r],n=this.currentlyProcessing?this.currentlyProcessing.sn:-1,l=function(t){return i.indexOf(t.sn)>-1},u=function(t){return a.some(function(e){return e.sn===t.sn})};if(!e)break;var c;if(r<e.length&&(c=e[r].details),void 0===c)break;c.fragments.forEach(function(e){l(e)||e.sn===n||u(e)||(e.decryptdata&&null!=e.decryptdata.uri&&null==e.decryptdata.key?(s.b.log("Loading key for "+e.sn),t.state=d.KEY_LOADING,t.hls.trigger(o.a.KEY_LOADING,{frag:e})):(e.trackId=r,a.push(e),t.nextFrag()))})}},e.prototype.onSubtitleTracksUpdated=function(t){var e=this;s.b.log("subtitle tracks updated"),this.tracks=t.subtitleTracks,this.clearVttFragQueues(),this.vttFragSNsProcessed={},this.tracks.forEach(function(t){e.vttFragSNsProcessed[t.id]=[]})},e.prototype.onSubtitleTrackSwitch=function(t){if(this.currentTrackId=t.id,-1!==this.currentTrackId){void 0!==this.tracks[this.currentTrackId].details&&this.tick()}},e.prototype.onSubtitleTrackLoaded=function(){this.tick()},e.prototype.onKeyLoaded=function(){this.state===d.KEY_LOADING&&(this.state=d.IDLE,this.tick())},e.prototype.onFragLoaded=function(t){var e=this.fragCurrent,r=t.frag.decryptdata,i=t.frag,a=this.hls;if(this.state===d.FRAG_LOADING&&e&&"subtitle"===t.frag.type&&e.sn===t.frag.sn&&t.payload.byteLength>0&&null!=r&&null!=r.key&&"AES-128"===r.method){var n=void 0;try{n=performance.now()}catch(t){n=Date.now()}this.decrypter.decrypt(t.payload,r.key.buffer,r.iv.buffer,function(t){var e=void 0;try{e=performance.now()}catch(t){e=Date.now()}a.trigger(o.a.FRAG_DECRYPTED,{frag:i,payload:t,stats:{tstart:n,tdecrypt:e}})})}},e}(u.a);e.a=c},function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=r(3),s=r(1),l=r(2),u=r(0),d=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),c={WIDEVINE:"com.widevine.alpha",PLAYREADY:"com.microsoft.playready"},h=function(t,e,r){var i={videoCapabilities:[]};return e.forEach(function(t){i.videoCapabilities.push({contentType:'video/mp4; codecs="'+t+'"'})}),[i]},f=function(t,e,r){switch(t){case c.WIDEVINE:return h(0,r);default:throw Error("Unknown key-system: "+t)}},p=function(t){function e(r){i(this,e);var n=a(this,t.call(this,r,s.a.MEDIA_ATTACHED,s.a.MANIFEST_PARSED));return n._widevineLicenseUrl=r.config.widevineLicenseUrl,n._licenseXhrSetup=r.config.licenseXhrSetup,n._emeEnabled=r.config.emeEnabled,n._requestMediaKeySystemAccess=r.config.requestMediaKeySystemAccessFunc,n._mediaKeysList=[],n._media=null,n._hasSetMediaKeys=!1,n._isMediaEncrypted=!1,n._requestLicenseFailureCount=0,n}return n(e,t),e.prototype.getLicenseServerUrl=function(t){var e=void 0;switch(t){case c.WIDEVINE:e=this._widevineLicenseUrl;break;default:e=null}return e||(u.b.error('No license server URL configured for key-system "'+t+'"'),this.hls.trigger(s.a.ERROR,{type:l.b.KEY_SYSTEM_ERROR,details:l.a.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})),e},e.prototype._attemptKeySystemAccess=function(t,e,r){var i=this,a=f(t,0,r);if(!a)return void u.b.warn("Can not create config for key-system (maybe because platform is not supported):",t);u.b.log("Requesting encrypted media key-system access"),this.requestMediaKeySystemAccess(t,a).then(function(e){i._onMediaKeySystemAccessObtained(t,e)}).catch(function(e){u.b.error('Failed to obtain key-system "'+t+'" access:',e)})},e.prototype._onMediaKeySystemAccessObtained=function(t,e){var r=this;u.b.log('Access for key-system "'+t+'" obtained');var i={mediaKeys:null,mediaKeysSession:null,mediaKeysSessionInitialized:!1,mediaKeySystemAccess:e,mediaKeySystemDomain:t};this._mediaKeysList.push(i),e.createMediaKeys().then(function(e){i.mediaKeys=e,u.b.log('Media-keys created for key-system "'+t+'"'),r._onMediaKeysCreated()}).catch(function(t){u.b.error("Failed to create media-keys:",t)})},e.prototype._onMediaKeysCreated=function(){var t=this;this._mediaKeysList.forEach(function(e){e.mediaKeysSession||(e.mediaKeysSession=e.mediaKeys.createSession(),t._onNewMediaKeySession(e.mediaKeysSession))})},e.prototype._onNewMediaKeySession=function(t){var e=this;u.b.log("New key-system session "+t.sessionId),t.addEventListener("message",function(r){e._onKeySessionMessage(t,r.message)},!1)},e.prototype._onKeySessionMessage=function(t,e){u.b.log("Got EME message event, creating license request"),this._requestLicense(e,function(e){u.b.log("Received license data, updating key-session"),t.update(e)})},e.prototype._onMediaEncrypted=function(t,e){u.b.log('Media is encrypted using "'+t+'" init data type'),this._isMediaEncrypted=!0,this._mediaEncryptionInitDataType=t,this._mediaEncryptionInitData=e,this._attemptSetMediaKeys(),this._generateRequestWithPreferredKeySession()},e.prototype._attemptSetMediaKeys=function(){if(!this._hasSetMediaKeys){var t=this._mediaKeysList[0];if(!t||!t.mediaKeys)return u.b.error("Fatal: Media is encrypted but no CDM access or no keys have been obtained yet"),void this.hls.trigger(s.a.ERROR,{type:l.b.KEY_SYSTEM_ERROR,details:l.a.KEY_SYSTEM_NO_KEYS,fatal:!0});u.b.log("Setting keys for encrypted media"),this._media.setMediaKeys(t.mediaKeys),this._hasSetMediaKeys=!0}},e.prototype._generateRequestWithPreferredKeySession=function(){var t=this,e=this._mediaKeysList[0];if(!e)return u.b.error("Fatal: Media is encrypted but not any key-system access has been obtained yet"),void this.hls.trigger(s.a.ERROR,{type:l.b.KEY_SYSTEM_ERROR,details:l.a.KEY_SYSTEM_NO_ACCESS,fatal:!0});if(e.mediaKeysSessionInitialized)return void u.b.warn("Key-Session already initialized but requested again");var r=e.mediaKeysSession;r||(u.b.error("Fatal: Media is encrypted but no key-session existing"),this.hls.trigger(s.a.ERROR,{type:l.b.KEY_SYSTEM_ERROR,details:l.a.KEY_SYSTEM_NO_SESSION,fatal:!0}));var i=this._mediaEncryptionInitDataType,a=this._mediaEncryptionInitData;u.b.log('Generating key-session request for "'+i+'" init data type'),e.mediaKeysSessionInitialized=!0,r.generateRequest(i,a).then(function(){u.b.debug("Key-session generation succeeded")}).catch(function(e){u.b.error("Error generating key-session request:",e),t.hls.trigger(s.a.ERROR,{type:l.b.KEY_SYSTEM_ERROR,details:l.a.KEY_SYSTEM_NO_SESSION,fatal:!1})})},e.prototype._createLicenseXhr=function(t,e,r){var i=new XMLHttpRequest,a=this._licenseXhrSetup;try{if(a)try{a(i,t)}catch(e){i.open("POST",t,!0),a(i,t)}i.readyState||i.open("POST",t,!0)}catch(t){return u.b.error("Error setting up key-system license XHR",t),void this.hls.trigger(s.a.ERROR,{type:l.b.KEY_SYSTEM_ERROR,details:l.a.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})}return i.responseType="arraybuffer",i.onreadystatechange=this._onLicenseRequestReadyStageChange.bind(this,i,t,e,r),i},e.prototype._onLicenseRequestReadyStageChange=function(t,e,r,i){switch(t.readyState){case 4:if(200===t.status)this._requestLicenseFailureCount=0,u.b.log("License request succeeded"),i(t.response);else{if(u.b.error("License Request XHR failed ("+e+"). Status: "+t.status+" ("+t.statusText+")"),++this._requestLicenseFailureCount<=3){var a=3-this._requestLicenseFailureCount+1;return u.b.warn("Retrying license request, "+a+" attempts left"),void this._requestLicense(r,i)}this.hls.trigger(s.a.ERROR,{type:l.b.KEY_SYSTEM_ERROR,details:l.a.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})}}},e.prototype._generateLicenseRequestChallenge=function(t,e){var r=void 0;return t.mediaKeySystemDomain===c.PLAYREADY?u.b.error("PlayReady is not supported (yet)"):t.mediaKeySystemDomain===c.WIDEVINE?r=e:u.b.error("Unsupported key-system:",t.mediaKeySystemDomain),r},e.prototype._requestLicense=function(t,e){u.b.log("Requesting content license for key-system");var r=this._mediaKeysList[0];if(!r)return u.b.error("Fatal error: Media is encrypted but no key-system access has been obtained yet"),void this.hls.trigger(s.a.ERROR,{type:l.b.KEY_SYSTEM_ERROR,details:l.a.KEY_SYSTEM_NO_ACCESS,fatal:!0});var i=this.getLicenseServerUrl(r.mediaKeySystemDomain),a=this._createLicenseXhr(i,t,e);u.b.log("Sending license request to URL: "+i),a.send(this._generateLicenseRequestChallenge(r,t))},e.prototype.onMediaAttached=function(t){var e=this;if(this._emeEnabled){var r=t.media;this._media=r,r.addEventListener("encrypted",function(t){e._onMediaEncrypted(t.initDataType,t.initData)})}},e.prototype.onManifestParsed=function(t){if(this._emeEnabled){var e=t.levels.map(function(t){return t.audioCodec}),r=t.levels.map(function(t){return t.videoCodec});this._attemptKeySystemAccess(c.WIDEVINE,e,r)}},d(e,[{key:"requestMediaKeySystemAccess",get:function(){if(!this._requestMediaKeySystemAccess)throw new Error("No requestMediaKeySystemAccess function configured");return this._requestMediaKeySystemAccess}}]),e}(o.a);e.a=p},function(t,e,r){"use strict";r.d(e,"a",function(){return i});var i=function(){return window.navigator&&window.navigator.requestMediaKeySystemAccess?window.navigator.requestMediaKeySystemAccess.bind(window.navigator):null}()},function(t,e){/*! http://mths.be/endswith v0.2.0 by @mathias */
+String.prototype.endsWith||function(){"use strict";var t=function(){try{var t={},e=Object.defineProperty,r=e(t,t,t)&&e}catch(t){}return r}(),e={}.toString,r=function(t){if(null==this)throw TypeError();var r=String(this);if(t&&"[object RegExp]"==e.call(t))throw TypeError();var i=r.length,a=String(t),n=a.length,o=i;if(arguments.length>1){var s=arguments[1];void 0!==s&&(o=s?Number(s):0)!=o&&(o=0)}var l=Math.min(Math.max(o,0),i),u=l-n;if(u<0)return!1;for(var d=-1;++d<n;)if(r.charCodeAt(u+d)!=a.charCodeAt(d))return!1;return!0};t?t(String.prototype,"endsWith",{value:r,configurable:!0,writable:!0}):String.prototype.endsWith=r}()}]).default});
+//# sourceMappingURL=hls.min.js.map
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/deps/random_name_generator.js b/src/main/webapp/static/js/paella/player/resources/deps/random_name_generator.js
new file mode 100644
index 0000000000000000000000000000000000000000..fbec6794e8338b510100576c294e949949b6a04d
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/deps/random_name_generator.js
@@ -0,0 +1,20 @@
+function capFirst(string) {
+    return string.charAt(0).toUpperCase() + string.slice(1);
+}
+
+function getRandomInt(min, max) {
+  	return Math.floor(Math.random() * (max - min)) + min;
+}
+
+function generateName(){
+	var animals = ['aardvark', 'albatross', 'alligator', 'alpaca', 'ant', 'anteater', 'antelope', 'ape', 'armadillo', 'donkey', 'baboon', 'badger', 'barracuda', 'bat', 'bear', 'beaver', 'bee', 'bison', 'boar', 'buffalo', 'butterfly', 'camel', 'capybara', 'caribou', 'cassowary', 'cat', 'caterpillar', 'cattle', 'chamois', 'cheetah', 'chicken', 'chimpanzee', 'chinchilla', 'chough', 'clam', 'cobra', 'cockroach', 'cod', 'cormorant', 'coyote', 'crab', 'crane', 'crocodile', 'crow', 'curlew', 'deer', 'dinosaur', 'dog', 'dogfish', 'dolphin', 'dotterel', 'dove', 'dragonfly', 'duck', 'dugong', 'dunlin', 'eagle', 'echidna', 'eel', 'eland', 'elephant', 'elk', 'emu', 'falcon', 'ferret', 'finch', 'fish', 'flamingo', 'fly', 'fox', 'frog', 'gaur', 'gazelle', 'gerbil', 'giraffe', 'gnat', 'gnu', 'goat', 'goldfinch', 'goldfish', 'goose', 'gorilla', 'goshawk', 'grasshopper', 'grouse', 'guanaco', 'gull', 'hamster', 'hare', 'hawk', 'hedgehog', 'heron', 'herring', 'hippopotamus', 'hornet', 'horse', 'human', 'hummingbird', 'hyena', 'ibex', 'ibis', 'jackal', 'jaguar', 'jay', 'jellyfish', 'kangaroo', 'kingfisher', 'koala', 'kookabura', 'kouprey', 'kudu', 'lapwing', 'lark', 'lemur', 'leopard', 'lion', 'llama', 'lobster', 'locust', 'loris', 'louse', 'lyrebird', 'magpie', 'mallard', 'manatee', 'mandrill', 'mantis', 'marten', 'meerkat', 'mink', 'mole', 'mongoose', 'monkey', 'moose', 'mosquito', 'mouse', 'mule', 'narwhal', 'newt', 'nightingale', 'octopus', 'okapi', 'opossum', 'oryx', 'ostrich', 'otter', 'owl', 'oyster', 'panther', 'parrot', 'partridge', 'peafowl', 'pelican', 'penguin', 'pheasant', 'pig', 'pigeon', 'pony', 'porcupine', 'porpoise', 'quail', 'quelea', 'quetzal', 'rabbit', 'raccoon', 'rail', 'ram', 'rat', 'raven', 'red deer', 'red panda', 'reindeer', 'rhinoceros', 'rook', 'salamander', 'salmon', 'sand dollar', 'sandpiper', 'sardine', 'scorpion', 'seahorse', 'seal', 'shark', 'sheep', 'shrew', 'skunk', 'snail', 'snake', 'sparrow', 'spider', 'spoonbill', 'squid', 'squirrel', 'starling', 'stingray', 'stinkbug', 'stork', 'swallow', 'swan', 'tapir', 'tarsier', 'termite', 'tiger', 'toad', 'trout', 'turkey', 'turtle', 'viper', 'vulture', 'wallaby', 'walrus', 'wasp', 'weasel', 'whale', 'wildcat', 'wolf', 'wolverine', 'wombat', 'woodcock', 'woodpecker', 'worm', 'wren', 'yak', 'zebra']
+
+	var adjectives = ['aback', 'abaft', 'abandoned', 'abashed', 'aberrant', 'abhorrent', 'abiding', 'abject', 'ablaze', 'able', 'abnormal', 'aboriginal', 'abortive', 'abounding', 'abrasive', 'abrupt', 'absent', 'absorbed', 'absorbing', 'abstracted', 'absurd', 'abundant', 'abusive', 'acceptable', 'accessible', 'accidental', 'accurate', 'acid', 'acidic', 'acoustic', 'acrid', 'adamant', 'adaptable', 'addicted', 'adhesive', 'adjoining', 'adorable', 'adventurous', 'afraid', 'aggressive', 'agonizing', 'agreeable', 'ahead', 'ajar', 'alert', 'alike', 'alive', 'alleged', 'alluring', 'aloof', 'amazing', 'ambiguous', 'ambitious', 'amuck', 'amused', 'amusing', 'ancient', 'angry', 'animated', 'annoyed', 'annoying', 'anxious', 'apathetic', 'aquatic', 'aromatic', 'arrogant', 'ashamed', 'aspiring', 'assorted', 'astonishing', 'attractive', 'auspicious', 'automatic', 'available', 'average', 'aware', 'awesome', 'axiomatic', 'bad', 'barbarous', 'bashful', 'bawdy', 'beautiful', 'befitting', 'belligerent', 'beneficial', 'bent', 'berserk', 'bewildered', 'big', 'billowy', 'bite-sized', 'bitter', 'bizarre', 'black', 'black-and-white', 'bloody', 'blue', 'blue-eyed', 'blushing', 'boiling', 'boorish', 'bored', 'boring', 'bouncy', 'boundless', 'brainy', 'brash', 'brave', 'brawny', 'breakable', 'breezy', 'brief', 'bright', 'broad', 'broken', 'brown', 'bumpy', 'burly', 'bustling', 'busy', 'cagey', 'calculating', 'callous', 'calm', 'capable', 'capricious', 'careful', 'careless', 'caring', 'cautious', 'ceaseless', 'certain', 'changeable', 'charming', 'cheap', 'cheerful', 'chemical', 'chief', 'childlike', 'chilly', 'chivalrous', 'chubby', 'chunky', 'clammy', 'classy', 'clean', 'clear', 'clever', 'cloistered', 'cloudy', 'closed', 'clumsy', 'cluttered', 'coherent', 'cold', 'colorful', 'colossal', 'combative', 'comfortable', 'common', 'complete', 'complex', 'concerned', 'condemned', 'confused', 'conscious', 'cooing', 'cool', 'cooperative', 'coordinated', 'courageous', 'cowardly', 'crabby', 'craven', 'crazy', 'creepy', 'crooked', 'crowded', 'cruel', 'cuddly', 'cultured', 'cumbersome', 'curious', 'curly', 'curved', 'curvy', 'cut', 'cute', 'cynical', 'daffy', 'daily', 'damaged', 'damaging', 'damp', 'dangerous', 'dapper', 'dark', 'dashing', 'dazzling', 'dead', 'deadpan', 'deafening', 'dear', 'debonair', 'decisive', 'decorous', 'deep', 'deeply', 'defeated', 'defective', 'defiant', 'delicate', 'delicious', 'delightful', 'demonic', 'delirious', 'dependent', 'depressed', 'deranged', 'descriptive', 'deserted', 'detailed', 'determined', 'devilish', 'didactic', 'different', 'difficult', 'diligent', 'direful', 'dirty', 'disagreeable', 'disastrous', 'discreet', 'disgusted', 'disgusting', 'disillusioned', 'dispensable', 'distinct', 'disturbed', 'divergent', 'dizzy', 'domineering', 'doubtful', 'drab', 'draconian', 'dramatic', 'dreary', 'drunk', 'dry', 'dull', 'dusty', 'dynamic', 'dysfunctional', 'eager', 'early', 'earsplitting', 'earthy', 'easy', 'eatable', 'economic', 'educated', 'efficacious', 'efficient', 'elastic', 'elated', 'elderly', 'electric', 'elegant', 'elfin', 'elite', 'embarrassed', 'eminent', 'empty', 'enchanted', 'enchanting', 'encouraging', 'endurable', 'energetic', 'enormous', 'entertaining', 'enthusiastic', 'envious', 'equable', 'equal', 'erect', 'erratic', 'ethereal', 'evanescent', 'evasive', 'even', 'excellent', 'excited', 'exciting', 'exclusive', 'exotic', 'expensive', 'extra-large', 'extra-small', 'exuberant', 'exultant', 'fabulous', 'faded', 'faint', 'fair', 'faithful', 'fallacious', 'false', 'familiar', 'famous', 'fanatical', 'fancy', 'fantastic', 'far', 'far-flung', 'fascinated', 'fast', 'fat', 'faulty', 'fearful', 'fearless', 'feeble', 'feigned', 'female', 'fertile', 'festive', 'few', 'fierce', 'filthy', 'fine', 'finicky', 'first', 'fixed', 'flagrant', 'flaky', 'flashy', 'flat', 'flawless', 'flimsy', 'flippant', 'flowery', 'fluffy', 'fluttering', 'foamy', 'foolish', 'foregoing', 'forgetful', 'fortunate', 'frail', 'fragile', 'frantic', 'free', 'freezing', 'frequent', 'fresh', 'fretful', 'friendly', 'frightened', 'frightening', 'full', 'fumbling', 'functional', 'funny', 'furry', 'furtive', 'future', 'futuristic', 'fuzzy', 'gabby', 'gainful', 'gamy', 'gaping', 'garrulous', 'gaudy', 'general', 'gentle', 'giant', 'giddy', 'gifted', 'gigantic', 'glamorous', 'gleaming', 'glib', 'glistening', 'glorious', 'glossy', 'godly', 'good', 'goofy', 'gorgeous', 'graceful', 'grandiose', 'grateful', 'gratis', 'gray', 'greasy', 'great', 'greedy', 'green', 'grey', 'grieving', 'groovy', 'grotesque', 'grouchy', 'grubby', 'gruesome', 'grumpy', 'guarded', 'guiltless', 'gullible', 'gusty', 'guttural', 'habitual', 'half', 'hallowed', 'halting', 'handsome', 'handy', 'hanging', 'hapless', 'happy', 'hard', 'hard-to-find', 'harmonious', 'harsh', 'hateful', 'heady', 'healthy', 'heartbreaking', 'heavenly', 'heavy', 'hellish', 'helpful', 'helpless', 'hesitant', 'hideous', 'high', 'highfalutin', 'high-pitched', 'hilarious', 'hissing', 'historical', 'holistic', 'hollow', 'homeless', 'homely', 'honorable', 'horrible', 'hospitable', 'hot', 'huge', 'hulking', 'humdrum', 'humorous', 'hungry', 'hurried', 'hurt', 'hushed', 'husky', 'hypnotic', 'hysterical', 'icky', 'icy', 'idiotic', 'ignorant', 'ill', 'illegal', 'ill-fated', 'ill-informed', 'illustrious', 'imaginary', 'immense', 'imminent', 'impartial', 'imperfect', 'impolite', 'important', 'imported', 'impossible', 'incandescent', 'incompetent', 'inconclusive', 'industrious', 'incredible', 'inexpensive', 'infamous', 'innate', 'innocent', 'inquisitive', 'insidious', 'instinctive', 'intelligent', 'interesting', 'internal', 'invincible', 'irate', 'irritating', 'itchy', 'jaded', 'jagged', 'jazzy', 'jealous', 'jittery', 'jobless', 'jolly', 'joyous', 'judicious', 'juicy', 'jumbled', 'jumpy', 'juvenile', 'keen', 'kind', 'kindhearted', 'kindly', 'knotty', 'knowing', 'knowledgeable', 'known', 'labored', 'lackadaisical', 'lacking', 'lame', 'lamentable', 'languid', 'large', 'last', 'late', 'laughable', 'lavish', 'lazy', 'lean', 'learned', 'left', 'legal', 'lethal', 'level', 'lewd', 'light', 'like', 'likeable', 'limping', 'literate', 'little', 'lively', 'living', 'lonely', 'long', 'longing', 'long-term', 'loose', 'lopsided', 'loud', 'loutish', 'lovely', 'loving', 'low', 'lowly', 'lucky', 'ludicrous', 'lumpy', 'lush', 'luxuriant', 'lying', 'lyrical', 'macabre', 'macho', 'maddening', 'madly', 'magenta', 'magical', 'magnificent', 'majestic', 'makeshift', 'male', 'malicious', 'mammoth', 'maniacal', 'many', 'marked', 'massive', 'married', 'marvelous', 'material', 'materialistic', 'mature', 'mean', 'measly', 'meaty', 'medical', 'meek', 'mellow', 'melodic', 'melted', 'merciful', 'mere', 'messy', 'mighty', 'military', 'milky', 'mindless', 'miniature', 'minor', 'miscreant', 'misty', 'mixed', 'moaning', 'modern', 'moldy', 'momentous', 'motionless', 'mountainous', 'muddled', 'mundane', 'murky', 'mushy', 'mute', 'mysterious', 'naive', 'nappy', 'narrow', 'nasty', 'natural', 'naughty', 'nauseating', 'near', 'neat', 'nebulous', 'necessary', 'needless', 'needy', 'neighborly', 'nervous', 'new', 'next', 'nice', 'nifty', 'nimble', 'nippy', 'noiseless', 'noisy', 'nonchalant', 'nondescript', 'nonstop', 'normal', 'nostalgic', 'nosy', 'noxious', 'numberless', 'numerous', 'nutritious', 'nutty', 'oafish', 'obedient', 'obeisant', 'obese', 'obnoxious', 'obscene', 'obsequious', 'observant', 'obsolete', 'obtainable', 'oceanic', 'odd', 'offbeat', 'old', 'old-fashioned', 'omniscient', 'onerous', 'open', 'opposite', 'optimal', 'orange', 'ordinary', 'organic', 'ossified', 'outgoing', 'outrageous', 'outstanding', 'oval', 'overconfident', 'overjoyed', 'overrated', 'overt', 'overwrought', 'painful', 'painstaking', 'pale', 'paltry', 'panicky', 'panoramic', 'parallel', 'parched', 'parsimonious', 'past', 'pastoral', 'pathetic', 'peaceful', 'penitent', 'perfect', 'periodic', 'permissible', 'perpetual', 'petite', 'phobic', 'physical', 'picayune', 'pink', 'piquant', 'placid', 'plain', 'plant', 'plastic', 'plausible', 'pleasant', 'plucky', 'pointless', 'poised', 'polite', 'political', 'poor', 'possessive', 'possible', 'powerful', 'precious', 'premium', 'present', 'pretty', 'previous', 'pricey', 'prickly', 'private', 'probable', 'productive', 'profuse', 'protective', 'proud', 'psychedelic', 'psychotic', 'public', 'puffy', 'pumped', 'puny', 'purple', 'purring', 'pushy', 'puzzled', 'puzzling', 'quaint', 'quarrelsome', 'questionable', 'quick', 'quiet', 'quirky', 'quixotic', 'quizzical', 'rabid', 'racial', 'ragged', 'rainy', 'rambunctious', 'rampant', 'rapid', 'rare', 'raspy', 'ratty', 'ready', 'real', 'rebel', 'receptive', 'recondite', 'red', 'redundant', 'reflective', 'regular', 'relieved', 'remarkable', 'reminiscent', 'repulsive', 'resolute', 'resonant', 'responsible', 'rhetorical', 'rich', 'right', 'righteous', 'rightful', 'rigid', 'ripe', 'ritzy', 'roasted', 'robust', 'romantic', 'roomy', 'rotten', 'rough', 'round', 'royal', 'ruddy', 'rude', 'rural', 'rustic', 'ruthless', 'sable', 'sad', 'safe', 'salty', 'same', 'sassy', 'satisfying', 'savory', 'scandalous', 'scarce', 'scared', 'scary', 'scattered', 'scientific', 'scintillating', 'scrawny', 'screeching', 'second', 'second-hand', 'secret', 'secretive', 'sedate', 'seemly', 'selective', 'selfish', 'separate', 'serious', 'shaggy', 'shaky', 'shallow', 'sharp', 'shiny', 'shivering', 'shocking', 'short', 'shrill', 'shut', 'shy', 'sick', 'silent', 'silky', 'silly', 'simple', 'simplistic', 'sincere', 'skillful', 'skinny', 'sleepy', 'slim', 'slimy', 'slippery', 'sloppy', 'slow', 'small', 'smart', 'smelly', 'smiling', 'smoggy', 'smooth', 'sneaky', 'snobbish', 'snotty', 'soft', 'soggy', 'solid', 'somber', 'sophisticated', 'sordid', 'sore', 'sour', 'sparkling', 'special', 'spectacular', 'spicy', 'spiffy', 'spiky', 'spiritual', 'spiteful', 'splendid', 'spooky', 'spotless', 'spotted', 'spotty', 'spurious', 'squalid', 'square', 'squealing', 'squeamish', 'staking', 'stale', 'standing', 'statuesque', 'steadfast', 'steady', 'steep', 'stereotyped', 'sticky', 'stiff', 'stimulating', 'stingy', 'stormy', 'straight', 'strange', 'striped', 'strong', 'stupendous', 'sturdy', 'subdued', 'subsequent', 'substantial', 'successful', 'succinct', 'sudden', 'sulky', 'super', 'superb', 'superficial', 'supreme', 'swanky', 'sweet', 'sweltering', 'swift', 'symptomatic', 'synonymous', 'taboo', 'tacit', 'tacky', 'talented', 'tall', 'tame', 'tan', 'tangible', 'tangy', 'tart', 'tasteful', 'tasteless', 'tasty', 'tawdry', 'tearful', 'tedious', 'teeny', 'teeny-tiny', 'telling', 'temporary', 'ten', 'tender', 'tense', 'tenuous', 'terrific', 'tested', 'testy', 'thankful', 'therapeutic', 'thick', 'thin', 'thinkable', 'third', 'thirsty', 'thoughtful', 'thoughtless', 'threatening', 'thundering', 'tidy', 'tight', 'tightfisted', 'tiny', 'tired', 'tiresome', 'toothsome', 'torpid', 'tough', 'towering', 'tranquil', 'trashy', 'tremendous', 'tricky', 'trite', 'troubled', 'truculent', 'true', 'truthful', 'typical', 'ubiquitous', 'ultra', 'unable', 'unaccountable', 'unadvised', 'unarmed', 'unbecoming', 'unbiased', 'uncovered', 'understood', 'undesirable', 'unequal', 'unequaled', 'uneven', 'unhealthy', 'uninterested', 'unique', 'unkempt', 'unknown', 'unnatural', 'unruly', 'unsightly', 'unsuitable', 'untidy', 'unused', 'unusual', 'unwieldy', 'unwritten', 'upbeat', 'uppity', 'upset', 'uptight', 'used', 'useful', 'useless', 'utopian', 'vacuous', 'vagabond', 'vague', 'valuable', 'various', 'vast', 'vengeful', 'venomous', 'verdant', 'versed', 'victorious', 'vigorous', 'violent', 'violet', 'vivacious', 'voiceless', 'volatile', 'voracious', 'vulgar', 'wacky', 'waggish', 'waiting', 'wakeful', 'wandering', 'wanting', 'warlike', 'warm', 'wary', 'wasteful', 'watery', 'weak', 'wealthy', 'weary', 'well-groomed', 'well-made', 'well-off', 'well-to-do', 'wet', 'whimsical', 'whispering', 'white', 'whole', 'wholesale', 'wicked', 'wide', 'wide-eyed', 'wiggly', 'wild', 'willing', 'windy', 'wiry', 'wise', 'wistful', 'witty', 'woebegone', 'womanly', 'wonderful', 'wooden', 'woozy', 'workable', 'worried', 'worthless', 'wrathful', 'wretched', 'wrong', 'wry', 'yellow', 'yielding', 'young', 'youthful', 'yummy', 'zany', 'zealous', 'zesty', 'zippy', 'zonked'];
+
+  var adjective = adjectives[getRandomInt(0, adjectives.length + 1)]
+  var animal = animals[getRandomInt(0, animals.length + 1)]
+	var name = capFirst(adjective) + ' ' + capFirst(animal);
+  var mail = "mailto:" + adjective + animal + "@" + "example.com"
+	return {"name": name, "email": mail};
+
+}
diff --git a/src/main/webapp/static/js/paella/player/resources/deps/xapiwrapper.min.js b/src/main/webapp/static/js/paella/player/resources/deps/xapiwrapper.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..f55aa30d2bf8b2b6afa66ce792a3b34c3e4e6c4d
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/deps/xapiwrapper.min.js
@@ -0,0 +1,3 @@
+/*! xAPIWrapper v 1.10.1 | Built on 2017-07-27 16:08:46+0100 */
+function toBase64(a){return CryptoJS&&CryptoJS.enc.Base64?CryptoJS.enc.Base64.stringify(CryptoJS.enc.Latin1.parse(a)):Base64.encode(a)}function toSHA1(a){return CryptoJS&&CryptoJS.SHA1?CryptoJS.SHA1(a).toString():Crypto.util.bytesToHex(Crypto.SHA1(a,{asBytes:!0}))}function toSHA256(a){return CryptoJS&&CryptoJS.SHA256?CryptoJS.SHA256(a).toString():void 0}function isDate(a){if("[object Date]"===Object.prototype.toString.call(a))var b=a;else var b=new Date(a);return"[object Date]"===Object.prototype.toString.call(b)?isNaN(b.valueOf())?(ADL.XAPIWrapper.log("Invalid date String passed"),null):b:(ADL.XAPIWrapper.log("Invalid date object"),null)}var CryptoJS=CryptoJS||function(a,b){var c={},d=c.lib={},e=d.Base=function(){function a(){}return{extend:function(b){a.prototype=this;var c=new a;return b&&c.mixIn(b),c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)}),c.init.prototype=c,c.$super=this,c},create:function(){var a=this.extend();return a.init.apply(a,arguments),a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),f=d.WordArray=e.extend({init:function(a,c){a=this.words=a||[],c!=b?this.sigBytes=c:this.sigBytes=4*a.length},toString:function(a){return(a||h).stringify(this)},concat:function(a){var b=this.words,c=a.words,d=this.sigBytes,e=a.sigBytes;if(this.clamp(),d%4)for(var f=0;e>f;f++){var g=c[f>>>2]>>>24-f%4*8&255;b[d+f>>>2]|=g<<24-(d+f)%4*8}else if(c.length>65535)for(var f=0;e>f;f+=4)b[d+f>>>2]=c[f>>>2];else b.push.apply(b,c);return this.sigBytes+=e,this},clamp:function(){var b=this.words,c=this.sigBytes;b[c>>>2]&=4294967295<<32-c%4*8,b.length=a.ceil(c/4)},clone:function(){var a=e.clone.call(this);return a.words=this.words.slice(0),a},random:function(b){for(var c=[],d=0;b>d;d+=4)c.push(4294967296*a.random()|0);return new f.init(c,b)}}),g=c.enc={},h=g.Hex={stringify:function(a){for(var b=a.words,c=a.sigBytes,d=[],e=0;c>e;e++){var f=b[e>>>2]>>>24-e%4*8&255;d.push((f>>>4).toString(16)),d.push((15&f).toString(16))}return d.join("")},parse:function(a){for(var b=a.length,c=[],d=0;b>d;d+=2)c[d>>>3]|=parseInt(a.substr(d,2),16)<<24-d%8*4;return new f.init(c,b/2)}},i=g.Latin1={stringify:function(a){for(var b=a.words,c=a.sigBytes,d=[],e=0;c>e;e++){var f=b[e>>>2]>>>24-e%4*8&255;d.push(String.fromCharCode(f))}return d.join("")},parse:function(a){for(var b=a.length,c=[],d=0;b>d;d++)c[d>>>2]|=(255&a.charCodeAt(d))<<24-d%4*8;return new f.init(c,b)}},j=g.Utf8={stringify:function(a){try{return decodeURIComponent(escape(i.stringify(a)))}catch(b){throw new Error("Malformed UTF-8 data")}},parse:function(a){return i.parse(unescape(encodeURIComponent(a)))}},k=(g.Base64={stringify:function(a){var b=a.words,c=a.sigBytes,d=this._map;a.clamp();for(var e=[],f=0;c>f;f+=3)for(var g=b[f>>>2]>>>24-f%4*8&255,h=b[f+1>>>2]>>>24-(f+1)%4*8&255,i=b[f+2>>>2]>>>24-(f+2)%4*8&255,j=g<<16|h<<8|i,k=0;4>k&&c>f+.75*k;k++)e.push(d.charAt(j>>>6*(3-k)&63));var l=d.charAt(64);if(l)for(;e.length%4;)e.push(l);return e.join("")},parse:function(a){var b=a.length,c=this._map,d=c.charAt(64);if(d){var e=a.indexOf(d);-1!=e&&(b=e)}for(var g=[],h=0,i=0;b>i;i++)if(i%4){var j=c.indexOf(a.charAt(i-1))<<i%4*2,k=c.indexOf(a.charAt(i))>>>6-i%4*2;g[h>>>2]|=(j|k)<<24-h%4*8,h++}return f.create(g,h)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},d.BufferedBlockAlgorithm=e.extend({reset:function(){this._data=new f.init,this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=j.parse(a)),this._data.concat(a),this._nDataBytes+=a.sigBytes},_process:function(b){var c=this._data,d=c.words,e=c.sigBytes,g=this.blockSize,h=4*g,i=e/h;i=b?a.ceil(i):a.max((0|i)-this._minBufferSize,0);var j=i*g,k=a.min(4*j,e);if(j){for(var l=0;j>l;l+=g)this._doProcessBlock(d,l);var m=d.splice(0,j);c.sigBytes-=k}return new f.init(m,k)},clone:function(){var a=e.clone.call(this);return a._data=this._data.clone(),a},_minBufferSize:0})),l=d.Hasher=k.extend({cfg:e.extend(),init:function(a){this.cfg=this.cfg.extend(a),this.reset()},reset:function(){k.reset.call(this),this._doReset()},update:function(a){return this._append(a),this._process(),this},finalize:function(a){a&&this._append(a);var b=this._doFinalize();return b},blockSize:16,_createHelper:function(a){return function(b,c){return new a.init(c).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return new m.HMAC.init(a,c).finalize(b)}}}),m=c.algo={},n=[],o=m.SHA1=l.extend({_doReset:function(){this._hash=new f.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(a,b){for(var c=this._hash.words,d=c[0],e=c[1],f=c[2],g=c[3],h=c[4],i=0;80>i;i++){if(16>i)n[i]=0|a[b+i];else{var j=n[i-3]^n[i-8]^n[i-14]^n[i-16];n[i]=j<<1|j>>>31}var k=(d<<5|d>>>27)+h+n[i];k+=20>i?(e&f|~e&g)+1518500249:40>i?(e^f^g)+1859775393:60>i?(e&f|e&g|f&g)-1894007588:(e^f^g)-899497514,h=g,g=f,f=e<<30|e>>>2,e=d,d=k}c[0]=c[0]+d|0,c[1]=c[1]+e|0,c[2]=c[2]+f|0,c[3]=c[3]+g|0,c[4]=c[4]+h|0},_doFinalize:function(){var b=this._data,c=b.words,d=8*this._nDataBytes,e=8*b.sigBytes;return c[e>>>5]|=128<<24-e%32,c[(e+64>>>9<<4)+14]=a.floor(d/4294967296),c[(e+64>>>9<<4)+15]=d,b.sigBytes=4*c.length,this._process(),this._hash},clone:function(){var a=l.clone.call(this);return a._hash=this._hash.clone(),a}});return c.SHA1=l._createHelper(o),c.HmacSHA1=l._createHmacHelper(o),c}(Math),CryptoJS=CryptoJS||function(a,b){var c={},d=c.lib={},e=function(){},f=d.Base={extend:function(a){e.prototype=this;var b=new e;return a&&b.mixIn(a),b.hasOwnProperty("init")||(b.init=function(){b.$super.init.apply(this,arguments)}),b.init.prototype=b,b.$super=this,b},create:function(){var a=this.extend();return a.init.apply(a,arguments),a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},g=d.WordArray=f.extend({init:function(a,c){a=this.words=a||[],this.sigBytes=c!=b?c:4*a.length},toString:function(a){return(a||i).stringify(this)},concat:function(a){var b=this.words,c=a.words,d=this.sigBytes;if(a=a.sigBytes,this.clamp(),d%4)for(var e=0;a>e;e++)b[d+e>>>2]|=(c[e>>>2]>>>24-8*(e%4)&255)<<24-8*((d+e)%4);else if(65535<c.length)for(e=0;a>e;e+=4)b[d+e>>>2]=c[e>>>2];else b.push.apply(b,c);return this.sigBytes+=a,this},clamp:function(){var b=this.words,c=this.sigBytes;b[c>>>2]&=4294967295<<32-8*(c%4),b.length=a.ceil(c/4)},clone:function(){var a=f.clone.call(this);return a.words=this.words.slice(0),a},random:function(b){for(var c=[],d=0;b>d;d+=4)c.push(4294967296*a.random()|0);return new g.init(c,b)}}),h=c.enc={},i=h.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],d=0;a>d;d++){var e=b[d>>>2]>>>24-8*(d%4)&255;c.push((e>>>4).toString(16)),c.push((15&e).toString(16))}return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;b>d;d+=2)c[d>>>3]|=parseInt(a.substr(d,2),16)<<24-4*(d%8);return new g.init(c,b/2)}},j=h.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],d=0;a>d;d++)c.push(String.fromCharCode(b[d>>>2]>>>24-8*(d%4)&255));return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;b>d;d++)c[d>>>2]|=(255&a.charCodeAt(d))<<24-8*(d%4);return new g.init(c,b)}},k=h.Utf8={stringify:function(a){try{return decodeURIComponent(escape(j.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data")}},parse:function(a){return j.parse(unescape(encodeURIComponent(a)))}},l=d.BufferedBlockAlgorithm=f.extend({reset:function(){this._data=new g.init,this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=k.parse(a)),this._data.concat(a),this._nDataBytes+=a.sigBytes},_process:function(b){var c=this._data,d=c.words,e=c.sigBytes,f=this.blockSize,h=e/(4*f),h=b?a.ceil(h):a.max((0|h)-this._minBufferSize,0);if(b=h*f,e=a.min(4*b,e),b){for(var i=0;b>i;i+=f)this._doProcessBlock(d,i);i=d.splice(0,b),c.sigBytes-=e}return new g.init(i,e)},clone:function(){var a=f.clone.call(this);return a._data=this._data.clone(),a},_minBufferSize:0});d.Hasher=l.extend({cfg:f.extend(),init:function(a){this.cfg=this.cfg.extend(a),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(a){return this._append(a),this._process(),this},finalize:function(a){return a&&this._append(a),this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,c){return new a.init(c).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return new m.HMAC.init(a,c).finalize(b)}}});var m=c.algo={};return c}(Math);!function(a){for(var b=CryptoJS,c=b.lib,d=c.WordArray,e=c.Hasher,c=b.algo,f=[],g=[],h=function(a){return 4294967296*(a-(0|a))|0},i=2,j=0;64>j;){var k;a:{k=i;for(var l=a.sqrt(k),m=2;l>=m;m++)if(!(k%m)){k=!1;break a}k=!0}k&&(8>j&&(f[j]=h(a.pow(i,.5))),g[j]=h(a.pow(i,1/3)),j++),i++}var n=[],c=c.SHA256=e.extend({_doReset:function(){this._hash=new d.init(f.slice(0))},_doProcessBlock:function(a,b){for(var c=this._hash.words,d=c[0],e=c[1],f=c[2],h=c[3],i=c[4],j=c[5],k=c[6],l=c[7],m=0;64>m;m++){if(16>m)n[m]=0|a[b+m];else{var o=n[m-15],p=n[m-2];n[m]=((o<<25|o>>>7)^(o<<14|o>>>18)^o>>>3)+n[m-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+n[m-16]}o=l+((i<<26|i>>>6)^(i<<21|i>>>11)^(i<<7|i>>>25))+(i&j^~i&k)+g[m]+n[m],p=((d<<30|d>>>2)^(d<<19|d>>>13)^(d<<10|d>>>22))+(d&e^d&f^e&f),l=k,k=j,j=i,i=h+o|0,h=f,f=e,e=d,d=o+p|0}c[0]=c[0]+d|0,c[1]=c[1]+e|0,c[2]=c[2]+f|0,c[3]=c[3]+h|0,c[4]=c[4]+i|0,c[5]=c[5]+j|0,c[6]=c[6]+k|0,c[7]=c[7]+l|0},_doFinalize:function(){var b=this._data,c=b.words,d=8*this._nDataBytes,e=8*b.sigBytes;return c[e>>>5]|=128<<24-e%32,c[(e+64>>>9<<4)+14]=a.floor(d/4294967296),c[(e+64>>>9<<4)+15]=d,b.sigBytes=4*c.length,this._process(),this._hash},clone:function(){var a=e.clone.call(this);return a._hash=this._hash.clone(),a}});b.SHA256=e._createHelper(c),b.HmacSHA256=e._createHmacHelper(c)}(Math),function(){var a=CryptoJS,b=a.enc.Utf8;a.algo.HMAC=a.lib.Base.extend({init:function(a,c){a=this._hasher=new a.init,"string"==typeof c&&(c=b.parse(c));var d=a.blockSize,e=4*d;c.sigBytes>e&&(c=a.finalize(c)),c.clamp();for(var f=this._oKey=c.clone(),g=this._iKey=c.clone(),h=f.words,i=g.words,j=0;d>j;j++)h[j]^=1549556828,i[j]^=909522486;f.sigBytes=g.sigBytes=e,this.reset()},reset:function(){var a=this._hasher;a.reset(),a.update(this._iKey)},update:function(a){return this._hasher.update(a),this},finalize:function(a){var b=this._hasher;return a=b.finalize(a),b.reset(),b.finalize(this._oKey.clone().concat(a))}})}(),function(a){a.activityTypes={assessment:"http://adlnet.gov/expapi/activities/assessment",attempt:"http://adlnet.gov/expapi/activities/attempt",course:"http://adlnet.gov/expapi/activities/course",file:"http://adlnet.gov/expapi/activities/file",interaction:"http://adlnet.gov/expapi/activities/interaction",lesson:"http://adlnet.gov/expapi/activities/lesson",link:"http://adlnet.gov/expapi/activities/link",media:"http://adlnet.gov/expapi/activities/media",meeting:"http://adlnet.gov/expapi/activities/meeting",module:"http://adlnet.gov/expapi/activities/module",objective:"http://adlnet.gov/expapi/activities/objective",performance:"http://adlnet.gov/expapi/activities/performance",profile:"http://adlnet.gov/expapi/activities/profile",question:"http://adlnet.gov/expapi/activities/question",simulation:"http://adlnet.gov/expapi/activities/simulation"}}(window.ADL=window.ADL||{}),function(a){a.verbs={abandoned:{id:"https://w3id.org/xapi/adl/verbs/abandoned",display:{"en-US":"abandoned"}},answered:{id:"http://adlnet.gov/expapi/verbs/answered",display:{"de-DE":"beantwortete","en-US":"answered","fr-FR":"a répondu","es-ES":"contestó"}},asked:{id:"http://adlnet.gov/expapi/verbs/asked",display:{"de-DE":"fragte","en-US":"asked","fr-FR":"a demandé","es-ES":"preguntó"}},attempted:{id:"http://adlnet.gov/expapi/verbs/attempted",display:{"de-DE":"versuchte","en-US":"attempted","fr-FR":"a essayé","es-ES":"intentó"}},attended:{id:"http://adlnet.gov/expapi/verbs/attended",display:{"de-DE":"nahm teil an","en-US":"attended","fr-FR":"a suivi","es-ES":"asistió"}},commented:{id:"http://adlnet.gov/expapi/verbs/commented",display:{"de-DE":"kommentierte","en-US":"commented","fr-FR":"a commenté","es-ES":"comentó"}},completed:{id:"http://adlnet.gov/expapi/verbs/completed",display:{"de-DE":"beendete","en-US":"completed","fr-FR":"a terminé","es-ES":"completó"}},exited:{id:"http://adlnet.gov/expapi/verbs/exited",display:{"de-DE":"verließ","en-US":"exited","fr-FR":"a quitté","es-ES":"salió"}},experienced:{id:"http://adlnet.gov/expapi/verbs/experienced",display:{"de-DE":"erlebte","en-US":"experienced","fr-FR":"a éprouvé","es-ES":"experimentó"}},failed:{id:"http://adlnet.gov/expapi/verbs/failed",display:{"de-DE":"verfehlte","en-US":"failed","fr-FR":"a échoué","es-ES":"fracasó"}},imported:{id:"http://adlnet.gov/expapi/verbs/imported",display:{"de-DE":"importierte","en-US":"imported","fr-FR":"a importé","es-ES":"importó"}},initialized:{id:"http://adlnet.gov/expapi/verbs/initialized",display:{"de-DE":"initialisierte","en-US":"initialized","fr-FR":"a initialisé","es-ES":"inicializó"}},interacted:{id:"http://adlnet.gov/expapi/verbs/interacted",display:{"de-DE":"interagierte","en-US":"interacted","fr-FR":"a interagi","es-ES":"interactuó"}},launched:{id:"http://adlnet.gov/expapi/verbs/launched",display:{"de-DE":"startete","en-US":"launched","fr-FR":"a lancé","es-ES":"lanzó"}},mastered:{id:"http://adlnet.gov/expapi/verbs/mastered",display:{"de-DE":"meisterte","en-US":"mastered","fr-FR":"a maîtrisé","es-ES":"dominó"}},passed:{id:"http://adlnet.gov/expapi/verbs/passed",display:{"de-DE":"bestand","en-US":"passed","fr-FR":"a réussi","es-ES":"aprobó"}},preferred:{id:"http://adlnet.gov/expapi/verbs/preferred",display:{"de-DE":"bevorzugte","en-US":"preferred","fr-FR":"a préféré","es-ES":"prefirió"}},progressed:{id:"http://adlnet.gov/expapi/verbs/progressed",display:{"de-DE":"machte Fortschritt mit","en-US":"progressed","fr-FR":"a progressé","es-ES":"progresó"}},registered:{id:"http://adlnet.gov/expapi/verbs/registered",display:{"de-DE":"registrierte","en-US":"registered","fr-FR":"a enregistré","es-ES":"registró"}},responded:{id:"http://adlnet.gov/expapi/verbs/responded",display:{"de-DE":"reagierte","en-US":"responded","fr-FR":"a répondu","es-ES":"respondió"}},resumed:{id:"http://adlnet.gov/expapi/verbs/resumed",display:{"de-DE":"setzte fort","en-US":"resumed","fr-FR":"a repris","es-ES":"continuó"}},satisfied:{id:"https://w3id.org/xapi/adl/verbs/satisfied",display:{"en-US":"satisfied"}},scored:{id:"http://adlnet.gov/expapi/verbs/scored",display:{"de-DE":"erreichte","en-US":"scored","fr-FR":"a marqué","es-ES":"anotó"}},shared:{id:"http://adlnet.gov/expapi/verbs/shared",display:{"de-DE":"teilte","en-US":"shared","fr-FR":"a partagé","es-ES":"compartió"}},suspended:{id:"http://adlnet.gov/expapi/verbs/suspended",display:{"de-DE":"pausierte","en-US":"suspended","fr-FR":"a suspendu","es-ES":"aplazó"}},terminated:{id:"http://adlnet.gov/expapi/verbs/terminated",display:{"de-DE":"beendete","en-US":"terminated","fr-FR":"a terminé","es-ES":"terminó"}},voided:{id:"http://adlnet.gov/expapi/verbs/voided",display:{"de-DE":"entwertete","en-US":"voided","fr-FR":"a annulé","es-ES":"anuló"}},waived:{id:"https://w3id.org/xapi/adl/verbs/waived",display:{"en-US":"waived"}}}}(window.ADL=window.ADL||{}),Date.prototype.toISOString||!function(){function a(a){var b=String(a);return 1===b.length&&(b="0"+b),b}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}}(),function(a){function b(){try{return void 0!=this.lrs.endpoint&&""!=this.lrs.endpoint}catch(a){return!1}}function c(a){if(!c.debug)return!1;try{return console.log(a),!0}catch(b){return!1}}function d(a,b){for(var e in b){prop=b[e],c(e+" : "+prop);try{b[e].constructor==Object?a[e]=d(a[e],b[e]):(void 0==a&&(a=new Object),a[e]=b[e])}catch(f){void 0==a&&(a=new Object),a[e]=b[e]}}return a}function e(a){var b,c,e=["endpoint","auth","actor","registration","activity_id","grouping","activity_platform"],g=new Object;if(b=f(),void 0!==b&&0!==Object.keys(b).length){for(var h=0;h<e.length;h++)c=e[h],b[c]&&(g[c]=b[c],delete b[c]);0!==Object.keys(b).length&&(g.extended=b),g=d(a,g)}else g=a;return g}function f(){var a,b,c,d,e;for(a=window.location.search.substr(1),b=a.split("&"),e={},d=0;d<b.length;d++)c=b[d].split("="),2===c.length&&c[0]&&(e[c[0]]=decodeURIComponent(c[1]));return e}function g(){var b=new XMLHttpRequest,c=window.location+"?forcenocache="+a.ruuid();b.open("GET",c,!1),b.send(null)}function h(a,b,c,d){var e=b,f=new Array,g=e.indexOf("?");if(g>0&&(f.push(e.substr(g+1)),e=e.substr(0,g)),e=e+"?method="+a,null!==c)for(var h in c)f.push(h+"="+encodeURIComponent(c[h]));return null!==d&&f.push("content="+encodeURIComponent(d)),{method:"POST",url:e,headers:{},data:f.join("&")}}c.debug=!1;var i=function(){var a={};a.endpoint="http://localhost:8000/xapi/";try{a.auth="Basic "+toBase64("tom:1234")}catch(b){c("Exception in Config trying to encode auth: "+b)}return a}();XAPIWrapper=function(c,f){function g(b){var c=document.createElement("a");return c.href=b,c.protocol&&c.host?c.protocol+"//"+c.host:void a.XAPIWrapper.log("Couldn't create base url from endpoint: "+this.lrs.endpoint)}function h(a,b,c){a.auth="Basic "+toBase64(b+":"+c)}this.lrs=e(c||{}),this.lrs.user&&this.lrs.password&&h(this.lrs,this.lrs.user,this.lrs.password),this.base=g(this.lrs.endpoint),this.withCredentials=!1,this.withCredentials=c&&c.withCredentials,this.strictCallbacks=!1,this.strictCallbacks=c&&c.strictCallbacks,f&&b.call(this)&&window.ADL.XHR_request(this.lrs,this.lrs.endpoint+"about","GET",null,null,function(b){if(200==b.status)try{var c=JSON.parse(b.response),d=!1;for(var e in c.version)if(c.version[e]==a.XAPIWrapper.xapiVersion){d=!0;break}d||a.XAPIWrapper.log("The lrs version ["+c.version+"] does not match this wrapper's XAPI version ["+a.XAPIWrapper.xapiVersion+"]")}catch(f){a.XAPIWrapper.log("The response was not an about object")}else a.XAPIWrapper.log("The request to get information about the LRS failed: "+b)},null,!1,null,this.withCredentials,!1),this.searchParams=function(){var a={format:"exact"};return a},this.hash=function(b){if(!b)return null;try{return toSHA1(b)}catch(c){return a.XAPIWrapper.log("Error trying to hash -- "+c),null}},this.changeConfig=function(b){try{a.XAPIWrapper.log("updating lrs object with new configuration"),this.lrs=d(this.lrs,b),b.user&&b.password&&this.updateAuth(this.lrs,b.user,b.password),this.base=g(this.lrs.endpoint),this.withCredentials=b.withCredentials,this.strictCallbacks=b.strictCallbacks}catch(c){a.XAPIWrapper.log("error while changing configuration -- "+c)}},this.updateAuth=h},XAPIWrapper.prototype.xapiVersion="1.0.1",XAPIWrapper.prototype.prepareStatement=function(a){void 0===a.actor?a.actor=JSON.parse(this.lrs.actor):"string"==typeof a.actor&&(a.actor=JSON.parse(a.actor)),(this.lrs.grouping||this.lrs.registration||this.lrs.activity_platform)&&(a.context||(a.context={})),this.lrs.grouping&&(a.context.contextActivities||(a.context.contextActivities={}),a.context.contextActivities.grouping=[{id:this.lrs.grouping}]),this.lrs.registration&&(a.context.registration=this.lrs.registration),this.lrs.activity_platform&&(a.context.platform=this.lrs.activity_platform)},XAPIWrapper.prototype.testConfig=b,XAPIWrapper.prototype.log=c,XAPIWrapper.prototype.sendStatement=function(b,c,d){if(this.testConfig()){this.prepareStatement(b);var e;b.id?e=b.id:(e=a.ruuid(),b.id=e);var f=JSON.stringify(b),g=null;d&&d.length>0&&(g={},f=this.buildMultipartPost(b,d,g));var h=a.XHR_request(this.lrs,this.lrs.endpoint+"statements","POST",f,this.lrs.auth,c,{id:e},null,g,this.withCredentials,this.strictCallbacks);if(!c)return{xhr:h,id:e}}},XAPIWrapper.prototype.buildMultipartPost=function(a,b,c){a.attachments=[];for(var d=0;d<b.length;d++)"signature"==b[d].type&&(b[d].type={usageType:"http://adlnet.gov/expapi/attachments/signature",display:{"en-US":"A JWT signature"},description:{"en-US":"A signature proving the statement was not modified"},contentType:"application/octet-stream"}),b[d].type.length=b[d].value.length,b[d].type.sha2=toSHA256(b[d].value),a.attachments.push(b[d].type);var e="",f="\r\n",g=(Math.random()+" ").substring(2,10)+(Math.random()+" ").substring(2,10);c["Content-Type"]="multipart/mixed; boundary="+g,e+=f+"--"+g+f+"Content-Type:application/json"+f+'Content-Disposition: form-data; name="statement"'+f+f,e+=JSON.stringify(a);for(var d in b)e+=f+"--"+g+f+"X-Experience-API-Hash:"+b[d].type.sha2+f+"Content-Type:application/octet-stream"+f+"Content-Transfer-Encoding: binary"+f+f,e+=b[d].value;return e+=f+"--"+g+"--"+f},XAPIWrapper.prototype.sendStatements=function(b,c){if(this.testConfig()){for(var d in b)this.prepareStatement(b[d]);var e=a.XHR_request(this.lrs,this.lrs.endpoint+"statements","POST",JSON.stringify(b),this.lrs.auth,c,null,!1,null,this.withCredentials,this.strictCallbacks);if(!c)return e}},XAPIWrapper.prototype.getStatements=function(b,c,d){if(this.testConfig()){var e=this.lrs.endpoint+"statements";if(c)e=this.base+c;else{var f=new Array;for(s in b)if("until"==s||"since"==s){var g=new Date(b[s]);f.push(s+"="+encodeURIComponent(g.toISOString()))}else f.push(s+"="+encodeURIComponent(b[s]));f.length>0&&(e=e+"?"+f.join("&"))}var h=a.XHR_request(this.lrs,e,"GET",null,this.lrs.auth,d,null,!1,null,this.withCredentials,this.strictCallbacks);if(void 0===h||404==h.status)return null;try{return JSON.parse(h.response)}catch(i){return h.response}}},XAPIWrapper.prototype.getActivities=function(b,c){if(this.testConfig()){var d=this.lrs.endpoint+"activities?activityId=<activityid>";d=d.replace("<activityid>",encodeURIComponent(b));var e=a.XHR_request(this.lrs,d,"GET",null,this.lrs.auth,c,null,!0,null,this.withCredentials,this.strictCallbacks);if(void 0===e||404==e.status)return null;try{return JSON.parse(e.response)}catch(f){return e.response}}},XAPIWrapper.prototype.sendState=function(b,d,e,f,g,h,i,j){if(this.testConfig()){var k=this.lrs.endpoint+"activities/state?activityId=<activity ID>&agent=<agent>&stateId=<stateid>";k=k.replace("<activity ID>",encodeURIComponent(b)),k=k.replace("<agent>",encodeURIComponent(JSON.stringify(d))),k=k.replace("<stateid>",encodeURIComponent(e)),f&&(k+="&registration="+encodeURIComponent(f));var l=null;h&&i?c("Can't have both If-Match and If-None-Match"):h?l={"If-Match":a.formatHash(h)}:i&&(l={"If-None-Match":a.formatHash(i)});var m="PUT";if(!g)return this.log("No activity state was included."),!1;g instanceof Array?(g=JSON.stringify(g),l=l||{},l["Content-Type"]="application/json"):g instanceof Object?(g=JSON.stringify(g),l=l||{},l["Content-Type"]="application/json",m="POST"):(l=l||{},l["Content-Type"]="application/octet-stream"),a.XHR_request(this.lrs,k,m,g,this.lrs.auth,j,null,null,l,this.withCredentials,this.strictCallbacks)}},XAPIWrapper.prototype.getState=function(b,c,d,e,f,g){if(this.testConfig()){var h=this.lrs.endpoint+"activities/state?activityId=<activity ID>&agent=<agent>";h=h.replace("<activity ID>",encodeURIComponent(b)),h=h.replace("<agent>",encodeURIComponent(JSON.stringify(c))),d&&(h+="&stateId="+encodeURIComponent(d)),e&&(h+="&registration="+encodeURIComponent(e)),f&&(f=isDate(f),null!=f&&(h+="&since="+encodeURIComponent(f.toISOString())));var i=a.XHR_request(this.lrs,h,"GET",null,this.lrs.auth,g,null,!0,null,this.withCredentials,this.strictCallbacks);if(void 0===i||404==i.status)return null;try{return JSON.parse(i.response)}catch(j){return i.response}}},XAPIWrapper.prototype.deleteState=function(b,d,e,f,g,h,i){if(this.testConfig()){var j=this.lrs.endpoint+"activities/state?activityId=<activity ID>&agent=<agent>&stateId=<stateid>";j=j.replace("<activity ID>",encodeURIComponent(b)),j=j.replace("<agent>",encodeURIComponent(JSON.stringify(d))),j=j.replace("<stateid>",encodeURIComponent(e)),f&&(j+="&registration="+encodeURIComponent(f));var k=null;g&&h?c("Can't have both If-Match and If-None-Match"):g?k={"If-Match":a.formatHash(g)}:h&&(k={"If-None-Match":a.formatHash(h)});var l=a.XHR_request(this.lrs,j,"DELETE",null,this.lrs.auth,i,null,!1,k,this.withCredentials,this.strictCallbacks);if(void 0===l||404==l.status)return null;try{return JSON.parse(l.response)}catch(m){return l}}},XAPIWrapper.prototype.sendActivityProfile=function(b,d,e,f,g,h){if(this.testConfig()){var i=this.lrs.endpoint+"activities/profile?activityId=<activity ID>&profileId=<profileid>";i=i.replace("<activity ID>",encodeURIComponent(b)),i=i.replace("<profileid>",encodeURIComponent(d));var j=null;f&&g?c("Can't have both If-Match and If-None-Match"):f?j={"If-Match":a.formatHash(f)}:g&&(j={"If-None-Match":a.formatHash(g)});var k="PUT";if(!e)return this.log("No activity profile was included."),!1;e instanceof Array?(e=JSON.stringify(e),j=j||{},j["Content-Type"]="application/json"):e instanceof Object?(e=JSON.stringify(e),j=j||{},j["Content-Type"]="application/json",k="POST"):(j=j||{},j["Content-Type"]="application/octet-stream"),a.XHR_request(this.lrs,i,k,e,this.lrs.auth,h,null,!1,j,this.withCredentials,this.strictCallbacks)}},XAPIWrapper.prototype.getActivityProfile=function(b,c,d,e){if(this.testConfig()){var f=this.lrs.endpoint+"activities/profile?activityId=<activity ID>";f=f.replace("<activity ID>",encodeURIComponent(b)),c&&(f+="&profileId="+encodeURIComponent(c)),d&&(d=isDate(d),null!=d&&(f+="&since="+encodeURIComponent(d.toISOString())));var g=a.XHR_request(this.lrs,f,"GET",null,this.lrs.auth,e,null,!0,null,this.withCredentials,this.strictCallbacks);if(void 0===g||404==g.status)return null;try{return JSON.parse(g.response)}catch(h){return g.response}}},XAPIWrapper.prototype.deleteActivityProfile=function(b,d,e,f,g){if(this.testConfig()){var h=this.lrs.endpoint+"activities/profile?activityId=<activity ID>&profileId=<profileid>";h=h.replace("<activity ID>",encodeURIComponent(b)),h=h.replace("<profileid>",encodeURIComponent(d));var i=null;e&&f?c("Can't have both If-Match and If-None-Match"):e?i={"If-Match":a.formatHash(e)}:f&&(i={"If-None-Match":a.formatHash(f)});var j=a.XHR_request(this.lrs,h,"DELETE",null,this.lrs.auth,g,null,!1,i,this.withCredentials,this.strictCallbacks);if(void 0===j||404==j.status)return null;try{return JSON.parse(j.response)}catch(k){return j}}},XAPIWrapper.prototype.getAgents=function(b,c){if(this.testConfig()){var d=this.lrs.endpoint+"agents?agent=<agent>";d=d.replace("<agent>",encodeURIComponent(JSON.stringify(b)));var e=a.XHR_request(this.lrs,d,"GET",null,this.lrs.auth,c,null,!0,null,this.withCredentials,this.strictCallbacks);if(void 0===e||404==e.status)return null;try{return JSON.parse(e.response)}catch(f){return e.response}}},XAPIWrapper.prototype.sendAgentProfile=function(b,d,e,f,g,h){if(this.testConfig()){var i=this.lrs.endpoint+"agents/profile?agent=<agent>&profileId=<profileid>";i=i.replace("<agent>",encodeURIComponent(JSON.stringify(b))),i=i.replace("<profileid>",encodeURIComponent(d));var j=null;f&&g?c("Can't have both If-Match and If-None-Match"):f?j={"If-Match":a.formatHash(f)}:g&&(j={"If-None-Match":a.formatHash(g)});var k="PUT";if(!e)return this.log("No agent profile was included."),!1;e instanceof Array?(e=JSON.stringify(e),j=j||{},j["Content-Type"]="application/json"):e instanceof Object?(e=JSON.stringify(e),j=j||{},j["Content-Type"]="application/json",k="POST"):(j=j||{},j["Content-Type"]="application/octet-stream"),a.XHR_request(this.lrs,i,k,e,this.lrs.auth,h,null,!1,j,this.withCredentials,this.strictCallbacks)}},XAPIWrapper.prototype.getAgentProfile=function(b,c,d,e){if(this.testConfig()){var f=this.lrs.endpoint+"agents/profile?agent=<agent>";f=f.replace("<agent>",encodeURIComponent(JSON.stringify(b))),f=f.replace("<profileid>",encodeURIComponent(c)),c&&(f+="&profileId="+encodeURIComponent(c)),d&&(d=isDate(d),null!=d&&(f+="&since="+encodeURIComponent(d.toISOString())));var g=a.XHR_request(this.lrs,f,"GET",null,this.lrs.auth,e,null,!0,null,this.withCredentials,this.strictCallbacks);if(void 0===g||404==g.status)return null;try{return JSON.parse(g.response)}catch(h){return g.response}}},XAPIWrapper.prototype.deleteAgentProfile=function(b,d,e,f,g){if(this.testConfig()){var h=this.lrs.endpoint+"agents/profile?agent=<agent>&profileId=<profileid>";h=h.replace("<agent>",encodeURIComponent(JSON.stringify(b))),h=h.replace("<profileid>",encodeURIComponent(d));var i=null;e&&f?c("Can't have both If-Match and If-None-Match"):e?i={"If-Match":a.formatHash(e)}:f&&(i={"If-None-Match":a.formatHash(f)});var j=a.XHR_request(this.lrs,h,"DELETE",null,this.lrs.auth,g,null,!1,i,this.withCredentials,this.strictCallbacks);if(void 0===j||404==j.status)return null;try{return JSON.parse(j.response)}catch(k){return j}}},a.ruuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})},a.dateFromISOString=function(a){var b="([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T| ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(.([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?",c=a.match(new RegExp(b)),d=0,e=new Date(c[1],0,1);c[3]&&e.setMonth(c[3]-1),c[5]&&e.setDate(c[5]),c[7]&&e.setHours(c[7]),c[8]&&e.setMinutes(c[8]),c[10]&&e.setSeconds(c[10]),c[12]&&e.setMilliseconds(1e3*Number("0."+c[12])),c[14]&&(d=60*Number(c[16])+Number(c[17]),d*="-"==c[15]?1:-1),d-=e.getTimezoneOffset(),time=Number(e)+60*d*1e3;var f=new Date;return f.setTime(Number(time)),f},a.XHR_request=function(b,c,d,e,f,i,j,k,l,m,n){"use strict";function o(){if(u)return s;u=!0;var b=k&&404===p.status;if(!(void 0===p.status||p.status>=200&&p.status<400||b)){var e;try{e="There was a problem communicating with the Learning Record Store. ( "+p.status+" | "+p.response+" )"+c}catch(f){e=f.toString()}return a.XAPIWrapper.log(e),a.xhrRequestOnError(p,d,c,i,j,n),s=p,p}if(!i)return s=p,p;if(j)n?i(null,p,j):i(p,j);else{var g;try{g=JSON.parse(p.responseText)}catch(h){g=p.responseText}n?i(null,p,g):i(p,g)}}var p,q,r,s,t,u=!1,v=!1,w=!1,x=c.toLowerCase().match(/^(.+):\/\/([^:\/]*):?(\d+)?(\/.*)?$/),y=window.location,z={};if(z["Content-Type"]="application/json",z.Authorization=f,z["X-Experience-API-Version"]=a.XAPIWrapper.xapiVersion,null!==l)for(var A in l)z[A]=l[A];v=y.protocol.toLowerCase()!==x[1]||y.hostname.toLowerCase()!==x[2],v||(r=null===x[3]?"http"===x[1]?"80":"443":x[3],v=r===y.port);var B=window.XDomainRequest&&window.XMLHttpRequest&&void 0===(new XMLHttpRequest).responseType;if(v&&void 0!==B&&B!==!1)w=!0,q=h(d,c,z,e),p=new XDomainRequest,p.open(q.method,q.url);else{p=new XMLHttpRequest,p.withCredentials=m,p.open(d,c,null!=i);for(var A in z)p.setRequestHeader(A,z[A])}if(p.onreadystatechange=function(){return 4===p.readyState?o():void 0},p.onload=o,p.onerror=o,p.send(w?q.data:e),!i){if(w)for(t=1e3+new Date;new Date<t&&4!==p.readyState&&!u;)g();return o()}},a.xhrRequestOnError=function(a,b,c,d,e,f){if(d&&f){var g,h=a?a.status:void 0;if(g=h?new Error("Request error: "+a.status):0===h||null===h?new Error("Request error: aborted"):new Error("Reqeust error: unknown"),e)d(g,a,e);else{var i;try{i=JSON.parse(a.responseText)}catch(j){i=a.responseText}d(g,a,i)}}},a.formatHash=function(a){return"*"===a?a:'"'+a+'"'},a.XAPIWrapper=new XAPIWrapper(i,!1)}(window.ADL=window.ADL||{}),function(a){function b(a,c){var d=c.split("."),e=d[0];return c=d.slice(1).join("."),a[e]||(/\[\]$/.test(e)?(e=e.slice(0,-2),a[e]=[]):a[e]={}),c?b(a[e],c):a[e]}var c=function(b,c,j){if(b&&b.actor&&b.verb&&b.object){var k=b;for(var l in k)"actor"!=l&&"verb"!=l&&"object"!=l&&(this[l]=k[l]);b=k.actor,c=k.verb,j=k.object}b?b instanceof d?this.actor=b:"Agent"!==b.objectType&&b.objectType?"Group"===b.objectType&&(this.actor=new e(b)):this.actor=new d(b):this.actor=null,c?c instanceof f?this.verb=c:this.verb=new f(c):this.verb=null,j?"Activity"!==j.objectType&&j.objectType?"Agent"===j.objectType?j instanceof d?this.object=j:this.object=new d(j):"Group"===j.objectType?j instanceof e?this.object=j:this.object=new e(j):"StatementRef"===j.objectType?j instanceof h?this.object=j:this.object=new h(j):"SubStatement"===j.objectType?j instanceof i?this.object=j:this.object=new i(j):this.object=null:j instanceof g?this.object=j:this.object=new g(j):this.object=null,
+this.generateId=function(){this.id=a.ruuid()}};c.prototype.toString=function(){return this.actor.toString()+" "+this.verb.toString()+" "+this.object.toString()},c.prototype.isValid=function(){return this.actor&&this.actor.isValid()&&this.verb&&this.verb.isValid()&&this.object&&this.object.isValid()},c.prototype.generateRegistration=function(){b(this,"context").registration=a.ruuid()},c.prototype.addParentActivity=function(a){b(this,"context.contextActivities.parent[]").push(new g(a))},c.prototype.addGroupingActivity=function(a){b(this,"context.contextActivities.grouping[]").push(new g(a))},c.prototype.addOtherContextActivity=function(a){b(this,"context.contextActivities.other[]").push(new g(a))};var d=function(a,b){if(this.objectType="Agent",this.name=b,a&&(a.mbox||a.mbox_sha1sum||a.openid||a.account))for(var c in a)this[c]=a[c];else/^mailto:/.test(a)?this.mbox=a:/^[0-9a-f]{40}$/i.test(a)?this.mbox_sha1sum=a:/^http[s]?:/.test(a)?this.openid=a:a&&a.homePage&&a.name&&(this.account=a)};d.prototype.toString=function(){return this.name||this.mbox||this.openid||this.mbox_sha1sum||this.account.name},d.prototype.isValid=function(){return this.mbox||this.mbox_sha1sum||this.openid||this.account.homePage&&this.account.name||"Group"===this.objectType&&this.member};var e=function(a,b,c){d.call(this,a,c),this.member=b,this.objectType="Group"};e.prototype=new d;var f=function(a,b){if(a&&a.id)for(var c in a)this[c]=a[c];else this.id=a,b&&("string"==typeof b||b instanceof String?this.display={"en-US":b}:this.display=b)};f.prototype.toString=function(){return this.display&&(this.display["en-US"]||this.display.en)?this.display["en-US"]||this.display.en:this.id},f.prototype.isValid=function(){return this.id};var g=function(a,b,c){if(a&&a.id){var d=a;for(var e in d)this[e]=d[e]}else this.objectType="Activity",this.id=a,(b||c)&&(this.definition={},"string"==typeof b||b instanceof String?this.definition.name={"en-US":b}:b&&(this.definition.name=b),"string"==typeof c||c instanceof String?this.definition.description={"en-US":c}:c&&(this.definition.description=c))};g.prototype.toString=function(){return this.definition&&this.definition.name&&(this.definition.name["en-US"]||this.definition.name.en)?this.definition.name["en-US"]||this.definition.name.en:this.id},g.prototype.isValid=function(){return this.id&&(!this.objectType||"Activity"===this.objectType)};var h=function(a){if(a&&a.id)for(var b in a)this[b]=a[b];else this.objectType="StatementRef",this.id=a};h.prototype.toString=function(){return"statement("+this.id+")"},h.prototype.isValid=function(){return this.id&&this.objectType&&"StatementRef"===this.objectType};var i=function(a,b,d){c.call(this,a,b,d),this.objectType="SubStatement",delete this.id,delete this.stored,delete this.version,delete this.authority};i.prototype=new c,i.prototype.toString=function(){return'"'+i.prototype.prototype.toString.call(this)+'"'},c.Agent=d,c.Group=e,c.Verb=f,c.Activity=g,c.StatementRef=h,c.SubStatement=i,a.XAPIStatement=c}(window.ADL=window.ADL||{}),function(a){var b=a,c=!1;"undefined"!=typeof window&&(b=window.ADL=a.ADL||{},c=!0);var d=function(a){return a.definition&&a.definition.name?b.xapiutil.getLangVal(a.definition.name):void 0},e=function(a){if("SubStatement"===a.objectType&&"SubStatement"!==a.object.objectType&&!(a.id||a.stored||a.version||a.authority)){var c=b.xapiutil.getActorId(a.actor)+":"+b.xapiutil.getVerbDisplay(a.verb)+":"+b.xapiutil.getObjectId(a.object);return c}};b.xapiutil={},b.xapiutil.getLang=function(){var a;if("undefined"!=typeof navigator)a=navigator.language||navigator.browserLanguage||navigator.systemLanguage||navigator.userLanguage;else if(process&&process.env){var b=process.env.LANG;a=b.slice(0,b.indexOf(".")),a=a.replace(/_/,"-")}return a||"en-US"},b.xapiutil.getLangVal=function(a){if(a){var c=Object.keys(a);if(0==c.length)return void 0;var d,e=b.xapiutil.getLang(),f=!1;do a[e]?(d=a[e],f=!0):e.indexOf("-")&&(e=e.substring(0,e.lastIndexOf("-")));while(!f&&""!==e);return d}},b.xapiutil.getMoreStatements=function(a,d,e){if(!c)throw new Error("Node not supported.");var f=[];b.XAPIWrapper.getStatements(e,null,function g(c){if(c&&c.response){var h=JSON.parse(c.response);h.statements&&(f=f.concat(h.statements),a--<=0?d(f):h.more&&""!==h.more?b.XAPIWrapper.getStatements(e,h.more,g):""===h.more&&d(f))}})},b.xapiutil.getActorId=function(a){return a.mbox||a.openid||a.mbox_sha1sum||a.account},b.xapiutil.getActorIdString=function(a){var b=a.mbox||a.openid||a.mbox_sha1sum;return b||(b=a.account?a.account.homePage+":"+a.account.name:a.member?"Anon Group "+a.member:"unknown"),b},b.xapiutil.getActorDisplay=function(a){return a.name||b.xapiutil.getActorIdString(a)},b.xapiutil.getVerbDisplay=function(a){return a?a.display?b.xapiutil.getLangVal(a.display)||a.id:a.id:void 0},b.xapiutil.getObjectType=function(a){return a.objectType||(a.id?"Activity":"Agent")},b.xapiutil.getObjectId=function(a){if(a.id)return a.id;var c=b.xapiutil.getObjectType(a);return"Agent"===c||"Group"===c?b.xapiutil.getActorId(a):void 0},b.xapiutil.getObjectIdString=function(a){if(!a)return"unknown";if(a.id)return a.id;var c=b.xapiutil.getObjectType(a);return"Agent"===c||"Group"===c?b.xapiutil.getActorIdString(a):"SubStatement"==c?e(a):"unknown"},b.xapiutil.getObjectDisplay=function(a){if(!a)return"unknown";var c=d(a)||a.name||a.id;if(!c){var f=b.xapiutil.getObjectType(a);"Agent"===f||"Group"==f?c=b.xapiutil.getActorDisplay(a):"SubStatement"==f&&(c=e(a))}return c}}(this),function(a){function b(a){for(var b=window.location.search.substring(1),c=b.split("&"),d=0;d<c.length;d++){var e=c[d].split("=");if(decodeURIComponent(e[0])==a)return decodeURIComponent(e[1])}}function c(a){return function(){var b=arguments;window.setTimeout(function(){for(var c=[],d=0;d<b.length;d++)c.push(b[d]);a.apply(window,c)},0)}}function d(){var a=document.body,b=new MutationObserver(function(a){a.forEach(function(a){for(var b in a.addedNodes)if(a.addedNodes[b].constructor==HTMLAnchorElement){var c=a.addedNodes[b];e([c])}})}),c={attributes:!0,childList:!0,subtree:!0};b.observe(a,c)}function e(a){var c=b("xAPILaunchKey"),d=b("xAPILaunchService"),e=b("encrypted"),f="xAPILaunchKey="+c+"&xAPILaunchService="+d;e&&(f+="&encrypted=true");for(var g=0;g<a.length;g++){var h=a[g],i=h.href,j=h.attributes.getNamedItem("courselink");j&&"true"==j.value&&(i=i.indexOf("?")>-1?i+"&"+f:i+"?"+f,h.href=i)}}function f(a,h,i){a=c(a);try{var j=b("xAPILaunchKey"),k=b("xAPILaunchService");b("encrypted");if(f.terminate=function(a){var b=new URL(k);b.pathname+="launch/"+j+"/terminate";var c=new XMLHttpRequest;c.withCredentials=!0,c.crossDomain=!0,c.open("POST",b.toString(),!1),c.setRequestHeader("Content-type","application/json"),c.send(JSON.stringify({code:0,description:a||"User closed content"}))},!j||!k)return a("invalid launch parameters");var l=new URL(k);l.pathname+="launch/"+j;var m=new XMLHttpRequest;m.withCredentials=!0,m.crossDomain=!0,m.onerror=function(b){window.setTimeout(function(){return a(b)})},m.onload=function(b){if(200!==m.status)return m.onerror(m.responseText);var c=JSON.parse(m.responseText),j=c,k={};k.endpoint=j.endpoint,k.actor=j.actor,k.withCredentials=!0,k.strictCallbacks=i||!1,window.onunload=function(){h&&f.terminate("User closed content")};var l=new g.XAPIWrapper.constructor;return l.changeConfig(k),e(document.body.querySelectorAll("a")),d(),a(null,c,l)},m.open("POST",l.toString(),!0),m.send()}catch(n){a(n)}}var g=a;g.launch=f}(window.ADL=window.ADL||{});
diff --git a/src/main/webapp/static/js/paella/player/resources/images/chrome.png b/src/main/webapp/static/js/paella/player/resources/images/chrome.png
new file mode 100644
index 0000000000000000000000000000000000000000..efb2c0e324d2c6d7c10c1fda8c41bff26c3f76a4
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/images/chrome.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/images/error_icon.png b/src/main/webapp/static/js/paella/player/resources/images/error_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..b86cdfa410a7a10bc2dd7916789dbc48ce0c5b31
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/images/error_icon.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/images/explorer.png b/src/main/webapp/static/js/paella/player/resources/images/explorer.png
new file mode 100644
index 0000000000000000000000000000000000000000..245679ddcaf370cd92ec3132ecb9378f7a9679ba
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/images/explorer.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/images/firefox.png b/src/main/webapp/static/js/paella/player/resources/images/firefox.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e6d484b9154ffb865031eacda6110e80058bdc2
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/images/firefox.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/images/paella_icons_dark.png b/src/main/webapp/static/js/paella/player/resources/images/paella_icons_dark.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d4c5b4aad900ca07d660e2bdf9aa5c37ddd470a
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/images/paella_icons_dark.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/images/paella_icons_light.png b/src/main/webapp/static/js/paella/player/resources/images/paella_icons_light.png
new file mode 100644
index 0000000000000000000000000000000000000000..f4e146b64e7a37e48ea1187e4c20d6dd95f522cc
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/images/paella_icons_light.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/images/play.svg b/src/main/webapp/static/js/paella/player/resources/images/play.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a8c06ff68701f720d9c19579c066a3138a80fc82
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/images/play.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 300 300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
+    <rect id="Play" x="0" y="0" width="300" height="300" style="fill:none;"/>
+    <g id="Play1" serif:id="Play">
+        <g transform="matrix(1.21457,0,0,1.21457,-55.8704,-35.2227)">
+            <circle cx="169.5" cy="152.5" r="123.5" style="fill:rgb(128,128,128);"/>
+            <path d="M169.899,29.001L170.298,29.003L170.697,29.006L171.095,29.01L171.493,29.016L171.891,29.023L172.288,29.031L172.686,29.04L173.082,29.051L173.479,29.063L173.875,29.076L174.271,29.091L174.666,29.106L175.062,29.123L175.457,29.141L175.851,29.161L176.246,29.181L176.64,29.203L177.033,29.226L177.426,29.251L177.819,29.276L178.212,29.303L178.604,29.331L178.996,29.36L179.388,29.391L179.779,29.423L180.17,29.455L180.561,29.49L180.951,29.525L181.341,29.561L181.73,29.599L182.12,29.638L182.508,29.678L182.897,29.72L183.285,29.762L183.673,29.806L184.06,29.851L184.447,29.897L184.834,29.944L185.22,29.993L185.606,30.043L185.992,30.094L186.377,30.146L186.762,30.199L187.146,30.254L187.53,30.309L187.914,30.366L188.297,30.424L188.68,30.483L189.063,30.544L189.445,30.605L189.827,30.668L190.208,30.732L190.589,30.797L190.969,30.863L191.35,30.93L191.729,30.999L192.109,31.069L192.488,31.139L192.866,31.211L193.244,31.285L193.622,31.359L194,31.434L194.376,31.511L194.753,31.589L195.129,31.668L195.505,31.748L195.88,31.829L196.255,31.911L196.629,31.995L197.003,32.079L197.377,32.165L197.75,32.252L198.122,32.34L198.495,32.429L198.867,32.519L199.238,32.61L199.609,32.703L199.979,32.796L200.349,32.891L200.719,32.987L201.088,33.084L201.457,33.182L201.825,33.281L202.193,33.381L202.56,33.482L202.927,33.585L203.293,33.688L203.659,33.793L204.025,33.899L204.39,34.006L204.755,34.114L205.119,34.223L205.482,34.333L205.845,34.444L206.208,34.556L206.57,34.67L206.932,34.784L207.293,34.9L207.654,35.016L208.014,35.134L208.374,35.253L208.734,35.373L209.092,35.493L209.451,35.615L209.809,35.738L210.166,35.863L210.523,35.988L210.879,36.114L211.235,36.241L211.59,36.37L211.945,36.499L212.299,36.63L212.653,36.761L213.007,36.894L213.359,37.027L213.712,37.162L214.064,37.298L214.415,37.434L214.766,37.572L215.116,37.711L215.465,37.851L215.815,37.992L216.163,38.134L216.511,38.277L216.859,38.421L217.206,38.566L217.553,38.712L217.898,38.859L218.244,39.007L218.589,39.156L218.933,39.306L219.277,39.457L219.62,39.609L219.963,39.763L220.305,39.917L220.647,40.072L220.988,40.228L221.328,40.385L221.668,40.543L222.008,40.703L222.346,40.863L222.685,41.024L223.022,41.186L223.36,41.349L223.696,41.514L224.032,41.679L224.368,41.845L224.702,42.012L225.037,42.18L225.37,42.349L225.703,42.519L226.036,42.69L226.368,42.862L226.699,43.035L227.03,43.209L227.36,43.384L227.69,43.56L228.019,43.737L228.347,43.915L228.675,44.094L229.002,44.274L229.329,44.454L229.655,44.636L229.98,44.819L230.305,45.002L230.629,45.187L230.953,45.372L231.276,45.559L231.598,45.746L231.92,45.934L232.241,46.124L232.561,46.314L232.881,46.505L233.2,46.697L233.519,46.89L233.837,47.084L234.154,47.279L234.471,47.475L234.787,47.672L235.103,47.869L235.417,48.068L235.732,48.267L236.045,48.468L236.358,48.669L236.67,48.871L236.982,49.074L237.293,49.279L237.603,49.484L237.913,49.689L238.222,49.896L238.53,50.104L238.838,50.313L239.145,50.522L239.451,50.732L239.757,50.944L240.062,51.156L240.366,51.369L240.67,51.583L240.973,51.798L241.275,52.014L241.577,52.23L241.878,52.448L242.178,52.666L242.478,52.885L242.777,53.106L243.075,53.327L243.372,53.548L243.669,53.771L243.965,53.995L244.261,54.219L244.556,54.445L244.85,54.671L245.143,54.898L245.436,55.126L245.728,55.355L246.019,55.585L246.31,55.815L246.6,56.047L246.889,56.279L247.177,56.512L247.465,56.746L247.752,56.981L248.039,57.216L248.324,57.453L248.609,57.69L248.893,57.928L249.177,58.167L249.459,58.407L249.741,58.647L250.022,58.889L250.303,59.131L250.583,59.374L250.862,59.618L251.14,59.863L251.418,60.109L251.695,60.355L251.971,60.602L252.246,60.85L252.52,61.099L252.794,61.349L253.067,61.599L253.34,61.85L253.611,62.103L253.882,62.355L254.152,62.609L254.421,62.864L254.69,63.119L254.958,63.375L255.225,63.632L255.491,63.889L255.756,64.148L256.021,64.407L256.285,64.667L256.548,64.928L256.811,65.189L257.072,65.452L257.333,65.715L257.593,65.979L257.852,66.244L258.111,66.509L258.368,66.775L258.625,67.042L258.881,67.31L259.136,67.579L259.391,67.848L259.645,68.118L259.897,68.389L260.15,68.66L260.401,68.933L260.651,69.206L260.901,69.48L261.15,69.754L261.398,70.029L261.645,70.305L261.891,70.582L262.137,70.86L262.382,71.138L262.626,71.417L262.869,71.697L263.111,71.978L263.353,72.259L263.593,72.541L263.833,72.823L264.072,73.107L264.31,73.391L264.547,73.676L264.784,73.961L265.019,74.248L265.254,74.535L265.488,74.823L265.721,75.111L265.953,75.4L266.185,75.69L266.415,75.981L266.645,76.272L266.874,76.564L267.102,76.857L267.329,77.15L267.555,77.444L267.781,77.739L268.005,78.035L268.229,78.331L268.452,78.628L268.673,78.925L268.894,79.223L269.115,79.522L269.334,79.822L269.552,80.122L269.77,80.423L269.986,80.725L270.202,81.027L270.417,81.33L270.631,81.634L270.844,81.938L271.056,82.243L271.268,82.549L271.478,82.855L271.687,83.162L271.896,83.47L272.104,83.778L272.311,84.087L272.516,84.397L272.721,84.707L272.926,85.018L273.129,85.33L273.331,85.642L273.532,85.955L273.733,86.268L273.932,86.583L274.131,86.897L274.328,87.213L274.525,87.529L274.721,87.846L274.916,88.163L275.11,88.481L275.303,88.8L275.495,89.119L275.686,89.439L275.876,89.759L276.066,90.08L276.254,90.402L276.441,90.724L276.628,91.047L276.813,91.371L276.998,91.695L277.181,92.02L277.364,92.345L277.546,92.671L277.726,92.998L277.906,93.325L278.085,93.653L278.263,93.981L278.44,94.31L278.616,94.64L278.791,94.97L278.965,95.301L279.138,95.632L279.31,95.964L279.481,96.297L279.651,96.63L279.82,96.963L279.988,97.298L280.155,97.632L280.321,97.968L280.486,98.304L280.651,98.64L280.814,98.978L280.976,99.315L281.137,99.654L281.297,99.992L281.457,100.332L281.615,100.672L281.772,101.012L281.928,101.353L282.083,101.695L282.237,102.037L282.391,102.38L282.543,102.723L282.694,103.067L282.844,103.411L282.993,103.756L283.141,104.102L283.288,104.447L283.434,104.794L283.579,105.141L283.723,105.489L283.866,105.837L284.008,106.185L284.149,106.535L284.289,106.884L284.428,107.234L284.566,107.585L284.702,107.936L284.838,108.288L284.973,108.641L285.106,108.993L285.239,109.347L285.37,109.701L285.501,110.055L285.63,110.41L285.759,110.765L285.886,111.121L286.012,111.477L286.137,111.834L286.262,112.191L286.385,112.549L286.507,112.908L286.627,113.266L286.747,113.626L286.866,113.986L286.984,114.346L287.1,114.707L287.216,115.068L287.33,115.43L287.444,115.792L287.556,116.155L287.667,116.518L287.777,116.881L287.886,117.245L287.994,117.61L288.101,117.975L288.207,118.341L288.312,118.707L288.415,119.073L288.518,119.44L288.619,119.807L288.719,120.175L288.818,120.543L288.916,120.912L289.013,121.281L289.109,121.651L289.204,122.021L289.297,122.391L289.39,122.762L289.481,123.133L289.571,123.505L289.66,123.878L289.748,124.25L289.835,124.623L289.921,124.997L290.005,125.371L290.089,125.745L290.171,126.12L290.252,126.495L290.332,126.871L290.411,127.247L290.489,127.624L290.566,128L290.641,128.378L290.715,128.756L290.789,129.134L290.861,129.512L290.931,129.891L291.001,130.271L291.07,130.65L291.137,131.031L291.203,131.411L291.268,131.792L291.332,132.173L291.395,132.555L291.456,132.937L291.517,133.32L291.576,133.703L291.634,134.086L291.691,134.47L291.746,134.854L291.801,135.238L291.854,135.623L291.906,136.008L291.957,136.394L292.007,136.78L292.056,137.166L292.103,137.553L292.149,137.94L292.194,138.327L292.238,138.715L292.28,139.103L292.322,139.492L292.362,139.88L292.401,140.27L292.439,140.659L292.475,141.049L292.51,141.439L292.545,141.83L292.577,142.221L292.609,142.612L292.64,143.004L292.669,143.396L292.697,143.788L292.724,144.181L292.749,144.574L292.774,144.967L292.797,145.36L292.819,145.754L292.839,146.149L292.859,146.543L292.877,146.938L292.894,147.334L292.909,147.729L292.924,148.125L292.937,148.521L292.949,148.918L292.96,149.314L292.969,149.712L292.977,150.109L292.984,150.507L292.99,150.905L292.994,151.303L292.997,151.702L292.999,152.101L293,152.5L292.999,152.899L292.997,153.298L292.994,153.697L292.99,154.095L292.984,154.493L292.977,154.891L292.969,155.288L292.96,155.686L292.949,156.082L292.937,156.479L292.924,156.875L292.909,157.271L292.894,157.666L292.877,158.062L292.859,158.457L292.839,158.851L292.819,159.246L292.797,159.64L292.774,160.033L292.749,160.426L292.724,160.819L292.697,161.212L292.669,161.604L292.64,161.996L292.609,162.388L292.577,162.779L292.545,163.17L292.51,163.561L292.475,163.951L292.439,164.341L292.401,164.73L292.362,165.12L292.322,165.508L292.28,165.897L292.238,166.285L292.194,166.673L292.149,167.06L292.103,167.447L292.056,167.834L292.007,168.22L291.957,168.606L291.906,168.992L291.854,169.377L291.801,169.762L291.746,170.146L291.691,170.53L291.634,170.914L291.576,171.297L291.517,171.68L291.456,172.063L291.395,172.445L291.332,172.827L291.268,173.208L291.203,173.589L291.137,173.969L291.07,174.35L291.001,174.729L290.931,175.109L290.861,175.488L290.789,175.866L290.715,176.244L290.641,176.622L290.566,177L290.489,177.376L290.411,177.753L290.332,178.129L290.252,178.505L290.171,178.88L290.089,179.255L290.005,179.629L289.921,180.003L289.835,180.377L289.748,180.75L289.66,181.122L289.571,181.495L289.481,181.867L289.39,182.238L289.297,182.609L289.204,182.979L289.109,183.349L289.013,183.719L288.916,184.088L288.818,184.457L288.719,184.825L288.619,185.193L288.518,185.56L288.415,185.927L288.312,186.293L288.207,186.659L288.101,187.025L287.994,187.39L287.886,187.755L287.777,188.119L287.667,188.482L287.556,188.845L287.444,189.208L287.33,189.57L287.216,189.932L287.1,190.293L286.984,190.654L286.866,191.014L286.747,191.374L286.627,191.734L286.507,192.092L286.385,192.451L286.262,192.809L286.137,193.166L286.012,193.523L285.886,193.879L285.759,194.235L285.63,194.59L285.501,194.945L285.37,195.299L285.239,195.653L285.106,196.007L284.973,196.359L284.838,196.712L284.702,197.064L284.566,197.415L284.428,197.766L284.289,198.116L284.149,198.465L284.008,198.815L283.866,199.163L283.723,199.511L283.579,199.859L283.434,200.206L283.288,200.553L283.141,200.898L282.993,201.244L282.844,201.589L282.694,201.933L282.543,202.277L282.391,202.62L282.237,202.963L282.083,203.305L281.928,203.647L281.772,203.988L281.615,204.328L281.457,204.668L281.297,205.008L281.137,205.346L280.976,205.685L280.814,206.022L280.651,206.36L280.486,206.696L280.321,207.032L280.155,207.368L279.988,207.702L279.82,208.037L279.651,208.37L279.481,208.703L279.31,209.036L279.138,209.368L278.965,209.699L278.791,210.03L278.616,210.36L278.44,210.69L278.263,211.019L278.085,211.347L277.906,211.675L277.726,212.002L277.546,212.329L277.364,212.655L277.181,212.98L276.998,213.305L276.813,213.629L276.628,213.953L276.441,214.276L276.254,214.598L276.066,214.92L275.876,215.241L275.686,215.561L275.495,215.881L275.303,216.2L275.11,216.519L274.916,216.837L274.721,217.154L274.525,217.471L274.328,217.787L274.131,218.103L273.932,218.417L273.733,218.732L273.532,219.045L273.331,219.358L273.129,219.67L272.926,219.982L272.721,220.293L272.516,220.603L272.311,220.913L272.104,221.222L271.896,221.53L271.687,221.838L271.478,222.145L271.268,222.451L271.056,222.757L270.844,223.062L270.631,223.366L270.417,223.67L270.202,223.973L269.986,224.275L269.77,224.577L269.552,224.878L269.334,225.178L269.115,225.478L268.894,225.777L268.673,226.075L268.452,226.372L268.229,226.669L268.005,226.965L267.781,227.261L267.555,227.556L267.329,227.85L267.102,228.143L266.874,228.436L266.645,228.728L266.415,229.019L266.185,229.31L265.953,229.6L265.721,229.889L265.488,230.177L265.254,230.465L265.019,230.752L264.784,231.039L264.547,231.324L264.31,231.609L264.072,231.893L263.833,232.177L263.593,232.459L263.353,232.741L263.111,233.022L262.869,233.303L262.626,233.583L262.382,233.862L262.137,234.14L261.891,234.418L261.645,234.695L261.398,234.971L261.15,235.246L260.901,235.52L260.651,235.794L260.401,236.067L260.15,236.34L259.897,236.611L259.645,236.882L259.391,237.152L259.136,237.421L258.881,237.69L258.625,237.958L258.368,238.225L258.111,238.491L257.852,238.756L257.593,239.021L257.333,239.285L257.072,239.548L256.811,239.811L256.548,240.072L256.285,240.333L256.021,240.593L255.756,240.852L255.491,241.111L255.225,241.368L254.958,241.625L254.69,241.881L254.421,242.136L254.152,242.391L253.882,242.645L253.611,242.897L253.34,243.15L253.067,243.401L252.794,243.651L252.52,243.901L252.246,244.15L251.971,244.398L251.695,244.645L251.418,244.891L251.14,245.137L250.862,245.382L250.583,245.626L250.303,245.869L250.022,246.111L249.741,246.353L249.459,246.593L249.177,246.833L248.893,247.072L248.609,247.31L248.324,247.547L248.039,247.784L247.752,248.019L247.465,248.254L247.177,248.488L246.889,248.721L246.6,248.953L246.31,249.185L246.019,249.415L245.728,249.645L245.436,249.874L245.143,250.102L244.85,250.329L244.556,250.555L244.261,250.781L243.965,251.005L243.669,251.229L243.372,251.452L243.075,251.673L242.777,251.894L242.478,252.115L242.178,252.334L241.878,252.552L241.577,252.77L241.275,252.986L240.973,253.202L240.67,253.417L240.366,253.631L240.062,253.844L239.757,254.056L239.451,254.268L239.145,254.478L238.838,254.687L238.53,254.896L238.222,255.104L237.913,255.311L237.603,255.516L237.293,255.721L236.982,255.926L236.67,256.129L236.358,256.331L236.045,256.532L235.732,256.733L235.417,256.932L235.103,257.131L234.787,257.328L234.471,257.525L234.154,257.721L233.837,257.916L233.519,258.11L233.2,258.303L232.881,258.495L232.561,258.686L232.241,258.876L231.92,259.066L231.598,259.254L231.276,259.441L230.953,259.628L230.629,259.813L230.305,259.998L229.98,260.181L229.655,260.364L229.329,260.546L229.002,260.726L228.675,260.906L228.347,261.085L228.019,261.263L227.69,261.44L227.36,261.616L227.03,261.791L226.699,261.965L226.368,262.138L226.036,262.31L225.703,262.481L225.37,262.651L225.037,262.82L224.702,262.988L224.368,263.155L224.032,263.321L223.696,263.486L223.36,263.651L223.022,263.814L222.685,263.976L222.346,264.137L222.008,264.297L221.668,264.457L221.328,264.615L220.988,264.772L220.647,264.928L220.305,265.083L219.963,265.237L219.62,265.391L219.277,265.543L218.933,265.694L218.589,265.844L218.244,265.993L217.898,266.141L217.553,266.288L217.206,266.434L216.859,266.579L216.511,266.723L216.163,266.866L215.815,267.008L215.465,267.149L215.116,267.289L214.766,267.428L214.415,267.566L214.064,267.702L213.712,267.838L213.359,267.973L213.007,268.106L212.653,268.239L212.299,268.37L211.945,268.501L211.59,268.63L211.235,268.759L210.879,268.886L210.523,269.012L210.166,269.137L209.809,269.262L209.451,269.385L209.092,269.507L208.734,269.627L208.374,269.747L208.014,269.866L207.654,269.984L207.293,270.1L206.932,270.216L206.57,270.33L206.208,270.444L205.845,270.556L205.482,270.667L205.119,270.777L204.755,270.886L204.39,270.994L204.025,271.101L203.659,271.207L203.293,271.312L202.927,271.415L202.56,271.518L202.193,271.619L201.825,271.719L201.457,271.818L201.088,271.916L200.719,272.013L200.349,272.109L199.979,272.204L199.609,272.297L199.238,272.39L198.867,272.481L198.495,272.571L198.122,272.66L197.75,272.748L197.377,272.835L197.003,272.921L196.629,273.005L196.255,273.089L195.88,273.171L195.505,273.252L195.129,273.332L194.753,273.411L194.376,273.489L194,273.566L193.622,273.641L193.244,273.715L192.866,273.789L192.488,273.861L192.109,273.931L191.729,274.001L191.35,274.07L190.969,274.137L190.589,274.203L190.208,274.268L189.827,274.332L189.445,274.395L189.063,274.456L188.68,274.517L188.297,274.576L187.914,274.634L187.53,274.691L187.146,274.746L186.762,274.801L186.377,274.854L185.992,274.906L185.606,274.957L185.22,275.007L184.834,275.056L184.447,275.103L184.06,275.149L183.673,275.194L183.285,275.238L182.897,275.28L182.508,275.322L182.12,275.362L181.73,275.401L181.341,275.439L180.951,275.475L180.561,275.51L180.17,275.545L179.779,275.577L179.388,275.609L178.996,275.64L178.604,275.669L178.212,275.697L177.819,275.724L177.426,275.749L177.033,275.774L176.64,275.797L176.246,275.819L175.851,275.839L175.457,275.859L175.062,275.877L174.666,275.894L174.271,275.909L173.875,275.924L173.479,275.937L173.082,275.949L172.686,275.96L172.288,275.969L171.891,275.977L171.493,275.984L171.095,275.99L170.697,275.994L170.298,275.997L169.899,275.999L169.5,276L169.101,275.999L168.702,275.997L168.303,275.994L167.905,275.99L167.507,275.984L167.109,275.977L166.712,275.969L166.314,275.96L165.918,275.949L165.521,275.937L165.125,275.924L164.729,275.909L164.334,275.894L163.938,275.877L163.543,275.859L163.149,275.839L162.754,275.819L162.36,275.797L161.967,275.774L161.574,275.749L161.181,275.724L160.788,275.697L160.396,275.669L160.004,275.64L159.612,275.609L159.221,275.577L158.83,275.545L158.439,275.51L158.049,275.475L157.659,275.439L157.27,275.401L156.88,275.362L156.492,275.322L156.103,275.28L155.715,275.238L155.327,275.194L154.94,275.149L154.553,275.103L154.166,275.056L153.78,275.007L153.394,274.957L153.008,274.906L152.623,274.854L152.238,274.801L151.854,274.746L151.47,274.691L151.086,274.634L150.703,274.576L150.32,274.517L149.937,274.456L149.555,274.395L149.173,274.332L148.792,274.268L148.411,274.203L148.031,274.137L147.65,274.07L147.271,274.001L146.891,273.931L146.512,273.861L146.134,273.789L145.756,273.715L145.378,273.641L145,273.566L144.624,273.489L144.247,273.411L143.871,273.332L143.495,273.252L143.12,273.171L142.745,273.089L142.371,273.005L141.997,272.921L141.623,272.835L141.25,272.748L140.878,272.66L140.505,272.571L140.133,272.481L139.762,272.39L139.391,272.297L139.021,272.204L138.651,272.109L138.281,272.013L137.912,271.916L137.543,271.818L137.175,271.719L136.807,271.619L136.44,271.518L136.073,271.415L135.707,271.312L135.341,271.207L134.975,271.101L134.61,270.994L134.245,270.886L133.881,270.777L133.518,270.667L133.155,270.556L132.792,270.444L132.43,270.33L132.068,270.216L131.707,270.1L131.346,269.984L130.986,269.866L130.626,269.747L130.266,269.627L129.908,269.507L129.549,269.385L129.191,269.262L128.834,269.137L128.477,269.012L128.121,268.886L127.765,268.759L127.41,268.63L127.055,268.501L126.701,268.37L126.347,268.239L125.993,268.106L125.641,267.973L125.288,267.838L124.936,267.702L124.585,267.566L124.234,267.428L123.884,267.289L123.535,267.149L123.185,267.008L122.837,266.866L122.489,266.723L122.141,266.579L121.794,266.434L121.447,266.288L121.102,266.141L120.756,265.993L120.411,265.844L120.067,265.694L119.723,265.543L119.38,265.391L119.037,265.237L118.695,265.083L118.353,264.928L118.012,264.772L117.672,264.615L117.332,264.457L116.992,264.297L116.654,264.137L116.315,263.976L115.978,263.814L115.64,263.651L115.304,263.486L114.968,263.321L114.632,263.155L114.298,262.988L113.963,262.82L113.63,262.651L113.297,262.481L112.964,262.31L112.632,262.138L112.301,261.965L111.97,261.791L111.64,261.616L111.31,261.44L110.981,261.263L110.653,261.085L110.325,260.906L109.998,260.726L109.671,260.546L109.345,260.364L109.02,260.181L108.695,259.998L108.371,259.813L108.047,259.628L107.724,259.441L107.402,259.254L107.08,259.066L106.759,258.876L106.439,258.686L106.119,258.495L105.8,258.303L105.481,258.11L105.163,257.916L104.846,257.721L104.529,257.525L104.213,257.328L103.897,257.131L103.583,256.932L103.268,256.733L102.955,256.532L102.642,256.331L102.33,256.129L102.018,255.926L101.707,255.721L101.397,255.516L101.087,255.311L100.778,255.104L100.47,254.896L100.162,254.687L99.855,254.478L99.549,254.268L99.243,254.056L98.938,253.844L98.634,253.631L98.33,253.417L98.027,253.202L97.725,252.986L97.423,252.77L97.122,252.552L96.822,252.334L96.522,252.115L96.223,251.894L95.925,251.673L95.628,251.452L95.331,251.229L95.035,251.005L94.739,250.781L94.444,250.555L94.15,250.329L93.857,250.102L93.564,249.874L93.272,249.645L92.981,249.415L92.69,249.185L92.4,248.953L92.111,248.721L91.823,248.488L91.535,248.254L91.248,248.019L90.961,247.784L90.676,247.547L90.391,247.31L90.107,247.072L89.823,246.833L89.541,246.593L89.259,246.353L88.978,246.111L88.697,245.869L88.417,245.626L88.138,245.382L87.86,245.137L87.582,244.891L87.305,244.645L87.029,244.398L86.754,244.15L86.48,243.901L86.206,243.651L85.933,243.401L85.66,243.15L85.389,242.897L85.118,242.645L84.848,242.391L84.579,242.136L84.31,241.881L84.042,241.625L83.775,241.368L83.509,241.111L83.244,240.852L82.979,240.593L82.715,240.333L82.452,240.072L82.189,239.811L81.928,239.548L81.667,239.285L81.407,239.021L81.148,238.756L80.889,238.491L80.632,238.225L80.375,237.958L80.119,237.69L79.864,237.421L79.609,237.152L79.355,236.882L79.103,236.611L78.85,236.34L78.599,236.067L78.349,235.794L78.099,235.52L77.85,235.246L77.602,234.971L77.355,234.695L77.109,234.418L76.863,234.14L76.618,233.862L76.374,233.583L76.131,233.303L75.889,233.022L75.647,232.741L75.407,232.459L75.167,232.177L74.928,231.893L74.69,231.609L74.453,231.324L74.216,231.039L73.981,230.752L73.746,230.465L73.512,230.177L73.279,229.889L73.047,229.6L72.815,229.31L72.585,229.019L72.355,228.728L72.126,228.436L71.898,228.143L71.671,227.85L71.445,227.556L71.219,227.261L70.995,226.965L70.771,226.669L70.548,226.372L70.327,226.075L70.106,225.777L69.885,225.478L69.666,225.178L69.448,224.878L69.23,224.577L69.014,224.275L68.798,223.973L68.583,223.67L68.369,223.366L68.156,223.062L67.944,222.757L67.732,222.451L67.522,222.145L67.313,221.838L67.104,221.53L66.896,221.222L66.689,220.913L66.484,220.603L66.279,220.293L66.074,219.982L65.871,219.67L65.669,219.358L65.468,219.045L65.267,218.732L65.068,218.417L64.869,218.103L64.672,217.787L64.475,217.471L64.279,217.154L64.084,216.837L63.89,216.519L63.697,216.2L63.505,215.881L63.314,215.561L63.124,215.241L62.934,214.92L62.746,214.598L62.559,214.276L62.372,213.953L62.187,213.629L62.002,213.305L61.819,212.98L61.636,212.655L61.454,212.329L61.274,212.002L61.094,211.675L60.915,211.347L60.737,211.019L60.56,210.69L60.384,210.36L60.209,210.03L60.035,209.699L59.862,209.368L59.69,209.036L59.519,208.703L59.349,208.37L59.18,208.037L59.012,207.702L58.845,207.368L58.679,207.032L58.514,206.696L58.349,206.36L58.186,206.022L58.024,205.685L57.863,205.346L57.703,205.008L57.543,204.668L57.385,204.328L57.228,203.988L57.072,203.647L56.917,203.305L56.763,202.963L56.609,202.62L56.457,202.277L56.306,201.933L56.156,201.589L56.007,201.244L55.859,200.898L55.712,200.553L55.566,200.206L55.421,199.859L55.277,199.511L55.134,199.163L54.992,198.815L54.851,198.465L54.711,198.116L54.572,197.766L54.434,197.415L54.298,197.064L54.162,196.712L54.027,196.359L53.894,196.007L53.761,195.653L53.63,195.299L53.499,194.945L53.37,194.59L53.241,194.235L53.114,193.879L52.988,193.523L52.863,193.166L52.738,192.809L52.615,192.451L52.493,192.092L52.373,191.734L52.253,191.374L52.134,191.014L52.016,190.654L51.9,190.293L51.784,189.932L51.67,189.57L51.556,189.208L51.444,188.845L51.333,188.482L51.223,188.119L51.114,187.755L51.006,187.39L50.899,187.025L50.793,186.659L50.688,186.293L50.585,185.927L50.482,185.56L50.381,185.193L50.281,184.825L50.182,184.457L50.084,184.088L49.987,183.719L49.891,183.349L49.796,182.979L49.703,182.609L49.61,182.238L49.519,181.867L49.429,181.495L49.34,181.122L49.252,180.75L49.165,180.377L49.079,180.003L48.995,179.629L48.911,179.255L48.829,178.88L48.748,178.505L48.668,178.129L48.589,177.753L48.511,177.376L48.434,177L48.359,176.622L48.285,176.244L48.211,175.866L48.139,175.488L48.069,175.109L47.999,174.729L47.93,174.35L47.863,173.969L47.797,173.589L47.732,173.208L47.668,172.827L47.605,172.445L47.544,172.063L47.483,171.68L47.424,171.297L47.366,170.914L47.309,170.53L47.254,170.146L47.199,169.762L47.146,169.377L47.094,168.992L47.043,168.606L46.993,168.22L46.944,167.834L46.897,167.447L46.851,167.06L46.806,166.673L46.762,166.285L46.72,165.897L46.678,165.508L46.638,165.12L46.599,164.73L46.561,164.341L46.525,163.951L46.49,163.561L46.455,163.17L46.423,162.779L46.391,162.388L46.36,161.996L46.331,161.604L46.303,161.212L46.276,160.819L46.251,160.426L46.226,160.033L46.203,159.64L46.181,159.246L46.161,158.851L46.141,158.457L46.123,158.062L46.106,157.666L46.091,157.271L46.076,156.875L46.063,156.479L46.051,156.082L46.04,155.686L46.031,155.288L46.023,154.891L46.016,154.493L46.01,154.095L46.006,153.697L46.003,153.298L46.001,152.899L46,152.5L46.001,152.101L46.003,151.702L46.006,151.303L46.01,150.905L46.016,150.507L46.023,150.109L46.031,149.712L46.04,149.314L46.051,148.918L46.063,148.521L46.076,148.125L46.091,147.729L46.106,147.334L46.123,146.938L46.141,146.543L46.161,146.149L46.181,145.754L46.203,145.36L46.226,144.967L46.251,144.574L46.276,144.181L46.303,143.788L46.331,143.396L46.36,143.004L46.391,142.612L46.423,142.221L46.455,141.83L46.49,141.439L46.525,141.049L46.561,140.659L46.599,140.27L46.638,139.88L46.678,139.492L46.72,139.103L46.762,138.715L46.806,138.327L46.851,137.94L46.897,137.553L46.944,137.166L46.993,136.78L47.043,136.394L47.094,136.008L47.146,135.623L47.199,135.238L47.254,134.854L47.309,134.47L47.366,134.086L47.424,133.703L47.483,133.32L47.544,132.937L47.605,132.555L47.668,132.173L47.732,131.792L47.797,131.411L47.863,131.031L47.93,130.65L47.999,130.271L48.069,129.891L48.139,129.512L48.211,129.134L48.285,128.756L48.359,128.378L48.434,128L48.511,127.624L48.589,127.247L48.668,126.871L48.748,126.495L48.829,126.12L48.911,125.745L48.995,125.371L49.079,124.997L49.165,124.623L49.252,124.25L49.34,123.878L49.429,123.505L49.519,123.133L49.61,122.762L49.703,122.391L49.796,122.021L49.891,121.651L49.987,121.281L50.084,120.912L50.182,120.543L50.281,120.175L50.381,119.807L50.482,119.44L50.585,119.073L50.688,118.707L50.793,118.341L50.899,117.975L51.006,117.61L51.114,117.245L51.223,116.881L51.333,116.518L51.444,116.155L51.556,115.792L51.67,115.43L51.784,115.068L51.9,114.707L52.016,114.346L52.134,113.986L52.253,113.626L52.373,113.266L52.493,112.908L52.615,112.549L52.738,112.191L52.863,111.834L52.988,111.477L53.114,111.121L53.241,110.765L53.37,110.41L53.499,110.055L53.63,109.701L53.761,109.347L53.894,108.993L54.027,108.641L54.162,108.288L54.298,107.936L54.434,107.585L54.572,107.234L54.711,106.884L54.851,106.535L54.992,106.185L55.134,105.837L55.277,105.489L55.421,105.141L55.566,104.794L55.712,104.447L55.859,104.102L56.007,103.756L56.156,103.411L56.306,103.067L56.457,102.723L56.609,102.38L56.763,102.037L56.917,101.695L57.072,101.353L57.228,101.012L57.385,100.672L57.543,100.332L57.703,99.992L57.863,99.654L58.024,99.315L58.186,98.978L58.349,98.64L58.514,98.304L58.679,97.968L58.845,97.632L59.012,97.298L59.18,96.963L59.349,96.63L59.519,96.297L59.69,95.964L59.862,95.632L60.035,95.301L60.209,94.97L60.384,94.64L60.56,94.31L60.737,93.981L60.915,93.653L61.094,93.325L61.274,92.998L61.454,92.671L61.636,92.345L61.819,92.02L62.002,91.695L62.187,91.371L62.372,91.047L62.559,90.724L62.746,90.402L62.934,90.08L63.124,89.759L63.314,89.439L63.505,89.119L63.697,88.8L63.89,88.481L64.084,88.163L64.279,87.846L64.475,87.529L64.672,87.213L64.869,86.897L65.068,86.583L65.267,86.268L65.468,85.955L65.669,85.642L65.871,85.33L66.074,85.018L66.279,84.707L66.484,84.397L66.689,84.087L66.896,83.778L67.104,83.47L67.313,83.162L67.522,82.855L67.732,82.549L67.944,82.243L68.156,81.938L68.369,81.634L68.583,81.33L68.798,81.027L69.014,80.725L69.23,80.423L69.448,80.122L69.666,79.822L69.885,79.522L70.106,79.223L70.327,78.925L70.548,78.628L70.771,78.331L70.995,78.035L71.219,77.739L71.445,77.444L71.671,77.15L71.898,76.857L72.126,76.564L72.355,76.272L72.585,75.981L72.815,75.69L73.047,75.4L73.279,75.111L73.512,74.823L73.746,74.535L73.981,74.248L74.216,73.961L74.453,73.676L74.69,73.391L74.928,73.107L75.167,72.823L75.407,72.541L75.647,72.259L75.889,71.978L76.131,71.697L76.374,71.417L76.618,71.138L76.863,70.86L77.109,70.582L77.355,70.305L77.602,70.029L77.85,69.754L78.099,69.48L78.349,69.206L78.599,68.933L78.85,68.66L79.103,68.389L79.355,68.118L79.609,67.848L79.864,67.579L80.119,67.31L80.375,67.042L80.632,66.775L80.889,66.509L81.148,66.244L81.407,65.979L81.667,65.715L81.928,65.452L82.189,65.189L82.452,64.928L82.715,64.667L82.979,64.407L83.244,64.148L83.509,63.889L83.775,63.632L84.042,63.375L84.31,63.119L84.579,62.864L84.848,62.609L85.118,62.355L85.389,62.103L85.66,61.85L85.933,61.599L86.206,61.349L86.48,61.099L86.754,60.85L87.029,60.602L87.305,60.355L87.582,60.109L87.86,59.863L88.138,59.618L88.417,59.374L88.697,59.131L88.978,58.889L89.259,58.647L89.541,58.407L89.823,58.167L90.107,57.928L90.391,57.69L90.676,57.453L90.961,57.216L91.248,56.981L91.535,56.746L91.823,56.512L92.111,56.279L92.4,56.047L92.69,55.815L92.981,55.585L93.272,55.355L93.564,55.126L93.857,54.898L94.15,54.671L94.444,54.445L94.739,54.219L95.035,53.995L95.331,53.771L95.628,53.548L95.925,53.327L96.223,53.106L96.522,52.885L96.822,52.666L97.122,52.448L97.423,52.23L97.725,52.014L98.027,51.798L98.33,51.583L98.634,51.369L98.938,51.156L99.243,50.944L99.549,50.732L99.855,50.522L100.162,50.313L100.47,50.104L100.778,49.896L101.087,49.689L101.397,49.484L101.707,49.279L102.018,49.074L102.33,48.871L102.642,48.669L102.955,48.468L103.268,48.267L103.583,48.068L103.897,47.869L104.213,47.672L104.529,47.475L104.846,47.279L105.163,47.084L105.481,46.89L105.8,46.697L106.119,46.505L106.439,46.314L106.759,46.124L107.08,45.934L107.402,45.746L107.724,45.559L108.047,45.372L108.371,45.187L108.695,45.002L109.02,44.819L109.345,44.636L109.671,44.454L109.998,44.274L110.325,44.094L110.653,43.915L110.981,43.737L111.31,43.56L111.64,43.384L111.97,43.209L112.301,43.035L112.632,42.862L112.964,42.69L113.297,42.519L113.63,42.349L113.963,42.18L114.298,42.012L114.632,41.845L114.968,41.679L115.304,41.514L115.64,41.349L115.978,41.186L116.315,41.024L116.654,40.863L116.992,40.703L117.332,40.543L117.672,40.385L118.012,40.228L118.353,40.072L118.695,39.917L119.037,39.763L119.38,39.609L119.723,39.457L120.067,39.306L120.411,39.156L120.756,39.007L121.102,38.859L121.447,38.712L121.794,38.566L122.141,38.421L122.489,38.277L122.837,38.134L123.185,37.992L123.535,37.851L123.884,37.711L124.234,37.572L124.585,37.434L124.936,37.298L125.288,37.162L125.641,37.027L125.993,36.894L126.347,36.761L126.701,36.63L127.055,36.499L127.41,36.37L127.765,36.241L128.121,36.114L128.477,35.988L128.834,35.863L129.191,35.738L129.549,35.615L129.908,35.493L130.266,35.373L130.626,35.253L130.986,35.134L131.346,35.016L131.707,34.9L132.068,34.784L132.43,34.67L132.792,34.556L133.155,34.444L133.518,34.333L133.881,34.223L134.245,34.114L134.61,34.006L134.975,33.899L135.341,33.793L135.707,33.688L136.073,33.585L136.44,33.482L136.807,33.381L137.175,33.281L137.543,33.182L137.912,33.084L138.281,32.987L138.651,32.891L139.021,32.796L139.391,32.703L139.762,32.61L140.133,32.519L140.505,32.429L140.878,32.34L141.25,32.252L141.623,32.165L141.997,32.079L142.371,31.995L142.745,31.911L143.12,31.829L143.495,31.748L143.871,31.668L144.247,31.589L144.624,31.511L145,31.434L145.378,31.359L145.756,31.285L146.134,31.211L146.512,31.139L146.891,31.069L147.271,30.999L147.65,30.93L148.031,30.863L148.411,30.797L148.792,30.732L149.173,30.668L149.555,30.605L149.937,30.544L150.32,30.483L150.703,30.424L151.086,30.366L151.47,30.309L151.854,30.254L152.238,30.199L152.623,30.146L153.008,30.094L153.394,30.043L153.78,29.993L154.166,29.944L154.553,29.897L154.94,29.851L155.327,29.806L155.715,29.762L156.103,29.72L156.492,29.678L156.88,29.638L157.27,29.599L157.659,29.561L158.049,29.525L158.439,29.49L158.83,29.455L159.221,29.423L159.612,29.391L160.004,29.36L160.396,29.331L160.788,29.303L161.181,29.276L161.574,29.251L161.967,29.226L162.36,29.203L162.754,29.181L163.149,29.161L163.543,29.141L163.938,29.123L164.334,29.106L164.729,29.091L165.125,29.076L165.521,29.063L165.918,29.051L166.314,29.04L166.712,29.031L167.109,29.023L167.507,29.016L167.905,29.01L168.303,29.006L168.702,29.003L169.101,29.001L169.5,29L169.899,29.001ZM169.127,37.234L168.754,37.236L168.382,37.239L168.009,37.243L167.637,37.248L167.266,37.255L166.894,37.262L166.523,37.271L166.153,37.281L165.782,37.292L165.412,37.305L165.042,37.318L164.673,37.333L164.304,37.348L163.935,37.365L163.566,37.384L163.198,37.403L162.83,37.423L162.462,37.445L162.095,37.468L161.728,37.491L161.361,37.516L160.995,37.543L160.629,37.57L160.264,37.598L159.898,37.628L159.533,37.659L159.169,37.691L158.804,37.724L158.44,37.758L158.077,37.793L157.713,37.829L157.35,37.867L156.988,37.905L156.625,37.945L156.263,37.986L155.902,38.028L155.541,38.071L155.18,38.115L154.819,38.16L154.459,38.207L154.099,38.254L153.74,38.303L153.381,38.353L153.022,38.404L152.663,38.456L152.305,38.509L151.948,38.563L151.59,38.618L151.234,38.674L150.877,38.732L150.521,38.79L150.165,38.85L149.809,38.911L149.454,38.972L149.1,39.035L148.745,39.099L148.391,39.164L148.038,39.23L147.685,39.297L147.332,39.366L146.98,39.435L146.627,39.505L146.276,39.577L145.925,39.649L145.574,39.723L145.223,39.798L144.873,39.873L144.524,39.95L144.174,40.028L143.826,40.107L143.477,40.187L143.129,40.268L142.781,40.35L142.434,40.433L142.087,40.517L141.741,40.602L141.395,40.688L141.049,40.776L140.704,40.864L140.359,40.953L140.015,41.044L139.671,41.135L139.328,41.228L138.985,41.321L138.642,41.416L138.3,41.511L137.958,41.608L137.616,41.706L137.276,41.804L136.935,41.904L136.595,42.005L136.255,42.106L135.916,42.209L135.577,42.313L135.239,42.417L134.901,42.523L134.564,42.63L134.227,42.738L133.89,42.847L133.554,42.956L133.219,43.067L132.884,43.179L132.549,43.292L132.215,43.405L131.881,43.52L131.547,43.636L131.215,43.753L130.882,43.871L130.55,43.989L130.219,44.109L129.888,44.23L129.557,44.351L129.227,44.474L128.898,44.598L128.568,44.722L128.24,44.848L127.912,44.975L127.584,45.102L127.257,45.231L126.93,45.36L126.604,45.491L126.278,45.622L125.953,45.755L125.628,45.888L125.304,46.022L124.98,46.158L124.657,46.294L124.334,46.431L124.012,46.569L123.69,46.708L123.369,46.848L123.048,46.989L122.728,47.131L122.408,47.274L122.089,47.418L121.77,47.563L121.452,47.709L121.134,47.855L120.817,48.003L120.5,48.151L120.184,48.301L119.868,48.451L119.553,48.603L119.239,48.755L118.925,48.908L118.611,49.062L118.298,49.217L117.986,49.373L117.674,49.53L117.363,49.688L117.052,49.846L116.741,50.006L116.432,50.167L116.122,50.328L115.814,50.49L115.506,50.654L115.198,50.818L114.891,50.983L114.585,51.149L114.279,51.316L113.973,51.483L113.669,51.652L113.364,51.822L113.061,51.992L112.758,52.164L112.455,52.336L112.153,52.509L111.852,52.683L111.551,52.858L111.25,53.034L110.951,53.21L110.652,53.388L110.353,53.566L110.055,53.745L109.758,53.926L109.461,54.107L109.165,54.289L108.869,54.471L108.574,54.655L108.28,54.839L107.986,55.025L107.693,55.211L107.4,55.398L107.108,55.586L106.816,55.775L106.525,55.964L106.235,56.155L105.946,56.346L105.657,56.539L105.368,56.732L105.08,56.925L104.793,57.12L104.506,57.316L104.22,57.512L103.935,57.709L103.65,57.908L103.366,58.107L103.083,58.306L102.8,58.507L102.518,58.708L102.236,58.911L101.955,59.114L101.675,59.318L101.395,59.522L101.116,59.728L100.837,59.934L100.559,60.141L100.282,60.349L100.006,60.558L99.73,60.768L99.455,60.978L99.18,61.189L98.906,61.401L98.633,61.614L98.36,61.828L98.088,62.042L97.817,62.258L97.546,62.474L97.276,62.691L97.007,62.908L96.738,63.127L96.47,63.346L96.203,63.566L95.936,63.787L95.67,64.008L95.405,64.231L95.14,64.454L94.876,64.678L94.613,64.902L94.35,65.128L94.088,65.354L93.827,65.581L93.566,65.809L93.306,66.037L93.047,66.267L92.789,66.497L92.531,66.728L92.274,66.959L92.017,67.192L91.762,67.425L91.507,67.659L91.252,67.893L90.999,68.129L90.746,68.365L90.494,68.602L90.242,68.839L89.992,69.078L89.741,69.317L89.492,69.557L89.244,69.797L88.996,70.039L88.748,70.281L88.502,70.523L88.256,70.767L88.011,71.011L87.767,71.256L87.523,71.502L87.281,71.748L87.039,71.996L86.797,72.244L86.557,72.492L86.317,72.741L86.078,72.992L85.839,73.242L85.602,73.494L85.365,73.746L85.129,73.999L84.893,74.252L84.659,74.507L84.425,74.762L84.192,75.017L83.959,75.274L83.728,75.531L83.497,75.789L83.267,76.047L83.037,76.306L82.809,76.566L82.581,76.827L82.354,77.088L82.128,77.35L81.902,77.613L81.678,77.876L81.454,78.14L81.231,78.405L81.008,78.67L80.787,78.936L80.566,79.203L80.346,79.47L80.127,79.738L79.908,80.007L79.691,80.276L79.474,80.546L79.258,80.817L79.042,81.088L78.828,81.36L78.614,81.633L78.401,81.906L78.189,82.18L77.978,82.455L77.768,82.73L77.558,83.006L77.349,83.282L77.141,83.559L76.934,83.837L76.728,84.116L76.522,84.395L76.318,84.675L76.114,84.955L75.911,85.236L75.708,85.518L75.507,85.8L75.306,86.083L75.107,86.366L74.908,86.65L74.709,86.935L74.512,87.22L74.316,87.506L74.12,87.793L73.925,88.08L73.732,88.368L73.539,88.657L73.346,88.946L73.155,89.235L72.964,89.525L72.775,89.816L72.586,90.108L72.398,90.4L72.211,90.693L72.025,90.986L71.839,91.28L71.655,91.574L71.471,91.869L71.289,92.165L71.107,92.461L70.926,92.758L70.745,93.055L70.566,93.353L70.388,93.652L70.21,93.951L70.034,94.25L69.858,94.551L69.683,94.852L69.509,95.153L69.336,95.455L69.164,95.758L68.992,96.061L68.822,96.364L68.652,96.669L68.483,96.973L68.316,97.279L68.149,97.585L67.983,97.891L67.818,98.198L67.654,98.506L67.49,98.814L67.328,99.122L67.167,99.432L67.006,99.741L66.846,100.052L66.688,100.363L66.53,100.674L66.373,100.986L66.217,101.298L66.062,101.611L65.908,101.925L65.755,102.239L65.603,102.553L65.451,102.868L65.301,103.184L65.151,103.5L65.003,103.817L64.855,104.134L64.709,104.452L64.563,104.77L64.418,105.089L64.274,105.408L64.131,105.728L63.989,106.048L63.848,106.369L63.708,106.69L63.569,107.012L63.431,107.334L63.294,107.657L63.158,107.98L63.022,108.304L62.888,108.628L62.755,108.953L62.622,109.278L62.491,109.604L62.36,109.93L62.231,110.257L62.102,110.584L61.975,110.912L61.848,111.24L61.722,111.568L61.598,111.898L61.474,112.227L61.351,112.557L61.23,112.888L61.109,113.219L60.989,113.55L60.871,113.882L60.753,114.215L60.636,114.547L60.52,114.881L60.405,115.215L60.292,115.549L60.179,115.884L60.067,116.219L59.956,116.554L59.847,116.89L59.738,117.227L59.63,117.564L59.523,117.901L59.417,118.239L59.313,118.577L59.209,118.916L59.106,119.255L59.005,119.595L58.904,119.935L58.804,120.276L58.706,120.616L58.608,120.958L58.511,121.3L58.416,121.642L58.321,121.985L58.228,122.328L58.135,122.671L58.044,123.015L57.953,123.359L57.864,123.704L57.776,124.049L57.688,124.395L57.602,124.741L57.517,125.087L57.433,125.434L57.35,125.781L57.268,126.129L57.187,126.477L57.107,126.826L57.028,127.174L56.95,127.524L56.873,127.873L56.798,128.223L56.723,128.574L56.649,128.925L56.577,129.276L56.505,129.627L56.435,129.98L56.366,130.332L56.297,130.685L56.23,131.038L56.164,131.391L56.099,131.745L56.035,132.1L55.972,132.454L55.911,132.809L55.85,133.165L55.79,133.521L55.732,133.877L55.674,134.234L55.618,134.59L55.563,134.948L55.509,135.305L55.456,135.663L55.404,136.022L55.353,136.381L55.303,136.74L55.254,137.099L55.207,137.459L55.16,137.819L55.115,138.18L55.071,138.541L55.028,138.902L54.986,139.263L54.945,139.625L54.905,139.988L54.867,140.35L54.829,140.713L54.793,141.077L54.758,141.44L54.724,141.804L54.691,142.169L54.659,142.533L54.628,142.898L54.598,143.264L54.57,143.629L54.543,143.995L54.516,144.361L54.491,144.728L54.468,145.095L54.445,145.462L54.423,145.83L54.403,146.198L54.384,146.566L54.365,146.935L54.348,147.304L54.333,147.673L54.318,148.042L54.305,148.412L54.292,148.782L54.281,149.153L54.271,149.523L54.262,149.894L54.255,150.266L54.248,150.637L54.243,151.009L54.239,151.382L54.236,151.754L54.234,152.127L54.233,152.5L54.234,152.873L54.236,153.246L54.239,153.618L54.243,153.991L54.248,154.363L54.255,154.734L54.262,155.106L54.271,155.477L54.281,155.847L54.292,156.218L54.305,156.588L54.318,156.958L54.333,157.327L54.348,157.696L54.365,158.065L54.384,158.434L54.403,158.802L54.423,159.17L54.445,159.538L54.468,159.905L54.491,160.272L54.516,160.639L54.543,161.005L54.57,161.371L54.598,161.736L54.628,162.102L54.659,162.467L54.691,162.831L54.724,163.196L54.758,163.56L54.793,163.923L54.829,164.287L54.867,164.65L54.905,165.012L54.945,165.375L54.986,165.737L55.028,166.098L55.071,166.459L55.115,166.82L55.16,167.181L55.207,167.541L55.254,167.901L55.303,168.26L55.353,168.619L55.404,168.978L55.456,169.337L55.509,169.695L55.563,170.052L55.618,170.41L55.674,170.766L55.732,171.123L55.79,171.479L55.85,171.835L55.911,172.191L55.972,172.546L56.035,172.9L56.099,173.255L56.164,173.609L56.23,173.962L56.297,174.315L56.366,174.668L56.435,175.02L56.505,175.373L56.577,175.724L56.649,176.075L56.723,176.426L56.798,176.777L56.873,177.127L56.95,177.476L57.028,177.826L57.107,178.174L57.187,178.523L57.268,178.871L57.35,179.219L57.433,179.566L57.517,179.913L57.602,180.259L57.688,180.605L57.776,180.951L57.864,181.296L57.953,181.641L58.044,181.985L58.135,182.329L58.228,182.672L58.321,183.015L58.416,183.358L58.511,183.7L58.608,184.042L58.706,184.383L58.804,184.724L58.904,185.065L59.005,185.405L59.106,185.745L59.209,186.084L59.313,186.423L59.417,186.761L59.523,187.099L59.63,187.436L59.738,187.773L59.847,188.11L59.956,188.446L60.067,188.781L60.179,189.116L60.292,189.451L60.405,189.785L60.52,190.119L60.636,190.453L60.753,190.785L60.871,191.118L60.989,191.45L61.109,191.781L61.23,192.112L61.351,192.443L61.474,192.773L61.598,193.103L61.722,193.432L61.848,193.76L61.975,194.088L62.102,194.416L62.231,194.743L62.36,195.07L62.491,195.396L62.622,195.722L62.755,196.047L62.888,196.372L63.022,196.696L63.158,197.02L63.294,197.343L63.431,197.666L63.569,197.988L63.708,198.31L63.848,198.631L63.989,198.952L64.131,199.272L64.274,199.592L64.418,199.911L64.563,200.23L64.709,200.548L64.855,200.866L65.003,201.183L65.151,201.5L65.301,201.816L65.451,202.132L65.603,202.447L65.755,202.761L65.908,203.075L66.062,203.389L66.217,203.702L66.373,204.014L66.53,204.326L66.688,204.638L66.846,204.948L67.006,205.259L67.167,205.568L67.328,205.878L67.49,206.186L67.654,206.494L67.818,206.802L67.983,207.109L68.149,207.415L68.316,207.721L68.483,208.027L68.652,208.332L68.822,208.636L68.992,208.939L69.164,209.243L69.336,209.545L69.509,209.847L69.683,210.148L69.858,210.449L70.034,210.75L70.21,211.049L70.388,211.348L70.566,211.647L70.745,211.945L70.926,212.242L71.107,212.539L71.289,212.835L71.471,213.131L71.655,213.426L71.839,213.72L72.025,214.014L72.211,214.307L72.398,214.6L72.586,214.892L72.775,215.184L72.964,215.475L73.155,215.765L73.346,216.054L73.539,216.343L73.732,216.632L73.925,216.92L74.12,217.207L74.316,217.494L74.512,217.78L74.709,218.065L74.908,218.35L75.106,218.634L75.306,218.917L75.507,219.2L75.708,219.482L75.911,219.764L76.114,220.045L76.318,220.325L76.522,220.605L76.728,220.884L76.934,221.163L77.141,221.441L77.349,221.718L77.558,221.994L77.768,222.27L77.978,222.545L78.189,222.82L78.401,223.094L78.614,223.367L78.828,223.64L79.042,223.912L79.258,224.183L79.474,224.454L79.691,224.724L79.908,224.993L80.127,225.262L80.346,225.53L80.566,225.797L80.787,226.064L81.008,226.33L81.231,226.595L81.454,226.86L81.678,227.124L81.902,227.387L82.128,227.65L82.354,227.912L82.581,228.173L82.809,228.434L83.037,228.694L83.267,228.953L83.497,229.211L83.728,229.469L83.959,229.726L84.192,229.983L84.425,230.238L84.659,230.493L84.893,230.748L85.129,231.001L85.365,231.254L85.602,231.506L85.839,231.758L86.078,232.009L86.317,232.259L86.557,232.508L86.797,232.756L87.039,233.004L87.281,233.252L87.523,233.498L87.767,233.744L88.011,233.989L88.256,234.233L88.502,234.477L88.748,234.719L88.996,234.961L89.244,235.203L89.492,235.443L89.741,235.683L89.992,235.922L90.242,236.161L90.494,236.398L90.746,236.635L90.999,236.871L91.253,237.107L91.507,237.341L91.762,237.575L92.017,237.808L92.274,238.041L92.531,238.272L92.789,238.503L93.047,238.733L93.306,238.963L93.566,239.191L93.827,239.419L94.088,239.646L94.35,239.872L94.613,240.098L94.876,240.322L95.14,240.546L95.405,240.769L95.67,240.992L95.936,241.213L96.203,241.434L96.47,241.654L96.738,241.873L97.007,242.092L97.276,242.31L97.546,242.526L97.817,242.742L98.088,242.958L98.36,243.172L98.633,243.386L98.906,243.599L99.18,243.81L99.455,244.022L99.73,244.232L100.006,244.442L100.282,244.651L100.559,244.859L100.837,245.066L101.116,245.272L101.395,245.478L101.674,245.682L101.955,245.886L102.236,246.089L102.518,246.292L102.8,246.493L103.083,246.694L103.366,246.894L103.65,247.092L103.935,247.291L104.22,247.488L104.506,247.684L104.793,247.88L105.08,248.074L105.368,248.268L105.657,248.461L105.946,248.654L106.235,248.845L106.525,249.036L106.816,249.225L107.108,249.414L107.4,249.602L107.693,249.789L107.986,249.975L108.28,250.161L108.574,250.345L108.869,250.529L109.165,250.711L109.461,250.893L109.758,251.074L110.055,251.255L110.353,251.434L110.652,251.612L110.951,251.79L111.25,251.966L111.551,252.142L111.852,252.317L112.153,252.491L112.455,252.664L112.758,252.837L113.061,253.008L113.364,253.178L113.669,253.348L113.973,253.516L114.279,253.684L114.585,253.851L114.891,254.017L115.198,254.182L115.506,254.346L115.814,254.51L116.122,254.672L116.432,254.833L116.741,254.994L117.052,255.154L117.363,255.312L117.674,255.47L117.986,255.627L118.298,255.783L118.611,255.938L118.925,256.092L119.239,256.245L119.553,256.398L119.868,256.549L120.184,256.699L120.5,256.849L120.817,256.997L121.134,257.145L121.452,257.292L121.77,257.437L122.089,257.582L122.408,257.726L122.728,257.869L123.048,258.011L123.369,258.152L123.69,258.292L124.012,258.431L124.334,258.569L124.657,258.706L124.98,258.842L125.304,258.978L125.628,259.112L125.953,259.245L126.278,259.378L126.604,259.509L126.93,259.64L127.257,259.769L127.584,259.898L127.911,260.025L128.24,260.152L128.568,260.278L128.897,260.402L129.227,260.526L129.557,260.649L129.888,260.77L130.219,260.891L130.55,261.011L130.882,261.13L131.215,261.247L131.547,261.364L131.881,261.48L132.215,261.595L132.549,261.708L132.884,261.821L133.219,261.933L133.554,262.044L133.891,262.154L134.227,262.262L134.564,262.37L134.901,262.477L135.239,262.583L135.577,262.687L135.916,262.791L136.255,262.894L136.595,262.995L136.935,263.096L137.276,263.196L137.616,263.294L137.958,263.392L138.3,263.489L138.642,263.584L138.984,263.679L139.328,263.772L139.671,263.865L140.015,263.956L140.359,264.047L140.704,264.136L141.049,264.224L141.395,264.311L141.741,264.398L142.087,264.483L142.434,264.567L142.781,264.65L143.129,264.732L143.477,264.813L143.826,264.893L144.174,264.972L144.524,265.05L144.873,265.127L145.223,265.202L145.574,265.277L145.925,265.351L146.276,265.423L146.627,265.495L146.98,265.565L147.332,265.634L147.684,265.703L148.038,265.77L148.391,265.836L148.745,265.901L149.1,265.965L149.454,266.028L149.81,266.089L150.165,266.15L150.521,266.21L150.877,266.268L151.234,266.326L151.59,266.382L151.948,266.437L152.306,266.491L152.663,266.544L153.022,266.596L153.381,266.647L153.74,266.697L154.099,266.746L154.459,266.793L154.819,266.84L155.18,266.885L155.541,266.929L155.902,266.972L156.264,267.014L156.625,267.055L156.988,267.095L157.35,267.133L157.713,267.171L158.077,267.207L158.44,267.242L158.804,267.276L159.169,267.309L159.533,267.341L159.898,267.372L160.263,267.402L160.629,267.43L160.995,267.457L161.361,267.484L161.728,267.509L162.095,267.532L162.462,267.555L162.83,267.577L163.198,267.597L163.566,267.616L163.935,267.635L164.304,267.651L164.673,267.667L165.042,267.682L165.412,267.695L165.782,267.708L166.153,267.719L166.523,267.729L166.894,267.738L167.266,267.745L167.638,267.752L168.009,267.757L168.381,267.761L168.754,267.764L169.127,267.766L169.5,267.767L169.873,267.766L170.246,267.764L170.619,267.761L170.991,267.757L171.362,267.752L171.734,267.745L172.106,267.738L172.477,267.729L172.847,267.719L173.218,267.708L173.588,267.695L173.958,267.682L174.327,267.667L174.696,267.651L175.065,267.635L175.434,267.616L175.802,267.597L176.17,267.577L176.538,267.555L176.905,267.532L177.272,267.509L177.639,267.484L178.005,267.457L178.371,267.43L178.737,267.402L179.102,267.372L179.467,267.341L179.831,267.309L180.196,267.276L180.56,267.242L180.923,267.207L181.287,267.171L181.65,267.133L182.012,267.095L182.375,267.055L182.736,267.014L183.098,266.972L183.459,266.929L183.82,266.885L184.181,266.84L184.541,266.793L184.901,266.746L185.26,266.697L185.619,266.647L185.978,266.596L186.337,266.544L186.694,266.491L187.052,266.437L187.41,266.382L187.766,266.326L188.123,266.268L188.479,266.21L188.835,266.15L189.19,266.089L189.546,266.028L189.9,265.965L190.255,265.901L190.609,265.836L190.962,265.77L191.316,265.703L191.668,265.634L192.02,265.565L192.373,265.495L192.724,265.423L193.075,265.351L193.426,265.277L193.777,265.202L194.127,265.127L194.476,265.05L194.826,264.972L195.174,264.893L195.523,264.813L195.871,264.732L196.219,264.65L196.566,264.567L196.913,264.483L197.259,264.398L197.605,264.311L197.951,264.224L198.296,264.136L198.641,264.047L198.985,263.956L199.329,263.865L199.672,263.772L200.016,263.679L200.358,263.584L200.7,263.489L201.042,263.392L201.384,263.294L201.724,263.196L202.065,263.096L202.405,262.995L202.745,262.894L203.084,262.791L203.423,262.687L203.761,262.583L204.099,262.477L204.436,262.37L204.773,262.262L205.109,262.154L205.446,262.044L205.781,261.933L206.116,261.821L206.451,261.708L206.785,261.595L207.119,261.48L207.453,261.364L207.785,261.247L208.118,261.13L208.45,261.011L208.781,260.891L209.112,260.77L209.443,260.649L209.773,260.526L210.103,260.402L210.432,260.278L210.76,260.152L211.089,260.025L211.416,259.898L211.743,259.769L212.07,259.64L212.396,259.509L212.722,259.378L213.047,259.246L213.372,259.112L213.696,258.978L214.02,258.842L214.343,258.706L214.666,258.569L214.988,258.431L215.31,258.292L215.631,258.152L215.952,258.011L216.272,257.869L216.592,257.726L216.911,257.582L217.23,257.437L217.548,257.292L217.866,257.145L218.183,256.997L218.5,256.849L218.816,256.699L219.132,256.549L219.447,256.398L219.761,256.245L220.075,256.092L220.389,255.938L220.702,255.783L221.014,255.627L221.326,255.47L221.638,255.312L221.948,255.154L222.259,254.994L222.568,254.833L222.878,254.672L223.186,254.51L223.494,254.346L223.802,254.182L224.109,254.017L224.415,253.851L224.721,253.684L225.027,253.516L225.331,253.348L225.636,253.178L225.939,253.008L226.242,252.837L226.545,252.664L226.847,252.491L227.148,252.317L227.449,252.142L227.75,251.966L228.049,251.79L228.348,251.612L228.647,251.434L228.945,251.255L229.242,251.074L229.539,250.893L229.835,250.711L230.131,250.529L230.426,250.345L230.72,250.161L231.014,249.975L231.307,249.789L231.6,249.602L231.892,249.414L232.184,249.225L232.475,249.036L232.765,248.845L233.054,248.654L233.343,248.462L233.632,248.268L233.92,248.074L234.207,247.88L234.494,247.684L234.78,247.488L235.065,247.291L235.35,247.092L235.634,246.894L235.917,246.694L236.2,246.493L236.482,246.292L236.764,246.089L237.045,245.886L237.326,245.682L237.605,245.478L237.884,245.272L238.163,245.066L238.441,244.859L238.718,244.651L238.994,244.442L239.27,244.232L239.545,244.022L239.82,243.81L240.094,243.599L240.367,243.386L240.64,243.172L240.912,242.958L241.183,242.742L241.454,242.526L241.724,242.31L241.993,242.092L242.262,241.873L242.53,241.654L242.797,241.434L243.064,241.213L243.33,240.992L243.595,240.769L243.86,240.546L244.124,240.322L244.387,240.098L244.65,239.872L244.912,239.646L245.173,239.419L245.434,239.191L245.694,238.963L245.953,238.733L246.211,238.503L246.469,238.272L246.726,238.041L246.983,237.808L247.238,237.575L247.493,237.341L247.748,237.107L248.001,236.871L248.254,236.635L248.506,236.398L248.758,236.161L249.008,235.922L249.259,235.683L249.508,235.443L249.756,235.203L250.004,234.961L250.252,234.719L250.498,234.477L250.744,234.233L250.989,233.989L251.233,233.744L251.477,233.498L251.719,233.252L251.961,233.004L252.203,232.756L252.443,232.508L252.683,232.259L252.922,232.008L253.161,231.758L253.398,231.506L253.635,231.254L253.871,231.001L254.107,230.748L254.341,230.493L254.575,230.238L254.808,229.983L255.041,229.726L255.272,229.469L255.503,229.211L255.733,228.953L255.963,228.694L256.191,228.434L256.419,228.173L256.646,227.912L256.872,227.65L257.098,227.387L257.322,227.124L257.546,226.86L257.769,226.595L257.992,226.33L258.213,226.064L258.434,225.797L258.654,225.53L258.873,225.262L259.092,224.993L259.31,224.724L259.526,224.454L259.742,224.183L259.958,223.912L260.172,223.64L260.386,223.367L260.599,223.094L260.81,222.82L261.022,222.545L261.232,222.27L261.442,221.994L261.651,221.718L261.859,221.441L262.066,221.163L262.272,220.884L262.478,220.605L262.682,220.326L262.886,220.045L263.089,219.764L263.292,219.482L263.493,219.2L263.694,218.917L263.894,218.634L264.092,218.35L264.291,218.065L264.488,217.78L264.684,217.494L264.88,217.207L265.074,216.92L265.268,216.632L265.462,216.343L265.654,216.054L265.845,215.765L266.036,215.475L266.225,215.184L266.414,214.892L266.602,214.6L266.789,214.307L266.975,214.014L267.161,213.72L267.345,213.426L267.529,213.131L267.711,212.835L267.893,212.539L268.074,212.242L268.255,211.945L268.434,211.647L268.612,211.348L268.79,211.049L268.966,210.75L269.142,210.449L269.317,210.148L269.491,209.847L269.664,209.545L269.837,209.242L270.008,208.939L270.178,208.636L270.348,208.331L270.516,208.027L270.684,207.721L270.851,207.415L271.017,207.109L271.182,206.802L271.346,206.494L271.51,206.186L271.672,205.878L271.833,205.568L271.994,205.259L272.154,204.948L272.312,204.638L272.47,204.326L272.627,204.014L272.783,203.702L272.938,203.389L273.092,203.075L273.245,202.761L273.398,202.447L273.549,202.132L273.699,201.816L273.849,201.5L273.997,201.183L274.145,200.866L274.292,200.548L274.437,200.23L274.582,199.911L274.726,199.592L274.869,199.272L275.011,198.952L275.152,198.631L275.292,198.31L275.431,197.988L275.569,197.666L275.706,197.343L275.842,197.02L275.978,196.696L276.112,196.372L276.246,196.047L276.378,195.722L276.509,195.396L276.64,195.07L276.769,194.743L276.898,194.416L277.025,194.089L277.152,193.76L277.278,193.432L277.402,193.103L277.526,192.773L277.649,192.443L277.77,192.112L277.891,191.781L278.011,191.45L278.13,191.118L278.247,190.785L278.364,190.453L278.48,190.119L278.595,189.785L278.708,189.451L278.821,189.116L278.933,188.781L279.044,188.446L279.154,188.109L279.262,187.773L279.37,187.436L279.477,187.099L279.583,186.761L279.687,186.423L279.791,186.084L279.894,185.745L279.995,185.405L280.096,185.065L280.196,184.724L280.294,184.384L280.392,184.042L280.489,183.7L280.584,183.358L280.679,183.016L280.772,182.672L280.865,182.329L280.956,181.985L281.047,181.641L281.136,181.296L281.224,180.951L281.311,180.605L281.398,180.259L281.483,179.913L281.567,179.566L281.65,179.219L281.732,178.871L281.813,178.523L281.893,178.174L281.972,177.826L282.05,177.476L282.127,177.127L282.202,176.777L282.277,176.426L282.351,176.075L282.423,175.724L282.495,175.373L282.565,175.02L282.634,174.668L282.703,174.316L282.77,173.962L282.836,173.609L282.901,173.255L282.965,172.9L283.028,172.546L283.089,172.19L283.15,171.835L283.21,171.479L283.268,171.123L283.326,170.766L283.382,170.41L283.437,170.052L283.491,169.694L283.544,169.337L283.596,168.978L283.647,168.619L283.697,168.26L283.746,167.901L283.793,167.541L283.84,167.181L283.885,166.82L283.929,166.459L283.972,166.098L284.014,165.736L284.055,165.375L284.095,165.012L284.133,164.65L284.171,164.287L284.207,163.923L284.242,163.56L284.276,163.196L284.309,162.831L284.341,162.467L284.372,162.102L284.402,161.737L284.43,161.371L284.457,161.005L284.484,160.639L284.509,160.272L284.532,159.905L284.555,159.538L284.577,159.17L284.597,158.802L284.616,158.434L284.635,158.065L284.651,157.696L284.667,157.327L284.682,156.958L284.695,156.588L284.708,156.218L284.719,155.847L284.729,155.477L284.738,155.106L284.745,154.734L284.752,154.362L284.757,153.991L284.761,153.619L284.764,153.246L284.766,152.873L284.767,152.5L284.766,152.127L284.764,151.754L284.761,151.381L284.757,151.009L284.752,150.638L284.745,150.266L284.738,149.894L284.729,149.523L284.719,149.153L284.708,148.782L284.695,148.412L284.682,148.042L284.667,147.673L284.651,147.304L284.635,146.935L284.616,146.566L284.597,146.198L284.577,145.83L284.555,145.462L284.532,145.095L284.509,144.728L284.484,144.361L284.457,143.995L284.43,143.629L284.402,143.263L284.372,142.898L284.341,142.533L284.309,142.169L284.276,141.804L284.242,141.44L284.207,141.077L284.171,140.713L284.133,140.35L284.095,139.988L284.055,139.625L284.014,139.264L283.972,138.902L283.929,138.541L283.885,138.18L283.84,137.819L283.793,137.459L283.746,137.099L283.697,136.74L283.647,136.381L283.596,136.022L283.544,135.663L283.491,135.306L283.437,134.948L283.382,134.59L283.326,134.234L283.268,133.877L283.21,133.521L283.15,133.165L283.089,132.81L283.028,132.454L282.965,132.1L282.901,131.745L282.836,131.391L282.77,131.038L282.703,130.684L282.634,130.332L282.565,129.98L282.495,129.627L282.423,129.276L282.351,128.925L282.277,128.574L282.202,128.223L282.127,127.873L282.05,127.524L281.972,127.174L281.893,126.826L281.813,126.477L281.732,126.129L281.65,125.781L281.567,125.434L281.483,125.087L281.398,124.741L281.311,124.395L281.224,124.049L281.136,123.704L281.047,123.359L280.956,123.015L280.865,122.671L280.772,122.328L280.679,121.984L280.584,121.642L280.489,121.3L280.392,120.958L280.294,120.616L280.196,120.276L280.096,119.935L279.995,119.595L279.894,119.255L279.791,118.916L279.687,118.577L279.583,118.239L279.477,117.901L279.37,117.564L279.262,117.227L279.154,116.891L279.044,116.554L278.933,116.219L278.821,115.884L278.708,115.549L278.595,115.215L278.48,114.881L278.364,114.547L278.247,114.215L278.13,113.882L278.011,113.55L277.891,113.219L277.77,112.888L277.649,112.557L277.526,112.227L277.402,111.897L277.278,111.568L277.152,111.24L277.025,110.911L276.898,110.584L276.769,110.257L276.64,109.93L276.509,109.604L276.378,109.278L276.245,108.953L276.112,108.628L275.978,108.304L275.842,107.98L275.706,107.657L275.569,107.334L275.431,107.012L275.292,106.69L275.152,106.369L275.011,106.048L274.869,105.728L274.726,105.408L274.582,105.089L274.437,104.77L274.292,104.452L274.145,104.134L273.997,103.817L273.849,103.5L273.699,103.184L273.549,102.868L273.398,102.553L273.245,102.239L273.092,101.925L272.938,101.611L272.783,101.298L272.627,100.986L272.47,100.674L272.312,100.363L272.154,100.052L271.994,99.741L271.833,99.432L271.672,99.122L271.51,98.814L271.346,98.506L271.182,98.198L271.017,97.891L270.851,97.585L270.684,97.279L270.516,96.973L270.348,96.669L270.178,96.364L270.008,96.061L269.837,95.758L269.664,95.455L269.491,95.153L269.317,94.852L269.142,94.551L268.966,94.25L268.79,93.951L268.612,93.652L268.434,93.353L268.255,93.055L268.074,92.758L267.893,92.461L267.711,92.165L267.529,91.869L267.345,91.574L267.161,91.28L266.975,90.986L266.789,90.693L266.602,90.4L266.414,90.108L266.225,89.816L266.036,89.525L265.845,89.235L265.654,88.946L265.461,88.657L265.268,88.368L265.074,88.08L264.88,87.793L264.684,87.506L264.488,87.22L264.291,86.935L264.092,86.65L263.894,86.366L263.694,86.083L263.493,85.8L263.292,85.518L263.089,85.236L262.886,84.955L262.682,84.674L262.478,84.395L262.272,84.116L262.066,83.837L261.859,83.559L261.651,83.282L261.442,83.006L261.232,82.73L261.022,82.455L260.81,82.18L260.599,81.906L260.386,81.633L260.172,81.36L259.958,81.088L259.742,80.817L259.526,80.546L259.31,80.276L259.092,80.007L258.873,79.738L258.654,79.47L258.434,79.203L258.213,78.936L257.992,78.67L257.769,78.405L257.546,78.14L257.322,77.876L257.098,77.613L256.872,77.35L256.646,77.088L256.419,76.827L256.191,76.566L255.963,76.306L255.733,76.047L255.503,75.789L255.272,75.531L255.041,75.274L254.808,75.017L254.575,74.762L254.341,74.507L254.107,74.253L253.871,73.999L253.635,73.746L253.398,73.494L253.161,73.242L252.922,72.992L252.683,72.741L252.443,72.492L252.203,72.244L251.961,71.996L251.719,71.748L251.477,71.502L251.233,71.256L250.989,71.011L250.744,70.767L250.498,70.523L250.252,70.281L250.004,70.039L249.756,69.797L249.508,69.557L249.259,69.317L249.009,69.078L248.758,68.839L248.506,68.602L248.254,68.365L248.001,68.129L247.748,67.893L247.493,67.659L247.238,67.425L246.983,67.192L246.726,66.959L246.469,66.728L246.211,66.497L245.953,66.267L245.694,66.037L245.434,65.809L245.173,65.581L244.912,65.354L244.65,65.128L244.387,64.902L244.124,64.678L243.86,64.454L243.595,64.231L243.33,64.008L243.064,63.787L242.797,63.566L242.53,63.346L242.262,63.127L241.993,62.908L241.724,62.691L241.454,62.474L241.183,62.258L240.912,62.042L240.64,61.828L240.367,61.614L240.094,61.401L239.82,61.189L239.545,60.978L239.27,60.768L238.994,60.558L238.718,60.349L238.441,60.141L238.163,59.934L237.884,59.728L237.605,59.522L237.325,59.318L237.045,59.114L236.764,58.911L236.482,58.708L236.2,58.507L235.917,58.306L235.634,58.106L235.35,57.908L235.065,57.709L234.78,57.512L234.494,57.316L234.207,57.12L233.92,56.925L233.632,56.732L233.343,56.539L233.054,56.346L232.765,56.155L232.475,55.964L232.184,55.775L231.892,55.586L231.6,55.398L231.307,55.211L231.014,55.025L230.72,54.839L230.426,54.655L230.131,54.471L229.835,54.289L229.539,54.107L229.242,53.926L228.945,53.745L228.647,53.566L228.348,53.388L228.049,53.21L227.75,53.034L227.449,52.858L227.148,52.683L226.847,52.509L226.545,52.336L226.243,52.164L225.939,51.992L225.636,51.822L225.332,51.652L225.027,51.483L224.721,51.316L224.415,51.149L224.109,50.983L223.802,50.818L223.494,50.654L223.186,50.49L222.878,50.328L222.568,50.167L222.259,50.006L221.948,49.846L221.638,49.688L221.326,49.53L221.014,49.373L220.702,49.217L220.389,49.062L220.075,48.908L219.761,48.755L219.447,48.603L219.132,48.451L218.816,48.301L218.5,48.151L218.183,48.003L217.866,47.855L217.548,47.709L217.23,47.563L216.911,47.418L216.592,47.274L216.272,47.131L215.952,46.989L215.631,46.848L215.31,46.708L214.988,46.569L214.666,46.431L214.343,46.294L214.02,46.158L213.696,46.022L213.372,45.888L213.047,45.755L212.722,45.622L212.396,45.491L212.07,45.36L211.743,45.231L211.416,45.102L211.088,44.975L210.76,44.848L210.432,44.722L210.103,44.598L209.773,44.474L209.443,44.351L209.112,44.23L208.781,44.109L208.45,43.989L208.118,43.871L207.785,43.753L207.453,43.636L207.119,43.52L206.785,43.405L206.451,43.292L206.116,43.179L205.781,43.067L205.446,42.956L205.11,42.847L204.773,42.738L204.436,42.63L204.099,42.523L203.761,42.417L203.423,42.313L203.084,42.209L202.745,42.106L202.405,42.005L202.065,41.904L201.724,41.804L201.383,41.706L201.042,41.608L200.7,41.511L200.358,41.416L200.015,41.321L199.672,41.228L199.329,41.135L198.985,41.044L198.641,40.953L198.296,40.864L197.951,40.776L197.605,40.688L197.259,40.602L196.913,40.517L196.566,40.433L196.219,40.35L195.871,40.268L195.523,40.187L195.174,40.107L194.826,40.028L194.476,39.95L194.127,39.873L193.777,39.798L193.426,39.723L193.075,39.649L192.724,39.577L192.373,39.505L192.02,39.435L191.668,39.366L191.315,39.297L190.962,39.23L190.609,39.164L190.255,39.099L189.9,39.035L189.546,38.972L189.191,38.911L188.835,38.85L188.479,38.79L188.123,38.732L187.766,38.674L187.41,38.618L187.052,38.563L186.695,38.509L186.337,38.456L185.978,38.404L185.619,38.353L185.26,38.303L184.901,38.254L184.541,38.207L184.181,38.16L183.82,38.115L183.459,38.071L183.098,38.028L182.737,37.986L182.375,37.945L182.012,37.905L181.65,37.867L181.287,37.829L180.923,37.793L180.56,37.758L180.196,37.724L179.831,37.691L179.467,37.659L179.102,37.628L178.736,37.598L178.371,37.57L178.005,37.543L177.639,37.516L177.272,37.491L176.905,37.468L176.538,37.445L176.17,37.423L175.802,37.403L175.434,37.384L175.065,37.365L174.696,37.348L174.327,37.333L173.958,37.318L173.588,37.305L173.218,37.292L172.847,37.281L172.477,37.271L172.106,37.262L171.734,37.255L171.363,37.248L170.991,37.243L170.618,37.239L170.246,37.236L169.873,37.234L169.5,37.233L169.127,37.234Z" style="fill:rgb(235,235,235);"/>
+        </g>
+        <g transform="matrix(6.12323e-17,1,-1,6.12323e-17,347,-59)">
+            <path d="M209,82L317,253L101,253L209,82Z" style="fill:rgb(235,235,235);"/>
+        </g>
+    </g>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/images/safari.png b/src/main/webapp/static/js/paella/player/resources/images/safari.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6386e55bd9adabeaa82245e22d75e01c02105b9
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/images/safari.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/caption_mlangs_anonymous.png b/src/main/webapp/static/js/paella/player/resources/style/caption_mlangs_anonymous.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1c967d4709c3d6cb0af45bc5c115694456ddab9
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/caption_mlangs_anonymous.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/caption_mlangs_lock.png b/src/main/webapp/static/js/paella/player/resources/style/caption_mlangs_lock.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ab405918362fa610018c1f3c7a4453fcce65826
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/caption_mlangs_lock.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/chroma.svg b/src/main/webapp/static/js/paella/player/resources/style/chroma.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d4cb86b038d9f9ccfd35911bbe32034d0c3664d4
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/chroma.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 62 38" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M39.995,6.011L36.995,6.011L36.995,35L0,35L0,0L39.995,0L39.995,6.011ZM21.902,22.75L27.55,31.204C27.779,31.731 27.903,32.517 27.469,32.677C26.862,32.902 26.331,32.875 26.083,32.501L20.643,24.32L15.077,32.501C14.46,33.088 13.819,32.999 13.564,32.8C13.312,32.603 13.116,32.088 13.609,31.204L19.045,22.75L5.714,22.75L5.714,5.25L3.809,5.25L3.809,3.5L36.186,3.5L36.186,5.25L34.281,5.25L34.281,22.75L21.902,22.75ZM7.618,5.25L32.377,5.25L32.377,21L7.618,21L7.618,5.25ZM17.138,10.589L10.031,18.205L9.329,17.658L17.11,9.319L22.161,14.017L29.124,7.666L29.777,8.262L22.16,15.209L17.138,10.589Z"/>
+    <path d="M61.408,23.971C61.73,23.971 61.991,24.233 61.991,24.555L61.991,25.424C61.991,25.746 61.73,26.008 61.408,26.008L55.016,26.008L55.016,37.092L45.973,37.092L45.973,26.008L39.569,26.008C39.247,26.008 38.985,25.746 38.985,25.424L38.985,24.555C38.985,24.233 39.247,23.971 39.569,23.971L61.408,23.971ZM58.967,23.034L42.049,23.034C42.049,23.034 42.579,18.294 43.326,17.001C44.072,15.708 47.786,15.663 47.786,15.663C47.786,15.663 48.725,19.01 48.954,19.648C49.183,20.285 49.31,20.361 49.31,20.361C49.31,20.361 49.726,17.21 49.827,16.882C49.903,16.636 50.402,16.607 50.508,16.607C50.614,16.607 51.112,16.623 51.189,16.87C51.29,17.198 51.869,20.433 51.869,20.433C51.869,20.433 51.917,20.285 52.146,19.648C52.376,19.01 53.23,15.663 53.23,15.663C53.23,15.663 56.944,15.708 57.69,17.001C58.436,18.294 58.967,23.031 58.967,23.034ZM51.791,15.663C51.861,15.902 50.911,16.419 50.911,16.419L50.151,16.403C50.151,16.403 49.139,15.902 49.209,15.663C49.273,15.442 50.14,15.467 50.5,15.464C50.862,15.467 51.727,15.442 51.791,15.663ZM50.5,8.7C52.464,8.7 54.058,10.081 54.058,11.782C54.058,13.484 52.464,14.865 50.5,14.865C48.536,14.865 46.942,13.484 46.942,11.782C46.942,10.081 48.536,8.7 50.5,8.7Z"/>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/default_background.jpg b/src/main/webapp/static/js/paella/player/resources/style/default_background.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7bb8c19933662de96b89eed218849222a73b4237
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/default_background.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/default_background_paella.jpg b/src/main/webapp/static/js/paella/player/resources/style/default_background_paella.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ef5f20f725889cb38b37b8e48ae63d8c88c05f1
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/default_background_paella.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.eot b/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.eot
new file mode 100755
index 0000000000000000000000000000000000000000..28e54c9f98da55c9cf226d597311b66f2566b433
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.eot differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.svg b/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.svg
new file mode 100755
index 0000000000000000000000000000000000000000..bc1e07d5290e083d2e4522102504d2f48edcab08
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.svg
@@ -0,0 +1,561 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="icomoon" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
+<glyph unicode="&#xe900;" glyph-name="mini-camera" horiz-adv-x="1280" d="M1184-64c48.768 0 96 48.832 96 96v640c0 47.104-47.232 96-96 96h-224v96c0 58.88-35.008 96-96 96h-448c-60.928 0-96-37.12-96-96 0-58.944 0-96 0-96h-224c-48.704 0-96-48.896-96-96v-640c0-47.168 47.296-96 96-96h1088zM640 704c182.848 0 320-143.296 320-320 0-176.768-137.152-320-320-320-182.784 0-320 143.232-320 320 0 176.704 137.216 320 320 320z" />
+<glyph unicode="&#xe901;" glyph-name="captions" horiz-adv-x="1248" d="M535.712 122.144c-150.976 6.784-343.168 23.392-343.168 23.392-97.504 0-176.576 64.928-176.576 144.992 0 0-16 172.64-16 255.648 0 74.944 16 242.56 16 242.56 0 80.064 79.072 144.992 176.576 144.992 0 0 287.616 26.24 431.424 26.24 56.16 0 134.304-3.968 208.64-8.864 115.968-7.616 222.784-17.376 222.784-17.376 97.504 0 176.576-64.928 176.576-144.992 0 0 16.032-166.048 16.032-249.088 0-83.072-16.032-249.12-16.032-249.12 0-80.064-79.072-144.992-176.576-144.992 0 0-198.624-18.848-343.712-24.608l-87.68-167.808-88.288 169.024zM1099.072 317.216h-970.4v-103.616h970.4v103.616zM1099.072 454.24h-970.4v-103.648h970.4v103.648zM1099.072 591.264h-970.4v-103.648h970.4v103.648zM1099.072 728.288h-970.4v-103.648h970.4v103.648zM1099.072 865.312h-970.4v-103.648h970.4v103.648z" />
+<glyph unicode="&#xe902;" glyph-name="paintbrush" horiz-adv-x="1229" d="M1103.312 746.615c-57.405-64.893-214.512-244.095-339.292-386.46l-158.618 149.851c143.512 118.811 320.862 265.707 384.914 318.33 114.205 93.597 214.21 149.344 235.964 126.578 13.596-12.663-22.66-94.441-122.967-208.299zM736.224 328.609c-48.341-55.156-89.733-102.602-115.414-131.672l-187.623 170.281c30.515 25.214 81.273 67.201 139.886 115.828l163.15-154.438zM593.014 164.998v0.507c-109.069-389.246-592.779-165.525-592.779-165.525s203.031-23.92 203.031 152.608c0 171.041 186.414 186.462 197.895 187.25l192.155-174.389c0-0.028-0.302-0.45-0.302-0.45z" />
+<glyph unicode="&#xe903;" glyph-name="airplay" horiz-adv-x="1244" d="M1005.884-26.963h-767.098l383.549 411.128 383.549-411.128zM1243.21 192.902h-341.724l-55.852 73.057h324.446v620.984h-1095.854v-620.984h324.446l-55.852-73.057h-342.82v767.098h1243.21v-767.098z" />
+<glyph unicode="&#xe904;" glyph-name="arrow-down" horiz-adv-x="1365" d="M682.667-63.999l682.667 1024h-1365.333l682.667-1024z" />
+<glyph unicode="&#xe905;" glyph-name="arrow-left" horiz-adv-x="768" d="M0 448l768-512v1024l-768-512z" />
+<glyph unicode="&#xe906;" glyph-name="arrow-right" horiz-adv-x="768" d="M767.999 448l-768 512v-1024l768 512z" />
+<glyph unicode="&#xe907;" glyph-name="arrow-up" horiz-adv-x="1365" d="M682.667 960l-682.667-1024h1365.333l-682.667 1024z" />
+<glyph unicode="&#xe908;" glyph-name="back-10-s" horiz-adv-x="892" d="M243.25 745.951c59.954 31.876 128.529 49.978 201.398 49.978 234.793 0 425.125-187.755 425.125-419.411 0-231.622-190.332-419.378-425.125-419.378-165.987 0-309.777 93.878-379.772 230.73l0.297 1.156 57.575 25.963c59.954-117.165 183.032-197.533 325.17-197.533 201.001 0 363.982 160.768 363.982 359.061 0 198.326-162.981 359.094-363.982 359.094-63.95 0-124.069-16.285-176.293-44.858l141.279-127.141h-412.903l214.71 396.387 28.54-214.049zM109.17 286.875h-32.851v199.301c-7.902-7.18-18.255-14.36-31.095-21.54-12.804-7.215-24.327-12.583-34.534-16.173v30.219c18.364 8.226 34.388 18.194 48.143 29.906 13.718 11.676 23.449 23.039 29.156 34.053h21.181v-255.766zM193.237 412.492c0 30.115 3.256 54.374 9.768 72.707 6.512 18.369 16.169 32.52 28.973 42.488 12.84 9.969 28.973 14.953 48.435 14.953 14.34 0 26.925-2.754 37.753-8.261s19.755-13.419 26.815-23.806c7.060-10.352 12.584-23.004 16.572-37.887 4.024-14.883 6.036-34.96 6.036-60.195 0-29.906-3.219-54.025-9.658-72.359-6.439-18.369-16.096-32.555-28.9-42.593-12.84-10.003-29.047-15.022-48.618-15.022-25.791 0-46.021 8.818-60.727 26.42-17.633 21.192-26.449 55.698-26.449 103.554zM226.966 412.492c0-41.826 5.158-69.64 15.438-83.478 10.243-13.872 22.937-20.774 38.009-20.774s27.766 6.936 38.009 20.843c10.28 13.907 15.438 41.687 15.438 83.408 0 41.931-5.158 69.78-15.438 83.582-10.243 13.768-23.047 20.669-38.375 20.669-15.072 0-27.108-6.065-36.107-18.229-11.304-15.545-16.974-44.196-16.974-86.022zM396.965 341.945l32.449 4.88c1.829-12.408 6.914-21.924 15.218-28.511 8.341-6.622 19.974-9.899 34.936-9.899 15.072 0 26.266 2.928 33.546 8.783 7.317 5.821 10.938 12.687 10.938 20.564 0 7.076-3.219 12.652-9.658 16.696-4.5 2.788-15.694 6.309-33.546 10.596-24.071 5.786-40.753 10.805-50.082 15.022-9.292 4.252-16.352 10.073-21.145 17.567-4.792 7.459-7.207 15.72-7.207 24.747 0 8.226 1.975 15.859 5.926 22.865s9.329 12.827 16.133 17.462c5.122 3.59 12.072 6.622 20.889 9.097 8.816 2.51 18.255 3.764 28.351 3.764 15.218 0 28.571-2.091 40.058-6.274s19.974-9.829 25.425-16.94c5.487-7.11 9.255-16.661 11.304-28.581l-32.083-4.183c-1.463 9.515-5.707 16.94-12.694 22.237-6.987 5.333-16.865 8.017-29.632 8.017-15.072 0-25.827-2.37-32.266-7.145-6.439-4.74-9.658-10.282-9.658-16.661 0-4.078 1.317-7.703 3.987-10.944 2.671-3.381 6.878-6.134 12.584-8.365 3.292-1.15 12.95-3.799 29.010-7.982 23.23-5.89 39.436-10.735 48.582-14.5 9.182-3.764 16.389-9.237 21.62-16.417s7.865-16.103 7.865-26.769c0-10.422-3.219-20.251-9.585-29.452-6.402-9.202-15.584-16.347-27.62-21.366-12.036-5.054-25.681-7.564-40.863-7.564-25.169 0-44.338 4.984-57.544 14.953s-21.62 24.712-25.242 44.301z" />
+<glyph unicode="&#xe909;" glyph-name="back-30-s" horiz-adv-x="892" d="M243.25 745.951c59.954 31.876 128.529 49.978 201.398 49.978 234.793 0 425.125-187.755 425.125-419.411 0-231.622-190.332-419.378-425.125-419.378-165.987 0-309.777 93.878-379.772 230.73l0.297 1.156 57.575 25.963c59.954-117.165 183.032-197.533 325.17-197.533 201.001 0 363.982 160.768 363.982 359.061 0 198.326-162.981 359.094-363.982 359.094-63.95 0-124.069-16.285-176.293-44.858l141.279-127.141h-412.903l214.71 396.387 28.54-214.049zM16.857 333.947l32.815 4.183c3.768-17.741 10.17-30.498 19.242-38.34 9.072-7.808 20.084-11.711 33.107-11.711 15.438 0 28.461 5.089 39.107 15.266 10.646 10.213 15.95 22.83 15.95 37.887 0 14.36-4.902 26.211-14.743 35.552-9.877 9.306-22.389 13.977-37.57 13.977-6.219 0-13.938-1.15-23.157-3.485l3.622 27.466c2.195-0.244 3.951-0.349 5.304-0.349 13.975 0 26.559 3.485 37.753 10.422 11.194 6.971 16.755 17.671 16.755 32.136 0 11.502-4.061 20.983-12.219 28.511-8.121 7.529-18.657 11.293-31.534 11.293-12.767 0-23.413-3.834-31.937-11.467-8.487-7.633-13.975-19.101-16.389-34.402l-32.851 5.577c4.024 20.948 13.133 37.19 27.364 48.727s31.937 17.288 53.081 17.288c14.596 0 28.022-2.998 40.314-8.958 12.255-5.96 21.657-14.081 28.169-24.398s9.768-21.262 9.768-32.833c0-11.014-3.11-21.052-9.329-30.080-6.182-9.027-15.365-16.208-27.51-21.54 15.804-3.485 28.059-10.7 36.839-21.645 8.743-10.944 13.133-24.642 13.133-41.094 0-22.237-8.524-41.094-25.535-56.535-17.047-15.476-38.558-23.213-64.568-23.213-23.486 0-42.948 6.657-58.459 19.972s-24.327 30.603-26.522 51.794zM224.39 392.329c0 30.115 3.256 54.374 9.768 72.707 6.512 18.369 16.169 32.52 28.973 42.488 12.84 9.969 28.973 14.953 48.435 14.953 14.34 0 26.925-2.754 37.753-8.261s19.755-13.419 26.815-23.806c7.060-10.352 12.584-23.004 16.572-37.887 4.024-14.883 6.036-34.96 6.036-60.195 0-29.906-3.219-54.025-9.658-72.359-6.439-18.369-16.096-32.555-28.9-42.593-12.84-10.003-29.047-15.022-48.618-15.022-25.791 0-46.021 8.818-60.727 26.42-17.633 21.192-26.449 55.698-26.449 103.554zM258.119 392.329c0-41.826 5.158-69.64 15.438-83.478 10.243-13.872 22.937-20.774 38.009-20.774s27.766 6.936 38.009 20.843c10.28 13.907 15.438 41.687 15.438 83.408 0 41.931-5.158 69.78-15.438 83.582-10.243 13.768-23.047 20.669-38.375 20.669-15.072 0-27.108-6.065-36.107-18.229-11.304-15.545-16.974-44.196-16.974-86.022zM428.118 321.782l32.449 4.88c1.829-12.408 6.914-21.924 15.218-28.511 8.341-6.622 19.974-9.899 34.936-9.899 15.072 0 26.266 2.928 33.546 8.783 7.317 5.821 10.938 12.687 10.938 20.564 0 7.076-3.219 12.652-9.658 16.696-4.5 2.788-15.694 6.309-33.546 10.596-24.071 5.786-40.753 10.805-50.082 15.022-9.292 4.252-16.352 10.073-21.145 17.567-4.792 7.459-7.207 15.72-7.207 24.747 0 8.226 1.975 15.859 5.926 22.865s9.329 12.827 16.133 17.462c5.122 3.59 12.072 6.622 20.889 9.097 8.816 2.51 18.255 3.764 28.351 3.764 15.218 0 28.571-2.091 40.058-6.274s19.974-9.829 25.425-16.94c5.487-7.11 9.255-16.661 11.304-28.581l-32.083-4.183c-1.463 9.515-5.707 16.94-12.694 22.237-6.987 5.333-16.865 8.017-29.632 8.017-15.072 0-25.827-2.37-32.266-7.145-6.439-4.74-9.658-10.282-9.658-16.661 0-4.078 1.317-7.703 3.987-10.944 2.671-3.381 6.878-6.134 12.584-8.365 3.292-1.15 12.95-3.799 29.010-7.982 23.23-5.89 39.436-10.735 48.582-14.5 9.182-3.764 16.389-9.237 21.62-16.417s7.865-16.103 7.865-26.769c0-10.422-3.219-20.251-9.585-29.452-6.402-9.202-15.584-16.347-27.62-21.366-12.036-5.054-25.681-7.564-40.863-7.564-25.169 0-44.338 4.984-57.544 14.953s-21.62 24.712-25.242 44.301z" />
+<glyph unicode="&#xe90a;" glyph-name="comments-disabled" horiz-adv-x="996" d="M184.889 846.222l-113.778 113.778-71.111-71.111 50.176-50.176c-30.492-13.938-50.176-45.852-50.176-82.972v-506.852c0-49.977 35.669-85.333 85.333-85.333h142.222v-227.556l227.556 227.556h270.222l184.889-184.889 71.111 71.111-113.778 113.778h14.222c49.664 0 85.333 35.356 85.333 85.333v506.852c0 49.977-35.669 90.482-85.333 90.482h-696.889zM398.222 391.111c31.431 0 56.889-25.458 56.889-56.889s-25.458-56.889-56.889-56.889c-31.431 0-56.889 25.458-56.889 56.889s25.458 56.889 56.889 56.889zM568.889 391.111c31.431 0 56.889-25.458 56.889-56.889s-25.458-56.889-56.889-56.889c-31.431 0-56.889 25.458-56.889 56.889s25.458 56.889 56.889 56.889zM739.556 391.111c31.431 0 56.889-25.458 56.889-56.889s-25.458-56.889-56.889-56.889c-31.431 0-56.889 25.458-56.889 56.889s25.458 56.889 56.889 56.889zM227.556 391.111c31.431 0 56.889-25.458 56.889-56.889s-25.458-56.889-56.889-56.889c-31.431 0-56.889 25.458-56.889 56.889s25.458 56.889 56.889 56.889z" />
+<glyph unicode="&#xe90b;" glyph-name="comments" horiz-adv-x="1088" d="M96 960c-55.872 0-96-45.568-96-101.792v-570.208c0-56.224 40.128-96 96-96h160v-256l256 256h480c55.872 0 96 39.776 96 96v570.208c0 56.224-40.128 101.792-96 101.792h-896zM448 448c35.36 0 64-28.64 64-64s-28.64-64-64-64c-35.36 0-64 28.64-64 64s28.64 64 64 64zM640 448c35.36 0 64-28.64 64-64s-28.64-64-64-64c-35.36 0-64 28.64-64 64s28.64 64 64 64zM832 448c35.36 0 64-28.64 64-64s-28.64-64-64-64c-35.36 0-64 28.64-64 64s28.64 64 64 64zM256 448c35.36 0 64-28.64 64-64s-28.64-64-64-64c-35.36 0-64 28.64-64 64s28.64 64 64 64z" />
+<glyph unicode="&#xe90c;" glyph-name="edit" d="M678.559 798.828l169.684-169.659-388.945-388.945c-3.696 17.858-14.336 37.314-30.97 53.947-16.609 16.609-36.015 27.223-53.872 30.945-3.696 17.833-14.336 37.264-30.945 53.872s-36.015 27.223-53.872 30.945l388.92 388.895zM780.484 629.044l-33.917 33.942-308.249-308.249 33.917-33.942 308.249 308.249zM712.626 696.903l-33.917 33.917-306.425-306.425 33.917-33.917 306.425 306.425zM712.476 832.77l37.913 37.888c25.875 25.9 67.934 25.9 93.833 0l75.826-75.826c25.9-25.9 25.9-67.959 0-93.858l-37.888-37.888-169.684 169.684zM170.506 178.784l57.594-57.594-100.876-43.308 43.283 100.901zM190.861 226.288l63.763 148.63c15.71 4.62 40.086-5.395 58.892-24.176 17.308-17.333 29.022-41.559 27.148-57.544-0.2-1.024 0-2.048 0.574-2.897 0.599-0.849 1.474-1.424 2.498-1.623 10.64-2.098 40.81-8.991 56.12-24.301 18.807-18.807 29.122-43.208 24.501-58.942l-148.78-63.863-84.717 84.717z" />
+<glyph unicode="&#xe90d;" glyph-name="facebook" d="M1024 812.092c0 81.679-66.229 147.908-147.908 147.908h-728.184c-81.679 0-147.908-66.229-147.908-147.908v-728.184c0-81.679 66.229-147.908 147.908-147.908h728.184c81.679 0 147.908 66.229 147.908 147.908v728.184zM572.235-3.765v481.882h-90.353v120.471h90.353v45.176c0 0-1.958 100.954 45.176 165.647 43.701 60.024 93.274 74.511 150.588 75.294s105.412-30.118 105.412-30.118v-105.412c0 0-74.059 27.648-105.412-15.059-9.487-12.92-15.631-39.093-15.601-61.651 0.060-37.617 0.542-73.879 0.542-73.879h120.471v-120.471h-120.471v-481.882h-180.706z" />
+<glyph unicode="&#xe90e;" glyph-name="folder" horiz-adv-x="1271" d="M369.571 925.024c63.707-2.366 114.809-59.524 115.455-127.885v-46.026c207.316 0 414.704 2.505 622.020-0.035 20.398-0.765 27.364-3.131 40.185-8.384 39-16.003 66.651-55.106 68.303-97.688 2.011-152.898 2.981-305.901-0.036-458.799-3.376-104.263-98.289-194.506-204.407-196.454-257.484-1.6-515.040-4.697-772.524 0.035-104.753 3.201-199.739 92.678-201.822 199.029-1.329 202.786 0 405.572 0 608.393 0.862 67.108 59.541 125.276 127.773 127.815 68.339 0.835 136.714 0.835 205.054 0zM168.072 859.446c-33.685-0.417-64.389-26.996-65.718-60.846-2.657-203.551-3.986-407.172 0.036-610.689 2.298-70.657 67.298-131.26 139.623-132.582 256.694-1.566 513.46-4.697 770.118 0.035 71.392 2.192 136.427 61.751 137.828 134.286 1.006 151.576 5.889 303.292-0.036 454.764-1.831 27.762-45.895 41.086-45.895 41.086h-682.854c0 72.918 4.273 171.789-53.256 173.946-66.616 0.8-133.231 0-199.847 0zM559.634 819.913v56.285h141.241c35.769 0 62.958-22.74 62.746-54.978v-38.347l-59.463 0.353-0.141 14.477c-3.672 15.042-5.685 21.786-25.035 21.786l-119.349 0.424zM800.556 819.913v56.285h141.241c35.769 0 62.958-22.74 62.746-54.978v-38.347l-59.463 0.353-0.141 14.477c-3.672 15.042-5.685 21.786-25.035 21.786l-119.349 0.424z" />
+<glyph unicode="&#xe90f;" glyph-name="forward-30-s" horiz-adv-x="892" d="M626.523 745.951c-59.954 31.876-128.529 49.978-201.398 49.978-234.793 0-425.125-187.755-425.125-419.411 0-231.622 190.332-419.378 425.125-419.378 165.987 0 309.777 93.878 379.772 230.73l-0.297 1.156-57.575 25.963c-59.954-117.165-183.032-197.533-325.17-197.533-201.001 0-363.982 160.768-363.982 359.061 0 198.326 162.981 359.094 363.982 359.094 63.95 0 124.069-16.285 176.293-44.858l-141.279-127.141h412.903l-214.71 396.387-28.54-214.049zM297.665 333.947l32.815 4.183c3.768-17.741 10.17-30.498 19.242-38.34 9.072-7.808 20.084-11.711 33.107-11.711 15.438 0 28.461 5.089 39.107 15.266 10.646 10.213 15.95 22.83 15.95 37.887 0 14.36-4.902 26.211-14.743 35.552-9.877 9.306-22.389 13.977-37.57 13.977-6.219 0-13.938-1.15-23.157-3.485l3.622 27.466c2.195-0.244 3.951-0.349 5.304-0.349 13.975 0 26.559 3.485 37.753 10.422 11.194 6.971 16.755 17.671 16.755 32.136 0 11.502-4.061 20.983-12.219 28.511-8.121 7.529-18.657 11.293-31.534 11.293-12.767 0-23.413-3.834-31.937-11.467-8.487-7.633-13.975-19.101-16.389-34.402l-32.851 5.577c4.024 20.948 13.133 37.19 27.364 48.727s31.937 17.288 53.081 17.288c14.596 0 28.022-2.998 40.314-8.958 12.255-5.96 21.657-14.081 28.169-24.398s9.768-21.262 9.768-32.833c0-11.014-3.11-21.052-9.329-30.080-6.182-9.027-15.365-16.208-27.51-21.54 15.804-3.485 28.059-10.7 36.839-21.645 8.743-10.944 13.133-24.642 13.133-41.094 0-22.237-8.524-41.094-25.535-56.535-17.047-15.476-38.558-23.213-64.568-23.213-23.486 0-42.948 6.657-58.459 19.972s-24.327 30.603-26.522 51.794zM505.198 392.329c0 30.115 3.256 54.374 9.768 72.707 6.512 18.369 16.169 32.52 28.973 42.488 12.84 9.969 28.973 14.953 48.435 14.953 14.34 0 26.925-2.754 37.753-8.261s19.755-13.419 26.815-23.806c7.060-10.352 12.584-23.004 16.572-37.887 4.024-14.883 6.036-34.96 6.036-60.195 0-29.906-3.219-54.025-9.658-72.359-6.439-18.369-16.096-32.555-28.9-42.593-12.84-10.003-29.047-15.022-48.618-15.022-25.791 0-46.021 8.818-60.727 26.42-17.633 21.192-26.449 55.698-26.449 103.554zM538.927 392.329c0-41.826 5.158-69.64 15.438-83.478 10.243-13.872 22.937-20.774 38.009-20.774s27.766 6.936 38.009 20.843c10.28 13.907 15.438 41.687 15.438 83.408 0 41.931-5.158 69.78-15.438 83.582-10.243 13.768-23.047 20.669-38.375 20.669-15.072 0-27.108-6.065-36.107-18.229-11.304-15.545-16.974-44.196-16.974-86.022zM708.926 321.782l32.449 4.88c1.829-12.408 6.914-21.924 15.218-28.511 8.341-6.622 19.974-9.899 34.936-9.899 15.072 0 26.266 2.928 33.546 8.783 7.317 5.821 10.938 12.687 10.938 20.564 0 7.076-3.219 12.652-9.658 16.696-4.5 2.788-15.694 6.309-33.546 10.596-24.071 5.786-40.753 10.805-50.082 15.022-9.292 4.252-16.352 10.073-21.145 17.567-4.792 7.459-7.207 15.72-7.207 24.747 0 8.226 1.975 15.859 5.926 22.865s9.329 12.827 16.133 17.462c5.122 3.59 12.072 6.622 20.889 9.097 8.816 2.51 18.255 3.764 28.351 3.764 15.218 0 28.571-2.091 40.058-6.274s19.974-9.829 25.425-16.94c5.487-7.11 9.255-16.661 11.304-28.581l-32.083-4.183c-1.463 9.515-5.707 16.94-12.694 22.237-6.987 5.333-16.865 8.017-29.632 8.017-15.072 0-25.827-2.37-32.266-7.145-6.439-4.74-9.658-10.282-9.658-16.661 0-4.078 1.317-7.703 3.987-10.944 2.671-3.381 6.878-6.134 12.584-8.365 3.292-1.15 12.95-3.799 29.010-7.982 23.23-5.89 39.436-10.735 48.582-14.5 9.182-3.764 16.389-9.237 21.62-16.417s7.865-16.103 7.865-26.769c0-10.422-3.219-20.251-9.585-29.452-6.402-9.202-15.584-16.347-27.62-21.366-12.036-5.054-25.681-7.564-40.863-7.564-25.169 0-44.338 4.984-57.544 14.953s-21.62 24.712-25.242 44.301z" />
+<glyph unicode="&#xe910;" glyph-name="frames" horiz-adv-x="1536" d="M710.093 230.016l522.598-180.838c23.603-8.192 49.715 5.274 58.266 30.003l114.074 329.677c8.602 24.73-3.584 51.456-27.187 59.648l-307.558 106.394 16.282-48.64c28.262-86.067-17.152-178.278-101.376-205.926l-275.098-90.317zM1025.843 707.661l379.187-131.226c83.814-28.979 127.693-121.907 98.048-207.565l-108.493-319.488c-29.645-85.658-121.6-131.584-205.414-102.554l-653.158 226.048-216.832-71.168c-84.224-27.648-175.462 19.763-203.725 105.882l-107.059 320c-28.262 86.067 17.152 178.278 101.376 205.926l666.010 218.624c84.224 27.648 175.462-19.763 203.725-105.882l46.336-138.598zM877.261 818.714c-8.192 24.883-34.048 38.758-57.754 30.976l-684.237-224.563c-23.757-7.782-36.352-34.253-28.211-59.187l108.8-331.418c8.192-24.883 34.048-38.758 57.754-30.976l684.237 224.563c23.757 7.782 36.352 34.304 28.16 59.187l-108.749 331.418z" />
+<glyph unicode="&#xe911;" glyph-name="fullscreen" horiz-adv-x="1243" d="M127.707 884.005l99.291-99.291-51.712-51.712-99.291 99.291-75.995-75.995 0.512 151.479-0.512 0.512 0.512 0.512 0.183 50.505 50.505 0.183 0.512 0.512 0.512-0.512 151.479 0.512-75.995-75.995zM127.707 11.995l99.291 99.291-51.712 51.712-99.291-99.291-75.995 75.995 0.512-151.479-0.512-0.512 0.512-0.512 0.183-50.505 50.505-0.183 0.512-0.512 0.512 0.512 151.479-0.512-75.995 75.995zM1115.721 884.005l-99.291-99.291 51.712-51.712 99.291 99.291 75.995-75.995-0.512 151.479 0.512 0.512-0.512 0.512-0.183 50.505-50.505 0.183-0.512 0.512-0.512-0.512-151.479 0.512 75.995-75.995zM1115.721 11.995l-99.291 99.291 51.712 51.712 99.291-99.291 75.995 75.995-0.512-151.479 0.512-0.512-0.512-0.512-0.183-50.505-50.505-0.183-0.512-0.512-0.512 0.512-151.479-0.512 75.995 75.995zM219.429 704.003h804.571v-512.004h-804.571v512.004z" />
+<glyph unicode="&#xe912;" glyph-name="headphone" horiz-adv-x="1342" d="M246.947-63.897c-0.432 1.883-0.345 487.714 0 494.238l-99.65-0.097c-81.308 0-147.338-51.32-147.338-114.552v-265.135c0-63.232 66.030-114.552 147.338-114.552l99.65 0.097zM1094.669-63.897c0.432 1.883 0.345 487.714 0 494.238l99.65-0.097c81.308 0 147.338-51.32 147.338-114.552v-265.135c0-63.232-66.030-114.552-147.338-114.552l-99.65 0.097zM143.219 500.966c-1.306 11.688-1.977 23.552-1.977 35.593v70.338c-4.555 167.018 240.393 353.103 415.956 353.103h192.088c175.563 0 418.675-190.605 415.956-353.103v-70.338c0-12.041-0.671-23.905-1.977-35.593h-68.643v62.852c0 179.659-173.409 325.561-353.103 325.561h-176.552c-179.694 0-353.103-145.902-353.103-325.561v-62.852h-68.643z" />
+<glyph unicode="&#xe913;" glyph-name="help" d="M496.754 960c-274.167 0-496.754-222.587-496.754-496.754 0-274.204 222.587-496.792 496.754-496.792 274.204 0 496.792 222.587 496.792 496.792 0 274.167-222.587 496.754-496.792 496.754zM492.43 237.587c27.269 0 50.479-7.092 69.594-21.314s28.634-31.289 28.634-51.2c0-21.163-9.519-39.14-28.634-53.969s-42.325-22.263-69.594-22.263c-27.307 0-50.479 7.32-69.594 21.959s-28.672 32.73-28.672 54.272c0 20.29 9.557 37.471 28.672 51.503 19.115 13.995 42.287 21.011 69.594 21.011zM571.316 279.647h-163.499c0 40.77-0.91 96.863 13.615 136.268 10.505 28.558 38.609 68.153 61.326 95.384 20.897 25.107 58.596 43.349 74.942 68.153 18.811 28.52 41.946 76.952 40.884 109.037-1.555 47.597-28.027 107.899-108.999 108.999-79.607 1.1-109.037-39.633-109.037-54.5 11.909-3.11 24.159-7.509 31.934-13.615 25.372-20.025 22.566-34.095 22.566-54.537 0-16.574-14.298-34.020-28.027-45.094-13.691-11.036-46.573-23.021-67.356-23.021-24.766 0-57.306 14.222-74.335 29.772s-25.524 35.916-25.524 61.137c0 39.708 23.438 75.359 70.315 106.989 46.876 31.592 105.927 47.407 177.114 47.407 72.969 0 133.234-17.636 180.793-52.869s71.339-78.241 71.339-128.986c0-32.465-8.192-61.857-24.576-88.102-12.364-19.684-25.335-48.811-75.321-84.385-65.005-45.587-66.825-167.974-68.153-218.036z" />
+<glyph unicode="&#xe914;" glyph-name="info" d="M511.828 960.008c-282.682 0-511.835-229.153-511.835-511.835s229.153-511.835 511.835-511.835c282.682 0 511.835 229.153 511.835 511.835s-229.153 511.835-511.835 511.835zM511.828 894.865c246.686 0 446.693-204.176 446.693-455.999s-200.007-455.999-446.693-455.999c-246.686 0-446.693 204.176-446.693 455.999s200.007 455.999 446.693 455.999zM535.837 638.687h29.296l-81.335-423.279c-1.452-6.998-2.494-12.805-3.015-17.421-0.558-4.616-0.856-8.413-0.856-11.353 0-14.406 4.616-25.35 13.847-32.906 9.232-7.594 22.856-11.353 40.947-11.353 10.311 0 22.409 1.377 36.219 4.132 13.847 2.792 29.631 7.11 47.312 13.029v-35.438c-31.343-12.88-60.378-22.67-87.142-29.296-26.727-6.663-50.997-9.976-72.736-9.976-24.010 0-42.064 6.179-54.236 18.538s-18.277 31.082-18.277 56.172c0 6.998 0.67 15.485 1.936 25.424 1.303 9.976 3.052 21.032 5.286 33.204l66.371 338.072-91.274 16.602v29.891l167.659 35.959zM554.859 820.416c16.23 0 30.412-6.105 42.585-18.277s18.277-26.541 18.277-43.143c0-16.602-5.993-30.896-17.979-42.882s-26.28-17.979-42.882-17.979c-17.347 0-31.939 5.807-43.739 17.421s-17.682 26.094-17.682 43.441c0 16.974 5.993 31.455 17.979 43.441s26.467 17.979 43.441 17.979z" />
+<glyph unicode="&#xe915;" glyph-name="link" d="M760.209 603.669l9.513-9.513c53.055-53.055 53.055-139.084 0-192.14l-230.192-230.192c-53.055-53.055-139.084-53.055-192.14 0l-9.513 9.513-79.187-79.187c-26.237-26.237-68.787-26.237-95.025 0s-26.237 68.787 0 95.025l79.187 79.187-20.071 20.071c-53.055 53.055-53.055 139.084 0 192.14l230.192 230.192c53.055 53.055 139.084 53.055 192.14 0l20.071-20.071 97.664 97.664c26.237 26.237 68.787 26.237 95.025 0s26.237-68.787 0-95.025l-97.664-97.664zM418.447 261.908c29.394-12.691 55.030-8.32 72.525 9.175l190.049 190.049c17.495 17.495 21.866 43.131 9.027 72.778-37.45-21.549-69.537-17.548-90.854 3.769-22.553 22.553-25.72 57.141-2.502 92.248l-0.137 0.137c-23.323 23.323-61.143 23.323-84.466 0l-190.049-190.049c-20.040-20.040-22.859-50.796 0-84.466l5.279 5.279c26.237 26.237 68.787 26.237 95.025 0s26.237-68.787 0-95.025l-3.896-3.896z" />
+<glyph unicode="&#xe916;" glyph-name="mini-frames" d="M692.701 628.715h-30.118v60.235h-421.646v-301.175h30.118v-30.118h-60.235v361.41h481.881v-90.353zM813.171 598.597v-391.528h-511.998v391.528h511.998zM783.054 568.48h-451.763v-331.293h451.763v331.293z" />
+<glyph unicode="&#xe917;" glyph-name="mini-videocamera" horiz-adv-x="967" d="M233.244-11.492l136.533 157.525v-210.034h56.889v210.034l147.911-157.525h68.267l-136.533 210.034c0 0 66.219-3.3 68.267 21.902h136.533v398.108c52.338 29.639 85.333 82.66 85.333 150.016 0 105.7-89.145 191.431-199.111 191.431s-199.111-85.732-199.111-191.431c0-67.3 39.31-120.263 96.199-149.902h-195.641c58.254 29.639 99.442 82.603 99.442 149.902 0 105.7-89.145 191.431-199.111 191.431s-199.111-85.732-199.111-191.431c0-67.3 31.004-120.263 81.92-149.902h-53.476v-398.222h238.933c2.048-25.202 34.133-21.902 34.133-21.902l-136.533-210.034h68.267zM905.614 305.778c18.261 0 33.052 13.596 33.052 30.379v234.837c0 16.782-14.791 30.379-33.052 30.379l-137.614-66.389v-157.525l137.614-71.68z" />
+<glyph unicode="&#xe918;" glyph-name="mini-window" d="M870.4 960c84.787 0 153.6-68.813 153.6-153.6v-870.4h-1024v870.4c0 84.787 68.813 153.6 153.6 153.6h716.8zM972.8 652.8h-921.6v-665.6h921.6v665.6zM384 857.6c-42.394 0-76.8-34.406-76.8-76.8s34.406-76.8 76.8-76.8c42.394 0 76.8 34.406 76.8 76.8s-34.406 76.8-76.8 76.8zM179.2 857.6c-42.394 0-76.8-34.406-76.8-76.8s34.406-76.8 76.8-76.8c42.394 0 76.8 34.406 76.8 76.8s-34.406 76.8-76.8 76.8zM588.8 857.6c-42.394 0-76.8-34.406-76.8-76.8s34.406-76.8 76.8-76.8c42.394 0 76.8 34.406 76.8 76.8s-34.406 76.8-76.8 76.8z" />
+<glyph unicode="&#xe919;" glyph-name="mini-zoom-in" d="M547.008 382.464l46.368-46.368-0.128-0.128c-17.248-17.28-17.248-45.312 0-62.592l128.768-128.768c17.28-17.248 45.344-17.248 62.592 0l32.096 32.096c17.28 17.28 17.28 45.312 0 62.592l-128.768 128.768c-17.152 17.152-44.928 17.28-62.24 0.352l-46.56 46.592c28.096 35.456 44.864 80.288 44.864 128.992 0 114.784-93.216 208-208 208s-208-93.216-208-208c0-114.784 93.216-208 208-208 49.632 0 95.232 17.408 131.008 46.464zM416 704c88.32 0 160-71.68 160-160s-71.68-160-160-160c-88.32 0-160 71.68-160 160s71.68 160 160 160zM445.664 579.648h64v-64h-64v-64h-64v64h-64v64h64v64h64v-64z" />
+<glyph unicode="&#xe91a;" glyph-name="mini-zoom-out" d="M547.008 382.464l46.368-46.368-0.128-0.128c-17.248-17.28-17.248-45.312 0-62.592l128.768-128.768c17.28-17.248 45.344-17.248 62.592 0l32.096 32.096c17.28 17.28 17.28 45.312 0 62.592l-128.768 128.768c-17.152 17.152-44.928 17.28-62.24 0.352l-46.56 46.592c28.096 35.456 44.864 80.288 44.864 128.992 0 114.784-93.216 208-208 208s-208-93.216-208-208c0-114.784 93.216-208 208-208 49.632 0 95.232 17.408 131.008 46.464zM416 704c88.32 0 160-71.68 160-160s-71.68-160-160-160c-88.32 0-160 71.68-160 160s71.68 160 160 160zM317.664 579.648h192v-64h-192v64z" />
+<glyph unicode="&#xe91b;" glyph-name="pause" horiz-adv-x="1117" d="M744.727 960h372.364v-1024h-372.364v1024zM0 960h372.364v-1024h-372.364v1024z" />
+<glyph unicode="&#xe91c;" glyph-name="photo" horiz-adv-x="1126" d="M785.067-60.177h-785.067v750.933h785.067v-750.933zM375.467 724.89h-71.578l54.511 235.11 768-198.554-204.8-753.357-102.4 17.067-0.205 242.347 102.605-20.48 120.115 467.251-634.402 164.011-31.846-153.395zM716.8 622.49h-649.591v-477.867h649.591v477.867zM270.063 299.554l79.326 120.695 79.36-75.23 109.090 154.522 110.694-286.652h-514.082l76.117 142.063 59.494-55.398zM220.945 427.247c-28.194 0-51.063 21.914-51.063 48.981 0 27.034 22.869 48.947 51.063 48.947s51.063-21.914 51.063-48.947c0-27.068-22.869-48.981-51.063-48.981z" />
+<glyph unicode="&#xe91d;" glyph-name="pip" horiz-adv-x="1306" d="M670.897 359.724h635.586v-423.724h-635.586v423.724zM1200.552 430.345h-70.621v459.034h-1059.31v-670.897h529.655v-70.621h-600.276v812.138h1200.552v-529.655zM558.009 670.702l77.506 77.471v-317.793l-317.828 0.071 87.464 87.428-175.175 175.175 152.858 152.823 175.175-175.175z" />
+<glyph unicode="&#xe91e;" glyph-name="play" horiz-adv-x="981" d="M981.211 447.993l-981.22-511.988v1023.997l981.22-512.009z" />
+<glyph unicode="&#xe91f;" glyph-name="player-mode-1" horiz-adv-x="1339" d="M1339.077-64h-1339.077v1024h1339.077v-1024zM1260.308 881.231h-1181.538v-866.462h1181.538v866.462zM669.538 763.077c-173.883 0-315.077-141.194-315.077-315.077s141.194-315.077 315.077-315.077c173.883 0 315.077 141.194 315.077 315.077s-141.194 315.077-315.077 315.077zM883.161 442.526l-331.776-211.141v422.242l331.776-211.102z" />
+<glyph unicode="&#xe920;" glyph-name="player-mode-2" d="M1024-64h-1024v1024h1024v-1024zM963.765 297.412h-210.824v-301.176h210.824v301.176zM692.706 297.412h-632.471v-301.176h632.471v301.176zM963.765 899.765h-903.529v-542.118h903.529v542.118zM512 825.826c-108.032 0-195.765-88.305-195.765-197.12s87.733-197.12 195.765-197.12c108.032 0 195.765 88.305 195.765 197.12s-87.733 197.12-195.765 197.12zM632.471 625.272l-180.706-108.845v217.69l180.706-108.845z" />
+<glyph unicode="&#xe921;" glyph-name="player-mode-3" d="M1024-64h-1024v1024h1024v-1024zM692.706 357.647h-632.471v-361.412h632.471v361.412zM963.765 899.765h-210.824v-903.529h210.824v903.529zM692.706 899.765h-632.471v-481.882h632.471v481.882zM376.471 855.944c-108.032 0-195.765-88.305-195.765-197.12s87.733-197.12 195.765-197.12c108.032 0 195.765 88.305 195.765 197.12s-87.733 197.12-195.765 197.12zM496.941 655.39l-180.706-108.845v217.69l180.706-108.845z" />
+<glyph unicode="&#xe922;" glyph-name="present-mode-1" horiz-adv-x="1084" d="M1084.235-64v1024h-1084.235v-1024h1084.235zM602.353 297.412l150.528-249.645c6.385-15.601 9.848-38.942-2.259-43.701-16.926-6.656-31.744-5.873-38.671 5.24l-151.823 242.688-155.317-242.688c-17.227-17.408-35.117-14.788-42.225-8.885-7.048 5.843-12.529 21.112 1.265 47.345l148.149 249.645h-361.412v512h-60.235v60.235h903.529v-60.235h-60.235v-512h-331.294zM210.824 809.412v-451.765h662.588v451.765h-662.588zM465.589 656.264l-190.163-218.443-18.824 15.661 208.264 239.194 135.168-134.746 186.338 182.182 17.468-17.107-203.866-199.228-134.385 132.488z" />
+<glyph unicode="&#xe923;" glyph-name="present-mode-2" horiz-adv-x="1084" d="M1084.235 960v-1024h-1084.235v1024h1084.235zM812.213 357.647c14.276 0 25.901 11.595 25.901 25.901v38.551c0 14.306-11.625 25.901-25.901 25.901h-540.19c-14.276 0-25.901-11.595-25.901-25.901v-38.551c0-14.306 11.625-25.901 25.901-25.901h149.624v-331.294h240.941v331.294h149.624zM752.67 478.118c-0.030 0.482-13.222 141.101-31.774 179.531-18.583 38.46-111.014 39.816-111.014 39.816s-21.293-99.629-26.985-118.573c-5.722-18.974-6.897-23.371-6.897-23.371s-14.426 96.256-16.956 106.014c-1.867 7.349-14.276 7.831-16.926 7.831s-15.059-0.843-16.956-8.162c-2.5-9.788-12.86-103.544-12.86-103.544s-3.162 2.259-8.855 21.233c-5.722 18.944-29.094 118.573-29.094 118.573s-92.431-1.355-111.014-39.816c-18.583-38.49-31.774-179.531-31.774-179.531h421.105zM576 697.464c-1.687 7.228-24.365 6.445-33.882 6.536-9.457-0.090-32.196 0.693-33.882-6.536-1.837-7.861 24.727-24.305 24.727-24.305l19.938-0.482c0 0 24.937 16.926 23.1 24.787zM542.118 925.877c-51.531 0-93.365-45.327-93.365-101.135s41.833-101.105 93.365-101.105c51.531 0 93.365 45.297 93.365 101.105s-41.833 101.135-93.365 101.135z" />
+<glyph unicode="&#xe924;" glyph-name="present-mode-3" horiz-adv-x="2229" d="M1084.235-64v1024h-1084.235v-1024h1084.235zM2228.706-64h-1084.235v1024h1084.235v-1024zM602.353 297.412l150.528-249.645c6.385-15.601 9.848-38.942-2.259-43.701-16.926-6.656-31.744-5.873-38.671 5.24l-151.823 242.688-155.317-242.688c-17.227-17.408-35.117-14.788-42.225-8.885-7.048 5.843-12.529 21.112 1.265 47.345l148.149 249.645h-361.412v512h-60.235v60.235h903.529v-60.235h-60.235v-512h-331.294zM1956.683 448h-540.19c-14.306 0-25.901-11.595-25.901-25.901v-38.551c0-14.306 11.595-25.901 25.901-25.901h149.624v-331.294h240.941v331.294h149.624c14.276 0 25.901 11.595 25.901 25.901v38.551c0 14.306-11.595 25.901-25.901 25.901zM210.824 809.412v-451.765h662.588v451.765h-662.588zM465.589 656.264l-190.163-218.443-18.824 15.661 208.264 239.194 135.168-134.746 186.338 182.182 17.468-17.107-203.866-199.228-134.385 132.488zM1897.141 478.118c-0.030 0.482-13.222 141.101-31.774 179.531-18.583 38.46-111.014 39.816-111.014 39.816s-21.293-99.629-26.985-118.573c-5.722-18.974-6.897-23.371-6.897-23.371s-14.426 96.256-16.956 106.014c-1.867 7.349-14.276 7.831-16.926 7.831s-15.059-0.843-16.956-8.162c-2.5-9.788-12.86-103.544-12.86-103.544s-3.162 2.259-8.855 21.233c-5.722 18.944-29.094 118.573-29.094 118.573s-92.431-1.355-111.014-39.816c-18.583-38.49-31.774-179.531-31.774-179.531h421.105zM1720.471 697.464c-1.687 7.228-24.365 6.445-33.882 6.536-9.457-0.090-32.196 0.693-33.882-6.536-1.837-7.861 24.727-24.305 24.727-24.305l19.938-0.482c0 0 24.937 16.926 23.1 24.787zM1686.588 925.877c-51.531 0-93.365-45.327-93.365-101.135s41.833-101.105 93.365-101.105c51.531 0 93.365 45.297 93.365 101.105s-41.833 101.135-93.365 101.135z" />
+<glyph unicode="&#xe925;" glyph-name="present-mode-4" horiz-adv-x="2229" d="M2228.706-64v1024h-1084.235v-1024h1084.235zM1746.824 297.412l150.528-249.645c6.385-15.601 9.848-38.942-2.259-43.701-16.926-6.656-31.744-5.873-38.671 5.24l-151.823 242.688-155.317-242.688c-17.227-17.408-35.117-14.788-42.225-8.885-7.048 5.843-12.529 21.112 1.265 47.345l148.149 249.645h-361.412v512h-60.235v60.235h903.529v-60.235h-60.235v-512h-331.294zM1355.294 809.412v-451.765h662.588v451.765h-662.588zM1610.059 656.264l-190.163-218.443-18.824 15.661 208.264 239.194 135.168-134.746 186.338 182.182 17.468-17.107-203.866-199.228-134.385 132.488zM1084.235 960v-1024h-1084.235v1024h1084.235zM812.213 357.647c14.276 0 25.901 11.595 25.901 25.901v38.551c0 14.306-11.625 25.901-25.901 25.901h-540.19c-14.276 0-25.901-11.595-25.901-25.901v-38.551c0-14.306 11.625-25.901 25.901-25.901h149.624v-331.294h240.941v331.294h149.624zM752.67 478.118c-0.030 0.482-13.222 141.101-31.774 179.531-18.583 38.46-111.014 39.816-111.014 39.816s-21.293-99.629-26.985-118.573c-5.722-18.974-6.897-23.371-6.897-23.371s-14.426 96.256-16.956 106.014c-1.867 7.349-14.276 7.831-16.926 7.831s-15.059-0.843-16.956-8.162c-2.5-9.788-12.86-103.544-12.86-103.544s-3.162 2.259-8.855 21.233c-5.722 18.944-29.094 118.573-29.094 118.573s-92.431-1.355-111.014-39.816c-18.583-38.49-31.774-179.531-31.774-179.531h421.105zM576 697.464c-1.687 7.228-24.365 6.445-33.882 6.536-9.457-0.090-32.196 0.693-33.882-6.536-1.837-7.861 24.727-24.305 24.727-24.305l19.938-0.482c0 0 24.937 16.926 23.1 24.787zM542.118 925.877c-51.531 0-93.365-45.327-93.365-101.135s41.833-101.105 93.365-101.105c51.531 0 93.365 45.297 93.365 101.105s-41.833 101.135-93.365 101.135z" />
+<glyph unicode="&#xe926;" glyph-name="present-mode-5" horiz-adv-x="1621" d="M1621.333-64v568.889h-597.333v-568.889h597.333zM1351.111 135.111l84.366-137.415c3.413-8.562 5.262-21.333-1.223-23.95-9.074-3.641-16.981-3.214-20.708 2.873l-81.237 132.978-83.143-132.978c-9.188-9.529-18.773-8.107-22.585-4.864-3.755 3.214-6.684 11.577 0.683 25.941l81.18 137.415h-199.111v284.444h-28.444v28.444h483.556v-28.444h-28.444v-284.444h-184.889zM1137.778 419.556v-256h369.778v256h-369.778zM1279.972 332.772l-106.155-123.79-10.496 8.875 116.224 135.566 75.435-76.373 103.993 103.225 9.756-9.671-113.778-112.924-74.98 75.093zM0 960h1137.778v-426.667h-142.222v-568.889h-995.556v995.556zM863.175 391.111c9.017 0 16.327 7.31 16.327 16.299v24.292c0 8.988-7.31 16.299-16.327 16.299h-588.572c-9.017 0-16.327-7.31-16.327-16.299v-24.292c0-8.988 7.31-16.299 16.327-16.299h152.064v-341.333h284.444v341.333h152.064zM789.845 476.444c-0.085 0.882-13.909 146.916-33.337 186.852-19.513 40.050-116.508 41.444-116.508 41.444s-22.329-103.68-28.331-123.42c-5.973-19.74-7.225-24.32-7.225-24.32s-15.132 100.181-17.778 110.364c-1.991 7.652-14.99 8.135-17.778 8.135s-15.787-0.882-17.778-8.505c-2.645-10.183-13.511-107.748-13.511-107.748s-3.3 2.332-9.301 22.073c-6.002 19.74-30.521 123.42-30.521 123.42s-96.996-1.394-116.508-41.444c-19.484-40.050-33.337-186.852-33.337-186.852h441.913zM604.444 704.74c-1.764 7.054-25.572 6.286-35.556 6.372-9.927-0.114-33.792 0.683-35.556-6.372-1.934-7.623 25.941-23.609 25.941-23.609l20.935-0.484c0 0 26.169 16.469 24.235 24.092zM568.889 926.805c-54.073 0-97.963-44.032-97.963-98.304 0-54.244 43.89-98.304 97.963-98.304s97.963 44.060 97.963 98.304c0 54.272-43.89 98.304-97.963 98.304z" />
+<glyph unicode="&#xe927;" glyph-name="present-mode-6" horiz-adv-x="1621" d="M597.333-64v568.889h-597.333v-568.889h597.333zM327.111 135.111l84.366-137.415c3.413-8.562 5.262-21.333-1.223-23.95-9.074-3.641-16.981-3.214-20.708 2.873l-81.237 132.978-83.143-132.978c-9.188-9.529-18.773-8.107-22.585-4.864-3.755 3.214-6.684 11.577 0.683 25.941l81.18 137.415h-199.111v284.444h-28.444v28.444h483.556v-28.444h-28.444v-284.444h-184.889zM113.778 419.556v-256h369.778v256h-369.778zM255.972 332.772l-106.155-123.79-10.496 8.875 116.224 135.566 75.435-76.373 103.993 103.225 9.756-9.671-113.778-112.924-74.98 75.093zM1621.333-35.556h-995.556v568.889h-142.222v426.667h1137.778v-995.556zM1346.731 391.111c9.017 0 16.327 7.31 16.327 16.299v24.292c0 8.988-7.31 16.299-16.327 16.299h-588.572c-9.017 0-16.327-7.31-16.327-16.299v-24.292c0-8.988 7.31-16.299 16.327-16.299h152.064v-341.333h284.444v341.333h152.064zM1273.401 476.444c-0.057 0.654-13.881 146.887-33.337 186.852-19.513 40.050-116.508 41.444-116.508 41.444s-22.329-103.68-28.331-123.42c-5.973-19.74-7.225-24.32-7.225-24.32s-15.132 100.181-17.778 110.364c-1.991 7.652-14.99 8.135-17.778 8.135s-15.787-0.882-17.778-8.505c-2.645-10.183-13.511-107.748-13.511-107.748s-3.3 2.332-9.301 22.073c-6.002 19.74-30.521 123.42-30.521 123.42s-96.996-1.394-116.508-41.444c-19.484-40.050-33.337-186.852-33.337-186.852h441.913zM1088 704.74c-1.764 7.054-25.572 6.286-35.556 6.372-9.927-0.114-33.792 0.683-35.556-6.372-1.934-7.623 25.941-23.609 25.941-23.609l20.935-0.484c0 0 26.169 16.469 24.235 24.092zM1052.444 926.805c-54.073 0-97.963-44.032-97.963-98.304 0-54.244 43.89-98.304 97.963-98.304s97.963 44.060 97.963 98.304c0 54.272-43.89 98.304-97.963 98.304z" />
+<glyph unicode="&#xe928;" glyph-name="present-mode-7" horiz-adv-x="1827" d="M613.57 469.615v490.385h-613.57v-490.385h613.57zM336.010 641.232l86.653-118.452c3.515-7.362 5.424-18.377-1.245-20.646-9.327-3.127-17.463-2.768-21.283 2.491l-83.442 114.605-85.379-114.605c-9.465-8.22-19.318-7.002-23.22-4.207-3.875 2.768-6.891 9.991 0.692 22.362l83.387 118.452h-204.523v245.206h-29.226v24.521h496.723v-24.521h-29.226v-245.206h-189.91zM116.874 886.438v-220.686h379.821v220.686h-379.821zM262.919 811.631l-109.014-106.717-10.794 7.666 119.393 116.847 77.492-65.813 106.8 88.977 10.019-8.358-116.847-97.335-77.049 64.733zM1770.136 823.365v-715.029h-1067.119v715.029h1067.119zM1375.287 619.562v41.514c0 25.462-15.166 41.514-41.514 41.514h-193.73c-26.347 0-41.514-16.052-41.514-41.514 0-25.489 0-41.514 0-41.514h-96.865c-21.089 0-41.514-21.144-41.514-41.514v-276.757c0-20.397 20.425-41.514 41.514-41.514h470.486c21.089 0 41.514 21.117 41.514 41.514v276.757c0 20.369-20.425 41.514-41.514 41.514h-96.865zM1233.062 564.21c63.239 0 110.703-49.567 110.703-110.703s-47.464-110.703-110.703-110.703c-63.239 0-110.703 49.567-110.703 110.703s47.464 110.703 110.703 110.703zM612.020 436.515v-489.5h-612.020v489.5h612.020zM465.062 156.797c4.428 0.028 8.026 3.598 8.026 8.026v11.956c0 4.4-3.598 7.998-8.026 7.998h-318.104c-4.428 0-8.026-3.598-8.026-7.998v-11.956c0-4.428 3.598-8.026 8.026-8.026h82.557v-167.825h152.991v167.825h82.557zM424.877 198.753c-0.028 0.332-7.472 72.234-17.934 91.883-10.489 19.705-62.685 20.369-62.685 20.369s-12.011-50.979-15.222-60.665c-3.238-9.714-3.902-11.956-3.902-11.956s-8.137 49.263-9.548 54.244c-1.079 3.764-8.081 4.013-9.576 4.013s-8.496-0.443-9.548-4.179c-1.439-5.009-7.279-52.999-7.279-52.999s-1.771 1.162-5.009 10.877c-3.21 9.686-16.412 60.665-16.412 60.665s-52.169-0.664-62.658-20.369c-10.489-19.677-17.962-91.883-17.962-91.883h237.734zM325.134 311.005c-0.941 3.487-13.755 3.1-19.124 3.127-5.341-0.028-18.155 0.36-19.124-3.127-1.024-3.736 13.949-11.596 13.949-11.596l11.264-0.249c0 0 14.087 8.109 13.035 11.845zM306.010 420.186c-29.087 0-52.694-21.642-52.694-48.322s23.607-48.322 52.694-48.322c29.087 0 52.694 21.642 52.694 48.322s-23.607 48.322-52.694 48.322z" />
+<glyph unicode="&#xe929;" glyph-name="present-mode-8" horiz-adv-x="1735" d="M1137.778 561.778v398.222h-1137.778v-995.556h1052.444v597.333h85.333zM623.076 312.889l160.683-240.469c6.485-14.99 10.041-37.348-2.304-41.899-17.294-6.4-32.37-5.632-39.452 5.006l-154.738 232.704-158.35-232.704c-17.55-16.697-35.783-14.165-43.036-8.505-7.168 5.604-12.772 20.252 1.28 45.397l154.652 240.469h-379.278v497.778h-54.158v49.778h921.031v-49.778h-54.158v-497.778h-352.171zM216.718 810.667v-448h704.341v448h-704.341zM487.538 658.802l-202.155-216.633-19.996 15.559 221.383 237.198 143.673-133.632 198.087 180.651 18.574-16.953-216.69-197.604-142.876 131.413zM1735.111 533.333v-597.333h-654.222v597.333h654.222zM1576.818 192c5.404 0 9.785 4.38 9.785 9.785v14.564c0 5.404-4.38 9.785-9.785 9.785h-337.636c-5.404 0-9.785-4.38-9.785-9.785v-14.564c0-5.404 4.38-9.785 9.785-9.785h87.040v-204.8h163.556v204.8h87.040zM1535.061 243.2c-0.028 0.313-7.993 88.121-19.172 112.1-11.236 24.036-67.015 24.889-67.015 24.889s-12.828-62.208-16.27-74.069c-3.442-11.833-4.153-14.592-4.153-14.592s-8.704 60.132-10.24 66.219c-1.138 4.608-8.619 4.892-10.212 4.892s-9.074-0.54-10.212-5.092c-1.536-6.116-7.765-64.683-7.765-64.683s-1.906 1.422-5.376 13.255c-3.442 11.861-17.55 74.069-17.55 74.069s-55.751-0.853-66.987-24.889c-11.207-24.007-19.172-112.1-19.172-112.1h254.123zM1428.452 380.188c-1.024 4.21-14.706 3.755-20.452 3.812-5.689-0.057-19.428 0.398-20.452-3.812-1.109-4.58 14.933-14.165 14.933-14.165l12.032-0.284c0 0 15.047 9.87 13.938 14.45zM1408 513.422c-31.090 0-56.348-26.425-56.348-58.994 0-32.54 25.259-58.965 56.348-58.965s56.348 26.425 56.348 58.965c0 32.569-25.259 58.994-56.348 58.994z" />
+<glyph unicode="&#xe92a;" glyph-name="present-mode-9" horiz-adv-x="1735" d="M1735.111-35.556v995.556h-1137.778v-398.222h85.333v-597.333h1052.444zM1220.409 312.889l160.683-240.469c6.485-14.99 10.041-37.348-2.304-41.899-17.294-6.4-32.37-5.632-39.452 5.006l-154.738 232.704-158.35-232.704c-17.55-16.697-35.783-14.165-43.036-8.505-7.168 5.604-12.772 20.252 1.28 45.397l154.652 240.469h-379.278v497.778h-54.158v49.778h921.031v-49.778h-54.158v-497.778h-352.171zM814.052 810.667v-448h704.341v448h-704.341zM1084.871 658.802l-202.155-216.633-19.996 15.559 221.383 237.198 143.673-133.632 198.087 180.651 18.574-16.953-216.69-197.604-142.876 131.413zM654.222 533.333v-597.333h-654.222v597.333h654.222zM495.929 192c5.404 0 9.785 4.38 9.785 9.785v14.564c0 5.404-4.38 9.785-9.785 9.785h-337.636c-5.404 0-9.785-4.38-9.785-9.785v-14.564c0-5.404 4.38-9.785 9.785-9.785h87.040v-204.8h163.556v204.8h87.040zM454.172 243.2c-0.028 0.313-7.993 88.121-19.172 112.1-11.236 24.036-67.015 24.889-67.015 24.889s-12.828-62.208-16.27-74.069c-3.442-11.833-4.153-14.592-4.153-14.592s-8.704 60.132-10.24 66.219c-1.138 4.608-8.619 4.892-10.212 4.892s-9.074-0.54-10.212-5.092c-1.536-6.116-7.765-64.683-7.765-64.683s-1.906 1.422-5.376 13.255c-3.442 11.861-17.55 74.069-17.55 74.069s-55.751-0.853-66.987-24.889c-11.207-24.007-19.172-112.1-19.172-112.1h254.123zM347.563 380.188c-1.024 4.21-14.706 3.755-20.452 3.812-5.689-0.057-19.428 0.398-20.452-3.812-1.109-4.58 14.933-14.165 14.933-14.165l12.032-0.284c0 0 15.047 9.87 13.938 14.45zM327.111 513.422c-31.090 0-56.348-26.425-56.348-58.994 0-32.54 25.259-58.965 56.348-58.965s56.348 26.425 56.348 58.965c0 32.569-25.259 58.994-56.348 58.994z" />
+<glyph unicode="&#xe92b;" glyph-name="present-mode-10" horiz-adv-x="1671" d="M1077.76 798.019v161.981h-1077.76v-943.158h996.918v781.177h80.842zM590.201 346.947l152.199-227.813c6.171-14.201 9.512-35.382-2.183-39.693-16.357-6.063-30.666-5.336-37.349 4.743l-146.594 220.456-149.989-220.456c-16.627-15.818-33.9-13.42-40.771-8.057-6.791 5.309-12.072 19.187 1.213 43.008l146.486 227.813h-359.235v471.579h-51.335v47.158h872.475v-47.158h-51.335v-471.579h-333.581zM205.285 818.526v-424.421h667.19v424.421h-667.19zM461.824 674.654l-191.515-205.231-18.917 14.74 209.677 224.714 136.111-126.599 187.635 171.143 17.597-16.061-205.258-187.203-135.33 124.497zM1654.784 314.045c8.677 0 15.71-7.060 15.71-15.737v-23.417c0-8.677-7.033-15.737-15.71-15.737h-172.248v-298.685h-243.685v298.685h-172.571c-8.677 0-15.737 7.060-15.737 15.737v23.417c0 8.677 7.060 15.737 15.737 15.737h588.504zM1589.005 339.294h-455.896c0 0 14.282 127.731 34.412 162.573 20.103 34.843 120.185 36.056 120.185 36.056s25.304-90.193 31.475-107.385c6.171-17.165 9.593-19.213 9.593-19.213s11.21 84.911 13.932 93.75c2.048 6.629 15.495 7.411 18.351 7.411s16.276-0.431 18.351-7.087c2.722-8.839 18.324-96.013 18.324-96.013s1.293 3.988 7.464 21.154c6.198 17.192 29.211 107.385 29.211 107.385s100.083-1.213 120.185-36.056c20.103-34.843 34.412-162.493 34.412-162.573zM1395.631 537.923c1.886-6.44-23.714-20.372-23.714-20.372l-20.48 0.431c0 0-27.271 13.501-25.384 19.941 1.725 5.955 25.088 5.282 34.789 5.363 9.755-0.081 33.064 0.593 34.789-5.363zM1360.842 725.558c52.925 0 95.879-37.214 95.879-83.052 0-45.864-42.954-83.079-95.879-83.079s-95.879 37.214-95.879 83.079c0 45.837 42.954 83.052 95.879 83.052z" />
+<glyph unicode="&#xe92c;" glyph-name="presentation-mode" horiz-adv-x="1210" d="M1179.772-64h-558.545v527.515h558.545v-527.515zM561.648-16.803c0 0-73.48-54.148-133.151-14.895-38.416 25.259-54.893 85.799-54.893 85.799l-62.681-65.877v164.988h157.293l-60.447-67.056c0 0 6.672-26.717 37.981-41.674 31.279-14.957 89.864 23.583 89.864 23.583l26.034-84.868zM1112.312-1.939c-0.062 0.465-13.25 131.165-31.806 166.881-18.587 35.747-111.057 37.019-111.057 37.019s-21.256-92.594-26.965-110.251c-5.71-17.625-6.92-21.69-6.92-21.69s-14.398 89.46-16.943 98.552c-1.893 6.827-14.305 7.261-16.943 7.261s-15.050-0.807-16.943-7.602c-2.513-9.092-12.878-96.225-12.878-96.225s-3.165 2.079-8.875 19.704c-5.71 17.656-29.075 110.251-29.075 110.251s-92.47-1.272-111.057-37.019c-18.587-35.778-31.806-166.881-31.806-166.881h421.267zM935.564 201.961c-1.676 7.23-24.359 6.423-33.885 6.516-9.464-0.093-32.209 0.714-33.885-6.516-1.831-7.851 24.731-24.297 24.731-24.297l19.952-0.496c0 0 24.917 16.943 23.087 24.793zM776.378 494.545v465.455h-776.378v-744.727h590.196v217.212h-159.651l108.575-135.944c4.561-11.326 7.044-28.3-1.614-31.775-12.133-4.841-22.745-4.251-27.71 3.817l-108.699 114.44-111.244-114.44c-12.319-12.66-25.135-10.768-30.224-6.454-5.027 4.251-8.968 15.36 0.9 34.413l105.317 135.944h-272.136v434.424h-31.030v31.030h651.636v-31.030h-31.030v-372.364h93.091zM901.679 430.406c-51.541 0-93.401-45.304-93.401-101.128s41.86-101.159 93.401-101.159c51.541 0 93.401 45.335 93.401 101.159s-41.86 101.128-93.401 101.128zM652.257 494.545v372.364h-527.515v-403.394h465.455v31.030h62.061zM1089.164 525.576v164.988l-62.65-65.877c0 0-16.477 60.54-54.893 85.799-59.671 39.253-133.182-14.895-133.182-14.895l26.065-84.868c0 0 58.554 38.54 89.864 23.583s37.981-41.674 37.981-41.674l-60.447-67.056h157.262zM333.39 728.452l-136.161-172.094-13.467 12.35 149.101 188.447 96.815-106.186 133.43 143.546 12.505-13.467-145.967-156.982-96.256 104.386z" />
+<glyph unicode="&#xe92d;" glyph-name="screen" horiz-adv-x="1248" d="M1231.973 751.406c0 97.516-79.063 176.59-176.572 176.59 0 0-287.618 31.983-431.427 31.983s-431.427-31.983-431.427-31.983c-97.509 0-176.572-79.074-176.572-176.59 0 0-16.014-204.177-16.014-295.428 0-101.103 16.014-311.394 16.014-311.394 0-97.516 79.063-176.59 176.572-176.59 0 0 303.632-31.983 447.441-31.983 138.807 0 415.412 31.983 415.412 31.983 97.509 0 176.572 79.074 176.572 176.59 0 0 16.014 202.257 16.014 303.411s-16.014 303.411-16.014 303.411z" />
+<glyph unicode="&#xe92e;" glyph-name="slideshow" horiz-adv-x="1088" d="M1088-64h-1088v832h1088v-832zM1024 704h-960v-704h960v704zM544 608c-141.28 0-256-114.72-256-256s114.72-256 256-256c141.28 0 256 114.72 256 256s-114.72 256-256 256zM717.568 347.552l-269.568-171.552v343.072l269.568-171.52zM1024 832v-32h-960v32h960zM960 896v-32h-832v32h832zM896 960v-32h-704v32h704z" />
+<glyph unicode="&#xe92f;" glyph-name="social" horiz-adv-x="1106" d="M803.512 194.354c47.882 51.528 88.842 69.878 134.062 69.878 90.481 0 163.84-73.359 163.84-163.84s-73.359-163.84-163.84-163.84c-90.481 0-163.84 73.359-163.84 163.84 0 16.957 2.58 33.341 0.942 17.203l-493.773 213.156c-30.843-30.966-71.803-49.316-117.064-49.316-90.481 0-163.84 73.359-163.84 163.84s73.359 163.84 163.84 163.84c45.261 0 86.221-18.35 123.904-56.852l374.538 216.269c2.089-16.548-2.499 4.997-2.499 27.648 0 90.481 73.359 163.84 163.84 163.84s163.84-73.359 163.84-163.84c0-90.522-73.359-163.84-163.84-163.84-45.261 0-86.221 18.309-127.549 61.112l-371.835-214.712c-1.147 10.691 3.441-10.854 3.441-33.464s-4.588-44.155-5.898-42.967l481.731-207.954z" />
+<glyph unicode="&#xe930;" glyph-name="star-empty" d="M504.109 960l-113.182-348.341h-366.261l296.297-215.251-113.152-348.341 296.297 215.281 296.297-215.281-113.182 348.341 296.297 215.251h-366.231l-113.182 348.341zM502.152 859.919l90.534-278.648h293.015l-237.056-172.243 90.564-278.679-237.056 172.243-237.056-172.243 90.534 278.679-237.026 172.243h293.015l90.534 278.648z" />
+<glyph unicode="&#xe931;" glyph-name="star" d="M511.836 959.987l114.928-353.669h371.869l-300.845-218.566 114.895-353.669-300.845 218.566-300.845-218.566 114.928 353.669-300.845 218.566h371.869l114.895 353.669z" />
+<glyph unicode="&#xe932;" glyph-name="stats" horiz-adv-x="1252" d="M103.614 388.456l164.599 197.518 223.118-167.329 148.783 241.74 212.423-115.864 326.353 403.115c19.646-15.891 39.291-31.82 58.937-47.711l-366.099-452.267-204.762 111.692-157.468-249.135-229.148 171.842-176.735-212.082v-210.034h1099.852v-75.852h-1175.704c0 0 0 632.111 0 948.148h75.852v-543.782z" />
+<glyph unicode="&#xe933;" glyph-name="twitter" d="M1024.003 847.776c0 61.978-50.245 112.223-112.223 112.223h-799.552c-61.978 0-112.223-50.245-112.223-112.223v-799.552c0-61.978 50.245-112.223 112.223-112.223h799.552c61.978 0 112.223 50.245 112.223 112.223v799.552zM321.331 49.786c-67.098 0-122.22 60.902-122.22 128v503.322c0 67.098 63.557 122.689 130.655 122.689s125.344-61.145 125.344-128.243v-56.893h225.627c67.098 0 115.712-46.67 115.712-113.768s-46.687-113.785-113.785-113.785h-225.627l-1.927-85.322h225.627c67.098 0 117.638-59.704 117.638-126.802s-62.828-129.197-129.926-129.197h-347.118z" />
+<glyph unicode="&#xe934;" glyph-name="user" horiz-adv-x="888" d="M750.807 652.834c0-169.65-137.529-307.179-307.179-307.179s-307.179 137.529-307.179 307.179c0 169.65 137.529 307.179 307.179 307.179s307.179-137.529 307.179-307.179zM-0.024-63.927c69.324 219.66 241.954 375.442 443.702 375.442s374.378-155.782 443.702-375.442h-887.404z" />
+<glyph unicode="&#xe935;" glyph-name="volume-high" horiz-adv-x="1161" d="M682.086 684.305c162.065-14.063 250.47-353.553 24.61-448.205-49.732-20.855-110.285 47.172-32.973 78.711 110.319 47.479 126.601 237.67-8.67 286.788 0 0-61.099 84.924 17.033 82.705zM716.282 831.732c35.765-5.276 36.685-12.453 51.654-19.754 192.322-94.045 279.189-360.597 169.931-551.569-46.624-81.469-123.062-145.085-211.831-176.863 0 0-19.876-5.828-35.581 3.19-36.685 20.981-19.57 56.991 55.703 99.32 200.113 112.51 197.537 474.947-48.832 563.102 0 0-60.611 88.094 18.956 82.573zM771.203 951.327c35.515-4.252 219.177-101.293 298.127-248.94 139.059-260.028 13.339-627.602-282.371-736.648 0 0-77.45-0.75-59.275 52.356 10.921 32.097 55.607 35.932 91.122 55.44 201.253 110.714 286.122 395.169 169.239 599.506-51.605 90.289-136.225 160.485-234.434 195.584 0 0-62.193 85.036 17.591 82.702zM221.833 652.8l279.245 307.2c43.725 0 79.189-35.465 79.189-79.189v-831.488c0-43.725-35.465-79.189-79.189-79.189l-279.245 307.2h-140.766c-44.783 0-81.067 36.284-81.067 81.067v213.333c0 44.783 36.284 81.067 81.067 81.067h140.766z" />
+<glyph unicode="&#xe936;" glyph-name="volume-low" horiz-adv-x="883" d="M705.607 674.798c167.654-14.548 259.107-365.745 25.459-463.66-51.447-21.575-114.088 48.799-34.11 81.426 114.123 49.117 130.966 245.866-8.969 296.678 0 0-63.206 87.852 17.62 85.557zM229.482 642.207l288.874 317.793c45.233 0 81.92-36.687 81.92-81.92v-860.16c0-45.233-36.687-81.92-81.92-81.92l-288.874 317.793h-145.62c-46.327 0-83.862 37.535-83.862 83.862v220.69c0 46.327 37.535 83.862 83.862 83.862h145.62z" />
+<glyph unicode="&#xe937;" glyph-name="volume-mid" d="M705.607 674.798c167.654-14.548 259.107-365.745 25.459-463.66-51.447-21.575-114.088 48.799-34.11 81.426 114.123 49.117 130.966 245.866-8.969 296.678 0 0-63.206 87.852 17.62 85.557zM740.982 827.309c36.998-5.458 37.95-12.883 53.435-20.435 198.954-97.288 288.817-373.031 175.79-570.589-48.231-84.278-127.305-150.088-219.135-182.962 0 0-20.562-6.029-36.808 3.3-37.95 21.704-20.244 58.956 57.624 102.745 207.014 116.39 204.348 491.325-50.516 582.52 0 0-62.701 91.132 19.61 85.42zM229.482 642.207l288.874 317.793c45.233 0 81.92-36.687 81.92-81.92v-860.16c0-45.233-36.687-81.92-81.92-81.92l-288.874 317.793h-145.62c-46.327 0-83.862 37.535-83.862 83.862v220.69c0 46.327 37.535 83.862 83.862 83.862h145.62z" />
+<glyph unicode="&#xe938;" glyph-name="volume-mute" d="M627.613 173.483v-104.316c0-42.314-34.321-76.635-76.635-76.635l-270.237 297.29h-136.225c-43.338 0-78.452 35.113-78.452 78.452v206.452c0 43.338 35.113 78.452 78.452 78.452h3.402l479.694-479.694zM932.435-39.939l-932.435 932.402 67.518 67.551 257.784-257.817 225.676 248.27c42.314 0 76.635-34.321 76.635-76.635v-473.914l372.34-372.34-67.518-67.518z" />
+<glyph unicode="&#xe939;" glyph-name="windowed" horiz-adv-x="1306" d="M1189.923 814.2l95.868 95.868-49.929 49.929-95.868-95.868-73.375 73.375 0.494-146.255-0.494-0.494 0.494-0.494 0.177-48.764 48.764-0.177 0.494-0.494 0.494 0.494 146.255-0.494-73.375 73.375zM95.868 102.484l-95.868-95.868 49.929-49.929 95.868 95.868 73.375-73.375-0.494 146.255 0.494 0.494-0.494 0.494-0.177 48.764-48.764 0.177-0.494 0.494-0.494-0.494-146.255 0.494 73.375-73.375zM95.868 814.2l-95.868 95.868 49.929 49.929 95.868-95.868 73.375 73.375-0.494-146.255 0.494-0.494-0.494-0.494-0.177-48.764-48.764-0.177-0.494-0.494-0.494 0.494-146.255-0.494 73.375 73.375zM1189.923 102.484l95.868-95.868-49.929-49.929-95.868 95.868-73.375-73.375 0.494 146.255-0.494 0.494 0.494 0.494 0.177 48.764 48.764 0.177 0.494 0.494 0.494-0.494 146.255 0.494-73.375-73.375zM254.482 705.518h776.828v-494.348h-776.828v494.348z" />
+<glyph unicode="&#xe93a;" glyph-name="zoom-in" d="M551.676 385.015l54.133-54.133-0.121-0.121c-17.703-17.72-17.703-46.479 0-64.2l132.061-132.061c17.72-17.72 46.479-17.72 64.2 0l32.907 32.907c17.72 17.72 17.72 46.479 0 64.2l-132.061 132.061c-17.599 17.582-46.080 17.703-63.818 0.364l-55.261 55.261c25.808 34.677 41.099 77.65 41.099 124.164 0 114.948-93.323 208.271-208.271 208.271s-208.271-93.323-208.271-208.271c0-114.948 93.323-208.271 208.271-208.271 51.547 0 98.755 18.762 135.133 49.829zM416.265 699.661c86.363 0 156.481-69.996 156.481-156.203s-70.118-156.203-156.481-156.203c-86.363 0-156.481 69.996-156.481 156.203s70.118 156.203 156.481 156.203zM451.254 421.966h-69.424v86.78h-86.78v70.083h86.78v86.12h69.424v-86.12h86.78v-70.083h-86.78v-86.78z" />
+<glyph unicode="&#xe93b;" glyph-name="zoom" d="M551.676 385.015l54.133-54.133-0.121-0.121c-17.703-17.72-17.703-46.479 0-64.2l132.061-132.061c17.72-17.72 46.479-17.72 64.2 0l32.907 32.907c17.72 17.72 17.72 46.479 0 64.2l-132.061 132.061c-17.599 17.582-46.080 17.703-63.818 0.364l-55.261 55.261c25.808 34.677 41.099 77.65 41.099 124.164 0 114.948-93.323 208.271-208.271 208.271s-208.271-93.323-208.271-208.271c0-114.948 93.323-208.271 208.271-208.271 51.547 0 98.755 18.762 135.133 49.829zM416.265 699.661c86.363 0 156.481-69.996 156.481-156.203s-70.118-156.203-156.481-156.203c-86.363 0-156.481 69.996-156.481 156.203s70.118 156.203 156.481 156.203z" />
+<glyph unicode="&#xe93c;" glyph-name="home" d="M1024 369.556l-512 397.426-512-397.428v162.038l512 397.426 512-397.428zM896 384v-384h-256v256h-256v-256h-256v384l384 288z" />
+<glyph unicode="&#xe93d;" glyph-name="home2" d="M512 928l-512-512 96-96 96 96v-416h256v192h128v-192h256v416l96-96 96 96-512 512zM512 512c-35.346 0-64 28.654-64 64s28.654 64 64 64c35.346 0 64-28.654 64-64s-28.654-64-64-64z" />
+<glyph unicode="&#xe93e;" glyph-name="home3" d="M1024 352l-192 192v288h-128v-160l-192 192-512-512v-32h128v-320h320v192h128v-192h320v320h128z" />
+<glyph unicode="&#xe93f;" glyph-name="office" d="M0-64h512v1024h-512v-1024zM320 832h128v-128h-128v128zM320 576h128v-128h-128v128zM320 320h128v-128h-128v128zM64 832h128v-128h-128v128zM64 576h128v-128h-128v128zM64 320h128v-128h-128v128zM576 640h448v-64h-448zM576-64h128v256h192v-256h128v576h-448z" />
+<glyph unicode="&#xe940;" glyph-name="newspaper" d="M896 704v128h-896v-704c0-35.346 28.654-64 64-64h864c53.022 0 96 42.978 96 96v544h-128zM832 128h-768v640h768v-640zM128 640h640v-64h-640zM512 512h256v-64h-256zM512 384h256v-64h-256zM512 256h192v-64h-192zM128 512h320v-320h-320z" />
+<glyph unicode="&#xe941;" glyph-name="pencil" d="M864 960c88.364 0 160-71.634 160-160 0-36.020-11.91-69.258-32-96l-64-64-224 224 64 64c26.742 20.090 59.978 32 96 32zM64 224l-64-288 288 64 592 592-224 224-592-592zM715.578 596.422l-448-448-55.156 55.156 448 448 55.156-55.156z" />
+<glyph unicode="&#xe942;" glyph-name="pencil2" d="M384 320l128 64 448 448-64 64-448-448-64-128zM289.3 92.902c-31.632 66.728-65.666 100.762-132.396 132.394l99.096 272.792 128 77.912 384 384h-192l-384-384-192-640 640 192 384 384v192l-384-384-77.912-128z" />
+<glyph unicode="&#xe943;" glyph-name="quill" d="M0-64c128 384 463 1024 1024 1024-263-211-384-704-576-704s-192 0-192 0l-192-320h-64z" />
+<glyph unicode="&#xe944;" glyph-name="pen" d="M1018.17 668.11l-286.058 286.058c-9.334 9.334-21.644 7.234-27.356-4.666l-38.354-79.904 267.198-267.198 79.904 38.354c11.9 5.712 14 18.022 4.666 27.356zM615.384 824.616l-263.384-21.95c-17.5-2.166-32.080-5.898-37.090-28.752-0.006-0.024-0.012-0.042-0.018-0.066-71.422-343.070-314.892-677.848-314.892-677.848l57.374-57.374 271.986 271.99c-5.996 12.53-9.36 26.564-9.36 41.384 0 53.020 42.98 96 96 96s96-42.98 96-96-42.98-96-96-96c-14.82 0-28.852 3.364-41.384 9.36l-271.988-271.986 57.372-57.374c0 0 334.778 243.47 677.848 314.892 0.024 0.006 0.042 0.012 0.066 0.018 22.854 5.010 26.586 19.59 28.752 37.090l21.95 263.384-273.232 273.232z" />
+<glyph unicode="&#xe945;" glyph-name="blog" d="M384 960v-96c73.482 0 144.712-14.37 211.716-42.71 64.768-27.394 122.958-66.632 172.948-116.624s89.228-108.18 116.624-172.948c28.342-67.004 42.712-138.238 42.712-211.718h96c0 353.46-286.54 640-640 640zM384 768v-96c94.022 0 182.418-36.614 248.9-103.098 66.486-66.484 103.1-154.878 103.1-248.902h96c0 247.422-200.576 448-448 448zM480 576l-64-64-224-64-192-416 25.374-25.374 232.804 232.804c-1.412 5.286-2.178 10.84-2.178 16.57 0 35.346 28.654 64 64 64s64-28.654 64-64-28.654-64-64-64c-5.732 0-11.282 0.764-16.568 2.178l-232.804-232.804 25.372-25.374 416 192 64 224 64 64-160 160z" />
+<glyph unicode="&#xe946;" glyph-name="eyedropper" d="M986.51 922.51c-49.988 49.986-131.032 49.986-181.020 0l-172.118-172.118-121.372 121.372-135.764-135.764 106.426-106.426-472.118-472.118c-8.048-8.048-11.468-18.958-10.3-29.456h-0.244v-160c0-17.674 14.328-32 32-32h160c0 0 2.664 0 4 0 9.212 0 18.426 3.516 25.456 10.544l472.118 472.118 106.426-106.426 135.764 135.764-121.372 121.372 172.118 172.118c49.986 49.988 49.986 131.032 0 181.020zM173.090 0h-109.090v109.090l469.574 469.572 109.088-109.088-469.572-469.574z" />
+<glyph unicode="&#xe947;" glyph-name="droplet" d="M864.626 486.838c-65.754 183.44-205.11 348.15-352.626 473.162-147.516-125.012-286.87-289.722-352.626-473.162-40.664-113.436-44.682-236.562 12.584-345.4 65.846-125.14 198.632-205.438 340.042-205.438s274.196 80.298 340.040 205.44c57.27 108.838 53.25 231.962 12.586 345.398zM738.764 201.044c-43.802-83.252-132.812-137.044-226.764-137.044-55.12 0-108.524 18.536-152.112 50.652 13.242-1.724 26.632-2.652 40.112-2.652 117.426 0 228.668 67.214 283.402 171.242 44.878 85.292 40.978 173.848 23.882 244.338 14.558-28.15 26.906-56.198 36.848-83.932 22.606-63.062 40.024-156.34-5.368-242.604z" />
+<glyph unicode="&#xe948;" glyph-name="paint-format" d="M1024 384v384h-192v64c0 35.2-28.8 64-64 64h-704c-35.2 0-64-28.8-64-64v-192c0-35.2 28.8-64 64-64h704c35.2 0 64 28.8 64 64v64h128v-256h-576v-128h-32c-17.674 0-32-14.326-32-32v-320c0-17.674 14.326-32 32-32h128c17.674 0 32 14.326 32 32v320c0 17.674-14.326 32-32 32h-32v64h576zM768 768h-704v64h704v-64z" />
+<glyph unicode="&#xe949;" glyph-name="image" d="M959.884 832c0.040-0.034 0.082-0.076 0.116-0.116v-767.77c-0.034-0.040-0.076-0.082-0.116-0.116h-895.77c-0.040 0.034-0.082 0.076-0.114 0.116v767.772c0.034 0.040 0.076 0.082 0.114 0.114h895.77zM960 896h-896c-35.2 0-64-28.8-64-64v-768c0-35.2 28.8-64 64-64h896c35.2 0 64 28.8 64 64v768c0 35.2-28.8 64-64 64v0zM832 672c0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM896 128h-768v128l224 384 256-320h64l224 192z" />
+<glyph unicode="&#xe94a;" glyph-name="images" horiz-adv-x="1152" d="M1088 832h-64v64c0 35.2-28.8 64-64 64h-896c-35.2 0-64-28.8-64-64v-768c0-35.2 28.8-64 64-64h64v-64c0-35.2 28.8-64 64-64h896c35.2 0 64 28.8 64 64v768c0 35.2-28.8 64-64 64zM128 768v-640h-63.886c-0.040 0.034-0.082 0.076-0.114 0.116v767.77c0.034 0.040 0.076 0.082 0.114 0.114h895.77c0.040-0.034 0.082-0.076 0.116-0.116v-63.884h-768c-35.2 0-64-28.8-64-64v0zM1088 0.116c-0.034-0.040-0.076-0.082-0.116-0.116h-895.77c-0.040 0.034-0.082 0.076-0.114 0.116v767.77c0.034 0.040 0.076 0.082 0.114 0.114h895.77c0.040-0.034 0.082-0.076 0.116-0.116v-767.768zM960 608c0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM1024 64h-768v128l224 384 256-320h64l224 192z" />
+<glyph unicode="&#xe94b;" glyph-name="camera" d="M304 352c0-114.876 93.124-208 208-208s208 93.124 208 208-93.124 208-208 208-208-93.124-208-208zM960 704h-224c-16 64-32 128-96 128h-256c-64 0-80-64-96-128h-224c-35.2 0-64-28.8-64-64v-576c0-35.2 28.8-64 64-64h896c35.2 0 64 28.8 64 64v576c0 35.2-28.8 64-64 64zM512 68c-156.85 0-284 127.148-284 284 0 156.85 127.15 284 284 284 156.852 0 284-127.15 284-284 0-156.852-127.146-284-284-284zM960 512h-128v64h128v-64z" />
+<glyph unicode="&#xe94c;" glyph-name="headphones" d="M288 384h-64v-448h64c17.6 0 32 14.4 32 32v384c0 17.6-14.4 32-32 32zM736 384c-17.602 0-32-14.4-32-32v-384c0-17.6 14.398-32 32-32h64v448h-64zM1024 448c0 282.77-229.23 512-512 512s-512-229.23-512-512c0-61.412 10.83-120.29 30.656-174.848-19.478-33.206-30.656-71.87-30.656-113.152 0-112.846 83.448-206.188 192-221.716v443.418c-31.914-4.566-61.664-15.842-87.754-32.378-5.392 26.718-8.246 54.364-8.246 82.676 0 229.75 186.25 416 416 416s416-186.25 416-416c0-28.314-2.83-55.968-8.22-82.696-26.1 16.546-55.854 27.848-87.78 32.418v-443.44c108.548 15.532 192 108.874 192 221.714 0 41.274-11.178 79.934-30.648 113.138 19.828 54.566 30.648 113.452 30.648 174.866z" />
+<glyph unicode="&#xe94d;" glyph-name="music" d="M960 960h64v-736c0-88.366-100.29-160-224-160s-224 71.634-224 160c0 88.368 100.29 160 224 160 62.684 0 119.342-18.4 160-48.040v368.040l-512-113.778v-494.222c0-88.366-100.288-160-224-160s-224 71.634-224 160c0 88.368 100.288 160 224 160 62.684 0 119.342-18.4 160-48.040v624.040l576 128z" />
+<glyph unicode="&#xe94e;" glyph-name="play2" d="M981.188 799.892c-143.632 20.65-302.332 32.108-469.186 32.108-166.86 0-325.556-11.458-469.194-32.108-27.53-107.726-42.808-226.75-42.808-351.892 0-125.14 15.278-244.166 42.808-351.89 143.638-20.652 302.336-32.11 469.194-32.11 166.854 0 325.552 11.458 469.186 32.11 27.532 107.724 42.812 226.75 42.812 351.89 0 125.142-15.28 244.166-42.812 351.892zM384.002 256v384l320-192-320-192z" />
+<glyph unicode="&#xe94f;" glyph-name="film" d="M0 832v-768h1024v768h-1024zM192 128h-128v128h128v-128zM192 384h-128v128h128v-128zM192 640h-128v128h128v-128zM768 128h-512v640h512v-640zM960 128h-128v128h128v-128zM960 384h-128v128h128v-128zM960 640h-128v128h128v-128zM384 640v-384l256 192z" />
+<glyph unicode="&#xe950;" glyph-name="video-camera" d="M384 672c0 88.366 71.634 160 160 160s160-71.634 160-160c0-88.366-71.634-160-160-160s-160 71.634-160 160zM0 672c0 88.366 71.634 160 160 160s160-71.634 160-160c0-88.366-71.634-160-160-160s-160 71.634-160 160zM768 352v96c0 35.2-28.8 64-64 64h-640c-35.2 0-64-28.8-64-64v-320c0-35.2 28.8-64 64-64h640c35.2 0 64 28.8 64 64v96l256-160v448l-256-160zM640 192h-512v192h512v-192z" />
+<glyph unicode="&#xe951;" glyph-name="dice" d="M864 768h-512c-88 0-160-72-160-160v-512c0-88 72-160 160-160h512c88 0 160 72 160 160v512c0 88-72 160-160 160zM416 64c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM416 448c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM608 256c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM800 64c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM800 448c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM828.76 832c-14.93 72.804-79.71 128-156.76 128h-512c-88 0-160-72-160-160v-512c0-77.046 55.196-141.83 128-156.76v636.76c0 35.2 28.8 64 64 64h636.76z" />
+<glyph unicode="&#xe952;" glyph-name="pacman" d="M964.73 781.196c-93.902 109.45-233.21 178.804-388.73 178.804-282.77 0-512-229.23-512-512s229.23-512 512-512c155.52 0 294.828 69.356 388.728 178.804l-324.728 333.196 324.73 333.196zM704 839.398c39.432 0 71.398-31.964 71.398-71.398 0-39.432-31.966-71.398-71.398-71.398s-71.398 31.966-71.398 71.398c0 39.432 31.966 71.398 71.398 71.398z" />
+<glyph unicode="&#xe953;" glyph-name="spades" d="M817.57 611.85c-193.566 143.858-260.266 259.018-305.566 348.148v0c-0.004 0-0.004 0.002-0.004 0.002v-0.002c-45.296-89.13-112-204.292-305.566-348.148-330.036-245.286-19.376-587.668 253.758-399.224-17.796-116.93-78.53-202.172-140.208-238.882v-37.744h384.032v37.74c-61.682 36.708-122.41 121.954-140.212 238.884 273.136-188.446 583.8 153.94 253.766 399.226z" />
+<glyph unicode="&#xe954;" glyph-name="clubs" d="M786.832 567.228c-59.032 0-112.086-24.596-149.852-64.694-15.996-16.984-43.762-37.112-73.8-54.81 14.11 53.868 58.676 121.7 89.628 151.456 39.64 38.17 63.984 91.83 63.984 151.5 0.006 114.894-91.476 208.096-204.788 209.32-113.32-1.222-204.796-94.426-204.796-209.318 0-59.672 24.344-113.33 63.986-151.5 30.954-29.756 75.52-97.588 89.628-151.456-30.042 17.7-57.806 37.826-73.8 54.81-37.768 40.098-90.82 64.694-149.85 64.694-114.386 0-207.080-93.664-207.080-209.328 0-115.638 92.692-209.338 207.080-209.338 59.042 0 112.082 25.356 149.85 65.452 16.804 17.872 46.444 40.138 78.292 58.632-3.002-147.692-73.532-256.168-145.318-298.906v-37.742h384.014v37.74c-71.792 42.736-142.32 151.216-145.32 298.906 31.852-18.494 61.488-40.768 78.292-58.632 37.766-40.094 90.808-65.452 149.852-65.452 114.386 0 207.078 93.7 207.078 209.338-0.002 115.664-92.692 209.328-207.080 209.328z" />
+<glyph unicode="&#xe955;" glyph-name="diamonds" d="M512 960l-320-512 320-512 320 512z" />
+<glyph unicode="&#xe956;" glyph-name="bullhorn" d="M1024 530.744c0 200.926-58.792 363.938-131.482 365.226 0.292 0.006 0.578 0.030 0.872 0.030h-82.942c0 0-194.8-146.336-475.23-203.754-8.56-45.292-14.030-99.274-14.030-161.502s5.466-116.208 14.030-161.5c280.428-57.418 475.23-203.756 475.23-203.756h82.942c-0.292 0-0.578 0.024-0.872 0.032 72.696 1.288 131.482 164.298 131.482 365.224zM864.824 220.748c-9.382 0-19.532 9.742-24.746 15.548-12.63 14.064-24.792 35.96-35.188 63.328-23.256 61.232-36.066 143.31-36.066 231.124 0 87.81 12.81 169.89 36.066 231.122 10.394 27.368 22.562 49.266 35.188 63.328 5.214 5.812 15.364 15.552 24.746 15.552 9.38 0 19.536-9.744 24.744-15.552 12.634-14.064 24.796-35.958 35.188-63.328 23.258-61.23 36.068-143.312 36.068-231.122 0-87.804-12.81-169.888-36.068-231.124-10.39-27.368-22.562-49.264-35.188-63.328-5.208-5.806-15.36-15.548-24.744-15.548zM251.812 530.744c0 51.95 3.81 102.43 11.052 149.094-47.372-6.554-88.942-10.324-140.34-10.324-67.058 0-67.058 0-67.058 0l-55.466-94.686v-88.17l55.46-94.686c0 0 0 0 67.060 0 51.398 0 92.968-3.774 140.34-10.324-7.236 46.664-11.048 97.146-11.048 149.096zM368.15 317.828l-127.998 24.51 81.842-321.544c4.236-16.634 20.744-25.038 36.686-18.654l118.556 47.452c15.944 6.376 22.328 23.964 14.196 39.084l-123.282 229.152zM864.824 411.27c-3.618 0-7.528 3.754-9.538 5.992-4.87 5.42-9.556 13.86-13.562 24.408-8.962 23.6-13.9 55.234-13.9 89.078s4.938 65.478 13.9 89.078c4.006 10.548 8.696 18.988 13.562 24.408 2.010 2.24 5.92 5.994 9.538 5.994 3.616 0 7.53-3.756 9.538-5.994 4.87-5.42 9.556-13.858 13.56-24.408 8.964-23.598 13.902-55.234 13.902-89.078 0-33.842-4.938-65.478-13.902-89.078-4.004-10.548-8.696-18.988-13.56-24.408-2.008-2.238-5.92-5.992-9.538-5.992z" />
+<glyph unicode="&#xe957;" glyph-name="connection" horiz-adv-x="1280" d="M640 384c105.87 0 201.87-43.066 271.402-112.598l-90.468-90.468c-46.354 46.356-110.356 75.066-180.934 75.066s-134.578-28.71-180.934-75.066l-90.468 90.468c69.532 69.532 165.532 112.598 271.402 112.598zM187.452 452.548c120.88 120.88 281.598 187.452 452.548 187.452s331.668-66.572 452.55-187.452l-90.51-90.508c-96.706 96.704-225.28 149.96-362.040 149.96-136.762 0-265.334-53.256-362.038-149.962l-90.51 90.51zM988.784 825.562c106.702-45.132 202.516-109.728 284.782-191.996v0l-90.508-90.508c-145.056 145.056-337.92 224.942-543.058 224.942-205.14 0-398-79.886-543.058-224.942l-90.51 90.51c82.268 82.266 178.082 146.862 284.784 191.994 110.504 46.738 227.852 70.438 348.784 70.438s238.278-23.7 348.784-70.438zM576 64c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64z" />
+<glyph unicode="&#xe958;" glyph-name="podcast" d="M1024 448c0 282.77-229.23 512-512 512s-512-229.23-512-512c0-220.054 138.836-407.664 333.686-480.068l-13.686-31.932h384l-13.686 31.932c194.85 72.404 333.686 260.014 333.686 480.068zM486.79 325.174c-22.808 9.788-38.79 32.436-38.79 58.826 0 35.346 28.654 64 64 64s64-28.654 64-64c0-26.39-15.978-49.044-38.786-58.834l-25.214 58.834-25.21-58.826zM538.268 322.708c58.092 12.118 101.732 63.602 101.732 125.292 0 70.694-57.306 128-128 128-70.692 0-128-57.306-128-128 0-61.692 43.662-113.122 101.76-125.228l-74.624-174.122c-91.23 39.15-155.136 129.784-155.136 235.35 0 141.384 114.616 268 256 268s256-126.616 256-268c0-105.566-63.906-196.2-155.136-235.35l-74.596 174.058zM688.448-27.708l-73.924 172.486c126.446 42.738 217.476 162.346 217.476 303.222 0 176.73-143.268 320-320 320-176.73 0-320-143.27-320-320 0-140.876 91.030-260.484 217.476-303.222l-73.924-172.486c-159.594 68.488-271.386 227.034-271.386 411.708 0 247.332 200.502 459.834 447.834 459.834s447.834-212.502 447.834-459.834c0-184.674-111.792-343.22-271.386-411.708z" />
+<glyph unicode="&#xe959;" glyph-name="feed" d="M384 448c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM664.348 729.474c99.852-54.158 167.652-159.898 167.652-281.474s-67.8-227.316-167.652-281.474c44.066 70.126 71.652 170.27 71.652 281.474s-27.586 211.348-71.652 281.474zM288 448c0-111.204 27.584-211.348 71.652-281.474-99.852 54.16-167.652 159.898-167.652 281.474s67.8 227.314 167.652 281.474c-44.068-70.126-71.652-170.27-71.652-281.474zM96 448c0-171.9 54.404-326.184 140.652-431.722-142.302 90.948-236.652 250.314-236.652 431.722s94.35 340.774 236.652 431.722c-86.248-105.538-140.652-259.822-140.652-431.722zM787.352 879.72c142.298-90.946 236.648-250.312 236.648-431.72s-94.35-340.774-236.648-431.72c86.244 105.536 140.648 259.82 140.648 431.72s-54.404 326.184-140.648 431.72z" />
+<glyph unicode="&#xe95a;" glyph-name="mic" d="M480 256c88.366 0 160 71.634 160 160v384c0 88.366-71.634 160-160 160s-160-71.634-160-160v-384c0-88.366 71.636-160 160-160zM704 512v-96c0-123.71-100.29-224-224-224-123.712 0-224 100.29-224 224v96h-64v-96c0-148.238 112.004-270.3 256-286.22v-129.78h-128v-64h320v64h-128v129.78c143.994 15.92 256 137.982 256 286.22v96h-64z" />
+<glyph unicode="&#xe95b;" glyph-name="book" d="M896 832v-832h-672c-53.026 0-96 42.98-96 96s42.974 96 96 96h608v768h-640c-70.398 0-128-57.6-128-128v-768c0-70.4 57.602-128 128-128h768v896h-64zM224.056 128v0c-0.018-0.002-0.038 0-0.056 0-17.672 0-32-14.326-32-32s14.328-32 32-32c0.018 0 0.038 0.002 0.056 0.002v-0.002h607.89v64h-607.89z" />
+<glyph unicode="&#xe95c;" glyph-name="books" horiz-adv-x="1152" d="M224 832h-192c-17.6 0-32-14.4-32-32v-704c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32v704c0 17.6-14.4 32-32 32zM192 640h-128v64h128v-64zM544 832h-192c-17.6 0-32-14.4-32-32v-704c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32v704c0 17.6-14.4 32-32 32zM512 640h-128v64h128v-64zM765.088 782.52l-171.464-86.394c-15.716-7.918-22.096-27.258-14.178-42.976l287.978-571.548c7.918-15.718 27.258-22.098 42.976-14.178l171.464 86.392c15.716 7.92 22.096 27.26 14.178 42.974l-287.978 571.55c-7.92 15.718-27.26 22.1-42.976 14.18z" />
+<glyph unicode="&#xe95d;" glyph-name="library" horiz-adv-x="1088" d="M1024 0v64h-64v384h64v64h-192v-64h64v-384h-192v384h64v64h-192v-64h64v-384h-192v384h64v64h-192v-64h64v-384h-192v384h64v64h-192v-64h64v-384h-64v-64h-64v-64h1088v64h-64zM512 960h64l512-320v-64h-1088v64l512 320z" />
+<glyph unicode="&#xe95e;" glyph-name="file-text" d="M864 960h-768c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h768c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM832 64h-704v768h704v-768zM256 512h448v-64h-448zM256 384h448v-64h-448zM256 256h448v-64h-448zM256 640h448v-64h-448z" />
+<glyph unicode="&#xe95f;" glyph-name="profile" d="M864 960h-768c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h768c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM832 64h-704v768h704v-768zM256 384h448v-64h-448zM256 256h448v-64h-448zM320 672c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM480 576h-128c-52.8 0-96-28.8-96-64v-64h320v64c0 35.2-43.2 64-96 64z" />
+<glyph unicode="&#xe960;" glyph-name="file-empty" d="M917.806 730.924c-22.212 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.888-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.984-17.78 50.678-41.878 81.374-72.572zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.326-32 32-32h224v-624z" />
+<glyph unicode="&#xe961;" glyph-name="files-empty" d="M917.806 602.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-368c-44.114 0-80-35.888-80-80v-736c0-44.112 35.886-80 80-80h608c44.112 0 80 35.888 80 80v496c0 14.332-4.372 39.35-42.194 90.924zM785.374 657.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-608c-8.672 0-16 7.328-16 16v736c0 8.672 7.328 16 16 16 0 0 367.956 0.002 368 0v-224c0-17.672 14.324-32 32-32h224v-496zM602.924 917.804c-51.574 37.822-76.592 42.196-90.924 42.196h-368c-44.112 0-80-35.888-80-80v-736c0-38.632 27.528-70.958 64-78.39v814.39c0 8.672 7.328 16 16 16h486.876c-9.646 7.92-19.028 15.26-27.952 21.804z" />
+<glyph unicode="&#xe962;" glyph-name="file-text2" d="M917.806 730.924c-22.212 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.888-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.984-17.78 50.678-41.878 81.374-72.572zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.326-32 32-32h224v-624zM736 128h-448c-17.672 0-32 14.326-32 32s14.328 32 32 32h448c17.674 0 32-14.326 32-32s-14.326-32-32-32zM736 256h-448c-17.672 0-32 14.326-32 32s14.328 32 32 32h448c17.674 0 32-14.326 32-32s-14.326-32-32-32zM736 384h-448c-17.672 0-32 14.326-32 32s14.328 32 32 32h448c17.674 0 32-14.326 32-32s-14.326-32-32-32z" />
+<glyph unicode="&#xe963;" glyph-name="file-picture" d="M832 64h-640v128l192 320 263-320 185 128v-256zM832 480c0-53.020-42.98-96-96-96-53.022 0-96 42.98-96 96s42.978 96 96 96c53.020 0 96-42.98 96-96zM917.806 730.924c-22.212 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.888-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.984-17.78 50.678-41.878 81.374-72.572zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.326-32 32-32h224v-624z" />
+<glyph unicode="&#xe964;" glyph-name="file-music" d="M917.806 730.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.886-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.324-32 32-32h224v-624zM756.288 568.748c-7.414 6.080-17.164 8.514-26.562 6.632l-320-64c-14.958-2.994-25.726-16.126-25.726-31.38v-236.876c-18.832 8.174-40.678 12.876-64 12.876-70.692 0-128-42.98-128-96s57.308-96 128-96 128 42.98 128 96v229.766l256 51.202v-133.842c-18.832 8.174-40.678 12.876-64 12.876-70.692 0-128-42.98-128-96s57.308-96 128-96 128 42.98 128 96v319.998c0 9.586-4.298 18.668-11.712 24.748z" />
+<glyph unicode="&#xe965;" glyph-name="file-play" d="M384 576l320-224-320-224v448zM917.806 730.924c-22.212 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.888-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.984-17.78 50.678-41.878 81.374-72.572zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.326-32 32-32h224v-624z" />
+<glyph unicode="&#xe966;" glyph-name="file-video" d="M917.806 730.924c-22.208 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.594 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.882-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0 0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.98-17.78 50.678-41.878 81.374-72.572v0 0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.32-32 32-32h224v-624zM256 448h320v-320h-320v320zM576 320l192 128v-320l-192 128z" />
+<glyph unicode="&#xe967;" glyph-name="file-zip" d="M917.806 730.924c-22.208 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.884-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0 0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.98-17.78 50.678-41.878 81.374-72.572v0 0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.322-32 32-32h224v-624zM256 896h128v-64h-128v64zM384 832h128v-64h-128v64zM256 768h128v-64h-128v64zM384 704h128v-64h-128v64zM256 640h128v-64h-128v64zM384 576h128v-64h-128v64zM256 512h128v-64h-128v64zM384 448h128v-64h-128v64zM256 112c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-80v64h-128v-272zM448 192v-64h-128v64h128z" />
+<glyph unicode="&#xe968;" glyph-name="copy" d="M640 704v256h-448l-192-192v-576h384v-256h640v768h-384zM192 869.49v-101.49h-101.49l101.49 101.49zM64 256v448h192v192h320v-192l-192-192v-256h-320zM576 613.49v-101.49h-101.49l101.49 101.49zM960 0h-512v448h192v192h320v-640z" />
+<glyph unicode="&#xe969;" glyph-name="paste" d="M704 832h-128v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-128v-128h512v128zM512 832h-128v63.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886zM832 640v160c0 17.6-14.4 32-32 32h-64v-64h32v-128h-192l-192-192v-256h-256v576h32v64h-64c-17.602 0-32-14.4-32-32v-640c0-17.6 14.398-32 32-32h288v-192h640v704h-192zM576 549.49v-101.49h-101.49l101.49 101.49zM960 0h-512v384h192v192h320v-576z" />
+<glyph unicode="&#xe96a;" glyph-name="stack" d="M1024 640l-512 256-512-256 512-256 512 256zM512 811.030l342.058-171.030-342.058-171.030-342.058 171.030 342.058 171.030zM921.444 499.278l102.556-51.278-512-256-512 256 102.556 51.278 409.444-204.722zM921.444 307.278l102.556-51.278-512-256-512 256 102.556 51.278 409.444-204.722z" />
+<glyph unicode="&#xe96b;" glyph-name="folder2" d="M448 832l128-128h448v-704h-1024v832z" />
+<glyph unicode="&#xe96c;" glyph-name="folder-open" d="M832 0l192 512h-832l-192-512zM128 576l-128-576v832h288l128-128h416v-128z" />
+<glyph unicode="&#xe96d;" glyph-name="folder-plus" d="M576 704l-128 128h-448v-832h1024v704h-448zM704 256h-128v-128h-128v128h-128v128h128v128h128v-128h128v-128z" />
+<glyph unicode="&#xe96e;" glyph-name="folder-minus" d="M576 704l-128 128h-448v-832h1024v704h-448zM704 256h-384v128h384v-128z" />
+<glyph unicode="&#xe96f;" glyph-name="folder-download" d="M576 704l-128 128h-448v-832h1024v704h-448zM512 96l-224 224h160v256h128v-256h160l-224-224z" />
+<glyph unicode="&#xe970;" glyph-name="folder-upload" d="M576 704l-128 128h-448v-832h1024v704h-448zM512 480l224-224h-160v-256h-128v256h-160l224 224z" />
+<glyph unicode="&#xe971;" glyph-name="price-tag" d="M976 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM736 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96z" />
+<glyph unicode="&#xe972;" glyph-name="price-tags" horiz-adv-x="1280" d="M1232 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM992 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM128 416l544 544h-80c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l30.058 30.058-416 416z" />
+<glyph unicode="&#xe973;" glyph-name="barcode" d="M0 832h128v-640h-128zM192 832h64v-640h-64zM320 832h64v-640h-64zM512 832h64v-640h-64zM768 832h64v-640h-64zM960 832h64v-640h-64zM640 832h32v-640h-32zM448 832h32v-640h-32zM864 832h32v-640h-32zM0 128h64v-64h-64zM192 128h64v-64h-64zM320 128h64v-64h-64zM640 128h64v-64h-64zM960 128h64v-64h-64zM768 128h128v-64h-128zM448 128h128v-64h-128z" />
+<glyph unicode="&#xe974;" glyph-name="qrcode" d="M320 896h-256v-256h256v256zM384 960v0-384h-384v384h384zM128 832h128v-128h-128zM960 896h-256v-256h256v256zM1024 960v0-384h-384v384h384zM768 832h128v-128h-128zM320 256h-256v-256h256v256zM384 320v0-384h-384v384h384zM128 192h128v-128h-128zM448 960h64v-64h-64zM512 896h64v-64h-64zM448 832h64v-64h-64zM512 768h64v-64h-64zM448 704h64v-64h-64zM512 640h64v-64h-64zM448 576h64v-64h-64zM448 448h64v-64h-64zM512 384h64v-64h-64zM448 320h64v-64h-64zM512 256h64v-64h-64zM448 192h64v-64h-64zM512 128h64v-64h-64zM448 64h64v-64h-64zM512 0h64v-64h-64zM960 448h64v-64h-64zM64 448h64v-64h-64zM128 512h64v-64h-64zM0 512h64v-64h-64zM256 512h64v-64h-64zM320 448h64v-64h-64zM384 512h64v-64h-64zM576 448h64v-64h-64zM640 512h64v-64h-64zM704 448h64v-64h-64zM768 512h64v-64h-64zM832 448h64v-64h-64zM896 512h64v-64h-64zM960 320h64v-64h-64zM576 320h64v-64h-64zM640 384h64v-64h-64zM704 320h64v-64h-64zM832 320h64v-64h-64zM896 384h64v-64h-64zM960 192h64v-64h-64zM576 192h64v-64h-64zM640 256h64v-64h-64zM768 256h64v-64h-64zM832 192h64v-64h-64zM896 256h64v-64h-64zM960 64h64v-64h-64zM640 128h64v-64h-64zM704 64h64v-64h-64zM768 128h64v-64h-64zM832 64h64v-64h-64zM640 0h64v-64h-64zM768 0h64v-64h-64zM896 0h64v-64h-64z" />
+<glyph unicode="&#xe975;" glyph-name="ticket" d="M575.996 640l127.998-127.998-255.994-255.994-127.998 127.998zM1001.526 662.496l-73.516 73.516-32.008-32.008c-16.378-16.38-39.010-26.51-64-26.51-49.988 0-90.514 40.522-90.514 90.51 0 25.002 10.14 47.638 26.534 64.018l31.988 31.986-73.518 73.516c-29.968 29.968-79.008 29.968-108.976 0l-595.040-595.038c-29.966-29.968-29.966-79.010 0-108.976l73.52-73.518 31.962 31.964c16.382 16.406 39.030 26.552 64.044 26.552 49.988 0 90.51-40.524 90.51-90.51 0-25.006-10.14-47.64-26.534-64.022l-31.984-31.986 73.516-73.518c29.966-29.966 79.008-29.966 108.976 0l595.040 595.040c29.964 29.976 29.964 79.016 0 108.984zM448.002 128.004l-256 256 384 384 256-256-384-384z" />
+<glyph unicode="&#xe976;" glyph-name="cart" d="M384 32c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 53.019 42.981 96 96 96s96-42.981 96-96zM1024 32c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 53.019 42.981 96 96 96s96-42.981 96-96zM1024 448v384h-768c0 35.346-28.654 64-64 64h-192v-64h128l48.074-412.054c-29.294-23.458-48.074-59.5-48.074-99.946 0-70.696 57.308-128 128-128h768v64h-768c-35.346 0-64 28.654-64 64 0 0.218 0.014 0.436 0.016 0.656l831.984 127.344z" />
+<glyph unicode="&#xe977;" glyph-name="coin-dollar" d="M480 896c-265.096 0-480-214.904-480-480 0-265.098 214.904-480 480-480 265.098 0 480 214.902 480 480 0 265.096-214.902 480-480 480zM480 32c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384s-171.922-384-384-384zM512 448v128h128v64h-128v64h-64v-64h-128v-256h128v-128h-128v-64h128v-64h64v64h128.002l-0.002 256h-128zM448 448h-64v128h64v-128zM576.002 256h-64.002v128h64.002v-128z" />
+<glyph unicode="&#xe978;" glyph-name="coin-euro" d="M480 896c-265.096 0-480-214.904-480-480s214.904-480 480-480c265.098 0 480 214.902 480 480s-214.902 480-480 480zM480 32c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.076 0 384-171.922 384-384s-171.924-384-384-384zM670.824 315.66c-15.27 8.884-34.862 3.708-43.75-11.57-17.256-29.662-49.088-48.090-83.074-48.090h-128c-41.716 0-77.286 26.754-90.496 64h154.496c17.672 0 32 14.326 32 32s-14.328 32-32 32h-160v64h160c17.672 0 32 14.328 32 32s-14.328 32-32 32h-154.496c13.21 37.246 48.78 64 90.496 64h128c33.986 0 65.818-18.426 83.074-48.090 8.888-15.276 28.478-20.456 43.752-11.568 15.276 8.888 20.456 28.476 11.568 43.752-28.672 49.288-81.702 79.906-138.394 79.906h-128c-77.268 0-141.914-55.056-156.78-128h-35.22c-17.672 0-32-14.328-32-32s14.328-32 32-32h32v-64h-32c-17.672 0-32-14.326-32-32s14.328-32 32-32h35.22c14.866-72.944 79.512-128 156.78-128h128c56.692 0 109.72 30.62 138.394 79.91 8.888 15.276 3.708 34.864-11.57 43.75z" />
+<glyph unicode="&#xe979;" glyph-name="coin-pound" d="M480 896c-265.096 0-480-214.904-480-480s214.904-480 480-480c265.098 0 480 214.902 480 480s-214.902 480-480 480zM480 32c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.074 0 384-171.922 384-384s-171.926-384-384-384zM608 256h-224v128h96c17.672 0 32 14.326 32 32s-14.328 32-32 32h-96v32c0 52.934 43.066 96 96 96 34.17 0 66.042-18.404 83.18-48.030 8.85-15.298 28.426-20.526 43.722-11.676 15.296 8.848 20.526 28.424 11.676 43.722-28.538 49.336-81.638 79.984-138.578 79.984-88.224 0-160-71.776-160-160v-32h-32c-17.672 0-32-14.326-32-32s14.328-32 32-32h32v-192h288c17.674 0 32 14.326 32 32s-14.326 32-32 32z" />
+<glyph unicode="&#xe97a;" glyph-name="coin-yen" d="M480 896c-265.096 0-480-214.904-480-480s214.904-480 480-480c265.098 0 480 214.902 480 480s-214.902 480-480 480zM480 32c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.076 0 384-171.922 384-384s-171.924-384-384-384zM608 384c17.674 0 32 14.326 32 32s-14.326 32-32 32h-68.208l94.832 142.25c9.804 14.704 5.83 34.572-8.876 44.376-14.704 9.802-34.572 5.83-44.376-8.876l-101.372-152.062-101.374 152.062c-9.804 14.706-29.672 18.68-44.376 8.876-14.706-9.804-18.678-29.672-8.876-44.376l94.834-142.25h-68.208c-17.672 0-32-14.326-32-32s14.328-32 32-32h96v-64h-96c-17.672 0-32-14.326-32-32s14.328-32 32-32h96v-96c0-17.674 14.328-32 32-32s32 14.326 32 32v96h96c17.674 0 32 14.326 32 32s-14.326 32-32 32h-96v64h96z" />
+<glyph unicode="&#xe97b;" glyph-name="credit-card" d="M928 832h-832c-52.8 0-96-43.2-96-96v-576c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v576c0 52.8-43.2 96-96 96zM96 768h832c17.346 0 32-14.654 32-32v-96h-896v96c0 17.346 14.654 32 32 32zM928 128h-832c-17.346 0-32 14.654-32 32v288h896v-288c0-17.346-14.654-32-32-32zM128 320h64v-128h-64zM256 320h64v-128h-64zM384 320h64v-128h-64z" />
+<glyph unicode="&#xe97c;" glyph-name="calculator" d="M384 896h-320c-35.2 0-64-28.8-64-64v-320c0-35.2 28.796-64 64-64h320c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM384 640h-320v64h320v-64zM896 896h-320c-35.204 0-64-28.8-64-64v-832c0-35.2 28.796-64 64-64h320c35.2 0 64 28.8 64 64v832c0 35.2-28.8 64-64 64zM896 320h-320v64h320v-64zM896 512h-320v64h320v-64zM384 384h-320c-35.2 0-64-28.8-64-64v-320c0-35.2 28.796-64 64-64h320c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM384 128h-128v-128h-64v128h-128v64h128v128h64v-128h128v-64z" />
+<glyph unicode="&#xe97d;" glyph-name="lifebuoy" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM320 448c0 106.040 85.96 192 192 192s192-85.96 192-192-85.96-192-192-192-192 85.96-192 192zM925.98 276.524v0l-177.42 73.49c12.518 30.184 19.44 63.276 19.44 97.986s-6.922 67.802-19.44 97.986l177.42 73.49c21.908-52.822 34.020-110.73 34.020-171.476s-12.114-118.654-34.020-171.476v0zM683.478 861.98v0 0l-73.49-177.42c-30.184 12.518-63.276 19.44-97.988 19.44s-67.802-6.922-97.986-19.44l-73.49 177.422c52.822 21.904 110.732 34.018 171.476 34.018 60.746 0 118.654-12.114 171.478-34.020zM98.020 619.476l177.422-73.49c-12.518-30.184-19.442-63.276-19.442-97.986s6.922-67.802 19.44-97.986l-177.42-73.49c-21.906 52.822-34.020 110.73-34.020 171.476s12.114 118.654 34.020 171.476zM340.524 34.020l73.49 177.42c30.184-12.518 63.276-19.44 97.986-19.44s67.802 6.922 97.986 19.44l73.49-177.42c-52.822-21.904-110.73-34.020-171.476-34.020-60.744 0-118.654 12.114-171.476 34.020z" />
+<glyph unicode="&#xe97e;" glyph-name="phone" d="M704 320c-64-64-64-128-128-128s-128 64-192 128-128 128-128 192 64 64 128 128-128 256-192 256-192-192-192-192c0-128 131.5-387.5 256-512s384-256 512-256c0 0 192 128 192 192s-192 256-256 192z" />
+<glyph unicode="&#xe97f;" glyph-name="phone-hang-up" d="M1017.378 384.006c8.004-55.482 13.216-131.392-11.664-160.446-41.142-48.044-301.712-48.044-301.712 48.042 0 48.398 42.856 80.134 1.712 128.178-40.472 47.262-113.026 48.030-193.714 48.042-80.686-0.012-153.242-0.78-193.714-48.042-41.142-48.046 1.714-79.78 1.714-128.178 0-96.086-260.57-96.086-301.714-48.044-24.878 29.054-19.668 104.964-11.662 160.446 6.16 37.038 21.724 76.996 71.548 127.994 0 0.002 0.002 0.002 0.002 0.004 74.738 69.742 187.846 126.738 429.826 127.968v0.030c1.344 0 2.664-0.010 4-0.014 1.338 0.004 2.656 0.014 4 0.014v-0.028c241.98-1.23 355.088-58.226 429.826-127.968 0.002-0.002 0.002-0.004 0.002-0.004 49.824-50.996 65.39-90.954 71.55-127.994z" />
+<glyph unicode="&#xe980;" glyph-name="address-book" d="M192 960v-1024h768v1024h-768zM576 703.67c70.51 0 127.67-57.16 127.67-127.67s-57.16-127.67-127.67-127.67-127.67 57.16-127.67 127.67 57.16 127.67 127.67 127.67v0zM768 192h-384v64c0 70.696 57.306 128 128 128v0h128c70.696 0 128-57.304 128-128v-64zM64 896h96v-192h-96v192zM64 640h96v-192h-96v192zM64 384h96v-192h-96v192zM64 128h96v-192h-96v192z" />
+<glyph unicode="&#xe981;" glyph-name="envelop" d="M928 832h-832c-52.8 0-96-43.2-96-96v-640c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v640c0 52.8-43.2 96-96 96zM398.74 409.628l-270.74-210.892v501.642l270.74-290.75zM176.38 704h671.24l-335.62-252-335.62 252zM409.288 398.302l102.712-110.302 102.71 110.302 210.554-270.302h-626.528l210.552 270.302zM625.26 409.628l270.74 290.75v-501.642l-270.74 210.892z" />
+<glyph unicode="&#xe982;" glyph-name="pushpin" d="M544 960l-96-96 96-96-224-256h-224l176-176-272-360.616v-39.384h39.384l360.616 272 176-176v224l256 224 96-96 96 96-480 480zM448 416l-64 64 224 224 64-64-224-224z" />
+<glyph unicode="&#xe983;" glyph-name="location" d="M512 960c-176.732 0-320-143.268-320-320 0-320 320-704 320-704s320 384 320 704c0 176.732-143.27 320-320 320zM512 448c-106.040 0-192 85.96-192 192s85.96 192 192 192 192-85.96 192-192-85.96-192-192-192z" />
+<glyph unicode="&#xe984;" glyph-name="location2" d="M512 960c-176.732 0-320-143.268-320-320 0-320 320-704 320-704s320 384 320 704c0 176.732-143.27 320-320 320zM512 444c-108.248 0-196 87.752-196 196s87.752 196 196 196 196-87.752 196-196-87.752-196-196-196zM388 640c0 68.483 55.517 124 124 124s124-55.517 124-124c0-68.483-55.517-124-124-124s-124 55.517-124 124z" />
+<glyph unicode="&#xe985;" glyph-name="compass" d="M544.010-64.004c-2.296 0-4.622 0.25-6.94 0.764-14.648 3.25-25.070 16.238-25.070 31.24v480h-480c-15.002 0-27.992 10.422-31.24 25.070-3.25 14.646 4.114 29.584 17.708 35.928l960 448c12.196 5.688 26.644 3.144 36.16-6.372 9.516-9.514 12.060-23.966 6.372-36.16l-448-960c-5.342-11.44-16.772-18.47-28.99-18.47zM176.242 512h367.758c17.674 0 32-14.328 32-32v-367.758l349.79 749.546-749.548-349.788z" />
+<glyph unicode="&#xe986;" glyph-name="compass2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM96 448c0 229.75 186.25 416 416 416 109.574 0 209.232-42.386 283.534-111.628l-411.534-176.372-176.372-411.534c-69.242 74.302-111.628 173.96-111.628 283.534zM585.166 374.834l-256.082-109.75 109.75 256.082 146.332-146.332zM512 32c-109.574 0-209.234 42.386-283.532 111.628l411.532 176.372 176.372 411.532c69.242-74.298 111.628-173.958 111.628-283.532 0-229.75-186.25-416-416-416z" />
+<glyph unicode="&#xe987;" glyph-name="map" d="M0 768l320 128v-768l-320-128zM384 928l320-192v-736l-320 160zM768 736l256 192v-768l-256-192z" />
+<glyph unicode="&#xe988;" glyph-name="map2" d="M672 768l-320 128-352-128v-768l352 128 320-128 352 128v768l-352-128zM384 814.27l256-102.4v-630.138l-256 102.398v630.14zM64 723.172l256 93.090v-631.8l-256-93.088v631.798zM960 172.828l-256-93.092v631.8l256 93.090v-631.798z" />
+<glyph unicode="&#xe989;" glyph-name="history" horiz-adv-x="1088" d="M640 896c247.424 0 448-200.576 448-448s-200.576-448-448-448v96c94.024 0 182.418 36.614 248.902 103.098s103.098 154.878 103.098 248.902c0 94.022-36.614 182.418-103.098 248.902s-154.878 103.098-248.902 103.098c-94.022 0-182.418-36.614-248.902-103.098-51.14-51.138-84.582-115.246-97.306-184.902h186.208l-224-256-224 256h164.57c31.060 217.102 217.738 384 443.43 384zM832 512v-128h-256v320h128v-192z" />
+<glyph unicode="&#xe98a;" glyph-name="clock" d="M658.744 210.744l-210.744 210.746v282.51h128v-229.49l173.256-173.254zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 64c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384s-171.922-384-384-384z" />
+<glyph unicode="&#xe98b;" glyph-name="clock2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM658.744 210.744l-210.744 210.746v282.51h128v-229.49l173.256-173.254-90.512-90.512z" />
+<glyph unicode="&#xe98c;" glyph-name="alarm" d="M512 832c-247.424 0-448-200.576-448-448s200.576-448 448-448 448 200.576 448 448-200.576 448-448 448zM512 24c-198.824 0-360 161.178-360 360 0 198.824 161.176 360 360 360 198.822 0 360-161.176 360-360 0-198.822-161.178-360-360-360zM934.784 672.826c16.042 28.052 25.216 60.542 25.216 95.174 0 106.040-85.96 192-192 192-61.818 0-116.802-29.222-151.92-74.596 131.884-27.236 245.206-105.198 318.704-212.578v0zM407.92 885.404c-35.116 45.374-90.102 74.596-151.92 74.596-106.040 0-192-85.96-192-192 0-34.632 9.174-67.122 25.216-95.174 73.5 107.38 186.822 185.342 318.704 212.578zM512 384v256h-64v-320h256v64z" />
+<glyph unicode="&#xe98d;" glyph-name="bell" d="M1025.5 160c0 288-256 224-256 448 0 18.56-1.788 34.42-5.048 47.928-16.83 113.018-92.156 203.72-189.772 231.36 0.866 3.948 1.32 8.032 1.32 12.21 0 33.278-28.8 60.502-64 60.502s-64-27.224-64-60.5c0-4.18 0.456-8.264 1.32-12.21-109.47-30.998-190.914-141.298-193.254-273.442-0.040-1.92-0.066-3.864-0.066-5.846 0-224.002-256-160.002-256-448.002 0-76.226 170.59-139.996 398.97-156.080 21.524-40.404 64.056-67.92 113.030-67.92s91.508 27.516 113.030 67.92c228.38 16.084 398.97 79.854 398.97 156.080 0 0.228-0.026 0.456-0.028 0.682l1.528-0.682zM826.246 105.904c-54.23-14.47-118.158-24.876-186.768-30.648-5.704 65.418-60.582 116.744-127.478 116.744s-121.774-51.326-127.478-116.744c-68.608 5.772-132.538 16.178-186.768 30.648-74.63 19.914-110.31 42.19-123.368 54.096 13.058 11.906 48.738 34.182 123.368 54.096 86.772 23.152 198.372 35.904 314.246 35.904s227.474-12.752 314.246-35.904c74.63-19.914 110.31-42.19 123.368-54.096-13.058-11.906-48.738-34.182-123.368-54.096z" />
+<glyph unicode="&#xe98e;" glyph-name="stopwatch" d="M512.002 766.788v65.212h128v64c0 35.346-28.654 64-64.002 64h-191.998c-35.346 0-64-28.654-64-64v-64h128v-65.212c-214.798-16.338-384-195.802-384-414.788 0-229.75 186.25-416 416-416s416 186.25 416 416c0 218.984-169.202 398.448-384 414.788zM706.276 125.726c-60.442-60.44-140.798-93.726-226.274-93.726s-165.834 33.286-226.274 93.726c-60.44 60.44-93.726 140.8-93.726 226.274s33.286 165.834 93.726 226.274c58.040 58.038 134.448 91.018 216.114 93.548l-21.678-314.020c-1.86-26.29 12.464-37.802 31.836-37.802s33.698 11.512 31.836 37.802l-21.676 314.022c81.666-2.532 158.076-35.512 216.116-93.55 60.44-60.44 93.726-140.8 93.726-226.274s-33.286-165.834-93.726-226.274z" />
+<glyph unicode="&#xe98f;" glyph-name="calendar" d="M320 576h128v-128h-128zM512 576h128v-128h-128zM704 576h128v-128h-128zM128 192h128v-128h-128zM320 192h128v-128h-128zM512 192h128v-128h-128zM320 384h128v-128h-128zM512 384h128v-128h-128zM704 384h128v-128h-128zM128 384h128v-128h-128zM832 960v-64h-128v64h-448v-64h-128v64h-128v-1024h960v1024h-128zM896 0h-832v704h832v-704z" />
+<glyph unicode="&#xe990;" glyph-name="printer" d="M256 896h512v-128h-512v128zM960 704h-896c-35.2 0-64-28.8-64-64v-320c0-35.2 28.794-64 64-64h192v-256h512v256h192c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM128 512c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.652-64-64-64zM704 64h-384v320h384v-320z" />
+<glyph unicode="&#xe991;" glyph-name="keyboard" horiz-adv-x="1152" d="M1088 832h-1024c-35.2 0-64-28.8-64-64v-640c0-35.2 28.8-64 64-64h1024c35.2 0 64 28.8 64 64v640c0 35.2-28.8 64-64 64zM640 704h128v-128h-128v128zM832 512v-128h-128v128h128zM448 704h128v-128h-128v128zM640 512v-128h-128v128h128zM256 704h128v-128h-128v128zM448 512v-128h-128v128h128zM128 704h64v-128h-64v128zM128 512h128v-128h-128v128zM192 192h-64v128h64v-128zM768 192h-512v128h512v-128zM1024 192h-192v128h192v-128zM1024 384h-128v128h128v-128zM1024 576h-192v128h192v-128z" />
+<glyph unicode="&#xe992;" glyph-name="display" d="M0 896v-640h1024v640h-1024zM960 320h-896v512h896v-512zM672 192h-320l-32-128-64-64h512l-64 64z" />
+<glyph unicode="&#xe993;" glyph-name="laptop" d="M896 256v512c0 35.2-28.8 64-64 64h-640c-35.2 0-64-28.8-64-64v-512h-128v-192h1024v192h-128zM640 128h-256v64h256v-64zM832 256h-640v511.886c0.034 0.040 0.076 0.082 0.114 0.114h639.77c0.040-0.034 0.082-0.076 0.116-0.116v-511.884z" />
+<glyph unicode="&#xe994;" glyph-name="mobile" d="M736 960h-448c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h448c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM384 912h256v-32h-256v32zM512 0c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zM768 192h-512v640h512v-640z" />
+<glyph unicode="&#xe995;" glyph-name="mobile2" d="M768 960h-576c-35.2 0-64-28.798-64-64v-896c0-35.2 28.798-64 64-64h576c35.2 0 64 28.8 64 64v896c0 35.202-28.8 64-64 64zM480-17.782c-27.492 0-49.782 22.29-49.782 49.782s22.29 49.782 49.782 49.782 49.782-22.29 49.782-49.782-22.29-49.782-49.782-49.782zM768 128h-576v704h576v-704z" />
+<glyph unicode="&#xe996;" glyph-name="tablet" d="M800 960h-640c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h640c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM480-32c-17.672 0-32 14.326-32 32s14.328 32 32 32 32-14.326 32-32-14.328-32-32-32zM768 64h-576v768h576v-768z" />
+<glyph unicode="&#xe997;" glyph-name="tv" d="M981.188 671.892c-88.808 12.768-183.382 22.016-282.076 27.22l164.888 164.888-64 64-224.558-224.556c-21.006 0.368-42.156 0.556-63.442 0.556v0l-256 256-64-64 194.196-194.196c-120.922-4.242-236.338-14.524-343.386-29.912-27.532-107.726-42.81-226.752-42.81-351.892s15.278-244.166 42.804-351.89c143.642-20.652 302.34-32.11 469.196-32.11s325.55 11.458 469.188 32.11c27.534 107.724 42.812 226.75 42.812 351.89s-15.278 244.166-42.812 351.892zM863.892 85.406c-107.73-13.766-226.75-21.406-351.892-21.406s-244.166 7.64-351.892 21.406c-20.648 71.816-32.108 151.166-32.108 234.594 0 83.43 11.458 162.78 32.108 234.596 107.726 13.766 226.75 21.404 351.892 21.404 125.136 0 244.162-7.638 351.886-21.404 20.656-71.816 32.114-151.166 32.114-234.596 0-83.428-11.458-162.778-32.108-234.594z" />
+<glyph unicode="&#xe998;" glyph-name="drawer" d="M1016.988 307.99l-256 320c-6.074 7.592-15.266 12.010-24.988 12.010h-448c-9.72 0-18.916-4.418-24.988-12.010l-256-320c-4.538-5.674-7.012-12.724-7.012-19.99v-288c0-35.346 28.654-64 64-64h896c35.348 0 64 28.654 64 64v288c0 7.266-2.472 14.316-7.012 19.99zM960 256h-224l-128-128h-192l-128 128h-224v20.776l239.38 299.224h417.24l239.38-299.224v-20.776zM736 448h-448c-17.672 0-32 14.328-32 32s14.328 32 32 32h448c17.674 0 32-14.328 32-32s-14.326-32-32-32zM800 320h-576c-17.672 0-32 14.326-32 32s14.328 32 32 32h576c17.674 0 32-14.326 32-32s-14.326-32-32-32z" />
+<glyph unicode="&#xe999;" glyph-name="drawer2" d="M1016.988 307.99l-256 320c-6.074 7.592-15.266 12.010-24.988 12.010h-448c-9.72 0-18.916-4.418-24.988-12.010l-256-320c-4.538-5.674-7.012-12.724-7.012-19.99v-288c0-35.346 28.654-64 64-64h896c35.348 0 64 28.654 64 64v288c0 7.266-2.472 14.316-7.012 19.99zM960 256h-224l-128-128h-192l-128 128h-224v20.776l239.38 299.224h417.24l239.38-299.224v-20.776z" />
+<glyph unicode="&#xe99a;" glyph-name="box-add" d="M832 896h-640l-192-192v-672c0-17.674 14.326-32 32-32h960c17.672 0 32 14.326 32 32v672l-192 192zM512 128l-320 256h192v192h256v-192h192l-320-256zM154.51 768l64 64h586.978l64-64h-714.978z" />
+<glyph unicode="&#xe99b;" glyph-name="box-remove" d="M832 896h-640l-192-192v-672c0-17.674 14.326-32 32-32h960c17.672 0 32 14.326 32 32v672l-192 192zM640 320v-192h-256v192h-192l320 256 320-256h-192zM154.51 768l64 64h586.976l64-64h-714.976z" />
+<glyph unicode="&#xe99c;" glyph-name="download" d="M512 384l256 256h-192v256h-128v-256h-192zM744.726 488.728l-71.74-71.742 260.080-96.986-421.066-157.018-421.066 157.018 260.080 96.986-71.742 71.742-279.272-104.728v-256l512-192 512 192v256z" />
+<glyph unicode="&#xe99d;" glyph-name="upload" d="M448 384h128v256h192l-256 256-256-256h192zM640 528v-98.712l293.066-109.288-421.066-157.018-421.066 157.018 293.066 109.288v98.712l-384-144v-256l512-192 512 192v256z" />
+<glyph unicode="&#xe99e;" glyph-name="floppy-disk" d="M896 960h-896v-1024h1024v896l-128 128zM512 832h128v-256h-128v256zM896 64h-768v768h64v-320h576v320h74.978l53.022-53.018v-714.982z" />
+<glyph unicode="&#xe99f;" glyph-name="drive" d="M192 64h640c106.038 0 192 85.96 192 192h-1024c0-106.040 85.962-192 192-192zM832 192h64v-64h-64v64zM960 832h-896l-64-512h1024z" />
+<glyph unicode="&#xe9a0;" glyph-name="database" d="M512 960c-282.77 0-512-71.634-512-160v-128c0-88.366 229.23-160 512-160s512 71.634 512 160v128c0 88.366-229.23 160-512 160zM512 416c-282.77 0-512 71.634-512 160v-192c0-88.366 229.23-160 512-160s512 71.634 512 160v192c0-88.366-229.23-160-512-160zM512 128c-282.77 0-512 71.634-512 160v-192c0-88.366 229.23-160 512-160s512 71.634 512 160v192c0-88.366-229.23-160-512-160z" />
+<glyph unicode="&#xe9a1;" glyph-name="undo" d="M512 896c-141.384 0-269.376-57.32-362.032-149.978l-149.968 149.978v-384h384l-143.532 143.522c69.496 69.492 165.492 112.478 271.532 112.478 212.068 0 384-171.924 384-384 0-114.696-50.292-217.636-130.018-288l84.666-96c106.302 93.816 173.352 231.076 173.352 384 0 282.77-229.23 512-512 512z" />
+<glyph unicode="&#xe9a2;" glyph-name="redo" d="M0 384c0-152.924 67.048-290.184 173.35-384l84.666 96c-79.726 70.364-130.016 173.304-130.016 288 0 212.076 171.93 384 384 384 106.042 0 202.038-42.986 271.53-112.478l-143.53-143.522h384v384l-149.97-149.978c-92.654 92.658-220.644 149.978-362.030 149.978-282.77 0-512-229.23-512-512z" />
+<glyph unicode="&#xe9a3;" glyph-name="undo2" d="M761.862-64c113.726 206.032 132.888 520.306-313.862 509.824v-253.824l-384 384 384 384v-248.372c534.962 13.942 594.57-472.214 313.862-775.628z" />
+<glyph unicode="&#xe9a4;" glyph-name="redo2" d="M576 711.628v248.372l384-384-384-384v253.824c-446.75 10.482-427.588-303.792-313.86-509.824-280.712 303.414-221.1 789.57 313.86 775.628z" />
+<glyph unicode="&#xe9a5;" glyph-name="forward" d="M262.14 960c-113.728-206.032-132.89-520.304 313.86-509.824v253.824l384-384-384-384v248.372c-534.96-13.942-594.572 472.214-313.86 775.628z" />
+<glyph unicode="&#xe9a6;" glyph-name="reply" d="M448 184.372v-248.372l-384 384 384 384v-253.824c446.75-10.48 427.588 303.792 313.862 509.824 280.71-303.414 221.1-789.57-313.862-775.628z" />
+<glyph unicode="&#xe9a7;" glyph-name="bubble" d="M512 896c282.77 0 512-186.25 512-416 0-229.752-229.23-416-512-416-27.156 0-53.81 1.734-79.824 5.044-109.978-109.978-241.25-129.7-368.176-132.596v26.916c68.536 33.578 128 94.74 128 164.636 0 9.754-0.758 19.33-2.164 28.696-115.796 76.264-189.836 192.754-189.836 323.304 0 229.75 229.23 416 512 416z" />
+<glyph unicode="&#xe9a8;" glyph-name="bubbles" horiz-adv-x="1152" d="M1088 58.834c0-45.5 26.028-84.908 64-104.184v-15.938c-10.626-1.454-21.472-2.224-32.5-2.224-68.008 0-129.348 28.528-172.722 74.264-26.222-6.982-54.002-10.752-82.778-10.752-159.058 0-288 114.616-288 256s128.942 256 288 256c159.058 0 288-114.616 288-256 0-55.348-19.764-106.592-53.356-148.466-6.824-14.824-10.644-31.312-10.644-48.7zM512 960c278.458 0 504.992-180.614 511.836-405.52-49.182 21.92-103.586 33.52-159.836 33.52-95.56 0-185.816-33.446-254.138-94.178-70.846-62.972-109.862-147.434-109.862-237.822 0-44.672 9.544-87.888 27.736-127.788-5.228-0.126-10.468-0.212-15.736-0.212-27.156 0-53.81 1.734-79.824 5.044-109.978-109.978-241.25-129.7-368.176-132.596v26.916c68.536 33.578 128 94.74 128 164.636 0 9.754-0.758 19.33-2.164 28.696-115.796 76.264-189.836 192.754-189.836 323.304 0 229.75 229.23 416 512 416z" />
+<glyph unicode="&#xe9a9;" glyph-name="bubbles2" horiz-adv-x="1152" d="M480 960v0c265.096 0 480-173.914 480-388.448s-214.904-388.448-480-388.448c-25.458 0-50.446 1.62-74.834 4.71-103.106-102.694-222.172-121.108-341.166-123.814v25.134c64.252 31.354 116 88.466 116 153.734 0 9.106-0.712 18.048-2.030 26.794-108.558 71.214-177.97 179.988-177.97 301.89 0 214.534 214.904 388.448 480 388.448zM996 89.314c0-55.942 36.314-104.898 92-131.772v-21.542c-103.126 2.318-197.786 18.102-287.142 106.126-21.14-2.65-42.794-4.040-64.858-4.040-95.47 0-183.408 25.758-253.614 69.040 144.674 0.506 281.26 46.854 384.834 130.672 52.208 42.252 93.394 91.826 122.414 147.348 30.766 58.866 46.366 121.582 46.366 186.406 0 10.448-0.45 20.836-1.258 31.168 72.57-59.934 117.258-141.622 117.258-231.676 0-104.488-60.158-197.722-154.24-258.764-1.142-7.496-1.76-15.16-1.76-22.966z" />
+<glyph unicode="&#xe9aa;" glyph-name="bubble2" d="M512 768c-54.932 0-107.988-8.662-157.694-25.742-46.712-16.054-88.306-38.744-123.628-67.444-66.214-53.798-102.678-122.984-102.678-194.814 0-40.298 11.188-79.378 33.252-116.152 22.752-37.92 56.982-72.586 98.988-100.252 30.356-19.992 50.78-51.948 56.176-87.894 1.8-11.984 2.928-24.088 3.37-36.124 7.47 6.194 14.75 12.846 21.88 19.976 24.154 24.152 56.78 37.49 90.502 37.49 5.368 0 10.762-0.336 16.156-1.024 20.974-2.666 42.398-4.020 63.676-4.020 54.934 0 107.988 8.66 157.694 25.742 46.712 16.054 88.306 38.744 123.628 67.444 66.214 53.796 102.678 122.984 102.678 194.814s-36.464 141.016-102.678 194.814c-35.322 28.698-76.916 51.39-123.628 67.444-49.706 17.080-102.76 25.742-157.694 25.742zM512 896v0c282.77 0 512-186.25 512-416 0-229.752-229.23-416-512-416-27.156 0-53.81 1.734-79.824 5.044-109.978-109.978-241.25-129.7-368.176-132.596v26.916c68.536 33.578 128 94.74 128 164.636 0 9.754-0.758 19.33-2.164 28.696-115.796 76.264-189.836 192.754-189.836 323.304 0 229.75 229.23 416 512 416z" />
+<glyph unicode="&#xe9ab;" glyph-name="bubbles3" horiz-adv-x="1152" d="M1088 58.834c0-45.5 26.028-84.908 64-104.184v-15.938c-10.626-1.454-21.472-2.224-32.5-2.224-68.008 0-129.348 28.528-172.722 74.264-26.222-6.982-54.002-10.752-82.778-10.752-159.058 0-288 114.616-288 256s128.942 256 288 256c159.058 0 288-114.616 288-256 0-55.348-19.764-106.592-53.356-148.466-6.824-14.824-10.644-31.312-10.644-48.7zM230.678 738.814c-66.214-53.798-102.678-122.984-102.678-194.814 0-40.298 11.188-79.378 33.252-116.15 22.752-37.92 56.982-72.586 98.988-100.252 30.356-19.992 50.78-51.948 56.176-87.894 1.8-11.984 2.928-24.088 3.37-36.124 7.47 6.194 14.75 12.846 21.88 19.976 24.154 24.152 56.78 37.49 90.502 37.49 5.368 0 10.762-0.336 16.156-1.024 20.948-2.662 42.344-4.016 63.594-4.020v-128c-27.128 0.002-53.754 1.738-79.742 5.042-109.978-109.978-241.25-129.7-368.176-132.596v26.916c68.536 33.578 128 94.74 128 164.636 0 9.754-0.758 19.33-2.164 28.696-115.796 76.264-189.836 192.754-189.836 323.304 0 229.75 229.23 416 512 416 278.458 0 504.992-180.614 511.836-405.52-41.096 18.316-85.84 29.422-132.262 32.578-11.53 56.068-45.402 108.816-98.252 151.756-35.322 28.698-76.916 51.39-123.628 67.444-49.706 17.080-102.76 25.742-157.694 25.742-54.932 0-107.988-8.662-157.694-25.742-46.712-16.054-88.306-38.744-123.628-67.444z" />
+<glyph unicode="&#xe9ac;" glyph-name="bubbles4" horiz-adv-x="1152" d="M480 832c-50.666 0-99.582-7.95-145.386-23.628-42.924-14.694-81.114-35.436-113.502-61.646-60.044-48.59-93.112-110.802-93.112-175.174 0-35.99 10.066-70.948 29.92-103.898 20.686-34.34 51.898-65.794 90.26-90.958 30.44-19.968 50.936-51.952 56.362-87.95 0.902-5.99 1.63-12.006 2.18-18.032 2.722 2.52 5.424 5.114 8.114 7.794 24.138 24.040 56.688 37.312 90.322 37.312 5.348 0 10.718-0.336 16.094-1.018 19.36-2.452 39.124-3.696 58.748-3.696 50.666 0 99.58 7.948 145.384 23.628 42.926 14.692 81.116 35.434 113.504 61.644 60.046 48.59 93.112 110.802 93.112 175.174s-33.066 126.582-93.112 175.174c-32.388 26.212-70.578 46.952-113.504 61.646-45.804 15.678-94.718 23.628-145.384 23.628zM480 960v0c265.096 0 480-173.914 480-388.448s-214.904-388.448-480-388.448c-25.458 0-50.446 1.62-74.834 4.71-103.106-102.694-222.172-121.108-341.166-123.814v25.134c64.252 31.354 116 88.466 116 153.734 0 9.106-0.712 18.048-2.030 26.794-108.558 71.214-177.97 179.988-177.97 301.89 0 214.534 214.904 388.448 480 388.448zM996 89.314c0-55.942 36.314-104.898 92-131.772v-21.542c-103.126 2.318-197.786 18.102-287.142 106.126-21.14-2.65-42.794-4.040-64.858-4.040-95.47 0-183.408 25.758-253.614 69.040 144.674 0.506 281.26 46.854 384.834 130.672 52.208 42.252 93.394 91.826 122.414 147.348 30.766 58.866 46.366 121.582 46.366 186.406 0 10.448-0.45 20.836-1.258 31.168 72.57-59.934 117.258-141.622 117.258-231.676 0-104.488-60.158-197.722-154.24-258.764-1.142-7.496-1.76-15.16-1.76-22.966z" />
+<glyph unicode="&#xe9ad;" glyph-name="user2" d="M576 253.388v52.78c70.498 39.728 128 138.772 128 237.832 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h896c0 128.968-166.898 235.64-384 253.388z" />
+<glyph unicode="&#xe9ae;" glyph-name="users" horiz-adv-x="1152" d="M768 189.388v52.78c70.498 39.728 128 138.772 128 237.832 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h896c0 128.968-166.898 235.64-384 253.388zM327.196 164.672c55.31 36.15 124.080 63.636 199.788 80.414-15.054 17.784-28.708 37.622-40.492 59.020-30.414 55.234-46.492 116.058-46.492 175.894 0 86.042 0 167.31 30.6 233.762 29.706 64.504 83.128 104.496 159.222 119.488-16.914 76.48-61.94 126.75-181.822 126.75-192 0-192-128.942-192-288 0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h279.006c14.518 12.91 30.596 25.172 48.19 36.672z" />
+<glyph unicode="&#xe9af;" glyph-name="user-plus" d="M384 224c0 151.234 95.874 280.486 230.032 330.2 16.28 36.538 25.968 77.164 25.968 117.8 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h397.306c-8.664 30.53-13.306 62.732-13.306 96zM736 512c-159.058 0-288-128.942-288-288s128.942-288 288-288c159.056 0 288 128.942 288 288s-128.942 288-288 288zM896 192h-128v-128h-64v128h-128v64h128v128h64v-128h128v-64z" />
+<glyph unicode="&#xe9b0;" glyph-name="user-minus" d="M384 224c0 151.234 95.874 280.486 230.032 330.2 16.28 36.538 25.968 77.164 25.968 117.8 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h397.306c-8.664 30.53-13.306 62.732-13.306 96zM736 512c-159.058 0-288-128.942-288-288s128.942-288 288-288c159.056 0 288 128.942 288 288s-128.942 288-288 288zM896 192h-320v64h320v-64z" />
+<glyph unicode="&#xe9b1;" glyph-name="user-check" d="M960 352l-288-288-96 96-64-64 160-160 352 352zM448 192h320v115.128c-67.22 39.2-156.308 66.11-256 74.26v52.78c70.498 39.728 128 138.772 128 237.832 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h448v64z" />
+<glyph unicode="&#xe9b2;" glyph-name="user-tie" d="M320 768c0 106.039 85.961 192 192 192s192-85.961 192-192c0-106.039-85.961-192-192-192s-192 85.961-192 192zM768.078 512h-35.424l-199.104-404.244 74.45 372.244-96 96-96-96 74.45-372.244-199.102 404.244h-35.424c-127.924 0-127.924-85.986-127.924-192v-320h768v320c0 106.014 0 192-127.922 192z" />
+<glyph unicode="&#xe9b3;" glyph-name="quotes-left" d="M225 512c123.712 0 224-100.29 224-224 0-123.712-100.288-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.634-11.636-22.252-24.016-31.83-37.020 11.438 1.8 23.16 2.746 35.104 2.746zM801 512c123.71 0 224-100.29 224-224 0-123.712-100.29-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.636-11.636-22.254-24.016-31.832-37.020 11.44 1.8 23.16 2.746 35.106 2.746z" />
+<glyph unicode="&#xe9b4;" glyph-name="quotes-right" d="M800 320c-123.712 0-224 100.29-224 224 0 123.712 100.288 224 224 224s224-100.288 224-224l1-32c0-247.424-200.576-448-448-448v128c85.474 0 165.834 33.286 226.274 93.726 11.634 11.636 22.252 24.016 31.83 37.020-11.438-1.8-23.16-2.746-35.104-2.746zM224 320c-123.71 0-224 100.29-224 224 0 123.712 100.29 224 224 224s224-100.288 224-224l1-32c0-247.424-200.576-448-448-448v128c85.474 0 165.834 33.286 226.274 93.726 11.636 11.636 22.254 24.016 31.832 37.020-11.44-1.8-23.16-2.746-35.106-2.746z" />
+<glyph unicode="&#xe9b5;" glyph-name="hour-glass" d="M728.992 448c137.754 87.334 231.008 255.208 231.008 448 0 21.676-1.192 43.034-3.478 64h-889.042c-2.29-20.968-3.48-42.326-3.48-64 0-192.792 93.254-360.666 231.006-448-137.752-87.334-231.006-255.208-231.006-448 0-21.676 1.19-43.034 3.478-64h889.042c2.288 20.966 3.478 42.324 3.478 64 0.002 192.792-93.252 360.666-231.006 448zM160 0c0 186.912 80.162 345.414 224 397.708v100.586c-143.838 52.29-224 210.792-224 397.706v0h704c0-186.914-80.162-345.416-224-397.706v-100.586c143.838-52.294 224-210.796 224-397.708h-704zM619.626 290.406c-71.654 40.644-75.608 93.368-75.626 125.366v64.228c0 31.994 3.804 84.914 75.744 125.664 38.504 22.364 71.808 56.348 97.048 98.336h-409.582c25.266-42.032 58.612-76.042 97.166-98.406 71.654-40.644 75.606-93.366 75.626-125.366v-64.228c0-31.992-3.804-84.914-75.744-125.664-72.622-42.18-126.738-125.684-143.090-226.336h501.67c-16.364 100.708-70.53 184.248-143.212 226.406z" />
+<glyph unicode="&#xe9b6;" glyph-name="spinner" d="M384 832c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM655.53 719.53c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM832 448c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM719.53 176.47c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM448.002 64c0 0 0 0 0 0 0 35.346 28.654 64 64 64s64-28.654 64-64c0 0 0 0 0 0 0-35.346-28.654-64-64-64s-64 28.654-64 64zM176.472 176.47c0 0 0 0 0 0 0 35.346 28.654 64 64 64s64-28.654 64-64c0 0 0 0 0 0 0-35.346-28.654-64-64-64s-64 28.654-64 64zM144.472 719.53c0 0 0 0 0 0 0 53.019 42.981 96 96 96s96-42.981 96-96c0 0 0 0 0 0 0-53.019-42.981-96-96-96s-96 42.981-96 96zM56 448c0 39.765 32.235 72 72 72s72-32.235 72-72c0-39.765-32.235-72-72-72s-72 32.235-72 72z" />
+<glyph unicode="&#xe9b7;" glyph-name="spinner2" d="M1024 448c-1.278 66.862-15.784 133.516-42.576 194.462-26.704 61-65.462 116.258-113.042 161.92-47.552 45.696-103.944 81.82-164.984 105.652-61.004 23.924-126.596 35.352-191.398 33.966-64.81-1.282-129.332-15.374-188.334-41.356-59.048-25.896-112.542-63.47-156.734-109.576-44.224-46.082-79.16-100.708-102.186-159.798-23.114-59.062-34.128-122.52-32.746-185.27 1.286-62.76 14.964-125.148 40.134-182.206 25.088-57.1 61.476-108.828 106.11-151.548 44.61-42.754 97.472-76.504 154.614-98.72 57.118-22.304 118.446-32.902 179.142-31.526 60.708 1.29 120.962 14.554 176.076 38.914 55.15 24.282 105.116 59.48 146.366 102.644 41.282 43.14 73.844 94.236 95.254 149.43 13.034 33.458 21.88 68.4 26.542 103.798 1.246-0.072 2.498-0.12 3.762-0.12 35.346 0 64 28.652 64 64 0 1.796-0.094 3.572-0.238 5.332h0.238zM922.306 278.052c-23.472-53.202-57.484-101.4-99.178-141.18-41.67-39.81-91-71.186-144.244-91.79-53.228-20.678-110.29-30.452-166.884-29.082-56.604 1.298-112.596 13.736-163.82 36.474-51.25 22.666-97.684 55.49-135.994 95.712-38.338 40.198-68.528 87.764-88.322 139.058-19.87 51.284-29.228 106.214-27.864 160.756 1.302 54.552 13.328 108.412 35.254 157.69 21.858 49.3 53.498 93.97 92.246 130.81 38.73 36.868 84.53 65.87 133.874 84.856 49.338 19.060 102.136 28.006 154.626 26.644 52.5-1.306 104.228-12.918 151.562-34.034 47.352-21.050 90.256-51.502 125.624-88.782 35.396-37.258 63.21-81.294 81.39-128.688 18.248-47.392 26.782-98.058 25.424-148.496h0.238c-0.144-1.76-0.238-3.536-0.238-5.332 0-33.012 24.992-60.174 57.086-63.624-6.224-34.822-16.53-68.818-30.78-100.992z" />
+<glyph unicode="&#xe9b8;" glyph-name="spinner3" d="M512 656.904c-32.964 0-59.686 26.724-59.686 59.686v179.060c0 32.964 26.722 59.686 59.686 59.686 32.962 0 59.688-26.722 59.688-59.686v-179.060c0-32.964-26.726-59.686-59.688-59.686zM512-36.956c-20.602 0-37.304 16.702-37.304 37.304v179.060c0 20.602 16.702 37.304 37.304 37.304 20.604 0 37.304-16.704 37.304-37.304v-179.060c0-20.602-16.7-37.304-37.304-37.304zM377.756 624.64c-19.34 0-38.146 10.034-48.512 27.988l-89.53 155.070c-15.452 26.764-6.282 60.986 20.482 76.438 26.762 15.45 60.986 6.284 76.438-20.482l89.53-155.072c15.452-26.764 6.282-60.986-20.482-76.438-8.81-5.084-18.432-7.504-27.926-7.504zM735.856 26.744c-11.602 0-22.886 6.022-29.108 16.792l-89.53 155.070c-9.27 16.056-3.77 36.592 12.29 45.864 16.056 9.264 36.59 3.77 45.864-12.292l89.532-155.068c9.27-16.058 3.768-36.592-12.292-45.864-5.286-3.048-11.060-4.502-16.756-4.502zM279.344 530.060c-8.86 0-17.838 2.256-26.064 7.006l-155.072 89.53c-24.978 14.422-33.538 46.362-19.116 71.342 14.42 24.978 46.364 33.538 71.342 19.116l155.070-89.53c24.98-14.422 33.538-46.362 19.116-71.34-9.668-16.756-27.226-26.124-45.276-26.124zM899.648 194.326c-5.064 0-10.196 1.29-14.894 4.004l-155.068 89.53c-14.274 8.24-19.164 26.494-10.924 40.768 8.242 14.276 26.496 19.166 40.766 10.924l155.070-89.532c14.274-8.24 19.164-26.492 10.924-40.766-5.53-9.574-15.562-14.928-25.874-14.928zM243.41 399.504h-179.060c-26.784 0-48.496 21.712-48.496 48.496s21.712 48.496 48.496 48.496h179.060c26.784 0 48.496-21.712 48.496-48.496s-21.712-48.496-48.496-48.496zM959.65 418.156c-0.002 0 0 0 0 0h-179.060c-16.482 0.002-29.844 13.364-29.844 29.844s13.364 29.844 29.844 29.844c0.002 0 0 0 0 0h179.060c16.482 0 29.844-13.362 29.844-29.844 0-16.48-13.364-29.844-29.844-29.844zM124.366 179.402c-15.472 0-30.518 8.028-38.81 22.39-12.362 21.41-5.026 48.79 16.384 61.148l155.072 89.532c21.41 12.368 48.79 5.028 61.15-16.384 12.362-21.412 5.026-48.79-16.384-61.15l-155.072-89.53c-7.050-4.070-14.748-6.006-22.34-6.006zM744.632 552.448c-10.314 0-20.346 5.352-25.874 14.926-8.24 14.274-3.35 32.526 10.924 40.768l155.070 89.528c14.272 8.236 32.526 3.352 40.768-10.922 8.24-14.274 3.35-32.526-10.924-40.768l-155.070-89.528c-4.7-2.714-9.83-4.004-14.894-4.004zM288.136 19.284c-6.962 0-14.016 1.774-20.48 5.504-19.626 11.332-26.35 36.428-15.020 56.054l89.53 155.070c11.33 19.628 36.426 26.352 56.054 15.022 19.626-11.332 26.35-36.43 15.020-56.054l-89.53-155.072c-7.598-13.166-21.392-20.524-35.574-20.524zM646.266 650.758c-5.062 0-10.196 1.29-14.894 4.002-14.274 8.242-19.164 26.494-10.924 40.766l89.534 155.070c8.24 14.274 26.492 19.166 40.766 10.922 14.274-8.242 19.164-26.494 10.924-40.766l-89.532-155.070c-5.53-9.57-15.56-14.924-25.874-14.924z" />
+<glyph unicode="&#xe9b9;" glyph-name="spinner4" d="M192 448c0 12.18 0.704 24.196 2.030 36.022l-184.98 60.104c-5.916-31.14-9.050-63.264-9.050-96.126 0-147.23 62.166-279.922 161.654-373.324l114.284 157.296c-52.124 56.926-83.938 132.758-83.938 216.028zM832 448c0-83.268-31.812-159.102-83.938-216.028l114.284-157.296c99.488 93.402 161.654 226.094 161.654 373.324 0 32.862-3.132 64.986-9.048 96.126l-184.98-60.104c1.324-11.828 2.028-23.842 2.028-36.022zM576 761.592c91.934-18.662 169.544-76.742 214.45-155.826l184.978 60.102c-73.196 155.42-222.24 268.060-399.428 290.156v-194.432zM233.55 605.768c44.906 79.084 122.516 137.164 214.45 155.826v194.43c-177.188-22.096-326.23-134.736-399.426-290.154l184.976-60.102zM644.556 156.672c-40.39-18.408-85.272-28.672-132.556-28.672s-92.166 10.264-132.554 28.67l-114.292-157.31c73.206-40.366 157.336-63.36 246.846-63.36s173.64 22.994 246.848 63.36l-114.292 157.312z" />
+<glyph unicode="&#xe9ba;" glyph-name="spinner5" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 704c141.384 0 256-114.616 256-256s-114.616-256-256-256-256 114.616-256 256 114.616 256 256 256zM817.47 142.53c-81.594-81.594-190.080-126.53-305.47-126.53-115.392 0-223.876 44.936-305.47 126.53s-126.53 190.078-126.53 305.47c0 115.39 44.936 223.876 126.53 305.47l67.882-67.882c0 0 0 0 0 0-131.006-131.006-131.006-344.17 0-475.176 63.462-63.462 147.838-98.412 237.588-98.412 89.748 0 174.124 34.95 237.588 98.412 131.006 131.006 131.006 344.168 0 475.176l67.882 67.882c81.594-81.594 126.53-190.080 126.53-305.47 0-115.392-44.936-223.876-126.53-305.47z" />
+<glyph unicode="&#xe9bb;" glyph-name="spinner6" d="M384 832c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM790.994 448c0 0 0 0 0 0 0 57.993 47.013 105.006 105.006 105.006s105.006-47.013 105.006-105.006c0 0 0 0 0 0 0-57.993-47.013-105.006-105.006-105.006s-105.006 47.013-105.006 105.006zM688.424 176.47c0 52.526 42.58 95.106 95.106 95.106s95.106-42.58 95.106-95.106c0-52.526-42.58-95.106-95.106-95.106s-95.106 42.58-95.106 95.106zM425.862 64c0 47.573 38.565 86.138 86.138 86.138s86.138-38.565 86.138-86.138c0-47.573-38.565-86.138-86.138-86.138s-86.138 38.565-86.138 86.138zM162.454 176.47c0 43.088 34.93 78.018 78.018 78.018s78.018-34.93 78.018-78.018c0-43.088-34.93-78.018-78.018-78.018s-78.018 34.93-78.018 78.018zM57.338 448c0 39.026 31.636 70.662 70.662 70.662s70.662-31.636 70.662-70.662c0-39.026-31.636-70.662-70.662-70.662s-70.662 31.636-70.662 70.662zM176.472 719.528c0 0 0 0 0 0 0 35.346 28.654 64 64 64s64-28.654 64-64c0 0 0 0 0 0 0-35.346-28.654-64-64-64s-64 28.654-64 64zM899.464 719.528c0-64.024-51.906-115.934-115.936-115.934-64.024 0-115.936 51.91-115.936 115.934 0 64.032 51.912 115.934 115.936 115.934 64.030 0 115.936-51.902 115.936-115.934z" />
+<glyph unicode="&#xe9bc;" glyph-name="spinner7" d="M416 32c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM0 448c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM832 448c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM121.844 742.156c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM710.156 153.844c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM121.844 153.844c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM710.156 742.156c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96z" />
+<glyph unicode="&#xe9bd;" glyph-name="spinner8" d="M512-64c-136.76 0-265.334 53.258-362.040 149.96-96.702 96.706-149.96 225.28-149.96 362.040 0 96.838 27.182 191.134 78.606 272.692 50 79.296 120.664 143.372 204.356 185.3l43-85.832c-68.038-34.084-125.492-86.186-166.15-150.67-41.746-66.208-63.812-142.798-63.812-221.49 0-229.382 186.618-416 416-416s416 186.618 416 416c0 78.692-22.066 155.282-63.81 221.49-40.66 64.484-98.114 116.584-166.15 150.67l43 85.832c83.692-41.928 154.358-106.004 204.356-185.3 51.422-81.558 78.604-175.854 78.604-272.692 0-136.76-53.258-265.334-149.96-362.040-96.706-96.702-225.28-149.96-362.040-149.96z" />
+<glyph unicode="&#xe9be;" glyph-name="spinner9" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96s96 42.98 96 96c0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96s-96-42.98-96-96c0-282.77 229.23-512 512-512z" />
+<glyph unicode="&#xe9bf;" glyph-name="spinner10" d="M0.042 446.382l-0.022-0.004c0 0 0.012-0.090 0.028-0.222 0.11-3.878 0.55-7.676 1.322-11.352 0.204-1.746 0.428-3.66 0.674-5.774 0.222-1.886 0.46-3.914 0.718-6.078 0.374-2.566 0.77-5.292 1.19-8.176 0.856-5.746 1.8-12.124 2.908-18.958 1.348-6.446 2.804-13.414 4.364-20.864 0.71-3.718 1.776-7.504 2.786-11.406 1.024-3.89 2.078-7.894 3.16-12.004 0.566-2.042 1.040-4.132 1.708-6.208 0.656-2.074 1.32-4.176 1.988-6.3 1.348-4.234 2.726-8.566 4.136-12.988 0.352-1.106 0.708-2.21 1.064-3.324 0.408-1.102 0.814-2.208 1.226-3.316 0.826-2.218 1.658-4.458 2.502-6.714 1.696-4.496 3.422-9.078 5.18-13.742 1.968-4.566 3.97-9.214 6.004-13.934 1.018-2.348 2.044-4.714 3.078-7.098 1.048-2.376 2.27-4.704 3.408-7.074 2.322-4.714 4.678-9.496 7.062-14.332 2.47-4.786 5.208-9.512 7.846-14.328 1.336-2.398 2.68-4.808 4.028-7.23 1.368-2.41 2.902-4.75 4.356-7.14 2.95-4.738 5.93-9.524 8.934-14.348 12.64-18.894 26.676-37.566 42.21-55.278 15.712-17.578 32.726-34.25 50.692-49.602 18.18-15.136 37.264-28.902 56.726-41.114 19.604-12.036 39.644-22.312 59.376-31.144 5.004-2.040 9.964-4.062 14.878-6.066 2.462-0.972 4.868-2.032 7.336-2.918 2.47-0.868 4.93-1.734 7.376-2.594 4.898-1.684 9.678-3.468 14.484-4.992 4.832-1.43 9.604-2.844 14.312-4.242 2.356-0.672 4.66-1.426 7.004-2.012 2.346-0.574 4.676-1.14 6.986-1.704 4.606-1.118 9.142-2.214 13.604-3.296 4.5-0.868 8.926-1.722 13.27-2.558 2.166-0.41 4.31-0.82 6.434-1.222 1.062-0.2 2.118-0.398 3.166-0.598 1.060-0.148 2.118-0.292 3.166-0.442 4.192-0.582 8.292-1.152 12.3-1.71 1.998-0.274 3.972-0.546 5.922-0.816 1.946-0.286 3.904-0.378 5.814-0.57 3.822-0.336 7.544-0.664 11.164-0.98 3.616-0.304 7.104-0.688 10.526-0.738 0.23-0.008 0.452-0.016 0.682-0.026 0.614-34.812 29.008-62.846 63.968-62.846 0.542 0 1.080 0.028 1.62 0.042v-0.022c0 0 0.090 0.012 0.224 0.028 3.878 0.11 7.674 0.55 11.35 1.322 1.748 0.204 3.662 0.426 5.776 0.672 1.884 0.222 3.912 0.462 6.076 0.718 2.566 0.376 5.292 0.772 8.176 1.192 5.746 0.856 12.124 1.8 18.958 2.908 6.446 1.348 13.414 2.804 20.864 4.362 3.718 0.712 7.504 1.778 11.406 2.786 3.892 1.026 7.894 2.080 12.004 3.162 2.044 0.566 4.132 1.040 6.208 1.708 2.074 0.656 4.174 1.318 6.3 1.988 4.232 1.348 8.564 2.726 12.988 4.134 1.104 0.354 2.21 0.708 3.324 1.066 1.1 0.406 2.206 0.814 3.316 1.226 2.216 0.824 4.456 1.658 6.714 2.5 4.496 1.698 9.078 3.424 13.74 5.182 4.568 1.968 9.216 3.97 13.936 6.004 2.348 1.018 4.714 2.044 7.098 3.078 2.376 1.048 4.702 2.27 7.074 3.408 4.714 2.322 9.494 4.678 14.33 7.062 4.786 2.47 9.512 5.208 14.328 7.846 2.398 1.336 4.808 2.678 7.23 4.028 2.41 1.366 4.75 2.9 7.14 4.354 4.738 2.952 9.524 5.93 14.35 8.936 18.89 12.64 37.564 26.674 55.278 42.21 17.574 15.712 34.248 32.726 49.602 50.69 15.136 18.182 28.902 37.264 41.112 56.728 12.036 19.602 22.314 39.644 31.142 59.376 2.042 5.002 4.062 9.964 6.068 14.878 0.974 2.462 2.032 4.868 2.918 7.334 0.87 2.472 1.732 4.932 2.592 7.376 1.686 4.898 3.468 9.678 4.994 14.484 1.432 4.832 2.846 9.604 4.24 14.31 0.674 2.358 1.43 4.66 2.016 7.004 0.57 2.348 1.138 4.676 1.702 6.988 1.118 4.606 2.216 9.14 3.296 13.602 0.868 4.502 1.72 8.928 2.558 13.272 0.41 2.164 0.818 4.308 1.222 6.434 0.2 1.060 0.398 2.116 0.596 3.164 0.148 1.062 0.296 2.118 0.444 3.168 0.582 4.19 1.152 8.292 1.708 12.3 0.278 1.996 0.55 3.97 0.82 5.922 0.284 1.946 0.376 3.902 0.568 5.812 0.336 3.822 0.664 7.546 0.98 11.164 0.304 3.616 0.686 7.106 0.738 10.528 0.020 0.534 0.040 1.044 0.058 1.574 35.224 0.146 63.732 28.738 63.732 63.992 0 0.542-0.028 1.080-0.042 1.62h0.022c0 0-0.012 0.090-0.028 0.224-0.11 3.878-0.55 7.674-1.322 11.35-0.204 1.748-0.428 3.662-0.674 5.776-0.222 1.886-0.46 3.914-0.718 6.076-0.374 2.566-0.77 5.294-1.19 8.176-0.856 5.746-1.8 12.124-2.908 18.958-1.348 6.444-2.804 13.414-4.364 20.862-0.71 3.72-1.776 7.506-2.786 11.408-1.024 3.892-2.078 7.894-3.16 12.002-0.566 2.044-1.040 4.134-1.708 6.208-0.656 2.076-1.32 4.174-1.988 6.3-1.348 4.234-2.726 8.566-4.136 12.99-0.352 1.102-0.708 2.21-1.064 3.324-0.408 1.1-0.814 2.206-1.226 3.316-0.826 2.216-1.658 4.454-2.502 6.714-1.696 4.498-3.422 9.080-5.18 13.74-1.968 4.57-3.97 9.216-6.004 13.936-1.020 2.348-2.044 4.714-3.078 7.098-1.048 2.376-2.27 4.702-3.408 7.076-2.322 4.714-4.678 9.494-7.062 14.33-2.47 4.786-5.208 9.512-7.846 14.328-1.336 2.398-2.68 4.808-4.028 7.23-1.368 2.41-2.902 4.75-4.356 7.14-2.95 4.74-5.93 9.524-8.934 14.35-12.64 18.892-26.676 37.564-42.21 55.278-15.712 17.576-32.726 34.25-50.692 49.602-18.18 15.136-37.264 28.902-56.726 41.112-19.604 12.036-39.644 22.314-59.376 31.142-5.004 2.040-9.964 4.062-14.878 6.068-2.462 0.974-4.868 2.032-7.336 2.918-2.47 0.87-4.93 1.734-7.376 2.592-4.898 1.684-9.678 3.468-14.484 4.994-4.832 1.432-9.604 2.846-14.312 4.242-2.356 0.672-4.66 1.428-7.004 2.014-2.346 0.572-4.676 1.138-6.986 1.702-4.606 1.118-9.142 2.216-13.604 3.298-4.5 0.868-8.926 1.72-13.27 2.558-2.166 0.412-4.31 0.82-6.434 1.222-1.062 0.2-2.118 0.398-3.166 0.596-1.060 0.148-2.118 0.296-3.166 0.442-4.192 0.584-8.292 1.154-12.3 1.71-1.998 0.276-3.972 0.55-5.922 0.82-1.946 0.284-3.904 0.376-5.814 0.57-3.822 0.336-7.544 0.664-11.164 0.98-3.616 0.304-7.104 0.686-10.526 0.738-0.852 0.032-1.674 0.062-2.512 0.092-0.65 34.78-29.028 62.778-63.966 62.778-0.542 0-1.080-0.028-1.62-0.042l-0.002 0.022c0 0-0.090-0.012-0.222-0.028-3.878-0.11-7.676-0.55-11.352-1.322-1.748-0.204-3.662-0.426-5.776-0.672-1.884-0.222-3.912-0.462-6.076-0.718-2.566-0.376-5.292-0.772-8.176-1.192-5.746-0.856-12.124-1.8-18.958-2.908-6.446-1.348-13.414-2.804-20.864-4.362-3.718-0.712-7.504-1.778-11.406-2.786-3.892-1.026-7.894-2.080-12.004-3.162-2.044-0.566-4.132-1.040-6.208-1.708-2.074-0.656-4.174-1.318-6.3-1.988-4.232-1.348-8.564-2.726-12.988-4.134-1.104-0.354-2.21-0.708-3.324-1.066-1.1-0.406-2.206-0.814-3.316-1.226-2.216-0.824-4.456-1.658-6.714-2.5-4.496-1.698-9.078-3.424-13.74-5.182-4.568-1.968-9.216-3.97-13.936-6.004-2.348-1.018-4.714-2.044-7.098-3.078-2.376-1.048-4.702-2.27-7.074-3.408-4.714-2.322-9.494-4.678-14.33-7.062-4.786-2.47-9.512-5.208-14.328-7.846-2.398-1.336-4.808-2.678-7.23-4.028-2.41-1.366-4.75-2.9-7.14-4.354-4.738-2.952-9.524-5.93-14.35-8.936-18.89-12.64-37.564-26.674-55.278-42.21-17.574-15.712-34.248-32.726-49.602-50.69-15.136-18.182-28.902-37.264-41.112-56.728-12.036-19.602-22.314-39.644-31.142-59.376-2.042-5.002-4.062-9.964-6.068-14.878-0.974-2.462-2.032-4.868-2.918-7.334-0.87-2.472-1.732-4.932-2.592-7.376-1.686-4.898-3.468-9.678-4.994-14.484-1.432-4.832-2.846-9.604-4.24-14.31-0.674-2.358-1.43-4.66-2.016-7.004-0.57-2.348-1.138-4.676-1.702-6.988-1.118-4.606-2.216-9.14-3.296-13.602-0.868-4.502-1.72-8.928-2.558-13.272-0.41-2.164-0.818-4.308-1.222-6.434-0.2-1.060-0.398-2.116-0.596-3.164-0.148-1.062-0.296-2.118-0.444-3.168-0.582-4.19-1.152-8.292-1.708-12.3-0.278-1.996-0.55-3.97-0.82-5.922-0.284-1.946-0.376-3.902-0.568-5.812-0.336-3.822-0.664-7.546-0.98-11.164-0.304-3.616-0.686-7.106-0.738-10.528-0.020-0.548-0.040-1.076-0.058-1.62-34.376-1.112-61.902-29.304-61.902-63.946 0-0.542 0.028-1.078 0.042-1.618zM73.518 511.294c0.042 0.196 0.086 0.384 0.128 0.58 0.644 3.248 1.632 6.542 2.556 9.942 0.934 3.388 1.894 6.876 2.88 10.454 0.516 1.78 0.934 3.602 1.546 5.406 0.596 1.802 1.202 3.628 1.81 5.476 1.218 3.682 2.464 7.45 3.736 11.294 0.316 0.958 0.634 1.924 0.956 2.892 0.37 0.954 0.74 1.914 1.114 2.876 0.746 1.924 1.5 3.868 2.26 5.83 1.52 3.904 3.070 7.882 4.646 11.93 1.768 3.96 3.566 7.99 5.392 12.080 0.908 2.038 1.824 4.090 2.746 6.156 0.932 2.060 2.036 4.072 3.052 6.126 2.070 4.084 4.17 8.222 6.294 12.412 2.202 4.142 4.654 8.224 6.998 12.392 1.184 2.074 2.374 4.16 3.57 6.256 1.21 2.086 2.586 4.102 3.876 6.166 2.616 4.098 5.256 8.232 7.918 12.402 11.234 16.298 23.632 32.398 37.33 47.638 13.874 15.104 28.842 29.404 44.598 42.548 15.974 12.928 32.686 24.65 49.676 35.022 17.13 10.194 34.6 18.838 51.734 26.258 4.35 1.7 8.662 3.382 12.934 5.050 2.136 0.812 4.216 1.71 6.36 2.444 2.146 0.714 4.28 1.428 6.404 2.136 4.25 1.386 8.382 2.888 12.548 4.142 4.184 1.174 8.314 2.332 12.392 3.474 2.038 0.55 4.026 1.19 6.054 1.662 2.030 0.458 4.044 0.914 6.044 1.368 3.978 0.91 7.896 1.806 11.748 2.688 3.888 0.686 7.71 1.36 11.462 2.022 1.868 0.33 3.716 0.658 5.546 0.98 0.914 0.162 1.824 0.324 2.728 0.484 0.916 0.112 1.828 0.222 2.734 0.332 3.612 0.448 7.148 0.882 10.604 1.31 1.72 0.216 3.422 0.432 5.102 0.644 1.674 0.226 3.364 0.266 5.010 0.408 3.292 0.238 6.498 0.472 9.616 0.7 3.11 0.218 6.11 0.524 9.058 0.508 5.848 0.132 11.32 0.256 16.38 0.372 4.664-0.168 8.948-0.324 12.818-0.462 1.914-0.054 3.726-0.108 5.432-0.156 2.122-0.134 4.108-0.26 5.958-0.378 2.13-0.138 4.060-0.266 5.82-0.38 3.256-0.51 6.592-0.782 9.99-0.782 0.466 0 0.93 0.026 1.396 0.036 0.132-0.008 0.224-0.014 0.224-0.014v0.020c31.14 0.778 56.75 23.784 61.556 53.754 0.542-0.12 1.064-0.236 1.612-0.356 3.246-0.644 6.542-1.632 9.942-2.556 3.386-0.934 6.876-1.894 10.454-2.88 1.778-0.516 3.602-0.934 5.404-1.546 1.802-0.596 3.63-1.202 5.478-1.812 3.68-1.218 7.448-2.464 11.292-3.736 0.96-0.316 1.924-0.634 2.892-0.956 0.956-0.37 1.914-0.74 2.876-1.112 1.926-0.746 3.868-1.5 5.83-2.26 3.904-1.52 7.884-3.070 11.932-4.646 3.96-1.768 7.988-3.566 12.080-5.392 2.038-0.908 4.088-1.824 6.156-2.746 2.060-0.932 4.072-2.036 6.126-3.054 4.082-2.070 8.222-4.17 12.41-6.294 4.144-2.202 8.226-4.654 12.394-6.998 2.074-1.184 4.16-2.374 6.256-3.572 2.086-1.21 4.102-2.586 6.166-3.876 4.098-2.616 8.23-5.256 12.402-7.918 16.296-11.234 32.398-23.632 47.636-37.33 15.104-13.874 29.406-28.842 42.55-44.598 12.928-15.974 24.648-32.686 35.020-49.676 10.196-17.13 18.84-34.6 26.26-51.736 1.698-4.348 3.382-8.662 5.050-12.932 0.812-2.136 1.71-4.216 2.444-6.36 0.714-2.146 1.428-4.28 2.136-6.404 1.386-4.25 2.888-8.384 4.142-12.548 1.174-4.184 2.33-8.316 3.474-12.392 0.55-2.038 1.19-4.026 1.66-6.054 0.46-2.030 0.916-4.046 1.368-6.046 0.91-3.978 1.808-7.896 2.688-11.748 0.688-3.888 1.362-7.71 2.024-11.462 0.33-1.868 0.656-3.716 0.98-5.548 0.162-0.914 0.324-1.824 0.484-2.728 0.11-0.916 0.222-1.828 0.332-2.734 0.446-3.612 0.882-7.148 1.31-10.604 0.216-1.72 0.432-3.42 0.642-5.1 0.226-1.674 0.268-3.364 0.41-5.010 0.238-3.292 0.472-6.498 0.7-9.616 0.218-3.11 0.524-6.11 0.508-9.058 0.132-5.848 0.256-11.32 0.372-16.38-0.168-4.664-0.324-8.948-0.462-12.818-0.054-1.914-0.108-3.726-0.156-5.432-0.134-2.122-0.26-4.108-0.378-5.958-0.138-2.13-0.266-4.060-0.38-5.82-0.498-3.256-0.768-6.592-0.768-9.99 0-0.468 0.026-0.93 0.036-1.396-0.008-0.132-0.016-0.224-0.016-0.224h0.022c0.768-30.766 23.236-56.128 52.682-61.37-0.066-0.296-0.13-0.584-0.198-0.884-0.644-3.248-1.632-6.542-2.556-9.942-0.934-3.388-1.894-6.876-2.88-10.454-0.516-1.78-0.934-3.602-1.546-5.406-0.596-1.802-1.202-3.628-1.81-5.476-1.218-3.682-2.464-7.45-3.736-11.294-0.316-0.958-0.634-1.924-0.956-2.892-0.37-0.954-0.74-1.914-1.114-2.876-0.746-1.924-1.5-3.868-2.26-5.83-1.52-3.904-3.070-7.882-4.646-11.93-1.768-3.96-3.566-7.99-5.392-12.080-0.908-2.038-1.824-4.090-2.746-6.156-0.932-2.060-2.036-4.072-3.052-6.126-2.070-4.084-4.17-8.222-6.294-12.412-2.202-4.142-4.654-8.224-6.998-12.392-1.184-2.074-2.374-4.16-3.57-6.256-1.21-2.086-2.586-4.102-3.876-6.166-2.616-4.098-5.256-8.232-7.918-12.402-11.234-16.298-23.632-32.398-37.33-47.638-13.874-15.104-28.842-29.404-44.598-42.548-15.974-12.928-32.686-24.65-49.676-35.022-17.13-10.194-34.6-18.838-51.734-26.258-4.35-1.7-8.662-3.382-12.934-5.050-2.136-0.812-4.216-1.71-6.36-2.444-2.146-0.714-4.28-1.428-6.404-2.136-4.25-1.386-8.382-2.888-12.548-4.142-4.184-1.174-8.314-2.332-12.392-3.474-2.038-0.55-4.026-1.19-6.054-1.662-2.030-0.458-4.044-0.914-6.044-1.368-3.978-0.91-7.896-1.806-11.748-2.688-3.888-0.686-7.71-1.36-11.462-2.022-1.868-0.33-3.716-0.658-5.546-0.98-0.914-0.162-1.824-0.324-2.728-0.484-0.916-0.112-1.828-0.222-2.734-0.332-3.612-0.448-7.148-0.882-10.604-1.31-1.72-0.216-3.422-0.432-5.102-0.644-1.674-0.226-3.364-0.266-5.010-0.408-3.292-0.238-6.498-0.472-9.616-0.7-3.11-0.218-6.11-0.524-9.058-0.508-5.848-0.132-11.32-0.256-16.38-0.372-4.664 0.168-8.948 0.324-12.818 0.462-1.914 0.054-3.726 0.108-5.432 0.156-2.122 0.134-4.108 0.26-5.958 0.378-2.13 0.138-4.060 0.266-5.82 0.38-3.256 0.51-6.592 0.782-9.99 0.782-0.466 0-0.93-0.026-1.396-0.036-0.132 0.008-0.224 0.014-0.224 0.014v-0.020c-31.004-0.774-56.524-23.586-61.488-53.364-3.2 0.64-6.446 1.61-9.792 2.522-3.386 0.934-6.876 1.894-10.454 2.878-1.778 0.516-3.602 0.938-5.404 1.546-1.802 0.598-3.63 1.204-5.478 1.812-3.68 1.218-7.448 2.464-11.292 3.738-0.96 0.316-1.924 0.632-2.892 0.954-0.956 0.372-1.914 0.742-2.876 1.114-1.926 0.746-3.868 1.5-5.83 2.258-3.904 1.524-7.884 3.070-11.932 4.648-3.96 1.77-7.988 3.566-12.080 5.39-2.038 0.91-4.088 1.824-6.156 2.746-2.060 0.934-4.072 2.036-6.126 3.054-4.082 2.070-8.222 4.172-12.41 6.296-4.144 2.2-8.226 4.652-12.394 6.996-2.074 1.184-4.16 2.376-6.256 3.57-2.086 1.21-4.102 2.586-6.166 3.878-4.098 2.614-8.23 5.254-12.402 7.918-16.296 11.23-32.398 23.632-47.636 37.328-15.104 13.876-29.406 28.84-42.55 44.598-12.928 15.972-24.648 32.684-35.020 49.676-10.196 17.128-18.84 34.602-26.26 51.734-1.698 4.352-3.382 8.664-5.050 12.934-0.812 2.136-1.71 4.218-2.444 6.36-0.714 2.148-1.428 4.282-2.136 6.406-1.386 4.25-2.888 8.382-4.142 12.546-1.174 4.184-2.33 8.316-3.474 12.394-0.55 2.036-1.19 4.024-1.66 6.054-0.46 2.028-0.916 4.042-1.368 6.042-0.91 3.98-1.808 7.898-2.688 11.75-0.688 3.886-1.362 7.71-2.024 11.46-0.33 1.868-0.656 3.718-0.98 5.546-0.162 0.914-0.324 1.824-0.484 2.73-0.11 0.914-0.222 1.828-0.332 2.734-0.446 3.61-0.882 7.148-1.31 10.602-0.216 1.722-0.432 3.422-0.642 5.102-0.226 1.676-0.268 3.364-0.41 5.012-0.238 3.29-0.472 6.496-0.7 9.614-0.218 3.11-0.524 6.11-0.508 9.058-0.132 5.848-0.256 11.32-0.372 16.382 0.168 4.664 0.324 8.946 0.462 12.816 0.054 1.914 0.108 3.726 0.156 5.434 0.134 2.122 0.26 4.106 0.378 5.958 0.138 2.128 0.266 4.058 0.38 5.82 0.496 3.26 0.766 6.596 0.766 9.994 0 0.466-0.026 0.93-0.036 1.396 0.008 0.132 0.016 0.224 0.016 0.224h-0.022c-0.78 31.38-24.134 57.154-54.44 61.674z" />
+<glyph unicode="&#xe9c0;" glyph-name="spinner11" d="M1024 576h-384l143.53 143.53c-72.53 72.526-168.96 112.47-271.53 112.47s-199-39.944-271.53-112.47c-72.526-72.53-112.47-168.96-112.47-271.53s39.944-199 112.47-271.53c72.53-72.526 168.96-112.47 271.53-112.47s199 39.944 271.528 112.472c6.056 6.054 11.86 12.292 17.456 18.668l96.32-84.282c-93.846-107.166-231.664-174.858-385.304-174.858-282.77 0-512 229.23-512 512s229.23 512 512 512c141.386 0 269.368-57.326 362.016-149.984l149.984 149.984v-384z" />
+<glyph unicode="&#xe9c1;" glyph-name="binoculars" d="M64 960h384v-64h-384zM576 960h384v-64h-384zM952 640h-56v256h-256v-256h-256v256h-256v-256h-56c-39.6 0-72-32.4-72-72v-560c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v376h128v-376c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v560c0 39.6-32.4 72-72 72zM348 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32zM544 448h-64c-17.6 0-32 14.4-32 32s14.4 32 32 32h64c17.6 0 32-14.4 32-32s-14.4-32-32-32zM924 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32z" />
+<glyph unicode="&#xe9c2;" glyph-name="search" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256z" />
+<glyph unicode="&#xe9c3;" glyph-name="zoom-in2" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM448 768h-128v-128h-128v-128h128v-128h128v128h128v128h-128z" />
+<glyph unicode="&#xe9c4;" glyph-name="zoom-out" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM192 640h384v-128h-384z" />
+<glyph unicode="&#xe9c5;" glyph-name="enlarge" d="M1024 960h-416l160-160-192-192 96-96 192 192 160-160zM1024-64v416l-160-160-192 192-96-96 192-192-160-160zM0-64h416l-160 160 192 192-96 96-192-192-160 160zM0 960v-416l160 160 192-192 96 96-192 192 160 160z" />
+<glyph unicode="&#xe9c6;" glyph-name="shrink" d="M576 512h416l-160 160 192 192-96 96-192-192-160 160zM576 384v-416l160 160 192-192 96 96-192 192 160 160zM448 384.004h-416l160-160-192-192 96-96 192 192 160-160zM448 512v416l-160-160-192 192-96-96 192-192-160-160z" />
+<glyph unicode="&#xe9c7;" glyph-name="enlarge2" d="M1024 960v-416l-160 160-192-192-96 96 192 192-160 160zM448 288l-192-192 160-160h-416v416l160-160 192 192z" />
+<glyph unicode="&#xe9c8;" glyph-name="shrink2" d="M448 384v-416l-160 160-192-192-96 96 192 192-160 160zM1024 864l-192-192 160-160h-416v416l160-160 192 192z" />
+<glyph unicode="&#xe9c9;" glyph-name="key" d="M704 960c-176.73 0-320-143.268-320-320 0-20.026 1.858-39.616 5.376-58.624l-389.376-389.376v-192c0-35.346 28.654-64 64-64h64v64h128v128h128v128h128l83.042 83.042c34.010-12.316 70.696-19.042 108.958-19.042 176.73 0 320 143.268 320 320s-143.27 320-320 320zM799.874 639.874c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96z" />
+<glyph unicode="&#xe9ca;" glyph-name="key2" d="M1002.132 645.758l-101.106 101.104c-24.792 24.794-65.37 65.368-90.162 90.164l-101.106 101.104c-24.792 24.794-68.954 29.166-98.13 9.716l-276.438-184.292c-29.176-19.452-40.218-61.028-24.536-92.39l70.486-140.974c2.154-4.306 4.646-8.896 7.39-13.66l-356.53-356.53-32-224h192v64h128v128h128v128h128v71.186c6.396-3.812 12.534-7.216 18.192-10.044l140.97-70.488c31.366-15.682 72.94-4.638 92.39 24.538l184.294 276.44c19.454 29.172 15.078 73.33-9.714 98.126zM150.628 105.374l-45.254 45.254 311.572 311.57 45.254-45.254-311.572-311.57zM917.020 536.236l-45.256-45.256c-12.446-12.444-32.808-12.444-45.254 0l-271.53 271.53c-12.446 12.444-12.446 32.81 0 45.254l45.256 45.256c12.446 12.444 32.808 12.444 45.254 0l271.53-271.53c12.446-12.444 12.446-32.81 0-45.254z" />
+<glyph unicode="&#xe9cb;" glyph-name="lock" d="M592 512h-16v192c0 105.87-86.13 192-192 192h-128c-105.87 0-192-86.13-192-192v-192h-16c-26.4 0-48-21.6-48-48v-480c0-26.4 21.6-48 48-48h544c26.4 0 48 21.6 48 48v480c0 26.4-21.6 48-48 48zM192 704c0 35.29 28.71 64 64 64h128c35.29 0 64-28.71 64-64v-192h-256v192z" />
+<glyph unicode="&#xe9cc;" glyph-name="unlocked" d="M768 896c105.87 0 192-86.13 192-192v-192h-128v192c0 35.29-28.71 64-64 64h-128c-35.29 0-64-28.71-64-64v-192h16c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48h-544c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h400v192c0 105.87 86.13 192 192 192h128z" />
+<glyph unicode="&#xe9cd;" glyph-name="wrench" d="M1002.934 142.124l-460.552 394.76c21.448 40.298 33.618 86.282 33.618 135.116 0 159.058-128.942 288-288 288-29.094 0-57.172-4.332-83.646-12.354l166.39-166.39c24.89-24.89 24.89-65.62 0-90.51l-101.49-101.49c-24.89-24.89-65.62-24.89-90.51 0l-166.39 166.39c-8.022-26.474-12.354-54.552-12.354-83.646 0-159.058 128.942-288 288-288 48.834 0 94.818 12.17 135.116 33.62l394.76-460.552c22.908-26.724 62.016-28.226 86.904-3.338l101.492 101.492c24.888 24.888 23.386 63.994-3.338 86.902z" />
+<glyph unicode="&#xe9ce;" glyph-name="equalizer" d="M448 832v16c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576zM256 704v128h128v-128h-128zM832 528c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-576v-128h576v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h192v128h-192v16zM640 384v128h128v-128h-128zM448 208c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576v16zM256 64v128h128v-128h-128z" />
+<glyph unicode="&#xe9cf;" glyph-name="equalizer2" d="M896 512h16c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-16v192h-128v-192h-16c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h16v-576h128v576zM768 704h128v-128h-128v128zM592 128c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-16v576h-128v-576h-16c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h16v-192h128v192h16zM448 320h128v-128h-128v128zM272 512c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-16v192h-128v-192h-16c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h16v-576h128v576h16zM128 704h128v-128h-128v128z" />
+<glyph unicode="&#xe9d0;" glyph-name="cog" d="M933.79 349.75c-53.726 93.054-21.416 212.304 72.152 266.488l-100.626 174.292c-28.75-16.854-62.176-26.518-97.846-26.518-107.536 0-194.708 87.746-194.708 195.99h-201.258c0.266-33.41-8.074-67.282-25.958-98.252-53.724-93.056-173.156-124.702-266.862-70.758l-100.624-174.292c28.97-16.472 54.050-40.588 71.886-71.478 53.638-92.908 21.512-211.92-71.708-266.224l100.626-174.292c28.65 16.696 61.916 26.254 97.4 26.254 107.196 0 194.144-87.192 194.7-194.958h201.254c-0.086 33.074 8.272 66.57 25.966 97.218 53.636 92.906 172.776 124.594 266.414 71.012l100.626 174.29c-28.78 16.466-53.692 40.498-71.434 71.228zM512 240.668c-114.508 0-207.336 92.824-207.336 207.334 0 114.508 92.826 207.334 207.336 207.334 114.508 0 207.332-92.826 207.332-207.334-0.002-114.51-92.824-207.334-207.332-207.334z" />
+<glyph unicode="&#xe9d1;" glyph-name="cogs" d="M363.722 237.948l41.298 57.816-45.254 45.256-57.818-41.296c-10.722 5.994-22.204 10.774-34.266 14.192l-11.682 70.084h-64l-11.68-70.086c-12.062-3.418-23.544-8.198-34.266-14.192l-57.818 41.298-45.256-45.256 41.298-57.816c-5.994-10.72-10.774-22.206-14.192-34.266l-70.086-11.682v-64l70.086-11.682c3.418-12.060 8.198-23.544 14.192-34.266l-41.298-57.816 45.254-45.256 57.818 41.296c10.722-5.994 22.204-10.774 34.266-14.192l11.682-70.084h64l11.68 70.086c12.062 3.418 23.544 8.198 34.266 14.192l57.818-41.296 45.254 45.256-41.298 57.816c5.994 10.72 10.774 22.206 14.192 34.266l70.088 11.68v64l-70.086 11.682c-3.418 12.060-8.198 23.544-14.192 34.266zM224 96c-35.348 0-64 28.654-64 64s28.652 64 64 64 64-28.654 64-64-28.652-64-64-64zM1024 576v64l-67.382 12.25c-1.242 8.046-2.832 15.978-4.724 23.79l57.558 37.1-24.492 59.128-66.944-14.468c-4.214 6.91-8.726 13.62-13.492 20.13l39.006 56.342-45.256 45.254-56.342-39.006c-6.512 4.766-13.22 9.276-20.13 13.494l14.468 66.944-59.128 24.494-37.1-57.558c-7.812 1.892-15.744 3.482-23.79 4.724l-12.252 67.382h-64l-12.252-67.382c-8.046-1.242-15.976-2.832-23.79-4.724l-37.098 57.558-59.128-24.492 14.468-66.944c-6.91-4.216-13.62-8.728-20.13-13.494l-56.342 39.006-45.254-45.254 39.006-56.342c-4.766-6.51-9.278-13.22-13.494-20.13l-66.944 14.468-24.492-59.128 57.558-37.1c-1.892-7.812-3.482-15.742-4.724-23.79l-67.384-12.252v-64l67.382-12.25c1.242-8.046 2.832-15.978 4.724-23.79l-57.558-37.1 24.492-59.128 66.944 14.468c4.216-6.91 8.728-13.618 13.494-20.13l-39.006-56.342 45.254-45.256 56.342 39.006c6.51-4.766 13.22-9.276 20.13-13.492l-14.468-66.944 59.128-24.492 37.102 57.558c7.81-1.892 15.742-3.482 23.788-4.724l12.252-67.384h64l12.252 67.382c8.044 1.242 15.976 2.832 23.79 4.724l37.1-57.558 59.128 24.492-14.468 66.944c6.91 4.216 13.62 8.726 20.13 13.492l56.342-39.006 45.256 45.256-39.006 56.342c4.766 6.512 9.276 13.22 13.492 20.13l66.944-14.468 24.492 59.13-57.558 37.1c1.892 7.812 3.482 15.742 4.724 23.79l67.382 12.25zM672 468.8c-76.878 0-139.2 62.322-139.2 139.2s62.32 139.2 139.2 139.2 139.2-62.322 139.2-139.2c0-76.878-62.32-139.2-139.2-139.2z" />
+<glyph unicode="&#xe9d2;" glyph-name="hammer" d="M1009.996 131.024l-301.544 301.544c-18.668 18.668-49.214 18.668-67.882 0l-22.626-22.626-184 184 302.056 302.058h-320l-142.058-142.058-14.060 14.058h-67.882v-67.882l14.058-14.058-206.058-206.060 160-160 206.058 206.058 184-184-22.626-22.626c-18.668-18.668-18.668-49.214 0-67.882l301.544-301.544c18.668-18.668 49.214-18.668 67.882 0l113.136 113.136c18.67 18.666 18.67 49.214 0.002 67.882z" />
+<glyph unicode="&#xe9d3;" glyph-name="magic-wand" d="M256 768l-128 128h-64v-64l128-128zM320 960h64v-128h-64zM576 640h128v-64h-128zM640 832v64h-64l-128-128 64-64zM0 640h128v-64h-128zM320 384h64v-128h-64zM64 384v-64h64l128 128-64 64zM1010 78l-636.118 636.118c-18.668 18.668-49.214 18.668-67.882 0l-60.118-60.118c-18.668-18.668-18.668-49.214 0-67.882l636.118-636.118c18.668-18.668 49.214-18.668 67.882 0l60.118 60.118c18.668 18.668 18.668 49.214 0 67.882zM480 416l-192 192 64 64 192-192-64-64z" />
+<glyph unicode="&#xe9d4;" glyph-name="aid-kit" d="M896 704h-192v128c0 35.2-28.8 64-64 64h-256c-35.2 0-64-28.8-64-64v-128h-192c-70.4 0-128-57.6-128-128v-512c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v512c0 70.4-57.6 128-128 128zM384 832h256v-128h-256v128zM768 256h-192v-192h-128v192h-192v128h192v192h128v-192h192v-128z" />
+<glyph unicode="&#xe9d5;" glyph-name="bug" d="M1024 384v64h-193.29c-5.862 72.686-31.786 139.026-71.67 192.25h161.944l70.060 280.24-62.090 15.522-57.94-231.76h-174.68c-0.892 0.694-1.796 1.374-2.698 2.056 6.71 19.502 10.362 40.422 10.362 62.194 0.002 105.76-85.958 191.498-191.998 191.498s-192-85.738-192-191.5c0-21.772 3.65-42.692 10.362-62.194-0.9-0.684-1.804-1.362-2.698-2.056h-174.68l-57.94 231.76-62.090-15.522 70.060-280.24h161.944c-39.884-53.222-65.806-119.562-71.668-192.248h-193.29v-64h193.37c3.802-45.664 15.508-88.812 33.638-127.75h-123.992l-70.060-280.238 62.090-15.524 57.94 231.762h112.354c58.692-78.032 147.396-127.75 246.66-127.75s187.966 49.718 246.662 127.75h112.354l57.94-231.762 62.090 15.524-70.060 280.238h-123.992c18.13 38.938 29.836 82.086 33.636 127.75h193.37z" />
+<glyph unicode="&#xe9d6;" glyph-name="pie-chart" d="M448 384v448c-247.424 0-448-200.576-448-448s200.576-448 448-448 448 200.576 448 448c0 72.034-17.028 140.084-47.236 200.382l-400.764-200.382zM912.764 712.382c-73.552 146.816-225.374 247.618-400.764 247.618v-448l400.764 200.382z" />
+<glyph unicode="&#xe9d7;" glyph-name="stats-dots" d="M128 64h896v-128h-1024v1024h128zM288 128c-53.020 0-96 42.98-96 96s42.98 96 96 96c2.828 0 5.622-0.148 8.388-0.386l103.192 171.986c-9.84 15.070-15.58 33.062-15.58 52.402 0 53.020 42.98 96 96 96s96-42.98 96-96c0-19.342-5.74-37.332-15.58-52.402l103.192-171.986c2.766 0.238 5.56 0.386 8.388 0.386 2.136 0 4.248-0.094 6.35-0.23l170.356 298.122c-10.536 15.408-16.706 34.036-16.706 54.11 0 53.020 42.98 96 96 96s96-42.98 96-96c0-53.020-42.98-96-96-96-2.14 0-4.248 0.094-6.35 0.232l-170.356-298.124c10.536-15.406 16.706-34.036 16.706-54.11 0-53.020-42.98-96-96-96s-96 42.98-96 96c0 19.34 5.74 37.332 15.578 52.402l-103.19 171.984c-2.766-0.238-5.56-0.386-8.388-0.386s-5.622 0.146-8.388 0.386l-103.192-171.986c9.84-15.068 15.58-33.060 15.58-52.4 0-53.020-42.98-96-96-96z" />
+<glyph unicode="&#xe9d8;" glyph-name="stats-bars" d="M0 128h1024v-128h-1024zM128 384h128v-192h-128zM320 640h128v-448h-128zM512 448h128v-256h-128zM704 832h128v-640h-128z" />
+<glyph unicode="&#xe9d9;" glyph-name="stats-bars2" d="M288 576h-192c-17.6 0-32-14.4-32-32v-576c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32v576c0 17.6-14.4 32-32 32zM288 0h-192v256h192v-256zM608 704h-192c-17.6 0-32-14.4-32-32v-704c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32v704c0 17.6-14.4 32-32 32zM608 0h-192v320h192v-320zM928 832h-192c-17.6 0-32-14.4-32-32v-832c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32v832c0 17.6-14.4 32-32 32zM928 0h-192v384h192v-384z" />
+<glyph unicode="&#xe9da;" glyph-name="trophy" d="M832 768v128h-640v-128h-192v-128c0-106.038 85.958-192 192-192 20.076 0 39.43 3.086 57.62 8.802 46.174-66.008 116.608-113.796 198.38-130.396v-198.406h-64c-70.694 0-128-57.306-128-128h512c0 70.694-57.306 128-128 128h-64v198.406c81.772 16.6 152.206 64.386 198.38 130.396 18.19-5.716 37.544-8.802 57.62-8.802 106.042 0 192 85.962 192 192v128h-192zM192 524c-63.962 0-116 52.038-116 116v64h116v-64c0-40.186 7.43-78.632 20.954-114.068-6.802-1.246-13.798-1.932-20.954-1.932zM948 640c0-63.962-52.038-116-116-116-7.156 0-14.152 0.686-20.954 1.932 13.524 35.436 20.954 73.882 20.954 114.068v64h116v-64z" />
+<glyph unicode="&#xe9db;" glyph-name="gift" d="M771.516 640c18.126 12.88 35.512 27.216 51.444 43.148 33.402 33.402 55.746 74.5 62.912 115.722 7.858 45.186-3.672 87.14-31.63 115.1-22.3 22.298-52.51 34.086-87.364 34.086-49.632 0-101.922-23.824-143.46-65.362-66.476-66.476-105.226-158.238-126.076-223.722-15.44 65.802-46.206 154.644-106.018 214.458-32.094 32.092-73.114 48.57-111.846 48.57-31.654 0-61.78-11.004-84.26-33.486-49.986-49.988-43.232-137.786 15.086-196.104 20.792-20.792 45.098-38.062 70.72-52.412h-217.024v-256h64v-448h768v448.002h64v256h-188.484zM674.326 831.782c27.724 27.724 62.322 44.274 92.55 44.274 10.7 0 25.708-2.254 36.45-12.998 26.030-26.028 11.412-86.308-31.28-128.998-43.946-43.946-103.060-74.168-154.432-94.060h-50.672c18.568 57.548 52.058 136.456 107.384 191.782zM233.934 799.11c-0.702 9.12-0.050 26.248 12.196 38.494 10.244 10.244 23.788 12.396 33.348 12.396v0c21.258 0 43.468-10.016 60.932-27.48 33.872-33.872 61.766-87.772 80.668-155.876 0.51-1.84 1.008-3.67 1.496-5.486-1.816 0.486-3.646 0.984-5.486 1.496-68.104 18.904-122.002 46.798-155.874 80.67-15.828 15.826-25.77 36.16-27.28 55.786zM448 0h-256v416h256v-416zM448 448h-320v128h320v-128zM832 0h-256v416h256v-416zM896 448h-320v128h320v-128z" />
+<glyph unicode="&#xe9dc;" glyph-name="glass" d="M777.784 943.144c-5.576 10.38-16.406 16.856-28.19 16.856h-475.188c-11.784 0-22.614-6.476-28.19-16.856-35.468-66.020-54.216-143.184-54.216-223.144 0-105.412 32.372-204.828 91.154-279.938 45.428-58.046 102.48-96.54 164.846-112.172v-327.89h-96c-17.672 0-32-14.326-32-32s14.328-32 32-32h320c17.674 0 32 14.326 32 32s-14.326 32-32 32h-96v327.89c62.368 15.632 119.418 54.124 164.846 112.172 58.782 75.11 91.154 174.526 91.154 279.938 0 79.96-18.748 157.122-54.216 223.144zM294.1 896h435.8c24.974-52.902 38.1-113.338 38.1-176 0-5.364-0.108-10.696-0.296-16h-511.406c-0.19 5.304-0.296 10.636-0.296 16-0.002 62.664 13.126 123.098 38.098 176z" />
+<glyph unicode="&#xe9dd;" glyph-name="glass2" d="M889.162 780.23c7.568 9.632 8.972 22.742 3.62 33.758-5.356 11.018-16.532 18.012-28.782 18.012h-704c-12.25 0-23.426-6.994-28.78-18.012-5.356-11.018-3.95-24.126 3.618-33.758l313.162-398.57v-381.66h-96c-17.672 0-32-14.326-32-32s14.328-32 32-32h320c17.674 0 32 14.326 32 32s-14.326 32-32 32h-96v381.66l313.162 398.57zM798.162 768l-100.572-128h-371.18l-100.57 128h572.322z" />
+<glyph unicode="&#xe9de;" glyph-name="mug" d="M960 640h-192v96c0 88.366-171.922 160-384 160s-384-71.634-384-160v-640c0-88.366 171.922-160 384-160s384 71.634 384 160v96h192c35.346 0 64 28.654 64 64v320c0 35.346-28.654 64-64 64zM176.056 701.602c-36.994 12.19-59.408 25.246-71.41 34.398 12.004 9.152 34.416 22.208 71.41 34.398 57.942 19.090 131.79 29.602 207.944 29.602s150.004-10.512 207.944-29.602c36.994-12.188 59.408-25.246 71.41-34.398-12.002-9.152-34.416-22.208-71.41-34.398-57.94-19.090-131.79-29.602-207.944-29.602s-150.002 10.512-207.944 29.602zM896 320h-128v192h128v-192z" />
+<glyph unicode="&#xe9df;" glyph-name="spoon-knife" d="M224 960c-106.040 0-192-100.288-192-224 0-105.924 63.022-194.666 147.706-217.998l-31.788-518.124c-2.154-35.132 24.882-63.878 60.082-63.878h32c35.2 0 62.236 28.746 60.082 63.878l-31.788 518.124c84.684 23.332 147.706 112.074 147.706 217.998 0 123.712-85.96 224-192 224zM869.334 960l-53.334-320h-40l-26.666 320h-26.668l-26.666-320h-40l-53.334 320h-26.666v-416c0-17.672 14.326-32 32-32h83.338l-31.42-512.122c-2.154-35.132 24.882-63.878 60.082-63.878h32c35.2 0 62.236 28.746 60.082 63.878l-31.42 512.122h83.338c17.674 0 32 14.328 32 32v416h-26.666z" />
+<glyph unicode="&#xe9e0;" glyph-name="leaf" d="M1011.328 825.504c-110.752 83.928-281.184 134.034-455.91 134.034-216.12 0-392.226-75.456-483.16-207.020-42.708-61.79-66.33-134.958-70.208-217.474-3.454-73.474 8.884-154.726 36.684-242.146 94.874 284.384 359.82 507.102 665.266 507.102 0 0-285.826-75.232-465.524-308.192-0.112-0.138-2.494-3.090-6.614-8.698-36.080-48.278-67.538-103.162-91.078-165.328-39.87-94.83-76.784-224.948-76.784-381.782h128c0 0-19.43 122.222 14.36 262.79 55.89-7.556 105.858-11.306 150.852-11.306 117.678 0 201.37 25.46 263.388 80.124 55.568 48.978 86.198 114.786 118.624 184.456 49.524 106.408 105.654 227.010 268.654 320.152 9.33 5.332 15.362 14.992 16.056 25.716s-4.040 21.080-12.606 27.572z" />
+<glyph unicode="&#xe9e1;" glyph-name="rocket" d="M704 896l-320-320h-192l-192-256c0 0 203.416 56.652 322.066 30.084l-322.066-414.084 421.902 328.144c58.838-134.654-37.902-328.144-37.902-328.144l256 192v192l320 320 64 320-320-64z" />
+<glyph unicode="&#xe9e2;" glyph-name="meter" d="M512 896c282.77 0 512-229.23 512-512 0-192.792-106.576-360.666-264.008-448h-495.984c-157.432 87.334-264.008 255.208-264.008 448 0 282.77 229.23 512 512 512zM801.914 94.086c77.438 77.44 120.086 180.398 120.086 289.914h-90v64h85.038c-7.014 44.998-21.39 88.146-42.564 128h-106.474v64h64.284c-9.438 11.762-19.552 23.096-30.37 33.914-46.222 46.22-101.54 80.038-161.914 99.798v-69.712h-64v85.040c-20.982 3.268-42.36 4.96-64 4.96s-43.018-1.69-64-4.96v-85.040h-64v69.712c-60.372-19.76-115.692-53.576-161.914-99.798-10.818-10.818-20.932-22.152-30.37-33.914h64.284v-64h-106.476c-21.174-39.854-35.552-83.002-42.564-128h85.040v-64h-90c0-109.516 42.648-212.474 120.086-289.914 10.71-10.71 21.924-20.728 33.56-30.086h192.354l36.572 512h54.856l36.572-512h192.354c11.636 9.358 22.852 19.378 33.56 30.086z" />
+<glyph unicode="&#xe9e3;" glyph-name="meter2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM302.836 125.848c11.106 30.632 17.164 63.688 17.164 98.152 0 124.35-78.81 230.292-189.208 270.606 10.21 84.924 48.254 163.498 109.678 224.924 72.53 72.526 168.96 112.47 271.53 112.47s199-39.944 271.53-112.47c61.428-61.426 99.468-140 109.682-224.924-110.402-40.314-189.212-146.256-189.212-270.606 0-34.468 6.060-67.52 17.166-98.15-61.706-40.242-133.77-61.85-209.166-61.85-75.394 0-147.458 21.608-209.164 61.848zM551.754 319.004c13.878-3.494 24.246-16.080 24.246-31.004v-64c0-17.6-14.4-32-32-32h-64c-17.6 0-32 14.4-32 32v64c0 14.924 10.368 27.51 24.246 31.004l23.754 448.996h32l23.754-448.996z" />
+<glyph unicode="&#xe9e4;" glyph-name="hammer2" d="M1010.174 44.25l-548.634 499.458 25.534 25.598c20.894 20.954 32.188 48.030 33.918 75.61 1.002 0.45 2.002 0.912 2.958 1.442l102.99 64.402c13.934 16.392 12.916 42.268-2.284 57.502l-179.12 179.608c-15.19 15.234-40.998 16.262-57.344 2.284l-64.236-103.268c-0.526-0.966-0.99-1.966-1.44-2.974-27.502-1.736-54.5-13.056-75.398-34.006l-97.428-97.702c-20.898-20.956-32.184-48.026-33.918-75.604-1.004-0.45-2.004-0.916-2.964-1.446l-102.986-64.406c-13.942-16.39-12.916-42.264 2.276-57.496l179.12-179.604c15.194-15.238 40.996-16.262 57.35-2.286l64.228 103.27c0.528 0.958 0.988 1.96 1.442 2.966 27.502 1.738 54.504 13.050 75.398 34.004l28.292 28.372 498.122-550.114c14.436-15.944 36.7-18.518 49.474-5.712l50.356 50.488c12.764 12.808 10.196 35.132-5.706 49.614z" />
+<glyph unicode="&#xe9e5;" glyph-name="fire" d="M321.008-64c-68.246 142.008-31.902 223.378 20.55 300.044 57.44 83.956 72.244 167.066 72.244 167.066s45.154-58.7 27.092-150.508c79.772 88.8 94.824 230.28 82.782 284.464 180.314-126.012 257.376-398.856 153.522-601.066 552.372 312.532 137.398 780.172 65.154 832.85 24.082-52.676 28.648-141.85-20-185.126-82.352 312.276-285.972 376.276-285.972 376.276 24.082-161.044-87.296-337.144-194.696-468.73-3.774 64.216-7.782 108.528-41.55 169.98-7.58-116.656-96.732-211.748-120.874-328.628-32.702-158.286 24.496-274.18 241.748-396.622z" />
+<glyph unicode="&#xe9e6;" glyph-name="lab" d="M956.29 155.518l-316.29 527.024v213.458h32c17.6 0 32 14.4 32 32s-14.4 32-32 32h-320c-17.6 0-32-14.4-32-32s14.4-32 32-32h32v-213.458l-316.288-527.024c-72.442-120.734-16.512-219.518 124.288-219.518h640c140.8 0 196.73 98.784 124.29 219.518zM241.038 320l206.962 344.938v231.062h128v-231.062l206.964-344.938h-541.926z" />
+<glyph unicode="&#xe9e7;" glyph-name="magnet" d="M896 960h-256l64-576c0-106.040-85.96-192-192-192s-192 85.96-192 192l64 576h-256l-64-576c0-247.424 200.576-448 448-448s448 200.576 448 448l-64 576zM777.874 118.126c-71.018-71.014-165.44-110.126-265.874-110.126s-194.856 39.112-265.872 110.126c-70.116 70.118-109.13 163.048-110.11 262.054l36.092 324.82h111.114l-35.224-317.010v-3.99c0-70.518 27.46-136.814 77.324-186.676 49.862-49.864 116.158-77.324 186.676-77.324s136.814 27.46 186.676 77.324c49.864 49.862 77.324 116.158 77.324 186.676v3.988l-0.44 3.962-34.782 313.050h111.114l36.090-324.818c-0.98-99.006-39.994-191.938-110.108-262.056z" />
+<glyph unicode="&#xe9e8;" glyph-name="bin" d="M128 640v-640c0-35.2 28.8-64 64-64h576c35.2 0 64 28.8 64 64v640h-704zM320 64h-64v448h64v-448zM448 64h-64v448h64v-448zM576 64h-64v448h64v-448zM704 64h-64v448h64v-448zM848 832h-208v80c0 26.4-21.6 48-48 48h-224c-26.4 0-48-21.6-48-48v-80h-208c-26.4 0-48-21.6-48-48v-80h832v80c0 26.4-21.6 48-48 48zM576 832h-192v63.198h192v-63.198z" />
+<glyph unicode="&#xe9e9;" glyph-name="bin2" d="M192-64h640l64 704h-768zM640 832v128h-256v-128h-320v-192l64 64h768l64-64v192h-320zM576 832h-128v64h128v-64z" />
+<glyph unicode="&#xe9ea;" glyph-name="briefcase" d="M960 704h-256v64c0 35.2-28.8 64-64 64h-256c-35.204 0-64-28.8-64-64v-64h-256c-35.2 0-64-28.8-64-64v-576c0-35.202 28.796-64 64-64h896c35.2 0 64 28.798 64 64v576c0 35.2-28.8 64-64 64zM384 767.884c0.034 0.040 0.074 0.082 0.114 0.116h255.772c0.042-0.034 0.082-0.076 0.118-0.116v-63.884h-256.004v63.884zM960 448h-128v-96c0-17.602-14.4-32-32-32h-64c-17.604 0-32 14.398-32 32v96h-384v-96c0-17.602-14.4-32-32-32h-64c-17.602 0-32 14.398-32 32v96h-128v64h896v-64z" />
+<glyph unicode="&#xe9eb;" glyph-name="airplane" d="M768 320.032l-182.82 182.822 438.82 329.15-128.010 127.996-548.52-219.442-172.7 172.706c-49.78 49.778-119.302 61.706-154.502 26.508-35.198-35.198-23.268-104.726 26.51-154.5l172.686-172.684-219.464-548.582 127.99-128.006 329.19 438.868 182.826-182.828v-255.98h127.994l63.992 191.988 191.988 63.996v127.992l-255.98-0.004z" />
+<glyph unicode="&#xe9ec;" glyph-name="truck" d="M1024 384l-128 256h-192v128c0 35.2-28.8 64-64 64h-576c-35.2 0-64-28.8-64-64v-512l64-64h81.166c-10.898-18.832-17.166-40.678-17.166-64 0-70.692 57.308-128 128-128s128 57.308 128 128c0 23.322-6.268 45.168-17.166 64h354.334c-10.898-18.832-17.168-40.678-17.168-64 0-70.692 57.308-128 128-128s128 57.308 128 128c0 23.322-6.27 45.168-17.168 64h81.168v192zM704 384v192h132.668l96-192h-228.668z" />
+<glyph unicode="&#xe9ed;" glyph-name="road" d="M704-64h320l-256 1024h-192l32-256h-192l32 256h-192l-256-1024h320l32 256h320l32-256zM368 320l32 256h224l32-256h-288z" />
+<glyph unicode="&#xe9ee;" glyph-name="accessibility" d="M416 864c0 53.018 42.98 96 96 96s96-42.982 96-96c0-53.020-42.98-96-96-96s-96 42.98-96 96zM640 640l329.596 142.172-23.77 59.424-401.826-137.596h-64l-401.826 137.596-23.77-59.424 329.596-142.172v-256l-131.27-424.57 59.84-22.7 185.716 415.27h27.428l185.716-415.27 59.84 22.7-131.27 424.57z" />
+<glyph unicode="&#xe9ef;" glyph-name="target" d="M1024 512h-100.924c-27.64 178.24-168.836 319.436-347.076 347.076v100.924h-128v-100.924c-178.24-27.64-319.436-168.836-347.076-347.076h-100.924v-128h100.924c27.64-178.24 168.836-319.436 347.076-347.076v-100.924h128v100.924c178.24 27.64 319.436 168.836 347.076 347.076h100.924v128zM792.822 512h-99.762c-19.284 54.55-62.51 97.778-117.060 117.060v99.762c107.514-24.49 192.332-109.31 216.822-216.822zM512 384c-35.346 0-64 28.654-64 64s28.654 64 64 64c35.346 0 64-28.654 64-64s-28.654-64-64-64zM448 728.822v-99.762c-54.55-19.282-97.778-62.51-117.060-117.060h-99.762c24.49 107.512 109.31 192.332 216.822 216.822zM231.178 384h99.762c19.282-54.55 62.51-97.778 117.060-117.060v-99.762c-107.512 24.49-192.332 109.308-216.822 216.822zM576 167.178v99.762c54.55 19.284 97.778 62.51 117.060 117.060h99.762c-24.49-107.514-109.308-192.332-216.822-216.822z" />
+<glyph unicode="&#xe9f0;" glyph-name="shield" d="M960 960l-448-128-448 128c0 0-4.5-51.698 0-128l448-140.090 448 140.090c4.498 76.302 0 128 0 128zM72.19 764.894c23.986-250.696 113.49-672.234 439.81-828.894 326.32 156.66 415.824 578.198 439.81 828.894l-439.81-165.358-439.81 165.358z" />
+<glyph unicode="&#xe9f1;" glyph-name="power" d="M384 960l-384-512h384l-256-512 896 640h-512l384 384z" />
+<glyph unicode="&#xe9f2;" glyph-name="switch" d="M640 813.412v-135.958c36.206-15.804 69.5-38.408 98.274-67.18 60.442-60.44 93.726-140.8 93.726-226.274s-33.286-165.834-93.726-226.274c-60.44-60.44-140.798-93.726-226.274-93.726s-165.834 33.286-226.274 93.726c-60.44 60.44-93.726 140.8-93.726 226.274s33.286 165.834 93.726 226.274c28.774 28.774 62.068 51.378 98.274 67.182v135.956c-185.048-55.080-320-226.472-320-429.412 0-247.424 200.578-448 448-448 247.424 0 448 200.576 448 448 0 202.94-134.95 374.332-320 429.412zM448 960h128v-512h-128z" />
+<glyph unicode="&#xe9f3;" glyph-name="power-cord" d="M1024 677.5l-90.506 90.5-178.746-178.752-101.5 101.502 178.75 178.75-90.5 90.5-178.75-178.75-114.748 114.75-86.626-86.624 512.002-512 86.624 86.622-114.752 114.752 178.752 178.75zM794.040 286.21l-443.824 443.824c-95.818-114.904-204.52-292.454-129.396-445.216l-132.248-132.248c-31.112-31.114-31.112-82.024 0-113.136l14.858-14.858c31.114-31.114 82.026-31.114 113.138 0l132.246 132.244c152.764-75.132 330.318 33.566 445.226 129.39z" />
+<glyph unicode="&#xe9f4;" glyph-name="clipboard" d="M928 832h-288c0 70.692-57.306 128-128 128-70.692 0-128-57.308-128-128h-288c-17.672 0-32-14.328-32-32v-832c0-17.674 14.328-32 32-32h832c17.674 0 32 14.326 32 32v832c0 17.672-14.326 32-32 32zM512 896c35.346 0 64-28.654 64-64s-28.654-64-64-64c-35.346 0-64 28.654-64 64s28.654 64 64 64zM896 0h-768v768h128v-96c0-17.672 14.328-32 32-32h448c17.674 0 32 14.328 32 32v96h128v-768zM448 101.49l-205.254 237.254 58.508 58.51 146.746-114.744 274.742 242.744 58.514-58.508z" />
+<glyph unicode="&#xe9f5;" glyph-name="list-numbered" d="M384 128h640v-128h-640zM384 512h640v-128h-640zM384 896h640v-128h-640zM192 960v-256h-64v192h-64v64zM128 434v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM256 256v-320h-192v64h128v64h-128v64h128v64h-128v64z" />
+<glyph unicode="&#xe9f6;" glyph-name="list" d="M0 960h256v-256h-256zM384 896h640v-128h-640zM0 576h256v-256h-256zM384 512h640v-128h-640zM0 192h256v-256h-256zM384 128h640v-128h-640z" />
+<glyph unicode="&#xe9f7;" glyph-name="list2" d="M384 896h640v-128h-640v128zM384 512h640v-128h-640v128zM384 128h640v-128h-640v128zM0 832c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 448c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 64c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128z" />
+<glyph unicode="&#xe9f8;" glyph-name="tree" d="M976 192h-16v208c0 61.756-50.242 112-112 112h-272v128h16c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h16v-128h-272c-61.756 0-112-50.244-112-112v-208h-16c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-16v192h256v-192h-16c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48h-16v192h256v-192h-16c-26.4 0-48-21.6-48-48v-160c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v160c0 26.4-21.6 48-48 48zM192 0h-128v128h128v-128zM576 0h-128v128h128v-128zM448 704v128h128v-128h-128zM960 0h-128v128h128v-128z" />
+<glyph unicode="&#xe9f9;" glyph-name="menu" d="M64 768h896v-192h-896zM64 512h896v-192h-896zM64 256h896v-192h-896z" />
+<glyph unicode="&#xe9fa;" glyph-name="menu2" horiz-adv-x="1408" d="M0 768h896v-192h-896v192zM0 512h896v-192h-896v192zM0 256h896v-192h-896v192zM992 384l192-192 192 192zM1376 448l-192 192-192-192z" />
+<glyph unicode="&#xe9fb;" glyph-name="menu3" horiz-adv-x="1408" d="M0 768h896v-192h-896v192zM0 512h896v-192h-896v192zM0 256h896v-192h-896v192zM992 512l192-192 192 192z" />
+<glyph unicode="&#xe9fc;" glyph-name="menu4" horiz-adv-x="1408" d="M0 768h896v-192h-896v192zM0 512h896v-192h-896v192zM0 256h896v-192h-896v192zM992 320l192 192 192-192z" />
+<glyph unicode="&#xe9fd;" glyph-name="cloud" d="M1024 302.458c0 82.090-56.678 150.9-132.996 169.48-3.242 128.7-108.458 232.062-237.862 232.062-75.792 0-143.266-35.494-186.854-90.732-24.442 31.598-62.69 51.96-105.708 51.96-73.81 0-133.642-59.874-133.642-133.722 0-6.436 0.48-12.76 1.364-18.954-11.222 2.024-22.766 3.138-34.57 3.138-106.998 0.002-193.732-86.786-193.732-193.842 0-107.062 86.734-193.848 193.73-193.848l656.262 0.012c96.138 0.184 174.008 78.212 174.008 174.446z" />
+<glyph unicode="&#xe9fe;" glyph-name="cloud-download" d="M891.004 599.94c-3.242 128.698-108.458 232.060-237.862 232.060-75.792 0-143.266-35.494-186.854-90.732-24.442 31.598-62.69 51.96-105.708 51.96-73.81 0-133.642-59.876-133.642-133.722 0-6.436 0.48-12.76 1.364-18.954-11.222 2.024-22.766 3.138-34.57 3.138-106.998 0.002-193.732-86.786-193.732-193.842 0-107.062 86.734-193.848 193.73-193.848h91.76l226.51-234.51 226.51 234.51 111.482 0.012c96.138 0.184 174.008 78.21 174.008 174.446 0 82.090-56.678 150.9-132.996 169.482zM512 128l-192 192h128v192h128v-192h128l-192-192z" />
+<glyph unicode="&#xe9ff;" glyph-name="cloud-upload" d="M892.268 573.51c2.444 11.11 3.732 22.648 3.732 34.49 0 88.366-71.634 160-160 160-14.222 0-28.014-1.868-41.132-5.352-24.798 77.352-97.29 133.352-182.868 133.352-87.348 0-161.054-58.336-184.326-138.17-22.742 6.622-46.792 10.17-71.674 10.17-141.384 0-256-114.616-256-256 0-141.388 114.616-256 256-256h128v-192h256v192h224c88.366 0 160 71.632 160 160 0 78.72-56.854 144.162-131.732 157.51zM576 320v-192h-128v192h-160l224 224 224-224h-160z" />
+<glyph unicode="&#xea00;" glyph-name="cloud-check" d="M892.268 445.51c2.442 11.108 3.732 22.646 3.732 34.49 0 88.366-71.634 160-160 160-14.224 0-28.014-1.868-41.134-5.352-24.796 77.352-97.288 133.352-182.866 133.352-87.348 0-161.054-58.336-184.326-138.17-22.742 6.62-46.792 10.17-71.674 10.17-141.384 0-256-114.616-256-256 0-141.382 114.616-256 256-256h608c88.366 0 160 71.632 160 160 0 78.718-56.854 144.16-131.732 157.51zM416 192l-160 160 64 64 96-96 224 224 64-64-288-288z" />
+<glyph unicode="&#xea01;" glyph-name="download2" d="M896 448h-160l-224-224-224 224h-160l-128-256v-64h1024v64l-128 256zM0 64h1024v-64h-1024v64zM576 640v256h-128v-256h-224l288-288 288 288h-224z" />
+<glyph unicode="&#xea02;" glyph-name="upload2" d="M0 64h1024v-64h-1024zM1024 192v-64h-1024v64l128 256h256v-128h256v128h256zM224 640l288 288 288-288h-224v-256h-128v256z" />
+<glyph unicode="&#xea03;" glyph-name="download3" d="M736 512l-256-256-256 256h160v384h192v-384zM480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64z" />
+<glyph unicode="&#xea04;" glyph-name="upload3" d="M480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64zM224 640l256 256 256-256h-160v-320h-192v320z" />
+<glyph unicode="&#xea05;" glyph-name="sphere" d="M480 896c-265.096 0-480-214.904-480-480 0-265.098 214.904-480 480-480 265.098 0 480 214.902 480 480 0 265.096-214.902 480-480 480zM751.59 256c8.58 40.454 13.996 83.392 15.758 128h127.446c-3.336-44.196-13.624-87.114-30.68-128h-112.524zM208.41 576c-8.58-40.454-13.996-83.392-15.758-128h-127.444c3.336 44.194 13.622 87.114 30.678 128h112.524zM686.036 576c9.614-40.962 15.398-83.854 17.28-128h-191.316v128h174.036zM512 640v187.338c14.59-4.246 29.044-11.37 43.228-21.37 26.582-18.74 52.012-47.608 73.54-83.486 14.882-24.802 27.752-52.416 38.496-82.484h-155.264zM331.232 722.484c21.528 35.878 46.956 64.748 73.54 83.486 14.182 10 28.638 17.124 43.228 21.37v-187.34h-155.264c10.746 30.066 23.616 57.68 38.496 82.484zM448 576v-128h-191.314c1.88 44.146 7.666 87.038 17.278 128h174.036zM95.888 256c-17.056 40.886-27.342 83.804-30.678 128h127.444c1.762-44.608 7.178-87.546 15.758-128h-112.524zM256.686 384h191.314v-128h-174.036c-9.612 40.96-15.398 83.854-17.278 128zM448 192v-187.34c-14.588 4.246-29.044 11.372-43.228 21.37-26.584 18.74-52.014 47.61-73.54 83.486-14.882 24.804-27.75 52.418-38.498 82.484h155.266zM628.768 109.516c-21.528-35.876-46.958-64.746-73.54-83.486-14.184-9.998-28.638-17.124-43.228-21.37v187.34h155.266c-10.746-30.066-23.616-57.68-38.498-82.484zM512 256v128h191.314c-1.88-44.146-7.666-87.040-17.28-128h-174.034zM767.348 448c-1.762 44.608-7.178 87.546-15.758 128h112.524c17.056-40.886 27.344-83.806 30.68-128h-127.446zM830.658 640h-95.9c-18.638 58.762-44.376 110.294-75.316 151.428 42.536-20.34 81.058-47.616 114.714-81.272 21.48-21.478 40.362-44.938 56.502-70.156zM185.844 710.156c33.658 33.658 72.18 60.932 114.714 81.272-30.942-41.134-56.676-92.666-75.316-151.428h-95.898c16.138 25.218 35.022 48.678 56.5 70.156zM129.344 192h95.898c18.64-58.762 44.376-110.294 75.318-151.43-42.536 20.34-81.058 47.616-114.714 81.274-21.48 21.478-40.364 44.938-56.502 70.156zM774.156 121.844c-33.656-33.658-72.18-60.934-114.714-81.274 30.942 41.134 56.678 92.668 75.316 151.43h95.9c-16.14-25.218-35.022-48.678-56.502-70.156z" />
+<glyph unicode="&#xea06;" glyph-name="earth" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512-0.002c-62.958 0-122.872 13.012-177.23 36.452l233.148 262.29c5.206 5.858 8.082 13.422 8.082 21.26v96c0 17.674-14.326 32-32 32-112.99 0-232.204 117.462-233.374 118.626-6 6.002-14.14 9.374-22.626 9.374h-128c-17.672 0-32-14.328-32-32v-192c0-12.122 6.848-23.202 17.69-28.622l110.31-55.156v-187.886c-116.052 80.956-192 215.432-192 367.664 0 68.714 15.49 133.806 43.138 192h116.862c8.488 0 16.626 3.372 22.628 9.372l128 128c6 6.002 9.372 14.14 9.372 22.628v77.412c40.562 12.074 83.518 18.588 128 18.588 70.406 0 137.004-16.26 196.282-45.2-4.144-3.502-8.176-7.164-12.046-11.036-36.266-36.264-56.236-84.478-56.236-135.764s19.97-99.5 56.236-135.764c36.434-36.432 85.218-56.264 135.634-56.26 3.166 0 6.342 0.080 9.518 0.236 13.814-51.802 38.752-186.656-8.404-372.334-0.444-1.744-0.696-3.488-0.842-5.224-81.324-83.080-194.7-134.656-320.142-134.656z" />
+<glyph unicode="&#xea07;" glyph-name="link2" d="M440.236 324.234c-13.31 0-26.616 5.076-36.77 15.23-95.134 95.136-95.134 249.934 0 345.070l192 192c46.088 46.086 107.36 71.466 172.534 71.466s126.448-25.38 172.536-71.464c95.132-95.136 95.132-249.934 0-345.070l-87.766-87.766c-20.308-20.308-53.23-20.308-73.54 0-20.306 20.306-20.306 53.232 0 73.54l87.766 87.766c54.584 54.586 54.584 143.404 0 197.99-26.442 26.442-61.6 41.004-98.996 41.004s-72.552-14.562-98.996-41.006l-192-191.998c-54.586-54.586-54.586-143.406 0-197.992 20.308-20.306 20.306-53.232 0-73.54-10.15-10.152-23.462-15.23-36.768-15.23zM256-52c-65.176 0-126.45 25.38-172.534 71.464-95.134 95.136-95.134 249.934 0 345.070l87.764 87.764c20.308 20.306 53.234 20.306 73.54 0 20.308-20.306 20.308-53.232 0-73.54l-87.764-87.764c-54.586-54.586-54.586-143.406 0-197.992 26.44-26.44 61.598-41.002 98.994-41.002s72.552 14.562 98.998 41.006l192 191.998c54.584 54.586 54.584 143.406 0 197.992-20.308 20.308-20.306 53.232 0 73.54 20.306 20.306 53.232 20.306 73.54-0.002 95.132-95.134 95.132-249.932 0.002-345.068l-192.002-192c-46.090-46.088-107.364-71.466-172.538-71.466z" />
+<glyph unicode="&#xea08;" glyph-name="flag" d="M0 960h128v-1024h-128v1024zM832 316.998c82.624 0 154.57 19.984 192 49.5v512c-37.43-29.518-109.376-49.502-192-49.502s-154.57 19.984-192 49.502v-512c37.43-29.516 109.376-49.5 192-49.5zM608 927.472c-46.906 19.94-115.52 32.528-192 32.528-96.396 0-180.334-19.984-224-49.502v-512c43.666 29.518 127.604 49.502 224 49.502 76.48 0 145.094-12.588 192-32.528v512z" />
+<glyph unicode="&#xea09;" glyph-name="attachment" d="M665.832 632.952l-64.952 64.922-324.81-324.742c-53.814-53.792-53.814-141.048 0-194.844 53.804-53.792 141.060-53.792 194.874 0l389.772 389.708c89.714 89.662 89.714 235.062 0 324.726-89.666 89.704-235.112 89.704-324.782 0l-409.23-409.178c-0.29-0.304-0.612-0.576-0.876-0.846-125.102-125.096-125.102-327.856 0-452.906 125.054-125.056 327.868-125.056 452.988 0 0.274 0.274 0.516 0.568 0.82 0.876l0.032-0.034 279.332 279.292-64.986 64.92-279.33-279.262c-0.296-0.268-0.564-0.57-0.846-0.844-89.074-89.058-233.98-89.058-323.076 0-89.062 89.042-89.062 233.922 0 322.978 0.304 0.304 0.604 0.582 0.888 0.846l-0.046 0.060 409.28 409.166c53.712 53.738 141.144 53.738 194.886 0 53.712-53.734 53.712-141.148 0-194.84l-389.772-389.7c-17.936-17.922-47.054-17.922-64.972 0-17.894 17.886-17.894 47.032 0 64.92l324.806 324.782z" />
+<glyph unicode="&#xea0a;" glyph-name="eye" d="M512 768c-223.318 0-416.882-130.042-512-320 95.118-189.958 288.682-320 512-320 223.312 0 416.876 130.042 512 320-95.116 189.958-288.688 320-512 320zM764.45 598.296c60.162-38.374 111.142-89.774 149.434-150.296-38.292-60.522-89.274-111.922-149.436-150.296-75.594-48.218-162.89-73.704-252.448-73.704-89.56 0-176.858 25.486-252.452 73.704-60.158 38.372-111.138 89.772-149.432 150.296 38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.86 7.3-9.96-27.328-15.41-56.822-15.41-87.596 0-141.382 114.616-256 256-256 141.382 0 256 114.618 256 256 0 30.774-5.452 60.268-15.408 87.598 3.978-2.378 7.938-4.802 11.858-7.302v0zM512 544c0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.982 96-96z" />
+<glyph unicode="&#xea0b;" glyph-name="eye-plus" d="M1024 832h-128v128h-128v-128h-128v-128h128v-128h128v128h128zM863.862 513.972c18.436-20.478 35.192-42.53 50.022-65.972-38.292-60.522-89.274-111.922-149.436-150.296-75.594-48.218-162.89-73.704-252.448-73.704-89.56 0-176.86 25.486-252.454 73.704-60.156 38.372-111.136 89.772-149.43 150.296 38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.862 7.3-9.962-27.328-15.412-56.822-15.412-87.596 0-141.382 114.616-256 256-256 141.38 0 256 114.618 256 256 0 0.692-0.018 1.38-0.024 2.072-109.284 28.138-190.298 126.63-191.932 244.31-21.026 2.38-42.394 3.618-64.044 3.618-223.318 0-416.882-130.042-512-320 95.118-189.958 288.682-320 512-320 223.31 0 416.876 130.042 512 320-17.64 35.23-38.676 68.394-62.65 99.054-29.28-17.178-62.272-28.71-97.488-33.082zM416 640c53.020 0 96-42.982 96-96 0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96z" />
+<glyph unicode="&#xea0c;" glyph-name="eye-minus" d="M640 832h384v-128h-384v128zM870.32 640h-294.32v124.388c-21.014 2.376-42.364 3.612-64 3.612-223.318 0-416.882-130.042-512-320 95.118-189.958 288.682-320 512-320 223.31 0 416.876 130.042 512 320-37.396 74.686-90.020 140.1-153.68 192zM416 640c53.020 0 96-42.982 96-96 0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96zM764.448 297.704c-75.594-48.218-162.89-73.704-252.448-73.704-89.56 0-176.86 25.486-252.454 73.704-60.156 38.372-111.136 89.772-149.43 150.296 38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.862 7.3-9.962-27.328-15.412-56.822-15.412-87.596 0-141.382 114.616-256 256-256 141.38 0 256 114.618 256 256 0 30.774-5.454 60.268-15.408 87.598 3.976-2.378 7.938-4.802 11.858-7.302 60.162-38.374 111.142-89.774 149.434-150.296-38.292-60.522-89.274-111.922-149.436-150.296z" />
+<glyph unicode="&#xea0d;" glyph-name="eye-blocked" d="M945.942 945.942c-18.746 18.744-49.136 18.744-67.882 0l-202.164-202.164c-51.938 15.754-106.948 24.222-163.896 24.222-223.318 0-416.882-130.042-512-320 41.122-82.124 100.648-153.040 173.022-207.096l-158.962-158.962c-18.746-18.746-18.746-49.136 0-67.882 9.372-9.374 21.656-14.060 33.94-14.060s24.568 4.686 33.942 14.058l864 864c18.744 18.746 18.744 49.138 0 67.884zM416 640c42.24 0 78.082-27.294 90.92-65.196l-121.724-121.724c-37.902 12.838-65.196 48.68-65.196 90.92 0 53.020 42.98 96 96 96zM110.116 448c38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.862 7.3-9.962-27.328-15.412-56.822-15.412-87.596 0-54.89 17.286-105.738 46.7-147.418l-60.924-60.924c-52.446 36.842-97.202 83.882-131.66 138.342zM768 518c0 27.166-4.256 53.334-12.102 77.898l-321.808-321.808c24.568-7.842 50.742-12.090 77.91-12.090 141.382 0 256 114.618 256 256zM830.026 670.026l-69.362-69.362c1.264-0.786 2.53-1.568 3.786-2.368 60.162-38.374 111.142-89.774 149.434-150.296-38.292-60.522-89.274-111.922-149.436-150.296-75.594-48.218-162.89-73.704-252.448-73.704-38.664 0-76.902 4.76-113.962 14.040l-76.894-76.894c59.718-21.462 123.95-33.146 190.856-33.146 223.31 0 416.876 130.042 512 320-45.022 89.916-112.118 166.396-193.974 222.026z" />
+<glyph unicode="&#xea0e;" glyph-name="bookmark" d="M192 960v-1024l320 320 320-320v1024z" />
+<glyph unicode="&#xea0f;" glyph-name="bookmarks" d="M256 832v-896l320 320 320-320v896zM768 960h-640v-896l64 64v768h576z" />
+<glyph unicode="&#xea10;" glyph-name="sun" d="M512 128c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64s-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM512 768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64s64-28.654 64-64v-64c0-35.346-28.654-64-64-64zM960 512c35.346 0 64-28.654 64-64s-28.654-64-64-64h-64c-35.348 0-64 28.654-64 64s28.652 64 64 64h64zM192 448c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64s28.654 64 64 64h64c35.346 0 64-28.654 64-64zM828.784 221.726l45.256-45.258c24.992-24.99 24.992-65.516 0-90.508-24.994-24.992-65.518-24.992-90.51 0l-45.256 45.256c-24.992 24.99-24.992 65.516 0 90.51 24.994 24.992 65.518 24.992 90.51 0zM195.216 674.274l-45.256 45.256c-24.994 24.994-24.994 65.516 0 90.51s65.516 24.994 90.51 0l45.256-45.256c24.994-24.994 24.994-65.516 0-90.51s-65.516-24.994-90.51 0zM828.784 674.274c-24.992-24.992-65.516-24.992-90.51 0-24.992 24.994-24.992 65.516 0 90.51l45.256 45.254c24.992 24.994 65.516 24.994 90.51 0 24.992-24.994 24.992-65.516 0-90.51l-45.256-45.254zM195.216 221.726c24.992 24.992 65.518 24.992 90.508 0 24.994-24.994 24.994-65.52 0-90.51l-45.254-45.256c-24.994-24.992-65.516-24.992-90.51 0s-24.994 65.518 0 90.508l45.256 45.258zM512 704c-141.384 0-256-114.616-256-256 0-141.382 114.616-256 256-256 141.382 0 256 114.618 256 256 0 141.384-114.616 256-256 256zM512 288c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160-71.634-160-160-160z" />
+<glyph unicode="&#xea11;" glyph-name="contrast" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM128 448c0 212.078 171.922 384 384 384v-768c-212.078 0-384 171.922-384 384z" />
+<glyph unicode="&#xea12;" glyph-name="brightness-contrast" d="M512 704c-141.384 0-256-114.616-256-256s114.616-256 256-256 256 114.616 256 256-114.616 256-256 256zM512 288v320c88.224 0 160-71.776 160-160s-71.776-160-160-160zM512 128c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64s-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM512 768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64s64-28.654 64-64v-64c0-35.346-28.654-64-64-64zM960 512c35.346 0 64-28.654 64-64s-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64s28.654 64 64 64h64zM192 448c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64s28.654 64 64 64h64c35.346 0 64-28.654 64-64zM828.784 221.726l45.256-45.256c24.992-24.992 24.992-65.516 0-90.51-24.994-24.992-65.518-24.992-90.51 0l-45.256 45.256c-24.992 24.992-24.992 65.516 0 90.51 24.994 24.992 65.518 24.992 90.51 0zM195.216 674.274l-45.256 45.256c-24.994 24.994-24.994 65.516 0 90.51s65.516 24.994 90.51 0l45.256-45.256c24.994-24.994 24.994-65.516 0-90.51s-65.516-24.994-90.51 0zM828.784 674.274c-24.992-24.992-65.516-24.992-90.51 0-24.992 24.994-24.992 65.516 0 90.51l45.256 45.254c24.992 24.994 65.516 24.994 90.51 0 24.992-24.994 24.992-65.516 0-90.51l-45.256-45.254zM195.216 221.726c24.992 24.992 65.516 24.992 90.508 0 24.994-24.994 24.994-65.518 0-90.51l-45.254-45.256c-24.994-24.992-65.516-24.992-90.51 0-24.994 24.994-24.994 65.518 0 90.51l45.256 45.256z" />
+<glyph unicode="&#xea13;" glyph-name="star-empty2" d="M1024 562.95l-353.78 51.408-158.22 320.582-158.216-320.582-353.784-51.408 256-249.538-60.432-352.352 316.432 166.358 316.432-166.358-60.434 352.352 256.002 249.538zM512 206.502l-223.462-117.48 42.676 248.83-180.786 176.222 249.84 36.304 111.732 226.396 111.736-226.396 249.836-36.304-180.788-176.222 42.678-248.83-223.462 117.48z" />
+<glyph unicode="&#xea14;" glyph-name="star-half" d="M1024 562.95l-353.78 51.408-158.22 320.582-158.216-320.582-353.784-51.408 256-249.538-60.432-352.352 316.432 166.358 316.432-166.358-60.434 352.352 256.002 249.538zM512 206.502l-0.942-0.496 0.942 570.768 111.736-226.396 249.836-36.304-180.788-176.222 42.678-248.83-223.462 117.48z" />
+<glyph unicode="&#xea15;" glyph-name="star-full" d="M1024 562.95l-353.78 51.408-158.22 320.582-158.216-320.582-353.784-51.408 256-249.538-60.432-352.352 316.432 166.358 316.432-166.358-60.434 352.352 256.002 249.538z" />
+<glyph unicode="&#xea16;" glyph-name="heart" d="M755.188 896c-107.63 0-200.258-87.554-243.164-179-42.938 91.444-135.578 179-243.216 179-148.382 0-268.808-120.44-268.808-268.832 0-301.846 304.5-380.994 512.022-679.418 196.154 296.576 511.978 387.206 511.978 679.418 0 148.392-120.43 268.832-268.812 268.832z" />
+<glyph unicode="&#xea17;" glyph-name="heart-broken" d="M755.188 896c148.382 0 268.812-120.44 268.812-268.832 0-292.21-315.824-382.842-511.978-679.418-207.522 298.424-512.022 377.572-512.022 679.418 0 148.392 120.426 268.832 268.808 268.832 60.354 0 115.99-27.53 160.796-67.834l-77.604-124.166 224-128-128-320 352 384-224 128 61.896 92.846c35.42 21.768 75.21 35.154 117.292 35.154z" />
+<glyph unicode="&#xea18;" glyph-name="man" d="M576 864c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 53.019 42.981 96 96 96s96-42.981 96-96zM576 704h-192c-35.346 0-64-28.654-64-64v-320h64v-384h80v384h32v-384h80v384h64v320c0 35.346-28.652 64-64 64z" />
+<glyph unicode="&#xea19;" glyph-name="woman" d="M576 864c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 53.019 42.981 96 96 96s96-42.981 96-96zM719 448l49 35.5-133.286 206.116c-5.92 8.98-15.958 14.384-26.714 14.384h-256c-10.756 0-20.792-5.404-26.714-14.384l-133.286-206.116 49-35.5 110.644 143.596 38.458-89.74-134.102-245.856h122.666l21.334-320h64v320h32v-320h64l21.334 320h122.666l-134.104 245.858 38.458 89.74 110.646-143.598z" />
+<glyph unicode="&#xea1a;" glyph-name="man-woman" d="M256 864c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 53.019 42.981 96 96 96s96-42.981 96-96zM832 864c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 53.019 42.981 96 96 96s96-42.981 96-96zM256 704h-192c-35.346 0-64-28.654-64-64v-320h64v-384h80v384h32v-384h80v384h64v320c0 35.346-28.652 64-64 64zM975 448l49 35.5-133.286 206.116c-5.92 8.98-15.958 14.384-26.714 14.384h-256c-10.756 0-20.792-5.404-26.714-14.384l-133.286-206.116 49-35.5 110.644 143.596 38.458-89.74-134.102-245.856h122.666l21.334-320h64v320h32v-320h64l21.334 320h122.666l-134.104 245.858 38.458 89.74 110.646-143.598z" />
+<glyph unicode="&#xea1b;" glyph-name="happy" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM512 361.24c115.95 0 226.23 30.806 320 84.92-14.574-178.438-153.128-318.16-320-318.16-166.868 0-305.422 139.872-320 318.304 93.77-54.112 204.050-85.064 320-85.064zM256 608c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96zM640 608c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96z" />
+<glyph unicode="&#xea1c;" glyph-name="happy2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM704 704c35.348 0 64-42.98 64-96s-28.652-96-64-96-64 42.98-64 96 28.652 96 64 96zM320 704c35.346 0 64-42.98 64-96s-28.654-96-64-96-64 42.98-64 96 28.654 96 64 96zM512 64c-166.868 0-305.422 139.872-320 318.304 93.77-54.114 204.050-85.064 320-85.064s226.23 30.806 320 84.92c-14.574-178.438-153.128-318.16-320-318.16z" />
+<glyph unicode="&#xea1d;" glyph-name="smile" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM256 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM640 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM704.098 332.74l82.328-49.396c-55.962-93.070-157.916-155.344-274.426-155.344s-218.464 62.274-274.426 155.344l82.328 49.396c39.174-65.148 110.542-108.74 192.098-108.74s152.924 43.592 192.098 108.74z" />
+<glyph unicode="&#xea1e;" glyph-name="smile2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM704 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM320 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM512 128c-116.51 0-218.464 62.274-274.426 155.344l82.328 49.396c39.174-65.148 110.542-108.74 192.098-108.74s152.924 43.592 192.098 108.74l82.328-49.396c-55.962-93.070-157.916-155.344-274.426-155.344z" />
+<glyph unicode="&#xea1f;" glyph-name="tongue" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM256 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM640 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM768 384v-64h-64v-96c0-53.020-42.98-96-96-96s-96 42.98-96 96v96h-256v64h512z" />
+<glyph unicode="&#xea20;" glyph-name="tongue2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM320 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM768 320h-64v-96c0-53.020-42.98-96-96-96s-96 42.98-96 96v96h-256v64h512v-64zM704 576c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z" />
+<glyph unicode="&#xea21;" glyph-name="sad" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM256 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM640 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM319.902 179.26l-82.328 49.396c55.962 93.070 157.916 155.344 274.426 155.344 116.508 0 218.462-62.274 274.426-155.344l-82.328-49.396c-39.174 65.148-110.542 108.74-192.098 108.74-81.558 0-152.924-43.592-192.098-108.74z" />
+<glyph unicode="&#xea22;" glyph-name="sad2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM704 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM320 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM704.098 179.26c-39.174 65.148-110.544 108.74-192.098 108.74-81.556 0-152.924-43.592-192.098-108.74l-82.328 49.396c55.96 93.070 157.916 155.344 274.426 155.344 116.508 0 218.464-62.274 274.426-155.344l-82.328-49.396z" />
+<glyph unicode="&#xea23;" glyph-name="wink" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM542.74 248.972c140.248 27.706 249.11 91.542 288.454 176.594-21.654-167.956-161.518-297.566-330.85-297.566-119.242 0-223.858 64.282-282.892 160.948 70.41-55.058 194.534-65.808 325.288-39.976zM640 608c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96zM352 588.5c-41.796 0-77.334-15.656-90.516-37.5-3.54 5.866-5.484 32.174-5.484 38.75 0 31.066 42.98 56.25 96 56.25s96-25.184 96-56.25c0-6.576-1.944-32.884-5.484-38.75-13.182 21.844-48.72 37.5-90.516 37.5z" />
+<glyph unicode="&#xea24;" glyph-name="wink2" d="M512 960c-282.77 0-512-229.228-512-512 0-282.77 229.228-512 512-512 282.77 0 512 229.23 512 512 0 282.772-229.23 512-512 512zM704 704c35.346 0 64-42.98 64-96s-28.654-96-64-96-64 42.98-64 96 28.654 96 64 96zM352 647.938c59.646 0 102-22.332 102-57.282 0-7.398 3.812-42.994-0.17-49.594-14.828 24.576-54.81 42.188-101.83 42.188s-87.002-17.612-101.83-42.188c-3.982 6.6-0.17 42.196-0.17 49.594 0 34.95 42.354 57.282 102 57.282zM500.344 128c-119.242 0-223.858 64.28-282.892 160.952 70.41-55.060 194.534-65.81 325.288-39.978 140.248 27.706 249.11 91.542 288.454 176.594-21.654-167.96-161.518-297.568-330.85-297.568z" />
+<glyph unicode="&#xea25;" glyph-name="grin" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM192 448v-64c0-140.8 115.2-256 256-256h128c140.8 0 256 115.2 256 256v64h-640zM384 203.012c-26.538 9.458-50.924 24.822-71.544 45.446-36.406 36.402-56.456 84.54-56.456 135.542h128v-180.988zM576 192h-128v192h128v-192zM711.544 248.458c-20.624-20.624-45.010-35.988-71.544-45.446v180.988h128c0-51.002-20.048-99.14-56.456-135.542zM225.352 576c0.002 0 0 0 0 0 9.768 0 18.108 7.056 19.724 16.69 6.158 36.684 37.668 63.31 74.924 63.31s68.766-26.626 74.924-63.31c1.616-9.632 9.956-16.69 19.722-16.69 9.768 0 18.108 7.056 19.724 16.688 1.082 6.436 1.628 12.934 1.628 19.312 0 63.962-52.038 116-116 116s-116-52.038-116-116c0-6.378 0.548-12.876 1.628-19.312 1.62-9.632 9.96-16.688 19.726-16.688zM609.352 576c0.002 0 0 0 0 0 9.77 0 18.112 7.056 19.724 16.69 6.158 36.684 37.668 63.31 74.924 63.31s68.766-26.626 74.924-63.31c1.616-9.632 9.958-16.69 19.722-16.69s18.108 7.056 19.722 16.688c1.082 6.436 1.628 12.934 1.628 19.312 0 63.962-52.038 116-116 116s-116-52.038-116-116c0-6.378 0.544-12.876 1.626-19.312 1.624-9.632 9.964-16.688 19.73-16.688z" />
+<glyph unicode="&#xea26;" glyph-name="grin2" d="M512 960c-282.77 0-512-229.23-512-512s229.226-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM704 724c63.962 0 116-52.038 116-116 0-6.378-0.546-12.876-1.628-19.312-1.618-9.632-9.958-16.688-19.724-16.688s-18.108 7.056-19.722 16.69c-6.16 36.684-37.67 53.31-74.926 53.31s-68.766-16.626-74.924-53.31c-1.616-9.632-9.956-16.69-19.722-16.69-0.002 0 0 0-0.002 0-9.766 0-18.106 7.056-19.722 16.688-1.084 6.436-1.63 12.934-1.63 19.312 0 63.962 52.038 116 116 116zM320 724c63.962 0 116-52.038 116-116 0-6.378-0.548-12.876-1.628-19.312-1.618-9.632-9.956-16.688-19.724-16.688s-18.106 7.056-19.722 16.69c-6.16 36.684-37.67 53.31-74.926 53.31s-68.766-16.626-74.924-53.31c-1.616-9.632-9.956-16.69-19.722-16.69 0 0 0 0 0 0-9.766 0-18.106 7.056-19.724 16.688-1.082 6.436-1.63 12.934-1.63 19.312 0 63.962 52.038 116 116 116zM192 384h192v-247.846c-110.094 28.606-192 129.124-192 247.846zM448 128v256h128v-256h-128zM640 136.154v247.846h192c0-118.722-81.904-219.24-192-247.846z" />
+<glyph unicode="&#xea27;" glyph-name="cool" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM800 704c17.6 0 32-14.4 32-32v-96c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64h-128c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v96c0 17.6 14.4 32 32 32h192c17.6 0 32-14.4 32-32v-32h128v32c0 17.6 14.4 32 32 32h192zM512 192c93.208 0 174.772 49.818 219.546 124.278l54.88-32.934c-55.966-93.070-157.916-155.344-274.426-155.344-48.458 0-94.384 10.796-135.54 30.082l33.162 55.278c31.354-13.714 65.964-21.36 102.378-21.36z" />
+<glyph unicode="&#xea28;" glyph-name="cool2" d="M512 960c-282.77 0-512-229.23-512-512s229.226-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM512 128c-48.458 0-94.384 10.796-135.542 30.082l33.162 55.276c31.356-13.712 65.966-21.358 102.38-21.358 93.208 0 174.772 49.818 219.542 124.278l54.882-32.934c-55.964-93.070-157.914-155.344-274.424-155.344zM832 576c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64h-128c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v96c0 17.6 14.4 32 32 32h192c17.6 0 32-14.4 32-32v-32h128v32c0 17.6 14.4 32 32 32h192c17.6 0 32-14.4 32-32v-96z" />
+<glyph unicode="&#xea29;" glyph-name="angry" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM704.098 179.26c-39.174 65.148-110.544 108.74-192.098 108.74-81.556 0-152.924-43.592-192.098-108.74l-82.328 49.396c55.96 93.070 157.916 155.344 274.426 155.344 116.508 0 218.464-62.274 274.426-155.344l-82.328-49.396zM767.042 679.76c4.284-17.144-6.14-34.518-23.282-38.804-17.626-4.45-38.522-12.12-56.936-21.35 10.648-11.43 17.174-26.752 17.174-43.606 0-35.346-28.654-64-64-64s-64 28.654-64 64c0 1.17 0.036 2.33 0.098 3.484 2.032 47.454 45.212 78.946 81.592 97.138 34.742 17.37 69.102 26.060 70.548 26.422 17.146 4.288 34.518-6.138 38.806-23.284zM256.958 679.76c4.288 17.146 21.66 27.572 38.806 23.284 1.446-0.362 35.806-9.052 70.548-26.422 36.38-18.192 79.56-49.684 81.592-97.138 0.062-1.154 0.098-2.314 0.098-3.484 0-35.346-28.654-64-64-64s-64 28.654-64 64c0 16.854 6.526 32.176 17.174 43.606-18.414 9.23-39.31 16.9-56.936 21.35-17.142 4.286-27.566 21.66-23.282 38.804z" />
+<glyph unicode="&#xea2a;" glyph-name="angry2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM576.094 579.484c2.032 47.454 45.21 78.948 81.592 97.138 34.742 17.372 69.104 26.060 70.548 26.422 17.146 4.288 34.52-6.138 38.806-23.284s-6.138-34.518-23.284-38.806c-17.624-4.45-38.522-12.12-56.936-21.35 10.648-11.43 17.174-26.752 17.174-43.606 0-35.346-28.654-64-64-64s-64 28.654-64 64c0.002 1.17 0.038 2.332 0.1 3.486zM256.958 679.76c4.288 17.146 21.66 27.572 38.806 23.284 1.446-0.362 35.806-9.052 70.548-26.422 36.38-18.192 79.56-49.684 81.592-97.138 0.062-1.154 0.098-2.314 0.098-3.484 0-35.346-28.654-64-64-64s-64 28.654-64 64c0 16.854 6.526 32.176 17.174 43.606-18.414 9.23-39.31 16.9-56.936 21.35-17.142 4.286-27.566 21.66-23.282 38.804zM704.098 179.26c-39.174 65.148-110.544 108.74-192.098 108.74-81.556 0-152.924-43.592-192.098-108.74l-82.328 49.396c55.96 93.070 157.916 155.344 274.426 155.344 116.508 0 218.464-62.274 274.426-155.344l-82.328-49.396z" />
+<glyph unicode="&#xea2b;" glyph-name="evil" d="M639.996 512c-35.346 0-64 28.654-63.998 64.002 0 1.17 0.036 2.33 0.098 3.484 2.032 47.454 45.212 78.946 81.592 97.138 34.742 17.37 69.102 26.060 70.548 26.422 17.146 4.288 34.518-6.138 38.806-23.284 4.284-17.146-6.14-34.518-23.284-38.806-17.626-4.45-38.522-12.12-56.936-21.35 10.648-11.43 17.174-26.752 17.174-43.606 0-35.346-28.654-64-64-64zM280.242 640.956c-17.144 4.286-27.568 21.66-23.282 38.804 4.286 17.146 21.66 27.572 38.806 23.284 1.444-0.362 35.806-9.050 70.548-26.422 36.382-18.19 79.56-49.684 81.592-97.138 0.062-1.154 0.098-2.316 0.098-3.484 0-35.346-28.654-64-64-64s-64 28.654-64 64c0 16.854 6.526 32.176 17.174 43.606-18.414 9.23-39.312 16.9-56.936 21.35zM512 224c81.554 0 152.924 43.592 192.098 108.74l82.328-49.396c-55.962-93.070-157.916-155.344-274.426-155.344s-218.464 62.274-274.426 155.344l82.328 49.396c39.174-65.148 110.542-108.74 192.098-108.74zM1024 896c0 45.516-9.524 88.8-26.652 128-33.576-76.836-96.448-137.932-174.494-169.178-86.194 65.96-193.936 105.178-310.854 105.178s-224.66-39.218-310.854-105.178c-78.048 31.246-140.918 92.342-174.494 169.178-17.128-39.2-26.652-82.484-26.652-128 0-73.574 24.85-141.328 66.588-195.378-42.37-74.542-66.588-160.75-66.588-252.622 0-282.77 229.23-512 512-512s512 229.23 512 512c0 91.872-24.218 178.080-66.588 252.622 41.738 54.050 66.588 121.804 66.588 195.378zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416z" />
+<glyph unicode="&#xea2c;" glyph-name="evil2" d="M1024 896c0 45.516-9.524 88.8-26.652 128-33.576-76.836-96.448-137.932-174.494-169.178-86.194 65.96-193.936 105.178-310.854 105.178s-224.66-39.218-310.854-105.178c-78.048 31.246-140.918 92.342-174.494 169.178-17.128-39.2-26.652-82.484-26.652-128 0-73.574 24.85-141.328 66.588-195.378-42.37-74.542-66.588-160.75-66.588-252.622 0-282.77 229.23-512 512-512s512 229.23 512 512c0 91.872-24.218 178.080-66.588 252.622 41.738 54.050 66.588 121.804 66.588 195.378zM576.094 579.484c2.032 47.454 45.21 78.948 81.592 97.138 34.742 17.372 69.104 26.060 70.548 26.422 17.146 4.288 34.52-6.138 38.806-23.284s-6.138-34.518-23.284-38.806c-17.624-4.45-38.522-12.12-56.936-21.35 10.648-11.43 17.174-26.752 17.174-43.606 0-35.346-28.654-64-64-64s-64 28.654-64 64c0.002 1.17 0.038 2.332 0.1 3.486zM256.958 679.76c4.288 17.146 21.66 27.572 38.806 23.284 1.446-0.362 35.806-9.052 70.548-26.422 36.38-18.192 79.56-49.684 81.592-97.138 0.062-1.154 0.098-2.314 0.098-3.484 0-35.346-28.654-64-64-64s-64 28.654-64 64c0 16.854 6.526 32.176 17.174 43.606-18.414 9.23-39.31 16.9-56.936 21.35-17.142 4.286-27.566 21.66-23.282 38.804zM512 128c-116.51 0-218.464 62.274-274.426 155.344l82.328 49.396c39.174-65.148 110.542-108.74 192.098-108.74 81.554 0 152.924 43.592 192.098 108.74l82.328-49.396c-55.962-93.070-157.916-155.344-274.426-155.344z" />
+<glyph unicode="&#xea2d;" glyph-name="shocked" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM384 256c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM640 608c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96zM256 608c0 53.019 28.654 96 64 96s64-42.981 64-96c0-53.019-28.654-96-64-96s-64 42.981-64 96z" />
+<glyph unicode="&#xea2e;" glyph-name="shocked2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM320 512c-35.346 0-64 42.98-64 96s28.654 96 64 96 64-42.98 64-96-28.654-96-64-96zM512 128c-70.692 0-128 57.308-128 128s57.308 128 128 128c70.692 0 128-57.308 128-128s-57.308-128-128-128zM704 512c-35.346 0-64 42.98-64 96s28.654 96 64 96 64-42.98 64-96-28.654-96-64-96z" />
+<glyph unicode="&#xea2f;" glyph-name="baffled" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM384 544c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 17.673 14.327 32 32 32s32-14.327 32-32zM352 640c53.020 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM352 704c-88.224 0-160-71.776-160-160s71.776-160 160-160 160 71.776 160 160-71.776 160-160 160v0zM704 544c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 17.673 14.327 32 32 32s32-14.327 32-32zM672 640c53.020 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM672 704c-88.224 0-160-71.776-160-160s71.776-160 160-160 160 71.776 160 160-71.776 160-160 160v0zM384 256h256v-64h-256v64z" />
+<glyph unicode="&#xea30;" glyph-name="baffled2" d="M384 544c0-17.674-14.326-32-32-32s-32 14.326-32 32 14.326 32 32 32 32-14.326 32-32zM704 544c0-17.674-14.326-32-32-32s-32 14.326-32 32 14.326 32 32 32 32-14.326 32-32zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM256 544c0 53.020 42.98 96 96 96s96-42.98 96-96-42.98-96-96-96-96 42.98-96 96zM640 192h-256v64h256v-64zM672 448c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96z" />
+<glyph unicode="&#xea31;" glyph-name="confused" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM256 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM640 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM726.106 320h64.864c9.246-72.506-32.452-144.53-103.958-170.56-82.904-30.176-174.9 12.716-205.080 95.616-18.108 49.744-73.306 75.482-123.048 57.372-45.562-16.588-70.956-64.298-60.988-110.424h-64.86c-9.242 72.508 32.45 144.528 103.956 170.56 82.904 30.178 174.902-12.716 205.082-95.614 18.104-49.748 73.306-75.482 123.044-57.372 45.562 16.584 70.956 64.298 60.988 110.422z" />
+<glyph unicode="&#xea32;" glyph-name="confused2" d="M512 960c-282.77 0-512-229.23-512-512s229.226-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM704 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64c0 35.346 28.654 64 64 64zM320 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64c0 35.346 28.654 64 64 64zM687.010 149.44c-82.902-30.18-174.9 12.712-205.080 95.614-18.108 49.742-73.306 75.478-123.048 57.372-45.562-16.588-70.958-64.296-60.988-110.424h-64.86c-9.244 72.508 32.45 144.532 103.956 170.56 82.904 30.18 174.902-12.712 205.082-95.614 18.108-49.742 73.306-75.476 123.046-57.37 45.562 16.584 70.958 64.294 60.988 110.422h64.864c9.24-72.506-32.454-144.532-103.96-170.56z" />
+<glyph unicode="&#xea33;" glyph-name="neutral" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM256 640c0-35.346 28.654-64 64-64s64 28.654 64 64-28.654 64-64 64-64-28.654-64-64zM640 640c0-35.346 28.654-64 64-64s64 28.654 64 64-28.654 64-64 64-64-28.654-64-64zM384 256h256v-64h-256v64z" />
+<glyph unicode="&#xea34;" glyph-name="neutral2" d="M512 960c-282.77 0-512-229.23-512-512s229.226-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM640 192h-256v64h256v-64zM704 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64c0 35.346 28.654 64 64 64zM320 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64c0 35.346 28.654 64 64 64z" />
+<glyph unicode="&#xea35;" glyph-name="hipster" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM256 640c0 35.346 28.654 64 64 64s64-28.654 64-64-28.654-64-64-64-64 28.654-64 64zM640 640c0 35.346 28.654 64 64 64s64-28.654 64-64-28.654-64-64-64-64 28.654-64 64zM675.882 419.882c-37.49 37.49-98.276 37.49-135.766 0s-37.49-98.276 0-135.766c1.204-1.204 2.434-2.368 3.684-3.492 86.528-78.512 288.2 1.842 288.2 103.376-62-40-110.45-9.786-156.118 35.882zM348.118 419.882c37.49 37.49 98.276 37.49 135.766 0s37.49-98.276 0-135.766c-1.204-1.204-2.434-2.368-3.684-3.492-86.528-78.512-288.2 1.842-288.2 103.376 62-40 110.45-9.786 156.118 35.882z" />
+<glyph unicode="&#xea36;" glyph-name="hipster2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM704 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM320 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM543.8 280.624c-1.25 1.124-2.48 2.29-3.684 3.492-18.74 18.74-28.112 43.3-28.118 67.864-0.004-24.562-9.376-49.124-28.118-67.864-1.204-1.204-2.434-2.368-3.684-3.492-86.524-78.512-288.196 1.842-288.196 103.376 62-40 110.45-9.786 156.118 35.882 37.49 37.49 98.276 37.49 135.766 0 18.74-18.74 28.112-43.3 28.118-67.864 0.004 24.562 9.376 49.124 28.118 67.864 37.49 37.49 98.276 37.49 135.766 0 45.664-45.668 94.114-75.882 156.114-35.882 0-101.534-201.672-181.888-288.2-103.376z" />
+<glyph unicode="&#xea37;" glyph-name="wondering" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM745.74 358.38l22.488-76.776-437.008-128.002-22.488 76.776zM256 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM640 640c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64z" />
+<glyph unicode="&#xea38;" glyph-name="wondering2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM704 704c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM256 640c0 35.346 28.654 64 64 64s64-28.654 64-64-28.654-64-64-64-64 28.654-64 64zM331.244 153.614l-22.488 76.774 437 128 22.488-76.774-437-128z" />
+<glyph unicode="&#xea39;" glyph-name="sleepy" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM640 288c0-88.366-57.308-160-128.002-160s-128.002 71.634-128.002 160c0 88.366 57.308 160 128.002 160s128.002-71.634 128.002-160zM416 620c-8.19 0-16.378 3.124-22.626 9.374-19.334 19.332-63.412 19.332-82.746 0-12.496-12.498-32.758-12.498-45.254 0-12.498 12.496-12.498 32.758 0 45.254 44.528 44.53 128.726 44.53 173.254 0 12.498-12.496 12.498-32.758 0-45.254-6.248-6.25-14.438-9.374-22.628-9.374zM736 620c-8.19 0-16.378 3.124-22.626 9.374-19.332 19.332-63.414 19.332-82.746 0-12.496-12.498-32.758-12.498-45.254 0-12.498 12.496-12.498 32.758 0 45.254 44.528 44.53 128.726 44.53 173.254 0 12.498-12.496 12.498-32.758 0-45.254-6.248-6.25-14.438-9.374-22.628-9.374z" />
+<glyph unicode="&#xea3a;" glyph-name="sleepy2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM310.628 629.374c-12.496-12.498-32.758-12.498-45.254 0-12.498 12.496-12.498 32.758 0 45.254 44.528 44.53 128.726 44.53 173.254 0 12.498-12.496 12.498-32.758 0-45.254-6.248-6.25-14.438-9.374-22.628-9.374s-16.378 3.124-22.626 9.374c-19.334 19.332-63.412 19.332-82.746 0zM511.998 128c-70.694 0-128.002 71.634-128.002 160s57.308 160 128.002 160 128.002-71.634 128.002-160-57.308-160-128.002-160zM758.628 629.374c-6.248-6.25-14.438-9.374-22.628-9.374s-16.378 3.124-22.626 9.374c-19.332 19.332-63.414 19.332-82.746 0-12.496-12.498-32.758-12.498-45.254 0-12.498 12.496-12.498 32.758 0 45.254 44.528 44.53 128.726 44.53 173.254 0 12.498-12.498 12.498-32.758 0-45.254z" />
+<glyph unicode="&#xea3b;" glyph-name="frustrated" d="M366.312 676.622c-34.742 17.37-69.102 26.060-70.548 26.422-17.146 4.288-34.518-6.138-38.806-23.284-4.284-17.144 6.14-34.518 23.282-38.804 17.626-4.45 38.522-12.12 56.936-21.35-10.648-11.43-17.174-26.752-17.174-43.606 0-35.346 28.654-64 64-64s64 28.654 64 64c0 1.17-0.036 2.33-0.098 3.484-2.032 47.454-45.212 78.946-81.592 97.138zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM236.498 136.336c10.706-5.324 22.756-8.336 35.502-8.336h480c12.746 0 24.796 3.012 35.502 8.338-73.378-64.914-169.828-104.338-275.502-104.338-105.672 0-202.124 39.424-275.502 104.336zM256 208v96c0 8.674 7.328 16 16 16h112v-128h-112c-8.672 0-16 7.326-16 16zM448 192v128h128v-128h-128zM640 192v128h112c8.674 0 16-7.326 16-16v-96c0-8.674-7.326-16-16-16h-112zM823.662 172.498c5.326 10.706 8.338 22.756 8.338 35.502v96c0 44.112-35.888 80-80 80h-480c-44.112 0-80-35.888-80-80v-96c0-12.746 3.012-24.796 8.336-35.502-64.912 73.378-104.336 169.828-104.336 275.502 0 229.75 186.25 416 416 416s416-186.25 416-416c0-105.674-39.424-202.124-104.338-275.502zM728.236 703.044c-1.448-0.362-35.806-9.052-70.548-26.422-36.378-18.192-79.558-49.684-81.592-97.138-0.060-1.154-0.098-2.314-0.098-3.484 0-35.346 28.654-64 64-64s64 28.654 64 64c0 16.854-6.526 32.176-17.174 43.606 18.414 9.23 39.31 16.9 56.936 21.35 17.142 4.286 27.566 21.66 23.284 38.804-4.29 17.146-21.662 27.572-38.808 23.284z" />
+<glyph unicode="&#xea3c;" glyph-name="frustrated2" d="M256 304v-96c0-8.674 7.328-16 16-16h112v128h-112c-8.672 0-16-7.326-16-16zM448 320h128v-128h-128v128zM752 320h-112v-128h112c8.674 0 16 7.326 16 16v96c0 8.674-7.326 16-16 16zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM576.096 579.484c2.034 47.454 45.212 78.946 81.592 97.138 34.742 17.37 69.102 26.060 70.548 26.422 17.146 4.288 34.518-6.138 38.806-23.284 4.284-17.144-6.14-34.518-23.284-38.804-17.624-4.45-38.522-12.12-56.936-21.35 10.648-11.43 17.174-26.752 17.174-43.606 0-35.346-28.654-64-64-64s-64 28.654-64 64c0.002 1.17 0.040 2.33 0.1 3.484zM256.958 679.76c4.288 17.146 21.66 27.572 38.806 23.284 1.446-0.362 35.806-9.052 70.548-26.422 36.38-18.192 79.56-49.684 81.592-97.138 0.062-1.154 0.098-2.314 0.098-3.484 0-35.346-28.654-64-64-64s-64 28.654-64 64c0 16.854 6.526 32.176 17.174 43.606-18.414 9.23-39.31 16.9-56.936 21.35-17.142 4.286-27.566 21.66-23.282 38.804zM832 208c0-44.112-35.888-80-80-80h-480c-44.112 0-80 35.888-80 80v96c0 44.112 35.888 80 80 80h480c44.112 0 80-35.888 80-80v-96z" />
+<glyph unicode="&#xea3d;" glyph-name="crying" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM800 576h-128c-17.674 0-32 14.328-32 32s14.326 32 32 32h128c17.674 0 32-14.328 32-32s-14.326-32-32-32zM352 576h-128c-17.672 0-32 14.328-32 32s14.328 32 32 32h128c17.672 0 32-14.328 32-32s-14.328-32-32-32zM608 104c-8.19 0-16.378 3.124-22.626 9.374-4.582 4.582-29.42 14.626-73.374 14.626s-68.79-10.044-73.374-14.626c-12.496-12.496-32.758-12.496-45.254 0-12.498 12.496-12.498 32.758 0 45.254 30.122 30.12 92.994 33.372 118.628 33.372 25.632 0 88.506-3.252 118.626-33.374 12.498-12.496 12.498-32.758 0-45.254-6.248-6.248-14.436-9.372-22.626-9.372zM736 384c-17.674 0-32 14.326-32 32v64c0 17.672 14.326 32 32 32s32-14.328 32-32v-64c0-17.674-14.326-32-32-32zM736 192c-17.674 0-32 14.326-32 32v64c0 17.674 14.326 32 32 32s32-14.326 32-32v-64c0-17.674-14.326-32-32-32zM288 384c-17.672 0-32 14.326-32 32v64c0 17.672 14.328 32 32 32s32-14.328 32-32v-64c0-17.674-14.328-32-32-32zM288 192c-17.672 0-32 14.326-32 32v64c0 17.674 14.328 32 32 32s32-14.326 32-32v-64c0-17.674-14.328-32-32-32z" />
+<glyph unicode="&#xea3e;" glyph-name="crying2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM320 224c0-17.674-14.328-32-32-32s-32 14.326-32 32v64c0 17.674 14.328 32 32 32s32-14.326 32-32v-64zM320 416c0-17.674-14.328-32-32-32s-32 14.326-32 32v64c0 17.672 14.328 32 32 32s32-14.328 32-32v-64zM352 576h-128c-17.672 0-32 14.328-32 32s14.328 32 32 32h128c17.672 0 32-14.328 32-32s-14.328-32-32-32zM630.626 113.374c-6.248-6.25-14.436-9.374-22.626-9.374s-16.378 3.124-22.626 9.374c-4.582 4.582-29.42 14.626-73.374 14.626s-68.79-10.044-73.374-14.626c-12.496-12.496-32.758-12.496-45.254 0-12.498 12.496-12.498 32.758 0 45.254 30.122 30.12 92.994 33.372 118.628 33.372 25.632 0 88.506-3.252 118.626-33.374 12.498-12.496 12.498-32.756 0-45.252zM768 224c0-17.674-14.326-32-32-32s-32 14.326-32 32v64c0 17.674 14.326 32 32 32s32-14.326 32-32v-64zM768 416c0-17.674-14.326-32-32-32s-32 14.326-32 32v64c0 17.672 14.326 32 32 32s32-14.328 32-32v-64zM800 576h-128c-17.674 0-32 14.328-32 32s14.326 32 32 32h128c17.674 0 32-14.328 32-32s-14.326-32-32-32z" />
+<glyph unicode="&#xea3f;" glyph-name="point-up" d="M960 352v160c0 52.934-43.066 96-96 96-17.104 0-33.176-4.494-47.098-12.368-17.076 26.664-46.958 44.368-80.902 44.368-24.564 0-47.004-9.274-64-24.504-16.996 15.23-39.436 24.504-64 24.504-11.214 0-21.986-1.934-32-5.484v229.484c0 52.934-43.066 96-96 96s-96-43.066-96-96v-394.676l-176.018 93.836c-14.536 8.4-31.126 12.84-47.982 12.84-52.934 0-96-43.066-96-96 0-26.368 10.472-50.954 29.49-69.226 0.248-0.238 0.496-0.47 0.75-0.7l239.17-218.074h-45.41c-17.672 0-32-14.326-32-32v-192c0-17.674 14.328-32 32-32h640c17.674 0 32 14.326 32 32v192c0 17.674-14.326 32-32 32h-44.222l72.844 145.69c2.222 4.442 3.378 9.342 3.378 14.31zM896 96c0-17.674-14.326-32-32-32s-32 14.326-32 32 14.326 32 32 32 32-14.326 32-32zM896 359.554l-83.776-167.554h-383.826l-290.818 265.166c-6.18 6.070-9.58 14.164-9.58 22.834 0 17.644 14.356 32 32 32 5.46 0 10.612-1.31 15.324-3.894 0.53-0.324 1.070-0.632 1.622-0.926l224-119.416c9.92-5.288 21.884-4.986 31.52 0.8 9.638 5.782 15.534 16.196 15.534 27.436v448c0 17.644 14.356 32 32 32s32-14.356 32-32v-320c0-17.672 14.326-32 32-32s32 14.328 32 32c0 17.644 14.356 32 32 32s32-14.356 32-32c0-17.672 14.326-32 32-32s32 14.328 32 32c0 17.644 14.356 32 32 32s32-14.356 32-32v-32c0-17.672 14.326-32 32-32s32 14.328 32 32c0 17.644 14.356 32 32 32s32-14.356 32-32v-152.446z" />
+<glyph unicode="&#xea40;" glyph-name="point-right" d="M416 0h160c52.934 0 96 43.066 96 96 0 17.104-4.494 33.176-12.368 47.098 26.664 17.076 44.368 46.958 44.368 80.902 0 24.564-9.276 47.004-24.504 64 15.228 16.996 24.504 39.436 24.504 64 0 11.214-1.934 21.986-5.484 32h229.484c52.934 0 96 43.066 96 96s-43.066 96-96 96h-394.676l93.836 176.018c8.4 14.536 12.84 31.126 12.84 47.982 0 52.934-43.066 96-96 96-26.368 0-50.954-10.472-69.226-29.49-0.238-0.248-0.47-0.496-0.7-0.75l-218.074-239.17v45.41c0 17.672-14.326 32-32 32h-192c-17.674 0-32-14.328-32-32v-640c0-17.674 14.326-32 32-32h192c17.674 0 32 14.326 32 32v44.222l145.69-72.844c4.444-2.222 9.342-3.378 14.31-3.378zM160 64c-17.674 0-32 14.326-32 32s14.326 32 32 32 32-14.326 32-32-14.326-32-32-32zM423.556 64l-167.556 83.778v383.824l265.168 290.818c6.066 6.18 14.162 9.58 22.832 9.58 17.644 0 32-14.356 32-32 0-5.46-1.308-10.612-3.894-15.324-0.324-0.53-0.632-1.070-0.926-1.622l-119.418-224c-5.288-9.92-4.986-21.884 0.8-31.52 5.784-9.638 16.198-15.534 27.438-15.534h448c17.644 0 32-14.356 32-32s-14.356-32-32-32h-320c-17.672 0-32-14.326-32-32s14.328-32 32-32c17.644 0 32-14.356 32-32s-14.356-32-32-32c-17.674 0-32-14.326-32-32s14.326-32 32-32c17.644 0 32-14.356 32-32s-14.356-32-32-32h-32c-17.674 0-32-14.326-32-32s14.326-32 32-32c17.644 0 32-14.356 32-32s-14.356-32-32-32h-152.444z" />
+<glyph unicode="&#xea41;" glyph-name="point-down" d="M960 544v-160c0-52.934-43.066-96-96-96-17.104 0-33.176 4.494-47.098 12.368-17.076-26.662-46.96-44.368-80.902-44.368-24.564 0-47.004 9.276-64 24.504-16.996-15.228-39.436-24.504-64-24.504-11.214 0-21.986 1.934-32 5.484v-229.484c0-52.934-43.066-96-96-96-52.936 0-96 43.066-96 96v394.676l-176.018-93.836c-14.538-8.398-31.126-12.84-47.982-12.84-52.936 0-96 43.066-96 96 0 26.368 10.472 50.952 29.488 69.226 0.248 0.238 0.496 0.47 0.75 0.7l239.17 218.074h-45.408c-17.674 0-32 14.326-32 32v192c0 17.674 14.326 32 32 32h640c17.674 0 32-14.326 32-32v-192c0-17.674-14.326-32-32-32h-44.222l72.842-145.69c2.224-4.442 3.38-9.342 3.38-14.31zM896 800c0 17.674-14.326 32-32 32s-32-14.326-32-32 14.326-32 32-32 32 14.326 32 32zM896 536.446l-83.778 167.554h-383.824l-290.82-265.168c-6.18-6.066-9.578-14.162-9.578-22.832 0-17.644 14.356-32 32-32 5.458 0 10.612 1.308 15.324 3.894 0.53 0.324 1.070 0.632 1.622 0.926l224 119.416c9.92 5.288 21.884 4.986 31.52-0.8 9.638-5.782 15.534-16.196 15.534-27.436v-448c0-17.644 14.356-32 32-32s32 14.356 32 32v320c0 17.672 14.326 32 32 32s32-14.328 32-32c0-17.644 14.356-32 32-32s32 14.356 32 32c0 17.674 14.326 32 32 32s32-14.326 32-32c0-17.644 14.356-32 32-32s32 14.356 32 32v32c0 17.674 14.326 32 32 32s32-14.326 32-32c0-17.644 14.356-32 32-32s32 14.356 32 32v152.446z" />
+<glyph unicode="&#xea42;" glyph-name="point-left" d="M608 0h-160c-52.934 0-96 43.066-96 96 0 17.104 4.494 33.176 12.368 47.098-26.662 17.076-44.368 46.958-44.368 80.902 0 24.564 9.276 47.004 24.504 64-15.228 16.996-24.504 39.436-24.504 64 0 11.214 1.934 21.986 5.484 32h-229.484c-52.934 0-96 43.066-96 96 0 52.936 43.066 96 96 96h394.676l-93.836 176.018c-8.398 14.536-12.84 31.126-12.84 47.982 0 52.936 43.066 96 96 96 26.368 0 50.952-10.472 69.224-29.488 0.238-0.248 0.472-0.496 0.7-0.75l218.076-239.17v45.408c0 17.674 14.326 32 32 32h192c17.674 0 32-14.326 32-32v-640c0-17.674-14.326-32-32-32h-192c-17.674 0-32 14.326-32 32v44.222l-145.69-72.844c-4.442-2.222-9.34-3.378-14.31-3.378zM864 64c17.674 0 32 14.326 32 32s-14.326 32-32 32-32-14.326-32-32 14.326-32 32-32zM600.446 64l167.554 83.778v383.824l-265.168 290.82c-6.066 6.18-14.162 9.578-22.832 9.578-17.644 0-32-14.356-32-32 0-5.458 1.308-10.612 3.894-15.324 0.324-0.53 0.632-1.070 0.926-1.622l119.416-224c5.29-9.92 4.988-21.884-0.798-31.52-5.784-9.638-16.198-15.534-27.438-15.534h-448c-17.644 0-32-14.356-32-32s14.356-32 32-32h320c17.672 0 32-14.326 32-32s-14.328-32-32-32c-17.644 0-32-14.356-32-32s14.356-32 32-32c17.674 0 32-14.326 32-32s-14.326-32-32-32c-17.644 0-32-14.356-32-32s14.356-32 32-32h32c17.674 0 32-14.326 32-32s-14.326-32-32-32c-17.644 0-32-14.356-32-32s14.356-32 32-32h152.446z" />
+<glyph unicode="&#xea43;" glyph-name="warning" d="M512 867.226l429.102-855.226h-858.206l429.104 855.226zM512 960c-22.070 0-44.14-14.882-60.884-44.648l-437.074-871.112c-33.486-59.532-5-108.24 63.304-108.24h869.308c68.3 0 96.792 48.708 63.3 108.24h0.002l-437.074 871.112c-16.742 29.766-38.812 44.648-60.882 44.648v0zM576 128c0-35.346-28.654-64-64-64s-64 28.654-64 64c0 35.346 28.654 64 64 64s64-28.654 64-64zM512 256c-35.346 0-64 28.654-64 64v192c0 35.346 28.654 64 64 64s64-28.654 64-64v-192c0-35.346-28.654-64-64-64z" />
+<glyph unicode="&#xea44;" glyph-name="notification" d="M512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512zM448 256h128v-128h-128zM448 768h128v-384h-128z" />
+<glyph unicode="&#xea45;" glyph-name="question" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
+<glyph unicode="&#xea46;" glyph-name="plus" d="M992 576h-352v352c0 17.672-14.328 32-32 32h-192c-17.672 0-32-14.328-32-32v-352h-352c-17.672 0-32-14.328-32-32v-192c0-17.672 14.328-32 32-32h352v-352c0-17.672 14.328-32 32-32h192c17.672 0 32 14.328 32 32v352h352c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32z" />
+<glyph unicode="&#xea47;" glyph-name="minus" d="M0 544v-192c0-17.672 14.328-32 32-32h960c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32h-960c-17.672 0-32-14.328-32-32z" />
+<glyph unicode="&#xea48;" glyph-name="info2" d="M448 656c0 26.4 21.6 48 48 48h32c26.4 0 48-21.6 48-48v-32c0-26.4-21.6-48-48-48h-32c-26.4 0-48 21.6-48 48v32zM640 192h-256v64h64v192h-64v64h192v-256h64zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416z" />
+<glyph unicode="&#xea49;" glyph-name="cancel-circle" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416zM672 704l-160-160-160 160-96-96 160-160-160-160 96-96 160 160 160-160 96 96-160 160 160 160z" />
+<glyph unicode="&#xea4a;" glyph-name="blocked" d="M874.040 810.040c-96.706 96.702-225.28 149.96-362.040 149.96s-265.334-53.258-362.040-149.96c-96.702-96.706-149.96-225.28-149.96-362.040s53.258-265.334 149.96-362.040c96.706-96.702 225.28-149.96 362.040-149.96s265.334 53.258 362.040 149.96c96.702 96.706 149.96 225.28 149.96 362.040s-53.258 265.334-149.96 362.040zM896 448c0-82.814-26.354-159.588-71.112-222.38l-535.266 535.268c62.792 44.758 139.564 71.112 222.378 71.112 211.738 0 384-172.262 384-384zM128 448c0 82.814 26.354 159.586 71.112 222.378l535.27-535.268c-62.794-44.756-139.568-71.11-222.382-71.11-211.738 0-384 172.262-384 384z" />
+<glyph unicode="&#xea4b;" glyph-name="cross" d="M1014.662 137.34c-0.004 0.004-0.008 0.008-0.012 0.010l-310.644 310.65 310.644 310.65c0.004 0.004 0.008 0.006 0.012 0.010 3.344 3.346 5.762 7.254 7.312 11.416 4.246 11.376 1.824 24.682-7.324 33.83l-146.746 146.746c-9.148 9.146-22.45 11.566-33.828 7.32-4.16-1.55-8.070-3.968-11.418-7.31 0-0.004-0.004-0.006-0.008-0.010l-310.648-310.652-310.648 310.65c-0.004 0.004-0.006 0.006-0.010 0.010-3.346 3.342-7.254 5.76-11.414 7.31-11.38 4.248-24.682 1.826-33.83-7.32l-146.748-146.748c-9.148-9.148-11.568-22.452-7.322-33.828 1.552-4.16 3.97-8.072 7.312-11.416 0.004-0.002 0.006-0.006 0.010-0.010l310.65-310.648-310.65-310.652c-0.002-0.004-0.006-0.006-0.008-0.010-3.342-3.346-5.76-7.254-7.314-11.414-4.248-11.376-1.826-24.682 7.322-33.83l146.748-146.746c9.15-9.148 22.452-11.568 33.83-7.322 4.16 1.552 8.070 3.97 11.416 7.312 0.002 0.004 0.006 0.006 0.010 0.010l310.648 310.65 310.648-310.65c0.004-0.002 0.008-0.006 0.012-0.008 3.348-3.344 7.254-5.762 11.414-7.314 11.378-4.246 24.684-1.826 33.828 7.322l146.746 146.748c9.148 9.148 11.57 22.454 7.324 33.83-1.552 4.16-3.97 8.068-7.314 11.414z" />
+<glyph unicode="&#xea4c;" glyph-name="checkmark" d="M864 832l-480-480-224 224-160-160 384-384 640 640z" />
+<glyph unicode="&#xea4d;" glyph-name="checkmark2" d="M397.434 42.304l-397.868 391.6 197.378 194.27 200.49-197.332 429.62 422.852 197.378-194.27-626.998-617.12zM107.912 433.904l289.524-284.962 518.656 510.482-89.036 87.632-429.62-422.852-200.49 197.334-89.034-87.634z" />
+<glyph unicode="&#xea4e;" glyph-name="spell-check" d="M128 704h128v-192h64v384c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-384h64v192zM128 896h128v-128h-128v128zM960 896v64h-192c-35.202 0-64-28.8-64-64v-320c0-35.2 28.798-64 64-64h192v64h-192v320h192zM640 800v96c0 35.2-28.8 64-64 64h-192v-448h192c35.2 0 64 28.8 64 64v96c0 35.2-8.8 64-44 64 35.2 0 44 28.8 44 64zM576 576h-128v128h128v-128zM576 768h-128v128h128v-128zM832 384l-416-448-224 288 82 70 142-148 352 302z" />
+<glyph unicode="&#xea4f;" glyph-name="enter" d="M384 448h-320v128h320v128l192-192-192-192zM1024 960v-832l-384-192v192h-384v256h64v-192h320v576l256 128h-576v-256h-64v320z" />
+<glyph unicode="&#xea50;" glyph-name="exit" d="M768 320v128h-320v128h320v128l192-192zM704 384v-256h-320v-192l-384 192v832h704v-320h-64v256h-512l256-128v-576h256v192z" />
+<glyph unicode="&#xea51;" glyph-name="play22" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416zM384 672l384-224-384-224z" />
+<glyph unicode="&#xea52;" glyph-name="pause2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416zM320 640h128v-384h-128zM576 640h128v-384h-128z" />
+<glyph unicode="&#xea53;" glyph-name="stop" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416zM320 640h384v-384h-384z" />
+<glyph unicode="&#xea54;" glyph-name="previous" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416zM448 448l256 192v-384zM320 640h128v-384h-128v384z" />
+<glyph unicode="&#xea55;" glyph-name="next" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 32c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM576 448l-256 192v-384zM704 640h-128v-384h128v384z" />
+<glyph unicode="&#xea56;" glyph-name="backward" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM704 288l-224 160 224 160zM448 288l-224 160 224 160z" />
+<glyph unicode="&#xea57;" glyph-name="forward2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416zM320 608l224-160-224-160zM576 608l224-160-224-160z" />
+<glyph unicode="&#xea58;" glyph-name="play3" d="M192 832l640-384-640-384z" />
+<glyph unicode="&#xea59;" glyph-name="pause22" d="M128 832h320v-768h-320zM576 832h320v-768h-320z" />
+<glyph unicode="&#xea5a;" glyph-name="stop2" d="M128 832h768v-768h-768z" />
+<glyph unicode="&#xea5b;" glyph-name="backward2" d="M576 800v-320l320 320v-704l-320 320v-320l-352 352z" />
+<glyph unicode="&#xea5c;" glyph-name="forward3" d="M512 96v320l-320-320v704l320-320v320l352-352z" />
+<glyph unicode="&#xea5d;" glyph-name="first" d="M128 64v768h128v-352l320 320v-320l320 320v-704l-320 320v-320l-320 320v-352z" />
+<glyph unicode="&#xea5e;" glyph-name="last" d="M896 832v-768h-128v352l-320-320v320l-320-320v704l320-320v320l320-320v352z" />
+<glyph unicode="&#xea5f;" glyph-name="previous2" d="M256 64v768h128v-352l320 320v-704l-320 320v-352z" />
+<glyph unicode="&#xea60;" glyph-name="next2" d="M768 832v-768h-128v352l-320-320v704l320-320v352z" />
+<glyph unicode="&#xea61;" glyph-name="eject" d="M0 192h1024v-128h-1024zM512 832l512-512h-1024z" />
+<glyph unicode="&#xea62;" glyph-name="volume-high2" horiz-adv-x="1088" d="M890.040 37.96c-12.286 0-24.566 4.686-33.942 14.056-18.744 18.746-18.744 49.136 0 67.882 87.638 87.642 135.904 204.16 135.904 328.1 0 123.938-48.266 240.458-135.904 328.098-18.744 18.746-18.744 49.138 0 67.882s49.138 18.744 67.882 0c105.77-105.772 164.022-246.4 164.022-395.98s-58.252-290.208-164.022-395.98c-9.372-9.372-21.656-14.058-33.94-14.058zM719.53 128.47c-12.286 0-24.566 4.686-33.942 14.056-18.744 18.744-18.744 49.136 0 67.882 131.006 131.006 131.006 344.17 0 475.176-18.744 18.746-18.744 49.138 0 67.882 18.744 18.742 49.138 18.744 67.882 0 81.594-81.59 126.53-190.074 126.53-305.466 0-115.39-44.936-223.876-126.53-305.47-9.372-9.374-21.656-14.060-33.94-14.060v0zM549.020 218.98c-12.286 0-24.568 4.686-33.942 14.058-18.746 18.746-18.746 49.134 0 67.88 81.1 81.1 81.1 213.058 0 294.156-18.746 18.746-18.746 49.138 0 67.882s49.136 18.744 67.882 0c118.53-118.53 118.53-311.392 0-429.922-9.372-9.368-21.656-14.054-33.94-14.054zM416.006 0c-8.328 0-16.512 3.25-22.634 9.374l-246.626 246.626h-114.746c-17.672 0-32 14.326-32 32v320c0 17.672 14.328 32 32 32h114.746l246.626 246.628c9.154 9.154 22.916 11.89 34.874 6.936 11.958-4.952 19.754-16.622 19.754-29.564v-832c0-12.944-7.796-24.612-19.754-29.564-3.958-1.64-8.118-2.436-12.24-2.436z" />
+<glyph unicode="&#xea63;" glyph-name="volume-medium" d="M719.53 128.47c-12.286 0-24.566 4.686-33.942 14.056-18.744 18.744-18.744 49.136 0 67.882 131.006 131.006 131.006 344.17 0 475.176-18.744 18.746-18.744 49.138 0 67.882 18.744 18.742 49.138 18.744 67.882 0 81.594-81.59 126.53-190.074 126.53-305.466 0-115.39-44.936-223.876-126.53-305.47-9.372-9.374-21.656-14.060-33.94-14.060v0zM549.020 218.98c-12.286 0-24.566 4.686-33.942 14.058-18.746 18.746-18.746 49.134 0 67.88 81.1 81.1 81.1 213.058 0 294.156-18.746 18.746-18.746 49.138 0 67.882s49.136 18.744 67.882 0c118.53-118.53 118.53-311.392 0-429.922-9.372-9.368-21.656-14.054-33.94-14.054zM416.006 0c-8.328 0-16.512 3.25-22.634 9.374l-246.626 246.626h-114.746c-17.672 0-32 14.326-32 32v320c0 17.672 14.328 32 32 32h114.746l246.626 246.628c9.154 9.154 22.916 11.89 34.874 6.936 11.958-4.952 19.754-16.622 19.754-29.564v-832c0-12.944-7.796-24.612-19.754-29.564-3.958-1.64-8.118-2.436-12.24-2.436z" />
+<glyph unicode="&#xea64;" glyph-name="volume-low2" d="M549.020 218.98c-12.286 0-24.566 4.686-33.942 14.058-18.746 18.746-18.746 49.134 0 67.88 81.1 81.1 81.1 213.058 0 294.156-18.746 18.746-18.746 49.138 0 67.882s49.136 18.744 67.882 0c118.53-118.53 118.53-311.392 0-429.922-9.372-9.368-21.656-14.054-33.94-14.054zM416.006 0c-8.328 0-16.512 3.25-22.634 9.374l-246.626 246.626h-114.746c-17.672 0-32 14.326-32 32v320c0 17.672 14.328 32 32 32h114.746l246.626 246.628c9.154 9.154 22.916 11.89 34.874 6.936 11.958-4.952 19.754-16.622 19.754-29.564v-832c0-12.944-7.796-24.612-19.754-29.564-3.958-1.64-8.118-2.436-12.24-2.436z" />
+<glyph unicode="&#xea65;" glyph-name="volume-mute2" d="M416.006 0c-8.328 0-16.512 3.25-22.634 9.374l-246.626 246.626h-114.746c-17.672 0-32 14.326-32 32v320c0 17.672 14.328 32 32 32h114.746l246.626 246.628c9.154 9.154 22.916 11.89 34.874 6.936 11.958-4.952 19.754-16.622 19.754-29.564v-832c0-12.944-7.796-24.612-19.754-29.564-3.958-1.64-8.118-2.436-12.24-2.436z" />
+<glyph unicode="&#xea66;" glyph-name="volume-mute22" d="M960 340.852v-84.852h-84.852l-107.148 107.148-107.148-107.148h-84.852v84.852l107.148 107.148-107.148 107.148v84.852h84.852l107.148-107.148 107.148 107.148h84.852v-84.852l-107.148-107.148 107.148-107.148zM416.006 0c-8.328 0-16.512 3.25-22.634 9.374l-246.626 246.626h-114.746c-17.672 0-32 14.326-32 32v320c0 17.672 14.328 32 32 32h114.746l246.626 246.628c9.154 9.154 22.916 11.89 34.874 6.936 11.958-4.952 19.754-16.622 19.754-29.564v-832c0-12.944-7.796-24.612-19.754-29.564-3.958-1.64-8.118-2.436-12.24-2.436z" />
+<glyph unicode="&#xea67;" glyph-name="volume-increase" d="M1024 384h-192v-192h-128v192h-192v128h192v192h128v-192h192v-128zM416.006 0c-8.328 0-16.512 3.25-22.634 9.374l-246.626 246.626h-114.746c-17.672 0-32 14.326-32 32v320c0 17.672 14.328 32 32 32h114.746l246.626 246.628c9.154 9.154 22.916 11.89 34.874 6.936 11.958-4.952 19.754-16.622 19.754-29.564v-832c0-12.944-7.796-24.612-19.754-29.564-3.958-1.64-8.118-2.436-12.24-2.436z" />
+<glyph unicode="&#xea68;" glyph-name="volume-decrease" d="M512 512h512v-128h-512v128zM416.006 0c-8.328 0-16.512 3.25-22.634 9.374l-246.626 246.626h-114.746c-17.672 0-32 14.326-32 32v320c0 17.672 14.328 32 32 32h114.746l246.626 246.628c9.154 9.154 22.916 11.89 34.874 6.936 11.958-4.952 19.754-16.622 19.754-29.564v-832c0-12.944-7.796-24.612-19.754-29.564-3.958-1.64-8.118-2.436-12.24-2.436z" />
+<glyph unicode="&#xea69;" glyph-name="loop" d="M128 640h640v-192l256 256-256 256v-192h-768v-384h128zM896 256h-640v192l-256-256 256-256v192h768v384h-128z" />
+<glyph unicode="&#xea6a;" glyph-name="loop2" d="M889.68 793.68c-93.608 102.216-228.154 166.32-377.68 166.32-282.77 0-512-229.23-512-512h96c0 229.75 186.25 416 416 416 123.020 0 233.542-53.418 309.696-138.306l-149.696-149.694h352v352l-134.32-134.32zM928 448c0-229.75-186.25-416-416-416-123.020 0-233.542 53.418-309.694 138.306l149.694 149.694h-352v-352l134.32 134.32c93.608-102.216 228.154-166.32 377.68-166.32 282.77 0 512 229.23 512 512h-96z" />
+<glyph unicode="&#xea6b;" glyph-name="infinite" d="M783.988 207.988c-64.104 0-124.372 24.96-169.7 70.288l-102.288 102.282-102.276-102.27c-45.332-45.336-105.6-70.3-169.706-70.3-64.118 0-124.39 24.964-169.722 70.3-45.332 45.334-70.296 105.604-70.296 169.712s24.964 124.38 70.296 169.714c45.334 45.332 105.608 70.296 169.714 70.296 64.108 0 124.38-24.964 169.712-70.296l102.278-102.276 102.276 102.276c45.332 45.332 105.604 70.298 169.712 70.298 64.112 0 124.384-24.966 169.71-70.298 45.338-45.334 70.302-105.606 70.302-169.714 0-64.112-24.964-124.382-70.3-169.71-45.326-45.336-105.598-70.302-169.712-70.302zM681.72 345.712c27.322-27.31 63.64-42.354 102.268-42.352 38.634 0 74.958 15.044 102.276 42.362 27.316 27.322 42.364 63.644 42.364 102.278s-15.046 74.956-42.364 102.274c-27.32 27.318-63.64 42.364-102.276 42.364-38.632 0-74.956-15.044-102.278-42.364l-102.268-102.274 102.278-102.288zM240.012 592.638c-38.634 0-74.956-15.044-102.274-42.364-27.32-27.318-42.364-63.64-42.364-102.274 0-38.632 15.044-74.954 42.364-102.276 27.32-27.316 63.642-42.364 102.274-42.364 38.634 0 74.956 15.044 102.272 42.362l102.276 102.278-102.276 102.274c-27.318 27.32-63.64 42.366-102.272 42.364v0z" />
+<glyph unicode="&#xea6c;" glyph-name="shuffle" d="M768 256h-101.49l-160 160 160 160h101.49v-160l224 224-224 224v-160h-128c-16.974 0-33.252-6.744-45.254-18.746l-178.746-178.744-178.746 178.746c-12 12-28.28 18.744-45.254 18.744h-192v-128h165.49l160-160-160-160h-165.49v-128h192c16.974 0 33.252 6.742 45.254 18.746l178.746 178.744 178.746-178.744c12.002-12.004 28.28-18.746 45.254-18.746h128v-160l224 224-224 224v-160z" />
+<glyph unicode="&#xea6d;" glyph-name="arrow-up-left" d="M0 224l256 256 544-544 224 224-544 544 255.998 256h-735.998v-736z" />
+<glyph unicode="&#xea6e;" glyph-name="arrow-up2" d="M512 928l-480-480h288v-512h384v512h288z" />
+<glyph unicode="&#xea6f;" glyph-name="arrow-up-right" d="M288 960l256-256-544-544 224-224 544 544 256-255.998v735.998h-736z" />
+<glyph unicode="&#xea70;" glyph-name="arrow-right2" d="M992 448l-480 480v-288h-512v-384h512v-288z" />
+<glyph unicode="&#xea71;" glyph-name="arrow-down-right" d="M1024 672l-256-256-544 544-224-224 544-544-255.998-256h735.998v736z" />
+<glyph unicode="&#xea72;" glyph-name="arrow-down2" d="M512-32l480 480h-288v512h-384v-512h-288z" />
+<glyph unicode="&#xea73;" glyph-name="arrow-down-left" d="M736-64l-256 256 544 544-224 224-544-544-256 255.998v-735.998h736z" />
+<glyph unicode="&#xea74;" glyph-name="arrow-left2" d="M32 448l480-480v288h512v384h-512v288z" />
+<glyph unicode="&#xea75;" glyph-name="arrow-up-left2" d="M877.254 173.254l-530.744 530.746h229.49c35.346 0 64 28.654 64 64s-28.654 64-64 64h-384c-25.886 0-49.222-15.592-59.128-39.508-3.282-7.924-4.84-16.242-4.838-24.492h-0.034v-384c0-35.346 28.654-64 64-64s64 28.654 64 64v229.49l530.746-530.744c12.496-12.498 28.876-18.746 45.254-18.746s32.758 6.248 45.254 18.746c24.994 24.992 24.994 65.516 0 90.508z" />
+<glyph unicode="&#xea76;" glyph-name="arrow-up22" d="M877.254 557.254l-320 320c-24.992 24.994-65.514 24.994-90.508 0l-320-320c-24.994-24.994-24.994-65.516 0-90.51 24.994-24.996 65.516-24.996 90.51 0l210.744 210.746v-613.49c0-35.346 28.654-64 64-64s64 28.654 64 64v613.49l210.746-210.746c12.496-12.496 28.876-18.744 45.254-18.744s32.758 6.248 45.254 18.746c24.994 24.994 24.994 65.514 0 90.508z" />
+<glyph unicode="&#xea77;" glyph-name="arrow-up-right2" d="M237.254 82.746l530.746 530.744v-229.49c0-35.346 28.654-64 64-64s64 28.654 64 64v384c0 25.884-15.594 49.222-39.508 59.126-7.924 3.284-16.242 4.84-24.492 4.838v0.036h-384c-35.346 0-64-28.654-64-64 0-35.348 28.654-64 64-64h229.49l-530.744-530.746c-12.498-12.496-18.746-28.876-18.746-45.254s6.248-32.758 18.746-45.254c24.992-24.994 65.516-24.994 90.508 0z" />
+<glyph unicode="&#xea78;" glyph-name="arrow-right22" d="M621.254 82.746l320 320c24.994 24.992 24.994 65.516 0 90.51l-320 320c-24.994 24.992-65.516 24.992-90.51 0-24.994-24.994-24.994-65.516 0-90.51l210.746-210.746h-613.49c-35.346 0-64-28.654-64-64s28.654-64 64-64h613.49l-210.746-210.746c-12.496-12.496-18.744-28.876-18.744-45.254s6.248-32.758 18.744-45.254c24.994-24.994 65.516-24.994 90.51 0z" />
+<glyph unicode="&#xea79;" glyph-name="arrow-down-right2" d="M146.746 722.746l530.742-530.746h-229.488c-35.346 0-64-28.654-64-64s28.654-64 64-64h384c25.884 0 49.222 15.594 59.126 39.508 3.284 7.924 4.84 16.242 4.838 24.492h0.036v384c0 35.346-28.654 64-64 64-35.348 0-64-28.654-64-64v-229.49l-530.746 530.744c-12.496 12.498-28.874 18.746-45.254 18.746s-32.758-6.248-45.254-18.746c-24.994-24.992-24.994-65.516 0-90.508z" />
+<glyph unicode="&#xea7a;" glyph-name="arrow-down22" d="M877.254 338.746l-320-320c-24.992-24.994-65.514-24.994-90.508 0l-320 320c-24.994 24.994-24.994 65.516 0 90.51 24.994 24.996 65.516 24.996 90.51 0l210.744-210.746v613.49c0 35.346 28.654 64 64 64s64-28.654 64-64v-613.49l210.746 210.746c12.496 12.496 28.876 18.744 45.254 18.744s32.758-6.248 45.254-18.746c24.994-24.994 24.994-65.514 0-90.508z" />
+<glyph unicode="&#xea7b;" glyph-name="arrow-down-left2" d="M786.744 813.256l-530.744-530.744v229.49c0 35.346-28.654 64-64 64s-64-28.654-64-64v-384.002c0-25.886 15.592-49.222 39.508-59.128 7.924-3.282 16.242-4.84 24.492-4.836v-0.036l384 0.002c35.344 0 64 28.654 64 63.998 0 35.348-28.656 64-64 64h-229.49l530.744 530.746c12.496 12.496 18.746 28.876 18.746 45.256 0 16.376-6.25 32.758-18.746 45.254-24.992 24.992-65.518 24.992-90.51 0v0z" />
+<glyph unicode="&#xea7c;" glyph-name="arrow-left22" d="M402.746 82.746l-320 320c-24.994 24.992-24.994 65.516 0 90.51l320 320c24.994 24.992 65.516 24.992 90.51 0 24.994-24.994 24.994-65.516 0-90.51l-210.746-210.746h613.49c35.346 0 64-28.654 64-64s-28.654-64-64-64h-613.49l210.746-210.746c12.496-12.496 18.744-28.876 18.744-45.254s-6.248-32.758-18.744-45.254c-24.994-24.994-65.516-24.994-90.51 0z" />
+<glyph unicode="&#xea7d;" glyph-name="circle-up" d="M0 448c0-282.77 229.23-512 512-512s512 229.23 512 512-229.23 512-512 512-512-229.23-512-512zM928 448c0-229.75-186.25-416-416-416s-416 186.25-416 416 186.25 416 416 416 416-186.25 416-416zM706.744 290.744l90.512 90.512-285.256 285.254-285.254-285.256 90.508-90.508 194.746 194.744z" />
+<glyph unicode="&#xea7e;" glyph-name="circle-right" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416zM354.744 253.256l90.512-90.512 285.254 285.256-285.256 285.254-90.508-90.508 194.744-194.746z" />
+<glyph unicode="&#xea7f;" glyph-name="circle-down" d="M1024 448c0 282.77-229.23 512-512 512s-512-229.23-512-512 229.23-512 512-512 512 229.23 512 512zM96 448c0 229.75 186.25 416 416 416s416-186.25 416-416-186.25-416-416-416-416 186.25-416 416zM317.256 605.256l-90.512-90.512 285.256-285.254 285.254 285.256-90.508 90.508-194.746-194.744z" />
+<glyph unicode="&#xea80;" glyph-name="circle-left" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512-512-229.23-512-512 229.23-512 512-512zM512 864c229.75 0 416-186.25 416-416s-186.25-416-416-416-416 186.25-416 416 186.25 416 416 416zM669.256 642.744l-90.512 90.512-285.254-285.256 285.256-285.254 90.508 90.508-194.744 194.746z" />
+<glyph unicode="&#xea81;" glyph-name="tab" d="M960 960h64v-512h-64v512zM0 448h64v-512h-64v512zM320 256h704v-128h-704v-160l-224 224 224 224v-160zM704 640h-704v128h704v160l224-224-224-224z" />
+<glyph unicode="&#xea82;" glyph-name="move-up" d="M704 448v-384h64v384h160l-192 192-192-192zM64 768h96v-64h-96v64zM192 768h96v-64h-96v64zM320 768h64v-96h-64v96zM64 544h64v-96h-64v96zM160 512h96v-64h-96v64zM288 512h96v-64h-96v64zM64 672h64v-96h-64v96zM320 640h64v-96h-64v96zM320 256v-192h-192v192h192zM384 320h-320v-320h320v320z" />
+<glyph unicode="&#xea83;" glyph-name="move-down" d="M768 256v384h-64v-384h-160l192-192 192 192zM320 704v-192h-192v192h192zM384 768h-320v-320h320v320zM64 320h96v-64h-96v64zM192 320h96v-64h-96v64zM320 320h64v-96h-64v96zM64 96h64v-96h-64v96zM160 64h96v-64h-96v64zM288 64h96v-64h-96v64zM64 224h64v-96h-64v96zM320 192h64v-96h-64v96z" />
+<glyph unicode="&#xea84;" glyph-name="sort-alpha-asc" d="M320 192v768h-128v-768h-160l224-224 224 224h-160zM928-64h-256c-11.8 0-22.644 6.496-28.214 16.9-5.566 10.404-4.958 23.030 1.59 32.85l222.832 334.25h-196.208c-17.672 0-32 14.328-32 32s14.328 32 32 32h256c11.8 0 22.644-6.496 28.214-16.9 5.566-10.404 4.958-23.030-1.59-32.85l-222.83-334.25h196.206c17.672 0 32-14.328 32-32s-14.328-32-32-32zM1020.622 558.314l-192.002 384c-5.42 10.842-16.502 17.69-28.622 17.69-12.122 0-23.202-6.848-28.624-17.69l-191.996-384c-7.904-15.806-1.496-35.030 14.31-42.932 4.594-2.296 9.476-3.386 14.288-3.386 11.736 0 23.040 6.484 28.644 17.698l55.156 110.31h216.446l55.156-110.31c7.902-15.806 27.124-22.21 42.932-14.31 15.808 7.902 22.216 27.124 14.312 42.93zM723.778 704.004l76.22 152.446 76.224-152.446h-152.444z" />
+<glyph unicode="&#xea85;" glyph-name="sort-alpha-desc" d="M320 192v768h-128v-768h-160l224-224 224 224h-160zM928 512h-256c-11.8 0-22.644 6.496-28.214 16.9-5.566 10.406-4.958 23.030 1.59 32.85l222.832 334.25h-196.208c-17.672 0-32 14.328-32 32s14.328 32 32 32h256c11.8 0 22.644-6.496 28.214-16.9 5.566-10.406 4.958-23.030-1.59-32.85l-222.83-334.25h196.206c17.672 0 32-14.328 32-32s-14.328-32-32-32zM1020.622-17.69l-192.002 384c-5.42 10.842-16.502 17.69-28.622 17.69-12.122 0-23.202-6.848-28.624-17.69l-191.996-384c-7.904-15.806-1.496-35.030 14.31-42.932 4.594-2.296 9.476-3.386 14.288-3.386 11.736 0 23.040 6.484 28.644 17.698l55.158 110.31h216.446l55.156-110.31c7.902-15.806 27.124-22.21 42.932-14.31 15.806 7.902 22.214 27.124 14.31 42.93zM723.778 128l76.22 152.446 76.226-152.446h-152.446z" />
+<glyph unicode="&#xea86;" glyph-name="sort-numeric-asc" d="M320 192v768h-128v-768h-160l224-224 224 224h-160zM864 512c-17.674 0-32 14.328-32 32v352h-32c-17.674 0-32 14.328-32 32s14.326 32 32 32h64c17.674 0 32-14.328 32-32v-384c0-17.672-14.326-32-32-32zM928 384h-192c-17.674 0-32-14.326-32-32v-192c0-17.674 14.326-32 32-32h160v-128h-160c-17.674 0-32-14.326-32-32s14.326-32 32-32h192c17.674 0 32 14.326 32 32v384c0 17.674-14.326 32-32 32zM768 320h128v-128h-128v128z" />
+<glyph unicode="&#xea87;" glyph-name="sort-numberic-desc" d="M320 192v768h-128v-768h-160l224-224 224 224h-160zM864-64c-17.674 0-32 14.328-32 32v352h-32c-17.674 0-32 14.328-32 32s14.326 32 32 32h64c17.674 0 32-14.328 32-32v-384c0-17.672-14.326-32-32-32zM928 960h-192c-17.674 0-32-14.326-32-32v-192c0-17.674 14.326-32 32-32h160v-128h-160c-17.674 0-32-14.326-32-32s14.326-32 32-32h192c17.674 0 32 14.326 32 32v384c0 17.674-14.326 32-32 32zM768 896h128v-128h-128v128z" />
+<glyph unicode="&#xea88;" glyph-name="sort-amount-asc" d="M320 192v768h-128v-768h-160l224-224 224 224h-160zM448 384h576v-128h-576v128zM448 576h448v-128h-448v128zM448 768h320v-128h-320v128zM448 960h192v-128h-192v128z" />
+<glyph unicode="&#xea89;" glyph-name="sort-amount-desc" d="M320 192v768h-128v-768h-160l224-224 224 224h-160zM448 960h576v-128h-576v128zM448 768h448v-128h-448v128zM448 576h320v-128h-320v128zM448 384h192v-128h-192v128z" />
+<glyph unicode="&#xea8a;" glyph-name="command" d="M736 64c-88.224 0-160 71.776-160 160v96h-128v-96c0-88.224-71.776-160-160-160s-160 71.776-160 160 71.776 160 160 160h96v128h-96c-88.224 0-160 71.776-160 160s71.776 160 160 160 160-71.776 160-160v-96h128v96c0 88.224 71.776 160 160 160s160-71.776 160-160-71.776-160-160-160h-96v-128h96c88.224 0 160-71.776 160-160s-71.774-160-160-160zM640 320v-96c0-52.934 43.066-96 96-96s96 43.066 96 96-43.066 96-96 96h-96zM288 320c-52.934 0-96-43.066-96-96s43.066-96 96-96 96 43.066 96 96v96h-96zM448 384h128v128h-128v-128zM640 576h96c52.934 0 96 43.066 96 96s-43.066 96-96 96-96-43.066-96-96v-96zM288 768c-52.934 0-96-43.066-96-96s43.066-96 96-96h96v96c0 52.934-43.064 96-96 96z" />
+<glyph unicode="&#xea8b;" glyph-name="shift" d="M672 64h-320c-17.672 0-32 14.326-32 32v352h-128c-12.942 0-24.612 7.796-29.564 19.754-4.954 11.958-2.214 25.722 6.936 34.874l320 320c12.498 12.496 32.758 12.496 45.254 0l320-320c9.152-9.152 11.89-22.916 6.938-34.874s-16.62-19.754-29.564-19.754h-128v-352c0-17.674-14.326-32-32-32zM384 128h256v352c0 17.672 14.326 32 32 32h82.744l-242.744 242.746-242.744-242.746h82.744c17.672 0 32-14.328 32-32v-352z" />
+<glyph unicode="&#xea8c;" glyph-name="ctrl" d="M736.014 512c-8.908 0-17.77 3.698-24.096 10.928l-199.918 228.478-199.918-228.478c-11.636-13.3-31.856-14.65-45.154-3.010-13.3 11.638-14.648 31.854-3.010 45.154l224 256c6.076 6.944 14.854 10.928 24.082 10.928s18.006-3.984 24.082-10.928l224-256c11.638-13.3 10.292-33.516-3.010-45.154-6.070-5.312-13.582-7.918-21.058-7.918z" />
+<glyph unicode="&#xea8d;" glyph-name="opt" d="M928 128h-256c-12.646 0-24.106 7.448-29.242 19.004l-247.554 556.996h-299.204c-17.672 0-32 14.328-32 32s14.328 32 32 32h320c12.646 0 24.106-7.448 29.242-19.004l247.556-556.996h235.202c17.674 0 32-14.326 32-32s-14.326-32-32-32zM928 704h-320c-17.674 0-32 14.328-32 32s14.326 32 32 32h320c17.674 0 32-14.328 32-32s-14.326-32-32-32z" />
+<glyph unicode="&#xea8e;" glyph-name="checkbox-checked" d="M896 960h-768c-70.4 0-128-57.6-128-128v-768c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v768c0 70.4-57.6 128-128 128zM448 165.49l-237.254 237.256 90.51 90.508 146.744-146.744 306.746 306.746 90.508-90.51-397.254-397.256z" />
+<glyph unicode="&#xea8f;" glyph-name="checkbox-unchecked" d="M896 960h-768c-70.4 0-128-57.6-128-128v-768c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v768c0 70.4-57.6 128-128 128zM896 64h-768v768h768v-768z" />
+<glyph unicode="&#xea90;" glyph-name="radio-checked" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 64c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384s-171.922-384-384-384zM320 448c0 106.039 85.961 192 192 192s192-85.961 192-192c0-106.039-85.961-192-192-192s-192 85.961-192 192z" />
+<glyph unicode="&#xea91;" glyph-name="radio-checked2" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 320c-70.692 0-128 57.306-128 128 0 70.692 57.308 128 128 128 70.694 0 128-57.308 128-128 0-70.694-57.306-128-128-128z" />
+<glyph unicode="&#xea92;" glyph-name="radio-unchecked" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 64c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384s-171.922-384-384-384z" />
+<glyph unicode="&#xea93;" glyph-name="crop" d="M832 704l192 192-64 64-192-192h-448v192h-128v-192h-192v-128h192v-512h512v-192h128v192h192v128h-192v448zM320 640h320l-320-320v320zM384 256l320 320v-320h-320z" />
+<glyph unicode="&#xea94;" glyph-name="make-group" d="M320 832h-128c-35.2 0-64-28.8-64-64v-128c0-35.2 28.8-64 64-64h128c35.2 0 64 28.8 64 64v128c0 35.2-28.8 64-64 64zM704 576h128c35.2 0 64 28.8 64 64v128c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-128c0-35.2 28.8-64 64-64zM704 768h128v-128h-128v128zM320 320h-128c-35.2 0-64-28.8-64-64v-128c0-35.2 28.8-64 64-64h128c35.2 0 64 28.8 64 64v128c0 35.2-28.8 64-64 64zM320 128h-128v128h128v-128zM832 320h-128c-35.2 0-64-28.8-64-64v-128c0-35.2 28.8-64 64-64h128c35.2 0 64 28.8 64 64v128c0 35.2-28.8 64-64 64zM896 448h-64c-85.476 0-165.834 33.286-226.274 93.724-60.44 60.442-93.726 140.802-93.726 226.276v64c0 70.4-57.6 128-128 128h-256c-70.4 0-128-57.6-128-128v-256c0-70.4 57.6-128 128-128h64c85.476 0 165.834-33.286 226.274-93.724 60.44-60.442 93.726-140.802 93.726-226.276v-64c0-70.4 57.6-128 128-128h256c70.4 0 128 57.6 128 128v256c0 70.4-57.6 128-128 128zM960 64c0-16.954-6.696-32.986-18.856-45.144-12.158-12.16-28.19-18.856-45.144-18.856h-256c-16.954 0-32.986 6.696-45.144 18.856-12.16 12.158-18.856 28.19-18.856 45.144v64c0 212.078-171.922 384-384 384h-64c-16.954 0-32.986 6.696-45.146 18.854-12.158 12.16-18.854 28.192-18.854 45.146v256c0 16.954 6.696 32.986 18.854 45.146 12.16 12.158 28.192 18.854 45.146 18.854h256c16.954 0 32.986-6.696 45.146-18.854 12.158-12.16 18.854-28.192 18.854-45.146v-64c0-212.078 171.922-384 384-384h64c16.954 0 32.986-6.696 45.144-18.856 12.16-12.158 18.856-28.19 18.856-45.144v-256z" />
+<glyph unicode="&#xea95;" glyph-name="ungroup" d="M384 496c0-26.4-21.6-48-48-48h-96c-26.4 0-48 21.6-48 48v96c0 26.4 21.6 48 48 48h96c26.4 0 48-21.6 48-48v-96zM704 496c0-26.4-21.6-48-48-48h-96c-26.4 0-48 21.6-48 48v96c0 26.4 21.6 48 48 48h96c26.4 0 48-21.6 48-48v-96zM384 176c0-26.4-21.6-48-48-48h-96c-26.4 0-48 21.6-48 48v96c0 26.4 21.6 48 48 48h96c26.4 0 48-21.6 48-48v-96zM704 176c0-26.4-21.6-48-48-48h-96c-26.4 0-48 21.6-48 48v96c0 26.4 21.6 48 48 48h96c26.4 0 48-21.6 48-48v-96zM912.082 800l111.918 111.916v48.084h-48.082l-111.918-111.916-111.918 111.916h-48.082v-48.084l111.918-111.916-111.918-111.916v-48.084h48.082l111.918 111.916 111.918-111.916h48.082v48.084zM0 192h64v-128h-64v128zM0 384h64v-128h-64v128zM832 512h64v-128h-64v128zM832 128h64v-128h-64v128zM832 320h64v-128h-64v128zM0 576h64v-128h-64v128zM0 768h64v-128h-64v128zM512 832h128v-64h-128v64zM320 832h128v-64h-128v64zM128 832h128v-64h-128v64zM448 0h128v-64h-128v64zM640 0h128v-64h-128v64zM256 0h128v-64h-128v64zM64 0h128v-64h-128v64z" />
+<glyph unicode="&#xea96;" glyph-name="scissors" d="M913.826 280.306c-66.684 104.204-181.078 150.064-255.51 102.434-6.428-4.116-12.334-8.804-17.744-13.982l-79.452 124.262 183.462 287.972c15.016 27.73 20.558 60.758 13.266 93.974-6.972 31.75-24.516 58.438-48.102 77.226l-12.278 7.808-217.468-340.114-217.47 340.114-12.276-7.806c-23.586-18.79-41.13-45.476-48.1-77.226-7.292-33.216-1.75-66.244 13.264-93.974l183.464-287.972-79.454-124.262c-5.41 5.178-11.316 9.868-17.744 13.982-74.432 47.63-188.826 1.77-255.51-102.434-66.68-104.2-60.398-227.286 14.032-274.914 74.43-47.632 188.824-1.77 255.508 102.432l164.286 257.87 164.288-257.872c66.684-104.202 181.078-150.064 255.508-102.432 74.428 47.63 80.71 170.716 14.030 274.914zM234.852 159.57c-30.018-46.904-68.534-69.726-94.572-75.446-0.004 0-0.004 0-0.004 0-8.49-1.868-20.294-3.010-28.324 2.128-8.898 5.694-14.804 20.748-15.8 40.276-1.616 31.644 9.642 68.836 30.888 102.034 30.014 46.906 68.53 69.726 94.562 75.444 8.496 1.866 20.308 3.010 28.336-2.126 8.898-5.694 14.802-20.75 15.798-40.272 1.618-31.65-9.64-68.84-30.884-102.038zM480 448c-17.672 0-32 14.328-32 32s14.328 32 32 32 32-14.328 32-32-14.328-32-32-32zM863.85 126.53c-0.996-19.528-6.902-34.582-15.8-40.276-8.030-5.138-19.834-3.996-28.324-2.128 0 0 0 0-0.004 0-26.040 5.718-64.554 28.542-94.572 75.446-21.244 33.198-32.502 70.388-30.884 102.038 0.996 19.522 6.9 34.578 15.798 40.272 8.028 5.136 19.84 3.992 28.336 2.126 26.034-5.716 64.548-28.538 94.562-75.444 21.246-33.198 32.502-70.39 30.888-102.034z" />
+<glyph unicode="&#xea97;" glyph-name="filter" d="M512 960c-282.77 0-512-71.634-512-160v-96l384-384v-320c0-35.346 57.306-64 128-64 70.692 0 128 28.654 128 64v320l384 384v96c0 88.366-229.23 160-512 160zM94.384 821.176c23.944 13.658 57.582 26.62 97.278 37.488 87.944 24.076 201.708 37.336 320.338 37.336 118.628 0 232.394-13.26 320.338-37.336 39.696-10.868 73.334-23.83 97.28-37.488 15.792-9.006 24.324-16.624 28.296-21.176-3.972-4.552-12.506-12.168-28.296-21.176-23.946-13.658-57.584-26.62-97.28-37.488-87.942-24.076-201.708-37.336-320.338-37.336s-232.394 13.26-320.338 37.336c-39.696 10.868-73.334 23.83-97.278 37.488-15.792 9.008-24.324 16.624-28.298 21.176 3.974 4.552 12.506 12.168 28.298 21.176z" />
+<glyph unicode="&#xea98;" glyph-name="font" d="M799.596 943.792c-90.526 0-148.62 16.208-241.848 16.208-301.284 0-441.792-171.584-441.792-345.872 0-102.678 48.64-136.458 144.564-136.458-6.758 14.864-18.914 31.080-18.914 104.034 0 204.010 77.006 263.458 175.636 267.51 0 0-80.918-793.374-315.778-888.542v-24.672h316.594l108.026 512h197.844l44.072 128h-214.908l51.944 246.19c59.446-12.156 117.542-24.316 167.532-24.316 62.148 0 118.894 18.914 149.968 162.126-37.826-12.16-78.362-16.208-122.94-16.208z" />
+<glyph unicode="&#xea99;" glyph-name="ligature" d="M768 88.178c0 0.040 0.002 0.076 0.002 0.116l-0.344 436.562-127.492-6.19h-251.93v21.494c0 81.542 5.8 162.976 17.24 194.716 7.896 21.948 22.598 41.744 43.698 58.836 20.618 16.702 41.178 25.17 61.11 25.17 16.772 0 30.702-2.878 41.402-8.554 15.026-8.562 29.716-22.964 43.67-42.818 36.95-52.504 51.99-66.454 60.094-72.376 13.804-10.094 30.512-15.212 49.658-15.212 18.668 0 34.962 6.97 48.436 20.714 13.372 13.636 20.15 30.682 20.15 50.666 0 21.452-8.916 44.204-26.502 67.622-17.184 22.888-43.708 41.742-78.834 56.032-34.322 13.964-72.94 21.044-114.778 21.044-60.716 0-116.012-14.596-164.356-43.384-48.424-28.834-85.558-68.952-110.37-119.24-22.994-46.604-21.334-134.706-22.732-214.712h-125.732v-71.402h125.598v-324.668c0-71.666-21.906-91.008-30.216-101.324-11.436-14.202-32.552-29.104-60.444-29.104h-38.654v-56.166h385.326v56.168h-6.708c-91.144 0-117.020 9.832-117.020 120.842 0 0.018 0 0.034 0 0.048l-0.038 334.206h140.204c74.404 0 91.496-3.444 95.392-4.924 4.706-1.79 10.798-4.832 13.084-9.144 0.868-1.684 5.194-25.008 5.194-82.972v-250.67c0-58.454-7.124-77.896-11.45-84.402-9.248-14.194-20.41-22.066-54.66-22.904v-56.248h293.61v55.846c-91.608 0-101.608 9.82-101.608 96.332z" />
+<glyph unicode="&#xea9a;" glyph-name="ligature2" d="M855.328 42.546c-11.734 0-83.62 13.2-88.020 29.338-10.274 39.612-11.738 82.152-11.738 130.568v540.974c0 80.686 16.138 127.632 16.138 127.632-1.468 7.334-8.804 23.472-17.604 23.472h-4.404c-4.4 0-55.746-32.276-102.692-32.276-38.14 0.002-61.89 33.746-105.902 33.746-185.106 0-271.942-150.31-271.942-363.032v-11.072c0-4.402-2.934-8.804-7.336-8.804h-60.148c-7.336 0-22.006-41.078-22.006-60.148 0-5.87 1.466-8.8 4.4-8.8h77.754c4.402 0 7.336-5.872 7.336-10.27 0-130.566-1.466-259.298-1.466-259.298 0-20.54-1.466-66.016-10.27-102.692-4.4-16.138-71.884-29.338-89.488-29.338-7.334 0-7.334-35.212 0-42.546 60.148 2.934 99.758 7.334 159.908 7.334 55.75 0 98.292-4.4 156.974-7.334 2.934 8.802 2.934 42.546-4.4 42.546-11.736 0-83.624 13.2-88.022 29.338-10.27 39.612-10.27 82.152-11.738 130.568v232.888c0 4.402 4.402 8.804 8.802 8.804h151.104c10.27 20.538 17.606 45.476 17.606 58.68 0 8.802 0 10.27-7.336 10.27h-162.84c-2.934 0-7.336 4.402-7.336 7.334v52.82c0 130.568 53.482 245.538 142.97 245.538 63.372 0 118.666-41.060 118.666-197.922 0-0.006 0-0.012 0-0.018 0.208-4.036 0.314-7.294 0.314-9.452v-436.816c0-20.54-1.47-66.016-10.27-102.692-4.404-16.138-71.884-29.338-89.492-29.338-7.336 0-7.336-35.212 0-42.546 60.15 2.934 99.762 7.334 159.912 7.334 55.746 0 98.288-4.4 156.972-7.334 2.928 8.8 2.928 42.544-4.406 42.544z" />
+<glyph unicode="&#xea9b;" glyph-name="text-height" d="M896 192h128l-160-192-160 192h128v512h-128l160 192 160-192h-128zM640 896v-256l-64 128h-192v-704h128v-64h-384v64h128v704h-192l-64-128v256z" />
+<glyph unicode="&#xea9c;" glyph-name="text-width" d="M256 64v-128l-192 160 192 160v-128h512v128l192-160-192-160v128zM832 896v-256l-64 128h-192v-448h128v-64h-384v64h128v448h-192l-64-128v256z" />
+<glyph unicode="&#xea9d;" glyph-name="font-size" d="M64 448h384v-128h-128v-384h-128v384h-128zM960 704h-251.75v-768h-136.5v768h-251.75v128h640z" />
+<glyph unicode="&#xea9e;" glyph-name="bold" d="M707.88 475.348c37.498 44.542 60.12 102.008 60.12 164.652 0 141.16-114.842 256-256 256h-320v-896h384c141.158 0 256 114.842 256 256 0 92.956-49.798 174.496-124.12 219.348zM384 768h101.5c55.968 0 101.5-57.42 101.5-128s-45.532-128-101.5-128h-101.5v256zM543 128h-159v256h159c58.45 0 106-57.42 106-128s-47.55-128-106-128z" />
+<glyph unicode="&#xea9f;" glyph-name="underline" d="M704 896h128v-416c0-159.058-143.268-288-320-288-176.73 0-320 128.942-320 288v416h128v-416c0-40.166 18.238-78.704 51.354-108.506 36.896-33.204 86.846-51.494 140.646-51.494s103.75 18.29 140.646 51.494c33.116 29.802 51.354 68.34 51.354 108.506v416zM192 128h640v-128h-640z" />
+<glyph unicode="&#xeaa0;" glyph-name="italic" d="M896 896v-64h-128l-320-768h128v-64h-448v64h128l320 768h-128v64z" />
+<glyph unicode="&#xeaa1;" glyph-name="strikethrough" d="M1024 448v-64h-234.506c27.504-38.51 42.506-82.692 42.506-128 0-70.878-36.66-139.026-100.58-186.964-59.358-44.518-137.284-69.036-219.42-69.036-82.138 0-160.062 24.518-219.42 69.036-63.92 47.938-100.58 116.086-100.58 186.964h128c0-69.382 87.926-128 192-128s192 58.618 192 128c0 69.382-87.926 128-192 128h-512v64h299.518c-2.338 1.654-4.656 3.324-6.938 5.036-63.92 47.94-100.58 116.086-100.58 186.964s36.66 139.024 100.58 186.964c59.358 44.518 137.282 69.036 219.42 69.036 82.136 0 160.062-24.518 219.42-69.036 63.92-47.94 100.58-116.086 100.58-186.964h-128c0 69.382-87.926 128-192 128s-192-58.618-192-128c0-69.382 87.926-128 192-128 78.978 0 154.054-22.678 212.482-64h299.518z" />
+<glyph unicode="&#xeaa2;" glyph-name="omega" d="M704 64h256l64 128v-256h-384v214.214c131.112 56.484 224 197.162 224 361.786 0 214.432-157.598 382.266-352 382.266-194.406 0-352-167.832-352-382.266 0-164.624 92.886-305.302 224-361.786v-214.214h-384v256l64-128h256v32.59c-187.63 66.46-320 227.402-320 415.41 0 247.424 229.23 448 512 448s512-200.576 512-448c0-188.008-132.37-348.95-320-415.41v-32.59z" />
+<glyph unicode="&#xeaa3;" glyph-name="sigma" d="M941.606 225.292l44.394 94.708h38l-64-384h-960v74.242l331.546 391.212-331.546 331.546v227h980l44-256h-34.376l-18.72 38.88c-35.318 73.364-61.904 89.12-138.904 89.12h-662l353.056-353.056-297.42-350.944h542.364c116.008 0 146.648 41.578 173.606 97.292z" />
+<glyph unicode="&#xeaa4;" glyph-name="page-break" d="M0 448h128v-64h-128zM192 448h192v-64h-192zM448 448h128v-64h-128zM640 448h192v-64h-192zM896 448h128v-64h-128zM880 960l16-448h-768l16 448h32l16-384h640l16 384zM144-64l-16 384h768l-16-384h-32l-16 320h-640l-16-320z" />
+<glyph unicode="&#xeaa5;" glyph-name="superscript" d="M768 754v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
+<glyph unicode="&#xeaa6;" glyph-name="subscript" d="M768 50v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
+<glyph unicode="&#xeaa7;" glyph-name="superscript2" d="M194.018 128l57.6 192h264.764l57.6-192h113.632l-192 640h-223.232l-192-640h113.636zM347.618 640h72.764l57.6-192h-187.964l57.6 192zM704 128l160 256 160-256h-320zM864 832h-64c-17.644 0-32 14.356-32 32s14.356 32 32 32h128c17.674 0 32 14.328 32 32s-14.326 32-32 32h-128c-52.936 0-96-43.066-96-96 0-24.568 9.288-47.002 24.524-64 17.588-19.624 43.11-32 71.476-32h64c17.644 0 32-14.356 32-32s-14.356-32-32-32h-128c-17.674 0-32-14.328-32-32s14.326-32 32-32h128c52.936 0 96 43.066 96 96 0 24.568-9.288 47.002-24.524 64-17.588 19.624-43.108 32-71.476 32z" />
+<glyph unicode="&#xeaa8;" glyph-name="subscript2" d="M194.018 128l57.6 192h264.764l57.6-192h113.632l-192 640h-223.232l-192-640h113.636zM347.618 640h72.764l57.6-192h-187.964l57.6 192zM1024 768l-160-256-160 256h320zM864 128h-64c-17.644 0-32 14.356-32 32s14.356 32 32 32h128c17.674 0 32 14.328 32 32s-14.326 32-32 32h-128c-52.936 0-96-43.066-96-96 0-24.568 9.29-47.002 24.524-64 17.588-19.624 43.112-32 71.476-32h64c17.644 0 32-14.356 32-32s-14.356-32-32-32h-128c-17.674 0-32-14.328-32-32s14.326-32 32-32h128c52.936 0 96 43.066 96 96 0 24.568-9.29 47.002-24.524 64-17.588 19.624-43.108 32-71.476 32z" />
+<glyph unicode="&#xeaa9;" glyph-name="text-color" d="M322.018 128l57.6 192h264.764l57.6-192h113.632l-191.996 640h-223.236l-192-640h113.636zM475.618 640h72.764l57.6-192h-187.964l57.6 192z" />
+<glyph unicode="&#xeaaa;" glyph-name="pagebreak" d="M256 576v384h768v-384h-64v320h-640v-320zM1024 384v-448h-768v448h64v-384h640v384zM512 512h128v-64h-128zM320 512h128v-64h-128zM704 512h128v-64h-128zM896 512h128v-64h-128zM0 672l192-192-192-192z" />
+<glyph unicode="&#xeaab;" glyph-name="clear-formatting" d="M0 64h576v-128h-576zM896 832h-302.56l-183.764-704h-132.288l183.762 704h-269.15v128h704zM929.774-64l-129.774 129.774-129.774-129.774-62.226 62.226 129.774 129.774-129.774 129.774 62.226 62.226 129.774-129.774 129.774 129.774 62.226-62.226-129.774-129.774 129.774-129.774z" />
+<glyph unicode="&#xeaac;" glyph-name="table" d="M0 768v-704h1024v704h-1024zM384 320v128h256v-128h-256zM640 256v-128h-256v128h256zM640 640v-128h-256v128h256zM320 640v-128h-256v128h256zM64 448h256v-128h-256v128zM704 448h256v-128h-256v128zM704 512v128h256v-128h-256zM64 256h256v-128h-256v128zM704 128v128h256v-128h-256z" />
+<glyph unicode="&#xeaad;" glyph-name="table2" d="M0 896v-896h1024v896h-1024zM384 320v192h256v-192h-256zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
+<glyph unicode="&#xeaae;" glyph-name="insert-template" d="M384 768h128v-64h-128zM576 768h128v-64h-128zM896 768v-256h-192v64h128v128h-64v64zM320 576h128v-64h-128zM512 576h128v-64h-128zM192 704v-128h64v-64h-128v256h192v-64zM384 384h128v-64h-128zM576 384h128v-64h-128zM896 384v-256h-192v64h128v128h-64v64zM320 192h128v-64h-128zM512 192h128v-64h-128zM192 320v-128h64v-64h-128v256h192v-64zM960 896h-896v-896h896v896zM1024 960v0-1024h-1024v1024h1024z" />
+<glyph unicode="&#xeaaf;" glyph-name="pilcrow" d="M384 960h512v-128h-128v-896h-128v896h-128v-896h-128v512c-141.384 0-256 114.616-256 256s114.616 256 256 256z" />
+<glyph unicode="&#xeab0;" glyph-name="ltr" d="M512 960c-141.384 0-256-114.616-256-256s114.616-256 256-256v-512h128v896h128v-896h128v896h128v128h-512zM0 256l256 256-256 256z" />
+<glyph unicode="&#xeab1;" glyph-name="rtl" d="M256 960c-141.384 0-256-114.616-256-256s114.616-256 256-256v-512h128v896h128v-896h128v896h128v128h-512zM1024 768l-256-256 256-256z" />
+<glyph unicode="&#xeab2;" glyph-name="section" d="M495.964-64c-49.36 0-91.116 14.406-124.104 42.82-33.224 28.614-50.068 62.038-50.068 99.344 0 18.128 6.6 33.756 19.622 46.458 13.232 12.914 29.782 19.744 47.85 19.744 18.002 0 34.194-6.41 46.826-18.542 12.472-11.972 18.796-27.824 18.796-47.104 0-11.318-1.85-23.818-5.494-37.146-3.616-13.178-4.376-19.938-4.376-23.292 0-3.682 0.924-8.076 7.774-12.756 12.76-8.824 28.066-13.084 46.876-13.084 22.576 0 42.718 7.858 61.574 24.022 18.578 15.942 27.612 32.318 27.612 50.056 0 19.736-5.27 36.826-16.12 52.242-18.336 25.758-52.878 55.954-102.612 89.668-79.858 53.454-133.070 99.766-162.58 141.52-22.89 32.684-34.476 67.89-34.476 104.704 0 37.062 12.142 73.948 36.092 109.63 20.508 30.554 50.8 58.12 90.228 82.138-21.096 22.7-36.896 44.064-47.094 63.688-12.872 24.76-19.398 50.372-19.398 76.122 0 47.814 18.91 89.16 56.206 122.89 37.32 33.76 83.86 50.878 138.322 50.878 50.086 0 92.206-14.082 125.182-41.852 33.328-28.082 50.222-60.898 50.222-97.54 0-18.656-6.986-35.364-20.766-49.66l-0.276-0.282c-7.976-7.924-22.618-17.37-47.046-17.37-19.148 0-35.934 6.272-48.54 18.136-12.558 11.794-18.93 25.918-18.93 41.966 0 6.934 1.702 17.416 5.352 32.98 1.778 7.364 2.668 14.142 2.668 20.25 0 10.338-3.726 18.272-11.724 24.966-8.282 6.93-20.108 10.302-36.142 10.302-24.868 0-45.282-7.562-62.41-23.118-17.19-15.606-25.544-34.088-25.544-56.508 0-20.156 4.568-36.762 13.58-49.362 17.112-23.938 46.796-49.79 88.22-76.836 84.17-54.588 142.902-104.672 174.518-148.826 23.35-33.12 35.152-68.34 35.152-104.792 0-36.598-11.882-73.496-35.318-109.676-20.208-31.18-50.722-59.276-90.884-83.71 22.178-23.466 37.812-44.042 47.554-62.538 12.082-22.97 18.208-48.048 18.208-74.542 0-49.664-18.926-91.862-56.244-125.422-37.34-33.554-83.866-50.566-138.288-50.566zM446.416 603.654c-48.222-28.952-71.712-62.19-71.712-101.314 0-22.756 6.498-43.13 19.86-62.278 19.936-27.926 59.27-62.054 116.804-101.288 24.358-16.586 46.36-32.712 65.592-48.060 49.060 29.504 72.956 62.366 72.956 100.178 0 20.598-8.142 42.774-24.204 65.916-16.808 24.196-52.85 55.796-107.128 93.914-28.328 19.562-52.558 37.334-72.168 52.932z" />
+<glyph unicode="&#xeab3;" glyph-name="paragraph-left" d="M0 896h1024v-128h-1024zM0 704h640v-128h-640zM0 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xeab4;" glyph-name="paragraph-center" d="M0 896h1024v-128h-1024zM192 704h640v-128h-640zM192 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xeab5;" glyph-name="paragraph-right" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xeab6;" glyph-name="paragraph-justify" d="M0 896h1024v-128h-1024zM0 704h1024v-128h-1024zM0 512h1024v-128h-1024zM0 320h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xeab7;" glyph-name="indent-increase" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM0 256v384l256-192z" />
+<glyph unicode="&#xeab8;" glyph-name="indent-decrease" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM256 640v-384l-256 192z" />
+<glyph unicode="&#xeab9;" glyph-name="share" d="M256 320c0 0 58.824 192 384 192v-192l384 256-384 256v-192c-256 0-384-159.672-384-320zM704 192h-576v384h125.876c10.094 11.918 20.912 23.334 32.488 34.18 43.964 41.19 96.562 72.652 156.114 93.82h-442.478v-640h832v268.624l-128-85.334v-55.29z" />
+<glyph unicode="&#xeaba;" glyph-name="new-tab" d="M192 896v-768h768v768h-768zM896 192h-640v640h640v-640zM128 64v672l-64 64v-800h800l-64 64h-672zM352 704l160-160-192-192 96-96 192 192 160-160v416z" />
+<glyph unicode="&#xeabb;" glyph-name="embed" d="M576 224l96-96 320 320-320 320-96-96 224-224zM448 672l-96 96-320-320 320-320 96 96-224 224z" />
+<glyph unicode="&#xeabc;" glyph-name="embed2" horiz-adv-x="1280" d="M832 224l96-96 320 320-320 320-96-96 224-224zM448 672l-96 96-320-320 320-320 96 96-224 224zM701.298 809.481l69.468-18.944-191.987-704.026-69.468 18.944 191.987 704.026z" />
+<glyph unicode="&#xeabd;" glyph-name="terminal" d="M0 896v-896h1024v896h-1024zM960 64h-896v768h896v-768zM896 768h-768v-640h768v640zM448 448h-64v-64h-64v-64h-64v64h64v64h64v64h-64v64h-64v64h64v-64h64v-64h64v-64zM704 320h-192v64h192v-64z" />
+<glyph unicode="&#xeabe;" glyph-name="share2" d="M864 256c-45.16 0-85.92-18.738-115.012-48.83l-431.004 215.502c1.314 8.252 2.016 16.706 2.016 25.328s-0.702 17.076-2.016 25.326l431.004 215.502c29.092-30.090 69.852-48.828 115.012-48.828 88.366 0 160 71.634 160 160s-71.634 160-160 160-160-71.634-160-160c0-8.622 0.704-17.076 2.016-25.326l-431.004-215.504c-29.092 30.090-69.852 48.83-115.012 48.83-88.366 0-160-71.636-160-160 0-88.368 71.634-160 160-160 45.16 0 85.92 18.738 115.012 48.828l431.004-215.502c-1.312-8.25-2.016-16.704-2.016-25.326 0-88.368 71.634-160 160-160s160 71.632 160 160c0 88.364-71.634 160-160 160z" />
+<glyph unicode="&#xeabf;" glyph-name="mail" d="M853.31 960h-682.62c-93.88 0-170.69-76.784-170.69-170.658v-682.656c0-93.876 76.81-170.686 170.69-170.686h682.622c93.938 0 170.688 76.81 170.688 170.686v682.656c0 93.874-76.75 170.658-170.69 170.658zM256 704h512c9.138 0 18.004-1.962 26.144-5.662l-282.144-329.168-282.144 329.17c8.14 3.696 17.006 5.66 26.144 5.66zM192 256v384c0 1.34 0.056 2.672 0.14 4l187.664-218.94-185.598-185.6c-1.444 5.338-2.206 10.886-2.206 16.54zM768 192h-512c-5.654 0-11.202 0.762-16.54 2.206l182.118 182.118 90.422-105.496 90.424 105.494 182.116-182.118c-5.34-1.442-10.886-2.204-16.54-2.204zM832 256c0-5.654-0.762-11.2-2.206-16.54l-185.598 185.598 187.664 218.942c0.084-1.328 0.14-2.66 0.14-4v-384z" />
+<glyph unicode="&#xeac0;" glyph-name="mail2" d="M853.342 960h-682.656c-93.874 0-170.686-76.81-170.686-170.69v-682.622c0-93.938 76.812-170.688 170.686-170.688h682.656c93.876 0 170.658 76.75 170.658 170.69v682.62c0 93.88-76.782 170.69-170.658 170.69zM853.342 832c7.988 0 15.546-2.334 22.020-6.342l-363.362-300.404-363.354 300.4c6.478 4.010 14.044 6.346 22.040 6.346h682.656zM170.686 64c-1.924 0-3.82 0.146-5.684 0.408l225.626 312.966-29.256 29.254-233.372-233.37v611.138l384-464.396 384 464.394v-611.136l-233.372 233.37-29.254-29.254 225.628-312.968c-1.858-0.26-3.746-0.406-5.662-0.406h-682.654z" />
+<glyph unicode="&#xeac1;" glyph-name="mail3" d="M853.342 960h-682.656c-93.874 0-170.686-76.81-170.686-170.69v-682.622c0-93.938 76.812-170.688 170.686-170.688h682.656c93.876 0 170.658 76.75 170.658 170.69v682.62c0 93.88-76.782 170.69-170.658 170.69zM182.628 73.374l-77.256 77.254 256 256 29.256-29.254-208-304zM153.372 761.372l29.256 29.256 329.372-265.374 329.374 265.374 29.254-29.256-358.628-422.626-358.628 422.626zM841.374 73.374l-208 304 29.254 29.254 256-256-77.254-77.254z" />
+<glyph unicode="&#xeac2;" glyph-name="mail4" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM256 704h512c9.138 0 18.004-1.962 26.144-5.662l-282.144-329.168-282.144 329.17c8.14 3.696 17.006 5.66 26.144 5.66zM192 256v384c0 1.34 0.056 2.672 0.14 4l187.664-218.942-185.598-185.598c-1.444 5.336-2.206 10.886-2.206 16.54zM768 192h-512c-5.654 0-11.202 0.762-16.54 2.208l182.118 182.118 90.422-105.498 90.424 105.494 182.116-182.12c-5.34-1.44-10.886-2.202-16.54-2.202zM832 256c0-5.654-0.762-11.2-2.206-16.54l-185.6 185.598 187.666 218.942c0.084-1.328 0.14-2.66 0.14-4v-384z" />
+<glyph unicode="&#xeac3;" glyph-name="amazon" d="M925.6 74.8c-112.2-82.8-274.6-126.8-414.6-126.8-196.2 0-372.8 72.4-506.4 193.2-10.4 9.4-1.2 22.4 11.4 15 144.2-84 322.6-134.4 506.8-134.4 124.2 0 260.8 25.8 386.6 79.2 18.8 8 34.8-12.6 16.2-26.2zM972.2 128c-14.4 18.4-94.8 8.8-131 4.4-11-1.2-12.6 8.2-2.8 15.2 64.2 45 169.4 32 181.6 17 12.4-15.2-3.2-120.6-63.4-171-9.2-7.8-18-3.6-14 6.6 13.8 33.8 44 109.4 29.6 127.8zM707.4 202.4l0.2-0.2c24.8 21.8 69.4 60.8 94.6 81.8 10 8 8.2 21.4 0.4 32.6-22.6 31.2-46.6 56.6-46.6 114.2v192c0 81.4 5.6 156-54.2 212-47.2 45.2-125.6 61.2-185.6 61.2-117.2 0-248-43.8-275.4-188.6-3-15.4 8.4-23.6 18.4-25.8l119.4-13c11.2 0.6 19.2 11.6 21.4 22.8 10.2 49.8 52 74 99 74 25.4 0 54.2-9.2 69.2-32 17.2-25.4 15-60 15-89.4v-16c-71.4-8-164.8-13.2-231.6-42.6-77.2-33.4-131.4-101.4-131.4-201.4 0-128 80.6-192 184.4-192 87.6 0 135.4 20.6 203 89.8 22.4-32.4 29.6-48.2 70.6-82.2 9.4-5 21-4.6 29.2 2.8zM583.2 502.8c0-48 1.2-88-23-130.6-19.6-34.8-50.6-56-85.2-56-47.2 0-74.8 36-74.8 89.2 0 105 94.2 124 183.2 124v-26.6z" />
+<glyph unicode="&#xeac4;" glyph-name="google" d="M522.2 521.2v-175.6h290.4c-11.8-75.4-87.8-220.8-290.4-220.8-174.8 0-317.4 144.8-317.4 323.2s142.6 323.2 317.4 323.2c99.4 0 166-42.4 204-79l139 133.8c-89.2 83.6-204.8 134-343 134-283 0-512-229-512-512s229-512 512-512c295.4 0 491.6 207.8 491.6 500.2 0 33.6-3.6 59.2-8 84.8l-483.6 0.2z" />
+<glyph unicode="&#xeac5;" glyph-name="google2" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM519.6 64c-212.2 0-384 171.8-384 384s171.8 384 384 384c103.6 0 190.4-37.8 257.2-100.4l-104.2-100.4c-28.6 27.4-78.4 59.2-153 59.2-131.2 0-238-108.6-238-242.4s107-242.4 238-242.4c152 0 209 109.2 217.8 165.6h-217.8v131.6h362.6c3.2-19.2 6-38.4 6-63.6 0.2-219.4-146.8-375.2-368.6-375.2z" />
+<glyph unicode="&#xeac6;" glyph-name="google3" d="M512 960c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512zM519.6 64c-212.2 0-384 171.8-384 384s171.8 384 384 384c103.6 0 190.4-37.8 257.2-100.4l-104.2-100.4c-28.6 27.4-78.4 59.2-153 59.2-131.2 0-238-108.6-238-242.4s107-242.4 238-242.4c152 0 209 109.2 217.8 165.6h-217.8v131.6h362.6c3.2-19.2 6-38.4 6-63.6 0.2-219.4-146.8-375.2-368.6-375.2z" />
+<glyph unicode="&#xeac7;" glyph-name="google-plus" d="M325.8 502.6v-111.8h184.8c-7.4-48-55.8-140.6-184.8-140.6-111.2 0-202 92.2-202 205.8s90.8 205.8 202 205.8c63.4 0 105.6-27 129.8-50.2l88.4 85.2c-56.8 53-130.4 85.2-218.2 85.2-180.2-0.2-325.8-145.8-325.8-326s145.6-325.8 325.8-325.8c188 0 312.8 132.2 312.8 318.4 0 21.4-2.4 37.8-5.2 54h-307.6zM1024 512h-96v96h-96v-96h-96v-96h96v-96h96v96h96z" />
+<glyph unicode="&#xeac8;" glyph-name="google-plus2" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM384 192c-141.6 0-256 114.4-256 256s114.4 256 256 256c69.2 0 127-25.2 171.6-67l-69.6-66.8c-19 18.2-52.2 39.4-102 39.4-87.4 0-158.8-72.4-158.8-161.6s71.4-161.6 158.8-161.6c101.4 0 139.4 72.8 145.2 110.4h-145.2v87.8h241.8c2.2-12.8 4-25.6 4-42.4 0-146.4-98-250.2-245.8-250.2zM896 448h-64v-64h-64v64h-64v64h64v64h64v-64h64v-64z" />
+<glyph unicode="&#xeac9;" glyph-name="google-plus3" d="M512 960c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512zM384 192c-141.6 0-256 114.4-256 256s114.4 256 256 256c69.2 0 127-25.2 171.6-67l-69.6-66.8c-19 18.2-52.2 39.4-102 39.4-87.4 0-158.8-72.4-158.8-161.6s71.4-161.6 158.8-161.6c101.4 0 139.4 72.8 145.2 110.4h-145.2v87.8h241.8c2.2-12.8 4-25.6 4-42.4 0-146.4-98-250.2-245.8-250.2zM832 448v-64h-64v64h-64v64h64v64h64v-64h64v-64h-64z" />
+<glyph unicode="&#xeaca;" glyph-name="hangouts" d="M511.8 960c-244.2 0-442.2-198-442.2-442.2 0-231.4 210.8-419 442.2-419v-162.8c268.6 136.2 442.6 355.6 442.6 581.8 0 244.2-198.4 442.2-442.6 442.2zM448 448c0-53-28.6-96-64-96v96h-128v192h192v-192zM768 448c0-53-28.6-96-64-96v96h-128v192h192v-192z" />
+<glyph unicode="&#xeacb;" glyph-name="google-drive" d="M438 320l-184.6-320h580.6l184.6 320zM992.4 384l-295.6 512h-369.6l295.6-512zM290.2 832l-290.2-502.8 184.8-320 290.2 502.8z" />
+<glyph unicode="&#xeacc;" glyph-name="facebook2" d="M608 768h160v192h-160c-123.514 0-224-100.486-224-224v-96h-128v-192h128v-512h192v512h160l32 192h-192v96c0 17.346 14.654 32 32 32z" />
+<glyph unicode="&#xeacd;" glyph-name="facebook22" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h416v448h-128v128h128v64c0 105.8 86.2 192 192 192h128v-128h-128c-35.2 0-64-28.8-64-64v-64h192l-32-128h-160v-448h288c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96z" />
+<glyph unicode="&#xeace;" glyph-name="instagram" d="M512 867.8c136.8 0 153-0.6 206.8-3 50-2.2 77-10.6 95-17.6 23.8-9.2 41-20.4 58.8-38.2 18-18 29-35 38.4-58.8 7-18 15.4-45.2 17.6-95 2.4-54 3-70.2 3-206.8s-0.6-153-3-206.8c-2.2-50-10.6-77-17.6-95-9.2-23.8-20.4-41-38.2-58.8-18-18-35-29-58.8-38.4-18-7-45.2-15.4-95-17.6-54-2.4-70.2-3-206.8-3s-153 0.6-206.8 3c-50 2.2-77 10.6-95 17.6-23.8 9.2-41 20.4-58.8 38.2-18 18-29 35-38.4 58.8-7 18-15.4 45.2-17.6 95-2.4 54-3 70.2-3 206.8s0.6 153 3 206.8c2.2 50 10.6 77 17.6 95 9.2 23.8 20.4 41 38.2 58.8 18 18 35 29 58.8 38.4 18 7 45.2 15.4 95 17.6 53.8 2.4 70 3 206.8 3zM512 960c-139 0-156.4-0.6-211-3-54.4-2.4-91.8-11.2-124.2-23.8-33.8-13.2-62.4-30.6-90.8-59.2-28.6-28.4-46-57-59.2-90.6-12.6-32.6-21.4-69.8-23.8-124.2-2.4-54.8-3-72.2-3-211.2s0.6-156.4 3-211c2.4-54.4 11.2-91.8 23.8-124.2 13.2-33.8 30.6-62.4 59.2-90.8 28.4-28.4 57-46 90.6-59 32.6-12.6 69.8-21.4 124.2-23.8 54.6-2.4 72-3 211-3s156.4 0.6 211 3c54.4 2.4 91.8 11.2 124.2 23.8 33.6 13 62.2 30.6 90.6 59s46 57 59 90.6c12.6 32.6 21.4 69.8 23.8 124.2 2.4 54.6 3 72 3 211s-0.6 156.4-3 211c-2.4 54.4-11.2 91.8-23.8 124.2-12.6 34-30 62.6-58.6 91-28.4 28.4-57 46-90.6 59-32.6 12.6-69.8 21.4-124.2 23.8-54.8 2.6-72.2 3.2-211.2 3.2v0zM512 711c-145.2 0-263-117.8-263-263s117.8-263 263-263 263 117.8 263 263c0 145.2-117.8 263-263 263zM512 277.4c-94.2 0-170.6 76.4-170.6 170.6s76.4 170.6 170.6 170.6c94.2 0 170.6-76.4 170.6-170.6s-76.4-170.6-170.6-170.6zM846.8 721.4c0-33.91-27.49-61.4-61.4-61.4s-61.4 27.49-61.4 61.4c0 33.91 27.49 61.4 61.4 61.4s61.4-27.49 61.4-61.4z" />
+<glyph unicode="&#xeacf;" glyph-name="whatsapp" d="M873 811.2c-95.8 96-223.2 148.8-359 148.8-279.6 0-507.2-227.6-507.2-507.4 0-89.4 23.4-176.8 67.8-253.6l-72-263 269 70.6c74.2-40.4 157.6-61.8 242.4-61.8h0.2c0 0 0 0 0 0 279.6 0 507.4 227.6 507.4 507.4 0 135.6-52.8 263-148.6 359zM514.2 30.4v0c-75.8 0-150 20.4-214.8 58.8l-15.4 9.2-159.6-41.8 42.6 155.6-10 16c-42.4 67-64.6 144.6-64.6 224.4 0 232.6 189.2 421.8 422 421.8 112.6 0 218.6-44 298.2-123.6 79.6-79.8 123.4-185.6 123.4-298.4-0.2-232.8-189.4-422-421.8-422zM745.4 346.4c-12.6 6.4-75 37-86.6 41.2s-20 6.4-28.6-6.4c-8.4-12.6-32.8-41.2-40.2-49.8-7.4-8.4-14.8-9.6-27.4-3.2s-53.6 19.8-102 63c-37.6 33.6-63.2 75.2-70.6 87.8s-0.8 19.6 5.6 25.8c5.8 5.6 12.6 14.8 19 22.2s8.4 12.6 12.6 21.2c4.2 8.4 2.2 15.8-1 22.2s-28.6 68.8-39 94.2c-10.2 24.8-20.8 21.4-28.6 21.8-7.4 0.4-15.8 0.4-24.2 0.4s-22.2-3.2-33.8-15.8c-11.6-12.6-44.4-43.4-44.4-105.8s45.4-122.6 51.8-131.2c6.4-8.4 89.4-136.6 216.6-191.4 30.2-13 53.8-20.8 72.2-26.8 30.4-9.6 58-8.2 79.8-5 24.4 3.6 75 30.6 85.6 60.2s10.6 55 7.4 60.2c-3 5.6-11.4 8.8-24.2 15.2z" />
+<glyph unicode="&#xead0;" glyph-name="spotify" d="M512 960c-281.6 0-512-230.4-512-512s230.4-512 512-512 512 230.4 512 512-227.8 512-512 512zM747.6 220.2c-10.2-15.4-28.2-20.4-43.6-10.2-120.4 74.2-271.4 89.6-450.6 48.6-18-5.2-33.2 7.6-38.4 23-5.2 18 7.6 33.2 23 38.4 194.6 43.6 363.6 25.6 496.6-56.4 18-7.6 20.6-28 13-43.4zM809 361c-12.8-18-35.8-25.6-53.8-12.8-138.2 84.4-348.2 110-509.4 58.8-20.4-5.2-43.6 5.2-48.6 25.6-5.2 20.4 5.2 43.6 25.6 48.6 186.8 56.4 417.2 28.2 576-69.2 15.2-7.6 23-33.2 10.2-51zM814 504.4c-163.8 97.2-437.8 107.6-594 58.8-25.6-7.6-51.2 7.6-58.8 30.8-7.6 25.6 7.6 51.2 30.8 58.8 181.8 53.8 481.2 43.6 670.8-69.2 23-12.8 30.8-43.6 18-66.6-13-17.8-43.6-25.4-66.8-12.6z" />
+<glyph unicode="&#xead1;" glyph-name="telegram" d="M512 960c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512zM763.6 609l-84-395.8c-5.8-28.2-22.8-34.8-46.4-21.8l-128 94.6-61.4-59.8c-7.2-7-12.8-12.8-25.6-12.8-16.6 0-13.8 6.2-19.4 22l-43.6 143.2-126.6 39.4c-27.4 8.4-27.6 27.2 6.2 40.6l493.2 190.4c22.4 10.2 44.2-5.4 35.6-40z" />
+<glyph unicode="&#xead2;" glyph-name="twitter2" d="M1024 733.6c-37.6-16.8-78.2-28-120.6-33 43.4 26 76.6 67.2 92.4 116.2-40.6-24-85.6-41.6-133.4-51-38.4 40.8-93 66.2-153.4 66.2-116 0-210-94-210-210 0-16.4 1.8-32.4 5.4-47.8-174.6 8.8-329.4 92.4-433 219.6-18-31-28.4-67.2-28.4-105.6 0-72.8 37-137.2 93.4-174.8-34.4 1-66.8 10.6-95.2 26.2 0-0.8 0-1.8 0-2.6 0-101.8 72.4-186.8 168.6-206-17.6-4.8-36.2-7.4-55.4-7.4-13.6 0-26.6 1.4-39.6 3.8 26.8-83.4 104.4-144.2 196.2-146-72-56.4-162.4-90-261-90-17 0-33.6 1-50.2 3 93.2-59.8 203.6-94.4 322.2-94.4 386.4 0 597.8 320.2 597.8 597.8 0 9.2-0.2 18.2-0.6 27.2 41 29.4 76.6 66.4 104.8 108.6z" />
+<glyph unicode="&#xead3;" glyph-name="vine" d="M960.8 451c-26.4-6-51.8-8.8-74.8-8.8-129.2 0-228.6 90.2-228.6 247.2 0 77 29.8 116.8 71.8 116.8 40 0 66.6-35.8 66.6-108.6 0-41.4-11-86.8-19.2-113.6 0 0 39.8-69.4 148.6-48.2 23.2 51.4 35.6 117.8 35.6 176 0 156.8-80 248.2-226.6 248.2-150.8 0-239-115.8-239-268.6 0-151.4 70.8-281.2 187.4-340.4-49-98.2-111.4-184.6-176.6-249.8-118 142.8-224.8 333.2-268.6 705h-174.2c80.6-619.2 320.4-816.4 384-854.2 35.8-21.6 66.8-20.6 99.6-2 51.6 29.2 206.2 184 292 365 36 0 79.2 4.2 122.2 14v122z" />
+<glyph unicode="&#xead4;" glyph-name="vk" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM829.4 243.2l-93.6-1.4c0 0-20.2-4-46.6 14.2-35 24-68 86.6-93.8 78.4-26-8.2-25.2-64.4-25.2-64.4s0.2-12-5.8-18.4c-6.4-7-19.2-8.4-19.2-8.4h-41.8c0 0-92.4-5.6-173.8 79.2-88.8 92.4-167.2 275.8-167.2 275.8s-4.6 12 0.4 17.8c5.6 6.6 20.6 7 20.6 7l100.2 0.6c0 0 9.4-1.6 16.2-6.6 5.6-4 8.6-11.8 8.6-11.8s16.2-41 37.6-78c41.8-72.2 61.4-88 75.6-80.4 20.6 11.2 14.4 102.2 14.4 102.2s0.4 33-10.4 47.6c-8.4 11.4-24.2 14.8-31 15.6-5.6 0.8 3.6 13.8 15.6 19.8 18 8.8 49.8 9.4 87.4 9 29.2-0.2 37.8-2.2 49.2-4.8 34.6-8.4 22.8-40.6 22.8-117.8 0-24.8-4.4-59.6 13.4-71 7.6-5 26.4-0.8 73.4 79 22.2 37.8 39 82.2 39 82.2s3.6 8 9.2 11.4c5.8 3.4 13.6 2.4 13.6 2.4l105.4 0.6c0 0 31.6 3.8 36.8-10.6 5.4-15-11.8-50-54.8-107.4-70.6-94.2-78.6-85.4-19.8-139.8 56-52 67.6-77.4 69.6-80.6 22.8-38.4-26-41.4-26-41.4z" />
+<glyph unicode="&#xead5;" glyph-name="renren" d="M425.2 949.4c-241.2-40.6-425.2-250.4-425.2-503.2 0-125.6 45.6-240.6 120.8-329.6 178.6 86.4 303.6 282 304.4 509.8v323zM598.8 949.4c241.2-40.6 425.2-250.4 425.2-503.2 0-125.6-45.6-240.6-120.8-329.6-178.6 86.4-303.6 282-304.4 509.8v323zM510.2 317.4c-31.8-131.6-126.8-244-245-318.8 72.8-39.8 156.2-62.6 245-62.6s172.2 22.8 245 62.6c-118.2 74.8-213.2 187.2-245 318.8z" />
+<glyph unicode="&#xead6;" glyph-name="sina-weibo" d="M430.2 62c-169.6-16.8-316 60-327 171.2-11 111.4 117.6 215 287 231.8 169.6 16.8 316-60 326.8-171.2 11.2-111.4-117.4-215.2-286.8-231.8zM769.2 431.4c-14.4 4.4-24.4 7.2-16.8 26.2 16.4 41.2 18 76.6 0.2 102-33.2 47.4-124.2 45-228.4 1.2 0 0-32.8-14.2-24.4 11.6 16 51.6 13.6 94.6-11.4 119.6-56.6 56.6-207-2.2-336-131.2-96.4-96.2-152.4-198.8-152.4-287.4 0-169.2 217.2-272.2 429.6-272.2 278.4 0 463.8 161.8 463.8 290.2 0 77.8-65.4 121.8-124.2 140zM954.2 741.4c-67.2 74.6-166.4 103-258 83.6v0c-21.2-4.6-34.6-25.4-30-46.4 4.6-21.2 25.2-34.6 46.4-30 65.2 13.8 135.6-6.4 183.4-59.4s60.8-125.2 40.2-188.4v0c-6.6-20.6 4.6-42.6 25.2-49.4 20.6-6.6 42.6 4.6 49.4 25.2v0.2c28.8 88.4 10.6 190-56.6 264.6zM850.8 648c-32.8 36.4-81.2 50.2-125.6 40.6-18.2-3.8-29.8-22-26-40.2 4-18.2 22-29.8 40-25.8v0c21.8 4.6 45.4-2.2 61.4-19.8 16-17.8 20.4-42 13.4-63.2v0c-5.6-17.6 4-36.8 21.8-42.6 17.8-5.6 36.8 4 42.6 21.8 14 43.4 5.2 93-27.6 129.2zM439.6 263.4c-6-10.2-19-15-29.2-10.8-10.2 4-13.2 15.6-7.4 25.4 6 9.8 18.6 14.6 28.6 10.8 10-3.6 13.6-15 8-25.4zM385.4 194.2c-16.4-26.2-51.6-37.6-78-25.6-26 11.8-33.8 42.2-17.4 67.8 16.2 25.4 50.2 36.8 76.4 25.8 26.6-11.4 35.2-41.6 19-68zM447 379.4c-80.6 21-171.8-19.2-206.8-90.2-35.8-72.4-1.2-153 80.2-179.4 84.4-27.2 184 14.6 218.6 92.6 34.2 76.6-8.4 155.2-92 177z" />
+<glyph unicode="&#xead7;" glyph-name="rss" d="M136.294 209.070c-75.196 0-136.292-61.334-136.292-136.076 0-75.154 61.1-135.802 136.292-135.802 75.466 0 136.494 60.648 136.494 135.802-0.002 74.742-61.024 136.076-136.494 136.076zM0.156 612.070v-196.258c127.784 0 247.958-49.972 338.458-140.512 90.384-90.318 140.282-211.036 140.282-339.3h197.122c-0.002 372.82-303.282 676.070-675.862 676.070zM0.388 960v-196.356c455.782 0 826.756-371.334 826.756-827.644h196.856c0 564.47-459.254 1024-1023.612 1024z" />
+<glyph unicode="&#xead8;" glyph-name="rss2" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM279 128.8c-48 0-87 38.6-87 86.6 0 47.6 39 86.8 87 86.8 48.2 0 87-39.2 87-86.8 0-48-39-86.6-87-86.6zM497.4 128c0 81.8-31.8 158.8-89.4 216.4-57.8 57.8-134.4 89.6-216 89.6v125.2c237.6 0 431.2-193.4 431.2-431.2h-125.8zM719.6 128c0 291-236.6 528-527.4 528v125.2c360 0 653-293.2 653-653.2h-125.6z" />
+<glyph unicode="&#xead9;" glyph-name="youtube" d="M1013.8 652.8c0 0-10 70.6-40.8 101.6-39 40.8-82.6 41-102.6 43.4-143.2 10.4-358.2 10.4-358.2 10.4h-0.4c0 0-215 0-358.2-10.4-20-2.4-63.6-2.6-102.6-43.4-30.8-31-40.6-101.6-40.6-101.6s-10.2-82.8-10.2-165.8v-77.6c0-82.8 10.2-165.8 10.2-165.8s10-70.6 40.6-101.6c39-40.8 90.2-39.4 113-43.8 82-7.8 348.2-10.2 348.2-10.2s215.2 0.4 358.4 10.6c20 2.4 63.6 2.6 102.6 43.4 30.8 31 40.8 101.6 40.8 101.6s10.2 82.8 10.2 165.8v77.6c-0.2 82.8-10.4 165.8-10.4 165.8zM406.2 315.2v287.8l276.6-144.4-276.6-143.4z" />
+<glyph unicode="&#xeada;" glyph-name="youtube2" horiz-adv-x="2569" d="M344.012 790.601c0.209 0.865 0.344 1.479 0.388 1.8l1.042 7.559-47.349 0.267c-42.779 0.242-55.87-0.007-57.047-1.084-0.565-0.516-15.333-56.633-41.655-158.273-12.556-48.484-23.124-87.206-23.487-86.051s-15.391 56.498-33.397 122.98c-18.006 66.482-33.104 121.243-33.55 121.692-0.623 0.623-57.98 0.9-104.417 0.502-6.735-0.056-10.477 13.11 60.021-211.133 9.759-31.041 24.371-74.997 32.469-97.679 9.333-26.141 15.989-46.323 20.534-63.173 8.038-32.067 8.319-52.163 6.565-75.625-2.026-27.101-2.321-218.438-0.342-221.638 1.512-2.449 91.223-3.589 99.712-1.268 1.358 0.372 2.265 1.691 2.87 8.928 2.119 6.219 2.286 30.969 2.286 133.744v131.281l5.742 18.112c3.756 11.849 13.201 42.995 20.989 69.22 7.789 26.222 17.21 57.619 20.938 69.771 33.834 110.319 66.14 218.831 66.994 225.011l0.693 5.056zM846.122 631.349l-0.021-6.838-1.065-0.014-0.595-188.993-0.577-183.227-14.666-14.929c-16.424-16.719-29.585-23.101-41.488-20.113-12.963 3.254-12.64-1.8-13.722 214.768l-0.998 199.347h-94.316v-6.851h-1.086v-216.289c0-231.737-0.007-231.599 11.752-254.875 9.366-18.536 23.010-27.559 46.391-30.671h0.002c30.79-4.1 64.001 9.849 94.77 39.809l13.373 13.022v-22.445c0-19.396 0.554-22.601 4.070-23.58 5.756-1.605 77.173-1.707 84.89-0.126l6.396 1.314v6.628l1.086 0.223v495.098l-94.195-1.258zM606.892 533.67c-8.935 38.341-25.68 64.115-53.233 81.939-43.281 27.999-92.718 30.957-138.586 8.291-33.425-16.515-54.951-43.914-66.071-84.083-1.326-4.786-2.298-8.812-3.033-14.815-2.83-14.184-3.163-35.351-3.889-133.951-1.121-151.928 0.616-170.003 19.643-204.51 18.664-33.848 57.403-58.661 99.572-63.782 12.696-1.54 38.43 0.858 53.23 4.961 33.632 9.326 65.864 35.906 80.118 66.078 6.158 13.033 9.875 22.096 12.115 38.651 4.175 22.617 4.47 59.175 4.47 152.375-0.002 118.875-0.379 131.862-4.337 148.847zM499.34 223.997c-7.907-6.028-21.734-8.649-32.983-6.249-8.656 1.847-20.338 15.419-23.934 27.801-4.479 15.436-4.823 229.985-0.954 272.059 6.379 21.054 24.19 32.050 43.635 26.813 15.157-4.082 22.915-13.575 27.336-33.457 3.282-14.754 3.67-33.129 2.972-141.26-0.46-71.701-0.716-106.742-3.058-125.553-2.382-11.87-6.319-15.047-13.015-20.154zM2300.389 425.863h45.57l-0.726 41.281c-0.705 37.869-1.263 42.2-6.324 52.472-7.982 16.21-19.759 23.401-38.446 23.401-22.448 0-36.678-10.849-43.388-33.141-2.858-9.486-5.863-74.685-3.707-80.308 1.205-3.144 7.724-3.705 47.021-3.705zM1995.795 519.763c-6.077 12.247-17.385 18.278-30.525 17.806-10.221-0.365-21.561-4.677-32.488-13.010l-8.14-6.177v-296.598l8.14-6.177c18.429-14.052 38.674-17.031 52.619-7.703 5.519 3.691 9.117 8.779 11.919 16.861 3.647 10.524 3.965 24.003 3.489 148.772-0.495 130.043-0.781 137.702-5.014 146.226zM2560.878 653.367c-9.080 108.842-16.303 144.165-38.751 189.544-29.729 60.101-72.692 91.788-133.876 98.747-47.309 5.379-225.315 12.97-390.044 16.631-285.188 6.338-754.057-5.858-813.939-21.173-27.673-7.077-48.426-19.11-70.022-40.604-37.844-37.662-60.391-91.679-69.452-166.396-20.692-170.606-21.134-376.727-1.188-553.515 8.577-76.041 26.243-125.443 59.41-166.159 20.694-25.406 56.352-46.998 88.26-53.442 22.385-4.523 134.42-10.798 297.605-16.668 24.306-0.874 88.667-2.379 143.030-3.344 113.301-2.012 321.627-0.821 440.719 2.519 80.127 2.249 226.201 8.172 253.5 10.282 7.677 0.593 25.469 1.728 39.537 2.523 47.277 2.67 77.353 12.568 105.596 34.76 36.553 28.718 64.857 81.795 76.815 144.037 11.314 58.894 18.887 163.773 20.422 282.851 1.284 99.491-0.426 153.175-7.621 239.409zM1425.273 692.808l-52.982-0.654-2.326-565.143-45.932-0.581c-35.525-0.488-46.307 0.044-47.167 2.326-0.616 1.626-1.356 129.020-1.672 283.153l-0.581 280.246-103.493 1.307v88.304l305.829-1.235 1.307-87.069-52.982-0.654zM1750.216 368.883v-243.035h-83.725v25.583c0 19.247-0.735 25.583-2.979 25.583-1.64 0-9.226-6.344-16.861-14.098-16.557-16.817-36.171-30.367-52.91-36.63-34.662-12.968-67.589-5.4-81.618 18.75-12.838 22.11-13.082 27.052-13.082 256.335v210.547h83.653l0.654-198.265c0.623-194.821 0.714-198.393 5.377-206.333 6.182-10.521 15.608-13.347 30.597-9.231 8.817 2.423 14.836 6.707 29.143 20.931l18.024 17.952v374.946h83.725v-243.035zM2076.757 160.59c-7.372-16.424-23.806-32.509-37.283-36.485-35.167-10.382-63.375-1.923-95.935 28.708-10.103 9.505-19.51 17.224-20.931 17.224-1.712 0-2.616-7.449-2.616-22.094v-22.094h-83.725v655.845h83.725v-106.982c0-58.84 0.786-106.982 1.744-106.982s9.789 7.807 19.624 17.298c22.629 21.841 41.548 31.399 65.557 33.213 42.811 3.24 68.327-18.794 80.018-69.117 3.647-15.696 3.998-33.625 3.998-179.078-0.002-177.178-0.021-177.918-14.175-209.457zM2430.99 257.832c-0.744-18.226-2.954-39.137-4.942-46.514-11.642-43.167-42.635-73.731-87.432-86.269-60.315-16.878-126.704 10.777-153.205 63.812-14.875 29.769-15.408 35.706-15.408 181.185 0 118.617 0.419 133.171 4.214 149.354 10.747 45.788 37.392 75.422 82.49 91.865 13.068 4.765 26.708 7.207 40.337 7.486 48.672 0.998 96.984-25.18 117.229-67.808 13.659-28.76 15.35-41.060 16.717-122.099l1.235-72.678-178.497-1.235-0.654-48.84c-0.93-68.901 3.716-90.088 22.313-102.621 15.645-10.54 39.679-9.745 52.765 1.744 12.263 10.768 15.726 22.336 16.933 56.107l1.091 29.653h86.195l-1.381-33.143z" />
+<glyph unicode="&#xeadb;" glyph-name="twitch" d="M96 960l-96-160v-736h256v-128h128l128 128h160l288 288v608h-864zM832 416l-160-160h-160l-128-128v128h-192v576h640v-416zM608 704h96v-256h-96v256zM416 704h96v-256h-96v256z" />
+<glyph unicode="&#xeadc;" glyph-name="vimeo" d="M1023.6 686c-4.6-99.6-74.2-236.2-208.8-409.4-139.2-180.8-257-271.4-353.4-271.4-59.6 0-110.2 55-151.4 165.2-27.6 101-55 202-82.6 303-30.6 110.2-63.4 165.2-98.6 165.2-7.6 0-34.4-16.2-80.4-48.2l-48.2 62c50.6 44.4 100.4 88.8 149.4 133.2 67.4 58.2 118 88.8 151.8 92 79.6 7.6 128.8-46.8 147.2-163.4 19.8-125.8 33.6-204 41.4-234.6 23-104.4 48.2-156.6 75.8-156.6 21.4 0 53.6 33.8 96.6 101.6 42.8 67.6 65.8 119.2 69 154.6 6.2 58.4-16.8 87.8-69 87.8-24.6 0-49.8-5.6-75.8-16.8 50.4 164.8 146.4 244.8 288.4 240.2 105-2.8 154.6-71 148.6-204.4z" />
+<glyph unicode="&#xeadd;" glyph-name="vimeo2" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM861.6 620c-3.2-72-53.6-170.6-151-295.8-100.6-130.8-185.8-196.2-255.4-196.2-43.2 0-79.6 39.8-109.4 119.4-20 73-39.8 146-59.8 219-22 79.6-45.8 119.4-71.2 119.4-5.6 0-25-11.6-58-34.8l-34.8 44.8c36.6 32 72.6 64.2 108 96.2 48.8 42 85.2 64.2 109.6 66.4 57.6 5.6 93-33.8 106.4-118 14.4-91 24.4-147.4 30-169.6 16.6-75.4 34.8-113 54.8-113 15.4 0 38.8 24.4 69.8 73.4s47.6 86.2 49.8 111.8c4.4 42.2-12.2 63.4-49.8 63.4-17.8 0-36-4-54.8-12.2 36.4 119 105.8 177 208.4 173.6 76-2.2 111.8-51.4 107.4-147.8z" />
+<glyph unicode="&#xeade;" glyph-name="lanyrd" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM822.4 191.2l-348.4-114c-79.6-26-87.6-21.8-123.6 89.6l-88 272.6c-21 64.6-85 238.6-95.8 272-20 62-20 65.4 97 103.4 91.6 30 95.4 29 128.6-74.4 26.8-83.2 44-150.4 71.6-235.4l75-232 239.6 78.4c47.2 15.6 63 14.8 76.4-43.4l9.6-44c11.2-51-14.6-64-42-72.8z" />
+<glyph unicode="&#xeadf;" glyph-name="flickr" d="M0 416c0 123.712 100.288 224 224 224s224-100.288 224-224c0-123.712-100.288-224-224-224s-224 100.288-224 224zM576 416c0 123.712 100.288 224 224 224s224-100.288 224-224c0-123.712-100.288-224-224-224s-224 100.288-224 224z" />
+<glyph unicode="&#xeae0;" glyph-name="flickr2" d="M800 544c-70.58 0-128-57.42-128-128s57.42-128 128-128c70.58 0 128 57.42 128 128s-57.42 128-128 128zM800 640v0c123.71 0 224-100.288 224-224 0-123.71-100.29-224-224-224s-224 100.29-224 224c0 123.712 100.29 224 224 224zM0 416c0 123.712 100.288 224 224 224s224-100.288 224-224c0-123.712-100.288-224-224-224s-224 100.288-224 224z" />
+<glyph unicode="&#xeae1;" glyph-name="flickr3" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM288 288c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zM736 288c-88.4 0-160 71.6-160 160s71.6 160 160 160c88.4 0 160-71.6 160-160s-71.6-160-160-160z" />
+<glyph unicode="&#xeae2;" glyph-name="flickr4" d="M512 960c-282.77 0-512-230.796-512-515.5s229.23-515.5 512-515.5 512 230.796 512 515.5-229.23 515.5-512 515.5zM288 288c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160c0-88.366-71.634-160-160-160zM736 288c-88.368 0-160 71.634-160 160s71.632 160 160 160 160-71.634 160-160c0-88.366-71.632-160-160-160z" />
+<glyph unicode="&#xeae3;" glyph-name="dribbble" d="M512-64c-282.4 0-512 229.6-512 512s229.6 512 512 512c282.4 0 512-229.6 512-512s-229.6-512-512-512v0zM943.8 378c-15 4.8-135.4 40.6-272.4 18.6 57.2-157.2 80.4-285.2 85-311.8 98 66.4 168 171.4 187.4 293.2v0zM682.8 44.8c-6.6 38.4-31.8 172-93.2 331.6-1-0.4-2-0.6-2.8-1-246.8-86-335.4-257-343.2-273 74.2-57.8 167.4-92.4 268.4-92.4 60.6 0 118.4 12.4 170.8 34.8v0zM187 155c10 17 130 215.6 355.4 288.6 5.6 1.8 11.4 3.6 17.2 5.2-11 24.8-23 49.8-35.4 74.2-218.2-65.4-430.2-62.6-449.4-62.4-0.2-4.4-0.2-8.8-0.2-13.4 0-112.2 42.6-214.8 112.4-292.2v0zM84 537c19.6-0.2 199.8-1 404.4 53.2-72.4 128.8-150.6 237.2-162.2 253-122.4-57.8-214-170.6-242.2-306.2v0zM409.6 872.6c12-16.2 91.6-124.4 163.2-256 155.6 58.2 221.4 146.8 229.2 158-77.2 68.6-178.8 110.2-290 110.2-35.2-0.2-69.6-4.4-102.4-12.2v0zM850.6 723.8c-9.2-12.4-82.6-106.4-244.2-172.4 10.2-20.8 20-42 29-63.4 3.2-7.6 6.4-15 9.4-22.6 145.6 18.2 290.2-11 304.6-14-1 103.2-38 198-98.8 272.4v0z" />
+<glyph unicode="&#xeae4;" glyph-name="behance" d="M297 754.8c30.2 0 57.4-2.6 82.2-8 24.8-5.2 45.8-14 63.6-26 17.6-12 31.2-28 41.2-48 9.6-19.8 14.4-44.6 14.4-74 0-31.8-7.2-58.2-21.6-79.4-14.6-21.2-35.8-38.4-64.2-52 38.8-11.2 67.4-30.8 86.6-58.6 19.2-28 28.4-61.6 28.4-101.2 0-32-6.2-59.4-18.4-82.6-12.4-23.4-29.2-42.4-49.8-57-20.8-14.8-44.8-25.6-71.6-32.6-26.6-7-54-10.6-82.4-10.6h-305.4v630h297zM279 500.4c24.6 0 45 5.8 61 17.6 16 11.6 23.6 30.8 23.6 57.2 0 14.6-2.6 26.8-7.8 36.2-5.4 9.4-12.4 16.8-21.4 22-8.8 5.4-18.8 9-30.6 11-11.4 2.2-23.4 3.2-35.6 3.2h-129.6v-147.2h140.4zM286.6 232.2c13.6 0 26.6 1.2 38.8 4 12.4 2.8 23.4 7 32.6 13.4 9.2 6.2 17 14.4 22.6 25.2 5.6 10.6 8.2 24.2 8.2 40.8 0 32.4-9.2 55.6-27.4 69.6-18.2 13.8-42.4 20.6-72.4 20.6h-150.4v-173.4h148zM725.2 234.4c18.8-18.4 45.8-27.6 81-27.6 25.2 0 47.2 6.4 65.4 19.2s29.2 26.4 33.4 40.4h110.4c-17.8-55-44.6-94-81.4-117.6-36.2-23.6-80.6-35.6-132-35.6-36 0-68.2 5.8-97.2 17.2-29 11.6-53.2 27.8-73.6 49-19.8 21.2-35.4 46.4-46.4 76-10.8 29.4-16.4 62-16.4 97.2 0 34.2 5.6 66 16.8 95.4 11.4 29.6 27 55 47.8 76.4s45.2 38.4 74 50.8c28.6 12.4 60.2 18.6 95.2 18.6 38.6 0 72.4-7.4 101.4-22.6 28.8-15 52.6-35.2 71.2-60.4s31.8-54.2 40-86.6c8.2-32.4 11-66.2 8.8-101.6h-329.4c0-35.8 12-70 31-88.2zM869 474c-14.8 16.4-40.2 25.4-70.8 25.4-20 0-36.6-3.4-49.8-10.2-13-6.8-23.6-15.2-31.8-25.2-8-10-13.6-20.8-16.8-32.2-3.2-11-5.2-21.2-5.8-30h204c-3 32-14 55.6-29 72.2zM668.4 704h255.4v-62.2h-255.4v62.2z" />
+<glyph unicode="&#xeae5;" glyph-name="behance2" d="M404.2 511.4c13 9.4 19.2 25 19.2 46.6 0 12-2 21.8-6.2 29.4-4.4 7.6-10 13.6-17.4 17.8-7.2 4.4-15.4 7.4-24.8 9-9.2 1.8-19 2.6-29 2.6h-105.4v-119.6h114c20-0.2 36.6 4.6 49.6 14.2zM422 403.4c-14.8 11.2-34.4 16.8-58.8 16.8h-122.6v-141h120.2c11.2 0 21.6 1 31.6 3.2s19 5.6 26.6 10.8c7.6 5 13.8 11.8 18.4 20.4s6.8 19.8 6.8 33.2c0 26.4-7.4 45.2-22.2 56.6zM928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM671.2 690.6h207.4v-50.6h-207.4v50.6zM541.6 273.6c-10-19-23.6-34.4-40.4-46.4-17-12-36.4-20.8-58.2-26.6-21.6-5.8-44-8.6-66.8-8.6h-248.2v511.8h241.2c24.4 0 46.6-2.2 66.8-6.4 20-4.2 37.2-11.4 51.6-21.2 14.2-9.8 25.4-22.8 33.4-39 7.8-16 11.8-36.2 11.8-60 0-25.8-5.8-47.2-17.6-64.4s-29-31.2-52.2-42.2c31.6-9 54.8-25 70.2-47.6 15.6-22.8 23.2-50.2 23.2-82.2 0.2-26.2-4.8-48.6-14.8-67.2zM959.4 352.8h-267.4c0-29.2 10-57 25.2-72 15.2-14.8 37.2-22.4 65.8-22.4 20.6 0 38.2 5.2 53.2 15.6 14.8 10.4 23.8 21.4 27.2 32.8h89.6c-14.4-44.6-36.2-76.4-66-95.6-29.4-19.2-65.4-28.8-107.2-28.8-29.2 0-55.4 4.8-79 14-23.6 9.4-43.2 22.6-59.8 39.8-16.2 17.2-28.6 37.8-37.6 61.8-8.8 23.8-13.4 50.4-13.4 79 0 27.8 4.6 53.6 13.6 77.6 9.2 24 22 44.8 38.8 62 16.8 17.4 36.8 31.2 60 41.4 23.2 10 48.8 15 77.2 15 31.4 0 58.8-6 82.4-18.4 23.4-12.2 42.6-28.6 57.8-49.2s25.8-44 32.6-70.4c6.6-26 8.8-53.4 7-82.2zM776.6 496.2c-16.2 0-29.8-2.8-40.4-8.4s-19.2-12.4-25.8-20.4c-6.6-8.2-11-16.8-13.6-26.2-2.6-9-4.2-17.2-4.6-24.4h165.6c-2.4 26-11.4 45.2-23.4 58.6-12.4 13.6-32.8 20.8-57.8 20.8z" />
+<glyph unicode="&#xeae6;" glyph-name="deviantart" d="M829 773.8v186.2h-186.2l-18.6-18.8-88-167.4-27.6-18.6h-313.6v-255.6h172.4l15.4-18.6-187.8-358.8v-186.2h186.2l18.6 18.8 88 167.4 27.6 18.6h313.6v255.6h-172.4l-15.4 18.8z" />
+<glyph unicode="&#xeae7;" glyph-name="500px" d="M253 287.2c0.2-0.6 5.6-15.2 8.6-22.6 16.8-39.8 41-75.8 71.8-106.6s66.6-55 106.6-71.8c41.4-17.4 85.2-26.4 130.4-26.4s89.2 8.8 130.4 26.4c40 16.8 75.8 41 106.6 71.8s55 66.6 71.8 106.6c17.4 41.4 26.4 85.2 26.4 130.4s-8.8 89.2-26.4 130.4c-16.8 40-41 75.8-71.8 106.6s-66.6 55-106.6 71.8c-41.4 17.4-85.2 26.4-130.4 26.4-45.8 0-91.6-9.2-132.2-26.4-32.6-13.8-87.8-49.2-120-82.6l-0.2-0.2v276h463.4c16.8 0.2 16.8 23.8 16.8 31.4 0 7.8 0 31.2-17 31.4h-501c-13.6 0-22-11.4-22-21.8v-388.2c0-12.6 15.6-21.6 30.2-24.6 28.4-6 34.8 3 41.8 12.6l1 1.2c10.6 15.8 43.6 49 44 49.4 51.6 51.6 120.6 80 194.4 80 73.4 0 142.2-28.4 193.8-80 51.8-51.8 80.4-120.4 80.4-193.2 0-73-28.4-141.8-80-193.2-50.8-50.8-122-80-195-80-49.4 0-97.2 13.2-138.2 38.2l0.2 236c0 31.4 13.6 65.8 36.6 91.6 26.2 29.6 62.2 45.8 101.6 45.8 38 0 73.6-14.4 100.2-40.6 26.2-26 40.8-60.8 40.8-97.8 0-78.8-62-140.6-141.2-140.6-15.2 0-43 6.8-44.2 7-16 4.8-22.8-17.4-25-24.8-8.6-28.2 4.4-33.8 7-34.6 25.4-8 42.2-9.4 64.2-9.4 111.8 0 202.8 91 202.8 202.8 0 111-91 201.2-202.6 201.2-54.8 0-106.2-21-144.8-58.8-36.8-36.2-57.8-84.4-57.8-132.4v-1.2c-0.2-6-0.2-147.6-0.4-194l-0.2 0.2c-21 23.2-41.8 58.8-55.6 95.2-5.4 14.2-17.6 11.8-34.2 6.6-8-2.2-30-9-25-25.2v0zM491.2 342.6c0-6.8 6.2-12.8 10-16.2l1.2-1.2c6.4-6.2 12.4-9.4 18-9.4 4.6 0 7.4 2.2 8.4 3.2 2.8 2.6 34.4 34.8 37.6 37.8l35.4-35.2c3.2-3.6 6.8-5.6 11-5.6 5.6 0 11.8 3.4 18.2 10 15.2 15.6 7.6 24 4 28l-35.8 35.8 37.4 37.6c8.2 8.8 1 18.2-6.2 25.4-10.4 10.4-20.6 13.2-27 7.2l-37.2-37.2-37.6 37.6c-2 2-4.6 3-7.2 3-5 0-11-3.4-17.6-10-11.6-11.6-14-19.6-8-26l37.6-37.4-37.4-37.4c-3.4-3.2-5-6.6-4.8-10zM573 850.2c-60 0-124-12.2-170.8-32.4-5-2-8-6-8.6-11.6-0.6-5.4 0.8-12.4 4.4-21.6 3-7.4 10.6-27.2 25.6-21.4 48 18.4 101.2 28.4 149.4 28.4 54.8 0 108-10.8 158-31.8 39.8-16.8 77.2-41.2 118-76.4 3-2.6 6.2-3.8 9.4-3.8 8 0 15.6 7.8 22.2 15.2 10.8 12.2 18.4 22.4 7.6 32.6-39 36.8-81.6 64.4-134.4 86.8-57.2 23.8-118.2 36-180.8 36zM896.4 108.8v0c-7.2 7.2-13.4 11.4-18.8 13s-10.4 0.4-14.2-3.4l-3.6-3.6c-37.2-37.2-80.6-66.4-128.8-86.8-50-21.2-103-31.8-157.6-31.8-54.8 0-107.8 10.8-157.6 31.8-48.2 20.4-91.6 49.6-128.8 86.8-38.8 38.8-68 82.2-86.8 128.8-18.4 45.6-24.4 79.8-26.4 91-0.2 1-0.4 1.8-0.4 2.4-2.6 13.2-14.8 14.2-32.2 11.4-7.2-1.2-29.4-4.6-27.4-20.4v-0.4c5.8-37 16.2-73.2 30.8-107.6 23.4-55.4 57-105.2 99.8-148s92.6-76.2 148-99.8c57.4-24.2 118.4-36.6 181.2-36.6s123.8 12.4 181.2 36.6c55.4 23.4 105.2 57 148 99.8 0 0 2.4 2.4 3.8 3.8 4.4 5.4 8.6 14.4-10.2 33z" />
+<glyph unicode="&#xeae8;" glyph-name="steam" d="M704 672c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM958.392 830.392c-87.478 87.476-229.306 87.476-316.786 0-35.578-35.578-56.684-80.146-63.322-126.392v0l-204.694-310.228c-27.506-1.41-54.776-8.416-79.966-21.016l-157.892 123.424c-36.55 28.574-89.342 22.102-117.912-14.448-28.572-36.55-22.102-89.342 14.448-117.912l155.934-121.892c-16.96-66.782 0.672-140.538 52.93-192.794 78.906-78.904 206.832-78.904 285.736 0 48.466 48.466 67.15 115.428 56.076 178.166l249.054 222.986c46.248 6.638 90.816 27.744 126.394 63.322 87.478 87.476 87.478 229.306 0 316.784zM384 57.302c-74.39 0-134.698 60.304-134.698 134.698 0 0.712 0.042 1.414 0.054 2.124l66.912-52.304c15.36-12.006 33.582-17.824 51.674-17.824 24.962 0 49.672 11.080 66.238 32.272 28.572 36.55 22.102 89.342-14.448 117.912l-63.5 49.636c8.962 1.878 18.248 2.88 27.768 2.88 74.392 0 134.698-60.304 134.698-134.698s-60.306-134.696-134.698-134.696zM800 512c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160-71.634-160-160-160z" />
+<glyph unicode="&#xeae9;" glyph-name="steam2" d="M303.922 123.99c27.144 0 53.786 13.136 69.972 37.416 25.734 38.602 15.302 90.754-23.298 116.488l-66.074 44.048c11.308 3.080 23.194 4.756 35.478 4.756 74.392 0 134.696-60.304 134.696-134.698s-60.306-134.698-134.698-134.698c-72.404 0-131.444 57.132-134.548 128.774l71.954-47.968c14.322-9.548 30.506-14.118 46.518-14.118zM853.34 960c93.876 0 170.66-76.812 170.66-170.688v-682.628c0-93.936-76.784-170.684-170.66-170.684h-682.652c-93.876 0-170.688 76.75-170.688 170.682v203.028l121.334-80.888c-11.652-63.174 6.938-130.83 55.798-179.69 78.904-78.904 206.83-78.904 285.736 0 48.468 48.466 67.15 115.43 56.076 178.166l249.056 222.988c46.248 6.638 90.816 27.744 126.394 63.322 87.476 87.476 87.476 229.306 0 316.784-87.48 87.478-229.308 87.478-316.786 0-35.578-35.578-56.684-80.146-63.322-126.392v0l-204.694-310.23c-31.848-1.632-63.378-10.764-91.726-27.392l-217.866 145.244v277.69c0 93.876 76.81 170.688 170.686 170.688h682.654zM896 672c0 88.366-71.634 160-160 160s-160-71.634-160-160 71.634-160 160-160 160 71.634 160 160zM640 672c0 53.020 42.98 96 96 96s96-42.98 96-96-42.98-96-96-96-96 42.98-96 96z" />
+<glyph unicode="&#xeaea;" glyph-name="dropbox" d="M736 928l-224-192 288-192 224 192zM512 736l-224 192-288-192 224-192zM800 544l224-192-288-160-224 192zM512 384l-288 160-224-192 288-160zM728.156 114.43l-216.156 185.278-216.158-185.278-135.842 75.468v-93.898l352-160 352 160v93.898z" />
+<glyph unicode="&#xeaeb;" glyph-name="onedrive" d="M350.868 131.612c-60.274 15.060-93.856 62.97-93.962 134.064-0.032 22.726 1.612 33.62 7.286 48.236 13.908 35.834 50.728 62.872 99.176 72.822 24.11 4.95 31.536 10.266 31.536 22.572 0 3.862 2.872 15.36 6.378 25.552 15.932 46.306 45.43 84.91 76.948 100.702 32.99 16.526 49.642 20.254 89.548 20.040 56.674-0.304 84.952-12.598 124.496-54.128l21.75-22.842 19.484 6.742c94.3 32.636 188.306-22.916 195.888-115.756l2.072-25.398 18.57-6.65c53.032-19.004 77.96-58.904 73.442-117.556-2.958-38.358-20.89-68.98-49.3-84.184l-13.356-7.146-296.822-0.57c-228.094-0.44-300.6 0.368-313.134 3.5v0zM103.218 174.034c-36.176 9.086-74.506 42.854-92.48 81.47-10.196 21.906-10.738 25.128-10.738 63.88 0 36.864 0.87 42.778 8.988 61.080 17.11 38.582 49.894 66.46 91.030 77.408 8.684 2.312 16.842 6 18.128 8.196 1.29 2.198 2.722 14.164 3.182 26.592 2.866 77.196 50.79 145.214 117.708 167.056 36.154 11.8 83.572 12.898 122.896-3.726 12.47-5.274 11.068-6.404 37.438 30.14 15.594 21.612 45.108 44.49 70.9 58.18 27.838 14.776 56.792 21.584 91.412 21.494 96.768-0.252 180.166-64.22 211.004-161.848 9.854-31.192 9.362-39.926-2.26-40.184-5.072-0.112-19.604-3.064-32.292-6.558l-23.072-6.358-21.052 22.25c-59.362 62.734-156.238 76.294-238.592 33.396-32.9-17.138-59.34-41.746-79.31-73.81-14.236-22.858-32.39-65.504-32.39-76.094 0-7.51-5.754-11.264-30.332-19.782-76.094-26.376-120.508-87.282-120.476-165.218 0.010-28.368 6.922-63.074 16.52-82.956 3.618-7.494 5.634-14.622 4.484-15.836-2.946-3.106-97.608-2.060-110.696 1.228v0z" />
+<glyph unicode="&#xeaec;" glyph-name="github" d="M512.008 947.358c-282.738 0-512.008-229.218-512.008-511.998 0-226.214 146.704-418.132 350.136-485.836 25.586-4.738 34.992 11.11 34.992 24.632 0 12.204-0.48 52.542-0.696 95.324-142.448-30.976-172.504 60.41-172.504 60.41-23.282 59.176-56.848 74.916-56.848 74.916-46.452 31.778 3.51 31.124 3.51 31.124 51.4-3.61 78.476-52.766 78.476-52.766 45.672-78.27 119.776-55.64 149.004-42.558 4.588 33.086 17.852 55.68 32.506 68.464-113.73 12.942-233.276 56.85-233.276 253.032 0 55.898 20.004 101.574 52.76 137.428-5.316 12.9-22.854 64.972 4.952 135.5 0 0 43.006 13.752 140.84-52.49 40.836 11.348 84.636 17.036 128.154 17.234 43.502-0.198 87.336-5.886 128.256-17.234 97.734 66.244 140.656 52.49 140.656 52.49 27.872-70.528 10.35-122.6 5.036-135.5 32.82-35.856 52.694-81.532 52.694-137.428 0-196.654-119.778-239.95-233.79-252.624 18.364-15.89 34.724-47.046 34.724-94.812 0-68.508-0.596-123.644-0.596-140.508 0-13.628 9.222-29.594 35.172-24.566 203.322 67.776 349.842 259.626 349.842 485.768 0 282.78-229.234 511.998-511.992 511.998z" />
+<glyph unicode="&#xeaed;" glyph-name="npm" d="M0 960v-1024h1024v1024h-1024zM832 128h-128v512h-192v-512h-320v640h640v-640z" />
+<glyph unicode="&#xeaee;" glyph-name="basecamp" d="M512 853.4c-186.8 0-330.8-156.4-412.4-309.6-46-86.2-78.2-180.6-93-277.2-1.6-11-3.2-22-4.4-33.2-0.6-6-1.2-12-1.6-18-0.6-7.6-0.2-10 3.8-16.4 12-19.4 26.2-37.4 42.2-53.6 32.8-33.6 72.6-59.4 114.8-79.4 96.2-45.4 204.8-61.8 310.4-65.4 109-3.6 221 5.4 325.2 39.4 89 29 174.8 79.6 224.2 161.4 5.4 8.8 1.6 21.8 0.6 32-1.2 12.2-2.8 24.2-4.8 36.2-3.6 23.6-8.4 46.8-14.2 70-11.6 47.2-27.4 93.6-46.6 138.2-69.6 161.6-198.4 334-381.6 369.6-20.6 4-41.6 6-62.6 6zM518.4 69.8c-114.2 0-238.6 10.2-341.4 65.2-40 21.4-80.8 52.4-100 95-5.6 12.4-3.6 17.2-1 31.8 1.8 9.4 2.6 18.6 6.8 27.4 5.8 12.2 11.8 24.2 18 36.2 21 40.6 43.6 80.8 69.8 118.6 13 18.6 26.8 37 42.8 53 11.2 11.2 24.8 23.2 40.6 27 48.4 11.6 85.4-44.4 114.8-72.6 14.2-13.6 33.2-29 54.4-26.4 14.6 1.8 27.6 13.2 38 22.6 35.4 31.8 63.8 71.2 93.2 108.2 14.6 18.2 29 36.6 44.8 54 10.6 11.8 22.2 25.2 36.4 32.8 25.4 13.8 57.8-14.6 75.4-29.2 30-25 56.6-54.2 82-83.8 24.2-28.2 47.6-56.8 68.2-87.8 31.8-48 59.4-99.2 84.6-151 5.4-11.2 7.2-18.8 9.2-31.2 1.2-6.8 3.8-14.6 2.8-21.6-1.4-9.8-8.2-20.4-13.2-28.4-12-19-28.2-35.4-46-49.2-74.6-57.8-175.6-77-267.4-85.6-37.6-3.6-75.2-5-112.8-5z" />
+<glyph unicode="&#xeaef;" glyph-name="trello" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM448 192c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v512c0 35.2 28.8 64 64 64h128c35.2 0 64-28.8 64-64v-512zM832 384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v320c0 35.2 28.8 64 64 64h128c35.2 0 64-28.8 64-64v-320z" />
+<glyph unicode="&#xeaf0;" glyph-name="wordpress" d="M128 448.008c0-148.026 88.322-275.968 216.43-336.578l-183.178 488.784c-21.308-46.508-33.252-97.982-33.252-152.206zM771.228 466.872c0 46.234-17.054 78.236-31.654 103.142-19.458 30.82-37.72 56.894-37.72 87.716 0 34.374 26.766 66.376 64.486 66.376 1.704 0 3.32-0.204 4.976-0.302-68.316 60.97-159.34 98.196-259.308 98.196-134.16 0-252.186-67.046-320.844-168.568 9.010-0.282 17.506-0.454 24.712-0.454 40.154 0 102.34 4.752 102.34 4.752 20.69 1.182 23.132-28.434 2.458-30.822 0 0-20.81-2.368-43.952-3.55l139.834-405.106 84.044 245.456-59.822 159.65c-20.688 1.184-40.278 3.55-40.278 3.55-20.702 1.192-18.272 32.002 2.438 30.822 0 0 63.4-4.752 101.134-4.752 40.146 0 102.35 4.752 102.35 4.752 20.702 1.182 23.14-28.434 2.446-30.822 0 0-20.834-2.372-43.948-3.55l138.78-402.018 38.312 124.632c16.58 51.75 29.216 88.9 29.216 120.9zM518.742 415.296l-115.226-326.058c34.416-9.858 70.794-15.238 108.488-15.238 44.716 0 87.604 7.518 127.518 21.2-1.018 1.602-1.974 3.304-2.75 5.154l-118.030 314.942zM848.962 627.428c1.652-11.91 2.588-24.686 2.588-38.458 0-37.93-7.292-80.596-29.202-133.95l-117.286-330.272c114.162 64.828 190.938 185.288 190.938 323.258 0 65.030-17.060 126.16-47.038 179.422zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 0c-247.424 0-448 200.576-448 448s200.576 448 448 448 448-200.576 448-448-200.576-448-448-448z" />
+<glyph unicode="&#xeaf1;" glyph-name="joomla" d="M266.004 683.322c32.832 32.844 86.002 32.844 118.804 0.032l7.826-7.868 101.104 101.156-7.874 7.88c-57.624 57.7-138.514 77.878-212.42 60.522-10.594 65.182-67.088 114.924-135.174 114.956-75.65 0-136.954-61.442-136.97-137.158 0-65.336 45.59-120 106.662-133.83-23.138-77.45-4.242-164.834 56.846-225.984l227.826-227.9 100.996 101.214-227.81 227.886c-32.682 32.722-32.742 86.126 0.184 119.094zM1022.712 822.842c0.016 75.762-61.318 137.158-136.984 137.158-69.234 0-126.478-51.444-135.682-118.238-77.074 22.664-163.784 3.496-224.64-57.408l-227.84-227.9 101.102-101.172 227.766 227.856c32.94 32.966 85.988 32.906 118.684 0.184 32.8-32.83 32.8-86.114-0.032-118.956l-7.794-7.836 101.010-101.248 7.858 7.928c60.458 60.566 79.678 146.756 57.612 223.638 67.15 8.834 118.94 66.364 118.94 135.994zM906.266 208.936c18.102 74.458-1.976 156.324-60.108 214.5l-227.49 227.992-101.102-101.122 227.52-228.012c32.94-32.996 32.864-86.096 0.184-118.848-32.802-32.814-86.004-32.814-118.836 0.030l-7.766 7.79-100.994-101.246 7.732-7.728c61.516-61.594 149.618-80.438 227.368-56.488 12.632-62.682 67.934-109.804 134.258-109.804 75.604 0 136.968 61.35 136.968 137.126 0 69.2-51.18 126.456-117.734 135.81zM612.344 431.316l-227.536-227.992c-32.71-32.768-86.034-32.828-118.944 0.124-32.818 32.904-32.832 86.098-0.044 118.97l7.808 7.774-101.086 101.124-7.734-7.712c-58.76-58.802-78.56-141.834-59.45-216.982-60.398-14.26-105.358-68.634-105.358-133.496-0.016-75.746 61.332-137.126 136.982-137.126 65.1 0.032 119.588 45.418 133.54 106.382 74.702-18.552 156.998 1.304 215.344 59.756l227.49 227.96-101.012 101.218z" />
+<glyph unicode="&#xeaf2;" glyph-name="ello" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM824.636 370.402c-36.798-142.716-165.358-242.402-312.63-242.402-147.282 0-275.85 99.686-312.654 242.42-6.232 24.158 8.352 48.886 32.512 55.124 3.71 0.958 7.528 1.446 11.338 1.446 20.624 0 38.628-13.972 43.788-33.976 26.512-102.748 119.042-174.51 225.014-174.51 105.978 0 198.502 71.76 225 174.51 5.152 20.006 23.15 33.982 43.766 33.982 3.822 0 7.65-0.49 11.376-1.456 11.692-3.016 21.526-10.418 27.668-20.842 6.142-10.416 7.854-22.596 4.822-34.296z" />
+<glyph unicode="&#xeaf3;" glyph-name="blogger" d="M957.796 576h-57.406c-35.166 0-65.988 29.742-68.39 64v0c0.004 182.668-147.258 320-331.19 320h-167.824c-183.812 0-332.856-148-332.986-330.666v-362.798c0-182.654 149.174-330.536 332.984-330.536h358.42c183.948 0 332.596 147.882 332.596 330.536v234.382c0 36.502-29.44 75.082-66.204 75.082zM320 704h192c35.2 0 64-28.8 64-64s-28.8-64-64-64h-192c-35.2 0-64 28.8-64 64s28.8 64 64 64zM704 192h-384c-35.2 0-64 28.8-64 64s28.8 64 64 64h384c35.2 0 64-28.8 64-64s-28.8-64-64-64z" />
+<glyph unicode="&#xeaf4;" glyph-name="blogger2" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM896 312c0-137-111.4-248-249.4-248h-268.8c-138 0-249.8 111-249.8 248v272c0 137 111.8 248 249.8 248h125.8c138 0 248.4-103 248.4-240 1.8-25.6 25-48 51.2-48h43c27.6 0 49.6-29 49.6-56.4v-175.6zM704 320c0-35.2-28.8-64-64-64h-256c-35.2 0-64 28.8-64 64v0c0 35.2 28.8 64 64 64h256c35.2 0 64-28.8 64-64v0zM576 576c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v0c0 35.2 28.8 64 64 64h128c35.2 0 64-28.8 64-64v0z" />
+<glyph unicode="&#xeaf5;" glyph-name="tumblr" d="M576.032 512l-0.002-234.184c0-59.418-0.77-93.656 5.53-110.5 6.25-16.754 21.918-34.146 38.99-44.202 22.684-13.588 48.542-20.376 77.708-20.376 51.854 0 82.478 6.848 133.742 40.54v-153.944c-43.7-20.552-81.866-32.594-117.324-40.922-35.5-8.242-73.86-12.406-115.064-12.406-46.828 0-74.456 5.886-110.41 17.656-35.958 11.868-66.66 28.806-92.020 50.54-25.45 21.922-43.022 45.208-52.848 69.832-9.826 24.636-14.716 60.414-14.716 107.244v359.1h-137.426v145.006c40.208 13.042 85.164 31.788 113.78 56.152 28.754 24.45 51.766 53.706 69.106 87.944 17.392 34.146 29.348 77.712 35.872 130.516h165.084l-0.002-255.996h255.968v-192h-255.968z" />
+<glyph unicode="&#xeaf6;" glyph-name="tumblr2" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM731.8 135.4c-30.2-14.2-57.6-24.2-82-30-24.4-5.6-51-8.6-79.4-8.6-32.4 0-51.4 4-76.2 12.2s-46 19.8-63.6 34.8c-17.6 15.2-29.6 31.2-36.4 48.2s-10.2 41.6-10.2 74v247.8h-96v100c27.8 9 60 22 79.6 38.8 19.8 16.8 35.8 37 47.6 60.6 12 23.6 20.2 53.6 24.8 90h100.4v-163.2h163.6v-126.2h-163.4v-181.2c0-41-0.6-64.6 3.8-76.2s15.2-23.6 27-30.4c15.6-9.4 33.6-14 53.6-14 35.8 0 71.4 11.6 106.8 34.8v-111.4z" />
+<glyph unicode="&#xeaf7;" glyph-name="yahoo" d="M568.2 371v0c112.6 197.6 298.6 520 349.6 589-22.4-15-56.8-22.6-88.4-29.8l-47.8 29.8c-38.4-71.6-180-303-270.2-451.2-91.4 151.4-199.6 326.2-270.2 451.2-56-12-79.2-12.6-135 0v0 0c0 0 0 0 0 0v0c110.8-166.8 288.2-484.6 348.6-589v0l-8.2-435 64.8 29.8v0.8l64.8-30.6-8 435z" />
+<glyph unicode="&#xeaf8;" glyph-name="yahoo2" d="M513.2 890.4c-181 0-352 23.8-513.2 69.6 0-361.8 0-933.2 0-1024 161.4 45.8 332.4 69.6 513.2 69.6 178.8 0 349.4-23.2 510.8-69.6 0 348.4 0 649.8 0 1024-161.4-46.4-331.8-69.6-510.8-69.6zM796.8 803l-6.2-9.8c-5.8-9.2-11-17-18.2-28-9.6-14.4-27.6-43-49.2-79.8-6-10.2-13.4-22.4-21-35.6-14.6-24.6-31-52.4-44-74.4-5.4-9.4-10.8-19-16.4-28.6-14.4-25-29.2-50.8-43.4-75.6-14.6-25.8-29-51.2-43.4-76.4v-25.4c0-35.2 0.8-73.6 2-107.8 0.6-15.6 1.2-43.4 2-72.8 0.8-35 1.6-71.2 2.6-89.6l0.2-5.6v-0.6l-6 1.6c-2.4 0.6-4.6 1.2-7 1.8-7.2 1.6-15 2.8-22.6 3.6-4.6 0.4-9.4 0.6-14.2 0.6 0 0 0 0 0 0s0 0 0 0c-4.8 0-9.6-0.2-14.2-0.6-7.6-0.8-15.4-2-22.6-3.6-2.4-0.6-4.8-1.2-7-1.8l-6-1.6v0.6l0.2 5.6c0.8 18.2 1.8 54.6 2.6 89.6 0.6 29.4 1.4 57.2 2 72.8 1.4 34.4 2 72.6 2 107.8v25.4c-14.4 25.4-28.8 50.6-43.4 76.4-14.2 25-29 50.6-43.2 75.6-5.6 9.6-11 19.2-16.4 28.6-12.8 22.2-29.4 50-44 74.4-7.8 13-15.2 25.4-21 35.6-21.6 36.8-39.6 65.2-49.2 79.8-7.2 11-12.4 18.8-18.2 28l-6.2 9.8 11.2-3.2c14.2-4 28.8-6 44.4-6s30.6 2 44.6 6l3.4 1 1.8-3c27.6-49.8 101.8-171.8 146.2-244.8 15.2-25.2 27.4-45 33.4-55.2 0 0 0 0 0 0.2 0 0 0 0 0-0.2 6 10 18.2 30 33.4 55.2 44.4 72.8 118.6 194.8 146.2 244.8l1.8 3 3.4-1c14-4 29-6 44.6-6s30.2 2 44.4 6l10.6 3.2z" />
+<glyph unicode="&#xeaf9;" glyph-name="tux" d="M567.656 223.084c-81.944-38.118-158.158-37.716-209.34-34.020-61.052 4.41-110.158 21.124-131.742 35.732-13.3 9.006-31.384 5.522-40.39-7.782-9.004-13.302-5.52-31.386 7.782-40.39 34.698-23.486 96.068-40.954 160.162-45.58 10.866-0.784 22.798-1.278 35.646-1.278 55.782 0 126.626 5.316 202.42 40.57 14.564 6.778 20.878 24.074 14.104 38.64-6.776 14.566-24.076 20.872-38.642 14.108zM890.948 266.184c2.786 252.688 28.762 730.206-454.97 691.612-477.6-38.442-350.964-542.968-358.082-711.95-6.308-89.386-35.978-198.648-77.896-309.846h129.1c13.266 47.122 23.024 93.72 27.232 138.15 7.782-5.428 16.108-10.674 24.994-15.7 14.458-8.518 26.884-19.844 40.040-31.834 30.744-28.018 65.59-59.774 133.712-63.752 4.572-0.262 9.174-0.394 13.676-0.394 68.896 0 116.014 30.154 153.878 54.382 18.14 11.612 33.818 21.64 48.564 26.452 41.91 13.12 78.532 34.296 105.904 61.252 4.276 4.208 8.242 8.538 11.962 12.948 15.246-55.878 36.118-118.758 59.288-181.504h275.65c-66.174 102.224-134.436 202.374-133.052 330.184zM124.11 403.648c0 0.016 0 0.030-0.002 0.046-4.746 82.462 34.71 151.832 88.126 154.936 53.412 3.106 100.56-61.228 105.304-143.692 0-0.014 0.004-0.030 0.004-0.044 0.256-4.446 0.368-8.846 0.37-13.206-16.924-4.256-32.192-10.436-45.872-17.63-0.052 0.612-0.092 1.216-0.152 1.83 0 0.008 0 0.018 0 0.026-4.57 46.81-29.572 82.16-55.852 78.958-26.28-3.204-43.88-43.75-39.312-90.558 0-0.010 0.004-0.018 0.004-0.026 1.992-20.408 7.868-38.636 16.042-52.444-2.034-1.604-7.784-5.812-14.406-10.656-4.97-3.634-11.020-8.058-18.314-13.43-19.882 26.094-33.506 63.58-35.94 105.89zM665.26 199.822c-1.9-43.586-58.908-84.592-111.582-101.044l-0.296-0.096c-21.9-7.102-41.428-19.6-62.104-32.83-34.732-22.224-70.646-45.208-122.522-45.208-3.404 0-6.894 0.104-10.326 0.296-47.516 2.778-69.742 23.032-97.88 48.676-14.842 13.526-30.19 27.514-49.976 39.124l-0.424 0.244c-42.706 24.104-69.212 54.082-70.908 80.194-0.842 12.98 4.938 24.218 17.182 33.4 26.636 19.972 44.478 33.022 56.284 41.658 13.11 9.588 17.068 12.48 20 15.264 2.096 1.986 4.364 4.188 6.804 6.562 24.446 23.774 65.36 63.562 128.15 63.562 38.404 0 80.898-14.8 126.17-43.902 21.324-13.878 39.882-20.286 63.38-28.4 16.156-5.578 34.468-11.902 58.992-22.404l0.396-0.164c22.88-9.404 49.896-26.564 48.66-54.932zM652.646 302.194c-4.4 2.214-8.974 4.32-13.744 6.286-22.106 9.456-39.832 15.874-54.534 20.998 8.116 15.894 13.16 35.72 13.624 57.242 0 0.010 0 0.022 0 0.030 1.126 52.374-25.288 94.896-58.996 94.976-33.71 0.078-61.95-42.314-63.076-94.686 0-0.010 0-0.018 0-0.028-0.038-1.714-0.042-3.416-0.020-5.11-20.762 9.552-41.18 16.49-61.166 20.76-0.092 1.968-0.204 3.932-0.244 5.92 0 0.016 0 0.036 0 0.050-1.938 95.412 56.602 174.39 130.754 176.402 74.15 2.014 135.828-73.7 137.772-169.11 0-0.018 0-0.038 0-0.052 0.874-43.146-10.66-82.866-30.37-113.678z" />
+<glyph unicode="&#xeafa;" glyph-name="appleinc" d="M791.498 415.908c-1.294 129.682 105.758 191.876 110.542 194.966-60.152 88.020-153.85 100.078-187.242 101.472-79.742 8.074-155.596-46.948-196.066-46.948-40.368 0-102.818 45.754-168.952 44.552-86.916-1.292-167.058-50.538-211.812-128.38-90.304-156.698-23.126-388.84 64.89-515.926 43.008-62.204 94.292-132.076 161.626-129.58 64.842 2.588 89.362 41.958 167.756 41.958s100.428-41.958 169.050-40.67c69.774 1.296 113.982 63.398 156.692 125.796 49.39 72.168 69.726 142.038 70.924 145.626-1.548 0.706-136.060 52.236-137.408 207.134zM662.562 796.478c35.738 43.358 59.86 103.512 53.28 163.522-51.478-2.096-113.878-34.29-150.81-77.55-33.142-38.376-62.148-99.626-54.374-158.436 57.466-4.484 116.128 29.204 151.904 72.464z" />
+<glyph unicode="&#xeafb;" glyph-name="finder" d="M569.226 181.744c-0.002 0.044-0.002 0.088-0.004 0.132 0.002-0.044 0.002-0.088 0.004-0.132zM570.596 145.462c-0.012 0.234-0.022 0.466-0.032 0.702 0.010-0.234 0.020-0.466 0.032-0.702zM569.814 163.688c-0.006 0.178-0.012 0.356-0.020 0.536 0.010-0.182 0.016-0.358 0.020-0.536zM960 960h-896c-35.2 0-64-28.8-64-64v-896c0-35.2 28.8-64 64-64h493.832c0.044 0 0.088-0.006 0.132-0.006 0.042 0 0.084 0.006 0.126 0.006h401.91c35.2 0 64 28.8 64 64v896c0 35.2-28.8 64-64 64zM192 736c0 17.672 14.328 32 32 32s32-14.328 32-32v-64c0-17.672-14.328-32-32-32s-32 14.328-32 32v64zM960 0h-375.058c-6.7 42.082-10.906 85.476-13.388 127.604 0.006-0.116 0.010-0.228 0.018-0.344-19.696-2.146-39.578-3.26-59.572-3.26-133.65 0-262.382 48.656-362.484 137.006-14.906 13.156-16.326 35.906-3.168 50.812 13.158 14.904 35.906 16.326 50.814 3.168 86.936-76.728 198.748-118.986 314.838-118.986 19.086 0 38.052 1.166 56.816 3.416-2.192 118.194 6.876 211.914 7.026 213.404 0.898 8.996-2.050 17.952-8.118 24.654-6.066 6.702-14.682 10.526-23.724 10.526h-95.174c1.384 34.614 5.082 93.814 14.958 160.188 18.864 126.76 51.994 225.77 96.152 287.812h400.064v-896zM800 640c-17.674 0-32 14.328-32 32v64c0 17.672 14.326 32 32 32s32-14.328 32-32v-64c0-17.672-14.326-32-32-32zM540.496 124.768c-3.646-0.192-7.298-0.336-10.956-0.454 3.658 0.116 7.31 0.264 10.956 0.454zM512 124c4.692 0 9.374 0.074 14.050 0.196-4.676-0.122-9.358-0.196-14.050-0.196zM539.074 196.798c0.784 0.044 1.568 0.084 2.352 0.132-0.782-0.048-1.568-0.088-2.352-0.132zM525.084 196.2c1.074 0.030 2.146 0.072 3.218 0.11-1.072-0.038-2.144-0.082-3.218-0.11zM877.65 311.818c-13.156 14.91-35.908 16.322-50.812 3.168-72.642-64.114-162.658-104.136-258.022-115.57 0.43-23.278 1.294-47.496 2.754-72.156 111.954 12.21 217.786 58.614 302.912 133.746 14.908 13.156 16.326 35.906 3.168 50.812zM571.498 127.252c-4.606-0.5-9.222-0.936-13.848-1.322 4.626 0.384 9.244 0.822 13.848 1.322zM555.488 125.758c-3.906-0.312-7.822-0.576-11.742-0.806 3.92 0.226 7.834 0.496 11.742 0.806z" />
+<glyph unicode="&#xeafc;" glyph-name="android" d="M896 576c-35.2 0-64-28.8-64-64v-256c0-35.2 28.8-64 64-64s64 28.8 64 64v256c0 35.2-28.8 64-64 64zM128 576c-35.2 0-64-28.8-64-64v-256c0-35.2 28.8-64 64-64s64 28.8 64 64v256c0 35.2-28.802 64-64 64zM224 224c0-53.020 42.98-96 96-96v0-128c0-35.2 28.8-64 64-64s64 28.8 64 64v128h128v-128c0-35.2 28.8-64 64-64s64 28.8 64 64v128c53.020 0 96 42.98 96 96v352h-576v-352zM798.216 639.998c-9.716 87.884-59.004 163.792-129.62 209.646l32.024 64.046c7.904 15.806 1.496 35.028-14.31 42.932s-35.030 1.496-42.932-14.312l-32.142-64.286-8.35 3.316c-28.568 9.502-59.122 14.66-90.886 14.66-31.762 0-62.316-5.158-90.888-14.656l-8.348-3.316-32.142 64.282c-7.904 15.808-27.128 22.212-42.932 14.312-15.808-7.904-22.214-27.126-14.312-42.932l32.022-64.046c-70.616-45.852-119.904-121.762-129.622-209.644v-32h574.222v31.998h-1.784zM416 704c-17.674 0-32 14.328-32 32 0 17.648 14.288 31.958 31.93 31.996 0.032 0 0.062-0.002 0.094-0.002 0.018 0 0.036 0.002 0.052 0.002 17.638-0.042 31.924-14.35 31.924-31.996 0-17.672-14.326-32-32-32zM608 704c-17.674 0-32 14.328-32 32 0 17.646 14.286 31.954 31.924 31.996 0.016 0 0.034-0.002 0.050-0.002 0.032 0 0.064 0.002 0.096 0.002 17.64-0.038 31.93-14.348 31.93-31.996 0-17.672-14.326-32-32-32z" />
+<glyph unicode="&#xeafd;" glyph-name="windows" d="M412.23 448.086c-47.708 24.518-94.086 36.958-137.88 36.958-5.956 0-11.952-0.18-17.948-0.708-55.88-4.624-106.922-19.368-139.75-30.828-8.708-3.198-17.634-6.576-26.83-10.306l-89.822-311.394c61.702 22.832 116.292 33.938 166.27 33.938 80.846 0 139.528-30.208 187.992-61.304 22.962 77.918 78.044 266.090 94.482 322.324-11.95 7.284-24.076 14.57-36.514 21.32zM528.348 368.93l-90.446-314.148c26.832-15.372 117.098-64.050 186.212-64.050 55.792 0 118.252 14.296 190.834 43.792l86.356 301.976c-58.632-18.922-114.876-28.52-167.464-28.52-95.95 0-163.114 31.098-205.492 60.95zM292.822 591.21c77.118-0.798 134.152-30.208 181.416-60.502l92.752 317.344c-19.546 11.196-70.806 39.094-107.858 48.6-24.386 5.684-50.020 8.616-77.204 8.616-51.796-0.976-108.388-13.946-172.888-39.8l-88.44-310.596c64.808 24.436 120.644 36.34 172.086 36.34 0.046-0.002 0.136-0.002 0.136-0.002zM1024 761.876c-58.814-22.832-116.208-34.466-171.028-34.466-91.686 0-159.292 31.802-203.094 62.366l-91.95-318.236c61.746-39.708 128.29-59.878 198.122-59.878 56.948 0 115.94 13.68 175.462 40.688l-0.182 2.222 3.734 0.886 88.936 306.418z" />
+<glyph unicode="&#xeafe;" glyph-name="windows8" d="M0.35 448l-0.35 312.074 384 52.144v-364.218zM448 821.518l511.872 74.482v-448h-511.872zM959.998 384l-0.126-448-511.872 72.016v375.984zM384 16.164l-383.688 52.594-0.020 315.242h383.708z" />
+<glyph unicode="&#xeaff;" glyph-name="soundcloud" d="M891.96 445.796c-18.086 0-35.348-3.52-51.064-9.856-10.506 114.358-110.29 204.060-232 204.060-29.786 0-58.682-5.63-84.318-15.164-9.96-3.702-12.578-7.52-12.578-14.916v-402.714c0-7.766 6.24-14.234 14.124-14.996 0.336-0.034 363.536-0.21 365.89-0.21 72.904 0 131.986 56.816 131.986 126.894s-59.134 126.902-132.040 126.902zM400 192h32l16 224.22-16 223.78h-32l-16-223.78zM304 192h-32l-16 162.75 16 157.25h32l16-160zM144 192h32l16 128-16 128h-32l-16-128zM16 256h32l16 64-16 64h-32l-16-64z" />
+<glyph unicode="&#xeb00;" glyph-name="soundcloud2" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM176 256h-32l-16 96 16 96h32l16-96-16-96zM304 256h-32l-16 128 16 128h32l16-128-16-128zM432 256h-32l-16 192 16 192h32l16-192-16-192zM825.2 256c-2 0-301.2 0.2-301.4 0.2-6.4 0.6-11.6 6.2-11.8 12.8v345.2c0 6.4 2.2 9.6 10.4 12.8 21.2 8.2 45 13 69.6 13 100.2 0 182.4-76.8 191.2-175 13 5.4 27.2 8.4 42 8.4 60 0 108.8-48.8 108.8-108.8s-48.8-108.6-108.8-108.6z" />
+<glyph unicode="&#xeb01;" glyph-name="skype" d="M425.6 922.6c-1.6 1-3.4 1.8-5 2.6-1.8-0.4-3.4-0.6-5.2-1l10.2-1.6zM36.8 539c-0.4-1.8-0.6-3.6-0.8-5.2 1-1.6 1.6-3.2 2.6-4.8l-1.8 10zM986.8 357.4c0.4 1.8 0.6 3.6 1 5.4-1 1.6-1.6 3.2-2.6 4.8l1.6-10.2zM592-23c1.6-1 3.4-1.8 5-2.6 1.8 0.4 3.6 0.6 5.4 0.8l-10.4 1.8zM987.8 362.8c-0.4-1.8-0.6-3.6-1-5.4l-1.8 10.4c1-1.8 1.8-3.4 2.8-5 5.2 28.8 8 58.2 8 87.6 0 65.2-12.8 128.6-38 188.2-24.4 57.6-59.2 109.4-103.6 153.8s-96.2 79.2-153.6 103.6c-59.6 25.2-123 38-188.2 38-30.8 0-61.6-2.8-91.6-8.6 0 0-0.2 0-0.2 0 1.6-0.8 3.4-1.6 5-2.6l-10.2 1.6c1.8 0.4 3.4 0.6 5.2 1-41.2 21.8-87.4 33.6-134.2 33.6-76.4 0-148.4-29.8-202.4-83.8s-83.8-126-83.8-202.4c0-48.6 12.6-96.6 36-138.8 0.4 1.8 0.6 3.6 0.8 5.2l1.8-10.2c-1 1.6-1.8 3.2-2.6 4.8-4.8-27.4-7.2-55.4-7.2-83.4 0-65.2 12.8-128.6 38-188.2 24.4-57.6 59.2-109.2 103.6-153.6s96.2-79.2 153.8-103.6c59.6-25.2 123-38 188.2-38 28.4 0 56.8 2.6 84.6 7.6-1.6 1-3.2 1.8-5 2.6l10.4-1.8c-1.8-0.4-3.6-0.6-5.4-0.8 42.8-24.2 91.4-37.2 140.8-37.2 76.4 0 148.4 29.8 202.4 83.8s83.8 126 83.8 202.4c-0.2 48.6-12.8 96.6-36.4 139.2zM514.2 154.2c-171.8 0-248.6 84.4-248.6 147.8 0 32.4 24 55.2 57 55.2 73.6 0 54.4-105.6 191.6-105.6 70.2 0 109 38.2 109 77.2 0 23.4-11.6 49.4-57.8 60.8l-152.8 38.2c-123 30.8-145.4 97.4-145.4 160 0 129.8 122.2 178.6 237 178.6 105.8 0 230.4-58.4 230.4-136.4 0-33.4-29-52.8-62-52.8-62.8 0-51.2 86.8-177.6 86.8-62.8 0-97.4-28.4-97.4-69s49.6-53.6 92.6-63.4l113.2-25.2c123.8-27.6 155.2-100 155.2-168 0-105.4-81-184.2-244.4-184.2z" />
+<glyph unicode="&#xeb02;" glyph-name="reddit" d="M256 320c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM640 320c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM643.112 183.222c16.482 12.986 40.376 10.154 53.364-6.332s10.152-40.378-6.334-53.366c-45.896-36.158-115.822-59.524-178.142-59.524-62.322 0-132.248 23.366-178.144 59.522-16.486 12.99-19.32 36.882-6.332 53.368 12.99 16.482 36.882 19.318 53.366 6.332 26.422-20.818 78.722-43.222 131.11-43.222s104.688 22.404 131.112 43.222zM1024 448c0 70.692-57.308 128-128 128-48.116 0-89.992-26.57-111.852-65.82-65.792 35.994-145.952 59.246-233.28 64.608l76.382 171.526 146.194-42.2c13.152-37.342 48.718-64.114 90.556-64.114 53.020 0 96 42.98 96 96s-42.98 96-96 96c-36.56 0-68.342-20.442-84.554-50.514l-162.906 47.024c-18.224 5.258-37.538-3.722-45.252-21.052l-103.77-233.026c-85.138-5.996-163.262-29.022-227.636-64.236-21.864 39.25-63.766 65.804-111.882 65.804-70.692 0-128-57.308-128-128 0-52.312 31.402-97.254 76.372-117.102-8.070-24.028-12.372-49.104-12.372-74.898 0-176.73 200.576-320 448-320 247.422 0 448 143.27 448 320 0 25.792-4.3 50.862-12.368 74.886 44.97 19.85 76.368 64.802 76.368 117.114zM864 772c19.882 0 36-16.118 36-36s-16.118-36-36-36-36 16.118-36 36 16.118 36 36 36zM64 448c0 35.29 28.71 64 64 64 25.508 0 47.572-15.004 57.846-36.646-33.448-25.366-61.166-54.626-81.666-86.738-23.524 9.47-40.18 32.512-40.18 59.384zM512 12c-205.45 0-372 109.242-372 244s166.55 244 372 244c205.45 0 372-109.242 372-244s-166.55-244-372-244zM919.82 388.616c-20.5 32.112-48.218 61.372-81.666 86.738 10.276 21.642 32.338 36.646 57.846 36.646 35.29 0 64-28.71 64-64 0-26.872-16.656-49.914-40.18-59.384z" />
+<glyph unicode="&#xeb03;" glyph-name="hackernews" d="M0 960v-1024h1024v1024h-1024zM544 376v-216h-64v216l-175 328h72.6l134.4-252 134.4 252h72.6l-175-328z" />
+<glyph unicode="&#xeb04;" glyph-name="wikipedia" d="M966.8 726.4c0-3.2-1-6.2-3-9-2-2.6-4.2-4-6.8-4-20-2-36.4-8.4-49-19.2-12.8-10.8-25.8-31.8-39.2-62.4l-206.4-465.4c-1.4-4.4-5.2-6.4-11.4-6.4-4.8 0-8.6 2.2-11.4 6.4l-115.8 242-133.2-242c-2.8-4.4-6.4-6.4-11.4-6.4-6 0-9.8 2.2-11.8 6.4l-202.6 465.2c-12.6 28.8-26 49-40 60.4s-33.6 18.6-58.6 21.2c-2.2 0-4.2 1.2-6 3.4-2 2.2-2.8 4.8-2.8 7.8 0 7.6 2.2 11.4 6.4 11.4 18 0 37-0.8 56.8-2.4 18.4-1.6 35.6-2.4 51.8-2.4 16.4 0 36 0.8 58.4 2.4 23.4 1.6 44.2 2.4 62.4 2.4 4.4 0 6.4-3.8 6.4-11.4s-1.4-11.2-4-11.2c-18-1.4-32.4-6-42.8-13.8s-15.6-18-15.6-30.8c0-6.4 2.2-14.6 6.4-24.2l167.4-378.4 95.2 179.6-88.6 185.8c-16 33.2-29 54.6-39.2 64.2s-25.8 15.4-46.6 17.6c-2 0-3.6 1.2-5.4 3.4s-2.6 4.8-2.6 7.8c0 7.6 1.8 11.4 5.6 11.4 18 0 34.6-0.8 49.8-2.4 14.6-1.6 30-2.4 46.6-2.4 16.2 0 33.2 0.8 51.4 2.4 18.6 1.6 37 2.4 55 2.4 4.4 0 6.4-3.8 6.4-11.4s-1.2-11.2-4-11.2c-36.2-2.4-54.2-12.8-54.2-30.8 0-8 4.2-20.6 12.6-37.6l58.6-119 58.4 108.8c8 15.4 12.2 28.4 12.2 38.8 0 24.8-18 38-54.2 39.6-3.2 0-4.8 3.8-4.8 11.2 0 2.8 0.8 5.2 2.4 7.6s3.2 3.6 4.8 3.6c13 0 28.8-0.8 47.8-2.4 18-1.6 33-2.4 44.6-2.4 8.4 0 20.6 0.8 36.8 2 20.4 1.8 37.6 2.8 51.4 2.8 3.2 0 4.8-3.2 4.8-9.6 0-8.6-3-13-8.8-13-21-2.2-38-8-50.8-17.4s-28.8-30.8-48-64.4l-78.2-143.2 105.2-214.4 155.4 361.4c5.4 13.2 8 25.4 8 36.4 0 26.4-18 40.4-54.2 42.2-3.2 0-4.8 3.8-4.8 11.2 0 7.6 2.4 11.4 7.2 11.4 13.2 0 28.8-0.8 47-2.4 16.8-1.6 30.8-2.4 42-2.4 12 0 25.6 0.8 41.2 2.4 16.2 1.6 30.8 2.4 43.8 2.4 4 0 6-3.2 6-9.6z" />
+<glyph unicode="&#xeb05;" glyph-name="linkedin" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM384 128h-128v448h128v-448zM320 640c-35.4 0-64 28.6-64 64s28.6 64 64 64c35.4 0 64-28.6 64-64s-28.6-64-64-64zM832 128h-128v256c0 35.4-28.6 64-64 64s-64-28.6-64-64v-256h-128v448h128v-79.4c26.4 36.2 66.8 79.4 112 79.4 79.6 0 144-71.6 144-160v-288z" />
+<glyph unicode="&#xeb06;" glyph-name="linkedin2" d="M384 576h177.106v-90.782h2.532c24.64 44.194 84.958 90.782 174.842 90.782 186.946 0 221.52-116.376 221.52-267.734v-308.266h-184.61v273.278c0 65.184-1.334 149.026-96.028 149.026-96.148 0-110.82-70.986-110.82-144.292v-278.012h-184.542v576zM64 576h192v-576h-192v576zM256 736c0-53.019-42.981-96-96-96s-96 42.981-96 96c0 53.019 42.981 96 96 96s96-42.981 96-96z" />
+<glyph unicode="&#xeb07;" glyph-name="lastfm" d="M451.6 193.8l-37.6 102c0 0-61-68-152.4-68-81 0-138.4 70.4-138.4 183 0 144.2 72.8 195.8 144.2 195.8 103.2 0 136-66.8 164.2-152.4l37.6-117.2c37.6-113.8 108-205.2 310.8-205.2 145.4 0 244 44.6 244 161.8 0 95-54 144.2-154.8 167.8l-75 16.4c-51.6 11.8-66.8 32.8-66.8 68 0 39.8 31.6 63.4 83.2 63.4 56.4 0 86.8-21.2 91.4-71.6l117.2 14c-9.4 105.6-82.2 149-201.8 149-105.6 0-208.8-39.8-208.8-167.8 0-79.8 38.8-130.2 136-153.6l79.8-18.8c59.8-14 79.8-38.8 79.8-72.8 0-43.4-42.2-61-122-61-118.4 0-167.8 62.2-195.8 147.8l-38.8 117.2c-49 152.6-127.6 208.8-283.6 208.8-172.4 0-264-109-264-294.4 0-178.2 91.4-274.4 255.8-274.4 132.4 0 195.8 62.2 195.8 62.2v0z" />
+<glyph unicode="&#xeb08;" glyph-name="lastfm2" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM746.6 199.2c-177.6 0-239.2 80-272 179.6l-32.8 102.6c-24.6 75-53.4 133.4-143.6 133.4-62.6 0-126.2-45.2-126.2-171.4 0-98.6 50.2-160.2 121.2-160.2 80 0 133.4 59.6 133.4 59.6l32.8-89.2c0 0-55.4-54.4-171.4-54.4-144 0-224 84-224 240 0 162.2 80 257.6 231 257.6 136.6 0 205.2-49.2 248.4-182.6l33.8-102.6c24.6-75 67.8-129.4 171.4-129.4 69.8 0 106.8 15.4 106.8 53.4 0 29.8-17.4 51.4-69.8 63.6l-69.8 16.4c-85.2 20.6-119 64.6-119 134.4 0 111.8 90.4 146.8 182.6 146.8 104.6 0 168.4-38 176.6-130.4l-102.6-12.4c-4.2 44.2-30.8 62.6-80 62.6-45.2 0-72.8-20.6-72.8-55.4 0-30.8 13.4-49.2 58.4-59.6l65.6-14.4c88.2-20.6 135.4-63.6 135.4-146.8 0-102.2-86.2-141.2-213.4-141.2z" />
+<glyph unicode="&#xeb09;" glyph-name="delicious" d="M0 960v-1024h1024v1024h-1024zM512 0v448h-448v448h448v-448h448v-448h-448z" />
+<glyph unicode="&#xeb0a;" glyph-name="stumbleupon" d="M512 640c-35.2 0-64-28.8-64-64v-256c0-105.8-86.2-192-192-192s-192 86.2-192 192v128h128v-128c0-35.2 28.8-64 64-64s64 28.8 64 64v256c0 105.8 86.2 192 192 192s192-86.2 192-178v-62l-82-24-46 24v62c0 21.2-28.8 50-64 50zM960 320c0-105.8-86.2-192-192-192s-192 86.2-192 206v124l46-24 82 24v-124c0-49.2 28.8-78 64-78s64 28.8 64 64v128h128v-128z" />
+<glyph unicode="&#xeb0b;" glyph-name="stumbleupon2" d="M852 960h-680c-94.6 0-172-77.4-172-172v-680c0-94.6 77.4-172 172-172h680c94.6 0 172 77.4 172 172v680c0 94.6-77.4 172-172 172zM512 640c-35.29 0-64-28.71-64-64v-256c0-105.872-86.13-192-192-192s-192 86.128-192 192v128h128v-128c0-35.29 28.71-64 64-64s64 28.71 64 64v256c0 105.87 86.13 192 192 192s192-86.13 192-178v-62l-82-24-46 24v62c0 21.29-28.71 50-64 50zM960 320c0-105.872-86.13-192-192-192s-192 86.128-192 206v124l46-24 82 24v-124c0-49.29 28.71-78 64-78s64 28.71 64 64v128h128v-128z" />
+<glyph unicode="&#xeb0c;" glyph-name="stackoverflow" d="M1024 320v-384h-1024v384h128v-256h768v256zM192 256h640v-128h-640zM207.152 394.534l27.698 124.964 624.832-138.496-27.698-124.964zM279.658 651.442l54.092 116.006 580.032-270.464-54.092-116.006zM991.722 598.524l-77.922-101.55-507.746 389.608 56.336 73.418h58.244z" />
+<glyph unicode="&#xeb0d;" glyph-name="pinterest" d="M512 891.6c-245 0-443.6-198.6-443.6-443.6 0-188 117-348.4 282-413-3.8 35-7.4 89 1.6 127.2 8 34.6 52 220.4 52 220.4s-13.2 26.6-13.2 65.8c0 61.6 35.8 107.8 80.2 107.8 37.8 0 56.2-28.4 56.2-62.4 0-38-24.2-95-36.8-147.6-10.6-44.2 22-80.2 65.6-80.2 78.8 0 139.4 83.2 139.4 203.2 0 106.2-76.4 180.4-185.2 180.4-126.2 0-200.2-94.6-200.2-192.6 0-38.2 14.6-79 33-101.2 3.6-4.4 4.2-8.2 3-12.8-3.4-14-10.8-44.2-12.4-50.4-2-8.2-6.4-9.8-14.8-6-55.4 25.8-90 106.8-90 171.8 0 140 101.6 268.4 293 268.4 153.8 0 273.4-109.6 273.4-256.2 0-152.8-96.4-276-230.2-276-45 0-87.2 23.4-101.6 51 0 0-22.2-84.6-27.6-105.4-10-38.6-37-86.8-55.2-116.2 41.6-12.8 85.6-19.8 131.4-19.8 245 0 443.6 198.6 443.6 443.6 0 245.2-198.6 443.8-443.6 443.8z" />
+<glyph unicode="&#xeb0e;" glyph-name="pinterest2" d="M512 960c-282.4 0-512-229.6-512-512s229.6-512 512-512 512 229.6 512 512-229.6 512-512 512zM512 4.4c-45.8 0-89.8 7-131.4 19.8 18 29.4 45.2 77.8 55.2 116.2 5.4 20.8 27.6 105.4 27.6 105.4 14.4-27.6 56.8-51 101.6-51 133.8 0 230.2 123 230.2 276 0 146.6-119.6 256.2-273.4 256.2-191.4 0-293-128.6-293-268.4 0-65 34.6-146 90-171.8 8.4-4 12.8-2.2 14.8 6 1.4 6.2 9 36.2 12.4 50.4 1 4.4 0.6 8.4-3 12.8-18.4 22.2-33 63.2-33 101.2 0 97.8 74 192.6 200.2 192.6 109 0 185.2-74.2 185.2-180.4 0-120-60.6-203.2-139.4-203.2-43.6 0-76.2 36-65.6 80.2 12.6 52.8 36.8 109.6 36.8 147.6 0 34-18.2 62.4-56.2 62.4-44.6 0-80.2-46-80.2-107.8 0-39.2 13.2-65.8 13.2-65.8s-44-185.8-52-220.4c-9-38.4-5.4-92.2-1.6-127.2-165 64.4-282 224.8-282 412.8 0 245 198.6 443.6 443.6 443.6s443.6-198.6 443.6-443.6c0-245-198.6-443.6-443.6-443.6z" />
+<glyph unicode="&#xeb0f;" glyph-name="xing" d="M928 960h-832c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM312.6 294h-110.6c-6.6 0-11.6 3-14.4 7.6-3 4.8-3 10.8 0 17l117.6 207.6c0.2 0.2 0.2 0.4 0 0.6l-74.8 129.6c-3 6.2-3.6 12.2-0.6 17 2.8 4.6 8.4 7 15.2 7h110.8c17 0 25.4-11 30.8-20.8 0 0 75.6-132 76.2-132.8-4.4-8-119.6-211.4-119.6-211.4-6-10.4-14-21.4-30.6-21.4zM836.4 807.8l-245.2-433.6c-0.2-0.2-0.2-0.6 0-0.8l156.2-285.2c3-6.2 3.2-12.4 0.2-17.2-2.8-4.6-8-7-14.8-7h-110.6c-17 0-25.4 11.2-31 21 0 0-157 288-157.4 288.8 7.8 13.8 246.4 437 246.4 437 6 10.6 13.2 21 29.6 21h112.2c6.6 0 12-2.6 14.8-7 2.8-4.6 2.8-10.8-0.4-17z" />
+<glyph unicode="&#xeb10;" glyph-name="xing2" d="M155.6 757.8c-8.8 0-16.4-3.2-20.2-9.2-3.8-6.4-3.2-14.4 0.8-22.6l99.8-172.8c0.2-0.4 0.2-0.6 0-0.8l-156.8-277.2c-4-8.2-3.8-16.4 0-22.6 3.8-6 10.4-10 19.2-10h147.6c22 0 32.8 15 40.2 28.6 0 0 153.4 271.4 159.4 282-0.6 1-101.6 177-101.6 177-7.4 13-18.4 27.6-41.2 27.6h-147.2zM776 960c-22 0-31.6-13.8-39.6-28.2 0 0-318.2-564.2-328.6-582.8 0.6-1 209.8-385 209.8-385 7.4-13 18.6-28.2 41.2-28.2h147.6c8.8 0 15.8 3.4 19.6 9.4 4 6.4 3.8 14.6-0.4 22.8l-208 380.6c-0.2 0.4-0.2 0.6 0 1l327 578.2c4 8.2 4.2 16.4 0.4 22.8-3.8 6-10.8 9.4-19.6 9.4h-149.4z" />
+<glyph unicode="&#xeb11;" glyph-name="flattr" d="M367.562 960c-243.358 0-367.562-140.162-367.562-401.856v0-549.034l238.39 238.628v278.896c0 108.416 28.73 177.406 125.118 192.894v0c33.672 6.584 103.75 4.278 148.306 4.278v0-165.596c0-1.51 0.208-4.206 0.594-5.586v0c1.87-6.704 7.93-11.616 15.116-11.63v0c4.062-0.008 7.868 2.104 11.79 5.97v0l413.122 412.974-584.874 0.062zM785.61 648.254v-278.89c0-108.414-28.736-177.414-125.116-192.894v0c-33.672-6.582-103.756-4.278-148.312-4.278v0 165.594c0 1.5-0.206 4.204-0.594 5.582v0c-1.864 6.712-7.922 11.622-15.112 11.63v0c-4.064 0.008-7.866-2.112-11.79-5.966v0l-413.124-412.966 584.874-0.066c243.354 0 367.564 140.168 367.564 401.852v0 549.028l-238.39-238.626z" />
+<glyph unicode="&#xeb12;" glyph-name="foursquare" d="M851.564 869.91c-12.060 16.404-31.204 26.090-51.564 26.090h-608c-35.346 0-64-28.654-64-64v-768c0-25.884 15.592-49.222 39.508-59.128 7.918-3.28 16.234-4.874 24.478-4.874 16.656 0 33.026 6.504 45.268 18.748l237.256 237.254h165.49c27.992 0 52.736 18.192 61.086 44.91l160 512c6.074 19.432 2.538 40.596-9.522 57zM672.948 640h-224.948c-35.346 0-64-28.654-64-64s28.654-64 64-64h184.948l-40-128h-144.948c-16.974 0-33.252-6.742-45.254-18.746l-146.746-146.744v549.49h456.948l-40-128z" />
+<glyph unicode="&#xeb13;" glyph-name="yelp" d="M608.876 306.532c-17.282-17.426-2.668-49.128-2.668-49.128l130.090-217.218c0 0 21.36-28.64 39.864-28.64 18.59 0 36.954 15.27 36.954 15.27l102.844 147.008c0 0 10.36 18.546 10.598 34.792 0.372 23.106-34.454 29.434-34.454 29.434l-243.488 78.192c-0.002-0.004-23.858 6.328-39.74-9.71zM596.532 416.016c12.46-21.128 46.828-14.972 46.828-14.972l242.938 71.006c0 0 33.106 13.466 37.832 31.418 4.64 17.954-5.46 39.622-5.46 39.622l-116.098 136.752c0 0-10.062 17.292-30.938 19.032-23.016 1.958-37.18-25.898-37.18-25.898l-137.27-216.010c0-0.004-12.134-21.516-0.652-40.95zM481.754 500.232c28.608 7.044 33.148 48.604 33.148 48.604l-1.944 345.87c0 0-4.314 42.666-23.486 54.232-30.070 18.242-38.982 8.718-47.596 7.444l-201.696-74.944c0 0-19.754-6.536-30.042-23.018-14.69-23.352 14.928-57.544 14.928-57.544l209.644-285.756c0 0 20.69-21.396 47.044-14.888zM431.944 360.262c0.722 26.676-32.030 42.7-32.030 42.7l-216.796 109.524c0 0-32.126 13.246-47.722 4.016-11.95-7.060-22.536-19.84-23.572-31.134l-14.12-173.812c0 0-2.116-30.114 5.69-43.82 11.054-19.442 47.428-5.902 47.428-5.902l253.096 55.942c9.832 6.61 27.074 7.204 28.026 42.486zM494.88 266.458c-21.726 11.156-47.724-11.95-47.724-11.95l-169.468-186.566c0 0-21.144-28.528-15.768-46.050 5.066-16.418 13.454-24.578 25.318-30.328l170.192-53.726c0 0 20.634-4.286 36.258 0.242 22.18 6.43 18.094 41.152 18.094 41.152l3.848 252.602c-0.002-0.002-0.868 24.334-20.75 34.624z" />
+<glyph unicode="&#xeb14;" glyph-name="paypal" d="M930 651.4c-47.8-212.2-195.4-324.2-428-324.2h-77.4l-53.8-341.6h-64.8l-3.4-22c-2.2-14.6 9-27.6 23.6-27.6h165.6c19.6 0 36.2 14.2 39.4 33.6l1.6 8.4 31.2 197.8 2 10.8c3 19.4 19.8 33.6 39.4 33.6h24.6c160.4 0 286 65.2 322.8 253.6 13.8 71.6 8.6 132.4-22.8 177.6zM831 882.8c-47.4 54-133.2 77.2-242.8 77.2h-318.2c-22.4 0-41.6-16.2-45-38.4l-132.6-840.4c-2.6-16.6 10.2-31.6 27-31.6h196.6l49.4 313-1.6-9.8c3.4 22.2 22.4 38.4 44.8 38.4h93.4c183.4 0 327 74.4 369 290 1.2 6.4 2.4 12.6 3.2 18.6 12.4 79.6 0 134-43.2 183z" />
+<glyph unicode="&#xeb15;" glyph-name="chrome" d="M258.278 513.458l-146.532 253.802c93.818 117.464 238.234 192.74 400.254 192.74 187.432 0 351.31-100.736 440.532-251h-417.77c-7.504 0.65-15.092 1-22.762 1-121.874 0-224.578-83.644-253.722-196.542zM695.306 635h293.46c22.74-57.93 35.234-121.004 35.234-187 0-280.826-226.1-508.804-506.186-511.926l209.394 362.678c29.48 42.378 46.792 93.826 46.792 149.248 0 73.17-30.164 139.42-78.694 187zM326 448c0 102.56 83.44 186 186 186s186-83.44 186-186c0-102.56-83.44-186-186-186s-186 83.44-186 186zM582.182 195.558l-146.578-253.878c-246.532 36.884-435.604 249.516-435.604 506.32 0 91.218 23.884 176.846 65.696 251.024l209.030-362.054c41.868-89.112 132.476-150.97 237.274-150.97 24.3 0 47.836 3.34 70.182 9.558z" />
+<glyph unicode="&#xeb16;" glyph-name="firefox" d="M1022.526 625.86l-11.86-76.080c0 0-16.954 140.856-37.732 193.514-31.846 80.688-46.014 80.040-46.108 79.922 21.33-54.204 17.462-83.324 17.462-83.324s-37.792 102.998-137.712 135.768c-110.686 36.282-170.57 26.364-177.488 24.486-1.050 0.008-2.064 0.010-3.030 0.010 0.818-0.062 1.612-0.146 2.426-0.212-0.034-0.020-0.090-0.042-0.082-0.052 0.45-0.548 122.306-21.302 143.916-50.996 0 0-51.76 0-103.272-14.842-2.328-0.666 189.524-23.964 228.746-215.674 0 0-21.030 43.876-47.040 51.328 17.106-52.036 12.714-150.776-3.576-199.85-2.096-6.312-4.24 27.282-36.328 41.75 10.28-73.646-0.616-190.456-51.708-222.632-3.982-2.504 32.030 115.31 7.242 69.762-142.708-218.802-311.404-100.972-387.248-49.11 38.866-8.462 112.654 1.318 145.314 25.612 0.042 0.030 0.078 0.056 0.118 0.086 35.468 24.252 56.472 41.964 75.334 37.772 18.874-4.214 31.438 14.726 16.78 31.53-14.676 16.838-50.314 39.978-98.524 27.366-34-8.904-76.134-46.522-140.448-8.432-49.364 29.25-54.012 53.546-54.45 70.376 1.218 5.966 2.754 11.536 4.576 16.624 5.682 15.87 22.912 20.658 32.494 24.438 16.256-2.792 30.262-7.862 44.968-15.406 0.19 4.894 0.252 11.39-0.018 18.76 1.41 2.802 0.538 11.252-1.722 21.58-1.302 10.308-3.42 20.974-6.752 30.692 0.012 0.002 0.020 0.010 0.030 0.014 0.056 0.018 0.108 0.040 0.156 0.070 0.078 0.044 0.146 0.112 0.208 0.19 0.012 0.020 0.030 0.034 0.044 0.052 0.082 0.124 0.154 0.272 0.198 0.466 1.020 4.618 12.022 13.524 25.718 23.1 12.272 8.58 26.702 17.696 38.068 24.752 10.060 6.248 17.72 10.882 19.346 12.098 0.618 0.466 1.358 1.012 2.164 1.636 0.15 0.116 0.3 0.232 0.454 0.354 0.094 0.074 0.19 0.148 0.286 0.226 5.41 4.308 13.484 12.448 15.178 29.578 0.004 0.042 0.010 0.080 0.012 0.122 0.050 0.504 0.092 1.014 0.13 1.534 0.028 0.362 0.050 0.726 0.072 1.096 0.014 0.284 0.032 0.566 0.044 0.856 0.030 0.674 0.050 1.364 0.060 2.064 0 0.040 0.002 0.076 0.004 0.116 0.022 1.658-0.006 3.386-0.104 5.202-0.054 1.014-0.126 1.93-0.298 2.762-0.008 0.044-0.018 0.092-0.028 0.136-0.018 0.082-0.036 0.164-0.058 0.244-0.036 0.146-0.076 0.292-0.122 0.43-0.006 0.018-0.010 0.032-0.016 0.046-0.052 0.16-0.112 0.314-0.174 0.464-0.004 0.006-0.004 0.010-0.006 0.016-1.754 4.108-8.32 5.658-35.442 6.118-0.026 0.002-0.050 0.002-0.076 0.002v0c-11.066 0.188-25.538 0.194-44.502 0.118-33.25-0.134-51.628 32.504-57.494 45.132 8.040 44.46 31.276 76.142 69.45 97.626 0.722 0.406 0.58 0.742-0.274 0.978 7.464 4.514-90.246 0.124-135.186-57.036-39.888 9.914-74.654 9.246-104.616 2.214-5.754 0.162-12.924 0.88-21.434 2.652-19.924 18.056-48.448 51.402-49.976 91.208 0 0-0.092-0.072-0.252-0.204-0.020 0.382-0.056 0.76-0.072 1.142 0 0-60.716-46.664-51.628-173.882-0.022-2.036-0.064-3.986-0.12-5.874-16.432-22.288-24.586-41.020-25.192-45.156-14.56-29.644-29.334-74.254-41.356-141.98 0 0 8.408 26.666 25.284 56.866-12.412-38.022-22.164-97.156-16.436-185.856 0 0 1.514 19.666 6.874 47.994 4.186-55.010 22.518-122.924 68.858-202.788 88.948-153.32 225.67-230.74 376.792-242.616 26.836-2.212 54.050-2.264 81.424-0.186 2.516 0.178 5.032 0.364 7.55 0.574 30.964 2.174 62.134 6.852 93.238 14.366 425.172 102.798 378.942 616.198 378.942 616.198z" />
+<glyph unicode="&#xeb17;" glyph-name="IE" d="M734.202 331.17h236.050c1.82 16.37 2.548 33.098 2.548 50.196 0 80.224-21.534 155.468-59.124 220.266 38.88 103.308 37.492 190.988-14.556 243.39-49.496 49.28-182.29 41.28-332.412-25.198-11.104 0.84-22.318 1.272-33.638 1.272-206.048 0-378.926-141.794-426.708-332.85 64.638 82.754 132.638 142.754 223.478 186.448-8.26-7.74-56.454-55.652-64.56-63.764-239.548-239.478-315.090-552.306-233.806-633.604 61.786-61.774 173.758-51.342 302.376 11.648 59.806-30.458 127.5-47.63 199.218-47.63 193.134 0 356.804 124.316 416.090 297.448h-237.868c-32.734-60.382-96.748-101.48-170.218-101.48-73.468 0-137.484 41.098-170.216 101.48-14.55 27.274-22.914 58.554-22.914 91.656v0.722h386.26zM348.302 447.196c5.456 97.11 86.2 174.584 184.766 174.584s179.312-77.472 184.766-174.584h-369.532zM896.966 796.192c33.526-33.88 32.688-96.214 4.012-174.022-49.136 74.908-120.518 133.936-204.792 167.64 90.106 38.638 163.406 43.756 200.78 6.382zM93.482-7.256c-42.782 42.796-29.884 132.618 25.23 240.832 34.308-96.27 101.156-177.090 187.336-229.154-95.43-43.318-173.536-50.674-212.566-11.678z" />
+<glyph unicode="&#xeb18;" glyph-name="edge" d="M15.4 505.4c30 236.8 191.6 451.6 481.2 454.6 174.8-3.4 318.6-82.6 404.2-233.6 43-78.8 56.4-161.6 59.2-253v-107.4h-642.6c3-265 390-256 556.6-139.2v-215.8c-97.6-58.6-319-111-490.4-43.6-146 54.8-250 207.6-249.4 354.6-4.8 190.6 94.8 316.8 249.4 388.6-32.8-40.6-57.8-85.4-70.8-163h362.8c0 0 21.2 216.8-205.4 216.8-213.6-7.4-367.6-131.6-454.8-259v0z" />
+<glyph unicode="&#xeb19;" glyph-name="safari" d="M512 960c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512zM958.4 487.2l-1 10.6c0.2-3.6 0.6-7 1-10.6zM888.4 691.2l-7.2 10.8c2.4-3.6 4.8-7.2 7.2-10.8zM860.6 729.4l-4.4 5.4c1.6-1.8 3-3.6 4.4-5.4zM798.6 792.4l-5.4 4.4c2-1.6 3.6-3 5.4-4.4zM766 817.2l-10.8 7.2c3.6-2.4 7.2-4.8 10.8-7.2zM561.8 893.2l-10.8 1c3.6-0.2 7.2-0.6 10.8-1zM472.8 894.4l-10.8-1c3.6 0.2 7.2 0.6 10.8 1zM268.8 824.4l-10.8-7.2c3.6 2.4 7.2 4.8 10.8 7.2zM230.6 796.6l-5.2-4.2c1.8 1.4 3.4 2.8 5.2 4.2zM167.6 734.6l-4.4-5.4c1.6 1.8 3 3.6 4.4 5.4zM142.8 702l-7.2-10.8c2.4 3.6 4.8 7.2 7.2 10.8zM66.8 497.8l-1-10.8c0.2 3.6 0.6 7.2 1 10.8zM65.6 408.8l1-10.8c-0.2 3.6-0.6 7.2-1 10.8zM135.6 205l7.2-10.8c-2.4 3.4-4.8 7-7.2 10.8zM144 192.4l79.8 53.4-8.8 13.4-79.8-53.4c-36.2 56.2-60 120.8-68 190.4l47.8 4.8-1.6 16-47.8-4.8c-0.8 9.2-1.2 18.6-1.4 28h96v16h-96c0.2 9.4 0.6 18.6 1.4 28l47.8-4.6 1.6 16-47.8 4.6c8 69.6 32 134.2 68.2 190.4l79.8-53.4 8.8 13.4-80 53c5.4 7.6 10.8 15.2 16.6 22.4l37-30.4 10.2 12.4-37 30.4c6 7.2 12.4 14 18.8 20.8l67.8-67.8 11.4 11.4-67.8 67.8c6.8 6.4 13.6 12.8 20.6 18.8l30.4-37.2 12.4 10.2-30.4 37c7.4 5.8 14.8 11.4 22.4 16.8l53.4-79.8 13.4 8.8-53.4 79.8c56.2 36.2 120.8 60 190.4 68l4.8-47.8 16 1.6-4.8 47.8c9.2 0.8 18.6 1.2 28 1.4v-96h16v96c9.4-0.2 18.6-0.6 28-1.4l-4.6-47.8 16-1.6 4.6 47.8c69.6-8 134.2-32 190.4-68.2l-53.4-79.8 13.4-8.8 53.4 79.8c7.6-5.4 15.2-10.8 22.4-16.6l-30.4-37 12.4-10.2 30.4 37c7.2-6 14-12.4 20.8-18.8l-25.6-25-350-233.4-233.4-350-25-25c-6.4 6.8-12.8 13.6-18.8 20.6l37 30.4-10.2 12.4-37-30.4c-5.8 7.2-11.2 14.8-16.6 22.4zM167.6 161.4c-1.4 1.8-2.8 3.4-4.2 5.2l4.2-5.2zM225.4 103.6l5.2-4.2c-1.8 1.4-3.4 2.8-5.2 4.2zM258 79l10.8-7.2c-3.6 2.2-7.2 4.6-10.8 7.2zM462.2 2.8l10.8-1c-3.6 0.2-7.2 0.6-10.8 1zM551.2 1.6l10.6 1c-3.6-0.2-7-0.6-10.6-1zM755.2 71.6l10.8 7.2c-3.6-2.4-7.2-4.8-10.8-7.2zM793.4 99.4l5.4 4.4c-1.8-1.6-3.6-3-5.4-4.4zM828.4 130.8l0.8 0.8c-0.2-0.2-0.6-0.6-0.8-0.8zM856.4 161.4l4.4 5.4c-1.6-1.8-3-3.6-4.4-5.4zM863.4 170l-37 30.4-10.2-12.4 37-30.4c-6-7.2-12.4-14-18.8-20.8l-67.8 67.8-11.4-11.4 67.8-67.8c-6.8-6.4-13.6-12.8-20.6-18.8l-30.4 37.2-12.4-10.2 30.4-37c-7.4-5.8-14.8-11.4-22.4-16.8l-53.4 79.8-13.4-8.8 53.4-79.8c-56.2-36.2-120.8-60-190.4-68l-4.8 47.8-16-1.6 4.8-47.8c-9.2-0.8-18.6-1.2-28-1.4v96h-16v-96c-9.4 0.2-18.6 0.6-28 1.4l4.6 47.8-16 1.6-4.6-47.8c-69.6 8-134.2 32-190.4 68.2l53.4 79.8-13.4 8.8-53-79.8c-7.6 5.4-15.2 10.8-22.4 16.6l30.4 37-12.4 10.2-30.4-37c-7.2 6-14 12.4-20.8 18.8l25.2 25 350 233.4 233.4 350 25 25c6.4-6.8 12.8-13.6 18.8-20.6l-37-30.4 10.2-12.4 37 30.4c5.8-7.4 11.4-14.8 16.8-22.4l-79.8-53.4 8.8-13.4 79.8 53.4c36.2-56.2 60-120.8 68-190.4l-47.8-4.8 1.6-16 47.8 4.8c0.8-9.2 1.2-18.6 1.4-28h-96v-16h96c-0.2-9.4-0.6-18.6-1.4-28l-47.8 4.6-1.6-16 47.8-4.6c-8-69.6-32-134.2-68.2-190.4l-79.8 53.4-8.8-13.4 79.8-53.4c-5.2-7.2-10.8-14.6-16.6-22zM958.4 409c-0.4-3.6-0.6-7.2-1-10.8l1 10.8zM888.4 204.8c-2.4-3.6-4.8-7.2-7.2-10.8l7.2 10.8zM432.535 888.925l18.73-94.157-15.693-3.122-18.73 94.157 15.693 3.122zM591.656 7.050l-18.73 94.157 15.693 3.122 18.73-94.157-15.693-3.122zM389.628 879.11l13.939-45.931-15.31-4.646-13.939 45.931 15.31 4.646zM634.434 17.113l-13.939 45.931 15.31 4.646 13.939-45.931-15.31-4.646zM348.014 864.901l36.739-88.694-14.782-6.123-36.739 88.694 14.782 6.123zM676.123 31.035l-36.739 88.694 14.782 6.123 36.739-88.694-14.782-6.123zM293.62 839.341l14.11 7.544 22.632-42.331-14.11-7.544-22.632 42.331zM730.101 56.711l-14.11-7.544-22.632 42.331 14.11 7.544 22.632-42.331zM120.601 666.174l42.336-22.622-7.541-14.112-42.336 22.622 7.541 14.112zM903.244 229.805l-42.336 22.622 7.541 14.112 42.336-22.622-7.541-14.112zM183.811 575.377l-88.694 36.739 6.123 14.782 88.694-36.739-6.123-14.782zM840.32 320.699l88.694-36.739-6.123-14.782-88.694 36.739 6.123 14.782zM85.543 585.613l45.936-13.93-4.643-15.312-45.936 13.93 4.643 15.312zM938.308 310.333l-45.936 13.93 4.643 15.312 45.936-13.93-4.643-15.312zM74.069 543.218l94.157-18.73-3.122-15.693-94.157 18.73 3.122 15.693zM949.741 352.757l-94.157 18.73 3.122 15.693 94.157-18.73-3.122-15.693zM70.965 368.452l94.157 18.73 3.122-15.693-94.157-18.73-3.122 15.693zM952.842 527.573l-94.157-18.73-3.122 15.693 94.157 18.73 3.122-15.693zM80.974 325.486l45.931 13.939 4.646-15.31-45.931-13.939-4.646 15.31zM942.969 570.293l-45.931-13.939-4.646 15.31 45.931 13.939 4.646-15.31zM101.142 269.088l-6.123 14.782 88.694 36.739 6.123-14.782-88.694-36.739zM922.794 626.769l6.122-14.782-88.694-36.73-6.122 14.782 88.694 36.73zM120.824 229.733l-7.544 14.11 42.331 22.632 7.544-14.11-42.331-22.632zM903.455 666.215l7.544-14.11-42.331-22.632-7.544 14.11 42.331 22.632zM307.878 49.154l-14.11 7.542 22.627 42.331 14.11-7.542-22.627-42.331zM716.073 846.926l14.112-7.541-22.622-42.336-14.112 7.541 22.622 42.336zM333.267 37.201l36.739 88.694 14.782-6.123-36.739-88.694-14.782 6.123zM690.884 858.89l-36.739-88.694-14.782 6.123 36.739 88.694 14.782-6.123zM389.634 16.972l-15.31 4.645 13.934 45.931 15.31-4.645-13.934-45.931zM634.349 879.118l15.312-4.642-13.925-45.936-15.312 4.642 13.925 45.936zM432.472 7.161l-15.693 3.122 18.73 94.157 15.693-3.122-18.73-94.157zM591.536 889.031l15.693-3.122-18.73-94.157-15.693 3.122 18.73 94.157z" />
+<glyph unicode="&#xeb1a;" glyph-name="opera" d="M1024 448v0 0c0-151.6-66-288-170.8-381.6-131.4-64-253.8-19.2-294.2 8.8 129 28.2 226.4 184.2 226.4 372.8s-97.4 344.6-226.4 373c40.6 28 163 72.8 294.2 8.8 104.8-93.8 170.8-230.2 170.8-381.8v0 0zM343.4 736.6c-56.6-66.8-93.2-165.6-95.6-276.6 0-0.2 0-23.8 0-24.2 2.4-110.8 39.2-209.6 95.8-276.4 73.4-95.4 182.6-155.8 304.6-155.8 75 0 145.2 22.8 205.2 62.6-90.8-81-210.4-130.2-341.4-130.2-8.2 0-16.4 0.2-24.4 0.6-271.4 12.8-487.6 236.8-487.6 511.4 0 282.8 229.2 512 512 512 0.6 0 1.2 0 2 0 130.4-0.4 249.2-49.6 339.4-130.4-60 39.8-130.2 62.8-205.2 62.8-122 0-231.2-60.4-304.8-155.8z" />
+<glyph unicode="&#xeb1b;" glyph-name="file-pdf" d="M842.012 370.52c-13.648 13.446-43.914 20.566-89.972 21.172-31.178 0.344-68.702-2.402-108.17-7.928-17.674 10.198-35.892 21.294-50.188 34.658-38.462 35.916-70.568 85.772-90.576 140.594 1.304 5.12 2.414 9.62 3.448 14.212 0 0 21.666 123.060 15.932 164.666-0.792 5.706-1.276 7.362-2.808 11.796l-1.882 4.834c-5.894 13.592-17.448 27.994-35.564 27.208l-10.916 0.344c-20.202 0-36.664-10.332-40.986-25.774-13.138-48.434 0.418-120.892 24.98-214.738l-6.288-15.286c-17.588-42.876-39.63-86.060-59.078-124.158l-2.528-4.954c-20.46-40.040-39.026-74.028-55.856-102.822l-17.376-9.188c-1.264-0.668-31.044-16.418-38.028-20.644-59.256-35.38-98.524-75.542-105.038-107.416-2.072-10.17-0.53-23.186 10.014-29.212l16.806-8.458c7.292-3.652 14.978-5.502 22.854-5.502 42.206 0 91.202 52.572 158.698 170.366 77.93 25.37 166.652 46.458 244.412 58.090 59.258-33.368 132.142-56.544 178.142-56.544 8.168 0 15.212 0.78 20.932 2.294 8.822 2.336 16.258 7.368 20.792 14.194 8.926 13.432 10.734 31.932 8.312 50.876-0.72 5.622-5.21 12.574-10.068 17.32zM211.646 145.952c7.698 21.042 38.16 62.644 83.206 99.556 2.832 2.296 9.808 8.832 16.194 14.902-47.104-75.124-78.648-105.066-99.4-114.458zM478.434 760.314c13.566 0 21.284-34.194 21.924-66.254s-6.858-54.56-16.158-71.208c-7.702 24.648-11.426 63.5-11.426 88.904 0 0-0.566 48.558 5.66 48.558v0zM398.852 322.506c9.45 16.916 19.282 34.756 29.33 53.678 24.492 46.316 39.958 82.556 51.478 112.346 22.91-41.684 51.444-77.12 84.984-105.512 4.186-3.542 8.62-7.102 13.276-10.65-68.21-13.496-127.164-29.91-179.068-49.862v0zM828.902 326.348c-4.152-2.598-16.052-4.1-23.708-4.1-24.708 0-55.272 11.294-98.126 29.666 16.468 1.218 31.562 1.838 45.102 1.838 24.782 0 32.12 0.108 56.35-6.072 24.228-6.18 24.538-18.734 20.382-21.332v0zM917.806 730.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.886-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.324-32 32-32h224v-624z" />
+<glyph unicode="&#xeb1c;" glyph-name="file-openoffice" d="M690.22 488.318c-60.668 28.652-137.97 34.42-194.834-6.048 69.14 6.604 144.958-4.838 195.106-57.124 48 55.080 124.116 65.406 192.958 59.732-57.488 38.144-133.22 33.024-193.23 3.44v0zM665.646 354.25c-68.376 1.578-134.434-23.172-191.1-60.104-107.176 45.588-242.736 37.124-334.002-38.982 26.33 0.934 52.006 7.446 78.056 10.792 95.182 9.488 196.588-14.142 268.512-79.824 29.772 43.542 71.644 78.242 119.652 99.922 63.074 30.52 134.16 33.684 202.82 34.52-41.688 28.648-94.614 33.954-143.938 33.676zM917.806 730.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.886-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.324-32 32-32h224v-624z" />
+<glyph unicode="&#xeb1d;" glyph-name="file-word" d="M639.778 484.108h44.21l-51.012-226.178-66.324 318.010h-106.55l-77.114-318.010-57.816 318.010h-111.394l113.092-511.88h108.838l76.294 302.708 68.256-302.708h100.336l129.628 511.88h-170.446v-91.832zM917.806 730.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.886-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.324-32 32-32h224v-624z" />
+<glyph unicode="&#xeb1e;" glyph-name="file-excel" d="M743.028 576h-135.292l-95.732-141.032-95.742 141.032h-135.29l162.162-242.464-182.972-269.536h251.838v91.576h-50.156l50.156 74.994 111.396-166.57h140.444l-182.976 269.536 162.164 242.464zM917.806 730.924c-22.21 30.292-53.174 65.7-87.178 99.704s-69.412 64.964-99.704 87.178c-51.574 37.82-76.592 42.194-90.924 42.194h-496c-44.112 0-80-35.888-80-80v-864c0-44.112 35.886-80 80-80h736c44.112 0 80 35.888 80 80v624c0 14.332-4.372 39.35-42.194 90.924v0zM785.374 785.374c30.7-30.7 54.8-58.398 72.58-81.374h-153.954v153.946c22.982-17.78 50.678-41.878 81.374-72.572v0zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16 0 0 495.956 0.002 496 0v-224c0-17.672 14.324-32 32-32h224v-624z" />
+<glyph unicode="&#xeb1f;" glyph-name="libreoffice" d="M534.626 937.372c-12.444 12.444-37.026 22.628-54.626 22.628h-384c-17.6 0-32-14.4-32-32v-960c0-17.6 14.4-32 32-32h768c17.6 0 32 14.4 32 32v576c0 17.6-10.182 42.182-22.626 54.626l-338.748 338.746zM832 0h-704v896h351.158c2.916-0.48 8.408-2.754 10.81-4.478l337.556-337.554c1.722-2.402 3.996-7.894 4.476-10.81v-543.158zM864 960h-192c-17.6 0-21.818-10.182-9.374-22.626l210.746-210.746c12.446-12.446 22.628-8.228 22.628 9.372v192c0 17.6-14.4 32-32 32z" />
+<glyph unicode="&#xeb20;" glyph-name="html-five" d="M60.538 960l82.144-921.63 368.756-102.37 369.724 102.524 82.3 921.476h-902.924zM784.63 658.572h-432.54l10.302-115.75h411.968l-31.042-347.010-231.844-64.254-231.572 64.254-15.83 177.512h113.494l8.048-90.232 125.862-33.916 0.278 0.078 125.934 33.992 13.070 146.55h-391.74l-30.494 341.8h566.214l-10.108-113.024z" />
+<glyph unicode="&#xeb21;" glyph-name="html-five2" d="M60.538 960l82.144-921.63 368.756-102.37 369.724 102.524 82.3 921.476h-902.924zM810.762 97.176l-297.226-82.376v-0.466l-0.776 0.234-0.782-0.234v0.466l-297.222 82.376-70.242 787.486h736.496l-70.248-787.486zM650.754 429.796l-13.070-146.552-126.21-34.070-125.862 33.916-8.050 90.234h-113.49l15.83-177.512 232.076-64.176 231.342 64.176 31.040 347.012h-411.966l-10.302 115.748h432.534l10.112 113.026h-566.218l30.498-341.802z" />
+<glyph unicode="&#xeb22;" glyph-name="css3" d="M152.388 911.478l-34.36-171.926h699.748l-21.884-111.054h-700.188l-33.892-171.898h699.684l-39.018-196.064-282.012-93.422-244.4 93.422 16.728 85.042h-171.898l-40.896-206.352 404.226-154.704 466.006 154.704 153.768 772.252z" />
+<glyph unicode="&#xeb23;" glyph-name="git" d="M1004.692 493.606l-447.096 447.080c-25.738 25.754-67.496 25.754-93.268 0l-103.882-103.876 78.17-78.17c12.532 5.996 26.564 9.36 41.384 9.36 53.020 0 96-42.98 96-96 0-14.82-3.364-28.854-9.362-41.386l127.976-127.974c12.532 5.996 26.566 9.36 41.386 9.36 53.020 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96c0 14.82 3.364 28.854 9.362 41.386l-127.976 127.974c-3.042-1.456-6.176-2.742-9.384-3.876v-266.968c37.282-13.182 64-48.718 64-90.516 0-53.020-42.98-96-96-96s-96 42.98-96 96c0 41.796 26.718 77.334 64 90.516v266.968c-37.282 13.18-64 48.72-64 90.516 0 14.82 3.364 28.852 9.36 41.384l-78.17 78.17-295.892-295.876c-25.75-25.776-25.75-67.534 0-93.288l447.12-447.080c25.738-25.75 67.484-25.75 93.268 0l445.006 445.006c25.758 25.762 25.758 67.54-0.002 93.29z" />
+<glyph unicode="&#xeb24;" glyph-name="codepen" d="M945.75 591.958l-448 298.666c-10.748 7.166-24.752 7.166-35.5 0l-448-298.666c-8.902-5.934-14.25-15.926-14.25-26.624v-298.666c0-10.7 5.348-20.692 14.25-26.624l448-298.666c5.374-3.584 11.562-5.376 17.75-5.376s12.376 1.792 17.75 5.376l448 298.666c8.902 5.934 14.25 15.926 14.25 26.624v298.666c0 10.698-5.348 20.69-14.25 26.624zM480 305.124l-166.312 110.876 166.312 110.874 166.312-110.874-166.312-110.876zM512 582.458v221.75l358.31-238.876-166.31-110.874-192 128zM448 582.458l-192-128-166.312 110.874 358.312 238.876v-221.75zM198.312 416l-134.312-89.542v179.082l134.312-89.54zM256 377.542l192-128v-221.748l-358.312 238.872 166.312 110.876zM512 249.542l192 128 166.312-110.876-358.312-238.874v221.75zM761.688 416l134.312 89.54v-179.084l-134.312 89.544z" />
+<glyph unicode="&#xeb25;" glyph-name="svg" d="M928 544c-28.428 0-53.958-12.366-71.536-32h-189.956l134.318 134.318c26.312-1.456 53.11 7.854 73.21 27.956 37.49 37.49 37.49 98.274 0 135.764s-98.274 37.49-135.766 0c-20.102-20.102-29.41-46.898-27.956-73.21l-134.314-134.318v189.954c19.634 17.578 32 43.108 32 71.536 0 53.020-42.98 96-96 96s-96-42.98-96-96c0-28.428 12.366-53.958 32-71.536v-189.954l-134.318 134.318c1.454 26.312-7.856 53.11-27.958 73.21-37.49 37.49-98.274 37.49-135.764 0-37.49-37.492-37.49-98.274 0-135.764 20.102-20.102 46.898-29.412 73.212-27.956l134.32-134.318h-189.956c-17.578 19.634-43.108 32-71.536 32-53.020 0-96-42.98-96-96s42.98-96 96-96c28.428 0 53.958 12.366 71.536 32h189.956l-134.318-134.318c-26.314 1.456-53.11-7.854-73.212-27.956-37.49-37.492-37.49-98.276 0-135.766 37.492-37.49 98.274-37.49 135.764 0 20.102 20.102 29.412 46.898 27.958 73.21l134.316 134.32v-189.956c-19.634-17.576-32-43.108-32-71.536 0-53.020 42.98-96 96-96s96 42.98 96 96c0 28.428-12.366 53.958-32 71.536v189.956l134.318-134.318c-1.456-26.312 7.854-53.11 27.956-73.21 37.492-37.49 98.276-37.49 135.766 0s37.49 98.274 0 135.766c-20.102 20.102-46.898 29.41-73.21 27.956l-134.32 134.316h189.956c17.576-19.634 43.108-32 71.536-32 53.020 0 96 42.98 96 96s-42.982 96-96.002 96z" />
+<glyph unicode="&#xeb26;" glyph-name="IcoMoon" d="M259.544 448.002c0 65.416 53.030 118.446 118.446 118.446s118.446-53.030 118.446-118.446c0-65.416-53.030-118.446-118.446-118.446s-118.446 53.030-118.446 118.446zM512.004 960c-282.774 0-512.004-229.232-512.004-512s229.226-512 512.004-512c282.764 0 511.996 229.23 511.996 512 0 282.768-229.23 512-511.996 512zM379.396 0.718c-153.956 89.574-257.468 256.324-257.468 447.282s103.512 357.708 257.462 447.282c154.010-89.562 257.59-256.288 257.59-447.282 0-190.988-103.58-357.718-257.584-447.282z" />
+</font></defs></svg>
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.ttf b/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.ttf
new file mode 100755
index 0000000000000000000000000000000000000000..9582220605a41aee4c2e90835bc3fbe249cbecc3
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.ttf differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.woff b/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.woff
new file mode 100755
index 0000000000000000000000000000000000000000..b5daf37bb71321f134684fa6d32f270f659136fc
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/fonts/icomoon.woff differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/help_en.html b/src/main/webapp/static/js/paella/player/resources/style/help/help_en.html
new file mode 100644
index 0000000000000000000000000000000000000000..b1c4c5c400c2c1a40a982da4c64e6ec6d1c99a5e
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/help/help_en.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<link href="https://fonts.googleapis.com/css?family=Istok+Web|Ubuntu|Varela+Round" rel="stylesheet">
+		<link rel="stylesheet" href="style.css" type="text/css" media="screen" title="main style" charset="utf-8">
+	</head>
+	<body>
+
+			<div class="element">
+				<h1>The Paella Player</h1>
+				<img class="imgen" src="images/player_main.jpg">
+				<p class="txtblock">Paella is designed to display two video windows, with the camera and the presentation view, and some information
+			regarding the lecture. You can navigate through the slides and tabs, but you can also begin viewing the lecture 
+			by pressing the play button on top of the video window or in the control bar.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Play & Pause</h1>
+				<img class="imgen" src="images/playPauseButtonPlugin.jpg">
+				<p class="txtblock">Button for play and pause the video source. If you click outside the controls bar also stops/plays the player.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Volume</h1>
+				<img class="imgen" src="images/volumeRangePlugin.jpg">
+				<p class="txtblock">Control the volume of the video source through the popup.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Back & Advance</h1>
+				<img class="imgen" src="images/flexSkipPlugin.jpg">
+				<p class="txtblock">Button for rewind and go forward in the timeline.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Playback Rate</h1>
+				<img class="imgen" src="images/playbackRate.jpg">
+				<p class="txtblock">With this control the users can control the timeline reproduction speed.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Qualities</h1>
+				<img class="imgen" src="images/multipleQualitiesPlugin.jpg">
+				<p class="txtblock">Choose between all the source video resolution options.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Tabs</h1>
+				<img class="imgen" src="images/tabBarExamplePlugin.jpg">
+				<p class="txtblock">Plugins imported from paella extended version, users can comment the videos and see a brief description about them.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Skin</h1>
+				<img class="imgen" src="images/themeChooserPlugin.jpg">
+				<p class="txtblock">With this control you can switch between the different installed skins.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Social</h1>
+				<img class="imgen" src="images/socialPlugin.jpg">
+				<p class="txtblock">Share the video in Facebook, Twitter o take the code to embed.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Fullscreen</h1>
+				<img class="imgen" src="images/fullScreenButtonPlugin.jpg">
+				<p class="txtblock">Button for swap between Fullscreen and window mode.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Player View Mode</h1>
+				<img class="imgen" src="images/blackBoardPlugin.jpg">
+				<p class="txtblock">Use this button if you want to change the size of the sources or if you want to set another composition.</p>
+			</div><br>
+			
+			<div class="element">
+				<h1>Captions</h1>
+				<img class="imgen" src="images/captionsButtonPlugin.jpg">
+				<p class="txtblock">Enable the subtitles of the video sources. When activated user can select between different language subtitles, or none for disable the subtitles.</p>
+			</div><br>
+<!--
+			<div class="element">
+				<h1>Statistics</h1>
+				<img class="imgen" src="images/footprintsPlugin.jpg">
+				<p class="txtblock">With this plugin you are able to view a new frame above the timeline for show which part of the 
+			video is the most played.</p>
+			</div><br>
+-->
+			<div class="element">
+				<h1>Frame Control</h1>
+				<img class="imgen" src="images/frameControlPlugin.jpg">
+				<p class="txtblock">Using this buttons shows the different slides in the video, clicking in the slides allows the user to jump to the same instant of time where the slide is visualized in the video source.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Search</h1>
+				<img class="imgen" src="images/searchPlugin.jpg">
+				<p class="txtblock">Users can search from all sources of information (OCR from slides, subtitles) some terms. The result will display a popup with the results list sorted by the time occurrence.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Rate</h1>
+				<img class="imgen" src="images/ratePlugin.jpg">
+				<p class="txtblock">Use this button to view the video score and rate the video.</p>
+			</div><br>
+
+	</body>
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/help_es.html b/src/main/webapp/static/js/paella/player/resources/style/help/help_es.html
new file mode 100644
index 0000000000000000000000000000000000000000..5a15e5a6a767205ee541920164af3ce44a60d616
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/help/help_es.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<link href="https://fonts.googleapis.com/css?family=Istok+Web|Ubuntu|Varela+Round" rel="stylesheet">
+		<link rel="stylesheet" href="style.css" type="text/css" media="screen" title="main style" charset="utf-8">
+	</head>
+	<body>
+
+			<div class="element">
+				<h1>Paella Player</h1>
+				<img class="imgen" src="images/player_main.jpg">
+				<p class="txtblock">Paella está diseñado para mostrar dos ventanas de vídeo, la cámara y la vista de la presentación, y un poco de información sobre la conferencia. Puede navegar por las diapositivas y las pestañas, pero también se puede empezar a ver la conferencia pulsando el botón de reproducción en la parte superior de la ventana de vídeo o en la barra de controles.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Reproducir y Pausar</h1>
+				<img class="imgen" src="images/playPauseButtonPlugin.jpg">
+				<p class="txtblock">Botón de reproducción y pausa del player. Si hace clic fuera de los controles de la barra también se detiene / reproduce el player.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Volumen</h1>
+				<img class="imgen" src="images/volumeRangePlugin.jpg">
+				<p class="txtblock">Controla el volumen de reproducción a través de la ventana emergente.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Retroceder y Avanzar</h1>
+				<img class="imgen" src="images/flexSkipPlugin.jpg">
+				<p class="txtblock">Botón para avanzar/retroceder cierto tiempo en el vídeo.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Velocidad de Reproducción</h1>
+				<img class="imgen" src="images/playbackRate.jpg">
+				<p class="txtblock">Con este plugin los usuarios pueden establecer la velocidad de reproducción del player.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Resolución</h1>
+				<img class="imgen" src="images/multipleQualitiesPlugin.jpg">
+				<p class="txtblock">Los usuarios pueden seleccionar las diferentes resoluciones para ajustar la calidad de reproducción deseada.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Tabs</h1>
+				<img class="imgen" src="images/tabBarExamplePlugin.jpg">
+				<p class="txtblock">Estos plugins son adaptados a paella de la versión de paella extended, permiten entre otras cosas, a los usuarios poder comentar los vídeos y ver una breve descripción de los mismos.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Estilo</h1>
+				<img class="imgen" src="images/themeChooserPlugin.jpg">
+				<p class="txtblock">Los usuarios pueden cambiar la combinación de colores e iconos del reproductor a su gusto.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Compartir</h1>
+				<img class="imgen" src="images/socialPlugin.jpg">
+				<p class="txtblock">El vídeo se puede compartir en Facebook, Twitter o incluso si le ha gustado el vídeo, puede conseguir el código embebido para mostrarlo en su página web.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Pantalla Completa</h1>
+				<img class="imgen" src="images/fullScreenButtonPlugin.jpg">
+				<p class="txtblock">Los usuarios pueden utilizar este botón para entrar/salir del modo pantalla completa.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Modo de Visualización</h1>
+				<img class="imgen" src="images/blackBoardPlugin.jpg">
+				<p class="txtblock">Se puede cambiar el modo/distribución de las fuentes de vídeo mostradas en el reproductor.</p>
+			</div><br>
+
+			
+			<div class="element">
+				<h1>Subtítulos</h1>
+				<img class="imgen" src="images/captionsButtonPlugin.jpg">
+				<p class="txtblock">Activa los subtítulos con este plugin, y selecciona entre los idiomas deseados. Si se selecciona la opción "ninguno" se desactivarán los subtítulos para el vídeo reproducido.</p>
+			</div><br>
+
+		<!--	<div class="element">
+				<h1>Estadísticas</h1>
+				<img class="imgen" src="images/footprintsPlugin.jpg">
+				<p class="txtblock">En este plugin se muestran las zonas del video mas reproducidas por todos los usuarios.</p>
+			</div><br>
+-->
+			<div class="element">
+				<h1>Diapositivas</h1>
+				<img class="imgen" src="images/frameControlPlugin.jpg">
+				<p class="txtblock">Usando este plugin al usuario se le muestra un popup donde se muestran las diapositivas del vídeo a lo largo de la línea de tiempo, permitiendo al usuario al hacer click sobre ellas, saltar al instante preciso donde se muestran.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Búsqueda</h1>
+				<img class="imgen" src="images/searchPlugin.jpg">
+				<p class="txtblock">Con este plugin los usuarios son capaces de buscar términos de entre todas las fuentes configuradas (OCR de diapositivas y subtítulos, por ejemplo) y devolver al usuario una lista con todos los resultados ordenados por tiempo.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Puntuación</h1>
+				<img class="imgen" src="images/ratePlugin.jpg">
+				<p class="txtblock">Usa este botón para consultar la calificación del vídeo, y votar por una puntuación.</p>
+			</div><br>
+
+	</body>
+</html>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/help_ru.html b/src/main/webapp/static/js/paella/player/resources/style/help/help_ru.html
new file mode 100644
index 0000000000000000000000000000000000000000..eb64bb2104d68cded66d66fb87d947afdb81c7b8
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/help/help_ru.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<link href="https://fonts.googleapis.com/css?family=Istok+Web|Ubuntu|Varela+Round" rel="stylesheet">
+		<link rel="stylesheet" href="style.css" type="text/css" media="screen" title="main style" charset="utf-8">
+	</head>
+	<body>
+
+			<div class="element">
+				<h1>The Paella Player</h1>
+				<img class="imgen" src="images/player_main.jpg">
+				<p class="txtblock">Проигрыватель Paella предназначен для воспроизведения двух видеопотоков, с камеры и экрана преподавателя,
+            а так же дополнительной информации о лекции. Навигация по лекции доступна по слайдам и закладкам. Для воспроизведения лекции сначала 
+            можете нажать кнопку "воспроизведение" в окне с видео или на панели управления.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Play & Pause</h1>
+				<img class="imgen" src="images/playPauseButtonPlugin.jpg">
+				<p class="txtblock">Кнопки для старта воспроизведенеия и паузы. Если щёлкнуть левой кнопкой мыши за пределами панели, то воспроизведение так же начнётся или поставится на паузу.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Volume</h1>
+				<img class="imgen" src="images/volumeRangePlugin.jpg">
+				<p class="txtblock">Управление громкостью воспроизведения с помощью всплывающего окна.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Back & Advance</h1>
+				<img class="imgen" src="images/flexSkipPlugin.jpg">
+				<p class="txtblock">Кнопки для перемотки вперёд/назад.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Playback Rate</h1>
+				<img class="imgen" src="images/playbackRate.jpg">
+				<p class="txtblock">С помощью этого элемента управления пользователи могут изменить скорость воспроизведения.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Qualities</h1>
+				<img class="imgen" src="images/multipleQualitiesPlugin.jpg">
+				<p class="txtblock">Выбрать разрешение видео.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Tabs</h1>
+				<img class="imgen" src="images/tabBarExamplePlugin.jpg">
+				<p class="txtblock">Дополнительные модули, позволяющие пользователям оставлять комментарии и просмотривать дополнительную информацию о видео.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Skin</h1>
+				<img class="imgen" src="images/themeChooserPlugin.jpg">
+				<p class="txtblock">Выбор темы оформления проигрывателя.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Social</h1>
+				<img class="imgen" src="images/socialPlugin.jpg">
+				<p class="txtblock">Поделиться видео в Facebook, Twitter или получить ссылку для встраивания видео в HTML страницы.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Fullscreen</h1>
+				<img class="imgen" src="images/fullScreenButtonPlugin.jpg">
+				<p class="txtblock">Кнопка переключения между полноэкранным и оконным режимом.</p>
+			</div><br>
+
+						<div class="element">
+				<h1>Player View Mode</h1>
+				<img class="imgen" src="images/blackBoardPlugin.jpg">
+				<p class="txtblock">Используйте эту кнопку для изменения размера источников или для изменения взаимного расположения видео.</p>
+			</div><br>
+			
+			<div class="element">
+				<h1>Captions</h1>
+				<img class="imgen" src="images/captionsButtonPlugin.jpg">
+				<p class="txtblock">Включение субтитров для загруженного видео. Когда активировано, пользователь может выбирать между различными языками либо отключать субтитры.</p>
+			</div><br>
+<!--
+			<div class="element">
+				<h1>Statistics</h1>
+				<img class="imgen" src="images/footprintsPlugin.jpg">
+				<p class="txtblock">With this plugin you are able to view a new frame above the timeline for show which part of the 
+			video is the most played.</p>
+			</div><br>
+-->
+			<div class="element">
+				<h1>Frame Control</h1>
+				<img class="imgen" src="images/frameControlPlugin.jpg">
+				<p class="txtblock">Использование этих кнопок позволяет показать слайды из видео. Выбор слайда с помощью мыши позволяет перейсти к месту в видео, где появляется этот слайд.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Search</h1>
+				<img class="imgen" src="images/searchPlugin.jpg">
+				<p class="txtblock">Пользователи могут производить поиск по по всем источникам информации о видео (распознанный текст со слайдов, субтитры). Результат будет показан во всплывающем окне с сортировкой по времени появления в видео.</p>
+			</div><br>
+
+			<div class="element">
+				<h1>Rate</h1>
+				<img class="imgen" src="images/ratePlugin.jpg">
+				<p class="txtblock">Используёте эту кнопку для просмотра рейтинга и оценки этого видео.</p>
+			</div><br>
+
+	</body>
+</html>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/blackBoardPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/blackBoardPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ac10c954ac478d358bb6797f4ba99a1f02f9784f
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/blackBoardPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/captionsButtonPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/captionsButtonPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..be33d39e680646df5d4a6881401e4d3992c49b28
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/captionsButtonPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/editor.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/editor.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a8cfffd91c1de4b727f7a5963b11db60fa40cf30
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/editor.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/flexSkipPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/flexSkipPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8882afb99f5eb2558a52f747351352143f5f7ef6
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/flexSkipPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/footprintsPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/footprintsPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6584e3f67569dd57e349a3fd884e2c35cd9af870
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/footprintsPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/frameControlPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/frameControlPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..05150750f0404aefb2690bf1e028ff96caaba29d
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/frameControlPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/fullScreenButtonPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/fullScreenButtonPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f16f9878df83e358443a3743fc7102a6780f03fc
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/fullScreenButtonPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/helpPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/helpPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b9a9ca73ef3134d7984296460ae7e62bc86a1577
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/helpPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/multipleQualitiesPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/multipleQualitiesPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..23ee34035fa5ef0a9da43728da0fb6076d9dacb1
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/multipleQualitiesPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/playPauseButtonPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/playPauseButtonPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..968c98917af984bf71c3b873393a04d1c3d9919c
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/playPauseButtonPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/playbackRate.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/playbackRate.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8a0e91719ef111f7c9e2829f613be32c5811a99a
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/playbackRate.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/player_main.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/player_main.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d0821937e3cab7fd6b70a90ba1428cfebdeb8e70
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/player_main.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/ratePlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/ratePlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..22d385555020bdb23e7c8c324c8f817ca3bb1639
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/ratePlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/searchPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/searchPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bc1e84bb40480e799e8859c552565b1387d54017
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/searchPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/socialPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/socialPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4c8052f584bbefbe189791c603fbaa3facc1c6bd
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/socialPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/tabBarExamplePlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/tabBarExamplePlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5ae58e001ab16530ddffba9a92e0b77cdc688784
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/tabBarExamplePlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/themeChooserPlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/themeChooserPlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..000c157ba9a809aef3cadd679a83817a3d4e5371
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/themeChooserPlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/viewModePlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/viewModePlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8b07e74840e733dcdc21c692283d5681901194ad
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/viewModePlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/images/volumeRangePlugin.jpg b/src/main/webapp/static/js/paella/player/resources/style/help/images/volumeRangePlugin.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..31b19b79d68820558f25c460a9a600d8a171f22b
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/help/images/volumeRangePlugin.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/help/style.css b/src/main/webapp/static/js/paella/player/resources/style/help/style.css
new file mode 100644
index 0000000000000000000000000000000000000000..59e6ff0d7067123f0e1bb29ab48f8c9a8bf716d0
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/help/style.css
@@ -0,0 +1,226 @@
+
+html {
+	margin: 0px;
+}
+
+body {
+	font-family: 'Ubuntu', sans-serif;
+	margin: 0px;
+}
+
+pre {
+	padding: 20px;
+	border-bottom: 2px solid #cc0000;
+	border-top: 2px solid #cc0000;
+}
+
+iframe {
+	margin-left: auto;
+	margin-right: auto;
+	display: block;
+}
+
+h2 {
+	color: #909090;
+}
+
+h1 {
+	color: #cc0000;
+}
+
+.alignCenter {
+	display: block;
+	margin-right: auto;
+	margin-left: auto;
+	max-width: 90%;
+}
+
+.image {
+	background-size: 100% auto;
+	background-repeat: no-repeat;
+}
+
+#logo {
+	background-image: url(logo_paella.png);
+	width: 140px;
+	height: 140px;
+	float: left;
+}
+
+.pageHeader {
+	background-color: white;
+	padding: 20px;
+	border-bottom: 1px solid #cc0000;
+	height: 170px;
+}
+
+.content {
+	width: 100%;
+	background-color: white;
+	margin-left: auto;
+	margin-right: auto;
+	max-width: 1100px;
+	padding-left: 30px;
+	padding-right: 30px;
+}
+
+.content.page {
+	margin-top: 0px;
+	padding-top: 30px;
+	padding-bottom: 100px;
+}
+
+#headerText {
+	font-family: 'Varela Round', sans-serif;;
+	font-size: 60pt;
+	display: block;
+	width: 100%;
+	line-height:90px;
+	margin-left: 157px;
+}
+
+#headerSubtitle {
+	display: block;
+	width: 100%;
+	margin-left: 160px;
+	font-size: 28px;
+	color: gray;
+}
+
+.logoGroup {
+	width: 660px;
+	float: left;
+	margin-top: 20px;
+}
+
+a {
+	color: #fa8528;
+}
+
+a:visited {
+	color: #fa8528;
+}
+
+a:hover {
+	color: #fba352;
+}
+
+a:active {
+	color: #ffb055;
+}
+
+.linkButton {
+	font-size: 20px;
+	color: white;
+	background-color: #fa8528;
+	padding: 20px;
+	border-radius: 5px;
+	border: 1.6pt solid #BA631E;
+	box-shadow: inset -3px -5px 10px 0px #D9711D;
+	display: inline-block;
+	text-decoration: none;
+	text-align: center;
+}
+
+.linkButton.small {
+	padding: 10px;
+	font-size: 12px;
+}
+
+.linkButton:hover {
+	color:white;
+	background-color: #FFA863;
+}
+
+.linkButton:active {
+	color:white;
+	box-shadow: inset 3px 5px 20px 0px #D9711D;
+}
+
+.buttonGroup#downloads {
+	width: 233px;
+	padding-top: 5px;
+	margin-bottom: 30px;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+#githubLink {
+	display: block;
+}
+
+#resourcesLink {
+	display: block;
+}
+
+#downloadPaella3 {
+	display: block;
+	width: 189px;
+	margin-top: 55px;
+	margin-left: auto;
+	margin-right: auto;
+	color: white;
+}
+
+.downloadGroup {
+	width: 250px;
+	float: right;
+}
+
+.footerText {
+	display: inline-block;
+	height: 50px;
+	vertical-align: top;
+	margin-right: 10px;
+	font-size: 10px;
+}
+
+.sponsorLogo {
+	width: 100px;
+	display: inline-block;
+}
+
+.content.footer {
+	border-top: 4px solid #fa8528;
+	padding-top: 10px;
+}
+
+.menu {
+	margin-top: 165px;
+}
+
+.menuItem {
+	list-style-type:none;
+	display: inline;
+	margin-right: 30px
+}
+
+.menuItemLink {
+	cursor: pointer;
+}
+
+.menuItemLink.current {
+	color: gray;
+}
+
+.element{
+  margin-left: auto;
+  display: block;
+  margin-right: auto;
+  width: 65%;
+}
+
+.imgen{
+	margin-left: auto;
+  margin-left: auto;
+  width: 100%;
+}
+
+.txtblock{
+  color: black;
+  font-size: large;
+  font-family: 'Istok Web', sans-serif;;
+  font-style: oblique;
+}
+
+
diff --git a/src/main/webapp/static/js/paella/player/resources/style/hscroll_arrows.png b/src/main/webapp/static/js/paella/player/resources/style/hscroll_arrows.png
new file mode 100644
index 0000000000000000000000000000000000000000..fcbd854aa865fa02a1a7b4311e1c26b563aecad9
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/hscroll_arrows.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/hscroll_arrows_orange.png b/src/main/webapp/static/js/paella/player/resources/style/hscroll_arrows_orange.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9a053789968340aaad9b074c2061cee1235c9d3
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/hscroll_arrows_orange.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/icon_rotate.svg b/src/main/webapp/static/js/paella/player/resources/style/icon_rotate.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3b116d5b3abd0ab09e05510be5900daf042d63ff
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/icon_rotate.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M28.675,28.287L27,26.839L33.674,26L33.808,32.725L31.703,30.906C28.782,34.039 24.618,36 20,36C14.825,36 10.22,33.538 7.295,29.722L10.798,27.699C13,30.328 16.306,32 20,32C23.41,32 26.49,30.575 28.675,28.287ZM4.41,23.613C4.142,22.452 4,21.242 4,20C4,12.02 9.855,5.396 17.5,4.195L17.5,8.261C12.075,9.413 8,14.234 8,20C8,20.79 8.077,21.563 8.223,22.31L10.597,21.499L7.955,27.686L2.08,24.409L4.41,23.613ZM22.536,8.416L22.158,10.598L18,5.31L23.594,2.335L23.22,4.472C27.411,5.361 31.237,7.919 33.616,11.877C36.283,16.312 36.546,21.527 34.783,26L31.244,24.04C32.362,20.798 32.092,17.103 30.188,13.938C28.431,11.015 25.623,9.11 22.536,8.416Z" style="fill:rgb(80,80,80);"/>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/icon_switch.svg b/src/main/webapp/static/js/paella/player/resources/style/icon_switch.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5de5a29887e268fe0b1782304ea12727de414712
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/icon_switch.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <g transform="matrix(1,0,0,1,-1.86437,4.42279)">
+        <path d="M13.92,18.884L13.92,25.026L4.471,15.577L13.92,6.129L13.92,12.27L29.809,12.27L29.809,6.129L39.257,15.577L29.809,25.026L29.809,18.884L13.92,18.884Z" style="fill:rgb(80,80,80);"/>
+    </g>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/live_video.png b/src/main/webapp/static/js/paella/player/resources/style/live_video.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f92521e3d29826834082918658b95be879962ee
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/live_video.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/logo.png b/src/main/webapp/static/js/paella/player/resources/style/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed155f37afaf7be0d4b9259f13bff8d8e51d3f94
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/logo.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/minimize.svg b/src/main/webapp/static/js/paella/player/resources/style/minimize.svg
new file mode 100644
index 0000000000000000000000000000000000000000..16808eb4df4ed32545de1727e8ab48c8d4603d1b
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/minimize.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path d="M39,34l-15,0l0,-14l-22,0l0,-11l37,0l0,25Z" style="fill:#6a6a6a;"/><rect x="1" y="21" width="22" height="15" style="fill:#6a6a6a;"/></svg>
\ No newline at end of file
diff --git a/src/main/webapp/static/js/paella/player/resources/style/paella_logo.png b/src/main/webapp/static/js/paella/player/resources/style/paella_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ce588b55e549598438e2adeee5a2176a364b0e4
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/paella_logo.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/paella_logo_old.png b/src/main/webapp/static/js/paella/player/resources/style/paella_logo_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..de2727678a3a7b36babf8be323777bbfaf9e16bf
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/paella_logo_old.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/professor_icon.svg b/src/main/webapp/static/js/paella/player/resources/style/professor_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8d8ea8e94e5c80ee095804b8ea555ed070178aa0
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/professor_icon.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 36 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M36,0L36,34L0,34L0,0L36,0ZM26.968,20C27.442,20 27.828,19.615 27.828,19.14L27.828,17.86C27.828,17.385 27.442,17 26.968,17L9.032,17C8.558,17 8.172,17.385 8.172,17.86L8.172,19.14C8.172,19.615 8.558,20 9.032,20L14,20L14,31L22,31L22,20L26.968,20ZM24.991,16C24.99,15.984 24.552,11.315 23.936,10.039C23.319,8.762 20.25,8.717 20.25,8.717C20.25,8.717 19.543,12.025 19.354,12.654C19.164,13.284 19.125,13.43 19.125,13.43C19.125,13.43 18.646,10.234 18.562,9.91C18.5,9.666 18.088,9.65 18,9.65C17.912,9.65 17.5,9.678 17.437,9.921C17.354,10.246 17.01,13.359 17.01,13.359C17.01,13.359 16.905,13.284 16.716,12.654C16.526,12.025 15.75,8.717 15.75,8.717C15.75,8.717 12.681,8.762 12.064,10.039C11.447,11.317 11.009,16 11.009,16L24.991,16ZM19.125,8.717C19.186,8.978 18.358,9.54 18.358,9.54L17.696,9.524C17.696,9.524 16.814,8.978 16.875,8.717C16.931,8.477 17.686,8.503 18,8.5C18.316,8.503 19.069,8.477 19.125,8.717ZM18,1.133C19.711,1.133 21.1,2.638 21.1,4.491C21.1,6.344 19.711,7.848 18,7.848C16.289,7.848 14.9,6.344 14.9,4.491C14.9,2.638 16.289,1.133 18,1.133Z"/>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/professor_over_slide_icon.svg b/src/main/webapp/static/js/paella/player/resources/style/professor_over_slide_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3e4e474504259389e9cda50c31badcdfc3f7aa5a
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/professor_over_slide_icon.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 61 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M61,35L24,35L24,14L21,14L21,0L61,0L61,35ZM42.905,22.75L48.554,31.204C48.782,31.731 48.907,32.517 48.473,32.677C47.865,32.902 47.335,32.875 47.086,32.501L41.646,24.32L36.079,32.501C35.462,33.088 34.821,32.999 34.566,32.8C34.314,32.603 34.117,32.088 34.611,31.204L40.048,22.75L26.714,22.75L26.714,5.25L24.81,5.25L24.81,3.5L57.19,3.5L57.19,5.25L55.286,5.25L55.286,22.75L42.905,22.75ZM28.619,5.25L53.381,5.25L53.381,21L28.619,21L28.619,5.25ZM38.14,10.589L31.033,18.205L30.33,17.658L38.113,9.319L43.164,14.017L50.128,7.666L50.781,8.262L43.163,15.209L38.14,10.589Z"/>
+    <path d="M23,15L23,36L0,36L0,15L23,15ZM17.435,27C17.625,27 17.779,26.846 17.779,26.656L17.779,26.144C17.779,25.954 17.625,25.8 17.435,25.8L5.565,25.8C5.375,25.8 5.221,25.954 5.221,26.144L5.221,26.656C5.221,26.846 5.375,27 5.565,27L8.625,27L8.625,34.2L14.375,34.2L14.375,27L17.435,27ZM15.967,25.2C15.966,25.189 15.686,22.102 15.293,21.259C14.898,20.414 12.937,20.384 12.937,20.384C12.937,20.384 12.486,22.571 12.365,22.988C12.244,23.404 12.219,23.501 12.219,23.501C12.219,23.501 11.913,21.387 11.859,21.173C11.819,21.011 11.556,21.001 11.5,21.001C11.444,21.001 11.181,21.02 11.141,21.18C11.087,21.395 10.868,23.454 10.868,23.454C10.868,23.454 10.801,23.404 10.679,22.988C10.558,22.571 10.062,20.384 10.062,20.384C10.062,20.384 8.102,20.414 7.707,21.259C7.313,22.103 7.033,25.2 7.033,25.2L15.967,25.2ZM12.219,20.384C12.258,20.545 11.729,20.892 11.729,20.892L11.306,20.882C11.306,20.882 10.742,20.545 10.781,20.384C10.817,20.236 11.3,20.252 11.5,20.25C11.702,20.252 12.183,20.236 12.219,20.384ZM11.5,15.7C12.593,15.7 13.481,16.629 13.481,17.774C13.481,18.918 12.593,19.847 11.5,19.847C10.407,19.847 9.519,18.918 9.519,17.774C9.519,16.629 10.407,15.7 11.5,15.7Z"/>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/professor_over_slide_right_icon.svg b/src/main/webapp/static/js/paella/player/resources/style/professor_over_slide_right_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b64bde44a827741724e6e6ca281ab6bc2d227514
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/professor_over_slide_right_icon.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 61 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M40,14L37,14L37,35L0,35L0,0L40,0L40,14ZM21.905,22.75L27.554,31.204C27.782,31.731 27.907,32.517 27.473,32.677C26.865,32.902 26.335,32.875 26.086,32.501L20.646,24.32L15.079,32.501C14.462,33.088 13.821,32.999 13.566,32.8C13.314,32.603 13.117,32.088 13.611,31.204L19.048,22.75L5.714,22.75L5.714,5.25L3.81,5.25L3.81,3.5L36.19,3.5L36.19,5.25L34.286,5.25L34.286,22.75L21.905,22.75ZM7.619,5.25L32.381,5.25L32.381,21L7.619,21L7.619,5.25ZM17.14,10.589L10.033,18.205L9.33,17.658L17.113,9.319L22.164,14.017L29.128,7.666L29.781,8.262L22.163,15.209L17.14,10.589Z"/>
+    <path d="M61,15L61,36L38,36L38,15L61,15ZM55.435,27C55.625,27 55.779,26.846 55.779,26.656L55.779,26.144C55.779,25.954 55.625,25.8 55.435,25.8L43.565,25.8C43.375,25.8 43.221,25.954 43.221,26.144L43.221,26.656C43.221,26.846 43.375,27 43.565,27L46.625,27L46.625,34.2L52.375,34.2L52.375,27L55.435,27ZM53.967,25.2C53.966,25.189 53.686,22.102 53.293,21.259C52.898,20.414 50.937,20.384 50.937,20.384C50.937,20.384 50.486,22.571 50.365,22.988C50.244,23.404 50.219,23.501 50.219,23.501C50.219,23.501 49.913,21.387 49.859,21.173C49.819,21.011 49.556,21.001 49.5,21.001C49.444,21.001 49.181,21.02 49.141,21.18C49.087,21.395 48.868,23.454 48.868,23.454C48.868,23.454 48.801,23.404 48.679,22.988C48.558,22.571 48.062,20.384 48.062,20.384C48.062,20.384 46.102,20.414 45.707,21.259C45.313,22.103 45.033,25.2 45.033,25.2L53.967,25.2ZM50.219,20.384C50.258,20.545 49.729,20.892 49.729,20.892L49.306,20.882C49.306,20.882 48.742,20.545 48.781,20.384C48.817,20.236 49.3,20.252 49.5,20.25C49.702,20.252 50.183,20.236 50.219,20.384ZM49.5,15.7C50.593,15.7 51.481,16.629 51.481,17.774C51.481,18.918 50.593,19.847 49.5,19.847C48.407,19.847 47.519,18.918 47.519,17.774C47.519,16.629 48.407,15.7 49.5,15.7Z"/>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/professor_slide.jpg b/src/main/webapp/static/js/paella/player/resources/style/professor_slide.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c2ccd471f44e2de39f46e5d6b8eac48823592ea9
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/professor_slide.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/professor_slide_icon.svg b/src/main/webapp/static/js/paella/player/resources/style/professor_slide_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2355bd61cc0b4ad634e223d7a369113386f81cb6
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/professor_slide_icon.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 74 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <g transform="matrix(1,0,0,1,-3,-163)">
+        <g>
+            <g transform="matrix(1,0,0,1,41,163)">
+                <path d="M36,34L0,34L0,0L36,0L36,34ZM20,22L24.998,30.289C25.21,30.807 25.325,31.582 24.923,31.74C24.361,31.961 23.869,31.935 23.639,31.566L18.598,23.508L13.441,31.566C12.869,32.144 12.275,32.057 12.039,31.861C11.805,31.667 11.623,31.16 12.081,30.289L17,22L5,22L5,5L3,5L3,3L33,3L33,5L31,5L31,22L20,22ZM7,5L29,5L29,20L7,20L7,5ZM15.459,10.085L9.145,17.338L8.52,16.818L15.435,8.876L19.923,13.35L26.11,7.301L26.69,7.869L19.921,14.484L15.459,10.085Z"/>
+            </g>
+            <g transform="matrix(1,0,0,1,-35,163)">
+                <path d="M74,0L74,34L38,34L38,0L74,0ZM64.968,20C65.442,20 65.828,19.615 65.828,19.14L65.828,17.86C65.828,17.385 65.442,17 64.968,17L47.032,17C46.558,17 46.172,17.385 46.172,17.86L46.172,19.14C46.172,19.615 46.558,20 47.032,20L52,20L52,31L60,31L60,20L64.968,20ZM62.991,16C62.99,15.984 62.552,11.315 61.936,10.039C61.319,8.762 58.25,8.717 58.25,8.717C58.25,8.717 57.543,12.025 57.354,12.654C57.164,13.284 57.125,13.43 57.125,13.43C57.125,13.43 56.646,10.234 56.562,9.91C56.5,9.666 56.088,9.65 56,9.65C55.912,9.65 55.5,9.678 55.437,9.921C55.354,10.246 55.01,13.359 55.01,13.359C55.01,13.359 54.905,13.284 54.716,12.654C54.526,12.025 53.75,8.717 53.75,8.717C53.75,8.717 50.681,8.762 50.064,10.039C49.447,11.317 49.009,16 49.009,16L62.991,16ZM57.125,8.717C57.186,8.978 56.358,9.54 56.358,9.54L55.696,9.524C55.696,9.524 54.814,8.978 54.875,8.717C54.931,8.477 55.686,8.503 56,8.5C56.316,8.503 57.069,8.477 57.125,8.717ZM56,1.133C57.711,1.133 59.1,2.638 59.1,4.491C59.1,6.344 57.711,7.848 56,7.848C54.289,7.848 52.9,6.344 52.9,4.491C52.9,2.638 54.289,1.133 56,1.133Z"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/professor_slide_paella.jpg b/src/main/webapp/static/js/paella/player/resources/style/professor_slide_paella.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2d97008a9b51463de8432eb8eac17b3824ffb158
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/professor_slide_paella.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/s_p_blackboard.svg b/src/main/webapp/static/js/paella/player/resources/style/s_p_blackboard.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5443212684249cd12a70f34f6b8c4f9667f2f6b1
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/s_p_blackboard.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 66 37" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <g transform="matrix(1,0,0,1,-0.467307,-280.688)">
+        <g>
+            <g transform="matrix(1,0,0,1,0.467307,280.688)">
+                <path d="M22.17,17.719L0,17.719L0,0L22.17,0L22.17,17.719ZM12.141,11.518L15.272,15.798C15.399,16.064 15.468,16.462 15.227,16.544C14.89,16.657 14.596,16.644 14.458,16.454L11.443,12.313L8.358,16.454C8.016,16.751 7.66,16.707 7.519,16.606C7.379,16.506 7.27,16.245 7.544,15.798L10.557,11.518L3.167,11.518L3.167,2.658L2.111,2.658L2.111,1.772L20.059,1.772L20.059,2.658L19.003,2.658L19.003,11.518L12.141,11.518ZM4.223,2.658L17.947,2.658L17.947,10.632L4.223,10.632L4.223,2.658ZM9.5,5.361L5.561,9.217L5.171,8.94L9.485,4.718L12.285,7.096L16.144,3.881L16.506,4.183L12.284,7.7L9.5,5.361Z"/>
+            </g>
+            <g transform="matrix(1,0,0,1,0.467307,280.688)">
+                <path d="M63.96,4.937L63.96,30.773L25.402,30.773L25.402,4.937L63.96,4.937ZM49.693,12.301L49.693,10.801C49.693,9.881 49.145,9.301 48.193,9.301L41.193,9.301C40.241,9.301 39.693,9.881 39.693,10.801C39.693,11.722 39.693,12.301 39.693,12.301L36.193,12.301C35.431,12.301 34.693,13.065 34.693,13.801L34.693,23.801C34.693,24.538 35.431,25.301 36.193,25.301L53.193,25.301C53.955,25.301 54.693,24.538 54.693,23.801L54.693,13.801C54.693,13.065 53.955,12.301 53.193,12.301L49.693,12.301ZM44.554,14.301C46.839,14.301 48.554,16.092 48.554,18.301C48.554,20.51 46.839,22.301 44.554,22.301C42.269,22.301 40.554,20.51 40.554,18.301C40.554,16.092 42.269,14.301 44.554,14.301Z"/>
+            </g>
+            <g transform="matrix(1,0,0,1,0.467307,280.688)">
+                <path d="M22.114,18.915L22.114,36.602L0,36.602L0,18.915L22.114,18.915ZM16.804,29.022C16.964,29.021 17.094,28.892 17.094,28.732L17.094,28.3C17.094,28.141 16.964,28.011 16.804,28.011L5.31,28.011C5.15,28.011 5.02,28.141 5.02,28.3L5.02,28.732C5.02,28.892 5.15,29.022 5.31,29.022L8.293,29.022L8.293,35.086L13.821,35.086L13.821,29.022L16.804,29.022ZM15.352,27.506C15.351,27.494 15.082,24.896 14.704,24.186C14.325,23.474 12.439,23.45 12.439,23.45C12.439,23.45 12.005,25.292 11.889,25.642C11.772,25.993 11.748,26.074 11.748,26.074C11.748,26.074 11.454,24.294 11.403,24.114C11.364,23.978 11.111,23.969 11.057,23.969C11.003,23.969 10.75,23.985 10.712,24.12C10.66,24.301 10.449,26.035 10.449,26.035C10.449,26.035 10.385,25.993 10.268,25.642C10.152,25.292 9.675,23.45 9.675,23.45C9.675,23.45 7.79,23.474 7.411,24.186C7.032,24.897 6.762,27.506 6.762,27.506L15.352,27.506ZM11.748,23.45C11.786,23.585 11.277,23.878 11.277,23.878L10.87,23.869C10.87,23.869 10.329,23.585 10.366,23.45C10.401,23.324 10.864,23.338 11.057,23.337C11.251,23.338 11.714,23.324 11.748,23.45ZM11.057,19.505C12.108,19.505 12.961,20.287 12.961,21.251C12.961,22.215 12.108,22.997 11.057,22.997C10.006,22.997 9.153,22.215 9.153,21.251C9.153,20.287 10.006,19.505 11.057,19.505Z"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/slide_icon.svg b/src/main/webapp/static/js/paella/player/resources/style/slide_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c637633d7e36a4887693ecd5506bda2f9d8245d7
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/slide_icon.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 36 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M36,34L0,34L0,0L36,0L36,34ZM20,22L24.998,30.289C25.21,30.807 25.325,31.582 24.923,31.74C24.361,31.961 23.869,31.935 23.639,31.566L18.598,23.508L13.441,31.566C12.869,32.144 12.275,32.057 12.039,31.861C11.805,31.667 11.623,31.16 12.081,30.289L17,22L5,22L5,5L3,5L3,3L33,3L33,5L31,5L31,22L20,22ZM7,5L29,5L29,20L7,20L7,5ZM15.459,10.085L9.145,17.338L8.52,16.818L15.435,8.876L19.923,13.35L26.11,7.301L26.69,7.869L19.921,14.484L15.459,10.085Z"/>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/slide_over_professor_icon.svg b/src/main/webapp/static/js/paella/player/resources/style/slide_over_professor_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7450f6f7fb173b4149ab8b5c923a3856ecb6d54b
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/slide_over_professor_icon.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 57 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M21,36L0,36L0,16L21,16L21,36ZM11.5,29L14.466,33.831C14.586,34.132 14.651,34.581 14.423,34.673C14.104,34.801 13.826,34.786 13.695,34.572L10.839,29.897L7.916,34.572C7.593,34.907 7.256,34.857 7.122,34.743C6.99,34.63 6.887,34.336 7.146,33.831L10,29L3,29L3,19L2,19L2,18L19,18L19,19L18,19L18,29L11.5,29ZM4,19L17,19L17,28L4,28L4,19ZM8.999,22.051L5.267,26.403L4.898,26.091L8.984,21.325L11.636,24.01L15.292,20.381L15.635,20.721L11.635,24.691L8.999,22.051Z"/>
+    <path d="M57,35L22,35L22,15L17,15L17,0L57,0L57,35ZM47.346,20C47.663,20 47.92,19.743 47.92,19.427L47.92,18.573C47.92,18.257 47.663,18 47.346,18L26.654,18C26.337,18 26.08,18.257 26.08,18.573L26.08,19.427C26.08,19.743 26.337,20 26.654,20L32,20L32,32L42,32L42,20L47.346,20ZM44.768,17C44.766,16.977 44.28,11.836 43.596,10.431C42.91,9.023 39.5,8.974 39.5,8.974C39.5,8.974 38.715,12.619 38.504,13.313C38.294,14.007 38.25,14.168 38.25,14.168C38.25,14.168 37.718,10.646 37.625,10.288C37.555,10.019 37.098,10.002 37,10.002C36.902,10.002 36.445,10.033 36.375,10.301C36.282,10.659 35.9,14.089 35.9,14.089C35.9,14.089 35.784,14.007 35.573,13.313C35.362,12.619 34.5,8.974 34.5,8.974C34.5,8.974 31.09,9.023 30.404,10.431C29.719,11.839 29.232,17 29.232,17L44.768,17ZM38.25,8.974C38.318,9.242 37.398,9.821 37.398,9.821L36.662,9.804C36.662,9.804 35.682,9.242 35.75,8.974C35.812,8.726 36.651,8.754 37,8.75C37.351,8.753 38.188,8.726 38.25,8.974ZM37,1.167C38.901,1.167 40.444,2.715 40.444,4.623C40.444,6.53 38.901,8.079 37,8.079C35.099,8.079 33.556,6.53 33.556,4.623C33.556,2.715 35.099,1.167 37,1.167Z"/>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/slide_over_professor_right_icon.svg b/src/main/webapp/static/js/paella/player/resources/style/slide_over_professor_right_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..940720cc10d837a4dbc61a6b3123c828196d151b
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/slide_over_professor_right_icon.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 57 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <g transform="matrix(1,0,0,1,-11,-242)">
+        <g>
+            <g transform="matrix(1,0,0,1,11,242)">
+                <path d="M57,36L36,36L36,16L57,16L57,36ZM47.5,29L50.466,33.831C50.586,34.132 50.651,34.581 50.423,34.673C50.104,34.801 49.826,34.786 49.695,34.572L46.839,29.897L43.916,34.572C43.593,34.907 43.256,34.857 43.122,34.743C42.99,34.63 42.887,34.336 43.146,33.831L46,29L39,29L39,19L38,19L38,18L55,18L55,19L54,19L54,29L47.5,29ZM40,19L53,19L53,28L40,28L40,19ZM44.999,22.051L41.267,26.403L40.898,26.091L44.984,21.325L47.636,24.01L51.292,20.381L51.635,20.721L47.635,24.691L44.999,22.051Z"/>
+            </g>
+            <g transform="matrix(1,0,0,1,11,242)">
+                <path d="M0,0L40,0L40,15L35,15L35,35L0,35L0,0ZM30.346,20C30.663,20 30.92,19.743 30.92,19.427L30.92,18.573C30.92,18.257 30.663,18 30.346,18L9.654,18C9.337,18 9.08,18.257 9.08,18.573L9.08,19.427C9.08,19.743 9.337,20 9.654,20L15,20L15,32L25,32L25,20L30.346,20ZM27.768,17C27.765,16.969 27.279,11.835 26.596,10.431C25.91,9.023 22.5,8.974 22.5,8.974C22.5,8.974 21.715,12.619 21.504,13.313C21.294,14.007 21.25,14.168 21.25,14.168C21.25,14.168 20.718,10.646 20.625,10.288C20.555,10.019 20.098,10.002 20,10.002C19.902,10.002 19.445,10.033 19.375,10.301C19.282,10.659 18.9,14.089 18.9,14.089C18.9,14.089 18.784,14.007 18.573,13.313C18.362,12.619 17.5,8.974 17.5,8.974C17.5,8.974 14.09,9.023 13.404,10.431C12.719,11.839 12.232,17 12.232,17L27.768,17ZM21.25,8.974C21.318,9.242 20.398,9.821 20.398,9.821L19.662,9.804C19.662,9.804 18.682,9.242 18.75,8.974C18.812,8.726 19.651,8.754 20,8.75C20.351,8.753 21.188,8.726 21.25,8.974ZM20,1.167C21.901,1.167 23.444,2.715 23.444,4.623C23.444,6.53 21.901,8.079 20,8.079C18.099,8.079 16.556,6.53 16.556,4.623C16.556,2.715 18.099,1.167 20,1.167Z"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/slide_professor.jpg b/src/main/webapp/static/js/paella/player/resources/style/slide_professor.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7bb8c19933662de96b89eed218849222a73b4237
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/slide_professor.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/slide_professor_icon.svg b/src/main/webapp/static/js/paella/player/resources/style/slide_professor_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..fcd048d393a58d1cb314759ef2fdd31d3e316e21
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/slide_professor_icon.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 74 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M36,34L0,34L0,0L36,0L36,34ZM74,34L38,34L38,0L74,0L74,34ZM20,22L24.998,30.289C25.21,30.807 25.325,31.582 24.923,31.74C24.361,31.961 23.869,31.935 23.639,31.566L18.598,23.508L13.441,31.566C12.869,32.144 12.275,32.057 12.039,31.861C11.805,31.667 11.623,31.16 12.081,30.289L17,22L5,22L5,5L3,5L3,3L33,3L33,5L31,5L31,22L20,22ZM64.968,17L47.032,17C46.557,17 46.172,17.385 46.172,17.86L46.172,19.14C46.172,19.615 46.557,20 47.032,20L52,20L52,31L60,31L60,20L64.968,20C65.442,20 65.828,19.615 65.828,19.14L65.828,17.86C65.828,17.385 65.443,17 64.968,17ZM7,5L29,5L29,20L7,20L7,5ZM15.459,10.085L9.145,17.338L8.52,16.818L15.435,8.876L19.923,13.35L26.11,7.301L26.69,7.869L19.921,14.484L15.459,10.085ZM62.991,16C62.99,15.984 62.552,11.315 61.936,10.039C61.319,8.762 58.25,8.717 58.25,8.717C58.25,8.717 57.543,12.025 57.354,12.654C57.164,13.284 57.125,13.43 57.125,13.43C57.125,13.43 56.646,10.234 56.562,9.91C56.5,9.666 56.088,9.65 56,9.65C55.912,9.65 55.5,9.678 55.437,9.921C55.354,10.246 55.01,13.359 55.01,13.359C55.01,13.359 54.905,13.284 54.716,12.654C54.526,12.025 53.75,8.717 53.75,8.717C53.75,8.717 50.681,8.762 50.064,10.039C49.447,11.317 49.009,16 49.009,16L62.991,16ZM57.125,8.717C57.186,8.978 56.358,9.54 56.358,9.54L55.696,9.524C55.696,9.524 54.814,8.978 54.875,8.717C54.931,8.477 55.686,8.503 56,8.5C56.316,8.503 57.069,8.477 57.125,8.717ZM56,1.133C57.711,1.133 59.1,2.638 59.1,4.491C59.1,6.344 57.711,7.848 56,7.848C54.289,7.848 52.9,6.344 52.9,4.491C52.9,2.638 54.289,1.133 56,1.133Z"/>
+</svg>
diff --git a/src/main/webapp/static/js/paella/player/resources/style/slide_professor_paella.jpg b/src/main/webapp/static/js/paella/player/resources/style/slide_professor_paella.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7484910f897ea7e9a9e70343f495eec10002ee06
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/slide_professor_paella.jpg differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/slides_icon.png b/src/main/webapp/static/js/paella/player/resources/style/slides_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..e8707b56614c1fd0813141a9acfed1bc196d1827
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/slides_icon.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/statistics_icon.png b/src/main/webapp/static/js/paella/player/resources/style/statistics_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..4eaf6492311ae092dd7e1044fbd8f9c30eebfc4a
Binary files /dev/null and b/src/main/webapp/static/js/paella/player/resources/style/statistics_icon.png differ
diff --git a/src/main/webapp/static/js/paella/player/resources/style/style_dark.css b/src/main/webapp/static/js/paella/player/resources/style/style_dark.css
new file mode 100644
index 0000000000000000000000000000000000000000..8706cc2083235587ec50669d3923960b33dca697
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/style_dark.css
@@ -0,0 +1,3990 @@
+/* Light icons over dark background */
+body {
+  height: 100%;
+  width: 100%;
+  font-family: Verdana, sans-serif;
+  font-size: 12px;
+  background: #4b4b4b;
+  touch-action: none;
+}
+a {
+  color: #636363;
+}
+a:hover {
+  color: #a4a4a4;
+}
+a:active {
+  color: #3d3d3d;
+}
+a:visited {
+  color: #636363;
+}
+.videoWrapper {
+  -moz-box-shadow: 2px 2px 6px #000;
+  -webkit-box-shadow: 2px 2px 6px #000;
+  box-shadow: 2px 2px 6px #000;
+  background: black;
+}
+div {
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.buttonPlugin {
+  cursor: pointer;
+  padding-right: 0px;
+  padding-left: 0px;
+  background-origin: border-box;
+  position: relative;
+  display: block;
+  float: left;
+  align-items: stretch;
+  background-color: transparent;
+  border: none;
+  box-sizing: border-box;
+  min-width: 30px;
+  height: 30px;
+  margin-left: 5px;
+  margin-right: 5px;
+  margin-top: 5px;
+  color: #151515;
+  text-align: center;
+}
+button,
+div i.button-icon {
+  color: white;
+  font-size: 18px;
+  line-height: 30px;
+  position: absolute;
+  top: 0px;
+  left: 5px;
+}
+span.expandable-content {
+  color: #151515;
+  width: 80px;
+  display: block;
+  float: left;
+}
+.buttonPlugin.expandable-content {
+  background-color: transparent !important;
+}
+.buttonPlugin {
+  position: relative;
+}
+.button-text {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  top: 0px;
+  bottom: 0px;
+  text-align: center;
+  line-height: 30px;
+  z-index: 1;
+}
+i.button-icon.icon-screen {
+  font-size: 21.96px;
+  padding-left: 0px;
+}
+.play-button-on-screen {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  position: absolute;
+  opacity: 0.7;
+  top: 0;
+  left: 0;
+  bottom: 51px;
+  right: 0;
+  z-index: 50;
+  width: 100%;
+  height: 100%;
+}
+.play-button-on-screen .play-icon {
+  width: 300px;
+  height: 300px;
+  background-image: url(../images/play.svg);
+}
+@media screen and (max-width: 1000px) {
+  .play-button-on-screen .play-icon {
+    width: 300px;
+    height: 300px;
+  }
+}
+@media screen and (max-width: 700px) {
+  .play-button-on-screen .play-icon {
+    width: 150px;
+    height: 150px;
+  }
+}
+@media screen and (max-width: 400px) {
+  .play-button-on-screen .play-icon {
+    width: 80px;
+    height: 80px;
+  }
+}
+#playerContainer {
+  background-color: white;
+}
+#playerContainer.modalVisible > :not(.modalMessageContainer) {
+  filter: blur(10px);
+}
+#playerContainer:-webkit-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-moz-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-ms-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-o-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#ignoreBrowserCheckLink {
+  color: black;
+  text-decoration: underline;
+}
+.alt-scroll-message-container {
+  position: absolute;
+  left: 0px;
+  top: 0px;
+  bottom: 0px;
+  right: 0px;
+  background-color: rgba(0, 0, 0, 0.45);
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-size: 20px;
+  color: white;
+  text-shadow: 1px 1px 4px black;
+}
+.alt-scroll-message-container p {
+  text-align: center;
+}
+.playbackControls {
+  background-color: rgba(0, 0, 0, 0.75);
+  background-image: none;
+  background-size: auto;
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  height: 56px;
+  z-index: 100;
+}
+.playbackBarPlugins {
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  height: 40px;
+  font-size: 12px;
+  overflow: hidden;
+}
+.playbackBar {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  height: 14px;
+  background-color: rgba(125, 125, 125, 0.5);
+  border-bottom: 1px solid rgba(90, 90, 90, 0.6);
+  border-top: 1px solid rgba(90, 90, 90, 0.6);
+  cursor: pointer;
+}
+.playbackBar:focus {
+  box-shadow: inset 0px 0px 5px 0px #FF4C4C;
+  outline: none;
+}
+.playbackBarFull {
+  height: 12px;
+  background-color: #cc0000;
+  background: linear-gradient(to bottom, #ff0000 0%, #690000 100%);
+}
+.playbackBarFull.disabled {
+  opacity: 0.2;
+}
+.buttonPlugin.left {
+  float: left;
+}
+.buttonPlugin.right {
+  float: right;
+}
+.buttonPlugin:hover {
+  background-color: #FF4C4C;
+}
+.buttonPlugin:focus {
+  box-shadow: inset 0px 0px 5px 0px #FF4C4C;
+  outline: none;
+}
+.buttonPlugin.selected {
+  background-color: #cc0000;
+}
+.popUpPluginContainer {
+  position: absolute;
+  right: 0px;
+  z-index: 110;
+  color: white;
+}
+.buttonPluginPopUp {
+  background-color: rgba(0, 0, 0, 0.75);
+  position: absolute;
+  bottom: -14px;
+}
+.timelinePluginContainer {
+  position: absolute;
+  left: 0px;
+  width: 100%;
+  background-color: rgba(0, 0, 0, 0.75);
+  bottom: 56px;
+  color: white;
+}
+.buttonTimeLine {
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+}
+/* old style time control */
+.timeControlOld {
+  color: white;
+  display: block;
+  position: relative;
+  width: 69px;
+  height: 44px;
+  background-size: 100%;
+  background-image: url(../images/time_monitor.png);
+  font-size: 10px;
+  padding-top: 11px;
+  background-repeat: no-repeat;
+  bottom: 70px;
+  font-family: verdana;
+  text-align: center;
+  z-index: 100;
+}
+.timeControl {
+  color: white;
+  display: block;
+  position: relative;
+  width: 69px;
+  height: 12px;
+  font-size: 10px;
+  background-repeat: no-repeat;
+  padding-left: 5px;
+  font-family: verdana;
+  text-align: left;
+  z-index: 100;
+  line-height: 12px;
+  margin-top: -12px;
+  cursor: pointer;
+}
+.editControlContainer {
+  z-index: 20;
+}
+.paellaLoadErrorContainer {
+  width: 1000px;
+  margin: auto;
+  margin-top: 200px;
+  text-align: center;
+  padding-top: 80px;
+  padding-bottom: 80px;
+  background-color: rgba(220, 228, 234, 0.9);
+  border-radius: 22px;
+  box-shadow: 1px 1px 8px black;
+  font-family: sans-serif;
+  font-size: 20px;
+}
+.modalMessageContainer {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+.messageContainer {
+  width: 95%;
+  height: 95%;
+  margin-top: 2%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  vertical-align: middle;
+  font-family: sans-serif;
+  padding-left: 80px;
+  padding-right: 80px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+}
+.frameContainer {
+  width: 95%;
+  height: 95%;
+  margin-top: 2%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  /*vertical-align: middle;*/
+  font-family: sans-serif;
+  padding-left: 80px;
+  padding-right: 80px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+  display: block;
+}
+.errorContainer {
+  width: 55%;
+  min-height: 55%;
+  margin-top: 22%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  vertical-align: middle;
+  padding-left: 120px;
+  padding-right: 60px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-family: sans-serif;
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+  border: 7px solid maroon;
+  color: maroon;
+  font-weight: bold;
+  background-image: url(../images/error_icon.png);
+  background-size: 10%;
+  background-repeat: no-repeat;
+  background-position: 50px 40px;
+}
+.paella_messageContainer_closeButton {
+  /*background-image: url(../images/close_button.png);*/
+  width: 20px;
+  height: 20px;
+  position: absolute;
+  display: block;
+  top: 10px;
+  right: 10px;
+  z-index: 999999999;
+  border-radius: 20px;
+}
+.paella_messageContainer_closeButton:hover {
+  color: white;
+  background-color: black;
+}
+.paella_messageContainer_closeButton:active {
+  background-position: 20px;
+}
+.overlayContainer.background {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+#overlayContainer {
+  pointer-events: none;
+}
+#overlayContainer div {
+  pointer-events: none;
+}
+.videoLoaderOverlay {
+  background-color: black;
+}
+.videoOverlayButtonPlugins {
+  z-index: 100;
+  position: absolute;
+  right: 0px;
+  left: 0px;
+  top: 0px;
+  pointer-events: none;
+}
+.divTimeOverlay {
+  position: fixed;
+  background-color: rgba(0, 0, 0, 0.75);
+  color: white;
+  text-align: center;
+  padding-right: 3px;
+  padding-left: 3px;
+  padding-top: 1px;
+  text-shadow: 1px 1px #888888;
+  z-index: 100;
+}
+.divTimeImageOverlay {
+  position: fixed;
+  background-color: rgba(0, 0, 0, 0.75);
+  z-index: 99;
+  width: 256px;
+  -webkit-background-size: cover;
+  -moz-background-size: cover;
+  -o-background-size: cover;
+  background-size: contain;
+}
+.imgOverlay {
+  height: 100%;
+  width: 100%;
+  max-width: none;
+  border: 1px solid rgba(0, 0, 0, 0.75);
+}
+.videoPosterFrameImage {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  height: 100%;
+  width: 100%;
+}
+.playerContainer_controls_playback_playbackBar_canvas {
+  overflow: hidden;
+  position: absolute;
+}
+#playerContainer_controls_playback_playbackBar {
+  overflow: hidden;
+  background-color: #333333;
+}
+.login-link {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+video::-internal-media-controls-download-button {
+  display: none;
+}
+video::-webkit-media-controls-enclosure {
+  overflow: hidden;
+}
+video::-webkit-media-controls-panel {
+  width: calc(100% + 8px);
+  /* Adjust as needed */
+}
+#lazyLoadThumbnailContainer {
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  width: 100%;
+  z-index: 20;
+  /* Over the video contaniner and video layout buttons, but under the play button */
+}
+.dimmed-element {
+  filter: blur(4px);
+}
+/* TODO: Extract this CSS to editor plugins */
+.editorTrackItem.mainTrackTrim {
+  background-image: url(../images/main_track_bkg.png);
+  background-size: 56px 100%;
+}
+/* END EXTRACT */
+/* Begin new editor */
+a.btn {
+  color: #f3f3f3;
+}
+.listItem {
+  color: #f3f3f3;
+}
+.editorContainer {
+  position: fixed;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  width: 100%;
+  height: 100%;
+}
+.paellaEditorRightBar {
+  position: fixed;
+  right: 0px;
+  top: 0px;
+  background-color: #4f4f4f;
+  box-shadow: 1px -4px 12px black;
+}
+.paellaEditorBottomBar {
+  position: fixed;
+  right: 0px;
+  bottom: 0px;
+  left: 0px;
+  background-color: #4f4f4f;
+  box-shadow: 1px 1px 12px black;
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.paellaEditorRightBarContent {
+  padding-left: 10px;
+  padding-right: 10px;
+  font-size: 11px;
+}
+.editorTimelineContainer {
+  margin-top: -21px;
+  position: relative;
+  overflow: auto;
+}
+.editorTimelineContent {
+  background-image: url(../images/light_background.png);
+  top: 0px;
+  box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.7);
+  position: relative;
+}
+.editorTimeLineTimeMarks {
+  position: absolute;
+  top: 0px;
+  height: 20px;
+  left: 0px;
+  right: 0px;
+  z-index: 1;
+  padding-left: 3px;
+  background-image: url(../images/timeline_tracks_bkg.png);
+}
+.editorTimeLineMark {
+  float: left;
+  /*	background-color: rgb(61,62,62);*/
+  font-size: 9px;
+  height: 20px;
+  line-height: 18px;
+}
+.editorTimeLineMark.odd {
+  /*	background-color: rgb(73,82,82);*/
+}
+.editorTrackListItem.master {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  top: 38px;
+  height: 51px;
+}
+.editorTrackListItem.secondary {
+  height: 23px;
+  position: relative;
+}
+.editorTrackListItem.secondary.track0 {
+  margin-top: 90px;
+}
+.editorTrackItem {
+  position: absolute;
+  height: 97%;
+  border-radius: 5px;
+  border: 1px solid #6f6f6f;
+  overflow: hidden;
+}
+.editorTrackItemResizer {
+  width: 2px;
+  top: 20%;
+  bottom: 23%;
+  position: absolute;
+  overflow: hidden;
+  cursor: pointer;
+}
+.editorTrackItemResizer.left {
+  border-right: 8px double #7c7c7c;
+  left: 0px;
+}
+.editorTrackItemResizer.right {
+  border-left: 8px double #7c7c7c;
+  right: 0px;
+}
+.editorTrackItemMoveArea {
+  position: absolute;
+  left: 18px;
+  right: 18px;
+  top: 0px;
+  bottom: 0px;
+  cursor: pointer;
+}
+.editorTrackItemLabel {
+  margin-left: 20px;
+  margin-right: 20px;
+  height: 100%;
+  line-height: 48px;
+  cursor: pointer;
+}
+.editorTrackItemLock {
+  top: 5%;
+  position: absolute;
+}
+.editorTrackItemLabel.secondary {
+  line-height: 23px;
+}
+.editorTimeLineMark.last {
+  overflow: hidden;
+}
+.editorTimeLineTracks {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  padding-bottom: 20px;
+  background-image: url(../images/timeline_tracks_bkg.png);
+}
+.editorBottomToolbarContainer {
+  background-color: #52595F;
+  height: 27px;
+}
+.zoomDropup {
+  margin-top: 2px;
+  float: right;
+  margin-right: 10px;
+}
+.navbar.tiny {
+  font-size: 11px;
+}
+.navbar-inner.tiny {
+  min-height: 21px;
+}
+.navbar .nav > li {
+  line-height: 11px;
+}
+.navbar .nav > li > a.rightBarPlugin {
+  padding: 5px 5px 5px;
+}
+.editorToolbar_selectedToolUtils {
+  margin-left: 10px;
+}
+.editorToolbarPlaybackControls {
+  position: absolute;
+  left: 45%;
+}
+.editorTimelineCursor {
+  position: absolute;
+  height: 100%;
+  width: 1px;
+  border-left: 1px dashed rgba(238, 0, 12, 0.92);
+  left: 352px;
+  z-index: 0;
+  top: 0px;
+  line-height: 54px;
+  font-size: 11px;
+  padding-left: 3px;
+}
+.editorTimelineCursor.currentTime {
+  border-left: 1px solid white;
+}
+.editorRightBarTabIcon {
+  /*	display: inline-block;  to add icon, set this property and the background image in the plugin css file, using .editorRightBarTabIcon.pluginName as class name */
+  width: 15px;
+  height: 14px;
+  margin-bottom: -3px;
+  margin-right: 2px;
+}
+@font-face {
+  font-family: 'icomoon';
+  src: url('fonts/icomoon.eot?u9ewd1');
+  src: url('fonts/icomoon.eot?u9ewd1#iefix') format('embedded-opentype'), url('fonts/icomoon.ttf?u9ewd1') format('truetype'), url('fonts/icomoon.woff?u9ewd1') format('woff'), url('fonts/icomoon.svg?u9ewd1#icomoon') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+[class^="icon-"],
+[class*=" icon-"] {
+  /* use !important to prevent issues with browser extensions that change fonts */
+  font-family: 'icomoon' !important;
+  speak: none;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
+  /* Better Font Rendering =========== */
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+.icon-mini-camera:before {
+  content: "\e900";
+}
+.icon-captions:before {
+  content: "\e901";
+}
+.icon-paintbrush:before {
+  content: "\e902";
+}
+.icon-airplay:before {
+  content: "\e903";
+}
+.icon-arrow-down:before {
+  content: "\e904";
+}
+.icon-arrow-left:before {
+  content: "\e905";
+}
+.icon-arrow-right:before {
+  content: "\e906";
+}
+.icon-arrow-up:before {
+  content: "\e907";
+}
+.icon-back-10-s:before {
+  content: "\e908";
+}
+.icon-back-30-s:before {
+  content: "\e909";
+}
+.icon-comments-disabled:before {
+  content: "\e90a";
+}
+.icon-comments:before {
+  content: "\e90b";
+}
+.icon-edit:before {
+  content: "\e90c";
+}
+.icon-facebook:before {
+  content: "\e90d";
+}
+.icon-folder:before {
+  content: "\e90e";
+}
+.icon-forward-30-s:before {
+  content: "\e90f";
+}
+.icon-frames:before {
+  content: "\e910";
+}
+.icon-fullscreen:before {
+  content: "\e911";
+}
+.icon-headphone:before {
+  content: "\e912";
+}
+.icon-help:before {
+  content: "\e913";
+}
+.icon-info:before {
+  content: "\e914";
+}
+.icon-link:before {
+  content: "\e915";
+}
+.icon-mini-frames:before {
+  content: "\e916";
+}
+.icon-mini-videocamera:before {
+  content: "\e917";
+}
+.icon-mini-window:before {
+  content: "\e918";
+}
+.icon-mini-zoom-in:before {
+  content: "\e919";
+}
+.icon-mini-zoom-out:before {
+  content: "\e91a";
+}
+.icon-pause:before {
+  content: "\e91b";
+}
+.icon-photo:before {
+  content: "\e91c";
+}
+.icon-pip:before {
+  content: "\e91d";
+}
+.icon-play:before {
+  content: "\e91e";
+}
+.icon-player-mode-1:before {
+  content: "\e91f";
+}
+.icon-player-mode-2:before {
+  content: "\e920";
+}
+.icon-player-mode-3:before {
+  content: "\e921";
+}
+.icon-present-mode-1:before {
+  content: "\e922";
+}
+.icon-present-mode-2:before {
+  content: "\e923";
+}
+.icon-present-mode-3:before {
+  content: "\e924";
+}
+.icon-present-mode-4:before {
+  content: "\e925";
+}
+.icon-present-mode-5:before {
+  content: "\e926";
+}
+.icon-present-mode-6:before {
+  content: "\e927";
+}
+.icon-present-mode-7:before {
+  content: "\e928";
+}
+.icon-present-mode-8:before {
+  content: "\e929";
+}
+.icon-present-mode-9:before {
+  content: "\e92a";
+}
+.icon-present-mode-10:before {
+  content: "\e92b";
+}
+.icon-presentation-mode:before {
+  content: "\e92c";
+}
+.icon-screen:before {
+  content: "\e92d";
+}
+.icon-slideshow:before {
+  content: "\e92e";
+}
+.icon-social:before {
+  content: "\e92f";
+}
+.icon-star-empty:before {
+  content: "\e930";
+}
+.icon-star:before {
+  content: "\e931";
+}
+.icon-stats:before {
+  content: "\e932";
+}
+.icon-twitter:before {
+  content: "\e933";
+}
+.icon-user:before {
+  content: "\e934";
+}
+.icon-volume-high:before {
+  content: "\e935";
+}
+.icon-volume-low:before {
+  content: "\e936";
+}
+.icon-volume-mid:before {
+  content: "\e937";
+}
+.icon-volume-mute:before {
+  content: "\e938";
+}
+.icon-windowed:before {
+  content: "\e939";
+}
+.icon-zoom-in:before {
+  content: "\e93a";
+}
+.icon-zoom:before {
+  content: "\e93b";
+}
+.icon-home:before {
+  content: "\e93c";
+}
+.icon-home2:before {
+  content: "\e93d";
+}
+.icon-home3:before {
+  content: "\e93e";
+}
+.icon-office:before {
+  content: "\e93f";
+}
+.icon-newspaper:before {
+  content: "\e940";
+}
+.icon-pencil:before {
+  content: "\e941";
+}
+.icon-pencil2:before {
+  content: "\e942";
+}
+.icon-quill:before {
+  content: "\e943";
+}
+.icon-pen:before {
+  content: "\e944";
+}
+.icon-blog:before {
+  content: "\e945";
+}
+.icon-eyedropper:before {
+  content: "\e946";
+}
+.icon-droplet:before {
+  content: "\e947";
+}
+.icon-paint-format:before {
+  content: "\e948";
+}
+.icon-image:before {
+  content: "\e949";
+}
+.icon-images:before {
+  content: "\e94a";
+}
+.icon-camera:before {
+  content: "\e94b";
+}
+.icon-headphones:before {
+  content: "\e94c";
+}
+.icon-music:before {
+  content: "\e94d";
+}
+.icon-play2:before {
+  content: "\e94e";
+}
+.icon-film:before {
+  content: "\e94f";
+}
+.icon-video-camera:before {
+  content: "\e950";
+}
+.icon-dice:before {
+  content: "\e951";
+}
+.icon-pacman:before {
+  content: "\e952";
+}
+.icon-spades:before {
+  content: "\e953";
+}
+.icon-clubs:before {
+  content: "\e954";
+}
+.icon-diamonds:before {
+  content: "\e955";
+}
+.icon-bullhorn:before {
+  content: "\e956";
+}
+.icon-connection:before {
+  content: "\e957";
+}
+.icon-podcast:before {
+  content: "\e958";
+}
+.icon-feed:before {
+  content: "\e959";
+}
+.icon-mic:before {
+  content: "\e95a";
+}
+.icon-book:before {
+  content: "\e95b";
+}
+.icon-books:before {
+  content: "\e95c";
+}
+.icon-library:before {
+  content: "\e95d";
+}
+.icon-file-text:before {
+  content: "\e95e";
+}
+.icon-profile:before {
+  content: "\e95f";
+}
+.icon-file-empty:before {
+  content: "\e960";
+}
+.icon-files-empty:before {
+  content: "\e961";
+}
+.icon-file-text2:before {
+  content: "\e962";
+}
+.icon-file-picture:before {
+  content: "\e963";
+}
+.icon-file-music:before {
+  content: "\e964";
+}
+.icon-file-play:before {
+  content: "\e965";
+}
+.icon-file-video:before {
+  content: "\e966";
+}
+.icon-file-zip:before {
+  content: "\e967";
+}
+.icon-copy:before {
+  content: "\e968";
+}
+.icon-paste:before {
+  content: "\e969";
+}
+.icon-stack:before {
+  content: "\e96a";
+}
+.icon-folder2:before {
+  content: "\e96b";
+}
+.icon-folder-open:before {
+  content: "\e96c";
+}
+.icon-folder-plus:before {
+  content: "\e96d";
+}
+.icon-folder-minus:before {
+  content: "\e96e";
+}
+.icon-folder-download:before {
+  content: "\e96f";
+}
+.icon-folder-upload:before {
+  content: "\e970";
+}
+.icon-price-tag:before {
+  content: "\e971";
+}
+.icon-price-tags:before {
+  content: "\e972";
+}
+.icon-barcode:before {
+  content: "\e973";
+}
+.icon-qrcode:before {
+  content: "\e974";
+}
+.icon-ticket:before {
+  content: "\e975";
+}
+.icon-cart:before {
+  content: "\e976";
+}
+.icon-coin-dollar:before {
+  content: "\e977";
+}
+.icon-coin-euro:before {
+  content: "\e978";
+}
+.icon-coin-pound:before {
+  content: "\e979";
+}
+.icon-coin-yen:before {
+  content: "\e97a";
+}
+.icon-credit-card:before {
+  content: "\e97b";
+}
+.icon-calculator:before {
+  content: "\e97c";
+}
+.icon-lifebuoy:before {
+  content: "\e97d";
+}
+.icon-phone:before {
+  content: "\e97e";
+}
+.icon-phone-hang-up:before {
+  content: "\e97f";
+}
+.icon-address-book:before {
+  content: "\e980";
+}
+.icon-envelop:before {
+  content: "\e981";
+}
+.icon-pushpin:before {
+  content: "\e982";
+}
+.icon-location:before {
+  content: "\e983";
+}
+.icon-location2:before {
+  content: "\e984";
+}
+.icon-compass:before {
+  content: "\e985";
+}
+.icon-compass2:before {
+  content: "\e986";
+}
+.icon-map:before {
+  content: "\e987";
+}
+.icon-map2:before {
+  content: "\e988";
+}
+.icon-history:before {
+  content: "\e989";
+}
+.icon-clock:before {
+  content: "\e98a";
+}
+.icon-clock2:before {
+  content: "\e98b";
+}
+.icon-alarm:before {
+  content: "\e98c";
+}
+.icon-bell:before {
+  content: "\e98d";
+}
+.icon-stopwatch:before {
+  content: "\e98e";
+}
+.icon-calendar:before {
+  content: "\e98f";
+}
+.icon-printer:before {
+  content: "\e990";
+}
+.icon-keyboard:before {
+  content: "\e991";
+}
+.icon-display:before {
+  content: "\e992";
+}
+.icon-laptop:before {
+  content: "\e993";
+}
+.icon-mobile:before {
+  content: "\e994";
+}
+.icon-mobile2:before {
+  content: "\e995";
+}
+.icon-tablet:before {
+  content: "\e996";
+}
+.icon-tv:before {
+  content: "\e997";
+}
+.icon-drawer:before {
+  content: "\e998";
+}
+.icon-drawer2:before {
+  content: "\e999";
+}
+.icon-box-add:before {
+  content: "\e99a";
+}
+.icon-box-remove:before {
+  content: "\e99b";
+}
+.icon-download:before {
+  content: "\e99c";
+}
+.icon-upload:before {
+  content: "\e99d";
+}
+.icon-floppy-disk:before {
+  content: "\e99e";
+}
+.icon-drive:before {
+  content: "\e99f";
+}
+.icon-database:before {
+  content: "\e9a0";
+}
+.icon-undo:before {
+  content: "\e9a1";
+}
+.icon-redo:before {
+  content: "\e9a2";
+}
+.icon-undo2:before {
+  content: "\e9a3";
+}
+.icon-redo2:before {
+  content: "\e9a4";
+}
+.icon-forward:before {
+  content: "\e9a5";
+}
+.icon-reply:before {
+  content: "\e9a6";
+}
+.icon-bubble:before {
+  content: "\e9a7";
+}
+.icon-bubbles:before {
+  content: "\e9a8";
+}
+.icon-bubbles2:before {
+  content: "\e9a9";
+}
+.icon-bubble2:before {
+  content: "\e9aa";
+}
+.icon-bubbles3:before {
+  content: "\e9ab";
+}
+.icon-bubbles4:before {
+  content: "\e9ac";
+}
+.icon-user2:before {
+  content: "\e9ad";
+}
+.icon-users:before {
+  content: "\e9ae";
+}
+.icon-user-plus:before {
+  content: "\e9af";
+}
+.icon-user-minus:before {
+  content: "\e9b0";
+}
+.icon-user-check:before {
+  content: "\e9b1";
+}
+.icon-user-tie:before {
+  content: "\e9b2";
+}
+.icon-quotes-left:before {
+  content: "\e9b3";
+}
+.icon-quotes-right:before {
+  content: "\e9b4";
+}
+.icon-hour-glass:before {
+  content: "\e9b5";
+}
+.icon-spinner:before {
+  content: "\e9b6";
+}
+.icon-spinner2:before {
+  content: "\e9b7";
+}
+.icon-spinner3:before {
+  content: "\e9b8";
+}
+.icon-spinner4:before {
+  content: "\e9b9";
+}
+.icon-spinner5:before {
+  content: "\e9ba";
+}
+.icon-spinner6:before {
+  content: "\e9bb";
+}
+.icon-spinner7:before {
+  content: "\e9bc";
+}
+.icon-spinner8:before {
+  content: "\e9bd";
+}
+.icon-spinner9:before {
+  content: "\e9be";
+}
+.icon-spinner10:before {
+  content: "\e9bf";
+}
+.icon-spinner11:before {
+  content: "\e9c0";
+}
+.icon-binoculars:before {
+  content: "\e9c1";
+}
+.icon-search:before {
+  content: "\e9c2";
+}
+.icon-zoom-in2:before {
+  content: "\e9c3";
+}
+.icon-zoom-out:before {
+  content: "\e9c4";
+}
+.icon-enlarge:before {
+  content: "\e9c5";
+}
+.icon-shrink:before {
+  content: "\e9c6";
+}
+.icon-enlarge2:before {
+  content: "\e9c7";
+}
+.icon-shrink2:before {
+  content: "\e9c8";
+}
+.icon-key:before {
+  content: "\e9c9";
+}
+.icon-key2:before {
+  content: "\e9ca";
+}
+.icon-lock:before {
+  content: "\e9cb";
+}
+.icon-unlocked:before {
+  content: "\e9cc";
+}
+.icon-wrench:before {
+  content: "\e9cd";
+}
+.icon-equalizer:before {
+  content: "\e9ce";
+}
+.icon-equalizer2:before {
+  content: "\e9cf";
+}
+.icon-cog:before {
+  content: "\e9d0";
+}
+.icon-cogs:before {
+  content: "\e9d1";
+}
+.icon-hammer:before {
+  content: "\e9d2";
+}
+.icon-magic-wand:before {
+  content: "\e9d3";
+}
+.icon-aid-kit:before {
+  content: "\e9d4";
+}
+.icon-bug:before {
+  content: "\e9d5";
+}
+.icon-pie-chart:before {
+  content: "\e9d6";
+}
+.icon-stats-dots:before {
+  content: "\e9d7";
+}
+.icon-stats-bars:before {
+  content: "\e9d8";
+}
+.icon-stats-bars2:before {
+  content: "\e9d9";
+}
+.icon-trophy:before {
+  content: "\e9da";
+}
+.icon-gift:before {
+  content: "\e9db";
+}
+.icon-glass:before {
+  content: "\e9dc";
+}
+.icon-glass2:before {
+  content: "\e9dd";
+}
+.icon-mug:before {
+  content: "\e9de";
+}
+.icon-spoon-knife:before {
+  content: "\e9df";
+}
+.icon-leaf:before {
+  content: "\e9e0";
+}
+.icon-rocket:before {
+  content: "\e9e1";
+}
+.icon-meter:before {
+  content: "\e9e2";
+}
+.icon-meter2:before {
+  content: "\e9e3";
+}
+.icon-hammer2:before {
+  content: "\e9e4";
+}
+.icon-fire:before {
+  content: "\e9e5";
+}
+.icon-lab:before {
+  content: "\e9e6";
+}
+.icon-magnet:before {
+  content: "\e9e7";
+}
+.icon-bin:before {
+  content: "\e9e8";
+}
+.icon-bin2:before {
+  content: "\e9e9";
+}
+.icon-briefcase:before {
+  content: "\e9ea";
+}
+.icon-airplane:before {
+  content: "\e9eb";
+}
+.icon-truck:before {
+  content: "\e9ec";
+}
+.icon-road:before {
+  content: "\e9ed";
+}
+.icon-accessibility:before {
+  content: "\e9ee";
+}
+.icon-target:before {
+  content: "\e9ef";
+}
+.icon-shield:before {
+  content: "\e9f0";
+}
+.icon-power:before {
+  content: "\e9f1";
+}
+.icon-switch:before {
+  content: "\e9f2";
+}
+.icon-power-cord:before {
+  content: "\e9f3";
+}
+.icon-clipboard:before {
+  content: "\e9f4";
+}
+.icon-list-numbered:before {
+  content: "\e9f5";
+}
+.icon-list:before {
+  content: "\e9f6";
+}
+.icon-list2:before {
+  content: "\e9f7";
+}
+.icon-tree:before {
+  content: "\e9f8";
+}
+.icon-menu:before {
+  content: "\e9f9";
+}
+.icon-menu2:before {
+  content: "\e9fa";
+}
+.icon-menu3:before {
+  content: "\e9fb";
+}
+.icon-menu4:before {
+  content: "\e9fc";
+}
+.icon-cloud:before {
+  content: "\e9fd";
+}
+.icon-cloud-download:before {
+  content: "\e9fe";
+}
+.icon-cloud-upload:before {
+  content: "\e9ff";
+}
+.icon-cloud-check:before {
+  content: "\ea00";
+}
+.icon-download2:before {
+  content: "\ea01";
+}
+.icon-upload2:before {
+  content: "\ea02";
+}
+.icon-download3:before {
+  content: "\ea03";
+}
+.icon-upload3:before {
+  content: "\ea04";
+}
+.icon-sphere:before {
+  content: "\ea05";
+}
+.icon-earth:before {
+  content: "\ea06";
+}
+.icon-link2:before {
+  content: "\ea07";
+}
+.icon-flag:before {
+  content: "\ea08";
+}
+.icon-attachment:before {
+  content: "\ea09";
+}
+.icon-eye:before {
+  content: "\ea0a";
+}
+.icon-eye-plus:before {
+  content: "\ea0b";
+}
+.icon-eye-minus:before {
+  content: "\ea0c";
+}
+.icon-eye-blocked:before {
+  content: "\ea0d";
+}
+.icon-bookmark:before {
+  content: "\ea0e";
+}
+.icon-bookmarks:before {
+  content: "\ea0f";
+}
+.icon-sun:before {
+  content: "\ea10";
+}
+.icon-contrast:before {
+  content: "\ea11";
+}
+.icon-brightness-contrast:before {
+  content: "\ea12";
+}
+.icon-star-empty2:before {
+  content: "\ea13";
+}
+.icon-star-half:before {
+  content: "\ea14";
+}
+.icon-star-full:before {
+  content: "\ea15";
+}
+.icon-heart:before {
+  content: "\ea16";
+}
+.icon-heart-broken:before {
+  content: "\ea17";
+}
+.icon-man:before {
+  content: "\ea18";
+}
+.icon-woman:before {
+  content: "\ea19";
+}
+.icon-man-woman:before {
+  content: "\ea1a";
+}
+.icon-happy:before {
+  content: "\ea1b";
+}
+.icon-happy2:before {
+  content: "\ea1c";
+}
+.icon-smile:before {
+  content: "\ea1d";
+}
+.icon-smile2:before {
+  content: "\ea1e";
+}
+.icon-tongue:before {
+  content: "\ea1f";
+}
+.icon-tongue2:before {
+  content: "\ea20";
+}
+.icon-sad:before {
+  content: "\ea21";
+}
+.icon-sad2:before {
+  content: "\ea22";
+}
+.icon-wink:before {
+  content: "\ea23";
+}
+.icon-wink2:before {
+  content: "\ea24";
+}
+.icon-grin:before {
+  content: "\ea25";
+}
+.icon-grin2:before {
+  content: "\ea26";
+}
+.icon-cool:before {
+  content: "\ea27";
+}
+.icon-cool2:before {
+  content: "\ea28";
+}
+.icon-angry:before {
+  content: "\ea29";
+}
+.icon-angry2:before {
+  content: "\ea2a";
+}
+.icon-evil:before {
+  content: "\ea2b";
+}
+.icon-evil2:before {
+  content: "\ea2c";
+}
+.icon-shocked:before {
+  content: "\ea2d";
+}
+.icon-shocked2:before {
+  content: "\ea2e";
+}
+.icon-baffled:before {
+  content: "\ea2f";
+}
+.icon-baffled2:before {
+  content: "\ea30";
+}
+.icon-confused:before {
+  content: "\ea31";
+}
+.icon-confused2:before {
+  content: "\ea32";
+}
+.icon-neutral:before {
+  content: "\ea33";
+}
+.icon-neutral2:before {
+  content: "\ea34";
+}
+.icon-hipster:before {
+  content: "\ea35";
+}
+.icon-hipster2:before {
+  content: "\ea36";
+}
+.icon-wondering:before {
+  content: "\ea37";
+}
+.icon-wondering2:before {
+  content: "\ea38";
+}
+.icon-sleepy:before {
+  content: "\ea39";
+}
+.icon-sleepy2:before {
+  content: "\ea3a";
+}
+.icon-frustrated:before {
+  content: "\ea3b";
+}
+.icon-frustrated2:before {
+  content: "\ea3c";
+}
+.icon-crying:before {
+  content: "\ea3d";
+}
+.icon-crying2:before {
+  content: "\ea3e";
+}
+.icon-point-up:before {
+  content: "\ea3f";
+}
+.icon-point-right:before {
+  content: "\ea40";
+}
+.icon-point-down:before {
+  content: "\ea41";
+}
+.icon-point-left:before {
+  content: "\ea42";
+}
+.icon-warning:before {
+  content: "\ea43";
+}
+.icon-notification:before {
+  content: "\ea44";
+}
+.icon-question:before {
+  content: "\ea45";
+}
+.icon-plus:before {
+  content: "\ea46";
+}
+.icon-minus:before {
+  content: "\ea47";
+}
+.icon-info2:before {
+  content: "\ea48";
+}
+.icon-cancel-circle:before {
+  content: "\ea49";
+}
+.icon-blocked:before {
+  content: "\ea4a";
+}
+.icon-cross:before {
+  content: "\ea4b";
+}
+.icon-checkmark:before {
+  content: "\ea4c";
+}
+.icon-checkmark2:before {
+  content: "\ea4d";
+}
+.icon-spell-check:before {
+  content: "\ea4e";
+}
+.icon-enter:before {
+  content: "\ea4f";
+}
+.icon-exit:before {
+  content: "\ea50";
+}
+.icon-play22:before {
+  content: "\ea51";
+}
+.icon-pause2:before {
+  content: "\ea52";
+}
+.icon-stop:before {
+  content: "\ea53";
+}
+.icon-previous:before {
+  content: "\ea54";
+}
+.icon-next:before {
+  content: "\ea55";
+}
+.icon-backward:before {
+  content: "\ea56";
+}
+.icon-forward2:before {
+  content: "\ea57";
+}
+.icon-play3:before {
+  content: "\ea58";
+}
+.icon-pause22:before {
+  content: "\ea59";
+}
+.icon-stop2:before {
+  content: "\ea5a";
+}
+.icon-backward2:before {
+  content: "\ea5b";
+}
+.icon-forward3:before {
+  content: "\ea5c";
+}
+.icon-first:before {
+  content: "\ea5d";
+}
+.icon-last:before {
+  content: "\ea5e";
+}
+.icon-previous2:before {
+  content: "\ea5f";
+}
+.icon-next2:before {
+  content: "\ea60";
+}
+.icon-eject:before {
+  content: "\ea61";
+}
+.icon-volume-high2:before {
+  content: "\ea62";
+}
+.icon-volume-medium:before {
+  content: "\ea63";
+}
+.icon-volume-low2:before {
+  content: "\ea64";
+}
+.icon-volume-mute2:before {
+  content: "\ea65";
+}
+.icon-volume-mute22:before {
+  content: "\ea66";
+}
+.icon-volume-increase:before {
+  content: "\ea67";
+}
+.icon-volume-decrease:before {
+  content: "\ea68";
+}
+.icon-loop:before {
+  content: "\ea69";
+}
+.icon-loop2:before {
+  content: "\ea6a";
+}
+.icon-infinite:before {
+  content: "\ea6b";
+}
+.icon-shuffle:before {
+  content: "\ea6c";
+}
+.icon-arrow-up-left:before {
+  content: "\ea6d";
+}
+.icon-arrow-up2:before {
+  content: "\ea6e";
+}
+.icon-arrow-up-right:before {
+  content: "\ea6f";
+}
+.icon-arrow-right2:before {
+  content: "\ea70";
+}
+.icon-arrow-down-right:before {
+  content: "\ea71";
+}
+.icon-arrow-down2:before {
+  content: "\ea72";
+}
+.icon-arrow-down-left:before {
+  content: "\ea73";
+}
+.icon-arrow-left2:before {
+  content: "\ea74";
+}
+.icon-arrow-up-left2:before {
+  content: "\ea75";
+}
+.icon-arrow-up22:before {
+  content: "\ea76";
+}
+.icon-arrow-up-right2:before {
+  content: "\ea77";
+}
+.icon-arrow-right22:before {
+  content: "\ea78";
+}
+.icon-arrow-down-right2:before {
+  content: "\ea79";
+}
+.icon-arrow-down22:before {
+  content: "\ea7a";
+}
+.icon-arrow-down-left2:before {
+  content: "\ea7b";
+}
+.icon-arrow-left22:before {
+  content: "\ea7c";
+}
+.icon-circle-up:before {
+  content: "\ea7d";
+}
+.icon-circle-right:before {
+  content: "\ea7e";
+}
+.icon-circle-down:before {
+  content: "\ea7f";
+}
+.icon-circle-left:before {
+  content: "\ea80";
+}
+.icon-tab:before {
+  content: "\ea81";
+}
+.icon-move-up:before {
+  content: "\ea82";
+}
+.icon-move-down:before {
+  content: "\ea83";
+}
+.icon-sort-alpha-asc:before {
+  content: "\ea84";
+}
+.icon-sort-alpha-desc:before {
+  content: "\ea85";
+}
+.icon-sort-numeric-asc:before {
+  content: "\ea86";
+}
+.icon-sort-numberic-desc:before {
+  content: "\ea87";
+}
+.icon-sort-amount-asc:before {
+  content: "\ea88";
+}
+.icon-sort-amount-desc:before {
+  content: "\ea89";
+}
+.icon-command:before {
+  content: "\ea8a";
+}
+.icon-shift:before {
+  content: "\ea8b";
+}
+.icon-ctrl:before {
+  content: "\ea8c";
+}
+.icon-opt:before {
+  content: "\ea8d";
+}
+.icon-checkbox-checked:before {
+  content: "\ea8e";
+}
+.icon-checkbox-unchecked:before {
+  content: "\ea8f";
+}
+.icon-radio-checked:before {
+  content: "\ea90";
+}
+.icon-radio-checked2:before {
+  content: "\ea91";
+}
+.icon-radio-unchecked:before {
+  content: "\ea92";
+}
+.icon-crop:before {
+  content: "\ea93";
+}
+.icon-make-group:before {
+  content: "\ea94";
+}
+.icon-ungroup:before {
+  content: "\ea95";
+}
+.icon-scissors:before {
+  content: "\ea96";
+}
+.icon-filter:before {
+  content: "\ea97";
+}
+.icon-font:before {
+  content: "\ea98";
+}
+.icon-ligature:before {
+  content: "\ea99";
+}
+.icon-ligature2:before {
+  content: "\ea9a";
+}
+.icon-text-height:before {
+  content: "\ea9b";
+}
+.icon-text-width:before {
+  content: "\ea9c";
+}
+.icon-font-size:before {
+  content: "\ea9d";
+}
+.icon-bold:before {
+  content: "\ea9e";
+}
+.icon-underline:before {
+  content: "\ea9f";
+}
+.icon-italic:before {
+  content: "\eaa0";
+}
+.icon-strikethrough:before {
+  content: "\eaa1";
+}
+.icon-omega:before {
+  content: "\eaa2";
+}
+.icon-sigma:before {
+  content: "\eaa3";
+}
+.icon-page-break:before {
+  content: "\eaa4";
+}
+.icon-superscript:before {
+  content: "\eaa5";
+}
+.icon-subscript:before {
+  content: "\eaa6";
+}
+.icon-superscript2:before {
+  content: "\eaa7";
+}
+.icon-subscript2:before {
+  content: "\eaa8";
+}
+.icon-text-color:before {
+  content: "\eaa9";
+}
+.icon-pagebreak:before {
+  content: "\eaaa";
+}
+.icon-clear-formatting:before {
+  content: "\eaab";
+}
+.icon-table:before {
+  content: "\eaac";
+}
+.icon-table2:before {
+  content: "\eaad";
+}
+.icon-insert-template:before {
+  content: "\eaae";
+}
+.icon-pilcrow:before {
+  content: "\eaaf";
+}
+.icon-ltr:before {
+  content: "\eab0";
+}
+.icon-rtl:before {
+  content: "\eab1";
+}
+.icon-section:before {
+  content: "\eab2";
+}
+.icon-paragraph-left:before {
+  content: "\eab3";
+}
+.icon-paragraph-center:before {
+  content: "\eab4";
+}
+.icon-paragraph-right:before {
+  content: "\eab5";
+}
+.icon-paragraph-justify:before {
+  content: "\eab6";
+}
+.icon-indent-increase:before {
+  content: "\eab7";
+}
+.icon-indent-decrease:before {
+  content: "\eab8";
+}
+.icon-share:before {
+  content: "\eab9";
+}
+.icon-new-tab:before {
+  content: "\eaba";
+}
+.icon-embed:before {
+  content: "\eabb";
+}
+.icon-embed2:before {
+  content: "\eabc";
+}
+.icon-terminal:before {
+  content: "\eabd";
+}
+.icon-share2:before {
+  content: "\eabe";
+}
+.icon-mail:before {
+  content: "\eabf";
+}
+.icon-mail2:before {
+  content: "\eac0";
+}
+.icon-mail3:before {
+  content: "\eac1";
+}
+.icon-mail4:before {
+  content: "\eac2";
+}
+.icon-amazon:before {
+  content: "\eac3";
+}
+.icon-google:before {
+  content: "\eac4";
+}
+.icon-google2:before {
+  content: "\eac5";
+}
+.icon-google3:before {
+  content: "\eac6";
+}
+.icon-google-plus:before {
+  content: "\eac7";
+}
+.icon-google-plus2:before {
+  content: "\eac8";
+}
+.icon-google-plus3:before {
+  content: "\eac9";
+}
+.icon-hangouts:before {
+  content: "\eaca";
+}
+.icon-google-drive:before {
+  content: "\eacb";
+}
+.icon-facebook2:before {
+  content: "\eacc";
+}
+.icon-facebook22:before {
+  content: "\eacd";
+}
+.icon-instagram:before {
+  content: "\eace";
+}
+.icon-whatsapp:before {
+  content: "\eacf";
+}
+.icon-spotify:before {
+  content: "\ead0";
+}
+.icon-telegram:before {
+  content: "\ead1";
+}
+.icon-twitter2:before {
+  content: "\ead2";
+}
+.icon-vine:before {
+  content: "\ead3";
+}
+.icon-vk:before {
+  content: "\ead4";
+}
+.icon-renren:before {
+  content: "\ead5";
+}
+.icon-sina-weibo:before {
+  content: "\ead6";
+}
+.icon-rss:before {
+  content: "\ead7";
+}
+.icon-rss2:before {
+  content: "\ead8";
+}
+.icon-youtube:before {
+  content: "\ead9";
+}
+.icon-youtube2:before {
+  content: "\eada";
+}
+.icon-twitch:before {
+  content: "\eadb";
+}
+.icon-vimeo:before {
+  content: "\eadc";
+}
+.icon-vimeo2:before {
+  content: "\eadd";
+}
+.icon-lanyrd:before {
+  content: "\eade";
+}
+.icon-flickr:before {
+  content: "\eadf";
+}
+.icon-flickr2:before {
+  content: "\eae0";
+}
+.icon-flickr3:before {
+  content: "\eae1";
+}
+.icon-flickr4:before {
+  content: "\eae2";
+}
+.icon-dribbble:before {
+  content: "\eae3";
+}
+.icon-behance:before {
+  content: "\eae4";
+}
+.icon-behance2:before {
+  content: "\eae5";
+}
+.icon-deviantart:before {
+  content: "\eae6";
+}
+.icon-500px:before {
+  content: "\eae7";
+}
+.icon-steam:before {
+  content: "\eae8";
+}
+.icon-steam2:before {
+  content: "\eae9";
+}
+.icon-dropbox:before {
+  content: "\eaea";
+}
+.icon-onedrive:before {
+  content: "\eaeb";
+}
+.icon-github:before {
+  content: "\eaec";
+}
+.icon-npm:before {
+  content: "\eaed";
+}
+.icon-basecamp:before {
+  content: "\eaee";
+}
+.icon-trello:before {
+  content: "\eaef";
+}
+.icon-wordpress:before {
+  content: "\eaf0";
+}
+.icon-joomla:before {
+  content: "\eaf1";
+}
+.icon-ello:before {
+  content: "\eaf2";
+}
+.icon-blogger:before {
+  content: "\eaf3";
+}
+.icon-blogger2:before {
+  content: "\eaf4";
+}
+.icon-tumblr:before {
+  content: "\eaf5";
+}
+.icon-tumblr2:before {
+  content: "\eaf6";
+}
+.icon-yahoo:before {
+  content: "\eaf7";
+}
+.icon-yahoo2:before {
+  content: "\eaf8";
+}
+.icon-tux:before {
+  content: "\eaf9";
+}
+.icon-appleinc:before {
+  content: "\eafa";
+}
+.icon-finder:before {
+  content: "\eafb";
+}
+.icon-android:before {
+  content: "\eafc";
+}
+.icon-windows:before {
+  content: "\eafd";
+}
+.icon-windows8:before {
+  content: "\eafe";
+}
+.icon-soundcloud:before {
+  content: "\eaff";
+}
+.icon-soundcloud2:before {
+  content: "\eb00";
+}
+.icon-skype:before {
+  content: "\eb01";
+}
+.icon-reddit:before {
+  content: "\eb02";
+}
+.icon-hackernews:before {
+  content: "\eb03";
+}
+.icon-wikipedia:before {
+  content: "\eb04";
+}
+.icon-linkedin:before {
+  content: "\eb05";
+}
+.icon-linkedin2:before {
+  content: "\eb06";
+}
+.icon-lastfm:before {
+  content: "\eb07";
+}
+.icon-lastfm2:before {
+  content: "\eb08";
+}
+.icon-delicious:before {
+  content: "\eb09";
+}
+.icon-stumbleupon:before {
+  content: "\eb0a";
+}
+.icon-stumbleupon2:before {
+  content: "\eb0b";
+}
+.icon-stackoverflow:before {
+  content: "\eb0c";
+}
+.icon-pinterest:before {
+  content: "\eb0d";
+}
+.icon-pinterest2:before {
+  content: "\eb0e";
+}
+.icon-xing:before {
+  content: "\eb0f";
+}
+.icon-xing2:before {
+  content: "\eb10";
+}
+.icon-flattr:before {
+  content: "\eb11";
+}
+.icon-foursquare:before {
+  content: "\eb12";
+}
+.icon-yelp:before {
+  content: "\eb13";
+}
+.icon-paypal:before {
+  content: "\eb14";
+}
+.icon-chrome:before {
+  content: "\eb15";
+}
+.icon-firefox:before {
+  content: "\eb16";
+}
+.icon-IE:before {
+  content: "\eb17";
+}
+.icon-edge:before {
+  content: "\eb18";
+}
+.icon-safari:before {
+  content: "\eb19";
+}
+.icon-opera:before {
+  content: "\eb1a";
+}
+.icon-file-pdf:before {
+  content: "\eb1b";
+}
+.icon-file-openoffice:before {
+  content: "\eb1c";
+}
+.icon-file-word:before {
+  content: "\eb1d";
+}
+.icon-file-excel:before {
+  content: "\eb1e";
+}
+.icon-libreoffice:before {
+  content: "\eb1f";
+}
+.icon-html-five:before {
+  content: "\eb20";
+}
+.icon-html-five2:before {
+  content: "\eb21";
+}
+.icon-css3:before {
+  content: "\eb22";
+}
+.icon-git:before {
+  content: "\eb23";
+}
+.icon-codepen:before {
+  content: "\eb24";
+}
+.icon-svg:before {
+  content: "\eb25";
+}
+.icon-IcoMoon:before {
+  content: "\eb26";
+}
+.buttonPlugin.flexSkip_Rewind_10 {
+  background-position: -205% 22%;
+}
+.buttonPlugin.flexSkip_Forward_30 {
+  background-position: -200% 22%;
+}
+.buttonPlugin.arrowSlideNavidator.nextButton {
+  pointer-events: all !important;
+  font-size: 30px;
+  text-shadow: 0px 0px 8px white;
+}
+.buttonPlugin.arrowSlideNavidator.prevButton {
+  pointer-events: all !important;
+  font-size: 30px;
+  text-shadow: 0px 0px 8px white;
+}
+.arrow-slide-navigator-container {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  bottom: 0px;
+  right: 0px;
+}
+.buttonPlugin.audioTags {
+  text-align: center;
+  background-position: -900% -200%;
+  font-size: 0.8em;
+  line-height: 30px;
+  color: white;
+  text-transform: uppercase;
+}
+.videoAudioTrackItem {
+  padding: 10px;
+  font-size: 20px;
+  text-transform: uppercase;
+  cursor: pointer;
+}
+.videoAudioTrackItem.selected {
+  background-color: rgba(211, 211, 211, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #cc0000;
+}
+.videoAudioTrackItem:hover {
+  background-color: #cc0000;
+}
+.blackBoardDiv {
+  position: absolute;
+  /* 16:9 */
+  width: 816px;
+  height: 459px;
+  top: 135px;
+  left: 450px;
+  background-size: 100%;
+}
+.lensClass {
+  background-color: rgba(255, 236, 195, 0.3);
+  position: absolute;
+  border: 1px dotted white;
+}
+.lensContainer img {
+  width: 100% !important;
+}
+#overlayContainer div.lensContainer {
+  pointer-events: all;
+}
+.textBreak {
+  background-color: rgba(128, 128, 128, 0.7);
+  text-align: center;
+  color: white;
+  line-height: 17px;
+  font-size: 18px;
+  padding-top: 10px;
+  padding-bottom: 10px;
+  border-radius: 12px;
+}
+.buttonPlugin.captionsPluginButton {
+  background-position: 0% -100%;
+}
+.captionsPluginContainer {
+  width: 400px;
+  overflow: hidden;
+}
+.captionsBar input {
+  color: white;
+  background-color: rgba(0, 0, 0, 0.75);
+  border-color: #cc0000;
+  width: 49%;
+  margin-bottom: 0px;
+  margin-left: 1px;
+  float: left;
+}
+.captionsBar select {
+  width: 39%;
+  display: inline;
+  background-color: #cc0000;
+  border: 1px solid #ccc;
+  color: white;
+  margin-bottom: 0px;
+  height: 31px;
+}
+.captionsBar button {
+  float: right;
+  width: 7%;
+  min-height: 30px;
+  min-width: 30px;
+  margin-right: 2px;
+  background: url(../images/paella_icons_light.png);
+  background-position: -400% -100%;
+  background-size: 2000% 1000%;
+  position: static;
+}
+.captionsBar button:hover {
+  background-color: #cc0000;
+}
+.bodyInnerContainer {
+  margin-bottom: 5px;
+  display: block;
+  margin-left: 3px;
+  height: auto;
+}
+.captionsBar input:hover {
+  border-color: #FF4C4C;
+}
+.captionsBar input:focus {
+  border-color: #cc0000;
+}
+.captionsBody {
+  max-height: 280px;
+  overflow-y: scroll;
+  border: 1px solid black;
+}
+.captionsBar input:hover {
+  border-color: #FF4C4C;
+}
+.captionsBar input:focus {
+  border-color: #FF4C4C;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #cc0000;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #cc0000;
+}
+/* CSS OVERLAY */
+.CaptionsOnScreen {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  text-align: center;
+  top: 0;
+  left: 0;
+  z-index: 99;
+}
+.CaptionsOnScreenInner {
+  background-color: rgba(0, 0, 0, 0.6);
+  position: relative;
+  text-align: center;
+  color: white;
+  font-size: 17px;
+  width: 70%;
+  min-height: 20px;
+  margin-left: auto;
+  margin-right: auto;
+  padding: 8px;
+  border-radius: 12px;
+}
+.Highlight {
+  color: #FF4C4C;
+  font-weight: bold;
+}
+#CommentPlugin_Publish_entry_buttons_area {
+  margin-top: 5px;
+}
+.comments_entry {
+  margin: 5px;
+  margin-bottom: 20px;
+  width: 90%;
+}
+.comments_entry_username {
+  color: #438bc5;
+  font-size: 14px;
+  font-family: arial, sans-serif;
+  font-weight: bold;
+}
+.comments_entry_datepublish {
+  color: #999;
+  font-size: 11px;
+  font-family: arial, sans-serif;
+  margin-left: 20px;
+}
+.comments_entry_comment {
+  margin-top: 5px;
+  margin-bottom: 10px;
+}
+.comments_entry_silhouette {
+  float: left;
+  width: 6%;
+}
+.comments_entry_container {
+  vertical-align: top;
+  margin: 10px;
+  margin-left: 50px;
+  width: 100%;
+}
+.comments_entry_container textarea {
+  width: 98%;
+  height: 45px;
+  /*margin-top:10px;*/
+  margin-bottom: 5px;
+  color: #52575c;
+}
+.CommentPlugin_Publish {
+  /*box-shadow: inset 0px 0px 10px 2px rgba(10, 10,10, 0.39); */
+  border-radius: 7px;
+  padding: 10px;
+  padding-bottom: 1px;
+}
+textarea {
+  resize: vertical;
+}
+.reply_button {
+  color: #999;
+  font-size: 12px;
+  font-family: arial, sans-serif;
+  margin-bottom: 15px;
+  font-weight: bold;
+  cursor: pointer;
+}
+.reply_button:hover {
+  color: #438bc5;
+  text-decoration: underline;
+}
+.buttonPlugin.extendedTabAdapterPlugin {
+  background-position: -500% -200%;
+}
+.buttonPluginPopUp.extendedTabAdapterPlugin {
+  background-image: none;
+  background-color: rgba(0, 0, 0, 0);
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer {
+  width: 600px;
+  display: block;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel {
+  display: inline;
+  background-color: rgba(0, 0, 0, 0.75);
+  line-height: 26px;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 7px;
+  padding-bottom: 7px;
+  cursor: pointer;
+  cursor: hand;
+  font-family: sans-serif;
+  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.48);
+  border-radius: 6px 6px 0px 0px;
+  font-size: 12px;
+  margin-left: 1px;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel.enabled {
+  cursor: default;
+  box-shadow: inset 0px 0px 12px rgba(0, 0, 0, 0.9);
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel.disabled {
+  background-color: #e6e6e6;
+  color: black;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer {
+  height: 200px;
+  background-color: rgba(0, 0, 0, 0.75);
+  padding-left: 5px;
+  padding-top: 9px;
+  padding-right: 5px;
+  overflow-y: scroll;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #cc0000;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #FF4C4C;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer > .tabContent.enabled {
+  display: block;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer > .tabContent.disabled {
+  display: none;
+}
+.buttonPlugin.footPrints {
+  background-position: -700% 0%;
+}
+.footPrintsContainer {
+  height: 20px;
+  width: 100%;
+  overflow: hidden;
+  display: block;
+}
+.footPrintsCanvas {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  display: inline-block;
+}
+.frameControlContainer {
+  height: 87px;
+  width: 90%;
+  overflow: hidden;
+  display: inline-block;
+  margin-left: 5%;
+}
+.frameControl.navButton {
+  width: 40px;
+  height: 40px;
+  display: block;
+  cursor: pointer;
+  background-image: url(../images/paella_icons_light.png);
+  background-size: 2000% 1000%;
+  background-position: 100% 100%;
+  position: absolute;
+  top: 28px;
+}
+.frameControl.navButton.left {
+  background-position: -1600% -100%;
+  opacity: 0.5;
+}
+.frameControl.navButton.right {
+  right: 0px;
+  opacity: 0.5;
+  background-position: -1500% -100%;
+}
+.frameControl.navButton.left:hover {
+  opacity: 1;
+}
+.frameControl.navButton.right:hover {
+  opacity: 1;
+}
+.frameControlContent {
+  height: 100px;
+  overflow: hidden;
+  padding-top: 6px;
+}
+.frameControlItem {
+  width: 140px;
+  cursor: pointer;
+  margin-left: 3px;
+  margin-right: 3px;
+  float: left;
+  opacity: 0.8;
+}
+/*.frameControlItem:hover {
+	width:94px;
+	border: 3px dotted #23ff00;
+	opacity: 1;
+}*/
+.frameControlItem.selected {
+  width: 134px;
+  border: 3px dotted #cc0000;
+  opacity: 1;
+}
+.frameControlItem.current {
+  width: 134px;
+  border: 3px solid #cc0000;
+  opacity: 1;
+}
+.frameControlImage {
+  width: 100%;
+}
+.frameCaption {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  text-align: center;
+  padding: 5px;
+  color: black;
+  text-shadow: 1px 1px 2px #ffffff;
+}
+.showFramesButton {
+  position: absolute;
+  display: block;
+  width: 40px;
+  height: 37px;
+  background-size: 300%;
+  background-image: url(../../resources/images/frame_button.png);
+}
+/*
+.showFramesButton:hover {
+}
+*/
+.showFramesButton_active {
+  position: absolute;
+  display: block;
+  width: 40px;
+  height: 37px;
+  right: 0px;
+  background-size: 300%;
+  background-image: url(../../resources/images/frame_button.png);
+}
+.frameListContainer {
+  background-image: url(../../resources/images/playback_bkg.png);
+}
+.frameThumbnail {
+  /*
+	margin-top:8px;
+	margin-right:3px;
+	margin-bottom:8px;
+	margin-left:3px;
+*/
+  margin: 8px 3px 8px 3px;
+  height: 40px;
+}
+.frameThumbnail:hover {
+  margin: 0px;
+  border: 3px #cc0000 solid;
+  height: 50px;
+}
+.enabledFrameThumbnail {
+  border: 3px #cc0000 solid;
+  height: 50px;
+}
+.enabledFrameThumbnail:hover {
+  border: 3px #cc0000 solid;
+}
+.buttonPlugin.showFullScreenButton {
+  background-position: -900% 0%;
+}
+.buttonPlugin.showFullScreenButton.active {
+  background-position: -1000% 0%;
+}
+.buttonPlugin.helpButton {
+  background-position: -1300% 0%;
+}
+.buttonPlugin.right.liveIndicator {
+  width: 100px;
+  height: 40px;
+  background-image: url(live_video.png);
+  background-size: 100% 100%;
+  margin-top: 5px;
+  margin-right: 5px;
+}
+/*.showMultipleQualitiesPlugin {
+	background-image: url(advanced_button.png);
+	background-size: 300%;
+}
+
+.buttonPluginPopUp.showMultipleQualitiesPlugin {
+	background-image:none;
+}
+
+.selectQuality {
+	padding: 10px;
+}*/
+.buttonPlugin.showMultipleQualitiesPlugin {
+  text-align: center;
+  font-size: 0.8em;
+  line-height: 30px;
+  min-width: 36px;
+}
+.buttonPluginPopUp.showMultipleQualitiesPlugin {
+  background-image: none;
+}
+.selectQuality {
+  padding: 10px;
+}
+.multipleQualityItem {
+  font-size: 19px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  cursor: pointer;
+}
+.multipleQualityItem:hover {
+  background-color: #FF4C4C;
+}
+.multipleQualityItem.selected {
+  color: #cc0000;
+}
+.multipleQualityItem.selected:hover {
+  color: white;
+}
+.buttonPlugin.playButton {
+  background-position: -500% -100%;
+}
+.buttonPlugin.pauseButton {
+  background-position: -100% 0%;
+}
+.playButtonOnScreen {
+  position: absolute;
+  opacity: 0.7;
+  top: 0;
+  left: 0;
+  bottom: 51px;
+  right: 0;
+  z-index: 50;
+  width: 100%;
+  height: 100%;
+}
+.playButtonOnScreenIcon {
+  display: block;
+  cursor: pointer;
+  width: 100%;
+}
+.playbackRateItem {
+  font-size: 19px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  cursor: pointer;
+}
+.playbackRateItem:hover {
+  background-color: #FF4C4C;
+}
+.buttonPlugin.showPlaybackRateButton {
+  text-align: center;
+  line-height: 30px;
+  background-position: -600% -100%;
+  font-size: 1em;
+}
+.playbackRateItem.selected {
+  color: #cc0000;
+}
+.playbackRateItem.selected:hover {
+  color: white;
+}
+.buttonPlugin.showPlaybackRateButton {
+  min-width: 36px;
+}
+.buttonPlugin.rateButtonPlugin {
+  text-align: center;
+  background-position: -700% -200%;
+  font-size: 0.8em;
+  line-height: 40px;
+}
+.buttonPluginPopUp {
+  right: 0px;
+}
+.rateButtons {
+  /*padding: 10px;*/
+  width: 250px;
+}
+.starButton {
+  display: inline-block;
+  width: 26px;
+  height: 26px;
+  font-size: 25px;
+}
+.rateButtonPlugin h4 {
+  margin-left: 10px;
+}
+.rateButtonPlugin h5 {
+  margin-left: 19px;
+}
+.rateButtons .starButton:first-of-type {
+  margin-left: 19px;
+}
+.buttonPlugin.searchButton {
+  background-size: 2000% 1000%;
+  background-position: -900% -100%;
+  display: block;
+}
+.buttonPluginPopUp.searchButton {
+  position: absolute;
+}
+.searchPluginContainer {
+  width: 400px;
+  overflow: hidden;
+}
+.searchBar input {
+  color: white;
+  background-color: rgba(0, 0, 0, 0.75);
+  border-color: #cc0000;
+  width: 96%;
+  margin-bottom: 0px;
+  margin-left: 1px;
+}
+.searchBar input:hover {
+  border-color: #FF4C4C;
+}
+.searchBar input:focus {
+  border-color: #FF4C4C;
+}
+.searchBody {
+  max-height: 280px;
+  overflow-y: scroll;
+  border: 1px solid black;
+}
+.sBodyInnerContainer {
+  display: block;
+  margin-left: 3px;
+  min-height: 70px;
+  border: 1px solid rgba(0, 0, 0, 0.75);
+}
+.hover {
+  background-color: #FF4C4C;
+}
+.redScore {
+  background-color: rgba(255, 0, 0, 0.2);
+}
+.greenScore {
+  background-color: rgba(0, 255, 0, 0.2);
+}
+.sBodyText {
+  width: 100%;
+  display: block;
+  text-align: left;
+}
+.timeSpan {
+  color: #cc0000;
+  margin-right: 5px;
+}
+.TimePicContainer {
+  float: left;
+  width: 24%;
+  text-align: center;
+  margin-right: 5px;
+}
+.TimePicContainer img {
+  width: 100%;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #cc0000;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #FF4C4C;
+}
+svg path,
+svg rect {
+  fill: #FF6700;
+}
+.loader {
+  float: left;
+  display: inline-block;
+  vertical-align: top;
+}
+.noResults {
+  margin: 5px;
+}
+.buttonPlugin.showSocialPluginButton {
+  background-position: -800% 0%;
+}
+.buttonPluginPopUp.showSocialPluginButton {
+  background-image: none;
+}
+.socialItemButton {
+  /*crea el popup*/
+  width: 40px;
+  height: 40px;
+  cursor: pointer;
+  background-image: url(../images/paella_icons_light.png);
+  background-size: 2000% 1000%;
+  background-position: 0px 0px;
+}
+.socialItemButton.selected {
+  /*background-color: rgba(90,90,90,0.8);
+	border: 3px solid #23ff00;*/
+  background-color: rgba(90, 90, 90, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #fa8533;
+}
+.socialItemButton:hover {
+  background-color: #faa166;
+}
+.socialItemButton.facebook {
+  background-position: -1600% 0%;
+}
+.socialItemButton.twitter {
+  background-position: -1400% 0%;
+}
+.socialItemButton.embed {
+  background-position: -1500% 0%;
+}
+.embedSizeButton {
+  display: inline-block;
+  background-color: #fa8533;
+  border: 1px solid #313135;
+  border-radius: 10px;
+  cursor: pointer;
+  margin-right: 5px;
+  vertical-align: middle;
+  font-size: 14px;
+  text-align: center;
+  color: white;
+}
+.embedSizeInput {
+  background-color: #ffffff;
+  width: 40px;
+  height: 20px;
+  color: #000000;
+  font-size: 12px;
+  margin: 0px;
+  padding: 0px;
+}
+.buttonPlugin.themeChooserPlugin {
+  background-position: -800% -100%;
+}
+.buttonPluginPopUp.themeChooserPlugin {
+  background-image: none;
+  min-width: 40px;
+  width: 120px;
+  text-align: right;
+}
+.buttonPluginPopUp.themeChooserPlugin .themebutton {
+  cursor: pointer;
+  text-align: left;
+  text-transform: capitalize;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+}
+.buttonPluginPopUp.themeChooserPlugin .themebutton:hover {
+  background-color: #FF4C4C;
+}
+.translecturesCaptionsMessageBox {
+  margin-left: auto;
+  margin-right: auto;
+  text-align: center;
+  width: 700px;
+  height: 200px;
+  font-size: 14px;
+}
+.translecturesCaptionsMessageBox .title {
+  color: #635e5e;
+  font-size: 20px;
+  margin-bottom: 20px;
+}
+.translecturesCaptionsMessageBox .authMethodsContainer {
+  margin-left: auto;
+  margin-right: auto;
+  width: 500px;
+  height: 200px;
+  margin-top: 10px;
+  position: relative;
+}
+.translecturesCaptionsMessageBox .authMethodsContainer .authMethod {
+  display: inline-block;
+  width: 200px;
+  height: 200px;
+  /*
+	position:absolute;
+	left: 0px;
+*/
+}
+.buttonPlugin.left.videoData {
+  height: auto;
+  width: 100%;
+  margin-top: 5px;
+  margin-left: auto;
+  margin-right: auto;
+  background-color: rgba(0, 0, 0, 0.6);
+}
+.buttonPlugin.left.videoData h1 {
+  color: white;
+  padding: 0px 0px 0px 20px;
+  margin: 0px;
+}
+@media (max-width: 400px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 16px;
+    line-height: 24px;
+  }
+}
+@media (min-width: 401px) and (max-width: 800px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 20px;
+    line-height: 34px;
+  }
+}
+@media (min-width: 801px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 30px;
+    line-height: 44px;
+  }
+}
+.buttonPlugin.right.videoZoom {
+  width: 200px;
+  background-image: none;
+  position: absolute;
+  right: 0px;
+  top: 0px;
+  text-align: right;
+}
+.buttonPlugin.right.videoZoom:hover {
+  background-color: transparent !important;
+}
+.buttonPlugin.right.videoZoom:active {
+  background-color: transparent !important;
+}
+.zoom-thumbnail {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 0px;
+  left: 0px;
+}
+.zoom-container {
+  width: 160px;
+  height: 90px;
+  margin: 5px;
+  box-sizing: border-box;
+  box-shadow: 0px 0px 3px 0px black;
+  border-radius: 2px;
+  position: relative;
+  right: 0px;
+}
+.zoom-rect {
+  background-color: rgba(255, 255, 255, 0.5);
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  border: 1px solid #0e0e0e;
+}
+/* The canvas "freeze frame" to overlay video element, instead of flex side aligned */
+.freezeFrame {
+  align-self: center;
+  position: absolute;
+}
+.videoZoomButton {
+  z-index: 1;
+  margin-left: 2px;
+  margin-right: 2px;
+  margin-top: 4px;
+  opacity: 0.2;
+  background: white;
+  font-size: 2em;
+  padding: 0px 4px 0px 4px;
+  box-shadow: 2px 2px 5px 0px black;
+  width: 30px;
+  height: 30px;
+  position: relative;
+  left: 40%;
+}
+.videoZoomButton:hover {
+  opacity: 0.999;
+}
+.videoZoomButton:active {
+  opacity: 0.999;
+}
+@media (max-width: 600px) {
+  .buttonPlugin.right.videoZoom {
+    width: 89px;
+  }
+  .zoom-container {
+    width: 80px;
+    height: 45px;
+  }
+}
+@media (max-width: 800px) and (min-width: 601px) {
+  .buttonPlugin.right.videoZoom {
+    width: 100px;
+  }
+  .zoom-container {
+    width: 120px;
+    height: 68px;
+  }
+}
+.videoZoomToolbarItem {
+  width: 30px;
+  height: 30px;
+  cursor: pointer;
+  margin-left: 5px;
+  margin-right: 5px;
+  margin-top: 5px;
+  font-size: 20px;
+}
+.buttonPluginPopUp.showViewModeButton {
+  background-image: none;
+}
+.buttonPlugin.showViewModeButton {
+  background-position: -1100% 0%;
+}
+.viewModeItemButton {
+  background-image: url(../images/paella_icons_light.png);
+  width: 80px;
+  height: 40px;
+  cursor: pointer;
+  background-size: 100% 100% !important;
+  background-position: 0px 0px ! important;
+  background-color: white;
+}
+.viewModeItemButton:hover {
+  background-color: #FF4C4C;
+}
+.viewModeItemButton.selected {
+  /*background-position: 78px 0;*/
+  background-color: rgba(211, 211, 211, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #cc0000;
+}
+.viewModeItemButton.slide_professor {
+  background-position: 80px -80px;
+}
+.viewModeItemButton.professor_slide {
+  background-position: 80px -120px;
+}
+.viewModeItemButton.professor {
+  background-position: 80px -40px;
+}
+.viewModeItemButton.slide_over_professor {
+  background-position: 80px -200px;
+}
+.viewModeItemButton.slide_over_professor_right {
+  background-position: 80px -160px;
+}
+.viewModeItemButton.s_p_blackboard2 {
+  background-position: 80px -240px;
+}
+.viewModeItemButton.professor_over_slide {
+  background-position: 80px -320px;
+}
+.viewModeItemButton.professor_over_slide_right {
+  background-position: 80px -280px;
+}
+.viewModeItemButton.slide {
+  background-position: 80px 0px;
+}
+.viewModeItemButton.chroma {
+  background-position: 80px -360px;
+}
+.buttonPlugin.volumeRangeButton.mute {
+  background-position: -300% 0%;
+}
+.buttonPlugin.volumeRangeButton.max {
+  background-position: -600% 0%;
+}
+.buttonPlugin.volumeRangeButton.med {
+  background-position: -500% 0%;
+}
+.buttonPlugin.volumeRangeButton.min {
+  background-position: -400% 0%;
+}
+.buttonPluginPopUp.volumeRangeButton {
+  position: absolute;
+  /* right: -220px; */
+}
+.videoRangeContainer {
+  width: 260px;
+}
+span.videoRangeButton.expandable-content {
+  padding-top: 12px;
+}
+/* Range control */
+.volumeRangeButton input[type=range] {
+  display: inline-block;
+  width: 80px;
+  height: 18px;
+}
+input[type=range] {
+  -webkit-appearance: none;
+  width: 100%;
+  margin: 6.2px 0;
+  background-color: transparent;
+}
+input[type=range]:focus {
+  outline: none;
+}
+input[type=range]::-webkit-slider-runnable-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+  background: #ffffff;
+  border-radius: 1.9px;
+  border: 1.2px solid #010101;
+}
+input[type=range]::-webkit-slider-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 17px;
+  width: 16px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+  -webkit-appearance: none;
+  margin-top: -7.4px;
+}
+input[type=range]:focus::-webkit-slider-runnable-track {
+  background: #ffffff;
+}
+input[type=range]::-moz-range-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+  background: #ffffff;
+  border-radius: 1.9px;
+  border: 1.2px solid #010101;
+}
+input[type=range]::-moz-range-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 17px;
+  width: 16px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+}
+input[type=range]::-ms-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  background: transparent;
+  border-color: transparent;
+  color: transparent;
+}
+input[type=range]::-ms-fill-lower {
+  background: #f2f2f2;
+  border: 1.2px solid #010101;
+  border-radius: 3.8px;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+}
+input[type=range]::-ms-fill-upper {
+  background: #ffffff;
+  border: 1.2px solid #010101;
+  border-radius: 3.8px;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+}
+input[type=range]::-ms-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 14px;
+  width: 14px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+  margin-top: -2px;
+}
+input[type=range]:focus::-ms-fill-lower {
+  background: #ffffff;
+}
+input[type=range]:focus::-ms-fill-upper {
+  background: #ffffff;
+}
+.cc-window {
+  opacity: 1;
+  transition: opacity 1s ease;
+}
+.cc-window.cc-invisible {
+  opacity: 0;
+}
+.cc-animate.cc-revoke {
+  transition: transform 1s ease;
+}
+.cc-animate.cc-revoke.cc-top {
+  transform: translateY(-2em);
+}
+.cc-animate.cc-revoke.cc-bottom {
+  transform: translateY(2em);
+}
+.cc-animate.cc-revoke.cc-active.cc-bottom,
+.cc-animate.cc-revoke.cc-active.cc-top,
+.cc-revoke:hover {
+  transform: translateY(0);
+}
+.cc-grower {
+  max-height: 0;
+  overflow: hidden;
+  transition: max-height 1s;
+}
+.cc-link,
+.cc-revoke:hover {
+  text-decoration: underline;
+}
+.cc-revoke,
+.cc-window {
+  position: fixed;
+  overflow: hidden;
+  box-sizing: border-box;
+  font-family: Helvetica, Calibri, Arial, sans-serif;
+  font-size: 16px;
+  line-height: 1.5em;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-wrap: nowrap;
+  flex-wrap: nowrap;
+  z-index: 9999;
+}
+.cc-window.cc-static {
+  position: static;
+}
+.cc-window.cc-floating {
+  padding: 2em;
+  max-width: 24em;
+  -ms-flex-direction: column;
+  flex-direction: column;
+}
+.cc-window.cc-banner {
+  padding: 1em 1.8em;
+  width: 100%;
+  -ms-flex-direction: row;
+  flex-direction: row;
+}
+.cc-revoke {
+  padding: 0.5em;
+}
+.cc-header {
+  font-size: 18px;
+  font-weight: 700;
+}
+.cc-btn,
+.cc-close,
+.cc-link,
+.cc-revoke {
+  cursor: pointer;
+}
+.cc-link {
+  opacity: 0.8;
+  display: inline-block;
+  padding: 0.2em;
+}
+.cc-link:hover {
+  opacity: 1;
+}
+.cc-link:active,
+.cc-link:visited {
+  color: initial;
+}
+.cc-btn {
+  display: block;
+  padding: 0.4em 0.8em;
+  font-size: 0.9em;
+  font-weight: 700;
+  border-width: 2px;
+  border-style: solid;
+  text-align: center;
+  white-space: nowrap;
+}
+.cc-highlight .cc-btn:first-child {
+  background-color: transparent;
+  border-color: transparent;
+}
+.cc-highlight .cc-btn:first-child:focus,
+.cc-highlight .cc-btn:first-child:hover {
+  background-color: transparent;
+  text-decoration: underline;
+}
+.cc-close {
+  display: block;
+  position: absolute;
+  top: 0.5em;
+  right: 0.5em;
+  font-size: 1.6em;
+  opacity: 0.9;
+  line-height: 0.75;
+}
+.cc-close:focus,
+.cc-close:hover {
+  opacity: 1;
+}
+.cc-revoke.cc-top {
+  top: 0;
+  left: 3em;
+  border-bottom-left-radius: 0.5em;
+  border-bottom-right-radius: 0.5em;
+}
+.cc-revoke.cc-bottom {
+  bottom: 0;
+  left: 3em;
+  border-top-left-radius: 0.5em;
+  border-top-right-radius: 0.5em;
+}
+.cc-revoke.cc-left {
+  left: 3em;
+  right: unset;
+}
+.cc-revoke.cc-right {
+  right: 3em;
+  left: unset;
+}
+.cc-top {
+  top: 1em;
+}
+.cc-left {
+  left: 1em;
+}
+.cc-right {
+  right: 1em;
+}
+.cc-bottom {
+  bottom: 1em;
+}
+.cc-floating > .cc-link {
+  margin-bottom: 1em;
+}
+.cc-floating .cc-message {
+  display: block;
+  margin-bottom: 1em;
+}
+.cc-window.cc-floating .cc-compliance {
+  -ms-flex: 1 0 auto;
+  flex: 1 0 auto;
+}
+.cc-window.cc-banner {
+  -ms-flex-align: center;
+  align-items: center;
+}
+.cc-banner.cc-top {
+  left: 0;
+  right: 0;
+  top: 0;
+}
+.cc-banner.cc-bottom {
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.cc-banner .cc-message {
+  display: block;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+  max-width: 100%;
+  margin-right: 1em;
+}
+.cc-compliance {
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-align: center;
+  align-items: center;
+  -ms-flex-line-pack: justify;
+  align-content: space-between;
+}
+.cc-floating .cc-compliance > .cc-btn {
+  -ms-flex: 1;
+  flex: 1;
+}
+.cc-btn + .cc-btn {
+  margin-left: 0.5em;
+}
+@media print {
+  .cc-revoke,
+  .cc-window {
+    display: none;
+  }
+}
+@media screen and (max-width: 900px) {
+  .cc-btn {
+    white-space: normal;
+  }
+}
+@media screen and (max-width: 414px) and (orientation: portrait), screen and (max-width: 736px) and (orientation: landscape) {
+  .cc-window.cc-top {
+    top: 0;
+  }
+  .cc-window.cc-bottom {
+    bottom: 0;
+  }
+  .cc-window.cc-banner,
+  .cc-window.cc-floating,
+  .cc-window.cc-left,
+  .cc-window.cc-right {
+    left: 0;
+    right: 0;
+  }
+  .cc-window.cc-banner {
+    -ms-flex-direction: column;
+    flex-direction: column;
+  }
+  .cc-window.cc-banner .cc-compliance {
+    -ms-flex: 1 1 auto;
+    flex: 1 1 auto;
+  }
+  .cc-window.cc-floating {
+    max-width: none;
+  }
+  .cc-window .cc-message {
+    margin-bottom: 1em;
+  }
+  .cc-window.cc-banner {
+    -ms-flex-align: unset;
+    align-items: unset;
+  }
+  .cc-window.cc-banner .cc-message {
+    margin-right: 0;
+  }
+}
+.cc-floating.cc-theme-classic {
+  padding: 1.2em;
+  border-radius: 5px;
+}
+.cc-floating.cc-type-info.cc-theme-classic .cc-compliance {
+  text-align: center;
+  display: inline;
+  -ms-flex: none;
+  flex: none;
+}
+.cc-theme-classic .cc-btn {
+  border-radius: 5px;
+}
+.cc-theme-classic .cc-btn:last-child {
+  min-width: 140px;
+}
+.cc-floating.cc-type-info.cc-theme-classic .cc-btn {
+  display: inline-block;
+}
+.cc-theme-edgeless.cc-window {
+  padding: 0;
+}
+.cc-floating.cc-theme-edgeless .cc-message {
+  margin: 2em 2em 1.5em;
+}
+.cc-banner.cc-theme-edgeless .cc-btn {
+  margin: 0;
+  padding: 0.8em 1.8em;
+  height: 100%;
+}
+.cc-banner.cc-theme-edgeless .cc-message {
+  margin-left: 1em;
+}
+.cc-floating.cc-theme-edgeless .cc-btn + .cc-btn {
+  margin-left: 0;
+}
+.paella-profile-button {
+  background-color: lightgray;
+  border: none;
+  border-radius: 10%;
+  box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.9);
+}
+.paella-profile-button:hover {
+  background-color: #9b9b9b;
+}
+.paella-profile-button:active {
+  background-color: #000000;
+}
+.buttonPlugin.AirPlayButton {
+  background-position: -1100% -100%;
+}
+.buttonPlugin.AirPlayButton.not-available {
+  opacity: 0.4;
+}
+.buttonPlugin.legal {
+  pointer-events: all;
+  padding-right: 5px;
+  height: 20px;
+  text-align: right;
+  padding: 1px;
+  margin: 1px;
+  margin-right: 12px;
+  margin-top: -7px;
+  margin-bottom: 4px;
+  width: auto;
+}
+.buttonPlugin.legal a {
+  color: lightgrey !important;
+  text-decoration: underline !important;
+}
+.buttonPlugin.legal a:hover {
+  background-color: transparent !important;
+  font-weight: bold !important;
+}
+.buttonPlugin.legal:hover {
+  background-color: transparent !important;
+}
+.buttonPlugin.PIPModeButton {
+  background-position: -1000% -100%;
+}
+.related-video-container {
+  z-index: 5;
+  background-color: rgba(255, 255, 255, 0.7);
+}
+.related-video-container .related-video-link {
+  width: 30%;
+  overflow: hidden;
+  display: block;
+  background-color: white;
+  padding: 3px;
+  box-shadow: 1px 1px 3px 0px black;
+  position: absolute;
+  pointer-events: all;
+}
+.related-video-container .related-video-link.related-video-single {
+  width: 50%;
+  left: 25%;
+  top: 30%;
+}
+.related-video-container .related-video-link.related-video-dual-1 {
+  width: 30%;
+  left: 10%;
+  top: 30%;
+}
+.related-video-container .related-video-link.related-video-dual-2 {
+  width: 30%;
+  right: 10%;
+  top: 30%;
+}
+.related-video-container .related-video-link img {
+  width: 100%;
+}
+.related-video-container .related-video-link p {
+  width: 100%;
+  text-align: center;
+}
+.buttonPlugin.showEditorButton {
+  pointer-events: all;
+}
+.buttonPluginPopUp.videoZoomToolbar {
+  width: 50px;
+  text-align: center;
+}
+.buttonPlugin.right.videoZoomToolbar i.button-icon.icon-mini-videocamera {
+  font-size: 27px;
+  margin-left: -2px;
+}
+.buttonPlugin.right.videoZoomToolbar i.button-icon.icon-mini-zoom-in {
+  font-size: 29px;
+  margin-left: -6px;
+}
+.autoTrackingActivated {
+  color: red !important;
+}
+html {
+  margin: 0px;
+}
+body {
+  font-family: 'Ubuntu', sans-serif;
+  margin: 0px;
+}
+pre {
+  padding: 20px;
+  border-bottom: 2px solid #cc0000;
+  border-top: 2px solid #cc0000;
+}
+iframe {
+  margin-left: auto;
+  margin-right: auto;
+  display: block;
+}
+h2 {
+  color: #909090;
+}
+h1 {
+  color: #cc0000;
+}
+.alignCenter {
+  display: block;
+  margin-right: auto;
+  margin-left: auto;
+  max-width: 90%;
+}
+.image {
+  background-size: 100% auto;
+  background-repeat: no-repeat;
+}
+#logo {
+  background-image: url(logo_paella.png);
+  width: 140px;
+  height: 140px;
+  float: left;
+}
+.pageHeader {
+  background-color: white;
+  padding: 20px;
+  border-bottom: 1px solid #cc0000;
+  height: 170px;
+}
+.content {
+  width: 100%;
+  background-color: white;
+  margin-left: auto;
+  margin-right: auto;
+  max-width: 1100px;
+  padding-left: 30px;
+  padding-right: 30px;
+}
+.content.page {
+  margin-top: 0px;
+  padding-top: 30px;
+  padding-bottom: 100px;
+}
+#headerText {
+  font-family: 'Varela Round', sans-serif;
+  font-size: 60pt;
+  display: block;
+  width: 100%;
+  line-height: 90px;
+  margin-left: 157px;
+}
+#headerSubtitle {
+  display: block;
+  width: 100%;
+  margin-left: 160px;
+  font-size: 28px;
+  color: gray;
+}
+.logoGroup {
+  width: 660px;
+  float: left;
+  margin-top: 20px;
+}
+a {
+  color: #fa8528;
+}
+a:visited {
+  color: #fa8528;
+}
+a:hover {
+  color: #fba352;
+}
+a:active {
+  color: #ffb055;
+}
+.linkButton {
+  font-size: 20px;
+  color: white;
+  background-color: #fa8528;
+  padding: 20px;
+  border-radius: 5px;
+  border: 1.6pt solid #BA631E;
+  box-shadow: inset -3px -5px 10px 0px #D9711D;
+  display: inline-block;
+  text-decoration: none;
+  text-align: center;
+}
+.linkButton.small {
+  padding: 10px;
+  font-size: 12px;
+}
+.linkButton:hover {
+  color: white;
+  background-color: #FFA863;
+}
+.linkButton:active {
+  color: white;
+  box-shadow: inset 3px 5px 20px 0px #D9711D;
+}
+.buttonGroup#downloads {
+  width: 233px;
+  padding-top: 5px;
+  margin-bottom: 30px;
+  margin-left: auto;
+  margin-right: auto;
+}
+#githubLink {
+  display: block;
+}
+#resourcesLink {
+  display: block;
+}
+#downloadPaella3 {
+  display: block;
+  width: 189px;
+  margin-top: 55px;
+  margin-left: auto;
+  margin-right: auto;
+  color: white;
+}
+.downloadGroup {
+  width: 250px;
+  float: right;
+}
+.footerText {
+  display: inline-block;
+  height: 50px;
+  vertical-align: top;
+  margin-right: 10px;
+  font-size: 10px;
+}
+.sponsorLogo {
+  width: 100px;
+  display: inline-block;
+}
+.content.footer {
+  border-top: 4px solid #fa8528;
+  padding-top: 10px;
+}
+.menu {
+  margin-top: 165px;
+}
+.menuItem {
+  list-style-type: none;
+  display: inline;
+  margin-right: 30px;
+}
+.menuItemLink {
+  cursor: pointer;
+}
+.menuItemLink.current {
+  color: gray;
+}
+.element {
+  margin-left: auto;
+  display: block;
+  margin-right: auto;
+  width: 65%;
+}
+.imgen {
+  margin-left: auto;
+  width: 100%;
+}
+.txtblock {
+  color: black;
+  font-size: large;
+  font-family: 'Istok Web', sans-serif;
+  font-style: oblique;
+}
diff --git a/src/main/webapp/static/js/paella/player/resources/style/style_dark_small.css b/src/main/webapp/static/js/paella/player/resources/style/style_dark_small.css
new file mode 100644
index 0000000000000000000000000000000000000000..a4d767f574c178474f6d45c09c084c14f97dfdef
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/style_dark_small.css
@@ -0,0 +1,3990 @@
+/* Light icons over dark background */
+body {
+  height: 100%;
+  width: 100%;
+  font-family: Verdana, sans-serif;
+  font-size: 12px;
+  background: #4b4b4b;
+  touch-action: none;
+}
+a {
+  color: #636363;
+}
+a:hover {
+  color: #a4a4a4;
+}
+a:active {
+  color: #3d3d3d;
+}
+a:visited {
+  color: #636363;
+}
+.videoWrapper {
+  -moz-box-shadow: 2px 2px 6px #000;
+  -webkit-box-shadow: 2px 2px 6px #000;
+  box-shadow: 2px 2px 6px #000;
+  background: black;
+}
+div {
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.buttonPlugin {
+  cursor: pointer;
+  padding-right: 0px;
+  padding-left: 0px;
+  background-origin: border-box;
+  position: relative;
+  display: block;
+  float: left;
+  align-items: stretch;
+  background-color: transparent;
+  border: none;
+  box-sizing: border-box;
+  min-width: 20px;
+  height: 20px;
+  margin-left: 0px;
+  margin-right: 0px;
+  margin-top: 0px;
+  color: #151515;
+  text-align: center;
+}
+button,
+div i.button-icon {
+  color: white;
+  font-size: 12px;
+  line-height: 20px;
+  position: absolute;
+  top: 0px;
+  left: 0px;
+}
+span.expandable-content {
+  color: #151515;
+  width: 80px;
+  display: block;
+  float: left;
+}
+.buttonPlugin.expandable-content {
+  background-color: transparent !important;
+}
+.buttonPlugin {
+  position: relative;
+}
+.button-text {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  top: 0px;
+  bottom: 0px;
+  text-align: center;
+  line-height: 15px;
+  z-index: 1;
+}
+i.button-icon.icon-screen {
+  font-size: 14.64px;
+  padding-left: 0px;
+}
+.play-button-on-screen {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  position: absolute;
+  opacity: 0.7;
+  top: 0;
+  left: 0;
+  bottom: 51px;
+  right: 0;
+  z-index: 50;
+  width: 100%;
+  height: 100%;
+}
+.play-button-on-screen .play-icon {
+  width: 300px;
+  height: 300px;
+  background-image: url(../images/play.svg);
+}
+@media screen and (max-width: 1000px) {
+  .play-button-on-screen .play-icon {
+    width: 300px;
+    height: 300px;
+  }
+}
+@media screen and (max-width: 700px) {
+  .play-button-on-screen .play-icon {
+    width: 150px;
+    height: 150px;
+  }
+}
+@media screen and (max-width: 400px) {
+  .play-button-on-screen .play-icon {
+    width: 80px;
+    height: 80px;
+  }
+}
+#playerContainer {
+  background-color: white;
+}
+#playerContainer.modalVisible > :not(.modalMessageContainer) {
+  filter: blur(10px);
+}
+#playerContainer:-webkit-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-moz-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-ms-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-o-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#ignoreBrowserCheckLink {
+  color: black;
+  text-decoration: underline;
+}
+.alt-scroll-message-container {
+  position: absolute;
+  left: 0px;
+  top: 0px;
+  bottom: 0px;
+  right: 0px;
+  background-color: rgba(0, 0, 0, 0.45);
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-size: 20px;
+  color: white;
+  text-shadow: 1px 1px 4px black;
+}
+.alt-scroll-message-container p {
+  text-align: center;
+}
+.playbackControls {
+  background-color: rgba(0, 0, 0, 0.78);
+  background-image: none;
+  background-size: auto;
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  height: 34px;
+  z-index: 100;
+}
+.playbackBarPlugins {
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  height: 20px;
+  font-size: 6px;
+  overflow: hidden;
+}
+.playbackBar {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  height: 12px;
+  background-color: rgba(125, 125, 125, 0.5);
+  border-bottom: 1px solid rgba(90, 90, 90, 0.6);
+  border-top: 1px solid rgba(90, 90, 90, 0.6);
+  cursor: pointer;
+}
+.playbackBar:focus {
+  box-shadow: inset 0px 0px 5px 0px #FF4C4C;
+  outline: none;
+}
+.playbackBarFull {
+  height: 10px;
+  background-color: #cc0000;
+  background: linear-gradient(to bottom, #ff0000 0%, #690000 100%);
+}
+.playbackBarFull.disabled {
+  opacity: 0.2;
+}
+.buttonPlugin.left {
+  float: left;
+}
+.buttonPlugin.right {
+  float: right;
+}
+.buttonPlugin:hover {
+  background-color: #FF4C4C;
+}
+.buttonPlugin:focus {
+  box-shadow: inset 0px 0px 5px 0px #FF4C4C;
+  outline: none;
+}
+.buttonPlugin.selected {
+  background-color: #cc0000;
+}
+.popUpPluginContainer {
+  position: absolute;
+  right: 0px;
+  z-index: 110;
+  color: white;
+}
+.buttonPluginPopUp {
+  background-color: rgba(0, 0, 0, 0.78);
+  position: absolute;
+  bottom: -12px;
+}
+.timelinePluginContainer {
+  position: absolute;
+  left: 0px;
+  width: 100%;
+  background-color: rgba(0, 0, 0, 0.78);
+  bottom: 34px;
+  color: white;
+}
+.buttonTimeLine {
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+}
+/* old style time control */
+.timeControlOld {
+  color: white;
+  display: block;
+  position: relative;
+  width: 69px;
+  height: 44px;
+  background-size: 100%;
+  background-image: url(../images/time_monitor.png);
+  font-size: 10px;
+  padding-top: 11px;
+  background-repeat: no-repeat;
+  bottom: 70px;
+  font-family: verdana;
+  text-align: center;
+  z-index: 100;
+}
+.timeControl {
+  color: white;
+  display: block;
+  position: relative;
+  width: 69px;
+  height: 10px;
+  font-size: 10px;
+  background-repeat: no-repeat;
+  padding-left: 5px;
+  font-family: verdana;
+  text-align: left;
+  z-index: 100;
+  line-height: 10px;
+  margin-top: -10px;
+  cursor: pointer;
+}
+.editControlContainer {
+  z-index: 20;
+}
+.paellaLoadErrorContainer {
+  width: 1000px;
+  margin: auto;
+  margin-top: 200px;
+  text-align: center;
+  padding-top: 80px;
+  padding-bottom: 80px;
+  background-color: rgba(220, 228, 234, 0.9);
+  border-radius: 22px;
+  box-shadow: 1px 1px 8px black;
+  font-family: sans-serif;
+  font-size: 20px;
+}
+.modalMessageContainer {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+.messageContainer {
+  width: 95%;
+  height: 95%;
+  margin-top: 2%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  vertical-align: middle;
+  font-family: sans-serif;
+  padding-left: 80px;
+  padding-right: 80px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+}
+.frameContainer {
+  width: 95%;
+  height: 95%;
+  margin-top: 2%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  /*vertical-align: middle;*/
+  font-family: sans-serif;
+  padding-left: 80px;
+  padding-right: 80px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+  display: block;
+}
+.errorContainer {
+  width: 55%;
+  min-height: 55%;
+  margin-top: 22%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  vertical-align: middle;
+  padding-left: 120px;
+  padding-right: 60px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-family: sans-serif;
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+  border: 7px solid maroon;
+  color: maroon;
+  font-weight: bold;
+  background-image: url(../images/error_icon.png);
+  background-size: 10%;
+  background-repeat: no-repeat;
+  background-position: 50px 40px;
+}
+.paella_messageContainer_closeButton {
+  /*background-image: url(../images/close_button.png);*/
+  width: 20px;
+  height: 20px;
+  position: absolute;
+  display: block;
+  top: 10px;
+  right: 10px;
+  z-index: 999999999;
+  border-radius: 20px;
+}
+.paella_messageContainer_closeButton:hover {
+  color: white;
+  background-color: black;
+}
+.paella_messageContainer_closeButton:active {
+  background-position: 20px;
+}
+.overlayContainer.background {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+#overlayContainer {
+  pointer-events: none;
+}
+#overlayContainer div {
+  pointer-events: none;
+}
+.videoLoaderOverlay {
+  background-color: black;
+}
+.videoOverlayButtonPlugins {
+  z-index: 100;
+  position: absolute;
+  right: 0px;
+  left: 0px;
+  top: 0px;
+  pointer-events: none;
+}
+.divTimeOverlay {
+  position: fixed;
+  background-color: rgba(0, 0, 0, 0.78);
+  color: white;
+  text-align: center;
+  padding-right: 3px;
+  padding-left: 3px;
+  padding-top: 1px;
+  text-shadow: 1px 1px #888888;
+  z-index: 100;
+}
+.divTimeImageOverlay {
+  position: fixed;
+  background-color: rgba(0, 0, 0, 0.78);
+  z-index: 99;
+  width: 256px;
+  -webkit-background-size: cover;
+  -moz-background-size: cover;
+  -o-background-size: cover;
+  background-size: contain;
+}
+.imgOverlay {
+  height: 100%;
+  width: 100%;
+  max-width: none;
+  border: 1px solid rgba(0, 0, 0, 0.78);
+}
+.videoPosterFrameImage {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  height: 100%;
+  width: 100%;
+}
+.playerContainer_controls_playback_playbackBar_canvas {
+  overflow: hidden;
+  position: absolute;
+}
+#playerContainer_controls_playback_playbackBar {
+  overflow: hidden;
+  background-color: #333333;
+}
+.login-link {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+video::-internal-media-controls-download-button {
+  display: none;
+}
+video::-webkit-media-controls-enclosure {
+  overflow: hidden;
+}
+video::-webkit-media-controls-panel {
+  width: calc(100% + 8px);
+  /* Adjust as needed */
+}
+#lazyLoadThumbnailContainer {
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  width: 100%;
+  z-index: 20;
+  /* Over the video contaniner and video layout buttons, but under the play button */
+}
+.dimmed-element {
+  filter: blur(4px);
+}
+/* TODO: Extract this CSS to editor plugins */
+.editorTrackItem.mainTrackTrim {
+  background-image: url(../images/main_track_bkg.png);
+  background-size: 56px 100%;
+}
+/* END EXTRACT */
+/* Begin new editor */
+a.btn {
+  color: #f3f3f3;
+}
+.listItem {
+  color: #f3f3f3;
+}
+.editorContainer {
+  position: fixed;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  width: 100%;
+  height: 100%;
+}
+.paellaEditorRightBar {
+  position: fixed;
+  right: 0px;
+  top: 0px;
+  background-color: #4f4f4f;
+  box-shadow: 1px -4px 12px black;
+}
+.paellaEditorBottomBar {
+  position: fixed;
+  right: 0px;
+  bottom: 0px;
+  left: 0px;
+  background-color: #4f4f4f;
+  box-shadow: 1px 1px 12px black;
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.paellaEditorRightBarContent {
+  padding-left: 10px;
+  padding-right: 10px;
+  font-size: 11px;
+}
+.editorTimelineContainer {
+  margin-top: -21px;
+  position: relative;
+  overflow: auto;
+}
+.editorTimelineContent {
+  background-image: url(../images/light_background.png);
+  top: 0px;
+  box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.7);
+  position: relative;
+}
+.editorTimeLineTimeMarks {
+  position: absolute;
+  top: 0px;
+  height: 20px;
+  left: 0px;
+  right: 0px;
+  z-index: 1;
+  padding-left: 3px;
+  background-image: url(../images/timeline_tracks_bkg.png);
+}
+.editorTimeLineMark {
+  float: left;
+  /*	background-color: rgb(61,62,62);*/
+  font-size: 9px;
+  height: 20px;
+  line-height: 18px;
+}
+.editorTimeLineMark.odd {
+  /*	background-color: rgb(73,82,82);*/
+}
+.editorTrackListItem.master {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  top: 38px;
+  height: 51px;
+}
+.editorTrackListItem.secondary {
+  height: 23px;
+  position: relative;
+}
+.editorTrackListItem.secondary.track0 {
+  margin-top: 90px;
+}
+.editorTrackItem {
+  position: absolute;
+  height: 97%;
+  border-radius: 5px;
+  border: 1px solid #6f6f6f;
+  overflow: hidden;
+}
+.editorTrackItemResizer {
+  width: 2px;
+  top: 20%;
+  bottom: 23%;
+  position: absolute;
+  overflow: hidden;
+  cursor: pointer;
+}
+.editorTrackItemResizer.left {
+  border-right: 8px double #7c7c7c;
+  left: 0px;
+}
+.editorTrackItemResizer.right {
+  border-left: 8px double #7c7c7c;
+  right: 0px;
+}
+.editorTrackItemMoveArea {
+  position: absolute;
+  left: 18px;
+  right: 18px;
+  top: 0px;
+  bottom: 0px;
+  cursor: pointer;
+}
+.editorTrackItemLabel {
+  margin-left: 20px;
+  margin-right: 20px;
+  height: 100%;
+  line-height: 48px;
+  cursor: pointer;
+}
+.editorTrackItemLock {
+  top: 5%;
+  position: absolute;
+}
+.editorTrackItemLabel.secondary {
+  line-height: 23px;
+}
+.editorTimeLineMark.last {
+  overflow: hidden;
+}
+.editorTimeLineTracks {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  padding-bottom: 20px;
+  background-image: url(../images/timeline_tracks_bkg.png);
+}
+.editorBottomToolbarContainer {
+  background-color: #52595F;
+  height: 27px;
+}
+.zoomDropup {
+  margin-top: 2px;
+  float: right;
+  margin-right: 10px;
+}
+.navbar.tiny {
+  font-size: 11px;
+}
+.navbar-inner.tiny {
+  min-height: 21px;
+}
+.navbar .nav > li {
+  line-height: 11px;
+}
+.navbar .nav > li > a.rightBarPlugin {
+  padding: 5px 5px 5px;
+}
+.editorToolbar_selectedToolUtils {
+  margin-left: 10px;
+}
+.editorToolbarPlaybackControls {
+  position: absolute;
+  left: 45%;
+}
+.editorTimelineCursor {
+  position: absolute;
+  height: 100%;
+  width: 1px;
+  border-left: 1px dashed rgba(238, 0, 12, 0.92);
+  left: 352px;
+  z-index: 0;
+  top: 0px;
+  line-height: 54px;
+  font-size: 11px;
+  padding-left: 3px;
+}
+.editorTimelineCursor.currentTime {
+  border-left: 1px solid white;
+}
+.editorRightBarTabIcon {
+  /*	display: inline-block;  to add icon, set this property and the background image in the plugin css file, using .editorRightBarTabIcon.pluginName as class name */
+  width: 15px;
+  height: 14px;
+  margin-bottom: -3px;
+  margin-right: 2px;
+}
+@font-face {
+  font-family: 'icomoon';
+  src: url('fonts/icomoon.eot?u9ewd1');
+  src: url('fonts/icomoon.eot?u9ewd1#iefix') format('embedded-opentype'), url('fonts/icomoon.ttf?u9ewd1') format('truetype'), url('fonts/icomoon.woff?u9ewd1') format('woff'), url('fonts/icomoon.svg?u9ewd1#icomoon') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+[class^="icon-"],
+[class*=" icon-"] {
+  /* use !important to prevent issues with browser extensions that change fonts */
+  font-family: 'icomoon' !important;
+  speak: none;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
+  /* Better Font Rendering =========== */
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+.icon-mini-camera:before {
+  content: "\e900";
+}
+.icon-captions:before {
+  content: "\e901";
+}
+.icon-paintbrush:before {
+  content: "\e902";
+}
+.icon-airplay:before {
+  content: "\e903";
+}
+.icon-arrow-down:before {
+  content: "\e904";
+}
+.icon-arrow-left:before {
+  content: "\e905";
+}
+.icon-arrow-right:before {
+  content: "\e906";
+}
+.icon-arrow-up:before {
+  content: "\e907";
+}
+.icon-back-10-s:before {
+  content: "\e908";
+}
+.icon-back-30-s:before {
+  content: "\e909";
+}
+.icon-comments-disabled:before {
+  content: "\e90a";
+}
+.icon-comments:before {
+  content: "\e90b";
+}
+.icon-edit:before {
+  content: "\e90c";
+}
+.icon-facebook:before {
+  content: "\e90d";
+}
+.icon-folder:before {
+  content: "\e90e";
+}
+.icon-forward-30-s:before {
+  content: "\e90f";
+}
+.icon-frames:before {
+  content: "\e910";
+}
+.icon-fullscreen:before {
+  content: "\e911";
+}
+.icon-headphone:before {
+  content: "\e912";
+}
+.icon-help:before {
+  content: "\e913";
+}
+.icon-info:before {
+  content: "\e914";
+}
+.icon-link:before {
+  content: "\e915";
+}
+.icon-mini-frames:before {
+  content: "\e916";
+}
+.icon-mini-videocamera:before {
+  content: "\e917";
+}
+.icon-mini-window:before {
+  content: "\e918";
+}
+.icon-mini-zoom-in:before {
+  content: "\e919";
+}
+.icon-mini-zoom-out:before {
+  content: "\e91a";
+}
+.icon-pause:before {
+  content: "\e91b";
+}
+.icon-photo:before {
+  content: "\e91c";
+}
+.icon-pip:before {
+  content: "\e91d";
+}
+.icon-play:before {
+  content: "\e91e";
+}
+.icon-player-mode-1:before {
+  content: "\e91f";
+}
+.icon-player-mode-2:before {
+  content: "\e920";
+}
+.icon-player-mode-3:before {
+  content: "\e921";
+}
+.icon-present-mode-1:before {
+  content: "\e922";
+}
+.icon-present-mode-2:before {
+  content: "\e923";
+}
+.icon-present-mode-3:before {
+  content: "\e924";
+}
+.icon-present-mode-4:before {
+  content: "\e925";
+}
+.icon-present-mode-5:before {
+  content: "\e926";
+}
+.icon-present-mode-6:before {
+  content: "\e927";
+}
+.icon-present-mode-7:before {
+  content: "\e928";
+}
+.icon-present-mode-8:before {
+  content: "\e929";
+}
+.icon-present-mode-9:before {
+  content: "\e92a";
+}
+.icon-present-mode-10:before {
+  content: "\e92b";
+}
+.icon-presentation-mode:before {
+  content: "\e92c";
+}
+.icon-screen:before {
+  content: "\e92d";
+}
+.icon-slideshow:before {
+  content: "\e92e";
+}
+.icon-social:before {
+  content: "\e92f";
+}
+.icon-star-empty:before {
+  content: "\e930";
+}
+.icon-star:before {
+  content: "\e931";
+}
+.icon-stats:before {
+  content: "\e932";
+}
+.icon-twitter:before {
+  content: "\e933";
+}
+.icon-user:before {
+  content: "\e934";
+}
+.icon-volume-high:before {
+  content: "\e935";
+}
+.icon-volume-low:before {
+  content: "\e936";
+}
+.icon-volume-mid:before {
+  content: "\e937";
+}
+.icon-volume-mute:before {
+  content: "\e938";
+}
+.icon-windowed:before {
+  content: "\e939";
+}
+.icon-zoom-in:before {
+  content: "\e93a";
+}
+.icon-zoom:before {
+  content: "\e93b";
+}
+.icon-home:before {
+  content: "\e93c";
+}
+.icon-home2:before {
+  content: "\e93d";
+}
+.icon-home3:before {
+  content: "\e93e";
+}
+.icon-office:before {
+  content: "\e93f";
+}
+.icon-newspaper:before {
+  content: "\e940";
+}
+.icon-pencil:before {
+  content: "\e941";
+}
+.icon-pencil2:before {
+  content: "\e942";
+}
+.icon-quill:before {
+  content: "\e943";
+}
+.icon-pen:before {
+  content: "\e944";
+}
+.icon-blog:before {
+  content: "\e945";
+}
+.icon-eyedropper:before {
+  content: "\e946";
+}
+.icon-droplet:before {
+  content: "\e947";
+}
+.icon-paint-format:before {
+  content: "\e948";
+}
+.icon-image:before {
+  content: "\e949";
+}
+.icon-images:before {
+  content: "\e94a";
+}
+.icon-camera:before {
+  content: "\e94b";
+}
+.icon-headphones:before {
+  content: "\e94c";
+}
+.icon-music:before {
+  content: "\e94d";
+}
+.icon-play2:before {
+  content: "\e94e";
+}
+.icon-film:before {
+  content: "\e94f";
+}
+.icon-video-camera:before {
+  content: "\e950";
+}
+.icon-dice:before {
+  content: "\e951";
+}
+.icon-pacman:before {
+  content: "\e952";
+}
+.icon-spades:before {
+  content: "\e953";
+}
+.icon-clubs:before {
+  content: "\e954";
+}
+.icon-diamonds:before {
+  content: "\e955";
+}
+.icon-bullhorn:before {
+  content: "\e956";
+}
+.icon-connection:before {
+  content: "\e957";
+}
+.icon-podcast:before {
+  content: "\e958";
+}
+.icon-feed:before {
+  content: "\e959";
+}
+.icon-mic:before {
+  content: "\e95a";
+}
+.icon-book:before {
+  content: "\e95b";
+}
+.icon-books:before {
+  content: "\e95c";
+}
+.icon-library:before {
+  content: "\e95d";
+}
+.icon-file-text:before {
+  content: "\e95e";
+}
+.icon-profile:before {
+  content: "\e95f";
+}
+.icon-file-empty:before {
+  content: "\e960";
+}
+.icon-files-empty:before {
+  content: "\e961";
+}
+.icon-file-text2:before {
+  content: "\e962";
+}
+.icon-file-picture:before {
+  content: "\e963";
+}
+.icon-file-music:before {
+  content: "\e964";
+}
+.icon-file-play:before {
+  content: "\e965";
+}
+.icon-file-video:before {
+  content: "\e966";
+}
+.icon-file-zip:before {
+  content: "\e967";
+}
+.icon-copy:before {
+  content: "\e968";
+}
+.icon-paste:before {
+  content: "\e969";
+}
+.icon-stack:before {
+  content: "\e96a";
+}
+.icon-folder2:before {
+  content: "\e96b";
+}
+.icon-folder-open:before {
+  content: "\e96c";
+}
+.icon-folder-plus:before {
+  content: "\e96d";
+}
+.icon-folder-minus:before {
+  content: "\e96e";
+}
+.icon-folder-download:before {
+  content: "\e96f";
+}
+.icon-folder-upload:before {
+  content: "\e970";
+}
+.icon-price-tag:before {
+  content: "\e971";
+}
+.icon-price-tags:before {
+  content: "\e972";
+}
+.icon-barcode:before {
+  content: "\e973";
+}
+.icon-qrcode:before {
+  content: "\e974";
+}
+.icon-ticket:before {
+  content: "\e975";
+}
+.icon-cart:before {
+  content: "\e976";
+}
+.icon-coin-dollar:before {
+  content: "\e977";
+}
+.icon-coin-euro:before {
+  content: "\e978";
+}
+.icon-coin-pound:before {
+  content: "\e979";
+}
+.icon-coin-yen:before {
+  content: "\e97a";
+}
+.icon-credit-card:before {
+  content: "\e97b";
+}
+.icon-calculator:before {
+  content: "\e97c";
+}
+.icon-lifebuoy:before {
+  content: "\e97d";
+}
+.icon-phone:before {
+  content: "\e97e";
+}
+.icon-phone-hang-up:before {
+  content: "\e97f";
+}
+.icon-address-book:before {
+  content: "\e980";
+}
+.icon-envelop:before {
+  content: "\e981";
+}
+.icon-pushpin:before {
+  content: "\e982";
+}
+.icon-location:before {
+  content: "\e983";
+}
+.icon-location2:before {
+  content: "\e984";
+}
+.icon-compass:before {
+  content: "\e985";
+}
+.icon-compass2:before {
+  content: "\e986";
+}
+.icon-map:before {
+  content: "\e987";
+}
+.icon-map2:before {
+  content: "\e988";
+}
+.icon-history:before {
+  content: "\e989";
+}
+.icon-clock:before {
+  content: "\e98a";
+}
+.icon-clock2:before {
+  content: "\e98b";
+}
+.icon-alarm:before {
+  content: "\e98c";
+}
+.icon-bell:before {
+  content: "\e98d";
+}
+.icon-stopwatch:before {
+  content: "\e98e";
+}
+.icon-calendar:before {
+  content: "\e98f";
+}
+.icon-printer:before {
+  content: "\e990";
+}
+.icon-keyboard:before {
+  content: "\e991";
+}
+.icon-display:before {
+  content: "\e992";
+}
+.icon-laptop:before {
+  content: "\e993";
+}
+.icon-mobile:before {
+  content: "\e994";
+}
+.icon-mobile2:before {
+  content: "\e995";
+}
+.icon-tablet:before {
+  content: "\e996";
+}
+.icon-tv:before {
+  content: "\e997";
+}
+.icon-drawer:before {
+  content: "\e998";
+}
+.icon-drawer2:before {
+  content: "\e999";
+}
+.icon-box-add:before {
+  content: "\e99a";
+}
+.icon-box-remove:before {
+  content: "\e99b";
+}
+.icon-download:before {
+  content: "\e99c";
+}
+.icon-upload:before {
+  content: "\e99d";
+}
+.icon-floppy-disk:before {
+  content: "\e99e";
+}
+.icon-drive:before {
+  content: "\e99f";
+}
+.icon-database:before {
+  content: "\e9a0";
+}
+.icon-undo:before {
+  content: "\e9a1";
+}
+.icon-redo:before {
+  content: "\e9a2";
+}
+.icon-undo2:before {
+  content: "\e9a3";
+}
+.icon-redo2:before {
+  content: "\e9a4";
+}
+.icon-forward:before {
+  content: "\e9a5";
+}
+.icon-reply:before {
+  content: "\e9a6";
+}
+.icon-bubble:before {
+  content: "\e9a7";
+}
+.icon-bubbles:before {
+  content: "\e9a8";
+}
+.icon-bubbles2:before {
+  content: "\e9a9";
+}
+.icon-bubble2:before {
+  content: "\e9aa";
+}
+.icon-bubbles3:before {
+  content: "\e9ab";
+}
+.icon-bubbles4:before {
+  content: "\e9ac";
+}
+.icon-user2:before {
+  content: "\e9ad";
+}
+.icon-users:before {
+  content: "\e9ae";
+}
+.icon-user-plus:before {
+  content: "\e9af";
+}
+.icon-user-minus:before {
+  content: "\e9b0";
+}
+.icon-user-check:before {
+  content: "\e9b1";
+}
+.icon-user-tie:before {
+  content: "\e9b2";
+}
+.icon-quotes-left:before {
+  content: "\e9b3";
+}
+.icon-quotes-right:before {
+  content: "\e9b4";
+}
+.icon-hour-glass:before {
+  content: "\e9b5";
+}
+.icon-spinner:before {
+  content: "\e9b6";
+}
+.icon-spinner2:before {
+  content: "\e9b7";
+}
+.icon-spinner3:before {
+  content: "\e9b8";
+}
+.icon-spinner4:before {
+  content: "\e9b9";
+}
+.icon-spinner5:before {
+  content: "\e9ba";
+}
+.icon-spinner6:before {
+  content: "\e9bb";
+}
+.icon-spinner7:before {
+  content: "\e9bc";
+}
+.icon-spinner8:before {
+  content: "\e9bd";
+}
+.icon-spinner9:before {
+  content: "\e9be";
+}
+.icon-spinner10:before {
+  content: "\e9bf";
+}
+.icon-spinner11:before {
+  content: "\e9c0";
+}
+.icon-binoculars:before {
+  content: "\e9c1";
+}
+.icon-search:before {
+  content: "\e9c2";
+}
+.icon-zoom-in2:before {
+  content: "\e9c3";
+}
+.icon-zoom-out:before {
+  content: "\e9c4";
+}
+.icon-enlarge:before {
+  content: "\e9c5";
+}
+.icon-shrink:before {
+  content: "\e9c6";
+}
+.icon-enlarge2:before {
+  content: "\e9c7";
+}
+.icon-shrink2:before {
+  content: "\e9c8";
+}
+.icon-key:before {
+  content: "\e9c9";
+}
+.icon-key2:before {
+  content: "\e9ca";
+}
+.icon-lock:before {
+  content: "\e9cb";
+}
+.icon-unlocked:before {
+  content: "\e9cc";
+}
+.icon-wrench:before {
+  content: "\e9cd";
+}
+.icon-equalizer:before {
+  content: "\e9ce";
+}
+.icon-equalizer2:before {
+  content: "\e9cf";
+}
+.icon-cog:before {
+  content: "\e9d0";
+}
+.icon-cogs:before {
+  content: "\e9d1";
+}
+.icon-hammer:before {
+  content: "\e9d2";
+}
+.icon-magic-wand:before {
+  content: "\e9d3";
+}
+.icon-aid-kit:before {
+  content: "\e9d4";
+}
+.icon-bug:before {
+  content: "\e9d5";
+}
+.icon-pie-chart:before {
+  content: "\e9d6";
+}
+.icon-stats-dots:before {
+  content: "\e9d7";
+}
+.icon-stats-bars:before {
+  content: "\e9d8";
+}
+.icon-stats-bars2:before {
+  content: "\e9d9";
+}
+.icon-trophy:before {
+  content: "\e9da";
+}
+.icon-gift:before {
+  content: "\e9db";
+}
+.icon-glass:before {
+  content: "\e9dc";
+}
+.icon-glass2:before {
+  content: "\e9dd";
+}
+.icon-mug:before {
+  content: "\e9de";
+}
+.icon-spoon-knife:before {
+  content: "\e9df";
+}
+.icon-leaf:before {
+  content: "\e9e0";
+}
+.icon-rocket:before {
+  content: "\e9e1";
+}
+.icon-meter:before {
+  content: "\e9e2";
+}
+.icon-meter2:before {
+  content: "\e9e3";
+}
+.icon-hammer2:before {
+  content: "\e9e4";
+}
+.icon-fire:before {
+  content: "\e9e5";
+}
+.icon-lab:before {
+  content: "\e9e6";
+}
+.icon-magnet:before {
+  content: "\e9e7";
+}
+.icon-bin:before {
+  content: "\e9e8";
+}
+.icon-bin2:before {
+  content: "\e9e9";
+}
+.icon-briefcase:before {
+  content: "\e9ea";
+}
+.icon-airplane:before {
+  content: "\e9eb";
+}
+.icon-truck:before {
+  content: "\e9ec";
+}
+.icon-road:before {
+  content: "\e9ed";
+}
+.icon-accessibility:before {
+  content: "\e9ee";
+}
+.icon-target:before {
+  content: "\e9ef";
+}
+.icon-shield:before {
+  content: "\e9f0";
+}
+.icon-power:before {
+  content: "\e9f1";
+}
+.icon-switch:before {
+  content: "\e9f2";
+}
+.icon-power-cord:before {
+  content: "\e9f3";
+}
+.icon-clipboard:before {
+  content: "\e9f4";
+}
+.icon-list-numbered:before {
+  content: "\e9f5";
+}
+.icon-list:before {
+  content: "\e9f6";
+}
+.icon-list2:before {
+  content: "\e9f7";
+}
+.icon-tree:before {
+  content: "\e9f8";
+}
+.icon-menu:before {
+  content: "\e9f9";
+}
+.icon-menu2:before {
+  content: "\e9fa";
+}
+.icon-menu3:before {
+  content: "\e9fb";
+}
+.icon-menu4:before {
+  content: "\e9fc";
+}
+.icon-cloud:before {
+  content: "\e9fd";
+}
+.icon-cloud-download:before {
+  content: "\e9fe";
+}
+.icon-cloud-upload:before {
+  content: "\e9ff";
+}
+.icon-cloud-check:before {
+  content: "\ea00";
+}
+.icon-download2:before {
+  content: "\ea01";
+}
+.icon-upload2:before {
+  content: "\ea02";
+}
+.icon-download3:before {
+  content: "\ea03";
+}
+.icon-upload3:before {
+  content: "\ea04";
+}
+.icon-sphere:before {
+  content: "\ea05";
+}
+.icon-earth:before {
+  content: "\ea06";
+}
+.icon-link2:before {
+  content: "\ea07";
+}
+.icon-flag:before {
+  content: "\ea08";
+}
+.icon-attachment:before {
+  content: "\ea09";
+}
+.icon-eye:before {
+  content: "\ea0a";
+}
+.icon-eye-plus:before {
+  content: "\ea0b";
+}
+.icon-eye-minus:before {
+  content: "\ea0c";
+}
+.icon-eye-blocked:before {
+  content: "\ea0d";
+}
+.icon-bookmark:before {
+  content: "\ea0e";
+}
+.icon-bookmarks:before {
+  content: "\ea0f";
+}
+.icon-sun:before {
+  content: "\ea10";
+}
+.icon-contrast:before {
+  content: "\ea11";
+}
+.icon-brightness-contrast:before {
+  content: "\ea12";
+}
+.icon-star-empty2:before {
+  content: "\ea13";
+}
+.icon-star-half:before {
+  content: "\ea14";
+}
+.icon-star-full:before {
+  content: "\ea15";
+}
+.icon-heart:before {
+  content: "\ea16";
+}
+.icon-heart-broken:before {
+  content: "\ea17";
+}
+.icon-man:before {
+  content: "\ea18";
+}
+.icon-woman:before {
+  content: "\ea19";
+}
+.icon-man-woman:before {
+  content: "\ea1a";
+}
+.icon-happy:before {
+  content: "\ea1b";
+}
+.icon-happy2:before {
+  content: "\ea1c";
+}
+.icon-smile:before {
+  content: "\ea1d";
+}
+.icon-smile2:before {
+  content: "\ea1e";
+}
+.icon-tongue:before {
+  content: "\ea1f";
+}
+.icon-tongue2:before {
+  content: "\ea20";
+}
+.icon-sad:before {
+  content: "\ea21";
+}
+.icon-sad2:before {
+  content: "\ea22";
+}
+.icon-wink:before {
+  content: "\ea23";
+}
+.icon-wink2:before {
+  content: "\ea24";
+}
+.icon-grin:before {
+  content: "\ea25";
+}
+.icon-grin2:before {
+  content: "\ea26";
+}
+.icon-cool:before {
+  content: "\ea27";
+}
+.icon-cool2:before {
+  content: "\ea28";
+}
+.icon-angry:before {
+  content: "\ea29";
+}
+.icon-angry2:before {
+  content: "\ea2a";
+}
+.icon-evil:before {
+  content: "\ea2b";
+}
+.icon-evil2:before {
+  content: "\ea2c";
+}
+.icon-shocked:before {
+  content: "\ea2d";
+}
+.icon-shocked2:before {
+  content: "\ea2e";
+}
+.icon-baffled:before {
+  content: "\ea2f";
+}
+.icon-baffled2:before {
+  content: "\ea30";
+}
+.icon-confused:before {
+  content: "\ea31";
+}
+.icon-confused2:before {
+  content: "\ea32";
+}
+.icon-neutral:before {
+  content: "\ea33";
+}
+.icon-neutral2:before {
+  content: "\ea34";
+}
+.icon-hipster:before {
+  content: "\ea35";
+}
+.icon-hipster2:before {
+  content: "\ea36";
+}
+.icon-wondering:before {
+  content: "\ea37";
+}
+.icon-wondering2:before {
+  content: "\ea38";
+}
+.icon-sleepy:before {
+  content: "\ea39";
+}
+.icon-sleepy2:before {
+  content: "\ea3a";
+}
+.icon-frustrated:before {
+  content: "\ea3b";
+}
+.icon-frustrated2:before {
+  content: "\ea3c";
+}
+.icon-crying:before {
+  content: "\ea3d";
+}
+.icon-crying2:before {
+  content: "\ea3e";
+}
+.icon-point-up:before {
+  content: "\ea3f";
+}
+.icon-point-right:before {
+  content: "\ea40";
+}
+.icon-point-down:before {
+  content: "\ea41";
+}
+.icon-point-left:before {
+  content: "\ea42";
+}
+.icon-warning:before {
+  content: "\ea43";
+}
+.icon-notification:before {
+  content: "\ea44";
+}
+.icon-question:before {
+  content: "\ea45";
+}
+.icon-plus:before {
+  content: "\ea46";
+}
+.icon-minus:before {
+  content: "\ea47";
+}
+.icon-info2:before {
+  content: "\ea48";
+}
+.icon-cancel-circle:before {
+  content: "\ea49";
+}
+.icon-blocked:before {
+  content: "\ea4a";
+}
+.icon-cross:before {
+  content: "\ea4b";
+}
+.icon-checkmark:before {
+  content: "\ea4c";
+}
+.icon-checkmark2:before {
+  content: "\ea4d";
+}
+.icon-spell-check:before {
+  content: "\ea4e";
+}
+.icon-enter:before {
+  content: "\ea4f";
+}
+.icon-exit:before {
+  content: "\ea50";
+}
+.icon-play22:before {
+  content: "\ea51";
+}
+.icon-pause2:before {
+  content: "\ea52";
+}
+.icon-stop:before {
+  content: "\ea53";
+}
+.icon-previous:before {
+  content: "\ea54";
+}
+.icon-next:before {
+  content: "\ea55";
+}
+.icon-backward:before {
+  content: "\ea56";
+}
+.icon-forward2:before {
+  content: "\ea57";
+}
+.icon-play3:before {
+  content: "\ea58";
+}
+.icon-pause22:before {
+  content: "\ea59";
+}
+.icon-stop2:before {
+  content: "\ea5a";
+}
+.icon-backward2:before {
+  content: "\ea5b";
+}
+.icon-forward3:before {
+  content: "\ea5c";
+}
+.icon-first:before {
+  content: "\ea5d";
+}
+.icon-last:before {
+  content: "\ea5e";
+}
+.icon-previous2:before {
+  content: "\ea5f";
+}
+.icon-next2:before {
+  content: "\ea60";
+}
+.icon-eject:before {
+  content: "\ea61";
+}
+.icon-volume-high2:before {
+  content: "\ea62";
+}
+.icon-volume-medium:before {
+  content: "\ea63";
+}
+.icon-volume-low2:before {
+  content: "\ea64";
+}
+.icon-volume-mute2:before {
+  content: "\ea65";
+}
+.icon-volume-mute22:before {
+  content: "\ea66";
+}
+.icon-volume-increase:before {
+  content: "\ea67";
+}
+.icon-volume-decrease:before {
+  content: "\ea68";
+}
+.icon-loop:before {
+  content: "\ea69";
+}
+.icon-loop2:before {
+  content: "\ea6a";
+}
+.icon-infinite:before {
+  content: "\ea6b";
+}
+.icon-shuffle:before {
+  content: "\ea6c";
+}
+.icon-arrow-up-left:before {
+  content: "\ea6d";
+}
+.icon-arrow-up2:before {
+  content: "\ea6e";
+}
+.icon-arrow-up-right:before {
+  content: "\ea6f";
+}
+.icon-arrow-right2:before {
+  content: "\ea70";
+}
+.icon-arrow-down-right:before {
+  content: "\ea71";
+}
+.icon-arrow-down2:before {
+  content: "\ea72";
+}
+.icon-arrow-down-left:before {
+  content: "\ea73";
+}
+.icon-arrow-left2:before {
+  content: "\ea74";
+}
+.icon-arrow-up-left2:before {
+  content: "\ea75";
+}
+.icon-arrow-up22:before {
+  content: "\ea76";
+}
+.icon-arrow-up-right2:before {
+  content: "\ea77";
+}
+.icon-arrow-right22:before {
+  content: "\ea78";
+}
+.icon-arrow-down-right2:before {
+  content: "\ea79";
+}
+.icon-arrow-down22:before {
+  content: "\ea7a";
+}
+.icon-arrow-down-left2:before {
+  content: "\ea7b";
+}
+.icon-arrow-left22:before {
+  content: "\ea7c";
+}
+.icon-circle-up:before {
+  content: "\ea7d";
+}
+.icon-circle-right:before {
+  content: "\ea7e";
+}
+.icon-circle-down:before {
+  content: "\ea7f";
+}
+.icon-circle-left:before {
+  content: "\ea80";
+}
+.icon-tab:before {
+  content: "\ea81";
+}
+.icon-move-up:before {
+  content: "\ea82";
+}
+.icon-move-down:before {
+  content: "\ea83";
+}
+.icon-sort-alpha-asc:before {
+  content: "\ea84";
+}
+.icon-sort-alpha-desc:before {
+  content: "\ea85";
+}
+.icon-sort-numeric-asc:before {
+  content: "\ea86";
+}
+.icon-sort-numberic-desc:before {
+  content: "\ea87";
+}
+.icon-sort-amount-asc:before {
+  content: "\ea88";
+}
+.icon-sort-amount-desc:before {
+  content: "\ea89";
+}
+.icon-command:before {
+  content: "\ea8a";
+}
+.icon-shift:before {
+  content: "\ea8b";
+}
+.icon-ctrl:before {
+  content: "\ea8c";
+}
+.icon-opt:before {
+  content: "\ea8d";
+}
+.icon-checkbox-checked:before {
+  content: "\ea8e";
+}
+.icon-checkbox-unchecked:before {
+  content: "\ea8f";
+}
+.icon-radio-checked:before {
+  content: "\ea90";
+}
+.icon-radio-checked2:before {
+  content: "\ea91";
+}
+.icon-radio-unchecked:before {
+  content: "\ea92";
+}
+.icon-crop:before {
+  content: "\ea93";
+}
+.icon-make-group:before {
+  content: "\ea94";
+}
+.icon-ungroup:before {
+  content: "\ea95";
+}
+.icon-scissors:before {
+  content: "\ea96";
+}
+.icon-filter:before {
+  content: "\ea97";
+}
+.icon-font:before {
+  content: "\ea98";
+}
+.icon-ligature:before {
+  content: "\ea99";
+}
+.icon-ligature2:before {
+  content: "\ea9a";
+}
+.icon-text-height:before {
+  content: "\ea9b";
+}
+.icon-text-width:before {
+  content: "\ea9c";
+}
+.icon-font-size:before {
+  content: "\ea9d";
+}
+.icon-bold:before {
+  content: "\ea9e";
+}
+.icon-underline:before {
+  content: "\ea9f";
+}
+.icon-italic:before {
+  content: "\eaa0";
+}
+.icon-strikethrough:before {
+  content: "\eaa1";
+}
+.icon-omega:before {
+  content: "\eaa2";
+}
+.icon-sigma:before {
+  content: "\eaa3";
+}
+.icon-page-break:before {
+  content: "\eaa4";
+}
+.icon-superscript:before {
+  content: "\eaa5";
+}
+.icon-subscript:before {
+  content: "\eaa6";
+}
+.icon-superscript2:before {
+  content: "\eaa7";
+}
+.icon-subscript2:before {
+  content: "\eaa8";
+}
+.icon-text-color:before {
+  content: "\eaa9";
+}
+.icon-pagebreak:before {
+  content: "\eaaa";
+}
+.icon-clear-formatting:before {
+  content: "\eaab";
+}
+.icon-table:before {
+  content: "\eaac";
+}
+.icon-table2:before {
+  content: "\eaad";
+}
+.icon-insert-template:before {
+  content: "\eaae";
+}
+.icon-pilcrow:before {
+  content: "\eaaf";
+}
+.icon-ltr:before {
+  content: "\eab0";
+}
+.icon-rtl:before {
+  content: "\eab1";
+}
+.icon-section:before {
+  content: "\eab2";
+}
+.icon-paragraph-left:before {
+  content: "\eab3";
+}
+.icon-paragraph-center:before {
+  content: "\eab4";
+}
+.icon-paragraph-right:before {
+  content: "\eab5";
+}
+.icon-paragraph-justify:before {
+  content: "\eab6";
+}
+.icon-indent-increase:before {
+  content: "\eab7";
+}
+.icon-indent-decrease:before {
+  content: "\eab8";
+}
+.icon-share:before {
+  content: "\eab9";
+}
+.icon-new-tab:before {
+  content: "\eaba";
+}
+.icon-embed:before {
+  content: "\eabb";
+}
+.icon-embed2:before {
+  content: "\eabc";
+}
+.icon-terminal:before {
+  content: "\eabd";
+}
+.icon-share2:before {
+  content: "\eabe";
+}
+.icon-mail:before {
+  content: "\eabf";
+}
+.icon-mail2:before {
+  content: "\eac0";
+}
+.icon-mail3:before {
+  content: "\eac1";
+}
+.icon-mail4:before {
+  content: "\eac2";
+}
+.icon-amazon:before {
+  content: "\eac3";
+}
+.icon-google:before {
+  content: "\eac4";
+}
+.icon-google2:before {
+  content: "\eac5";
+}
+.icon-google3:before {
+  content: "\eac6";
+}
+.icon-google-plus:before {
+  content: "\eac7";
+}
+.icon-google-plus2:before {
+  content: "\eac8";
+}
+.icon-google-plus3:before {
+  content: "\eac9";
+}
+.icon-hangouts:before {
+  content: "\eaca";
+}
+.icon-google-drive:before {
+  content: "\eacb";
+}
+.icon-facebook2:before {
+  content: "\eacc";
+}
+.icon-facebook22:before {
+  content: "\eacd";
+}
+.icon-instagram:before {
+  content: "\eace";
+}
+.icon-whatsapp:before {
+  content: "\eacf";
+}
+.icon-spotify:before {
+  content: "\ead0";
+}
+.icon-telegram:before {
+  content: "\ead1";
+}
+.icon-twitter2:before {
+  content: "\ead2";
+}
+.icon-vine:before {
+  content: "\ead3";
+}
+.icon-vk:before {
+  content: "\ead4";
+}
+.icon-renren:before {
+  content: "\ead5";
+}
+.icon-sina-weibo:before {
+  content: "\ead6";
+}
+.icon-rss:before {
+  content: "\ead7";
+}
+.icon-rss2:before {
+  content: "\ead8";
+}
+.icon-youtube:before {
+  content: "\ead9";
+}
+.icon-youtube2:before {
+  content: "\eada";
+}
+.icon-twitch:before {
+  content: "\eadb";
+}
+.icon-vimeo:before {
+  content: "\eadc";
+}
+.icon-vimeo2:before {
+  content: "\eadd";
+}
+.icon-lanyrd:before {
+  content: "\eade";
+}
+.icon-flickr:before {
+  content: "\eadf";
+}
+.icon-flickr2:before {
+  content: "\eae0";
+}
+.icon-flickr3:before {
+  content: "\eae1";
+}
+.icon-flickr4:before {
+  content: "\eae2";
+}
+.icon-dribbble:before {
+  content: "\eae3";
+}
+.icon-behance:before {
+  content: "\eae4";
+}
+.icon-behance2:before {
+  content: "\eae5";
+}
+.icon-deviantart:before {
+  content: "\eae6";
+}
+.icon-500px:before {
+  content: "\eae7";
+}
+.icon-steam:before {
+  content: "\eae8";
+}
+.icon-steam2:before {
+  content: "\eae9";
+}
+.icon-dropbox:before {
+  content: "\eaea";
+}
+.icon-onedrive:before {
+  content: "\eaeb";
+}
+.icon-github:before {
+  content: "\eaec";
+}
+.icon-npm:before {
+  content: "\eaed";
+}
+.icon-basecamp:before {
+  content: "\eaee";
+}
+.icon-trello:before {
+  content: "\eaef";
+}
+.icon-wordpress:before {
+  content: "\eaf0";
+}
+.icon-joomla:before {
+  content: "\eaf1";
+}
+.icon-ello:before {
+  content: "\eaf2";
+}
+.icon-blogger:before {
+  content: "\eaf3";
+}
+.icon-blogger2:before {
+  content: "\eaf4";
+}
+.icon-tumblr:before {
+  content: "\eaf5";
+}
+.icon-tumblr2:before {
+  content: "\eaf6";
+}
+.icon-yahoo:before {
+  content: "\eaf7";
+}
+.icon-yahoo2:before {
+  content: "\eaf8";
+}
+.icon-tux:before {
+  content: "\eaf9";
+}
+.icon-appleinc:before {
+  content: "\eafa";
+}
+.icon-finder:before {
+  content: "\eafb";
+}
+.icon-android:before {
+  content: "\eafc";
+}
+.icon-windows:before {
+  content: "\eafd";
+}
+.icon-windows8:before {
+  content: "\eafe";
+}
+.icon-soundcloud:before {
+  content: "\eaff";
+}
+.icon-soundcloud2:before {
+  content: "\eb00";
+}
+.icon-skype:before {
+  content: "\eb01";
+}
+.icon-reddit:before {
+  content: "\eb02";
+}
+.icon-hackernews:before {
+  content: "\eb03";
+}
+.icon-wikipedia:before {
+  content: "\eb04";
+}
+.icon-linkedin:before {
+  content: "\eb05";
+}
+.icon-linkedin2:before {
+  content: "\eb06";
+}
+.icon-lastfm:before {
+  content: "\eb07";
+}
+.icon-lastfm2:before {
+  content: "\eb08";
+}
+.icon-delicious:before {
+  content: "\eb09";
+}
+.icon-stumbleupon:before {
+  content: "\eb0a";
+}
+.icon-stumbleupon2:before {
+  content: "\eb0b";
+}
+.icon-stackoverflow:before {
+  content: "\eb0c";
+}
+.icon-pinterest:before {
+  content: "\eb0d";
+}
+.icon-pinterest2:before {
+  content: "\eb0e";
+}
+.icon-xing:before {
+  content: "\eb0f";
+}
+.icon-xing2:before {
+  content: "\eb10";
+}
+.icon-flattr:before {
+  content: "\eb11";
+}
+.icon-foursquare:before {
+  content: "\eb12";
+}
+.icon-yelp:before {
+  content: "\eb13";
+}
+.icon-paypal:before {
+  content: "\eb14";
+}
+.icon-chrome:before {
+  content: "\eb15";
+}
+.icon-firefox:before {
+  content: "\eb16";
+}
+.icon-IE:before {
+  content: "\eb17";
+}
+.icon-edge:before {
+  content: "\eb18";
+}
+.icon-safari:before {
+  content: "\eb19";
+}
+.icon-opera:before {
+  content: "\eb1a";
+}
+.icon-file-pdf:before {
+  content: "\eb1b";
+}
+.icon-file-openoffice:before {
+  content: "\eb1c";
+}
+.icon-file-word:before {
+  content: "\eb1d";
+}
+.icon-file-excel:before {
+  content: "\eb1e";
+}
+.icon-libreoffice:before {
+  content: "\eb1f";
+}
+.icon-html-five:before {
+  content: "\eb20";
+}
+.icon-html-five2:before {
+  content: "\eb21";
+}
+.icon-css3:before {
+  content: "\eb22";
+}
+.icon-git:before {
+  content: "\eb23";
+}
+.icon-codepen:before {
+  content: "\eb24";
+}
+.icon-svg:before {
+  content: "\eb25";
+}
+.icon-IcoMoon:before {
+  content: "\eb26";
+}
+.buttonPlugin.flexSkip_Rewind_10 {
+  background-position: -205% 22%;
+}
+.buttonPlugin.flexSkip_Forward_30 {
+  background-position: -200% 22%;
+}
+.buttonPlugin.arrowSlideNavidator.nextButton {
+  pointer-events: all !important;
+  font-size: 30px;
+  text-shadow: 0px 0px 8px white;
+}
+.buttonPlugin.arrowSlideNavidator.prevButton {
+  pointer-events: all !important;
+  font-size: 30px;
+  text-shadow: 0px 0px 8px white;
+}
+.arrow-slide-navigator-container {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  bottom: 0px;
+  right: 0px;
+}
+.buttonPlugin.audioTags {
+  text-align: center;
+  background-position: -900% -200%;
+  font-size: 0.8em;
+  line-height: 20px;
+  color: white;
+  text-transform: uppercase;
+}
+.videoAudioTrackItem {
+  padding: 10px;
+  font-size: 20px;
+  text-transform: uppercase;
+  cursor: pointer;
+}
+.videoAudioTrackItem.selected {
+  background-color: rgba(211, 211, 211, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #cc0000;
+}
+.videoAudioTrackItem:hover {
+  background-color: #cc0000;
+}
+.blackBoardDiv {
+  position: absolute;
+  /* 16:9 */
+  width: 816px;
+  height: 459px;
+  top: 135px;
+  left: 450px;
+  background-size: 100%;
+}
+.lensClass {
+  background-color: rgba(255, 236, 195, 0.3);
+  position: absolute;
+  border: 1px dotted white;
+}
+.lensContainer img {
+  width: 100% !important;
+}
+#overlayContainer div.lensContainer {
+  pointer-events: all;
+}
+.textBreak {
+  background-color: rgba(128, 128, 128, 0.7);
+  text-align: center;
+  color: white;
+  line-height: 17px;
+  font-size: 18px;
+  padding-top: 10px;
+  padding-bottom: 10px;
+  border-radius: 12px;
+}
+.buttonPlugin.captionsPluginButton {
+  background-position: 0% -100%;
+}
+.captionsPluginContainer {
+  width: 400px;
+  overflow: hidden;
+}
+.captionsBar input {
+  color: white;
+  background-color: rgba(0, 0, 0, 0.78);
+  border-color: #cc0000;
+  width: 49%;
+  margin-bottom: 0px;
+  margin-left: 1px;
+  float: left;
+}
+.captionsBar select {
+  width: 39%;
+  display: inline;
+  background-color: #cc0000;
+  border: 1px solid #ccc;
+  color: white;
+  margin-bottom: 0px;
+  height: 31px;
+}
+.captionsBar button {
+  float: right;
+  width: 7%;
+  min-height: 30px;
+  min-width: 30px;
+  margin-right: 2px;
+  background: url(../images/paella_icons_light.png);
+  background-position: -400% -100%;
+  background-size: 2000% 1000%;
+  position: static;
+}
+.captionsBar button:hover {
+  background-color: #cc0000;
+}
+.bodyInnerContainer {
+  margin-bottom: 5px;
+  display: block;
+  margin-left: 3px;
+  height: auto;
+}
+.captionsBar input:hover {
+  border-color: #FF4C4C;
+}
+.captionsBar input:focus {
+  border-color: #cc0000;
+}
+.captionsBody {
+  max-height: 280px;
+  overflow-y: scroll;
+  border: 1px solid black;
+}
+.captionsBar input:hover {
+  border-color: #FF4C4C;
+}
+.captionsBar input:focus {
+  border-color: #FF4C4C;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #cc0000;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #cc0000;
+}
+/* CSS OVERLAY */
+.CaptionsOnScreen {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  text-align: center;
+  top: 0;
+  left: 0;
+  z-index: 99;
+}
+.CaptionsOnScreenInner {
+  background-color: rgba(0, 0, 0, 0.6);
+  position: relative;
+  text-align: center;
+  color: white;
+  font-size: 17px;
+  width: 70%;
+  min-height: 20px;
+  margin-left: auto;
+  margin-right: auto;
+  padding: 8px;
+  border-radius: 12px;
+}
+.Highlight {
+  color: #FF4C4C;
+  font-weight: bold;
+}
+#CommentPlugin_Publish_entry_buttons_area {
+  margin-top: 5px;
+}
+.comments_entry {
+  margin: 5px;
+  margin-bottom: 20px;
+  width: 90%;
+}
+.comments_entry_username {
+  color: #438bc5;
+  font-size: 14px;
+  font-family: arial, sans-serif;
+  font-weight: bold;
+}
+.comments_entry_datepublish {
+  color: #999;
+  font-size: 11px;
+  font-family: arial, sans-serif;
+  margin-left: 20px;
+}
+.comments_entry_comment {
+  margin-top: 5px;
+  margin-bottom: 10px;
+}
+.comments_entry_silhouette {
+  float: left;
+  width: 6%;
+}
+.comments_entry_container {
+  vertical-align: top;
+  margin: 10px;
+  margin-left: 50px;
+  width: 100%;
+}
+.comments_entry_container textarea {
+  width: 98%;
+  height: 45px;
+  /*margin-top:10px;*/
+  margin-bottom: 5px;
+  color: #52575c;
+}
+.CommentPlugin_Publish {
+  /*box-shadow: inset 0px 0px 10px 2px rgba(10, 10,10, 0.39); */
+  border-radius: 7px;
+  padding: 10px;
+  padding-bottom: 1px;
+}
+textarea {
+  resize: vertical;
+}
+.reply_button {
+  color: #999;
+  font-size: 12px;
+  font-family: arial, sans-serif;
+  margin-bottom: 15px;
+  font-weight: bold;
+  cursor: pointer;
+}
+.reply_button:hover {
+  color: #438bc5;
+  text-decoration: underline;
+}
+.buttonPlugin.extendedTabAdapterPlugin {
+  background-position: -500% -200%;
+}
+.buttonPluginPopUp.extendedTabAdapterPlugin {
+  background-image: none;
+  background-color: rgba(0, 0, 0, 0);
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer {
+  width: 600px;
+  display: block;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel {
+  display: inline;
+  background-color: rgba(0, 0, 0, 0.78);
+  line-height: 26px;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 7px;
+  padding-bottom: 7px;
+  cursor: pointer;
+  cursor: hand;
+  font-family: sans-serif;
+  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.48);
+  border-radius: 6px 6px 0px 0px;
+  font-size: 12px;
+  margin-left: 1px;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel.enabled {
+  cursor: default;
+  box-shadow: inset 0px 0px 12px rgba(0, 0, 0, 0.9);
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel.disabled {
+  background-color: #e6e6e6;
+  color: black;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer {
+  height: 200px;
+  background-color: rgba(0, 0, 0, 0.78);
+  padding-left: 5px;
+  padding-top: 9px;
+  padding-right: 5px;
+  overflow-y: scroll;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #cc0000;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #FF4C4C;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer > .tabContent.enabled {
+  display: block;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer > .tabContent.disabled {
+  display: none;
+}
+.buttonPlugin.footPrints {
+  background-position: -700% 0%;
+}
+.footPrintsContainer {
+  height: 20px;
+  width: 100%;
+  overflow: hidden;
+  display: block;
+}
+.footPrintsCanvas {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  display: inline-block;
+}
+.frameControlContainer {
+  height: 87px;
+  width: 90%;
+  overflow: hidden;
+  display: inline-block;
+  margin-left: 5%;
+}
+.frameControl.navButton {
+  width: 40px;
+  height: 40px;
+  display: block;
+  cursor: pointer;
+  background-image: url(../images/paella_icons_light.png);
+  background-size: 2000% 1000%;
+  background-position: 100% 100%;
+  position: absolute;
+  top: 28px;
+}
+.frameControl.navButton.left {
+  background-position: -1600% -100%;
+  opacity: 0.5;
+}
+.frameControl.navButton.right {
+  right: 0px;
+  opacity: 0.5;
+  background-position: -1500% -100%;
+}
+.frameControl.navButton.left:hover {
+  opacity: 1;
+}
+.frameControl.navButton.right:hover {
+  opacity: 1;
+}
+.frameControlContent {
+  height: 100px;
+  overflow: hidden;
+  padding-top: 6px;
+}
+.frameControlItem {
+  width: 140px;
+  cursor: pointer;
+  margin-left: 3px;
+  margin-right: 3px;
+  float: left;
+  opacity: 0.8;
+}
+/*.frameControlItem:hover {
+	width:94px;
+	border: 3px dotted #23ff00;
+	opacity: 1;
+}*/
+.frameControlItem.selected {
+  width: 134px;
+  border: 3px dotted #cc0000;
+  opacity: 1;
+}
+.frameControlItem.current {
+  width: 134px;
+  border: 3px solid #cc0000;
+  opacity: 1;
+}
+.frameControlImage {
+  width: 100%;
+}
+.frameCaption {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  text-align: center;
+  padding: 5px;
+  color: black;
+  text-shadow: 1px 1px 2px #ffffff;
+}
+.showFramesButton {
+  position: absolute;
+  display: block;
+  width: 40px;
+  height: 37px;
+  background-size: 300%;
+  background-image: url(../../resources/images/frame_button.png);
+}
+/*
+.showFramesButton:hover {
+}
+*/
+.showFramesButton_active {
+  position: absolute;
+  display: block;
+  width: 40px;
+  height: 37px;
+  right: 0px;
+  background-size: 300%;
+  background-image: url(../../resources/images/frame_button.png);
+}
+.frameListContainer {
+  background-image: url(../../resources/images/playback_bkg.png);
+}
+.frameThumbnail {
+  /*
+	margin-top:8px;
+	margin-right:3px;
+	margin-bottom:8px;
+	margin-left:3px;
+*/
+  margin: 8px 3px 8px 3px;
+  height: 40px;
+}
+.frameThumbnail:hover {
+  margin: 0px;
+  border: 3px #cc0000 solid;
+  height: 50px;
+}
+.enabledFrameThumbnail {
+  border: 3px #cc0000 solid;
+  height: 50px;
+}
+.enabledFrameThumbnail:hover {
+  border: 3px #cc0000 solid;
+}
+.buttonPlugin.showFullScreenButton {
+  background-position: -900% 0%;
+}
+.buttonPlugin.showFullScreenButton.active {
+  background-position: -1000% 0%;
+}
+.buttonPlugin.helpButton {
+  background-position: -1300% 0%;
+}
+.buttonPlugin.right.liveIndicator {
+  width: 100px;
+  height: 40px;
+  background-image: url(live_video.png);
+  background-size: 100% 100%;
+  margin-top: 5px;
+  margin-right: 5px;
+}
+/*.showMultipleQualitiesPlugin {
+	background-image: url(advanced_button.png);
+	background-size: 300%;
+}
+
+.buttonPluginPopUp.showMultipleQualitiesPlugin {
+	background-image:none;
+}
+
+.selectQuality {
+	padding: 10px;
+}*/
+.buttonPlugin.showMultipleQualitiesPlugin {
+  text-align: center;
+  font-size: 0.8em;
+  line-height: 20px;
+  min-width: 36px;
+}
+.buttonPluginPopUp.showMultipleQualitiesPlugin {
+  background-image: none;
+}
+.selectQuality {
+  padding: 10px;
+}
+.multipleQualityItem {
+  font-size: 19px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  cursor: pointer;
+}
+.multipleQualityItem:hover {
+  background-color: #FF4C4C;
+}
+.multipleQualityItem.selected {
+  color: #cc0000;
+}
+.multipleQualityItem.selected:hover {
+  color: white;
+}
+.buttonPlugin.playButton {
+  background-position: -500% -100%;
+}
+.buttonPlugin.pauseButton {
+  background-position: -100% 0%;
+}
+.playButtonOnScreen {
+  position: absolute;
+  opacity: 0.7;
+  top: 0;
+  left: 0;
+  bottom: 51px;
+  right: 0;
+  z-index: 50;
+  width: 100%;
+  height: 100%;
+}
+.playButtonOnScreenIcon {
+  display: block;
+  cursor: pointer;
+  width: 100%;
+}
+.playbackRateItem {
+  font-size: 19px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  cursor: pointer;
+}
+.playbackRateItem:hover {
+  background-color: #FF4C4C;
+}
+.buttonPlugin.showPlaybackRateButton {
+  text-align: center;
+  line-height: 20px;
+  background-position: -600% -100%;
+  font-size: 1em;
+}
+.playbackRateItem.selected {
+  color: #cc0000;
+}
+.playbackRateItem.selected:hover {
+  color: white;
+}
+.buttonPlugin.showPlaybackRateButton {
+  min-width: 36px;
+}
+.buttonPlugin.rateButtonPlugin {
+  text-align: center;
+  background-position: -700% -200%;
+  font-size: 0.8em;
+  line-height: 20px;
+}
+.buttonPluginPopUp {
+  right: 0px;
+}
+.rateButtons {
+  /*padding: 10px;*/
+  width: 250px;
+}
+.starButton {
+  display: inline-block;
+  width: 26px;
+  height: 26px;
+  font-size: 25px;
+}
+.rateButtonPlugin h4 {
+  margin-left: 10px;
+}
+.rateButtonPlugin h5 {
+  margin-left: 19px;
+}
+.rateButtons .starButton:first-of-type {
+  margin-left: 19px;
+}
+.buttonPlugin.searchButton {
+  background-size: 2000% 1000%;
+  background-position: -900% -100%;
+  display: block;
+}
+.buttonPluginPopUp.searchButton {
+  position: absolute;
+}
+.searchPluginContainer {
+  width: 400px;
+  overflow: hidden;
+}
+.searchBar input {
+  color: white;
+  background-color: rgba(0, 0, 0, 0.78);
+  border-color: #cc0000;
+  width: 96%;
+  margin-bottom: 0px;
+  margin-left: 1px;
+}
+.searchBar input:hover {
+  border-color: #FF4C4C;
+}
+.searchBar input:focus {
+  border-color: #FF4C4C;
+}
+.searchBody {
+  max-height: 280px;
+  overflow-y: scroll;
+  border: 1px solid black;
+}
+.sBodyInnerContainer {
+  display: block;
+  margin-left: 3px;
+  min-height: 70px;
+  border: 1px solid rgba(0, 0, 0, 0.78);
+}
+.hover {
+  background-color: #FF4C4C;
+}
+.redScore {
+  background-color: rgba(255, 0, 0, 0.2);
+}
+.greenScore {
+  background-color: rgba(0, 255, 0, 0.2);
+}
+.sBodyText {
+  width: 100%;
+  display: block;
+  text-align: left;
+}
+.timeSpan {
+  color: #cc0000;
+  margin-right: 5px;
+}
+.TimePicContainer {
+  float: left;
+  width: 24%;
+  text-align: center;
+  margin-right: 5px;
+}
+.TimePicContainer img {
+  width: 100%;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #cc0000;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #FF4C4C;
+}
+svg path,
+svg rect {
+  fill: #FF6700;
+}
+.loader {
+  float: left;
+  display: inline-block;
+  vertical-align: top;
+}
+.noResults {
+  margin: 5px;
+}
+.buttonPlugin.showSocialPluginButton {
+  background-position: -800% 0%;
+}
+.buttonPluginPopUp.showSocialPluginButton {
+  background-image: none;
+}
+.socialItemButton {
+  /*crea el popup*/
+  width: 20px;
+  height: 20px;
+  cursor: pointer;
+  background-image: url(../images/paella_icons_light.png);
+  background-size: 2000% 1000%;
+  background-position: 0px 0px;
+}
+.socialItemButton.selected {
+  /*background-color: rgba(90,90,90,0.8);
+	border: 3px solid #23ff00;*/
+  background-color: rgba(90, 90, 90, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #fa8533;
+}
+.socialItemButton:hover {
+  background-color: #faa166;
+}
+.socialItemButton.facebook {
+  background-position: -1600% 0%;
+}
+.socialItemButton.twitter {
+  background-position: -1400% 0%;
+}
+.socialItemButton.embed {
+  background-position: -1500% 0%;
+}
+.embedSizeButton {
+  display: inline-block;
+  background-color: #fa8533;
+  border: 1px solid #313135;
+  border-radius: 10px;
+  cursor: pointer;
+  margin-right: 5px;
+  vertical-align: middle;
+  font-size: 14px;
+  text-align: center;
+  color: white;
+}
+.embedSizeInput {
+  background-color: #ffffff;
+  width: 40px;
+  height: 20px;
+  color: #000000;
+  font-size: 12px;
+  margin: 0px;
+  padding: 0px;
+}
+.buttonPlugin.themeChooserPlugin {
+  background-position: -800% -100%;
+}
+.buttonPluginPopUp.themeChooserPlugin {
+  background-image: none;
+  min-width: 40px;
+  width: 120px;
+  text-align: right;
+}
+.buttonPluginPopUp.themeChooserPlugin .themebutton {
+  cursor: pointer;
+  text-align: left;
+  text-transform: capitalize;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+}
+.buttonPluginPopUp.themeChooserPlugin .themebutton:hover {
+  background-color: #FF4C4C;
+}
+.translecturesCaptionsMessageBox {
+  margin-left: auto;
+  margin-right: auto;
+  text-align: center;
+  width: 700px;
+  height: 200px;
+  font-size: 14px;
+}
+.translecturesCaptionsMessageBox .title {
+  color: #635e5e;
+  font-size: 20px;
+  margin-bottom: 20px;
+}
+.translecturesCaptionsMessageBox .authMethodsContainer {
+  margin-left: auto;
+  margin-right: auto;
+  width: 500px;
+  height: 200px;
+  margin-top: 10px;
+  position: relative;
+}
+.translecturesCaptionsMessageBox .authMethodsContainer .authMethod {
+  display: inline-block;
+  width: 200px;
+  height: 200px;
+  /*
+	position:absolute;
+	left: 0px;
+*/
+}
+.buttonPlugin.left.videoData {
+  height: auto;
+  width: 100%;
+  margin-top: 5px;
+  margin-left: auto;
+  margin-right: auto;
+  background-color: rgba(0, 0, 0, 0.6);
+}
+.buttonPlugin.left.videoData h1 {
+  color: white;
+  padding: 0px 0px 0px 20px;
+  margin: 0px;
+}
+@media (max-width: 400px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 16px;
+    line-height: 24px;
+  }
+}
+@media (min-width: 401px) and (max-width: 800px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 20px;
+    line-height: 34px;
+  }
+}
+@media (min-width: 801px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 30px;
+    line-height: 44px;
+  }
+}
+.buttonPlugin.right.videoZoom {
+  width: 200px;
+  background-image: none;
+  position: absolute;
+  right: 0px;
+  top: 0px;
+  text-align: right;
+}
+.buttonPlugin.right.videoZoom:hover {
+  background-color: transparent !important;
+}
+.buttonPlugin.right.videoZoom:active {
+  background-color: transparent !important;
+}
+.zoom-thumbnail {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 0px;
+  left: 0px;
+}
+.zoom-container {
+  width: 160px;
+  height: 90px;
+  margin: 5px;
+  box-sizing: border-box;
+  box-shadow: 0px 0px 3px 0px black;
+  border-radius: 2px;
+  position: relative;
+  right: 0px;
+}
+.zoom-rect {
+  background-color: rgba(255, 255, 255, 0.5);
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  border: 1px solid #0e0e0e;
+}
+/* The canvas "freeze frame" to overlay video element, instead of flex side aligned */
+.freezeFrame {
+  align-self: center;
+  position: absolute;
+}
+.videoZoomButton {
+  z-index: 1;
+  margin-left: 2px;
+  margin-right: 2px;
+  margin-top: 4px;
+  opacity: 0.2;
+  background: white;
+  font-size: 2em;
+  padding: 0px 4px 0px 4px;
+  box-shadow: 2px 2px 5px 0px black;
+  width: 30px;
+  height: 30px;
+  position: relative;
+  left: 40%;
+}
+.videoZoomButton:hover {
+  opacity: 0.999;
+}
+.videoZoomButton:active {
+  opacity: 0.999;
+}
+@media (max-width: 600px) {
+  .buttonPlugin.right.videoZoom {
+    width: 89px;
+  }
+  .zoom-container {
+    width: 80px;
+    height: 45px;
+  }
+}
+@media (max-width: 800px) and (min-width: 601px) {
+  .buttonPlugin.right.videoZoom {
+    width: 100px;
+  }
+  .zoom-container {
+    width: 120px;
+    height: 68px;
+  }
+}
+.videoZoomToolbarItem {
+  width: 30px;
+  height: 30px;
+  cursor: pointer;
+  margin-left: 5px;
+  margin-right: 5px;
+  margin-top: 5px;
+  font-size: 20px;
+}
+.buttonPluginPopUp.showViewModeButton {
+  background-image: none;
+}
+.buttonPlugin.showViewModeButton {
+  background-position: -1100% 0%;
+}
+.viewModeItemButton {
+  background-image: url(../images/paella_icons_light.png);
+  width: 80px;
+  height: 40px;
+  cursor: pointer;
+  background-size: 100% 100% !important;
+  background-position: 0px 0px ! important;
+  background-color: white;
+}
+.viewModeItemButton:hover {
+  background-color: #FF4C4C;
+}
+.viewModeItemButton.selected {
+  /*background-position: 78px 0;*/
+  background-color: rgba(211, 211, 211, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #cc0000;
+}
+.viewModeItemButton.slide_professor {
+  background-position: 80px -80px;
+}
+.viewModeItemButton.professor_slide {
+  background-position: 80px -120px;
+}
+.viewModeItemButton.professor {
+  background-position: 80px -40px;
+}
+.viewModeItemButton.slide_over_professor {
+  background-position: 80px -200px;
+}
+.viewModeItemButton.slide_over_professor_right {
+  background-position: 80px -160px;
+}
+.viewModeItemButton.s_p_blackboard2 {
+  background-position: 80px -240px;
+}
+.viewModeItemButton.professor_over_slide {
+  background-position: 80px -320px;
+}
+.viewModeItemButton.professor_over_slide_right {
+  background-position: 80px -280px;
+}
+.viewModeItemButton.slide {
+  background-position: 80px 0px;
+}
+.viewModeItemButton.chroma {
+  background-position: 80px -360px;
+}
+.buttonPlugin.volumeRangeButton.mute {
+  background-position: -300% 0%;
+}
+.buttonPlugin.volumeRangeButton.max {
+  background-position: -600% 0%;
+}
+.buttonPlugin.volumeRangeButton.med {
+  background-position: -500% 0%;
+}
+.buttonPlugin.volumeRangeButton.min {
+  background-position: -400% 0%;
+}
+.buttonPluginPopUp.volumeRangeButton {
+  position: absolute;
+  /* right: -220px; */
+}
+.videoRangeContainer {
+  width: 260px;
+}
+span.videoRangeButton.expandable-content {
+  padding-top: 10px;
+}
+/* Range control */
+.volumeRangeButton input[type=range] {
+  display: inline-block;
+  width: 80px;
+  height: 12px;
+}
+input[type=range] {
+  -webkit-appearance: none;
+  width: 100%;
+  margin: 6.2px 0;
+  background-color: transparent;
+}
+input[type=range]:focus {
+  outline: none;
+}
+input[type=range]::-webkit-slider-runnable-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+  background: #ffffff;
+  border-radius: 1.9px;
+  border: 1.2px solid #010101;
+}
+input[type=range]::-webkit-slider-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 17px;
+  width: 16px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+  -webkit-appearance: none;
+  margin-top: -7.4px;
+}
+input[type=range]:focus::-webkit-slider-runnable-track {
+  background: #ffffff;
+}
+input[type=range]::-moz-range-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+  background: #ffffff;
+  border-radius: 1.9px;
+  border: 1.2px solid #010101;
+}
+input[type=range]::-moz-range-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 17px;
+  width: 16px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+}
+input[type=range]::-ms-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  background: transparent;
+  border-color: transparent;
+  color: transparent;
+}
+input[type=range]::-ms-fill-lower {
+  background: #f2f2f2;
+  border: 1.2px solid #010101;
+  border-radius: 3.8px;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+}
+input[type=range]::-ms-fill-upper {
+  background: #ffffff;
+  border: 1.2px solid #010101;
+  border-radius: 3.8px;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+}
+input[type=range]::-ms-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 14px;
+  width: 14px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+  margin-top: -2px;
+}
+input[type=range]:focus::-ms-fill-lower {
+  background: #ffffff;
+}
+input[type=range]:focus::-ms-fill-upper {
+  background: #ffffff;
+}
+.cc-window {
+  opacity: 1;
+  transition: opacity 1s ease;
+}
+.cc-window.cc-invisible {
+  opacity: 0;
+}
+.cc-animate.cc-revoke {
+  transition: transform 1s ease;
+}
+.cc-animate.cc-revoke.cc-top {
+  transform: translateY(-2em);
+}
+.cc-animate.cc-revoke.cc-bottom {
+  transform: translateY(2em);
+}
+.cc-animate.cc-revoke.cc-active.cc-bottom,
+.cc-animate.cc-revoke.cc-active.cc-top,
+.cc-revoke:hover {
+  transform: translateY(0);
+}
+.cc-grower {
+  max-height: 0;
+  overflow: hidden;
+  transition: max-height 1s;
+}
+.cc-link,
+.cc-revoke:hover {
+  text-decoration: underline;
+}
+.cc-revoke,
+.cc-window {
+  position: fixed;
+  overflow: hidden;
+  box-sizing: border-box;
+  font-family: Helvetica, Calibri, Arial, sans-serif;
+  font-size: 16px;
+  line-height: 1.5em;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-wrap: nowrap;
+  flex-wrap: nowrap;
+  z-index: 9999;
+}
+.cc-window.cc-static {
+  position: static;
+}
+.cc-window.cc-floating {
+  padding: 2em;
+  max-width: 24em;
+  -ms-flex-direction: column;
+  flex-direction: column;
+}
+.cc-window.cc-banner {
+  padding: 1em 1.8em;
+  width: 100%;
+  -ms-flex-direction: row;
+  flex-direction: row;
+}
+.cc-revoke {
+  padding: 0.5em;
+}
+.cc-header {
+  font-size: 18px;
+  font-weight: 700;
+}
+.cc-btn,
+.cc-close,
+.cc-link,
+.cc-revoke {
+  cursor: pointer;
+}
+.cc-link {
+  opacity: 0.8;
+  display: inline-block;
+  padding: 0.2em;
+}
+.cc-link:hover {
+  opacity: 1;
+}
+.cc-link:active,
+.cc-link:visited {
+  color: initial;
+}
+.cc-btn {
+  display: block;
+  padding: 0.4em 0.8em;
+  font-size: 0.9em;
+  font-weight: 700;
+  border-width: 2px;
+  border-style: solid;
+  text-align: center;
+  white-space: nowrap;
+}
+.cc-highlight .cc-btn:first-child {
+  background-color: transparent;
+  border-color: transparent;
+}
+.cc-highlight .cc-btn:first-child:focus,
+.cc-highlight .cc-btn:first-child:hover {
+  background-color: transparent;
+  text-decoration: underline;
+}
+.cc-close {
+  display: block;
+  position: absolute;
+  top: 0.5em;
+  right: 0.5em;
+  font-size: 1.6em;
+  opacity: 0.9;
+  line-height: 0.75;
+}
+.cc-close:focus,
+.cc-close:hover {
+  opacity: 1;
+}
+.cc-revoke.cc-top {
+  top: 0;
+  left: 3em;
+  border-bottom-left-radius: 0.5em;
+  border-bottom-right-radius: 0.5em;
+}
+.cc-revoke.cc-bottom {
+  bottom: 0;
+  left: 3em;
+  border-top-left-radius: 0.5em;
+  border-top-right-radius: 0.5em;
+}
+.cc-revoke.cc-left {
+  left: 3em;
+  right: unset;
+}
+.cc-revoke.cc-right {
+  right: 3em;
+  left: unset;
+}
+.cc-top {
+  top: 1em;
+}
+.cc-left {
+  left: 1em;
+}
+.cc-right {
+  right: 1em;
+}
+.cc-bottom {
+  bottom: 1em;
+}
+.cc-floating > .cc-link {
+  margin-bottom: 1em;
+}
+.cc-floating .cc-message {
+  display: block;
+  margin-bottom: 1em;
+}
+.cc-window.cc-floating .cc-compliance {
+  -ms-flex: 1 0 auto;
+  flex: 1 0 auto;
+}
+.cc-window.cc-banner {
+  -ms-flex-align: center;
+  align-items: center;
+}
+.cc-banner.cc-top {
+  left: 0;
+  right: 0;
+  top: 0;
+}
+.cc-banner.cc-bottom {
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.cc-banner .cc-message {
+  display: block;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+  max-width: 100%;
+  margin-right: 1em;
+}
+.cc-compliance {
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-align: center;
+  align-items: center;
+  -ms-flex-line-pack: justify;
+  align-content: space-between;
+}
+.cc-floating .cc-compliance > .cc-btn {
+  -ms-flex: 1;
+  flex: 1;
+}
+.cc-btn + .cc-btn {
+  margin-left: 0.5em;
+}
+@media print {
+  .cc-revoke,
+  .cc-window {
+    display: none;
+  }
+}
+@media screen and (max-width: 900px) {
+  .cc-btn {
+    white-space: normal;
+  }
+}
+@media screen and (max-width: 414px) and (orientation: portrait), screen and (max-width: 736px) and (orientation: landscape) {
+  .cc-window.cc-top {
+    top: 0;
+  }
+  .cc-window.cc-bottom {
+    bottom: 0;
+  }
+  .cc-window.cc-banner,
+  .cc-window.cc-floating,
+  .cc-window.cc-left,
+  .cc-window.cc-right {
+    left: 0;
+    right: 0;
+  }
+  .cc-window.cc-banner {
+    -ms-flex-direction: column;
+    flex-direction: column;
+  }
+  .cc-window.cc-banner .cc-compliance {
+    -ms-flex: 1 1 auto;
+    flex: 1 1 auto;
+  }
+  .cc-window.cc-floating {
+    max-width: none;
+  }
+  .cc-window .cc-message {
+    margin-bottom: 1em;
+  }
+  .cc-window.cc-banner {
+    -ms-flex-align: unset;
+    align-items: unset;
+  }
+  .cc-window.cc-banner .cc-message {
+    margin-right: 0;
+  }
+}
+.cc-floating.cc-theme-classic {
+  padding: 1.2em;
+  border-radius: 5px;
+}
+.cc-floating.cc-type-info.cc-theme-classic .cc-compliance {
+  text-align: center;
+  display: inline;
+  -ms-flex: none;
+  flex: none;
+}
+.cc-theme-classic .cc-btn {
+  border-radius: 5px;
+}
+.cc-theme-classic .cc-btn:last-child {
+  min-width: 140px;
+}
+.cc-floating.cc-type-info.cc-theme-classic .cc-btn {
+  display: inline-block;
+}
+.cc-theme-edgeless.cc-window {
+  padding: 0;
+}
+.cc-floating.cc-theme-edgeless .cc-message {
+  margin: 2em 2em 1.5em;
+}
+.cc-banner.cc-theme-edgeless .cc-btn {
+  margin: 0;
+  padding: 0.8em 1.8em;
+  height: 100%;
+}
+.cc-banner.cc-theme-edgeless .cc-message {
+  margin-left: 1em;
+}
+.cc-floating.cc-theme-edgeless .cc-btn + .cc-btn {
+  margin-left: 0;
+}
+.paella-profile-button {
+  background-color: lightgray;
+  border: none;
+  border-radius: 10%;
+  box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.9);
+}
+.paella-profile-button:hover {
+  background-color: #9b9b9b;
+}
+.paella-profile-button:active {
+  background-color: #000000;
+}
+.buttonPlugin.AirPlayButton {
+  background-position: -1100% -100%;
+}
+.buttonPlugin.AirPlayButton.not-available {
+  opacity: 0.4;
+}
+.buttonPlugin.legal {
+  pointer-events: all;
+  padding-right: 5px;
+  height: 20px;
+  text-align: right;
+  padding: 1px;
+  margin: 1px;
+  margin-right: 12px;
+  margin-top: -7px;
+  margin-bottom: 4px;
+  width: auto;
+}
+.buttonPlugin.legal a {
+  color: lightgrey !important;
+  text-decoration: underline !important;
+}
+.buttonPlugin.legal a:hover {
+  background-color: transparent !important;
+  font-weight: bold !important;
+}
+.buttonPlugin.legal:hover {
+  background-color: transparent !important;
+}
+.buttonPlugin.PIPModeButton {
+  background-position: -1000% -100%;
+}
+.related-video-container {
+  z-index: 5;
+  background-color: rgba(255, 255, 255, 0.7);
+}
+.related-video-container .related-video-link {
+  width: 30%;
+  overflow: hidden;
+  display: block;
+  background-color: white;
+  padding: 3px;
+  box-shadow: 1px 1px 3px 0px black;
+  position: absolute;
+  pointer-events: all;
+}
+.related-video-container .related-video-link.related-video-single {
+  width: 50%;
+  left: 25%;
+  top: 30%;
+}
+.related-video-container .related-video-link.related-video-dual-1 {
+  width: 30%;
+  left: 10%;
+  top: 30%;
+}
+.related-video-container .related-video-link.related-video-dual-2 {
+  width: 30%;
+  right: 10%;
+  top: 30%;
+}
+.related-video-container .related-video-link img {
+  width: 100%;
+}
+.related-video-container .related-video-link p {
+  width: 100%;
+  text-align: center;
+}
+.buttonPlugin.showEditorButton {
+  pointer-events: all;
+}
+.buttonPluginPopUp.videoZoomToolbar {
+  width: 50px;
+  text-align: center;
+}
+.buttonPlugin.right.videoZoomToolbar i.button-icon.icon-mini-videocamera {
+  font-size: 27px;
+  margin-left: -2px;
+}
+.buttonPlugin.right.videoZoomToolbar i.button-icon.icon-mini-zoom-in {
+  font-size: 29px;
+  margin-left: -6px;
+}
+.autoTrackingActivated {
+  color: red !important;
+}
+html {
+  margin: 0px;
+}
+body {
+  font-family: 'Ubuntu', sans-serif;
+  margin: 0px;
+}
+pre {
+  padding: 20px;
+  border-bottom: 2px solid #cc0000;
+  border-top: 2px solid #cc0000;
+}
+iframe {
+  margin-left: auto;
+  margin-right: auto;
+  display: block;
+}
+h2 {
+  color: #909090;
+}
+h1 {
+  color: #cc0000;
+}
+.alignCenter {
+  display: block;
+  margin-right: auto;
+  margin-left: auto;
+  max-width: 90%;
+}
+.image {
+  background-size: 100% auto;
+  background-repeat: no-repeat;
+}
+#logo {
+  background-image: url(logo_paella.png);
+  width: 140px;
+  height: 140px;
+  float: left;
+}
+.pageHeader {
+  background-color: white;
+  padding: 20px;
+  border-bottom: 1px solid #cc0000;
+  height: 170px;
+}
+.content {
+  width: 100%;
+  background-color: white;
+  margin-left: auto;
+  margin-right: auto;
+  max-width: 1100px;
+  padding-left: 30px;
+  padding-right: 30px;
+}
+.content.page {
+  margin-top: 0px;
+  padding-top: 30px;
+  padding-bottom: 100px;
+}
+#headerText {
+  font-family: 'Varela Round', sans-serif;
+  font-size: 60pt;
+  display: block;
+  width: 100%;
+  line-height: 90px;
+  margin-left: 157px;
+}
+#headerSubtitle {
+  display: block;
+  width: 100%;
+  margin-left: 160px;
+  font-size: 28px;
+  color: gray;
+}
+.logoGroup {
+  width: 660px;
+  float: left;
+  margin-top: 20px;
+}
+a {
+  color: #fa8528;
+}
+a:visited {
+  color: #fa8528;
+}
+a:hover {
+  color: #fba352;
+}
+a:active {
+  color: #ffb055;
+}
+.linkButton {
+  font-size: 20px;
+  color: white;
+  background-color: #fa8528;
+  padding: 20px;
+  border-radius: 5px;
+  border: 1.6pt solid #BA631E;
+  box-shadow: inset -3px -5px 10px 0px #D9711D;
+  display: inline-block;
+  text-decoration: none;
+  text-align: center;
+}
+.linkButton.small {
+  padding: 10px;
+  font-size: 12px;
+}
+.linkButton:hover {
+  color: white;
+  background-color: #FFA863;
+}
+.linkButton:active {
+  color: white;
+  box-shadow: inset 3px 5px 20px 0px #D9711D;
+}
+.buttonGroup#downloads {
+  width: 233px;
+  padding-top: 5px;
+  margin-bottom: 30px;
+  margin-left: auto;
+  margin-right: auto;
+}
+#githubLink {
+  display: block;
+}
+#resourcesLink {
+  display: block;
+}
+#downloadPaella3 {
+  display: block;
+  width: 189px;
+  margin-top: 55px;
+  margin-left: auto;
+  margin-right: auto;
+  color: white;
+}
+.downloadGroup {
+  width: 250px;
+  float: right;
+}
+.footerText {
+  display: inline-block;
+  height: 50px;
+  vertical-align: top;
+  margin-right: 10px;
+  font-size: 10px;
+}
+.sponsorLogo {
+  width: 100px;
+  display: inline-block;
+}
+.content.footer {
+  border-top: 4px solid #fa8528;
+  padding-top: 10px;
+}
+.menu {
+  margin-top: 165px;
+}
+.menuItem {
+  list-style-type: none;
+  display: inline;
+  margin-right: 30px;
+}
+.menuItemLink {
+  cursor: pointer;
+}
+.menuItemLink.current {
+  color: gray;
+}
+.element {
+  margin-left: auto;
+  display: block;
+  margin-right: auto;
+  width: 65%;
+}
+.imgen {
+  margin-left: auto;
+  width: 100%;
+}
+.txtblock {
+  color: black;
+  font-size: large;
+  font-family: 'Istok Web', sans-serif;
+  font-style: oblique;
+}
diff --git a/src/main/webapp/static/js/paella/player/resources/style/style_light.css b/src/main/webapp/static/js/paella/player/resources/style/style_light.css
new file mode 100644
index 0000000000000000000000000000000000000000..c46dd91c8d030050036312b31472fefe691d5f83
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/style_light.css
@@ -0,0 +1,3990 @@
+/* Dark icons over light background */
+body {
+  height: 100%;
+  width: 100%;
+  font-family: Verdana, sans-serif;
+  font-size: 12px;
+  background: #fafafa;
+  touch-action: none;
+}
+a {
+  color: #636363;
+}
+a:hover {
+  color: #a4a4a4;
+}
+a:active {
+  color: #3d3d3d;
+}
+a:visited {
+  color: #636363;
+}
+.videoWrapper {
+  -moz-box-shadow: 2px 2px 6px #000;
+  -webkit-box-shadow: 2px 2px 6px #000;
+  box-shadow: 2px 2px 6px #000;
+  background: black;
+}
+div {
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.buttonPlugin {
+  cursor: pointer;
+  padding-right: 0px;
+  padding-left: 0px;
+  background-origin: border-box;
+  position: relative;
+  display: block;
+  float: left;
+  align-items: stretch;
+  background-color: transparent;
+  border: none;
+  box-sizing: border-box;
+  min-width: 30px;
+  height: 30px;
+  margin-left: 5px;
+  margin-right: 5px;
+  margin-top: 5px;
+  color: white;
+  text-align: center;
+}
+button,
+div i.button-icon {
+  color: black;
+  font-size: 18px;
+  line-height: 30px;
+  position: absolute;
+  top: 0px;
+  left: 5px;
+}
+span.expandable-content {
+  color: white;
+  width: 80px;
+  display: block;
+  float: left;
+}
+.buttonPlugin.expandable-content {
+  background-color: transparent !important;
+}
+.buttonPlugin {
+  position: relative;
+}
+.button-text {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  top: 0px;
+  bottom: 0px;
+  text-align: center;
+  line-height: 30px;
+  z-index: 1;
+}
+i.button-icon.icon-screen {
+  font-size: 21.96px;
+  padding-left: 0px;
+}
+.play-button-on-screen {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  position: absolute;
+  opacity: 0.7;
+  top: 0;
+  left: 0;
+  bottom: 51px;
+  right: 0;
+  z-index: 50;
+  width: 100%;
+  height: 100%;
+}
+.play-button-on-screen .play-icon {
+  width: 300px;
+  height: 300px;
+  background-image: url(../images/play.svg);
+}
+@media screen and (max-width: 1000px) {
+  .play-button-on-screen .play-icon {
+    width: 300px;
+    height: 300px;
+  }
+}
+@media screen and (max-width: 700px) {
+  .play-button-on-screen .play-icon {
+    width: 150px;
+    height: 150px;
+  }
+}
+@media screen and (max-width: 400px) {
+  .play-button-on-screen .play-icon {
+    width: 80px;
+    height: 80px;
+  }
+}
+#playerContainer {
+  background-color: white;
+}
+#playerContainer.modalVisible > :not(.modalMessageContainer) {
+  filter: blur(10px);
+}
+#playerContainer:-webkit-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-moz-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-ms-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-o-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#ignoreBrowserCheckLink {
+  color: black;
+  text-decoration: underline;
+}
+.alt-scroll-message-container {
+  position: absolute;
+  left: 0px;
+  top: 0px;
+  bottom: 0px;
+  right: 0px;
+  background-color: rgba(0, 0, 0, 0.45);
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-size: 20px;
+  color: white;
+  text-shadow: 1px 1px 4px black;
+}
+.alt-scroll-message-container p {
+  text-align: center;
+}
+.playbackControls {
+  background-color: rgba(242, 242, 242, 0.78);
+  background-image: none;
+  background-size: auto;
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  height: 56px;
+  z-index: 100;
+}
+.playbackBarPlugins {
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  height: 40px;
+  font-size: 12px;
+  overflow: hidden;
+}
+.playbackBar {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  height: 14px;
+  background-color: rgba(125, 125, 125, 0.5);
+  border-bottom: 1px solid rgba(90, 90, 90, 0.6);
+  border-top: 1px solid rgba(90, 90, 90, 0.6);
+  cursor: pointer;
+}
+.playbackBar:focus {
+  box-shadow: inset 0px 0px 5px 0px #faa166;
+  outline: none;
+}
+.playbackBarFull {
+  height: 12px;
+  background-color: #fa8533;
+  background: #fa8533;
+}
+.playbackBarFull.disabled {
+  opacity: 0.2;
+}
+.buttonPlugin.left {
+  float: left;
+}
+.buttonPlugin.right {
+  float: right;
+}
+.buttonPlugin:hover {
+  background-color: #faa166;
+}
+.buttonPlugin:focus {
+  box-shadow: inset 0px 0px 5px 0px #faa166;
+  outline: none;
+}
+.buttonPlugin.selected {
+  background-color: #fa8533;
+}
+.popUpPluginContainer {
+  position: absolute;
+  right: 0px;
+  z-index: 110;
+  color: black;
+}
+.buttonPluginPopUp {
+  background-color: rgba(242, 242, 242, 0.78);
+  position: absolute;
+  bottom: -14px;
+}
+.timelinePluginContainer {
+  position: absolute;
+  left: 0px;
+  width: 100%;
+  background-color: rgba(242, 242, 242, 0.78);
+  bottom: 56px;
+  color: black;
+}
+.buttonTimeLine {
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+}
+/* old style time control */
+.timeControlOld {
+  color: white;
+  display: block;
+  position: relative;
+  width: 69px;
+  height: 44px;
+  background-size: 100%;
+  background-image: url(../images/time_monitor.png);
+  font-size: 10px;
+  padding-top: 11px;
+  background-repeat: no-repeat;
+  bottom: 70px;
+  font-family: verdana;
+  text-align: center;
+  z-index: 100;
+}
+.timeControl {
+  color: white;
+  display: block;
+  position: relative;
+  width: 69px;
+  height: 12px;
+  font-size: 10px;
+  background-repeat: no-repeat;
+  padding-left: 5px;
+  font-family: verdana;
+  text-align: left;
+  z-index: 100;
+  line-height: 12px;
+  margin-top: -12px;
+  cursor: pointer;
+}
+.editControlContainer {
+  z-index: 20;
+}
+.paellaLoadErrorContainer {
+  width: 1000px;
+  margin: auto;
+  margin-top: 200px;
+  text-align: center;
+  padding-top: 80px;
+  padding-bottom: 80px;
+  background-color: rgba(220, 228, 234, 0.9);
+  border-radius: 22px;
+  box-shadow: 1px 1px 8px black;
+  font-family: sans-serif;
+  font-size: 20px;
+}
+.modalMessageContainer {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+.messageContainer {
+  width: 95%;
+  height: 95%;
+  margin-top: 2%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  vertical-align: middle;
+  font-family: sans-serif;
+  padding-left: 80px;
+  padding-right: 80px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+}
+.frameContainer {
+  width: 95%;
+  height: 95%;
+  margin-top: 2%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  /*vertical-align: middle;*/
+  font-family: sans-serif;
+  padding-left: 80px;
+  padding-right: 80px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+  display: block;
+}
+.errorContainer {
+  width: 55%;
+  min-height: 55%;
+  margin-top: 22%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  vertical-align: middle;
+  padding-left: 120px;
+  padding-right: 60px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-family: sans-serif;
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+  border: 7px solid maroon;
+  color: maroon;
+  font-weight: bold;
+  background-image: url(../images/error_icon.png);
+  background-size: 10%;
+  background-repeat: no-repeat;
+  background-position: 50px 40px;
+}
+.paella_messageContainer_closeButton {
+  /*background-image: url(../images/close_button.png);*/
+  width: 20px;
+  height: 20px;
+  position: absolute;
+  display: block;
+  top: 10px;
+  right: 10px;
+  z-index: 999999999;
+  border-radius: 20px;
+}
+.paella_messageContainer_closeButton:hover {
+  color: white;
+  background-color: black;
+}
+.paella_messageContainer_closeButton:active {
+  background-position: 20px;
+}
+.overlayContainer.background {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+#overlayContainer {
+  pointer-events: none;
+}
+#overlayContainer div {
+  pointer-events: none;
+}
+.videoLoaderOverlay {
+  background-color: black;
+}
+.videoOverlayButtonPlugins {
+  z-index: 100;
+  position: absolute;
+  right: 0px;
+  left: 0px;
+  top: 0px;
+  pointer-events: none;
+}
+.divTimeOverlay {
+  position: fixed;
+  background-color: rgba(242, 242, 242, 0.78);
+  color: white;
+  text-align: center;
+  padding-right: 3px;
+  padding-left: 3px;
+  padding-top: 1px;
+  text-shadow: 1px 1px #888888;
+  z-index: 100;
+}
+.divTimeImageOverlay {
+  position: fixed;
+  background-color: rgba(242, 242, 242, 0.78);
+  z-index: 99;
+  width: 256px;
+  -webkit-background-size: cover;
+  -moz-background-size: cover;
+  -o-background-size: cover;
+  background-size: contain;
+}
+.imgOverlay {
+  height: 100%;
+  width: 100%;
+  max-width: none;
+  border: 1px solid rgba(242, 242, 242, 0.78);
+}
+.videoPosterFrameImage {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  height: 100%;
+  width: 100%;
+}
+.playerContainer_controls_playback_playbackBar_canvas {
+  overflow: hidden;
+  position: absolute;
+}
+#playerContainer_controls_playback_playbackBar {
+  overflow: hidden;
+  background-color: #333333;
+}
+.login-link {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+video::-internal-media-controls-download-button {
+  display: none;
+}
+video::-webkit-media-controls-enclosure {
+  overflow: hidden;
+}
+video::-webkit-media-controls-panel {
+  width: calc(100% + 8px);
+  /* Adjust as needed */
+}
+#lazyLoadThumbnailContainer {
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  width: 100%;
+  z-index: 20;
+  /* Over the video contaniner and video layout buttons, but under the play button */
+}
+.dimmed-element {
+  filter: blur(4px);
+}
+/* TODO: Extract this CSS to editor plugins */
+.editorTrackItem.mainTrackTrim {
+  background-image: url(../images/main_track_bkg.png);
+  background-size: 56px 100%;
+}
+/* END EXTRACT */
+/* Begin new editor */
+a.btn {
+  color: #f3f3f3;
+}
+.listItem {
+  color: #f3f3f3;
+}
+.editorContainer {
+  position: fixed;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  width: 100%;
+  height: 100%;
+}
+.paellaEditorRightBar {
+  position: fixed;
+  right: 0px;
+  top: 0px;
+  background-color: #4f4f4f;
+  box-shadow: 1px -4px 12px black;
+}
+.paellaEditorBottomBar {
+  position: fixed;
+  right: 0px;
+  bottom: 0px;
+  left: 0px;
+  background-color: #4f4f4f;
+  box-shadow: 1px 1px 12px black;
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.paellaEditorRightBarContent {
+  padding-left: 10px;
+  padding-right: 10px;
+  font-size: 11px;
+}
+.editorTimelineContainer {
+  margin-top: -21px;
+  position: relative;
+  overflow: auto;
+}
+.editorTimelineContent {
+  background-image: url(../images/light_background.png);
+  top: 0px;
+  box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.7);
+  position: relative;
+}
+.editorTimeLineTimeMarks {
+  position: absolute;
+  top: 0px;
+  height: 20px;
+  left: 0px;
+  right: 0px;
+  z-index: 1;
+  padding-left: 3px;
+  background-image: url(../images/timeline_tracks_bkg.png);
+}
+.editorTimeLineMark {
+  float: left;
+  /*	background-color: rgb(61,62,62);*/
+  font-size: 9px;
+  height: 20px;
+  line-height: 18px;
+}
+.editorTimeLineMark.odd {
+  /*	background-color: rgb(73,82,82);*/
+}
+.editorTrackListItem.master {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  top: 38px;
+  height: 51px;
+}
+.editorTrackListItem.secondary {
+  height: 23px;
+  position: relative;
+}
+.editorTrackListItem.secondary.track0 {
+  margin-top: 90px;
+}
+.editorTrackItem {
+  position: absolute;
+  height: 97%;
+  border-radius: 5px;
+  border: 1px solid #6f6f6f;
+  overflow: hidden;
+}
+.editorTrackItemResizer {
+  width: 2px;
+  top: 20%;
+  bottom: 23%;
+  position: absolute;
+  overflow: hidden;
+  cursor: pointer;
+}
+.editorTrackItemResizer.left {
+  border-right: 8px double #7c7c7c;
+  left: 0px;
+}
+.editorTrackItemResizer.right {
+  border-left: 8px double #7c7c7c;
+  right: 0px;
+}
+.editorTrackItemMoveArea {
+  position: absolute;
+  left: 18px;
+  right: 18px;
+  top: 0px;
+  bottom: 0px;
+  cursor: pointer;
+}
+.editorTrackItemLabel {
+  margin-left: 20px;
+  margin-right: 20px;
+  height: 100%;
+  line-height: 48px;
+  cursor: pointer;
+}
+.editorTrackItemLock {
+  top: 5%;
+  position: absolute;
+}
+.editorTrackItemLabel.secondary {
+  line-height: 23px;
+}
+.editorTimeLineMark.last {
+  overflow: hidden;
+}
+.editorTimeLineTracks {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  padding-bottom: 20px;
+  background-image: url(../images/timeline_tracks_bkg.png);
+}
+.editorBottomToolbarContainer {
+  background-color: #52595F;
+  height: 27px;
+}
+.zoomDropup {
+  margin-top: 2px;
+  float: right;
+  margin-right: 10px;
+}
+.navbar.tiny {
+  font-size: 11px;
+}
+.navbar-inner.tiny {
+  min-height: 21px;
+}
+.navbar .nav > li {
+  line-height: 11px;
+}
+.navbar .nav > li > a.rightBarPlugin {
+  padding: 5px 5px 5px;
+}
+.editorToolbar_selectedToolUtils {
+  margin-left: 10px;
+}
+.editorToolbarPlaybackControls {
+  position: absolute;
+  left: 45%;
+}
+.editorTimelineCursor {
+  position: absolute;
+  height: 100%;
+  width: 1px;
+  border-left: 1px dashed rgba(238, 0, 12, 0.92);
+  left: 352px;
+  z-index: 0;
+  top: 0px;
+  line-height: 54px;
+  font-size: 11px;
+  padding-left: 3px;
+}
+.editorTimelineCursor.currentTime {
+  border-left: 1px solid white;
+}
+.editorRightBarTabIcon {
+  /*	display: inline-block;  to add icon, set this property and the background image in the plugin css file, using .editorRightBarTabIcon.pluginName as class name */
+  width: 15px;
+  height: 14px;
+  margin-bottom: -3px;
+  margin-right: 2px;
+}
+@font-face {
+  font-family: 'icomoon';
+  src: url('fonts/icomoon.eot?u9ewd1');
+  src: url('fonts/icomoon.eot?u9ewd1#iefix') format('embedded-opentype'), url('fonts/icomoon.ttf?u9ewd1') format('truetype'), url('fonts/icomoon.woff?u9ewd1') format('woff'), url('fonts/icomoon.svg?u9ewd1#icomoon') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+[class^="icon-"],
+[class*=" icon-"] {
+  /* use !important to prevent issues with browser extensions that change fonts */
+  font-family: 'icomoon' !important;
+  speak: none;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
+  /* Better Font Rendering =========== */
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+.icon-mini-camera:before {
+  content: "\e900";
+}
+.icon-captions:before {
+  content: "\e901";
+}
+.icon-paintbrush:before {
+  content: "\e902";
+}
+.icon-airplay:before {
+  content: "\e903";
+}
+.icon-arrow-down:before {
+  content: "\e904";
+}
+.icon-arrow-left:before {
+  content: "\e905";
+}
+.icon-arrow-right:before {
+  content: "\e906";
+}
+.icon-arrow-up:before {
+  content: "\e907";
+}
+.icon-back-10-s:before {
+  content: "\e908";
+}
+.icon-back-30-s:before {
+  content: "\e909";
+}
+.icon-comments-disabled:before {
+  content: "\e90a";
+}
+.icon-comments:before {
+  content: "\e90b";
+}
+.icon-edit:before {
+  content: "\e90c";
+}
+.icon-facebook:before {
+  content: "\e90d";
+}
+.icon-folder:before {
+  content: "\e90e";
+}
+.icon-forward-30-s:before {
+  content: "\e90f";
+}
+.icon-frames:before {
+  content: "\e910";
+}
+.icon-fullscreen:before {
+  content: "\e911";
+}
+.icon-headphone:before {
+  content: "\e912";
+}
+.icon-help:before {
+  content: "\e913";
+}
+.icon-info:before {
+  content: "\e914";
+}
+.icon-link:before {
+  content: "\e915";
+}
+.icon-mini-frames:before {
+  content: "\e916";
+}
+.icon-mini-videocamera:before {
+  content: "\e917";
+}
+.icon-mini-window:before {
+  content: "\e918";
+}
+.icon-mini-zoom-in:before {
+  content: "\e919";
+}
+.icon-mini-zoom-out:before {
+  content: "\e91a";
+}
+.icon-pause:before {
+  content: "\e91b";
+}
+.icon-photo:before {
+  content: "\e91c";
+}
+.icon-pip:before {
+  content: "\e91d";
+}
+.icon-play:before {
+  content: "\e91e";
+}
+.icon-player-mode-1:before {
+  content: "\e91f";
+}
+.icon-player-mode-2:before {
+  content: "\e920";
+}
+.icon-player-mode-3:before {
+  content: "\e921";
+}
+.icon-present-mode-1:before {
+  content: "\e922";
+}
+.icon-present-mode-2:before {
+  content: "\e923";
+}
+.icon-present-mode-3:before {
+  content: "\e924";
+}
+.icon-present-mode-4:before {
+  content: "\e925";
+}
+.icon-present-mode-5:before {
+  content: "\e926";
+}
+.icon-present-mode-6:before {
+  content: "\e927";
+}
+.icon-present-mode-7:before {
+  content: "\e928";
+}
+.icon-present-mode-8:before {
+  content: "\e929";
+}
+.icon-present-mode-9:before {
+  content: "\e92a";
+}
+.icon-present-mode-10:before {
+  content: "\e92b";
+}
+.icon-presentation-mode:before {
+  content: "\e92c";
+}
+.icon-screen:before {
+  content: "\e92d";
+}
+.icon-slideshow:before {
+  content: "\e92e";
+}
+.icon-social:before {
+  content: "\e92f";
+}
+.icon-star-empty:before {
+  content: "\e930";
+}
+.icon-star:before {
+  content: "\e931";
+}
+.icon-stats:before {
+  content: "\e932";
+}
+.icon-twitter:before {
+  content: "\e933";
+}
+.icon-user:before {
+  content: "\e934";
+}
+.icon-volume-high:before {
+  content: "\e935";
+}
+.icon-volume-low:before {
+  content: "\e936";
+}
+.icon-volume-mid:before {
+  content: "\e937";
+}
+.icon-volume-mute:before {
+  content: "\e938";
+}
+.icon-windowed:before {
+  content: "\e939";
+}
+.icon-zoom-in:before {
+  content: "\e93a";
+}
+.icon-zoom:before {
+  content: "\e93b";
+}
+.icon-home:before {
+  content: "\e93c";
+}
+.icon-home2:before {
+  content: "\e93d";
+}
+.icon-home3:before {
+  content: "\e93e";
+}
+.icon-office:before {
+  content: "\e93f";
+}
+.icon-newspaper:before {
+  content: "\e940";
+}
+.icon-pencil:before {
+  content: "\e941";
+}
+.icon-pencil2:before {
+  content: "\e942";
+}
+.icon-quill:before {
+  content: "\e943";
+}
+.icon-pen:before {
+  content: "\e944";
+}
+.icon-blog:before {
+  content: "\e945";
+}
+.icon-eyedropper:before {
+  content: "\e946";
+}
+.icon-droplet:before {
+  content: "\e947";
+}
+.icon-paint-format:before {
+  content: "\e948";
+}
+.icon-image:before {
+  content: "\e949";
+}
+.icon-images:before {
+  content: "\e94a";
+}
+.icon-camera:before {
+  content: "\e94b";
+}
+.icon-headphones:before {
+  content: "\e94c";
+}
+.icon-music:before {
+  content: "\e94d";
+}
+.icon-play2:before {
+  content: "\e94e";
+}
+.icon-film:before {
+  content: "\e94f";
+}
+.icon-video-camera:before {
+  content: "\e950";
+}
+.icon-dice:before {
+  content: "\e951";
+}
+.icon-pacman:before {
+  content: "\e952";
+}
+.icon-spades:before {
+  content: "\e953";
+}
+.icon-clubs:before {
+  content: "\e954";
+}
+.icon-diamonds:before {
+  content: "\e955";
+}
+.icon-bullhorn:before {
+  content: "\e956";
+}
+.icon-connection:before {
+  content: "\e957";
+}
+.icon-podcast:before {
+  content: "\e958";
+}
+.icon-feed:before {
+  content: "\e959";
+}
+.icon-mic:before {
+  content: "\e95a";
+}
+.icon-book:before {
+  content: "\e95b";
+}
+.icon-books:before {
+  content: "\e95c";
+}
+.icon-library:before {
+  content: "\e95d";
+}
+.icon-file-text:before {
+  content: "\e95e";
+}
+.icon-profile:before {
+  content: "\e95f";
+}
+.icon-file-empty:before {
+  content: "\e960";
+}
+.icon-files-empty:before {
+  content: "\e961";
+}
+.icon-file-text2:before {
+  content: "\e962";
+}
+.icon-file-picture:before {
+  content: "\e963";
+}
+.icon-file-music:before {
+  content: "\e964";
+}
+.icon-file-play:before {
+  content: "\e965";
+}
+.icon-file-video:before {
+  content: "\e966";
+}
+.icon-file-zip:before {
+  content: "\e967";
+}
+.icon-copy:before {
+  content: "\e968";
+}
+.icon-paste:before {
+  content: "\e969";
+}
+.icon-stack:before {
+  content: "\e96a";
+}
+.icon-folder2:before {
+  content: "\e96b";
+}
+.icon-folder-open:before {
+  content: "\e96c";
+}
+.icon-folder-plus:before {
+  content: "\e96d";
+}
+.icon-folder-minus:before {
+  content: "\e96e";
+}
+.icon-folder-download:before {
+  content: "\e96f";
+}
+.icon-folder-upload:before {
+  content: "\e970";
+}
+.icon-price-tag:before {
+  content: "\e971";
+}
+.icon-price-tags:before {
+  content: "\e972";
+}
+.icon-barcode:before {
+  content: "\e973";
+}
+.icon-qrcode:before {
+  content: "\e974";
+}
+.icon-ticket:before {
+  content: "\e975";
+}
+.icon-cart:before {
+  content: "\e976";
+}
+.icon-coin-dollar:before {
+  content: "\e977";
+}
+.icon-coin-euro:before {
+  content: "\e978";
+}
+.icon-coin-pound:before {
+  content: "\e979";
+}
+.icon-coin-yen:before {
+  content: "\e97a";
+}
+.icon-credit-card:before {
+  content: "\e97b";
+}
+.icon-calculator:before {
+  content: "\e97c";
+}
+.icon-lifebuoy:before {
+  content: "\e97d";
+}
+.icon-phone:before {
+  content: "\e97e";
+}
+.icon-phone-hang-up:before {
+  content: "\e97f";
+}
+.icon-address-book:before {
+  content: "\e980";
+}
+.icon-envelop:before {
+  content: "\e981";
+}
+.icon-pushpin:before {
+  content: "\e982";
+}
+.icon-location:before {
+  content: "\e983";
+}
+.icon-location2:before {
+  content: "\e984";
+}
+.icon-compass:before {
+  content: "\e985";
+}
+.icon-compass2:before {
+  content: "\e986";
+}
+.icon-map:before {
+  content: "\e987";
+}
+.icon-map2:before {
+  content: "\e988";
+}
+.icon-history:before {
+  content: "\e989";
+}
+.icon-clock:before {
+  content: "\e98a";
+}
+.icon-clock2:before {
+  content: "\e98b";
+}
+.icon-alarm:before {
+  content: "\e98c";
+}
+.icon-bell:before {
+  content: "\e98d";
+}
+.icon-stopwatch:before {
+  content: "\e98e";
+}
+.icon-calendar:before {
+  content: "\e98f";
+}
+.icon-printer:before {
+  content: "\e990";
+}
+.icon-keyboard:before {
+  content: "\e991";
+}
+.icon-display:before {
+  content: "\e992";
+}
+.icon-laptop:before {
+  content: "\e993";
+}
+.icon-mobile:before {
+  content: "\e994";
+}
+.icon-mobile2:before {
+  content: "\e995";
+}
+.icon-tablet:before {
+  content: "\e996";
+}
+.icon-tv:before {
+  content: "\e997";
+}
+.icon-drawer:before {
+  content: "\e998";
+}
+.icon-drawer2:before {
+  content: "\e999";
+}
+.icon-box-add:before {
+  content: "\e99a";
+}
+.icon-box-remove:before {
+  content: "\e99b";
+}
+.icon-download:before {
+  content: "\e99c";
+}
+.icon-upload:before {
+  content: "\e99d";
+}
+.icon-floppy-disk:before {
+  content: "\e99e";
+}
+.icon-drive:before {
+  content: "\e99f";
+}
+.icon-database:before {
+  content: "\e9a0";
+}
+.icon-undo:before {
+  content: "\e9a1";
+}
+.icon-redo:before {
+  content: "\e9a2";
+}
+.icon-undo2:before {
+  content: "\e9a3";
+}
+.icon-redo2:before {
+  content: "\e9a4";
+}
+.icon-forward:before {
+  content: "\e9a5";
+}
+.icon-reply:before {
+  content: "\e9a6";
+}
+.icon-bubble:before {
+  content: "\e9a7";
+}
+.icon-bubbles:before {
+  content: "\e9a8";
+}
+.icon-bubbles2:before {
+  content: "\e9a9";
+}
+.icon-bubble2:before {
+  content: "\e9aa";
+}
+.icon-bubbles3:before {
+  content: "\e9ab";
+}
+.icon-bubbles4:before {
+  content: "\e9ac";
+}
+.icon-user2:before {
+  content: "\e9ad";
+}
+.icon-users:before {
+  content: "\e9ae";
+}
+.icon-user-plus:before {
+  content: "\e9af";
+}
+.icon-user-minus:before {
+  content: "\e9b0";
+}
+.icon-user-check:before {
+  content: "\e9b1";
+}
+.icon-user-tie:before {
+  content: "\e9b2";
+}
+.icon-quotes-left:before {
+  content: "\e9b3";
+}
+.icon-quotes-right:before {
+  content: "\e9b4";
+}
+.icon-hour-glass:before {
+  content: "\e9b5";
+}
+.icon-spinner:before {
+  content: "\e9b6";
+}
+.icon-spinner2:before {
+  content: "\e9b7";
+}
+.icon-spinner3:before {
+  content: "\e9b8";
+}
+.icon-spinner4:before {
+  content: "\e9b9";
+}
+.icon-spinner5:before {
+  content: "\e9ba";
+}
+.icon-spinner6:before {
+  content: "\e9bb";
+}
+.icon-spinner7:before {
+  content: "\e9bc";
+}
+.icon-spinner8:before {
+  content: "\e9bd";
+}
+.icon-spinner9:before {
+  content: "\e9be";
+}
+.icon-spinner10:before {
+  content: "\e9bf";
+}
+.icon-spinner11:before {
+  content: "\e9c0";
+}
+.icon-binoculars:before {
+  content: "\e9c1";
+}
+.icon-search:before {
+  content: "\e9c2";
+}
+.icon-zoom-in2:before {
+  content: "\e9c3";
+}
+.icon-zoom-out:before {
+  content: "\e9c4";
+}
+.icon-enlarge:before {
+  content: "\e9c5";
+}
+.icon-shrink:before {
+  content: "\e9c6";
+}
+.icon-enlarge2:before {
+  content: "\e9c7";
+}
+.icon-shrink2:before {
+  content: "\e9c8";
+}
+.icon-key:before {
+  content: "\e9c9";
+}
+.icon-key2:before {
+  content: "\e9ca";
+}
+.icon-lock:before {
+  content: "\e9cb";
+}
+.icon-unlocked:before {
+  content: "\e9cc";
+}
+.icon-wrench:before {
+  content: "\e9cd";
+}
+.icon-equalizer:before {
+  content: "\e9ce";
+}
+.icon-equalizer2:before {
+  content: "\e9cf";
+}
+.icon-cog:before {
+  content: "\e9d0";
+}
+.icon-cogs:before {
+  content: "\e9d1";
+}
+.icon-hammer:before {
+  content: "\e9d2";
+}
+.icon-magic-wand:before {
+  content: "\e9d3";
+}
+.icon-aid-kit:before {
+  content: "\e9d4";
+}
+.icon-bug:before {
+  content: "\e9d5";
+}
+.icon-pie-chart:before {
+  content: "\e9d6";
+}
+.icon-stats-dots:before {
+  content: "\e9d7";
+}
+.icon-stats-bars:before {
+  content: "\e9d8";
+}
+.icon-stats-bars2:before {
+  content: "\e9d9";
+}
+.icon-trophy:before {
+  content: "\e9da";
+}
+.icon-gift:before {
+  content: "\e9db";
+}
+.icon-glass:before {
+  content: "\e9dc";
+}
+.icon-glass2:before {
+  content: "\e9dd";
+}
+.icon-mug:before {
+  content: "\e9de";
+}
+.icon-spoon-knife:before {
+  content: "\e9df";
+}
+.icon-leaf:before {
+  content: "\e9e0";
+}
+.icon-rocket:before {
+  content: "\e9e1";
+}
+.icon-meter:before {
+  content: "\e9e2";
+}
+.icon-meter2:before {
+  content: "\e9e3";
+}
+.icon-hammer2:before {
+  content: "\e9e4";
+}
+.icon-fire:before {
+  content: "\e9e5";
+}
+.icon-lab:before {
+  content: "\e9e6";
+}
+.icon-magnet:before {
+  content: "\e9e7";
+}
+.icon-bin:before {
+  content: "\e9e8";
+}
+.icon-bin2:before {
+  content: "\e9e9";
+}
+.icon-briefcase:before {
+  content: "\e9ea";
+}
+.icon-airplane:before {
+  content: "\e9eb";
+}
+.icon-truck:before {
+  content: "\e9ec";
+}
+.icon-road:before {
+  content: "\e9ed";
+}
+.icon-accessibility:before {
+  content: "\e9ee";
+}
+.icon-target:before {
+  content: "\e9ef";
+}
+.icon-shield:before {
+  content: "\e9f0";
+}
+.icon-power:before {
+  content: "\e9f1";
+}
+.icon-switch:before {
+  content: "\e9f2";
+}
+.icon-power-cord:before {
+  content: "\e9f3";
+}
+.icon-clipboard:before {
+  content: "\e9f4";
+}
+.icon-list-numbered:before {
+  content: "\e9f5";
+}
+.icon-list:before {
+  content: "\e9f6";
+}
+.icon-list2:before {
+  content: "\e9f7";
+}
+.icon-tree:before {
+  content: "\e9f8";
+}
+.icon-menu:before {
+  content: "\e9f9";
+}
+.icon-menu2:before {
+  content: "\e9fa";
+}
+.icon-menu3:before {
+  content: "\e9fb";
+}
+.icon-menu4:before {
+  content: "\e9fc";
+}
+.icon-cloud:before {
+  content: "\e9fd";
+}
+.icon-cloud-download:before {
+  content: "\e9fe";
+}
+.icon-cloud-upload:before {
+  content: "\e9ff";
+}
+.icon-cloud-check:before {
+  content: "\ea00";
+}
+.icon-download2:before {
+  content: "\ea01";
+}
+.icon-upload2:before {
+  content: "\ea02";
+}
+.icon-download3:before {
+  content: "\ea03";
+}
+.icon-upload3:before {
+  content: "\ea04";
+}
+.icon-sphere:before {
+  content: "\ea05";
+}
+.icon-earth:before {
+  content: "\ea06";
+}
+.icon-link2:before {
+  content: "\ea07";
+}
+.icon-flag:before {
+  content: "\ea08";
+}
+.icon-attachment:before {
+  content: "\ea09";
+}
+.icon-eye:before {
+  content: "\ea0a";
+}
+.icon-eye-plus:before {
+  content: "\ea0b";
+}
+.icon-eye-minus:before {
+  content: "\ea0c";
+}
+.icon-eye-blocked:before {
+  content: "\ea0d";
+}
+.icon-bookmark:before {
+  content: "\ea0e";
+}
+.icon-bookmarks:before {
+  content: "\ea0f";
+}
+.icon-sun:before {
+  content: "\ea10";
+}
+.icon-contrast:before {
+  content: "\ea11";
+}
+.icon-brightness-contrast:before {
+  content: "\ea12";
+}
+.icon-star-empty2:before {
+  content: "\ea13";
+}
+.icon-star-half:before {
+  content: "\ea14";
+}
+.icon-star-full:before {
+  content: "\ea15";
+}
+.icon-heart:before {
+  content: "\ea16";
+}
+.icon-heart-broken:before {
+  content: "\ea17";
+}
+.icon-man:before {
+  content: "\ea18";
+}
+.icon-woman:before {
+  content: "\ea19";
+}
+.icon-man-woman:before {
+  content: "\ea1a";
+}
+.icon-happy:before {
+  content: "\ea1b";
+}
+.icon-happy2:before {
+  content: "\ea1c";
+}
+.icon-smile:before {
+  content: "\ea1d";
+}
+.icon-smile2:before {
+  content: "\ea1e";
+}
+.icon-tongue:before {
+  content: "\ea1f";
+}
+.icon-tongue2:before {
+  content: "\ea20";
+}
+.icon-sad:before {
+  content: "\ea21";
+}
+.icon-sad2:before {
+  content: "\ea22";
+}
+.icon-wink:before {
+  content: "\ea23";
+}
+.icon-wink2:before {
+  content: "\ea24";
+}
+.icon-grin:before {
+  content: "\ea25";
+}
+.icon-grin2:before {
+  content: "\ea26";
+}
+.icon-cool:before {
+  content: "\ea27";
+}
+.icon-cool2:before {
+  content: "\ea28";
+}
+.icon-angry:before {
+  content: "\ea29";
+}
+.icon-angry2:before {
+  content: "\ea2a";
+}
+.icon-evil:before {
+  content: "\ea2b";
+}
+.icon-evil2:before {
+  content: "\ea2c";
+}
+.icon-shocked:before {
+  content: "\ea2d";
+}
+.icon-shocked2:before {
+  content: "\ea2e";
+}
+.icon-baffled:before {
+  content: "\ea2f";
+}
+.icon-baffled2:before {
+  content: "\ea30";
+}
+.icon-confused:before {
+  content: "\ea31";
+}
+.icon-confused2:before {
+  content: "\ea32";
+}
+.icon-neutral:before {
+  content: "\ea33";
+}
+.icon-neutral2:before {
+  content: "\ea34";
+}
+.icon-hipster:before {
+  content: "\ea35";
+}
+.icon-hipster2:before {
+  content: "\ea36";
+}
+.icon-wondering:before {
+  content: "\ea37";
+}
+.icon-wondering2:before {
+  content: "\ea38";
+}
+.icon-sleepy:before {
+  content: "\ea39";
+}
+.icon-sleepy2:before {
+  content: "\ea3a";
+}
+.icon-frustrated:before {
+  content: "\ea3b";
+}
+.icon-frustrated2:before {
+  content: "\ea3c";
+}
+.icon-crying:before {
+  content: "\ea3d";
+}
+.icon-crying2:before {
+  content: "\ea3e";
+}
+.icon-point-up:before {
+  content: "\ea3f";
+}
+.icon-point-right:before {
+  content: "\ea40";
+}
+.icon-point-down:before {
+  content: "\ea41";
+}
+.icon-point-left:before {
+  content: "\ea42";
+}
+.icon-warning:before {
+  content: "\ea43";
+}
+.icon-notification:before {
+  content: "\ea44";
+}
+.icon-question:before {
+  content: "\ea45";
+}
+.icon-plus:before {
+  content: "\ea46";
+}
+.icon-minus:before {
+  content: "\ea47";
+}
+.icon-info2:before {
+  content: "\ea48";
+}
+.icon-cancel-circle:before {
+  content: "\ea49";
+}
+.icon-blocked:before {
+  content: "\ea4a";
+}
+.icon-cross:before {
+  content: "\ea4b";
+}
+.icon-checkmark:before {
+  content: "\ea4c";
+}
+.icon-checkmark2:before {
+  content: "\ea4d";
+}
+.icon-spell-check:before {
+  content: "\ea4e";
+}
+.icon-enter:before {
+  content: "\ea4f";
+}
+.icon-exit:before {
+  content: "\ea50";
+}
+.icon-play22:before {
+  content: "\ea51";
+}
+.icon-pause2:before {
+  content: "\ea52";
+}
+.icon-stop:before {
+  content: "\ea53";
+}
+.icon-previous:before {
+  content: "\ea54";
+}
+.icon-next:before {
+  content: "\ea55";
+}
+.icon-backward:before {
+  content: "\ea56";
+}
+.icon-forward2:before {
+  content: "\ea57";
+}
+.icon-play3:before {
+  content: "\ea58";
+}
+.icon-pause22:before {
+  content: "\ea59";
+}
+.icon-stop2:before {
+  content: "\ea5a";
+}
+.icon-backward2:before {
+  content: "\ea5b";
+}
+.icon-forward3:before {
+  content: "\ea5c";
+}
+.icon-first:before {
+  content: "\ea5d";
+}
+.icon-last:before {
+  content: "\ea5e";
+}
+.icon-previous2:before {
+  content: "\ea5f";
+}
+.icon-next2:before {
+  content: "\ea60";
+}
+.icon-eject:before {
+  content: "\ea61";
+}
+.icon-volume-high2:before {
+  content: "\ea62";
+}
+.icon-volume-medium:before {
+  content: "\ea63";
+}
+.icon-volume-low2:before {
+  content: "\ea64";
+}
+.icon-volume-mute2:before {
+  content: "\ea65";
+}
+.icon-volume-mute22:before {
+  content: "\ea66";
+}
+.icon-volume-increase:before {
+  content: "\ea67";
+}
+.icon-volume-decrease:before {
+  content: "\ea68";
+}
+.icon-loop:before {
+  content: "\ea69";
+}
+.icon-loop2:before {
+  content: "\ea6a";
+}
+.icon-infinite:before {
+  content: "\ea6b";
+}
+.icon-shuffle:before {
+  content: "\ea6c";
+}
+.icon-arrow-up-left:before {
+  content: "\ea6d";
+}
+.icon-arrow-up2:before {
+  content: "\ea6e";
+}
+.icon-arrow-up-right:before {
+  content: "\ea6f";
+}
+.icon-arrow-right2:before {
+  content: "\ea70";
+}
+.icon-arrow-down-right:before {
+  content: "\ea71";
+}
+.icon-arrow-down2:before {
+  content: "\ea72";
+}
+.icon-arrow-down-left:before {
+  content: "\ea73";
+}
+.icon-arrow-left2:before {
+  content: "\ea74";
+}
+.icon-arrow-up-left2:before {
+  content: "\ea75";
+}
+.icon-arrow-up22:before {
+  content: "\ea76";
+}
+.icon-arrow-up-right2:before {
+  content: "\ea77";
+}
+.icon-arrow-right22:before {
+  content: "\ea78";
+}
+.icon-arrow-down-right2:before {
+  content: "\ea79";
+}
+.icon-arrow-down22:before {
+  content: "\ea7a";
+}
+.icon-arrow-down-left2:before {
+  content: "\ea7b";
+}
+.icon-arrow-left22:before {
+  content: "\ea7c";
+}
+.icon-circle-up:before {
+  content: "\ea7d";
+}
+.icon-circle-right:before {
+  content: "\ea7e";
+}
+.icon-circle-down:before {
+  content: "\ea7f";
+}
+.icon-circle-left:before {
+  content: "\ea80";
+}
+.icon-tab:before {
+  content: "\ea81";
+}
+.icon-move-up:before {
+  content: "\ea82";
+}
+.icon-move-down:before {
+  content: "\ea83";
+}
+.icon-sort-alpha-asc:before {
+  content: "\ea84";
+}
+.icon-sort-alpha-desc:before {
+  content: "\ea85";
+}
+.icon-sort-numeric-asc:before {
+  content: "\ea86";
+}
+.icon-sort-numberic-desc:before {
+  content: "\ea87";
+}
+.icon-sort-amount-asc:before {
+  content: "\ea88";
+}
+.icon-sort-amount-desc:before {
+  content: "\ea89";
+}
+.icon-command:before {
+  content: "\ea8a";
+}
+.icon-shift:before {
+  content: "\ea8b";
+}
+.icon-ctrl:before {
+  content: "\ea8c";
+}
+.icon-opt:before {
+  content: "\ea8d";
+}
+.icon-checkbox-checked:before {
+  content: "\ea8e";
+}
+.icon-checkbox-unchecked:before {
+  content: "\ea8f";
+}
+.icon-radio-checked:before {
+  content: "\ea90";
+}
+.icon-radio-checked2:before {
+  content: "\ea91";
+}
+.icon-radio-unchecked:before {
+  content: "\ea92";
+}
+.icon-crop:before {
+  content: "\ea93";
+}
+.icon-make-group:before {
+  content: "\ea94";
+}
+.icon-ungroup:before {
+  content: "\ea95";
+}
+.icon-scissors:before {
+  content: "\ea96";
+}
+.icon-filter:before {
+  content: "\ea97";
+}
+.icon-font:before {
+  content: "\ea98";
+}
+.icon-ligature:before {
+  content: "\ea99";
+}
+.icon-ligature2:before {
+  content: "\ea9a";
+}
+.icon-text-height:before {
+  content: "\ea9b";
+}
+.icon-text-width:before {
+  content: "\ea9c";
+}
+.icon-font-size:before {
+  content: "\ea9d";
+}
+.icon-bold:before {
+  content: "\ea9e";
+}
+.icon-underline:before {
+  content: "\ea9f";
+}
+.icon-italic:before {
+  content: "\eaa0";
+}
+.icon-strikethrough:before {
+  content: "\eaa1";
+}
+.icon-omega:before {
+  content: "\eaa2";
+}
+.icon-sigma:before {
+  content: "\eaa3";
+}
+.icon-page-break:before {
+  content: "\eaa4";
+}
+.icon-superscript:before {
+  content: "\eaa5";
+}
+.icon-subscript:before {
+  content: "\eaa6";
+}
+.icon-superscript2:before {
+  content: "\eaa7";
+}
+.icon-subscript2:before {
+  content: "\eaa8";
+}
+.icon-text-color:before {
+  content: "\eaa9";
+}
+.icon-pagebreak:before {
+  content: "\eaaa";
+}
+.icon-clear-formatting:before {
+  content: "\eaab";
+}
+.icon-table:before {
+  content: "\eaac";
+}
+.icon-table2:before {
+  content: "\eaad";
+}
+.icon-insert-template:before {
+  content: "\eaae";
+}
+.icon-pilcrow:before {
+  content: "\eaaf";
+}
+.icon-ltr:before {
+  content: "\eab0";
+}
+.icon-rtl:before {
+  content: "\eab1";
+}
+.icon-section:before {
+  content: "\eab2";
+}
+.icon-paragraph-left:before {
+  content: "\eab3";
+}
+.icon-paragraph-center:before {
+  content: "\eab4";
+}
+.icon-paragraph-right:before {
+  content: "\eab5";
+}
+.icon-paragraph-justify:before {
+  content: "\eab6";
+}
+.icon-indent-increase:before {
+  content: "\eab7";
+}
+.icon-indent-decrease:before {
+  content: "\eab8";
+}
+.icon-share:before {
+  content: "\eab9";
+}
+.icon-new-tab:before {
+  content: "\eaba";
+}
+.icon-embed:before {
+  content: "\eabb";
+}
+.icon-embed2:before {
+  content: "\eabc";
+}
+.icon-terminal:before {
+  content: "\eabd";
+}
+.icon-share2:before {
+  content: "\eabe";
+}
+.icon-mail:before {
+  content: "\eabf";
+}
+.icon-mail2:before {
+  content: "\eac0";
+}
+.icon-mail3:before {
+  content: "\eac1";
+}
+.icon-mail4:before {
+  content: "\eac2";
+}
+.icon-amazon:before {
+  content: "\eac3";
+}
+.icon-google:before {
+  content: "\eac4";
+}
+.icon-google2:before {
+  content: "\eac5";
+}
+.icon-google3:before {
+  content: "\eac6";
+}
+.icon-google-plus:before {
+  content: "\eac7";
+}
+.icon-google-plus2:before {
+  content: "\eac8";
+}
+.icon-google-plus3:before {
+  content: "\eac9";
+}
+.icon-hangouts:before {
+  content: "\eaca";
+}
+.icon-google-drive:before {
+  content: "\eacb";
+}
+.icon-facebook2:before {
+  content: "\eacc";
+}
+.icon-facebook22:before {
+  content: "\eacd";
+}
+.icon-instagram:before {
+  content: "\eace";
+}
+.icon-whatsapp:before {
+  content: "\eacf";
+}
+.icon-spotify:before {
+  content: "\ead0";
+}
+.icon-telegram:before {
+  content: "\ead1";
+}
+.icon-twitter2:before {
+  content: "\ead2";
+}
+.icon-vine:before {
+  content: "\ead3";
+}
+.icon-vk:before {
+  content: "\ead4";
+}
+.icon-renren:before {
+  content: "\ead5";
+}
+.icon-sina-weibo:before {
+  content: "\ead6";
+}
+.icon-rss:before {
+  content: "\ead7";
+}
+.icon-rss2:before {
+  content: "\ead8";
+}
+.icon-youtube:before {
+  content: "\ead9";
+}
+.icon-youtube2:before {
+  content: "\eada";
+}
+.icon-twitch:before {
+  content: "\eadb";
+}
+.icon-vimeo:before {
+  content: "\eadc";
+}
+.icon-vimeo2:before {
+  content: "\eadd";
+}
+.icon-lanyrd:before {
+  content: "\eade";
+}
+.icon-flickr:before {
+  content: "\eadf";
+}
+.icon-flickr2:before {
+  content: "\eae0";
+}
+.icon-flickr3:before {
+  content: "\eae1";
+}
+.icon-flickr4:before {
+  content: "\eae2";
+}
+.icon-dribbble:before {
+  content: "\eae3";
+}
+.icon-behance:before {
+  content: "\eae4";
+}
+.icon-behance2:before {
+  content: "\eae5";
+}
+.icon-deviantart:before {
+  content: "\eae6";
+}
+.icon-500px:before {
+  content: "\eae7";
+}
+.icon-steam:before {
+  content: "\eae8";
+}
+.icon-steam2:before {
+  content: "\eae9";
+}
+.icon-dropbox:before {
+  content: "\eaea";
+}
+.icon-onedrive:before {
+  content: "\eaeb";
+}
+.icon-github:before {
+  content: "\eaec";
+}
+.icon-npm:before {
+  content: "\eaed";
+}
+.icon-basecamp:before {
+  content: "\eaee";
+}
+.icon-trello:before {
+  content: "\eaef";
+}
+.icon-wordpress:before {
+  content: "\eaf0";
+}
+.icon-joomla:before {
+  content: "\eaf1";
+}
+.icon-ello:before {
+  content: "\eaf2";
+}
+.icon-blogger:before {
+  content: "\eaf3";
+}
+.icon-blogger2:before {
+  content: "\eaf4";
+}
+.icon-tumblr:before {
+  content: "\eaf5";
+}
+.icon-tumblr2:before {
+  content: "\eaf6";
+}
+.icon-yahoo:before {
+  content: "\eaf7";
+}
+.icon-yahoo2:before {
+  content: "\eaf8";
+}
+.icon-tux:before {
+  content: "\eaf9";
+}
+.icon-appleinc:before {
+  content: "\eafa";
+}
+.icon-finder:before {
+  content: "\eafb";
+}
+.icon-android:before {
+  content: "\eafc";
+}
+.icon-windows:before {
+  content: "\eafd";
+}
+.icon-windows8:before {
+  content: "\eafe";
+}
+.icon-soundcloud:before {
+  content: "\eaff";
+}
+.icon-soundcloud2:before {
+  content: "\eb00";
+}
+.icon-skype:before {
+  content: "\eb01";
+}
+.icon-reddit:before {
+  content: "\eb02";
+}
+.icon-hackernews:before {
+  content: "\eb03";
+}
+.icon-wikipedia:before {
+  content: "\eb04";
+}
+.icon-linkedin:before {
+  content: "\eb05";
+}
+.icon-linkedin2:before {
+  content: "\eb06";
+}
+.icon-lastfm:before {
+  content: "\eb07";
+}
+.icon-lastfm2:before {
+  content: "\eb08";
+}
+.icon-delicious:before {
+  content: "\eb09";
+}
+.icon-stumbleupon:before {
+  content: "\eb0a";
+}
+.icon-stumbleupon2:before {
+  content: "\eb0b";
+}
+.icon-stackoverflow:before {
+  content: "\eb0c";
+}
+.icon-pinterest:before {
+  content: "\eb0d";
+}
+.icon-pinterest2:before {
+  content: "\eb0e";
+}
+.icon-xing:before {
+  content: "\eb0f";
+}
+.icon-xing2:before {
+  content: "\eb10";
+}
+.icon-flattr:before {
+  content: "\eb11";
+}
+.icon-foursquare:before {
+  content: "\eb12";
+}
+.icon-yelp:before {
+  content: "\eb13";
+}
+.icon-paypal:before {
+  content: "\eb14";
+}
+.icon-chrome:before {
+  content: "\eb15";
+}
+.icon-firefox:before {
+  content: "\eb16";
+}
+.icon-IE:before {
+  content: "\eb17";
+}
+.icon-edge:before {
+  content: "\eb18";
+}
+.icon-safari:before {
+  content: "\eb19";
+}
+.icon-opera:before {
+  content: "\eb1a";
+}
+.icon-file-pdf:before {
+  content: "\eb1b";
+}
+.icon-file-openoffice:before {
+  content: "\eb1c";
+}
+.icon-file-word:before {
+  content: "\eb1d";
+}
+.icon-file-excel:before {
+  content: "\eb1e";
+}
+.icon-libreoffice:before {
+  content: "\eb1f";
+}
+.icon-html-five:before {
+  content: "\eb20";
+}
+.icon-html-five2:before {
+  content: "\eb21";
+}
+.icon-css3:before {
+  content: "\eb22";
+}
+.icon-git:before {
+  content: "\eb23";
+}
+.icon-codepen:before {
+  content: "\eb24";
+}
+.icon-svg:before {
+  content: "\eb25";
+}
+.icon-IcoMoon:before {
+  content: "\eb26";
+}
+.buttonPlugin.flexSkip_Rewind_10 {
+  background-position: -205% 22%;
+}
+.buttonPlugin.flexSkip_Forward_30 {
+  background-position: -200% 22%;
+}
+.buttonPlugin.arrowSlideNavidator.nextButton {
+  pointer-events: all !important;
+  font-size: 30px;
+  text-shadow: 0px 0px 8px white;
+}
+.buttonPlugin.arrowSlideNavidator.prevButton {
+  pointer-events: all !important;
+  font-size: 30px;
+  text-shadow: 0px 0px 8px white;
+}
+.arrow-slide-navigator-container {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  bottom: 0px;
+  right: 0px;
+}
+.buttonPlugin.audioTags {
+  text-align: center;
+  background-position: -900% -200%;
+  font-size: 0.8em;
+  line-height: 30px;
+  color: black;
+  text-transform: uppercase;
+}
+.videoAudioTrackItem {
+  padding: 10px;
+  font-size: 20px;
+  text-transform: uppercase;
+  cursor: pointer;
+}
+.videoAudioTrackItem.selected {
+  background-color: rgba(211, 211, 211, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #fa8533;
+}
+.videoAudioTrackItem:hover {
+  background-color: #cc0000;
+}
+.blackBoardDiv {
+  position: absolute;
+  /* 16:9 */
+  width: 816px;
+  height: 459px;
+  top: 135px;
+  left: 450px;
+  background-size: 100%;
+}
+.lensClass {
+  background-color: rgba(255, 236, 195, 0.3);
+  position: absolute;
+  border: 1px dotted white;
+}
+.lensContainer img {
+  width: 100% !important;
+}
+#overlayContainer div.lensContainer {
+  pointer-events: all;
+}
+.textBreak {
+  background-color: rgba(128, 128, 128, 0.7);
+  text-align: center;
+  color: white;
+  line-height: 17px;
+  font-size: 18px;
+  padding-top: 10px;
+  padding-bottom: 10px;
+  border-radius: 12px;
+}
+.buttonPlugin.captionsPluginButton {
+  background-position: 0% -100%;
+}
+.captionsPluginContainer {
+  width: 400px;
+  overflow: hidden;
+}
+.captionsBar input {
+  color: black;
+  background-color: rgba(242, 242, 242, 0.78);
+  border-color: #fa8533;
+  width: 49%;
+  margin-bottom: 0px;
+  margin-left: 1px;
+  float: left;
+}
+.captionsBar select {
+  width: 39%;
+  display: inline;
+  background-color: #fa8533;
+  border: 1px solid #ccc;
+  color: white;
+  margin-bottom: 0px;
+  height: 31px;
+}
+.captionsBar button {
+  float: right;
+  width: 7%;
+  min-height: 30px;
+  min-width: 30px;
+  margin-right: 2px;
+  background: url(../images/paella_icons_dark.png);
+  background-position: -400% -100%;
+  background-size: 2000% 1000%;
+  position: static;
+}
+.captionsBar button:hover {
+  background-color: #fa8533;
+}
+.bodyInnerContainer {
+  margin-bottom: 5px;
+  display: block;
+  margin-left: 3px;
+  height: auto;
+}
+.captionsBar input:hover {
+  border-color: #faa166;
+}
+.captionsBar input:focus {
+  border-color: #fa8533;
+}
+.captionsBody {
+  max-height: 280px;
+  overflow-y: scroll;
+  border: 1px solid black;
+}
+.captionsBar input:hover {
+  border-color: #faa166;
+}
+.captionsBar input:focus {
+  border-color: #faa166;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #fa8533;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #fa8533;
+}
+/* CSS OVERLAY */
+.CaptionsOnScreen {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  text-align: center;
+  top: 0;
+  left: 0;
+  z-index: 99;
+}
+.CaptionsOnScreenInner {
+  background-color: rgba(0, 0, 0, 0.6);
+  position: relative;
+  text-align: center;
+  color: white;
+  font-size: 17px;
+  width: 70%;
+  min-height: 20px;
+  margin-left: auto;
+  margin-right: auto;
+  padding: 8px;
+  border-radius: 12px;
+}
+.Highlight {
+  color: #faa166;
+  font-weight: bold;
+}
+#CommentPlugin_Publish_entry_buttons_area {
+  margin-top: 5px;
+}
+.comments_entry {
+  margin: 5px;
+  margin-bottom: 20px;
+  width: 90%;
+}
+.comments_entry_username {
+  color: #438bc5;
+  font-size: 14px;
+  font-family: arial, sans-serif;
+  font-weight: bold;
+}
+.comments_entry_datepublish {
+  color: #999;
+  font-size: 11px;
+  font-family: arial, sans-serif;
+  margin-left: 20px;
+}
+.comments_entry_comment {
+  margin-top: 5px;
+  margin-bottom: 10px;
+}
+.comments_entry_silhouette {
+  float: left;
+  width: 6%;
+}
+.comments_entry_container {
+  vertical-align: top;
+  margin: 10px;
+  margin-left: 50px;
+  width: 100%;
+}
+.comments_entry_container textarea {
+  width: 98%;
+  height: 45px;
+  /*margin-top:10px;*/
+  margin-bottom: 5px;
+  color: #52575c;
+}
+.CommentPlugin_Publish {
+  /*box-shadow: inset 0px 0px 10px 2px rgba(10, 10,10, 0.39); */
+  border-radius: 7px;
+  padding: 10px;
+  padding-bottom: 1px;
+}
+textarea {
+  resize: vertical;
+}
+.reply_button {
+  color: #999;
+  font-size: 12px;
+  font-family: arial, sans-serif;
+  margin-bottom: 15px;
+  font-weight: bold;
+  cursor: pointer;
+}
+.reply_button:hover {
+  color: #438bc5;
+  text-decoration: underline;
+}
+.buttonPlugin.extendedTabAdapterPlugin {
+  background-position: -500% -200%;
+}
+.buttonPluginPopUp.extendedTabAdapterPlugin {
+  background-image: none;
+  background-color: rgba(0, 0, 0, 0);
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer {
+  width: 600px;
+  display: block;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel {
+  display: inline;
+  background-color: rgba(242, 242, 242, 0.78);
+  line-height: 26px;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 7px;
+  padding-bottom: 7px;
+  cursor: pointer;
+  cursor: hand;
+  font-family: sans-serif;
+  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.48);
+  border-radius: 6px 6px 0px 0px;
+  font-size: 12px;
+  margin-left: 1px;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel.enabled {
+  cursor: default;
+  box-shadow: inset 0px 0px 12px rgba(0, 0, 0, 0.9);
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel.disabled {
+  background-color: #e6e6e6;
+  color: black;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer {
+  height: 200px;
+  background-color: rgba(242, 242, 242, 0.78);
+  padding-left: 5px;
+  padding-top: 9px;
+  padding-right: 5px;
+  overflow-y: scroll;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #fa8533;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #faa166;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer > .tabContent.enabled {
+  display: block;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer > .tabContent.disabled {
+  display: none;
+}
+.buttonPlugin.footPrints {
+  background-position: -700% 0%;
+}
+.footPrintsContainer {
+  height: 20px;
+  width: 100%;
+  overflow: hidden;
+  display: block;
+}
+.footPrintsCanvas {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  display: inline-block;
+}
+.frameControlContainer {
+  height: 87px;
+  width: 90%;
+  overflow: hidden;
+  display: inline-block;
+  margin-left: 5%;
+}
+.frameControl.navButton {
+  width: 40px;
+  height: 40px;
+  display: block;
+  cursor: pointer;
+  background-image: url(../images/paella_icons_dark.png);
+  background-size: 2000% 1000%;
+  background-position: 100% 100%;
+  position: absolute;
+  top: 28px;
+}
+.frameControl.navButton.left {
+  background-position: -1600% -100%;
+  opacity: 0.5;
+}
+.frameControl.navButton.right {
+  right: 0px;
+  opacity: 0.5;
+  background-position: -1500% -100%;
+}
+.frameControl.navButton.left:hover {
+  opacity: 1;
+}
+.frameControl.navButton.right:hover {
+  opacity: 1;
+}
+.frameControlContent {
+  height: 100px;
+  overflow: hidden;
+  padding-top: 6px;
+}
+.frameControlItem {
+  width: 140px;
+  cursor: pointer;
+  margin-left: 3px;
+  margin-right: 3px;
+  float: left;
+  opacity: 0.8;
+}
+/*.frameControlItem:hover {
+	width:94px;
+	border: 3px dotted #23ff00;
+	opacity: 1;
+}*/
+.frameControlItem.selected {
+  width: 134px;
+  border: 3px dotted #fa8533;
+  opacity: 1;
+}
+.frameControlItem.current {
+  width: 134px;
+  border: 3px solid #fa8533;
+  opacity: 1;
+}
+.frameControlImage {
+  width: 100%;
+}
+.frameCaption {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  text-align: center;
+  padding: 5px;
+  color: black;
+  text-shadow: 1px 1px 2px #ffffff;
+}
+.showFramesButton {
+  position: absolute;
+  display: block;
+  width: 40px;
+  height: 37px;
+  background-size: 300%;
+  background-image: url(../../resources/images/frame_button.png);
+}
+/*
+.showFramesButton:hover {
+}
+*/
+.showFramesButton_active {
+  position: absolute;
+  display: block;
+  width: 40px;
+  height: 37px;
+  right: 0px;
+  background-size: 300%;
+  background-image: url(../../resources/images/frame_button.png);
+}
+.frameListContainer {
+  background-image: url(../../resources/images/playback_bkg.png);
+}
+.frameThumbnail {
+  /*
+	margin-top:8px;
+	margin-right:3px;
+	margin-bottom:8px;
+	margin-left:3px;
+*/
+  margin: 8px 3px 8px 3px;
+  height: 40px;
+}
+.frameThumbnail:hover {
+  margin: 0px;
+  border: 3px #fa8533 solid;
+  height: 50px;
+}
+.enabledFrameThumbnail {
+  border: 3px #fa8533 solid;
+  height: 50px;
+}
+.enabledFrameThumbnail:hover {
+  border: 3px #fa8533 solid;
+}
+.buttonPlugin.showFullScreenButton {
+  background-position: -900% 0%;
+}
+.buttonPlugin.showFullScreenButton.active {
+  background-position: -1000% 0%;
+}
+.buttonPlugin.helpButton {
+  background-position: -1300% 0%;
+}
+.buttonPlugin.right.liveIndicator {
+  width: 100px;
+  height: 40px;
+  background-image: url(live_video.png);
+  background-size: 100% 100%;
+  margin-top: 5px;
+  margin-right: 5px;
+}
+/*.showMultipleQualitiesPlugin {
+	background-image: url(advanced_button.png);
+	background-size: 300%;
+}
+
+.buttonPluginPopUp.showMultipleQualitiesPlugin {
+	background-image:none;
+}
+
+.selectQuality {
+	padding: 10px;
+}*/
+.buttonPlugin.showMultipleQualitiesPlugin {
+  text-align: center;
+  font-size: 0.8em;
+  line-height: 30px;
+  min-width: 36px;
+}
+.buttonPluginPopUp.showMultipleQualitiesPlugin {
+  background-image: none;
+}
+.selectQuality {
+  padding: 10px;
+}
+.multipleQualityItem {
+  font-size: 19px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  cursor: pointer;
+}
+.multipleQualityItem:hover {
+  background-color: #faa166;
+}
+.multipleQualityItem.selected {
+  color: #fa8533;
+}
+.multipleQualityItem.selected:hover {
+  color: black;
+}
+.buttonPlugin.playButton {
+  background-position: -500% -100%;
+}
+.buttonPlugin.pauseButton {
+  background-position: -100% 0%;
+}
+.playButtonOnScreen {
+  position: absolute;
+  opacity: 0.7;
+  top: 0;
+  left: 0;
+  bottom: 51px;
+  right: 0;
+  z-index: 50;
+  width: 100%;
+  height: 100%;
+}
+.playButtonOnScreenIcon {
+  display: block;
+  cursor: pointer;
+  width: 100%;
+}
+.playbackRateItem {
+  font-size: 19px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  cursor: pointer;
+}
+.playbackRateItem:hover {
+  background-color: #faa166;
+}
+.buttonPlugin.showPlaybackRateButton {
+  text-align: center;
+  line-height: 30px;
+  background-position: -600% -100%;
+  font-size: 1em;
+}
+.playbackRateItem.selected {
+  color: #fa8533;
+}
+.playbackRateItem.selected:hover {
+  color: black;
+}
+.buttonPlugin.showPlaybackRateButton {
+  min-width: 36px;
+}
+.buttonPlugin.rateButtonPlugin {
+  text-align: center;
+  background-position: -700% -200%;
+  font-size: 0.8em;
+  line-height: 40px;
+}
+.buttonPluginPopUp {
+  right: 0px;
+}
+.rateButtons {
+  /*padding: 10px;*/
+  width: 250px;
+}
+.starButton {
+  display: inline-block;
+  width: 26px;
+  height: 26px;
+  font-size: 25px;
+}
+.rateButtonPlugin h4 {
+  margin-left: 10px;
+}
+.rateButtonPlugin h5 {
+  margin-left: 19px;
+}
+.rateButtons .starButton:first-of-type {
+  margin-left: 19px;
+}
+.buttonPlugin.searchButton {
+  background-size: 2000% 1000%;
+  background-position: -900% -100%;
+  display: block;
+}
+.buttonPluginPopUp.searchButton {
+  position: absolute;
+}
+.searchPluginContainer {
+  width: 400px;
+  overflow: hidden;
+}
+.searchBar input {
+  color: black;
+  background-color: rgba(242, 242, 242, 0.78);
+  border-color: #fa8533;
+  width: 96%;
+  margin-bottom: 0px;
+  margin-left: 1px;
+}
+.searchBar input:hover {
+  border-color: #faa166;
+}
+.searchBar input:focus {
+  border-color: #faa166;
+}
+.searchBody {
+  max-height: 280px;
+  overflow-y: scroll;
+  border: 1px solid black;
+}
+.sBodyInnerContainer {
+  display: block;
+  margin-left: 3px;
+  min-height: 70px;
+  border: 1px solid rgba(242, 242, 242, 0.78);
+}
+.hover {
+  background-color: #faa166;
+}
+.redScore {
+  background-color: rgba(255, 0, 0, 0.2);
+}
+.greenScore {
+  background-color: rgba(0, 255, 0, 0.2);
+}
+.sBodyText {
+  width: 100%;
+  display: block;
+  text-align: left;
+}
+.timeSpan {
+  color: #fa8533;
+  margin-right: 5px;
+}
+.TimePicContainer {
+  float: left;
+  width: 24%;
+  text-align: center;
+  margin-right: 5px;
+}
+.TimePicContainer img {
+  width: 100%;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #fa8533;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #faa166;
+}
+svg path,
+svg rect {
+  fill: #FF6700;
+}
+.loader {
+  float: left;
+  display: inline-block;
+  vertical-align: top;
+}
+.noResults {
+  margin: 5px;
+}
+.buttonPlugin.showSocialPluginButton {
+  background-position: -800% 0%;
+}
+.buttonPluginPopUp.showSocialPluginButton {
+  background-image: none;
+}
+.socialItemButton {
+  /*crea el popup*/
+  width: 40px;
+  height: 40px;
+  cursor: pointer;
+  background-image: url(../images/paella_icons_dark.png);
+  background-size: 2000% 1000%;
+  background-position: 0px 0px;
+}
+.socialItemButton.selected {
+  /*background-color: rgba(90,90,90,0.8);
+	border: 3px solid #23ff00;*/
+  background-color: rgba(90, 90, 90, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #fa8533;
+}
+.socialItemButton:hover {
+  background-color: #faa166;
+}
+.socialItemButton.facebook {
+  background-position: -1600% 0%;
+}
+.socialItemButton.twitter {
+  background-position: -1400% 0%;
+}
+.socialItemButton.embed {
+  background-position: -1500% 0%;
+}
+.embedSizeButton {
+  display: inline-block;
+  background-color: #fa8533;
+  border: 1px solid #313135;
+  border-radius: 10px;
+  cursor: pointer;
+  margin-right: 5px;
+  vertical-align: middle;
+  font-size: 14px;
+  text-align: center;
+  color: white;
+}
+.embedSizeInput {
+  background-color: #ffffff;
+  width: 40px;
+  height: 20px;
+  color: #000000;
+  font-size: 12px;
+  margin: 0px;
+  padding: 0px;
+}
+.buttonPlugin.themeChooserPlugin {
+  background-position: -800% -100%;
+}
+.buttonPluginPopUp.themeChooserPlugin {
+  background-image: none;
+  min-width: 40px;
+  width: 120px;
+  text-align: right;
+}
+.buttonPluginPopUp.themeChooserPlugin .themebutton {
+  cursor: pointer;
+  text-align: left;
+  text-transform: capitalize;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+}
+.buttonPluginPopUp.themeChooserPlugin .themebutton:hover {
+  background-color: #faa166;
+}
+.translecturesCaptionsMessageBox {
+  margin-left: auto;
+  margin-right: auto;
+  text-align: center;
+  width: 700px;
+  height: 200px;
+  font-size: 14px;
+}
+.translecturesCaptionsMessageBox .title {
+  color: #635e5e;
+  font-size: 20px;
+  margin-bottom: 20px;
+}
+.translecturesCaptionsMessageBox .authMethodsContainer {
+  margin-left: auto;
+  margin-right: auto;
+  width: 500px;
+  height: 200px;
+  margin-top: 10px;
+  position: relative;
+}
+.translecturesCaptionsMessageBox .authMethodsContainer .authMethod {
+  display: inline-block;
+  width: 200px;
+  height: 200px;
+  /*
+	position:absolute;
+	left: 0px;
+*/
+}
+.buttonPlugin.left.videoData {
+  height: auto;
+  width: 100%;
+  margin-top: 5px;
+  margin-left: auto;
+  margin-right: auto;
+  background-color: rgba(0, 0, 0, 0.6);
+}
+.buttonPlugin.left.videoData h1 {
+  color: white;
+  padding: 0px 0px 0px 20px;
+  margin: 0px;
+}
+@media (max-width: 400px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 16px;
+    line-height: 24px;
+  }
+}
+@media (min-width: 401px) and (max-width: 800px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 20px;
+    line-height: 34px;
+  }
+}
+@media (min-width: 801px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 30px;
+    line-height: 44px;
+  }
+}
+.buttonPlugin.right.videoZoom {
+  width: 200px;
+  background-image: none;
+  position: absolute;
+  right: 0px;
+  top: 0px;
+  text-align: right;
+}
+.buttonPlugin.right.videoZoom:hover {
+  background-color: transparent !important;
+}
+.buttonPlugin.right.videoZoom:active {
+  background-color: transparent !important;
+}
+.zoom-thumbnail {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 0px;
+  left: 0px;
+}
+.zoom-container {
+  width: 160px;
+  height: 90px;
+  margin: 5px;
+  box-sizing: border-box;
+  box-shadow: 0px 0px 3px 0px black;
+  border-radius: 2px;
+  position: relative;
+  right: 0px;
+}
+.zoom-rect {
+  background-color: rgba(255, 255, 255, 0.5);
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  border: 1px solid #0e0e0e;
+}
+/* The canvas "freeze frame" to overlay video element, instead of flex side aligned */
+.freezeFrame {
+  align-self: center;
+  position: absolute;
+}
+.videoZoomButton {
+  z-index: 1;
+  margin-left: 2px;
+  margin-right: 2px;
+  margin-top: 4px;
+  opacity: 0.2;
+  background: white;
+  font-size: 2em;
+  padding: 0px 4px 0px 4px;
+  box-shadow: 2px 2px 5px 0px black;
+  width: 30px;
+  height: 30px;
+  position: relative;
+  left: 40%;
+}
+.videoZoomButton:hover {
+  opacity: 0.999;
+}
+.videoZoomButton:active {
+  opacity: 0.999;
+}
+@media (max-width: 600px) {
+  .buttonPlugin.right.videoZoom {
+    width: 89px;
+  }
+  .zoom-container {
+    width: 80px;
+    height: 45px;
+  }
+}
+@media (max-width: 800px) and (min-width: 601px) {
+  .buttonPlugin.right.videoZoom {
+    width: 100px;
+  }
+  .zoom-container {
+    width: 120px;
+    height: 68px;
+  }
+}
+.videoZoomToolbarItem {
+  width: 30px;
+  height: 30px;
+  cursor: pointer;
+  margin-left: 5px;
+  margin-right: 5px;
+  margin-top: 5px;
+  font-size: 20px;
+}
+.buttonPluginPopUp.showViewModeButton {
+  background-image: none;
+}
+.buttonPlugin.showViewModeButton {
+  background-position: -1100% 0%;
+}
+.viewModeItemButton {
+  background-image: url(../images/paella_icons_dark.png);
+  width: 80px;
+  height: 40px;
+  cursor: pointer;
+  background-size: 100% 100% !important;
+  background-position: 0px 0px ! important;
+  background-color: white;
+}
+.viewModeItemButton:hover {
+  background-color: #faa166;
+}
+.viewModeItemButton.selected {
+  /*background-position: 78px 0;*/
+  background-color: rgba(211, 211, 211, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #fa8533;
+}
+.viewModeItemButton.slide_professor {
+  background-position: 80px -80px;
+}
+.viewModeItemButton.professor_slide {
+  background-position: 80px -120px;
+}
+.viewModeItemButton.professor {
+  background-position: 80px -40px;
+}
+.viewModeItemButton.slide_over_professor {
+  background-position: 80px -200px;
+}
+.viewModeItemButton.slide_over_professor_right {
+  background-position: 80px -160px;
+}
+.viewModeItemButton.s_p_blackboard2 {
+  background-position: 80px -240px;
+}
+.viewModeItemButton.professor_over_slide {
+  background-position: 80px -320px;
+}
+.viewModeItemButton.professor_over_slide_right {
+  background-position: 80px -280px;
+}
+.viewModeItemButton.slide {
+  background-position: 80px 0px;
+}
+.viewModeItemButton.chroma {
+  background-position: 80px -360px;
+}
+.buttonPlugin.volumeRangeButton.mute {
+  background-position: -300% 0%;
+}
+.buttonPlugin.volumeRangeButton.max {
+  background-position: -600% 0%;
+}
+.buttonPlugin.volumeRangeButton.med {
+  background-position: -500% 0%;
+}
+.buttonPlugin.volumeRangeButton.min {
+  background-position: -400% 0%;
+}
+.buttonPluginPopUp.volumeRangeButton {
+  position: absolute;
+  /* right: -220px; */
+}
+.videoRangeContainer {
+  width: 260px;
+}
+span.videoRangeButton.expandable-content {
+  padding-top: 12px;
+}
+/* Range control */
+.volumeRangeButton input[type=range] {
+  display: inline-block;
+  width: 80px;
+  height: 18px;
+}
+input[type=range] {
+  -webkit-appearance: none;
+  width: 100%;
+  margin: 6.2px 0;
+  background-color: transparent;
+}
+input[type=range]:focus {
+  outline: none;
+}
+input[type=range]::-webkit-slider-runnable-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+  background: #ffffff;
+  border-radius: 1.9px;
+  border: 1.2px solid #010101;
+}
+input[type=range]::-webkit-slider-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 17px;
+  width: 16px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+  -webkit-appearance: none;
+  margin-top: -7.4px;
+}
+input[type=range]:focus::-webkit-slider-runnable-track {
+  background: #ffffff;
+}
+input[type=range]::-moz-range-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+  background: #ffffff;
+  border-radius: 1.9px;
+  border: 1.2px solid #010101;
+}
+input[type=range]::-moz-range-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 17px;
+  width: 16px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+}
+input[type=range]::-ms-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  background: transparent;
+  border-color: transparent;
+  color: transparent;
+}
+input[type=range]::-ms-fill-lower {
+  background: #f2f2f2;
+  border: 1.2px solid #010101;
+  border-radius: 3.8px;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+}
+input[type=range]::-ms-fill-upper {
+  background: #ffffff;
+  border: 1.2px solid #010101;
+  border-radius: 3.8px;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+}
+input[type=range]::-ms-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 14px;
+  width: 14px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+  margin-top: -2px;
+}
+input[type=range]:focus::-ms-fill-lower {
+  background: #ffffff;
+}
+input[type=range]:focus::-ms-fill-upper {
+  background: #ffffff;
+}
+.cc-window {
+  opacity: 1;
+  transition: opacity 1s ease;
+}
+.cc-window.cc-invisible {
+  opacity: 0;
+}
+.cc-animate.cc-revoke {
+  transition: transform 1s ease;
+}
+.cc-animate.cc-revoke.cc-top {
+  transform: translateY(-2em);
+}
+.cc-animate.cc-revoke.cc-bottom {
+  transform: translateY(2em);
+}
+.cc-animate.cc-revoke.cc-active.cc-bottom,
+.cc-animate.cc-revoke.cc-active.cc-top,
+.cc-revoke:hover {
+  transform: translateY(0);
+}
+.cc-grower {
+  max-height: 0;
+  overflow: hidden;
+  transition: max-height 1s;
+}
+.cc-link,
+.cc-revoke:hover {
+  text-decoration: underline;
+}
+.cc-revoke,
+.cc-window {
+  position: fixed;
+  overflow: hidden;
+  box-sizing: border-box;
+  font-family: Helvetica, Calibri, Arial, sans-serif;
+  font-size: 16px;
+  line-height: 1.5em;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-wrap: nowrap;
+  flex-wrap: nowrap;
+  z-index: 9999;
+}
+.cc-window.cc-static {
+  position: static;
+}
+.cc-window.cc-floating {
+  padding: 2em;
+  max-width: 24em;
+  -ms-flex-direction: column;
+  flex-direction: column;
+}
+.cc-window.cc-banner {
+  padding: 1em 1.8em;
+  width: 100%;
+  -ms-flex-direction: row;
+  flex-direction: row;
+}
+.cc-revoke {
+  padding: 0.5em;
+}
+.cc-header {
+  font-size: 18px;
+  font-weight: 700;
+}
+.cc-btn,
+.cc-close,
+.cc-link,
+.cc-revoke {
+  cursor: pointer;
+}
+.cc-link {
+  opacity: 0.8;
+  display: inline-block;
+  padding: 0.2em;
+}
+.cc-link:hover {
+  opacity: 1;
+}
+.cc-link:active,
+.cc-link:visited {
+  color: initial;
+}
+.cc-btn {
+  display: block;
+  padding: 0.4em 0.8em;
+  font-size: 0.9em;
+  font-weight: 700;
+  border-width: 2px;
+  border-style: solid;
+  text-align: center;
+  white-space: nowrap;
+}
+.cc-highlight .cc-btn:first-child {
+  background-color: transparent;
+  border-color: transparent;
+}
+.cc-highlight .cc-btn:first-child:focus,
+.cc-highlight .cc-btn:first-child:hover {
+  background-color: transparent;
+  text-decoration: underline;
+}
+.cc-close {
+  display: block;
+  position: absolute;
+  top: 0.5em;
+  right: 0.5em;
+  font-size: 1.6em;
+  opacity: 0.9;
+  line-height: 0.75;
+}
+.cc-close:focus,
+.cc-close:hover {
+  opacity: 1;
+}
+.cc-revoke.cc-top {
+  top: 0;
+  left: 3em;
+  border-bottom-left-radius: 0.5em;
+  border-bottom-right-radius: 0.5em;
+}
+.cc-revoke.cc-bottom {
+  bottom: 0;
+  left: 3em;
+  border-top-left-radius: 0.5em;
+  border-top-right-radius: 0.5em;
+}
+.cc-revoke.cc-left {
+  left: 3em;
+  right: unset;
+}
+.cc-revoke.cc-right {
+  right: 3em;
+  left: unset;
+}
+.cc-top {
+  top: 1em;
+}
+.cc-left {
+  left: 1em;
+}
+.cc-right {
+  right: 1em;
+}
+.cc-bottom {
+  bottom: 1em;
+}
+.cc-floating > .cc-link {
+  margin-bottom: 1em;
+}
+.cc-floating .cc-message {
+  display: block;
+  margin-bottom: 1em;
+}
+.cc-window.cc-floating .cc-compliance {
+  -ms-flex: 1 0 auto;
+  flex: 1 0 auto;
+}
+.cc-window.cc-banner {
+  -ms-flex-align: center;
+  align-items: center;
+}
+.cc-banner.cc-top {
+  left: 0;
+  right: 0;
+  top: 0;
+}
+.cc-banner.cc-bottom {
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.cc-banner .cc-message {
+  display: block;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+  max-width: 100%;
+  margin-right: 1em;
+}
+.cc-compliance {
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-align: center;
+  align-items: center;
+  -ms-flex-line-pack: justify;
+  align-content: space-between;
+}
+.cc-floating .cc-compliance > .cc-btn {
+  -ms-flex: 1;
+  flex: 1;
+}
+.cc-btn + .cc-btn {
+  margin-left: 0.5em;
+}
+@media print {
+  .cc-revoke,
+  .cc-window {
+    display: none;
+  }
+}
+@media screen and (max-width: 900px) {
+  .cc-btn {
+    white-space: normal;
+  }
+}
+@media screen and (max-width: 414px) and (orientation: portrait), screen and (max-width: 736px) and (orientation: landscape) {
+  .cc-window.cc-top {
+    top: 0;
+  }
+  .cc-window.cc-bottom {
+    bottom: 0;
+  }
+  .cc-window.cc-banner,
+  .cc-window.cc-floating,
+  .cc-window.cc-left,
+  .cc-window.cc-right {
+    left: 0;
+    right: 0;
+  }
+  .cc-window.cc-banner {
+    -ms-flex-direction: column;
+    flex-direction: column;
+  }
+  .cc-window.cc-banner .cc-compliance {
+    -ms-flex: 1 1 auto;
+    flex: 1 1 auto;
+  }
+  .cc-window.cc-floating {
+    max-width: none;
+  }
+  .cc-window .cc-message {
+    margin-bottom: 1em;
+  }
+  .cc-window.cc-banner {
+    -ms-flex-align: unset;
+    align-items: unset;
+  }
+  .cc-window.cc-banner .cc-message {
+    margin-right: 0;
+  }
+}
+.cc-floating.cc-theme-classic {
+  padding: 1.2em;
+  border-radius: 5px;
+}
+.cc-floating.cc-type-info.cc-theme-classic .cc-compliance {
+  text-align: center;
+  display: inline;
+  -ms-flex: none;
+  flex: none;
+}
+.cc-theme-classic .cc-btn {
+  border-radius: 5px;
+}
+.cc-theme-classic .cc-btn:last-child {
+  min-width: 140px;
+}
+.cc-floating.cc-type-info.cc-theme-classic .cc-btn {
+  display: inline-block;
+}
+.cc-theme-edgeless.cc-window {
+  padding: 0;
+}
+.cc-floating.cc-theme-edgeless .cc-message {
+  margin: 2em 2em 1.5em;
+}
+.cc-banner.cc-theme-edgeless .cc-btn {
+  margin: 0;
+  padding: 0.8em 1.8em;
+  height: 100%;
+}
+.cc-banner.cc-theme-edgeless .cc-message {
+  margin-left: 1em;
+}
+.cc-floating.cc-theme-edgeless .cc-btn + .cc-btn {
+  margin-left: 0;
+}
+.paella-profile-button {
+  background-color: lightgray;
+  border: none;
+  border-radius: 10%;
+  box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.9);
+}
+.paella-profile-button:hover {
+  background-color: #9b9b9b;
+}
+.paella-profile-button:active {
+  background-color: #000000;
+}
+.buttonPlugin.AirPlayButton {
+  background-position: -1100% -100%;
+}
+.buttonPlugin.AirPlayButton.not-available {
+  opacity: 0.4;
+}
+.buttonPlugin.legal {
+  pointer-events: all;
+  padding-right: 5px;
+  height: 20px;
+  text-align: right;
+  padding: 1px;
+  margin: 1px;
+  margin-right: 12px;
+  margin-top: -7px;
+  margin-bottom: 4px;
+  width: auto;
+}
+.buttonPlugin.legal a {
+  color: lightgrey !important;
+  text-decoration: underline !important;
+}
+.buttonPlugin.legal a:hover {
+  background-color: transparent !important;
+  font-weight: bold !important;
+}
+.buttonPlugin.legal:hover {
+  background-color: transparent !important;
+}
+.buttonPlugin.PIPModeButton {
+  background-position: -1000% -100%;
+}
+.related-video-container {
+  z-index: 5;
+  background-color: rgba(255, 255, 255, 0.7);
+}
+.related-video-container .related-video-link {
+  width: 30%;
+  overflow: hidden;
+  display: block;
+  background-color: white;
+  padding: 3px;
+  box-shadow: 1px 1px 3px 0px black;
+  position: absolute;
+  pointer-events: all;
+}
+.related-video-container .related-video-link.related-video-single {
+  width: 50%;
+  left: 25%;
+  top: 30%;
+}
+.related-video-container .related-video-link.related-video-dual-1 {
+  width: 30%;
+  left: 10%;
+  top: 30%;
+}
+.related-video-container .related-video-link.related-video-dual-2 {
+  width: 30%;
+  right: 10%;
+  top: 30%;
+}
+.related-video-container .related-video-link img {
+  width: 100%;
+}
+.related-video-container .related-video-link p {
+  width: 100%;
+  text-align: center;
+}
+.buttonPlugin.showEditorButton {
+  pointer-events: all;
+}
+.buttonPluginPopUp.videoZoomToolbar {
+  width: 50px;
+  text-align: center;
+}
+.buttonPlugin.right.videoZoomToolbar i.button-icon.icon-mini-videocamera {
+  font-size: 27px;
+  margin-left: -2px;
+}
+.buttonPlugin.right.videoZoomToolbar i.button-icon.icon-mini-zoom-in {
+  font-size: 29px;
+  margin-left: -6px;
+}
+.autoTrackingActivated {
+  color: red !important;
+}
+html {
+  margin: 0px;
+}
+body {
+  font-family: 'Ubuntu', sans-serif;
+  margin: 0px;
+}
+pre {
+  padding: 20px;
+  border-bottom: 2px solid #cc0000;
+  border-top: 2px solid #cc0000;
+}
+iframe {
+  margin-left: auto;
+  margin-right: auto;
+  display: block;
+}
+h2 {
+  color: #909090;
+}
+h1 {
+  color: #cc0000;
+}
+.alignCenter {
+  display: block;
+  margin-right: auto;
+  margin-left: auto;
+  max-width: 90%;
+}
+.image {
+  background-size: 100% auto;
+  background-repeat: no-repeat;
+}
+#logo {
+  background-image: url(logo_paella.png);
+  width: 140px;
+  height: 140px;
+  float: left;
+}
+.pageHeader {
+  background-color: white;
+  padding: 20px;
+  border-bottom: 1px solid #cc0000;
+  height: 170px;
+}
+.content {
+  width: 100%;
+  background-color: white;
+  margin-left: auto;
+  margin-right: auto;
+  max-width: 1100px;
+  padding-left: 30px;
+  padding-right: 30px;
+}
+.content.page {
+  margin-top: 0px;
+  padding-top: 30px;
+  padding-bottom: 100px;
+}
+#headerText {
+  font-family: 'Varela Round', sans-serif;
+  font-size: 60pt;
+  display: block;
+  width: 100%;
+  line-height: 90px;
+  margin-left: 157px;
+}
+#headerSubtitle {
+  display: block;
+  width: 100%;
+  margin-left: 160px;
+  font-size: 28px;
+  color: gray;
+}
+.logoGroup {
+  width: 660px;
+  float: left;
+  margin-top: 20px;
+}
+a {
+  color: #fa8528;
+}
+a:visited {
+  color: #fa8528;
+}
+a:hover {
+  color: #fba352;
+}
+a:active {
+  color: #ffb055;
+}
+.linkButton {
+  font-size: 20px;
+  color: white;
+  background-color: #fa8528;
+  padding: 20px;
+  border-radius: 5px;
+  border: 1.6pt solid #BA631E;
+  box-shadow: inset -3px -5px 10px 0px #D9711D;
+  display: inline-block;
+  text-decoration: none;
+  text-align: center;
+}
+.linkButton.small {
+  padding: 10px;
+  font-size: 12px;
+}
+.linkButton:hover {
+  color: white;
+  background-color: #FFA863;
+}
+.linkButton:active {
+  color: white;
+  box-shadow: inset 3px 5px 20px 0px #D9711D;
+}
+.buttonGroup#downloads {
+  width: 233px;
+  padding-top: 5px;
+  margin-bottom: 30px;
+  margin-left: auto;
+  margin-right: auto;
+}
+#githubLink {
+  display: block;
+}
+#resourcesLink {
+  display: block;
+}
+#downloadPaella3 {
+  display: block;
+  width: 189px;
+  margin-top: 55px;
+  margin-left: auto;
+  margin-right: auto;
+  color: white;
+}
+.downloadGroup {
+  width: 250px;
+  float: right;
+}
+.footerText {
+  display: inline-block;
+  height: 50px;
+  vertical-align: top;
+  margin-right: 10px;
+  font-size: 10px;
+}
+.sponsorLogo {
+  width: 100px;
+  display: inline-block;
+}
+.content.footer {
+  border-top: 4px solid #fa8528;
+  padding-top: 10px;
+}
+.menu {
+  margin-top: 165px;
+}
+.menuItem {
+  list-style-type: none;
+  display: inline;
+  margin-right: 30px;
+}
+.menuItemLink {
+  cursor: pointer;
+}
+.menuItemLink.current {
+  color: gray;
+}
+.element {
+  margin-left: auto;
+  display: block;
+  margin-right: auto;
+  width: 65%;
+}
+.imgen {
+  margin-left: auto;
+  width: 100%;
+}
+.txtblock {
+  color: black;
+  font-size: large;
+  font-family: 'Istok Web', sans-serif;
+  font-style: oblique;
+}
diff --git a/src/main/webapp/static/js/paella/player/resources/style/style_light_small.css b/src/main/webapp/static/js/paella/player/resources/style/style_light_small.css
new file mode 100644
index 0000000000000000000000000000000000000000..3c3003be8ce5e4e0d7b3253103f795fe00326718
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/style_light_small.css
@@ -0,0 +1,3990 @@
+/* Dark icons over light background */
+body {
+  height: 100%;
+  width: 100%;
+  font-family: Verdana, sans-serif;
+  font-size: 12px;
+  background: #fafafa;
+  touch-action: none;
+}
+a {
+  color: #636363;
+}
+a:hover {
+  color: #a4a4a4;
+}
+a:active {
+  color: #3d3d3d;
+}
+a:visited {
+  color: #636363;
+}
+.videoWrapper {
+  -moz-box-shadow: 2px 2px 6px #000;
+  -webkit-box-shadow: 2px 2px 6px #000;
+  box-shadow: 2px 2px 6px #000;
+  background: black;
+}
+div {
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.buttonPlugin {
+  cursor: pointer;
+  padding-right: 0px;
+  padding-left: 0px;
+  background-origin: border-box;
+  position: relative;
+  display: block;
+  float: left;
+  align-items: stretch;
+  background-color: transparent;
+  border: none;
+  box-sizing: border-box;
+  min-width: 20px;
+  height: 20px;
+  margin-left: 0px;
+  margin-right: 0px;
+  margin-top: 0px;
+  color: white;
+  text-align: center;
+}
+button,
+div i.button-icon {
+  color: black;
+  font-size: 12px;
+  line-height: 20px;
+  position: absolute;
+  top: 0px;
+  left: 0px;
+}
+span.expandable-content {
+  color: white;
+  width: 80px;
+  display: block;
+  float: left;
+}
+.buttonPlugin.expandable-content {
+  background-color: transparent !important;
+}
+.buttonPlugin {
+  position: relative;
+}
+.button-text {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  top: 0px;
+  bottom: 0px;
+  text-align: center;
+  line-height: 15px;
+  z-index: 1;
+}
+i.button-icon.icon-screen {
+  font-size: 14.64px;
+  padding-left: 0px;
+}
+.play-button-on-screen {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  position: absolute;
+  opacity: 0.7;
+  top: 0;
+  left: 0;
+  bottom: 51px;
+  right: 0;
+  z-index: 50;
+  width: 100%;
+  height: 100%;
+}
+.play-button-on-screen .play-icon {
+  width: 300px;
+  height: 300px;
+  background-image: url(../images/play.svg);
+}
+@media screen and (max-width: 1000px) {
+  .play-button-on-screen .play-icon {
+    width: 300px;
+    height: 300px;
+  }
+}
+@media screen and (max-width: 700px) {
+  .play-button-on-screen .play-icon {
+    width: 150px;
+    height: 150px;
+  }
+}
+@media screen and (max-width: 400px) {
+  .play-button-on-screen .play-icon {
+    width: 80px;
+    height: 80px;
+  }
+}
+#playerContainer {
+  background-color: white;
+}
+#playerContainer.modalVisible > :not(.modalMessageContainer) {
+  filter: blur(10px);
+}
+#playerContainer:-webkit-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-moz-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-ms-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:-o-full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#playerContainer:full-screen {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+}
+#ignoreBrowserCheckLink {
+  color: black;
+  text-decoration: underline;
+}
+.alt-scroll-message-container {
+  position: absolute;
+  left: 0px;
+  top: 0px;
+  bottom: 0px;
+  right: 0px;
+  background-color: rgba(0, 0, 0, 0.45);
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-size: 20px;
+  color: white;
+  text-shadow: 1px 1px 4px black;
+}
+.alt-scroll-message-container p {
+  text-align: center;
+}
+.playbackControls {
+  background-color: rgba(242, 242, 242, 0.78);
+  background-image: none;
+  background-size: auto;
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  height: 34px;
+  z-index: 100;
+}
+.playbackBarPlugins {
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  height: 20px;
+  font-size: 6px;
+  overflow: hidden;
+}
+.playbackBar {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  height: 12px;
+  background-color: rgba(125, 125, 125, 0.5);
+  border-bottom: 1px solid rgba(90, 90, 90, 0.6);
+  border-top: 1px solid rgba(90, 90, 90, 0.6);
+  cursor: pointer;
+}
+.playbackBar:focus {
+  box-shadow: inset 0px 0px 5px 0px #faa166;
+  outline: none;
+}
+.playbackBarFull {
+  height: 10px;
+  background-color: #fa8533;
+  background: #fa8533;
+}
+.playbackBarFull.disabled {
+  opacity: 0.2;
+}
+.buttonPlugin.left {
+  float: left;
+}
+.buttonPlugin.right {
+  float: right;
+}
+.buttonPlugin:hover {
+  background-color: #faa166;
+}
+.buttonPlugin:focus {
+  box-shadow: inset 0px 0px 5px 0px #faa166;
+  outline: none;
+}
+.buttonPlugin.selected {
+  background-color: #fa8533;
+}
+.popUpPluginContainer {
+  position: absolute;
+  right: 0px;
+  z-index: 110;
+  color: black;
+}
+.buttonPluginPopUp {
+  background-color: rgba(242, 242, 242, 0.78);
+  position: absolute;
+  bottom: -12px;
+}
+.timelinePluginContainer {
+  position: absolute;
+  left: 0px;
+  width: 100%;
+  background-color: rgba(242, 242, 242, 0.78);
+  bottom: 34px;
+  color: black;
+}
+.buttonTimeLine {
+  position: absolute;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+}
+/* old style time control */
+.timeControlOld {
+  color: white;
+  display: block;
+  position: relative;
+  width: 69px;
+  height: 44px;
+  background-size: 100%;
+  background-image: url(../images/time_monitor.png);
+  font-size: 10px;
+  padding-top: 11px;
+  background-repeat: no-repeat;
+  bottom: 70px;
+  font-family: verdana;
+  text-align: center;
+  z-index: 100;
+}
+.timeControl {
+  color: white;
+  display: block;
+  position: relative;
+  width: 69px;
+  height: 10px;
+  font-size: 10px;
+  background-repeat: no-repeat;
+  padding-left: 5px;
+  font-family: verdana;
+  text-align: left;
+  z-index: 100;
+  line-height: 10px;
+  margin-top: -10px;
+  cursor: pointer;
+}
+.editControlContainer {
+  z-index: 20;
+}
+.paellaLoadErrorContainer {
+  width: 1000px;
+  margin: auto;
+  margin-top: 200px;
+  text-align: center;
+  padding-top: 80px;
+  padding-bottom: 80px;
+  background-color: rgba(220, 228, 234, 0.9);
+  border-radius: 22px;
+  box-shadow: 1px 1px 8px black;
+  font-family: sans-serif;
+  font-size: 20px;
+}
+.modalMessageContainer {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+.messageContainer {
+  width: 95%;
+  height: 95%;
+  margin-top: 2%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  vertical-align: middle;
+  font-family: sans-serif;
+  padding-left: 80px;
+  padding-right: 80px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+}
+.frameContainer {
+  width: 95%;
+  height: 95%;
+  margin-top: 2%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  /*vertical-align: middle;*/
+  font-family: sans-serif;
+  padding-left: 80px;
+  padding-right: 80px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+  display: block;
+}
+.errorContainer {
+  width: 55%;
+  min-height: 55%;
+  margin-top: 22%;
+  position: relative;
+  margin: auto;
+  text-align: center;
+  vertical-align: middle;
+  padding-left: 120px;
+  padding-right: 60px;
+  background-color: white;
+  border-radius: 2px;
+  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.29);
+  font-family: sans-serif;
+  font-size: 20px;
+  padding-top: 40px;
+  padding-bottom: 40px;
+  border: 7px solid maroon;
+  color: maroon;
+  font-weight: bold;
+  background-image: url(../images/error_icon.png);
+  background-size: 10%;
+  background-repeat: no-repeat;
+  background-position: 50px 40px;
+}
+.paella_messageContainer_closeButton {
+  /*background-image: url(../images/close_button.png);*/
+  width: 20px;
+  height: 20px;
+  position: absolute;
+  display: block;
+  top: 10px;
+  right: 10px;
+  z-index: 999999999;
+  border-radius: 20px;
+}
+.paella_messageContainer_closeButton:hover {
+  color: white;
+  background-color: black;
+}
+.paella_messageContainer_closeButton:active {
+  background-position: 20px;
+}
+.overlayContainer.background {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+#overlayContainer {
+  pointer-events: none;
+}
+#overlayContainer div {
+  pointer-events: none;
+}
+.videoLoaderOverlay {
+  background-color: black;
+}
+.videoOverlayButtonPlugins {
+  z-index: 100;
+  position: absolute;
+  right: 0px;
+  left: 0px;
+  top: 0px;
+  pointer-events: none;
+}
+.divTimeOverlay {
+  position: fixed;
+  background-color: rgba(242, 242, 242, 0.78);
+  color: white;
+  text-align: center;
+  padding-right: 3px;
+  padding-left: 3px;
+  padding-top: 1px;
+  text-shadow: 1px 1px #888888;
+  z-index: 100;
+}
+.divTimeImageOverlay {
+  position: fixed;
+  background-color: rgba(242, 242, 242, 0.78);
+  z-index: 99;
+  width: 256px;
+  -webkit-background-size: cover;
+  -moz-background-size: cover;
+  -o-background-size: cover;
+  background-size: contain;
+}
+.imgOverlay {
+  height: 100%;
+  width: 100%;
+  max-width: none;
+  border: 1px solid rgba(242, 242, 242, 0.78);
+}
+.videoPosterFrameImage {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  height: 100%;
+  width: 100%;
+}
+.playerContainer_controls_playback_playbackBar_canvas {
+  overflow: hidden;
+  position: absolute;
+}
+#playerContainer_controls_playback_playbackBar {
+  overflow: hidden;
+  background-color: #333333;
+}
+.login-link {
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+video::-internal-media-controls-download-button {
+  display: none;
+}
+video::-webkit-media-controls-enclosure {
+  overflow: hidden;
+}
+video::-webkit-media-controls-panel {
+  width: calc(100% + 8px);
+  /* Adjust as needed */
+}
+#lazyLoadThumbnailContainer {
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  width: 100%;
+  z-index: 20;
+  /* Over the video contaniner and video layout buttons, but under the play button */
+}
+.dimmed-element {
+  filter: blur(4px);
+}
+/* TODO: Extract this CSS to editor plugins */
+.editorTrackItem.mainTrackTrim {
+  background-image: url(../images/main_track_bkg.png);
+  background-size: 56px 100%;
+}
+/* END EXTRACT */
+/* Begin new editor */
+a.btn {
+  color: #f3f3f3;
+}
+.listItem {
+  color: #f3f3f3;
+}
+.editorContainer {
+  position: fixed;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  width: 100%;
+  height: 100%;
+}
+.paellaEditorRightBar {
+  position: fixed;
+  right: 0px;
+  top: 0px;
+  background-color: #4f4f4f;
+  box-shadow: 1px -4px 12px black;
+}
+.paellaEditorBottomBar {
+  position: fixed;
+  right: 0px;
+  bottom: 0px;
+  left: 0px;
+  background-color: #4f4f4f;
+  box-shadow: 1px 1px 12px black;
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.paellaEditorRightBarContent {
+  padding-left: 10px;
+  padding-right: 10px;
+  font-size: 11px;
+}
+.editorTimelineContainer {
+  margin-top: -21px;
+  position: relative;
+  overflow: auto;
+}
+.editorTimelineContent {
+  background-image: url(../images/light_background.png);
+  top: 0px;
+  box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.7);
+  position: relative;
+}
+.editorTimeLineTimeMarks {
+  position: absolute;
+  top: 0px;
+  height: 20px;
+  left: 0px;
+  right: 0px;
+  z-index: 1;
+  padding-left: 3px;
+  background-image: url(../images/timeline_tracks_bkg.png);
+}
+.editorTimeLineMark {
+  float: left;
+  /*	background-color: rgb(61,62,62);*/
+  font-size: 9px;
+  height: 20px;
+  line-height: 18px;
+}
+.editorTimeLineMark.odd {
+  /*	background-color: rgb(73,82,82);*/
+}
+.editorTrackListItem.master {
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  top: 38px;
+  height: 51px;
+}
+.editorTrackListItem.secondary {
+  height: 23px;
+  position: relative;
+}
+.editorTrackListItem.secondary.track0 {
+  margin-top: 90px;
+}
+.editorTrackItem {
+  position: absolute;
+  height: 97%;
+  border-radius: 5px;
+  border: 1px solid #6f6f6f;
+  overflow: hidden;
+}
+.editorTrackItemResizer {
+  width: 2px;
+  top: 20%;
+  bottom: 23%;
+  position: absolute;
+  overflow: hidden;
+  cursor: pointer;
+}
+.editorTrackItemResizer.left {
+  border-right: 8px double #7c7c7c;
+  left: 0px;
+}
+.editorTrackItemResizer.right {
+  border-left: 8px double #7c7c7c;
+  right: 0px;
+}
+.editorTrackItemMoveArea {
+  position: absolute;
+  left: 18px;
+  right: 18px;
+  top: 0px;
+  bottom: 0px;
+  cursor: pointer;
+}
+.editorTrackItemLabel {
+  margin-left: 20px;
+  margin-right: 20px;
+  height: 100%;
+  line-height: 48px;
+  cursor: pointer;
+}
+.editorTrackItemLock {
+  top: 5%;
+  position: absolute;
+}
+.editorTrackItemLabel.secondary {
+  line-height: 23px;
+}
+.editorTimeLineMark.last {
+  overflow: hidden;
+}
+.editorTimeLineTracks {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  padding-bottom: 20px;
+  background-image: url(../images/timeline_tracks_bkg.png);
+}
+.editorBottomToolbarContainer {
+  background-color: #52595F;
+  height: 27px;
+}
+.zoomDropup {
+  margin-top: 2px;
+  float: right;
+  margin-right: 10px;
+}
+.navbar.tiny {
+  font-size: 11px;
+}
+.navbar-inner.tiny {
+  min-height: 21px;
+}
+.navbar .nav > li {
+  line-height: 11px;
+}
+.navbar .nav > li > a.rightBarPlugin {
+  padding: 5px 5px 5px;
+}
+.editorToolbar_selectedToolUtils {
+  margin-left: 10px;
+}
+.editorToolbarPlaybackControls {
+  position: absolute;
+  left: 45%;
+}
+.editorTimelineCursor {
+  position: absolute;
+  height: 100%;
+  width: 1px;
+  border-left: 1px dashed rgba(238, 0, 12, 0.92);
+  left: 352px;
+  z-index: 0;
+  top: 0px;
+  line-height: 54px;
+  font-size: 11px;
+  padding-left: 3px;
+}
+.editorTimelineCursor.currentTime {
+  border-left: 1px solid white;
+}
+.editorRightBarTabIcon {
+  /*	display: inline-block;  to add icon, set this property and the background image in the plugin css file, using .editorRightBarTabIcon.pluginName as class name */
+  width: 15px;
+  height: 14px;
+  margin-bottom: -3px;
+  margin-right: 2px;
+}
+@font-face {
+  font-family: 'icomoon';
+  src: url('fonts/icomoon.eot?u9ewd1');
+  src: url('fonts/icomoon.eot?u9ewd1#iefix') format('embedded-opentype'), url('fonts/icomoon.ttf?u9ewd1') format('truetype'), url('fonts/icomoon.woff?u9ewd1') format('woff'), url('fonts/icomoon.svg?u9ewd1#icomoon') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+[class^="icon-"],
+[class*=" icon-"] {
+  /* use !important to prevent issues with browser extensions that change fonts */
+  font-family: 'icomoon' !important;
+  speak: none;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
+  /* Better Font Rendering =========== */
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+.icon-mini-camera:before {
+  content: "\e900";
+}
+.icon-captions:before {
+  content: "\e901";
+}
+.icon-paintbrush:before {
+  content: "\e902";
+}
+.icon-airplay:before {
+  content: "\e903";
+}
+.icon-arrow-down:before {
+  content: "\e904";
+}
+.icon-arrow-left:before {
+  content: "\e905";
+}
+.icon-arrow-right:before {
+  content: "\e906";
+}
+.icon-arrow-up:before {
+  content: "\e907";
+}
+.icon-back-10-s:before {
+  content: "\e908";
+}
+.icon-back-30-s:before {
+  content: "\e909";
+}
+.icon-comments-disabled:before {
+  content: "\e90a";
+}
+.icon-comments:before {
+  content: "\e90b";
+}
+.icon-edit:before {
+  content: "\e90c";
+}
+.icon-facebook:before {
+  content: "\e90d";
+}
+.icon-folder:before {
+  content: "\e90e";
+}
+.icon-forward-30-s:before {
+  content: "\e90f";
+}
+.icon-frames:before {
+  content: "\e910";
+}
+.icon-fullscreen:before {
+  content: "\e911";
+}
+.icon-headphone:before {
+  content: "\e912";
+}
+.icon-help:before {
+  content: "\e913";
+}
+.icon-info:before {
+  content: "\e914";
+}
+.icon-link:before {
+  content: "\e915";
+}
+.icon-mini-frames:before {
+  content: "\e916";
+}
+.icon-mini-videocamera:before {
+  content: "\e917";
+}
+.icon-mini-window:before {
+  content: "\e918";
+}
+.icon-mini-zoom-in:before {
+  content: "\e919";
+}
+.icon-mini-zoom-out:before {
+  content: "\e91a";
+}
+.icon-pause:before {
+  content: "\e91b";
+}
+.icon-photo:before {
+  content: "\e91c";
+}
+.icon-pip:before {
+  content: "\e91d";
+}
+.icon-play:before {
+  content: "\e91e";
+}
+.icon-player-mode-1:before {
+  content: "\e91f";
+}
+.icon-player-mode-2:before {
+  content: "\e920";
+}
+.icon-player-mode-3:before {
+  content: "\e921";
+}
+.icon-present-mode-1:before {
+  content: "\e922";
+}
+.icon-present-mode-2:before {
+  content: "\e923";
+}
+.icon-present-mode-3:before {
+  content: "\e924";
+}
+.icon-present-mode-4:before {
+  content: "\e925";
+}
+.icon-present-mode-5:before {
+  content: "\e926";
+}
+.icon-present-mode-6:before {
+  content: "\e927";
+}
+.icon-present-mode-7:before {
+  content: "\e928";
+}
+.icon-present-mode-8:before {
+  content: "\e929";
+}
+.icon-present-mode-9:before {
+  content: "\e92a";
+}
+.icon-present-mode-10:before {
+  content: "\e92b";
+}
+.icon-presentation-mode:before {
+  content: "\e92c";
+}
+.icon-screen:before {
+  content: "\e92d";
+}
+.icon-slideshow:before {
+  content: "\e92e";
+}
+.icon-social:before {
+  content: "\e92f";
+}
+.icon-star-empty:before {
+  content: "\e930";
+}
+.icon-star:before {
+  content: "\e931";
+}
+.icon-stats:before {
+  content: "\e932";
+}
+.icon-twitter:before {
+  content: "\e933";
+}
+.icon-user:before {
+  content: "\e934";
+}
+.icon-volume-high:before {
+  content: "\e935";
+}
+.icon-volume-low:before {
+  content: "\e936";
+}
+.icon-volume-mid:before {
+  content: "\e937";
+}
+.icon-volume-mute:before {
+  content: "\e938";
+}
+.icon-windowed:before {
+  content: "\e939";
+}
+.icon-zoom-in:before {
+  content: "\e93a";
+}
+.icon-zoom:before {
+  content: "\e93b";
+}
+.icon-home:before {
+  content: "\e93c";
+}
+.icon-home2:before {
+  content: "\e93d";
+}
+.icon-home3:before {
+  content: "\e93e";
+}
+.icon-office:before {
+  content: "\e93f";
+}
+.icon-newspaper:before {
+  content: "\e940";
+}
+.icon-pencil:before {
+  content: "\e941";
+}
+.icon-pencil2:before {
+  content: "\e942";
+}
+.icon-quill:before {
+  content: "\e943";
+}
+.icon-pen:before {
+  content: "\e944";
+}
+.icon-blog:before {
+  content: "\e945";
+}
+.icon-eyedropper:before {
+  content: "\e946";
+}
+.icon-droplet:before {
+  content: "\e947";
+}
+.icon-paint-format:before {
+  content: "\e948";
+}
+.icon-image:before {
+  content: "\e949";
+}
+.icon-images:before {
+  content: "\e94a";
+}
+.icon-camera:before {
+  content: "\e94b";
+}
+.icon-headphones:before {
+  content: "\e94c";
+}
+.icon-music:before {
+  content: "\e94d";
+}
+.icon-play2:before {
+  content: "\e94e";
+}
+.icon-film:before {
+  content: "\e94f";
+}
+.icon-video-camera:before {
+  content: "\e950";
+}
+.icon-dice:before {
+  content: "\e951";
+}
+.icon-pacman:before {
+  content: "\e952";
+}
+.icon-spades:before {
+  content: "\e953";
+}
+.icon-clubs:before {
+  content: "\e954";
+}
+.icon-diamonds:before {
+  content: "\e955";
+}
+.icon-bullhorn:before {
+  content: "\e956";
+}
+.icon-connection:before {
+  content: "\e957";
+}
+.icon-podcast:before {
+  content: "\e958";
+}
+.icon-feed:before {
+  content: "\e959";
+}
+.icon-mic:before {
+  content: "\e95a";
+}
+.icon-book:before {
+  content: "\e95b";
+}
+.icon-books:before {
+  content: "\e95c";
+}
+.icon-library:before {
+  content: "\e95d";
+}
+.icon-file-text:before {
+  content: "\e95e";
+}
+.icon-profile:before {
+  content: "\e95f";
+}
+.icon-file-empty:before {
+  content: "\e960";
+}
+.icon-files-empty:before {
+  content: "\e961";
+}
+.icon-file-text2:before {
+  content: "\e962";
+}
+.icon-file-picture:before {
+  content: "\e963";
+}
+.icon-file-music:before {
+  content: "\e964";
+}
+.icon-file-play:before {
+  content: "\e965";
+}
+.icon-file-video:before {
+  content: "\e966";
+}
+.icon-file-zip:before {
+  content: "\e967";
+}
+.icon-copy:before {
+  content: "\e968";
+}
+.icon-paste:before {
+  content: "\e969";
+}
+.icon-stack:before {
+  content: "\e96a";
+}
+.icon-folder2:before {
+  content: "\e96b";
+}
+.icon-folder-open:before {
+  content: "\e96c";
+}
+.icon-folder-plus:before {
+  content: "\e96d";
+}
+.icon-folder-minus:before {
+  content: "\e96e";
+}
+.icon-folder-download:before {
+  content: "\e96f";
+}
+.icon-folder-upload:before {
+  content: "\e970";
+}
+.icon-price-tag:before {
+  content: "\e971";
+}
+.icon-price-tags:before {
+  content: "\e972";
+}
+.icon-barcode:before {
+  content: "\e973";
+}
+.icon-qrcode:before {
+  content: "\e974";
+}
+.icon-ticket:before {
+  content: "\e975";
+}
+.icon-cart:before {
+  content: "\e976";
+}
+.icon-coin-dollar:before {
+  content: "\e977";
+}
+.icon-coin-euro:before {
+  content: "\e978";
+}
+.icon-coin-pound:before {
+  content: "\e979";
+}
+.icon-coin-yen:before {
+  content: "\e97a";
+}
+.icon-credit-card:before {
+  content: "\e97b";
+}
+.icon-calculator:before {
+  content: "\e97c";
+}
+.icon-lifebuoy:before {
+  content: "\e97d";
+}
+.icon-phone:before {
+  content: "\e97e";
+}
+.icon-phone-hang-up:before {
+  content: "\e97f";
+}
+.icon-address-book:before {
+  content: "\e980";
+}
+.icon-envelop:before {
+  content: "\e981";
+}
+.icon-pushpin:before {
+  content: "\e982";
+}
+.icon-location:before {
+  content: "\e983";
+}
+.icon-location2:before {
+  content: "\e984";
+}
+.icon-compass:before {
+  content: "\e985";
+}
+.icon-compass2:before {
+  content: "\e986";
+}
+.icon-map:before {
+  content: "\e987";
+}
+.icon-map2:before {
+  content: "\e988";
+}
+.icon-history:before {
+  content: "\e989";
+}
+.icon-clock:before {
+  content: "\e98a";
+}
+.icon-clock2:before {
+  content: "\e98b";
+}
+.icon-alarm:before {
+  content: "\e98c";
+}
+.icon-bell:before {
+  content: "\e98d";
+}
+.icon-stopwatch:before {
+  content: "\e98e";
+}
+.icon-calendar:before {
+  content: "\e98f";
+}
+.icon-printer:before {
+  content: "\e990";
+}
+.icon-keyboard:before {
+  content: "\e991";
+}
+.icon-display:before {
+  content: "\e992";
+}
+.icon-laptop:before {
+  content: "\e993";
+}
+.icon-mobile:before {
+  content: "\e994";
+}
+.icon-mobile2:before {
+  content: "\e995";
+}
+.icon-tablet:before {
+  content: "\e996";
+}
+.icon-tv:before {
+  content: "\e997";
+}
+.icon-drawer:before {
+  content: "\e998";
+}
+.icon-drawer2:before {
+  content: "\e999";
+}
+.icon-box-add:before {
+  content: "\e99a";
+}
+.icon-box-remove:before {
+  content: "\e99b";
+}
+.icon-download:before {
+  content: "\e99c";
+}
+.icon-upload:before {
+  content: "\e99d";
+}
+.icon-floppy-disk:before {
+  content: "\e99e";
+}
+.icon-drive:before {
+  content: "\e99f";
+}
+.icon-database:before {
+  content: "\e9a0";
+}
+.icon-undo:before {
+  content: "\e9a1";
+}
+.icon-redo:before {
+  content: "\e9a2";
+}
+.icon-undo2:before {
+  content: "\e9a3";
+}
+.icon-redo2:before {
+  content: "\e9a4";
+}
+.icon-forward:before {
+  content: "\e9a5";
+}
+.icon-reply:before {
+  content: "\e9a6";
+}
+.icon-bubble:before {
+  content: "\e9a7";
+}
+.icon-bubbles:before {
+  content: "\e9a8";
+}
+.icon-bubbles2:before {
+  content: "\e9a9";
+}
+.icon-bubble2:before {
+  content: "\e9aa";
+}
+.icon-bubbles3:before {
+  content: "\e9ab";
+}
+.icon-bubbles4:before {
+  content: "\e9ac";
+}
+.icon-user2:before {
+  content: "\e9ad";
+}
+.icon-users:before {
+  content: "\e9ae";
+}
+.icon-user-plus:before {
+  content: "\e9af";
+}
+.icon-user-minus:before {
+  content: "\e9b0";
+}
+.icon-user-check:before {
+  content: "\e9b1";
+}
+.icon-user-tie:before {
+  content: "\e9b2";
+}
+.icon-quotes-left:before {
+  content: "\e9b3";
+}
+.icon-quotes-right:before {
+  content: "\e9b4";
+}
+.icon-hour-glass:before {
+  content: "\e9b5";
+}
+.icon-spinner:before {
+  content: "\e9b6";
+}
+.icon-spinner2:before {
+  content: "\e9b7";
+}
+.icon-spinner3:before {
+  content: "\e9b8";
+}
+.icon-spinner4:before {
+  content: "\e9b9";
+}
+.icon-spinner5:before {
+  content: "\e9ba";
+}
+.icon-spinner6:before {
+  content: "\e9bb";
+}
+.icon-spinner7:before {
+  content: "\e9bc";
+}
+.icon-spinner8:before {
+  content: "\e9bd";
+}
+.icon-spinner9:before {
+  content: "\e9be";
+}
+.icon-spinner10:before {
+  content: "\e9bf";
+}
+.icon-spinner11:before {
+  content: "\e9c0";
+}
+.icon-binoculars:before {
+  content: "\e9c1";
+}
+.icon-search:before {
+  content: "\e9c2";
+}
+.icon-zoom-in2:before {
+  content: "\e9c3";
+}
+.icon-zoom-out:before {
+  content: "\e9c4";
+}
+.icon-enlarge:before {
+  content: "\e9c5";
+}
+.icon-shrink:before {
+  content: "\e9c6";
+}
+.icon-enlarge2:before {
+  content: "\e9c7";
+}
+.icon-shrink2:before {
+  content: "\e9c8";
+}
+.icon-key:before {
+  content: "\e9c9";
+}
+.icon-key2:before {
+  content: "\e9ca";
+}
+.icon-lock:before {
+  content: "\e9cb";
+}
+.icon-unlocked:before {
+  content: "\e9cc";
+}
+.icon-wrench:before {
+  content: "\e9cd";
+}
+.icon-equalizer:before {
+  content: "\e9ce";
+}
+.icon-equalizer2:before {
+  content: "\e9cf";
+}
+.icon-cog:before {
+  content: "\e9d0";
+}
+.icon-cogs:before {
+  content: "\e9d1";
+}
+.icon-hammer:before {
+  content: "\e9d2";
+}
+.icon-magic-wand:before {
+  content: "\e9d3";
+}
+.icon-aid-kit:before {
+  content: "\e9d4";
+}
+.icon-bug:before {
+  content: "\e9d5";
+}
+.icon-pie-chart:before {
+  content: "\e9d6";
+}
+.icon-stats-dots:before {
+  content: "\e9d7";
+}
+.icon-stats-bars:before {
+  content: "\e9d8";
+}
+.icon-stats-bars2:before {
+  content: "\e9d9";
+}
+.icon-trophy:before {
+  content: "\e9da";
+}
+.icon-gift:before {
+  content: "\e9db";
+}
+.icon-glass:before {
+  content: "\e9dc";
+}
+.icon-glass2:before {
+  content: "\e9dd";
+}
+.icon-mug:before {
+  content: "\e9de";
+}
+.icon-spoon-knife:before {
+  content: "\e9df";
+}
+.icon-leaf:before {
+  content: "\e9e0";
+}
+.icon-rocket:before {
+  content: "\e9e1";
+}
+.icon-meter:before {
+  content: "\e9e2";
+}
+.icon-meter2:before {
+  content: "\e9e3";
+}
+.icon-hammer2:before {
+  content: "\e9e4";
+}
+.icon-fire:before {
+  content: "\e9e5";
+}
+.icon-lab:before {
+  content: "\e9e6";
+}
+.icon-magnet:before {
+  content: "\e9e7";
+}
+.icon-bin:before {
+  content: "\e9e8";
+}
+.icon-bin2:before {
+  content: "\e9e9";
+}
+.icon-briefcase:before {
+  content: "\e9ea";
+}
+.icon-airplane:before {
+  content: "\e9eb";
+}
+.icon-truck:before {
+  content: "\e9ec";
+}
+.icon-road:before {
+  content: "\e9ed";
+}
+.icon-accessibility:before {
+  content: "\e9ee";
+}
+.icon-target:before {
+  content: "\e9ef";
+}
+.icon-shield:before {
+  content: "\e9f0";
+}
+.icon-power:before {
+  content: "\e9f1";
+}
+.icon-switch:before {
+  content: "\e9f2";
+}
+.icon-power-cord:before {
+  content: "\e9f3";
+}
+.icon-clipboard:before {
+  content: "\e9f4";
+}
+.icon-list-numbered:before {
+  content: "\e9f5";
+}
+.icon-list:before {
+  content: "\e9f6";
+}
+.icon-list2:before {
+  content: "\e9f7";
+}
+.icon-tree:before {
+  content: "\e9f8";
+}
+.icon-menu:before {
+  content: "\e9f9";
+}
+.icon-menu2:before {
+  content: "\e9fa";
+}
+.icon-menu3:before {
+  content: "\e9fb";
+}
+.icon-menu4:before {
+  content: "\e9fc";
+}
+.icon-cloud:before {
+  content: "\e9fd";
+}
+.icon-cloud-download:before {
+  content: "\e9fe";
+}
+.icon-cloud-upload:before {
+  content: "\e9ff";
+}
+.icon-cloud-check:before {
+  content: "\ea00";
+}
+.icon-download2:before {
+  content: "\ea01";
+}
+.icon-upload2:before {
+  content: "\ea02";
+}
+.icon-download3:before {
+  content: "\ea03";
+}
+.icon-upload3:before {
+  content: "\ea04";
+}
+.icon-sphere:before {
+  content: "\ea05";
+}
+.icon-earth:before {
+  content: "\ea06";
+}
+.icon-link2:before {
+  content: "\ea07";
+}
+.icon-flag:before {
+  content: "\ea08";
+}
+.icon-attachment:before {
+  content: "\ea09";
+}
+.icon-eye:before {
+  content: "\ea0a";
+}
+.icon-eye-plus:before {
+  content: "\ea0b";
+}
+.icon-eye-minus:before {
+  content: "\ea0c";
+}
+.icon-eye-blocked:before {
+  content: "\ea0d";
+}
+.icon-bookmark:before {
+  content: "\ea0e";
+}
+.icon-bookmarks:before {
+  content: "\ea0f";
+}
+.icon-sun:before {
+  content: "\ea10";
+}
+.icon-contrast:before {
+  content: "\ea11";
+}
+.icon-brightness-contrast:before {
+  content: "\ea12";
+}
+.icon-star-empty2:before {
+  content: "\ea13";
+}
+.icon-star-half:before {
+  content: "\ea14";
+}
+.icon-star-full:before {
+  content: "\ea15";
+}
+.icon-heart:before {
+  content: "\ea16";
+}
+.icon-heart-broken:before {
+  content: "\ea17";
+}
+.icon-man:before {
+  content: "\ea18";
+}
+.icon-woman:before {
+  content: "\ea19";
+}
+.icon-man-woman:before {
+  content: "\ea1a";
+}
+.icon-happy:before {
+  content: "\ea1b";
+}
+.icon-happy2:before {
+  content: "\ea1c";
+}
+.icon-smile:before {
+  content: "\ea1d";
+}
+.icon-smile2:before {
+  content: "\ea1e";
+}
+.icon-tongue:before {
+  content: "\ea1f";
+}
+.icon-tongue2:before {
+  content: "\ea20";
+}
+.icon-sad:before {
+  content: "\ea21";
+}
+.icon-sad2:before {
+  content: "\ea22";
+}
+.icon-wink:before {
+  content: "\ea23";
+}
+.icon-wink2:before {
+  content: "\ea24";
+}
+.icon-grin:before {
+  content: "\ea25";
+}
+.icon-grin2:before {
+  content: "\ea26";
+}
+.icon-cool:before {
+  content: "\ea27";
+}
+.icon-cool2:before {
+  content: "\ea28";
+}
+.icon-angry:before {
+  content: "\ea29";
+}
+.icon-angry2:before {
+  content: "\ea2a";
+}
+.icon-evil:before {
+  content: "\ea2b";
+}
+.icon-evil2:before {
+  content: "\ea2c";
+}
+.icon-shocked:before {
+  content: "\ea2d";
+}
+.icon-shocked2:before {
+  content: "\ea2e";
+}
+.icon-baffled:before {
+  content: "\ea2f";
+}
+.icon-baffled2:before {
+  content: "\ea30";
+}
+.icon-confused:before {
+  content: "\ea31";
+}
+.icon-confused2:before {
+  content: "\ea32";
+}
+.icon-neutral:before {
+  content: "\ea33";
+}
+.icon-neutral2:before {
+  content: "\ea34";
+}
+.icon-hipster:before {
+  content: "\ea35";
+}
+.icon-hipster2:before {
+  content: "\ea36";
+}
+.icon-wondering:before {
+  content: "\ea37";
+}
+.icon-wondering2:before {
+  content: "\ea38";
+}
+.icon-sleepy:before {
+  content: "\ea39";
+}
+.icon-sleepy2:before {
+  content: "\ea3a";
+}
+.icon-frustrated:before {
+  content: "\ea3b";
+}
+.icon-frustrated2:before {
+  content: "\ea3c";
+}
+.icon-crying:before {
+  content: "\ea3d";
+}
+.icon-crying2:before {
+  content: "\ea3e";
+}
+.icon-point-up:before {
+  content: "\ea3f";
+}
+.icon-point-right:before {
+  content: "\ea40";
+}
+.icon-point-down:before {
+  content: "\ea41";
+}
+.icon-point-left:before {
+  content: "\ea42";
+}
+.icon-warning:before {
+  content: "\ea43";
+}
+.icon-notification:before {
+  content: "\ea44";
+}
+.icon-question:before {
+  content: "\ea45";
+}
+.icon-plus:before {
+  content: "\ea46";
+}
+.icon-minus:before {
+  content: "\ea47";
+}
+.icon-info2:before {
+  content: "\ea48";
+}
+.icon-cancel-circle:before {
+  content: "\ea49";
+}
+.icon-blocked:before {
+  content: "\ea4a";
+}
+.icon-cross:before {
+  content: "\ea4b";
+}
+.icon-checkmark:before {
+  content: "\ea4c";
+}
+.icon-checkmark2:before {
+  content: "\ea4d";
+}
+.icon-spell-check:before {
+  content: "\ea4e";
+}
+.icon-enter:before {
+  content: "\ea4f";
+}
+.icon-exit:before {
+  content: "\ea50";
+}
+.icon-play22:before {
+  content: "\ea51";
+}
+.icon-pause2:before {
+  content: "\ea52";
+}
+.icon-stop:before {
+  content: "\ea53";
+}
+.icon-previous:before {
+  content: "\ea54";
+}
+.icon-next:before {
+  content: "\ea55";
+}
+.icon-backward:before {
+  content: "\ea56";
+}
+.icon-forward2:before {
+  content: "\ea57";
+}
+.icon-play3:before {
+  content: "\ea58";
+}
+.icon-pause22:before {
+  content: "\ea59";
+}
+.icon-stop2:before {
+  content: "\ea5a";
+}
+.icon-backward2:before {
+  content: "\ea5b";
+}
+.icon-forward3:before {
+  content: "\ea5c";
+}
+.icon-first:before {
+  content: "\ea5d";
+}
+.icon-last:before {
+  content: "\ea5e";
+}
+.icon-previous2:before {
+  content: "\ea5f";
+}
+.icon-next2:before {
+  content: "\ea60";
+}
+.icon-eject:before {
+  content: "\ea61";
+}
+.icon-volume-high2:before {
+  content: "\ea62";
+}
+.icon-volume-medium:before {
+  content: "\ea63";
+}
+.icon-volume-low2:before {
+  content: "\ea64";
+}
+.icon-volume-mute2:before {
+  content: "\ea65";
+}
+.icon-volume-mute22:before {
+  content: "\ea66";
+}
+.icon-volume-increase:before {
+  content: "\ea67";
+}
+.icon-volume-decrease:before {
+  content: "\ea68";
+}
+.icon-loop:before {
+  content: "\ea69";
+}
+.icon-loop2:before {
+  content: "\ea6a";
+}
+.icon-infinite:before {
+  content: "\ea6b";
+}
+.icon-shuffle:before {
+  content: "\ea6c";
+}
+.icon-arrow-up-left:before {
+  content: "\ea6d";
+}
+.icon-arrow-up2:before {
+  content: "\ea6e";
+}
+.icon-arrow-up-right:before {
+  content: "\ea6f";
+}
+.icon-arrow-right2:before {
+  content: "\ea70";
+}
+.icon-arrow-down-right:before {
+  content: "\ea71";
+}
+.icon-arrow-down2:before {
+  content: "\ea72";
+}
+.icon-arrow-down-left:before {
+  content: "\ea73";
+}
+.icon-arrow-left2:before {
+  content: "\ea74";
+}
+.icon-arrow-up-left2:before {
+  content: "\ea75";
+}
+.icon-arrow-up22:before {
+  content: "\ea76";
+}
+.icon-arrow-up-right2:before {
+  content: "\ea77";
+}
+.icon-arrow-right22:before {
+  content: "\ea78";
+}
+.icon-arrow-down-right2:before {
+  content: "\ea79";
+}
+.icon-arrow-down22:before {
+  content: "\ea7a";
+}
+.icon-arrow-down-left2:before {
+  content: "\ea7b";
+}
+.icon-arrow-left22:before {
+  content: "\ea7c";
+}
+.icon-circle-up:before {
+  content: "\ea7d";
+}
+.icon-circle-right:before {
+  content: "\ea7e";
+}
+.icon-circle-down:before {
+  content: "\ea7f";
+}
+.icon-circle-left:before {
+  content: "\ea80";
+}
+.icon-tab:before {
+  content: "\ea81";
+}
+.icon-move-up:before {
+  content: "\ea82";
+}
+.icon-move-down:before {
+  content: "\ea83";
+}
+.icon-sort-alpha-asc:before {
+  content: "\ea84";
+}
+.icon-sort-alpha-desc:before {
+  content: "\ea85";
+}
+.icon-sort-numeric-asc:before {
+  content: "\ea86";
+}
+.icon-sort-numberic-desc:before {
+  content: "\ea87";
+}
+.icon-sort-amount-asc:before {
+  content: "\ea88";
+}
+.icon-sort-amount-desc:before {
+  content: "\ea89";
+}
+.icon-command:before {
+  content: "\ea8a";
+}
+.icon-shift:before {
+  content: "\ea8b";
+}
+.icon-ctrl:before {
+  content: "\ea8c";
+}
+.icon-opt:before {
+  content: "\ea8d";
+}
+.icon-checkbox-checked:before {
+  content: "\ea8e";
+}
+.icon-checkbox-unchecked:before {
+  content: "\ea8f";
+}
+.icon-radio-checked:before {
+  content: "\ea90";
+}
+.icon-radio-checked2:before {
+  content: "\ea91";
+}
+.icon-radio-unchecked:before {
+  content: "\ea92";
+}
+.icon-crop:before {
+  content: "\ea93";
+}
+.icon-make-group:before {
+  content: "\ea94";
+}
+.icon-ungroup:before {
+  content: "\ea95";
+}
+.icon-scissors:before {
+  content: "\ea96";
+}
+.icon-filter:before {
+  content: "\ea97";
+}
+.icon-font:before {
+  content: "\ea98";
+}
+.icon-ligature:before {
+  content: "\ea99";
+}
+.icon-ligature2:before {
+  content: "\ea9a";
+}
+.icon-text-height:before {
+  content: "\ea9b";
+}
+.icon-text-width:before {
+  content: "\ea9c";
+}
+.icon-font-size:before {
+  content: "\ea9d";
+}
+.icon-bold:before {
+  content: "\ea9e";
+}
+.icon-underline:before {
+  content: "\ea9f";
+}
+.icon-italic:before {
+  content: "\eaa0";
+}
+.icon-strikethrough:before {
+  content: "\eaa1";
+}
+.icon-omega:before {
+  content: "\eaa2";
+}
+.icon-sigma:before {
+  content: "\eaa3";
+}
+.icon-page-break:before {
+  content: "\eaa4";
+}
+.icon-superscript:before {
+  content: "\eaa5";
+}
+.icon-subscript:before {
+  content: "\eaa6";
+}
+.icon-superscript2:before {
+  content: "\eaa7";
+}
+.icon-subscript2:before {
+  content: "\eaa8";
+}
+.icon-text-color:before {
+  content: "\eaa9";
+}
+.icon-pagebreak:before {
+  content: "\eaaa";
+}
+.icon-clear-formatting:before {
+  content: "\eaab";
+}
+.icon-table:before {
+  content: "\eaac";
+}
+.icon-table2:before {
+  content: "\eaad";
+}
+.icon-insert-template:before {
+  content: "\eaae";
+}
+.icon-pilcrow:before {
+  content: "\eaaf";
+}
+.icon-ltr:before {
+  content: "\eab0";
+}
+.icon-rtl:before {
+  content: "\eab1";
+}
+.icon-section:before {
+  content: "\eab2";
+}
+.icon-paragraph-left:before {
+  content: "\eab3";
+}
+.icon-paragraph-center:before {
+  content: "\eab4";
+}
+.icon-paragraph-right:before {
+  content: "\eab5";
+}
+.icon-paragraph-justify:before {
+  content: "\eab6";
+}
+.icon-indent-increase:before {
+  content: "\eab7";
+}
+.icon-indent-decrease:before {
+  content: "\eab8";
+}
+.icon-share:before {
+  content: "\eab9";
+}
+.icon-new-tab:before {
+  content: "\eaba";
+}
+.icon-embed:before {
+  content: "\eabb";
+}
+.icon-embed2:before {
+  content: "\eabc";
+}
+.icon-terminal:before {
+  content: "\eabd";
+}
+.icon-share2:before {
+  content: "\eabe";
+}
+.icon-mail:before {
+  content: "\eabf";
+}
+.icon-mail2:before {
+  content: "\eac0";
+}
+.icon-mail3:before {
+  content: "\eac1";
+}
+.icon-mail4:before {
+  content: "\eac2";
+}
+.icon-amazon:before {
+  content: "\eac3";
+}
+.icon-google:before {
+  content: "\eac4";
+}
+.icon-google2:before {
+  content: "\eac5";
+}
+.icon-google3:before {
+  content: "\eac6";
+}
+.icon-google-plus:before {
+  content: "\eac7";
+}
+.icon-google-plus2:before {
+  content: "\eac8";
+}
+.icon-google-plus3:before {
+  content: "\eac9";
+}
+.icon-hangouts:before {
+  content: "\eaca";
+}
+.icon-google-drive:before {
+  content: "\eacb";
+}
+.icon-facebook2:before {
+  content: "\eacc";
+}
+.icon-facebook22:before {
+  content: "\eacd";
+}
+.icon-instagram:before {
+  content: "\eace";
+}
+.icon-whatsapp:before {
+  content: "\eacf";
+}
+.icon-spotify:before {
+  content: "\ead0";
+}
+.icon-telegram:before {
+  content: "\ead1";
+}
+.icon-twitter2:before {
+  content: "\ead2";
+}
+.icon-vine:before {
+  content: "\ead3";
+}
+.icon-vk:before {
+  content: "\ead4";
+}
+.icon-renren:before {
+  content: "\ead5";
+}
+.icon-sina-weibo:before {
+  content: "\ead6";
+}
+.icon-rss:before {
+  content: "\ead7";
+}
+.icon-rss2:before {
+  content: "\ead8";
+}
+.icon-youtube:before {
+  content: "\ead9";
+}
+.icon-youtube2:before {
+  content: "\eada";
+}
+.icon-twitch:before {
+  content: "\eadb";
+}
+.icon-vimeo:before {
+  content: "\eadc";
+}
+.icon-vimeo2:before {
+  content: "\eadd";
+}
+.icon-lanyrd:before {
+  content: "\eade";
+}
+.icon-flickr:before {
+  content: "\eadf";
+}
+.icon-flickr2:before {
+  content: "\eae0";
+}
+.icon-flickr3:before {
+  content: "\eae1";
+}
+.icon-flickr4:before {
+  content: "\eae2";
+}
+.icon-dribbble:before {
+  content: "\eae3";
+}
+.icon-behance:before {
+  content: "\eae4";
+}
+.icon-behance2:before {
+  content: "\eae5";
+}
+.icon-deviantart:before {
+  content: "\eae6";
+}
+.icon-500px:before {
+  content: "\eae7";
+}
+.icon-steam:before {
+  content: "\eae8";
+}
+.icon-steam2:before {
+  content: "\eae9";
+}
+.icon-dropbox:before {
+  content: "\eaea";
+}
+.icon-onedrive:before {
+  content: "\eaeb";
+}
+.icon-github:before {
+  content: "\eaec";
+}
+.icon-npm:before {
+  content: "\eaed";
+}
+.icon-basecamp:before {
+  content: "\eaee";
+}
+.icon-trello:before {
+  content: "\eaef";
+}
+.icon-wordpress:before {
+  content: "\eaf0";
+}
+.icon-joomla:before {
+  content: "\eaf1";
+}
+.icon-ello:before {
+  content: "\eaf2";
+}
+.icon-blogger:before {
+  content: "\eaf3";
+}
+.icon-blogger2:before {
+  content: "\eaf4";
+}
+.icon-tumblr:before {
+  content: "\eaf5";
+}
+.icon-tumblr2:before {
+  content: "\eaf6";
+}
+.icon-yahoo:before {
+  content: "\eaf7";
+}
+.icon-yahoo2:before {
+  content: "\eaf8";
+}
+.icon-tux:before {
+  content: "\eaf9";
+}
+.icon-appleinc:before {
+  content: "\eafa";
+}
+.icon-finder:before {
+  content: "\eafb";
+}
+.icon-android:before {
+  content: "\eafc";
+}
+.icon-windows:before {
+  content: "\eafd";
+}
+.icon-windows8:before {
+  content: "\eafe";
+}
+.icon-soundcloud:before {
+  content: "\eaff";
+}
+.icon-soundcloud2:before {
+  content: "\eb00";
+}
+.icon-skype:before {
+  content: "\eb01";
+}
+.icon-reddit:before {
+  content: "\eb02";
+}
+.icon-hackernews:before {
+  content: "\eb03";
+}
+.icon-wikipedia:before {
+  content: "\eb04";
+}
+.icon-linkedin:before {
+  content: "\eb05";
+}
+.icon-linkedin2:before {
+  content: "\eb06";
+}
+.icon-lastfm:before {
+  content: "\eb07";
+}
+.icon-lastfm2:before {
+  content: "\eb08";
+}
+.icon-delicious:before {
+  content: "\eb09";
+}
+.icon-stumbleupon:before {
+  content: "\eb0a";
+}
+.icon-stumbleupon2:before {
+  content: "\eb0b";
+}
+.icon-stackoverflow:before {
+  content: "\eb0c";
+}
+.icon-pinterest:before {
+  content: "\eb0d";
+}
+.icon-pinterest2:before {
+  content: "\eb0e";
+}
+.icon-xing:before {
+  content: "\eb0f";
+}
+.icon-xing2:before {
+  content: "\eb10";
+}
+.icon-flattr:before {
+  content: "\eb11";
+}
+.icon-foursquare:before {
+  content: "\eb12";
+}
+.icon-yelp:before {
+  content: "\eb13";
+}
+.icon-paypal:before {
+  content: "\eb14";
+}
+.icon-chrome:before {
+  content: "\eb15";
+}
+.icon-firefox:before {
+  content: "\eb16";
+}
+.icon-IE:before {
+  content: "\eb17";
+}
+.icon-edge:before {
+  content: "\eb18";
+}
+.icon-safari:before {
+  content: "\eb19";
+}
+.icon-opera:before {
+  content: "\eb1a";
+}
+.icon-file-pdf:before {
+  content: "\eb1b";
+}
+.icon-file-openoffice:before {
+  content: "\eb1c";
+}
+.icon-file-word:before {
+  content: "\eb1d";
+}
+.icon-file-excel:before {
+  content: "\eb1e";
+}
+.icon-libreoffice:before {
+  content: "\eb1f";
+}
+.icon-html-five:before {
+  content: "\eb20";
+}
+.icon-html-five2:before {
+  content: "\eb21";
+}
+.icon-css3:before {
+  content: "\eb22";
+}
+.icon-git:before {
+  content: "\eb23";
+}
+.icon-codepen:before {
+  content: "\eb24";
+}
+.icon-svg:before {
+  content: "\eb25";
+}
+.icon-IcoMoon:before {
+  content: "\eb26";
+}
+.buttonPlugin.flexSkip_Rewind_10 {
+  background-position: -205% 22%;
+}
+.buttonPlugin.flexSkip_Forward_30 {
+  background-position: -200% 22%;
+}
+.buttonPlugin.arrowSlideNavidator.nextButton {
+  pointer-events: all !important;
+  font-size: 30px;
+  text-shadow: 0px 0px 8px white;
+}
+.buttonPlugin.arrowSlideNavidator.prevButton {
+  pointer-events: all !important;
+  font-size: 30px;
+  text-shadow: 0px 0px 8px white;
+}
+.arrow-slide-navigator-container {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  bottom: 0px;
+  right: 0px;
+}
+.buttonPlugin.audioTags {
+  text-align: center;
+  background-position: -900% -200%;
+  font-size: 0.8em;
+  line-height: 20px;
+  color: black;
+  text-transform: uppercase;
+}
+.videoAudioTrackItem {
+  padding: 10px;
+  font-size: 20px;
+  text-transform: uppercase;
+  cursor: pointer;
+}
+.videoAudioTrackItem.selected {
+  background-color: rgba(211, 211, 211, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #fa8533;
+}
+.videoAudioTrackItem:hover {
+  background-color: #cc0000;
+}
+.blackBoardDiv {
+  position: absolute;
+  /* 16:9 */
+  width: 816px;
+  height: 459px;
+  top: 135px;
+  left: 450px;
+  background-size: 100%;
+}
+.lensClass {
+  background-color: rgba(255, 236, 195, 0.3);
+  position: absolute;
+  border: 1px dotted white;
+}
+.lensContainer img {
+  width: 100% !important;
+}
+#overlayContainer div.lensContainer {
+  pointer-events: all;
+}
+.textBreak {
+  background-color: rgba(128, 128, 128, 0.7);
+  text-align: center;
+  color: white;
+  line-height: 17px;
+  font-size: 18px;
+  padding-top: 10px;
+  padding-bottom: 10px;
+  border-radius: 12px;
+}
+.buttonPlugin.captionsPluginButton {
+  background-position: 0% -100%;
+}
+.captionsPluginContainer {
+  width: 400px;
+  overflow: hidden;
+}
+.captionsBar input {
+  color: black;
+  background-color: rgba(242, 242, 242, 0.78);
+  border-color: #fa8533;
+  width: 49%;
+  margin-bottom: 0px;
+  margin-left: 1px;
+  float: left;
+}
+.captionsBar select {
+  width: 39%;
+  display: inline;
+  background-color: #fa8533;
+  border: 1px solid #ccc;
+  color: white;
+  margin-bottom: 0px;
+  height: 31px;
+}
+.captionsBar button {
+  float: right;
+  width: 7%;
+  min-height: 30px;
+  min-width: 30px;
+  margin-right: 2px;
+  background: url(../images/paella_icons_dark.png);
+  background-position: -400% -100%;
+  background-size: 2000% 1000%;
+  position: static;
+}
+.captionsBar button:hover {
+  background-color: #fa8533;
+}
+.bodyInnerContainer {
+  margin-bottom: 5px;
+  display: block;
+  margin-left: 3px;
+  height: auto;
+}
+.captionsBar input:hover {
+  border-color: #faa166;
+}
+.captionsBar input:focus {
+  border-color: #fa8533;
+}
+.captionsBody {
+  max-height: 280px;
+  overflow-y: scroll;
+  border: 1px solid black;
+}
+.captionsBar input:hover {
+  border-color: #faa166;
+}
+.captionsBar input:focus {
+  border-color: #faa166;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #fa8533;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #fa8533;
+}
+/* CSS OVERLAY */
+.CaptionsOnScreen {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  text-align: center;
+  top: 0;
+  left: 0;
+  z-index: 99;
+}
+.CaptionsOnScreenInner {
+  background-color: rgba(0, 0, 0, 0.6);
+  position: relative;
+  text-align: center;
+  color: white;
+  font-size: 17px;
+  width: 70%;
+  min-height: 20px;
+  margin-left: auto;
+  margin-right: auto;
+  padding: 8px;
+  border-radius: 12px;
+}
+.Highlight {
+  color: #faa166;
+  font-weight: bold;
+}
+#CommentPlugin_Publish_entry_buttons_area {
+  margin-top: 5px;
+}
+.comments_entry {
+  margin: 5px;
+  margin-bottom: 20px;
+  width: 90%;
+}
+.comments_entry_username {
+  color: #438bc5;
+  font-size: 14px;
+  font-family: arial, sans-serif;
+  font-weight: bold;
+}
+.comments_entry_datepublish {
+  color: #999;
+  font-size: 11px;
+  font-family: arial, sans-serif;
+  margin-left: 20px;
+}
+.comments_entry_comment {
+  margin-top: 5px;
+  margin-bottom: 10px;
+}
+.comments_entry_silhouette {
+  float: left;
+  width: 6%;
+}
+.comments_entry_container {
+  vertical-align: top;
+  margin: 10px;
+  margin-left: 50px;
+  width: 100%;
+}
+.comments_entry_container textarea {
+  width: 98%;
+  height: 45px;
+  /*margin-top:10px;*/
+  margin-bottom: 5px;
+  color: #52575c;
+}
+.CommentPlugin_Publish {
+  /*box-shadow: inset 0px 0px 10px 2px rgba(10, 10,10, 0.39); */
+  border-radius: 7px;
+  padding: 10px;
+  padding-bottom: 1px;
+}
+textarea {
+  resize: vertical;
+}
+.reply_button {
+  color: #999;
+  font-size: 12px;
+  font-family: arial, sans-serif;
+  margin-bottom: 15px;
+  font-weight: bold;
+  cursor: pointer;
+}
+.reply_button:hover {
+  color: #438bc5;
+  text-decoration: underline;
+}
+.buttonPlugin.extendedTabAdapterPlugin {
+  background-position: -500% -200%;
+}
+.buttonPluginPopUp.extendedTabAdapterPlugin {
+  background-image: none;
+  background-color: rgba(0, 0, 0, 0);
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer {
+  width: 600px;
+  display: block;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel {
+  display: inline;
+  background-color: rgba(242, 242, 242, 0.78);
+  line-height: 26px;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 7px;
+  padding-bottom: 7px;
+  cursor: pointer;
+  cursor: hand;
+  font-family: sans-serif;
+  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.48);
+  border-radius: 6px 6px 0px 0px;
+  font-size: 12px;
+  margin-left: 1px;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel.enabled {
+  cursor: default;
+  box-shadow: inset 0px 0px 12px rgba(0, 0, 0, 0.9);
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsLabelContainer > .tabLabel.disabled {
+  background-color: #e6e6e6;
+  color: black;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer {
+  height: 200px;
+  background-color: rgba(242, 242, 242, 0.78);
+  padding-left: 5px;
+  padding-top: 9px;
+  padding-right: 5px;
+  overflow-y: scroll;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #fa8533;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #faa166;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer > .tabContent.enabled {
+  display: block;
+}
+.extendedTabAdapterPlugin > .tabsPluginContainer > .tabsContentContainer > .tabContent.disabled {
+  display: none;
+}
+.buttonPlugin.footPrints {
+  background-position: -700% 0%;
+}
+.footPrintsContainer {
+  height: 20px;
+  width: 100%;
+  overflow: hidden;
+  display: block;
+}
+.footPrintsCanvas {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  display: inline-block;
+}
+.frameControlContainer {
+  height: 87px;
+  width: 90%;
+  overflow: hidden;
+  display: inline-block;
+  margin-left: 5%;
+}
+.frameControl.navButton {
+  width: 40px;
+  height: 40px;
+  display: block;
+  cursor: pointer;
+  background-image: url(../images/paella_icons_dark.png);
+  background-size: 2000% 1000%;
+  background-position: 100% 100%;
+  position: absolute;
+  top: 28px;
+}
+.frameControl.navButton.left {
+  background-position: -1600% -100%;
+  opacity: 0.5;
+}
+.frameControl.navButton.right {
+  right: 0px;
+  opacity: 0.5;
+  background-position: -1500% -100%;
+}
+.frameControl.navButton.left:hover {
+  opacity: 1;
+}
+.frameControl.navButton.right:hover {
+  opacity: 1;
+}
+.frameControlContent {
+  height: 100px;
+  overflow: hidden;
+  padding-top: 6px;
+}
+.frameControlItem {
+  width: 140px;
+  cursor: pointer;
+  margin-left: 3px;
+  margin-right: 3px;
+  float: left;
+  opacity: 0.8;
+}
+/*.frameControlItem:hover {
+	width:94px;
+	border: 3px dotted #23ff00;
+	opacity: 1;
+}*/
+.frameControlItem.selected {
+  width: 134px;
+  border: 3px dotted #fa8533;
+  opacity: 1;
+}
+.frameControlItem.current {
+  width: 134px;
+  border: 3px solid #fa8533;
+  opacity: 1;
+}
+.frameControlImage {
+  width: 100%;
+}
+.frameCaption {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  text-align: center;
+  padding: 5px;
+  color: black;
+  text-shadow: 1px 1px 2px #ffffff;
+}
+.showFramesButton {
+  position: absolute;
+  display: block;
+  width: 40px;
+  height: 37px;
+  background-size: 300%;
+  background-image: url(../../resources/images/frame_button.png);
+}
+/*
+.showFramesButton:hover {
+}
+*/
+.showFramesButton_active {
+  position: absolute;
+  display: block;
+  width: 40px;
+  height: 37px;
+  right: 0px;
+  background-size: 300%;
+  background-image: url(../../resources/images/frame_button.png);
+}
+.frameListContainer {
+  background-image: url(../../resources/images/playback_bkg.png);
+}
+.frameThumbnail {
+  /*
+	margin-top:8px;
+	margin-right:3px;
+	margin-bottom:8px;
+	margin-left:3px;
+*/
+  margin: 8px 3px 8px 3px;
+  height: 40px;
+}
+.frameThumbnail:hover {
+  margin: 0px;
+  border: 3px #fa8533 solid;
+  height: 50px;
+}
+.enabledFrameThumbnail {
+  border: 3px #fa8533 solid;
+  height: 50px;
+}
+.enabledFrameThumbnail:hover {
+  border: 3px #fa8533 solid;
+}
+.buttonPlugin.showFullScreenButton {
+  background-position: -900% 0%;
+}
+.buttonPlugin.showFullScreenButton.active {
+  background-position: -1000% 0%;
+}
+.buttonPlugin.helpButton {
+  background-position: -1300% 0%;
+}
+.buttonPlugin.right.liveIndicator {
+  width: 100px;
+  height: 40px;
+  background-image: url(live_video.png);
+  background-size: 100% 100%;
+  margin-top: 5px;
+  margin-right: 5px;
+}
+/*.showMultipleQualitiesPlugin {
+	background-image: url(advanced_button.png);
+	background-size: 300%;
+}
+
+.buttonPluginPopUp.showMultipleQualitiesPlugin {
+	background-image:none;
+}
+
+.selectQuality {
+	padding: 10px;
+}*/
+.buttonPlugin.showMultipleQualitiesPlugin {
+  text-align: center;
+  font-size: 0.8em;
+  line-height: 20px;
+  min-width: 36px;
+}
+.buttonPluginPopUp.showMultipleQualitiesPlugin {
+  background-image: none;
+}
+.selectQuality {
+  padding: 10px;
+}
+.multipleQualityItem {
+  font-size: 19px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  cursor: pointer;
+}
+.multipleQualityItem:hover {
+  background-color: #faa166;
+}
+.multipleQualityItem.selected {
+  color: #fa8533;
+}
+.multipleQualityItem.selected:hover {
+  color: black;
+}
+.buttonPlugin.playButton {
+  background-position: -500% -100%;
+}
+.buttonPlugin.pauseButton {
+  background-position: -100% 0%;
+}
+.playButtonOnScreen {
+  position: absolute;
+  opacity: 0.7;
+  top: 0;
+  left: 0;
+  bottom: 51px;
+  right: 0;
+  z-index: 50;
+  width: 100%;
+  height: 100%;
+}
+.playButtonOnScreenIcon {
+  display: block;
+  cursor: pointer;
+  width: 100%;
+}
+.playbackRateItem {
+  font-size: 19px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  cursor: pointer;
+}
+.playbackRateItem:hover {
+  background-color: #faa166;
+}
+.buttonPlugin.showPlaybackRateButton {
+  text-align: center;
+  line-height: 20px;
+  background-position: -600% -100%;
+  font-size: 1em;
+}
+.playbackRateItem.selected {
+  color: #fa8533;
+}
+.playbackRateItem.selected:hover {
+  color: black;
+}
+.buttonPlugin.showPlaybackRateButton {
+  min-width: 36px;
+}
+.buttonPlugin.rateButtonPlugin {
+  text-align: center;
+  background-position: -700% -200%;
+  font-size: 0.8em;
+  line-height: 20px;
+}
+.buttonPluginPopUp {
+  right: 0px;
+}
+.rateButtons {
+  /*padding: 10px;*/
+  width: 250px;
+}
+.starButton {
+  display: inline-block;
+  width: 26px;
+  height: 26px;
+  font-size: 25px;
+}
+.rateButtonPlugin h4 {
+  margin-left: 10px;
+}
+.rateButtonPlugin h5 {
+  margin-left: 19px;
+}
+.rateButtons .starButton:first-of-type {
+  margin-left: 19px;
+}
+.buttonPlugin.searchButton {
+  background-size: 2000% 1000%;
+  background-position: -900% -100%;
+  display: block;
+}
+.buttonPluginPopUp.searchButton {
+  position: absolute;
+}
+.searchPluginContainer {
+  width: 400px;
+  overflow: hidden;
+}
+.searchBar input {
+  color: black;
+  background-color: rgba(242, 242, 242, 0.78);
+  border-color: #fa8533;
+  width: 96%;
+  margin-bottom: 0px;
+  margin-left: 1px;
+}
+.searchBar input:hover {
+  border-color: #faa166;
+}
+.searchBar input:focus {
+  border-color: #faa166;
+}
+.searchBody {
+  max-height: 280px;
+  overflow-y: scroll;
+  border: 1px solid black;
+}
+.sBodyInnerContainer {
+  display: block;
+  margin-left: 3px;
+  min-height: 70px;
+  border: 1px solid rgba(242, 242, 242, 0.78);
+}
+.hover {
+  background-color: #faa166;
+}
+.redScore {
+  background-color: rgba(255, 0, 0, 0.2);
+}
+.greenScore {
+  background-color: rgba(0, 255, 0, 0.2);
+}
+.sBodyText {
+  width: 100%;
+  display: block;
+  text-align: left;
+}
+.timeSpan {
+  color: #fa8533;
+  margin-right: 5px;
+}
+.TimePicContainer {
+  float: left;
+  width: 24%;
+  text-align: center;
+  margin-right: 5px;
+}
+.TimePicContainer img {
+  width: 100%;
+}
+::-webkit-scrollbar {
+  width: 8px;
+}
+::-webkit-scrollbar-button {
+  width: 8px;
+  height: 5px;
+}
+::-webkit-scrollbar-track {
+  background: #eee;
+  border: thin solid lightgray;
+  box-shadow: 0px 0px 3px #dfdfdf inset;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: #fa8533;
+  border: thin solid gray;
+  border-radius: 10px;
+}
+::-webkit-scrollbar-thumb:hover {
+  background: #faa166;
+}
+svg path,
+svg rect {
+  fill: #FF6700;
+}
+.loader {
+  float: left;
+  display: inline-block;
+  vertical-align: top;
+}
+.noResults {
+  margin: 5px;
+}
+.buttonPlugin.showSocialPluginButton {
+  background-position: -800% 0%;
+}
+.buttonPluginPopUp.showSocialPluginButton {
+  background-image: none;
+}
+.socialItemButton {
+  /*crea el popup*/
+  width: 20px;
+  height: 20px;
+  cursor: pointer;
+  background-image: url(../images/paella_icons_dark.png);
+  background-size: 2000% 1000%;
+  background-position: 0px 0px;
+}
+.socialItemButton.selected {
+  /*background-color: rgba(90,90,90,0.8);
+	border: 3px solid #23ff00;*/
+  background-color: rgba(90, 90, 90, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #fa8533;
+}
+.socialItemButton:hover {
+  background-color: #faa166;
+}
+.socialItemButton.facebook {
+  background-position: -1600% 0%;
+}
+.socialItemButton.twitter {
+  background-position: -1400% 0%;
+}
+.socialItemButton.embed {
+  background-position: -1500% 0%;
+}
+.embedSizeButton {
+  display: inline-block;
+  background-color: #fa8533;
+  border: 1px solid #313135;
+  border-radius: 10px;
+  cursor: pointer;
+  margin-right: 5px;
+  vertical-align: middle;
+  font-size: 14px;
+  text-align: center;
+  color: white;
+}
+.embedSizeInput {
+  background-color: #ffffff;
+  width: 40px;
+  height: 20px;
+  color: #000000;
+  font-size: 12px;
+  margin: 0px;
+  padding: 0px;
+}
+.buttonPlugin.themeChooserPlugin {
+  background-position: -800% -100%;
+}
+.buttonPluginPopUp.themeChooserPlugin {
+  background-image: none;
+  min-width: 40px;
+  width: 120px;
+  text-align: right;
+}
+.buttonPluginPopUp.themeChooserPlugin .themebutton {
+  cursor: pointer;
+  text-align: left;
+  text-transform: capitalize;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 3px;
+  padding-bottom: 3px;
+}
+.buttonPluginPopUp.themeChooserPlugin .themebutton:hover {
+  background-color: #faa166;
+}
+.translecturesCaptionsMessageBox {
+  margin-left: auto;
+  margin-right: auto;
+  text-align: center;
+  width: 700px;
+  height: 200px;
+  font-size: 14px;
+}
+.translecturesCaptionsMessageBox .title {
+  color: #635e5e;
+  font-size: 20px;
+  margin-bottom: 20px;
+}
+.translecturesCaptionsMessageBox .authMethodsContainer {
+  margin-left: auto;
+  margin-right: auto;
+  width: 500px;
+  height: 200px;
+  margin-top: 10px;
+  position: relative;
+}
+.translecturesCaptionsMessageBox .authMethodsContainer .authMethod {
+  display: inline-block;
+  width: 200px;
+  height: 200px;
+  /*
+	position:absolute;
+	left: 0px;
+*/
+}
+.buttonPlugin.left.videoData {
+  height: auto;
+  width: 100%;
+  margin-top: 5px;
+  margin-left: auto;
+  margin-right: auto;
+  background-color: rgba(0, 0, 0, 0.6);
+}
+.buttonPlugin.left.videoData h1 {
+  color: white;
+  padding: 0px 0px 0px 20px;
+  margin: 0px;
+}
+@media (max-width: 400px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 16px;
+    line-height: 24px;
+  }
+}
+@media (min-width: 401px) and (max-width: 800px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 20px;
+    line-height: 34px;
+  }
+}
+@media (min-width: 801px) {
+  .buttonPlugin.left.videoData h1 {
+    font-size: 30px;
+    line-height: 44px;
+  }
+}
+.buttonPlugin.right.videoZoom {
+  width: 200px;
+  background-image: none;
+  position: absolute;
+  right: 0px;
+  top: 0px;
+  text-align: right;
+}
+.buttonPlugin.right.videoZoom:hover {
+  background-color: transparent !important;
+}
+.buttonPlugin.right.videoZoom:active {
+  background-color: transparent !important;
+}
+.zoom-thumbnail {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 0px;
+  left: 0px;
+}
+.zoom-container {
+  width: 160px;
+  height: 90px;
+  margin: 5px;
+  box-sizing: border-box;
+  box-shadow: 0px 0px 3px 0px black;
+  border-radius: 2px;
+  position: relative;
+  right: 0px;
+}
+.zoom-rect {
+  background-color: rgba(255, 255, 255, 0.5);
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  border: 1px solid #0e0e0e;
+}
+/* The canvas "freeze frame" to overlay video element, instead of flex side aligned */
+.freezeFrame {
+  align-self: center;
+  position: absolute;
+}
+.videoZoomButton {
+  z-index: 1;
+  margin-left: 2px;
+  margin-right: 2px;
+  margin-top: 4px;
+  opacity: 0.2;
+  background: white;
+  font-size: 2em;
+  padding: 0px 4px 0px 4px;
+  box-shadow: 2px 2px 5px 0px black;
+  width: 30px;
+  height: 30px;
+  position: relative;
+  left: 40%;
+}
+.videoZoomButton:hover {
+  opacity: 0.999;
+}
+.videoZoomButton:active {
+  opacity: 0.999;
+}
+@media (max-width: 600px) {
+  .buttonPlugin.right.videoZoom {
+    width: 89px;
+  }
+  .zoom-container {
+    width: 80px;
+    height: 45px;
+  }
+}
+@media (max-width: 800px) and (min-width: 601px) {
+  .buttonPlugin.right.videoZoom {
+    width: 100px;
+  }
+  .zoom-container {
+    width: 120px;
+    height: 68px;
+  }
+}
+.videoZoomToolbarItem {
+  width: 30px;
+  height: 30px;
+  cursor: pointer;
+  margin-left: 5px;
+  margin-right: 5px;
+  margin-top: 5px;
+  font-size: 20px;
+}
+.buttonPluginPopUp.showViewModeButton {
+  background-image: none;
+}
+.buttonPlugin.showViewModeButton {
+  background-position: -1100% 0%;
+}
+.viewModeItemButton {
+  background-image: url(../images/paella_icons_dark.png);
+  width: 80px;
+  height: 40px;
+  cursor: pointer;
+  background-size: 100% 100% !important;
+  background-position: 0px 0px ! important;
+  background-color: white;
+}
+.viewModeItemButton:hover {
+  background-color: #faa166;
+}
+.viewModeItemButton.selected {
+  /*background-position: 78px 0;*/
+  background-color: rgba(211, 211, 211, 0.8);
+  box-shadow: inset 0px 0px 2px 2px #fa8533;
+}
+.viewModeItemButton.slide_professor {
+  background-position: 80px -80px;
+}
+.viewModeItemButton.professor_slide {
+  background-position: 80px -120px;
+}
+.viewModeItemButton.professor {
+  background-position: 80px -40px;
+}
+.viewModeItemButton.slide_over_professor {
+  background-position: 80px -200px;
+}
+.viewModeItemButton.slide_over_professor_right {
+  background-position: 80px -160px;
+}
+.viewModeItemButton.s_p_blackboard2 {
+  background-position: 80px -240px;
+}
+.viewModeItemButton.professor_over_slide {
+  background-position: 80px -320px;
+}
+.viewModeItemButton.professor_over_slide_right {
+  background-position: 80px -280px;
+}
+.viewModeItemButton.slide {
+  background-position: 80px 0px;
+}
+.viewModeItemButton.chroma {
+  background-position: 80px -360px;
+}
+.buttonPlugin.volumeRangeButton.mute {
+  background-position: -300% 0%;
+}
+.buttonPlugin.volumeRangeButton.max {
+  background-position: -600% 0%;
+}
+.buttonPlugin.volumeRangeButton.med {
+  background-position: -500% 0%;
+}
+.buttonPlugin.volumeRangeButton.min {
+  background-position: -400% 0%;
+}
+.buttonPluginPopUp.volumeRangeButton {
+  position: absolute;
+  /* right: -220px; */
+}
+.videoRangeContainer {
+  width: 260px;
+}
+span.videoRangeButton.expandable-content {
+  padding-top: 10px;
+}
+/* Range control */
+.volumeRangeButton input[type=range] {
+  display: inline-block;
+  width: 80px;
+  height: 12px;
+}
+input[type=range] {
+  -webkit-appearance: none;
+  width: 100%;
+  margin: 6.2px 0;
+  background-color: transparent;
+}
+input[type=range]:focus {
+  outline: none;
+}
+input[type=range]::-webkit-slider-runnable-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+  background: #ffffff;
+  border-radius: 1.9px;
+  border: 1.2px solid #010101;
+}
+input[type=range]::-webkit-slider-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 17px;
+  width: 16px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+  -webkit-appearance: none;
+  margin-top: -7.4px;
+}
+input[type=range]:focus::-webkit-slider-runnable-track {
+  background: #ffffff;
+}
+input[type=range]::-moz-range-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+  background: #ffffff;
+  border-radius: 1.9px;
+  border: 1.2px solid #010101;
+}
+input[type=range]::-moz-range-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 17px;
+  width: 16px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+}
+input[type=range]::-ms-track {
+  width: 100%;
+  height: 4.6px;
+  cursor: pointer;
+  background: transparent;
+  border-color: transparent;
+  color: transparent;
+}
+input[type=range]::-ms-fill-lower {
+  background: #f2f2f2;
+  border: 1.2px solid #010101;
+  border-radius: 3.8px;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+}
+input[type=range]::-ms-fill-upper {
+  background: #ffffff;
+  border: 1.2px solid #010101;
+  border-radius: 3.8px;
+  box-shadow: 0px 0px 0.2px #000000, 0px 0px 0px #0d0d0d;
+}
+input[type=range]::-ms-thumb {
+  box-shadow: 1.1px 1.1px 2.7px #000000, 0px 0px 1.1px #0d0d0d;
+  border: 2.8px solid rgba(0, 0, 0, 0.41);
+  height: 14px;
+  width: 14px;
+  border-radius: 13px;
+  background: #ffffff;
+  cursor: pointer;
+  margin-top: -2px;
+}
+input[type=range]:focus::-ms-fill-lower {
+  background: #ffffff;
+}
+input[type=range]:focus::-ms-fill-upper {
+  background: #ffffff;
+}
+.cc-window {
+  opacity: 1;
+  transition: opacity 1s ease;
+}
+.cc-window.cc-invisible {
+  opacity: 0;
+}
+.cc-animate.cc-revoke {
+  transition: transform 1s ease;
+}
+.cc-animate.cc-revoke.cc-top {
+  transform: translateY(-2em);
+}
+.cc-animate.cc-revoke.cc-bottom {
+  transform: translateY(2em);
+}
+.cc-animate.cc-revoke.cc-active.cc-bottom,
+.cc-animate.cc-revoke.cc-active.cc-top,
+.cc-revoke:hover {
+  transform: translateY(0);
+}
+.cc-grower {
+  max-height: 0;
+  overflow: hidden;
+  transition: max-height 1s;
+}
+.cc-link,
+.cc-revoke:hover {
+  text-decoration: underline;
+}
+.cc-revoke,
+.cc-window {
+  position: fixed;
+  overflow: hidden;
+  box-sizing: border-box;
+  font-family: Helvetica, Calibri, Arial, sans-serif;
+  font-size: 16px;
+  line-height: 1.5em;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-wrap: nowrap;
+  flex-wrap: nowrap;
+  z-index: 9999;
+}
+.cc-window.cc-static {
+  position: static;
+}
+.cc-window.cc-floating {
+  padding: 2em;
+  max-width: 24em;
+  -ms-flex-direction: column;
+  flex-direction: column;
+}
+.cc-window.cc-banner {
+  padding: 1em 1.8em;
+  width: 100%;
+  -ms-flex-direction: row;
+  flex-direction: row;
+}
+.cc-revoke {
+  padding: 0.5em;
+}
+.cc-header {
+  font-size: 18px;
+  font-weight: 700;
+}
+.cc-btn,
+.cc-close,
+.cc-link,
+.cc-revoke {
+  cursor: pointer;
+}
+.cc-link {
+  opacity: 0.8;
+  display: inline-block;
+  padding: 0.2em;
+}
+.cc-link:hover {
+  opacity: 1;
+}
+.cc-link:active,
+.cc-link:visited {
+  color: initial;
+}
+.cc-btn {
+  display: block;
+  padding: 0.4em 0.8em;
+  font-size: 0.9em;
+  font-weight: 700;
+  border-width: 2px;
+  border-style: solid;
+  text-align: center;
+  white-space: nowrap;
+}
+.cc-highlight .cc-btn:first-child {
+  background-color: transparent;
+  border-color: transparent;
+}
+.cc-highlight .cc-btn:first-child:focus,
+.cc-highlight .cc-btn:first-child:hover {
+  background-color: transparent;
+  text-decoration: underline;
+}
+.cc-close {
+  display: block;
+  position: absolute;
+  top: 0.5em;
+  right: 0.5em;
+  font-size: 1.6em;
+  opacity: 0.9;
+  line-height: 0.75;
+}
+.cc-close:focus,
+.cc-close:hover {
+  opacity: 1;
+}
+.cc-revoke.cc-top {
+  top: 0;
+  left: 3em;
+  border-bottom-left-radius: 0.5em;
+  border-bottom-right-radius: 0.5em;
+}
+.cc-revoke.cc-bottom {
+  bottom: 0;
+  left: 3em;
+  border-top-left-radius: 0.5em;
+  border-top-right-radius: 0.5em;
+}
+.cc-revoke.cc-left {
+  left: 3em;
+  right: unset;
+}
+.cc-revoke.cc-right {
+  right: 3em;
+  left: unset;
+}
+.cc-top {
+  top: 1em;
+}
+.cc-left {
+  left: 1em;
+}
+.cc-right {
+  right: 1em;
+}
+.cc-bottom {
+  bottom: 1em;
+}
+.cc-floating > .cc-link {
+  margin-bottom: 1em;
+}
+.cc-floating .cc-message {
+  display: block;
+  margin-bottom: 1em;
+}
+.cc-window.cc-floating .cc-compliance {
+  -ms-flex: 1 0 auto;
+  flex: 1 0 auto;
+}
+.cc-window.cc-banner {
+  -ms-flex-align: center;
+  align-items: center;
+}
+.cc-banner.cc-top {
+  left: 0;
+  right: 0;
+  top: 0;
+}
+.cc-banner.cc-bottom {
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.cc-banner .cc-message {
+  display: block;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+  max-width: 100%;
+  margin-right: 1em;
+}
+.cc-compliance {
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-align: center;
+  align-items: center;
+  -ms-flex-line-pack: justify;
+  align-content: space-between;
+}
+.cc-floating .cc-compliance > .cc-btn {
+  -ms-flex: 1;
+  flex: 1;
+}
+.cc-btn + .cc-btn {
+  margin-left: 0.5em;
+}
+@media print {
+  .cc-revoke,
+  .cc-window {
+    display: none;
+  }
+}
+@media screen and (max-width: 900px) {
+  .cc-btn {
+    white-space: normal;
+  }
+}
+@media screen and (max-width: 414px) and (orientation: portrait), screen and (max-width: 736px) and (orientation: landscape) {
+  .cc-window.cc-top {
+    top: 0;
+  }
+  .cc-window.cc-bottom {
+    bottom: 0;
+  }
+  .cc-window.cc-banner,
+  .cc-window.cc-floating,
+  .cc-window.cc-left,
+  .cc-window.cc-right {
+    left: 0;
+    right: 0;
+  }
+  .cc-window.cc-banner {
+    -ms-flex-direction: column;
+    flex-direction: column;
+  }
+  .cc-window.cc-banner .cc-compliance {
+    -ms-flex: 1 1 auto;
+    flex: 1 1 auto;
+  }
+  .cc-window.cc-floating {
+    max-width: none;
+  }
+  .cc-window .cc-message {
+    margin-bottom: 1em;
+  }
+  .cc-window.cc-banner {
+    -ms-flex-align: unset;
+    align-items: unset;
+  }
+  .cc-window.cc-banner .cc-message {
+    margin-right: 0;
+  }
+}
+.cc-floating.cc-theme-classic {
+  padding: 1.2em;
+  border-radius: 5px;
+}
+.cc-floating.cc-type-info.cc-theme-classic .cc-compliance {
+  text-align: center;
+  display: inline;
+  -ms-flex: none;
+  flex: none;
+}
+.cc-theme-classic .cc-btn {
+  border-radius: 5px;
+}
+.cc-theme-classic .cc-btn:last-child {
+  min-width: 140px;
+}
+.cc-floating.cc-type-info.cc-theme-classic .cc-btn {
+  display: inline-block;
+}
+.cc-theme-edgeless.cc-window {
+  padding: 0;
+}
+.cc-floating.cc-theme-edgeless .cc-message {
+  margin: 2em 2em 1.5em;
+}
+.cc-banner.cc-theme-edgeless .cc-btn {
+  margin: 0;
+  padding: 0.8em 1.8em;
+  height: 100%;
+}
+.cc-banner.cc-theme-edgeless .cc-message {
+  margin-left: 1em;
+}
+.cc-floating.cc-theme-edgeless .cc-btn + .cc-btn {
+  margin-left: 0;
+}
+.paella-profile-button {
+  background-color: lightgray;
+  border: none;
+  border-radius: 10%;
+  box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.9);
+}
+.paella-profile-button:hover {
+  background-color: #9b9b9b;
+}
+.paella-profile-button:active {
+  background-color: #000000;
+}
+.buttonPlugin.AirPlayButton {
+  background-position: -1100% -100%;
+}
+.buttonPlugin.AirPlayButton.not-available {
+  opacity: 0.4;
+}
+.buttonPlugin.legal {
+  pointer-events: all;
+  padding-right: 5px;
+  height: 20px;
+  text-align: right;
+  padding: 1px;
+  margin: 1px;
+  margin-right: 12px;
+  margin-top: -7px;
+  margin-bottom: 4px;
+  width: auto;
+}
+.buttonPlugin.legal a {
+  color: lightgrey !important;
+  text-decoration: underline !important;
+}
+.buttonPlugin.legal a:hover {
+  background-color: transparent !important;
+  font-weight: bold !important;
+}
+.buttonPlugin.legal:hover {
+  background-color: transparent !important;
+}
+.buttonPlugin.PIPModeButton {
+  background-position: -1000% -100%;
+}
+.related-video-container {
+  z-index: 5;
+  background-color: rgba(255, 255, 255, 0.7);
+}
+.related-video-container .related-video-link {
+  width: 30%;
+  overflow: hidden;
+  display: block;
+  background-color: white;
+  padding: 3px;
+  box-shadow: 1px 1px 3px 0px black;
+  position: absolute;
+  pointer-events: all;
+}
+.related-video-container .related-video-link.related-video-single {
+  width: 50%;
+  left: 25%;
+  top: 30%;
+}
+.related-video-container .related-video-link.related-video-dual-1 {
+  width: 30%;
+  left: 10%;
+  top: 30%;
+}
+.related-video-container .related-video-link.related-video-dual-2 {
+  width: 30%;
+  right: 10%;
+  top: 30%;
+}
+.related-video-container .related-video-link img {
+  width: 100%;
+}
+.related-video-container .related-video-link p {
+  width: 100%;
+  text-align: center;
+}
+.buttonPlugin.showEditorButton {
+  pointer-events: all;
+}
+.buttonPluginPopUp.videoZoomToolbar {
+  width: 50px;
+  text-align: center;
+}
+.buttonPlugin.right.videoZoomToolbar i.button-icon.icon-mini-videocamera {
+  font-size: 27px;
+  margin-left: -2px;
+}
+.buttonPlugin.right.videoZoomToolbar i.button-icon.icon-mini-zoom-in {
+  font-size: 29px;
+  margin-left: -6px;
+}
+.autoTrackingActivated {
+  color: red !important;
+}
+html {
+  margin: 0px;
+}
+body {
+  font-family: 'Ubuntu', sans-serif;
+  margin: 0px;
+}
+pre {
+  padding: 20px;
+  border-bottom: 2px solid #cc0000;
+  border-top: 2px solid #cc0000;
+}
+iframe {
+  margin-left: auto;
+  margin-right: auto;
+  display: block;
+}
+h2 {
+  color: #909090;
+}
+h1 {
+  color: #cc0000;
+}
+.alignCenter {
+  display: block;
+  margin-right: auto;
+  margin-left: auto;
+  max-width: 90%;
+}
+.image {
+  background-size: 100% auto;
+  background-repeat: no-repeat;
+}
+#logo {
+  background-image: url(logo_paella.png);
+  width: 140px;
+  height: 140px;
+  float: left;
+}
+.pageHeader {
+  background-color: white;
+  padding: 20px;
+  border-bottom: 1px solid #cc0000;
+  height: 170px;
+}
+.content {
+  width: 100%;
+  background-color: white;
+  margin-left: auto;
+  margin-right: auto;
+  max-width: 1100px;
+  padding-left: 30px;
+  padding-right: 30px;
+}
+.content.page {
+  margin-top: 0px;
+  padding-top: 30px;
+  padding-bottom: 100px;
+}
+#headerText {
+  font-family: 'Varela Round', sans-serif;
+  font-size: 60pt;
+  display: block;
+  width: 100%;
+  line-height: 90px;
+  margin-left: 157px;
+}
+#headerSubtitle {
+  display: block;
+  width: 100%;
+  margin-left: 160px;
+  font-size: 28px;
+  color: gray;
+}
+.logoGroup {
+  width: 660px;
+  float: left;
+  margin-top: 20px;
+}
+a {
+  color: #fa8528;
+}
+a:visited {
+  color: #fa8528;
+}
+a:hover {
+  color: #fba352;
+}
+a:active {
+  color: #ffb055;
+}
+.linkButton {
+  font-size: 20px;
+  color: white;
+  background-color: #fa8528;
+  padding: 20px;
+  border-radius: 5px;
+  border: 1.6pt solid #BA631E;
+  box-shadow: inset -3px -5px 10px 0px #D9711D;
+  display: inline-block;
+  text-decoration: none;
+  text-align: center;
+}
+.linkButton.small {
+  padding: 10px;
+  font-size: 12px;
+}
+.linkButton:hover {
+  color: white;
+  background-color: #FFA863;
+}
+.linkButton:active {
+  color: white;
+  box-shadow: inset 3px 5px 20px 0px #D9711D;
+}
+.buttonGroup#downloads {
+  width: 233px;
+  padding-top: 5px;
+  margin-bottom: 30px;
+  margin-left: auto;
+  margin-right: auto;
+}
+#githubLink {
+  display: block;
+}
+#resourcesLink {
+  display: block;
+}
+#downloadPaella3 {
+  display: block;
+  width: 189px;
+  margin-top: 55px;
+  margin-left: auto;
+  margin-right: auto;
+  color: white;
+}
+.downloadGroup {
+  width: 250px;
+  float: right;
+}
+.footerText {
+  display: inline-block;
+  height: 50px;
+  vertical-align: top;
+  margin-right: 10px;
+  font-size: 10px;
+}
+.sponsorLogo {
+  width: 100px;
+  display: inline-block;
+}
+.content.footer {
+  border-top: 4px solid #fa8528;
+  padding-top: 10px;
+}
+.menu {
+  margin-top: 165px;
+}
+.menuItem {
+  list-style-type: none;
+  display: inline;
+  margin-right: 30px;
+}
+.menuItemLink {
+  cursor: pointer;
+}
+.menuItemLink.current {
+  color: gray;
+}
+.element {
+  margin-left: auto;
+  display: block;
+  margin-right: auto;
+  width: 65%;
+}
+.imgen {
+  margin-left: auto;
+  width: 100%;
+}
+.txtblock {
+  color: black;
+  font-size: large;
+  font-family: 'Istok Web', sans-serif;
+  font-style: oblique;
+}
diff --git a/src/main/webapp/static/js/paella/player/resources/style/three_streams_icon.svg b/src/main/webapp/static/js/paella/player/resources/style/three_streams_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..de8ea17c0ff04f4549c7138d9bf35a39b67eec1c
--- /dev/null
+++ b/src/main/webapp/static/js/paella/player/resources/style/three_streams_icon.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 57 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <g transform="matrix(1,0,0,1,-11,-242)">
+        <g id="present-mode-1" transform="matrix(0.433529,0,0,0.433529,23.5922,269.247)">
+            <g transform="matrix(1,0,0,1,-23,-17)">
+                <g transform="matrix(1,0,0,1,5,0)">
+                    <path d="M41,34L-5,34L-5,0L41,0L41,34ZM20,22L24.998,30.289C25.21,30.807 25.325,31.582 24.923,31.74C24.361,31.961 23.869,31.935 23.639,31.566L18.598,23.508L13.441,31.566C12.869,32.144 12.275,32.057 12.039,31.861C11.805,31.667 11.623,31.16 12.081,30.289L17,22L5,22L5,5L3,5L3,3L33,3L33,5L31,5L31,22L20,22ZM7,5L29,5L29,20L7,20L7,5ZM15.459,10.085L9.145,17.338L8.52,16.818L15.435,8.876L19.923,13.35L26.11,7.301L26.69,7.869L19.921,14.484L15.459,10.085Z"/>
+                </g>
+            </g>
+        </g>
+        <g id="present-mode-2" transform="matrix(0.598445,0,0,0.598445,39.5,253.173)">
+            <g transform="matrix(1,0,0,1,-23,-17)">
+                <path d="M46,29.891L30.034,29.891L30.034,34L15.909,34L15.909,29.891L0,29.891L0,0L46,0L46,29.891ZM32.092,17L13.908,17C13.428,17 13.036,17.385 13.036,17.86L13.036,19.14C13.036,19.615 13.428,20 13.908,20L18.945,20L18.945,31L27.055,31L27.055,20L32.092,20C32.572,20 32.964,19.615 32.964,19.14L32.964,17.86C32.964,17.385 32.572,17 32.092,17ZM30.088,16C30.086,15.984 29.642,11.315 29.018,10.039C28.392,8.762 25.281,8.717 25.281,8.717C25.281,8.717 24.564,12.025 24.373,12.654C24.18,13.284 24.141,13.43 24.141,13.43C24.141,13.43 23.655,10.234 23.57,9.91C23.507,9.666 23.089,9.65 23,9.65C22.911,9.65 22.493,9.678 22.429,9.921C22.345,10.246 21.996,13.359 21.996,13.359C21.996,13.359 21.89,13.284 21.698,12.654C21.506,12.025 20.719,8.717 20.719,8.717C20.719,8.717 17.608,8.762 16.982,10.039C16.357,11.317 15.912,16 15.912,16L30.088,16ZM24.141,8.717C24.202,8.978 23.363,9.54 23.363,9.54L22.692,9.524C22.692,9.524 21.798,8.978 21.859,8.717C21.916,8.477 22.682,8.503 23,8.5C23.32,8.503 24.084,8.477 24.141,8.717ZM23,1.133C24.735,1.133 26.143,2.638 26.143,4.491C26.143,6.344 24.735,7.848 23,7.848C21.265,7.848 19.857,6.344 19.857,4.491C19.857,2.638 21.265,1.133 23,1.133Z"/>
+            </g>
+        </g>
+        <g id="present-mode-21" serif:id="present-mode-2" transform="matrix(0.433529,0,0,0.433529,55.4115,269.247)">
+            <g transform="matrix(1,0,0,1,-23,-17)">
+                <path d="M46,29.891L30.034,29.891L30.034,34L15.909,34L15.909,29.891L0,29.891L0,0L46,0L46,29.891ZM32.092,17L13.908,17C13.428,17 13.036,17.385 13.036,17.86L13.036,19.14C13.036,19.615 13.428,20 13.908,20L18.945,20L18.945,31L27.055,31L27.055,20L32.092,20C32.572,20 32.964,19.615 32.964,19.14L32.964,17.86C32.964,17.385 32.572,17 32.092,17ZM30.088,16C30.086,15.984 29.642,11.315 29.018,10.039C28.392,8.762 25.281,8.717 25.281,8.717C25.281,8.717 24.564,12.025 24.373,12.654C24.18,13.284 24.141,13.43 24.141,13.43C24.141,13.43 23.655,10.234 23.57,9.91C23.507,9.666 23.089,9.65 23,9.65C22.911,9.65 22.493,9.678 22.429,9.921C22.345,10.246 21.996,13.359 21.996,13.359C21.996,13.359 21.89,13.284 21.698,12.654C21.506,12.025 20.719,8.717 20.719,8.717C20.719,8.717 17.608,8.762 16.982,10.039C16.357,11.317 15.912,16 15.912,16L30.088,16ZM24.141,8.717C24.202,8.978 23.363,9.54 23.363,9.54L22.692,9.524C22.692,9.524 21.798,8.978 21.859,8.717C21.916,8.477 22.682,8.503 23,8.5C23.32,8.503 24.084,8.477 24.141,8.717ZM23,1.133C24.735,1.133 26.143,2.638 26.143,4.491C26.143,6.344 24.735,7.848 23,7.848C21.265,7.848 19.857,6.344 19.857,4.491C19.857,2.638 21.265,1.133 23,1.133Z"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/src/main/webapp/static/themes/light/modules/_course.scss b/src/main/webapp/static/themes/light/modules/_course.scss
index 396f73dd6de2059376eb082ce0b6884654a961c5..953da255d75535d61874aae998e46272b6d80e03 100644
--- a/src/main/webapp/static/themes/light/modules/_course.scss
+++ b/src/main/webapp/static/themes/light/modules/_course.scss
@@ -340,3 +340,32 @@ div.o_correction_navigation {
 		font-weight: bold;
 	}
 }
+
+/** live stream course element */
+
+.o_browser_ie10, .o_browser_ie11 {
+	.o_paella_wrapper {
+		iframe {
+			display: none;
+		}
+		
+		.o_paella_error {
+			display: block;
+		}
+	}
+}
+
+.o_paella_wrapper {
+	iframe {
+		width: 100%;
+		height: 400px;
+		@media (max-width: $screen-sm-min) {
+			height: 300px;
+		}
+	}
+	
+	.o_paella_error {
+		display: none;
+	}
+}
+
diff --git a/src/main/webapp/static/themes/light/theme.css b/src/main/webapp/static/themes/light/theme.css
index 9ed5f2c3f0ad2a0513aeaf110dc517d98611d908..4ef17d06ea5e0cfe33b80df8152edb8436d6a722 100644
--- a/src/main/webapp/static/themes/light/theme.css
+++ b/src/main/webapp/static/themes/light/theme.css
@@ -22,5 +22,5 @@
  *  @author gnaegi, www.frentix.com
  *  @date April. 2014
  * ========================================================
-**//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail,.o_form .o_filepreview img,.o_feed .o_media{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,.o_cal .fc-header-title h2,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,.o_cal .fc-header-title h2 small,h4 .small,.o_cal .fc-header-title h2 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.o_cal .fc-header-title h2,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.o_cal .fc-header-title h2 small,h4 .small,.o_cal .fc-header-title h2 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.o_cal .fc-header-title h2,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff}.bg-primary{background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.428571429;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width: 767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;background-color:#fcfcfc;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#fafafa;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px}input[type="date"].input-sm,.input-group-sm>input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,input[type="time"].input-sm,.input-group-sm>input[type="time"].form-control,.input-group-sm>input[type="time"].input-group-addon,.input-group-sm>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-sm,.input-group-sm>input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].input-group-addon,.input-group-sm>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-sm,.input-group-sm>input[type="month"].form-control,.input-group-sm>input[type="month"].input-group-addon,.input-group-sm>.input-group-btn>input[type="month"].btn{line-height:30px}input[type="date"].input-lg,.input-group-lg>input[type="date"].form-control,.input-group-lg>input[type="date"].input-group-addon,.input-group-lg>.input-group-btn>input[type="date"].btn,input[type="time"].input-lg,.input-group-lg>input[type="time"].form-control,.input-group-lg>input[type="time"].input-group-addon,.input-group-lg>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-lg,.input-group-lg>input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].input-group-addon,.input-group-lg>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-lg,.input-group-lg>input[type="month"].form-control,.input-group-lg>input[type="month"].input-group-addon,.input-group-lg>.input-group-btn>input[type="month"].btn{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"].disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"].disabled,fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,fieldset[disabled] .radio-inline,.checkbox-inline.disabled,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,fieldset[disabled] .radio label,.checkbox.disabled label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn,.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,.form-group-sm .form-control,select[multiple].input-sm,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn,.form-group-sm .form-control{height:auto}.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn,.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,.form-group-lg .form-control,select[multiple].input-lg,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn,.form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label ~ .form-control-feedback{top:25px}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width: 768px){.form-inline .form-group,.o_navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control,.o_navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static,.o_navbar-form .form-control-static{display:inline-block}.form-inline .input-group,.o_navbar-form .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.o_navbar-form .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.o_navbar-form .input-group .input-group-btn,.form-inline .input-group .form-control,.o_navbar-form .input-group .form-control{width:auto}.form-inline .input-group>.form-control,.o_navbar-form .input-group>.form-control{width:100%}.form-inline .control-label,.o_navbar-form .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.o_navbar-form .radio,.form-inline .checkbox,.o_navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.o_navbar-form .radio label,.form-inline .checkbox label,.o_navbar-form .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.o_navbar-form .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"],.o_navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback,.o_navbar-form .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width: 768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width: 768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width: 768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn.focus,.btn:active:focus,.btn:active.focus,.btn.active:focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fcfcfc;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e3e3e3;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#fcfcfc;border-color:#ccc}.btn-default .badge{color:#fcfcfc;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled].active,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fcfcfc;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width: 768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width: 480px) and (orientation: landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (min-width: 768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width: 767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width: 768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm,.btn-group-sm>.navbar-btn.btn{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs,.btn-group-xs>.navbar-btn.btn{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right ~ .navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:hover,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#090909;color:#fff}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:hover,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#337ab7;background-color:#fcfcfc;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fcfcfc;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fcfcfc;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fcfcfc;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.jumbotron,.o_repo_details .o_lead{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{color:inherit}.jumbotron p,.o_repo_details .o_lead p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr,.o_repo_details .o_lead>hr{border-top-color:#d5d5d5}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead,.container-fluid .jumbotron,.container-fluid .o_repo_details .o_lead,.o_repo_details .container-fluid .o_lead{border-radius:6px}.jumbotron .container,.o_repo_details .o_lead .container{max-width:100%}@media screen and (min-width: 768px){.jumbotron,.o_repo_details .o_lead{padding:48px 0}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead,.container-fluid .jumbotron,.container-fluid .o_repo_details .o_lead,.o_repo_details .container-fluid .o_lead{padding-left:60px;padding-right:60px}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4,.alert .o_cal .fc-header-title h2,.o_cal .fc-header-title .alert h2{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fcfcfc;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fcfcfc;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table,.panel-collapse>.table,.panel-collapse>.table-responsive>.table,.panel-collapse>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption,.panel-collapse>.table caption,.panel-collapse>.table-responsive>.table caption,.panel-collapse>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child,.panel-collapse>.table:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child,.panel-collapse>.table:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body,.panel-collapse>.panel-body+.table,.panel-collapse>.panel-body+.table-responsive,.panel-collapse>.table+.panel-body,.panel-collapse>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td,.panel-collapse>.table>tbody:first-child>tr:first-child th,.panel-collapse>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered,.panel-collapse>.table-bordered,.panel-collapse>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive,.panel-collapse>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body div.popover input{max-width:100%}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}.panel-body:nth-child(n+2){border-top:1px solid #ddd}.panel .panel-heading[data-toggle="collapse"]{cursor:pointer}#o_ajax_busy_backdrop{bottom:0;z-index:1020}.form-control-feedback{top:10px}.form-horizontal .has-feedback .form-control-feedback{top:10px}.btn.btn-primary.o_disabled{color:#fff !important}body .progress-bar[aria-valuenow="1"],body .progress-bar[aria-valuenow="2"]{min-width:1px}td.text-left>div.form-inline>label.checkbox-inline>input[type='checkbox'],td.text-left>div.o_navbar-form>label.checkbox-inline>input[type='checkbox']{position:relative}@-moz-document url-prefix(){fieldset{display:table-cell}}@media screen and (max-width: 768px){@supports (-webkit-overflow-scrolling: touch){.form-control,.ui-widget input,.ui-widget select,.ui-widget textarea{font-size:16px}}}@font-face{font-family:'openolat';src:url("../light/fonts/openolat/openolat.eot?4yacgg");src:url("../light/fonts/openolat/openolat.woff") format("woff"),url("../light/fonts/openolat/openolat.ttf") format("truetype"),url("../light/fonts/openolat/openolat.svg") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot");src:url("../../font-awesome/fonts/fontawesome-webfont.woff2") format("woff2"),url("../../font-awesome/fonts/fontawesome-webfont.woff") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.2857142857em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.o_icon-li.o_icon-lg{left:-1.8571428571em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.o_icon-pull-left{float:left}.o_icon-pull-right{float:right}.o_icon.o_icon-pull-left{margin-right:.3em}.o_icon.o_icon-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.o_icon.pull-left{margin-right:.3em}.o_icon.pull-right{margin-left:.3em}.o_icon-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.o_icon-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .o_icon-rotate-90,:root .o_icon-rotate-180,:root .o_icon-rotate-270,:root .o_icon-flip-horizontal,:root .o_icon-flip-vertical{filter:none}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon_absence:before{content:""}.o_icon_absence_authorized:before{content:"";color:#5cb85c}.o_icon_absence_unauthorized:before{content:"";color:#d9534f}.o_icon_accepted:before{content:""}.o_icon_accessibility:before{content:""}.o_icon_actions:before{content:""}.o_icon_add_html:before{content:""}.o_icon_align_left:before{content:""}.o_icon_align_middle:before{content:""}.o_icon_align_right:before{content:""}.o_icon_archive_tool:before{content:""}.o_icon_assessment_mode:before{content:""}.o_icon_assessment_tool:before{content:""}.o_icon_assignment:before{content:"";color:#d9534f}.o_icon_attempt_limit:before{content:""}.o_icon_accept:before{content:"";color:#5cb85c}.o_icon_add:before{content:""}.o_icon_add_member:before{content:""}.o_icon_add_search:before{content:""}.o_icon_audio:before{content:""}.o_icon_back:before{content:""}.o_icon_back_history:before{content:""}.o_icon_banned:before{content:"";color:#d9534f}.o_icon_bold:before{content:""}.o_icon_booking:before{content:""}.o_icon_bookmark:before{content:"";color:#bc2d0c}.o_icon_bookmark_add:before{content:"";color:#bc2d0c}.o_icon_bookmark_header:before{content:""}.o_icon_browse:before{content:""}.o_icon_brush:before{content:""}.o_icon_browsercheck:before{content:""}.o_icon_busy:before{content:""}.o_icon_calendar:before{content:""}.o_icon_calendar_enabled:before{content:""}.o_icon_calendar_disabled:before{content:""}.o_icon_calendar:before{content:""}.o_icon_calendar_sync:before{content:""}.o_icon_cancelled:before{content:""}.o_icon_caret:before{content:""}.o_icon_caret_right:before{content:""}.o_icon_catalog:before{content:""}.o_icon_catalog_sub:before{content:""}.o_icon_certificate:before{content:""}.o_icon_chat:before{content:""}.o_icon_check:before{content:""}.o_icon_check_off:before{content:""}.o_icon_check_on:before{content:""}.o_icon_checkbox:before{content:""}.o_icon_checkbox_checked:before{content:""}.o_icon_circle:before{content:""}.o_icon_circle_color:before{content:""}.o_icon_citation:before{content:""}.o_icon_cleanup:before{content:""}.o_icon_clear_all:before{content:""}.o_icon_close:before{content:""}.o_icon_close_resource:before{content:""}.o_icon_close_tab:before{content:""}.o_icon_close_tool:before{content:""}.o_icon_close_tree:before{content:""}.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before,.o_search_result .o_opener.o_in i:before{content:""}.o_icon_code:before{content:""}.o_icon_color_picker:before{content:""}.o_icon_column:before{content:""}.o_icon_columns:before{content:""}.o_icon_container:before{content:""}.o_icon_copy:before{content:""}.o_icon_courseareas:before{content:""}.o_icon_coursedb:before{content:""}.o_icon_courseeditor:before{content:""}.o_icon_coursefolder:before{content:""}.o_icon_courserun:before{content:""}.o_icon_comments:before{content:""}.o_icon_comments_none:before{content:""}.o_icon_compress:before{content:""}.o_icon_compulsory:before{content:""}.o_icon_content_popup:before{content:""}.o_icon_correct_answer:before{content:"";color:#5cb85c}.o_icon_correct_response:before{content:"";color:#5cb85c}.o_icon_correction:before{content:""}.o_icon_curriculum_element:before{content:""}.o_icon_customize:before{content:""}.o_icon_delete_item:before{content:""}.o_icon_delete:before{content:"";color:#A87E7E}.o_icon_deleted:before{content:""}.o_icon_details:before{content:""}.o_icon_description:before{content:""}.o_icon_dev:before{content:""}.o_icon_disabled:before{content:""}.o_icon_dispensation_authorized:before{content:"";color:#5cb85c}.o_icon_dispensation_unauthorized:before{content:"";color:#f0ad4e}.o_icon_download:before{content:""}.o_icon_edit:before{content:""}.o_icon_edit_file:before{content:""}.o_icon_edit_metadata:before{content:""}.o_icon_element_after:before{content:""}.o_icon_element_before:before{content:""}.o_icon_enabled:before{content:""}.o_icon_enlarge:before{content:""}.o_icon_eportfolio_add:before{content:""}.o_icon_eportfolio_link:before{content:""}.o_icon_eraser:before{content:""}.o_icon_error:before{content:"";color:#d9534f}.o_icon_expand:before{content:""}.o_icon_expenditure:before{content:""}.o_icon_export:before{content:""}.o_icon_external_link:before{content:""}.o_icon_extra_time:before{content:""}.o_icon_failed:before{content:""}.o_icon_files:before{content:""}.o_icon_fileupload:before{content:""}.o_icon_filter:before{content:""}.o_icon_graduate:before{content:""}.o_icon_group:before,.o_BusinessGroup_icon:before{content:""}.o_icon_header:before{content:""}.o_icon_help:before{content:"";cursor:help}.o_icon_home:before{content:""}.o_icon_image:before{content:""}.o_icon_impress:before{content:""}.o_icon_important:before{content:"";color:#f0ad4e}.o_icon_import:before{content:""}.o_icon_incorrect_response:before{content:"";color:#d9534f}.o_icon_info:before{content:"";color:#5bc0de}.o_icon_info_msg:before{content:"";color:#d9534f}.o_icon_info_resource:before{content:""}.o_icon_inheritance_root:before{content:""}.o_icon_inheritance_inherited:before{content:""}.o_icon_inheritance_none:before{content:""}.o_icon_inline_editable:before{content:""}.o_icon_institution:before{content:""}.o_icon_italic:before{content:""}.o_icon_landingpage:before{content:""}.o_icon_language:before{content:""}.o_icon_layout:before{content:""}.o_icon_lecture:before{content:""}.o_icon_left:before{content:""}.o_icon_levels:before{content:""}.o_icon_line:before{content:""}.o_icon_link:before{content:""}.o_icon_link_extern:before{content:""}.o_icon_list:before{content:""}.o_icon_list_num:before{content:""}.o_icon_lifecycle:before{content:""}.o_icon_lifecycle_date:before{content:""}.o_icon_locked:before{content:""}.o_icon_log:before{content:""}.o_icon_login:before{content:""}.o_icon_logout:before{content:""}.o_icon_mandatory:before{content:"";color:#f0ad4e}.o_icon_managed:before{content:"";color:#777}.o_icon_manual:before{content:"";cursor:help}.o_icon_mail:before{content:""}.o_icon_math:before{content:"\03a3"}.o_icon_media:before{content:""}.o_icon_mediacenter:before{content:""}.o_icon_membersmanagement:before{content:""}.o_icon_menuhandel:before{content:""}.o_icon_message:before{content:""}.o_icon_mobile:before{content:""}.o_icon_move:before{content:""}.o_icon_move_down:before{content:""}.o_icon_move_left:before{content:""}.o_icon_move_right:before{content:""}.o_icon_move_up:before{content:""}.o_icon_ms_done:before{content:""}.o_icon_ms_pending:before{content:""}.o_icon_new:before{content:"";color:#5cb85c}.o_icon_new_document:before{content:""}.o_icon_new_folder:before{content:""}.o_icon_new_portfolio:before{content:""}.o_icon_news:before{content:""}.o_icon_next:before{content:""}.o_icon_next_step:before{content:""}.o_icon_next_page:before{content:""}.o_icon_next_toolbar:before{content:""}.o_icon_node_after:before{content:""}.o_icon_node_before:before{content:""}.o_icon_node_under:before{content:""}.o_icon_node_up_down:before{content:""}.o_icon_notes:before{content:""}.o_icon_notice_authorized:before{content:"";color:#5cb85c}.o_icon_notice_unauthorized:before{content:"";color:#f0ad4e}.o_icon_notification:before{content:""}.o_icon_number_of:before{content:""}.o_icon_ok:before{content:"";color:#5cb85c}.o_icon_open_tree:before{content:""}.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before,.o_search_result .o_opener i:before{content:""}.o_icon_openolat:before,.o_icon_provider_olat:before{content:"\E600";font-family:openolat;font-size:10px}.o_icon_options:before{content:""}.o_icon_origin:before{content:""}.o_icon_others:before{content:""}.o_icon_pageing:before{content:""}.o_icon_paragraph:before{content:""}.o_icon_passed:before{content:""}.o_icon_password:before{content:""}.o_icon_pending:before{content:""}.o_icon_phone:before{content:""}.o_icon_post:before{content:""}.o_icon_presence:before{content:""}.o_icon_preview:before{content:""}.o_icon_previous:before{content:""}.o_icon_previous_page:before{content:""}.o_icon_previous_step:before{content:""}.o_icon_previous_toolbar:before{content:""}.o_icon_print:before{content:""}.o_icon_private:before{content:""}.o_icon_progress_success:before{content:"";color:#e5efe5}.o_icon_progress_danger:before{content:"";color:#efe5e5}.o_icon_provider_adfs:before{content:""}.o_icon_provider_facebook:before{content:""}.o_icon_provider_google:before{content:""}.o_icon_provider_guest:before{content:""}.o_icon_provider_ldap:before{content:""}.o_icon_provider_linkedin:before{content:""}.o_icon_provider_oauth:before{content:""}.o_icon_provider_openid:before{content:""}.o_icon_provider_performx:before{content:""}.o_icon_provider_shibboleth:before{content:""}.o_icon_provider_tequila:before{content:""}.o_icon_provider_twitter:before{content:""}.o_icon_publish:before{content:""}.o_icon_pull:before{content:""}.o_icon_quota:before{content:""}.o_icon_qrcode:before{content:""}.o_icon_quickview:before{content:""}.o_icon_radio_off:before{content:""}.o_icon_radio_on:before{content:""}.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:""}.o_icon_rating_off:before{content:""}.o_icon_read:before{content:""}.o_icon_readonly:before{content:"";color:red}.o_icon_readwrite:before{content:""}.o_icon_recycle:before{content:""}.o_icon_rectangle:before{content:""}.o_icon_redo:before{content:""}.o_icon_refresh:before{content:""}.o_icon_reject:before{content:"";color:#d9534f}.o_icon_rejected:before{content:""}.o_icon_reminder:before{content:""}.o_icon_remove:before{content:""}.o_icon_remove_filters:before{content:""}.o_icon_reopen:before{content:""}.o_icon_replace:before{content:""}.o_icon_reply:before{content:""}.o_icon_reply_with_quote:before{content:""}.o_icon_reset:before{content:""}.o_icon_response_feedback:before{content:""}.o_icon_restore:before{content:""}.o_icon_results_visible:before{content:""}.o_icon_results_hidden:before{content:""}.o_icon_reviewer:before{content:""}.o_icon_right:before{content:""}.o_icon_rss:before{content:""}.o_icon_rss_unsubscribe:before{content:"";color:#996633}.o_icon_rubric:before{content:""}.o_icon_rubric_insufficient:before{content:"";color:#d9534f}.o_icon_rubric_sufficient:before{content:"";color:#5cb85c}.o_icon_rubric_neutral:before{content:"";color:#f0ad4e}.o_icon_save:before{content:""}.o_icon_search:before{content:""}.o_icon_select:before{content:""}.o_icon_send:before{content:""}.o_icon_settings:before{content:""}.o_icon_share:before{content:""}.o_icon_show_more:before{content:""}.o_icon_show_less:before{content:""}.o_icon_show_send:before{content:""}.o_icon_shuffle:before{content:""}.o_icon_sign_out:before{content:""}.o_icon_slide_down:before{content:""}.o_icon_slide_up:before{content:""}.o_icon_spacer:before{content:""}.o_icon_split:before{content:""}.o_icon_sort:before{content:""}.o_icon_sort_asc:before{content:""}.o_icon_sort_desc:before{content:""}.o_icon_sort_amount_asc:before{content:""}.o_icon_sort_amount_desc:before{content:""}.o_icon_sort_menu:before{content:""}.o_icon_start:before{content:""}.o_icon_status_available:before{content:"";color:#063}.o_icon_status_chat:before{content:""}.o_icon_status_dnd:before{content:"";color:#cc3}.o_icon_status_unavailable:before{content:"";color:#963}.o_icon_status_not_started:before{content:""}.o_icon_status_in_progress:before{content:""}.o_icon_status_in_review:before{content:""}.o_icon_status_done:before{content:""}.o_icon_statistics_tool:before{content:""}.o_icon_submit:before{content:""}.o_icon_table:before{content:""}.o_icon_table_custom:before{content:""}.o_icon_table_large:before{content:""}.o_icon_tags:before{content:""}.o_icon_textinput:before{content:""}.o_icon_time:before{content:""}.o_icon_timelimit:before{content:""}.o_icon_timelimit_start:before{content:""}.o_icon_timelimit_half:before{content:""}.o_icon_timelimit_end:before{content:""}.o_icon_timetable:before{content:""}.o_icon_toggle:before{content:""}.o_icon_toggle_on:before{content:""}.o_icon_toggle_off:before{content:""}.o_icon_to_read:before{content:""}.o_icon_tool:before{content:""}.o_icon_tool_pdf:before{content:""}.o_icon_tools:before{content:""}.o_icon_top:before{content:""}.o_icon_translation_item:before{content:""}.o_icon_translation_package:before{content:""}.o_icon_unlocked:before{content:""}.o_icon_undo:before{content:""}.o_icon_user:before{content:""}.o_icon_user_vip:before{content:""}.o_icon_user_anonymous:before{content:""}.o_icon_update:before{content:""}.o_icon_upload:before{content:""}.o_icon_version:before{content:""}.o_icon_video:before{content:""}.o_icon_visitingcard.o_icon_waiting:before{content:""}.o_icon_warn:before{content:"";color:#f0ad4e}.o_icon_width_expand:before{content:""}.o_icon_width_collapse:before{content:""}.o_icon_wizard:before{content:""}.o_icon_xing:before{content:"";color:#cfdc00}.o_BinderTemplate_icon:before{content:""}.o_CourseModule_icon:before,.o_course_icon:before{content:""}.o_EPStructuredMapTemplate_icon:before{content:""}.o_FileResource-BLOG_icon:before{content:""}.o_FileResource-IMSCP_icon:before{content:""}.o_FileResource-FORM_icon:before{content:""}.o_FileResource-PODCAST_icon:before{content:""}.o_FileResource-SHAREDFOLDER:before{content:""}.o_FileResource-SCORMCP_icon:before{content:""}.o_FileResource-SURVEY_icon:before{content:""}.o_FileResource-TEST_icon:before{content:""}.o_FileResource-IMSQTI21_icon:before{content:""}.o_FileResource-WIKI_icon:before{content:""}.o_FileResource-SHAREDFOLDER_icon:before{content:""}.o_FileResource-GLOSSARY_icon:before{content:""}.o_FileResource-PDF_icon:before{content:""}.o_FileResource-XLS_icon:before{content:""}.o_FileResource-PPT_icon:before{content:""}.o_FileResource-DOC_icon:before{content:""}.o_FileResource-ANIM_icon:before{content:""}.o_FileResource-IMAGE_icon:before{content:""}.o_FileResource-SOUND_icon:before{content:""}.o_FileResource-MOVIE_icon:before{content:""}.o_FileResource-FILE_icon:before{content:""}.o_FileResource-VIDEO_icon:before{content:""}.o_CourseModule_icon_closed:before{content:""}.o_icon_repo_status_preparation:before{content:""}.o_icon_repo_status_review:before{content:""}.o_icon_repo_status_coachpublished:before{content:""}.o_icon_repo_status_published:before{content:""}.o_icon_repo_status_closed:before{content:""}.o_icon_repo_status_trash:before{content:""}.o_icon_repo_status_deleted:before{content:""}.o_sp_icon:before{content:""}.o_st_icon:before{content:""}.o_tu_icon:before{content:""}.o_bc_icon:before{content:""}.o_lti_icon:before{content:""}.o_cp_icon:before{content:""}.o_cp_item:before{content:""}.o_scorm_icon:before{content:""}.o_en_icon:before{content:""}.o_fo_icon:before{content:""}.o_co_icon:before{content:""}.o_infomsg_icon:before{content:""}.o_cal_icon:before{content:""}.o_wiki_icon:before{content:""}.o_podcast_icon:before{content:""}.o_pf_icon:before{content:""}.o_blog_icon:before{content:""}.o_ep_icon:before{content:""}.o_ep_icon_v1:before{content:""}.o_iqtest_icon:before{content:""}.o_iqself_icon:before{content:""}.o_iqsurv_icon:before{content:""}.o_survey_icon:before{content:""}.o_qtiassessment_icon:before{content:""}.o_ta_icon:before{content:""}.o_gta_icon:before{content:""}.o_ms_icon:before{content:""}.o_dialog_icon:before{content:""}.o_projectbroker_icon:before{content:""}.o_ll_icon:before{content:""}.o_den_icon:before{content:""}.o_cmembers_icon:before{content:""}.o_cl_icon:before{content:""}.o_vc_icon:before{content:""}.o_video_icon:before{content:""}.o_vitero_icon:before{content:""}.o_openmeetings_icon:before{content:""}.o_gotomeeting_icon:before{content:""}.o_card2brain_icon:before{content:"\E800";font-family:openolat;font-size:120%}.o_edubase_icon:before{content:"\E885";font-family:openolat}.o_livestream_icon:before{content:""}.o_portlet_infomsg_icon:before{content:""}.o_portlet_quickstart_icon:before{content:""}.o_portlet_bookmark_icon:before{content:""}.o_portlet_groups_icon:before{content:""}.o_portlet_notes_icon:before{content:""}.o_portlet_noti_icon:before{content:""}.o_portlet_eff_icon:before{content:""}.o_portlet_repository_student_icon:before{content:""}.o_portlet_repository_teacher_icon:before{content:""}.o_portlet_iframe_icon:before{content:""}.o_portlet_sysinfo_icon:before{content:""}.o_portlet_dyk_icon:before{content:""}.o_portlet_infomessages_icon:before{content:""}.o_portlet_cal_icon:before{content:""}.o_portlet_institutions_icon:before{content:""}.o_portlet_links_icon:before{content:""}.o_portlet_shibboleth_icon:before{content:""}.o_icon_qpool:before{content:""}.o_icon_pool_private:before{content:""}.o_icon_pool_public:before{content:""}.o_icon_pool_my_items:before{content:""}.o_icon_pool_favorits:before{content:""}.o_icon_pool_collection:before{content:""}.o_icon_pool_pool:before{content:""}.o_icon_pool_share:before{content:""}.o_icon_qitem_commands:before{content:""}.o_icon_qitem_convert:before{content:""}.o_icon_qitem_copy:before{content:""}.o_icon_qitem_delete:before{content:""}.o_icon_qitem_draft:before{content:""}.o_icon_qitem_endOfLife:before{content:""}.o_icon_qitem_finalVersion:before{content:""}.o_icon_qitem_export:before{content:""}.o_icon_qitem_hide_metadata:before{content:""}.o_icon_qitem_import:before{content:""}.o_icon_qitem_new:before{content:""}.o_icon_qitem_review:before{content:""}.o_icon_qitem_revised:before{content:""}.o_icon_qitem_share:before{content:""}.o_icon_qitem_show_metadata:before{content:""}.o_icon_qitem_status:before{content:""}.o_forum_message_icon:before{content:""}.o_calendar_icon:before{content:""}.o_icon_pf_section_draft:before{content:"";color:#f0ad4e}.o_icon_pf_section_progress:before{content:"";color:#f0ad4e}.o_icon_pf_section_submitted:before{content:"";color:#337ab7}.o_icon_pf_section_closed:before{content:"";color:#5cb85c}.o_icon_pf_binder:before{content:""}.o_icon_pf_entry:before{content:""}.o_icon_pf_entry_draft:before{content:"";color:#f0ad4e}.o_icon_pf_entry_published:before{content:"";color:#337ab7}.o_icon_pf_entry_revision:before{content:"";color:#d9534f}.o_icon_pf_entry_closed:before{content:"";color:#5cb85c}.o_icon_pf_entry_deleted:before{content:"";color:#000}.o_icon_pf_history:before{content:""}.o_icon_pf_my_shares:before{content:""}.o_icon_pf_new_entry:before{content:""}.o_icon_pf_quick_links:before{content:""}.o_icon_pf_page:before{content:""}.o_icon_pf_section:before{content:""}.o_icon_pf_shared_with_me:before{content:""}.o_icon_pf_trash:before{content:""}.o_forum_status_thread_icon:before{content:""}.o_forum_status_sticky_closed_icon:before{content:""}.o_forum_status_sticky_icon:before{content:""}.o_forum_status_closed_icon:before{content:"";color:#a94442}.o_forum_status_opened_icon:before{content:"";color:#3c763d}.o_forum_status_hidden_icon:before{content:"";color:#a94442}.o_forum_status_visible_icon:before{content:"";color:#3c763d}.o_forum_all_icon:before{content:""}.o_forum_all_flat_icon:before{content:""}.o_forum_one_icon:before{content:""}.o_forum_marked_icon:before{content:""}.o_forum_new_icon:before{content:""}.o_mi_qpool_import:before{content:""}.o_mi_qtidrawing:before{content:""}.o_mi_qtisection:before{content:""}.o_mi_qtisc:before{content:""}.o_mi_qtimatch:before{content:""}.o_mi_qtimatch_draganddrop:before{content:""}.o_mi_qtimatch_truefalse:before{content:""}.o_mi_qtimc:before{content:""}.o_mi_qtikprim:before{content:""}.o_mi_qtifib:before{content:""}.o_mi_qtinumerical:before{content:""}.o_mi_qtihotspot:before{content:""}.o_mi_qtihottext:before{content:""}.o_mi_qtiessay:before{content:""}.o_mi_qtiunkown:before{content:""}.o_mi_qtiupload:before{content:""}.o_as_mode_leadtime:before{content:""}.o_as_mode_assessment:before{content:""}.o_as_mode_followup:before{content:""}.o_as_mode_closed:before{content:'-'}.o_as_mode_stop:before{content:""}.o_icon_qti_notPresented:before{content:"";color:#ddd}.o_icon_qti_notAnswered:before{content:"";color:#f0ad4e}.o_icon_qti_answered:before{content:"";color:#5cb85c}.o_icon_qti_ended:before{content:"";color:#5bc0de}.o_icon_qti_invalid:before{content:"";color:#d9534f}.o_icon_qti_review:before{content:"";color:#5bc0de}.o_icon_qti_reviewNotSeen:before,.o_icon_qti_reviewNotAnswered:before,.o_icon_qti_reviewInvalid:before{content:"";color:#5bc0de}.o_icon_qti_end_testpart:before{content:""}.o_icon_qti_close_test:before{content:""}.o_icon_qti_cancel:before{content:""}.o_icon_qti_suspend:before{content:""}.o_icon_qti_close_results:before{content:""}.o_icon_qti_hint:before{content:""}.o_icon_qti_summary_notAnswered:before{content:"";color:#f0ad4e}.o_icon_qti_summary_ended:before{content:"";color:#d9534f}.o_icon_qti_summary_correct:before{content:"";color:#5cb85c}.o_lectures_current:before{content:"";color:#f0ad4e}.o_lectures_next:before{content:""}.o_lectures_pending:before{content:"";color:#d9534f}.o_lectures_closed:before{content:""}.o_lectures_rollcall_ok:before{content:"";color:#5cb85c}.o_lectures_rollcall_warning:before{content:"";color:#f0ad4e}.o_lectures_rollcall_danger:before{content:"";color:#d9534f}.o_lectures_rollcall_free:before{content:"";color:#969696}.o_lectures_rollcall_notice:before{content:"";color:#969696}.o_lectures_rollcall_pending:before{content:"";color:#b8b8b8}.o_lectures_attended:before{content:"";color:#5cb85c}.o_lectures_authorized:before{content:"";color:#f0ad4e}.o_lectures_absent:before{content:"";color:#d9534f}.o_absences_col_warning:before{content:""}.o_absences_col_alert:before{content:""}.o_icon_taxonomy:before{content:""}.o_icon_taxonomy_level:before{content:""}.o_icon_taxonomy_level_leaf:before{content:""}.o_icon_taxonomy_templates:before{content:""}.o_icon_taxonomy_levels:before{content:""}.o_black_led:before{content:"";color:#337ab7}.o_green_led:before{content:"";color:#5cb85c}.o_yellow_led:before{content:"";color:#f0ad4e}.o_red_led:before{content:"";color:#d9534f}.o_icon_identity_permanent:before{content:""}.o_icon_identity_pending:before{content:""}.o_icon_identity_login_denied:before{content:""}.o_icon_identity_deleted:before{content:""}.o_ac_token_icon:before{content:""}.o_ac_free_icon:before{content:""}.o_ac_group_icon:before{content:""}.o_ac_membersonly_icon:before{content:""}.o_ac_guests_icon:before{content:""}.o_ac_paypal_icon:before{content:""}.o_ac_status_canceled_icon:before{content:"";color:#f0ad4e}.o_ac_status_error_icon:before{content:"";color:#d9534f}.o_ac_status_new_icon:before{content:"";color:#337ab7}.o_ac_status_success_icon:before{content:"";color:#5cb85c}.o_ac_status_waiting_icon:before{content:"";color:#337ab7}.o_ac_order_status_new_icon:before{content:"";color:#337ab7}.o_ac_order_status_prepayment_icon:before{content:"";color:#5bc0de}.o_ac_order_status_payed_icon:before{content:"";color:#5cb85c}.o_ac_order_status_canceled_icon:before{content:"";color:#f0ad4e}.o_ac_order_status_error_icon:before{content:"";color:#d9534f}.o_ac_order_status_warning_icon:before{content:"";color:#f0ad4e}.o_scorm_org:before{content:""}.o_scorm_item:before{content:""}.o_scorm_completed:before,.o_scorm_passed:before{content:""}.o_scorm_failed:before{content:""}.o_scorm_incomplete:before{content:""}.o_scorm_not_attempted:before{background:none}.o_midpub:before{content:""}.o_midwarn:before{content:""}.o_midlock:before{content:""}.o_miderr:before{content:""}.o_middel:before{content:""}.o_filetype_file:before,.o_filetype_ico:before{content:""}.o_filetype_folder:before{content:""}.o_filetype_folder_open:before{content:""}.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:""}.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before{content:""}.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:""}.o_filetype_xls:before,.o_filetype_xlsx:before{content:""}.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:""}.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:""}.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:""}.o_filetype_ps:before,.o_filetype_pdf:before{content:""}.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:""}.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before{content:""}.o_filetype_odt:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:""}.o_icon_share_social:before{content:""}.o_icon_apple:before{content:""}.o_icon_facebook:before{content:""}.o_icon_twitter:before{content:""}.o_icon_google:before{content:""}.o_icon_delicious:before{content:""}.o_icon_digg:before{content:""}.o_icon_mailto:before{content:""}.o_icon_link:before{content:""}.o_icon_yahoo:before{content:""}.o_icon_eva_disclaimer:before{content:""}.o_icon_eva_end_show:before{content:""}.o_icon_eva_end_hide:before{content:""}.o_icon_eva_export:before{content:""}.o_icon_eva_pdf:before{content:""}.o_icon_eva_print:before{content:""}.o_icon_eva_session_info:before{content:""}.o_icon_eva_mc:before{content:""}.o_icon_eva_sc:before{content:""}.o_icon_eva_sc:before{content:""}.o_icon_surv_reset:before{content:""}.o_icon_qual_ana_hide_filter:before{content:""}.o_icon_qual_ana_pres_edit:before{content:""}.o_icon_qual_ana_export:before{content:""}.o_icon_qual_ana_pres_delete:before{content:""}.o_icon_qual_ana_pdf:before{content:""}.o_icon_qual_ana_print:before{content:""}.o_icon_qual_ana_show_filter:before{content:""}.o_icon_qual_ana_trend:before{content:""}.o_icon_qual_ana_trend_arrow:before{content:""}.o_icon_qual_dc_create:before{content:""}.o_icon_qual_dc_delete:before{content:""}.o_icon_qual_dc_finished:before{content:""}.o_icon_qual_dc_preparation:before{content:""}.o_icon_qual_dc_ready:before{content:""}.o_icon_qual_dc_running:before{content:""}.o_icon_qual_exec_future:before{content:""}.o_icon_qual_exec_over:before{content:""}.o_icon_qual_exec_participating:before{content:""}.o_icon_qual_exec_participated:before{content:""}.o_icon_qual_exec_ready:before{content:""}.o_icon_qual_gen_ce_add:before{content:""}.o_icon_qual_gen_create:before{content:""}.o_icon_qual_gen_delete:before{content:""}.o_icon_qual_gen_disabled:before{content:""}.o_icon_qual_gen_enabled:before{content:""}.o_icon_qual_gen_re_add:before{content:""}.o_icon_qual_part_user_add:before{content:""}.o_icon_qual_part_user_add_course:before{content:""}.o_icon_qual_part_user_add_curele:before{content:""}.o_icon_qual_part_execute:before{content:""}.o_icon_lic_add:before{content:""}.o_icon_lic_public_domain:before{content:"\E810";font-family:openolat;font-size:120%}.o_icon_lic_cc0:before{content:"\E811";font-family:openolat;font-size:120%}.o_icon_lic_by:before{content:"\E812";font-family:openolat;font-size:120%}.o_icon_lic_by_sa:before{content:"\E813";font-family:openolat;font-size:120%}.o_icon_lic_by_nd:before{content:"\E814";font-family:openolat;font-size:120%}.o_icon_lic_by_nc:before{content:"\E815";font-family:openolat;font-size:120%}.o_icon_lic_by_nc_sa:before{content:"\E817";font-family:openolat;font-size:120%}.o_icon_lic_by_nc_nd:before{content:"\E819";font-family:openolat;font-size:120%}.o_icon_lic_all_rights_reserved:before{content:""}.o_icon_lic_freetext:before{content:""}.o_icon_lic_general:before{content:""}.o_icon_lic_youtube:before{content:""}a.o_icon:hover,a.o_icon:focus{text-decoration:none}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}.o_block_bottom,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry,.o_header_with_buttons,.o_search_result{margin-bottom:1em}.o_block_top,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_small_bottom,.o_block_small{margin-bottom:0.5em}.o_block_small_top,.o_block_small{margin-top:0.5em}.o_block_large_bottom,.o_block_large,.o_block_with_datecomp,.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left,.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right,.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle,.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill,.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file,.o_pf_content .o_forum,.gu-mirror .o_forum,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_wiki,.o_login .o_login_footer_wrapper,.o_portlet{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_block_with_datecomp,.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left,.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right,.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle,.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill,.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file,.o_pf_content .o_forum,.gu-mirror .o_forum,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_wiki,.o_login .o_login_footer_wrapper,.o_portlet{margin-top:2em}.o_block_move_up{margin-top:-1em}.o_block_move_up_small{margin-top:-0.5em}.o_block_move_up_large{margin-top:-2em}.o_block_inline,.o_block_inline_left,.o_block_inline_both,.o_block_inline_right{display:inline-block;vertical-align:top}.o_block_inline_left,.o_block_inline_both{margin-left:0.5em}.o_block_inline_right,.o_block_inline_both{margin-right:0.5em}.o_block_centered_wrapper{display:table;width:100%;height:100%}.o_block_centered_content{display:table-cell;vertical-align:middle;text-align:center}.o_block_imagebg{background-repeat:no-repeat;background-position:center;background-size:cover}.o_block_imagebg span{padding:2px;background-color:rgba(255,255,255,0.8)}.o_block_imagebg h1,.o_block_imagebg h2,.o_block_imagebg h3,.o_block_imagebg h4,.o_block_imagebg .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_block_imagebg h2,.o_block_imagebg h5,.o_block_imagebg p{padding:2px;background-color:rgba(255,255,255,0.8);display:inline-block}.o_block_imagebg h1:after,.o_block_imagebg h2:after,.o_block_imagebg h3:after,.o_block_imagebg h4:after,.o_block_imagebg .o_cal .fc-header-title h2:after,.o_cal .fc-header-title .o_block_imagebg h2:after,.o_block_imagebg h5:after,.o_block_imagebg p:after{content:' ';display:block}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h2,.o_header_with_buttons h3,.o_header_with_buttons h4,.o_header_with_buttons .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_header_with_buttons h2,.o_header_with_buttons h5,.o_header_with_buttons h6{display:inline-block}.o_header_with_buttons .o_button_group{margin-bottom:0;float:right}.o_header_with_buttons h1+.o_button_group{margin-top:28px}.o_header_with_buttons h2+.o_button_group{margin-top:24px}.o_header_with_buttons h3+.o_button_group{margin-top:20px}.o_header_with_buttons h4+.o_button_group,.o_header_with_buttons .o_cal .fc-header-title h2+.o_button_group,.o_cal .fc-header-title .o_header_with_buttons h2+.o_button_group{margin-top:10px}.o_header_with_buttons h5+.o_button_group{margin-top:6.6666666667px}.o_header_with_buttons h6+.o_button_group{margin-top:5px}#o_main_center .o_header_with_buttons h2+.o_button_group{margin-top:0}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_button_textstyle:before{content:'['}.o_button_textstyle:after{content:']'}.panel-imagebg{background-repeat:no-repeat;background-position:center;background-size:cover}.panel-imagebg.panel-default>.panel-heading{background-color:rgba(255,255,255,0.8);border-bottom:transparent}.panel-imagebg .panel-body span{padding:2px;background-color:rgba(255,255,255,0.8)}.panel-placeholder{border-width:2px;border-style:dashed;border-color:#ccc;border-radius:10px;background-color:#fcfcfc}.panel-placeholder .panel-body{padding:10px}.panel-placeholder .panel-body:nth-child(n+2){border-top:none}.panel-placeholder .panel-body h3:nth-child(1),.panel-placeholder .panel-body h4:nth-child(1),.panel-placeholder .panel-body .o_cal .fc-header-title h2:nth-child(1),.o_cal .fc-header-title .panel-placeholder .panel-body h2:nth-child(1),.panel-placeholder .panel-body h5:nth-child(1){margin-top:0}.panel-placeholder .panel-body .o_button_group{margin-bottom:0}.panel-placeholder .panel-heading{border-top-right-radius:8px;border-top-left-radius:8px;border-width:2px;border-style:dashed;border-color:#ccc;border-top:none;border-left:none;border-right:none;color:#888;font-weight:bold}.panel-placeholder .panel-footer{border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-width:2px;border-style:dashed;border-color:#ccc;border-bottom:none;border-left:none;border-right:none}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:11px}.o_small,.b_small,p.b_small,div.b_small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o_comment,.o_bc_meta,.tooltip,.o_htmleditor .o_metadata .o_lastmodified,.o_noti,.o_block_with_datecomp .o_meta,.o_togglebox_wrapper div.o_togglebox_content .o_hide,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label,.o_course_run .o_toc .o_entry,.o_assessment_test_results .o_qti_to_overview{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:20px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_highlight_on_hover:hover{background-color:#f5f5f5}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,#o_main_wrapper #o_toplink:hover,#o_footer_powered a:hover,#o_share a:hover,#o_share_social_container a:hover,.o_toolbar .o_tools_container a:hover,.o_button_toggle:hover,.o_im_message_group .o_im_from:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:hover,.o_login .o_login_register:hover,.o_disabled:focus,.b_disabled:focus,#o_main_wrapper #o_toplink:focus,#o_footer_powered a:focus,#o_share a:focus,#o_share_social_container a:focus,.o_toolbar .o_tools_container a:focus,.o_button_toggle:focus,.o_im_message_group .o_im_from:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:focus,.o_login .o_login_register:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}.o_copy_code input,.o_copy_code textarea,.b_copy_code input,code input,pre input,.b_copy_code textarea,code textarea,pre textarea{border:0;width:90%;background:transparent}.o_nowrap,.b_copy_code,p.b_copy_code,div.b_copy_code,code{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o_titled_wrapper .o_content{margin-top:20px}.o_video,.o_video video,.b_video,.o_video_wrapper{display:inline-block;max-width:100%;height:auto;max-width:100%}.o_image,.o_image img,img,.b_image{display:inline-block;max-width:100%;height:auto;max-width:100%}.o_figure_caption_bottom{display:inline-block;min-width:50%}.o_figure_caption_bottom figure{display:table}.o_image_vertical_center_helper{display:inline-block;height:100%;vertical-align:middle}.o_image_vertical_center_helper+.o_image img{vertical-align:middle}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_page_margins{padding:25px}.o_dragable,.o_page_fragment_edit .o_page_tools_dd:before,.o_page_drop{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.o_dragable:active,.o_page_fragment_edit .o_page_tools_dd:active:before,.o_page_drop:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_draging,.gu-mirror{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_draging:active,.gu-mirror:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_hidden{visibility:hidden}h1{color:#337ab7}h2{color:#337ab7}h3{color:#337ab7}h4,.o_cal .fc-header-title h2{color:#337ab7}h5{color:#337ab7}h5{color:#337ab7}fieldset legend{color:#333}.o_user_content_block a{color:#337ab7;text-decoration:none}.o_user_content_block a:hover,.o_user_content_block a:focus{color:#23527c;text-decoration:underline}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{line-height:1.428571429;vertical-align:top}table.b_default td,table.b_default th{padding:8px;vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:8px;border:1px solid #777}table.b_grid thead td,table.b_grid th{background:#eee;font-weight:bold}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:8px;border:1px solid #777}table.b_border thead td,table.b_border th{background:#eee;font-weight:bold}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:8px;border:0 !important}table.b_borderless thead td,table.b_borderless th{font-weight:bold}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}table.b_gray{border-collapse:collapse}table.b_gray td,table.b_gray th{padding:8px;background:#eee;border:1px solid #fbfbfb}table.b_gray thead td,table.b_gray th{background:#d5d5d5;font-weight:bold}table.b_gray tbody tr:nth-child(even) td{background:#fbfbfb;border:1px solid #eee}table.b_gray.b_no_stripes tbody tr:nth-child(even) td{background:#eee;border:1px solid #fbfbfb}@media print{table.b_gray td,table.b_gray th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eee !important}table.b_gray thead td,table.b_gray th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#d5d5d5 !important}table.b_gray tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fbfbfb !important}}table.b_blue{border-collapse:collapse}table.b_blue td,table.b_blue th{padding:8px;background:#d9edf7;border:1px solid #eef7fb}table.b_blue thead td,table.b_blue th{background:#afd9ee;font-weight:bold}table.b_blue tbody tr:nth-child(even) td{background:#eef7fb;border:1px solid #d9edf7}table.b_blue.b_no_stripes tbody tr:nth-child(even) td{background:#d9edf7;border:1px solid #eef7fb}@media print{table.b_blue td,table.b_blue th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#d9edf7 !important}table.b_blue thead td,table.b_blue th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#afd9ee !important}table.b_blue tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eef7fb !important}}table.b_green{border-collapse:collapse}table.b_green td,table.b_green th{padding:8px;background:#dff0d8;border:1px solid #eef7ea}table.b_green thead td,table.b_green th{background:#c1e2b3;font-weight:bold}table.b_green tbody tr:nth-child(even) td{background:#eef7ea;border:1px solid #dff0d8}table.b_green.b_no_stripes tbody tr:nth-child(even) td{background:#dff0d8;border:1px solid #eef7ea}@media print{table.b_green td,table.b_green th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#dff0d8 !important}table.b_green thead td,table.b_green th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#c1e2b3 !important}table.b_green tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eef7ea !important}}table.b_yellow{border-collapse:collapse}table.b_yellow td,table.b_yellow th{padding:8px;background:#fcf8e3;border:1px solid #fefefa}table.b_yellow thead td,table.b_yellow th{background:#f7ecb5;font-weight:bold}table.b_yellow tbody tr:nth-child(even) td{background:#fefefa;border:1px solid #fcf8e3}table.b_yellow.b_no_stripes tbody tr:nth-child(even) td{background:#fcf8e3;border:1px solid #fefefa}@media print{table.b_yellow td,table.b_yellow th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fcf8e3 !important}table.b_yellow thead td,table.b_yellow th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f7ecb5 !important}table.b_yellow tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fefefa !important}}table.b_red{border-collapse:collapse}table.b_red td,table.b_red th{padding:8px;background:#f2dede;border:1px solid #f9f0f0}table.b_red thead td,table.b_red th{background:#e4b9b9;font-weight:bold}table.b_red tbody tr:nth-child(even) td{background:#f9f0f0;border:1px solid #f2dede}table.b_red.b_no_stripes tbody tr:nth-child(even) td{background:#f2dede;border:1px solid #f9f0f0}@media print{table.b_red td,table.b_red th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f2dede !important}table.b_red thead td,table.b_red th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#e4b9b9 !important}table.b_red tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f9f0f0 !important}}table.a_responsive{width:auto !important}@media (max-width: 768px){.a_responsive td{display:block}}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#337ab7}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}a.b_link_mailto{color:#337ab7}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}a.b_link_forward{color:#337ab7}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_float_left_clear_nomargin{float:left;display:block;margin:0 0 0 0}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}p.b_figure_title{margin:20px 0 5px 0;font-size:85%;font-family:inherit}p.b_figure_caption{clear:both;margin:5px 0 20px 0}caption,figcaption,.o_caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left;font-style:italic}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}figure.align-left{float:left}figure.align-right{float:right}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}img.align-left{float:left}img.align-right{float:right}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}figure.image.align-center{display:block;text-align:center}figure.image.align-left{float:none;display:block;text-align:left}figure.image.align-left figcaption{text-align:left}figure.image.align-right{float:none;display:block;text-align:right}figure.image.align-right figcaption{text-align:right}figure.image{margin:2em 0 2em 0;border:0;background:none}figure.image img.b_float_left,figure.image img.b_float_left_clear,figure.image img.b_float_right,figure.image img.b_float_right_clear,figure.image img.b_float_left_clear_nomargin,figure.image img.b_centered{float:none;display:inline-block;margin:0}figure.image figcaption{font-size:90%;font-style:italic}.radial-progress{margin:10px;width:120px;height:120px;background-color:#eee;border-radius:50%;display:inline-block;position:relative}.radial-progress .circle .mask,.radial-progress .circle .fill,.radial-progress .circle .shadow{width:100%;height:100%;position:absolute;border-radius:50%}.radial-progress .circle .shadow{box-shadow:none inset}.radial-progress .circle .mask,.radial-progress .circle .fill{-webkit-backface-visibility:hidden;transition:-webkit-transform 1s;transition:-ms-transform 1s;transition:transform 1s;border-radius:50%}.radial-progress .circle .mask{clip:rect(0px, 120px, 120px, 60px)}.radial-progress .circle .mask .fill{clip:rect(0px, 60px, 120px, 0px);background-color:#337ab7}.radial-progress .inset{width:90px;height:90px;position:absolute;border-radius:50%;margin-left:15px;margin-top:15px;overflow:hidden;background-color:#fff;box-shadow:none;font-size:21.6px}.radial-progress .inset .bgIcon{position:absolute;font-size:80px;top:5px;left:-5px;opacity:0;transition:opacity 0;transition-delay:1s}.radial-progress .inset .percentage{height:80%;width:80%;position:absolute;top:10%;left:10%;display:table;line-height:1}.radial-progress .inset .percentage .centeredWrapper{display:table-cell;vertical-align:middle;text-align:center}.radial-progress .inset .percentage .centeredWrapper .number{font-weight:800;color:#337ab7}.radial-progress .inset .percentage .centeredWrapper .addon{color:#777;margin-top:5px}.radial-progress .inset .percentage .centeredWrapper .addon div:nth-of-type(1){font-size:0.55em;font-weight:bold}.radial-progress .inset .percentage .centeredWrapper .addon div:nth-of-type(2){margin-top:2px;font-size:0.45em}.radial-progress[data-progress="0"] .circle .mask.full,.radial-progress[data-progress="0"] .circle .fill{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.radial-progress[data-progress="0"] .circle .fill.fix{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.radial-progress[data-progress="1"] .circle .mask.full,.radial-progress[data-progress="1"] .circle .fill{-webkit-transform:rotate(1.8deg);-ms-transform:rotate(1.8deg);transform:rotate(1.8deg)}.radial-progress[data-progress="1"] .circle .fill.fix{-webkit-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);transform:rotate(3.6deg)}.radial-progress[data-progress="2"] .circle .mask.full,.radial-progress[data-progress="2"] .circle .fill{-webkit-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);transform:rotate(3.6deg)}.radial-progress[data-progress="2"] .circle .fill.fix{-webkit-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);transform:rotate(7.2deg)}.radial-progress[data-progress="3"] .circle .mask.full,.radial-progress[data-progress="3"] .circle .fill{-webkit-transform:rotate(5.4deg);-ms-transform:rotate(5.4deg);transform:rotate(5.4deg)}.radial-progress[data-progress="3"] .circle .fill.fix{-webkit-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);transform:rotate(10.8deg)}.radial-progress[data-progress="4"] .circle .mask.full,.radial-progress[data-progress="4"] .circle .fill{-webkit-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);transform:rotate(7.2deg)}.radial-progress[data-progress="4"] .circle .fill.fix{-webkit-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);transform:rotate(14.4deg)}.radial-progress[data-progress="5"] .circle .mask.full,.radial-progress[data-progress="5"] .circle .fill{-webkit-transform:rotate(9deg);-ms-transform:rotate(9deg);transform:rotate(9deg)}.radial-progress[data-progress="5"] .circle .fill.fix{-webkit-transform:rotate(18deg);-ms-transform:rotate(18deg);transform:rotate(18deg)}.radial-progress[data-progress="6"] .circle .mask.full,.radial-progress[data-progress="6"] .circle .fill{-webkit-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);transform:rotate(10.8deg)}.radial-progress[data-progress="6"] .circle .fill.fix{-webkit-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);transform:rotate(21.6deg)}.radial-progress[data-progress="7"] .circle .mask.full,.radial-progress[data-progress="7"] .circle .fill{-webkit-transform:rotate(12.6deg);-ms-transform:rotate(12.6deg);transform:rotate(12.6deg)}.radial-progress[data-progress="7"] .circle .fill.fix{-webkit-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);transform:rotate(25.2deg)}.radial-progress[data-progress="8"] .circle .mask.full,.radial-progress[data-progress="8"] .circle .fill{-webkit-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);transform:rotate(14.4deg)}.radial-progress[data-progress="8"] .circle .fill.fix{-webkit-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);transform:rotate(28.8deg)}.radial-progress[data-progress="9"] .circle .mask.full,.radial-progress[data-progress="9"] .circle .fill{-webkit-transform:rotate(16.2deg);-ms-transform:rotate(16.2deg);transform:rotate(16.2deg)}.radial-progress[data-progress="9"] .circle .fill.fix{-webkit-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);transform:rotate(32.4deg)}.radial-progress[data-progress="10"] .circle .mask.full,.radial-progress[data-progress="10"] .circle .fill{-webkit-transform:rotate(18deg);-ms-transform:rotate(18deg);transform:rotate(18deg)}.radial-progress[data-progress="10"] .circle .fill.fix{-webkit-transform:rotate(36deg);-ms-transform:rotate(36deg);transform:rotate(36deg)}.radial-progress[data-progress="11"] .circle .mask.full,.radial-progress[data-progress="11"] .circle .fill{-webkit-transform:rotate(19.8deg);-ms-transform:rotate(19.8deg);transform:rotate(19.8deg)}.radial-progress[data-progress="11"] .circle .fill.fix{-webkit-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);transform:rotate(39.6deg)}.radial-progress[data-progress="12"] .circle .mask.full,.radial-progress[data-progress="12"] .circle .fill{-webkit-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);transform:rotate(21.6deg)}.radial-progress[data-progress="12"] .circle .fill.fix{-webkit-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);transform:rotate(43.2deg)}.radial-progress[data-progress="13"] .circle .mask.full,.radial-progress[data-progress="13"] .circle .fill{-webkit-transform:rotate(23.4deg);-ms-transform:rotate(23.4deg);transform:rotate(23.4deg)}.radial-progress[data-progress="13"] .circle .fill.fix{-webkit-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);transform:rotate(46.8deg)}.radial-progress[data-progress="14"] .circle .mask.full,.radial-progress[data-progress="14"] .circle .fill{-webkit-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);transform:rotate(25.2deg)}.radial-progress[data-progress="14"] .circle .fill.fix{-webkit-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);transform:rotate(50.4deg)}.radial-progress[data-progress="15"] .circle .mask.full,.radial-progress[data-progress="15"] .circle .fill{-webkit-transform:rotate(27deg);-ms-transform:rotate(27deg);transform:rotate(27deg)}.radial-progress[data-progress="15"] .circle .fill.fix{-webkit-transform:rotate(54deg);-ms-transform:rotate(54deg);transform:rotate(54deg)}.radial-progress[data-progress="16"] .circle .mask.full,.radial-progress[data-progress="16"] .circle .fill{-webkit-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);transform:rotate(28.8deg)}.radial-progress[data-progress="16"] .circle .fill.fix{-webkit-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);transform:rotate(57.6deg)}.radial-progress[data-progress="17"] .circle .mask.full,.radial-progress[data-progress="17"] .circle .fill{-webkit-transform:rotate(30.6deg);-ms-transform:rotate(30.6deg);transform:rotate(30.6deg)}.radial-progress[data-progress="17"] .circle .fill.fix{-webkit-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);transform:rotate(61.2deg)}.radial-progress[data-progress="18"] .circle .mask.full,.radial-progress[data-progress="18"] .circle .fill{-webkit-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);transform:rotate(32.4deg)}.radial-progress[data-progress="18"] .circle .fill.fix{-webkit-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);transform:rotate(64.8deg)}.radial-progress[data-progress="19"] .circle .mask.full,.radial-progress[data-progress="19"] .circle .fill{-webkit-transform:rotate(34.2deg);-ms-transform:rotate(34.2deg);transform:rotate(34.2deg)}.radial-progress[data-progress="19"] .circle .fill.fix{-webkit-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);transform:rotate(68.4deg)}.radial-progress[data-progress="20"] .circle .mask.full,.radial-progress[data-progress="20"] .circle .fill{-webkit-transform:rotate(36deg);-ms-transform:rotate(36deg);transform:rotate(36deg)}.radial-progress[data-progress="20"] .circle .fill.fix{-webkit-transform:rotate(72deg);-ms-transform:rotate(72deg);transform:rotate(72deg)}.radial-progress[data-progress="21"] .circle .mask.full,.radial-progress[data-progress="21"] .circle .fill{-webkit-transform:rotate(37.8deg);-ms-transform:rotate(37.8deg);transform:rotate(37.8deg)}.radial-progress[data-progress="21"] .circle .fill.fix{-webkit-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);transform:rotate(75.6deg)}.radial-progress[data-progress="22"] .circle .mask.full,.radial-progress[data-progress="22"] .circle .fill{-webkit-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);transform:rotate(39.6deg)}.radial-progress[data-progress="22"] .circle .fill.fix{-webkit-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);transform:rotate(79.2deg)}.radial-progress[data-progress="23"] .circle .mask.full,.radial-progress[data-progress="23"] .circle .fill{-webkit-transform:rotate(41.4deg);-ms-transform:rotate(41.4deg);transform:rotate(41.4deg)}.radial-progress[data-progress="23"] .circle .fill.fix{-webkit-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);transform:rotate(82.8deg)}.radial-progress[data-progress="24"] .circle .mask.full,.radial-progress[data-progress="24"] .circle .fill{-webkit-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);transform:rotate(43.2deg)}.radial-progress[data-progress="24"] .circle .fill.fix{-webkit-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);transform:rotate(86.4deg)}.radial-progress[data-progress="25"] .circle .mask.full,.radial-progress[data-progress="25"] .circle .fill{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.radial-progress[data-progress="25"] .circle .fill.fix{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.radial-progress[data-progress="26"] .circle .mask.full,.radial-progress[data-progress="26"] .circle .fill{-webkit-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);transform:rotate(46.8deg)}.radial-progress[data-progress="26"] .circle .fill.fix{-webkit-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);transform:rotate(93.6deg)}.radial-progress[data-progress="27"] .circle .mask.full,.radial-progress[data-progress="27"] .circle .fill{-webkit-transform:rotate(48.6deg);-ms-transform:rotate(48.6deg);transform:rotate(48.6deg)}.radial-progress[data-progress="27"] .circle .fill.fix{-webkit-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);transform:rotate(97.2deg)}.radial-progress[data-progress="28"] .circle .mask.full,.radial-progress[data-progress="28"] .circle .fill{-webkit-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);transform:rotate(50.4deg)}.radial-progress[data-progress="28"] .circle .fill.fix{-webkit-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);transform:rotate(100.8deg)}.radial-progress[data-progress="29"] .circle .mask.full,.radial-progress[data-progress="29"] .circle .fill{-webkit-transform:rotate(52.2deg);-ms-transform:rotate(52.2deg);transform:rotate(52.2deg)}.radial-progress[data-progress="29"] .circle .fill.fix{-webkit-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);transform:rotate(104.4deg)}.radial-progress[data-progress="30"] .circle .mask.full,.radial-progress[data-progress="30"] .circle .fill{-webkit-transform:rotate(54deg);-ms-transform:rotate(54deg);transform:rotate(54deg)}.radial-progress[data-progress="30"] .circle .fill.fix{-webkit-transform:rotate(108deg);-ms-transform:rotate(108deg);transform:rotate(108deg)}.radial-progress[data-progress="31"] .circle .mask.full,.radial-progress[data-progress="31"] .circle .fill{-webkit-transform:rotate(55.8deg);-ms-transform:rotate(55.8deg);transform:rotate(55.8deg)}.radial-progress[data-progress="31"] .circle .fill.fix{-webkit-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);transform:rotate(111.6deg)}.radial-progress[data-progress="32"] .circle .mask.full,.radial-progress[data-progress="32"] .circle .fill{-webkit-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);transform:rotate(57.6deg)}.radial-progress[data-progress="32"] .circle .fill.fix{-webkit-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);transform:rotate(115.2deg)}.radial-progress[data-progress="33"] .circle .mask.full,.radial-progress[data-progress="33"] .circle .fill{-webkit-transform:rotate(59.4deg);-ms-transform:rotate(59.4deg);transform:rotate(59.4deg)}.radial-progress[data-progress="33"] .circle .fill.fix{-webkit-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);transform:rotate(118.8deg)}.radial-progress[data-progress="34"] .circle .mask.full,.radial-progress[data-progress="34"] .circle .fill{-webkit-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);transform:rotate(61.2deg)}.radial-progress[data-progress="34"] .circle .fill.fix{-webkit-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);transform:rotate(122.4deg)}.radial-progress[data-progress="35"] .circle .mask.full,.radial-progress[data-progress="35"] .circle .fill{-webkit-transform:rotate(63deg);-ms-transform:rotate(63deg);transform:rotate(63deg)}.radial-progress[data-progress="35"] .circle .fill.fix{-webkit-transform:rotate(126deg);-ms-transform:rotate(126deg);transform:rotate(126deg)}.radial-progress[data-progress="36"] .circle .mask.full,.radial-progress[data-progress="36"] .circle .fill{-webkit-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);transform:rotate(64.8deg)}.radial-progress[data-progress="36"] .circle .fill.fix{-webkit-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);transform:rotate(129.6deg)}.radial-progress[data-progress="37"] .circle .mask.full,.radial-progress[data-progress="37"] .circle .fill{-webkit-transform:rotate(66.6deg);-ms-transform:rotate(66.6deg);transform:rotate(66.6deg)}.radial-progress[data-progress="37"] .circle .fill.fix{-webkit-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);transform:rotate(133.2deg)}.radial-progress[data-progress="38"] .circle .mask.full,.radial-progress[data-progress="38"] .circle .fill{-webkit-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);transform:rotate(68.4deg)}.radial-progress[data-progress="38"] .circle .fill.fix{-webkit-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);transform:rotate(136.8deg)}.radial-progress[data-progress="39"] .circle .mask.full,.radial-progress[data-progress="39"] .circle .fill{-webkit-transform:rotate(70.2deg);-ms-transform:rotate(70.2deg);transform:rotate(70.2deg)}.radial-progress[data-progress="39"] .circle .fill.fix{-webkit-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);transform:rotate(140.4deg)}.radial-progress[data-progress="40"] .circle .mask.full,.radial-progress[data-progress="40"] .circle .fill{-webkit-transform:rotate(72deg);-ms-transform:rotate(72deg);transform:rotate(72deg)}.radial-progress[data-progress="40"] .circle .fill.fix{-webkit-transform:rotate(144deg);-ms-transform:rotate(144deg);transform:rotate(144deg)}.radial-progress[data-progress="41"] .circle .mask.full,.radial-progress[data-progress="41"] .circle .fill{-webkit-transform:rotate(73.8deg);-ms-transform:rotate(73.8deg);transform:rotate(73.8deg)}.radial-progress[data-progress="41"] .circle .fill.fix{-webkit-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);transform:rotate(147.6deg)}.radial-progress[data-progress="42"] .circle .mask.full,.radial-progress[data-progress="42"] .circle .fill{-webkit-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);transform:rotate(75.6deg)}.radial-progress[data-progress="42"] .circle .fill.fix{-webkit-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);transform:rotate(151.2deg)}.radial-progress[data-progress="43"] .circle .mask.full,.radial-progress[data-progress="43"] .circle .fill{-webkit-transform:rotate(77.4deg);-ms-transform:rotate(77.4deg);transform:rotate(77.4deg)}.radial-progress[data-progress="43"] .circle .fill.fix{-webkit-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);transform:rotate(154.8deg)}.radial-progress[data-progress="44"] .circle .mask.full,.radial-progress[data-progress="44"] .circle .fill{-webkit-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);transform:rotate(79.2deg)}.radial-progress[data-progress="44"] .circle .fill.fix{-webkit-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);transform:rotate(158.4deg)}.radial-progress[data-progress="45"] .circle .mask.full,.radial-progress[data-progress="45"] .circle .fill{-webkit-transform:rotate(81deg);-ms-transform:rotate(81deg);transform:rotate(81deg)}.radial-progress[data-progress="45"] .circle .fill.fix{-webkit-transform:rotate(162deg);-ms-transform:rotate(162deg);transform:rotate(162deg)}.radial-progress[data-progress="46"] .circle .mask.full,.radial-progress[data-progress="46"] .circle .fill{-webkit-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);transform:rotate(82.8deg)}.radial-progress[data-progress="46"] .circle .fill.fix{-webkit-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);transform:rotate(165.6deg)}.radial-progress[data-progress="47"] .circle .mask.full,.radial-progress[data-progress="47"] .circle .fill{-webkit-transform:rotate(84.6deg);-ms-transform:rotate(84.6deg);transform:rotate(84.6deg)}.radial-progress[data-progress="47"] .circle .fill.fix{-webkit-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);transform:rotate(169.2deg)}.radial-progress[data-progress="48"] .circle .mask.full,.radial-progress[data-progress="48"] .circle .fill{-webkit-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);transform:rotate(86.4deg)}.radial-progress[data-progress="48"] .circle .fill.fix{-webkit-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);transform:rotate(172.8deg)}.radial-progress[data-progress="49"] .circle .mask.full,.radial-progress[data-progress="49"] .circle .fill{-webkit-transform:rotate(88.2deg);-ms-transform:rotate(88.2deg);transform:rotate(88.2deg)}.radial-progress[data-progress="49"] .circle .fill.fix{-webkit-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);transform:rotate(176.4deg)}.radial-progress[data-progress="50"] .circle .mask.full,.radial-progress[data-progress="50"] .circle .fill{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.radial-progress[data-progress="50"] .circle .fill.fix{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.radial-progress[data-progress="51"] .circle .mask.full,.radial-progress[data-progress="51"] .circle .fill{-webkit-transform:rotate(91.8deg);-ms-transform:rotate(91.8deg);transform:rotate(91.8deg)}.radial-progress[data-progress="51"] .circle .fill.fix{-webkit-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);transform:rotate(183.6deg)}.radial-progress[data-progress="52"] .circle .mask.full,.radial-progress[data-progress="52"] .circle .fill{-webkit-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);transform:rotate(93.6deg)}.radial-progress[data-progress="52"] .circle .fill.fix{-webkit-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);transform:rotate(187.2deg)}.radial-progress[data-progress="53"] .circle .mask.full,.radial-progress[data-progress="53"] .circle .fill{-webkit-transform:rotate(95.4deg);-ms-transform:rotate(95.4deg);transform:rotate(95.4deg)}.radial-progress[data-progress="53"] .circle .fill.fix{-webkit-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);transform:rotate(190.8deg)}.radial-progress[data-progress="54"] .circle .mask.full,.radial-progress[data-progress="54"] .circle .fill{-webkit-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);transform:rotate(97.2deg)}.radial-progress[data-progress="54"] .circle .fill.fix{-webkit-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);transform:rotate(194.4deg)}.radial-progress[data-progress="55"] .circle .mask.full,.radial-progress[data-progress="55"] .circle .fill{-webkit-transform:rotate(99deg);-ms-transform:rotate(99deg);transform:rotate(99deg)}.radial-progress[data-progress="55"] .circle .fill.fix{-webkit-transform:rotate(198deg);-ms-transform:rotate(198deg);transform:rotate(198deg)}.radial-progress[data-progress="56"] .circle .mask.full,.radial-progress[data-progress="56"] .circle .fill{-webkit-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);transform:rotate(100.8deg)}.radial-progress[data-progress="56"] .circle .fill.fix{-webkit-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);transform:rotate(201.6deg)}.radial-progress[data-progress="57"] .circle .mask.full,.radial-progress[data-progress="57"] .circle .fill{-webkit-transform:rotate(102.6deg);-ms-transform:rotate(102.6deg);transform:rotate(102.6deg)}.radial-progress[data-progress="57"] .circle .fill.fix{-webkit-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);transform:rotate(205.2deg)}.radial-progress[data-progress="58"] .circle .mask.full,.radial-progress[data-progress="58"] .circle .fill{-webkit-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);transform:rotate(104.4deg)}.radial-progress[data-progress="58"] .circle .fill.fix{-webkit-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);transform:rotate(208.8deg)}.radial-progress[data-progress="59"] .circle .mask.full,.radial-progress[data-progress="59"] .circle .fill{-webkit-transform:rotate(106.2deg);-ms-transform:rotate(106.2deg);transform:rotate(106.2deg)}.radial-progress[data-progress="59"] .circle .fill.fix{-webkit-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);transform:rotate(212.4deg)}.radial-progress[data-progress="60"] .circle .mask.full,.radial-progress[data-progress="60"] .circle .fill{-webkit-transform:rotate(108deg);-ms-transform:rotate(108deg);transform:rotate(108deg)}.radial-progress[data-progress="60"] .circle .fill.fix{-webkit-transform:rotate(216deg);-ms-transform:rotate(216deg);transform:rotate(216deg)}.radial-progress[data-progress="61"] .circle .mask.full,.radial-progress[data-progress="61"] .circle .fill{-webkit-transform:rotate(109.8deg);-ms-transform:rotate(109.8deg);transform:rotate(109.8deg)}.radial-progress[data-progress="61"] .circle .fill.fix{-webkit-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);transform:rotate(219.6deg)}.radial-progress[data-progress="62"] .circle .mask.full,.radial-progress[data-progress="62"] .circle .fill{-webkit-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);transform:rotate(111.6deg)}.radial-progress[data-progress="62"] .circle .fill.fix{-webkit-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);transform:rotate(223.2deg)}.radial-progress[data-progress="63"] .circle .mask.full,.radial-progress[data-progress="63"] .circle .fill{-webkit-transform:rotate(113.4deg);-ms-transform:rotate(113.4deg);transform:rotate(113.4deg)}.radial-progress[data-progress="63"] .circle .fill.fix{-webkit-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);transform:rotate(226.8deg)}.radial-progress[data-progress="64"] .circle .mask.full,.radial-progress[data-progress="64"] .circle .fill{-webkit-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);transform:rotate(115.2deg)}.radial-progress[data-progress="64"] .circle .fill.fix{-webkit-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);transform:rotate(230.4deg)}.radial-progress[data-progress="65"] .circle .mask.full,.radial-progress[data-progress="65"] .circle .fill{-webkit-transform:rotate(117deg);-ms-transform:rotate(117deg);transform:rotate(117deg)}.radial-progress[data-progress="65"] .circle .fill.fix{-webkit-transform:rotate(234deg);-ms-transform:rotate(234deg);transform:rotate(234deg)}.radial-progress[data-progress="66"] .circle .mask.full,.radial-progress[data-progress="66"] .circle .fill{-webkit-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);transform:rotate(118.8deg)}.radial-progress[data-progress="66"] .circle .fill.fix{-webkit-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);transform:rotate(237.6deg)}.radial-progress[data-progress="67"] .circle .mask.full,.radial-progress[data-progress="67"] .circle .fill{-webkit-transform:rotate(120.6deg);-ms-transform:rotate(120.6deg);transform:rotate(120.6deg)}.radial-progress[data-progress="67"] .circle .fill.fix{-webkit-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);transform:rotate(241.2deg)}.radial-progress[data-progress="68"] .circle .mask.full,.radial-progress[data-progress="68"] .circle .fill{-webkit-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);transform:rotate(122.4deg)}.radial-progress[data-progress="68"] .circle .fill.fix{-webkit-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);transform:rotate(244.8deg)}.radial-progress[data-progress="69"] .circle .mask.full,.radial-progress[data-progress="69"] .circle .fill{-webkit-transform:rotate(124.2deg);-ms-transform:rotate(124.2deg);transform:rotate(124.2deg)}.radial-progress[data-progress="69"] .circle .fill.fix{-webkit-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);transform:rotate(248.4deg)}.radial-progress[data-progress="70"] .circle .mask.full,.radial-progress[data-progress="70"] .circle .fill{-webkit-transform:rotate(126deg);-ms-transform:rotate(126deg);transform:rotate(126deg)}.radial-progress[data-progress="70"] .circle .fill.fix{-webkit-transform:rotate(252deg);-ms-transform:rotate(252deg);transform:rotate(252deg)}.radial-progress[data-progress="71"] .circle .mask.full,.radial-progress[data-progress="71"] .circle .fill{-webkit-transform:rotate(127.8deg);-ms-transform:rotate(127.8deg);transform:rotate(127.8deg)}.radial-progress[data-progress="71"] .circle .fill.fix{-webkit-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);transform:rotate(255.6deg)}.radial-progress[data-progress="72"] .circle .mask.full,.radial-progress[data-progress="72"] .circle .fill{-webkit-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);transform:rotate(129.6deg)}.radial-progress[data-progress="72"] .circle .fill.fix{-webkit-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);transform:rotate(259.2deg)}.radial-progress[data-progress="73"] .circle .mask.full,.radial-progress[data-progress="73"] .circle .fill{-webkit-transform:rotate(131.4deg);-ms-transform:rotate(131.4deg);transform:rotate(131.4deg)}.radial-progress[data-progress="73"] .circle .fill.fix{-webkit-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);transform:rotate(262.8deg)}.radial-progress[data-progress="74"] .circle .mask.full,.radial-progress[data-progress="74"] .circle .fill{-webkit-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);transform:rotate(133.2deg)}.radial-progress[data-progress="74"] .circle .fill.fix{-webkit-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);transform:rotate(266.4deg)}.radial-progress[data-progress="75"] .circle .mask.full,.radial-progress[data-progress="75"] .circle .fill{-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.radial-progress[data-progress="75"] .circle .fill.fix{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.radial-progress[data-progress="76"] .circle .mask.full,.radial-progress[data-progress="76"] .circle .fill{-webkit-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);transform:rotate(136.8deg)}.radial-progress[data-progress="76"] .circle .fill.fix{-webkit-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);transform:rotate(273.6deg)}.radial-progress[data-progress="77"] .circle .mask.full,.radial-progress[data-progress="77"] .circle .fill{-webkit-transform:rotate(138.6deg);-ms-transform:rotate(138.6deg);transform:rotate(138.6deg)}.radial-progress[data-progress="77"] .circle .fill.fix{-webkit-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);transform:rotate(277.2deg)}.radial-progress[data-progress="78"] .circle .mask.full,.radial-progress[data-progress="78"] .circle .fill{-webkit-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);transform:rotate(140.4deg)}.radial-progress[data-progress="78"] .circle .fill.fix{-webkit-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);transform:rotate(280.8deg)}.radial-progress[data-progress="79"] .circle .mask.full,.radial-progress[data-progress="79"] .circle .fill{-webkit-transform:rotate(142.2deg);-ms-transform:rotate(142.2deg);transform:rotate(142.2deg)}.radial-progress[data-progress="79"] .circle .fill.fix{-webkit-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);transform:rotate(284.4deg)}.radial-progress[data-progress="80"] .circle .mask.full,.radial-progress[data-progress="80"] .circle .fill{-webkit-transform:rotate(144deg);-ms-transform:rotate(144deg);transform:rotate(144deg)}.radial-progress[data-progress="80"] .circle .fill.fix{-webkit-transform:rotate(288deg);-ms-transform:rotate(288deg);transform:rotate(288deg)}.radial-progress[data-progress="81"] .circle .mask.full,.radial-progress[data-progress="81"] .circle .fill{-webkit-transform:rotate(145.8deg);-ms-transform:rotate(145.8deg);transform:rotate(145.8deg)}.radial-progress[data-progress="81"] .circle .fill.fix{-webkit-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);transform:rotate(291.6deg)}.radial-progress[data-progress="82"] .circle .mask.full,.radial-progress[data-progress="82"] .circle .fill{-webkit-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);transform:rotate(147.6deg)}.radial-progress[data-progress="82"] .circle .fill.fix{-webkit-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);transform:rotate(295.2deg)}.radial-progress[data-progress="83"] .circle .mask.full,.radial-progress[data-progress="83"] .circle .fill{-webkit-transform:rotate(149.4deg);-ms-transform:rotate(149.4deg);transform:rotate(149.4deg)}.radial-progress[data-progress="83"] .circle .fill.fix{-webkit-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);transform:rotate(298.8deg)}.radial-progress[data-progress="84"] .circle .mask.full,.radial-progress[data-progress="84"] .circle .fill{-webkit-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);transform:rotate(151.2deg)}.radial-progress[data-progress="84"] .circle .fill.fix{-webkit-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);transform:rotate(302.4deg)}.radial-progress[data-progress="85"] .circle .mask.full,.radial-progress[data-progress="85"] .circle .fill{-webkit-transform:rotate(153deg);-ms-transform:rotate(153deg);transform:rotate(153deg)}.radial-progress[data-progress="85"] .circle .fill.fix{-webkit-transform:rotate(306deg);-ms-transform:rotate(306deg);transform:rotate(306deg)}.radial-progress[data-progress="86"] .circle .mask.full,.radial-progress[data-progress="86"] .circle .fill{-webkit-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);transform:rotate(154.8deg)}.radial-progress[data-progress="86"] .circle .fill.fix{-webkit-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);transform:rotate(309.6deg)}.radial-progress[data-progress="87"] .circle .mask.full,.radial-progress[data-progress="87"] .circle .fill{-webkit-transform:rotate(156.6deg);-ms-transform:rotate(156.6deg);transform:rotate(156.6deg)}.radial-progress[data-progress="87"] .circle .fill.fix{-webkit-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);transform:rotate(313.2deg)}.radial-progress[data-progress="88"] .circle .mask.full,.radial-progress[data-progress="88"] .circle .fill{-webkit-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);transform:rotate(158.4deg)}.radial-progress[data-progress="88"] .circle .fill.fix{-webkit-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);transform:rotate(316.8deg)}.radial-progress[data-progress="89"] .circle .mask.full,.radial-progress[data-progress="89"] .circle .fill{-webkit-transform:rotate(160.2deg);-ms-transform:rotate(160.2deg);transform:rotate(160.2deg)}.radial-progress[data-progress="89"] .circle .fill.fix{-webkit-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);transform:rotate(320.4deg)}.radial-progress[data-progress="90"] .circle .mask.full,.radial-progress[data-progress="90"] .circle .fill{-webkit-transform:rotate(162deg);-ms-transform:rotate(162deg);transform:rotate(162deg)}.radial-progress[data-progress="90"] .circle .fill.fix{-webkit-transform:rotate(324deg);-ms-transform:rotate(324deg);transform:rotate(324deg)}.radial-progress[data-progress="91"] .circle .mask.full,.radial-progress[data-progress="91"] .circle .fill{-webkit-transform:rotate(163.8deg);-ms-transform:rotate(163.8deg);transform:rotate(163.8deg)}.radial-progress[data-progress="91"] .circle .fill.fix{-webkit-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);transform:rotate(327.6deg)}.radial-progress[data-progress="92"] .circle .mask.full,.radial-progress[data-progress="92"] .circle .fill{-webkit-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);transform:rotate(165.6deg)}.radial-progress[data-progress="92"] .circle .fill.fix{-webkit-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);transform:rotate(331.2deg)}.radial-progress[data-progress="93"] .circle .mask.full,.radial-progress[data-progress="93"] .circle .fill{-webkit-transform:rotate(167.4deg);-ms-transform:rotate(167.4deg);transform:rotate(167.4deg)}.radial-progress[data-progress="93"] .circle .fill.fix{-webkit-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);transform:rotate(334.8deg)}.radial-progress[data-progress="94"] .circle .mask.full,.radial-progress[data-progress="94"] .circle .fill{-webkit-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);transform:rotate(169.2deg)}.radial-progress[data-progress="94"] .circle .fill.fix{-webkit-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);transform:rotate(338.4deg)}.radial-progress[data-progress="95"] .circle .mask.full,.radial-progress[data-progress="95"] .circle .fill{-webkit-transform:rotate(171deg);-ms-transform:rotate(171deg);transform:rotate(171deg)}.radial-progress[data-progress="95"] .circle .fill.fix{-webkit-transform:rotate(342deg);-ms-transform:rotate(342deg);transform:rotate(342deg)}.radial-progress[data-progress="96"] .circle .mask.full,.radial-progress[data-progress="96"] .circle .fill{-webkit-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);transform:rotate(172.8deg)}.radial-progress[data-progress="96"] .circle .fill.fix{-webkit-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);transform:rotate(345.6deg)}.radial-progress[data-progress="97"] .circle .mask.full,.radial-progress[data-progress="97"] .circle .fill{-webkit-transform:rotate(174.6deg);-ms-transform:rotate(174.6deg);transform:rotate(174.6deg)}.radial-progress[data-progress="97"] .circle .fill.fix{-webkit-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);transform:rotate(349.2deg)}.radial-progress[data-progress="98"] .circle .mask.full,.radial-progress[data-progress="98"] .circle .fill{-webkit-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);transform:rotate(176.4deg)}.radial-progress[data-progress="98"] .circle .fill.fix{-webkit-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);transform:rotate(352.8deg)}.radial-progress[data-progress="99"] .circle .mask.full,.radial-progress[data-progress="99"] .circle .fill{-webkit-transform:rotate(178.2deg);-ms-transform:rotate(178.2deg);transform:rotate(178.2deg)}.radial-progress[data-progress="99"] .circle .fill.fix{-webkit-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);transform:rotate(356.4deg)}.radial-progress[data-progress="100"] .circle .mask.full,.radial-progress[data-progress="100"] .circle .fill{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.radial-progress[data-progress="100"] .circle .fill.fix{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}.radial-progress:not([data-progress="0"]) .inset .bgIcon{opacity:1}.radial-progress.radial-progress-success .circle .mask .fill{background-color:#5cb85c}.radial-progress.radial-progress-success .inset .percentage .number span{color:#5cb85c}.radial-progress.radial-progress-info .circle .mask .fill{background-color:#5bc0de}.radial-progress.radial-progress-info .inset .percentage .number span{color:#5bc0de}.radial-progress.radial-progress-danger .circle .mask .fill{background-color:#d9534f}.radial-progress.radial-progress-danger .inset .percentage .number span{color:#d9534f}.radial-progress.radial-progress-warning .circle .mask .fill{background-color:#f0ad4e}.radial-progress.radial-progress-warning .inset .percentage .number span{color:#f0ad4e}.radial-progress.radial-progress-sm{width:80px;height:80px}.radial-progress.radial-progress-sm .circle .mask{clip:rect(0px, 80px, 80px, 40px)}.radial-progress.radial-progress-sm .circle .mask .fill{clip:rect(0px, 40px, 80px, 0px)}.radial-progress.radial-progress-sm .inset{width:60px;height:60px;margin-left:10px;margin-top:10px;font-size:14.4px}.radial-progress.radial-progress-sm .inset .bgIcon{position:absolute;font-size:50px;top:5px;left:-2px}.radial-progress.radial-progress-lg{width:180px;height:180px}.radial-progress.radial-progress-lg .circle .mask{clip:rect(0px, 180px, 180px, 90px)}.radial-progress.radial-progress-lg .circle .mask .fill{clip:rect(0px, 90px, 180px, 0px)}.radial-progress.radial-progress-lg .inset{width:135px;height:135px;margin-left:22.5px;margin-top:22.5px;font-size:32.4px}.radial-progress.radial-progress-lg .inset .bgIcon{position:absolute;font-size:115px;top:5px;left:-6px}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:80px}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{float:left;z-index:2;position:relative;background:#fff}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:0 0 0 15px}#o_main_wrapper #o_main_container #o_main_left #o_main_left_toggle{position:absolute;display:none;right:0;top:70px;margin-right:-30px;font-size:25px;line-height:35px;text-align:center;width:30px;height:35px;z-index:3;border:1px solid #ddd;border-left:none;border-bottom-right-radius:4px;border-top-right-radius:4px;background-color:#fbfbfb;-webkit-box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);color:#337ab7}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas{background:#fbfbfb;-webkit-box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);min-width:250px}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas #o_main_left_content{padding:0 0 0 0}#o_main_wrapper #o_main_container #o_main_right{float:right;z-index:2;position:relative;background:inherit}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:0 15px 0 0}#o_main_wrapper #o_main_container #o_main_center{position:relative;z-index:1;background:inherit}#o_main_wrapper #o_main_container #o_main_center h2:first-child{margin-top:0}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:0 15px}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content #o_main_center_content_inner{padding-bottom:15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:15px;text-align:center;z-index:3}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}}#o_back_wrapper,#o_preview_wrapper{margin-top:10px}#o_back_wrapper.o_toolbar .o_breadcrumb .breadcrumb,#o_preview_wrapper.o_toolbar .o_breadcrumb .breadcrumb{font-size:14px}body.o_message #o_main_center_content_inner{min-height:150px;max-width:500px;padding:15px;margin:60px auto}#o_footer_wrapper{position:absolute;bottom:0;width:100%;height:70px;overflow:hidden;background-color:#f5f5f5;color:#999;line-height:16px;font-size:12px}#o_footer_wrapper a{color:#999}#o_footer_wrapper a:hover{color:#000}#o_footer_container{position:relative;padding-top:10px;min-height:70px;background:#f5f5f5;z-index:1}#o_footer_user{position:absolute;left:15px;top:10px;z-index:1}#o_footer_user #o_counter{white-space:nowrap}#o_footer_user #o_username{white-space:nowrap;margin-right:1em}#o_footer_version{position:absolute;right:15px;top:10px;text-align:right;z-index:1}@media (max-width: 767px){#o_footer_version{padding-top:10px;text-align:left}}#o_footer_powered{position:absolute;top:30px;right:15px;z-index:1}#o_footer_powered img{opacity:.6;filter:alpha(opacity=60);width:120px}#o_footer_powered img:hover{opacity:1;filter:alpha(opacity=100)}#o_footer_impressum{position:absolute;top:10px;width:100%;text-align:center;z-index:-1}#o_footer_impressum i{display:none}#o_footer_textline{position:absolute;top:30px;width:100%;text-align:center;z-index:-1}#o_share{margin-top:10px}#o_share a{opacity:.6;filter:alpha(opacity=60)}#o_share a:hover{opacity:1;filter:alpha(opacity=100)}#o_share a,#o_share_social_container a{color:#999;margin:0 0.25em 0 0}#o_share a:hover,#o_share_social_container a:hover{color:#000}@media (max-width: 767px){#o_counter,#o_footer_version,#o_share{display:none}#o_footer_impressum{top:30px;text-align:left}#o_footer_textline{top:50px;text-align:left}#o_footer_powered{top:10px}#o_footer_powered a:after{content:"\221E";font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:14px}#o_footer_powered img{display:none}}#o_navbar_wrapper{z-index:4;border-top:1px solid #e7e7e7;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}#o_navbar_wrapper #o_navbar_container{position:relative}a.o_disabled.navbar-text{margin:0}.o_navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid #e7e7e7;background-color:#f8f8f8}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar .o_navbar_tabs li{max-width:150px}.o_navbar .o_navbar_tabs li a{padding-right:30px}.o_navbar .o_navbar_tabs li a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_navbar .o_navbar_tabs .o_icon-fw{position:absolute;top:15px;left:0.5em;padding-top:3px;width:1em;height:1em;display:none}.o_navbar .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}.o_navbar .o_navbar_tabs .o_navbar_tab_close i:before{color:#d9534f}.o_navbar .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#c9302c}.o_navbar .o_custom_navbar-brand{background-position:5px 0;background-repeat:no-repeat;height:50px;width:120px}.o_navbar #o_navbar_langchooser{color:#777;padding:7px 15px}.o_navbar #o_navbar_langchooser form span+div{display:inline}.o_navbar #o_navbar_tools_permanent #o_navbar_print a,.o_navbar #o_navbar_tools_permanent #o_navbar_impress a,.o_navbar #o_navbar_tools_permanent #o_navbar_help a{color:#777;padding-right:0}.o_navbar #o_navbar_tools_permanent #o_navbar_login a{color:#f0ad4e}.o_navbar .o_navbar_tools>#o_navbar_tools_permanent>li>a>span{display:none}@media (min-width: 768px){.o_navbar .o_navbar_tools li.o_portrait>a>span{display:inline}}.o_navbar #o_navbar_tools_personal .o_navbar_tool a,.o_navbar #o_navbar_tools_permanent .o_navbar_tool a{padding-right:5px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu a{padding-left:45px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .dropdown-menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .dropdown-menu a{padding-left:15px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .o_portrait,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .o_portrait{position:absolute;left:7px;top:10px}.o_navbar #o_navbar_tools_personal .o_logout,.o_navbar #o_navbar_tools_permanent .o_logout{color:#d9534f}.o_navbar.o_navbar-offcanvas .o_navbar_tab_close{top:10px;right:10px}.o_navbar.o_navbar-offcanvas .o_navbar-right a{padding:3px 20px;color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-right a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a:focus{color:#fff;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout{color:#d9534f}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:focus{color:#c9302c}.o_navbar.o_navbar-offcanvas .o_navbar-right a .o_icon-lg{font-size:1.0em;vertical-align:baseline}.o_navbar.o_navbar-offcanvas .o_navbar-right .divider{height:1px;margin:9px 0;overflow:hidden;background-color:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-header{padding-left:15px}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-toggle{display:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu{box-shadow:none;position:relative;top:0;left:0;display:block;float:none;background-color:#222;color:#9d9d9d;font-size:14px;border:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu .divider{background:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a{color:#9d9d9d;text-shadow:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav a:focus{background-color:transparent;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:focus{background-color:#090909;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link{color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link:hover{color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a{color:#777}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}#o_navbar_impress a span,#o_navbar_search_opener a span{display:none}body.o_dmz #o_navbar_print a span,body.o_dmz #o_navbar_impress a span,body.o_dmz #o_navbar_help a span,body.o_dmz #o_navbar_search_opener a span{display:inline}.o_navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;font-size:18px;line-height:20px;height:50px;color:#777}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none;color:#5e5e5e;background-color:transparent}.o_navbar-toggle{position:relative;margin-right:15px;margin-left:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;border:1px solid #ddd;border-radius:4px;background-color:transparent;background-image:none}.o_navbar-toggle:hover,.o_navbar-toggle:focus{outline:none;background-color:#ddd}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;background-color:#888}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}#o_navbar_left-toggle{float:left}#o_navbar_right-toggle{float:right}.o_navbar-link{color:#777}.o_navbar-link:hover{color:#333}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px;color:#777}.o_navbar-nav>li>a:hover,.o_navbar-nav>li>a:focus{color:#333;background-color:transparent}.o_navbar-nav>.active>a,.o_navbar-nav>.active>a:hover,.o_navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-nav>.disabled>a,.o_navbar-nav>.disabled>a:hover,.o_navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-nav>.open>a,.o_navbar-nav>.open>a:hover,.o_navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}}.o_collapse .o_navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.o_collapse .o_navbar-form.o_navbar-right:last-child{margin-right:-15px}.o_navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.o_navbar-fixed-bottom .o_navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.o_navbar-btn{margin-top:8px;margin-bottom:8px}.o_navbar-btn.btn-sm,.btn-group-sm>.o_navbar-btn.btn{margin-top:10px;margin-bottom:10px}.o_navbar-btn.btn-xs,.btn-group-xs>.o_navbar-btn.btn{margin-top:14px;margin-bottom:14px}.o_navbar-text{margin-top:15px;margin-bottom:15px;color:#777}.o_collapse .o_navbar-text{float:left;margin-left:15px;margin-right:15px}.o_collapse .o_navbar-text.o_navbar-right:last-child{margin-right:0}.o_dropdown_tab{position:relative}.o_dropdown_tab>a:first-child{padding-right:30px}.o_dropdown_tab>a:first-child .o_icon-fw{display:none;position:absolute;top:0;left:10px;padding-top:3px;line-height:20px}.o_dropdown_tab>a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_dropdown_tab .o_navbar_tab_close{position:absolute;top:0px;right:10px;padding-left:0px;padding-right:0px;color:#d9534f;background-color:inherit}.o_dropdown_tab .o_navbar_tab_close:focus,.o_dropdown_tab .o_navbar_tab_close:hover{color:#c9302c;background-color:inherit}#o_navbar_more .dropdown-menu .divider:last-child{display:none}@media (min-width: 768px){#o_navbar_more .dropdown-menu{max-width:300px}}@media (max-width: 767px){#o_navbar_more>li{position:inherit}#o_navbar_more .dropdown-menu{left:0px;right:0px}#o_navbar_more .dropdown-menu a,#o_navbar_more .dropdown-menu i{line-height:30px}#o_navbar_more .dropdown-menu .o_navbar_tab_close{line-height:inherit}}.o_body_popup #o_topnav_printview{display:inline-block}.o_body_popup #o_topnav_close{float:right}.o_body_popup #o_topnav_close span{display:block}.o_body_popup #o_navbar_tools_permanent li>a{background-color:transparent}.o_toolbar{position:relative;margin-bottom:20px;margin-top:-10px;border:1px solid #e7e7e7}.o_toolbar:before,.o_toolbar:after{content:" ";display:table}.o_toolbar:after{clear:both}@media (min-width: 768px){.o_toolbar{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}}.o_toolbar.o_toolbar_with_segments{margin-bottom:30px}.o_toolbar .o_breadcrumb:before,.o_toolbar .o_breadcrumb:after{content:" ";display:table}.o_toolbar .o_breadcrumb:after{clear:both}.o_toolbar .o_breadcrumb .breadcrumb{margin-bottom:0;padding:5px 9px;font-size:11px;line-height:15px;border-radius:0;background:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d9534f}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a:hover{color:#b52b27}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a span{display:none}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close:before{content:none}.o_toolbar .o_tools_container{text-align:center;min-height:37px;position:relative;background-color:#f8f8f8;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_toolbar .o_tools_container:before,.o_toolbar .o_tools_container:after{content:" ";display:table}.o_toolbar .o_tools_container:after{clear:both}@media (max-width: 991px){.o_toolbar .o_tools_container{min-height:35px}}@media (max-width: 767px){.o_toolbar .o_tools_container{min-height:22px;text-align:left}}.o_toolbar .o_tools_container span.o_tool_text{color:#777;display:inline-block}.o_toolbar .o_tools_container a{color:#777;display:inline-block}.o_toolbar .o_tools_container a:hover{color:#333}.o_toolbar .o_tools_container a.o_disabled{color:#aaa !important}.o_toolbar .o_tools_container a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tools_container a.active{color:#337ab7;background-color:transparent}.o_toolbar .o_tools_container a.btn-primary{color:#fff}.o_toolbar .o_tools_container .dropdown-menu a{display:block}.o_toolbar .o_tools_container .dropdown-menu a.active{color:#337ab7;background-color:transparent}.o_toolbar .o_breadcrumb+.o_tools_container{border-top:1px solid #e7e7e7}.o_toolbar .o_tools{margin-top:8px;margin-bottom:5px}.o_toolbar .o_tool,.o_toolbar .o_text{position:relative;margin:0 10px}.o_toolbar .o_tool:first-child,.o_toolbar .o_text:first-child{margin-left:0}.o_toolbar .o_tool:last-child,.o_toolbar .o_text:last-child{margin-right:0}.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:18px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:block;font-size:12px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{position:absolute;right:50%;top:-18px;margin-right:-12px;font-size:13px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:16px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{font-size:11px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{top:-16.5px;margin-right:-11px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:20px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:none}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{display:block;position:relative;top:0;left:0;margin-right:0}}.o_toolbar .o_tool .o_chelp,.o_toolbar .o_text .o_chelp{position:relative;top:-1em;vertical-align:top;color:#fff}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{padding:0;margin-top:5px;border:1px solid #ccc;background-color:#eee}.o_toolbar .o_tool_next a,.o_toolbar .o_tool_previous a{color:#777}.o_toolbar .o_tool_next a:hover,.o_toolbar .o_tool_previous a:hover{color:#333}.o_toolbar .o_tool_next a.o_disabled,.o_toolbar .o_tool_previous a.o_disabled{color:#aaa !important}.o_toolbar .o_tool_next a.o_disabled:hover,.o_toolbar .o_tool_previous a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:21px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:4px}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:18px}}@media (max-width: 767px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:0}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:20px}}.o_toolbar .o_tool_previous{margin-left:10px;border-bottom-left-radius:4px;border-top-left-radius:4px;border-right:0}.o_toolbar .o_tool_next{border-bottom-right-radius:4px;border-top-right-radius:4px}.o_toolbar .o_tool_dropdown{margin:0 10px}.o_toolbar .o_tool_dropdown:first-child{margin-left:0}.o_toolbar .o_tool_dropdown:last-child{margin-right:0}.o_toolbar .o_tool_dropdown a.dropdown-toggle{position:relative}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:18px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label{display:block;font-size:12px;text-align:center}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{position:absolute;right:50%;top:4px;margin-right:-20px;font-size:14px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:16px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label,.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{font-size:11px}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{top:4px;margin-right:-18px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown a.dropdown-toggle{padding:0 10px 0 5px}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:20px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label{display:none}}.o_toolbar .o_tool_dropdown .dropdown-menu{text-align:left}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{line-height:16px;font-size:70% !important;padding:0 18px 0 4px;position:relative;top:-2px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:12px !important;margin:0 0 3px 0}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{position:absolute;right:5px;top:2px;margin-right:0}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{line-height:14px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:10px !important}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{right:5px;top:2px;margin-right:0;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{padding:0 18px 0 4px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:20px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{right:15px;top:2px;margin-right:0}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled span.o_inner_text,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled span.o_label,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light span.o_inner_text,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light span.o_label{display:none}}.o_toolbar .o_tool_dropdown .dropdown-toggle.o_with_labeled .o_inner_wrapper.o_labeled+.o_icon_caret{color:#fff !important}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled{padding:0;margin:0}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled .o_labeled{text-align:left}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled>li>a{padding:5px 5px;margin:1px}.o_toolbar .o_tools_left{float:left}.o_toolbar .o_tools_right{float:right}.o_toolbar .o_tools_right_edge{float:right}.o_toolbar .o_tools_center{float:both;width:50%;margin-left:auto;margin-right:auto}.o_toolbar .o_tools_segments{margin:0 auto -1.1em auto}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}@media (max-width: 991px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools.o_tools_segments{margin:0 auto -1.1em auto}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}.o_toolbar .o_tool span{max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_toolbar .o_tools_segments .o_tool span{display:block}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 5px}}@media (max-width: 767px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools .o_chelp{top:0;vertical-align:top}.o_toolbar .o_tools.o_tools_segments{margin:0 auto -1.1em auto;text-align:center}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}.o_toolbar .o_tools_center{float:left}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 0;position:static}.o_toolbar .o_tool_dropdown .dropdown-menu{left:0px;right:0px}.o_toolbar .o_tool_dropdown .dropdown-menu a,.o_toolbar .o_tool_dropdown .dropdown-menu i{line-height:30px}.o_toolbar .o_tool_dropdown .dropdown-menu .o_navbar_tab_close{line-height:inherit}}#o_main_container .o_toolbar_message{display:table;margin:0 auto 20px auto}#o_main_container .o_toolbar_message.o_warning{padding-top:5px;padding-bottom:5px;border:1px solid #8a6d3b;border-radius:3px}.o_edit_mode .o_toolbar .o_tools_container{background:repeating-linear-gradient(300deg, #fff0d9, #fff0d9 10px, #fcfcfc 10px, #fcfcfc 20px)}.o_edit_mode .o_toolbar .o_edit_mode .o_tools_container{background:#f8f8f8}body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px}#o_container_page_width_toggler{position:absolute;top:25px;margin-top:-.75em;right:10px;z-index:5;display:none}@media (min-width: 1364px){#o_container_page_width_toggler{display:block}#o_container_page_width_toggler #o_go_standard_width{display:none}#o_container_page_width_toggler #o_go_full_width{display:block}body.o_width_full .o_container_offcanvas{max-width:100%;margin-left:20px;margin-right:20px}body.o_width_full #o_container_page_width_toggler #o_go_standard_width{display:block}body.o_width_full #o_container_page_width_toggler #o_go_full_width{display:none}}body.o_dmz #o_container_page_width_toggler{display:none !important}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#9d9d9d;border:1px solid #090909;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);min-height:100%;z-index:10;display:none}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}.o_info,.b_info,p.b_info,div.b_info,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback,.o_assessmentitem_wrapper .modalFeedback .o_info{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_info h5,.b_info h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.o_assessmentitem_wrapper .modalFeedback .o_info h2,.b_info h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.o_assessmentitem_wrapper .modalFeedback .o_info h3,.b_info h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.o_assessmentitem_wrapper .modalFeedback .o_info h4,.b_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_info h2,.o_form .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.o_assessmentitem_wrapper .modalFeedback .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info h2,.b_info h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5,.o_assessmentitem_wrapper .modalFeedback .o_info h5{color:#777}.o_note,.b_note,p.b_note,div.b_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_note h5,.b_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h2,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2,.b_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h3,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h3,.b_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h4,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h4,.b_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h2,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2,.b_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h5,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{margin:20px 0;padding:20px;border-left:3px solid #F4D000;background-color:#FFF1A4}.o_important h2,.o_important h3,.o_important h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_important h5,.b_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.b_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.b_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.b_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.b_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#F4D000}.o_success,.b_success,p.b_success,div.b_success,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5,.b_success h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h2,.b_success h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h3,.b_success h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h4,.b_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_success h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h2,.b_success h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning,.o_instruction,.o_form .o_warning,p.o_gta_reopen_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.b_warning h2,.o_instruction h2,.o_form .o_warning h2,p.o_gta_reopen_warning h2,.b_warning h3,.o_instruction h3,.o_form .o_warning h3,p.o_gta_reopen_warning h3,.b_warning h4,.o_instruction h4,.o_form .o_warning h4,p.o_gta_reopen_warning h4,.b_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_warning h2,.o_instruction .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_instruction h2,.o_form .o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_warning h2,p.o_gta_reopen_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title p.o_gta_reopen_warning h2,.b_warning h5,.o_instruction h5,.o_form .o_warning h5,p.o_gta_reopen_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5,.b_error h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h2,.b_error h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h3,.b_error h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h4,.b_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_error h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h2,.b_error h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h5{color:#a94442}.o_instruction{margin-top:0px;border-left:none;padding-top:10px;padding-bottom:10px}.o_instruction>.o_button_group{margin-bottom:0px}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_alert_close{float:right;color:#777}.o_alert_info .alert .o_alert_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}#o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4,.modal .modal-header .o_cal .fc-header-title h2,.o_cal .fc-header-title .modal .modal-header h2{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}.o_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_tree a{color:#777;background-color:none}.o_tree a:hover,.o_tree a:focus{color:#333}.o_tree .o_tree_link{background-color:none}.o_tree .o_tree_link:hover,.o_tree .o_tree_link:focus{background-color:#f8f8f8}.o_tree .o_tree_link:first-child{background-color:transparent}.o_tree .o_tree_link:last-child:hover,.o_tree .o_tree_link:last-child:focus{background-color:#f8f8f8}.o_tree .o_insertion_point>a>span{padding:5px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_insertion_source>a>span.o_tree_item,.o_tree .o_insertion_source>a>span.o_dnd_item{border-bottom:solid #f90 4px;background-color:#fefbf6}.o_tree ul{margin:0;padding:0;list-style-type:none}.o_tree ul li{margin:0;padding:0;white-space:nowrap}.o_tree ul li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_tree ul li div.popover{position:absolute;left:auto;right:0}.o_tree ul li div a.o_tree_oc_l0{position:absolute;top:10px;left:-4px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l0,.o_tree ul .o_tree_level_close.b_tree_oc_l0{z-index:10}.o_tree ul li div a.o_tree_oc_l1{position:absolute;top:10px;left:11px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l1,.o_tree ul .o_tree_level_close.b_tree_oc_l1{z-index:10}.o_tree ul li div a.o_tree_oc_l2{position:absolute;top:10px;left:26px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l2,.o_tree ul .o_tree_level_close.b_tree_oc_l2{z-index:10}.o_tree ul li div a.o_tree_oc_l3{position:absolute;top:10px;left:41px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l3,.o_tree ul .o_tree_level_close.b_tree_oc_l3{z-index:10}.o_tree ul li div a.o_tree_oc_l4{position:absolute;top:10px;left:56px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l4,.o_tree ul .o_tree_level_close.b_tree_oc_l4{z-index:10}.o_tree ul li div a.o_tree_oc_l5{position:absolute;top:10px;left:71px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l5,.o_tree ul .o_tree_level_close.b_tree_oc_l5{z-index:10}.o_tree ul li div a.o_tree_oc_l6{position:absolute;top:10px;left:86px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l6,.o_tree ul .o_tree_level_close.b_tree_oc_l6{z-index:10}.o_tree ul li div a.o_tree_oc_l7{position:absolute;top:10px;left:101px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l7,.o_tree ul .o_tree_level_close.b_tree_oc_l7{z-index:10}.o_tree ul li div a.o_tree_oc_l8{position:absolute;top:10px;left:116px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l8,.o_tree ul .o_tree_level_close.b_tree_oc_l8{z-index:10}.o_tree ul li div a.o_tree_oc_l9{position:absolute;top:10px;left:131px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l9,.o_tree ul .o_tree_level_close.b_tree_oc_l9{z-index:10}.o_tree ul li div a.o_tree_oc_l10{position:absolute;top:10px;left:146px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l10,.o_tree ul .o_tree_level_close.b_tree_oc_l10{z-index:10}.o_tree ul li div a.o_tree_oc_l11{position:absolute;top:10px;left:161px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l11,.o_tree ul .o_tree_level_close.b_tree_oc_l11{z-index:10}.o_tree ul li div span.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_tree ul li div span.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_tree ul li div span.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_tree ul li div span.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_tree ul li div span.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_tree ul li div span.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_tree ul li div span.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_tree ul li div span.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_tree ul li div span.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_tree ul li div span.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_tree ul li div span.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_tree ul li div span.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_tree ul span.o_tree_leaf{display:none}.o_tree ul span.o_tree_link>input[type=checkbox]{margin-right:5px}.o_tree ul li .badge{position:absolute;font-size:70%}.o_tree ul li .badge:before{content:none}.o_tree ul li .badge.o_badge_1{top:3px;right:1px}.o_tree ul li .badge.o_badge_2{bottom:3px;right:1px}.o_tree ul li .badge.o_badge_3{top:3px;right:25px}.o_tree ul li .badge.o_badge_4{bottom:3px;right:25px}.o_tree ul li div.o_dnd_sibling{margin:0;padding:0;border-bottom:none}.o_tree ul li .active.o_tree_link{background-color:none;font-weight:bold}.o_tree ul li .active.o_tree_link a{color:#337ab7}.o_tree ul li .active.o_tree_link:hover,.o_tree ul li .active.o_tree_link:focus{background-color:#eee}.o_tree ul li .active.o_tree_link:hover a,.o_tree ul li .active.o_tree_link:focus a{color:#23527c}.o_tree ul li .active_parent.o_tree_link{font-weight:bold}.o_tree ul li .active_parent.o_tree_link a{color:#777}.o_tree ul li .active_parent.o_tree_link a:hover,.o_tree ul li .active_parent.o_tree_link a:focus{color:#333}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l0{left:6px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l1{left:21px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l2{left:36px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l3{left:51px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l4{left:66px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l5{left:81px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l6{left:96px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l7{left:111px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l8{left:126px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l9{left:141px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l10{left:156px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l11{left:171px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l0{padding:10px 2px 10px 20px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l1{padding:10px 2px 10px 35px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l2{padding:10px 2px 10px 50px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l3{padding:10px 2px 10px 65px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l4{padding:10px 2px 10px 80px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l5{padding:10px 2px 10px 95px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l6{padding:10px 2px 10px 110px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l7{padding:10px 2px 10px 125px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l8{padding:10px 2px 10px 140px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l9{padding:10px 2px 10px 155px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l10{padding:10px 2px 10px 170px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l11{padding:10px 2px 10px 185px}.o_tree .o_dnd_item{cursor:move;z-index:100}.o_tree .o_dnd_proxy{opacity:.4;filter:alpha(opacity=40);background-color:#f0ad4e;padding:5px 10px 5px 10px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_dnd_item.o_dnd_over{background-color:#ffff60}.o_tree .o_dnd_sibling{height:7px;width:100%}.o_tree .o_dnd_sibling.o_dnd_over{background:transparent url(../light/images/arrow_dd.png) top left no-repeat}.o_tree .o_dnd_l1{margin-left:0 !important}.o_tree .o_dnd_l2{margin-left:1em !important}.o_tree .o_dnd_l3{margin-left:2em !important}.o_tree .o_dnd_l4{margin-left:3em !important}.o_tree .o_dnd_l5{margin-left:4em !important}.o_tree .o_dnd_l6{margin-left:5em !important}.o_tree .o_dnd_l7{margin-left:6em !important}.o_tree .o_dnd_l8{margin-left:7em !important}.o_tree .o_dnd_l9{margin-left:8em !important}.o_tree .o_dnd_l10{margin-left:9em !important}.o_tree .o_dnd_l11{margin-left:10em !important}.o_tree.o_tree_insert_tool span.o_tree_link a{display:block}.o_offcanvas .o_tree{border:0}.o_selection_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_selection_tree ul{margin:0;padding:0;list-style-type:none}.o_selection_tree li{margin:0;padding:0;white-space:nowrap}.o_selection_tree li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_selection_tree li>div>span.o_tree_l0,.o_selection_tree li>div>div.checkbox.o_tree_l0,.o_selection_tree li>div>div.radio.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_selection_tree li>div>span.o_tree_l1,.o_selection_tree li>div>div.checkbox.o_tree_l1,.o_selection_tree li>div>div.radio.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_selection_tree li>div>span.o_tree_l2,.o_selection_tree li>div>div.checkbox.o_tree_l2,.o_selection_tree li>div>div.radio.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_selection_tree li>div>span.o_tree_l3,.o_selection_tree li>div>div.checkbox.o_tree_l3,.o_selection_tree li>div>div.radio.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_selection_tree li>div>span.o_tree_l4,.o_selection_tree li>div>div.checkbox.o_tree_l4,.o_selection_tree li>div>div.radio.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_selection_tree li>div>span.o_tree_l5,.o_selection_tree li>div>div.checkbox.o_tree_l5,.o_selection_tree li>div>div.radio.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_selection_tree li>div>span.o_tree_l6,.o_selection_tree li>div>div.checkbox.o_tree_l6,.o_selection_tree li>div>div.radio.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_selection_tree li>div>span.o_tree_l7,.o_selection_tree li>div>div.checkbox.o_tree_l7,.o_selection_tree li>div>div.radio.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_selection_tree li>div>span.o_tree_l8,.o_selection_tree li>div>div.checkbox.o_tree_l8,.o_selection_tree li>div>div.radio.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_selection_tree li>div>span.o_tree_l9,.o_selection_tree li>div>div.checkbox.o_tree_l9,.o_selection_tree li>div>div.radio.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_selection_tree li>div>span.o_tree_l10,.o_selection_tree li>div>div.checkbox.o_tree_l10,.o_selection_tree li>div>div.radio.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_selection_tree li>div>span.o_tree_l11,.o_selection_tree li>div>div.checkbox.o_tree_l11,.o_selection_tree li>div>div.radio.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_breadcrumb{position:relative}.o_breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d9534f}.o_breadcrumb .o_breadcrumb_close a:hover{color:#b52b27}.o_breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_breadcrumb .o_breadcrumb_close a span{display:none}.o_breadcrumb .o_breadcrumb_close:before{content:none}.o_form .o_icon_mandatory{margin-right:0.25em}.o_form .o_form_chelp{padding-left:0.25em;margin-right:-1.25em}.o_form .o_form_example{font-size:90%}.o_form .o_error{margin-top:1px;margin-bottom:0;padding:10px}.o_form hr.o_spacer_noline{border-top:1px solid transparent}.o_form hr.o_spacer.form,.o_form hr.o_spacer_noline.form{margin-top:0px;margin-bottom:0px}.o_form .form-group.o_omit_margin{margin-bottom:0}.o_form .o_date{position:relative;padding-right:34px}.o_form .o_date.form-inline .form-group,.o_form .o_date.o_navbar-form .form-group{margin-left:0}.o_form .o_date.form-inline .form-group.o_second_date,.o_form .o_date.o_navbar-form .form-group.o_second_date,.o_form .o_date.form-inline .o_date_ms.form-group,.o_form .o_date.o_navbar-form .o_date_ms.form-group,.o_form .o_date.form-inline .form-group.o_date_separator,.o_form .o_date.o_navbar-form .form-group.o_date_separator{margin-left:25px}.o_form .btn-group .o_date{display:inline-block}.o_form input.o_date_ms{width:3em}.o_form .has-feedback .o_date.form-inline .form-control.o_date_ms,.o_form .has-feedback .o_date.o_navbar-form .form-control.o_date_ms{padding-right:0}.o_form .o_form_element.form-inline .o_form_element.form-group,.o_form .o_form_element.o_navbar-form .o_form_element.form-group{margin-left:25px}.o_form .input-group.o_date_picker{width:11em}.o_form .has-feedback .o_date_picker .form-control{padding-right:0}.o_form .o_filepreview{margin-bottom:10px}.o_form .o_fileinput{cursor:pointer;position:relative}.o_form .o_fileinput .o_fakechooser{position:relative;z-index:1}.o_form .o_fileinput .o_realchooser{position:absolute;top:0;right:0;z-index:2;opacity:0;filter:alpha(opacity=0)}.o_form .o_fileinput .o_realchooser.o_chooser_with_delete{right:38px}.o_form .o_fileElement.has-error .o_icon_error.form-control-feedback{display:none}.o_form .form-control.textarea.o_fixed_font_with{resize:vertical !important;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_form .form-control.textarea_disabled.o_fixed_font_with{white-space:pre-wrap;height:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;color:#555 !important;background:#fafafa}.o_form .form-control.textarea_disabled{resize:both;overflow:auto;white-space:pre-wrap;background:#fafafa}.o_form_inline_mandatory_compact i{width:20px}.o_form_inline_mandatory_compact select.form-control{width:calc(100% - 25px)}.o_day_chooser .o_day_previous{display:inline-block}.o_day_chooser .o_day_previous a{border-bottom-right-radius:0;border-top-right-radius:0;border-right:0}.o_day_chooser .o_day_date{display:inline-block;border-radius:0}.o_day_chooser .o_day_date input,.o_day_chooser .o_day_date .input-group-addon{border-radius:0}.o_day_chooser .o_day_next{display:inline-block}.o_day_chooser .o_day_next a{border-bottom-left-radius:0;border-top-left-radius:0;border-left:0}.o_centered_form{text-align:center}.o_centered_form fieldset.o_form{display:inline-block;text-align:left}.o_choice_checkrow,.o_choice_textrow{vertical-align:text-top;padding-bottom:2px}.o_choice_textrow{padding-left:1em}.o_togglecheck a{white-space:nowrap}.o_catalog .o_catalog_delete_img{position:relative;top:-0.5em}.o_button_dirty{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_button_dirty:hover,.o_button_dirty:focus,.o_button_dirty.focus,.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{background-image:none}.o_button_dirty.disabled,.o_button_dirty.disabled:hover,.o_button_dirty.disabled:focus,.o_button_dirty.disabled.focus,.o_button_dirty.disabled:active,.o_button_dirty.disabled.active,.o_button_dirty[disabled],.o_button_dirty[disabled]:hover,.o_button_dirty[disabled]:focus,.o_button_dirty[disabled].focus,.o_button_dirty[disabled]:active,.o_button_dirty[disabled].active,fieldset[disabled] .o_button_dirty,fieldset[disabled] .o_button_dirty:hover,fieldset[disabled] .o_button_dirty:focus,fieldset[disabled] .o_button_dirty.focus,fieldset[disabled] .o_button_dirty:active,fieldset[disabled] .o_button_dirty.active{background-color:#f0ad4e;border-color:#eea236}.o_button_dirty .badge{color:#f0ad4e;background-color:#fff}.o_button_toggle{border:1px solid #777;border-top-right-radius:9px;border-top-left-radius:9px;border-bottom-right-radius:9px;border-bottom-left-radius:9px;background:#eee;display:inline-block;height:18px;line-height:16px;font-size:16px;text-align:left;padding:0 0.5em 0 1px;margin:0}.o_button_toggle i{color:#777;text-shadow:1px 0 2px rgba(0,0,0,0.25)}.o_button_toggle span{line-height:16px;vertical-align:top;font-size:60%;color:#777;text-transform:uppercase}.o_button_toggle.o_on{text-align:right;padding:0 1px 0 0.5em}.o_button_toggle.o_on i{color:#337ab7;text-shadow:-1px 0 2px rgba(0,0,0,0.25)}.o_table_wrapper{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_table_wrapper.o_table_flexi .o_table_body{margin-top:20px}.o_table_wrapper.o_table_flexi .table{margin-top:20px}.o_table_wrapper.o_table_flexi .table td ul{margin:0}.o_table_wrapper.o_table_flexi.o_table_no_margin .table{margin:0}.o_table_wrapper.o_table_flexi tfoot{border-top:solid #ddd 2px}.o_table_wrapper.o_table_flexi .o_multiselect{width:20px}.o_table_wrapper.o_table_edit table tbody{border-top:solid #f90 4px;background-color:#fefbf6}.o_table_wrapper .o_table_search{max-width:50em}.o_table_wrapper .o_table_footer .o_table_checkall>a{font-weight:normal;margin-right:10px}.o_table_wrapper .o_table_footer .o_table_checkall.input-sm,.o_table_wrapper .o_table_footer .input-group-sm>.o_table_checkall.form-control,.o_table_wrapper .o_table_footer .input-group-sm>.o_table_checkall.input-group-addon,.o_table_wrapper .o_table_footer .input-group-sm>.input-group-btn>.o_table_checkall.btn{padding:5px 6px}.o_table_wrapper .o_table_footer .o_table_pagination{text-align:center}.o_table_wrapper .o_table_rows_infos{float:left;padding-left:0;padding-right:20px;margin:20px 0}.o_table_wrapper .o_row_selected td{background-color:#dff0d8 !important}.o_table_wrapper .o_table{margin-bottom:0}.o_table_wrapper .o_marked{font-weight:bold}.o_table_wrapper .table{margin-bottom:0}.o_table_wrapper th a,.o_table_wrapper th a:hover{color:#333;text-decoration:none}.o_table_search a.btn.o_reset_quick_search{width:38px;margin-left:-38px;z-index:5;color:grey}.o_breadcrumb.o_table_flexi_breadcrumb ol.breadcrumb{margin:5px 0 0 0}div.o_table_flexi div.o_table_flexi_leaf{margin-left:1.55em}div.o_table_flexi div.o_table_flexi_l0{padding-left:0px}div.o_table_flexi div.o_table_flexi_l1{padding-left:15px}div.o_table_flexi div.o_table_flexi_l2{padding-left:30px}div.o_table_flexi div.o_table_flexi_l3{padding-left:45px}div.o_table_flexi div.o_table_flexi_l4{padding-left:60px}div.o_table_flexi div.o_table_flexi_l5{padding-left:75px}div.o_table_flexi div.o_table_flexi_l6{padding-left:90px}div.o_table_flexi div.o_table_flexi_l7{padding-left:105px}div.o_table_flexi div.o_table_flexi_l8{padding-left:120px}div.o_table_flexi div.o_table_flexi_l9{padding-left:135px}div.o_table_flexi div.o_table_flexi_l10{padding-left:150px}div.o_table_flexi div.o_table_flexi_l11{padding-left:165px}@media (max-width: 767px){.o_table_wrapper .o_table_rows_infos{clear:both}}a.o_orderby,a.o_orderby:hover{color:#333;text-decoration:none}a.o_orderby.o_orderby_asc,a.o_orderby.o_orderby_desc,a.o_orderby:hover.o_orderby_asc,a.o_orderby:hover.o_orderby_desc{border-bottom:1px solid #ddd}.o_table_row_count{padding-top:6px;padding-bottom:6px;vertical-align:middle}.o_table_row_details td{background-color:white !important}.o_table_config{font-size:12px}.o_table_buttons{text-align:center}.o_table_buttons input{margin-right:1em}.o_table_buttons input:last-child{margin-right:0}.o_table_tools{margin-left:6px}.o_table_tools_indications,.o_table_tools_indications_filter_only{margin-left:10px;padding-top:3px;font-size:80%}.o_table_tools_indications a,.o_table_tools_indications_filter_only a{color:#d9534f}.o_table_toolbar_left .o_table_tools_indications{text-align:right}.o_table_count{max-width:20em;float:left;padding:0 15px}.o_table_filter .control-label{margin-right:0.5em}.o_table_filter .control-label:after{content:':'}.o_table_filter>div{display:inline-block}.o_table_filter>div label{font-weight:normal}.o_info .table-bordered td,o_note .table-bordered td,o_important .table-bordered td,o_warning .table-bordered td,o_error .table-bordered td{border-color:#333}.panel .o_table_layout{border-top:1px solid #ddd;padding-top:6px}.panel .o_table_count{padding:0 15px}#o_navbar_imclient .o_im_messages{float:left}#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary{float:left;position:relative;padding:15px 3px}#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_message{padding-left:15px}#o_navbar_imclient #o_im_summary .badge{color:#fff;background-color:#777}#o_navbar_imclient #o_im_status li>a>span{display:inline}#o_navbar_imclient #o_im_status div.o_chelp_wrapper{right:0.5em}#o_navbar_imclient #o_im_message a:hover,#o_navbar_imclient #o_im_message a:focus{text-decoration:none}#o_navbar_imclient #o_im_message .o_icon_message{color:#d9534f}#o_navbar_imclient #o_im_message .o_icon_message:hover{color:#f4c37d}.o_im_load_history{margin-bottom:6px}.o_im_load_history .o_label{font-size:12px;padding-right:0.5em;line-height:1.5em;color:#777}.o_im_chat_history{height:170px;font-size:90%;border:1px solid #eee;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_im_message_group{padding:3px 3px 3px 40px;min-height:40px;position:relative;border-top:1px solid #eee;background:#fff}.o_im_message_group.o_odd{background:#F4F4F4}.o_im_message_group .o_portrait{position:absolute;top:3px;left:3px}.o_im_message_group .o_im_from{color:#777;font-size:12px;font-weight:bold}.o_im_message_group .o_im_from:hover{color:#5e5e5e}.o_im_message_group div.o_im_body{padding:3px 0 3px 0;font-size:12px}.o_im_message_group div.o_im_body .o_date{float:right;color:#777;font-size:9px}.o_groupchat_roster{font-size:12px}.o_groupchat_roster li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333}.o_groupchat_roster li.o_vip{color:#3c763d}.o_groupchat_roster li.o_anonymous{color:#31708f}.o_im_buddieslist .o_im_buddieslist_toggler .btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_im_buddieslist ul{font-size:12px}.o_im_buddieslist ul ul{padding-left:1em}.o_im_buddieslist ul a{color:#337ab7}.o_im_buddieslist ul a:hover{color:#23527c}.o_flag{position:relative;top:1px;display:inline-block;line-height:1;width:16px;height:16px;background-repeat:no-repeat;background-position:0 100%}option.o_with_flag{padding-left:23px;min-height:16px;background-repeat:no-repeat;background-position:2px 50%}.o_flag_en{background-image:url("../light/images/flags/gb.png")}.o_flag_de{background-image:url("../light/images/flags/de.png")}.o_flag_fr{background-image:url("../light/images/flags/fr.png")}.o_flag_it{background-image:url("../light/images/flags/it.png")}.o_flag_es{background-image:url("../light/images/flags/es.png")}.o_flag_da{background-image:url("../light/images/flags/dk.png")}.o_flag_cs{background-image:url("../light/images/flags/cz.png")}.o_flag_el{background-image:url("../light/images/flags/gr.png")}.o_flag_ee{background-image:url("../light/images/flags/ee.png")}.o_flag_ru{background-image:url("../light/images/flags/ru.png")}.o_flag_pl{background-image:url("../light/images/flags/pl.png")}.o_flag_zh_CN{background-image:url("../light/images/flags/cn.png")}.o_flag_zh_TW{background-image:url("../light/images/flags/tw.png")}.o_flag_lt{background-image:url("../light/images/flags/lt.png")}.o_flag_fa{background-image:url("../light/images/flags/ir.png")}.o_flag_pt_PT{background-image:url("../light/images/flags/pt.png")}.o_flag_pt_BR{background-image:url("../light/images/flags/br.png")}.o_flag_tr{background-image:url("../light/images/flags/tr.png")}.o_flag_hu{background-image:url("../light/images/flags/hu.png")}.o_flag_sq{background-image:url("../light/images/flags/al.png")}.o_flag_in{background-image:url("../light/images/flags/id.png")}.o_flag_ar{background-image:url("../light/images/flags/eg.png")}.o_flag_rm{background-image:url("../light/images/flags/rm.png")}.o_flag_af{background-image:url("../light/images/flags/za.png")}.o_flag_vi{background-image:url("../light/images/flags/vn.png")}.o_flag_mn{background-image:url("../light/images/flags/mn.png")}.o_flag_iw{background-image:url("../light/images/flags/il.png")}.o_flag_ko{background-image:url("../light/images/flags/kr.png")}.o_flag_nl_NL{background-image:url("../light/images/flags/nl.png")}.o_flag_jp{background-image:url("../light/images/flags/jp.png")}.o_flag_nb_NO{background-image:url("../light/images/flags/no.png")}.o_flag_et_EE{background-image:url("../light/images/flags/ee.png")}.o_flag_bg{background-image:url("../light/images/flags/bg.png")}.o_flag_hi_IN_ASIA{background-image:url("../light/images/flags/in.png")}.o_flag_ar_LB{background-image:url("../light/images/flags/lb.png")}.o_flag_gl_ES{background-image:url("../light/images/flags/galicia.png")}.o_flag_sk{background-image:url("../light/images/flags/sk.png")}.o_rating .o_rating_title{font-size:12px}.o_rating .o_rating_items{white-space:nowrap}.o_rating .o_rating_items .o_icon{color:#f0ad4e}.o_rating .o_rating_items .o_legend{margin-left:1em;font-size:12px;line-height:normal}.o_rating.o_rating_personal .o_rating_items .o_icon{color:#337ab7}.o_rating .o_rating_explanation{font-size:12px;color:#777}@media (max-width: 991px){.o_rating .o_rating_title,.o_rating .o_rating_explanation{display:none}}.o_comments .o_comment_wrapper .o_avatar{float:left;margin:0 1em 0 0}.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.o_comments .o_comment_wrapper .o_comment_wrapper{margin-left:16px}.o_ratings_and_comments .o_rating_wrapper{vertical-align:middle;display:inline-block}.o_ratings_and_comments a.o_comments{margin-left:10px;position:relative;top:0.1em}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#64a0d3}.d3chart .bar_default,.d3chart .bubble_default{fill:#337ab7}.d3chart .bar_default_dark{fill:#23527c}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_forum_peekview .o_quote_wrapper,.o_forum_peekview .b_quote_wrapper{display:none}.o_forum_thread_sticky{font-weight:bold}.o_forum_switch{font-size:12px}.o_forum_toolbar{margin-bottom:6px;float:left}.o_forum_fulltextsearch{float:right}@media (max-width: 767px){.o_forum_fulltextsearch{float:left}.o_forum_toolbar .o_forum_tool span{display:none}}.o_forum{padding-bottom:50px}.o_forum .o_mark,.o_forum .o_ep_collect{float:right;position:relative;width:2em;margin-left:12px}.o_forum .o_portrait{float:left;margin-right:16px}.o_forum .o_portrait_avatar{width:70px;height:70px}.o_forum .o_newindicator{font-size:10px;color:#5cb85c;text-transform:uppercase;padding-left:1em;vertical-align:text-top;white-space:nowrap}.o_forum .o_author,.o_forum .o_date{display:inline-block;color:#777}.o_forum .o_date{font-size:12px}.o_forum .o_modified{color:#8a6d3b;font-size:12px;font-style:italic}.o_forum .o_forum_message{margin-bottom:20px;background-color:#fcfcfc;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_forum .o_forum_message_new{-webkit-box-shadow:0 1px 10px rgba(92,184,92,0.3);box-shadow:0 1px 10px rgba(92,184,92,0.3)}.o_forum .o_forum_message_highlight{-webkit-box-shadow:0 1px 10px rgba(240,173,78,0.5);box-shadow:0 1px 10px rgba(240,173,78,0.5)}.o_forum .o_forum_message_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:3px;border-top-left-radius:3px}.o_forum .o_forum_message_title{margin-top:0}.o_forum .o_forum_message_body{padding:10px 15px}.o_forum .o_forum_message_attachments{border-top:1px solid #ddd;padding:10px 15px;font-size:12px;background-color:#f7f7f9}.o_forum .o_attachment{position:relative;max-width:250px;vertical-align:top;margin:6px 12px 10px 0}.o_forum .o_attachment img{margin-top:6px}.o_forum .o_filename{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_forum .o_icon_enlarge{position:absolute;left:1em;bottom:1em;text-shadow:1px 1px 2px #fff, -1px 1px 2px #fff, 1px -1px 2px #fff, -1px -1px 2px #fff}@media (min-width: 768px) and (max-width: 991px){.o_forum .o_attachments{font-size:10px}.o_forum .o_attachment{max-width:200px}.o_forum .o_attachment img{max-width:150px}.o_forum .o_filename{max-width:200px}}@media (max-width: 767px){.o_forum .o_attachments{font-size:9px}.o_forum .o_attachment{max-width:150px}.o_forum .o_attachment img{max-width:100px}.o_forum .o_filename{max-width:150px}}.o_quote_wrapper,.b_quote_wrapper{position:relative;margin:10px 0}.o_quote_author,.b_quote_author{color:#777;font-size:12px}.o_quote_author:before,.b_quote_author:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";font-size:21px;padding-right:0.5em}blockquote.o_quote,blockquote.b_quote{color:#555;font-size:12px;margin-top:6px;padding:0 12px}a.o_chelp{display:inline-block;padding:1px 3px;text-align:center;vertical-align:middle;white-space:nowrap;font-size:10px;font-weight:normal;line-height:15px;color:#fff;background-color:#337ab7;border:1px solid #2e6da4;border-radius:2px;cursor:help;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}a.o_chelp:active,a.o_chelp:hover,a.o_chelp:focus{text-decoration:none;color:#fff;background-color:#2a6598;border-color:#204d74}a.o_chelp i{font-size:10px !important}.o_chelp_wrapper{position:relative;float:right;display:inline-block;line-height:normal;margin-bottom:10px;margin-left:10px}.o_form_chelp,.o_chelp_tooltip{color:#737373}.o_draw_circle{border:2px solid #337ab7;border-radius:50%;position:absolute !important;box-sizing:border-box}.o_draw_rectangle{border:2px solid #337ab7;position:absolute !important;box-sizing:border-box}.o_iframedisplay iframe{width:100%}.o_singlepage .o_edit{position:absolute;top:0;right:37px}.o_content_popup{position:absolute;top:0;right:12px}.o_module_cp_wrapper{position:relative}.o_module_cp_wrapper .o_tools{position:absolute;top:0;right:0;text-align:right;vertical-align:middle}.o_module_cp_wrapper .o_tools .o_search_wrapper{display:inline-block;position:relative;top:-2px}.o_module_cp_wrapper .o_tools .o_search_wrapper .form-group{margin-bottom:0}.o_module_cp_wrapper .o_tools .o_search_wrapper .form-control-static{padding-top:0;padding-bottom:0}ul.o_dropdown{margin:-5px -14px}ul.o_dropdown .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}ul.o_dropdown>li>a{display:block;padding:5px 14px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;background:#fcfcfc;white-space:nowrap}ul.o_dropdown>li>a:hover,ul.o_dropdown>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}ul.o_dropdown>li>i.o_icon_check{display:inline-block;padding-left:14px}ul.o_dropdown>li>i.o_icon_check+a{display:inline-block;padding-left:5px}.badge.o_scorm_completed{background-color:#3c763d}.badge.o_scorm_failed{background-color:#a94442}.badge.o_scorm_incomplete{background-color:#8a6d3b}.badge.o_scorm_not_attempted{background:none}.o_bc_meta h5,.o_bc_meta .o_author,.o_bc_meta .o_comment,.tooltip h5,.tooltip .o_author,.tooltip .o_comment{color:#fff;margin:5px 0}.o_bc_meta .o_thumbnail,.tooltip .o_thumbnail{width:200px;height:200px;display:inline-block;background-color:#fff;margin:0 -5px}.o_htmleditor .o_metadata{border:1px solid #999;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom:0;background:#eee;position:relative;top:1px;padding:5px}.o_htmleditor .o_metadata #o_filename{float:left}.o_htmleditor .o_metadata .o_lastmodified{float:right;color:#777;line-height:1.428571429}.o_htmleditor #o_save{margin-top:10px;text-align:center}.o_htmleditor #o_save input{margin-right:1em}.o_htmleditor #o_save input:last-child{margin-right:0}.o_notifications_news_wrapper .o_notifications_news_subscription{margin:10px 0}.o_notifications_news_wrapper .o_notifications_news_subscription h4 i,.o_notifications_news_wrapper .o_notifications_news_subscription .o_cal .fc-header-title h2 i,.o_cal .fc-header-title .o_notifications_news_wrapper .o_notifications_news_subscription h2 i{display:none}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_context{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content{margin-left:1.5em;position:relative}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_icon{position:absolute;left:-1.5em;line-height:1.5em;top:0}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_date{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_url{margin-left:1.5em}.o_noti{margin:6px 0 6px 12px;float:right;color:#777}.o_noti .o_label{color:#777;cursor:help}@media (max-width: 767px){.o_noti .o_label span{display:none}}.panel-body .o_noti{margin:0}.o_portrait{display:inline-block}.o_portrait img{border-radius:50%;border:none;background-color:#eee;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.o_portrait_name{margin-top:6px}.o_block_inline .o_portait,.o_block_inline .o_portrait_name,.o_block_inline .o_portrait_image,.o_block_inline_right .o_portait,.o_block_inline_right .o_portrait_name,.o_block_inline_right .o_portrait_image,.o_block_inline_left .o_portait,.o_block_inline_left .o_portrait_name,.o_block_inline_left .o_portrait_image,.o_block_inline_both .o_portait,.o_block_inline_both .o_portrait_name,.o_block_inline_both .o_portrait_image{display:inline-block}.o_portrait_avatar,.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png") !important}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png") !important}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png") !important}.o_portrait_anonymous{background-image:url("../light/images/portrait/anonymous.png") !important}.o_portrait_avatar_small,.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png") !important}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png") !important}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png") !important}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/anonymous_small.png") !important}.o_datecomp{position:relative;width:40px;height:52px;border:1px solid #555;margin-right:12px;text-align:center;vertical-align:middle}.o_datecomp div.o_year{position:absolute;left:0;width:100%;top:-20px;height:20px;line-height:20px;font-size:10px}.o_datecomp div.o_month{height:20px;line-height:20px;font-size:12px;background-color:#337ab7;color:#fff}.o_datecomp div.o_day{height:30px;line-height:30px;font-size:18px;border-top:1px solid #555;background-color:#fff;color:#333}.o_block_with_datecomp .o_head{position:relative;padding-left:52px}.o_block_with_datecomp .o_datecomp{position:absolute;top:0.2em;left:0}.o_block_with_datecomp .o_title{margin-top:0}.o_block_with_datecomp .o_meta{color:#777}.o_block_with_datecomp .o_content{border-left:5px solid #eee;padding:0 20px}.o_block_with_datecomp .o_block_footer{padding-left:25px}ul.o_certificates li{padding:5px 0}ul.o_certificates li a.o_sel_certificate_delete{padding-left:2em}.o_cal_toptoolbar{margin-bottom:6px}.o_cal_toptoolbar .o_cal_toptoolbar_help{float:left;margin-right:12px}.o_cal_toptoolbar .o_noti{margin-top:0}.o_feed .o_date,.o_feed .o_author{color:#777}.o_feed .o_subscription a{margin-right:1.5em}.o_feed .o_subscription .form-group{margin-bottom:5px}.o_feed .o_subscription .form-control{border:0;background:none;padding:0;height:auto;-webkit-box-shadow:none;box-shadow:none}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper{float:left}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_title,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_explanation,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_legend{display:none}.o_feed .o_blog_posts .o_ratings_and_comments a.o_comments span{display:none}.o_feed .o_content:before,.o_feed .o_content:after{content:" ";display:table}.o_feed .o_content:after{clear:both}.o_feed .o_enclosure{clear:both}.o_glossary .o_register{text-align:center}.o_glossary .o_meta{font-size:90%;color:#777;font-style:italic}.o_glossary dl dt:first-letter{font-size:21px}.o_glossary dl dt small{color:#777}.o_tm_glossary{border-bottom:1px dotted #666699 !important}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_coaching div#o_main_toolbar.o_toolbar{margin-top:0px}.o_eff_statement_details .o_user_infos{margin-top:20px}div.o_assessment_user_type_filter{display:inline-block;padding:0.5em;border:1px solid #eee;border-radius:4px}div.o_assessment_user_type_filter div.form-inline,div.o_assessment_user_type_filter div.o_navbar-form{margin-left:5px;display:inline-block}div.panel.o_assessment_modes .o_table_body{margin-top:0}div.panel.o_assessment_modes .o_table_wrapper{margin-bottom:5px}div.o_assessment_mode_row{padding:0 15px}div.o_assessment_mode_row.o_assessment_today{padding:0 20px 0 12px;border-left:3px solid #3c763d;background-color:#dff0d8}div.o_assessment_mode_row.o_assessment_end_soon.o_assessment_today{padding:0 20px 0 12px;border-left:3px solid #a94442;background-color:#f2dede}.vitero_iframe{width:100%;height:100%;border:none;min-height:60em}.o_reminder_rule{padding:5px 0}.o_segments.btn-group a span{overflow:hidden;display:block;text-overflow:ellipsis}.o_segments_content{margin-top:20px}.o_segments.o_segments_linked .btn,.o_segments.o_segments_linked .btn:hover,.o_segments.o_segments_linked .btn:active,.o_segments.o_segments_linked .btn:focus{border:none;border-radius:0;box-shadow:none;background:none}.o_segments.o_segments_linked .btn-primary{color:#000;font-size:24px;background:none}.o_segments.o_segments_linked .btn-default,.o_segments.o_segments_linked .btn-default:hover,.o_segments.o_segments_linked .btn-default:active,.o_segments.o_segments_linked .btn-default:focus{color:#337ab7;background:none}.o_segments.o_segments_linked .o_segment_separator{color:#000}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d9534f}ul.o_assessment_docs{margin-bottom:0}ul.o_assessment_docs>li{margin-bottom:0.33em}ul.o_assessment_docs>li:last-child{margin-bottom:0em}.o_mail_message .o_mail_meta{background:#fafafa;border:1px solid #eee;padding:5px 10px}.o_mail_message .o_mail_meta h3{margin-top:0}.o_mail_message .o_mail_date,.o_mail_message .o_mail_from,.o_mail_message .o_mail_recipients{color:#777;font-size:90%}.o_mail_message .o_mail_date .o_label,.o_mail_message .o_mail_from .o_label,.o_mail_message .o_mail_recipients .o_label{font-weight:bold;margin-right:1em}.o_mail_message .o_mail_date .o_group span,.o_mail_message .o_mail_from .o_group span,.o_mail_message .o_mail_recipients .o_group span{font-weight:bold}.o_mail_message .o_mail_date .o_group span:after,.o_mail_message .o_mail_from .o_group span:after,.o_mail_message .o_mail_recipients .o_group span:after{content:':';margin-right:0.5em}.o_mail_message .o_mail_date i,.o_mail_message .o_mail_from i,.o_mail_message .o_mail_recipients i{margin-left:1em}.o_mail_message .o_mail_date ul.list-inline,.o_mail_message .o_mail_from ul.list-inline,.o_mail_message .o_mail_recipients ul.list-inline{display:inline}.o_mail_message .o_mail_date ul.list-inline li,.o_mail_message .o_mail_from ul.list-inline li,.o_mail_message .o_mail_recipients ul.list-inline li{padding-right:0;padding-left:0}.o_mail_message .o_more{margin-left:1em}.o_mail_message .o_showAllLink{float:right;font-size:80%}.progress .o_progress_marker{position:absolute;height:100%;top:0;width:3px;background:red}.progress .progress-bar{text-shadow:1px 1px 2px #000000}.o_progress_label_right{float:left;margin-right:10px}.o_web_content{padding-bottom:15px}.o_labeled_light,a.o_labeled_light,.o_labeled,a.o_labeled{display:inline-block;text-transform:uppercase;text-align:center;text-decoration:none;vertical-align:middle;font-size:75%;line-height:1;white-space:nowrap;border:1px solid;border-radius:3px;padding:2px 5px;background-color:#777;color:#fff;position:relative}.o_labeled_light,a.o_labeled_light{font-weight:bold;background-color:#f8f8f8}.o_ms_button{max-width:100%;width:100%;display:flex}.o_ms_button span:not(.o_ms_carret){text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.o_ms_button .o_ms_carret{margin:auto 0 auto auto}.o_ms_list{width:100%;height:auto;max-height:300px;overflow-x:hidden;top:unset}.o_disclaimer .o_disclaimer_content{max-height:50vh;overflow:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;background:#fbfbfb;padding:10px;border:1px solid #c2c2c2}.tt-input{width:400px}.tt-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fcfcfc;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.428571429}.tt-suggestion.tt-cursor,.tt-suggestion:hover{color:#fff;background-color:#337ab7}.tt-suggestion p{margin:0}.tt-menu div.o_icon_error:before{content:''}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_title h4 .o_icon-fw,.o_search_result_title .o_cal .fc-header-title h2 .o_icon-fw,.o_cal .fc-header-title .o_search_result_title h2 .o_icon-fw{text-align:left}.o_search_result_highlight{font-weight:bold;background-color:transparent}.o_search_result_context{display:inline-block;color:#3c763d;margin-right:1em}.o_search_result_license{display:inline-block;color:#777}.o_search_result_excerpt{color:#555}.o_search_result .o_opener{font-size:12px}.o_search_result .o_opener i{width:1em}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}.o_search_result_details .o_togglebox_wrapper .o_search_result_license i{font-size:20px}@media (max-width: 767px){.o_search_result_details{display:none}}.wizard{border:1px solid #d4d4d4;border-radius:2px;background-color:#f9f9f9;position:relative;overflow:hidden;margin-bottom:15px}.wizard ul{list-style:none outside none;padding:0;margin:0;width:4000px}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#333;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #d4d4d4;border-right:0;display:block;position:absolute;right:-14px;top:0;z-index:1}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.active{background:#f1f6fc;color:#333}.wizard ul li.active .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:first-child{border-radius:4px 0 0 4px;padding-left:20px}.o_process{position:relative;padding-left:25px}.o_process .o_step{position:relative;height:auto;padding-top:10px;padding-left:30px;padding-bottom:10px}.o_process .o_bar{position:absolute;top:10px;left:8px;height:100%;border-left:4px solid #777}.o_process .o_bar:after{position:absolute;top:0;left:-10px;height:16px;width:16px;border:4px solid #777;border-radius:16px;background:#fff;content:" "}.o_process .o_title{margin-top:-1px;color:#777 !important}.o_process .o_title:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;left:-24px}.o_process .o_title a:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";width:1em}.o_process .o_title a.collapsed:before{content:""}.o_process .o_step.o_active .o_bar,.o_process .o_step.o_active .o_bar:after{border-color:#337ab7}.o_process .o_step.o_active .o_title{color:#337ab7 !important}.o_process .o_step.o_active .o_title:before{content:"";color:#337ab7}.o_process .o_step.o_done .o_bar,.o_process .o_step.o_done .o_bar:after{border-color:#5094ce}.o_process .o_step.o_done .o_title{color:#5094ce !important}.o_process .o_step.o_done .o_title:before{content:"";color:#5cb85c}.o_process .o_meta{color:#777;font-size:12px;margin-top:-0.5em}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5D5D5D !important}.o_cal_class.o_cal_orange{border-left:20px solid #ffc266}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:#FFF !important}.o_cal_class.o_cal_green{border-left:20px solid #66c266}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:#FFF !important}.o_cal_class.o_cal_blue{border-left:20px solid #4d6e9f}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5D5D5D !important}.o_cal_class.o_cal_yellow{border-left:20px solid #ffe066}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:#FFF !important}.o_cal_class.o_cal_red{border-left:20px solid #c26666}.o_cal_rebeccapurple{background:#663399;border-color:#663399;color:#FFF}.o_cal_rebeccapurple .o_cal_wv_event_header{background:#663399}.o_cal_rebeccapurple a{color:#FFF !important}.o_cal_class.o_cal_rebeccapurple{border-left:20px solid #639}.o_cal_fuchsia{background:#FF00FF;border-color:#dd00dd;color:#FFF}.o_cal_fuchsia .o_cal_wv_event_header{background:#FF00FF}.o_cal_fuchsia a{color:#FFF !important}.o_cal_class.o_cal_fuchsia{border-left:20px solid #f0f}.o_cal_olive{background:#808000;border-color:#636300;color:#FFF}.o_cal_olive .o_cal_wv_event_header{background:#808000}.o_cal_olive a{color:#FFF !important}.o_cal_class.o_cal_olive{border-left:20px solid olive}.o_cal_navy{background:#000080;border-color:#000057;color:#FFF}.o_cal_navy .o_cal_wv_event_header{background:#000080}.o_cal_navy a{color:#FFF !important}.o_cal_class.o_cal_navy{border-left:20px solid navy}.o_cal_maroon{background:#800000;border-color:#740000;color:#FFF}.o_cal_maroon .o_cal_wv_event_header{background:#800000}.o_cal_maroon a{color:#FFF !important}.o_cal_class.o_cal_maroon{border-left:20px solid maroon}.o_cal_lime{background:#00FF00;border-color:#00e200;color:#004d00}.o_cal_lime .o_cal_wv_event_header{background:#00FF00}.o_cal_lime a{color:#004d00 !important}.o_cal_class.o_cal_lime{border-left:20px solid lime}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:#FFF !important}.o_cal_class.o_cal_grey{border-left:20px solid #DDDAAA}.o_sel_calendar_print_chooser{padding-right:4em}.o_cal_config_enabled,.o_cal_config_disabled{position:relative;float:left;display:inline}.o_cal_config_calendar{margin:0 5px;padding:1px 6px 1px 4px;position:relative;width:200px;overflow:hidden;float:left;display:inline}.o_cal_config_color{display:block;width:16px;height:16px;border-radius:8px}.o_cal_colorchooser_selected:before{content:""}#o_cal_colorchooser div{border:1px solid #337ab7;margin:5px;display:inline-block}#o_cal_colorchooser div:hover{border:1px solid #333}#o_cal_colorchooser a{width:20px;height:20px;display:inline-block}.o_cal_embedded_course_container .o_content_popup{top:0}.o_cal_wv_event_tooltip_content .o_cal_description{background-color:#f8f8f8;padding:10px 7px;margin:10px -7px}.o_cal_wv_event_tooltip_content .o_cal_tooltip_buttons{text-align:center;margin-top:20px}.o_cal_event_managed .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_not_managed .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_managed.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:" "}.o_cal_event_not_managed.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:" "}.fc-button{color:#333;background-color:#fcfcfc;border-color:#ccc}.fc-button:hover,.fc-button:focus,.fc-button.focus,.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{color:#333;background-color:#e3e3e3;border-color:#adadad}.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{background-image:none}.fc-button.disabled,.fc-button.disabled:hover,.fc-button.disabled:focus,.fc-button.disabled.focus,.fc-button.disabled:active,.fc-button.disabled.active,.fc-button[disabled],.fc-button[disabled]:hover,.fc-button[disabled]:focus,.fc-button[disabled].focus,.fc-button[disabled]:active,.fc-button[disabled].active,fieldset[disabled] .fc-button,fieldset[disabled] .fc-button:hover,fieldset[disabled] .fc-button:focus,fieldset[disabled] .fc-button.focus,fieldset[disabled] .fc-button:active,fieldset[disabled] .fc-button.active{background-color:#fcfcfc;border-color:#ccc}.fc-button .badge{color:#fcfcfc;background-color:#333}.fc-button.fc-state-default{text-shadow:none}.fc-button.fc-state-active{color:#fff;background-color:#337ab7;border-color:#2e6da4}.fc-button.fc-state-active:hover,.fc-button.fc-state-active:focus,.fc-button.fc-state-active.focus,.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{background-image:none}.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#337ab7;border-color:#2e6da4}.fc-button.fc-state-active .badge{color:#337ab7;background-color:#fff}.fc-listYear-button:before,.fc-listMonth-button:before,.fc-listWeek-button:before,.fc-listDay-button:before{content:"";margin-right:5px;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:80%;webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}table.fc-list-table .fc-list-item{background-color:white;color:#5D5D5D !important}table.fc-list-table .fc-list-item a,table.fc-list-table .fc-list-item span{color:#5D5D5D !important}body.o_cal_print fieldset{border:none;margin-bottom:2em}body.o_cal_print legend{font-size:2em;font-weight:bold}body.o_cal_print legend span{display:block;font-size:14px;font-weight:normal}body.o_cal_print ul.o_cal_wv_list{list-style-type:none;padding:0}body.o_cal_print ul.o_cal_wv_list>li{page-break-inside:avoid;margin-bottom:2em}body.o_cal_print ul.o_cal_wv_list .o_cal_date{font-size:1.25em;font-weight:bold;padding:0.5em 0 0.5em 0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events{list-style-type:none;padding:0.5em 0 0 0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event{position:relative;left:30px;page-break-inside:avoid;clear:both;margin-bottom:1.5em;padding-right:30px}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_time{float:left;font-weight:bold;margin-right:1em}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_subject{font-weight:bold}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_subject p{margin:0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_location,body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_description,body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_freebusy{clear:both}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_freebusy{font-style:italic}body.o_cal_print .o_cal_class{position:absolute;left:-30px;width:20px}body.o_cal_print #o_cal_config legend{font-size:1.25em}body.o_cal_print #o_cal_config .o_cal_config_calendar{margin:0;padding:0}body.o_cal_print #o_cal_config .o_cal_config_calendar{position:relative;left:30px;float:none;padding-right:30px}.o_page_content_editor .o_toolbar{border:none}.o_page_content_editor .o_page_part,.gu-mirror{border:2px solid transparent}.o_page_content_editor .o_page_part:hover,.gu-mirror:hover{border:2px dotted #78acd9}.o_page_fragment_edit{position:relative;display:grid}.o_page_fragment_edit .o_page_tools_above{height:25px;width:100%;background:#78acd9;position:absolute;z-index:3;left:0;top:-25px;box-shadow:3px -8px 10px 0px rgba(0,0,0,0.2)}.o_page_fragment_edit .o_page_tools_above .o_page_add_above{position:absolute;left:0;right:0;margin-left:auto;margin-right:auto;width:26px;top:-19px;height:19px;background-color:#78acd9;border-radius:10px 10px 0 0}.o_page_fragment_edit .o_page_tools_above .o_page_add_above .o_icon{color:#fff;background-color:#78acd9}.o_page_fragment_edit .o_page_tools_above .o_sel_add_element_above{display:inline-block;padding:3px 5px 0 7px}.o_page_fragment_edit .o_page_tools_above .o_page_others_above{padding-right:25px;line-height:25px;vertical-align:middle}.o_page_fragment_edit .o_page_tools_above .o_page_others_above .o_page_type{display:none}.o_page_fragment_edit .o_page_tools_above .o_page_others_above a{float:right;color:#fff;padding-right:1em}.o_page_fragment_edit .o_page_tools_above .o_page_others_above a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_tools_dd{position:absolute;z-index:4;top:0;right:0;width:25px;height:100%;background:#78acd9}.o_page_fragment_edit .o_page_tools_dd:before{content:' ';width:25px;height:100%;position:absolute;left:0;top:0;border:3px #78acd9 solid;border-bottom:28px #78acd9 solid;background-image:-webkit-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:-moz-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:-ms-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);-webkit-background-size:3px 3px;-moz-background-size:3px 3px;background-size:3px 3px}.o_page_fragment_edit .o_page_tools_dd a{position:absolute;display:inline-block;width:25px;height:25px;line-height:25px;text-align:center;vertical-align:middle;background:#78acd9;color:#fff}.o_page_fragment_edit .o_page_tools_dd a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_tools_dd a.o_disabled{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_tools_dd a.o_disabled:hover{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_tools_dd a.o_sel_move_up_element{z-index:4;top:-25px}.o_page_fragment_edit .o_page_tools_dd a.o_sel_move_down_element{bottom:0}.o_page_fragment_edit .o_page_part.o_page_edit{padding-right:23px;border:2px solid #78acd9;box-shadow:5px 5px 10px 0px rgba(0,0,0,0.2)}.o_page_fragment_edit .o_page_part.o_page_edit:hover{border:2px solid #78acd9}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar{position:absolute;z-index:5;left:5px;top:-25px;display:inline-block;height:25px;line-height:25px;vertical-align:middle}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a{color:#fff}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a.o_disabled{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a.o_disabled:hover{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_title .o_page_edit_toolbar li{font-weight:bold}.o_page_fragment_edit .o_page_part.o_page_edit .o_richtext_mce textarea{border:0}.o_page_fragment_edit .o_page_add_below{position:absolute;z-index:3;position:absolute;z-index:3;left:0;right:0;margin-left:auto;margin-right:auto;width:26px;bottom:-20px;height:22px;background-color:#78acd9;border-radius:0 0 10px 10px}.o_page_fragment_edit .o_page_add_below .o_icon{color:#fff;background-color:#78acd9}.o_page_fragment_edit .o_page_add_below .o_sel_add_element_below{display:inline-block;padding:0 5px 5px 5px;margin:0px 0px 0px 2px}.o_page_fragment_edit.gu-mirror .o_page_add_below,.o_page_fragment_edit.gu-mirror .o_page_add_above,.o_page_fragment_edit.gu-transit .o_page_add_below,.o_page_fragment_edit.gu-transit .o_page_add_above{display:none}.o_page_container_slot.col-md-3 .o_page_others_above a span,.o_page_container_slot.col-md-4 .o_page_others_above a span{display:none}.o_page_container_slot.col-md-3 .o_page_edit_toolbar ul>li,.o_page_container_slot.col-md-4 .o_page_edit_toolbar ul>li{padding-right:0}div.o_page_content_editor .gu-mirror,.o_page_content_editor .gu-transit{box-shadow:none}.o_page_container{box-sizing:border-box;padding:10px}.o_page_container{background-color:transparent}.o_page_container .o_page_container{background-color:transparent}.o_page_container .o_page_container .o_page_container{background-color:transparent}.o_page_container_slot{box-sizing:border-box;margin:0 -1px -1px 0;padding:10px}.o_page_container .o_page_container_slot{border:2px dotted #eee}.o_page_container:hover .o_page_container_slot{border:2px dotted #ef00ef}.o_page_add_in_container_grp{margin-bottom:0}.gu-transit{border:2px dotted #e80c96;opacity:0.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40)}.gu-mirror{border:2px dotted #78acd9;opacity:0.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80)}.o_page_add_callout a span{display:none}.o_page_add_callout ul.list-inline{margin-bottom:0}.o_page_table_edition .o_table_title,.o_page_table_edition .o_table_caption{padding:5px}.o_page_with_side_options_wrapper{display:flex;align-items:stretch;flex-direction:row}.o_page_side_options_target{background-color:#f9f9f9;flex-grow:4}.o_page_side_options{flex-grow:0;background-color:#78acd9;border-left:1px solid #b9b9b9;border-bottom:1px solid #b9b9b9;padding:5px;z-index:2}@media (max-width: 767px){.o_page_with_side_options_wrapper{flex-direction:column-reverse}}.o_page_content .o_image,.o_page_content .o_video,.o_page_content_editor .o_image,.o_page_content_editor .o_video{width:100%}.o_page_content .o_image img,.o_page_content .o_video img,.o_page_content_editor .o_image img,.o_page_content_editor .o_video img{border:1px #f8f8f8 solid;border-radius:10px}.o_page_content .o_image .o_artefact_metadata,.o_page_content .o_video .o_artefact_metadata,.o_page_content_editor .o_image .o_artefact_metadata,.o_page_content_editor .o_video .o_artefact_metadata{text-align:left}.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left{float:left}.o_page_content .o_image.o_image_align_left+.o_image_clear,.o_page_content .o_video.o_image_align_left+.o_image_clear,.o_page_content_editor .o_image.o_image_align_left+.o_image_clear,.o_page_content_editor .o_video.o_image_align_left+.o_image_clear{clear:both}.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right{float:right}.o_page_content .o_image.o_image_align_right+.o_image_clear,.o_page_content .o_video.o_image_align_right+.o_image_clear,.o_page_content_editor .o_image.o_image_align_right+.o_image_clear,.o_page_content_editor .o_video.o_image_align_right+.o_image_clear{clear:both}.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle{clear:both;margin-left:50%;text-align:center;transform:translate(-50%, 0%)}.o_page_content .o_image.o_image_align_leftfloat,.o_page_content .o_video.o_image_align_leftfloat,.o_page_content_editor .o_image.o_image_align_leftfloat,.o_page_content_editor .o_video.o_image_align_leftfloat{float:left;padding-right:10px;padding-bottom:10px}.o_page_content .o_image.o_image_align_rightfloat,.o_page_content .o_video.o_image_align_rightfloat,.o_page_content_editor .o_image.o_image_align_rightfloat,.o_page_content_editor .o_video.o_image_align_rightfloat{float:right;padding-left:10px;padding-bottom:10px}.o_page_content .o_image.o_image_size_style_small,.o_page_content .o_video.o_image_size_style_small,.o_page_content_editor .o_image.o_image_size_style_small,.o_page_content_editor .o_video.o_image_size_style_small{width:25%}.o_page_content .o_image.o_image_size_style_small img,.o_page_content .o_video.o_image_size_style_small img,.o_page_content_editor .o_image.o_image_size_style_small img,.o_page_content_editor .o_video.o_image_size_style_small img{width:100%}.o_page_content .o_image.o_image_size_style_medium,.o_page_content .o_video.o_image_size_style_medium,.o_page_content_editor .o_image.o_image_size_style_medium,.o_page_content_editor .o_video.o_image_size_style_medium{width:40%}.o_page_content .o_image.o_image_size_style_medium img,.o_page_content .o_video.o_image_size_style_medium img,.o_page_content_editor .o_image.o_image_size_style_medium img,.o_page_content_editor .o_video.o_image_size_style_medium img{width:100%}.o_page_content .o_image.o_image_size_style_large,.o_page_content .o_video.o_image_size_style_large,.o_page_content_editor .o_image.o_image_size_style_large,.o_page_content_editor .o_video.o_image_size_style_large{width:60%}.o_page_content .o_image.o_image_size_style_large img,.o_page_content .o_video.o_image_size_style_large img,.o_page_content_editor .o_image.o_image_size_style_large img,.o_page_content_editor .o_video.o_image_size_style_large img{width:100%}.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill{width:100%;float:none !important;display:block}.o_page_content .o_image.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content .o_video.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content_editor .o_image.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content_editor .o_video.o_image_size_style_fill .o_figure_caption_bottom{display:block}.o_page_content .o_image.o_image_size_style_fill img,.o_page_content .o_video.o_image_size_style_fill img,.o_page_content_editor .o_image.o_image_size_style_fill img,.o_page_content_editor .o_video.o_image_size_style_fill img{width:100%;display:block}.o_page_content .o_image img.o_image_classic,.o_page_content .o_video img.o_image_classic,.o_page_content_editor .o_image img.o_image_classic,.o_page_content_editor .o_video img.o_image_classic{padding:0;border:0;border-radius:0}.o_page_content .o_image img.o_image_border,.o_page_content .o_video img.o_image_border,.o_page_content_editor .o_image img.o_image_border,.o_page_content_editor .o_video img.o_image_border{padding:3px;border:solid 1px #CCC}.o_page_content .o_image img.o_image_shadow,.o_page_content .o_video img.o_image_shadow,.o_page_content_editor .o_image img.o_image_shadow,.o_page_content_editor .o_video img.o_image_shadow{padding:0;border:0;-moz-box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);-webkit-box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.o_page_content .o_image img.o_image_frame,.o_page_content .o_video img.o_image_frame,.o_page_content_editor .o_image img.o_image_frame,.o_page_content_editor .o_video img.o_image_frame{padding:0;border:0;border-radius:0;-moz-box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);-webkit-box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);margin:15px}.o_page_content .o_image img.o_image_polaroid,.o_page_content .o_video img.o_image_polaroid,.o_page_content_editor .o_image img.o_image_polaroid,.o_page_content_editor .o_video img.o_image_polaroid{padding:0;border-radius:0;border:1px solid #dcdcdc;background:#fff;padding:10px 10px 45px 10px;-webkit-box-shadow:3px 3px 3px rgba(0,0,0,0.2);-moz-box-shadow:3px 3px 3px rgba(0,0,0,0.2);box-shadow:3px 3px 3px rgba(0,0,0,0.2)}.o_page_content .o_image img.o_image_round,.o_page_content .o_video img.o_image_round,.o_page_content_editor .o_image img.o_image_round,.o_page_content_editor .o_video img.o_image_round{padding:3px;border:solid 1px #CCC;border-radius:50%}.o_page_content .o_image .o_image_title_dark,.o_page_content .o_video .o_image_title_dark,.o_page_content_editor .o_image .o_image_title_dark,.o_page_content_editor .o_video .o_image_title_dark{color:#000}.o_page_content .o_image .o_image_title_bright,.o_page_content .o_video .o_image_title_bright,.o_page_content_editor .o_image .o_image_title_bright,.o_page_content_editor .o_video .o_image_title_bright{color:#f9f9f9}.o_page_content .o_image .o_image_title,.o_page_content .o_video .o_image_title,.o_page_content_editor .o_image .o_image_title,.o_page_content_editor .o_video .o_image_title{position:relative}.o_page_content .o_image .o_image_title .o_image_title_top,.o_page_content .o_image .o_image_title .o_image_title_centered,.o_page_content .o_image .o_image_title .o_image_title_bottom,.o_page_content .o_video .o_image_title .o_image_title_top,.o_page_content .o_video .o_image_title .o_image_title_centered,.o_page_content .o_video .o_image_title .o_image_title_bottom,.o_page_content_editor .o_image .o_image_title .o_image_title_top,.o_page_content_editor .o_image .o_image_title .o_image_title_centered,.o_page_content_editor .o_image .o_image_title .o_image_title_bottom,.o_page_content_editor .o_video .o_image_title .o_image_title_top,.o_page_content_editor .o_video .o_image_title .o_image_title_centered,.o_page_content_editor .o_video .o_image_title .o_image_title_bottom{position:absolute;left:50%;margin-right:-50%;transform:translate(-50%, -50%)}.o_page_content .o_image .o_image_title .o_image_title_top,.o_page_content .o_video .o_image_title .o_image_title_top,.o_page_content_editor .o_image .o_image_title .o_image_title_top,.o_page_content_editor .o_video .o_image_title .o_image_title_top{top:10%}.o_page_content .o_image .o_image_title .o_image_title_centered,.o_page_content .o_video .o_image_title .o_image_title_centered,.o_page_content_editor .o_image .o_image_title .o_image_title_centered,.o_page_content_editor .o_video .o_image_title .o_image_title_centered{top:50%}.o_page_content .o_image .o_image_title .o_image_title_bottom,.o_page_content .o_video .o_image_title .o_image_title_bottom,.o_page_content_editor .o_image .o_image_title .o_image_title_bottom,.o_page_content_editor .o_video .o_image_title .o_image_title_bottom{bottom:10%}.o_page_content .o_image.o_image_size_style_none .o_image_title_top,.o_page_content .o_image.o_image_size_style_none .o_image_title_centered,.o_page_content .o_image.o_image_size_style_none .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_none .o_image_title_top,.o_page_content .o_video.o_image_size_style_none .o_image_title_centered,.o_page_content .o_video.o_image_size_style_none .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_bottom{font-size:24px}.o_page_content .o_image.o_image_size_style_small .o_image_title_top,.o_page_content .o_image.o_image_size_style_small .o_image_title_centered,.o_page_content .o_image.o_image_size_style_small .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_small .o_image_title_top,.o_page_content .o_video.o_image_size_style_small .o_image_title_centered,.o_page_content .o_video.o_image_size_style_small .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_bottom{font-size:18px}.o_page_content .o_image.o_image_size_style_medium .o_image_title_top,.o_page_content .o_image.o_image_size_style_medium .o_image_title_centered,.o_page_content .o_image.o_image_size_style_medium .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_medium .o_image_title_top,.o_page_content .o_video.o_image_size_style_medium .o_image_title_centered,.o_page_content .o_video.o_image_size_style_medium .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_bottom{font-size:32px}.o_page_content .o_image.o_image_size_style_large .o_image_title_top,.o_page_content .o_image.o_image_size_style_large .o_image_title_centered,.o_page_content .o_image.o_image_size_style_large .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_large .o_image_title_top,.o_page_content .o_video.o_image_size_style_large .o_image_title_centered,.o_page_content .o_video.o_image_size_style_large .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_bottom{font-size:40px}.o_page_content .o_image.o_image_size_style_fill .o_image_title_top,.o_page_content .o_image.o_image_size_style_fill .o_image_title_centered,.o_page_content .o_image.o_image_size_style_fill .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_fill .o_image_title_top,.o_page_content .o_video.o_image_size_style_fill .o_image_title_centered,.o_page_content .o_video.o_image_size_style_fill .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_bottom{font-size:56px}.o_page_add_contents{clear:both;margin-top:30px}.o_ce_html_raw.o_html_col2,.o_ce_html_paragraph.o_html_col2{column-count:2;column-gap:1em}.o_ce_html_raw.o_html_col3,.o_ce_html_paragraph.o_html_col3{column-count:3;column-gap:1em}.o_ce_html_raw.o_html_col4,.o_ce_html_paragraph.o_html_col4{column-count:4;column-gap:1em}table.o_ce_table caption{caption-side:bottom}.o_ce_add_main_btns{margin-top:2em}.o_ce_add{border:none;margin-bottom:0px}.o_ce_add .o_ce_tools{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.o_ce_add .o_ce_tools .o_ce_tool{padding:0px;margin:0px;width:33%}.o_ce_add .o_ce_tools .o_ce_tool a{padding:6px 3px;margin:0px;display:block;width:100%;height:100%}.o_ce_add .o_ce_tools .o_ce_tool a:hover{padding:5px 2px;border:1px solid #e7e7e7;border-radius:4px}.o_ce_add_list .o_ce_add_list_item{border-style:none;padding:0px;margin:0px -15px}.o_ce_add_list .o_ce_add_list_item a{padding:5px 25px;margin:0px;display:block;width:100%;height:100%}.o_ce_add_list .o_ce_add_list_item a:hover{text-decoration:none;background-color:#f5f5f5}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #ccc;border-radius:4px;background:#fcfcfc;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{box-sizing:content-box;border-top-left-radius:4px;border-bottom-left-radius:4px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual .o_visual_not_available{background-color:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #ccc;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0;border-bottom-right-radius:4px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#337ab7;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#f0ad4e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;background:#fcfcfc;border-left:1px solid #ccc;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#337ab7}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#286090}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:normal;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d;background:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;z-index:2px;background:#fcfcfc;padding:0 3px 3px 3px;border-radius:0px 0px 3px 3px;font-size:90%;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em;background:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#337ab7;border-top-right-radius:4px;border-bottom-right-radius:4px}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac ul{display:inline-block}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#337ab7}.o_catalog .o_level .o_meta .o_title a:hover{color:#286090}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #ccc;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #ccc;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em;overflow:hidden}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels_list .o_sublevel.o_fill_sublevels{border:1px solid transparent}.o_catalog .o_sublevels_list .o_sublevel.o_fill_sublevels .o_meta{border-left:1px solid transparent}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #ccc;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #ccc;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#337ab7;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#286090}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}.o_repo_details{position:relative}.o_repo_details .o_lead{margin-bottom:10px}.o_repo_details .o_lead .o_author{margin-top:0.5em;margin-bottom:1em;font-size:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_repo_details .o_lead .o_media{float:right;margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead .o_media.o_desc_empty{float:none;margin-left:0;margin-bottom:0}.o_repo_details .o_lead h1{font-size:37px}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start_wrapper{clear:both;margin:2em 0 -10px 0;text-align:right}.o_repo_details .o_start_wrapper .o_start_inner{display:inline-block}.o_repo_details .o_start,.o_repo_details .o_book{max-width:400px;display:inline-block}.o_repo_details .o_social:before,.o_repo_details .o_social:after{content:" ";display:table}.o_repo_details .o_social:after{clear:both}.o_repo_details .o_social .o_rating_wrapper{float:left}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-left:0;float:none;text-align:center}.o_repo_details .o_start_wrapper{text-align:center}.o_repo_details .o_start_wrapper .o_start_inner{display:block}.o_repo_details .o_start,.o_repo_details .o_book{max-width:100%;display:block}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}}.o_meta .o_closed{padding:2px 5px;margin:5px 0}.o_overview .o_closed{padding:12px 15px;margin:15px 0}.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.o_ac_configuration div.o_ac_method{background-color:#efefef;padding:5px;border-radius:3px}.o_ac_configuration div.o_ac_methods.form-group{padding-bottom:0;margin-bottom:0}.o_repo_with_explanation{padding-bottom:0;margin-bottom:0}.o_repo_explanation{color:#f0ad4e}tr.o_entry_closed,tr.o_entry_closed td,tr.o_entry_closed td span,tr.o_entry_unpublished,tr.o_entry_unpublished td,tr.o_entry_unpublished td span{text-decoration:line-through}a.o_repo_tools_status{cursor:pointer;margin:0 2px 2px 2px;text-align:left}.o_labeled.o_repo_status_preparation,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_preparation{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_labeled.o_repo_status_review,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_review{background-color:#FCCA46;border-color:#FCCA46;color:#fff}.o_labeled.o_repo_status_coachpublished,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_coachpublished{background-color:#1DC63F;border-color:#1DC63F;color:#fff}.o_labeled.o_repo_status_published,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_published{background-color:#14892c;border-color:#14892c;color:#fff}.o_labeled.o_repo_status_closed,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_closed{background-color:#99583D;border-color:#99583D;color:#fff}.o_labeled.o_repo_status_trash,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_trash{background-color:#5A5958;border-color:#5A5958;color:#fff}.o_labeled.o_repo_status_deleted,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_deleted{background-color:#888;border-color:#888;color:#fff}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_preparation{background-color:#384e64}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_review{background-color:#fbbc14}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_coachpublished{background-color:#169a31}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_published{background-color:#0e5c1e}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_closed{background-color:#75432e}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_trash{background-color:#40403f}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_deleted{background-color:#6f6f6f}.o_labeled_light.o_repo_status_preparation,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_preparation{border-color:#4a6785;color:#4a6785}.o_labeled_light.o_repo_status_review,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_review{border-color:#FCCA46;color:#FCCA46}.o_labeled_light.o_repo_status_coachpublished,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_coachpublished{border-color:#1DC63F;color:#1DC63F}.o_labeled_light.o_repo_status_published,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_published{border-color:#14892c;color:#14892c}.o_labeled_light.o_repo_status_closed,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_closed{border-color:#99583D;color:#99583D}.o_labeled_light.o_repo_status_trash,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_trash{border-color:#5A5958;color:#5A5958}.o_labeled_light.o_repo_status_deleted,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_deleted{border-color:#888;color:#888}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run .o_in_review{font-style:italic;position:relative}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_course_run .o_cal_toptoolbar{margin-right:26px}.o_course_run .o_titled_wrapper .o_cal_toptoolbar{margin-right:0px}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_ll_container h5{margin-bottom:5px}.o_ll_container h5 a.o_desc{color:#337ab7}.o_ll_container h5 a.o_desc small{display:none}.o_ll_container h5 a.o_desc:hover{color:#286090;text-decoration:none}.o_ll_container h5 a.o_desc:hover small{color:#5e5e5e;display:inline}.o_ll_container div.o_comment{color:#777}.o_cmembers .o_cmember{margin:12px 0;display:table}.o_cmembers .o_cmember .o_portrait{padding-right:10px;display:table-cell;vertical-align:top;min-width:60px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{display:table-cell;vertical-align:middle;color:#777}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}.o_cmembers .o_cmember .o_curriculum_displayname,.o_cmembers .o_cmember .o_curriculum_root_el_identifier,.o_cmembers .o_cmember .o_curriculum_root_el_displayname{font-size:12px}.o_cmembers .o_cmember a.o_mail{display:none}.o_cmembers .o_cmember:hover a.o_mail{display:inline}.o_cmembers_print{color:#000}.o_cmembers_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_cmembers_print #o_print_brand img{width:100%}.o_cmembers_print .o_portrait{width:100px;height:100px;position:relative}.o_cmembers_print .o_portrait img{border-radius:0px;max-width:100%;max-height:100%;width:auto;height:auto;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.o_cmembers_print .o_cmember{padding-left:0px;padding-right:15px;margin-bottom:20px}.o_cmembers_print .o_cmember .o_cmember_info_wrapper{word-wrap:break-word}.o_cmembers_print .o_cmember .o_prop.o_zipCode{float:left;padding-right:0.5em}.o_cmembers_print h1{font-size:18pt;color:#000}.o_cmembers_print h3{font-size:14pt;margin-top:5px;font-weight:normal;color:#000}.o_cmembers_print h4,.o_cmembers_print .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_cmembers_print h2{font-size:11pt;font-weight:strong;color:#000;padding-bottom:10px;border-bottom:1px solid #eee}.o_cmembers_print .o_cmember_info_wrapper{font-size:7pt;color:#000}.o_cmembers_print .o_cmember_info_wrapper strong{font-size:8pt}.tag.label.label-info{margin-right:3px}.input-group.o_tag_inputgroup .form-control{height:auto}div.o_correction_navigation .o_correction_navigation_back{float:left;line-height:32px}div.o_correction_navigation .o_correction_navigation_previous{position:absolute;right:50%;margin-right:102px}div.o_correction_navigation #o_cocurrent_item_SELBOX{width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute;left:50%;margin-left:-100px}div.o_correction_navigation .o_correction_navigation_next{position:absolute;left:50%;margin-left:102px}@media (max-width: 767px){div.o_correction_navigation .o_correction_navigation_previous span,div.o_correction_navigation .o_correction_navigation_next span{display:none}}.o_ms_stack_panel .o_toolbar{margin-top:0px}.o_ms_bold{font-weight:bold}.o_ms_legend{padding:5px}.o_ms_legend li{display:block;font-size:90%}.o_ms_legend .ident{font-weight:bold}.o_curriculum_el_listing tr.o_curriculum_element_inactive,.o_curriculum_el_listing tr.o_curriculum_element_inactive td,.o_curriculum_el_listing tr.o_curriculum_element_inactive td span,.o_curriculum_el_listing tr.o_curriculum_element_inactive td a{color:#777}.o_curriculum_el_listing tr.o_curriculum_element_unfiltered,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td span,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td a{color:#aaa}.o_curriculum_el_listing tr.o_curriculum_element_deleted,.o_curriculum_el_listing tr.o_curriculum_element_deleted td,.o_curriculum_el_listing tr.o_curriculum_element_deleted td span,.o_curriculum_el_listing tr.o_curriculum_element_deleted td a{color:#777;text-decoration:line-through}.o_curriculumtable tr.o_curriculum_element_l0 td:nth-thild(first){padding-left:0px}.o_curriculumtable tr.o_curriculum_element_l1 td:nth-thild(first){padding-left:15px}.o_curriculumtable tr.o_curriculum_element_l2 td:nth-thild(first){padding-left:30px}.o_curriculumtable tr.o_curriculum_element_l3 td:nth-thild(first){padding-left:45px}.o_curriculumtable tr.o_curriculum_element_l4 td:nth-thild(first){padding-left:60px}.o_curriculumtable tr.o_curriculum_element_l5 td:nth-thild(first){padding-left:75px}.o_curriculumtable tr.o_curriculum_element_l6 td:nth-thild(first){padding-left:90px}.o_curriculumtable tr.o_curriculum_element_l7 td:nth-thild(first){padding-left:105px}.o_curriculumtable tr.o_curriculum_element_l8 td:nth-thild(first){padding-left:120px}.o_curriculumtable tr.o_curriculum_element_l9 td:nth-thild(first){padding-left:135px}.o_curriculumtable tr.o_curriculum_element_l10 td:nth-thild(first){padding-left:150px}.o_curriculumtable tr.o_curriculum_element_l11 td:nth-thild(first){padding-left:165px}.o_curriculumtable tr.o_curriculum_element_inactive,.o_curriculumtable tr.o_curriculum_element_inactive td,.o_curriculumtable tr.o_curriculum_element_inactive td span{color:#777}.o_curriculumtable tr.o_curriculum_element_deleted,.o_curriculumtable tr.o_curriculum_element_deleted td,.o_curriculumtable tr.o_curriculum_element_deleted td span{color:#777;text-decoration:line-through}.o_curriculumtable.o_rendertype_custom .container-fluid{padding-left:0;padding-right:0}.o_curriculumtable.o_rendertype_custom .o_table_row{position:relative;vertical-align:top;margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row:before,.o_curriculumtable.o_rendertype_custom .o_table_row:after{content:" ";display:table}.o_curriculumtable.o_rendertype_custom .o_table_row:after{clear:both}.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{background:none;border:none;position:relative}.o_curriculumtable.o_rendertype_custom .o_table_row .o_ext_id{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_hierarchy_info{display:none;position:absolute;top:0;right:30px;font-size:70%;z-index:5;background:gold}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_title{margin-top:0;margin-bottom:0;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_title small{white-space:nowrap}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars{padding-left:6px;color:#777}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle.o_active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars.o_active{color:#3c763d}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle.o_active:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars.o_active:hover{color:#2b542c}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_desc{padding:6px 6px 16px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_empty{font-style:italic;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{position:relative;padding-left:132px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:50px;padding-left:87px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_visual{left:0;border:none;background-color:#fff;max-height:80px;max-width:120px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_author,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_location,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_lifecycle{color:#3c763d}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state{position:absolute;right:0;bottom:30px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_failed{font-weight:normal}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_state,.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_score{display:inline-block}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_state+.o_score:before{content:', '}.o_curriculumtable.o_rendertype_custom .o_table_row .o_bookmark{position:absolute;top:-1px;right:2px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access{position:absolute;bottom:0;right:0;overflow:hidden;width:180px;height:30px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start{right:0;color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#337ab7;border-color:#2e6da4}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#337ab7;background-color:#fff}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_author,.o_curriculumtable.o_rendertype_custom .o_table_row .o_bookmark,.o_curriculumtable.o_rendertype_custom .o_table_row .o_lifecycle,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_desc,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_desc,.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state,.o_curriculumtable.o_rendertype_custom .o_table_row .o_details{display:none}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_row_inner_wrapper{background:#f6f6f6;border:1px solid #eee}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_element_title{background:transparent;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_element_title{background:#ebebeb;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry{display:inline-block;width:50%;border-right:12px solid transparent;margin-top:0 !important}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry_title{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_row_inner_wrapper{background:#f6f6f6;border:1px solid #eee}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_element_title{background:transparent;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_element_title{background:#ebebeb;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_calendars{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{background:#f6f6f6;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{background:none;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_entry{min-height:50px}}@media print{.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state{position:relative;bottom:0}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access{display:none}}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}td.o_qti_item_kprim_text{width:80%}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}.d3chart circle.bubble_green{fill:#5cb85c}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0;vertical-align:bottom}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:""}.o_qti_menu_item_attempts_marked:after{content:"";color:#337ab7}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}ul.sessionControl{list-style:none;margin:1em;text-align:center}ul.sessionControl li{display:inline;padding:0.2em}.association{margin:20px 20px 20px 40px;background:transparent url("../light/images/association_bg.png") repeat-x center center}.o_associate_item{padding:5px;margin:0 15px 10px 0;border:2px solid #999}.o_associate_item.oo-selected{border:2px solid #337ab7}.o_associate_item.oo-choosed{border:none !important}.o_associate_item.oo-drag{border:2px solid #337ab7 !important}.association_box{border:3px dotted #999}.association_box.oo-filled{border:3px solid #999}.association_box{background-color:white}.prompt{font-weight:bold}.sketch{position:relative;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}#tmp_canvas{position:absolute;left:0px;right:0;bottom:0;top:0;cursor:crosshair;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}#colors .black .o_icon:before{color:#000000}#colors .blue .o_icon:before{color:#0000FF}#colors .green .o_icon:before{color:#008000}#colors .yellow .o_icon:before{color:#FFFF00}#colors .red .o_icon:before{color:#FF0000}#colors .purple .o_icon:before{color:#800080}.o_gap_item{padding:5px;margin:5px;background-repeat:no-repeat;background-position:center center}.o_gap_item.oo-choosed{position:relative;left:auto;top:auto;padding:3px;margin:0}.o_gap_item.oo-selected{border:3px solid #337ab7}.o_item_container_help,.o_items_container_help{font-size:90%;font-style:italic;color:#777;padding:5px}.items_container{padding:15px}.items_container .o_item{float:left}#o_qti_hotspots_edit{min-height:100px;min-width:400px;background-repeat:no-repeat}#o_qti_hotspots_edit.o_qti_hotspot-standard .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-standard .o_draw_rectangle{background-color:rgba(255,255,255,0.5);border-color:#6E6E6E}#o_qti_hotspots_edit.o_qti_hotspot-standard .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-standard .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(45,0,255,0.5);border-color:#0000ff}#o_qti_hotspots_edit.o_qti_hotspot-light .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-light .o_draw_rectangle{background-color:rgba(221,221,221,0);border-color:#7E7E7E}#o_qti_hotspots_edit.o_qti_hotspot-light .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-light .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(51,122,183,0.05);border-color:#337ab7}#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_draw_rectangle{background-color:rgba(110,110,110,0.5);border-color:#3E3E3E}#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(222,222,222,0.2);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-green .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-green .o_draw_rectangle{background-color:rgba(142,142,142,0.25);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-green .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-green .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(134,195,81,0.5);border-color:#518b33}#o_qti_hotspots_edit.o_qti_hotspot-purple .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-purple .o_draw_rectangle{background-color:rgba(142,142,142,0.33);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-purple .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-purple .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(234,168,255,0.5);border-color:#ab47cb}div.hotspotInteraction{overflow-x:auto}img.o_hotspot_responsive[usemap]{max-width:100%;width:auto;height:auto}.form-inline.o_qti_gaptext_add_first_alternative,.o_qti_gaptext_add_first_alternative.o_navbar-form{padding:9px 0 3px 0}.form-inline.o_qti_gaptext_add_alternative,.o_qti_gaptext_add_alternative.o_navbar-form{margin-bottom:3px}.o_qti_gaptext_alternatives{background-color:#eee;color:#555;border:1px solid #eee;border-radius:4px;padding:2px 5px}.o_qti_item_body .extendedTextInteraction{margin:15px 0}.o_qti_item_body .extendedTextInteraction textarea{resize:vertical !important;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_qti_item_body .extendedTextInteraction pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_qti_item_body .extendedTextInteraction .o_qti_essay_last_save{padding:2px 2px;font-style:italic;font-size:90%;text-align:right}.extendedTextInteraction div.form-control.textarea_disabled{white-space:pre-wrap;height:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;color:#555 !important}#o_qti_run_title{margin:0 15px 0.5em 15px}#o_qti_run_title h3{margin:15px 0 0 0}#o_qti_run_infos{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:10px 0;margin:0 15px 1em 15px}#o_qti_run_infos .progress{background-color:#eee}#o_qti_run_infos #o_qti_scoreinfo .progress-bar{background-color:#337ab7}.progress-striped #o_qti_run_infos #o_qti_scoreinfo .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}#o_qti_run_infos #o_qti_questioninfo .progress-bar{background-color:#337ab7}.progress-striped #o_qti_run_infos #o_qti_questioninfo .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}#o_qti_run_infos #o_qti_run_scoreinfo,#o_qti_run_infos #o_qti_run_scoreprogress{white-space:nowrap}#o_qti_results_infos{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:10px 0;margin:0 0 1em 0}#o_qti_results_infos .progress{background-color:#eee}#o_qti_results_infos #o_qti_run_scoreinfo,#o_qti_results_infos #o_qti_run_scoreprogress{white-space:nowrap}#o_qti_assessment_test_timer{border:1px solid #e7e7e7;border-radius:4px;padding:10px;margin:0 15px 1em 15px}#o_qti_assessment_test_timer.o_10_minutes{background-color:#fcf8e3}#o_qti_assessment_test_timer.o_5_minutes{background-color:#f2dede}#o_qti_assessment_test_timer.o_panic{background-color:#ce8383}#o_qti_assessment_test_timer.o_15_seconds{background-color:#fcf8e3}#o_qti_assessment_test_timer.o_panic{background-color:#f2dede}#o_qti_assessment_test_timer .o_qti_times_up{padding-left:2em;font-weight:bold}#o_qti_assessment_test_timer .o_qti_times_message{padding-left:2em;font-weight:bold}.o_draw_circle.o_qti_hotspot_correct,.o_draw_rectangle.o_qti_hotspot_correct{background-color:rgba(229,255,204,0.6)}#width_range_ui,#opacity_range_ui{width:120px}.o_slider_width_range,.o_slider_opacity_range{margin:3px 10px 0 0}.o_qti_hotspot_label{padding-left:48%}.o_assessmentsection_rubrics_wrapper{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:4px;padding:5px 10px;margin:0 0 0.5em 0}.o_assessmentsection_rubrics_correction_wrapper{background:#f8f8f8;border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;padding:5px 10px}.o_info.o_assessmentsection_rubrics{margin:5px -10px;position:relative;display:block}.o_info.o_assessmentsection_rubrics.o_hide{display:none}.o_info.o_assessmentsection_rubrics a.o_hide{position:absolute;bottom:0.5em;right:1em}.o_assessmentitem h1{margin-bottom:0}.o_assessmentitem div.badResponse,.o_assessmentitem span.badResponse{color:#d9534f;font-weight:bold}.o_assessmentitem input.badResponse{border:1px solid #d9534f}.o_assessmentitem .infoControl input{margin-right:0.5em}.o_assessmentitem .infoControl .infoControlContent{display:none}.o_assessmentitem .sliderInteraction{margin:1em}.o_assessmentitem .sliderInteraction .sliderVertical .sliderValue{margin:1em 0}.o_assessmentitem .sliderInteraction .sliderVertical .sliderWidget{height:200px}.o_assessmentitem .sliderInteraction .sliderHorizontal .sliderValue{text-align:center}.o_assessmentitem div.orderInteraction div.highlight{border:1px solid #d9534f}.o_assessmentitem div.orderInteraction div.box.vertical{width:50%;float:left;position:relative;padding:0;margin-top:5px}.o_assessmentitem div.orderInteraction div.box.vertical ul{min-height:200px}.o_assessmentitem div.orderInteraction div.box.horizontal ul{min-height:50px;width:100%}.o_assessmentitem div.orderInteraction div.box.source{padding:5px 10px;border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8}.o_assessmentitem div.orderInteraction div.box.source.horizontal{padding:5px 10px 15px 10px}.o_assessmentitem div.orderInteraction div.box.target ul{border:2px solid #5bc0de;border-radius:4px;background:#d9edf7}.o_assessmentitem div.orderInteraction div.box.target ul.oo-accepted{border-color:#1f7e9a}.o_assessmentitem div.orderInteraction div.box.target.vertical{padding:6px 0 0 10px}.o_assessmentitem div.orderInteraction div.box.target.vertical ul{padding:10px}.o_assessmentitem div.orderInteraction div.box.target.horizontal{padding-top:10px}.o_assessmentitem div.orderInteraction div.box.target.horizontal ul{padding:10px 10px 0 10px}.o_assessmentitem div.orderInteraction div.box.horizontal ul li{float:left;width:auto;margin-right:10px;min-width:50px}.o_assessmentitem div.orderInteraction div.box span.info{color:#666;font-style:italic;font-size:smaller}.o_assessmentitem div.orderInteraction ul{list-style-type:none;margin:0;padding:0}.o_assessmentitem .hottext{position:relative;margin:-2px 0.15em -2px 0.15em;white-space:nowrap}.o_assessmentitem .hottext input{margin:0 3px 0 2px;position:absolute;top:0.1em;left:0.05em}.o_assessmentitem .hottext input+label{display:inline;padding:0 0.1em 0 1.2em;background:#f8f8f8;border:1px solid #e7e7e7;border-radius:2px;color:#333;font-weight:normal;white-space:normal}.o_assessmentitem .hottext input:checked+label{color:#333;background:#d9edf7;border:1px solid #bce8f1}.o_assessmentitem .gap{font-weight:bold;border:1px dashed #000}.o_assessmentitem .textEntryInteraction input,.o_assessmentitem .textEntryInteraction span.o_input_value{margin:-1px 2px;line-height:90%;vertical-align:middle;font-size:13.72px;line-height:1.5;border:1px solid #999;background:#fff;padding:1px 1px;color:#333;max-width:100%}.o_assessmentitem .textEntryInteraction input:valid,.o_assessmentitem .textEntryInteraction input:disabled,.o_assessmentitem .textEntryInteraction input.o_input_value_wrapper,.o_assessmentitem .textEntryInteraction span.o_input_value:valid,.o_assessmentitem .textEntryInteraction span.o_input_value:disabled,.o_assessmentitem .textEntryInteraction span.o_input_value.o_input_value_wrapper{color:#333;-webkit-text-fill-color:#333;background:#d9edf7;border:1px solid #bce8f1}li.o_assessmentitem_order_item{padding:10px;margin-bottom:10px;border:2px dashed #999;border-radius:4px;background-color:#ffffff;background:#fcf8e3;list-style-type:none}li.o_assessmentitem_order_item:before,li.o_assessmentitem_order_item:after{content:" ";display:table}li.o_assessmentitem_order_item:after{clear:both}body>li.o_assessmentitem_order_item{display:block}.o_assessmentitem_wrapper .itemTitle{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:4px 4px 0 0;margin-top:0;margin-bottom:0;padding:5px 10px;line-height:1.5em;position:relative}.o_assessmentitem_wrapper .itemTitle .o_qti_item_max_score{position:absolute;left:49%}.o_assessmentitem_wrapper .o_qti_item_body{min-height:200px;margin:0;padding:5px 10px;border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;font-size:14px;line-height:1.8}.o_assessmentitem_wrapper .o_assessment_item_not_final.o_warning{margin:0}.o_assessmentitem_wrapper .modalFeedback h4:first-of-type,.o_assessmentitem_wrapper .modalFeedback .o_cal .fc-header-title h2:first-of-type,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback h2:first-of-type{padding-left:10px;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper h4,.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper h2{border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;padding-bottom:5px;margin-bottom:0}.o_assessmentitem_wrapper ul.o_testpartnavigation,.o_qti_menu_buttonstyle ul.o_testpartnavigation{list-style:none;padding:0;margin:0}.o_assessmentitem_wrapper li.o_assessmentitem,.o_qti_menu_buttonstyle li.o_assessmentitem{margin-bottom:2px}.o_assessmentitem_wrapper .o_assessmentitem_status,.o_qti_menu_buttonstyle .o_assessmentitem_status{float:right;display:block;padding:0.3em;margin-left:1em;border-radius:0.3em;border-width:1px;font-size:0.8em;line-height:1.2em;color:#fff}.o_assessmentitem_wrapper .o_assessmentitem_status.ended,.o_qti_menu_buttonstyle .o_assessmentitem_status.ended{background-color:#5bc0de}.o_assessmentitem_wrapper .o_assessmentitem_status.invalid,.o_qti_menu_buttonstyle .o_assessmentitem_status.invalid{background-color:#d9534f}.o_assessmentitem_wrapper .o_assessmentitem_status.answered,.o_qti_menu_buttonstyle .o_assessmentitem_status.answered{background-color:#5cb85c}.o_assessmentitem_wrapper .o_assessmentitem_status.notAnswered,.o_qti_menu_buttonstyle .o_assessmentitem_status.notAnswered{background-color:#f0ad4e}.o_assessmentitem_wrapper .o_assessmentitem_status.notPresented,.o_qti_menu_buttonstyle .o_assessmentitem_status.notPresented{background-color:#ddd}.o_assessmentitem_wrapper .o_assessmentitem_status.review,.o_qti_menu_buttonstyle .o_assessmentitem_status.review{background-color:#5bc0de}.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotAllowed,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewInvalid,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotAnswered,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotSeen,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotAllowed,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewInvalid,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotAnswered,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotSeen{background-color:#5bc0de;opacity:0.7}.o_assessmentitem_wrapper .o_assessmentitem_status i:before,.o_qti_menu_buttonstyle .o_assessmentitem_status i:before{color:#fff}.o_assessmentitem_controls{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:0 0 4px 4px;margin-top:0;margin-bottom:16px;padding:5px 10px}.o_assessmentitem_controls button,.o_assessmentitem_controls a{margin-bottom:0}.o_assessmentitem_controls .o_sel_assessment_item_submit span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_next_question span:after{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-left:0.5em}.o_assessmentitem_controls .o_sel_question_menu span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_end_testpart span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_back_test_feedback span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_show_solution span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_solution_hide span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_skip_question span:before,.o_assessmentitem_controls .o_sel_back_question span:before,.o_assessmentitem_controls .o_sel_retry_question span:before{padding-right:0.5em;margin-bottom:0}.o_assessmentitem_control_view_solution{background:#f8f8f8;border:1px solid #e7e7e7;margin:0;padding:5px 10px}.o_assessmentitem_scoring{background:#f8f8f8;border:1px solid #e7e7e7;border-bottom:0;border-radius:4px 4px 0 0;margin-top:0;margin-bottom:0;padding:5px 10px}.o_assessmentitem_scoring_buttons{background:#f8f8f8;border:1px solid #e7e7e7;border-top:0;border-radius:0 0 4px 4px;margin-top:0;margin-bottom:16px;padding:5px 10px}.o_assessmentitem_scoring_override_window{width:300px}.itemPrompt{margin:1.5em 0;font-style:italic;color:#666666}.o_qti_item_body{margin:1em 0}.o_sel_assessment_item_hint{margin-top:1em}.o_assessment_test_results .o_sel_assessment_item_hint{display:none}tr.choiceinteraction td.control{padding:0.5em}tr.choiceinteraction td.choiceInteraction{padding:0.5em}.choiceInteraction label{font-weight:normal}.choiceInteraction input+i{background-color:red}.choiceInteraction div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.choiceInteraction div.o_qti_item_choice_option_flow label span{font-weight:normal}.choiceInteraction div.o_qti_item_choice_option_flow label span>p{display:inline-block}.choiceInteraction.choiceright table tr td.choiceInteraction{background-color:#e7e7e7;border-bottom:3px solid white}.matchInteraction.choiceright table tr td.o_qti_item_kprim_text{background-color:#e7e7e7;border-bottom:3px solid white}table.o_qti_item_kprim td.o_qti_item_kprim_input_correct{background-color:#eaf6ea}table.o_qti_item_kprim td.o_qti_item_kprim_input_wrong{background-color:#fdf7f7}table.o_qti_item_kprim td.o_qti_item_kprim_input_correct,table.o_qti_item_kprim td.o_qti_item_kprim_input_wrong,table.o_qti_item_kprim th.o_qti_item_kprim_input_correct,table.o_qti_item_kprim th.o_qti_item_kprim_input_wrong{width:11%}table.o_qti_item_kprim td.o_qti_item_kprim_text,table.o_qti_item_kprim th.o_qti_item_kprim_text{width:88%}.matchInteraction input[type='text']{display:inline;width:auto}.matchInteraction div.bar_green{background-color:#5cb85c}.matchInteraction div.bar_red{background-color:#d9534f}.source-left,.target-left,.source-right,.target-right{width:50%;float:left;position:relative;padding:0;margin-top:5px}.o_match_dnd_sources{padding:10px 10px 0 10px;min-height:60px;border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8}.o_match_dnd_sources.oo-accepted{border-color:#1f7e9a}.o_match_dnd_source{padding:10px;margin-bottom:10px;border:2px dashed #999;border-radius:4px;background-color:#ffffff;background:#fcf8e3;cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.o_match_dnd_source:before,.o_match_dnd_source:after{content:" ";display:table}.o_match_dnd_source:after{clear:both}.o_match_dnd_source.oo-selected{border:2px dashed #f0ad4e;background:#fae3c4}.o_match_dnd_source.oo-drag{border:2px dashed #f0ad4e !important}.source-bottom .o_match_dnd_source,.source-top .o_match_dnd_source{margin:0 0 10px 0}.o_match_dnd_targets .oo-accepted{border:2px solid #1f7e9a;border-radius:4px}.o_match_dnd_target{padding:10px 10px 0 10px;margin:0 0 10px 10px;border:2px solid #5bc0de;border-radius:4px;background:#d9edf7}.o_match_dnd_target:before,.o_match_dnd_target:after{content:" ";display:table}.o_match_dnd_target:after{clear:both}.o_match_dnd_target .o_match_dnd_target_drop_zone{margin:0;padding:5px 0 0 15px;min-height:30px}.o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source{border:2px dashed #777}.target-bottom .o_match_dnd_target,.target-top .o_match_dnd_target{margin:0 0 10px 0}.target-bottom .o_match_dnd_target .o_match_dnd_target_drop_zone,.target-top .o_match_dnd_target .o_match_dnd_target_drop_zone{padding-left:0px}.target-bottom .o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source,.target-top .o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source{padding-left:15px}.table.o_match_true_false_edit th.o_sel_match_target_0,.table.o_match_true_false_edit th.o_sel_match_target_1,.table.o_match_true_false_edit th.o_sel_match_target_2{width:12%}.match_true_false input[type="checkbox"]{-webkit-appearance:radio;-moz-appearance:radio;-ms-appearance:radio;appearance:radio}.match_true_false .table>tbody>tr>td.o_match_true_false_unanswered,.match_true_false .table>tbody>tr>td.o_match_true_false_right,.match_true_false .table>tbody>tr>td.o_match_true_false_wrong{vertical-align:middle;width:11%}.match_true_false th.o_match_true_false_unanswered,.match_true_false th.o_match_true_false_right,.match_true_false th.o_match_true_false_wrong{width:11%}.match_true_false td.o_match_true_false_answer,.match_true_false th.o_match_true_false_answer{width:67%}.match_true_false td.o_match_true_false_unanswered{background-color:#fbfbfb}.match_true_false td.o_match_true_false_right{background-color:#eaf6ea}.match_true_false td.o_match_true_false_wrong{background-color:#fdf7f7}.o_assessmentitem .mathEntryInteraction{border:1px solid #ddedfc;background-color:#edf1f6;background:linear-gradient(to top, #edf1f6 0%, #f6f9fb 100%);border-radius:0.4em;padding:1em;margin:0.5em 0}.o_assessmentitem .mathEntryInteraction .inputPanel{line-height:1em;text-align:left}.o_assessmentitem .mathEntryInteraction .inputPanel input{margin:0;padding:0}.o_assessmentitem .mathEntryInteraction .previewPanel{text-align:center}.o_assessmentitem .mathEntryInteraction.horizontal{min-height:5em;width:40em}.o_assessmentitem .mathEntryInteraction.horizontal .inputPanel{width:45%;float:left;margin:2em 0}.o_assessmentitem .mathEntryInteraction.horizontal .previewPanel{width:50%;margin-left:40%}.o_assessmentitem .mathEntryInteraction.vertical{min-height:6em}.o_assessmentitem .mathEntryInteraction.vertical .inputPanel{padding:0 5em}.o_assessmentitem .mathEntryInteraction.vertical .inputPanel:before{content:'Input Maths: '}.o_assessmentitem .mathEntryInteraction.vertical .previewPanel{margin-top:2em;min-height:4em}.o_assessmentitem div.upConversionAjaxControlMessage{width:auto;text-align:center;display:inline;padding:0.5em 0 0.5em 20px}.o_assessmentitem div.success{background:#5cb85c}.o_assessmentitem div.failure{background-color:#f0ad4e}.o_assessmentitem div.error{background-color:#d9534f}.o_assessmentitem div.upConversionAjaxControlPreview{margin:0.5em 0;font-size:110%}.o_assessmentitem table.inputHelp{border-collapse:collapse;width:100%;font-size:90%}.o_assessmentitem table.inputHelp th{border:1px solid #999999;padding:0.2em 0.5em;background-color:#cad8e5}.o_assessmentitem table.inputHelp td{color:#999999;border:1px solid #999999;padding:0.2em 0.5em}.o_assessmentitem table.inputHelp kbd{color:black;font-size:100%;line-height:100%}.o_assessmentitem table.inputHelp .longComma{margin-right:0.5em}.o_togglebox_wrapper #modal-correct-solution div.o_togglebox_content{background-color:#fcf8e3;border-color:#8a6d3b}.o_candidatecomment{padding:0;margin:2em 0 1em 0;border:none}.o_candidatecomment legend{font-size:110%;font-weight:bold;color:#777;margin-bottom:0;border-bottom:0}.o_candidatecomment div.o_item_container_help{margin:0;padding:0}.o_candidatecomment textarea{display:block;color:#777}.o_qti_menu_menustyle ul.o_testpartnavigation{list-style:none;padding:0;margin:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:0 1em 0.5em 1em;margin:0 0 0.5em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection header{margin:0 0 1em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection header div.rubric{font-style:italic}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection ul.o_testpartnavigation_inner{list-style:none;padding:0;margin:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem{padding:0.1em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a{color:#777}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a:hover,.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a:focus{color:#333}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a{color:#337ab7;font-weight:bold}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a:hover,.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a:focus{color:#23527c;background-color:#eee}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem span{vertical-align:middle}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_status{display:inline;position:relative;left:-0.3em;background:transparent;border:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_status span{display:none}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts{float:right;display:block;padding:0.3em;border-radius:2px;background-color:#fafafa;color:#777;font-size:0.7em}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts.o_assessmentitem_attempts_limited{color:#f0ad4e}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts.o_assessmentitem_attempts_nomore{color:#5bc0de}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_marks{float:right;display:inline-block;font-size:0.8em;position:relative;top:0.3em;right:-0.5em}.o_qti_menu_menustyle ul.o_testpartnavigation .o_assessmentitem .questionTitle{margin-right:1em}.testFeedback h1:first-of-type{margin-top:0}ul.testPartDrilldown{list-style:none;padding:0;margin:0}ul.testPartDrilldown li.o_assessmentsection{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:0 1em 0.5em 1em}ul.testPartDrilldown li.o_assessmentsection header{margin:0 0 1em 0}ul.testPartDrilldown li.o_assessmentsection header div.rubric{font-style:italic}ul.testPartDrilldown li.o_assessmentsection ul.testPartDrilldownInner{list-style:none;padding:0;margin:0}ul.testPartDrilldown li.currentItem{border:1px solid #e7e7e7;border-radius:0.5em;padding:0 1em;margin-top:1em}.testItemControl{margin-top:0.5em}ul.o_qti_statistics_answers li span.o_qti_statistics_answer{background:#F5F5F5;padding:1px 3px;width:90%;display:inline-block}.o_assessment_test_results .o_qti_assessment_title{border-bottom:1px solid #ddd}.o_assessment_test_results table th{width:40%}.o_assessment_test_results .o_qti_sectionsummary .o_qti_section{text-align:center}.o_assessment_test_results .o_qti_sectionsummary .o_qti_section .o_qti_section_sublisting{padding:0 10%;min-height:3em}.o_assessment_test_results .o_qti_sections .o_qti_section{margin-top:40px}.o_assessment_test_results .o_qti_sections .o_qti_section h3{margin-bottom:20px}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_id{display:none}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment{margin:0;padding:5px 10px 10px 5px;border-top:1px solid #ddd;broder-bottom:1px solid #ddd}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h4,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2{font-size:100%;font-weight:bold;color:inherit}.o_assessment_test_results .o_qti_to_overview{text-align:right}.o_sel_assessment_item_feedbacks{min-height:250px}.o_alternative_question_types h4 select,.o_alternative_question_types .o_cal .fc-header-title h2 select,.o_cal .fc-header-title .o_alternative_question_types h2 select{display:inline-block;width:auto}@media print{canvas,div.hotspotInteraction>div>div{-webkit-print-color-adjust:exact;color-adjust:exact}.choiceInteraction label{font-weight:normal}.choiceinteraction input[type="radio"][disabled],.choiceinteraction input[type="checkbox"][disabled],.matchInteraction input[type="radio"][disabled],.matchInteraction input[type="checkbox"][disabled]{display:none}.choiceinteraction input+i,.matchInteraction input+i{font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.choiceInteraction input[type="radio"][disabled]+i:before,.matchInteraction input[type="radio"][disabled]+i:before,.matchInteraction.match_true_false input[type="checkbox"][disabled]+i:before{content:""}.choiceInteraction input[type="radio"][disabled]:checked+i:before,.matchInteraction input[type="radio"][disabled]:checked+i:before,.matchInteraction.match_true_false input[type="checkbox"][disabled]:checked+i:before{content:""}.choiceInteraction input[type="checkbox"][disabled]+i:before,.matchInteraction input[type="checkbox"][disabled]+i:before{content:""}.choiceInteraction input[type="checkbox"][disabled]:checked+i:before,.matchInteraction input[type="checkbox"][disabled]:checked+i:before{content:""}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav{margin-right:20px}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_nav .o_portfolio_collector{position:relative;top:-5px}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}div.o_wiki_wrapper a.wikiimg{text-decoration:none;color:inherit;font-weight:inherit}div.o_wiki_wrapper div.imgcaption{padding:0.3em 0em 0.2em 0.3em}div.o_wiki_wrapper div.imgleft{clear:left;float:left;margin:0.3em 0.3em 0.3em 0em}div.o_wiki_wrapper div.imgright{clear:right;float:right;margin:0.3em 0em 0.3em 0.3em}div.o_wiki_wrapper div.imgcenter{clear:both;overflow:hidden;text-align:center;margin:0.3em 0em 0.3em 0em}div.o_wiki_wrapper div.imgthumb{border:1px solid #bbbbbb;padding:0.3em}div.o_wiki_wrapper table.gallery{border:1px solid #ccc;margin:2px;padding:2px;background-color:white}div.o_wiki_wrapper table.gallery tr{vertical-align:middle}div.o_wiki_wrapper table.gallery td{background-color:#f9f9f9;border:solid 2px white;text-align:center;vertical-align:middle;width:150px}div.o_wiki_wrapper img.gallery{border:1px solid #bbbbbb;padding:0.3em}div.o_wiki_wrapper a.edit{font-style:italic;color:red}div.o_wiki_wrapper a.externallink:before{padding-right:2px}div.o_wiki_wrapper a.externallink:before:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}.o_ep_icon_map:before{content:""}.o_ep_icon_collection:before{content:""}.o_ep_icon_page:before{content:""}.o_ep_icon_struct:before{content:""}.o_ep_icon_liveblog:before{content:""}.o_artefact_closed:before{content:""}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ECF69A;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99E44D;background:#99E44D -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99E44D), to(#CBF1A5));background:#99E44D -moz-linear-gradient(43% 71% 101deg, #CBF1A5, #99E44D);background:#99E44D -o-linear-gradient(#99E44D, #CBF1A5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99E44D', EndColorStr='#CBF1A5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#DFF0C1;background:#DFF0C1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#DFF0C1), to(#A0D346));background:#DFF0C1 -moz-linear-gradient(43% 71% 101deg, #A0D346, #DFF0C1);background:#DFF0C1 -o-linear-gradient(#DFF0C1, #A0D346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#DFF0C1', EndColorStr='#A0D346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#D7DBB5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#FFBA71;background:#FFBA71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FFBA71), to(#FFBA99));background:#FFBA71 -moz-linear-gradient(43% 71% 101deg, #FFBA99, #FFBA71);background:#FFBA71 -o-linear-gradient(#FFBA71, #FFBA99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFBA71', EndColorStr='#FFBA99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#FF9772;background:#FF9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FF9772), to(#FF9780));background:#FF9772 -moz-linear-gradient(43% 71% 101deg, #FF9780, #FF9772);background:#FF9772 -o-linear-gradient(#FF9772, #FF9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FF9772', EndColorStr='#FF9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#E8AFBB;background:#E8AFBB -webkit-gradient(linear, 37% 20%, 53% 100%, from(#E8AFBB), to(#E8AFA0));background:#E8AFBB -moz-linear-gradient(43% 71% 101deg, #E8AFA0, #E8AFBB);background:#E8AFBB -o-linear-gradient(#E8AFBB, #E8AFA0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#E8AFBB', EndColorStr='#E8AFA0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#FFA800;background:#FFA800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FFA800), to(#FFAF00));background:#FFA800 -moz-linear-gradient(43% 71% 101deg, #FFAF00, #FFA800);background:#FFA800 -o-linear-gradient(#FFA800, #FFAF00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFA800', EndColorStr='#FFAF00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00D2F8;background:#00D2F8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00D2F8), to(#4A9EAD));background:#00D2F8 -moz-linear-gradient(43% 71% 101deg, #4A9EAD, #00D2F8);background:#00D2F8 -o-linear-gradient(#00D2F8, #4A9EAD);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00D2F8', EndColorStr='#4A9EAD');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#C4F6FF;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#B3E2F7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#DEE7F7;background:#DEE7F7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#DEE7F7), to(#C1E9FD));background:#DEE7F7 -moz-linear-gradient(43% 71% 101deg, #C1E9FD, #DEE7F7);background:#DEE7F7 -o-linear-gradient(#DEE7F7, #C1E9FD);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#DEE7F7', EndColorStr='#C1E9FD');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_portfolio div#o_main_toolbar.o_toolbar{margin-top:0px}.o_portfolio_home .o_portfolio_my li,.o_portfolio_home .o_portfolio_shared li{margin:2em 1em 2em 0;text-align:center;vertical-align:top}.o_portfolio_home .o_portfolio_my li.o_pf_trash_entry,.o_portfolio_home .o_portfolio_shared li.o_pf_trash_entry{border-right:5px dashed #eee;padding-right:2em}.o_portfolio_home .o_portfolio_my li a,.o_portfolio_home .o_portfolio_shared li a{display:block;width:9em}.o_portfolio_home .o_portfolio_my li a i,.o_portfolio_home .o_portfolio_shared li a i{display:inline-block;font-size:4em}.o_portfolio_home .o_portfolio_my li a span,.o_portfolio_home .o_portfolio_shared li a span{display:block;margin-top:0.8em}@media (max-width: 1199px){.o_portfolio_home .o_portfolio_my,.o_portfolio_home .o_portfolio_shared{font-size:90%}}@media (max-width: 767px){.o_portfolio_home .o_portfolio_my,.o_portfolio_home .o_portfolio_shared{font-size:80%}.o_portfolio_home .o_portfolio_my li.o_pf_trash_entry,.o_portfolio_home .o_portfolio_shared li.o_pf_trash_entry{border-right:none;padding-right:0}}.o_portfolio_home #o_my_last_binders .o_table_body{margin-top:0;padding-left:0}.o_portfolio_home #o_my_last_pages .o_table_body{margin-top:0}.o_portfolio_home #o_my_last_pages .o_table_toolbar{display:none}.o_portfolio_home #o_my_last_pages .o_portfolio_page{margin-top:0;margin-bottom:1em}.o_section_lead,.o_page_lead,.o_assignment_lead{padding:10px 10px;margin-bottom:10px;background-color:#f2f2f2;border-radius:3px;border:1px #d9d9d9 solid}.o_section_ended .o_section_lead{border-color:#eba5a3;background-color:#f4cecd}.o_media.o_media_right,.o_media.o_media_right_large{float:right;margin-left:2em;margin-bottom:2em}.o_media.o_media_left,.o_media.o_media_left_large{float:left;margin-right:2em;margin-bottom:2em}.o_media.o_media_left,.o_media.o_media_right{max-height:200px;max-width:50%}.o_media.o_media_left img,.o_media.o_media_right img{max-height:200px}.o_media.o_media_right_large,.o_media.o_media_left_large{max-height:300px;max-width:75%}.o_media.o_media_right_large img,.o_media.o_media_left_large img{max-height:300px}.o_media img{border-radius:3px;border:1px #d9d9d9 solid;background:#fff;height:auto;width:auto}@media (max-width: 767px){.o_page_lead .o_media.o_media_right,.o_page_lead .o_media.o_media_right_large{margin-left:1em;margin-bottom:1em}.o_page_lead .o_media.o_media_left,.o_page_lead .o_media.o_media_left_large{margin-right:1em;margin-bottom:1em}.o_page_lead .o_media.o_media_left,.o_page_lead .o_media.o_media_right{max-height:120px;max-width:30%}.o_page_lead .o_media.o_media_left img,.o_page_lead .o_media.o_media_right img{max-height:120px}.o_page_lead .o_media.o_media_right_large,.o_page_lead .o_media.o_media_left_large{max-height:180px;max-width:50%}.o_page_lead .o_media.o_media_right_large img,.o_page_lead .o_media.o_media_left_large img{max-height:180px}}.o_page_lead{padding:20px}.o_page_lead h2{margin-bottom:5px}.o_page_lead .o_portfolio_page_meta{margin-bottom:5px}.o_page_lead .o_page_summary{font-size:18px}.o_page_lead .o_media.o_desc_empty{max-height:300px;text-align:center}.o_page_lead .o_media.o_desc_empty img{max-height:300px}.o_page_lead .o_portfolio_status_block{border-top:1px solid #d9d9d9;padding-top:1em;margin-bottom:-1em}.o_page_lead .o_edit_page_meta{padding-right:2em}.o_page_lead .o_portfolio_status{display:inline-block;padding-right:2em}.o_page_lead.o_block_imagebg .o_portfolio_status{padding:2px;background-color:rgba(255,255,255,0.8)}.o_portfolio_status_block p.o_section_ended{font-size:120%}.o_page_assignment{font-size:12px}.o_page_assignment.o_togglebox_wrapper div.o_togglebox_content{margin:10px 0 20px 0;padding:20px;border-left:3px solid #d9534f;background-color:#f2dede}.o_page_assignment .o_page_assignement_info{position:relative;left:-1em}.o_page_export .o_page_assignment .o_opener,.o_binder_export .o_page_assignment .o_opener{visibility:hidden}.o_page_export .o_page_assignment .o_closer,.o_binder_export .o_page_assignment .o_closer{display:none}.o_portfolio_listing.o_rendertype_custom .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry{position:relative;display:inline-block;height:230px;width:400px;vertical-align:top;margin-right:10px}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry ul{padding-left:2em}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry .oo-accepted{box-shadow:10px 10px 10px pink}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry .o_binder_tools a{color:#333}.o_portfolio_listing.o_rendertype_custom .panel-imagebg .panel-body ul{margin:0;padding:0;list-style-type:none}.o_portfolio_listing.o_rendertype_custom .panel-imagebg .panel-body ul li{padding:2px}.o_binder.o_portfolio_assignments .panel-heading,.o_binder.o_portfolio_assignments .panel-body{border-left:3px solid #d9534f}.panel-default.o_portfolio_assignments .panel-heading,.panel-default.o_portfolio_assignments .panel-body{border-left:3px solid #d9534f}.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body{border-left:3px solid #d9534f}.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body .o_portfolio_page_meta_wrapper,.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body .o_portfolio_page_summary{padding-left:10px}.o_portfolio_page_summary .o_media.o_media_right,.o_portfolio_page_summary .o_media.o_media_right_large{margin-left:1em;margin-bottom:1em}.o_portfolio_page_summary .o_media.o_media_left,.o_portfolio_page_summary .o_media.o_media_left_large{margin-right:1em;margin-bottom:1em}.o_portfolio_page_summary .o_media.o_media_left,.o_portfolio_page_summary .o_media.o_media_right{max-height:150px}.o_portfolio_page_summary .o_media.o_media_left img,.o_portfolio_page_summary .o_media.o_media_right img{max-height:150px}.o_portfolio_page_summary .o_media.o_media_right_large,.o_portfolio_page_summary .o_media.o_media_left_large{max-height:230px}.o_portfolio_page_summary .o_media.o_media_right_large img,.o_portfolio_page_summary .o_media.o_media_left_large img{max-height:230px}.o_portfolio_categories .tag{font-size:80%;font-weight:normal}.o_portfolio_categories div,.o_portfolio_categories form{display:inline-block}.o_portfolio_categories_edit .bootstrap-tagsinput{margin-bottom:0;padding:0px 4px}.o_portfolio_last_modified+.o_portfolio_categories,.o_portfolio_page_meta+.o_portfolio_categories{margin-left:1em}.o_rendertype_classic .o_pf_page,.o_rendertype_classic .o_pf_assignment{padding-left:1em}.o_portfolio_timeline .o_timeline_up{text-align:center}.o_portfolio_timeline .o_timeline_down{text-align:center}.o_portfolio_timeline .axis path,.o_portfolio_timeline .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_portfolio_timeline .x.axis line,.o_portfolio_timeline .x.axis path{display:none}.o_portfolio_timeline path.o_timeline_curve{fill:none;stroke:#ccc;shape-rendering:crispEdges}.o_portfolio_timeline .y.axis .tick line,.o_portfolio_timeline .y.axis path.domain{stroke:#ddd}.o_portfolio_timeline text{fill:#888;stroke:none;font-size:10px}.o_portfolio_timeline .dot.o_pf_status_draft{fill:#f0ad4e}.o_portfolio_timeline .dot.o_pf_status_published{fill:#337ab7}.o_portfolio_timeline .dot.o_pf_status_inrevision{fill:#d9534f}.o_portfolio_timeline .dot.o_pf_status_closed{fill:#5cb85c}.o_portfolio_timeline .dot.o_pf_status_deleted{fill:#000}.o_pf_comments{margin-top:3em}.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file{background-color:#f8f8f8;padding:10px;border-radius:10px}.o_pf_content .o_forum,.gu-mirror .o_forum{border:1px #f8f8f8 solid;padding:10px;border-radius:10px}.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_forum,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_forum,.gu-mirror .o_wiki{background-color:#f8f8f8;padding:10px;border-radius:10px}.o_pf_content .o_efficiencystatement h3,.o_pf_content .o_efficiencystatement .h3,.o_pf_content .o_feed h3,.o_pf_content .o_feed .h3,.o_pf_content .o_forum h3,.o_pf_content .o_forum .h3,.o_pf_content .o_wiki h3,.o_pf_content .o_wiki .h3,.gu-mirror .o_efficiencystatement h3,.gu-mirror .o_efficiencystatement .h3,.gu-mirror .o_feed h3,.gu-mirror .o_feed .h3,.gu-mirror .o_forum h3,.gu-mirror .o_forum .h3,.gu-mirror .o_wiki h3,.gu-mirror .o_wiki .h3{font-size:14px}.o_pf_content .o_efficiencystatement .row,.o_pf_content .o_feed .row,.o_pf_content .o_forum .row,.o_pf_content .o_wiki .row,.gu-mirror .o_efficiencystatement .row,.gu-mirror .o_feed .row,.gu-mirror .o_forum .row,.gu-mirror .o_wiki .row{margin:0}.o_pf_content .o_efficiencystatement .o_block_with_datecomp,.o_pf_content .o_feed .o_block_with_datecomp,.o_pf_content .o_forum .o_block_with_datecomp,.o_pf_content .o_wiki .o_block_with_datecomp,.gu-mirror .o_efficiencystatement .o_block_with_datecomp,.gu-mirror .o_feed .o_block_with_datecomp,.gu-mirror .o_forum .o_block_with_datecomp,.gu-mirror .o_wiki .o_block_with_datecomp{margin-top:0.5em;margin-bottom:0}.o_pf_video_placeholder{background-color:#f8f8f8;border:1px solid #f8f8f8;border-radius:10px;display:table;min-width:400px;text-align:center;padding:40px 10px}.o_pf_video_placeholder i{display:table-cell;vertical-align:middle}.o_binder_page_listing .o_portfolio_page_links{background-color:#f8f8f8;border-radius:4px}.o_binder_page_listing .o_portfolio_page_links .o_portfolio_comment{float:right}.o_portfolio_toc .o_portfolio_toc_section{position:relative;padding-right:80px}.o_portfolio_toc .o_portfolio_section_meta{margin-top:-0.5em}.o_portfolio_toc .o_section_actions{position:absolute;top:-10px;right:0}.o_portfolio_toc .o_section_actions .o_section_move_up_and_down,.o_portfolio_toc .o_section_actions .o_section_dropdown{vertical-align:middle;display:inline-block}.o_portfolio_toc a.o_comment{color:#777;margin-left:1em}.o_portfolio_toc .o_section ul{padding-left:1em;line-height:24px}.o_portfolio div span.badge{padding:3px 7px}.o_portfolio div .o_portfolio_entry_draft{background-color:#f0ad4e}.o_portfolio div .o_portfolio_published{background-color:#337ab7}.o_portfolio div .o_portfolio_entry_revision{background-color:#d9534f}.o_portfolio div .o_portfolio_entry_closed{background-color:#5cb85c}.o_portfolio div .o_portfolio_entry_deleted{background-color:#000}.o_portfolio div .o_portfolio_entry_incoming{background-color:#5cb85c}.o_portfolio div .o_portfolio_entry_inprocess{background-color:#c8c8c8}.o_portfolio div .o_portfolio_entry_done{background-color:#5cb85c}.o_portfolio div .o_popover,.o_portfolio div .popover:hover{color:#333;text-decoration:none}.o_portfolio_content .o_portfolio_toc.o_portfolio_toc_withtimeline{width:70%;float:left}.o_portfolio_content .o_portfolio_timeline{width:29%;float:right}.o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline,.o_portfolio_content .o_portfolio_entries.o_portfolio_withtimeline{width:70%;float:left}.o_portfolio_content .o_portfolio_timeline{width:29%;float:right}.o_portfolio_page{background:#fcfcfc;border:1px solid #eee;border-radius:4px}.o_portfolio_page_meta_wrapper{background-position:left top;background-repeat:no-repeat}.o_portfolio_rights table .o_portfolio_section td:first-child{padding-left:1.5em}.o_portfolio_rights table .o_portfolio_page td:first-child{padding-left:2.5em}.o_portfolio_publication table{padding-bottom:10px}.o_portfolio_publication table td{padding:5px 5px 5px 0}.o_portfolio_publication .o_portfolio_ac{font-size:90%}.o_portfolio_publication .o_portfolio_ac table td:nth-of-type(2){width:200px;white-space:nowrap}.o_portfolio_publication .o_portfolio_ac table td:nth-of-type(3){width:40px;white-space:nowrap}.o_portfolio_publication ul ul{margin-left:2em;margin-bottom:5px}.o_portfolio_publication ul li{background:#fbfbfb;padding:3px;margin-bottom:2px}.o_portfolio_publication ul li li{background:#f2f2f2}.o_portfolio_publication ul li li li{background:#eee}.o_portfolio_publication ul li li .table{margin-bottom:0px}@media (max-width: 767px){.o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline,.o_portfolio_content .o_portfolio_entries.o_portfolio_withtimeline{width:100%;float:none}.o_portfolio_content .o_sel_timeline_off,.o_portfolio_content .o_sel_timeline_on,.o_portfolio_content .o_portfolio_timeline{display:none}.o_portfolio_content .o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline{width:100%;float:none}}.o_portfolio_media_browser .o_portfolio_medias{position:relative;margin-bottom:20px;margin-top:20px}.o_portfolio_media_browser .o_portfolio_medias:before,.o_portfolio_media_browser .o_portfolio_medias:after{content:" ";display:table}.o_portfolio_media_browser .o_portfolio_medias:after{clear:both}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media:last-child{margin-right:0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{border:1px solid #337ab7;position:relative;height:180px;width:180px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon span.o_visual_not_available{background-image:none}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:6em;text-align:center;color:#eee;line-height:140px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #337ab7;border-top:0;background-color:rgba(255,255,255,0.8)}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a{display:block;color:#337ab7;font-family:inherit;font-weight:inherit}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:hover{color:#286090}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{width:80px;margin:0 10px 10px 0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{height:80px;width:80px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:2.5em;line-height:55px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_title{font-size:90%}}@media (max-width: 767px){.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{width:80px;margin:0 1px 1px 0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{height:80px;width:80px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:2.5em;line-height:55px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_title{font-size:90%}}.o_portfolio_status_legend{margin-top:3em}.o_portfolio_status_legend h6{margin-bottom:5px}.o_ed_htitle h1,.o_ed_htitle .h1{font-size:30px}.o_ed_htitle h2,.o_ed_htitle .h2{font-size:24px}.o_ed_htitle h3,.o_ed_htitle .h3{font-size:18px}.o_ed_htitle h4,.o_ed_htitle .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_ed_htitle h2,.o_ed_htitle .h4{font-size:14px}.o_ed_htitle h5,.o_ed_htitle .h5{font-size:12px}.o_ed_htitle h6,.o_ed_htitle .h6{font-size:12px}@media print{.o_binder h1{font-size:43.2px;margin-top:10cm}.o_portfolio_section{margin-bottom:1cm}.o_portfolio_section h3:first-of-type{font-size:36px}.o_page_lead{border:0;border-bottom:1px solid #d9d9d9;border-radius:0;background-color:none;padding:0;margin-bottom:10px}.o_page_lead .o_portfolio_status_block{border-top:0;margin-bottom:0}.o_page_lead .o_media img{border:0}.o_page_lead .o_portfolio_categories{display:block;margin-left:0}.o_page_lead .o_portfolio_status_block{padding-top:0}.o_page_lead .o_page_summary{margin-top:1em;font-style:italic}.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.o_pf_content .o_forum,.o_pf_content .o_image,.o_pf_content .o_video,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_forum,.o_pf_content .o_wiki{padding:0;border-radius:0;border:0}.o_pf_content .o_cit .o_desc p,.o_pf_content .o_text .o_desc p,.o_pf_content .o_file .o_desc p,.o_pf_content .o_forum .o_desc p,.o_pf_content .o_image .o_desc p,.o_pf_content .o_video .o_desc p,.o_pf_content .o_efficiencystatement .o_desc p,.o_pf_content .o_feed .o_desc p,.o_pf_content .o_forum .o_desc p,.o_pf_content .o_wiki .o_desc p{margin:0}.o_efficiencystatement table{font-size:90%}.o_artefact_metadata{page-break-inside:avoid;border:0;border-left:5px solid #eee;padding-left:10px;font-size:80%}.o_artefact_metadata table td,.o_artefact_metadata table th{border:0 !important;padding:2px !important}.o_artefact_metadata table th:first-of-type{width:20%}.o_pf_video_placeholder{background-color:#f8f8f8 !important;-webkit-print-color-adjust:exact;color-adjust:exact}.o_pf_video_placeholder.visible-print-block{display:table !important}}.o_evaluation_form .o_evaluation_block{margin-top:2em;margin-bottom:2em}.o_evaluation_form .o_rubric_name{font-weight:bold;margin-bottom:1em}.o_evaluation_form .o_evaluation_step_labels{margin-bottom:1em;font-weight:bold}.o_evaluation_form .o_evaluation_step_labels div,.o_evaluation_form .o_evaluation_step_labels span{display:inline-block;text-align:center;align-self:flex-end;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_evaluation_form .o_slider_wrapper{height:33px;overflow:hidden}.o_evaluation_form .o_slider{margin-bottom:1em}.o_evaluation_form .o_slider label{padding:0}.o_evaluation_form .o_slider input{padding:0;margin:0;position:relative}.o_evaluation_form .o_slider.hover{background-color:#f5f5f5}.o_evaluation_form .o_evaluation_continous .o_evaluation_no_response div.radio{padding:0;margin:0}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps{display:flex;justify-content:space-between}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps label{padding:0;margin:0;text-align:center}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps .radio{background-color:#f9f9f9;padding:0px;margin-top:0px;text-align:center}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps .radio:hover{background-color:#f5f5f5}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_no_response div.radio{margin-top:2px}.o_evaluation_form .o_evaluation_discrete_radio .o_evaluation_step_labels{display:flex;justify-content:space-between}.o_evaluation_form .o_slider .ui-slider.ui-slider-horizontal.ui-widget-content{margin-top:0.3em;margin-bottom:10px}.o_evaluation_form .o_evaluation_left_label{text-align:right;font-weight:normal}.o_evaluation_form .o_evaluation_left_label.o_evaluation_left_label_la{text-align:left;padding-left:0px;font-weight:normal}.o_evaluation_form .o_evaluation_right_label{text-align:left;font-weight:normal}.o_evaluation_form .o_evaluation_text_legend{margin-bottom:1em}.o_evaluation_form .o_evaluation_legend{padding-left:0.5em;margin-bottom:0.5em}.o_evaluation_form .o_evaluation_fileupload{margin-bottom:2em}.o_evaluation_form .o_evaluation_mc_other{margin-top:-10px;margin-left:10px;margin-right:10px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_slider{margin-left:15px;margin-right:15px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_end_label{text-align:right;padding-right:20px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_continous .x .tick{visibility:hidden}.o_evaluation_form .o_ed_rubrictablehandler .table{margin-top:5px}.o_evaluation_form .svg-container{display:inline-block;position:relative;width:100%;padding-bottom:50%;vertical-align:top;overflow:hidden}.o_evaluation_form .svg-content-responsive{display:inline-block;position:absolute;top:10px;left:0}.d3chart .o_eva_bar{fill:#337ab7}.d3chart .o_rubric_sufficient{fill:#5cb85c}.d3chart .o_rubric_neutral{fill:#f0ad4e}.d3chart .o_rubric_insufficient{fill:#d9534f}.d3chart .o_rubric_unrated{fill:#337ab7}.o_qual_hm_legend{padding:5px}.o_qual_hm_legend li{font-size:90%}.o_qual_hm_legend .ident{font-weight:bold}.o_evaluation_discrete_slider .o_evaluation_step_labels{position:relative}.o_evaluation_discrete_slider .o_evaluation_step_labels div:first-child{position:absolute;left:0px;text-align:left}.o_evaluation_discrete_slider .o_evaluation_step_labels div{display:inline-block;text-align:center}.o_evaluation_discrete_slider .o_evaluation_step_labels div:last-child{position:absolute;right:0px;text-align:right}.o_slider_overview{width:100%;height:20px;position:relative}.o_slider_overview .o_slider_overview_line{top:5px;left:0px;position:absolute;width:100%;height:11px;border:1px solid #999;border-radius:4px}.o_slider_overview .o_slider_overview_point{position:absolute;width:10px;height:10px;background-color:#337ab7}.o_evaluation_editor_form{margin:10px 10px 0 10px}.o_evaluation_editor_form .o_slider_editor{margin-top:10px}@media (max-width: 992px){.o_evaluation_editor_form .o_slider_editor{margin-bottom:20px}}@media (max-width: 992px){.o_evaluation_editor_form .o_evaluation_step_label{text-align:unset;margin-bottom:5px;padding-top:unset}}.o_evaluation_editor_form .o_evaluation_step_labels{display:inline-block}.o_evaluation_editor_form .o_evaluation_step_labels input{width:100%}.o_evaluation_editor_form .o_slider_descrete_radio{display:flex;justify-content:space-between}.o_evaluation_editor_form .o_slider_descrete_radio .radio{background-color:#f9f9f9;padding:0px;margin-top:0px;text-align:center}.o_evaluation_editor_form .o_slider_descrete_radio .radio:hover{background-color:#f5f5f5}@media (max-width: 992px){.o_evaluation_editor_form input[type="text"]{margin-bottom:5px}}.o_evaluation_editor_form .o_slider_continous{padding-top:10px;padding-bottom:-10px}.o_evaluation_editor_form .o_slider_descrete{padding-top:5px;padding-bottom:-5px}.o_evaluation_editor_form .o_evaluation_example{font-size:90%}.o_evaluation_editor_form .o_slider_top{margin-top:23px}.o_evaluation_editor_form .o_slider_buttons .pull-right div:not(:first-child){display:inline-block}.o_evaluation_editor_form .o_slider_buttons .pull-right .btn{margin-top:-3px}.o_evaluation_editor_form .o_slider_weight{max-width:40px}@media (max-width: 768px){.o_evaluation_form .o_evaluation_left_label{text-align:left;margin-bottom:0.5em}.o_evaluation_form .o_evaluation_right_label{text-align:right}.o_evaluation_form .o_evaluation_no_response{text-align:left}.o_evaluation_form .o_evaluation_no_response .o_evaluation_no_resp_value{font-weight:bold}.o_evaluation_form .o_slider{margin-bottom:2em}.o_evaluation_form .o_slider div{padding-left:0}.o_evaluation_form .o_slider .o_evaluation_no_response{margin-top:0.7em}}@media (min-width: 768px){.o_evaluation_form .o_evaluation_no_resp_value{display:none}}@media print{.o_evaluation_discrete_radio .o_slider .o_evaluation_steps div.radio{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#f9f9f9 !important}.o_icon_rubric_insufficient::before{color:#d9534f !important}.o_icon_rubric_neutral::before{color:#f0ad4e !important}.o_icon_rubric_sufficient::before{color:#5cb85c !important}}.o_eva_report_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_eva_report_print #o_print_brand img{width:100%}.o_eva_report_print .o_eva_content{margin-top:4em}.o_eva_report_print .o_eva_overview .panel table{margin:0px 0px 1px 0px}.o_eva_report_print .o_evaluation_duration,.o_eva_report_print .o_participated_users{display:none}.o_surv_run.withCmds .o_eva_report{margin-top:-44px}.o_eva_report .o_eva_overview .o_eva_rubric .table{margin-top:5px}.o_eva_report .o_ed_rubrictablehandler .o_table_footer{font-weight:bold}.o_eva_report .o_rubric_avg{font-weight:bold;white-sprace:nowrap}.o_eva_report .o_rubric_table .o_table_wrapper{margin-bottom:10px}.o_eva_report .o_rubric_table_legend{display:block}.o_eva_report .o_rubric_table_legend .ident{font-weight:bold}.o_eva_report .o_rubric_table_legend .list-inline{margin-bottom:0px}.o_eva_report .o_rubric_table_legend.o_last{margin-bottom:15px}.o_evaluation_execution .o_evaluation_anonymous_info{display:inherit}.o_qual_main .o_labeled.o_qual_dc_status_preparation,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_preparation{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_ready,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_ready{background-color:#ffd351;border-color:#ffd351;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_running,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_running{background-color:#933;border-color:#933;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_finished,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_finished{background-color:#14892c;border-color:#14892c;color:#fff}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_preparation{background-color:#384e64}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_ready{background-color:#ffc61e}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_running{background-color:#732626}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_finished{background-color:#0e5c1e}.o_qual_main .o_qual_dc_list tbody tr td:nth-child(1){padding-top:3px}.o_qual_main .o_labeled_light.o_qual_dc_status_preparation_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_preparation_light{border-color:#4a6785;color:#4a6785}.o_qual_main .o_labeled_light.o_qual_dc_status_ready_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_ready_light{border-color:#ffd351;color:#333}.o_qual_main .o_labeled_light.o_qual_dc_status_running_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_running_light{border-color:#933;color:#933}.o_qual_main .o_labeled_light.o_qual_dc_status_finished_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_finished_light{border-color:#14892c;color:#14892c}.o_qual_main .o_qual_exec_list tbody tr td:nth-child(1){padding-top:3px}.o_qual_main .o_qual_exec_status_future_light{border-color:#4a6785;color:#4a6785}.o_qual_main .o_qual_exec_status_ready_light{border-color:#ffd351;color:#333}.o_qual_main .o_qual_exec_status_participating_light{border-color:#933;color:#933}.o_qual_main .o_qual_exec_status_participated_light{border-color:#14892c;color:#14892c}.o_qual_main .o_qual_exec_status_over_light{border-color:#aaa;color:#aaa}.o_qual_execute_header .o_qual_context_table,.o_qual_report_header .o_qual_context_table{margin-bottom:0}.o_qual_execute_header .o_qual_context_table th,.o_qual_report_header .o_qual_context_table th{width:40%;border-top:none;padding:4px 8px}.o_qual_execute_header .o_qual_context_table td,.o_qual_report_header .o_qual_context_table td{width:60%;border-top:none;padding:4px 8px}.o_qual_ana_table .o_table_body{padding:0}.o_qual_ana_filter .o_date_range{margin-bottom:0px}.o_qual_ana_filter .o_date_range .control-label{margin-bottom:5px}.o_qual_ana_filter .o_date_range .o_date{margin-bottom:15px;padding-right:12px}.o_qual_ana_filter .o_date_range .o_date_range_from{padding-right:12px}.o_qual_ana_filter .o_date_range .o_date_range_to{padding-right:0px}.o_qual_hm_basecolor{background-color:#337ab7}.o_qual_hm .o_circle_container{display:flex}.o_qual_hm .o_circle_box{display:flex;align-items:center;justify-content:center}.o_qual_hm .o_circle{border-radius:50%}.o_qual_hm .o_circle.o_rubric_insufficient{background-color:#d9534f !important}.o_qual_hm .o_circle.o_rubric_neutral{background-color:#f0ad4e !important}.o_qual_hm .o_circle.o_rubric_sufficient{background-color:#5cb85c !important}.o_qual_hm .o_avg{display:flex;align-items:center;margin-left:5px}.o_qual_trend_invisible{visibility:hidden}.o_qual_trend .o_qual_ana_trend_up{transform:rotate(315deg);-webkit-transform:rotate(315deg);-moz-transform:rotate(315deg);-ms-transform:rotate(315deg);-o-transform:rotate(315deg)}.o_qual_trend .o_qual_ana_trend_down{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.o_qual_trend .o_rubric_insufficient{color:#d9534f}.o_qual_trend .o_rubric_neutral{color:#f0ad4e}.o_qual_trend .o_rubric_sufficient{color:#5cb85c}.o_qual_trend .o_qual_ana_unrated{color:#337ab7}.o_qual_filtered_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_qual_filtered_print #o_print_brand img{width:100%}.o_qual_filtered_print .o_qual_content{margin-top:4em}.o_qual_filtered_print .o_groupby_config,.o_qual_filtered_print .o_slider_trend_config,.o_qual_filtered_print .o_qual_hm tr td:last-child,.o_qual_filtered_print .o_qual_hm tr th:last-child{display:none}.o_evaluation_bar_chart_legend{padding:5px}.o_evaluation_bar_chart_legend li{font-size:90%}.o_evaluation_bar_chart_legend .ident{font-weight:bold}@media (max-width: 768px){.o_hm_group_select{padding-bottom:12px}.o_hm_panel_body{margin-bottom:-12px}}@media (min-width: 768px){.o_hm_trend_row{padding-top:12px}}@media print{.o_qual_hm .o_circle{-webkit-print-color-adjust:exact;color-adjust:exact}.o_qual_hm .o_circle.o_rubric_insufficient{background-color:#d9534f !important}.o_qual_hm .o_circle.o_rubric_neutral{background-color:#f0ad4e !important}.o_qual_hm .o_circle.o_rubric_sufficient{background-color:#5cb85c !important}.o_qual_hm .o_circle.o_qual_hm_basecolor{background-color:#337ab7 !important}.o_qual_trend{-webkit-print-color-adjust:exact;color-adjust:exact}.o_qual_trend .o_rubric_insufficient::before{color:#d9534f !important}.o_qual_trend .o_rubric_neutral::before{color:#f0ad4e !important}.o_qual_trend .o_rubric_sufficient::before{color:#5cb85c !important}.o_qual_trend .o_qual_ana_unrated::before{color:#337ab7 !important}}.o_cit{position:relative;margin:10px 0}.o_cit blockquote.o_quote{color:#555;font-size:18px;margin-top:6px;margin-bottom:0;padding:0 12px;font-style:italic;padding:5px 5px 0;border:0}.o_cit blockquote.o_quote p:last-child:after{content:'1)';top:-0.5em;font-size:75%;line-height:0;position:relative;vertical-align:baseline}.o_cit .o_cit_bibinfo{font-size:90%;margin-left:1em;position:relative}.o_cit .o_cit_bibinfo>div:first-child:before{content:'1)';position:absolute;top:0.5em;left:-1em;font-size:75%;line-height:0;vertical-align:baseline}.o_cit .title,.o_cit .url,.o_cit .authors,.o_cit .pages,.o_cit .date,.o_cit .dateAdded,.o_cit .place,.o_cit .institution,.o_cit .issue,.o_cit .publisher,.o_cit .publicationTitle,.o_cit .edition,.o_cit .series,.o_cit .volume{margin-right:0.5em}.o_cit .title{font-style:italic}.o_cit .publicationTitle{color:black}.o_cit .links{padding-left:2em}.o_cit .notes{padding-left:2em;color:grey}.o_cit .note{font-style:italic}.o_cit .note p:first-child{margin-top:0}.o_cit .note p:first-child{margin-bottom:0}.o_cit .listing.web .item{padding-left:0;text-indent:0}.o_cit .listing.web .title{display:block;font-weight:bold;font-style:normal}.o_cit .listing.web .publicationTitle{display:block;font-style:italic}.o_cit .listing.web .url{display:block}.o_cit .listing.web .links{padding-left:0}.o_cit .listing.web .notes{padding-left:0}.o_cit .general-info{border-top:1px solid #eee;padding-top:30px;margin-top:30px}.o_cit .copyright{display:none}@media print{.o_cit blockquote.o_quote{page-break-inside:avoid}}.o_video_poster{position:relative;display:inline-block;width:400px;max-width:100%;height:225px;background-size:cover;background-repeat:no-repeat;border:1px solid #eee}.o_video_poster_select{text-align:center}.o_video_poster_select .o_video_poster{margin:5px}.o_video_poster_select .o_video_poster a{position:absolute;left:0;top:0;width:100%;height:100%}.o_video_poster_select .o_video_poster a span{position:absolute;bottom:0;width:100%;display:block;line-height:3em;background:#f8f8f8;opacity:0.8}.o_video_poster_select .o_video_poster a:hover{border:1px solid #bbb}.o_video_poster_select .o_video_poster a:hover span{opacity:0.9}.o_video_peekview{text-align:center}.o_video_listing .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_video_listing .o_video_entry{position:relative;display:inline-block;height:230px;width:250px;vertical-align:top;margin-right:10px}.o_video_listing .o_video_poster{width:250px;max-width:100%;height:140px;border:1px solid #eee}.o_video_listing .o_timecode{position:absolute;bottom:2px;right:3px;padding:3px 4px;background:#333;color:#fff;font-size:12px;line-height:12px}.o_video_listing .o_meta{padding:2px;font-size:11px}.o_video_listing .o_meta h5{font-size:14px;margin-top:0;margin-bottom:5px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o_video_listing .o_date{margin-left:10px;display:inline-block}.o_video_listing .o_date:before{content:'\002022';margin-right:10px;display:inline-block}.o_video_run h1{font-size:1.8rem;font-weight:normal}.o_video_run .o_author{margin-top:0.5em;margin-bottom:1em;line-height:normal;font-size:90%;color:#3c763d}.o_video_run .o_ratings_and_comments{margin-top:2em;border-top:1px solid #eee;padding-top:1em}.o_video_chapter_editor .o_table_wrapper.o_table_flexi .table,.o_video_marker_editor .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_video_marker_editor .o_video_question.mejs__overlay{overflow:scroll}.o_video_question.mejs__overlay.o_video_large_question{align-items:flex-start;padding:1em 1em 0 1em;z-index:5}.o_video_question.mejs__overlay.o_video_large_question #o_qti_container{border:1px solid #eee}.o_video_marker{position:absolute;background-color:#efefef;opacity:0.85;border-left:3px solid #5bc0de;padding:5px}.o_video_marker.o_video_marker_gray{border-left-color:#333}.o_video_marker.o_video_marker_blue{border-left-color:#bce8f1}.o_video_marker.o_video_marker_green{border-left-color:#5cb85c}.o_video_marker.o_video_marker_yellow{border-left-color:#f0ad4e}.o_video_marker.o_video_marker_red{border-left-color:#d9534f}.o_video_question.mejs__overlay{width:100%;height:100%;background-color:rgba(255,255,255,0.5)}.o_video_question #itemBody,.o_video_question .modalFeedback{background-color:white;opacity:1.0}.o_video_question .o_assessmentitem_wrapper .o_qti_item_body{min-height:50px}.o_video_question #o_qti_assessment_test_timer{border:none;padding:5px;margin:0}.o_video_question #o_qti_progress .progress{height:10px}.o_video_question #o_qti_container{background-color:white;padding:5px;border-radius:3px}.o_video_question .o_sel_additional_feedback{float:left;font-size:26px}.o_video_question .o_sel_additional_feedback .o_icon_passed{color:#5cb85c}.o_video_question .o_sel_additional_feedback .o_icon_failed{color:#d9534f}.mejs__time-rail .o_video_marker_gray{background:#333}.mejs__time-rail .o_video_marker_blue{background:#bce8f1}.mejs__time-rail .o_video_marker_green{background:#5cb85c}.mejs__time-rail .o_video_marker_yellow{background:#f0ad4e}.mejs__time-rail .o_video_marker_red{background:#d9534f}.mejs__controls .mejs__sourcechooser-button>button{background:transparent;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.mejs__controls .mejs__sourcechooser-button>button:before{content:"";color:white;font-size:18px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector{visibility:visible !important;width:170px;padding-left:10px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label{font-weight:normal;font-size:10px;width:140px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label:hover{color:#eee}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label .type{display:none}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li input{visibility:hidden;margin:0;width:0}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li input:checked+label{color:#d9534f}.mejs__controls .mejs__captions-button .mejs__captions-selector{right:-26px}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label{font-weight:normal;font-size:10px}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label:hover{color:#eee}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label .type{display:none}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li input{visibility:hidden;margin:0;width:0}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li input:checked+label{color:#d9534f}.mejs__button.mejs__speed-button{width:36px}.mejs__controls .mejs__speed-button>button{background:transparent;width:36px;margin:11px 0 0 0;font-size:11px;line-height:normal;color:#ffffff}.mejs__controls .mejs__speed-button .mejs__speed-selector{height:150px;top:auto;bottom:40px}.mejs__controls .mejs__speed-button .mejs__speed-selector ul li label{font-weight:normal;font-size:10px}.mejs__chapters .mejs__chapter .mejs__chapter-block .ch-title,.mejs__chapters .mejs__chapter .mejs__chapter-block .ch-time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.mejs__time-marker{background-color:#5bc0de}.o_userbulk_changedcell{font-style:italic;font-weight:bold}.o_qpool_source_status{text-align:center}.o_qitem_author{white-space:nowrap}a.o_qpool_status{margin:0 2px 2px 2px;text-align:left}.o_labeled.o_qpool_status_draft,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_draft{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_labeled.o_qpool_status_review,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_review{background-color:#ffd351;border-color:#ffd351;color:#fff}.o_labeled.o_qpool_status_revised,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_revised{background-color:#933;border-color:#933;color:#fff}.o_labeled.o_qpool_status_finalVersion,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_finalVersion{background-color:#14892c;border-color:#14892c;color:#fff}.o_labeled.o_qpool_status_endOfLife,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_endOfLife{background-color:#aaa;border-color:#aaa;color:#fff}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_draft{background-color:#384e64}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_review{background-color:#ffc61e}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_revised{background-color:#732626}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_finalVersion{background-color:#0e5c1e}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_endOfLife{background-color:#919191}.o_labeled_light.o_qpool_status_draft_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_draft_light{border-color:#4a6785;color:#4a6785}.o_labeled_light.o_qpool_status_review_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_review_light{border-color:#ffd351;color:#333}.o_labeled_light.o_qpool_status_revised_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_revised_light{border-color:#933;color:#933}.o_labeled_light.o_qpool_status_finalVersion_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_finalVersion_light{border-color:#14892c;color:#14892c}.o_labeled_light.o_qpool_status_endOfLife_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_endOfLife_light{border-color:#aaa;color:#aaa}.btn-arrow-right.o_qpool_qitem_draft{background:#f8f8f8;border-bottom-color:#4a6785;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_review{background:#f8f8f8;border-bottom-color:#ffd351;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_revised{background:#f8f8f8;border-bottom-color:#933;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_final{background:#f8f8f8;border-bottom-color:#14892c;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_end_of_life{background:#f8f8f8;border-bottom-color:#aaa;border-bottom-width:3px}.btn-arrow-right.o_qpool_status_slected{background-color:#e7e7e7;color:#555}.btn-arrow-right,.btn-arrow-left{position:relative;padding-left:18px;padding-right:18px;margin-bottom:5px}.btn-arrow-right{padding-left:36px}.btn-arrow-left{padding-right:36px}.btn-arrow-right:before,.btn-arrow-right:after,.btn-arrow-left:before,.btn-arrow-left:after{content:"";position:absolute;top:5px;width:22.627417px;height:22.627417px;background:inherit;border:inherit;border-left-color:transparent;border-bottom-color:transparent;border-radius:0px 4px 0px 0px;-webkit-border-radius:0px 4px 0px 0px;-moz-border-radius:0px 4px 0px 0px}.btn-arrow-right:before,.btn-arrow-right:after{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-transform:rotate(45deg)}.btn-arrow-left:before,.btn-arrow-left:after{transform:rotate(225deg);-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-o-transform:rotate(225deg);-ms-transform:rotate(225deg)}.btn-arrow-right:before,.btn-arrow-left:before{left:-11px}.btn-arrow-right:after,.btn-arrow-left:after{right:-11px}.btn-arrow-right:after,.btn-arrow-left:before{z-index:1}.btn-arrow-right:before,.btn-arrow-left:after{background-color:white}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;border-top:50px solid transparent;border-bottom:70px solid transparent;background:url("../light/images/learn-bg.jpg");background-size:cover;background-position:center center;background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1 )}body.o_dmz #o_bg:after{content:" ";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%);background-size:cover;background-position:center center;background-repeat:no-repeat}body.o_dmz #o_toplink{display:none}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#337ab7}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#337ab7}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social .btn-default.o_sel_auth_facebook{color:#fff;background-color:#4568b2;border-color:#3e5da0}.o_login .o_login_social .btn-default.o_sel_auth_facebook:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_facebook.dropdown-toggle{color:#fff;background-color:#37538d;border-color:#2d4374}.o_login .o_login_social .btn-default.o_sel_auth_facebook:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_facebook.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled],.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook.active{background-color:#4568b2;border-color:#3e5da0}.o_login .o_login_social .btn-default.o_sel_auth_facebook .badge{color:#4568b2;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_twitter{color:#fff;background-color:#2cc5ff;border-color:#13beff}.o_login .o_login_social .btn-default.o_sel_auth_twitter:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_twitter.dropdown-toggle{color:#fff;background-color:#00b4f8;border-color:#009ad4}.o_login .o_login_social .btn-default.o_sel_auth_twitter:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_twitter.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled],.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter.active{background-color:#2cc5ff;border-color:#13beff}.o_login .o_login_social .btn-default.o_sel_auth_twitter .badge{color:#2cc5ff;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_google{color:#fff;background-color:#e15f4f;border-color:#dd4b39}.o_login .o_login_social .btn-default.o_sel_auth_google:hover,.o_login .o_login_social .btn-default.o_sel_auth_google:focus,.o_login .o_login_social .btn-default.o_sel_auth_google.focus,.o_login .o_login_social .btn-default.o_sel_auth_google:active,.o_login .o_login_social .btn-default.o_sel_auth_google.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_google.dropdown-toggle{color:#fff;background-color:#d83825;border-color:#ba3120}.o_login .o_login_social .btn-default.o_sel_auth_google:active,.o_login .o_login_social .btn-default.o_sel_auth_google.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_google.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_google.disabled,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled],.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google.active{background-color:#e15f4f;border-color:#dd4b39}.o_login .o_login_social .btn-default.o_sel_auth_google .badge{color:#e15f4f;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_linkedin{color:#fff;background-color:#0181bd;border-color:#0170a4}.o_login .o_login_social .btn-default.o_sel_auth_linkedin:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_linkedin.dropdown-toggle{color:#fff;background-color:#015e8a;border-color:#014667}.o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_linkedin.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled],.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin.active{background-color:#0181bd;border-color:#0170a4}.o_login .o_login_social .btn-default.o_sel_auth_linkedin .badge{color:#0181bd;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_adfs{color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_login .o_login_social .btn-default.o_sel_auth_adfs:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_adfs.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_login .o_login_social .btn-default.o_sel_auth_adfs:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_adfs.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled],.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs.active{background-color:#337ab7;border-color:#2e6da4}.o_login .o_login_social .btn-default.o_sel_auth_adfs .badge{color:#337ab7;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect{color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled],.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active{background-color:#337ab7;border-color:#2e6da4}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect .badge{color:#337ab7;background-color:#fff}.o_old_browser{display:none}.o_browser_ie10 .o_old_browser{display:block}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fcfcfc;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:""}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_catalog_title h2,.o_library_catalog_title h3,.o_library_catalog_title h4,.o_library_catalog_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_catalog_title h2{margin-top:0}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_library .o_ratings_and_comments .o_rating_title,.o_library .o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #337ab7 !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_useradmin .o_user_infos .o_user_infos_inner{margin-right:45px}div.o_skype_button{display:inline-block}div.o_skype_button p{margin:0 0 0 0}div.o_skype_button p a img{margin:0 !important;vertical-align:middle !important}.o_useradmin div#o_main_toolbar.o_toolbar{margin-top:0px}.o_members_pagination{text-align:center}.o_bcard_logo{margin-left:10px;height:66px}.o_bcard_title_with_logo{clear:both;padding:20px 0 0 0}.o_visitingcard_image,.o_visitingcard_logo{height:66px}.o_visitingcard .o_icon_visitingcard{display:none}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}.o_visitingcard_image,.o_visitingcard_logo{height:50px}.o_visitingcard_logo,.o_bcard_logo{height:50px;margin:5px 0 0 5px}.o_visitingcard_logo img,.o_bcard_logo img{position:relative;transform:scale(.7575757576);top:-8px}}@media (max-width: 414px){.o_visitingcard_logo img{max-width:260px}}@media (max-width: 375px){.o_visitingcard_logo img{max-width:220px}}@media (max-width: 320px){.o_visitingcard_logo img{max-width:180px}.o_bcard_logo img{max-width:150px}}.o_gta_coach_selection .o_noti{display:inline-block;float:none;margin:0}.o_gta_coach_selection .o_gta_coach_selection_bar{position:relative}.o_gta_coach_selection .o_gta_coach_selection_bar .o_noti{position:absolute;top:3px;right:0}p.o_gta_reopen_warning{margin-top:-20px}.o_lecture_authorized_absence div.form-inline,.o_lecture_authorized_absence div.o_navbar-form{display:inline}.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_date,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_startTime,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_endTime,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_details,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_tools{width:1%}.o_lectures_teacher_overview .o_lectures_current_wrapper{border:1px solid transparent;background:#f8f8f8;border-radius:4px;margin:10px -10px 20px -10px;padding:10px}.o_lectures_teacher_overview .o_lectures_current_wrapper .o_button_group{margin-bottom:0}.o_lectures_teacher_overview .o_lectures_teacher_search .o_form .o_date{padding-right:10px;position:relative}.o_lectures_teacher_overview .o_lectures_teacher_search div.o_chelp_wrapper_and_buttons{position:absolute;top:0;right:0}.o_header_with_buttons .o_day_chooser{position:relative;float:right}.o_lectures_rollcall legend{margin-bottom:10px}.o_lectures_rollcall .o_desc,.o_lectures_rollcall .o_preparation{margin:0}.o_rollcall_next_previous_group{text-align:center}.o_rollcall_next_previous_group a.o_sel_close{float:left}.o_rollcall_next_previous_group a.o_sel_close span{display:none}.o_rollcall_next_previous_group .form-control{display:inline;width:auto}@media (max-width: 767px){.o_rollcall_next_previous_group a span{display:none}}.o_lecture_free{color:#777}.o_rollcall_portrait>div{margin:0 auto 10px auto;width:100px}.o_edubase_pv{overflow:hidden;padding-top:10px}.o_edubase_pv_fig{display:inline-block;vertical-align:top;width:110px;margin-right:3%}.o_edubase_run_enabled .o_edubase_page{font-size:12px;color:#777}.o_edubase_run_disabled .o_edubase_booksection{margin-right:3%;margin-bottom:3%;width:177px;display:inline-table}.o_edubase_run_disabled .o_edubase_page{font-size:12px;color:#777}.o_edubase_bs_buttons{padding-top:10px}.o_edubase_bs_book_id{margin-top:-2px}.o_edubase_bs_details{margin-left:-20px}.o_edubase_bs_details_label{visibility:hidden}.o_edubase_bs_cover object{margin-left:10px;margin-top:10px;height:120px}.o_edubase_bs_cover img{margin-left:10px;margin-top:10px;height:120px}.o_edubase_edit_books .o_icon_error{visibility:hidden}.o_edubase_edit_books .o_icon_help{margin-bottom:0px}.o_edubase_edit_books .row{margin-bottom:5px}.o_edusharing_container.o_in_iframe .edusharing_metadata_wrapper{margin-top:5px}.o_edusharing_container.o_in_iframe .edusharing_metadata.open{position:unset;margin:0;padding:0}.o_edusharing_container.o_in_iframe .edusharing_metadata.open:before{content:unset;border:unset;top:unset;position:unset;left:unset;width:unset;height:unset}.o_edusharing_container.o_hide_license .license{display:none}.o_edusharing_container.o_hide_infos .edusharing_metadata_wrapper{display:none}.o_edusharing_left{display:block;float:left;margin:5px 5px 5px 0}.o_edusharing_right{display:block;float:right;margin:5px 0 5px 5px}.o_edusharing_inline{display:inline-block;margin:0 5px}.o_edusharing_none{display:block;float:none;margin:5px 0}.eduContainer{width:180px;color:transparent}.edusharing_spinner_inner{width:30px;height:50px;display:inline-block}.edusharing_spinner1{background:url("../light/images/edusharing/hex1.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.1s;-moz-animation-delay:0.1s;animation-delay:0.1s}.edusharing_spinner2{background:url("../light/images/edusharing/hex2.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.25s;-moz-animation-delay:0.25s;animation-delay:0.25s}.edusharing_spinner3{background:url("../light/images/edusharing/hex3.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.5s;-moz-animation-delay:0.5s;animation-delay:0.5s}@-webkit-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-moz-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-ms-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-o-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5) rotate(90deg)}100%{transform:scale(1)}}body.o_doceditor_body{margin-bottom:0px}body.o_doceditor_body .o_container_offcanvas{max-width:100%}body.o_doceditor_body .container-fluid{padding-left:0px;padding-right:0px;margin-left:0px;margin-right:0px}body.o_doceditor_body #o_toplink{display:none}.o_doceditor{margin-top:10px}.o_doceditor .o_doceditor_config .nav button{margin-top:3px}.o_doceditor .navbar-collapse{border-top:0 !important}.o_doceditor .navbar-collapse.collapse{display:block !important}.o_doceditor .navbar-nav{margin:0}.o_doceditor .navbar-nav>li,.o_doceditor .navbar-nav{float:left !important}.o_doceditor .navbar-right{float:right !important}.o_doceditor .navbar-nav>li>.dropdown-menu{background-color:#f8f8f8;border-color:#e7e7e7;position:absolute;right:0;left:auto}.o_doceditor .navbar-nav>li>a{padding-top:10px !important;padding-bottom:10px !important;line-height:20px !important}.o_doceditor .o_collabora iframe,.o_doceditor .o_onlyoffice iframe,.o_doceditor .o_office365 iframe{width:100%;height:calc(100vh - 61px);height:calc(var(--doceditorvh, 1vh) * 100 - 61px);margin-top:10px;border-width:0px}.o_doceditor.o_web_document .o_collabora iframe,.o_doceditor.o_web_document .o_onlyoffice iframe,.o_doceditor.o_web_document .o_office365 iframe{width:100%;height:calc(100vh - 321px);height:calc(var(--doceditorvh, 1vh) * 100 - 321px);margin-top:10px;margin-bottom:10px;border-width:1px}.o_doceditor.o_web_document_edit .o_collabora iframe,.o_doceditor.o_web_document_edit .o_onlyoffice iframe,.o_doceditor.o_web_document_edit .o_office365 iframe{width:100%;height:calc(100vh - 276px);height:calc(var(--doceditorvh, 1vh) * 100 - 276px);margin-top:10px;margin-bottom:25px;border-width:1px}.o_doceditor .o_file_editor,.o_doceditor .o_doceditor_data_transfer{margin-right:15px;margin-left:15px}.o_web_content .o_doceditor{margin-top:0px}.o_taxonomy div#o_main_toolbar.o_toolbar{margin-top:0px}.o_taxonomy_listing.o_rendertype_custom .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_taxonomy_listing.o_rendertype_custom .o_taxonomy_row{position:relative;display:inline-block;height:225px;width:450px;vertical-align:top;margin-right:10px}.o_taxonomy_listing.o_rendertype_custom .o_taxonomy_row ul{padding-left:2em}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close span{display:none}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important;float:right}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px;overflow:auto;background:white !important}.ui-dialog .ui-dialog-titlebar{padding:4px 7px 4px 7px;background-color:#eee !important}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui{max-width:100vw;max-height:100vh}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}@media (max-width: 767px){.ui-dialog.o_modal-ui{height:100vh !important;width:100vw !important}.ui-dialog.o_modal-ui div.ui-dialog-content{height:90vh !important}}.ui-slider.ui-slider-horizontal.ui-widget-content{border-color:#aaa;background:#f9f9f9}.ui-slider.ui-slider-horizontal.ui-widget-content.ui-state-disabled{opacity:0.65}.o_has_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:1px solid #337ab7;background-image:none;background-color:#337ab7}.o_no_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:3px solid #337ab7;background-image:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #2e6da4;background:#337ab7;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}.o_richtext_mce_without_path .mce-statusbar{border:none}.o_richtext_mce_without_path .mce-path{display:none !important}.o_richtext_mce_without_path .mce-menubtn.mce-fixed-width span{width:auto}.o_richtext_mce>.o_richtext_mce_modes{text-align:right;padding-right:4px}.o_richtext_mce>.o_richtext_mce_modes a{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}i.mce-ico.mce-i-media,i.mce-ico.mce-i-movie,i.mce-ico.mce-i-help,i.mce-ico.mce-i-gaptext,i.mce-ico.mce-i-gapnumerical,i.mce-ico.mce-i-hottext,i.mce-ico.mce-i-edit{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}i.mce-ico.mce-i-media:before{content:""}i.mce-ico.mce-i-movie:before{content:""}i.mce-ico.mce-i-gaptext:before{content:""}i.mce-ico.mce-i-gapnumerical:before{content:""}i.mce-ico.mce-i-hottext:before{content:""}i.mce-ico.mce-i-math:before{content:'\03A3'}i.mce-ico.mce-i-edit:before{content:""}i.mce-ico.mce-i-help{width:9px;height:9px;padding-top:1px}i.mce-ico.mce-i-help:before{content:"";color:white}.mce-tabs span.o_chelp_wrapper{float:right;margin:5px}.mce-wordcount:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:""}.mce-danger .mce-wordcount:after{color:#d9534f;content:""}.mce-statusbar.mce-danger{background-color:#f2dede}.mce-textbox.mce-danger{border-color:#ce8383;background-color:#f2dede}@media (max-width: 470px){.mce-foot .mce-container-body.mce-abs-layout{left:-337px}}div.o_table_search>span.twitter-typeahead{padding-top:5px}.tag.label.label-info{margin-right:3px}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_segments,.o_table_toolbar,.o_breadcrumb,.o_bookmark,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_container_offcanvas{max-width:100%;margin-left:5px;margin-right:5px}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}.o_print_break_after{clear:both;page-break-after:always}.btn{display:none}.o_form textarea,.o_form .form-control.textarea_disabled{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fff !important;height:auto !important;color:#000 !important;resize:none}#o_comment_form_link,.o_comments form{display:none !important}.o_avatar{display:none}body.o_dmz{background:white !important;-webkit-print-color-adjust:exact;color-adjust:exact}.modal-content{border:0}.modal-header{display:none}.modal-body{padding:0}.modal-dialog{margin:0 !important;width:100% !important;height:100% !important;background:#fff !important;-webkit-print-color-adjust:exact;color-adjust:exact}.progress{page-break-inside:avoid;-webkit-print-color-adjust:exact;color-adjust:exact;background-color:rgba(0,0,0,0.1) !important;border:1px solid rgba(0,0,0,0.5)}.progress-bar{-webkit-print-color-adjust:exact;background-color:#000 !important;border:10px solid #000}.ui-slider.ui-slider-horizontal.ui-widget-content{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f9f9f9 !important}.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{-webkit-print-color-adjust:exact;color-adjust:exact}.o_has_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{background-color:#337ab7 !important}.o_no_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:none !important}.radial-progress{page-break-inside:avoid;-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#eee !important}.radial-progress .circle .mask .fill{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#000 !important}.radial-progress .inset{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#fff !important}.radial-progress .inset .bgIcon{opacity:0.3;transition:opacity 0.3}.radial-progress .inset .bgIcon:before,.radial-progress .inset .o_icon_progress_danger:before,.radial-progress .inset .o_icon_progress_success:before{opacity:0.3;transition:opacity 0.3;color:#777 !important}.radial-progress:not([data-progress="0"]) .inset .bgIcon{opacity:0.3;transition:opacity 0.3;color:#777 !important}body{margin:0;zoom:0.6}table,figure,figure{page-break-inside:avoid}h1,h2,h3,h4,.o_cal .fc-header-title h2,h5,h6{page-break-after:avoid}.o_disclaimer .o_disclaimer_content{max-height:none}}.o_highscore .o_position{text-align:center;font-size:1.2em;font-weight:bold}.o_highscore .o_position h2{font-size:3em;font-weight:700;line-height:1.2em}@media screen and (-webkit-min-device-pixel-ratio: 0){.o_highscore .o_position h2{background:linear-gradient(330deg, #e05252 0%, #99e052 25%, #52e0e0 50%, #9952e0 75%, #e05252 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline}.o_highscore .o_position h2:after{content:"\A";white-space:pre}}.o_highscore .o_position_relative{font-size:1em;font-weight:normal}.o_highscore .o_podium{position:relative;vertical-align:bottom;height:300px;margin-bottom:50px}.o_highscore .o_rank{width:30%;position:absolute;bottom:0;text-shadow:rgba(102,102,102,0.5) 0 -1px 0,rgba(255,255,255,0.6) 0 2px 1px}.o_highscore .o_rank:before{position:absolute;bottom:0;left:0;width:100%;text-align:center}.o_highscore .o_rank .o_name{position:absolute;top:100%;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:1em;text-shadow:none}.o_highscore .o_rank .o_score{color:#777;font-size:90%;width:100%;text-align:center;position:absolute;top:-20px;text-shadow:none}.o_highscore .o_rank .o_singleportrait{position:absolute;width:100%;text-align:center;top:-125px}.o_highscore .o_rank .o_rank_portraits{position:relative;left:0;top:-210px;height:180px;width:200px;text-align:center;vertical-align:bottom;display:table-cell}.o_highscore .o_rank .o_rank_portraits ul{display:inline-block}.o_highscore .o_rank .o_rank_portraits .o_portrait{margin:5px}.o_highscore .o_first{height:150px;left:30%;border:1px solid #d9d9d9;border-top-left-radius:4px;border-top-right-radius:4px;background:gold;background:-moz-linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);background:-webkit-linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);background:linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 )}.o_highscore .o_first:before{content:"1";font-size:700%;line-height:150px;color:#666}.o_highscore .o_second{height:100px;left:0;background:silver;background:-moz-linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);background:-webkit-linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);background:linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 );border-left:1px solid #d9d9d9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;border-top-left-radius:4px}.o_highscore .o_second:before{content:"2";font-size:500%;line-height:100px;color:#666}.o_highscore .o_third{height:80px;left:60%;background:#cd7f32;background:-moz-linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);background:-webkit-linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);background:linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 );border-right:1px solid #d9d9d9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;border-top-right-radius:4px}.o_highscore .o_third:before{content:"3";font-size:300%;line-height:80px;color:#666}.o_highscore .o_histogram{position:relative;bottom:-40px;margin-bottom:40px}.o_highscore .o_histogram .d3chart{width:100%;padding-top:50px;height:300px}.o_highscore .o_histogram .d3chart text{fill:#888}.o_highscore .o_histogram .d3chart .axis path,.o_highscore .o_histogram .d3chart .axis line{stroke:#888}.o_highscore .o_histogram .d3chart .o_myself{fill:#337ab7}.o_highscore .o_histogram .d3chart .o_myself:hover{fill:#5094ce}.o_highscore .o_histogram .d3chart .o_other{fill:#777}.o_highscore .o_histogram .d3chart .o_other:hover{fill:#919191}.o_highscore .o_histogram .d3chart .o_empty{fill:#000}.o_listing .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_listing table th:nth-of-type(1),.o_listing table th :nth-of-type(2){width:5em}
+**//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail,.o_form .o_filepreview img,.o_feed .o_media{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,.o_cal .fc-header-title h2,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,.o_cal .fc-header-title h2 small,h4 .small,.o_cal .fc-header-title h2 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.o_cal .fc-header-title h2,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.o_cal .fc-header-title h2 small,h4 .small,.o_cal .fc-header-title h2 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.o_cal .fc-header-title h2,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff}.bg-primary{background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.428571429;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width: 767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;background-color:#fcfcfc;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#fafafa;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px}input[type="date"].input-sm,.input-group-sm>input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,input[type="time"].input-sm,.input-group-sm>input[type="time"].form-control,.input-group-sm>input[type="time"].input-group-addon,.input-group-sm>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-sm,.input-group-sm>input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].input-group-addon,.input-group-sm>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-sm,.input-group-sm>input[type="month"].form-control,.input-group-sm>input[type="month"].input-group-addon,.input-group-sm>.input-group-btn>input[type="month"].btn{line-height:30px}input[type="date"].input-lg,.input-group-lg>input[type="date"].form-control,.input-group-lg>input[type="date"].input-group-addon,.input-group-lg>.input-group-btn>input[type="date"].btn,input[type="time"].input-lg,.input-group-lg>input[type="time"].form-control,.input-group-lg>input[type="time"].input-group-addon,.input-group-lg>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-lg,.input-group-lg>input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].input-group-addon,.input-group-lg>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-lg,.input-group-lg>input[type="month"].form-control,.input-group-lg>input[type="month"].input-group-addon,.input-group-lg>.input-group-btn>input[type="month"].btn{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"].disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"].disabled,fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,fieldset[disabled] .radio-inline,.checkbox-inline.disabled,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,fieldset[disabled] .radio label,.checkbox.disabled label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn,.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,.form-group-sm .form-control,select[multiple].input-sm,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn,.form-group-sm .form-control{height:auto}.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn,.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,.form-group-lg .form-control,select[multiple].input-lg,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn,.form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label ~ .form-control-feedback{top:25px}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width: 768px){.form-inline .form-group,.o_navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control,.o_navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static,.o_navbar-form .form-control-static{display:inline-block}.form-inline .input-group,.o_navbar-form .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.o_navbar-form .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.o_navbar-form .input-group .input-group-btn,.form-inline .input-group .form-control,.o_navbar-form .input-group .form-control{width:auto}.form-inline .input-group>.form-control,.o_navbar-form .input-group>.form-control{width:100%}.form-inline .control-label,.o_navbar-form .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.o_navbar-form .radio,.form-inline .checkbox,.o_navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.o_navbar-form .radio label,.form-inline .checkbox label,.o_navbar-form .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.o_navbar-form .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"],.o_navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback,.o_navbar-form .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width: 768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width: 768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width: 768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn.focus,.btn:active:focus,.btn:active.focus,.btn.active:focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fcfcfc;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e3e3e3;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#fcfcfc;border-color:#ccc}.btn-default .badge{color:#fcfcfc;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled].active,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fcfcfc;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width: 768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width: 480px) and (orientation: landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (min-width: 768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width: 767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width: 768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm,.btn-group-sm>.navbar-btn.btn{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs,.btn-group-xs>.navbar-btn.btn{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right ~ .navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:hover,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#090909;color:#fff}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:hover,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#337ab7;background-color:#fcfcfc;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fcfcfc;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fcfcfc;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fcfcfc;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.jumbotron,.o_repo_details .o_lead{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{color:inherit}.jumbotron p,.o_repo_details .o_lead p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr,.o_repo_details .o_lead>hr{border-top-color:#d5d5d5}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead,.container-fluid .jumbotron,.container-fluid .o_repo_details .o_lead,.o_repo_details .container-fluid .o_lead{border-radius:6px}.jumbotron .container,.o_repo_details .o_lead .container{max-width:100%}@media screen and (min-width: 768px){.jumbotron,.o_repo_details .o_lead{padding:48px 0}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead,.container-fluid .jumbotron,.container-fluid .o_repo_details .o_lead,.o_repo_details .container-fluid .o_lead{padding-left:60px;padding-right:60px}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4,.alert .o_cal .fc-header-title h2,.o_cal .fc-header-title .alert h2{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fcfcfc;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fcfcfc;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table,.panel-collapse>.table,.panel-collapse>.table-responsive>.table,.panel-collapse>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption,.panel-collapse>.table caption,.panel-collapse>.table-responsive>.table caption,.panel-collapse>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child,.panel-collapse>.table:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child,.panel-collapse>.table:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body,.panel-collapse>.panel-body+.table,.panel-collapse>.panel-body+.table-responsive,.panel-collapse>.table+.panel-body,.panel-collapse>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td,.panel-collapse>.table>tbody:first-child>tr:first-child th,.panel-collapse>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered,.panel-collapse>.table-bordered,.panel-collapse>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive,.panel-collapse>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body div.popover input{max-width:100%}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}.panel-body:nth-child(n+2){border-top:1px solid #ddd}.panel .panel-heading[data-toggle="collapse"]{cursor:pointer}#o_ajax_busy_backdrop{bottom:0;z-index:1020}.form-control-feedback{top:10px}.form-horizontal .has-feedback .form-control-feedback{top:10px}.btn.btn-primary.o_disabled{color:#fff !important}body .progress-bar[aria-valuenow="1"],body .progress-bar[aria-valuenow="2"]{min-width:1px}td.text-left>div.form-inline>label.checkbox-inline>input[type='checkbox'],td.text-left>div.o_navbar-form>label.checkbox-inline>input[type='checkbox']{position:relative}@-moz-document url-prefix(){fieldset{display:table-cell}}@media screen and (max-width: 768px){@supports (-webkit-overflow-scrolling: touch){.form-control,.ui-widget input,.ui-widget select,.ui-widget textarea{font-size:16px}}}@font-face{font-family:'openolat';src:url("../light/fonts/openolat/openolat.eot?4yacgg");src:url("../light/fonts/openolat/openolat.woff") format("woff"),url("../light/fonts/openolat/openolat.ttf") format("truetype"),url("../light/fonts/openolat/openolat.svg") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot");src:url("../../font-awesome/fonts/fontawesome-webfont.woff2") format("woff2"),url("../../font-awesome/fonts/fontawesome-webfont.woff") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.2857142857em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.o_icon-li.o_icon-lg{left:-1.8571428571em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.o_icon-pull-left{float:left}.o_icon-pull-right{float:right}.o_icon.o_icon-pull-left{margin-right:.3em}.o_icon.o_icon-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.o_icon.pull-left{margin-right:.3em}.o_icon.pull-right{margin-left:.3em}.o_icon-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.o_icon-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .o_icon-rotate-90,:root .o_icon-rotate-180,:root .o_icon-rotate-270,:root .o_icon-flip-horizontal,:root .o_icon-flip-vertical{filter:none}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon_absence:before{content:""}.o_icon_absence_authorized:before{content:"";color:#5cb85c}.o_icon_absence_unauthorized:before{content:"";color:#d9534f}.o_icon_accepted:before{content:""}.o_icon_accessibility:before{content:""}.o_icon_actions:before{content:""}.o_icon_add_html:before{content:""}.o_icon_align_left:before{content:""}.o_icon_align_middle:before{content:""}.o_icon_align_right:before{content:""}.o_icon_archive_tool:before{content:""}.o_icon_assessment_mode:before{content:""}.o_icon_assessment_tool:before{content:""}.o_icon_assignment:before{content:"";color:#d9534f}.o_icon_attempt_limit:before{content:""}.o_icon_accept:before{content:"";color:#5cb85c}.o_icon_add:before{content:""}.o_icon_add_member:before{content:""}.o_icon_add_search:before{content:""}.o_icon_audio:before{content:""}.o_icon_back:before{content:""}.o_icon_back_history:before{content:""}.o_icon_banned:before{content:"";color:#d9534f}.o_icon_bold:before{content:""}.o_icon_booking:before{content:""}.o_icon_bookmark:before{content:"";color:#bc2d0c}.o_icon_bookmark_add:before{content:"";color:#bc2d0c}.o_icon_bookmark_header:before{content:""}.o_icon_browse:before{content:""}.o_icon_brush:before{content:""}.o_icon_browsercheck:before{content:""}.o_icon_busy:before{content:""}.o_icon_calendar:before{content:""}.o_icon_calendar_enabled:before{content:""}.o_icon_calendar_disabled:before{content:""}.o_icon_calendar:before{content:""}.o_icon_calendar_sync:before{content:""}.o_icon_cancelled:before{content:""}.o_icon_caret:before{content:""}.o_icon_caret_right:before{content:""}.o_icon_catalog:before{content:""}.o_icon_catalog_sub:before{content:""}.o_icon_certificate:before{content:""}.o_icon_chat:before{content:""}.o_icon_check:before{content:""}.o_icon_check_off:before{content:""}.o_icon_check_on:before{content:""}.o_icon_checkbox:before{content:""}.o_icon_checkbox_checked:before{content:""}.o_icon_circle:before{content:""}.o_icon_circle_color:before{content:""}.o_icon_citation:before{content:""}.o_icon_cleanup:before{content:""}.o_icon_clear_all:before{content:""}.o_icon_close:before{content:""}.o_icon_close_resource:before{content:""}.o_icon_close_tab:before{content:""}.o_icon_close_tool:before{content:""}.o_icon_close_tree:before{content:""}.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before,.o_search_result .o_opener.o_in i:before{content:""}.o_icon_code:before{content:""}.o_icon_color_picker:before{content:""}.o_icon_column:before{content:""}.o_icon_columns:before{content:""}.o_icon_container:before{content:""}.o_icon_copy:before{content:""}.o_icon_courseareas:before{content:""}.o_icon_coursedb:before{content:""}.o_icon_courseeditor:before{content:""}.o_icon_coursefolder:before{content:""}.o_icon_courserun:before{content:""}.o_icon_comments:before{content:""}.o_icon_comments_none:before{content:""}.o_icon_compress:before{content:""}.o_icon_compulsory:before{content:""}.o_icon_content_popup:before{content:""}.o_icon_correct_answer:before{content:"";color:#5cb85c}.o_icon_correct_response:before{content:"";color:#5cb85c}.o_icon_correction:before{content:""}.o_icon_curriculum_element:before{content:""}.o_icon_customize:before{content:""}.o_icon_delete_item:before{content:""}.o_icon_delete:before{content:"";color:#A87E7E}.o_icon_deleted:before{content:""}.o_icon_details:before{content:""}.o_icon_description:before{content:""}.o_icon_dev:before{content:""}.o_icon_disabled:before{content:""}.o_icon_dispensation_authorized:before{content:"";color:#5cb85c}.o_icon_dispensation_unauthorized:before{content:"";color:#f0ad4e}.o_icon_download:before{content:""}.o_icon_edit:before{content:""}.o_icon_edit_file:before{content:""}.o_icon_edit_metadata:before{content:""}.o_icon_element_after:before{content:""}.o_icon_element_before:before{content:""}.o_icon_enabled:before{content:""}.o_icon_enlarge:before{content:""}.o_icon_eportfolio_add:before{content:""}.o_icon_eportfolio_link:before{content:""}.o_icon_eraser:before{content:""}.o_icon_error:before{content:"";color:#d9534f}.o_icon_expand:before{content:""}.o_icon_expenditure:before{content:""}.o_icon_export:before{content:""}.o_icon_external_link:before{content:""}.o_icon_extra_time:before{content:""}.o_icon_failed:before{content:""}.o_icon_files:before{content:""}.o_icon_fileupload:before{content:""}.o_icon_filter:before{content:""}.o_icon_graduate:before{content:""}.o_icon_group:before,.o_BusinessGroup_icon:before{content:""}.o_icon_header:before{content:""}.o_icon_help:before{content:"";cursor:help}.o_icon_home:before{content:""}.o_icon_image:before{content:""}.o_icon_impress:before{content:""}.o_icon_important:before{content:"";color:#f0ad4e}.o_icon_import:before{content:""}.o_icon_incorrect_response:before{content:"";color:#d9534f}.o_icon_info:before{content:"";color:#5bc0de}.o_icon_info_msg:before{content:"";color:#d9534f}.o_icon_info_resource:before{content:""}.o_icon_inheritance_root:before{content:""}.o_icon_inheritance_inherited:before{content:""}.o_icon_inheritance_none:before{content:""}.o_icon_inline_editable:before{content:""}.o_icon_institution:before{content:""}.o_icon_italic:before{content:""}.o_icon_landingpage:before{content:""}.o_icon_language:before{content:""}.o_icon_layout:before{content:""}.o_icon_lecture:before{content:""}.o_icon_left:before{content:""}.o_icon_levels:before{content:""}.o_icon_line:before{content:""}.o_icon_link:before{content:""}.o_icon_link_extern:before{content:""}.o_icon_list:before{content:""}.o_icon_list_num:before{content:""}.o_icon_lifecycle:before{content:""}.o_icon_lifecycle_date:before{content:""}.o_icon_locked:before{content:""}.o_icon_log:before{content:""}.o_icon_login:before{content:""}.o_icon_logout:before{content:""}.o_icon_mandatory:before{content:"";color:#f0ad4e}.o_icon_managed:before{content:"";color:#777}.o_icon_manual:before{content:"";cursor:help}.o_icon_mail:before{content:""}.o_icon_math:before{content:"\03a3"}.o_icon_media:before{content:""}.o_icon_mediacenter:before{content:""}.o_icon_membersmanagement:before{content:""}.o_icon_menuhandel:before{content:""}.o_icon_message:before{content:""}.o_icon_mobile:before{content:""}.o_icon_move:before{content:""}.o_icon_move_down:before{content:""}.o_icon_move_left:before{content:""}.o_icon_move_right:before{content:""}.o_icon_move_up:before{content:""}.o_icon_ms_done:before{content:""}.o_icon_ms_pending:before{content:""}.o_icon_new:before{content:"";color:#5cb85c}.o_icon_new_document:before{content:""}.o_icon_new_folder:before{content:""}.o_icon_new_portfolio:before{content:""}.o_icon_news:before{content:""}.o_icon_next:before{content:""}.o_icon_next_step:before{content:""}.o_icon_next_page:before{content:""}.o_icon_next_toolbar:before{content:""}.o_icon_node_after:before{content:""}.o_icon_node_before:before{content:""}.o_icon_node_under:before{content:""}.o_icon_node_up_down:before{content:""}.o_icon_notes:before{content:""}.o_icon_notice_authorized:before{content:"";color:#5cb85c}.o_icon_notice_unauthorized:before{content:"";color:#f0ad4e}.o_icon_notification:before{content:""}.o_icon_number_of:before{content:""}.o_icon_ok:before{content:"";color:#5cb85c}.o_icon_open_tree:before{content:""}.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before,.o_search_result .o_opener i:before{content:""}.o_icon_openolat:before,.o_icon_provider_olat:before{content:"\E600";font-family:openolat;font-size:10px}.o_icon_options:before{content:""}.o_icon_origin:before{content:""}.o_icon_others:before{content:""}.o_icon_pageing:before{content:""}.o_icon_paragraph:before{content:""}.o_icon_passed:before{content:""}.o_icon_password:before{content:""}.o_icon_pending:before{content:""}.o_icon_phone:before{content:""}.o_icon_post:before{content:""}.o_icon_presence:before{content:""}.o_icon_preview:before{content:""}.o_icon_previous:before{content:""}.o_icon_previous_page:before{content:""}.o_icon_previous_step:before{content:""}.o_icon_previous_toolbar:before{content:""}.o_icon_print:before{content:""}.o_icon_private:before{content:""}.o_icon_progress_success:before{content:"";color:#e5efe5}.o_icon_progress_danger:before{content:"";color:#efe5e5}.o_icon_provider_adfs:before{content:""}.o_icon_provider_facebook:before{content:""}.o_icon_provider_google:before{content:""}.o_icon_provider_guest:before{content:""}.o_icon_provider_ldap:before{content:""}.o_icon_provider_linkedin:before{content:""}.o_icon_provider_oauth:before{content:""}.o_icon_provider_openid:before{content:""}.o_icon_provider_performx:before{content:""}.o_icon_provider_shibboleth:before{content:""}.o_icon_provider_tequila:before{content:""}.o_icon_provider_twitter:before{content:""}.o_icon_publish:before{content:""}.o_icon_pull:before{content:""}.o_icon_quota:before{content:""}.o_icon_qrcode:before{content:""}.o_icon_quickview:before{content:""}.o_icon_radio_off:before{content:""}.o_icon_radio_on:before{content:""}.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:""}.o_icon_rating_off:before{content:""}.o_icon_read:before{content:""}.o_icon_readonly:before{content:"";color:red}.o_icon_readwrite:before{content:""}.o_icon_recycle:before{content:""}.o_icon_rectangle:before{content:""}.o_icon_redo:before{content:""}.o_icon_refresh:before{content:""}.o_icon_reject:before{content:"";color:#d9534f}.o_icon_rejected:before{content:""}.o_icon_reminder:before{content:""}.o_icon_remove:before{content:""}.o_icon_remove_filters:before{content:""}.o_icon_reopen:before{content:""}.o_icon_replace:before{content:""}.o_icon_reply:before{content:""}.o_icon_reply_with_quote:before{content:""}.o_icon_reset:before{content:""}.o_icon_response_feedback:before{content:""}.o_icon_restore:before{content:""}.o_icon_results_visible:before{content:""}.o_icon_results_hidden:before{content:""}.o_icon_reviewer:before{content:""}.o_icon_right:before{content:""}.o_icon_rss:before{content:""}.o_icon_rss_unsubscribe:before{content:"";color:#996633}.o_icon_rubric:before{content:""}.o_icon_rubric_insufficient:before{content:"";color:#d9534f}.o_icon_rubric_sufficient:before{content:"";color:#5cb85c}.o_icon_rubric_neutral:before{content:"";color:#f0ad4e}.o_icon_save:before{content:""}.o_icon_search:before{content:""}.o_icon_select:before{content:""}.o_icon_send:before{content:""}.o_icon_settings:before{content:""}.o_icon_share:before{content:""}.o_icon_show_more:before{content:""}.o_icon_show_less:before{content:""}.o_icon_show_send:before{content:""}.o_icon_shuffle:before{content:""}.o_icon_sign_out:before{content:""}.o_icon_slide_down:before{content:""}.o_icon_slide_up:before{content:""}.o_icon_spacer:before{content:""}.o_icon_split:before{content:""}.o_icon_sort:before{content:""}.o_icon_sort_asc:before{content:""}.o_icon_sort_desc:before{content:""}.o_icon_sort_amount_asc:before{content:""}.o_icon_sort_amount_desc:before{content:""}.o_icon_sort_menu:before{content:""}.o_icon_start:before{content:""}.o_icon_status_available:before{content:"";color:#063}.o_icon_status_chat:before{content:""}.o_icon_status_dnd:before{content:"";color:#cc3}.o_icon_status_unavailable:before{content:"";color:#963}.o_icon_status_not_started:before{content:""}.o_icon_status_in_progress:before{content:""}.o_icon_status_in_review:before{content:""}.o_icon_status_done:before{content:""}.o_icon_statistics_tool:before{content:""}.o_icon_submit:before{content:""}.o_icon_table:before{content:""}.o_icon_table_custom:before{content:""}.o_icon_table_large:before{content:""}.o_icon_tags:before{content:""}.o_icon_textinput:before{content:""}.o_icon_time:before{content:""}.o_icon_timelimit:before{content:""}.o_icon_timelimit_start:before{content:""}.o_icon_timelimit_half:before{content:""}.o_icon_timelimit_end:before{content:""}.o_icon_timetable:before{content:""}.o_icon_toggle:before{content:""}.o_icon_toggle_on:before{content:""}.o_icon_toggle_off:before{content:""}.o_icon_to_read:before{content:""}.o_icon_tool:before{content:""}.o_icon_tool_pdf:before{content:""}.o_icon_tools:before{content:""}.o_icon_top:before{content:""}.o_icon_translation_item:before{content:""}.o_icon_translation_package:before{content:""}.o_icon_unlocked:before{content:""}.o_icon_undo:before{content:""}.o_icon_user:before{content:""}.o_icon_user_vip:before{content:""}.o_icon_user_anonymous:before{content:""}.o_icon_update:before{content:""}.o_icon_upload:before{content:""}.o_icon_version:before{content:""}.o_icon_video:before{content:""}.o_icon_visitingcard.o_icon_waiting:before{content:""}.o_icon_warn:before{content:"";color:#f0ad4e}.o_icon_width_expand:before{content:""}.o_icon_width_collapse:before{content:""}.o_icon_wizard:before{content:""}.o_icon_xing:before{content:"";color:#cfdc00}.o_BinderTemplate_icon:before{content:""}.o_CourseModule_icon:before,.o_course_icon:before{content:""}.o_EPStructuredMapTemplate_icon:before{content:""}.o_FileResource-BLOG_icon:before{content:""}.o_FileResource-IMSCP_icon:before{content:""}.o_FileResource-FORM_icon:before{content:""}.o_FileResource-PODCAST_icon:before{content:""}.o_FileResource-SHAREDFOLDER:before{content:""}.o_FileResource-SCORMCP_icon:before{content:""}.o_FileResource-SURVEY_icon:before{content:""}.o_FileResource-TEST_icon:before{content:""}.o_FileResource-IMSQTI21_icon:before{content:""}.o_FileResource-WIKI_icon:before{content:""}.o_FileResource-SHAREDFOLDER_icon:before{content:""}.o_FileResource-GLOSSARY_icon:before{content:""}.o_FileResource-PDF_icon:before{content:""}.o_FileResource-XLS_icon:before{content:""}.o_FileResource-PPT_icon:before{content:""}.o_FileResource-DOC_icon:before{content:""}.o_FileResource-ANIM_icon:before{content:""}.o_FileResource-IMAGE_icon:before{content:""}.o_FileResource-SOUND_icon:before{content:""}.o_FileResource-MOVIE_icon:before{content:""}.o_FileResource-FILE_icon:before{content:""}.o_FileResource-VIDEO_icon:before{content:""}.o_CourseModule_icon_closed:before{content:""}.o_icon_repo_status_preparation:before{content:""}.o_icon_repo_status_review:before{content:""}.o_icon_repo_status_coachpublished:before{content:""}.o_icon_repo_status_published:before{content:""}.o_icon_repo_status_closed:before{content:""}.o_icon_repo_status_trash:before{content:""}.o_icon_repo_status_deleted:before{content:""}.o_sp_icon:before{content:""}.o_st_icon:before{content:""}.o_tu_icon:before{content:""}.o_bc_icon:before{content:""}.o_lti_icon:before{content:""}.o_cp_icon:before{content:""}.o_cp_item:before{content:""}.o_scorm_icon:before{content:""}.o_en_icon:before{content:""}.o_fo_icon:before{content:""}.o_co_icon:before{content:""}.o_infomsg_icon:before{content:""}.o_cal_icon:before{content:""}.o_wiki_icon:before{content:""}.o_podcast_icon:before{content:""}.o_pf_icon:before{content:""}.o_blog_icon:before{content:""}.o_ep_icon:before{content:""}.o_ep_icon_v1:before{content:""}.o_iqtest_icon:before{content:""}.o_iqself_icon:before{content:""}.o_iqsurv_icon:before{content:""}.o_survey_icon:before{content:""}.o_qtiassessment_icon:before{content:""}.o_ta_icon:before{content:""}.o_gta_icon:before{content:""}.o_ms_icon:before{content:""}.o_dialog_icon:before{content:""}.o_projectbroker_icon:before{content:""}.o_ll_icon:before{content:""}.o_den_icon:before{content:""}.o_cmembers_icon:before{content:""}.o_cl_icon:before{content:""}.o_vc_icon:before{content:""}.o_video_icon:before{content:""}.o_vitero_icon:before{content:""}.o_openmeetings_icon:before{content:""}.o_gotomeeting_icon:before{content:""}.o_card2brain_icon:before{content:"\E800";font-family:openolat;font-size:120%}.o_edubase_icon:before{content:"\E885";font-family:openolat}.o_livestream_icon:before{content:""}.o_portlet_infomsg_icon:before{content:""}.o_portlet_quickstart_icon:before{content:""}.o_portlet_bookmark_icon:before{content:""}.o_portlet_groups_icon:before{content:""}.o_portlet_notes_icon:before{content:""}.o_portlet_noti_icon:before{content:""}.o_portlet_eff_icon:before{content:""}.o_portlet_repository_student_icon:before{content:""}.o_portlet_repository_teacher_icon:before{content:""}.o_portlet_iframe_icon:before{content:""}.o_portlet_sysinfo_icon:before{content:""}.o_portlet_dyk_icon:before{content:""}.o_portlet_infomessages_icon:before{content:""}.o_portlet_cal_icon:before{content:""}.o_portlet_institutions_icon:before{content:""}.o_portlet_links_icon:before{content:""}.o_portlet_shibboleth_icon:before{content:""}.o_icon_qpool:before{content:""}.o_icon_pool_private:before{content:""}.o_icon_pool_public:before{content:""}.o_icon_pool_my_items:before{content:""}.o_icon_pool_favorits:before{content:""}.o_icon_pool_collection:before{content:""}.o_icon_pool_pool:before{content:""}.o_icon_pool_share:before{content:""}.o_icon_qitem_commands:before{content:""}.o_icon_qitem_convert:before{content:""}.o_icon_qitem_copy:before{content:""}.o_icon_qitem_delete:before{content:""}.o_icon_qitem_draft:before{content:""}.o_icon_qitem_endOfLife:before{content:""}.o_icon_qitem_finalVersion:before{content:""}.o_icon_qitem_export:before{content:""}.o_icon_qitem_hide_metadata:before{content:""}.o_icon_qitem_import:before{content:""}.o_icon_qitem_new:before{content:""}.o_icon_qitem_review:before{content:""}.o_icon_qitem_revised:before{content:""}.o_icon_qitem_share:before{content:""}.o_icon_qitem_show_metadata:before{content:""}.o_icon_qitem_status:before{content:""}.o_forum_message_icon:before{content:""}.o_calendar_icon:before{content:""}.o_icon_pf_section_draft:before{content:"";color:#f0ad4e}.o_icon_pf_section_progress:before{content:"";color:#f0ad4e}.o_icon_pf_section_submitted:before{content:"";color:#337ab7}.o_icon_pf_section_closed:before{content:"";color:#5cb85c}.o_icon_pf_binder:before{content:""}.o_icon_pf_entry:before{content:""}.o_icon_pf_entry_draft:before{content:"";color:#f0ad4e}.o_icon_pf_entry_published:before{content:"";color:#337ab7}.o_icon_pf_entry_revision:before{content:"";color:#d9534f}.o_icon_pf_entry_closed:before{content:"";color:#5cb85c}.o_icon_pf_entry_deleted:before{content:"";color:#000}.o_icon_pf_history:before{content:""}.o_icon_pf_my_shares:before{content:""}.o_icon_pf_new_entry:before{content:""}.o_icon_pf_quick_links:before{content:""}.o_icon_pf_page:before{content:""}.o_icon_pf_section:before{content:""}.o_icon_pf_shared_with_me:before{content:""}.o_icon_pf_trash:before{content:""}.o_forum_status_thread_icon:before{content:""}.o_forum_status_sticky_closed_icon:before{content:""}.o_forum_status_sticky_icon:before{content:""}.o_forum_status_closed_icon:before{content:"";color:#a94442}.o_forum_status_opened_icon:before{content:"";color:#3c763d}.o_forum_status_hidden_icon:before{content:"";color:#a94442}.o_forum_status_visible_icon:before{content:"";color:#3c763d}.o_forum_all_icon:before{content:""}.o_forum_all_flat_icon:before{content:""}.o_forum_one_icon:before{content:""}.o_forum_marked_icon:before{content:""}.o_forum_new_icon:before{content:""}.o_mi_qpool_import:before{content:""}.o_mi_qtidrawing:before{content:""}.o_mi_qtisection:before{content:""}.o_mi_qtisc:before{content:""}.o_mi_qtimatch:before{content:""}.o_mi_qtimatch_draganddrop:before{content:""}.o_mi_qtimatch_truefalse:before{content:""}.o_mi_qtimc:before{content:""}.o_mi_qtikprim:before{content:""}.o_mi_qtifib:before{content:""}.o_mi_qtinumerical:before{content:""}.o_mi_qtihotspot:before{content:""}.o_mi_qtihottext:before{content:""}.o_mi_qtiessay:before{content:""}.o_mi_qtiunkown:before{content:""}.o_mi_qtiupload:before{content:""}.o_as_mode_leadtime:before{content:""}.o_as_mode_assessment:before{content:""}.o_as_mode_followup:before{content:""}.o_as_mode_closed:before{content:'-'}.o_as_mode_stop:before{content:""}.o_icon_qti_notPresented:before{content:"";color:#ddd}.o_icon_qti_notAnswered:before{content:"";color:#f0ad4e}.o_icon_qti_answered:before{content:"";color:#5cb85c}.o_icon_qti_ended:before{content:"";color:#5bc0de}.o_icon_qti_invalid:before{content:"";color:#d9534f}.o_icon_qti_review:before{content:"";color:#5bc0de}.o_icon_qti_reviewNotSeen:before,.o_icon_qti_reviewNotAnswered:before,.o_icon_qti_reviewInvalid:before{content:"";color:#5bc0de}.o_icon_qti_end_testpart:before{content:""}.o_icon_qti_close_test:before{content:""}.o_icon_qti_cancel:before{content:""}.o_icon_qti_suspend:before{content:""}.o_icon_qti_close_results:before{content:""}.o_icon_qti_hint:before{content:""}.o_icon_qti_summary_notAnswered:before{content:"";color:#f0ad4e}.o_icon_qti_summary_ended:before{content:"";color:#d9534f}.o_icon_qti_summary_correct:before{content:"";color:#5cb85c}.o_lectures_current:before{content:"";color:#f0ad4e}.o_lectures_next:before{content:""}.o_lectures_pending:before{content:"";color:#d9534f}.o_lectures_closed:before{content:""}.o_lectures_rollcall_ok:before{content:"";color:#5cb85c}.o_lectures_rollcall_warning:before{content:"";color:#f0ad4e}.o_lectures_rollcall_danger:before{content:"";color:#d9534f}.o_lectures_rollcall_free:before{content:"";color:#969696}.o_lectures_rollcall_notice:before{content:"";color:#969696}.o_lectures_rollcall_pending:before{content:"";color:#b8b8b8}.o_lectures_attended:before{content:"";color:#5cb85c}.o_lectures_authorized:before{content:"";color:#f0ad4e}.o_lectures_absent:before{content:"";color:#d9534f}.o_absences_col_warning:before{content:""}.o_absences_col_alert:before{content:""}.o_icon_taxonomy:before{content:""}.o_icon_taxonomy_level:before{content:""}.o_icon_taxonomy_level_leaf:before{content:""}.o_icon_taxonomy_templates:before{content:""}.o_icon_taxonomy_levels:before{content:""}.o_black_led:before{content:"";color:#337ab7}.o_green_led:before{content:"";color:#5cb85c}.o_yellow_led:before{content:"";color:#f0ad4e}.o_red_led:before{content:"";color:#d9534f}.o_icon_identity_permanent:before{content:""}.o_icon_identity_pending:before{content:""}.o_icon_identity_login_denied:before{content:""}.o_icon_identity_deleted:before{content:""}.o_ac_token_icon:before{content:""}.o_ac_free_icon:before{content:""}.o_ac_group_icon:before{content:""}.o_ac_membersonly_icon:before{content:""}.o_ac_guests_icon:before{content:""}.o_ac_paypal_icon:before{content:""}.o_ac_status_canceled_icon:before{content:"";color:#f0ad4e}.o_ac_status_error_icon:before{content:"";color:#d9534f}.o_ac_status_new_icon:before{content:"";color:#337ab7}.o_ac_status_success_icon:before{content:"";color:#5cb85c}.o_ac_status_waiting_icon:before{content:"";color:#337ab7}.o_ac_order_status_new_icon:before{content:"";color:#337ab7}.o_ac_order_status_prepayment_icon:before{content:"";color:#5bc0de}.o_ac_order_status_payed_icon:before{content:"";color:#5cb85c}.o_ac_order_status_canceled_icon:before{content:"";color:#f0ad4e}.o_ac_order_status_error_icon:before{content:"";color:#d9534f}.o_ac_order_status_warning_icon:before{content:"";color:#f0ad4e}.o_scorm_org:before{content:""}.o_scorm_item:before{content:""}.o_scorm_completed:before,.o_scorm_passed:before{content:""}.o_scorm_failed:before{content:""}.o_scorm_incomplete:before{content:""}.o_scorm_not_attempted:before{background:none}.o_midpub:before{content:""}.o_midwarn:before{content:""}.o_midlock:before{content:""}.o_miderr:before{content:""}.o_middel:before{content:""}.o_filetype_file:before,.o_filetype_ico:before{content:""}.o_filetype_folder:before{content:""}.o_filetype_folder_open:before{content:""}.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:""}.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before{content:""}.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:""}.o_filetype_xls:before,.o_filetype_xlsx:before{content:""}.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:""}.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:""}.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:""}.o_filetype_ps:before,.o_filetype_pdf:before{content:""}.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:""}.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before{content:""}.o_filetype_odt:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:""}.o_icon_share_social:before{content:""}.o_icon_apple:before{content:""}.o_icon_facebook:before{content:""}.o_icon_twitter:before{content:""}.o_icon_google:before{content:""}.o_icon_delicious:before{content:""}.o_icon_digg:before{content:""}.o_icon_mailto:before{content:""}.o_icon_link:before{content:""}.o_icon_yahoo:before{content:""}.o_icon_eva_disclaimer:before{content:""}.o_icon_eva_end_show:before{content:""}.o_icon_eva_end_hide:before{content:""}.o_icon_eva_export:before{content:""}.o_icon_eva_pdf:before{content:""}.o_icon_eva_print:before{content:""}.o_icon_eva_session_info:before{content:""}.o_icon_eva_mc:before{content:""}.o_icon_eva_sc:before{content:""}.o_icon_eva_sc:before{content:""}.o_icon_surv_reset:before{content:""}.o_icon_qual_ana_hide_filter:before{content:""}.o_icon_qual_ana_pres_edit:before{content:""}.o_icon_qual_ana_export:before{content:""}.o_icon_qual_ana_pres_delete:before{content:""}.o_icon_qual_ana_pdf:before{content:""}.o_icon_qual_ana_print:before{content:""}.o_icon_qual_ana_show_filter:before{content:""}.o_icon_qual_ana_trend:before{content:""}.o_icon_qual_ana_trend_arrow:before{content:""}.o_icon_qual_dc_create:before{content:""}.o_icon_qual_dc_delete:before{content:""}.o_icon_qual_dc_finished:before{content:""}.o_icon_qual_dc_preparation:before{content:""}.o_icon_qual_dc_ready:before{content:""}.o_icon_qual_dc_running:before{content:""}.o_icon_qual_exec_future:before{content:""}.o_icon_qual_exec_over:before{content:""}.o_icon_qual_exec_participating:before{content:""}.o_icon_qual_exec_participated:before{content:""}.o_icon_qual_exec_ready:before{content:""}.o_icon_qual_gen_ce_add:before{content:""}.o_icon_qual_gen_create:before{content:""}.o_icon_qual_gen_delete:before{content:""}.o_icon_qual_gen_disabled:before{content:""}.o_icon_qual_gen_enabled:before{content:""}.o_icon_qual_gen_re_add:before{content:""}.o_icon_qual_part_user_add:before{content:""}.o_icon_qual_part_user_add_course:before{content:""}.o_icon_qual_part_user_add_curele:before{content:""}.o_icon_qual_part_execute:before{content:""}.o_icon_lic_add:before{content:""}.o_icon_lic_public_domain:before{content:"\E810";font-family:openolat;font-size:120%}.o_icon_lic_cc0:before{content:"\E811";font-family:openolat;font-size:120%}.o_icon_lic_by:before{content:"\E812";font-family:openolat;font-size:120%}.o_icon_lic_by_sa:before{content:"\E813";font-family:openolat;font-size:120%}.o_icon_lic_by_nd:before{content:"\E814";font-family:openolat;font-size:120%}.o_icon_lic_by_nc:before{content:"\E815";font-family:openolat;font-size:120%}.o_icon_lic_by_nc_sa:before{content:"\E817";font-family:openolat;font-size:120%}.o_icon_lic_by_nc_nd:before{content:"\E819";font-family:openolat;font-size:120%}.o_icon_lic_all_rights_reserved:before{content:""}.o_icon_lic_freetext:before{content:""}.o_icon_lic_general:before{content:""}.o_icon_lic_youtube:before{content:""}a.o_icon:hover,a.o_icon:focus{text-decoration:none}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}.o_block_bottom,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry,.o_header_with_buttons,.o_search_result{margin-bottom:1em}.o_block_top,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_small_bottom,.o_block_small{margin-bottom:0.5em}.o_block_small_top,.o_block_small{margin-top:0.5em}.o_block_large_bottom,.o_block_large,.o_block_with_datecomp,.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left,.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right,.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle,.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill,.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file,.o_pf_content .o_forum,.gu-mirror .o_forum,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_wiki,.o_login .o_login_footer_wrapper,.o_portlet{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_block_with_datecomp,.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left,.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right,.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle,.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill,.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file,.o_pf_content .o_forum,.gu-mirror .o_forum,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_wiki,.o_login .o_login_footer_wrapper,.o_portlet{margin-top:2em}.o_block_move_up{margin-top:-1em}.o_block_move_up_small{margin-top:-0.5em}.o_block_move_up_large{margin-top:-2em}.o_block_inline,.o_block_inline_left,.o_block_inline_both,.o_block_inline_right{display:inline-block;vertical-align:top}.o_block_inline_left,.o_block_inline_both{margin-left:0.5em}.o_block_inline_right,.o_block_inline_both{margin-right:0.5em}.o_block_centered_wrapper{display:table;width:100%;height:100%}.o_block_centered_content{display:table-cell;vertical-align:middle;text-align:center}.o_block_imagebg{background-repeat:no-repeat;background-position:center;background-size:cover}.o_block_imagebg span{padding:2px;background-color:rgba(255,255,255,0.8)}.o_block_imagebg h1,.o_block_imagebg h2,.o_block_imagebg h3,.o_block_imagebg h4,.o_block_imagebg .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_block_imagebg h2,.o_block_imagebg h5,.o_block_imagebg p{padding:2px;background-color:rgba(255,255,255,0.8);display:inline-block}.o_block_imagebg h1:after,.o_block_imagebg h2:after,.o_block_imagebg h3:after,.o_block_imagebg h4:after,.o_block_imagebg .o_cal .fc-header-title h2:after,.o_cal .fc-header-title .o_block_imagebg h2:after,.o_block_imagebg h5:after,.o_block_imagebg p:after{content:' ';display:block}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h2,.o_header_with_buttons h3,.o_header_with_buttons h4,.o_header_with_buttons .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_header_with_buttons h2,.o_header_with_buttons h5,.o_header_with_buttons h6{display:inline-block}.o_header_with_buttons .o_button_group{margin-bottom:0;float:right}.o_header_with_buttons h1+.o_button_group{margin-top:28px}.o_header_with_buttons h2+.o_button_group{margin-top:24px}.o_header_with_buttons h3+.o_button_group{margin-top:20px}.o_header_with_buttons h4+.o_button_group,.o_header_with_buttons .o_cal .fc-header-title h2+.o_button_group,.o_cal .fc-header-title .o_header_with_buttons h2+.o_button_group{margin-top:10px}.o_header_with_buttons h5+.o_button_group{margin-top:6.6666666667px}.o_header_with_buttons h6+.o_button_group{margin-top:5px}#o_main_center .o_header_with_buttons h2+.o_button_group{margin-top:0}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_button_textstyle:before{content:'['}.o_button_textstyle:after{content:']'}.panel-imagebg{background-repeat:no-repeat;background-position:center;background-size:cover}.panel-imagebg.panel-default>.panel-heading{background-color:rgba(255,255,255,0.8);border-bottom:transparent}.panel-imagebg .panel-body span{padding:2px;background-color:rgba(255,255,255,0.8)}.panel-placeholder{border-width:2px;border-style:dashed;border-color:#ccc;border-radius:10px;background-color:#fcfcfc}.panel-placeholder .panel-body{padding:10px}.panel-placeholder .panel-body:nth-child(n+2){border-top:none}.panel-placeholder .panel-body h3:nth-child(1),.panel-placeholder .panel-body h4:nth-child(1),.panel-placeholder .panel-body .o_cal .fc-header-title h2:nth-child(1),.o_cal .fc-header-title .panel-placeholder .panel-body h2:nth-child(1),.panel-placeholder .panel-body h5:nth-child(1){margin-top:0}.panel-placeholder .panel-body .o_button_group{margin-bottom:0}.panel-placeholder .panel-heading{border-top-right-radius:8px;border-top-left-radius:8px;border-width:2px;border-style:dashed;border-color:#ccc;border-top:none;border-left:none;border-right:none;color:#888;font-weight:bold}.panel-placeholder .panel-footer{border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-width:2px;border-style:dashed;border-color:#ccc;border-bottom:none;border-left:none;border-right:none}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:11px}.o_small,.b_small,p.b_small,div.b_small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o_comment,.o_bc_meta,.tooltip,.o_htmleditor .o_metadata .o_lastmodified,.o_noti,.o_block_with_datecomp .o_meta,.o_togglebox_wrapper div.o_togglebox_content .o_hide,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label,.o_course_run .o_toc .o_entry,.o_assessment_test_results .o_qti_to_overview{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:20px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_highlight_on_hover:hover{background-color:#f5f5f5}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,#o_main_wrapper #o_toplink:hover,#o_footer_powered a:hover,#o_share a:hover,#o_share_social_container a:hover,.o_toolbar .o_tools_container a:hover,.o_button_toggle:hover,.o_im_message_group .o_im_from:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:hover,.o_login .o_login_register:hover,.o_disabled:focus,.b_disabled:focus,#o_main_wrapper #o_toplink:focus,#o_footer_powered a:focus,#o_share a:focus,#o_share_social_container a:focus,.o_toolbar .o_tools_container a:focus,.o_button_toggle:focus,.o_im_message_group .o_im_from:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:focus,.o_login .o_login_register:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}.o_copy_code input,.o_copy_code textarea,.b_copy_code input,code input,pre input,.b_copy_code textarea,code textarea,pre textarea{border:0;width:90%;background:transparent}.o_nowrap,.b_copy_code,p.b_copy_code,div.b_copy_code,code{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o_titled_wrapper .o_content{margin-top:20px}.o_video,.o_video video,.b_video,.o_video_wrapper{display:inline-block;max-width:100%;height:auto;max-width:100%}.o_image,.o_image img,img,.b_image{display:inline-block;max-width:100%;height:auto;max-width:100%}.o_figure_caption_bottom{display:inline-block;min-width:50%}.o_figure_caption_bottom figure{display:table}.o_image_vertical_center_helper{display:inline-block;height:100%;vertical-align:middle}.o_image_vertical_center_helper+.o_image img{vertical-align:middle}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_page_margins{padding:25px}.o_dragable,.o_page_fragment_edit .o_page_tools_dd:before,.o_page_drop{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.o_dragable:active,.o_page_fragment_edit .o_page_tools_dd:active:before,.o_page_drop:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_draging,.gu-mirror{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_draging:active,.gu-mirror:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_hidden{visibility:hidden}h1{color:#337ab7}h2{color:#337ab7}h3{color:#337ab7}h4,.o_cal .fc-header-title h2{color:#337ab7}h5{color:#337ab7}h5{color:#337ab7}fieldset legend{color:#333}.o_user_content_block a{color:#337ab7;text-decoration:none}.o_user_content_block a:hover,.o_user_content_block a:focus{color:#23527c;text-decoration:underline}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{line-height:1.428571429;vertical-align:top}table.b_default td,table.b_default th{padding:8px;vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:8px;border:1px solid #777}table.b_grid thead td,table.b_grid th{background:#eee;font-weight:bold}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:8px;border:1px solid #777}table.b_border thead td,table.b_border th{background:#eee;font-weight:bold}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:8px;border:0 !important}table.b_borderless thead td,table.b_borderless th{font-weight:bold}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}table.b_gray{border-collapse:collapse}table.b_gray td,table.b_gray th{padding:8px;background:#eee;border:1px solid #fbfbfb}table.b_gray thead td,table.b_gray th{background:#d5d5d5;font-weight:bold}table.b_gray tbody tr:nth-child(even) td{background:#fbfbfb;border:1px solid #eee}table.b_gray.b_no_stripes tbody tr:nth-child(even) td{background:#eee;border:1px solid #fbfbfb}@media print{table.b_gray td,table.b_gray th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eee !important}table.b_gray thead td,table.b_gray th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#d5d5d5 !important}table.b_gray tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fbfbfb !important}}table.b_blue{border-collapse:collapse}table.b_blue td,table.b_blue th{padding:8px;background:#d9edf7;border:1px solid #eef7fb}table.b_blue thead td,table.b_blue th{background:#afd9ee;font-weight:bold}table.b_blue tbody tr:nth-child(even) td{background:#eef7fb;border:1px solid #d9edf7}table.b_blue.b_no_stripes tbody tr:nth-child(even) td{background:#d9edf7;border:1px solid #eef7fb}@media print{table.b_blue td,table.b_blue th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#d9edf7 !important}table.b_blue thead td,table.b_blue th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#afd9ee !important}table.b_blue tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eef7fb !important}}table.b_green{border-collapse:collapse}table.b_green td,table.b_green th{padding:8px;background:#dff0d8;border:1px solid #eef7ea}table.b_green thead td,table.b_green th{background:#c1e2b3;font-weight:bold}table.b_green tbody tr:nth-child(even) td{background:#eef7ea;border:1px solid #dff0d8}table.b_green.b_no_stripes tbody tr:nth-child(even) td{background:#dff0d8;border:1px solid #eef7ea}@media print{table.b_green td,table.b_green th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#dff0d8 !important}table.b_green thead td,table.b_green th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#c1e2b3 !important}table.b_green tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eef7ea !important}}table.b_yellow{border-collapse:collapse}table.b_yellow td,table.b_yellow th{padding:8px;background:#fcf8e3;border:1px solid #fefefa}table.b_yellow thead td,table.b_yellow th{background:#f7ecb5;font-weight:bold}table.b_yellow tbody tr:nth-child(even) td{background:#fefefa;border:1px solid #fcf8e3}table.b_yellow.b_no_stripes tbody tr:nth-child(even) td{background:#fcf8e3;border:1px solid #fefefa}@media print{table.b_yellow td,table.b_yellow th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fcf8e3 !important}table.b_yellow thead td,table.b_yellow th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f7ecb5 !important}table.b_yellow tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fefefa !important}}table.b_red{border-collapse:collapse}table.b_red td,table.b_red th{padding:8px;background:#f2dede;border:1px solid #f9f0f0}table.b_red thead td,table.b_red th{background:#e4b9b9;font-weight:bold}table.b_red tbody tr:nth-child(even) td{background:#f9f0f0;border:1px solid #f2dede}table.b_red.b_no_stripes tbody tr:nth-child(even) td{background:#f2dede;border:1px solid #f9f0f0}@media print{table.b_red td,table.b_red th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f2dede !important}table.b_red thead td,table.b_red th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#e4b9b9 !important}table.b_red tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f9f0f0 !important}}table.a_responsive{width:auto !important}@media (max-width: 768px){.a_responsive td{display:block}}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#337ab7}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}a.b_link_mailto{color:#337ab7}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}a.b_link_forward{color:#337ab7}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_float_left_clear_nomargin{float:left;display:block;margin:0 0 0 0}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}p.b_figure_title{margin:20px 0 5px 0;font-size:85%;font-family:inherit}p.b_figure_caption{clear:both;margin:5px 0 20px 0}caption,figcaption,.o_caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left;font-style:italic}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}figure.align-left{float:left}figure.align-right{float:right}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}img.align-left{float:left}img.align-right{float:right}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}figure.image.align-center{display:block;text-align:center}figure.image.align-left{float:none;display:block;text-align:left}figure.image.align-left figcaption{text-align:left}figure.image.align-right{float:none;display:block;text-align:right}figure.image.align-right figcaption{text-align:right}figure.image{margin:2em 0 2em 0;border:0;background:none}figure.image img.b_float_left,figure.image img.b_float_left_clear,figure.image img.b_float_right,figure.image img.b_float_right_clear,figure.image img.b_float_left_clear_nomargin,figure.image img.b_centered{float:none;display:inline-block;margin:0}figure.image figcaption{font-size:90%;font-style:italic}.radial-progress{margin:10px;width:120px;height:120px;background-color:#eee;border-radius:50%;display:inline-block;position:relative}.radial-progress .circle .mask,.radial-progress .circle .fill,.radial-progress .circle .shadow{width:100%;height:100%;position:absolute;border-radius:50%}.radial-progress .circle .shadow{box-shadow:none inset}.radial-progress .circle .mask,.radial-progress .circle .fill{-webkit-backface-visibility:hidden;transition:-webkit-transform 1s;transition:-ms-transform 1s;transition:transform 1s;border-radius:50%}.radial-progress .circle .mask{clip:rect(0px, 120px, 120px, 60px)}.radial-progress .circle .mask .fill{clip:rect(0px, 60px, 120px, 0px);background-color:#337ab7}.radial-progress .inset{width:90px;height:90px;position:absolute;border-radius:50%;margin-left:15px;margin-top:15px;overflow:hidden;background-color:#fff;box-shadow:none;font-size:21.6px}.radial-progress .inset .bgIcon{position:absolute;font-size:80px;top:5px;left:-5px;opacity:0;transition:opacity 0;transition-delay:1s}.radial-progress .inset .percentage{height:80%;width:80%;position:absolute;top:10%;left:10%;display:table;line-height:1}.radial-progress .inset .percentage .centeredWrapper{display:table-cell;vertical-align:middle;text-align:center}.radial-progress .inset .percentage .centeredWrapper .number{font-weight:800;color:#337ab7}.radial-progress .inset .percentage .centeredWrapper .addon{color:#777;margin-top:5px}.radial-progress .inset .percentage .centeredWrapper .addon div:nth-of-type(1){font-size:0.55em;font-weight:bold}.radial-progress .inset .percentage .centeredWrapper .addon div:nth-of-type(2){margin-top:2px;font-size:0.45em}.radial-progress[data-progress="0"] .circle .mask.full,.radial-progress[data-progress="0"] .circle .fill{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.radial-progress[data-progress="0"] .circle .fill.fix{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.radial-progress[data-progress="1"] .circle .mask.full,.radial-progress[data-progress="1"] .circle .fill{-webkit-transform:rotate(1.8deg);-ms-transform:rotate(1.8deg);transform:rotate(1.8deg)}.radial-progress[data-progress="1"] .circle .fill.fix{-webkit-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);transform:rotate(3.6deg)}.radial-progress[data-progress="2"] .circle .mask.full,.radial-progress[data-progress="2"] .circle .fill{-webkit-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);transform:rotate(3.6deg)}.radial-progress[data-progress="2"] .circle .fill.fix{-webkit-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);transform:rotate(7.2deg)}.radial-progress[data-progress="3"] .circle .mask.full,.radial-progress[data-progress="3"] .circle .fill{-webkit-transform:rotate(5.4deg);-ms-transform:rotate(5.4deg);transform:rotate(5.4deg)}.radial-progress[data-progress="3"] .circle .fill.fix{-webkit-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);transform:rotate(10.8deg)}.radial-progress[data-progress="4"] .circle .mask.full,.radial-progress[data-progress="4"] .circle .fill{-webkit-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);transform:rotate(7.2deg)}.radial-progress[data-progress="4"] .circle .fill.fix{-webkit-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);transform:rotate(14.4deg)}.radial-progress[data-progress="5"] .circle .mask.full,.radial-progress[data-progress="5"] .circle .fill{-webkit-transform:rotate(9deg);-ms-transform:rotate(9deg);transform:rotate(9deg)}.radial-progress[data-progress="5"] .circle .fill.fix{-webkit-transform:rotate(18deg);-ms-transform:rotate(18deg);transform:rotate(18deg)}.radial-progress[data-progress="6"] .circle .mask.full,.radial-progress[data-progress="6"] .circle .fill{-webkit-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);transform:rotate(10.8deg)}.radial-progress[data-progress="6"] .circle .fill.fix{-webkit-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);transform:rotate(21.6deg)}.radial-progress[data-progress="7"] .circle .mask.full,.radial-progress[data-progress="7"] .circle .fill{-webkit-transform:rotate(12.6deg);-ms-transform:rotate(12.6deg);transform:rotate(12.6deg)}.radial-progress[data-progress="7"] .circle .fill.fix{-webkit-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);transform:rotate(25.2deg)}.radial-progress[data-progress="8"] .circle .mask.full,.radial-progress[data-progress="8"] .circle .fill{-webkit-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);transform:rotate(14.4deg)}.radial-progress[data-progress="8"] .circle .fill.fix{-webkit-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);transform:rotate(28.8deg)}.radial-progress[data-progress="9"] .circle .mask.full,.radial-progress[data-progress="9"] .circle .fill{-webkit-transform:rotate(16.2deg);-ms-transform:rotate(16.2deg);transform:rotate(16.2deg)}.radial-progress[data-progress="9"] .circle .fill.fix{-webkit-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);transform:rotate(32.4deg)}.radial-progress[data-progress="10"] .circle .mask.full,.radial-progress[data-progress="10"] .circle .fill{-webkit-transform:rotate(18deg);-ms-transform:rotate(18deg);transform:rotate(18deg)}.radial-progress[data-progress="10"] .circle .fill.fix{-webkit-transform:rotate(36deg);-ms-transform:rotate(36deg);transform:rotate(36deg)}.radial-progress[data-progress="11"] .circle .mask.full,.radial-progress[data-progress="11"] .circle .fill{-webkit-transform:rotate(19.8deg);-ms-transform:rotate(19.8deg);transform:rotate(19.8deg)}.radial-progress[data-progress="11"] .circle .fill.fix{-webkit-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);transform:rotate(39.6deg)}.radial-progress[data-progress="12"] .circle .mask.full,.radial-progress[data-progress="12"] .circle .fill{-webkit-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);transform:rotate(21.6deg)}.radial-progress[data-progress="12"] .circle .fill.fix{-webkit-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);transform:rotate(43.2deg)}.radial-progress[data-progress="13"] .circle .mask.full,.radial-progress[data-progress="13"] .circle .fill{-webkit-transform:rotate(23.4deg);-ms-transform:rotate(23.4deg);transform:rotate(23.4deg)}.radial-progress[data-progress="13"] .circle .fill.fix{-webkit-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);transform:rotate(46.8deg)}.radial-progress[data-progress="14"] .circle .mask.full,.radial-progress[data-progress="14"] .circle .fill{-webkit-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);transform:rotate(25.2deg)}.radial-progress[data-progress="14"] .circle .fill.fix{-webkit-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);transform:rotate(50.4deg)}.radial-progress[data-progress="15"] .circle .mask.full,.radial-progress[data-progress="15"] .circle .fill{-webkit-transform:rotate(27deg);-ms-transform:rotate(27deg);transform:rotate(27deg)}.radial-progress[data-progress="15"] .circle .fill.fix{-webkit-transform:rotate(54deg);-ms-transform:rotate(54deg);transform:rotate(54deg)}.radial-progress[data-progress="16"] .circle .mask.full,.radial-progress[data-progress="16"] .circle .fill{-webkit-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);transform:rotate(28.8deg)}.radial-progress[data-progress="16"] .circle .fill.fix{-webkit-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);transform:rotate(57.6deg)}.radial-progress[data-progress="17"] .circle .mask.full,.radial-progress[data-progress="17"] .circle .fill{-webkit-transform:rotate(30.6deg);-ms-transform:rotate(30.6deg);transform:rotate(30.6deg)}.radial-progress[data-progress="17"] .circle .fill.fix{-webkit-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);transform:rotate(61.2deg)}.radial-progress[data-progress="18"] .circle .mask.full,.radial-progress[data-progress="18"] .circle .fill{-webkit-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);transform:rotate(32.4deg)}.radial-progress[data-progress="18"] .circle .fill.fix{-webkit-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);transform:rotate(64.8deg)}.radial-progress[data-progress="19"] .circle .mask.full,.radial-progress[data-progress="19"] .circle .fill{-webkit-transform:rotate(34.2deg);-ms-transform:rotate(34.2deg);transform:rotate(34.2deg)}.radial-progress[data-progress="19"] .circle .fill.fix{-webkit-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);transform:rotate(68.4deg)}.radial-progress[data-progress="20"] .circle .mask.full,.radial-progress[data-progress="20"] .circle .fill{-webkit-transform:rotate(36deg);-ms-transform:rotate(36deg);transform:rotate(36deg)}.radial-progress[data-progress="20"] .circle .fill.fix{-webkit-transform:rotate(72deg);-ms-transform:rotate(72deg);transform:rotate(72deg)}.radial-progress[data-progress="21"] .circle .mask.full,.radial-progress[data-progress="21"] .circle .fill{-webkit-transform:rotate(37.8deg);-ms-transform:rotate(37.8deg);transform:rotate(37.8deg)}.radial-progress[data-progress="21"] .circle .fill.fix{-webkit-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);transform:rotate(75.6deg)}.radial-progress[data-progress="22"] .circle .mask.full,.radial-progress[data-progress="22"] .circle .fill{-webkit-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);transform:rotate(39.6deg)}.radial-progress[data-progress="22"] .circle .fill.fix{-webkit-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);transform:rotate(79.2deg)}.radial-progress[data-progress="23"] .circle .mask.full,.radial-progress[data-progress="23"] .circle .fill{-webkit-transform:rotate(41.4deg);-ms-transform:rotate(41.4deg);transform:rotate(41.4deg)}.radial-progress[data-progress="23"] .circle .fill.fix{-webkit-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);transform:rotate(82.8deg)}.radial-progress[data-progress="24"] .circle .mask.full,.radial-progress[data-progress="24"] .circle .fill{-webkit-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);transform:rotate(43.2deg)}.radial-progress[data-progress="24"] .circle .fill.fix{-webkit-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);transform:rotate(86.4deg)}.radial-progress[data-progress="25"] .circle .mask.full,.radial-progress[data-progress="25"] .circle .fill{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.radial-progress[data-progress="25"] .circle .fill.fix{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.radial-progress[data-progress="26"] .circle .mask.full,.radial-progress[data-progress="26"] .circle .fill{-webkit-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);transform:rotate(46.8deg)}.radial-progress[data-progress="26"] .circle .fill.fix{-webkit-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);transform:rotate(93.6deg)}.radial-progress[data-progress="27"] .circle .mask.full,.radial-progress[data-progress="27"] .circle .fill{-webkit-transform:rotate(48.6deg);-ms-transform:rotate(48.6deg);transform:rotate(48.6deg)}.radial-progress[data-progress="27"] .circle .fill.fix{-webkit-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);transform:rotate(97.2deg)}.radial-progress[data-progress="28"] .circle .mask.full,.radial-progress[data-progress="28"] .circle .fill{-webkit-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);transform:rotate(50.4deg)}.radial-progress[data-progress="28"] .circle .fill.fix{-webkit-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);transform:rotate(100.8deg)}.radial-progress[data-progress="29"] .circle .mask.full,.radial-progress[data-progress="29"] .circle .fill{-webkit-transform:rotate(52.2deg);-ms-transform:rotate(52.2deg);transform:rotate(52.2deg)}.radial-progress[data-progress="29"] .circle .fill.fix{-webkit-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);transform:rotate(104.4deg)}.radial-progress[data-progress="30"] .circle .mask.full,.radial-progress[data-progress="30"] .circle .fill{-webkit-transform:rotate(54deg);-ms-transform:rotate(54deg);transform:rotate(54deg)}.radial-progress[data-progress="30"] .circle .fill.fix{-webkit-transform:rotate(108deg);-ms-transform:rotate(108deg);transform:rotate(108deg)}.radial-progress[data-progress="31"] .circle .mask.full,.radial-progress[data-progress="31"] .circle .fill{-webkit-transform:rotate(55.8deg);-ms-transform:rotate(55.8deg);transform:rotate(55.8deg)}.radial-progress[data-progress="31"] .circle .fill.fix{-webkit-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);transform:rotate(111.6deg)}.radial-progress[data-progress="32"] .circle .mask.full,.radial-progress[data-progress="32"] .circle .fill{-webkit-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);transform:rotate(57.6deg)}.radial-progress[data-progress="32"] .circle .fill.fix{-webkit-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);transform:rotate(115.2deg)}.radial-progress[data-progress="33"] .circle .mask.full,.radial-progress[data-progress="33"] .circle .fill{-webkit-transform:rotate(59.4deg);-ms-transform:rotate(59.4deg);transform:rotate(59.4deg)}.radial-progress[data-progress="33"] .circle .fill.fix{-webkit-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);transform:rotate(118.8deg)}.radial-progress[data-progress="34"] .circle .mask.full,.radial-progress[data-progress="34"] .circle .fill{-webkit-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);transform:rotate(61.2deg)}.radial-progress[data-progress="34"] .circle .fill.fix{-webkit-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);transform:rotate(122.4deg)}.radial-progress[data-progress="35"] .circle .mask.full,.radial-progress[data-progress="35"] .circle .fill{-webkit-transform:rotate(63deg);-ms-transform:rotate(63deg);transform:rotate(63deg)}.radial-progress[data-progress="35"] .circle .fill.fix{-webkit-transform:rotate(126deg);-ms-transform:rotate(126deg);transform:rotate(126deg)}.radial-progress[data-progress="36"] .circle .mask.full,.radial-progress[data-progress="36"] .circle .fill{-webkit-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);transform:rotate(64.8deg)}.radial-progress[data-progress="36"] .circle .fill.fix{-webkit-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);transform:rotate(129.6deg)}.radial-progress[data-progress="37"] .circle .mask.full,.radial-progress[data-progress="37"] .circle .fill{-webkit-transform:rotate(66.6deg);-ms-transform:rotate(66.6deg);transform:rotate(66.6deg)}.radial-progress[data-progress="37"] .circle .fill.fix{-webkit-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);transform:rotate(133.2deg)}.radial-progress[data-progress="38"] .circle .mask.full,.radial-progress[data-progress="38"] .circle .fill{-webkit-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);transform:rotate(68.4deg)}.radial-progress[data-progress="38"] .circle .fill.fix{-webkit-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);transform:rotate(136.8deg)}.radial-progress[data-progress="39"] .circle .mask.full,.radial-progress[data-progress="39"] .circle .fill{-webkit-transform:rotate(70.2deg);-ms-transform:rotate(70.2deg);transform:rotate(70.2deg)}.radial-progress[data-progress="39"] .circle .fill.fix{-webkit-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);transform:rotate(140.4deg)}.radial-progress[data-progress="40"] .circle .mask.full,.radial-progress[data-progress="40"] .circle .fill{-webkit-transform:rotate(72deg);-ms-transform:rotate(72deg);transform:rotate(72deg)}.radial-progress[data-progress="40"] .circle .fill.fix{-webkit-transform:rotate(144deg);-ms-transform:rotate(144deg);transform:rotate(144deg)}.radial-progress[data-progress="41"] .circle .mask.full,.radial-progress[data-progress="41"] .circle .fill{-webkit-transform:rotate(73.8deg);-ms-transform:rotate(73.8deg);transform:rotate(73.8deg)}.radial-progress[data-progress="41"] .circle .fill.fix{-webkit-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);transform:rotate(147.6deg)}.radial-progress[data-progress="42"] .circle .mask.full,.radial-progress[data-progress="42"] .circle .fill{-webkit-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);transform:rotate(75.6deg)}.radial-progress[data-progress="42"] .circle .fill.fix{-webkit-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);transform:rotate(151.2deg)}.radial-progress[data-progress="43"] .circle .mask.full,.radial-progress[data-progress="43"] .circle .fill{-webkit-transform:rotate(77.4deg);-ms-transform:rotate(77.4deg);transform:rotate(77.4deg)}.radial-progress[data-progress="43"] .circle .fill.fix{-webkit-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);transform:rotate(154.8deg)}.radial-progress[data-progress="44"] .circle .mask.full,.radial-progress[data-progress="44"] .circle .fill{-webkit-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);transform:rotate(79.2deg)}.radial-progress[data-progress="44"] .circle .fill.fix{-webkit-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);transform:rotate(158.4deg)}.radial-progress[data-progress="45"] .circle .mask.full,.radial-progress[data-progress="45"] .circle .fill{-webkit-transform:rotate(81deg);-ms-transform:rotate(81deg);transform:rotate(81deg)}.radial-progress[data-progress="45"] .circle .fill.fix{-webkit-transform:rotate(162deg);-ms-transform:rotate(162deg);transform:rotate(162deg)}.radial-progress[data-progress="46"] .circle .mask.full,.radial-progress[data-progress="46"] .circle .fill{-webkit-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);transform:rotate(82.8deg)}.radial-progress[data-progress="46"] .circle .fill.fix{-webkit-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);transform:rotate(165.6deg)}.radial-progress[data-progress="47"] .circle .mask.full,.radial-progress[data-progress="47"] .circle .fill{-webkit-transform:rotate(84.6deg);-ms-transform:rotate(84.6deg);transform:rotate(84.6deg)}.radial-progress[data-progress="47"] .circle .fill.fix{-webkit-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);transform:rotate(169.2deg)}.radial-progress[data-progress="48"] .circle .mask.full,.radial-progress[data-progress="48"] .circle .fill{-webkit-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);transform:rotate(86.4deg)}.radial-progress[data-progress="48"] .circle .fill.fix{-webkit-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);transform:rotate(172.8deg)}.radial-progress[data-progress="49"] .circle .mask.full,.radial-progress[data-progress="49"] .circle .fill{-webkit-transform:rotate(88.2deg);-ms-transform:rotate(88.2deg);transform:rotate(88.2deg)}.radial-progress[data-progress="49"] .circle .fill.fix{-webkit-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);transform:rotate(176.4deg)}.radial-progress[data-progress="50"] .circle .mask.full,.radial-progress[data-progress="50"] .circle .fill{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.radial-progress[data-progress="50"] .circle .fill.fix{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.radial-progress[data-progress="51"] .circle .mask.full,.radial-progress[data-progress="51"] .circle .fill{-webkit-transform:rotate(91.8deg);-ms-transform:rotate(91.8deg);transform:rotate(91.8deg)}.radial-progress[data-progress="51"] .circle .fill.fix{-webkit-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);transform:rotate(183.6deg)}.radial-progress[data-progress="52"] .circle .mask.full,.radial-progress[data-progress="52"] .circle .fill{-webkit-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);transform:rotate(93.6deg)}.radial-progress[data-progress="52"] .circle .fill.fix{-webkit-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);transform:rotate(187.2deg)}.radial-progress[data-progress="53"] .circle .mask.full,.radial-progress[data-progress="53"] .circle .fill{-webkit-transform:rotate(95.4deg);-ms-transform:rotate(95.4deg);transform:rotate(95.4deg)}.radial-progress[data-progress="53"] .circle .fill.fix{-webkit-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);transform:rotate(190.8deg)}.radial-progress[data-progress="54"] .circle .mask.full,.radial-progress[data-progress="54"] .circle .fill{-webkit-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);transform:rotate(97.2deg)}.radial-progress[data-progress="54"] .circle .fill.fix{-webkit-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);transform:rotate(194.4deg)}.radial-progress[data-progress="55"] .circle .mask.full,.radial-progress[data-progress="55"] .circle .fill{-webkit-transform:rotate(99deg);-ms-transform:rotate(99deg);transform:rotate(99deg)}.radial-progress[data-progress="55"] .circle .fill.fix{-webkit-transform:rotate(198deg);-ms-transform:rotate(198deg);transform:rotate(198deg)}.radial-progress[data-progress="56"] .circle .mask.full,.radial-progress[data-progress="56"] .circle .fill{-webkit-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);transform:rotate(100.8deg)}.radial-progress[data-progress="56"] .circle .fill.fix{-webkit-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);transform:rotate(201.6deg)}.radial-progress[data-progress="57"] .circle .mask.full,.radial-progress[data-progress="57"] .circle .fill{-webkit-transform:rotate(102.6deg);-ms-transform:rotate(102.6deg);transform:rotate(102.6deg)}.radial-progress[data-progress="57"] .circle .fill.fix{-webkit-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);transform:rotate(205.2deg)}.radial-progress[data-progress="58"] .circle .mask.full,.radial-progress[data-progress="58"] .circle .fill{-webkit-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);transform:rotate(104.4deg)}.radial-progress[data-progress="58"] .circle .fill.fix{-webkit-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);transform:rotate(208.8deg)}.radial-progress[data-progress="59"] .circle .mask.full,.radial-progress[data-progress="59"] .circle .fill{-webkit-transform:rotate(106.2deg);-ms-transform:rotate(106.2deg);transform:rotate(106.2deg)}.radial-progress[data-progress="59"] .circle .fill.fix{-webkit-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);transform:rotate(212.4deg)}.radial-progress[data-progress="60"] .circle .mask.full,.radial-progress[data-progress="60"] .circle .fill{-webkit-transform:rotate(108deg);-ms-transform:rotate(108deg);transform:rotate(108deg)}.radial-progress[data-progress="60"] .circle .fill.fix{-webkit-transform:rotate(216deg);-ms-transform:rotate(216deg);transform:rotate(216deg)}.radial-progress[data-progress="61"] .circle .mask.full,.radial-progress[data-progress="61"] .circle .fill{-webkit-transform:rotate(109.8deg);-ms-transform:rotate(109.8deg);transform:rotate(109.8deg)}.radial-progress[data-progress="61"] .circle .fill.fix{-webkit-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);transform:rotate(219.6deg)}.radial-progress[data-progress="62"] .circle .mask.full,.radial-progress[data-progress="62"] .circle .fill{-webkit-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);transform:rotate(111.6deg)}.radial-progress[data-progress="62"] .circle .fill.fix{-webkit-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);transform:rotate(223.2deg)}.radial-progress[data-progress="63"] .circle .mask.full,.radial-progress[data-progress="63"] .circle .fill{-webkit-transform:rotate(113.4deg);-ms-transform:rotate(113.4deg);transform:rotate(113.4deg)}.radial-progress[data-progress="63"] .circle .fill.fix{-webkit-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);transform:rotate(226.8deg)}.radial-progress[data-progress="64"] .circle .mask.full,.radial-progress[data-progress="64"] .circle .fill{-webkit-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);transform:rotate(115.2deg)}.radial-progress[data-progress="64"] .circle .fill.fix{-webkit-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);transform:rotate(230.4deg)}.radial-progress[data-progress="65"] .circle .mask.full,.radial-progress[data-progress="65"] .circle .fill{-webkit-transform:rotate(117deg);-ms-transform:rotate(117deg);transform:rotate(117deg)}.radial-progress[data-progress="65"] .circle .fill.fix{-webkit-transform:rotate(234deg);-ms-transform:rotate(234deg);transform:rotate(234deg)}.radial-progress[data-progress="66"] .circle .mask.full,.radial-progress[data-progress="66"] .circle .fill{-webkit-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);transform:rotate(118.8deg)}.radial-progress[data-progress="66"] .circle .fill.fix{-webkit-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);transform:rotate(237.6deg)}.radial-progress[data-progress="67"] .circle .mask.full,.radial-progress[data-progress="67"] .circle .fill{-webkit-transform:rotate(120.6deg);-ms-transform:rotate(120.6deg);transform:rotate(120.6deg)}.radial-progress[data-progress="67"] .circle .fill.fix{-webkit-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);transform:rotate(241.2deg)}.radial-progress[data-progress="68"] .circle .mask.full,.radial-progress[data-progress="68"] .circle .fill{-webkit-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);transform:rotate(122.4deg)}.radial-progress[data-progress="68"] .circle .fill.fix{-webkit-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);transform:rotate(244.8deg)}.radial-progress[data-progress="69"] .circle .mask.full,.radial-progress[data-progress="69"] .circle .fill{-webkit-transform:rotate(124.2deg);-ms-transform:rotate(124.2deg);transform:rotate(124.2deg)}.radial-progress[data-progress="69"] .circle .fill.fix{-webkit-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);transform:rotate(248.4deg)}.radial-progress[data-progress="70"] .circle .mask.full,.radial-progress[data-progress="70"] .circle .fill{-webkit-transform:rotate(126deg);-ms-transform:rotate(126deg);transform:rotate(126deg)}.radial-progress[data-progress="70"] .circle .fill.fix{-webkit-transform:rotate(252deg);-ms-transform:rotate(252deg);transform:rotate(252deg)}.radial-progress[data-progress="71"] .circle .mask.full,.radial-progress[data-progress="71"] .circle .fill{-webkit-transform:rotate(127.8deg);-ms-transform:rotate(127.8deg);transform:rotate(127.8deg)}.radial-progress[data-progress="71"] .circle .fill.fix{-webkit-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);transform:rotate(255.6deg)}.radial-progress[data-progress="72"] .circle .mask.full,.radial-progress[data-progress="72"] .circle .fill{-webkit-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);transform:rotate(129.6deg)}.radial-progress[data-progress="72"] .circle .fill.fix{-webkit-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);transform:rotate(259.2deg)}.radial-progress[data-progress="73"] .circle .mask.full,.radial-progress[data-progress="73"] .circle .fill{-webkit-transform:rotate(131.4deg);-ms-transform:rotate(131.4deg);transform:rotate(131.4deg)}.radial-progress[data-progress="73"] .circle .fill.fix{-webkit-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);transform:rotate(262.8deg)}.radial-progress[data-progress="74"] .circle .mask.full,.radial-progress[data-progress="74"] .circle .fill{-webkit-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);transform:rotate(133.2deg)}.radial-progress[data-progress="74"] .circle .fill.fix{-webkit-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);transform:rotate(266.4deg)}.radial-progress[data-progress="75"] .circle .mask.full,.radial-progress[data-progress="75"] .circle .fill{-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.radial-progress[data-progress="75"] .circle .fill.fix{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.radial-progress[data-progress="76"] .circle .mask.full,.radial-progress[data-progress="76"] .circle .fill{-webkit-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);transform:rotate(136.8deg)}.radial-progress[data-progress="76"] .circle .fill.fix{-webkit-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);transform:rotate(273.6deg)}.radial-progress[data-progress="77"] .circle .mask.full,.radial-progress[data-progress="77"] .circle .fill{-webkit-transform:rotate(138.6deg);-ms-transform:rotate(138.6deg);transform:rotate(138.6deg)}.radial-progress[data-progress="77"] .circle .fill.fix{-webkit-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);transform:rotate(277.2deg)}.radial-progress[data-progress="78"] .circle .mask.full,.radial-progress[data-progress="78"] .circle .fill{-webkit-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);transform:rotate(140.4deg)}.radial-progress[data-progress="78"] .circle .fill.fix{-webkit-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);transform:rotate(280.8deg)}.radial-progress[data-progress="79"] .circle .mask.full,.radial-progress[data-progress="79"] .circle .fill{-webkit-transform:rotate(142.2deg);-ms-transform:rotate(142.2deg);transform:rotate(142.2deg)}.radial-progress[data-progress="79"] .circle .fill.fix{-webkit-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);transform:rotate(284.4deg)}.radial-progress[data-progress="80"] .circle .mask.full,.radial-progress[data-progress="80"] .circle .fill{-webkit-transform:rotate(144deg);-ms-transform:rotate(144deg);transform:rotate(144deg)}.radial-progress[data-progress="80"] .circle .fill.fix{-webkit-transform:rotate(288deg);-ms-transform:rotate(288deg);transform:rotate(288deg)}.radial-progress[data-progress="81"] .circle .mask.full,.radial-progress[data-progress="81"] .circle .fill{-webkit-transform:rotate(145.8deg);-ms-transform:rotate(145.8deg);transform:rotate(145.8deg)}.radial-progress[data-progress="81"] .circle .fill.fix{-webkit-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);transform:rotate(291.6deg)}.radial-progress[data-progress="82"] .circle .mask.full,.radial-progress[data-progress="82"] .circle .fill{-webkit-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);transform:rotate(147.6deg)}.radial-progress[data-progress="82"] .circle .fill.fix{-webkit-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);transform:rotate(295.2deg)}.radial-progress[data-progress="83"] .circle .mask.full,.radial-progress[data-progress="83"] .circle .fill{-webkit-transform:rotate(149.4deg);-ms-transform:rotate(149.4deg);transform:rotate(149.4deg)}.radial-progress[data-progress="83"] .circle .fill.fix{-webkit-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);transform:rotate(298.8deg)}.radial-progress[data-progress="84"] .circle .mask.full,.radial-progress[data-progress="84"] .circle .fill{-webkit-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);transform:rotate(151.2deg)}.radial-progress[data-progress="84"] .circle .fill.fix{-webkit-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);transform:rotate(302.4deg)}.radial-progress[data-progress="85"] .circle .mask.full,.radial-progress[data-progress="85"] .circle .fill{-webkit-transform:rotate(153deg);-ms-transform:rotate(153deg);transform:rotate(153deg)}.radial-progress[data-progress="85"] .circle .fill.fix{-webkit-transform:rotate(306deg);-ms-transform:rotate(306deg);transform:rotate(306deg)}.radial-progress[data-progress="86"] .circle .mask.full,.radial-progress[data-progress="86"] .circle .fill{-webkit-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);transform:rotate(154.8deg)}.radial-progress[data-progress="86"] .circle .fill.fix{-webkit-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);transform:rotate(309.6deg)}.radial-progress[data-progress="87"] .circle .mask.full,.radial-progress[data-progress="87"] .circle .fill{-webkit-transform:rotate(156.6deg);-ms-transform:rotate(156.6deg);transform:rotate(156.6deg)}.radial-progress[data-progress="87"] .circle .fill.fix{-webkit-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);transform:rotate(313.2deg)}.radial-progress[data-progress="88"] .circle .mask.full,.radial-progress[data-progress="88"] .circle .fill{-webkit-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);transform:rotate(158.4deg)}.radial-progress[data-progress="88"] .circle .fill.fix{-webkit-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);transform:rotate(316.8deg)}.radial-progress[data-progress="89"] .circle .mask.full,.radial-progress[data-progress="89"] .circle .fill{-webkit-transform:rotate(160.2deg);-ms-transform:rotate(160.2deg);transform:rotate(160.2deg)}.radial-progress[data-progress="89"] .circle .fill.fix{-webkit-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);transform:rotate(320.4deg)}.radial-progress[data-progress="90"] .circle .mask.full,.radial-progress[data-progress="90"] .circle .fill{-webkit-transform:rotate(162deg);-ms-transform:rotate(162deg);transform:rotate(162deg)}.radial-progress[data-progress="90"] .circle .fill.fix{-webkit-transform:rotate(324deg);-ms-transform:rotate(324deg);transform:rotate(324deg)}.radial-progress[data-progress="91"] .circle .mask.full,.radial-progress[data-progress="91"] .circle .fill{-webkit-transform:rotate(163.8deg);-ms-transform:rotate(163.8deg);transform:rotate(163.8deg)}.radial-progress[data-progress="91"] .circle .fill.fix{-webkit-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);transform:rotate(327.6deg)}.radial-progress[data-progress="92"] .circle .mask.full,.radial-progress[data-progress="92"] .circle .fill{-webkit-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);transform:rotate(165.6deg)}.radial-progress[data-progress="92"] .circle .fill.fix{-webkit-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);transform:rotate(331.2deg)}.radial-progress[data-progress="93"] .circle .mask.full,.radial-progress[data-progress="93"] .circle .fill{-webkit-transform:rotate(167.4deg);-ms-transform:rotate(167.4deg);transform:rotate(167.4deg)}.radial-progress[data-progress="93"] .circle .fill.fix{-webkit-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);transform:rotate(334.8deg)}.radial-progress[data-progress="94"] .circle .mask.full,.radial-progress[data-progress="94"] .circle .fill{-webkit-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);transform:rotate(169.2deg)}.radial-progress[data-progress="94"] .circle .fill.fix{-webkit-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);transform:rotate(338.4deg)}.radial-progress[data-progress="95"] .circle .mask.full,.radial-progress[data-progress="95"] .circle .fill{-webkit-transform:rotate(171deg);-ms-transform:rotate(171deg);transform:rotate(171deg)}.radial-progress[data-progress="95"] .circle .fill.fix{-webkit-transform:rotate(342deg);-ms-transform:rotate(342deg);transform:rotate(342deg)}.radial-progress[data-progress="96"] .circle .mask.full,.radial-progress[data-progress="96"] .circle .fill{-webkit-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);transform:rotate(172.8deg)}.radial-progress[data-progress="96"] .circle .fill.fix{-webkit-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);transform:rotate(345.6deg)}.radial-progress[data-progress="97"] .circle .mask.full,.radial-progress[data-progress="97"] .circle .fill{-webkit-transform:rotate(174.6deg);-ms-transform:rotate(174.6deg);transform:rotate(174.6deg)}.radial-progress[data-progress="97"] .circle .fill.fix{-webkit-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);transform:rotate(349.2deg)}.radial-progress[data-progress="98"] .circle .mask.full,.radial-progress[data-progress="98"] .circle .fill{-webkit-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);transform:rotate(176.4deg)}.radial-progress[data-progress="98"] .circle .fill.fix{-webkit-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);transform:rotate(352.8deg)}.radial-progress[data-progress="99"] .circle .mask.full,.radial-progress[data-progress="99"] .circle .fill{-webkit-transform:rotate(178.2deg);-ms-transform:rotate(178.2deg);transform:rotate(178.2deg)}.radial-progress[data-progress="99"] .circle .fill.fix{-webkit-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);transform:rotate(356.4deg)}.radial-progress[data-progress="100"] .circle .mask.full,.radial-progress[data-progress="100"] .circle .fill{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.radial-progress[data-progress="100"] .circle .fill.fix{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}.radial-progress:not([data-progress="0"]) .inset .bgIcon{opacity:1}.radial-progress.radial-progress-success .circle .mask .fill{background-color:#5cb85c}.radial-progress.radial-progress-success .inset .percentage .number span{color:#5cb85c}.radial-progress.radial-progress-info .circle .mask .fill{background-color:#5bc0de}.radial-progress.radial-progress-info .inset .percentage .number span{color:#5bc0de}.radial-progress.radial-progress-danger .circle .mask .fill{background-color:#d9534f}.radial-progress.radial-progress-danger .inset .percentage .number span{color:#d9534f}.radial-progress.radial-progress-warning .circle .mask .fill{background-color:#f0ad4e}.radial-progress.radial-progress-warning .inset .percentage .number span{color:#f0ad4e}.radial-progress.radial-progress-sm{width:80px;height:80px}.radial-progress.radial-progress-sm .circle .mask{clip:rect(0px, 80px, 80px, 40px)}.radial-progress.radial-progress-sm .circle .mask .fill{clip:rect(0px, 40px, 80px, 0px)}.radial-progress.radial-progress-sm .inset{width:60px;height:60px;margin-left:10px;margin-top:10px;font-size:14.4px}.radial-progress.radial-progress-sm .inset .bgIcon{position:absolute;font-size:50px;top:5px;left:-2px}.radial-progress.radial-progress-lg{width:180px;height:180px}.radial-progress.radial-progress-lg .circle .mask{clip:rect(0px, 180px, 180px, 90px)}.radial-progress.radial-progress-lg .circle .mask .fill{clip:rect(0px, 90px, 180px, 0px)}.radial-progress.radial-progress-lg .inset{width:135px;height:135px;margin-left:22.5px;margin-top:22.5px;font-size:32.4px}.radial-progress.radial-progress-lg .inset .bgIcon{position:absolute;font-size:115px;top:5px;left:-6px}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:80px}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{float:left;z-index:2;position:relative;background:#fff}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:0 0 0 15px}#o_main_wrapper #o_main_container #o_main_left #o_main_left_toggle{position:absolute;display:none;right:0;top:70px;margin-right:-30px;font-size:25px;line-height:35px;text-align:center;width:30px;height:35px;z-index:3;border:1px solid #ddd;border-left:none;border-bottom-right-radius:4px;border-top-right-radius:4px;background-color:#fbfbfb;-webkit-box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);color:#337ab7}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas{background:#fbfbfb;-webkit-box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);min-width:250px}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas #o_main_left_content{padding:0 0 0 0}#o_main_wrapper #o_main_container #o_main_right{float:right;z-index:2;position:relative;background:inherit}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:0 15px 0 0}#o_main_wrapper #o_main_container #o_main_center{position:relative;z-index:1;background:inherit}#o_main_wrapper #o_main_container #o_main_center h2:first-child{margin-top:0}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:0 15px}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content #o_main_center_content_inner{padding-bottom:15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:15px;text-align:center;z-index:3}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}}#o_back_wrapper,#o_preview_wrapper{margin-top:10px}#o_back_wrapper.o_toolbar .o_breadcrumb .breadcrumb,#o_preview_wrapper.o_toolbar .o_breadcrumb .breadcrumb{font-size:14px}body.o_message #o_main_center_content_inner{min-height:150px;max-width:500px;padding:15px;margin:60px auto}#o_footer_wrapper{position:absolute;bottom:0;width:100%;height:70px;overflow:hidden;background-color:#f5f5f5;color:#999;line-height:16px;font-size:12px}#o_footer_wrapper a{color:#999}#o_footer_wrapper a:hover{color:#000}#o_footer_container{position:relative;padding-top:10px;min-height:70px;background:#f5f5f5;z-index:1}#o_footer_user{position:absolute;left:15px;top:10px;z-index:1}#o_footer_user #o_counter{white-space:nowrap}#o_footer_user #o_username{white-space:nowrap;margin-right:1em}#o_footer_version{position:absolute;right:15px;top:10px;text-align:right;z-index:1}@media (max-width: 767px){#o_footer_version{padding-top:10px;text-align:left}}#o_footer_powered{position:absolute;top:30px;right:15px;z-index:1}#o_footer_powered img{opacity:.6;filter:alpha(opacity=60);width:120px}#o_footer_powered img:hover{opacity:1;filter:alpha(opacity=100)}#o_footer_impressum{position:absolute;top:10px;width:100%;text-align:center;z-index:-1}#o_footer_impressum i{display:none}#o_footer_textline{position:absolute;top:30px;width:100%;text-align:center;z-index:-1}#o_share{margin-top:10px}#o_share a{opacity:.6;filter:alpha(opacity=60)}#o_share a:hover{opacity:1;filter:alpha(opacity=100)}#o_share a,#o_share_social_container a{color:#999;margin:0 0.25em 0 0}#o_share a:hover,#o_share_social_container a:hover{color:#000}@media (max-width: 767px){#o_counter,#o_footer_version,#o_share{display:none}#o_footer_impressum{top:30px;text-align:left}#o_footer_textline{top:50px;text-align:left}#o_footer_powered{top:10px}#o_footer_powered a:after{content:"\221E";font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:14px}#o_footer_powered img{display:none}}#o_navbar_wrapper{z-index:4;border-top:1px solid #e7e7e7;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}#o_navbar_wrapper #o_navbar_container{position:relative}a.o_disabled.navbar-text{margin:0}.o_navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid #e7e7e7;background-color:#f8f8f8}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar .o_navbar_tabs li{max-width:150px}.o_navbar .o_navbar_tabs li a{padding-right:30px}.o_navbar .o_navbar_tabs li a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_navbar .o_navbar_tabs .o_icon-fw{position:absolute;top:15px;left:0.5em;padding-top:3px;width:1em;height:1em;display:none}.o_navbar .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}.o_navbar .o_navbar_tabs .o_navbar_tab_close i:before{color:#d9534f}.o_navbar .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#c9302c}.o_navbar .o_custom_navbar-brand{background-position:5px 0;background-repeat:no-repeat;height:50px;width:120px}.o_navbar #o_navbar_langchooser{color:#777;padding:7px 15px}.o_navbar #o_navbar_langchooser form span+div{display:inline}.o_navbar #o_navbar_tools_permanent #o_navbar_print a,.o_navbar #o_navbar_tools_permanent #o_navbar_impress a,.o_navbar #o_navbar_tools_permanent #o_navbar_help a{color:#777;padding-right:0}.o_navbar #o_navbar_tools_permanent #o_navbar_login a{color:#f0ad4e}.o_navbar .o_navbar_tools>#o_navbar_tools_permanent>li>a>span{display:none}@media (min-width: 768px){.o_navbar .o_navbar_tools li.o_portrait>a>span{display:inline}}.o_navbar #o_navbar_tools_personal .o_navbar_tool a,.o_navbar #o_navbar_tools_permanent .o_navbar_tool a{padding-right:5px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu a{padding-left:45px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .dropdown-menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .dropdown-menu a{padding-left:15px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .o_portrait,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .o_portrait{position:absolute;left:7px;top:10px}.o_navbar #o_navbar_tools_personal .o_logout,.o_navbar #o_navbar_tools_permanent .o_logout{color:#d9534f}.o_navbar.o_navbar-offcanvas .o_navbar_tab_close{top:10px;right:10px}.o_navbar.o_navbar-offcanvas .o_navbar-right a{padding:3px 20px;color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-right a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a:focus{color:#fff;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout{color:#d9534f}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:focus{color:#c9302c}.o_navbar.o_navbar-offcanvas .o_navbar-right a .o_icon-lg{font-size:1.0em;vertical-align:baseline}.o_navbar.o_navbar-offcanvas .o_navbar-right .divider{height:1px;margin:9px 0;overflow:hidden;background-color:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-header{padding-left:15px}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-toggle{display:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu{box-shadow:none;position:relative;top:0;left:0;display:block;float:none;background-color:#222;color:#9d9d9d;font-size:14px;border:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu .divider{background:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a{color:#9d9d9d;text-shadow:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav a:focus{background-color:transparent;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:focus{background-color:#090909;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link{color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link:hover{color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a{color:#777}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}#o_navbar_impress a span,#o_navbar_search_opener a span{display:none}body.o_dmz #o_navbar_print a span,body.o_dmz #o_navbar_impress a span,body.o_dmz #o_navbar_help a span,body.o_dmz #o_navbar_search_opener a span{display:inline}.o_navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;font-size:18px;line-height:20px;height:50px;color:#777}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none;color:#5e5e5e;background-color:transparent}.o_navbar-toggle{position:relative;margin-right:15px;margin-left:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;border:1px solid #ddd;border-radius:4px;background-color:transparent;background-image:none}.o_navbar-toggle:hover,.o_navbar-toggle:focus{outline:none;background-color:#ddd}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;background-color:#888}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}#o_navbar_left-toggle{float:left}#o_navbar_right-toggle{float:right}.o_navbar-link{color:#777}.o_navbar-link:hover{color:#333}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px;color:#777}.o_navbar-nav>li>a:hover,.o_navbar-nav>li>a:focus{color:#333;background-color:transparent}.o_navbar-nav>.active>a,.o_navbar-nav>.active>a:hover,.o_navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-nav>.disabled>a,.o_navbar-nav>.disabled>a:hover,.o_navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-nav>.open>a,.o_navbar-nav>.open>a:hover,.o_navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}}.o_collapse .o_navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.o_collapse .o_navbar-form.o_navbar-right:last-child{margin-right:-15px}.o_navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.o_navbar-fixed-bottom .o_navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.o_navbar-btn{margin-top:8px;margin-bottom:8px}.o_navbar-btn.btn-sm,.btn-group-sm>.o_navbar-btn.btn{margin-top:10px;margin-bottom:10px}.o_navbar-btn.btn-xs,.btn-group-xs>.o_navbar-btn.btn{margin-top:14px;margin-bottom:14px}.o_navbar-text{margin-top:15px;margin-bottom:15px;color:#777}.o_collapse .o_navbar-text{float:left;margin-left:15px;margin-right:15px}.o_collapse .o_navbar-text.o_navbar-right:last-child{margin-right:0}.o_dropdown_tab{position:relative}.o_dropdown_tab>a:first-child{padding-right:30px}.o_dropdown_tab>a:first-child .o_icon-fw{display:none;position:absolute;top:0;left:10px;padding-top:3px;line-height:20px}.o_dropdown_tab>a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_dropdown_tab .o_navbar_tab_close{position:absolute;top:0px;right:10px;padding-left:0px;padding-right:0px;color:#d9534f;background-color:inherit}.o_dropdown_tab .o_navbar_tab_close:focus,.o_dropdown_tab .o_navbar_tab_close:hover{color:#c9302c;background-color:inherit}#o_navbar_more .dropdown-menu .divider:last-child{display:none}@media (min-width: 768px){#o_navbar_more .dropdown-menu{max-width:300px}}@media (max-width: 767px){#o_navbar_more>li{position:inherit}#o_navbar_more .dropdown-menu{left:0px;right:0px}#o_navbar_more .dropdown-menu a,#o_navbar_more .dropdown-menu i{line-height:30px}#o_navbar_more .dropdown-menu .o_navbar_tab_close{line-height:inherit}}.o_body_popup #o_topnav_printview{display:inline-block}.o_body_popup #o_topnav_close{float:right}.o_body_popup #o_topnav_close span{display:block}.o_body_popup #o_navbar_tools_permanent li>a{background-color:transparent}.o_toolbar{position:relative;margin-bottom:20px;margin-top:-10px;border:1px solid #e7e7e7}.o_toolbar:before,.o_toolbar:after{content:" ";display:table}.o_toolbar:after{clear:both}@media (min-width: 768px){.o_toolbar{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}}.o_toolbar.o_toolbar_with_segments{margin-bottom:30px}.o_toolbar .o_breadcrumb:before,.o_toolbar .o_breadcrumb:after{content:" ";display:table}.o_toolbar .o_breadcrumb:after{clear:both}.o_toolbar .o_breadcrumb .breadcrumb{margin-bottom:0;padding:5px 9px;font-size:11px;line-height:15px;border-radius:0;background:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d9534f}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a:hover{color:#b52b27}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a span{display:none}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close:before{content:none}.o_toolbar .o_tools_container{text-align:center;min-height:37px;position:relative;background-color:#f8f8f8;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_toolbar .o_tools_container:before,.o_toolbar .o_tools_container:after{content:" ";display:table}.o_toolbar .o_tools_container:after{clear:both}@media (max-width: 991px){.o_toolbar .o_tools_container{min-height:35px}}@media (max-width: 767px){.o_toolbar .o_tools_container{min-height:22px;text-align:left}}.o_toolbar .o_tools_container span.o_tool_text{color:#777;display:inline-block}.o_toolbar .o_tools_container a{color:#777;display:inline-block}.o_toolbar .o_tools_container a:hover{color:#333}.o_toolbar .o_tools_container a.o_disabled{color:#aaa !important}.o_toolbar .o_tools_container a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tools_container a.active{color:#337ab7;background-color:transparent}.o_toolbar .o_tools_container a.btn-primary{color:#fff}.o_toolbar .o_tools_container .dropdown-menu a{display:block}.o_toolbar .o_tools_container .dropdown-menu a.active{color:#337ab7;background-color:transparent}.o_toolbar .o_breadcrumb+.o_tools_container{border-top:1px solid #e7e7e7}.o_toolbar .o_tools{margin-top:8px;margin-bottom:5px}.o_toolbar .o_tool,.o_toolbar .o_text{position:relative;margin:0 10px}.o_toolbar .o_tool:first-child,.o_toolbar .o_text:first-child{margin-left:0}.o_toolbar .o_tool:last-child,.o_toolbar .o_text:last-child{margin-right:0}.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:18px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:block;font-size:12px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{position:absolute;right:50%;top:-18px;margin-right:-12px;font-size:13px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:16px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{font-size:11px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{top:-16.5px;margin-right:-11px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:20px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:none}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{display:block;position:relative;top:0;left:0;margin-right:0}}.o_toolbar .o_tool .o_chelp,.o_toolbar .o_text .o_chelp{position:relative;top:-1em;vertical-align:top;color:#fff}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{padding:0;margin-top:5px;border:1px solid #ccc;background-color:#eee}.o_toolbar .o_tool_next a,.o_toolbar .o_tool_previous a{color:#777}.o_toolbar .o_tool_next a:hover,.o_toolbar .o_tool_previous a:hover{color:#333}.o_toolbar .o_tool_next a.o_disabled,.o_toolbar .o_tool_previous a.o_disabled{color:#aaa !important}.o_toolbar .o_tool_next a.o_disabled:hover,.o_toolbar .o_tool_previous a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:21px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:4px}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:18px}}@media (max-width: 767px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:0}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:20px}}.o_toolbar .o_tool_previous{margin-left:10px;border-bottom-left-radius:4px;border-top-left-radius:4px;border-right:0}.o_toolbar .o_tool_next{border-bottom-right-radius:4px;border-top-right-radius:4px}.o_toolbar .o_tool_dropdown{margin:0 10px}.o_toolbar .o_tool_dropdown:first-child{margin-left:0}.o_toolbar .o_tool_dropdown:last-child{margin-right:0}.o_toolbar .o_tool_dropdown a.dropdown-toggle{position:relative}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:18px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label{display:block;font-size:12px;text-align:center}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{position:absolute;right:50%;top:4px;margin-right:-20px;font-size:14px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:16px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label,.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{font-size:11px}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{top:4px;margin-right:-18px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown a.dropdown-toggle{padding:0 10px 0 5px}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:20px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label{display:none}}.o_toolbar .o_tool_dropdown .dropdown-menu{text-align:left}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{line-height:16px;font-size:70% !important;padding:0 18px 0 4px;position:relative;top:-2px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:12px !important;margin:0 0 3px 0}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{position:absolute;right:5px;top:2px;margin-right:0}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{line-height:14px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:10px !important}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{right:5px;top:2px;margin-right:0;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{padding:0 18px 0 4px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:20px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{right:15px;top:2px;margin-right:0}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled span.o_inner_text,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled span.o_label,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light span.o_inner_text,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light span.o_label{display:none}}.o_toolbar .o_tool_dropdown .dropdown-toggle.o_with_labeled .o_inner_wrapper.o_labeled+.o_icon_caret{color:#fff !important}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled{padding:0;margin:0}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled .o_labeled{text-align:left}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled>li>a{padding:5px 5px;margin:1px}.o_toolbar .o_tools_left{float:left}.o_toolbar .o_tools_right{float:right}.o_toolbar .o_tools_right_edge{float:right}.o_toolbar .o_tools_center{float:both;width:50%;margin-left:auto;margin-right:auto}.o_toolbar .o_tools_segments{margin:0 auto -1.1em auto}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}@media (max-width: 991px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools.o_tools_segments{margin:0 auto -1.1em auto}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}.o_toolbar .o_tool span{max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_toolbar .o_tools_segments .o_tool span{display:block}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 5px}}@media (max-width: 767px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools .o_chelp{top:0;vertical-align:top}.o_toolbar .o_tools.o_tools_segments{margin:0 auto -1.1em auto;text-align:center}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}.o_toolbar .o_tools_center{float:left}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 0;position:static}.o_toolbar .o_tool_dropdown .dropdown-menu{left:0px;right:0px}.o_toolbar .o_tool_dropdown .dropdown-menu a,.o_toolbar .o_tool_dropdown .dropdown-menu i{line-height:30px}.o_toolbar .o_tool_dropdown .dropdown-menu .o_navbar_tab_close{line-height:inherit}}#o_main_container .o_toolbar_message{display:table;margin:0 auto 20px auto}#o_main_container .o_toolbar_message.o_warning{padding-top:5px;padding-bottom:5px;border:1px solid #8a6d3b;border-radius:3px}.o_edit_mode .o_toolbar .o_tools_container{background:repeating-linear-gradient(300deg, #fff0d9, #fff0d9 10px, #fcfcfc 10px, #fcfcfc 20px)}.o_edit_mode .o_toolbar .o_edit_mode .o_tools_container{background:#f8f8f8}body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px}#o_container_page_width_toggler{position:absolute;top:25px;margin-top:-.75em;right:10px;z-index:5;display:none}@media (min-width: 1364px){#o_container_page_width_toggler{display:block}#o_container_page_width_toggler #o_go_standard_width{display:none}#o_container_page_width_toggler #o_go_full_width{display:block}body.o_width_full .o_container_offcanvas{max-width:100%;margin-left:20px;margin-right:20px}body.o_width_full #o_container_page_width_toggler #o_go_standard_width{display:block}body.o_width_full #o_container_page_width_toggler #o_go_full_width{display:none}}body.o_dmz #o_container_page_width_toggler{display:none !important}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#9d9d9d;border:1px solid #090909;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);min-height:100%;z-index:10;display:none}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}.o_info,.b_info,p.b_info,div.b_info,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback,.o_assessmentitem_wrapper .modalFeedback .o_info{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_info h5,.b_info h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.o_assessmentitem_wrapper .modalFeedback .o_info h2,.b_info h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.o_assessmentitem_wrapper .modalFeedback .o_info h3,.b_info h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.o_assessmentitem_wrapper .modalFeedback .o_info h4,.b_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_info h2,.o_form .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.o_assessmentitem_wrapper .modalFeedback .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info h2,.b_info h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5,.o_assessmentitem_wrapper .modalFeedback .o_info h5{color:#777}.o_note,.b_note,p.b_note,div.b_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_note h5,.b_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h2,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2,.b_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h3,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h3,.b_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h4,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h4,.b_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h2,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2,.b_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h5,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{margin:20px 0;padding:20px;border-left:3px solid #F4D000;background-color:#FFF1A4}.o_important h2,.o_important h3,.o_important h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_important h5,.b_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.b_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.b_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.b_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.b_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#F4D000}.o_success,.b_success,p.b_success,div.b_success,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5,.b_success h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h2,.b_success h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h3,.b_success h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h4,.b_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_success h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h2,.b_success h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning,.o_instruction,.o_form .o_warning,p.o_gta_reopen_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.b_warning h2,.o_instruction h2,.o_form .o_warning h2,p.o_gta_reopen_warning h2,.b_warning h3,.o_instruction h3,.o_form .o_warning h3,p.o_gta_reopen_warning h3,.b_warning h4,.o_instruction h4,.o_form .o_warning h4,p.o_gta_reopen_warning h4,.b_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_warning h2,.o_instruction .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_instruction h2,.o_form .o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_warning h2,p.o_gta_reopen_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title p.o_gta_reopen_warning h2,.b_warning h5,.o_instruction h5,.o_form .o_warning h5,p.o_gta_reopen_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5,.b_error h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h2,.b_error h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h3,.b_error h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h4,.b_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_error h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h2,.b_error h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h5{color:#a94442}.o_instruction{margin-top:0px;border-left:none;padding-top:10px;padding-bottom:10px}.o_instruction>.o_button_group{margin-bottom:0px}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_alert_close{float:right;color:#777}.o_alert_info .alert .o_alert_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}#o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4,.modal .modal-header .o_cal .fc-header-title h2,.o_cal .fc-header-title .modal .modal-header h2{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}.o_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_tree a{color:#777;background-color:none}.o_tree a:hover,.o_tree a:focus{color:#333}.o_tree .o_tree_link{background-color:none}.o_tree .o_tree_link:hover,.o_tree .o_tree_link:focus{background-color:#f8f8f8}.o_tree .o_tree_link:first-child{background-color:transparent}.o_tree .o_tree_link:last-child:hover,.o_tree .o_tree_link:last-child:focus{background-color:#f8f8f8}.o_tree .o_insertion_point>a>span{padding:5px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_insertion_source>a>span.o_tree_item,.o_tree .o_insertion_source>a>span.o_dnd_item{border-bottom:solid #f90 4px;background-color:#fefbf6}.o_tree ul{margin:0;padding:0;list-style-type:none}.o_tree ul li{margin:0;padding:0;white-space:nowrap}.o_tree ul li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_tree ul li div.popover{position:absolute;left:auto;right:0}.o_tree ul li div a.o_tree_oc_l0{position:absolute;top:10px;left:-4px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l0,.o_tree ul .o_tree_level_close.b_tree_oc_l0{z-index:10}.o_tree ul li div a.o_tree_oc_l1{position:absolute;top:10px;left:11px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l1,.o_tree ul .o_tree_level_close.b_tree_oc_l1{z-index:10}.o_tree ul li div a.o_tree_oc_l2{position:absolute;top:10px;left:26px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l2,.o_tree ul .o_tree_level_close.b_tree_oc_l2{z-index:10}.o_tree ul li div a.o_tree_oc_l3{position:absolute;top:10px;left:41px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l3,.o_tree ul .o_tree_level_close.b_tree_oc_l3{z-index:10}.o_tree ul li div a.o_tree_oc_l4{position:absolute;top:10px;left:56px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l4,.o_tree ul .o_tree_level_close.b_tree_oc_l4{z-index:10}.o_tree ul li div a.o_tree_oc_l5{position:absolute;top:10px;left:71px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l5,.o_tree ul .o_tree_level_close.b_tree_oc_l5{z-index:10}.o_tree ul li div a.o_tree_oc_l6{position:absolute;top:10px;left:86px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l6,.o_tree ul .o_tree_level_close.b_tree_oc_l6{z-index:10}.o_tree ul li div a.o_tree_oc_l7{position:absolute;top:10px;left:101px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l7,.o_tree ul .o_tree_level_close.b_tree_oc_l7{z-index:10}.o_tree ul li div a.o_tree_oc_l8{position:absolute;top:10px;left:116px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l8,.o_tree ul .o_tree_level_close.b_tree_oc_l8{z-index:10}.o_tree ul li div a.o_tree_oc_l9{position:absolute;top:10px;left:131px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l9,.o_tree ul .o_tree_level_close.b_tree_oc_l9{z-index:10}.o_tree ul li div a.o_tree_oc_l10{position:absolute;top:10px;left:146px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l10,.o_tree ul .o_tree_level_close.b_tree_oc_l10{z-index:10}.o_tree ul li div a.o_tree_oc_l11{position:absolute;top:10px;left:161px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l11,.o_tree ul .o_tree_level_close.b_tree_oc_l11{z-index:10}.o_tree ul li div span.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_tree ul li div span.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_tree ul li div span.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_tree ul li div span.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_tree ul li div span.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_tree ul li div span.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_tree ul li div span.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_tree ul li div span.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_tree ul li div span.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_tree ul li div span.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_tree ul li div span.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_tree ul li div span.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_tree ul span.o_tree_leaf{display:none}.o_tree ul span.o_tree_link>input[type=checkbox]{margin-right:5px}.o_tree ul li .badge{position:absolute;font-size:70%}.o_tree ul li .badge:before{content:none}.o_tree ul li .badge.o_badge_1{top:3px;right:1px}.o_tree ul li .badge.o_badge_2{bottom:3px;right:1px}.o_tree ul li .badge.o_badge_3{top:3px;right:25px}.o_tree ul li .badge.o_badge_4{bottom:3px;right:25px}.o_tree ul li div.o_dnd_sibling{margin:0;padding:0;border-bottom:none}.o_tree ul li .active.o_tree_link{background-color:none;font-weight:bold}.o_tree ul li .active.o_tree_link a{color:#337ab7}.o_tree ul li .active.o_tree_link:hover,.o_tree ul li .active.o_tree_link:focus{background-color:#eee}.o_tree ul li .active.o_tree_link:hover a,.o_tree ul li .active.o_tree_link:focus a{color:#23527c}.o_tree ul li .active_parent.o_tree_link{font-weight:bold}.o_tree ul li .active_parent.o_tree_link a{color:#777}.o_tree ul li .active_parent.o_tree_link a:hover,.o_tree ul li .active_parent.o_tree_link a:focus{color:#333}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l0{left:6px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l1{left:21px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l2{left:36px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l3{left:51px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l4{left:66px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l5{left:81px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l6{left:96px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l7{left:111px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l8{left:126px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l9{left:141px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l10{left:156px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l11{left:171px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l0{padding:10px 2px 10px 20px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l1{padding:10px 2px 10px 35px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l2{padding:10px 2px 10px 50px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l3{padding:10px 2px 10px 65px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l4{padding:10px 2px 10px 80px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l5{padding:10px 2px 10px 95px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l6{padding:10px 2px 10px 110px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l7{padding:10px 2px 10px 125px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l8{padding:10px 2px 10px 140px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l9{padding:10px 2px 10px 155px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l10{padding:10px 2px 10px 170px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l11{padding:10px 2px 10px 185px}.o_tree .o_dnd_item{cursor:move;z-index:100}.o_tree .o_dnd_proxy{opacity:.4;filter:alpha(opacity=40);background-color:#f0ad4e;padding:5px 10px 5px 10px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_dnd_item.o_dnd_over{background-color:#ffff60}.o_tree .o_dnd_sibling{height:7px;width:100%}.o_tree .o_dnd_sibling.o_dnd_over{background:transparent url(../light/images/arrow_dd.png) top left no-repeat}.o_tree .o_dnd_l1{margin-left:0 !important}.o_tree .o_dnd_l2{margin-left:1em !important}.o_tree .o_dnd_l3{margin-left:2em !important}.o_tree .o_dnd_l4{margin-left:3em !important}.o_tree .o_dnd_l5{margin-left:4em !important}.o_tree .o_dnd_l6{margin-left:5em !important}.o_tree .o_dnd_l7{margin-left:6em !important}.o_tree .o_dnd_l8{margin-left:7em !important}.o_tree .o_dnd_l9{margin-left:8em !important}.o_tree .o_dnd_l10{margin-left:9em !important}.o_tree .o_dnd_l11{margin-left:10em !important}.o_tree.o_tree_insert_tool span.o_tree_link a{display:block}.o_offcanvas .o_tree{border:0}.o_selection_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_selection_tree ul{margin:0;padding:0;list-style-type:none}.o_selection_tree li{margin:0;padding:0;white-space:nowrap}.o_selection_tree li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_selection_tree li>div>span.o_tree_l0,.o_selection_tree li>div>div.checkbox.o_tree_l0,.o_selection_tree li>div>div.radio.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_selection_tree li>div>span.o_tree_l1,.o_selection_tree li>div>div.checkbox.o_tree_l1,.o_selection_tree li>div>div.radio.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_selection_tree li>div>span.o_tree_l2,.o_selection_tree li>div>div.checkbox.o_tree_l2,.o_selection_tree li>div>div.radio.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_selection_tree li>div>span.o_tree_l3,.o_selection_tree li>div>div.checkbox.o_tree_l3,.o_selection_tree li>div>div.radio.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_selection_tree li>div>span.o_tree_l4,.o_selection_tree li>div>div.checkbox.o_tree_l4,.o_selection_tree li>div>div.radio.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_selection_tree li>div>span.o_tree_l5,.o_selection_tree li>div>div.checkbox.o_tree_l5,.o_selection_tree li>div>div.radio.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_selection_tree li>div>span.o_tree_l6,.o_selection_tree li>div>div.checkbox.o_tree_l6,.o_selection_tree li>div>div.radio.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_selection_tree li>div>span.o_tree_l7,.o_selection_tree li>div>div.checkbox.o_tree_l7,.o_selection_tree li>div>div.radio.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_selection_tree li>div>span.o_tree_l8,.o_selection_tree li>div>div.checkbox.o_tree_l8,.o_selection_tree li>div>div.radio.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_selection_tree li>div>span.o_tree_l9,.o_selection_tree li>div>div.checkbox.o_tree_l9,.o_selection_tree li>div>div.radio.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_selection_tree li>div>span.o_tree_l10,.o_selection_tree li>div>div.checkbox.o_tree_l10,.o_selection_tree li>div>div.radio.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_selection_tree li>div>span.o_tree_l11,.o_selection_tree li>div>div.checkbox.o_tree_l11,.o_selection_tree li>div>div.radio.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_breadcrumb{position:relative}.o_breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d9534f}.o_breadcrumb .o_breadcrumb_close a:hover{color:#b52b27}.o_breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_breadcrumb .o_breadcrumb_close a span{display:none}.o_breadcrumb .o_breadcrumb_close:before{content:none}.o_form .o_icon_mandatory{margin-right:0.25em}.o_form .o_form_chelp{padding-left:0.25em;margin-right:-1.25em}.o_form .o_form_example{font-size:90%}.o_form .o_error{margin-top:1px;margin-bottom:0;padding:10px}.o_form hr.o_spacer_noline{border-top:1px solid transparent}.o_form hr.o_spacer.form,.o_form hr.o_spacer_noline.form{margin-top:0px;margin-bottom:0px}.o_form .form-group.o_omit_margin{margin-bottom:0}.o_form .o_date{position:relative;padding-right:34px}.o_form .o_date.form-inline .form-group,.o_form .o_date.o_navbar-form .form-group{margin-left:0}.o_form .o_date.form-inline .form-group.o_second_date,.o_form .o_date.o_navbar-form .form-group.o_second_date,.o_form .o_date.form-inline .o_date_ms.form-group,.o_form .o_date.o_navbar-form .o_date_ms.form-group,.o_form .o_date.form-inline .form-group.o_date_separator,.o_form .o_date.o_navbar-form .form-group.o_date_separator{margin-left:25px}.o_form .btn-group .o_date{display:inline-block}.o_form input.o_date_ms{width:3em}.o_form .has-feedback .o_date.form-inline .form-control.o_date_ms,.o_form .has-feedback .o_date.o_navbar-form .form-control.o_date_ms{padding-right:0}.o_form .o_form_element.form-inline .o_form_element.form-group,.o_form .o_form_element.o_navbar-form .o_form_element.form-group{margin-left:25px}.o_form .input-group.o_date_picker{width:11em}.o_form .has-feedback .o_date_picker .form-control{padding-right:0}.o_form .o_filepreview{margin-bottom:10px}.o_form .o_fileinput{cursor:pointer;position:relative}.o_form .o_fileinput .o_fakechooser{position:relative;z-index:1}.o_form .o_fileinput .o_realchooser{position:absolute;top:0;right:0;z-index:2;opacity:0;filter:alpha(opacity=0)}.o_form .o_fileinput .o_realchooser.o_chooser_with_delete{right:38px}.o_form .o_fileElement.has-error .o_icon_error.form-control-feedback{display:none}.o_form .form-control.textarea.o_fixed_font_with{resize:vertical !important;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_form .form-control.textarea_disabled.o_fixed_font_with{white-space:pre-wrap;height:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;color:#555 !important;background:#fafafa}.o_form .form-control.textarea_disabled{resize:both;overflow:auto;white-space:pre-wrap;background:#fafafa}.o_form_inline_mandatory_compact i{width:20px}.o_form_inline_mandatory_compact select.form-control{width:calc(100% - 25px)}.o_day_chooser .o_day_previous{display:inline-block}.o_day_chooser .o_day_previous a{border-bottom-right-radius:0;border-top-right-radius:0;border-right:0}.o_day_chooser .o_day_date{display:inline-block;border-radius:0}.o_day_chooser .o_day_date input,.o_day_chooser .o_day_date .input-group-addon{border-radius:0}.o_day_chooser .o_day_next{display:inline-block}.o_day_chooser .o_day_next a{border-bottom-left-radius:0;border-top-left-radius:0;border-left:0}.o_centered_form{text-align:center}.o_centered_form fieldset.o_form{display:inline-block;text-align:left}.o_choice_checkrow,.o_choice_textrow{vertical-align:text-top;padding-bottom:2px}.o_choice_textrow{padding-left:1em}.o_togglecheck a{white-space:nowrap}.o_catalog .o_catalog_delete_img{position:relative;top:-0.5em}.o_button_dirty{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_button_dirty:hover,.o_button_dirty:focus,.o_button_dirty.focus,.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{background-image:none}.o_button_dirty.disabled,.o_button_dirty.disabled:hover,.o_button_dirty.disabled:focus,.o_button_dirty.disabled.focus,.o_button_dirty.disabled:active,.o_button_dirty.disabled.active,.o_button_dirty[disabled],.o_button_dirty[disabled]:hover,.o_button_dirty[disabled]:focus,.o_button_dirty[disabled].focus,.o_button_dirty[disabled]:active,.o_button_dirty[disabled].active,fieldset[disabled] .o_button_dirty,fieldset[disabled] .o_button_dirty:hover,fieldset[disabled] .o_button_dirty:focus,fieldset[disabled] .o_button_dirty.focus,fieldset[disabled] .o_button_dirty:active,fieldset[disabled] .o_button_dirty.active{background-color:#f0ad4e;border-color:#eea236}.o_button_dirty .badge{color:#f0ad4e;background-color:#fff}.o_button_toggle{border:1px solid #777;border-top-right-radius:9px;border-top-left-radius:9px;border-bottom-right-radius:9px;border-bottom-left-radius:9px;background:#eee;display:inline-block;height:18px;line-height:16px;font-size:16px;text-align:left;padding:0 0.5em 0 1px;margin:0}.o_button_toggle i{color:#777;text-shadow:1px 0 2px rgba(0,0,0,0.25)}.o_button_toggle span{line-height:16px;vertical-align:top;font-size:60%;color:#777;text-transform:uppercase}.o_button_toggle.o_on{text-align:right;padding:0 1px 0 0.5em}.o_button_toggle.o_on i{color:#337ab7;text-shadow:-1px 0 2px rgba(0,0,0,0.25)}.o_table_wrapper{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_table_wrapper.o_table_flexi .o_table_body{margin-top:20px}.o_table_wrapper.o_table_flexi .table{margin-top:20px}.o_table_wrapper.o_table_flexi .table td ul{margin:0}.o_table_wrapper.o_table_flexi.o_table_no_margin .table{margin:0}.o_table_wrapper.o_table_flexi tfoot{border-top:solid #ddd 2px}.o_table_wrapper.o_table_flexi .o_multiselect{width:20px}.o_table_wrapper.o_table_edit table tbody{border-top:solid #f90 4px;background-color:#fefbf6}.o_table_wrapper .o_table_search{max-width:50em}.o_table_wrapper .o_table_footer .o_table_checkall>a{font-weight:normal;margin-right:10px}.o_table_wrapper .o_table_footer .o_table_checkall.input-sm,.o_table_wrapper .o_table_footer .input-group-sm>.o_table_checkall.form-control,.o_table_wrapper .o_table_footer .input-group-sm>.o_table_checkall.input-group-addon,.o_table_wrapper .o_table_footer .input-group-sm>.input-group-btn>.o_table_checkall.btn{padding:5px 6px}.o_table_wrapper .o_table_footer .o_table_pagination{text-align:center}.o_table_wrapper .o_table_rows_infos{float:left;padding-left:0;padding-right:20px;margin:20px 0}.o_table_wrapper .o_row_selected td{background-color:#dff0d8 !important}.o_table_wrapper .o_table{margin-bottom:0}.o_table_wrapper .o_marked{font-weight:bold}.o_table_wrapper .table{margin-bottom:0}.o_table_wrapper th a,.o_table_wrapper th a:hover{color:#333;text-decoration:none}.o_table_search a.btn.o_reset_quick_search{width:38px;margin-left:-38px;z-index:5;color:grey}.o_breadcrumb.o_table_flexi_breadcrumb ol.breadcrumb{margin:5px 0 0 0}div.o_table_flexi div.o_table_flexi_leaf{margin-left:1.55em}div.o_table_flexi div.o_table_flexi_l0{padding-left:0px}div.o_table_flexi div.o_table_flexi_l1{padding-left:15px}div.o_table_flexi div.o_table_flexi_l2{padding-left:30px}div.o_table_flexi div.o_table_flexi_l3{padding-left:45px}div.o_table_flexi div.o_table_flexi_l4{padding-left:60px}div.o_table_flexi div.o_table_flexi_l5{padding-left:75px}div.o_table_flexi div.o_table_flexi_l6{padding-left:90px}div.o_table_flexi div.o_table_flexi_l7{padding-left:105px}div.o_table_flexi div.o_table_flexi_l8{padding-left:120px}div.o_table_flexi div.o_table_flexi_l9{padding-left:135px}div.o_table_flexi div.o_table_flexi_l10{padding-left:150px}div.o_table_flexi div.o_table_flexi_l11{padding-left:165px}@media (max-width: 767px){.o_table_wrapper .o_table_rows_infos{clear:both}}a.o_orderby,a.o_orderby:hover{color:#333;text-decoration:none}a.o_orderby.o_orderby_asc,a.o_orderby.o_orderby_desc,a.o_orderby:hover.o_orderby_asc,a.o_orderby:hover.o_orderby_desc{border-bottom:1px solid #ddd}.o_table_row_count{padding-top:6px;padding-bottom:6px;vertical-align:middle}.o_table_row_details td{background-color:white !important}.o_table_config{font-size:12px}.o_table_buttons{text-align:center}.o_table_buttons input{margin-right:1em}.o_table_buttons input:last-child{margin-right:0}.o_table_tools{margin-left:6px}.o_table_tools_indications,.o_table_tools_indications_filter_only{margin-left:10px;padding-top:3px;font-size:80%}.o_table_tools_indications a,.o_table_tools_indications_filter_only a{color:#d9534f}.o_table_toolbar_left .o_table_tools_indications{text-align:right}.o_table_count{max-width:20em;float:left;padding:0 15px}.o_table_filter .control-label{margin-right:0.5em}.o_table_filter .control-label:after{content:':'}.o_table_filter>div{display:inline-block}.o_table_filter>div label{font-weight:normal}.o_info .table-bordered td,o_note .table-bordered td,o_important .table-bordered td,o_warning .table-bordered td,o_error .table-bordered td{border-color:#333}.panel .o_table_layout{border-top:1px solid #ddd;padding-top:6px}.panel .o_table_count{padding:0 15px}#o_navbar_imclient .o_im_messages{float:left}#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary{float:left;position:relative;padding:15px 3px}#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_message{padding-left:15px}#o_navbar_imclient #o_im_summary .badge{color:#fff;background-color:#777}#o_navbar_imclient #o_im_status li>a>span{display:inline}#o_navbar_imclient #o_im_status div.o_chelp_wrapper{right:0.5em}#o_navbar_imclient #o_im_message a:hover,#o_navbar_imclient #o_im_message a:focus{text-decoration:none}#o_navbar_imclient #o_im_message .o_icon_message{color:#d9534f}#o_navbar_imclient #o_im_message .o_icon_message:hover{color:#f4c37d}.o_im_load_history{margin-bottom:6px}.o_im_load_history .o_label{font-size:12px;padding-right:0.5em;line-height:1.5em;color:#777}.o_im_chat_history{height:170px;font-size:90%;border:1px solid #eee;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_im_message_group{padding:3px 3px 3px 40px;min-height:40px;position:relative;border-top:1px solid #eee;background:#fff}.o_im_message_group.o_odd{background:#F4F4F4}.o_im_message_group .o_portrait{position:absolute;top:3px;left:3px}.o_im_message_group .o_im_from{color:#777;font-size:12px;font-weight:bold}.o_im_message_group .o_im_from:hover{color:#5e5e5e}.o_im_message_group div.o_im_body{padding:3px 0 3px 0;font-size:12px}.o_im_message_group div.o_im_body .o_date{float:right;color:#777;font-size:9px}.o_groupchat_roster{font-size:12px}.o_groupchat_roster li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333}.o_groupchat_roster li.o_vip{color:#3c763d}.o_groupchat_roster li.o_anonymous{color:#31708f}.o_im_buddieslist .o_im_buddieslist_toggler .btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_im_buddieslist ul{font-size:12px}.o_im_buddieslist ul ul{padding-left:1em}.o_im_buddieslist ul a{color:#337ab7}.o_im_buddieslist ul a:hover{color:#23527c}.o_flag{position:relative;top:1px;display:inline-block;line-height:1;width:16px;height:16px;background-repeat:no-repeat;background-position:0 100%}option.o_with_flag{padding-left:23px;min-height:16px;background-repeat:no-repeat;background-position:2px 50%}.o_flag_en{background-image:url("../light/images/flags/gb.png")}.o_flag_de{background-image:url("../light/images/flags/de.png")}.o_flag_fr{background-image:url("../light/images/flags/fr.png")}.o_flag_it{background-image:url("../light/images/flags/it.png")}.o_flag_es{background-image:url("../light/images/flags/es.png")}.o_flag_da{background-image:url("../light/images/flags/dk.png")}.o_flag_cs{background-image:url("../light/images/flags/cz.png")}.o_flag_el{background-image:url("../light/images/flags/gr.png")}.o_flag_ee{background-image:url("../light/images/flags/ee.png")}.o_flag_ru{background-image:url("../light/images/flags/ru.png")}.o_flag_pl{background-image:url("../light/images/flags/pl.png")}.o_flag_zh_CN{background-image:url("../light/images/flags/cn.png")}.o_flag_zh_TW{background-image:url("../light/images/flags/tw.png")}.o_flag_lt{background-image:url("../light/images/flags/lt.png")}.o_flag_fa{background-image:url("../light/images/flags/ir.png")}.o_flag_pt_PT{background-image:url("../light/images/flags/pt.png")}.o_flag_pt_BR{background-image:url("../light/images/flags/br.png")}.o_flag_tr{background-image:url("../light/images/flags/tr.png")}.o_flag_hu{background-image:url("../light/images/flags/hu.png")}.o_flag_sq{background-image:url("../light/images/flags/al.png")}.o_flag_in{background-image:url("../light/images/flags/id.png")}.o_flag_ar{background-image:url("../light/images/flags/eg.png")}.o_flag_rm{background-image:url("../light/images/flags/rm.png")}.o_flag_af{background-image:url("../light/images/flags/za.png")}.o_flag_vi{background-image:url("../light/images/flags/vn.png")}.o_flag_mn{background-image:url("../light/images/flags/mn.png")}.o_flag_iw{background-image:url("../light/images/flags/il.png")}.o_flag_ko{background-image:url("../light/images/flags/kr.png")}.o_flag_nl_NL{background-image:url("../light/images/flags/nl.png")}.o_flag_jp{background-image:url("../light/images/flags/jp.png")}.o_flag_nb_NO{background-image:url("../light/images/flags/no.png")}.o_flag_et_EE{background-image:url("../light/images/flags/ee.png")}.o_flag_bg{background-image:url("../light/images/flags/bg.png")}.o_flag_hi_IN_ASIA{background-image:url("../light/images/flags/in.png")}.o_flag_ar_LB{background-image:url("../light/images/flags/lb.png")}.o_flag_gl_ES{background-image:url("../light/images/flags/galicia.png")}.o_flag_sk{background-image:url("../light/images/flags/sk.png")}.o_rating .o_rating_title{font-size:12px}.o_rating .o_rating_items{white-space:nowrap}.o_rating .o_rating_items .o_icon{color:#f0ad4e}.o_rating .o_rating_items .o_legend{margin-left:1em;font-size:12px;line-height:normal}.o_rating.o_rating_personal .o_rating_items .o_icon{color:#337ab7}.o_rating .o_rating_explanation{font-size:12px;color:#777}@media (max-width: 991px){.o_rating .o_rating_title,.o_rating .o_rating_explanation{display:none}}.o_comments .o_comment_wrapper .o_avatar{float:left;margin:0 1em 0 0}.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.o_comments .o_comment_wrapper .o_comment_wrapper{margin-left:16px}.o_ratings_and_comments .o_rating_wrapper{vertical-align:middle;display:inline-block}.o_ratings_and_comments a.o_comments{margin-left:10px;position:relative;top:0.1em}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#64a0d3}.d3chart .bar_default,.d3chart .bubble_default{fill:#337ab7}.d3chart .bar_default_dark{fill:#23527c}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_forum_peekview .o_quote_wrapper,.o_forum_peekview .b_quote_wrapper{display:none}.o_forum_thread_sticky{font-weight:bold}.o_forum_switch{font-size:12px}.o_forum_toolbar{margin-bottom:6px;float:left}.o_forum_fulltextsearch{float:right}@media (max-width: 767px){.o_forum_fulltextsearch{float:left}.o_forum_toolbar .o_forum_tool span{display:none}}.o_forum{padding-bottom:50px}.o_forum .o_mark,.o_forum .o_ep_collect{float:right;position:relative;width:2em;margin-left:12px}.o_forum .o_portrait{float:left;margin-right:16px}.o_forum .o_portrait_avatar{width:70px;height:70px}.o_forum .o_newindicator{font-size:10px;color:#5cb85c;text-transform:uppercase;padding-left:1em;vertical-align:text-top;white-space:nowrap}.o_forum .o_author,.o_forum .o_date{display:inline-block;color:#777}.o_forum .o_date{font-size:12px}.o_forum .o_modified{color:#8a6d3b;font-size:12px;font-style:italic}.o_forum .o_forum_message{margin-bottom:20px;background-color:#fcfcfc;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_forum .o_forum_message_new{-webkit-box-shadow:0 1px 10px rgba(92,184,92,0.3);box-shadow:0 1px 10px rgba(92,184,92,0.3)}.o_forum .o_forum_message_highlight{-webkit-box-shadow:0 1px 10px rgba(240,173,78,0.5);box-shadow:0 1px 10px rgba(240,173,78,0.5)}.o_forum .o_forum_message_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:3px;border-top-left-radius:3px}.o_forum .o_forum_message_title{margin-top:0}.o_forum .o_forum_message_body{padding:10px 15px}.o_forum .o_forum_message_attachments{border-top:1px solid #ddd;padding:10px 15px;font-size:12px;background-color:#f7f7f9}.o_forum .o_attachment{position:relative;max-width:250px;vertical-align:top;margin:6px 12px 10px 0}.o_forum .o_attachment img{margin-top:6px}.o_forum .o_filename{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_forum .o_icon_enlarge{position:absolute;left:1em;bottom:1em;text-shadow:1px 1px 2px #fff, -1px 1px 2px #fff, 1px -1px 2px #fff, -1px -1px 2px #fff}@media (min-width: 768px) and (max-width: 991px){.o_forum .o_attachments{font-size:10px}.o_forum .o_attachment{max-width:200px}.o_forum .o_attachment img{max-width:150px}.o_forum .o_filename{max-width:200px}}@media (max-width: 767px){.o_forum .o_attachments{font-size:9px}.o_forum .o_attachment{max-width:150px}.o_forum .o_attachment img{max-width:100px}.o_forum .o_filename{max-width:150px}}.o_quote_wrapper,.b_quote_wrapper{position:relative;margin:10px 0}.o_quote_author,.b_quote_author{color:#777;font-size:12px}.o_quote_author:before,.b_quote_author:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";font-size:21px;padding-right:0.5em}blockquote.o_quote,blockquote.b_quote{color:#555;font-size:12px;margin-top:6px;padding:0 12px}a.o_chelp{display:inline-block;padding:1px 3px;text-align:center;vertical-align:middle;white-space:nowrap;font-size:10px;font-weight:normal;line-height:15px;color:#fff;background-color:#337ab7;border:1px solid #2e6da4;border-radius:2px;cursor:help;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}a.o_chelp:active,a.o_chelp:hover,a.o_chelp:focus{text-decoration:none;color:#fff;background-color:#2a6598;border-color:#204d74}a.o_chelp i{font-size:10px !important}.o_chelp_wrapper{position:relative;float:right;display:inline-block;line-height:normal;margin-bottom:10px;margin-left:10px}.o_form_chelp,.o_chelp_tooltip{color:#737373}.o_draw_circle{border:2px solid #337ab7;border-radius:50%;position:absolute !important;box-sizing:border-box}.o_draw_rectangle{border:2px solid #337ab7;position:absolute !important;box-sizing:border-box}.o_iframedisplay iframe{width:100%}.o_singlepage .o_edit{position:absolute;top:0;right:37px}.o_content_popup{position:absolute;top:0;right:12px}.o_module_cp_wrapper{position:relative}.o_module_cp_wrapper .o_tools{position:absolute;top:0;right:0;text-align:right;vertical-align:middle}.o_module_cp_wrapper .o_tools .o_search_wrapper{display:inline-block;position:relative;top:-2px}.o_module_cp_wrapper .o_tools .o_search_wrapper .form-group{margin-bottom:0}.o_module_cp_wrapper .o_tools .o_search_wrapper .form-control-static{padding-top:0;padding-bottom:0}ul.o_dropdown{margin:-5px -14px}ul.o_dropdown .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}ul.o_dropdown>li>a{display:block;padding:5px 14px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;background:#fcfcfc;white-space:nowrap}ul.o_dropdown>li>a:hover,ul.o_dropdown>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}ul.o_dropdown>li>i.o_icon_check{display:inline-block;padding-left:14px}ul.o_dropdown>li>i.o_icon_check+a{display:inline-block;padding-left:5px}.badge.o_scorm_completed{background-color:#3c763d}.badge.o_scorm_failed{background-color:#a94442}.badge.o_scorm_incomplete{background-color:#8a6d3b}.badge.o_scorm_not_attempted{background:none}.o_bc_meta h5,.o_bc_meta .o_author,.o_bc_meta .o_comment,.tooltip h5,.tooltip .o_author,.tooltip .o_comment{color:#fff;margin:5px 0}.o_bc_meta .o_thumbnail,.tooltip .o_thumbnail{width:200px;height:200px;display:inline-block;background-color:#fff;margin:0 -5px}.o_htmleditor .o_metadata{border:1px solid #999;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom:0;background:#eee;position:relative;top:1px;padding:5px}.o_htmleditor .o_metadata #o_filename{float:left}.o_htmleditor .o_metadata .o_lastmodified{float:right;color:#777;line-height:1.428571429}.o_htmleditor #o_save{margin-top:10px;text-align:center}.o_htmleditor #o_save input{margin-right:1em}.o_htmleditor #o_save input:last-child{margin-right:0}.o_notifications_news_wrapper .o_notifications_news_subscription{margin:10px 0}.o_notifications_news_wrapper .o_notifications_news_subscription h4 i,.o_notifications_news_wrapper .o_notifications_news_subscription .o_cal .fc-header-title h2 i,.o_cal .fc-header-title .o_notifications_news_wrapper .o_notifications_news_subscription h2 i{display:none}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_context{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content{margin-left:1.5em;position:relative}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_icon{position:absolute;left:-1.5em;line-height:1.5em;top:0}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_date{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_url{margin-left:1.5em}.o_noti{margin:6px 0 6px 12px;float:right;color:#777}.o_noti .o_label{color:#777;cursor:help}@media (max-width: 767px){.o_noti .o_label span{display:none}}.panel-body .o_noti{margin:0}.o_portrait{display:inline-block}.o_portrait img{border-radius:50%;border:none;background-color:#eee;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.o_portrait_name{margin-top:6px}.o_block_inline .o_portait,.o_block_inline .o_portrait_name,.o_block_inline .o_portrait_image,.o_block_inline_right .o_portait,.o_block_inline_right .o_portrait_name,.o_block_inline_right .o_portrait_image,.o_block_inline_left .o_portait,.o_block_inline_left .o_portrait_name,.o_block_inline_left .o_portrait_image,.o_block_inline_both .o_portait,.o_block_inline_both .o_portrait_name,.o_block_inline_both .o_portrait_image{display:inline-block}.o_portrait_avatar,.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png") !important}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png") !important}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png") !important}.o_portrait_anonymous{background-image:url("../light/images/portrait/anonymous.png") !important}.o_portrait_avatar_small,.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png") !important}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png") !important}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png") !important}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/anonymous_small.png") !important}.o_datecomp{position:relative;width:40px;height:52px;border:1px solid #555;margin-right:12px;text-align:center;vertical-align:middle}.o_datecomp div.o_year{position:absolute;left:0;width:100%;top:-20px;height:20px;line-height:20px;font-size:10px}.o_datecomp div.o_month{height:20px;line-height:20px;font-size:12px;background-color:#337ab7;color:#fff}.o_datecomp div.o_day{height:30px;line-height:30px;font-size:18px;border-top:1px solid #555;background-color:#fff;color:#333}.o_block_with_datecomp .o_head{position:relative;padding-left:52px}.o_block_with_datecomp .o_datecomp{position:absolute;top:0.2em;left:0}.o_block_with_datecomp .o_title{margin-top:0}.o_block_with_datecomp .o_meta{color:#777}.o_block_with_datecomp .o_content{border-left:5px solid #eee;padding:0 20px}.o_block_with_datecomp .o_block_footer{padding-left:25px}ul.o_certificates li{padding:5px 0}ul.o_certificates li a.o_sel_certificate_delete{padding-left:2em}.o_cal_toptoolbar{margin-bottom:6px}.o_cal_toptoolbar .o_cal_toptoolbar_help{float:left;margin-right:12px}.o_cal_toptoolbar .o_noti{margin-top:0}.o_feed .o_date,.o_feed .o_author{color:#777}.o_feed .o_subscription a{margin-right:1.5em}.o_feed .o_subscription .form-group{margin-bottom:5px}.o_feed .o_subscription .form-control{border:0;background:none;padding:0;height:auto;-webkit-box-shadow:none;box-shadow:none}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper{float:left}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_title,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_explanation,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_legend{display:none}.o_feed .o_blog_posts .o_ratings_and_comments a.o_comments span{display:none}.o_feed .o_content:before,.o_feed .o_content:after{content:" ";display:table}.o_feed .o_content:after{clear:both}.o_feed .o_enclosure{clear:both}.o_glossary .o_register{text-align:center}.o_glossary .o_meta{font-size:90%;color:#777;font-style:italic}.o_glossary dl dt:first-letter{font-size:21px}.o_glossary dl dt small{color:#777}.o_tm_glossary{border-bottom:1px dotted #666699 !important}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_coaching div#o_main_toolbar.o_toolbar{margin-top:0px}.o_eff_statement_details .o_user_infos{margin-top:20px}div.o_assessment_user_type_filter{display:inline-block;padding:0.5em;border:1px solid #eee;border-radius:4px}div.o_assessment_user_type_filter div.form-inline,div.o_assessment_user_type_filter div.o_navbar-form{margin-left:5px;display:inline-block}div.panel.o_assessment_modes .o_table_body{margin-top:0}div.panel.o_assessment_modes .o_table_wrapper{margin-bottom:5px}div.o_assessment_mode_row{padding:0 15px}div.o_assessment_mode_row.o_assessment_today{padding:0 20px 0 12px;border-left:3px solid #3c763d;background-color:#dff0d8}div.o_assessment_mode_row.o_assessment_end_soon.o_assessment_today{padding:0 20px 0 12px;border-left:3px solid #a94442;background-color:#f2dede}.vitero_iframe{width:100%;height:100%;border:none;min-height:60em}.o_reminder_rule{padding:5px 0}.o_segments.btn-group a span{overflow:hidden;display:block;text-overflow:ellipsis}.o_segments_content{margin-top:20px}.o_segments.o_segments_linked .btn,.o_segments.o_segments_linked .btn:hover,.o_segments.o_segments_linked .btn:active,.o_segments.o_segments_linked .btn:focus{border:none;border-radius:0;box-shadow:none;background:none}.o_segments.o_segments_linked .btn-primary{color:#000;font-size:24px;background:none}.o_segments.o_segments_linked .btn-default,.o_segments.o_segments_linked .btn-default:hover,.o_segments.o_segments_linked .btn-default:active,.o_segments.o_segments_linked .btn-default:focus{color:#337ab7;background:none}.o_segments.o_segments_linked .o_segment_separator{color:#000}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d9534f}ul.o_assessment_docs{margin-bottom:0}ul.o_assessment_docs>li{margin-bottom:0.33em}ul.o_assessment_docs>li:last-child{margin-bottom:0em}.o_mail_message .o_mail_meta{background:#fafafa;border:1px solid #eee;padding:5px 10px}.o_mail_message .o_mail_meta h3{margin-top:0}.o_mail_message .o_mail_date,.o_mail_message .o_mail_from,.o_mail_message .o_mail_recipients{color:#777;font-size:90%}.o_mail_message .o_mail_date .o_label,.o_mail_message .o_mail_from .o_label,.o_mail_message .o_mail_recipients .o_label{font-weight:bold;margin-right:1em}.o_mail_message .o_mail_date .o_group span,.o_mail_message .o_mail_from .o_group span,.o_mail_message .o_mail_recipients .o_group span{font-weight:bold}.o_mail_message .o_mail_date .o_group span:after,.o_mail_message .o_mail_from .o_group span:after,.o_mail_message .o_mail_recipients .o_group span:after{content:':';margin-right:0.5em}.o_mail_message .o_mail_date i,.o_mail_message .o_mail_from i,.o_mail_message .o_mail_recipients i{margin-left:1em}.o_mail_message .o_mail_date ul.list-inline,.o_mail_message .o_mail_from ul.list-inline,.o_mail_message .o_mail_recipients ul.list-inline{display:inline}.o_mail_message .o_mail_date ul.list-inline li,.o_mail_message .o_mail_from ul.list-inline li,.o_mail_message .o_mail_recipients ul.list-inline li{padding-right:0;padding-left:0}.o_mail_message .o_more{margin-left:1em}.o_mail_message .o_showAllLink{float:right;font-size:80%}.progress .o_progress_marker{position:absolute;height:100%;top:0;width:3px;background:red}.progress .progress-bar{text-shadow:1px 1px 2px #000000}.o_progress_label_right{float:left;margin-right:10px}.o_web_content{padding-bottom:15px}.o_labeled_light,a.o_labeled_light,.o_labeled,a.o_labeled{display:inline-block;text-transform:uppercase;text-align:center;text-decoration:none;vertical-align:middle;font-size:75%;line-height:1;white-space:nowrap;border:1px solid;border-radius:3px;padding:2px 5px;background-color:#777;color:#fff;position:relative}.o_labeled_light,a.o_labeled_light{font-weight:bold;background-color:#f8f8f8}.o_ms_button{max-width:100%;width:100%;display:flex}.o_ms_button span:not(.o_ms_carret){text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.o_ms_button .o_ms_carret{margin:auto 0 auto auto}.o_ms_list{width:100%;height:auto;max-height:300px;overflow-x:hidden;top:unset}.o_disclaimer .o_disclaimer_content{max-height:50vh;overflow:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;background:#fbfbfb;padding:10px;border:1px solid #c2c2c2}.tt-input{width:400px}.tt-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fcfcfc;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.428571429}.tt-suggestion.tt-cursor,.tt-suggestion:hover{color:#fff;background-color:#337ab7}.tt-suggestion p{margin:0}.tt-menu div.o_icon_error:before{content:''}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_title h4 .o_icon-fw,.o_search_result_title .o_cal .fc-header-title h2 .o_icon-fw,.o_cal .fc-header-title .o_search_result_title h2 .o_icon-fw{text-align:left}.o_search_result_highlight{font-weight:bold;background-color:transparent}.o_search_result_context{display:inline-block;color:#3c763d;margin-right:1em}.o_search_result_license{display:inline-block;color:#777}.o_search_result_excerpt{color:#555}.o_search_result .o_opener{font-size:12px}.o_search_result .o_opener i{width:1em}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}.o_search_result_details .o_togglebox_wrapper .o_search_result_license i{font-size:20px}@media (max-width: 767px){.o_search_result_details{display:none}}.wizard{border:1px solid #d4d4d4;border-radius:2px;background-color:#f9f9f9;position:relative;overflow:hidden;margin-bottom:15px}.wizard ul{list-style:none outside none;padding:0;margin:0;width:4000px}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#333;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #d4d4d4;border-right:0;display:block;position:absolute;right:-14px;top:0;z-index:1}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.active{background:#f1f6fc;color:#333}.wizard ul li.active .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:first-child{border-radius:4px 0 0 4px;padding-left:20px}.o_process{position:relative;padding-left:25px}.o_process .o_step{position:relative;height:auto;padding-top:10px;padding-left:30px;padding-bottom:10px}.o_process .o_bar{position:absolute;top:10px;left:8px;height:100%;border-left:4px solid #777}.o_process .o_bar:after{position:absolute;top:0;left:-10px;height:16px;width:16px;border:4px solid #777;border-radius:16px;background:#fff;content:" "}.o_process .o_title{margin-top:-1px;color:#777 !important}.o_process .o_title:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;left:-24px}.o_process .o_title a:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";width:1em}.o_process .o_title a.collapsed:before{content:""}.o_process .o_step.o_active .o_bar,.o_process .o_step.o_active .o_bar:after{border-color:#337ab7}.o_process .o_step.o_active .o_title{color:#337ab7 !important}.o_process .o_step.o_active .o_title:before{content:"";color:#337ab7}.o_process .o_step.o_done .o_bar,.o_process .o_step.o_done .o_bar:after{border-color:#5094ce}.o_process .o_step.o_done .o_title{color:#5094ce !important}.o_process .o_step.o_done .o_title:before{content:"";color:#5cb85c}.o_process .o_meta{color:#777;font-size:12px;margin-top:-0.5em}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5D5D5D !important}.o_cal_class.o_cal_orange{border-left:20px solid #ffc266}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:#FFF !important}.o_cal_class.o_cal_green{border-left:20px solid #66c266}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:#FFF !important}.o_cal_class.o_cal_blue{border-left:20px solid #4d6e9f}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5D5D5D !important}.o_cal_class.o_cal_yellow{border-left:20px solid #ffe066}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:#FFF !important}.o_cal_class.o_cal_red{border-left:20px solid #c26666}.o_cal_rebeccapurple{background:#663399;border-color:#663399;color:#FFF}.o_cal_rebeccapurple .o_cal_wv_event_header{background:#663399}.o_cal_rebeccapurple a{color:#FFF !important}.o_cal_class.o_cal_rebeccapurple{border-left:20px solid #639}.o_cal_fuchsia{background:#FF00FF;border-color:#dd00dd;color:#FFF}.o_cal_fuchsia .o_cal_wv_event_header{background:#FF00FF}.o_cal_fuchsia a{color:#FFF !important}.o_cal_class.o_cal_fuchsia{border-left:20px solid #f0f}.o_cal_olive{background:#808000;border-color:#636300;color:#FFF}.o_cal_olive .o_cal_wv_event_header{background:#808000}.o_cal_olive a{color:#FFF !important}.o_cal_class.o_cal_olive{border-left:20px solid olive}.o_cal_navy{background:#000080;border-color:#000057;color:#FFF}.o_cal_navy .o_cal_wv_event_header{background:#000080}.o_cal_navy a{color:#FFF !important}.o_cal_class.o_cal_navy{border-left:20px solid navy}.o_cal_maroon{background:#800000;border-color:#740000;color:#FFF}.o_cal_maroon .o_cal_wv_event_header{background:#800000}.o_cal_maroon a{color:#FFF !important}.o_cal_class.o_cal_maroon{border-left:20px solid maroon}.o_cal_lime{background:#00FF00;border-color:#00e200;color:#004d00}.o_cal_lime .o_cal_wv_event_header{background:#00FF00}.o_cal_lime a{color:#004d00 !important}.o_cal_class.o_cal_lime{border-left:20px solid lime}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:#FFF !important}.o_cal_class.o_cal_grey{border-left:20px solid #DDDAAA}.o_sel_calendar_print_chooser{padding-right:4em}.o_cal_config_enabled,.o_cal_config_disabled{position:relative;float:left;display:inline}.o_cal_config_calendar{margin:0 5px;padding:1px 6px 1px 4px;position:relative;width:200px;overflow:hidden;float:left;display:inline}.o_cal_config_color{display:block;width:16px;height:16px;border-radius:8px}.o_cal_colorchooser_selected:before{content:""}#o_cal_colorchooser div{border:1px solid #337ab7;margin:5px;display:inline-block}#o_cal_colorchooser div:hover{border:1px solid #333}#o_cal_colorchooser a{width:20px;height:20px;display:inline-block}.o_cal_embedded_course_container .o_content_popup{top:0}.o_cal_wv_event_tooltip_content .o_cal_description{background-color:#f8f8f8;padding:10px 7px;margin:10px -7px}.o_cal_wv_event_tooltip_content .o_cal_tooltip_buttons{text-align:center;margin-top:20px}.o_cal_event_managed .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_not_managed .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_managed.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:" "}.o_cal_event_not_managed.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:" "}.fc-button{color:#333;background-color:#fcfcfc;border-color:#ccc}.fc-button:hover,.fc-button:focus,.fc-button.focus,.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{color:#333;background-color:#e3e3e3;border-color:#adadad}.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{background-image:none}.fc-button.disabled,.fc-button.disabled:hover,.fc-button.disabled:focus,.fc-button.disabled.focus,.fc-button.disabled:active,.fc-button.disabled.active,.fc-button[disabled],.fc-button[disabled]:hover,.fc-button[disabled]:focus,.fc-button[disabled].focus,.fc-button[disabled]:active,.fc-button[disabled].active,fieldset[disabled] .fc-button,fieldset[disabled] .fc-button:hover,fieldset[disabled] .fc-button:focus,fieldset[disabled] .fc-button.focus,fieldset[disabled] .fc-button:active,fieldset[disabled] .fc-button.active{background-color:#fcfcfc;border-color:#ccc}.fc-button .badge{color:#fcfcfc;background-color:#333}.fc-button.fc-state-default{text-shadow:none}.fc-button.fc-state-active{color:#fff;background-color:#337ab7;border-color:#2e6da4}.fc-button.fc-state-active:hover,.fc-button.fc-state-active:focus,.fc-button.fc-state-active.focus,.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{background-image:none}.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#337ab7;border-color:#2e6da4}.fc-button.fc-state-active .badge{color:#337ab7;background-color:#fff}.fc-listYear-button:before,.fc-listMonth-button:before,.fc-listWeek-button:before,.fc-listDay-button:before{content:"";margin-right:5px;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:80%;webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}table.fc-list-table .fc-list-item{background-color:white;color:#5D5D5D !important}table.fc-list-table .fc-list-item a,table.fc-list-table .fc-list-item span{color:#5D5D5D !important}body.o_cal_print fieldset{border:none;margin-bottom:2em}body.o_cal_print legend{font-size:2em;font-weight:bold}body.o_cal_print legend span{display:block;font-size:14px;font-weight:normal}body.o_cal_print ul.o_cal_wv_list{list-style-type:none;padding:0}body.o_cal_print ul.o_cal_wv_list>li{page-break-inside:avoid;margin-bottom:2em}body.o_cal_print ul.o_cal_wv_list .o_cal_date{font-size:1.25em;font-weight:bold;padding:0.5em 0 0.5em 0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events{list-style-type:none;padding:0.5em 0 0 0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event{position:relative;left:30px;page-break-inside:avoid;clear:both;margin-bottom:1.5em;padding-right:30px}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_time{float:left;font-weight:bold;margin-right:1em}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_subject{font-weight:bold}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_subject p{margin:0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_location,body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_description,body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_freebusy{clear:both}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_freebusy{font-style:italic}body.o_cal_print .o_cal_class{position:absolute;left:-30px;width:20px}body.o_cal_print #o_cal_config legend{font-size:1.25em}body.o_cal_print #o_cal_config .o_cal_config_calendar{margin:0;padding:0}body.o_cal_print #o_cal_config .o_cal_config_calendar{position:relative;left:30px;float:none;padding-right:30px}.o_page_content_editor .o_toolbar{border:none}.o_page_content_editor .o_page_part,.gu-mirror{border:2px solid transparent}.o_page_content_editor .o_page_part:hover,.gu-mirror:hover{border:2px dotted #78acd9}.o_page_fragment_edit{position:relative;display:grid}.o_page_fragment_edit .o_page_tools_above{height:25px;width:100%;background:#78acd9;position:absolute;z-index:3;left:0;top:-25px;box-shadow:3px -8px 10px 0px rgba(0,0,0,0.2)}.o_page_fragment_edit .o_page_tools_above .o_page_add_above{position:absolute;left:0;right:0;margin-left:auto;margin-right:auto;width:26px;top:-19px;height:19px;background-color:#78acd9;border-radius:10px 10px 0 0}.o_page_fragment_edit .o_page_tools_above .o_page_add_above .o_icon{color:#fff;background-color:#78acd9}.o_page_fragment_edit .o_page_tools_above .o_sel_add_element_above{display:inline-block;padding:3px 5px 0 7px}.o_page_fragment_edit .o_page_tools_above .o_page_others_above{padding-right:25px;line-height:25px;vertical-align:middle}.o_page_fragment_edit .o_page_tools_above .o_page_others_above .o_page_type{display:none}.o_page_fragment_edit .o_page_tools_above .o_page_others_above a{float:right;color:#fff;padding-right:1em}.o_page_fragment_edit .o_page_tools_above .o_page_others_above a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_tools_dd{position:absolute;z-index:4;top:0;right:0;width:25px;height:100%;background:#78acd9}.o_page_fragment_edit .o_page_tools_dd:before{content:' ';width:25px;height:100%;position:absolute;left:0;top:0;border:3px #78acd9 solid;border-bottom:28px #78acd9 solid;background-image:-webkit-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:-moz-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:-ms-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);-webkit-background-size:3px 3px;-moz-background-size:3px 3px;background-size:3px 3px}.o_page_fragment_edit .o_page_tools_dd a{position:absolute;display:inline-block;width:25px;height:25px;line-height:25px;text-align:center;vertical-align:middle;background:#78acd9;color:#fff}.o_page_fragment_edit .o_page_tools_dd a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_tools_dd a.o_disabled{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_tools_dd a.o_disabled:hover{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_tools_dd a.o_sel_move_up_element{z-index:4;top:-25px}.o_page_fragment_edit .o_page_tools_dd a.o_sel_move_down_element{bottom:0}.o_page_fragment_edit .o_page_part.o_page_edit{padding-right:23px;border:2px solid #78acd9;box-shadow:5px 5px 10px 0px rgba(0,0,0,0.2)}.o_page_fragment_edit .o_page_part.o_page_edit:hover{border:2px solid #78acd9}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar{position:absolute;z-index:5;left:5px;top:-25px;display:inline-block;height:25px;line-height:25px;vertical-align:middle}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a{color:#fff}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a.o_disabled{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a.o_disabled:hover{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_title .o_page_edit_toolbar li{font-weight:bold}.o_page_fragment_edit .o_page_part.o_page_edit .o_richtext_mce textarea{border:0}.o_page_fragment_edit .o_page_add_below{position:absolute;z-index:3;position:absolute;z-index:3;left:0;right:0;margin-left:auto;margin-right:auto;width:26px;bottom:-20px;height:22px;background-color:#78acd9;border-radius:0 0 10px 10px}.o_page_fragment_edit .o_page_add_below .o_icon{color:#fff;background-color:#78acd9}.o_page_fragment_edit .o_page_add_below .o_sel_add_element_below{display:inline-block;padding:0 5px 5px 5px;margin:0px 0px 0px 2px}.o_page_fragment_edit.gu-mirror .o_page_add_below,.o_page_fragment_edit.gu-mirror .o_page_add_above,.o_page_fragment_edit.gu-transit .o_page_add_below,.o_page_fragment_edit.gu-transit .o_page_add_above{display:none}.o_page_container_slot.col-md-3 .o_page_others_above a span,.o_page_container_slot.col-md-4 .o_page_others_above a span{display:none}.o_page_container_slot.col-md-3 .o_page_edit_toolbar ul>li,.o_page_container_slot.col-md-4 .o_page_edit_toolbar ul>li{padding-right:0}div.o_page_content_editor .gu-mirror,.o_page_content_editor .gu-transit{box-shadow:none}.o_page_container{box-sizing:border-box;padding:10px}.o_page_container{background-color:transparent}.o_page_container .o_page_container{background-color:transparent}.o_page_container .o_page_container .o_page_container{background-color:transparent}.o_page_container_slot{box-sizing:border-box;margin:0 -1px -1px 0;padding:10px}.o_page_container .o_page_container_slot{border:2px dotted #eee}.o_page_container:hover .o_page_container_slot{border:2px dotted #ef00ef}.o_page_add_in_container_grp{margin-bottom:0}.gu-transit{border:2px dotted #e80c96;opacity:0.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40)}.gu-mirror{border:2px dotted #78acd9;opacity:0.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80)}.o_page_add_callout a span{display:none}.o_page_add_callout ul.list-inline{margin-bottom:0}.o_page_table_edition .o_table_title,.o_page_table_edition .o_table_caption{padding:5px}.o_page_with_side_options_wrapper{display:flex;align-items:stretch;flex-direction:row}.o_page_side_options_target{background-color:#f9f9f9;flex-grow:4}.o_page_side_options{flex-grow:0;background-color:#78acd9;border-left:1px solid #b9b9b9;border-bottom:1px solid #b9b9b9;padding:5px;z-index:2}@media (max-width: 767px){.o_page_with_side_options_wrapper{flex-direction:column-reverse}}.o_page_content .o_image,.o_page_content .o_video,.o_page_content_editor .o_image,.o_page_content_editor .o_video{width:100%}.o_page_content .o_image img,.o_page_content .o_video img,.o_page_content_editor .o_image img,.o_page_content_editor .o_video img{border:1px #f8f8f8 solid;border-radius:10px}.o_page_content .o_image .o_artefact_metadata,.o_page_content .o_video .o_artefact_metadata,.o_page_content_editor .o_image .o_artefact_metadata,.o_page_content_editor .o_video .o_artefact_metadata{text-align:left}.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left{float:left}.o_page_content .o_image.o_image_align_left+.o_image_clear,.o_page_content .o_video.o_image_align_left+.o_image_clear,.o_page_content_editor .o_image.o_image_align_left+.o_image_clear,.o_page_content_editor .o_video.o_image_align_left+.o_image_clear{clear:both}.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right{float:right}.o_page_content .o_image.o_image_align_right+.o_image_clear,.o_page_content .o_video.o_image_align_right+.o_image_clear,.o_page_content_editor .o_image.o_image_align_right+.o_image_clear,.o_page_content_editor .o_video.o_image_align_right+.o_image_clear{clear:both}.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle{clear:both;margin-left:50%;text-align:center;transform:translate(-50%, 0%)}.o_page_content .o_image.o_image_align_leftfloat,.o_page_content .o_video.o_image_align_leftfloat,.o_page_content_editor .o_image.o_image_align_leftfloat,.o_page_content_editor .o_video.o_image_align_leftfloat{float:left;padding-right:10px;padding-bottom:10px}.o_page_content .o_image.o_image_align_rightfloat,.o_page_content .o_video.o_image_align_rightfloat,.o_page_content_editor .o_image.o_image_align_rightfloat,.o_page_content_editor .o_video.o_image_align_rightfloat{float:right;padding-left:10px;padding-bottom:10px}.o_page_content .o_image.o_image_size_style_small,.o_page_content .o_video.o_image_size_style_small,.o_page_content_editor .o_image.o_image_size_style_small,.o_page_content_editor .o_video.o_image_size_style_small{width:25%}.o_page_content .o_image.o_image_size_style_small img,.o_page_content .o_video.o_image_size_style_small img,.o_page_content_editor .o_image.o_image_size_style_small img,.o_page_content_editor .o_video.o_image_size_style_small img{width:100%}.o_page_content .o_image.o_image_size_style_medium,.o_page_content .o_video.o_image_size_style_medium,.o_page_content_editor .o_image.o_image_size_style_medium,.o_page_content_editor .o_video.o_image_size_style_medium{width:40%}.o_page_content .o_image.o_image_size_style_medium img,.o_page_content .o_video.o_image_size_style_medium img,.o_page_content_editor .o_image.o_image_size_style_medium img,.o_page_content_editor .o_video.o_image_size_style_medium img{width:100%}.o_page_content .o_image.o_image_size_style_large,.o_page_content .o_video.o_image_size_style_large,.o_page_content_editor .o_image.o_image_size_style_large,.o_page_content_editor .o_video.o_image_size_style_large{width:60%}.o_page_content .o_image.o_image_size_style_large img,.o_page_content .o_video.o_image_size_style_large img,.o_page_content_editor .o_image.o_image_size_style_large img,.o_page_content_editor .o_video.o_image_size_style_large img{width:100%}.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill{width:100%;float:none !important;display:block}.o_page_content .o_image.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content .o_video.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content_editor .o_image.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content_editor .o_video.o_image_size_style_fill .o_figure_caption_bottom{display:block}.o_page_content .o_image.o_image_size_style_fill img,.o_page_content .o_video.o_image_size_style_fill img,.o_page_content_editor .o_image.o_image_size_style_fill img,.o_page_content_editor .o_video.o_image_size_style_fill img{width:100%;display:block}.o_page_content .o_image img.o_image_classic,.o_page_content .o_video img.o_image_classic,.o_page_content_editor .o_image img.o_image_classic,.o_page_content_editor .o_video img.o_image_classic{padding:0;border:0;border-radius:0}.o_page_content .o_image img.o_image_border,.o_page_content .o_video img.o_image_border,.o_page_content_editor .o_image img.o_image_border,.o_page_content_editor .o_video img.o_image_border{padding:3px;border:solid 1px #CCC}.o_page_content .o_image img.o_image_shadow,.o_page_content .o_video img.o_image_shadow,.o_page_content_editor .o_image img.o_image_shadow,.o_page_content_editor .o_video img.o_image_shadow{padding:0;border:0;-moz-box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);-webkit-box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.o_page_content .o_image img.o_image_frame,.o_page_content .o_video img.o_image_frame,.o_page_content_editor .o_image img.o_image_frame,.o_page_content_editor .o_video img.o_image_frame{padding:0;border:0;border-radius:0;-moz-box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);-webkit-box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);margin:15px}.o_page_content .o_image img.o_image_polaroid,.o_page_content .o_video img.o_image_polaroid,.o_page_content_editor .o_image img.o_image_polaroid,.o_page_content_editor .o_video img.o_image_polaroid{padding:0;border-radius:0;border:1px solid #dcdcdc;background:#fff;padding:10px 10px 45px 10px;-webkit-box-shadow:3px 3px 3px rgba(0,0,0,0.2);-moz-box-shadow:3px 3px 3px rgba(0,0,0,0.2);box-shadow:3px 3px 3px rgba(0,0,0,0.2)}.o_page_content .o_image img.o_image_round,.o_page_content .o_video img.o_image_round,.o_page_content_editor .o_image img.o_image_round,.o_page_content_editor .o_video img.o_image_round{padding:3px;border:solid 1px #CCC;border-radius:50%}.o_page_content .o_image .o_image_title_dark,.o_page_content .o_video .o_image_title_dark,.o_page_content_editor .o_image .o_image_title_dark,.o_page_content_editor .o_video .o_image_title_dark{color:#000}.o_page_content .o_image .o_image_title_bright,.o_page_content .o_video .o_image_title_bright,.o_page_content_editor .o_image .o_image_title_bright,.o_page_content_editor .o_video .o_image_title_bright{color:#f9f9f9}.o_page_content .o_image .o_image_title,.o_page_content .o_video .o_image_title,.o_page_content_editor .o_image .o_image_title,.o_page_content_editor .o_video .o_image_title{position:relative}.o_page_content .o_image .o_image_title .o_image_title_top,.o_page_content .o_image .o_image_title .o_image_title_centered,.o_page_content .o_image .o_image_title .o_image_title_bottom,.o_page_content .o_video .o_image_title .o_image_title_top,.o_page_content .o_video .o_image_title .o_image_title_centered,.o_page_content .o_video .o_image_title .o_image_title_bottom,.o_page_content_editor .o_image .o_image_title .o_image_title_top,.o_page_content_editor .o_image .o_image_title .o_image_title_centered,.o_page_content_editor .o_image .o_image_title .o_image_title_bottom,.o_page_content_editor .o_video .o_image_title .o_image_title_top,.o_page_content_editor .o_video .o_image_title .o_image_title_centered,.o_page_content_editor .o_video .o_image_title .o_image_title_bottom{position:absolute;left:50%;margin-right:-50%;transform:translate(-50%, -50%)}.o_page_content .o_image .o_image_title .o_image_title_top,.o_page_content .o_video .o_image_title .o_image_title_top,.o_page_content_editor .o_image .o_image_title .o_image_title_top,.o_page_content_editor .o_video .o_image_title .o_image_title_top{top:10%}.o_page_content .o_image .o_image_title .o_image_title_centered,.o_page_content .o_video .o_image_title .o_image_title_centered,.o_page_content_editor .o_image .o_image_title .o_image_title_centered,.o_page_content_editor .o_video .o_image_title .o_image_title_centered{top:50%}.o_page_content .o_image .o_image_title .o_image_title_bottom,.o_page_content .o_video .o_image_title .o_image_title_bottom,.o_page_content_editor .o_image .o_image_title .o_image_title_bottom,.o_page_content_editor .o_video .o_image_title .o_image_title_bottom{bottom:10%}.o_page_content .o_image.o_image_size_style_none .o_image_title_top,.o_page_content .o_image.o_image_size_style_none .o_image_title_centered,.o_page_content .o_image.o_image_size_style_none .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_none .o_image_title_top,.o_page_content .o_video.o_image_size_style_none .o_image_title_centered,.o_page_content .o_video.o_image_size_style_none .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_bottom{font-size:24px}.o_page_content .o_image.o_image_size_style_small .o_image_title_top,.o_page_content .o_image.o_image_size_style_small .o_image_title_centered,.o_page_content .o_image.o_image_size_style_small .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_small .o_image_title_top,.o_page_content .o_video.o_image_size_style_small .o_image_title_centered,.o_page_content .o_video.o_image_size_style_small .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_bottom{font-size:18px}.o_page_content .o_image.o_image_size_style_medium .o_image_title_top,.o_page_content .o_image.o_image_size_style_medium .o_image_title_centered,.o_page_content .o_image.o_image_size_style_medium .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_medium .o_image_title_top,.o_page_content .o_video.o_image_size_style_medium .o_image_title_centered,.o_page_content .o_video.o_image_size_style_medium .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_bottom{font-size:32px}.o_page_content .o_image.o_image_size_style_large .o_image_title_top,.o_page_content .o_image.o_image_size_style_large .o_image_title_centered,.o_page_content .o_image.o_image_size_style_large .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_large .o_image_title_top,.o_page_content .o_video.o_image_size_style_large .o_image_title_centered,.o_page_content .o_video.o_image_size_style_large .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_bottom{font-size:40px}.o_page_content .o_image.o_image_size_style_fill .o_image_title_top,.o_page_content .o_image.o_image_size_style_fill .o_image_title_centered,.o_page_content .o_image.o_image_size_style_fill .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_fill .o_image_title_top,.o_page_content .o_video.o_image_size_style_fill .o_image_title_centered,.o_page_content .o_video.o_image_size_style_fill .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_bottom{font-size:56px}.o_page_add_contents{clear:both;margin-top:30px}.o_ce_html_raw.o_html_col2,.o_ce_html_paragraph.o_html_col2{column-count:2;column-gap:1em}.o_ce_html_raw.o_html_col3,.o_ce_html_paragraph.o_html_col3{column-count:3;column-gap:1em}.o_ce_html_raw.o_html_col4,.o_ce_html_paragraph.o_html_col4{column-count:4;column-gap:1em}table.o_ce_table caption{caption-side:bottom}.o_ce_add_main_btns{margin-top:2em}.o_ce_add{border:none;margin-bottom:0px}.o_ce_add .o_ce_tools{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.o_ce_add .o_ce_tools .o_ce_tool{padding:0px;margin:0px;width:33%}.o_ce_add .o_ce_tools .o_ce_tool a{padding:6px 3px;margin:0px;display:block;width:100%;height:100%}.o_ce_add .o_ce_tools .o_ce_tool a:hover{padding:5px 2px;border:1px solid #e7e7e7;border-radius:4px}.o_ce_add_list .o_ce_add_list_item{border-style:none;padding:0px;margin:0px -15px}.o_ce_add_list .o_ce_add_list_item a{padding:5px 25px;margin:0px;display:block;width:100%;height:100%}.o_ce_add_list .o_ce_add_list_item a:hover{text-decoration:none;background-color:#f5f5f5}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #ccc;border-radius:4px;background:#fcfcfc;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{box-sizing:content-box;border-top-left-radius:4px;border-bottom-left-radius:4px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual .o_visual_not_available{background-color:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #ccc;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0;border-bottom-right-radius:4px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#337ab7;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#f0ad4e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;background:#fcfcfc;border-left:1px solid #ccc;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#337ab7}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#286090}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:normal;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d;background:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;z-index:2px;background:#fcfcfc;padding:0 3px 3px 3px;border-radius:0px 0px 3px 3px;font-size:90%;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em;background:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#337ab7;border-top-right-radius:4px;border-bottom-right-radius:4px}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac ul{display:inline-block}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#337ab7}.o_catalog .o_level .o_meta .o_title a:hover{color:#286090}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #ccc;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #ccc;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em;overflow:hidden}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels_list .o_sublevel.o_fill_sublevels{border:1px solid transparent}.o_catalog .o_sublevels_list .o_sublevel.o_fill_sublevels .o_meta{border-left:1px solid transparent}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #ccc;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #ccc;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#337ab7;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#286090}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}.o_repo_details{position:relative}.o_repo_details .o_lead{margin-bottom:10px}.o_repo_details .o_lead .o_author{margin-top:0.5em;margin-bottom:1em;font-size:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_repo_details .o_lead .o_media{float:right;margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead .o_media.o_desc_empty{float:none;margin-left:0;margin-bottom:0}.o_repo_details .o_lead h1{font-size:37px}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start_wrapper{clear:both;margin:2em 0 -10px 0;text-align:right}.o_repo_details .o_start_wrapper .o_start_inner{display:inline-block}.o_repo_details .o_start,.o_repo_details .o_book{max-width:400px;display:inline-block}.o_repo_details .o_social:before,.o_repo_details .o_social:after{content:" ";display:table}.o_repo_details .o_social:after{clear:both}.o_repo_details .o_social .o_rating_wrapper{float:left}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-left:0;float:none;text-align:center}.o_repo_details .o_start_wrapper{text-align:center}.o_repo_details .o_start_wrapper .o_start_inner{display:block}.o_repo_details .o_start,.o_repo_details .o_book{max-width:100%;display:block}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}}.o_meta .o_closed{padding:2px 5px;margin:5px 0}.o_overview .o_closed{padding:12px 15px;margin:15px 0}.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.o_ac_configuration div.o_ac_method{background-color:#efefef;padding:5px;border-radius:3px}.o_ac_configuration div.o_ac_methods.form-group{padding-bottom:0;margin-bottom:0}.o_repo_with_explanation{padding-bottom:0;margin-bottom:0}.o_repo_explanation{color:#f0ad4e}tr.o_entry_closed,tr.o_entry_closed td,tr.o_entry_closed td span,tr.o_entry_unpublished,tr.o_entry_unpublished td,tr.o_entry_unpublished td span{text-decoration:line-through}a.o_repo_tools_status{cursor:pointer;margin:0 2px 2px 2px;text-align:left}.o_labeled.o_repo_status_preparation,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_preparation{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_labeled.o_repo_status_review,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_review{background-color:#FCCA46;border-color:#FCCA46;color:#fff}.o_labeled.o_repo_status_coachpublished,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_coachpublished{background-color:#1DC63F;border-color:#1DC63F;color:#fff}.o_labeled.o_repo_status_published,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_published{background-color:#14892c;border-color:#14892c;color:#fff}.o_labeled.o_repo_status_closed,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_closed{background-color:#99583D;border-color:#99583D;color:#fff}.o_labeled.o_repo_status_trash,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_trash{background-color:#5A5958;border-color:#5A5958;color:#fff}.o_labeled.o_repo_status_deleted,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_deleted{background-color:#888;border-color:#888;color:#fff}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_preparation{background-color:#384e64}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_review{background-color:#fbbc14}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_coachpublished{background-color:#169a31}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_published{background-color:#0e5c1e}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_closed{background-color:#75432e}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_trash{background-color:#40403f}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_deleted{background-color:#6f6f6f}.o_labeled_light.o_repo_status_preparation,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_preparation{border-color:#4a6785;color:#4a6785}.o_labeled_light.o_repo_status_review,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_review{border-color:#FCCA46;color:#FCCA46}.o_labeled_light.o_repo_status_coachpublished,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_coachpublished{border-color:#1DC63F;color:#1DC63F}.o_labeled_light.o_repo_status_published,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_published{border-color:#14892c;color:#14892c}.o_labeled_light.o_repo_status_closed,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_closed{border-color:#99583D;color:#99583D}.o_labeled_light.o_repo_status_trash,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_trash{border-color:#5A5958;color:#5A5958}.o_labeled_light.o_repo_status_deleted,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_deleted{border-color:#888;color:#888}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run .o_in_review{font-style:italic;position:relative}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_course_run .o_cal_toptoolbar{margin-right:26px}.o_course_run .o_titled_wrapper .o_cal_toptoolbar{margin-right:0px}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_ll_container h5{margin-bottom:5px}.o_ll_container h5 a.o_desc{color:#337ab7}.o_ll_container h5 a.o_desc small{display:none}.o_ll_container h5 a.o_desc:hover{color:#286090;text-decoration:none}.o_ll_container h5 a.o_desc:hover small{color:#5e5e5e;display:inline}.o_ll_container div.o_comment{color:#777}.o_cmembers .o_cmember{margin:12px 0;display:table}.o_cmembers .o_cmember .o_portrait{padding-right:10px;display:table-cell;vertical-align:top;min-width:60px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{display:table-cell;vertical-align:middle;color:#777}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}.o_cmembers .o_cmember .o_curriculum_displayname,.o_cmembers .o_cmember .o_curriculum_root_el_identifier,.o_cmembers .o_cmember .o_curriculum_root_el_displayname{font-size:12px}.o_cmembers .o_cmember a.o_mail{display:none}.o_cmembers .o_cmember:hover a.o_mail{display:inline}.o_cmembers_print{color:#000}.o_cmembers_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_cmembers_print #o_print_brand img{width:100%}.o_cmembers_print .o_portrait{width:100px;height:100px;position:relative}.o_cmembers_print .o_portrait img{border-radius:0px;max-width:100%;max-height:100%;width:auto;height:auto;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.o_cmembers_print .o_cmember{padding-left:0px;padding-right:15px;margin-bottom:20px}.o_cmembers_print .o_cmember .o_cmember_info_wrapper{word-wrap:break-word}.o_cmembers_print .o_cmember .o_prop.o_zipCode{float:left;padding-right:0.5em}.o_cmembers_print h1{font-size:18pt;color:#000}.o_cmembers_print h3{font-size:14pt;margin-top:5px;font-weight:normal;color:#000}.o_cmembers_print h4,.o_cmembers_print .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_cmembers_print h2{font-size:11pt;font-weight:strong;color:#000;padding-bottom:10px;border-bottom:1px solid #eee}.o_cmembers_print .o_cmember_info_wrapper{font-size:7pt;color:#000}.o_cmembers_print .o_cmember_info_wrapper strong{font-size:8pt}.tag.label.label-info{margin-right:3px}.input-group.o_tag_inputgroup .form-control{height:auto}div.o_correction_navigation .o_correction_navigation_back{float:left;line-height:32px}div.o_correction_navigation .o_correction_navigation_previous{position:absolute;right:50%;margin-right:102px}div.o_correction_navigation #o_cocurrent_item_SELBOX{width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute;left:50%;margin-left:-100px}div.o_correction_navigation .o_correction_navigation_next{position:absolute;left:50%;margin-left:102px}@media (max-width: 767px){div.o_correction_navigation .o_correction_navigation_previous span,div.o_correction_navigation .o_correction_navigation_next span{display:none}}.o_ms_stack_panel .o_toolbar{margin-top:0px}.o_ms_bold{font-weight:bold}.o_ms_legend{padding:5px}.o_ms_legend li{display:block;font-size:90%}.o_ms_legend .ident{font-weight:bold}.o_browser_ie10 .o_paella_wrapper iframe,.o_browser_ie11 .o_paella_wrapper iframe{display:none}.o_browser_ie10 .o_paella_wrapper .o_paella_error,.o_browser_ie11 .o_paella_wrapper .o_paella_error{display:block}.o_paella_wrapper iframe{width:100%;height:400px}@media (max-width: 768px){.o_paella_wrapper iframe{height:300px}}.o_paella_wrapper .o_paella_error{display:none}.o_curriculum_el_listing tr.o_curriculum_element_inactive,.o_curriculum_el_listing tr.o_curriculum_element_inactive td,.o_curriculum_el_listing tr.o_curriculum_element_inactive td span,.o_curriculum_el_listing tr.o_curriculum_element_inactive td a{color:#777}.o_curriculum_el_listing tr.o_curriculum_element_unfiltered,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td span,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td a{color:#aaa}.o_curriculum_el_listing tr.o_curriculum_element_deleted,.o_curriculum_el_listing tr.o_curriculum_element_deleted td,.o_curriculum_el_listing tr.o_curriculum_element_deleted td span,.o_curriculum_el_listing tr.o_curriculum_element_deleted td a{color:#777;text-decoration:line-through}.o_curriculumtable tr.o_curriculum_element_l0 td:nth-thild(first){padding-left:0px}.o_curriculumtable tr.o_curriculum_element_l1 td:nth-thild(first){padding-left:15px}.o_curriculumtable tr.o_curriculum_element_l2 td:nth-thild(first){padding-left:30px}.o_curriculumtable tr.o_curriculum_element_l3 td:nth-thild(first){padding-left:45px}.o_curriculumtable tr.o_curriculum_element_l4 td:nth-thild(first){padding-left:60px}.o_curriculumtable tr.o_curriculum_element_l5 td:nth-thild(first){padding-left:75px}.o_curriculumtable tr.o_curriculum_element_l6 td:nth-thild(first){padding-left:90px}.o_curriculumtable tr.o_curriculum_element_l7 td:nth-thild(first){padding-left:105px}.o_curriculumtable tr.o_curriculum_element_l8 td:nth-thild(first){padding-left:120px}.o_curriculumtable tr.o_curriculum_element_l9 td:nth-thild(first){padding-left:135px}.o_curriculumtable tr.o_curriculum_element_l10 td:nth-thild(first){padding-left:150px}.o_curriculumtable tr.o_curriculum_element_l11 td:nth-thild(first){padding-left:165px}.o_curriculumtable tr.o_curriculum_element_inactive,.o_curriculumtable tr.o_curriculum_element_inactive td,.o_curriculumtable tr.o_curriculum_element_inactive td span{color:#777}.o_curriculumtable tr.o_curriculum_element_deleted,.o_curriculumtable tr.o_curriculum_element_deleted td,.o_curriculumtable tr.o_curriculum_element_deleted td span{color:#777;text-decoration:line-through}.o_curriculumtable.o_rendertype_custom .container-fluid{padding-left:0;padding-right:0}.o_curriculumtable.o_rendertype_custom .o_table_row{position:relative;vertical-align:top;margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row:before,.o_curriculumtable.o_rendertype_custom .o_table_row:after{content:" ";display:table}.o_curriculumtable.o_rendertype_custom .o_table_row:after{clear:both}.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{background:none;border:none;position:relative}.o_curriculumtable.o_rendertype_custom .o_table_row .o_ext_id{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_hierarchy_info{display:none;position:absolute;top:0;right:30px;font-size:70%;z-index:5;background:gold}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_title{margin-top:0;margin-bottom:0;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_title small{white-space:nowrap}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars{padding-left:6px;color:#777}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle.o_active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars.o_active{color:#3c763d}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle.o_active:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars.o_active:hover{color:#2b542c}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_desc{padding:6px 6px 16px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_empty{font-style:italic;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{position:relative;padding-left:132px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:50px;padding-left:87px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_visual{left:0;border:none;background-color:#fff;max-height:80px;max-width:120px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_author,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_location,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_lifecycle{color:#3c763d}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state{position:absolute;right:0;bottom:30px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_failed{font-weight:normal}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_state,.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_score{display:inline-block}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_state+.o_score:before{content:', '}.o_curriculumtable.o_rendertype_custom .o_table_row .o_bookmark{position:absolute;top:-1px;right:2px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access{position:absolute;bottom:0;right:0;overflow:hidden;width:180px;height:30px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start{right:0;color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#337ab7;border-color:#2e6da4}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#337ab7;background-color:#fff}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_author,.o_curriculumtable.o_rendertype_custom .o_table_row .o_bookmark,.o_curriculumtable.o_rendertype_custom .o_table_row .o_lifecycle,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_desc,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_desc,.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state,.o_curriculumtable.o_rendertype_custom .o_table_row .o_details{display:none}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_row_inner_wrapper{background:#f6f6f6;border:1px solid #eee}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_element_title{background:transparent;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_element_title{background:#ebebeb;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry{display:inline-block;width:50%;border-right:12px solid transparent;margin-top:0 !important}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry_title{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_row_inner_wrapper{background:#f6f6f6;border:1px solid #eee}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_element_title{background:transparent;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_element_title{background:#ebebeb;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_calendars{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{background:#f6f6f6;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{background:none;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_entry{min-height:50px}}@media print{.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state{position:relative;bottom:0}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access{display:none}}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}td.o_qti_item_kprim_text{width:80%}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}.d3chart circle.bubble_green{fill:#5cb85c}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0;vertical-align:bottom}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:""}.o_qti_menu_item_attempts_marked:after{content:"";color:#337ab7}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}ul.sessionControl{list-style:none;margin:1em;text-align:center}ul.sessionControl li{display:inline;padding:0.2em}.association{margin:20px 20px 20px 40px;background:transparent url("../light/images/association_bg.png") repeat-x center center}.o_associate_item{padding:5px;margin:0 15px 10px 0;border:2px solid #999}.o_associate_item.oo-selected{border:2px solid #337ab7}.o_associate_item.oo-choosed{border:none !important}.o_associate_item.oo-drag{border:2px solid #337ab7 !important}.association_box{border:3px dotted #999}.association_box.oo-filled{border:3px solid #999}.association_box{background-color:white}.prompt{font-weight:bold}.sketch{position:relative;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}#tmp_canvas{position:absolute;left:0px;right:0;bottom:0;top:0;cursor:crosshair;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}#colors .black .o_icon:before{color:#000000}#colors .blue .o_icon:before{color:#0000FF}#colors .green .o_icon:before{color:#008000}#colors .yellow .o_icon:before{color:#FFFF00}#colors .red .o_icon:before{color:#FF0000}#colors .purple .o_icon:before{color:#800080}.o_gap_item{padding:5px;margin:5px;background-repeat:no-repeat;background-position:center center}.o_gap_item.oo-choosed{position:relative;left:auto;top:auto;padding:3px;margin:0}.o_gap_item.oo-selected{border:3px solid #337ab7}.o_item_container_help,.o_items_container_help{font-size:90%;font-style:italic;color:#777;padding:5px}.items_container{padding:15px}.items_container .o_item{float:left}#o_qti_hotspots_edit{min-height:100px;min-width:400px;background-repeat:no-repeat}#o_qti_hotspots_edit.o_qti_hotspot-standard .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-standard .o_draw_rectangle{background-color:rgba(255,255,255,0.5);border-color:#6E6E6E}#o_qti_hotspots_edit.o_qti_hotspot-standard .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-standard .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(45,0,255,0.5);border-color:#0000ff}#o_qti_hotspots_edit.o_qti_hotspot-light .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-light .o_draw_rectangle{background-color:rgba(221,221,221,0);border-color:#7E7E7E}#o_qti_hotspots_edit.o_qti_hotspot-light .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-light .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(51,122,183,0.05);border-color:#337ab7}#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_draw_rectangle{background-color:rgba(110,110,110,0.5);border-color:#3E3E3E}#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(222,222,222,0.2);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-green .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-green .o_draw_rectangle{background-color:rgba(142,142,142,0.25);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-green .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-green .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(134,195,81,0.5);border-color:#518b33}#o_qti_hotspots_edit.o_qti_hotspot-purple .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-purple .o_draw_rectangle{background-color:rgba(142,142,142,0.33);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-purple .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-purple .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(234,168,255,0.5);border-color:#ab47cb}div.hotspotInteraction{overflow-x:auto}img.o_hotspot_responsive[usemap]{max-width:100%;width:auto;height:auto}.form-inline.o_qti_gaptext_add_first_alternative,.o_qti_gaptext_add_first_alternative.o_navbar-form{padding:9px 0 3px 0}.form-inline.o_qti_gaptext_add_alternative,.o_qti_gaptext_add_alternative.o_navbar-form{margin-bottom:3px}.o_qti_gaptext_alternatives{background-color:#eee;color:#555;border:1px solid #eee;border-radius:4px;padding:2px 5px}.o_qti_item_body .extendedTextInteraction{margin:15px 0}.o_qti_item_body .extendedTextInteraction textarea{resize:vertical !important;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_qti_item_body .extendedTextInteraction pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_qti_item_body .extendedTextInteraction .o_qti_essay_last_save{padding:2px 2px;font-style:italic;font-size:90%;text-align:right}.extendedTextInteraction div.form-control.textarea_disabled{white-space:pre-wrap;height:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;color:#555 !important}#o_qti_run_title{margin:0 15px 0.5em 15px}#o_qti_run_title h3{margin:15px 0 0 0}#o_qti_run_infos{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:10px 0;margin:0 15px 1em 15px}#o_qti_run_infos .progress{background-color:#eee}#o_qti_run_infos #o_qti_scoreinfo .progress-bar{background-color:#337ab7}.progress-striped #o_qti_run_infos #o_qti_scoreinfo .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}#o_qti_run_infos #o_qti_questioninfo .progress-bar{background-color:#337ab7}.progress-striped #o_qti_run_infos #o_qti_questioninfo .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}#o_qti_run_infos #o_qti_run_scoreinfo,#o_qti_run_infos #o_qti_run_scoreprogress{white-space:nowrap}#o_qti_results_infos{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:10px 0;margin:0 0 1em 0}#o_qti_results_infos .progress{background-color:#eee}#o_qti_results_infos #o_qti_run_scoreinfo,#o_qti_results_infos #o_qti_run_scoreprogress{white-space:nowrap}#o_qti_assessment_test_timer{border:1px solid #e7e7e7;border-radius:4px;padding:10px;margin:0 15px 1em 15px}#o_qti_assessment_test_timer.o_10_minutes{background-color:#fcf8e3}#o_qti_assessment_test_timer.o_5_minutes{background-color:#f2dede}#o_qti_assessment_test_timer.o_panic{background-color:#ce8383}#o_qti_assessment_test_timer.o_15_seconds{background-color:#fcf8e3}#o_qti_assessment_test_timer.o_panic{background-color:#f2dede}#o_qti_assessment_test_timer .o_qti_times_up{padding-left:2em;font-weight:bold}#o_qti_assessment_test_timer .o_qti_times_message{padding-left:2em;font-weight:bold}.o_draw_circle.o_qti_hotspot_correct,.o_draw_rectangle.o_qti_hotspot_correct{background-color:rgba(229,255,204,0.6)}#width_range_ui,#opacity_range_ui{width:120px}.o_slider_width_range,.o_slider_opacity_range{margin:3px 10px 0 0}.o_qti_hotspot_label{padding-left:48%}.o_assessmentsection_rubrics_wrapper{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:4px;padding:5px 10px;margin:0 0 0.5em 0}.o_assessmentsection_rubrics_correction_wrapper{background:#f8f8f8;border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;padding:5px 10px}.o_info.o_assessmentsection_rubrics{margin:5px -10px;position:relative;display:block}.o_info.o_assessmentsection_rubrics.o_hide{display:none}.o_info.o_assessmentsection_rubrics a.o_hide{position:absolute;bottom:0.5em;right:1em}.o_assessmentitem h1{margin-bottom:0}.o_assessmentitem div.badResponse,.o_assessmentitem span.badResponse{color:#d9534f;font-weight:bold}.o_assessmentitem input.badResponse{border:1px solid #d9534f}.o_assessmentitem .infoControl input{margin-right:0.5em}.o_assessmentitem .infoControl .infoControlContent{display:none}.o_assessmentitem .sliderInteraction{margin:1em}.o_assessmentitem .sliderInteraction .sliderVertical .sliderValue{margin:1em 0}.o_assessmentitem .sliderInteraction .sliderVertical .sliderWidget{height:200px}.o_assessmentitem .sliderInteraction .sliderHorizontal .sliderValue{text-align:center}.o_assessmentitem div.orderInteraction div.highlight{border:1px solid #d9534f}.o_assessmentitem div.orderInteraction div.box.vertical{width:50%;float:left;position:relative;padding:0;margin-top:5px}.o_assessmentitem div.orderInteraction div.box.vertical ul{min-height:200px}.o_assessmentitem div.orderInteraction div.box.horizontal ul{min-height:50px;width:100%}.o_assessmentitem div.orderInteraction div.box.source{padding:5px 10px;border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8}.o_assessmentitem div.orderInteraction div.box.source.horizontal{padding:5px 10px 15px 10px}.o_assessmentitem div.orderInteraction div.box.target ul{border:2px solid #5bc0de;border-radius:4px;background:#d9edf7}.o_assessmentitem div.orderInteraction div.box.target ul.oo-accepted{border-color:#1f7e9a}.o_assessmentitem div.orderInteraction div.box.target.vertical{padding:6px 0 0 10px}.o_assessmentitem div.orderInteraction div.box.target.vertical ul{padding:10px}.o_assessmentitem div.orderInteraction div.box.target.horizontal{padding-top:10px}.o_assessmentitem div.orderInteraction div.box.target.horizontal ul{padding:10px 10px 0 10px}.o_assessmentitem div.orderInteraction div.box.horizontal ul li{float:left;width:auto;margin-right:10px;min-width:50px}.o_assessmentitem div.orderInteraction div.box span.info{color:#666;font-style:italic;font-size:smaller}.o_assessmentitem div.orderInteraction ul{list-style-type:none;margin:0;padding:0}.o_assessmentitem .hottext{position:relative;margin:-2px 0.15em -2px 0.15em;white-space:nowrap}.o_assessmentitem .hottext input{margin:0 3px 0 2px;position:absolute;top:0.1em;left:0.05em}.o_assessmentitem .hottext input+label{display:inline;padding:0 0.1em 0 1.2em;background:#f8f8f8;border:1px solid #e7e7e7;border-radius:2px;color:#333;font-weight:normal;white-space:normal}.o_assessmentitem .hottext input:checked+label{color:#333;background:#d9edf7;border:1px solid #bce8f1}.o_assessmentitem .gap{font-weight:bold;border:1px dashed #000}.o_assessmentitem .textEntryInteraction input,.o_assessmentitem .textEntryInteraction span.o_input_value{margin:-1px 2px;line-height:90%;vertical-align:middle;font-size:13.72px;line-height:1.5;border:1px solid #999;background:#fff;padding:1px 1px;color:#333;max-width:100%}.o_assessmentitem .textEntryInteraction input:valid,.o_assessmentitem .textEntryInteraction input:disabled,.o_assessmentitem .textEntryInteraction input.o_input_value_wrapper,.o_assessmentitem .textEntryInteraction span.o_input_value:valid,.o_assessmentitem .textEntryInteraction span.o_input_value:disabled,.o_assessmentitem .textEntryInteraction span.o_input_value.o_input_value_wrapper{color:#333;-webkit-text-fill-color:#333;background:#d9edf7;border:1px solid #bce8f1}li.o_assessmentitem_order_item{padding:10px;margin-bottom:10px;border:2px dashed #999;border-radius:4px;background-color:#ffffff;background:#fcf8e3;list-style-type:none}li.o_assessmentitem_order_item:before,li.o_assessmentitem_order_item:after{content:" ";display:table}li.o_assessmentitem_order_item:after{clear:both}body>li.o_assessmentitem_order_item{display:block}.o_assessmentitem_wrapper .itemTitle{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:4px 4px 0 0;margin-top:0;margin-bottom:0;padding:5px 10px;line-height:1.5em;position:relative}.o_assessmentitem_wrapper .itemTitle .o_qti_item_max_score{position:absolute;left:49%}.o_assessmentitem_wrapper .o_qti_item_body{min-height:200px;margin:0;padding:5px 10px;border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;font-size:14px;line-height:1.8}.o_assessmentitem_wrapper .o_assessment_item_not_final.o_warning{margin:0}.o_assessmentitem_wrapper .modalFeedback h4:first-of-type,.o_assessmentitem_wrapper .modalFeedback .o_cal .fc-header-title h2:first-of-type,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback h2:first-of-type{padding-left:10px;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper h4,.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper h2{border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;padding-bottom:5px;margin-bottom:0}.o_assessmentitem_wrapper ul.o_testpartnavigation,.o_qti_menu_buttonstyle ul.o_testpartnavigation{list-style:none;padding:0;margin:0}.o_assessmentitem_wrapper li.o_assessmentitem,.o_qti_menu_buttonstyle li.o_assessmentitem{margin-bottom:2px}.o_assessmentitem_wrapper .o_assessmentitem_status,.o_qti_menu_buttonstyle .o_assessmentitem_status{float:right;display:block;padding:0.3em;margin-left:1em;border-radius:0.3em;border-width:1px;font-size:0.8em;line-height:1.2em;color:#fff}.o_assessmentitem_wrapper .o_assessmentitem_status.ended,.o_qti_menu_buttonstyle .o_assessmentitem_status.ended{background-color:#5bc0de}.o_assessmentitem_wrapper .o_assessmentitem_status.invalid,.o_qti_menu_buttonstyle .o_assessmentitem_status.invalid{background-color:#d9534f}.o_assessmentitem_wrapper .o_assessmentitem_status.answered,.o_qti_menu_buttonstyle .o_assessmentitem_status.answered{background-color:#5cb85c}.o_assessmentitem_wrapper .o_assessmentitem_status.notAnswered,.o_qti_menu_buttonstyle .o_assessmentitem_status.notAnswered{background-color:#f0ad4e}.o_assessmentitem_wrapper .o_assessmentitem_status.notPresented,.o_qti_menu_buttonstyle .o_assessmentitem_status.notPresented{background-color:#ddd}.o_assessmentitem_wrapper .o_assessmentitem_status.review,.o_qti_menu_buttonstyle .o_assessmentitem_status.review{background-color:#5bc0de}.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotAllowed,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewInvalid,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotAnswered,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotSeen,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotAllowed,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewInvalid,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotAnswered,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotSeen{background-color:#5bc0de;opacity:0.7}.o_assessmentitem_wrapper .o_assessmentitem_status i:before,.o_qti_menu_buttonstyle .o_assessmentitem_status i:before{color:#fff}.o_assessmentitem_controls{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:0 0 4px 4px;margin-top:0;margin-bottom:16px;padding:5px 10px}.o_assessmentitem_controls button,.o_assessmentitem_controls a{margin-bottom:0}.o_assessmentitem_controls .o_sel_assessment_item_submit span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_next_question span:after{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-left:0.5em}.o_assessmentitem_controls .o_sel_question_menu span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_end_testpart span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_back_test_feedback span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_show_solution span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_solution_hide span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_skip_question span:before,.o_assessmentitem_controls .o_sel_back_question span:before,.o_assessmentitem_controls .o_sel_retry_question span:before{padding-right:0.5em;margin-bottom:0}.o_assessmentitem_control_view_solution{background:#f8f8f8;border:1px solid #e7e7e7;margin:0;padding:5px 10px}.o_assessmentitem_scoring{background:#f8f8f8;border:1px solid #e7e7e7;border-bottom:0;border-radius:4px 4px 0 0;margin-top:0;margin-bottom:0;padding:5px 10px}.o_assessmentitem_scoring_buttons{background:#f8f8f8;border:1px solid #e7e7e7;border-top:0;border-radius:0 0 4px 4px;margin-top:0;margin-bottom:16px;padding:5px 10px}.o_assessmentitem_scoring_override_window{width:300px}.itemPrompt{margin:1.5em 0;font-style:italic;color:#666666}.o_qti_item_body{margin:1em 0}.o_sel_assessment_item_hint{margin-top:1em}.o_assessment_test_results .o_sel_assessment_item_hint{display:none}tr.choiceinteraction td.control{padding:0.5em}tr.choiceinteraction td.choiceInteraction{padding:0.5em}.choiceInteraction label{font-weight:normal}.choiceInteraction input+i{background-color:red}.choiceInteraction div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.choiceInteraction div.o_qti_item_choice_option_flow label span{font-weight:normal}.choiceInteraction div.o_qti_item_choice_option_flow label span>p{display:inline-block}.choiceInteraction.choiceright table tr td.choiceInteraction{background-color:#e7e7e7;border-bottom:3px solid white}.matchInteraction.choiceright table tr td.o_qti_item_kprim_text{background-color:#e7e7e7;border-bottom:3px solid white}table.o_qti_item_kprim td.o_qti_item_kprim_input_correct{background-color:#eaf6ea}table.o_qti_item_kprim td.o_qti_item_kprim_input_wrong{background-color:#fdf7f7}table.o_qti_item_kprim td.o_qti_item_kprim_input_correct,table.o_qti_item_kprim td.o_qti_item_kprim_input_wrong,table.o_qti_item_kprim th.o_qti_item_kprim_input_correct,table.o_qti_item_kprim th.o_qti_item_kprim_input_wrong{width:11%}table.o_qti_item_kprim td.o_qti_item_kprim_text,table.o_qti_item_kprim th.o_qti_item_kprim_text{width:88%}.matchInteraction input[type='text']{display:inline;width:auto}.matchInteraction div.bar_green{background-color:#5cb85c}.matchInteraction div.bar_red{background-color:#d9534f}.source-left,.target-left,.source-right,.target-right{width:50%;float:left;position:relative;padding:0;margin-top:5px}.o_match_dnd_sources{padding:10px 10px 0 10px;min-height:60px;border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8}.o_match_dnd_sources.oo-accepted{border-color:#1f7e9a}.o_match_dnd_source{padding:10px;margin-bottom:10px;border:2px dashed #999;border-radius:4px;background-color:#ffffff;background:#fcf8e3;cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.o_match_dnd_source:before,.o_match_dnd_source:after{content:" ";display:table}.o_match_dnd_source:after{clear:both}.o_match_dnd_source.oo-selected{border:2px dashed #f0ad4e;background:#fae3c4}.o_match_dnd_source.oo-drag{border:2px dashed #f0ad4e !important}.source-bottom .o_match_dnd_source,.source-top .o_match_dnd_source{margin:0 0 10px 0}.o_match_dnd_targets .oo-accepted{border:2px solid #1f7e9a;border-radius:4px}.o_match_dnd_target{padding:10px 10px 0 10px;margin:0 0 10px 10px;border:2px solid #5bc0de;border-radius:4px;background:#d9edf7}.o_match_dnd_target:before,.o_match_dnd_target:after{content:" ";display:table}.o_match_dnd_target:after{clear:both}.o_match_dnd_target .o_match_dnd_target_drop_zone{margin:0;padding:5px 0 0 15px;min-height:30px}.o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source{border:2px dashed #777}.target-bottom .o_match_dnd_target,.target-top .o_match_dnd_target{margin:0 0 10px 0}.target-bottom .o_match_dnd_target .o_match_dnd_target_drop_zone,.target-top .o_match_dnd_target .o_match_dnd_target_drop_zone{padding-left:0px}.target-bottom .o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source,.target-top .o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source{padding-left:15px}.table.o_match_true_false_edit th.o_sel_match_target_0,.table.o_match_true_false_edit th.o_sel_match_target_1,.table.o_match_true_false_edit th.o_sel_match_target_2{width:12%}.match_true_false input[type="checkbox"]{-webkit-appearance:radio;-moz-appearance:radio;-ms-appearance:radio;appearance:radio}.match_true_false .table>tbody>tr>td.o_match_true_false_unanswered,.match_true_false .table>tbody>tr>td.o_match_true_false_right,.match_true_false .table>tbody>tr>td.o_match_true_false_wrong{vertical-align:middle;width:11%}.match_true_false th.o_match_true_false_unanswered,.match_true_false th.o_match_true_false_right,.match_true_false th.o_match_true_false_wrong{width:11%}.match_true_false td.o_match_true_false_answer,.match_true_false th.o_match_true_false_answer{width:67%}.match_true_false td.o_match_true_false_unanswered{background-color:#fbfbfb}.match_true_false td.o_match_true_false_right{background-color:#eaf6ea}.match_true_false td.o_match_true_false_wrong{background-color:#fdf7f7}.o_assessmentitem .mathEntryInteraction{border:1px solid #ddedfc;background-color:#edf1f6;background:linear-gradient(to top, #edf1f6 0%, #f6f9fb 100%);border-radius:0.4em;padding:1em;margin:0.5em 0}.o_assessmentitem .mathEntryInteraction .inputPanel{line-height:1em;text-align:left}.o_assessmentitem .mathEntryInteraction .inputPanel input{margin:0;padding:0}.o_assessmentitem .mathEntryInteraction .previewPanel{text-align:center}.o_assessmentitem .mathEntryInteraction.horizontal{min-height:5em;width:40em}.o_assessmentitem .mathEntryInteraction.horizontal .inputPanel{width:45%;float:left;margin:2em 0}.o_assessmentitem .mathEntryInteraction.horizontal .previewPanel{width:50%;margin-left:40%}.o_assessmentitem .mathEntryInteraction.vertical{min-height:6em}.o_assessmentitem .mathEntryInteraction.vertical .inputPanel{padding:0 5em}.o_assessmentitem .mathEntryInteraction.vertical .inputPanel:before{content:'Input Maths: '}.o_assessmentitem .mathEntryInteraction.vertical .previewPanel{margin-top:2em;min-height:4em}.o_assessmentitem div.upConversionAjaxControlMessage{width:auto;text-align:center;display:inline;padding:0.5em 0 0.5em 20px}.o_assessmentitem div.success{background:#5cb85c}.o_assessmentitem div.failure{background-color:#f0ad4e}.o_assessmentitem div.error{background-color:#d9534f}.o_assessmentitem div.upConversionAjaxControlPreview{margin:0.5em 0;font-size:110%}.o_assessmentitem table.inputHelp{border-collapse:collapse;width:100%;font-size:90%}.o_assessmentitem table.inputHelp th{border:1px solid #999999;padding:0.2em 0.5em;background-color:#cad8e5}.o_assessmentitem table.inputHelp td{color:#999999;border:1px solid #999999;padding:0.2em 0.5em}.o_assessmentitem table.inputHelp kbd{color:black;font-size:100%;line-height:100%}.o_assessmentitem table.inputHelp .longComma{margin-right:0.5em}.o_togglebox_wrapper #modal-correct-solution div.o_togglebox_content{background-color:#fcf8e3;border-color:#8a6d3b}.o_candidatecomment{padding:0;margin:2em 0 1em 0;border:none}.o_candidatecomment legend{font-size:110%;font-weight:bold;color:#777;margin-bottom:0;border-bottom:0}.o_candidatecomment div.o_item_container_help{margin:0;padding:0}.o_candidatecomment textarea{display:block;color:#777}.o_qti_menu_menustyle ul.o_testpartnavigation{list-style:none;padding:0;margin:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:0 1em 0.5em 1em;margin:0 0 0.5em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection header{margin:0 0 1em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection header div.rubric{font-style:italic}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection ul.o_testpartnavigation_inner{list-style:none;padding:0;margin:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem{padding:0.1em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a{color:#777}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a:hover,.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a:focus{color:#333}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a{color:#337ab7;font-weight:bold}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a:hover,.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a:focus{color:#23527c;background-color:#eee}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem span{vertical-align:middle}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_status{display:inline;position:relative;left:-0.3em;background:transparent;border:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_status span{display:none}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts{float:right;display:block;padding:0.3em;border-radius:2px;background-color:#fafafa;color:#777;font-size:0.7em}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts.o_assessmentitem_attempts_limited{color:#f0ad4e}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts.o_assessmentitem_attempts_nomore{color:#5bc0de}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_marks{float:right;display:inline-block;font-size:0.8em;position:relative;top:0.3em;right:-0.5em}.o_qti_menu_menustyle ul.o_testpartnavigation .o_assessmentitem .questionTitle{margin-right:1em}.testFeedback h1:first-of-type{margin-top:0}ul.testPartDrilldown{list-style:none;padding:0;margin:0}ul.testPartDrilldown li.o_assessmentsection{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:0 1em 0.5em 1em}ul.testPartDrilldown li.o_assessmentsection header{margin:0 0 1em 0}ul.testPartDrilldown li.o_assessmentsection header div.rubric{font-style:italic}ul.testPartDrilldown li.o_assessmentsection ul.testPartDrilldownInner{list-style:none;padding:0;margin:0}ul.testPartDrilldown li.currentItem{border:1px solid #e7e7e7;border-radius:0.5em;padding:0 1em;margin-top:1em}.testItemControl{margin-top:0.5em}ul.o_qti_statistics_answers li span.o_qti_statistics_answer{background:#F5F5F5;padding:1px 3px;width:90%;display:inline-block}.o_assessment_test_results .o_qti_assessment_title{border-bottom:1px solid #ddd}.o_assessment_test_results table th{width:40%}.o_assessment_test_results .o_qti_sectionsummary .o_qti_section{text-align:center}.o_assessment_test_results .o_qti_sectionsummary .o_qti_section .o_qti_section_sublisting{padding:0 10%;min-height:3em}.o_assessment_test_results .o_qti_sections .o_qti_section{margin-top:40px}.o_assessment_test_results .o_qti_sections .o_qti_section h3{margin-bottom:20px}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_id{display:none}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment{margin:0;padding:5px 10px 10px 5px;border-top:1px solid #ddd;broder-bottom:1px solid #ddd}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h4,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2{font-size:100%;font-weight:bold;color:inherit}.o_assessment_test_results .o_qti_to_overview{text-align:right}.o_sel_assessment_item_feedbacks{min-height:250px}.o_alternative_question_types h4 select,.o_alternative_question_types .o_cal .fc-header-title h2 select,.o_cal .fc-header-title .o_alternative_question_types h2 select{display:inline-block;width:auto}@media print{canvas,div.hotspotInteraction>div>div{-webkit-print-color-adjust:exact;color-adjust:exact}.choiceInteraction label{font-weight:normal}.choiceinteraction input[type="radio"][disabled],.choiceinteraction input[type="checkbox"][disabled],.matchInteraction input[type="radio"][disabled],.matchInteraction input[type="checkbox"][disabled]{display:none}.choiceinteraction input+i,.matchInteraction input+i{font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.choiceInteraction input[type="radio"][disabled]+i:before,.matchInteraction input[type="radio"][disabled]+i:before,.matchInteraction.match_true_false input[type="checkbox"][disabled]+i:before{content:""}.choiceInteraction input[type="radio"][disabled]:checked+i:before,.matchInteraction input[type="radio"][disabled]:checked+i:before,.matchInteraction.match_true_false input[type="checkbox"][disabled]:checked+i:before{content:""}.choiceInteraction input[type="checkbox"][disabled]+i:before,.matchInteraction input[type="checkbox"][disabled]+i:before{content:""}.choiceInteraction input[type="checkbox"][disabled]:checked+i:before,.matchInteraction input[type="checkbox"][disabled]:checked+i:before{content:""}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav{margin-right:20px}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_nav .o_portfolio_collector{position:relative;top:-5px}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}div.o_wiki_wrapper a.wikiimg{text-decoration:none;color:inherit;font-weight:inherit}div.o_wiki_wrapper div.imgcaption{padding:0.3em 0em 0.2em 0.3em}div.o_wiki_wrapper div.imgleft{clear:left;float:left;margin:0.3em 0.3em 0.3em 0em}div.o_wiki_wrapper div.imgright{clear:right;float:right;margin:0.3em 0em 0.3em 0.3em}div.o_wiki_wrapper div.imgcenter{clear:both;overflow:hidden;text-align:center;margin:0.3em 0em 0.3em 0em}div.o_wiki_wrapper div.imgthumb{border:1px solid #bbbbbb;padding:0.3em}div.o_wiki_wrapper table.gallery{border:1px solid #ccc;margin:2px;padding:2px;background-color:white}div.o_wiki_wrapper table.gallery tr{vertical-align:middle}div.o_wiki_wrapper table.gallery td{background-color:#f9f9f9;border:solid 2px white;text-align:center;vertical-align:middle;width:150px}div.o_wiki_wrapper img.gallery{border:1px solid #bbbbbb;padding:0.3em}div.o_wiki_wrapper a.edit{font-style:italic;color:red}div.o_wiki_wrapper a.externallink:before{padding-right:2px}div.o_wiki_wrapper a.externallink:before:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}.o_ep_icon_map:before{content:""}.o_ep_icon_collection:before{content:""}.o_ep_icon_page:before{content:""}.o_ep_icon_struct:before{content:""}.o_ep_icon_liveblog:before{content:""}.o_artefact_closed:before{content:""}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ECF69A;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99E44D;background:#99E44D -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99E44D), to(#CBF1A5));background:#99E44D -moz-linear-gradient(43% 71% 101deg, #CBF1A5, #99E44D);background:#99E44D -o-linear-gradient(#99E44D, #CBF1A5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99E44D', EndColorStr='#CBF1A5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#DFF0C1;background:#DFF0C1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#DFF0C1), to(#A0D346));background:#DFF0C1 -moz-linear-gradient(43% 71% 101deg, #A0D346, #DFF0C1);background:#DFF0C1 -o-linear-gradient(#DFF0C1, #A0D346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#DFF0C1', EndColorStr='#A0D346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#D7DBB5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#FFBA71;background:#FFBA71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FFBA71), to(#FFBA99));background:#FFBA71 -moz-linear-gradient(43% 71% 101deg, #FFBA99, #FFBA71);background:#FFBA71 -o-linear-gradient(#FFBA71, #FFBA99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFBA71', EndColorStr='#FFBA99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#FF9772;background:#FF9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FF9772), to(#FF9780));background:#FF9772 -moz-linear-gradient(43% 71% 101deg, #FF9780, #FF9772);background:#FF9772 -o-linear-gradient(#FF9772, #FF9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FF9772', EndColorStr='#FF9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#E8AFBB;background:#E8AFBB -webkit-gradient(linear, 37% 20%, 53% 100%, from(#E8AFBB), to(#E8AFA0));background:#E8AFBB -moz-linear-gradient(43% 71% 101deg, #E8AFA0, #E8AFBB);background:#E8AFBB -o-linear-gradient(#E8AFBB, #E8AFA0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#E8AFBB', EndColorStr='#E8AFA0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#FFA800;background:#FFA800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FFA800), to(#FFAF00));background:#FFA800 -moz-linear-gradient(43% 71% 101deg, #FFAF00, #FFA800);background:#FFA800 -o-linear-gradient(#FFA800, #FFAF00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFA800', EndColorStr='#FFAF00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00D2F8;background:#00D2F8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00D2F8), to(#4A9EAD));background:#00D2F8 -moz-linear-gradient(43% 71% 101deg, #4A9EAD, #00D2F8);background:#00D2F8 -o-linear-gradient(#00D2F8, #4A9EAD);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00D2F8', EndColorStr='#4A9EAD');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#C4F6FF;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#B3E2F7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#DEE7F7;background:#DEE7F7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#DEE7F7), to(#C1E9FD));background:#DEE7F7 -moz-linear-gradient(43% 71% 101deg, #C1E9FD, #DEE7F7);background:#DEE7F7 -o-linear-gradient(#DEE7F7, #C1E9FD);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#DEE7F7', EndColorStr='#C1E9FD');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_portfolio div#o_main_toolbar.o_toolbar{margin-top:0px}.o_portfolio_home .o_portfolio_my li,.o_portfolio_home .o_portfolio_shared li{margin:2em 1em 2em 0;text-align:center;vertical-align:top}.o_portfolio_home .o_portfolio_my li.o_pf_trash_entry,.o_portfolio_home .o_portfolio_shared li.o_pf_trash_entry{border-right:5px dashed #eee;padding-right:2em}.o_portfolio_home .o_portfolio_my li a,.o_portfolio_home .o_portfolio_shared li a{display:block;width:9em}.o_portfolio_home .o_portfolio_my li a i,.o_portfolio_home .o_portfolio_shared li a i{display:inline-block;font-size:4em}.o_portfolio_home .o_portfolio_my li a span,.o_portfolio_home .o_portfolio_shared li a span{display:block;margin-top:0.8em}@media (max-width: 1199px){.o_portfolio_home .o_portfolio_my,.o_portfolio_home .o_portfolio_shared{font-size:90%}}@media (max-width: 767px){.o_portfolio_home .o_portfolio_my,.o_portfolio_home .o_portfolio_shared{font-size:80%}.o_portfolio_home .o_portfolio_my li.o_pf_trash_entry,.o_portfolio_home .o_portfolio_shared li.o_pf_trash_entry{border-right:none;padding-right:0}}.o_portfolio_home #o_my_last_binders .o_table_body{margin-top:0;padding-left:0}.o_portfolio_home #o_my_last_pages .o_table_body{margin-top:0}.o_portfolio_home #o_my_last_pages .o_table_toolbar{display:none}.o_portfolio_home #o_my_last_pages .o_portfolio_page{margin-top:0;margin-bottom:1em}.o_section_lead,.o_page_lead,.o_assignment_lead{padding:10px 10px;margin-bottom:10px;background-color:#f2f2f2;border-radius:3px;border:1px #d9d9d9 solid}.o_section_ended .o_section_lead{border-color:#eba5a3;background-color:#f4cecd}.o_media.o_media_right,.o_media.o_media_right_large{float:right;margin-left:2em;margin-bottom:2em}.o_media.o_media_left,.o_media.o_media_left_large{float:left;margin-right:2em;margin-bottom:2em}.o_media.o_media_left,.o_media.o_media_right{max-height:200px;max-width:50%}.o_media.o_media_left img,.o_media.o_media_right img{max-height:200px}.o_media.o_media_right_large,.o_media.o_media_left_large{max-height:300px;max-width:75%}.o_media.o_media_right_large img,.o_media.o_media_left_large img{max-height:300px}.o_media img{border-radius:3px;border:1px #d9d9d9 solid;background:#fff;height:auto;width:auto}@media (max-width: 767px){.o_page_lead .o_media.o_media_right,.o_page_lead .o_media.o_media_right_large{margin-left:1em;margin-bottom:1em}.o_page_lead .o_media.o_media_left,.o_page_lead .o_media.o_media_left_large{margin-right:1em;margin-bottom:1em}.o_page_lead .o_media.o_media_left,.o_page_lead .o_media.o_media_right{max-height:120px;max-width:30%}.o_page_lead .o_media.o_media_left img,.o_page_lead .o_media.o_media_right img{max-height:120px}.o_page_lead .o_media.o_media_right_large,.o_page_lead .o_media.o_media_left_large{max-height:180px;max-width:50%}.o_page_lead .o_media.o_media_right_large img,.o_page_lead .o_media.o_media_left_large img{max-height:180px}}.o_page_lead{padding:20px}.o_page_lead h2{margin-bottom:5px}.o_page_lead .o_portfolio_page_meta{margin-bottom:5px}.o_page_lead .o_page_summary{font-size:18px}.o_page_lead .o_media.o_desc_empty{max-height:300px;text-align:center}.o_page_lead .o_media.o_desc_empty img{max-height:300px}.o_page_lead .o_portfolio_status_block{border-top:1px solid #d9d9d9;padding-top:1em;margin-bottom:-1em}.o_page_lead .o_edit_page_meta{padding-right:2em}.o_page_lead .o_portfolio_status{display:inline-block;padding-right:2em}.o_page_lead.o_block_imagebg .o_portfolio_status{padding:2px;background-color:rgba(255,255,255,0.8)}.o_portfolio_status_block p.o_section_ended{font-size:120%}.o_page_assignment{font-size:12px}.o_page_assignment.o_togglebox_wrapper div.o_togglebox_content{margin:10px 0 20px 0;padding:20px;border-left:3px solid #d9534f;background-color:#f2dede}.o_page_assignment .o_page_assignement_info{position:relative;left:-1em}.o_page_export .o_page_assignment .o_opener,.o_binder_export .o_page_assignment .o_opener{visibility:hidden}.o_page_export .o_page_assignment .o_closer,.o_binder_export .o_page_assignment .o_closer{display:none}.o_portfolio_listing.o_rendertype_custom .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry{position:relative;display:inline-block;height:230px;width:400px;vertical-align:top;margin-right:10px}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry ul{padding-left:2em}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry .oo-accepted{box-shadow:10px 10px 10px pink}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry .o_binder_tools a{color:#333}.o_portfolio_listing.o_rendertype_custom .panel-imagebg .panel-body ul{margin:0;padding:0;list-style-type:none}.o_portfolio_listing.o_rendertype_custom .panel-imagebg .panel-body ul li{padding:2px}.o_binder.o_portfolio_assignments .panel-heading,.o_binder.o_portfolio_assignments .panel-body{border-left:3px solid #d9534f}.panel-default.o_portfolio_assignments .panel-heading,.panel-default.o_portfolio_assignments .panel-body{border-left:3px solid #d9534f}.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body{border-left:3px solid #d9534f}.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body .o_portfolio_page_meta_wrapper,.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body .o_portfolio_page_summary{padding-left:10px}.o_portfolio_page_summary .o_media.o_media_right,.o_portfolio_page_summary .o_media.o_media_right_large{margin-left:1em;margin-bottom:1em}.o_portfolio_page_summary .o_media.o_media_left,.o_portfolio_page_summary .o_media.o_media_left_large{margin-right:1em;margin-bottom:1em}.o_portfolio_page_summary .o_media.o_media_left,.o_portfolio_page_summary .o_media.o_media_right{max-height:150px}.o_portfolio_page_summary .o_media.o_media_left img,.o_portfolio_page_summary .o_media.o_media_right img{max-height:150px}.o_portfolio_page_summary .o_media.o_media_right_large,.o_portfolio_page_summary .o_media.o_media_left_large{max-height:230px}.o_portfolio_page_summary .o_media.o_media_right_large img,.o_portfolio_page_summary .o_media.o_media_left_large img{max-height:230px}.o_portfolio_categories .tag{font-size:80%;font-weight:normal}.o_portfolio_categories div,.o_portfolio_categories form{display:inline-block}.o_portfolio_categories_edit .bootstrap-tagsinput{margin-bottom:0;padding:0px 4px}.o_portfolio_last_modified+.o_portfolio_categories,.o_portfolio_page_meta+.o_portfolio_categories{margin-left:1em}.o_rendertype_classic .o_pf_page,.o_rendertype_classic .o_pf_assignment{padding-left:1em}.o_portfolio_timeline .o_timeline_up{text-align:center}.o_portfolio_timeline .o_timeline_down{text-align:center}.o_portfolio_timeline .axis path,.o_portfolio_timeline .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_portfolio_timeline .x.axis line,.o_portfolio_timeline .x.axis path{display:none}.o_portfolio_timeline path.o_timeline_curve{fill:none;stroke:#ccc;shape-rendering:crispEdges}.o_portfolio_timeline .y.axis .tick line,.o_portfolio_timeline .y.axis path.domain{stroke:#ddd}.o_portfolio_timeline text{fill:#888;stroke:none;font-size:10px}.o_portfolio_timeline .dot.o_pf_status_draft{fill:#f0ad4e}.o_portfolio_timeline .dot.o_pf_status_published{fill:#337ab7}.o_portfolio_timeline .dot.o_pf_status_inrevision{fill:#d9534f}.o_portfolio_timeline .dot.o_pf_status_closed{fill:#5cb85c}.o_portfolio_timeline .dot.o_pf_status_deleted{fill:#000}.o_pf_comments{margin-top:3em}.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file{background-color:#f8f8f8;padding:10px;border-radius:10px}.o_pf_content .o_forum,.gu-mirror .o_forum{border:1px #f8f8f8 solid;padding:10px;border-radius:10px}.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_forum,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_forum,.gu-mirror .o_wiki{background-color:#f8f8f8;padding:10px;border-radius:10px}.o_pf_content .o_efficiencystatement h3,.o_pf_content .o_efficiencystatement .h3,.o_pf_content .o_feed h3,.o_pf_content .o_feed .h3,.o_pf_content .o_forum h3,.o_pf_content .o_forum .h3,.o_pf_content .o_wiki h3,.o_pf_content .o_wiki .h3,.gu-mirror .o_efficiencystatement h3,.gu-mirror .o_efficiencystatement .h3,.gu-mirror .o_feed h3,.gu-mirror .o_feed .h3,.gu-mirror .o_forum h3,.gu-mirror .o_forum .h3,.gu-mirror .o_wiki h3,.gu-mirror .o_wiki .h3{font-size:14px}.o_pf_content .o_efficiencystatement .row,.o_pf_content .o_feed .row,.o_pf_content .o_forum .row,.o_pf_content .o_wiki .row,.gu-mirror .o_efficiencystatement .row,.gu-mirror .o_feed .row,.gu-mirror .o_forum .row,.gu-mirror .o_wiki .row{margin:0}.o_pf_content .o_efficiencystatement .o_block_with_datecomp,.o_pf_content .o_feed .o_block_with_datecomp,.o_pf_content .o_forum .o_block_with_datecomp,.o_pf_content .o_wiki .o_block_with_datecomp,.gu-mirror .o_efficiencystatement .o_block_with_datecomp,.gu-mirror .o_feed .o_block_with_datecomp,.gu-mirror .o_forum .o_block_with_datecomp,.gu-mirror .o_wiki .o_block_with_datecomp{margin-top:0.5em;margin-bottom:0}.o_pf_video_placeholder{background-color:#f8f8f8;border:1px solid #f8f8f8;border-radius:10px;display:table;min-width:400px;text-align:center;padding:40px 10px}.o_pf_video_placeholder i{display:table-cell;vertical-align:middle}.o_binder_page_listing .o_portfolio_page_links{background-color:#f8f8f8;border-radius:4px}.o_binder_page_listing .o_portfolio_page_links .o_portfolio_comment{float:right}.o_portfolio_toc .o_portfolio_toc_section{position:relative;padding-right:80px}.o_portfolio_toc .o_portfolio_section_meta{margin-top:-0.5em}.o_portfolio_toc .o_section_actions{position:absolute;top:-10px;right:0}.o_portfolio_toc .o_section_actions .o_section_move_up_and_down,.o_portfolio_toc .o_section_actions .o_section_dropdown{vertical-align:middle;display:inline-block}.o_portfolio_toc a.o_comment{color:#777;margin-left:1em}.o_portfolio_toc .o_section ul{padding-left:1em;line-height:24px}.o_portfolio div span.badge{padding:3px 7px}.o_portfolio div .o_portfolio_entry_draft{background-color:#f0ad4e}.o_portfolio div .o_portfolio_published{background-color:#337ab7}.o_portfolio div .o_portfolio_entry_revision{background-color:#d9534f}.o_portfolio div .o_portfolio_entry_closed{background-color:#5cb85c}.o_portfolio div .o_portfolio_entry_deleted{background-color:#000}.o_portfolio div .o_portfolio_entry_incoming{background-color:#5cb85c}.o_portfolio div .o_portfolio_entry_inprocess{background-color:#c8c8c8}.o_portfolio div .o_portfolio_entry_done{background-color:#5cb85c}.o_portfolio div .o_popover,.o_portfolio div .popover:hover{color:#333;text-decoration:none}.o_portfolio_content .o_portfolio_toc.o_portfolio_toc_withtimeline{width:70%;float:left}.o_portfolio_content .o_portfolio_timeline{width:29%;float:right}.o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline,.o_portfolio_content .o_portfolio_entries.o_portfolio_withtimeline{width:70%;float:left}.o_portfolio_content .o_portfolio_timeline{width:29%;float:right}.o_portfolio_page{background:#fcfcfc;border:1px solid #eee;border-radius:4px}.o_portfolio_page_meta_wrapper{background-position:left top;background-repeat:no-repeat}.o_portfolio_rights table .o_portfolio_section td:first-child{padding-left:1.5em}.o_portfolio_rights table .o_portfolio_page td:first-child{padding-left:2.5em}.o_portfolio_publication table{padding-bottom:10px}.o_portfolio_publication table td{padding:5px 5px 5px 0}.o_portfolio_publication .o_portfolio_ac{font-size:90%}.o_portfolio_publication .o_portfolio_ac table td:nth-of-type(2){width:200px;white-space:nowrap}.o_portfolio_publication .o_portfolio_ac table td:nth-of-type(3){width:40px;white-space:nowrap}.o_portfolio_publication ul ul{margin-left:2em;margin-bottom:5px}.o_portfolio_publication ul li{background:#fbfbfb;padding:3px;margin-bottom:2px}.o_portfolio_publication ul li li{background:#f2f2f2}.o_portfolio_publication ul li li li{background:#eee}.o_portfolio_publication ul li li .table{margin-bottom:0px}@media (max-width: 767px){.o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline,.o_portfolio_content .o_portfolio_entries.o_portfolio_withtimeline{width:100%;float:none}.o_portfolio_content .o_sel_timeline_off,.o_portfolio_content .o_sel_timeline_on,.o_portfolio_content .o_portfolio_timeline{display:none}.o_portfolio_content .o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline{width:100%;float:none}}.o_portfolio_media_browser .o_portfolio_medias{position:relative;margin-bottom:20px;margin-top:20px}.o_portfolio_media_browser .o_portfolio_medias:before,.o_portfolio_media_browser .o_portfolio_medias:after{content:" ";display:table}.o_portfolio_media_browser .o_portfolio_medias:after{clear:both}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media:last-child{margin-right:0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{border:1px solid #337ab7;position:relative;height:180px;width:180px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon span.o_visual_not_available{background-image:none}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:6em;text-align:center;color:#eee;line-height:140px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #337ab7;border-top:0;background-color:rgba(255,255,255,0.8)}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a{display:block;color:#337ab7;font-family:inherit;font-weight:inherit}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:hover{color:#286090}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{width:80px;margin:0 10px 10px 0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{height:80px;width:80px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:2.5em;line-height:55px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_title{font-size:90%}}@media (max-width: 767px){.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{width:80px;margin:0 1px 1px 0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{height:80px;width:80px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:2.5em;line-height:55px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_title{font-size:90%}}.o_portfolio_status_legend{margin-top:3em}.o_portfolio_status_legend h6{margin-bottom:5px}.o_ed_htitle h1,.o_ed_htitle .h1{font-size:30px}.o_ed_htitle h2,.o_ed_htitle .h2{font-size:24px}.o_ed_htitle h3,.o_ed_htitle .h3{font-size:18px}.o_ed_htitle h4,.o_ed_htitle .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_ed_htitle h2,.o_ed_htitle .h4{font-size:14px}.o_ed_htitle h5,.o_ed_htitle .h5{font-size:12px}.o_ed_htitle h6,.o_ed_htitle .h6{font-size:12px}@media print{.o_binder h1{font-size:43.2px;margin-top:10cm}.o_portfolio_section{margin-bottom:1cm}.o_portfolio_section h3:first-of-type{font-size:36px}.o_page_lead{border:0;border-bottom:1px solid #d9d9d9;border-radius:0;background-color:none;padding:0;margin-bottom:10px}.o_page_lead .o_portfolio_status_block{border-top:0;margin-bottom:0}.o_page_lead .o_media img{border:0}.o_page_lead .o_portfolio_categories{display:block;margin-left:0}.o_page_lead .o_portfolio_status_block{padding-top:0}.o_page_lead .o_page_summary{margin-top:1em;font-style:italic}.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.o_pf_content .o_forum,.o_pf_content .o_image,.o_pf_content .o_video,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_forum,.o_pf_content .o_wiki{padding:0;border-radius:0;border:0}.o_pf_content .o_cit .o_desc p,.o_pf_content .o_text .o_desc p,.o_pf_content .o_file .o_desc p,.o_pf_content .o_forum .o_desc p,.o_pf_content .o_image .o_desc p,.o_pf_content .o_video .o_desc p,.o_pf_content .o_efficiencystatement .o_desc p,.o_pf_content .o_feed .o_desc p,.o_pf_content .o_forum .o_desc p,.o_pf_content .o_wiki .o_desc p{margin:0}.o_efficiencystatement table{font-size:90%}.o_artefact_metadata{page-break-inside:avoid;border:0;border-left:5px solid #eee;padding-left:10px;font-size:80%}.o_artefact_metadata table td,.o_artefact_metadata table th{border:0 !important;padding:2px !important}.o_artefact_metadata table th:first-of-type{width:20%}.o_pf_video_placeholder{background-color:#f8f8f8 !important;-webkit-print-color-adjust:exact;color-adjust:exact}.o_pf_video_placeholder.visible-print-block{display:table !important}}.o_evaluation_form .o_evaluation_block{margin-top:2em;margin-bottom:2em}.o_evaluation_form .o_rubric_name{font-weight:bold;margin-bottom:1em}.o_evaluation_form .o_evaluation_step_labels{margin-bottom:1em;font-weight:bold}.o_evaluation_form .o_evaluation_step_labels div,.o_evaluation_form .o_evaluation_step_labels span{display:inline-block;text-align:center;align-self:flex-end;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_evaluation_form .o_slider_wrapper{height:33px;overflow:hidden}.o_evaluation_form .o_slider{margin-bottom:1em}.o_evaluation_form .o_slider label{padding:0}.o_evaluation_form .o_slider input{padding:0;margin:0;position:relative}.o_evaluation_form .o_slider.hover{background-color:#f5f5f5}.o_evaluation_form .o_evaluation_continous .o_evaluation_no_response div.radio{padding:0;margin:0}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps{display:flex;justify-content:space-between}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps label{padding:0;margin:0;text-align:center}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps .radio{background-color:#f9f9f9;padding:0px;margin-top:0px;text-align:center}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps .radio:hover{background-color:#f5f5f5}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_no_response div.radio{margin-top:2px}.o_evaluation_form .o_evaluation_discrete_radio .o_evaluation_step_labels{display:flex;justify-content:space-between}.o_evaluation_form .o_slider .ui-slider.ui-slider-horizontal.ui-widget-content{margin-top:0.3em;margin-bottom:10px}.o_evaluation_form .o_evaluation_left_label{text-align:right;font-weight:normal}.o_evaluation_form .o_evaluation_left_label.o_evaluation_left_label_la{text-align:left;padding-left:0px;font-weight:normal}.o_evaluation_form .o_evaluation_right_label{text-align:left;font-weight:normal}.o_evaluation_form .o_evaluation_text_legend{margin-bottom:1em}.o_evaluation_form .o_evaluation_legend{padding-left:0.5em;margin-bottom:0.5em}.o_evaluation_form .o_evaluation_fileupload{margin-bottom:2em}.o_evaluation_form .o_evaluation_mc_other{margin-top:-10px;margin-left:10px;margin-right:10px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_slider{margin-left:15px;margin-right:15px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_end_label{text-align:right;padding-right:20px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_continous .x .tick{visibility:hidden}.o_evaluation_form .o_ed_rubrictablehandler .table{margin-top:5px}.o_evaluation_form .svg-container{display:inline-block;position:relative;width:100%;padding-bottom:50%;vertical-align:top;overflow:hidden}.o_evaluation_form .svg-content-responsive{display:inline-block;position:absolute;top:10px;left:0}.d3chart .o_eva_bar{fill:#337ab7}.d3chart .o_rubric_sufficient{fill:#5cb85c}.d3chart .o_rubric_neutral{fill:#f0ad4e}.d3chart .o_rubric_insufficient{fill:#d9534f}.d3chart .o_rubric_unrated{fill:#337ab7}.o_qual_hm_legend{padding:5px}.o_qual_hm_legend li{font-size:90%}.o_qual_hm_legend .ident{font-weight:bold}.o_evaluation_discrete_slider .o_evaluation_step_labels{position:relative}.o_evaluation_discrete_slider .o_evaluation_step_labels div:first-child{position:absolute;left:0px;text-align:left}.o_evaluation_discrete_slider .o_evaluation_step_labels div{display:inline-block;text-align:center}.o_evaluation_discrete_slider .o_evaluation_step_labels div:last-child{position:absolute;right:0px;text-align:right}.o_slider_overview{width:100%;height:20px;position:relative}.o_slider_overview .o_slider_overview_line{top:5px;left:0px;position:absolute;width:100%;height:11px;border:1px solid #999;border-radius:4px}.o_slider_overview .o_slider_overview_point{position:absolute;width:10px;height:10px;background-color:#337ab7}.o_evaluation_editor_form{margin:10px 10px 0 10px}.o_evaluation_editor_form .o_slider_editor{margin-top:10px}@media (max-width: 992px){.o_evaluation_editor_form .o_slider_editor{margin-bottom:20px}}@media (max-width: 992px){.o_evaluation_editor_form .o_evaluation_step_label{text-align:unset;margin-bottom:5px;padding-top:unset}}.o_evaluation_editor_form .o_evaluation_step_labels{display:inline-block}.o_evaluation_editor_form .o_evaluation_step_labels input{width:100%}.o_evaluation_editor_form .o_slider_descrete_radio{display:flex;justify-content:space-between}.o_evaluation_editor_form .o_slider_descrete_radio .radio{background-color:#f9f9f9;padding:0px;margin-top:0px;text-align:center}.o_evaluation_editor_form .o_slider_descrete_radio .radio:hover{background-color:#f5f5f5}@media (max-width: 992px){.o_evaluation_editor_form input[type="text"]{margin-bottom:5px}}.o_evaluation_editor_form .o_slider_continous{padding-top:10px;padding-bottom:-10px}.o_evaluation_editor_form .o_slider_descrete{padding-top:5px;padding-bottom:-5px}.o_evaluation_editor_form .o_evaluation_example{font-size:90%}.o_evaluation_editor_form .o_slider_top{margin-top:23px}.o_evaluation_editor_form .o_slider_buttons .pull-right div:not(:first-child){display:inline-block}.o_evaluation_editor_form .o_slider_buttons .pull-right .btn{margin-top:-3px}.o_evaluation_editor_form .o_slider_weight{max-width:40px}@media (max-width: 768px){.o_evaluation_form .o_evaluation_left_label{text-align:left;margin-bottom:0.5em}.o_evaluation_form .o_evaluation_right_label{text-align:right}.o_evaluation_form .o_evaluation_no_response{text-align:left}.o_evaluation_form .o_evaluation_no_response .o_evaluation_no_resp_value{font-weight:bold}.o_evaluation_form .o_slider{margin-bottom:2em}.o_evaluation_form .o_slider div{padding-left:0}.o_evaluation_form .o_slider .o_evaluation_no_response{margin-top:0.7em}}@media (min-width: 768px){.o_evaluation_form .o_evaluation_no_resp_value{display:none}}@media print{.o_evaluation_discrete_radio .o_slider .o_evaluation_steps div.radio{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#f9f9f9 !important}.o_icon_rubric_insufficient::before{color:#d9534f !important}.o_icon_rubric_neutral::before{color:#f0ad4e !important}.o_icon_rubric_sufficient::before{color:#5cb85c !important}}.o_eva_report_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_eva_report_print #o_print_brand img{width:100%}.o_eva_report_print .o_eva_content{margin-top:4em}.o_eva_report_print .o_eva_overview .panel table{margin:0px 0px 1px 0px}.o_eva_report_print .o_evaluation_duration,.o_eva_report_print .o_participated_users{display:none}.o_surv_run.withCmds .o_eva_report{margin-top:-44px}.o_eva_report .o_eva_overview .o_eva_rubric .table{margin-top:5px}.o_eva_report .o_ed_rubrictablehandler .o_table_footer{font-weight:bold}.o_eva_report .o_rubric_avg{font-weight:bold;white-sprace:nowrap}.o_eva_report .o_rubric_table .o_table_wrapper{margin-bottom:10px}.o_eva_report .o_rubric_table_legend{display:block}.o_eva_report .o_rubric_table_legend .ident{font-weight:bold}.o_eva_report .o_rubric_table_legend .list-inline{margin-bottom:0px}.o_eva_report .o_rubric_table_legend.o_last{margin-bottom:15px}.o_evaluation_execution .o_evaluation_anonymous_info{display:inherit}.o_qual_main .o_labeled.o_qual_dc_status_preparation,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_preparation{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_ready,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_ready{background-color:#ffd351;border-color:#ffd351;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_running,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_running{background-color:#933;border-color:#933;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_finished,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_finished{background-color:#14892c;border-color:#14892c;color:#fff}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_preparation{background-color:#384e64}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_ready{background-color:#ffc61e}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_running{background-color:#732626}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_finished{background-color:#0e5c1e}.o_qual_main .o_qual_dc_list tbody tr td:nth-child(1){padding-top:3px}.o_qual_main .o_labeled_light.o_qual_dc_status_preparation_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_preparation_light{border-color:#4a6785;color:#4a6785}.o_qual_main .o_labeled_light.o_qual_dc_status_ready_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_ready_light{border-color:#ffd351;color:#333}.o_qual_main .o_labeled_light.o_qual_dc_status_running_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_running_light{border-color:#933;color:#933}.o_qual_main .o_labeled_light.o_qual_dc_status_finished_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_finished_light{border-color:#14892c;color:#14892c}.o_qual_main .o_qual_exec_list tbody tr td:nth-child(1){padding-top:3px}.o_qual_main .o_qual_exec_status_future_light{border-color:#4a6785;color:#4a6785}.o_qual_main .o_qual_exec_status_ready_light{border-color:#ffd351;color:#333}.o_qual_main .o_qual_exec_status_participating_light{border-color:#933;color:#933}.o_qual_main .o_qual_exec_status_participated_light{border-color:#14892c;color:#14892c}.o_qual_main .o_qual_exec_status_over_light{border-color:#aaa;color:#aaa}.o_qual_execute_header .o_qual_context_table,.o_qual_report_header .o_qual_context_table{margin-bottom:0}.o_qual_execute_header .o_qual_context_table th,.o_qual_report_header .o_qual_context_table th{width:40%;border-top:none;padding:4px 8px}.o_qual_execute_header .o_qual_context_table td,.o_qual_report_header .o_qual_context_table td{width:60%;border-top:none;padding:4px 8px}.o_qual_ana_table .o_table_body{padding:0}.o_qual_ana_filter .o_date_range{margin-bottom:0px}.o_qual_ana_filter .o_date_range .control-label{margin-bottom:5px}.o_qual_ana_filter .o_date_range .o_date{margin-bottom:15px;padding-right:12px}.o_qual_ana_filter .o_date_range .o_date_range_from{padding-right:12px}.o_qual_ana_filter .o_date_range .o_date_range_to{padding-right:0px}.o_qual_hm_basecolor{background-color:#337ab7}.o_qual_hm .o_circle_container{display:flex}.o_qual_hm .o_circle_box{display:flex;align-items:center;justify-content:center}.o_qual_hm .o_circle{border-radius:50%}.o_qual_hm .o_circle.o_rubric_insufficient{background-color:#d9534f !important}.o_qual_hm .o_circle.o_rubric_neutral{background-color:#f0ad4e !important}.o_qual_hm .o_circle.o_rubric_sufficient{background-color:#5cb85c !important}.o_qual_hm .o_avg{display:flex;align-items:center;margin-left:5px}.o_qual_trend_invisible{visibility:hidden}.o_qual_trend .o_qual_ana_trend_up{transform:rotate(315deg);-webkit-transform:rotate(315deg);-moz-transform:rotate(315deg);-ms-transform:rotate(315deg);-o-transform:rotate(315deg)}.o_qual_trend .o_qual_ana_trend_down{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.o_qual_trend .o_rubric_insufficient{color:#d9534f}.o_qual_trend .o_rubric_neutral{color:#f0ad4e}.o_qual_trend .o_rubric_sufficient{color:#5cb85c}.o_qual_trend .o_qual_ana_unrated{color:#337ab7}.o_qual_filtered_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_qual_filtered_print #o_print_brand img{width:100%}.o_qual_filtered_print .o_qual_content{margin-top:4em}.o_qual_filtered_print .o_groupby_config,.o_qual_filtered_print .o_slider_trend_config,.o_qual_filtered_print .o_qual_hm tr td:last-child,.o_qual_filtered_print .o_qual_hm tr th:last-child{display:none}.o_evaluation_bar_chart_legend{padding:5px}.o_evaluation_bar_chart_legend li{font-size:90%}.o_evaluation_bar_chart_legend .ident{font-weight:bold}@media (max-width: 768px){.o_hm_group_select{padding-bottom:12px}.o_hm_panel_body{margin-bottom:-12px}}@media (min-width: 768px){.o_hm_trend_row{padding-top:12px}}@media print{.o_qual_hm .o_circle{-webkit-print-color-adjust:exact;color-adjust:exact}.o_qual_hm .o_circle.o_rubric_insufficient{background-color:#d9534f !important}.o_qual_hm .o_circle.o_rubric_neutral{background-color:#f0ad4e !important}.o_qual_hm .o_circle.o_rubric_sufficient{background-color:#5cb85c !important}.o_qual_hm .o_circle.o_qual_hm_basecolor{background-color:#337ab7 !important}.o_qual_trend{-webkit-print-color-adjust:exact;color-adjust:exact}.o_qual_trend .o_rubric_insufficient::before{color:#d9534f !important}.o_qual_trend .o_rubric_neutral::before{color:#f0ad4e !important}.o_qual_trend .o_rubric_sufficient::before{color:#5cb85c !important}.o_qual_trend .o_qual_ana_unrated::before{color:#337ab7 !important}}.o_cit{position:relative;margin:10px 0}.o_cit blockquote.o_quote{color:#555;font-size:18px;margin-top:6px;margin-bottom:0;padding:0 12px;font-style:italic;padding:5px 5px 0;border:0}.o_cit blockquote.o_quote p:last-child:after{content:'1)';top:-0.5em;font-size:75%;line-height:0;position:relative;vertical-align:baseline}.o_cit .o_cit_bibinfo{font-size:90%;margin-left:1em;position:relative}.o_cit .o_cit_bibinfo>div:first-child:before{content:'1)';position:absolute;top:0.5em;left:-1em;font-size:75%;line-height:0;vertical-align:baseline}.o_cit .title,.o_cit .url,.o_cit .authors,.o_cit .pages,.o_cit .date,.o_cit .dateAdded,.o_cit .place,.o_cit .institution,.o_cit .issue,.o_cit .publisher,.o_cit .publicationTitle,.o_cit .edition,.o_cit .series,.o_cit .volume{margin-right:0.5em}.o_cit .title{font-style:italic}.o_cit .publicationTitle{color:black}.o_cit .links{padding-left:2em}.o_cit .notes{padding-left:2em;color:grey}.o_cit .note{font-style:italic}.o_cit .note p:first-child{margin-top:0}.o_cit .note p:first-child{margin-bottom:0}.o_cit .listing.web .item{padding-left:0;text-indent:0}.o_cit .listing.web .title{display:block;font-weight:bold;font-style:normal}.o_cit .listing.web .publicationTitle{display:block;font-style:italic}.o_cit .listing.web .url{display:block}.o_cit .listing.web .links{padding-left:0}.o_cit .listing.web .notes{padding-left:0}.o_cit .general-info{border-top:1px solid #eee;padding-top:30px;margin-top:30px}.o_cit .copyright{display:none}@media print{.o_cit blockquote.o_quote{page-break-inside:avoid}}.o_video_poster{position:relative;display:inline-block;width:400px;max-width:100%;height:225px;background-size:cover;background-repeat:no-repeat;border:1px solid #eee}.o_video_poster_select{text-align:center}.o_video_poster_select .o_video_poster{margin:5px}.o_video_poster_select .o_video_poster a{position:absolute;left:0;top:0;width:100%;height:100%}.o_video_poster_select .o_video_poster a span{position:absolute;bottom:0;width:100%;display:block;line-height:3em;background:#f8f8f8;opacity:0.8}.o_video_poster_select .o_video_poster a:hover{border:1px solid #bbb}.o_video_poster_select .o_video_poster a:hover span{opacity:0.9}.o_video_peekview{text-align:center}.o_video_listing .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_video_listing .o_video_entry{position:relative;display:inline-block;height:230px;width:250px;vertical-align:top;margin-right:10px}.o_video_listing .o_video_poster{width:250px;max-width:100%;height:140px;border:1px solid #eee}.o_video_listing .o_timecode{position:absolute;bottom:2px;right:3px;padding:3px 4px;background:#333;color:#fff;font-size:12px;line-height:12px}.o_video_listing .o_meta{padding:2px;font-size:11px}.o_video_listing .o_meta h5{font-size:14px;margin-top:0;margin-bottom:5px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o_video_listing .o_date{margin-left:10px;display:inline-block}.o_video_listing .o_date:before{content:'\002022';margin-right:10px;display:inline-block}.o_video_run h1{font-size:1.8rem;font-weight:normal}.o_video_run .o_author{margin-top:0.5em;margin-bottom:1em;line-height:normal;font-size:90%;color:#3c763d}.o_video_run .o_ratings_and_comments{margin-top:2em;border-top:1px solid #eee;padding-top:1em}.o_video_chapter_editor .o_table_wrapper.o_table_flexi .table,.o_video_marker_editor .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_video_marker_editor .o_video_question.mejs__overlay{overflow:scroll}.o_video_question.mejs__overlay.o_video_large_question{align-items:flex-start;padding:1em 1em 0 1em;z-index:5}.o_video_question.mejs__overlay.o_video_large_question #o_qti_container{border:1px solid #eee}.o_video_marker{position:absolute;background-color:#efefef;opacity:0.85;border-left:3px solid #5bc0de;padding:5px}.o_video_marker.o_video_marker_gray{border-left-color:#333}.o_video_marker.o_video_marker_blue{border-left-color:#bce8f1}.o_video_marker.o_video_marker_green{border-left-color:#5cb85c}.o_video_marker.o_video_marker_yellow{border-left-color:#f0ad4e}.o_video_marker.o_video_marker_red{border-left-color:#d9534f}.o_video_question.mejs__overlay{width:100%;height:100%;background-color:rgba(255,255,255,0.5)}.o_video_question #itemBody,.o_video_question .modalFeedback{background-color:white;opacity:1.0}.o_video_question .o_assessmentitem_wrapper .o_qti_item_body{min-height:50px}.o_video_question #o_qti_assessment_test_timer{border:none;padding:5px;margin:0}.o_video_question #o_qti_progress .progress{height:10px}.o_video_question #o_qti_container{background-color:white;padding:5px;border-radius:3px}.o_video_question .o_sel_additional_feedback{float:left;font-size:26px}.o_video_question .o_sel_additional_feedback .o_icon_passed{color:#5cb85c}.o_video_question .o_sel_additional_feedback .o_icon_failed{color:#d9534f}.mejs__time-rail .o_video_marker_gray{background:#333}.mejs__time-rail .o_video_marker_blue{background:#bce8f1}.mejs__time-rail .o_video_marker_green{background:#5cb85c}.mejs__time-rail .o_video_marker_yellow{background:#f0ad4e}.mejs__time-rail .o_video_marker_red{background:#d9534f}.mejs__controls .mejs__sourcechooser-button>button{background:transparent;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.mejs__controls .mejs__sourcechooser-button>button:before{content:"";color:white;font-size:18px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector{visibility:visible !important;width:170px;padding-left:10px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label{font-weight:normal;font-size:10px;width:140px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label:hover{color:#eee}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label .type{display:none}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li input{visibility:hidden;margin:0;width:0}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li input:checked+label{color:#d9534f}.mejs__controls .mejs__captions-button .mejs__captions-selector{right:-26px}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label{font-weight:normal;font-size:10px}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label:hover{color:#eee}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label .type{display:none}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li input{visibility:hidden;margin:0;width:0}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li input:checked+label{color:#d9534f}.mejs__button.mejs__speed-button{width:36px}.mejs__controls .mejs__speed-button>button{background:transparent;width:36px;margin:11px 0 0 0;font-size:11px;line-height:normal;color:#ffffff}.mejs__controls .mejs__speed-button .mejs__speed-selector{height:150px;top:auto;bottom:40px}.mejs__controls .mejs__speed-button .mejs__speed-selector ul li label{font-weight:normal;font-size:10px}.mejs__chapters .mejs__chapter .mejs__chapter-block .ch-title,.mejs__chapters .mejs__chapter .mejs__chapter-block .ch-time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.mejs__time-marker{background-color:#5bc0de}.o_userbulk_changedcell{font-style:italic;font-weight:bold}.o_qpool_source_status{text-align:center}.o_qitem_author{white-space:nowrap}a.o_qpool_status{margin:0 2px 2px 2px;text-align:left}.o_labeled.o_qpool_status_draft,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_draft{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_labeled.o_qpool_status_review,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_review{background-color:#ffd351;border-color:#ffd351;color:#fff}.o_labeled.o_qpool_status_revised,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_revised{background-color:#933;border-color:#933;color:#fff}.o_labeled.o_qpool_status_finalVersion,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_finalVersion{background-color:#14892c;border-color:#14892c;color:#fff}.o_labeled.o_qpool_status_endOfLife,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_endOfLife{background-color:#aaa;border-color:#aaa;color:#fff}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_draft{background-color:#384e64}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_review{background-color:#ffc61e}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_revised{background-color:#732626}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_finalVersion{background-color:#0e5c1e}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_endOfLife{background-color:#919191}.o_labeled_light.o_qpool_status_draft_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_draft_light{border-color:#4a6785;color:#4a6785}.o_labeled_light.o_qpool_status_review_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_review_light{border-color:#ffd351;color:#333}.o_labeled_light.o_qpool_status_revised_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_revised_light{border-color:#933;color:#933}.o_labeled_light.o_qpool_status_finalVersion_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_finalVersion_light{border-color:#14892c;color:#14892c}.o_labeled_light.o_qpool_status_endOfLife_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_endOfLife_light{border-color:#aaa;color:#aaa}.btn-arrow-right.o_qpool_qitem_draft{background:#f8f8f8;border-bottom-color:#4a6785;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_review{background:#f8f8f8;border-bottom-color:#ffd351;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_revised{background:#f8f8f8;border-bottom-color:#933;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_final{background:#f8f8f8;border-bottom-color:#14892c;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_end_of_life{background:#f8f8f8;border-bottom-color:#aaa;border-bottom-width:3px}.btn-arrow-right.o_qpool_status_slected{background-color:#e7e7e7;color:#555}.btn-arrow-right,.btn-arrow-left{position:relative;padding-left:18px;padding-right:18px;margin-bottom:5px}.btn-arrow-right{padding-left:36px}.btn-arrow-left{padding-right:36px}.btn-arrow-right:before,.btn-arrow-right:after,.btn-arrow-left:before,.btn-arrow-left:after{content:"";position:absolute;top:5px;width:22.627417px;height:22.627417px;background:inherit;border:inherit;border-left-color:transparent;border-bottom-color:transparent;border-radius:0px 4px 0px 0px;-webkit-border-radius:0px 4px 0px 0px;-moz-border-radius:0px 4px 0px 0px}.btn-arrow-right:before,.btn-arrow-right:after{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-transform:rotate(45deg)}.btn-arrow-left:before,.btn-arrow-left:after{transform:rotate(225deg);-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-o-transform:rotate(225deg);-ms-transform:rotate(225deg)}.btn-arrow-right:before,.btn-arrow-left:before{left:-11px}.btn-arrow-right:after,.btn-arrow-left:after{right:-11px}.btn-arrow-right:after,.btn-arrow-left:before{z-index:1}.btn-arrow-right:before,.btn-arrow-left:after{background-color:white}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;border-top:50px solid transparent;border-bottom:70px solid transparent;background:url("../light/images/learn-bg.jpg");background-size:cover;background-position:center center;background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1 )}body.o_dmz #o_bg:after{content:" ";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%);background-size:cover;background-position:center center;background-repeat:no-repeat}body.o_dmz #o_toplink{display:none}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#337ab7}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#337ab7}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social .btn-default.o_sel_auth_facebook{color:#fff;background-color:#4568b2;border-color:#3e5da0}.o_login .o_login_social .btn-default.o_sel_auth_facebook:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_facebook.dropdown-toggle{color:#fff;background-color:#37538d;border-color:#2d4374}.o_login .o_login_social .btn-default.o_sel_auth_facebook:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_facebook.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled],.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook.active{background-color:#4568b2;border-color:#3e5da0}.o_login .o_login_social .btn-default.o_sel_auth_facebook .badge{color:#4568b2;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_twitter{color:#fff;background-color:#2cc5ff;border-color:#13beff}.o_login .o_login_social .btn-default.o_sel_auth_twitter:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_twitter.dropdown-toggle{color:#fff;background-color:#00b4f8;border-color:#009ad4}.o_login .o_login_social .btn-default.o_sel_auth_twitter:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_twitter.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled],.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter.active{background-color:#2cc5ff;border-color:#13beff}.o_login .o_login_social .btn-default.o_sel_auth_twitter .badge{color:#2cc5ff;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_google{color:#fff;background-color:#e15f4f;border-color:#dd4b39}.o_login .o_login_social .btn-default.o_sel_auth_google:hover,.o_login .o_login_social .btn-default.o_sel_auth_google:focus,.o_login .o_login_social .btn-default.o_sel_auth_google.focus,.o_login .o_login_social .btn-default.o_sel_auth_google:active,.o_login .o_login_social .btn-default.o_sel_auth_google.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_google.dropdown-toggle{color:#fff;background-color:#d83825;border-color:#ba3120}.o_login .o_login_social .btn-default.o_sel_auth_google:active,.o_login .o_login_social .btn-default.o_sel_auth_google.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_google.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_google.disabled,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled],.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google.active{background-color:#e15f4f;border-color:#dd4b39}.o_login .o_login_social .btn-default.o_sel_auth_google .badge{color:#e15f4f;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_linkedin{color:#fff;background-color:#0181bd;border-color:#0170a4}.o_login .o_login_social .btn-default.o_sel_auth_linkedin:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_linkedin.dropdown-toggle{color:#fff;background-color:#015e8a;border-color:#014667}.o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_linkedin.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled],.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin.active{background-color:#0181bd;border-color:#0170a4}.o_login .o_login_social .btn-default.o_sel_auth_linkedin .badge{color:#0181bd;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_adfs{color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_login .o_login_social .btn-default.o_sel_auth_adfs:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_adfs.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_login .o_login_social .btn-default.o_sel_auth_adfs:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_adfs.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled],.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs.active{background-color:#337ab7;border-color:#2e6da4}.o_login .o_login_social .btn-default.o_sel_auth_adfs .badge{color:#337ab7;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect{color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled],.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active{background-color:#337ab7;border-color:#2e6da4}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect .badge{color:#337ab7;background-color:#fff}.o_old_browser{display:none}.o_browser_ie10 .o_old_browser{display:block}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fcfcfc;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:""}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_catalog_title h2,.o_library_catalog_title h3,.o_library_catalog_title h4,.o_library_catalog_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_catalog_title h2{margin-top:0}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_library .o_ratings_and_comments .o_rating_title,.o_library .o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #337ab7 !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_useradmin .o_user_infos .o_user_infos_inner{margin-right:45px}div.o_skype_button{display:inline-block}div.o_skype_button p{margin:0 0 0 0}div.o_skype_button p a img{margin:0 !important;vertical-align:middle !important}.o_useradmin div#o_main_toolbar.o_toolbar{margin-top:0px}.o_members_pagination{text-align:center}.o_bcard_logo{margin-left:10px;height:66px}.o_bcard_title_with_logo{clear:both;padding:20px 0 0 0}.o_visitingcard_image,.o_visitingcard_logo{height:66px}.o_visitingcard .o_icon_visitingcard{display:none}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}.o_visitingcard_image,.o_visitingcard_logo{height:50px}.o_visitingcard_logo,.o_bcard_logo{height:50px;margin:5px 0 0 5px}.o_visitingcard_logo img,.o_bcard_logo img{position:relative;transform:scale(.7575757576);top:-8px}}@media (max-width: 414px){.o_visitingcard_logo img{max-width:260px}}@media (max-width: 375px){.o_visitingcard_logo img{max-width:220px}}@media (max-width: 320px){.o_visitingcard_logo img{max-width:180px}.o_bcard_logo img{max-width:150px}}.o_gta_coach_selection .o_noti{display:inline-block;float:none;margin:0}.o_gta_coach_selection .o_gta_coach_selection_bar{position:relative}.o_gta_coach_selection .o_gta_coach_selection_bar .o_noti{position:absolute;top:3px;right:0}p.o_gta_reopen_warning{margin-top:-20px}.o_lecture_authorized_absence div.form-inline,.o_lecture_authorized_absence div.o_navbar-form{display:inline}.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_date,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_startTime,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_endTime,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_details,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_tools{width:1%}.o_lectures_teacher_overview .o_lectures_current_wrapper{border:1px solid transparent;background:#f8f8f8;border-radius:4px;margin:10px -10px 20px -10px;padding:10px}.o_lectures_teacher_overview .o_lectures_current_wrapper .o_button_group{margin-bottom:0}.o_lectures_teacher_overview .o_lectures_teacher_search .o_form .o_date{padding-right:10px;position:relative}.o_lectures_teacher_overview .o_lectures_teacher_search div.o_chelp_wrapper_and_buttons{position:absolute;top:0;right:0}.o_header_with_buttons .o_day_chooser{position:relative;float:right}.o_lectures_rollcall legend{margin-bottom:10px}.o_lectures_rollcall .o_desc,.o_lectures_rollcall .o_preparation{margin:0}.o_rollcall_next_previous_group{text-align:center}.o_rollcall_next_previous_group a.o_sel_close{float:left}.o_rollcall_next_previous_group a.o_sel_close span{display:none}.o_rollcall_next_previous_group .form-control{display:inline;width:auto}@media (max-width: 767px){.o_rollcall_next_previous_group a span{display:none}}.o_lecture_free{color:#777}.o_rollcall_portrait>div{margin:0 auto 10px auto;width:100px}.o_edubase_pv{overflow:hidden;padding-top:10px}.o_edubase_pv_fig{display:inline-block;vertical-align:top;width:110px;margin-right:3%}.o_edubase_run_enabled .o_edubase_page{font-size:12px;color:#777}.o_edubase_run_disabled .o_edubase_booksection{margin-right:3%;margin-bottom:3%;width:177px;display:inline-table}.o_edubase_run_disabled .o_edubase_page{font-size:12px;color:#777}.o_edubase_bs_buttons{padding-top:10px}.o_edubase_bs_book_id{margin-top:-2px}.o_edubase_bs_details{margin-left:-20px}.o_edubase_bs_details_label{visibility:hidden}.o_edubase_bs_cover object{margin-left:10px;margin-top:10px;height:120px}.o_edubase_bs_cover img{margin-left:10px;margin-top:10px;height:120px}.o_edubase_edit_books .o_icon_error{visibility:hidden}.o_edubase_edit_books .o_icon_help{margin-bottom:0px}.o_edubase_edit_books .row{margin-bottom:5px}.o_edusharing_container.o_in_iframe .edusharing_metadata_wrapper{margin-top:5px}.o_edusharing_container.o_in_iframe .edusharing_metadata.open{position:unset;margin:0;padding:0}.o_edusharing_container.o_in_iframe .edusharing_metadata.open:before{content:unset;border:unset;top:unset;position:unset;left:unset;width:unset;height:unset}.o_edusharing_container.o_hide_license .license{display:none}.o_edusharing_container.o_hide_infos .edusharing_metadata_wrapper{display:none}.o_edusharing_left{display:block;float:left;margin:5px 5px 5px 0}.o_edusharing_right{display:block;float:right;margin:5px 0 5px 5px}.o_edusharing_inline{display:inline-block;margin:0 5px}.o_edusharing_none{display:block;float:none;margin:5px 0}.eduContainer{width:180px;color:transparent}.edusharing_spinner_inner{width:30px;height:50px;display:inline-block}.edusharing_spinner1{background:url("../light/images/edusharing/hex1.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.1s;-moz-animation-delay:0.1s;animation-delay:0.1s}.edusharing_spinner2{background:url("../light/images/edusharing/hex2.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.25s;-moz-animation-delay:0.25s;animation-delay:0.25s}.edusharing_spinner3{background:url("../light/images/edusharing/hex3.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.5s;-moz-animation-delay:0.5s;animation-delay:0.5s}@-webkit-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-moz-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-ms-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-o-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5) rotate(90deg)}100%{transform:scale(1)}}body.o_doceditor_body{margin-bottom:0px}body.o_doceditor_body .o_container_offcanvas{max-width:100%}body.o_doceditor_body .container-fluid{padding-left:0px;padding-right:0px;margin-left:0px;margin-right:0px}body.o_doceditor_body #o_toplink{display:none}.o_doceditor{margin-top:10px}.o_doceditor .o_doceditor_config .nav button{margin-top:3px}.o_doceditor .navbar-collapse{border-top:0 !important}.o_doceditor .navbar-collapse.collapse{display:block !important}.o_doceditor .navbar-nav{margin:0}.o_doceditor .navbar-nav>li,.o_doceditor .navbar-nav{float:left !important}.o_doceditor .navbar-right{float:right !important}.o_doceditor .navbar-nav>li>.dropdown-menu{background-color:#f8f8f8;border-color:#e7e7e7;position:absolute;right:0;left:auto}.o_doceditor .navbar-nav>li>a{padding-top:10px !important;padding-bottom:10px !important;line-height:20px !important}.o_doceditor .o_collabora iframe,.o_doceditor .o_onlyoffice iframe,.o_doceditor .o_office365 iframe{width:100%;height:calc(100vh - 61px);height:calc(var(--doceditorvh, 1vh) * 100 - 61px);margin-top:10px;border-width:0px}.o_doceditor.o_web_document .o_collabora iframe,.o_doceditor.o_web_document .o_onlyoffice iframe,.o_doceditor.o_web_document .o_office365 iframe{width:100%;height:calc(100vh - 321px);height:calc(var(--doceditorvh, 1vh) * 100 - 321px);margin-top:10px;margin-bottom:10px;border-width:1px}.o_doceditor.o_web_document_edit .o_collabora iframe,.o_doceditor.o_web_document_edit .o_onlyoffice iframe,.o_doceditor.o_web_document_edit .o_office365 iframe{width:100%;height:calc(100vh - 276px);height:calc(var(--doceditorvh, 1vh) * 100 - 276px);margin-top:10px;margin-bottom:25px;border-width:1px}.o_doceditor .o_file_editor,.o_doceditor .o_doceditor_data_transfer{margin-right:15px;margin-left:15px}.o_web_content .o_doceditor{margin-top:0px}.o_taxonomy div#o_main_toolbar.o_toolbar{margin-top:0px}.o_taxonomy_listing.o_rendertype_custom .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_taxonomy_listing.o_rendertype_custom .o_taxonomy_row{position:relative;display:inline-block;height:225px;width:450px;vertical-align:top;margin-right:10px}.o_taxonomy_listing.o_rendertype_custom .o_taxonomy_row ul{padding-left:2em}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close span{display:none}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important;float:right}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px;overflow:auto;background:white !important}.ui-dialog .ui-dialog-titlebar{padding:4px 7px 4px 7px;background-color:#eee !important}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui{max-width:100vw;max-height:100vh}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}@media (max-width: 767px){.ui-dialog.o_modal-ui{height:100vh !important;width:100vw !important}.ui-dialog.o_modal-ui div.ui-dialog-content{height:90vh !important}}.ui-slider.ui-slider-horizontal.ui-widget-content{border-color:#aaa;background:#f9f9f9}.ui-slider.ui-slider-horizontal.ui-widget-content.ui-state-disabled{opacity:0.65}.o_has_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:1px solid #337ab7;background-image:none;background-color:#337ab7}.o_no_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:3px solid #337ab7;background-image:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #2e6da4;background:#337ab7;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}.o_richtext_mce_without_path .mce-statusbar{border:none}.o_richtext_mce_without_path .mce-path{display:none !important}.o_richtext_mce_without_path .mce-menubtn.mce-fixed-width span{width:auto}.o_richtext_mce>.o_richtext_mce_modes{text-align:right;padding-right:4px}.o_richtext_mce>.o_richtext_mce_modes a{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}i.mce-ico.mce-i-media,i.mce-ico.mce-i-movie,i.mce-ico.mce-i-help,i.mce-ico.mce-i-gaptext,i.mce-ico.mce-i-gapnumerical,i.mce-ico.mce-i-hottext,i.mce-ico.mce-i-edit{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}i.mce-ico.mce-i-media:before{content:""}i.mce-ico.mce-i-movie:before{content:""}i.mce-ico.mce-i-gaptext:before{content:""}i.mce-ico.mce-i-gapnumerical:before{content:""}i.mce-ico.mce-i-hottext:before{content:""}i.mce-ico.mce-i-math:before{content:'\03A3'}i.mce-ico.mce-i-edit:before{content:""}i.mce-ico.mce-i-help{width:9px;height:9px;padding-top:1px}i.mce-ico.mce-i-help:before{content:"";color:white}.mce-tabs span.o_chelp_wrapper{float:right;margin:5px}.mce-wordcount:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:""}.mce-danger .mce-wordcount:after{color:#d9534f;content:""}.mce-statusbar.mce-danger{background-color:#f2dede}.mce-textbox.mce-danger{border-color:#ce8383;background-color:#f2dede}@media (max-width: 470px){.mce-foot .mce-container-body.mce-abs-layout{left:-337px}}div.o_table_search>span.twitter-typeahead{padding-top:5px}.tag.label.label-info{margin-right:3px}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_segments,.o_table_toolbar,.o_breadcrumb,.o_bookmark,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_container_offcanvas{max-width:100%;margin-left:5px;margin-right:5px}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}.o_print_break_after{clear:both;page-break-after:always}.btn{display:none}.o_form textarea,.o_form .form-control.textarea_disabled{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fff !important;height:auto !important;color:#000 !important;resize:none}#o_comment_form_link,.o_comments form{display:none !important}.o_avatar{display:none}body.o_dmz{background:white !important;-webkit-print-color-adjust:exact;color-adjust:exact}.modal-content{border:0}.modal-header{display:none}.modal-body{padding:0}.modal-dialog{margin:0 !important;width:100% !important;height:100% !important;background:#fff !important;-webkit-print-color-adjust:exact;color-adjust:exact}.progress{page-break-inside:avoid;-webkit-print-color-adjust:exact;color-adjust:exact;background-color:rgba(0,0,0,0.1) !important;border:1px solid rgba(0,0,0,0.5)}.progress-bar{-webkit-print-color-adjust:exact;background-color:#000 !important;border:10px solid #000}.ui-slider.ui-slider-horizontal.ui-widget-content{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f9f9f9 !important}.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{-webkit-print-color-adjust:exact;color-adjust:exact}.o_has_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{background-color:#337ab7 !important}.o_no_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:none !important}.radial-progress{page-break-inside:avoid;-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#eee !important}.radial-progress .circle .mask .fill{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#000 !important}.radial-progress .inset{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#fff !important}.radial-progress .inset .bgIcon{opacity:0.3;transition:opacity 0.3}.radial-progress .inset .bgIcon:before,.radial-progress .inset .o_icon_progress_danger:before,.radial-progress .inset .o_icon_progress_success:before{opacity:0.3;transition:opacity 0.3;color:#777 !important}.radial-progress:not([data-progress="0"]) .inset .bgIcon{opacity:0.3;transition:opacity 0.3;color:#777 !important}body{margin:0;zoom:0.6}table,figure,figure{page-break-inside:avoid}h1,h2,h3,h4,.o_cal .fc-header-title h2,h5,h6{page-break-after:avoid}.o_disclaimer .o_disclaimer_content{max-height:none}}.o_highscore .o_position{text-align:center;font-size:1.2em;font-weight:bold}.o_highscore .o_position h2{font-size:3em;font-weight:700;line-height:1.2em}@media screen and (-webkit-min-device-pixel-ratio: 0){.o_highscore .o_position h2{background:linear-gradient(330deg, #e05252 0%, #99e052 25%, #52e0e0 50%, #9952e0 75%, #e05252 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline}.o_highscore .o_position h2:after{content:"\A";white-space:pre}}.o_highscore .o_position_relative{font-size:1em;font-weight:normal}.o_highscore .o_podium{position:relative;vertical-align:bottom;height:300px;margin-bottom:50px}.o_highscore .o_rank{width:30%;position:absolute;bottom:0;text-shadow:rgba(102,102,102,0.5) 0 -1px 0,rgba(255,255,255,0.6) 0 2px 1px}.o_highscore .o_rank:before{position:absolute;bottom:0;left:0;width:100%;text-align:center}.o_highscore .o_rank .o_name{position:absolute;top:100%;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:1em;text-shadow:none}.o_highscore .o_rank .o_score{color:#777;font-size:90%;width:100%;text-align:center;position:absolute;top:-20px;text-shadow:none}.o_highscore .o_rank .o_singleportrait{position:absolute;width:100%;text-align:center;top:-125px}.o_highscore .o_rank .o_rank_portraits{position:relative;left:0;top:-210px;height:180px;width:200px;text-align:center;vertical-align:bottom;display:table-cell}.o_highscore .o_rank .o_rank_portraits ul{display:inline-block}.o_highscore .o_rank .o_rank_portraits .o_portrait{margin:5px}.o_highscore .o_first{height:150px;left:30%;border:1px solid #d9d9d9;border-top-left-radius:4px;border-top-right-radius:4px;background:gold;background:-moz-linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);background:-webkit-linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);background:linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 )}.o_highscore .o_first:before{content:"1";font-size:700%;line-height:150px;color:#666}.o_highscore .o_second{height:100px;left:0;background:silver;background:-moz-linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);background:-webkit-linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);background:linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 );border-left:1px solid #d9d9d9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;border-top-left-radius:4px}.o_highscore .o_second:before{content:"2";font-size:500%;line-height:100px;color:#666}.o_highscore .o_third{height:80px;left:60%;background:#cd7f32;background:-moz-linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);background:-webkit-linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);background:linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 );border-right:1px solid #d9d9d9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;border-top-right-radius:4px}.o_highscore .o_third:before{content:"3";font-size:300%;line-height:80px;color:#666}.o_highscore .o_histogram{position:relative;bottom:-40px;margin-bottom:40px}.o_highscore .o_histogram .d3chart{width:100%;padding-top:50px;height:300px}.o_highscore .o_histogram .d3chart text{fill:#888}.o_highscore .o_histogram .d3chart .axis path,.o_highscore .o_histogram .d3chart .axis line{stroke:#888}.o_highscore .o_histogram .d3chart .o_myself{fill:#337ab7}.o_highscore .o_histogram .d3chart .o_myself:hover{fill:#5094ce}.o_highscore .o_histogram .d3chart .o_other{fill:#777}.o_highscore .o_histogram .d3chart .o_other:hover{fill:#919191}.o_highscore .o_histogram .d3chart .o_empty{fill:#000}.o_listing .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_listing table th:nth-of-type(1),.o_listing table th :nth-of-type(2){width:5em}
 /*# sourceMappingURL=theme.css.map */
diff --git a/src/main/webapp/static/themes/light/theme.css.map b/src/main/webapp/static/themes/light/theme.css.map
index ad085fb77bee5e886e8e90009ef5a1a887c3cb88..c9dd2dcc075ff5f750b1721abcb2be12f0880c54 100644
--- a/src/main/webapp/static/themes/light/theme.css.map
+++ b/src/main/webapp/static/themes/light/theme.css.map
@@ -1,6 +1,6 @@
 {
 "version": 3,
-"mappings": "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",
+"mappings": "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",
 "sources": ["_license.scss","../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../bootstrap/stylesheets/bootstrap/_code.scss","../../bootstrap/stylesheets/bootstrap/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid-framework.scss","../../bootstrap/stylesheets/bootstrap/_tables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_table-row.scss","../../bootstrap/stylesheets/bootstrap/_forms.scss","../../bootstrap/stylesheets/bootstrap/mixins/_forms.scss","../../bootstrap/stylesheets/bootstrap/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","../../bootstrap/stylesheets/bootstrap/_component-animations.scss","../../bootstrap/stylesheets/bootstrap/_dropdowns.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-divider.scss","../../bootstrap/stylesheets/bootstrap/mixins/_reset-filter.scss","../../bootstrap/stylesheets/bootstrap/_button-groups.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../bootstrap/stylesheets/bootstrap/_input-groups.scss","../../bootstrap/stylesheets/bootstrap/_navs.scss","../../bootstrap/stylesheets/bootstrap/_navbar.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-vertical-align.scss","../../bootstrap/stylesheets/bootstrap/_breadcrumbs.scss","../../bootstrap/stylesheets/bootstrap/_pagination.scss","../../bootstrap/stylesheets/bootstrap/mixins/_pagination.scss","../../bootstrap/stylesheets/bootstrap/_pager.scss","../../bootstrap/stylesheets/bootstrap/_labels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_labels.scss","../../bootstrap/stylesheets/bootstrap/_badges.scss","../../bootstrap/stylesheets/bootstrap/_jumbotron.scss","../../bootstrap/stylesheets/bootstrap/_thumbnails.scss","../../bootstrap/stylesheets/bootstrap/_alerts.scss","../../bootstrap/stylesheets/bootstrap/mixins/_alerts.scss","../../bootstrap/stylesheets/bootstrap/_progress-bars.scss","../../bootstrap/stylesheets/bootstrap/mixins/_gradients.scss","../../bootstrap/stylesheets/bootstrap/mixins/_progress-bar.scss","../../bootstrap/stylesheets/bootstrap/_media.scss","../../bootstrap/stylesheets/bootstrap/_list-group.scss","../../bootstrap/stylesheets/bootstrap/mixins/_list-group.scss","../../bootstrap/stylesheets/bootstrap/_panels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_panels.scss","../../bootstrap/stylesheets/bootstrap/_responsive-embed.scss","../../bootstrap/stylesheets/bootstrap/_wells.scss","../../bootstrap/stylesheets/bootstrap/_close.scss","../../bootstrap/stylesheets/bootstrap/_modals.scss","../../bootstrap/stylesheets/bootstrap/_tooltip.scss","../../bootstrap/stylesheets/bootstrap/_popovers.scss","../../bootstrap/stylesheets/bootstrap/_utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_center-block.scss","../../bootstrap/stylesheets/bootstrap/mixins/_hide-text.scss","../../bootstrap/stylesheets/bootstrap/_responsive-utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_responsive-visibility.scss","modules/_bootstrap.scss","modules/_fonts.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","../../font-awesome/scss/_larger.scss","../../font-awesome/scss/_fixed-width.scss","../../font-awesome/scss/_list.scss","../../font-awesome/scss/_variables.scss","../../font-awesome/scss/_bordered-pulled.scss","../../font-awesome/scss/_animated.scss","../../font-awesome/scss/_rotated-flipped.scss","../../font-awesome/scss/_mixins.scss","../../font-awesome/scss/_stacked.scss","modules/_icons.scss","modules/_emoticons.scss","modules/_helpers.scss","modules/_type.scss","modules/_content_embedded.scss","modules/_mixins.scss","modules/_tinymce.scss","modules/_radial-progress.scss","modules/_layout.scss","modules/_main.scss","modules/_footer.scss","modules/_navbar.scss","modules/_toolbar.scss","modules/_offcanvas.scss","modules/_dialog.scss","modules/_tree.scss","modules/_breadcrumb.scss","modules/_form.scss","modules/_table.scss","modules/_im.scss","modules/_flags.scss","modules/_rating_and_comments.scss","modules/_chart.scss","modules/_forum.scss","modules/_various_modules.scss","modules/_autocomplete.scss","modules/_search.scss","modules/_wizard.scss","modules/_process.scss","modules/_cal.scss","modules/_pagecontenteditor.scss","modules/_coursesite.scss","modules/_repository.scss","modules/_course.scss","modules/_curriculum.scss","modules/_qti.scss","modules/_qti21.scss","modules/_devel.scss","modules/_wiki.scss","modules/_portfolio.scss","modules/_portfoliomaps/_epmst_default.scss","modules/_portfoliomaps/_mixins.scss","modules/_portfoliomaps/_epmst_comic.scss","modules/_portfoliomaps/_epmst_leather.scss","modules/_portfoliomaps/_epmst_green.scss","modules/_portfoliomaps/_epmst_green2.scss","modules/_portfoliomaps/_epmst_green3.scss","modules/_portfoliomaps/_epmst_green4.scss","modules/_portfoliomaps/_epmst_red.scss","modules/_portfoliomaps/_epmst_red2.scss","modules/_portfoliomaps/_epmst_red3.scss","modules/_portfoliomaps/_epmst_red4.scss","modules/_portfoliomaps/_epmst_blue.scss","modules/_portfoliomaps/_epmst_blue2.scss","modules/_portfoliomaps/_epmst_blue3.scss","modules/_portfoliomaps/_epmst_blue4.scss","modules/_portfolio_v2.scss","modules/_evaluation_form.scss","modules/_quality.scss","modules/_citation.scss","modules/_video.scss","modules/_admin.scss","modules/_qpool.scss","modules/_dmz.scss","modules/_portal.scss","modules/_library.scss","modules/_translationtool.scss","modules/_user.scss","modules/_members.scss","modules/_grouptask.scss","modules/_lecture.scss","modules/_edubase.scss","modules/_edusharing.scss","modules/_doceditor.scss","modules/_taxonomy.scss","modules/_thirdparty.scss","modules/_print.scss","modules/_highscore.scss"],
 "names": [],
 "file": "theme.css"
diff --git a/src/main/webapp/static/themes/openolat/theme.css b/src/main/webapp/static/themes/openolat/theme.css
index ac4871caae170fde25b50eaa8bda2faf504f6cd9..14947a74c7ea9ed7fefbf035b133def70048cd3d 100644
--- a/src/main/webapp/static/themes/openolat/theme.css
+++ b/src/main/webapp/static/themes/openolat/theme.css
@@ -22,5 +22,5 @@
  *  @author gnaegi, www.frentix.com
  *  @date April. 2014
  * ========================================================
-**//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:14px;line-height:1.428571429;color:#2d2926;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#209d9e;text-decoration:none}a:hover,a:focus{color:#177374;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail,.o_form .o_filepreview img,.o_feed .o_media{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,.o_cal .fc-header-title h2,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:#342c24}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,.o_cal .fc-header-title h2 small,h4 .small,.o_cal .fc-header-title h2 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.o_cal .fc-header-title h2,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.o_cal .fc-header-title h2 small,h4 .small,.o_cal .fc-header-title h2 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.o_cal .fc-header-title h2,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#209d9e}a.text-primary:hover{color:#177374}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff}.bg-primary{background-color:#209d9e}a.bg-primary:hover{background-color:#177374}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.428571429;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width: 767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;background-color:#fcfcfc;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#fafafa;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px}input[type="date"].input-sm,.input-group-sm>input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,input[type="time"].input-sm,.input-group-sm>input[type="time"].form-control,.input-group-sm>input[type="time"].input-group-addon,.input-group-sm>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-sm,.input-group-sm>input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].input-group-addon,.input-group-sm>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-sm,.input-group-sm>input[type="month"].form-control,.input-group-sm>input[type="month"].input-group-addon,.input-group-sm>.input-group-btn>input[type="month"].btn{line-height:30px}input[type="date"].input-lg,.input-group-lg>input[type="date"].form-control,.input-group-lg>input[type="date"].input-group-addon,.input-group-lg>.input-group-btn>input[type="date"].btn,input[type="time"].input-lg,.input-group-lg>input[type="time"].form-control,.input-group-lg>input[type="time"].input-group-addon,.input-group-lg>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-lg,.input-group-lg>input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].input-group-addon,.input-group-lg>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-lg,.input-group-lg>input[type="month"].form-control,.input-group-lg>input[type="month"].input-group-addon,.input-group-lg>.input-group-btn>input[type="month"].btn{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"].disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"].disabled,fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,fieldset[disabled] .radio-inline,.checkbox-inline.disabled,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,fieldset[disabled] .radio label,.checkbox.disabled label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn,.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,.form-group-sm .form-control,select[multiple].input-sm,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn,.form-group-sm .form-control{height:auto}.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn,.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,.form-group-lg .form-control,select[multiple].input-lg,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn,.form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label ~ .form-control-feedback{top:25px}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#726860}@media (min-width: 768px){.form-inline .form-group,.o_navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control,.o_navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static,.o_navbar-form .form-control-static{display:inline-block}.form-inline .input-group,.o_navbar-form .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.o_navbar-form .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.o_navbar-form .input-group .input-group-btn,.form-inline .input-group .form-control,.o_navbar-form .input-group .form-control{width:auto}.form-inline .input-group>.form-control,.o_navbar-form .input-group>.form-control{width:100%}.form-inline .control-label,.o_navbar-form .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.o_navbar-form .radio,.form-inline .checkbox,.o_navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.o_navbar-form .radio label,.form-inline .checkbox label,.o_navbar-form .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.o_navbar-form .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"],.o_navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback,.o_navbar-form .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width: 768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width: 768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width: 768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn.focus,.btn:active:focus,.btn:active.focus,.btn.active:focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fcfcfc;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e3e3e3;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#fcfcfc;border-color:#ccc}.btn-default .badge{color:#fcfcfc;background-color:#333}.btn-primary{color:#fff;background-color:#209d9e;border-color:#1c8889}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#209d9e;border-color:#1c8889}.btn-primary .badge{color:#209d9e;background-color:#fff}.btn-success{color:#fff;background-color:#78be20;border-color:#6aa81c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#5c9219;border-color:#497414}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled].active,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:#78be20;border-color:#6aa81c}.btn-success .badge{color:#78be20;background-color:#fff}.btn-info{color:#fff;background-color:#a6a6a6;border-color:#999}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#8d8d8d;border-color:#7b7b7b}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#a6a6a6;border-color:#999}.btn-info .badge{color:#a6a6a6;background-color:#fff}.btn-warning{color:#fff;background-color:#f2af40;border-color:#f0a528}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ef9b10;border-color:#cd850e}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#f2af40;border-color:#f0a528}.btn-warning .badge{color:#f2af40;background-color:#fff}.btn-danger{color:#fff;background-color:#d6001c;border-color:#bd0019}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#a30015;border-color:#7f0011}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#d6001c;border-color:#bd0019}.btn-danger .badge{color:#d6001c;background-color:#fff}.btn-link{color:#209d9e;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#177374;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fcfcfc;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#209d9e}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#209d9e}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#209d9e}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width: 768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width: 480px) and (orientation: landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (min-width: 768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width: 767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width: 768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm,.btn-group-sm>.navbar-btn.btn{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs,.btn-group-xs>.navbar-btn.btn{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right ~ .navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:hover,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#090909;color:#fff}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:hover,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#209d9e;background-color:#fcfcfc;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#177374;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fcfcfc;background-color:#209d9e;border-color:#209d9e;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fcfcfc;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fcfcfc;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#209d9e}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#177374}.label-success{background-color:#78be20}.label-success[href]:hover,.label-success[href]:focus{background-color:#5c9219}.label-info{background-color:#a6a6a6}.label-info[href]:hover,.label-info[href]:focus{background-color:#8d8d8d}.label-warning{background-color:#f2af40}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ef9b10}.label-danger{background-color:#d6001c}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#a30015}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#209d9e;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.jumbotron,.o_repo_details .o_lead{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{color:#342c24}.jumbotron p,.o_repo_details .o_lead p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr,.o_repo_details .o_lead>hr{border-top-color:#d5d5d5}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead,.container-fluid .jumbotron,.container-fluid .o_repo_details .o_lead,.o_repo_details .container-fluid .o_lead{border-radius:6px}.jumbotron .container,.o_repo_details .o_lead .container{max-width:100%}@media screen and (min-width: 768px){.jumbotron,.o_repo_details .o_lead{padding:48px 0}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead,.container-fluid .jumbotron,.container-fluid .o_repo_details .o_lead,.o_repo_details .container-fluid .o_lead{padding-left:60px;padding-right:60px}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#2d2926}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#209d9e}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4,.alert .o_cal .fc-header-title h2,.o_cal .fc-header-title .alert h2{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#209d9e;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#78be20}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#a6a6a6}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f2af40}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d6001c}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fcfcfc;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#209d9e;border-color:#209d9e}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#9febeb}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fcfcfc;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table,.panel-collapse>.table,.panel-collapse>.table-responsive>.table,.panel-collapse>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption,.panel-collapse>.table caption,.panel-collapse>.table-responsive>.table caption,.panel-collapse>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child,.panel-collapse>.table:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child,.panel-collapse>.table:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body,.panel-collapse>.panel-body+.table,.panel-collapse>.panel-body+.table-responsive,.panel-collapse>.table+.panel-body,.panel-collapse>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td,.panel-collapse>.table>tbody:first-child>tr:first-child th,.panel-collapse>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered,.panel-collapse>.table-bordered,.panel-collapse>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive,.panel-collapse>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#209d9e}.panel-primary>.panel-heading{color:#fff;background-color:#209d9e;border-color:#209d9e}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#209d9e}.panel-primary>.panel-heading .badge{color:#209d9e;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#209d9e}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body div.popover input{max-width:100%}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}.panel-body:nth-child(n+2){border-top:1px solid #ddd}.panel .panel-heading[data-toggle="collapse"]{cursor:pointer}#o_ajax_busy_backdrop{bottom:0;z-index:1020}.form-control-feedback{top:10px}.form-horizontal .has-feedback .form-control-feedback{top:10px}.btn.btn-primary.o_disabled{color:#fff !important}body .progress-bar[aria-valuenow="1"],body .progress-bar[aria-valuenow="2"]{min-width:1px}td.text-left>div.form-inline>label.checkbox-inline>input[type='checkbox'],td.text-left>div.o_navbar-form>label.checkbox-inline>input[type='checkbox']{position:relative}@-moz-document url-prefix(){fieldset{display:table-cell}}@media screen and (max-width: 768px){@supports (-webkit-overflow-scrolling: touch){.form-control,.ui-widget input,.ui-widget select,.ui-widget textarea{font-size:16px}}}@font-face{font-family:'openolat';src:url("../light/fonts/openolat/openolat.eot?4yacgg");src:url("../light/fonts/openolat/openolat.woff") format("woff"),url("../light/fonts/openolat/openolat.ttf") format("truetype"),url("../light/fonts/openolat/openolat.svg") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot");src:url("../../font-awesome/fonts/fontawesome-webfont.woff2") format("woff2"),url("../../font-awesome/fonts/fontawesome-webfont.woff") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.2857142857em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.o_icon-li.o_icon-lg{left:-1.8571428571em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.o_icon-pull-left{float:left}.o_icon-pull-right{float:right}.o_icon.o_icon-pull-left{margin-right:.3em}.o_icon.o_icon-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.o_icon.pull-left{margin-right:.3em}.o_icon.pull-right{margin-left:.3em}.o_icon-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.o_icon-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .o_icon-rotate-90,:root .o_icon-rotate-180,:root .o_icon-rotate-270,:root .o_icon-flip-horizontal,:root .o_icon-flip-vertical{filter:none}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon_absence:before{content:""}.o_icon_absence_authorized:before{content:"";color:#78be20}.o_icon_absence_unauthorized:before{content:"";color:#d6001c}.o_icon_accepted:before{content:""}.o_icon_accessibility:before{content:""}.o_icon_actions:before{content:""}.o_icon_add_html:before{content:""}.o_icon_align_left:before{content:""}.o_icon_align_middle:before{content:""}.o_icon_align_right:before{content:""}.o_icon_archive_tool:before{content:""}.o_icon_assessment_mode:before{content:""}.o_icon_assessment_tool:before{content:""}.o_icon_assignment:before{content:"";color:#d6001c}.o_icon_attempt_limit:before{content:""}.o_icon_accept:before{content:"";color:#78be20}.o_icon_add:before{content:""}.o_icon_add_member:before{content:""}.o_icon_add_search:before{content:""}.o_icon_audio:before{content:""}.o_icon_back:before{content:""}.o_icon_back_history:before{content:""}.o_icon_banned:before{content:"";color:#d6001c}.o_icon_bold:before{content:""}.o_icon_booking:before{content:""}.o_icon_bookmark:before{content:"";color:#8f1f40}.o_icon_bookmark_add:before{content:"";color:#8f1f40}.o_icon_bookmark_header:before{content:""}.o_icon_browse:before{content:""}.o_icon_brush:before{content:""}.o_icon_browsercheck:before{content:""}.o_icon_busy:before{content:""}.o_icon_calendar:before{content:""}.o_icon_calendar_enabled:before{content:""}.o_icon_calendar_disabled:before{content:""}.o_icon_calendar:before{content:""}.o_icon_calendar_sync:before{content:""}.o_icon_cancelled:before{content:""}.o_icon_caret:before{content:""}.o_icon_caret_right:before{content:""}.o_icon_catalog:before{content:""}.o_icon_catalog_sub:before{content:""}.o_icon_certificate:before{content:""}.o_icon_chat:before{content:""}.o_icon_check:before{content:""}.o_icon_check_off:before{content:""}.o_icon_check_on:before{content:""}.o_icon_checkbox:before{content:""}.o_icon_checkbox_checked:before{content:""}.o_icon_circle:before{content:""}.o_icon_circle_color:before{content:""}.o_icon_citation:before{content:""}.o_icon_cleanup:before{content:""}.o_icon_clear_all:before{content:""}.o_icon_close:before{content:""}.o_icon_close_resource:before{content:""}.o_icon_close_tab:before{content:""}.o_icon_close_tool:before{content:""}.o_icon_close_tree:before{content:""}.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before,.o_search_result .o_opener.o_in i:before{content:""}.o_icon_code:before{content:""}.o_icon_color_picker:before{content:""}.o_icon_column:before{content:""}.o_icon_columns:before{content:""}.o_icon_container:before{content:""}.o_icon_copy:before{content:""}.o_icon_courseareas:before{content:""}.o_icon_coursedb:before{content:""}.o_icon_courseeditor:before{content:""}.o_icon_coursefolder:before{content:""}.o_icon_courserun:before{content:""}.o_icon_comments:before{content:""}.o_icon_comments_none:before{content:""}.o_icon_compress:before{content:""}.o_icon_compulsory:before{content:""}.o_icon_content_popup:before{content:""}.o_icon_correct_answer:before{content:"";color:#78be20}.o_icon_correct_response:before{content:"";color:#78be20}.o_icon_correction:before{content:""}.o_icon_curriculum_element:before{content:""}.o_icon_customize:before{content:""}.o_icon_delete_item:before{content:""}.o_icon_delete:before{content:"";color:#A87E7E}.o_icon_deleted:before{content:""}.o_icon_details:before{content:""}.o_icon_description:before{content:""}.o_icon_dev:before{content:""}.o_icon_disabled:before{content:""}.o_icon_dispensation_authorized:before{content:"";color:#78be20}.o_icon_dispensation_unauthorized:before{content:"";color:#f2af40}.o_icon_download:before{content:""}.o_icon_edit:before{content:""}.o_icon_edit_file:before{content:""}.o_icon_edit_metadata:before{content:""}.o_icon_element_after:before{content:""}.o_icon_element_before:before{content:""}.o_icon_enabled:before{content:""}.o_icon_enlarge:before{content:""}.o_icon_eportfolio_add:before{content:""}.o_icon_eportfolio_link:before{content:""}.o_icon_eraser:before{content:""}.o_icon_error:before{content:"";color:#d6001c}.o_icon_expand:before{content:""}.o_icon_expenditure:before{content:""}.o_icon_export:before{content:""}.o_icon_external_link:before{content:""}.o_icon_extra_time:before{content:""}.o_icon_failed:before{content:""}.o_icon_files:before{content:""}.o_icon_fileupload:before{content:""}.o_icon_filter:before{content:""}.o_icon_graduate:before{content:""}.o_icon_group:before,.o_BusinessGroup_icon:before{content:""}.o_icon_header:before{content:""}.o_icon_help:before{content:"";cursor:help}.o_icon_home:before{content:""}.o_icon_image:before{content:""}.o_icon_impress:before{content:""}.o_icon_important:before{content:"";color:#f2af40}.o_icon_import:before{content:""}.o_icon_incorrect_response:before{content:"";color:#d6001c}.o_icon_info:before{content:"";color:#a6a6a6}.o_icon_info_msg:before{content:"";color:#d6001c}.o_icon_info_resource:before{content:""}.o_icon_inheritance_root:before{content:""}.o_icon_inheritance_inherited:before{content:""}.o_icon_inheritance_none:before{content:""}.o_icon_inline_editable:before{content:""}.o_icon_institution:before{content:""}.o_icon_italic:before{content:""}.o_icon_landingpage:before{content:""}.o_icon_language:before{content:""}.o_icon_layout:before{content:""}.o_icon_lecture:before{content:""}.o_icon_left:before{content:""}.o_icon_levels:before{content:""}.o_icon_line:before{content:""}.o_icon_link:before{content:""}.o_icon_link_extern:before{content:""}.o_icon_list:before{content:""}.o_icon_list_num:before{content:""}.o_icon_lifecycle:before{content:""}.o_icon_lifecycle_date:before{content:""}.o_icon_locked:before{content:""}.o_icon_log:before{content:""}.o_icon_login:before{content:""}.o_icon_logout:before{content:""}.o_icon_mandatory:before{content:"";color:#f0ad4e}.o_icon_managed:before{content:"";color:#777}.o_icon_manual:before{content:"";cursor:help}.o_icon_mail:before{content:""}.o_icon_math:before{content:"\03a3"}.o_icon_media:before{content:""}.o_icon_mediacenter:before{content:""}.o_icon_membersmanagement:before{content:""}.o_icon_menuhandel:before{content:""}.o_icon_message:before{content:""}.o_icon_mobile:before{content:""}.o_icon_move:before{content:""}.o_icon_move_down:before{content:""}.o_icon_move_left:before{content:""}.o_icon_move_right:before{content:""}.o_icon_move_up:before{content:""}.o_icon_ms_done:before{content:""}.o_icon_ms_pending:before{content:""}.o_icon_new:before{content:"";color:#78be20}.o_icon_new_document:before{content:""}.o_icon_new_folder:before{content:""}.o_icon_new_portfolio:before{content:""}.o_icon_news:before{content:""}.o_icon_next:before{content:""}.o_icon_next_step:before{content:""}.o_icon_next_page:before{content:""}.o_icon_next_toolbar:before{content:""}.o_icon_node_after:before{content:""}.o_icon_node_before:before{content:""}.o_icon_node_under:before{content:""}.o_icon_node_up_down:before{content:""}.o_icon_notes:before{content:""}.o_icon_notice_authorized:before{content:"";color:#78be20}.o_icon_notice_unauthorized:before{content:"";color:#f2af40}.o_icon_notification:before{content:""}.o_icon_number_of:before{content:""}.o_icon_ok:before{content:"";color:#78be20}.o_icon_open_tree:before{content:""}.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before,.o_search_result .o_opener i:before{content:""}.o_icon_openolat:before,.o_icon_provider_olat:before{content:"\E600";font-family:openolat;font-size:10px}.o_icon_options:before{content:""}.o_icon_origin:before{content:""}.o_icon_others:before{content:""}.o_icon_pageing:before{content:""}.o_icon_paragraph:before{content:""}.o_icon_passed:before{content:""}.o_icon_password:before{content:""}.o_icon_pending:before{content:""}.o_icon_phone:before{content:""}.o_icon_post:before{content:""}.o_icon_presence:before{content:""}.o_icon_preview:before{content:""}.o_icon_previous:before{content:""}.o_icon_previous_page:before{content:""}.o_icon_previous_step:before{content:""}.o_icon_previous_toolbar:before{content:""}.o_icon_print:before{content:""}.o_icon_private:before{content:""}.o_icon_progress_success:before{content:"";color:#e5efe5}.o_icon_progress_danger:before{content:"";color:#efe5e5}.o_icon_provider_adfs:before{content:""}.o_icon_provider_facebook:before{content:""}.o_icon_provider_google:before{content:""}.o_icon_provider_guest:before{content:""}.o_icon_provider_ldap:before{content:""}.o_icon_provider_linkedin:before{content:""}.o_icon_provider_oauth:before{content:""}.o_icon_provider_openid:before{content:""}.o_icon_provider_performx:before{content:""}.o_icon_provider_shibboleth:before{content:""}.o_icon_provider_tequila:before{content:""}.o_icon_provider_twitter:before{content:""}.o_icon_publish:before{content:""}.o_icon_pull:before{content:""}.o_icon_quota:before{content:""}.o_icon_qrcode:before{content:""}.o_icon_quickview:before{content:""}.o_icon_radio_off:before{content:""}.o_icon_radio_on:before{content:""}.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:""}.o_icon_rating_off:before{content:""}.o_icon_read:before{content:""}.o_icon_readonly:before{content:"";color:red}.o_icon_readwrite:before{content:""}.o_icon_recycle:before{content:""}.o_icon_rectangle:before{content:""}.o_icon_redo:before{content:""}.o_icon_refresh:before{content:""}.o_icon_reject:before{content:"";color:#d6001c}.o_icon_rejected:before{content:""}.o_icon_reminder:before{content:""}.o_icon_remove:before{content:""}.o_icon_remove_filters:before{content:""}.o_icon_reopen:before{content:""}.o_icon_replace:before{content:""}.o_icon_reply:before{content:""}.o_icon_reply_with_quote:before{content:""}.o_icon_reset:before{content:""}.o_icon_response_feedback:before{content:""}.o_icon_restore:before{content:""}.o_icon_results_visible:before{content:""}.o_icon_results_hidden:before{content:""}.o_icon_reviewer:before{content:""}.o_icon_right:before{content:""}.o_icon_rss:before{content:""}.o_icon_rss_unsubscribe:before{content:"";color:#996633}.o_icon_rubric:before{content:""}.o_icon_rubric_insufficient:before{content:"";color:#d6001c}.o_icon_rubric_sufficient:before{content:"";color:#78be20}.o_icon_rubric_neutral:before{content:"";color:#f2af40}.o_icon_save:before{content:""}.o_icon_search:before{content:""}.o_icon_select:before{content:""}.o_icon_send:before{content:""}.o_icon_settings:before{content:""}.o_icon_share:before{content:""}.o_icon_show_more:before{content:""}.o_icon_show_less:before{content:""}.o_icon_show_send:before{content:""}.o_icon_shuffle:before{content:""}.o_icon_sign_out:before{content:""}.o_icon_slide_down:before{content:""}.o_icon_slide_up:before{content:""}.o_icon_spacer:before{content:""}.o_icon_split:before{content:""}.o_icon_sort:before{content:""}.o_icon_sort_asc:before{content:""}.o_icon_sort_desc:before{content:""}.o_icon_sort_amount_asc:before{content:""}.o_icon_sort_amount_desc:before{content:""}.o_icon_sort_menu:before{content:""}.o_icon_start:before{content:""}.o_icon_status_available:before{content:"";color:#063}.o_icon_status_chat:before{content:""}.o_icon_status_dnd:before{content:"";color:#cc3}.o_icon_status_unavailable:before{content:"";color:#963}.o_icon_status_not_started:before{content:""}.o_icon_status_in_progress:before{content:""}.o_icon_status_in_review:before{content:""}.o_icon_status_done:before{content:""}.o_icon_statistics_tool:before{content:""}.o_icon_submit:before{content:""}.o_icon_table:before{content:""}.o_icon_table_custom:before{content:""}.o_icon_table_large:before{content:""}.o_icon_tags:before{content:""}.o_icon_textinput:before{content:""}.o_icon_time:before{content:""}.o_icon_timelimit:before{content:""}.o_icon_timelimit_start:before{content:""}.o_icon_timelimit_half:before{content:""}.o_icon_timelimit_end:before{content:""}.o_icon_timetable:before{content:""}.o_icon_toggle:before{content:""}.o_icon_toggle_on:before{content:""}.o_icon_toggle_off:before{content:""}.o_icon_to_read:before{content:""}.o_icon_tool:before{content:""}.o_icon_tool_pdf:before{content:""}.o_icon_tools:before{content:""}.o_icon_top:before{content:""}.o_icon_translation_item:before{content:""}.o_icon_translation_package:before{content:""}.o_icon_unlocked:before{content:""}.o_icon_undo:before{content:""}.o_icon_user:before{content:""}.o_icon_user_vip:before{content:""}.o_icon_user_anonymous:before{content:""}.o_icon_update:before{content:""}.o_icon_upload:before{content:""}.o_icon_version:before{content:""}.o_icon_video:before{content:""}.o_icon_visitingcard.o_icon_waiting:before{content:""}.o_icon_warn:before{content:"";color:#f2af40}.o_icon_width_expand:before{content:""}.o_icon_width_collapse:before{content:""}.o_icon_wizard:before{content:""}.o_icon_xing:before{content:"";color:#cfdc00}.o_BinderTemplate_icon:before{content:""}.o_CourseModule_icon:before,.o_course_icon:before{content:""}.o_EPStructuredMapTemplate_icon:before{content:""}.o_FileResource-BLOG_icon:before{content:""}.o_FileResource-IMSCP_icon:before{content:""}.o_FileResource-FORM_icon:before{content:""}.o_FileResource-PODCAST_icon:before{content:""}.o_FileResource-SHAREDFOLDER:before{content:""}.o_FileResource-SCORMCP_icon:before{content:""}.o_FileResource-SURVEY_icon:before{content:""}.o_FileResource-TEST_icon:before{content:""}.o_FileResource-IMSQTI21_icon:before{content:""}.o_FileResource-WIKI_icon:before{content:""}.o_FileResource-SHAREDFOLDER_icon:before{content:""}.o_FileResource-GLOSSARY_icon:before{content:""}.o_FileResource-PDF_icon:before{content:""}.o_FileResource-XLS_icon:before{content:""}.o_FileResource-PPT_icon:before{content:""}.o_FileResource-DOC_icon:before{content:""}.o_FileResource-ANIM_icon:before{content:""}.o_FileResource-IMAGE_icon:before{content:""}.o_FileResource-SOUND_icon:before{content:""}.o_FileResource-MOVIE_icon:before{content:""}.o_FileResource-FILE_icon:before{content:""}.o_FileResource-VIDEO_icon:before{content:""}.o_CourseModule_icon_closed:before{content:""}.o_icon_repo_status_preparation:before{content:""}.o_icon_repo_status_review:before{content:""}.o_icon_repo_status_coachpublished:before{content:""}.o_icon_repo_status_published:before{content:""}.o_icon_repo_status_closed:before{content:""}.o_icon_repo_status_trash:before{content:""}.o_icon_repo_status_deleted:before{content:""}.o_sp_icon:before{content:""}.o_st_icon:before{content:""}.o_tu_icon:before{content:""}.o_bc_icon:before{content:""}.o_lti_icon:before{content:""}.o_cp_icon:before{content:""}.o_cp_item:before{content:""}.o_scorm_icon:before{content:""}.o_en_icon:before{content:""}.o_fo_icon:before{content:""}.o_co_icon:before{content:""}.o_infomsg_icon:before{content:""}.o_cal_icon:before{content:""}.o_wiki_icon:before{content:""}.o_podcast_icon:before{content:""}.o_pf_icon:before{content:""}.o_blog_icon:before{content:""}.o_ep_icon:before{content:""}.o_ep_icon_v1:before{content:""}.o_iqtest_icon:before{content:""}.o_iqself_icon:before{content:""}.o_iqsurv_icon:before{content:""}.o_survey_icon:before{content:""}.o_qtiassessment_icon:before{content:""}.o_ta_icon:before{content:""}.o_gta_icon:before{content:""}.o_ms_icon:before{content:""}.o_dialog_icon:before{content:""}.o_projectbroker_icon:before{content:""}.o_ll_icon:before{content:""}.o_den_icon:before{content:""}.o_cmembers_icon:before{content:""}.o_cl_icon:before{content:""}.o_vc_icon:before{content:""}.o_video_icon:before{content:""}.o_vitero_icon:before{content:""}.o_openmeetings_icon:before{content:""}.o_gotomeeting_icon:before{content:""}.o_card2brain_icon:before{content:"\E800";font-family:openolat;font-size:120%}.o_edubase_icon:before{content:"\E885";font-family:openolat}.o_livestream_icon:before{content:""}.o_portlet_infomsg_icon:before{content:""}.o_portlet_quickstart_icon:before{content:""}.o_portlet_bookmark_icon:before{content:""}.o_portlet_groups_icon:before{content:""}.o_portlet_notes_icon:before{content:""}.o_portlet_noti_icon:before{content:""}.o_portlet_eff_icon:before{content:""}.o_portlet_repository_student_icon:before{content:""}.o_portlet_repository_teacher_icon:before{content:""}.o_portlet_iframe_icon:before{content:""}.o_portlet_sysinfo_icon:before{content:""}.o_portlet_dyk_icon:before{content:""}.o_portlet_infomessages_icon:before{content:""}.o_portlet_cal_icon:before{content:""}.o_portlet_institutions_icon:before{content:""}.o_portlet_links_icon:before{content:""}.o_portlet_shibboleth_icon:before{content:""}.o_icon_qpool:before{content:""}.o_icon_pool_private:before{content:""}.o_icon_pool_public:before{content:""}.o_icon_pool_my_items:before{content:""}.o_icon_pool_favorits:before{content:""}.o_icon_pool_collection:before{content:""}.o_icon_pool_pool:before{content:""}.o_icon_pool_share:before{content:""}.o_icon_qitem_commands:before{content:""}.o_icon_qitem_convert:before{content:""}.o_icon_qitem_copy:before{content:""}.o_icon_qitem_delete:before{content:""}.o_icon_qitem_draft:before{content:""}.o_icon_qitem_endOfLife:before{content:""}.o_icon_qitem_finalVersion:before{content:""}.o_icon_qitem_export:before{content:""}.o_icon_qitem_hide_metadata:before{content:""}.o_icon_qitem_import:before{content:""}.o_icon_qitem_new:before{content:""}.o_icon_qitem_review:before{content:""}.o_icon_qitem_revised:before{content:""}.o_icon_qitem_share:before{content:""}.o_icon_qitem_show_metadata:before{content:""}.o_icon_qitem_status:before{content:""}.o_forum_message_icon:before{content:""}.o_calendar_icon:before{content:""}.o_icon_pf_section_draft:before{content:"";color:#f2af40}.o_icon_pf_section_progress:before{content:"";color:#f2af40}.o_icon_pf_section_submitted:before{content:"";color:#209d9e}.o_icon_pf_section_closed:before{content:"";color:#78be20}.o_icon_pf_binder:before{content:""}.o_icon_pf_entry:before{content:""}.o_icon_pf_entry_draft:before{content:"";color:#f2af40}.o_icon_pf_entry_published:before{content:"";color:#209d9e}.o_icon_pf_entry_revision:before{content:"";color:#d6001c}.o_icon_pf_entry_closed:before{content:"";color:#78be20}.o_icon_pf_entry_deleted:before{content:"";color:#000}.o_icon_pf_history:before{content:""}.o_icon_pf_my_shares:before{content:""}.o_icon_pf_new_entry:before{content:""}.o_icon_pf_quick_links:before{content:""}.o_icon_pf_page:before{content:""}.o_icon_pf_section:before{content:""}.o_icon_pf_shared_with_me:before{content:""}.o_icon_pf_trash:before{content:""}.o_forum_status_thread_icon:before{content:""}.o_forum_status_sticky_closed_icon:before{content:""}.o_forum_status_sticky_icon:before{content:""}.o_forum_status_closed_icon:before{content:"";color:#a94442}.o_forum_status_opened_icon:before{content:"";color:#3c763d}.o_forum_status_hidden_icon:before{content:"";color:#a94442}.o_forum_status_visible_icon:before{content:"";color:#3c763d}.o_forum_all_icon:before{content:""}.o_forum_all_flat_icon:before{content:""}.o_forum_one_icon:before{content:""}.o_forum_marked_icon:before{content:""}.o_forum_new_icon:before{content:""}.o_mi_qpool_import:before{content:""}.o_mi_qtidrawing:before{content:""}.o_mi_qtisection:before{content:""}.o_mi_qtisc:before{content:""}.o_mi_qtimatch:before{content:""}.o_mi_qtimatch_draganddrop:before{content:""}.o_mi_qtimatch_truefalse:before{content:""}.o_mi_qtimc:before{content:""}.o_mi_qtikprim:before{content:""}.o_mi_qtifib:before{content:""}.o_mi_qtinumerical:before{content:""}.o_mi_qtihotspot:before{content:""}.o_mi_qtihottext:before{content:""}.o_mi_qtiessay:before{content:""}.o_mi_qtiunkown:before{content:""}.o_mi_qtiupload:before{content:""}.o_as_mode_leadtime:before{content:""}.o_as_mode_assessment:before{content:""}.o_as_mode_followup:before{content:""}.o_as_mode_closed:before{content:'-'}.o_as_mode_stop:before{content:""}.o_icon_qti_notPresented:before{content:"";color:#ddd}.o_icon_qti_notAnswered:before{content:"";color:#f2af40}.o_icon_qti_answered:before{content:"";color:#78be20}.o_icon_qti_ended:before{content:"";color:#a6a6a6}.o_icon_qti_invalid:before{content:"";color:#d6001c}.o_icon_qti_review:before{content:"";color:#a6a6a6}.o_icon_qti_reviewNotSeen:before,.o_icon_qti_reviewNotAnswered:before,.o_icon_qti_reviewInvalid:before{content:"";color:#a6a6a6}.o_icon_qti_end_testpart:before{content:""}.o_icon_qti_close_test:before{content:""}.o_icon_qti_cancel:before{content:""}.o_icon_qti_suspend:before{content:""}.o_icon_qti_close_results:before{content:""}.o_icon_qti_hint:before{content:""}.o_icon_qti_summary_notAnswered:before{content:"";color:#f2af40}.o_icon_qti_summary_ended:before{content:"";color:#d6001c}.o_icon_qti_summary_correct:before{content:"";color:#78be20}.o_lectures_current:before{content:"";color:#f2af40}.o_lectures_next:before{content:""}.o_lectures_pending:before{content:"";color:#d6001c}.o_lectures_closed:before{content:""}.o_lectures_rollcall_ok:before{content:"";color:#78be20}.o_lectures_rollcall_warning:before{content:"";color:#f2af40}.o_lectures_rollcall_danger:before{content:"";color:#d6001c}.o_lectures_rollcall_free:before{content:"";color:#969696}.o_lectures_rollcall_notice:before{content:"";color:#969696}.o_lectures_rollcall_pending:before{content:"";color:#b8b8b8}.o_lectures_attended:before{content:"";color:#78be20}.o_lectures_authorized:before{content:"";color:#f2af40}.o_lectures_absent:before{content:"";color:#d6001c}.o_absences_col_warning:before{content:""}.o_absences_col_alert:before{content:""}.o_icon_taxonomy:before{content:""}.o_icon_taxonomy_level:before{content:""}.o_icon_taxonomy_level_leaf:before{content:""}.o_icon_taxonomy_templates:before{content:""}.o_icon_taxonomy_levels:before{content:""}.o_black_led:before{content:"";color:#209d9e}.o_green_led:before{content:"";color:#78be20}.o_yellow_led:before{content:"";color:#f2af40}.o_red_led:before{content:"";color:#d6001c}.o_icon_identity_permanent:before{content:""}.o_icon_identity_pending:before{content:""}.o_icon_identity_login_denied:before{content:""}.o_icon_identity_deleted:before{content:""}.o_ac_token_icon:before{content:""}.o_ac_free_icon:before{content:""}.o_ac_group_icon:before{content:""}.o_ac_membersonly_icon:before{content:""}.o_ac_guests_icon:before{content:""}.o_ac_paypal_icon:before{content:""}.o_ac_status_canceled_icon:before{content:"";color:#f2af40}.o_ac_status_error_icon:before{content:"";color:#d6001c}.o_ac_status_new_icon:before{content:"";color:#209d9e}.o_ac_status_success_icon:before{content:"";color:#78be20}.o_ac_status_waiting_icon:before{content:"";color:#209d9e}.o_ac_order_status_new_icon:before{content:"";color:#209d9e}.o_ac_order_status_prepayment_icon:before{content:"";color:#a6a6a6}.o_ac_order_status_payed_icon:before{content:"";color:#78be20}.o_ac_order_status_canceled_icon:before{content:"";color:#f2af40}.o_ac_order_status_error_icon:before{content:"";color:#d6001c}.o_ac_order_status_warning_icon:before{content:"";color:#f2af40}.o_scorm_org:before{content:""}.o_scorm_item:before{content:""}.o_scorm_completed:before,.o_scorm_passed:before{content:""}.o_scorm_failed:before{content:""}.o_scorm_incomplete:before{content:""}.o_scorm_not_attempted:before{background:none}.o_midpub:before{content:""}.o_midwarn:before{content:""}.o_midlock:before{content:""}.o_miderr:before{content:""}.o_middel:before{content:""}.o_filetype_file:before,.o_filetype_ico:before{content:""}.o_filetype_folder:before{content:""}.o_filetype_folder_open:before{content:""}.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:""}.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before{content:""}.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:""}.o_filetype_xls:before,.o_filetype_xlsx:before{content:""}.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:""}.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:""}.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:""}.o_filetype_ps:before,.o_filetype_pdf:before{content:""}.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:""}.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before{content:""}.o_filetype_odt:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:""}.o_icon_share_social:before{content:""}.o_icon_apple:before{content:""}.o_icon_facebook:before{content:""}.o_icon_twitter:before{content:""}.o_icon_google:before{content:""}.o_icon_delicious:before{content:""}.o_icon_digg:before{content:""}.o_icon_mailto:before{content:""}.o_icon_link:before{content:""}.o_icon_yahoo:before{content:""}.o_icon_eva_disclaimer:before{content:""}.o_icon_eva_end_show:before{content:""}.o_icon_eva_end_hide:before{content:""}.o_icon_eva_export:before{content:""}.o_icon_eva_pdf:before{content:""}.o_icon_eva_print:before{content:""}.o_icon_eva_session_info:before{content:""}.o_icon_eva_mc:before{content:""}.o_icon_eva_sc:before{content:""}.o_icon_eva_sc:before{content:""}.o_icon_surv_reset:before{content:""}.o_icon_qual_ana_hide_filter:before{content:""}.o_icon_qual_ana_pres_edit:before{content:""}.o_icon_qual_ana_export:before{content:""}.o_icon_qual_ana_pres_delete:before{content:""}.o_icon_qual_ana_pdf:before{content:""}.o_icon_qual_ana_print:before{content:""}.o_icon_qual_ana_show_filter:before{content:""}.o_icon_qual_ana_trend:before{content:""}.o_icon_qual_ana_trend_arrow:before{content:""}.o_icon_qual_dc_create:before{content:""}.o_icon_qual_dc_delete:before{content:""}.o_icon_qual_dc_finished:before{content:""}.o_icon_qual_dc_preparation:before{content:""}.o_icon_qual_dc_ready:before{content:""}.o_icon_qual_dc_running:before{content:""}.o_icon_qual_exec_future:before{content:""}.o_icon_qual_exec_over:before{content:""}.o_icon_qual_exec_participating:before{content:""}.o_icon_qual_exec_participated:before{content:""}.o_icon_qual_exec_ready:before{content:""}.o_icon_qual_gen_ce_add:before{content:""}.o_icon_qual_gen_create:before{content:""}.o_icon_qual_gen_delete:before{content:""}.o_icon_qual_gen_disabled:before{content:""}.o_icon_qual_gen_enabled:before{content:""}.o_icon_qual_gen_re_add:before{content:""}.o_icon_qual_part_user_add:before{content:""}.o_icon_qual_part_user_add_course:before{content:""}.o_icon_qual_part_user_add_curele:before{content:""}.o_icon_qual_part_execute:before{content:""}.o_icon_lic_add:before{content:""}.o_icon_lic_public_domain:before{content:"\E810";font-family:openolat;font-size:120%}.o_icon_lic_cc0:before{content:"\E811";font-family:openolat;font-size:120%}.o_icon_lic_by:before{content:"\E812";font-family:openolat;font-size:120%}.o_icon_lic_by_sa:before{content:"\E813";font-family:openolat;font-size:120%}.o_icon_lic_by_nd:before{content:"\E814";font-family:openolat;font-size:120%}.o_icon_lic_by_nc:before{content:"\E815";font-family:openolat;font-size:120%}.o_icon_lic_by_nc_sa:before{content:"\E817";font-family:openolat;font-size:120%}.o_icon_lic_by_nc_nd:before{content:"\E819";font-family:openolat;font-size:120%}.o_icon_lic_all_rights_reserved:before{content:""}.o_icon_lic_freetext:before{content:""}.o_icon_lic_general:before{content:""}.o_icon_lic_youtube:before{content:""}a.o_icon:hover,a.o_icon:focus{text-decoration:none}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}.o_block_bottom,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry,.o_header_with_buttons,.o_search_result{margin-bottom:1em}.o_block_top,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_small_bottom,.o_block_small{margin-bottom:0.5em}.o_block_small_top,.o_block_small{margin-top:0.5em}.o_block_large_bottom,.o_block_large,.o_block_with_datecomp,.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left,.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right,.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle,.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill,.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file,.o_pf_content .o_forum,.gu-mirror .o_forum,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_wiki,.o_login .o_login_footer_wrapper,.o_portlet{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_block_with_datecomp,.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left,.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right,.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle,.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill,.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file,.o_pf_content .o_forum,.gu-mirror .o_forum,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_wiki,.o_login .o_login_footer_wrapper,.o_portlet{margin-top:2em}.o_block_move_up{margin-top:-1em}.o_block_move_up_small{margin-top:-0.5em}.o_block_move_up_large{margin-top:-2em}.o_block_inline,.o_block_inline_left,.o_block_inline_both,.o_block_inline_right{display:inline-block;vertical-align:top}.o_block_inline_left,.o_block_inline_both{margin-left:0.5em}.o_block_inline_right,.o_block_inline_both{margin-right:0.5em}.o_block_centered_wrapper{display:table;width:100%;height:100%}.o_block_centered_content{display:table-cell;vertical-align:middle;text-align:center}.o_block_imagebg{background-repeat:no-repeat;background-position:center;background-size:cover}.o_block_imagebg span{padding:2px;background-color:rgba(255,255,255,0.8)}.o_block_imagebg h1,.o_block_imagebg h2,.o_block_imagebg h3,.o_block_imagebg h4,.o_block_imagebg .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_block_imagebg h2,.o_block_imagebg h5,.o_block_imagebg p{padding:2px;background-color:rgba(255,255,255,0.8);display:inline-block}.o_block_imagebg h1:after,.o_block_imagebg h2:after,.o_block_imagebg h3:after,.o_block_imagebg h4:after,.o_block_imagebg .o_cal .fc-header-title h2:after,.o_cal .fc-header-title .o_block_imagebg h2:after,.o_block_imagebg h5:after,.o_block_imagebg p:after{content:' ';display:block}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h2,.o_header_with_buttons h3,.o_header_with_buttons h4,.o_header_with_buttons .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_header_with_buttons h2,.o_header_with_buttons h5,.o_header_with_buttons h6{display:inline-block}.o_header_with_buttons .o_button_group{margin-bottom:0;float:right}.o_header_with_buttons h1+.o_button_group{margin-top:28px}.o_header_with_buttons h2+.o_button_group{margin-top:24px}.o_header_with_buttons h3+.o_button_group{margin-top:20px}.o_header_with_buttons h4+.o_button_group,.o_header_with_buttons .o_cal .fc-header-title h2+.o_button_group,.o_cal .fc-header-title .o_header_with_buttons h2+.o_button_group{margin-top:10px}.o_header_with_buttons h5+.o_button_group{margin-top:6.6666666667px}.o_header_with_buttons h6+.o_button_group{margin-top:5px}#o_main_center .o_header_with_buttons h2+.o_button_group{margin-top:0}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_button_textstyle:before{content:'['}.o_button_textstyle:after{content:']'}.panel-imagebg{background-repeat:no-repeat;background-position:center;background-size:cover}.panel-imagebg.panel-default>.panel-heading{background-color:rgba(255,255,255,0.8);border-bottom:transparent}.panel-imagebg .panel-body span{padding:2px;background-color:rgba(255,255,255,0.8)}.panel-placeholder{border-width:2px;border-style:dashed;border-color:#ccc;border-radius:10px;background-color:#fcfcfc}.panel-placeholder .panel-body{padding:10px}.panel-placeholder .panel-body:nth-child(n+2){border-top:none}.panel-placeholder .panel-body h3:nth-child(1),.panel-placeholder .panel-body h4:nth-child(1),.panel-placeholder .panel-body .o_cal .fc-header-title h2:nth-child(1),.o_cal .fc-header-title .panel-placeholder .panel-body h2:nth-child(1),.panel-placeholder .panel-body h5:nth-child(1){margin-top:0}.panel-placeholder .panel-body .o_button_group{margin-bottom:0}.panel-placeholder .panel-heading{border-top-right-radius:8px;border-top-left-radius:8px;border-width:2px;border-style:dashed;border-color:#ccc;border-top:none;border-left:none;border-right:none;color:#888;font-weight:bold}.panel-placeholder .panel-footer{border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-width:2px;border-style:dashed;border-color:#ccc;border-bottom:none;border-left:none;border-right:none}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:11px}.o_small,.b_small,p.b_small,div.b_small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o_comment,.o_bc_meta,.tooltip,.o_htmleditor .o_metadata .o_lastmodified,.o_noti,.o_block_with_datecomp .o_meta,.o_togglebox_wrapper div.o_togglebox_content .o_hide,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label,.o_course_run .o_toc .o_entry,.o_assessment_test_results .o_qti_to_overview{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:20px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_highlight_on_hover:hover{background-color:#f5f5f5}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,#o_main_wrapper #o_toplink:hover,#o_footer_powered a:hover,#o_share a:hover,#o_share_social_container a:hover,.o_toolbar .o_tools_container a:hover,.o_button_toggle:hover,.o_im_message_group .o_im_from:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:hover,.o_login .o_login_register:hover,.o_disabled:focus,.b_disabled:focus,#o_main_wrapper #o_toplink:focus,#o_footer_powered a:focus,#o_share a:focus,#o_share_social_container a:focus,.o_toolbar .o_tools_container a:focus,.o_button_toggle:focus,.o_im_message_group .o_im_from:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:focus,.o_login .o_login_register:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}.o_copy_code input,.o_copy_code textarea,.b_copy_code input,code input,pre input,.b_copy_code textarea,code textarea,pre textarea{border:0;width:90%;background:transparent}.o_nowrap,.b_copy_code,p.b_copy_code,div.b_copy_code,code{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o_titled_wrapper .o_content{margin-top:20px}.o_video,.o_video video,.b_video,.o_video_wrapper{display:inline-block;max-width:100%;height:auto;max-width:100%}.o_image,.o_image img,img,.b_image{display:inline-block;max-width:100%;height:auto;max-width:100%}.o_figure_caption_bottom{display:inline-block;min-width:50%}.o_figure_caption_bottom figure{display:table}.o_image_vertical_center_helper{display:inline-block;height:100%;vertical-align:middle}.o_image_vertical_center_helper+.o_image img{vertical-align:middle}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_page_margins{padding:25px}.o_dragable,.o_page_fragment_edit .o_page_tools_dd:before,.o_page_drop{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.o_dragable:active,.o_page_fragment_edit .o_page_tools_dd:active:before,.o_page_drop:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_draging,.gu-mirror{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_draging:active,.gu-mirror:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_hidden{visibility:hidden}h1{color:#342c24}h2{color:#342c24}h3{color:#342c24}h4,.o_cal .fc-header-title h2{color:#342c24}h5{color:#342c24}h5{color:#342c24}fieldset legend{color:#342c24}.o_user_content_block a{color:#209d9e;text-decoration:none}.o_user_content_block a:hover,.o_user_content_block a:focus{color:#177374;text-decoration:underline}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{line-height:1.428571429;vertical-align:top}table.b_default td,table.b_default th{padding:8px;vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:8px;border:1px solid #777}table.b_grid thead td,table.b_grid th{background:#eee;font-weight:bold}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:8px;border:1px solid #777}table.b_border thead td,table.b_border th{background:#eee;font-weight:bold}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:8px;border:0 !important}table.b_borderless thead td,table.b_borderless th{font-weight:bold}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}table.b_gray{border-collapse:collapse}table.b_gray td,table.b_gray th{padding:8px;background:#eee;border:1px solid #fbfbfb}table.b_gray thead td,table.b_gray th{background:#d5d5d5;font-weight:bold}table.b_gray tbody tr:nth-child(even) td{background:#fbfbfb;border:1px solid #eee}table.b_gray.b_no_stripes tbody tr:nth-child(even) td{background:#eee;border:1px solid #fbfbfb}@media print{table.b_gray td,table.b_gray th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eee !important}table.b_gray thead td,table.b_gray th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#d5d5d5 !important}table.b_gray tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fbfbfb !important}}table.b_blue{border-collapse:collapse}table.b_blue td,table.b_blue th{padding:8px;background:#d9edf7;border:1px solid #eef7fb}table.b_blue thead td,table.b_blue th{background:#afd9ee;font-weight:bold}table.b_blue tbody tr:nth-child(even) td{background:#eef7fb;border:1px solid #d9edf7}table.b_blue.b_no_stripes tbody tr:nth-child(even) td{background:#d9edf7;border:1px solid #eef7fb}@media print{table.b_blue td,table.b_blue th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#d9edf7 !important}table.b_blue thead td,table.b_blue th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#afd9ee !important}table.b_blue tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eef7fb !important}}table.b_green{border-collapse:collapse}table.b_green td,table.b_green th{padding:8px;background:#dff0d8;border:1px solid #eef7ea}table.b_green thead td,table.b_green th{background:#c1e2b3;font-weight:bold}table.b_green tbody tr:nth-child(even) td{background:#eef7ea;border:1px solid #dff0d8}table.b_green.b_no_stripes tbody tr:nth-child(even) td{background:#dff0d8;border:1px solid #eef7ea}@media print{table.b_green td,table.b_green th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#dff0d8 !important}table.b_green thead td,table.b_green th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#c1e2b3 !important}table.b_green tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eef7ea !important}}table.b_yellow{border-collapse:collapse}table.b_yellow td,table.b_yellow th{padding:8px;background:#fcf8e3;border:1px solid #fefefa}table.b_yellow thead td,table.b_yellow th{background:#f7ecb5;font-weight:bold}table.b_yellow tbody tr:nth-child(even) td{background:#fefefa;border:1px solid #fcf8e3}table.b_yellow.b_no_stripes tbody tr:nth-child(even) td{background:#fcf8e3;border:1px solid #fefefa}@media print{table.b_yellow td,table.b_yellow th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fcf8e3 !important}table.b_yellow thead td,table.b_yellow th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f7ecb5 !important}table.b_yellow tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fefefa !important}}table.b_red{border-collapse:collapse}table.b_red td,table.b_red th{padding:8px;background:#f2dede;border:1px solid #f9f0f0}table.b_red thead td,table.b_red th{background:#e4b9b9;font-weight:bold}table.b_red tbody tr:nth-child(even) td{background:#f9f0f0;border:1px solid #f2dede}table.b_red.b_no_stripes tbody tr:nth-child(even) td{background:#f2dede;border:1px solid #f9f0f0}@media print{table.b_red td,table.b_red th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f2dede !important}table.b_red thead td,table.b_red th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#e4b9b9 !important}table.b_red tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f9f0f0 !important}}table.a_responsive{width:auto !important}@media (max-width: 768px){.a_responsive td{display:block}}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#209d9e}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}a.b_link_mailto{color:#209d9e}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}a.b_link_forward{color:#209d9e}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_float_left_clear_nomargin{float:left;display:block;margin:0 0 0 0}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}p.b_figure_title{margin:20px 0 5px 0;font-size:85%;font-family:inherit}p.b_figure_caption{clear:both;margin:5px 0 20px 0}caption,figcaption,.o_caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left;font-style:italic}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}figure.align-left{float:left}figure.align-right{float:right}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}img.align-left{float:left}img.align-right{float:right}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}figure.image.align-center{display:block;text-align:center}figure.image.align-left{float:none;display:block;text-align:left}figure.image.align-left figcaption{text-align:left}figure.image.align-right{float:none;display:block;text-align:right}figure.image.align-right figcaption{text-align:right}figure.image{margin:2em 0 2em 0;border:0;background:none}figure.image img.b_float_left,figure.image img.b_float_left_clear,figure.image img.b_float_right,figure.image img.b_float_right_clear,figure.image img.b_float_left_clear_nomargin,figure.image img.b_centered{float:none;display:inline-block;margin:0}figure.image figcaption{font-size:90%;font-style:italic}.radial-progress{margin:10px;width:120px;height:120px;background-color:#eee;border-radius:50%;display:inline-block;position:relative}.radial-progress .circle .mask,.radial-progress .circle .fill,.radial-progress .circle .shadow{width:100%;height:100%;position:absolute;border-radius:50%}.radial-progress .circle .shadow{box-shadow:none inset}.radial-progress .circle .mask,.radial-progress .circle .fill{-webkit-backface-visibility:hidden;transition:-webkit-transform 1s;transition:-ms-transform 1s;transition:transform 1s;border-radius:50%}.radial-progress .circle .mask{clip:rect(0px, 120px, 120px, 60px)}.radial-progress .circle .mask .fill{clip:rect(0px, 60px, 120px, 0px);background-color:#209d9e}.radial-progress .inset{width:90px;height:90px;position:absolute;border-radius:50%;margin-left:15px;margin-top:15px;overflow:hidden;background-color:#fff;box-shadow:none;font-size:21.6px}.radial-progress .inset .bgIcon{position:absolute;font-size:80px;top:5px;left:-5px;opacity:0;transition:opacity 0;transition-delay:1s}.radial-progress .inset .percentage{height:80%;width:80%;position:absolute;top:10%;left:10%;display:table;line-height:1}.radial-progress .inset .percentage .centeredWrapper{display:table-cell;vertical-align:middle;text-align:center}.radial-progress .inset .percentage .centeredWrapper .number{font-weight:800;color:#209d9e}.radial-progress .inset .percentage .centeredWrapper .addon{color:#777;margin-top:5px}.radial-progress .inset .percentage .centeredWrapper .addon div:nth-of-type(1){font-size:0.55em;font-weight:bold}.radial-progress .inset .percentage .centeredWrapper .addon div:nth-of-type(2){margin-top:2px;font-size:0.45em}.radial-progress[data-progress="0"] .circle .mask.full,.radial-progress[data-progress="0"] .circle .fill{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.radial-progress[data-progress="0"] .circle .fill.fix{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.radial-progress[data-progress="1"] .circle .mask.full,.radial-progress[data-progress="1"] .circle .fill{-webkit-transform:rotate(1.8deg);-ms-transform:rotate(1.8deg);transform:rotate(1.8deg)}.radial-progress[data-progress="1"] .circle .fill.fix{-webkit-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);transform:rotate(3.6deg)}.radial-progress[data-progress="2"] .circle .mask.full,.radial-progress[data-progress="2"] .circle .fill{-webkit-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);transform:rotate(3.6deg)}.radial-progress[data-progress="2"] .circle .fill.fix{-webkit-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);transform:rotate(7.2deg)}.radial-progress[data-progress="3"] .circle .mask.full,.radial-progress[data-progress="3"] .circle .fill{-webkit-transform:rotate(5.4deg);-ms-transform:rotate(5.4deg);transform:rotate(5.4deg)}.radial-progress[data-progress="3"] .circle .fill.fix{-webkit-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);transform:rotate(10.8deg)}.radial-progress[data-progress="4"] .circle .mask.full,.radial-progress[data-progress="4"] .circle .fill{-webkit-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);transform:rotate(7.2deg)}.radial-progress[data-progress="4"] .circle .fill.fix{-webkit-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);transform:rotate(14.4deg)}.radial-progress[data-progress="5"] .circle .mask.full,.radial-progress[data-progress="5"] .circle .fill{-webkit-transform:rotate(9deg);-ms-transform:rotate(9deg);transform:rotate(9deg)}.radial-progress[data-progress="5"] .circle .fill.fix{-webkit-transform:rotate(18deg);-ms-transform:rotate(18deg);transform:rotate(18deg)}.radial-progress[data-progress="6"] .circle .mask.full,.radial-progress[data-progress="6"] .circle .fill{-webkit-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);transform:rotate(10.8deg)}.radial-progress[data-progress="6"] .circle .fill.fix{-webkit-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);transform:rotate(21.6deg)}.radial-progress[data-progress="7"] .circle .mask.full,.radial-progress[data-progress="7"] .circle .fill{-webkit-transform:rotate(12.6deg);-ms-transform:rotate(12.6deg);transform:rotate(12.6deg)}.radial-progress[data-progress="7"] .circle .fill.fix{-webkit-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);transform:rotate(25.2deg)}.radial-progress[data-progress="8"] .circle .mask.full,.radial-progress[data-progress="8"] .circle .fill{-webkit-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);transform:rotate(14.4deg)}.radial-progress[data-progress="8"] .circle .fill.fix{-webkit-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);transform:rotate(28.8deg)}.radial-progress[data-progress="9"] .circle .mask.full,.radial-progress[data-progress="9"] .circle .fill{-webkit-transform:rotate(16.2deg);-ms-transform:rotate(16.2deg);transform:rotate(16.2deg)}.radial-progress[data-progress="9"] .circle .fill.fix{-webkit-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);transform:rotate(32.4deg)}.radial-progress[data-progress="10"] .circle .mask.full,.radial-progress[data-progress="10"] .circle .fill{-webkit-transform:rotate(18deg);-ms-transform:rotate(18deg);transform:rotate(18deg)}.radial-progress[data-progress="10"] .circle .fill.fix{-webkit-transform:rotate(36deg);-ms-transform:rotate(36deg);transform:rotate(36deg)}.radial-progress[data-progress="11"] .circle .mask.full,.radial-progress[data-progress="11"] .circle .fill{-webkit-transform:rotate(19.8deg);-ms-transform:rotate(19.8deg);transform:rotate(19.8deg)}.radial-progress[data-progress="11"] .circle .fill.fix{-webkit-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);transform:rotate(39.6deg)}.radial-progress[data-progress="12"] .circle .mask.full,.radial-progress[data-progress="12"] .circle .fill{-webkit-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);transform:rotate(21.6deg)}.radial-progress[data-progress="12"] .circle .fill.fix{-webkit-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);transform:rotate(43.2deg)}.radial-progress[data-progress="13"] .circle .mask.full,.radial-progress[data-progress="13"] .circle .fill{-webkit-transform:rotate(23.4deg);-ms-transform:rotate(23.4deg);transform:rotate(23.4deg)}.radial-progress[data-progress="13"] .circle .fill.fix{-webkit-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);transform:rotate(46.8deg)}.radial-progress[data-progress="14"] .circle .mask.full,.radial-progress[data-progress="14"] .circle .fill{-webkit-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);transform:rotate(25.2deg)}.radial-progress[data-progress="14"] .circle .fill.fix{-webkit-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);transform:rotate(50.4deg)}.radial-progress[data-progress="15"] .circle .mask.full,.radial-progress[data-progress="15"] .circle .fill{-webkit-transform:rotate(27deg);-ms-transform:rotate(27deg);transform:rotate(27deg)}.radial-progress[data-progress="15"] .circle .fill.fix{-webkit-transform:rotate(54deg);-ms-transform:rotate(54deg);transform:rotate(54deg)}.radial-progress[data-progress="16"] .circle .mask.full,.radial-progress[data-progress="16"] .circle .fill{-webkit-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);transform:rotate(28.8deg)}.radial-progress[data-progress="16"] .circle .fill.fix{-webkit-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);transform:rotate(57.6deg)}.radial-progress[data-progress="17"] .circle .mask.full,.radial-progress[data-progress="17"] .circle .fill{-webkit-transform:rotate(30.6deg);-ms-transform:rotate(30.6deg);transform:rotate(30.6deg)}.radial-progress[data-progress="17"] .circle .fill.fix{-webkit-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);transform:rotate(61.2deg)}.radial-progress[data-progress="18"] .circle .mask.full,.radial-progress[data-progress="18"] .circle .fill{-webkit-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);transform:rotate(32.4deg)}.radial-progress[data-progress="18"] .circle .fill.fix{-webkit-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);transform:rotate(64.8deg)}.radial-progress[data-progress="19"] .circle .mask.full,.radial-progress[data-progress="19"] .circle .fill{-webkit-transform:rotate(34.2deg);-ms-transform:rotate(34.2deg);transform:rotate(34.2deg)}.radial-progress[data-progress="19"] .circle .fill.fix{-webkit-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);transform:rotate(68.4deg)}.radial-progress[data-progress="20"] .circle .mask.full,.radial-progress[data-progress="20"] .circle .fill{-webkit-transform:rotate(36deg);-ms-transform:rotate(36deg);transform:rotate(36deg)}.radial-progress[data-progress="20"] .circle .fill.fix{-webkit-transform:rotate(72deg);-ms-transform:rotate(72deg);transform:rotate(72deg)}.radial-progress[data-progress="21"] .circle .mask.full,.radial-progress[data-progress="21"] .circle .fill{-webkit-transform:rotate(37.8deg);-ms-transform:rotate(37.8deg);transform:rotate(37.8deg)}.radial-progress[data-progress="21"] .circle .fill.fix{-webkit-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);transform:rotate(75.6deg)}.radial-progress[data-progress="22"] .circle .mask.full,.radial-progress[data-progress="22"] .circle .fill{-webkit-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);transform:rotate(39.6deg)}.radial-progress[data-progress="22"] .circle .fill.fix{-webkit-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);transform:rotate(79.2deg)}.radial-progress[data-progress="23"] .circle .mask.full,.radial-progress[data-progress="23"] .circle .fill{-webkit-transform:rotate(41.4deg);-ms-transform:rotate(41.4deg);transform:rotate(41.4deg)}.radial-progress[data-progress="23"] .circle .fill.fix{-webkit-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);transform:rotate(82.8deg)}.radial-progress[data-progress="24"] .circle .mask.full,.radial-progress[data-progress="24"] .circle .fill{-webkit-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);transform:rotate(43.2deg)}.radial-progress[data-progress="24"] .circle .fill.fix{-webkit-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);transform:rotate(86.4deg)}.radial-progress[data-progress="25"] .circle .mask.full,.radial-progress[data-progress="25"] .circle .fill{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.radial-progress[data-progress="25"] .circle .fill.fix{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.radial-progress[data-progress="26"] .circle .mask.full,.radial-progress[data-progress="26"] .circle .fill{-webkit-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);transform:rotate(46.8deg)}.radial-progress[data-progress="26"] .circle .fill.fix{-webkit-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);transform:rotate(93.6deg)}.radial-progress[data-progress="27"] .circle .mask.full,.radial-progress[data-progress="27"] .circle .fill{-webkit-transform:rotate(48.6deg);-ms-transform:rotate(48.6deg);transform:rotate(48.6deg)}.radial-progress[data-progress="27"] .circle .fill.fix{-webkit-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);transform:rotate(97.2deg)}.radial-progress[data-progress="28"] .circle .mask.full,.radial-progress[data-progress="28"] .circle .fill{-webkit-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);transform:rotate(50.4deg)}.radial-progress[data-progress="28"] .circle .fill.fix{-webkit-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);transform:rotate(100.8deg)}.radial-progress[data-progress="29"] .circle .mask.full,.radial-progress[data-progress="29"] .circle .fill{-webkit-transform:rotate(52.2deg);-ms-transform:rotate(52.2deg);transform:rotate(52.2deg)}.radial-progress[data-progress="29"] .circle .fill.fix{-webkit-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);transform:rotate(104.4deg)}.radial-progress[data-progress="30"] .circle .mask.full,.radial-progress[data-progress="30"] .circle .fill{-webkit-transform:rotate(54deg);-ms-transform:rotate(54deg);transform:rotate(54deg)}.radial-progress[data-progress="30"] .circle .fill.fix{-webkit-transform:rotate(108deg);-ms-transform:rotate(108deg);transform:rotate(108deg)}.radial-progress[data-progress="31"] .circle .mask.full,.radial-progress[data-progress="31"] .circle .fill{-webkit-transform:rotate(55.8deg);-ms-transform:rotate(55.8deg);transform:rotate(55.8deg)}.radial-progress[data-progress="31"] .circle .fill.fix{-webkit-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);transform:rotate(111.6deg)}.radial-progress[data-progress="32"] .circle .mask.full,.radial-progress[data-progress="32"] .circle .fill{-webkit-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);transform:rotate(57.6deg)}.radial-progress[data-progress="32"] .circle .fill.fix{-webkit-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);transform:rotate(115.2deg)}.radial-progress[data-progress="33"] .circle .mask.full,.radial-progress[data-progress="33"] .circle .fill{-webkit-transform:rotate(59.4deg);-ms-transform:rotate(59.4deg);transform:rotate(59.4deg)}.radial-progress[data-progress="33"] .circle .fill.fix{-webkit-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);transform:rotate(118.8deg)}.radial-progress[data-progress="34"] .circle .mask.full,.radial-progress[data-progress="34"] .circle .fill{-webkit-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);transform:rotate(61.2deg)}.radial-progress[data-progress="34"] .circle .fill.fix{-webkit-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);transform:rotate(122.4deg)}.radial-progress[data-progress="35"] .circle .mask.full,.radial-progress[data-progress="35"] .circle .fill{-webkit-transform:rotate(63deg);-ms-transform:rotate(63deg);transform:rotate(63deg)}.radial-progress[data-progress="35"] .circle .fill.fix{-webkit-transform:rotate(126deg);-ms-transform:rotate(126deg);transform:rotate(126deg)}.radial-progress[data-progress="36"] .circle .mask.full,.radial-progress[data-progress="36"] .circle .fill{-webkit-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);transform:rotate(64.8deg)}.radial-progress[data-progress="36"] .circle .fill.fix{-webkit-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);transform:rotate(129.6deg)}.radial-progress[data-progress="37"] .circle .mask.full,.radial-progress[data-progress="37"] .circle .fill{-webkit-transform:rotate(66.6deg);-ms-transform:rotate(66.6deg);transform:rotate(66.6deg)}.radial-progress[data-progress="37"] .circle .fill.fix{-webkit-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);transform:rotate(133.2deg)}.radial-progress[data-progress="38"] .circle .mask.full,.radial-progress[data-progress="38"] .circle .fill{-webkit-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);transform:rotate(68.4deg)}.radial-progress[data-progress="38"] .circle .fill.fix{-webkit-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);transform:rotate(136.8deg)}.radial-progress[data-progress="39"] .circle .mask.full,.radial-progress[data-progress="39"] .circle .fill{-webkit-transform:rotate(70.2deg);-ms-transform:rotate(70.2deg);transform:rotate(70.2deg)}.radial-progress[data-progress="39"] .circle .fill.fix{-webkit-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);transform:rotate(140.4deg)}.radial-progress[data-progress="40"] .circle .mask.full,.radial-progress[data-progress="40"] .circle .fill{-webkit-transform:rotate(72deg);-ms-transform:rotate(72deg);transform:rotate(72deg)}.radial-progress[data-progress="40"] .circle .fill.fix{-webkit-transform:rotate(144deg);-ms-transform:rotate(144deg);transform:rotate(144deg)}.radial-progress[data-progress="41"] .circle .mask.full,.radial-progress[data-progress="41"] .circle .fill{-webkit-transform:rotate(73.8deg);-ms-transform:rotate(73.8deg);transform:rotate(73.8deg)}.radial-progress[data-progress="41"] .circle .fill.fix{-webkit-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);transform:rotate(147.6deg)}.radial-progress[data-progress="42"] .circle .mask.full,.radial-progress[data-progress="42"] .circle .fill{-webkit-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);transform:rotate(75.6deg)}.radial-progress[data-progress="42"] .circle .fill.fix{-webkit-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);transform:rotate(151.2deg)}.radial-progress[data-progress="43"] .circle .mask.full,.radial-progress[data-progress="43"] .circle .fill{-webkit-transform:rotate(77.4deg);-ms-transform:rotate(77.4deg);transform:rotate(77.4deg)}.radial-progress[data-progress="43"] .circle .fill.fix{-webkit-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);transform:rotate(154.8deg)}.radial-progress[data-progress="44"] .circle .mask.full,.radial-progress[data-progress="44"] .circle .fill{-webkit-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);transform:rotate(79.2deg)}.radial-progress[data-progress="44"] .circle .fill.fix{-webkit-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);transform:rotate(158.4deg)}.radial-progress[data-progress="45"] .circle .mask.full,.radial-progress[data-progress="45"] .circle .fill{-webkit-transform:rotate(81deg);-ms-transform:rotate(81deg);transform:rotate(81deg)}.radial-progress[data-progress="45"] .circle .fill.fix{-webkit-transform:rotate(162deg);-ms-transform:rotate(162deg);transform:rotate(162deg)}.radial-progress[data-progress="46"] .circle .mask.full,.radial-progress[data-progress="46"] .circle .fill{-webkit-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);transform:rotate(82.8deg)}.radial-progress[data-progress="46"] .circle .fill.fix{-webkit-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);transform:rotate(165.6deg)}.radial-progress[data-progress="47"] .circle .mask.full,.radial-progress[data-progress="47"] .circle .fill{-webkit-transform:rotate(84.6deg);-ms-transform:rotate(84.6deg);transform:rotate(84.6deg)}.radial-progress[data-progress="47"] .circle .fill.fix{-webkit-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);transform:rotate(169.2deg)}.radial-progress[data-progress="48"] .circle .mask.full,.radial-progress[data-progress="48"] .circle .fill{-webkit-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);transform:rotate(86.4deg)}.radial-progress[data-progress="48"] .circle .fill.fix{-webkit-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);transform:rotate(172.8deg)}.radial-progress[data-progress="49"] .circle .mask.full,.radial-progress[data-progress="49"] .circle .fill{-webkit-transform:rotate(88.2deg);-ms-transform:rotate(88.2deg);transform:rotate(88.2deg)}.radial-progress[data-progress="49"] .circle .fill.fix{-webkit-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);transform:rotate(176.4deg)}.radial-progress[data-progress="50"] .circle .mask.full,.radial-progress[data-progress="50"] .circle .fill{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.radial-progress[data-progress="50"] .circle .fill.fix{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.radial-progress[data-progress="51"] .circle .mask.full,.radial-progress[data-progress="51"] .circle .fill{-webkit-transform:rotate(91.8deg);-ms-transform:rotate(91.8deg);transform:rotate(91.8deg)}.radial-progress[data-progress="51"] .circle .fill.fix{-webkit-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);transform:rotate(183.6deg)}.radial-progress[data-progress="52"] .circle .mask.full,.radial-progress[data-progress="52"] .circle .fill{-webkit-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);transform:rotate(93.6deg)}.radial-progress[data-progress="52"] .circle .fill.fix{-webkit-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);transform:rotate(187.2deg)}.radial-progress[data-progress="53"] .circle .mask.full,.radial-progress[data-progress="53"] .circle .fill{-webkit-transform:rotate(95.4deg);-ms-transform:rotate(95.4deg);transform:rotate(95.4deg)}.radial-progress[data-progress="53"] .circle .fill.fix{-webkit-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);transform:rotate(190.8deg)}.radial-progress[data-progress="54"] .circle .mask.full,.radial-progress[data-progress="54"] .circle .fill{-webkit-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);transform:rotate(97.2deg)}.radial-progress[data-progress="54"] .circle .fill.fix{-webkit-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);transform:rotate(194.4deg)}.radial-progress[data-progress="55"] .circle .mask.full,.radial-progress[data-progress="55"] .circle .fill{-webkit-transform:rotate(99deg);-ms-transform:rotate(99deg);transform:rotate(99deg)}.radial-progress[data-progress="55"] .circle .fill.fix{-webkit-transform:rotate(198deg);-ms-transform:rotate(198deg);transform:rotate(198deg)}.radial-progress[data-progress="56"] .circle .mask.full,.radial-progress[data-progress="56"] .circle .fill{-webkit-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);transform:rotate(100.8deg)}.radial-progress[data-progress="56"] .circle .fill.fix{-webkit-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);transform:rotate(201.6deg)}.radial-progress[data-progress="57"] .circle .mask.full,.radial-progress[data-progress="57"] .circle .fill{-webkit-transform:rotate(102.6deg);-ms-transform:rotate(102.6deg);transform:rotate(102.6deg)}.radial-progress[data-progress="57"] .circle .fill.fix{-webkit-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);transform:rotate(205.2deg)}.radial-progress[data-progress="58"] .circle .mask.full,.radial-progress[data-progress="58"] .circle .fill{-webkit-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);transform:rotate(104.4deg)}.radial-progress[data-progress="58"] .circle .fill.fix{-webkit-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);transform:rotate(208.8deg)}.radial-progress[data-progress="59"] .circle .mask.full,.radial-progress[data-progress="59"] .circle .fill{-webkit-transform:rotate(106.2deg);-ms-transform:rotate(106.2deg);transform:rotate(106.2deg)}.radial-progress[data-progress="59"] .circle .fill.fix{-webkit-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);transform:rotate(212.4deg)}.radial-progress[data-progress="60"] .circle .mask.full,.radial-progress[data-progress="60"] .circle .fill{-webkit-transform:rotate(108deg);-ms-transform:rotate(108deg);transform:rotate(108deg)}.radial-progress[data-progress="60"] .circle .fill.fix{-webkit-transform:rotate(216deg);-ms-transform:rotate(216deg);transform:rotate(216deg)}.radial-progress[data-progress="61"] .circle .mask.full,.radial-progress[data-progress="61"] .circle .fill{-webkit-transform:rotate(109.8deg);-ms-transform:rotate(109.8deg);transform:rotate(109.8deg)}.radial-progress[data-progress="61"] .circle .fill.fix{-webkit-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);transform:rotate(219.6deg)}.radial-progress[data-progress="62"] .circle .mask.full,.radial-progress[data-progress="62"] .circle .fill{-webkit-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);transform:rotate(111.6deg)}.radial-progress[data-progress="62"] .circle .fill.fix{-webkit-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);transform:rotate(223.2deg)}.radial-progress[data-progress="63"] .circle .mask.full,.radial-progress[data-progress="63"] .circle .fill{-webkit-transform:rotate(113.4deg);-ms-transform:rotate(113.4deg);transform:rotate(113.4deg)}.radial-progress[data-progress="63"] .circle .fill.fix{-webkit-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);transform:rotate(226.8deg)}.radial-progress[data-progress="64"] .circle .mask.full,.radial-progress[data-progress="64"] .circle .fill{-webkit-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);transform:rotate(115.2deg)}.radial-progress[data-progress="64"] .circle .fill.fix{-webkit-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);transform:rotate(230.4deg)}.radial-progress[data-progress="65"] .circle .mask.full,.radial-progress[data-progress="65"] .circle .fill{-webkit-transform:rotate(117deg);-ms-transform:rotate(117deg);transform:rotate(117deg)}.radial-progress[data-progress="65"] .circle .fill.fix{-webkit-transform:rotate(234deg);-ms-transform:rotate(234deg);transform:rotate(234deg)}.radial-progress[data-progress="66"] .circle .mask.full,.radial-progress[data-progress="66"] .circle .fill{-webkit-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);transform:rotate(118.8deg)}.radial-progress[data-progress="66"] .circle .fill.fix{-webkit-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);transform:rotate(237.6deg)}.radial-progress[data-progress="67"] .circle .mask.full,.radial-progress[data-progress="67"] .circle .fill{-webkit-transform:rotate(120.6deg);-ms-transform:rotate(120.6deg);transform:rotate(120.6deg)}.radial-progress[data-progress="67"] .circle .fill.fix{-webkit-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);transform:rotate(241.2deg)}.radial-progress[data-progress="68"] .circle .mask.full,.radial-progress[data-progress="68"] .circle .fill{-webkit-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);transform:rotate(122.4deg)}.radial-progress[data-progress="68"] .circle .fill.fix{-webkit-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);transform:rotate(244.8deg)}.radial-progress[data-progress="69"] .circle .mask.full,.radial-progress[data-progress="69"] .circle .fill{-webkit-transform:rotate(124.2deg);-ms-transform:rotate(124.2deg);transform:rotate(124.2deg)}.radial-progress[data-progress="69"] .circle .fill.fix{-webkit-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);transform:rotate(248.4deg)}.radial-progress[data-progress="70"] .circle .mask.full,.radial-progress[data-progress="70"] .circle .fill{-webkit-transform:rotate(126deg);-ms-transform:rotate(126deg);transform:rotate(126deg)}.radial-progress[data-progress="70"] .circle .fill.fix{-webkit-transform:rotate(252deg);-ms-transform:rotate(252deg);transform:rotate(252deg)}.radial-progress[data-progress="71"] .circle .mask.full,.radial-progress[data-progress="71"] .circle .fill{-webkit-transform:rotate(127.8deg);-ms-transform:rotate(127.8deg);transform:rotate(127.8deg)}.radial-progress[data-progress="71"] .circle .fill.fix{-webkit-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);transform:rotate(255.6deg)}.radial-progress[data-progress="72"] .circle .mask.full,.radial-progress[data-progress="72"] .circle .fill{-webkit-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);transform:rotate(129.6deg)}.radial-progress[data-progress="72"] .circle .fill.fix{-webkit-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);transform:rotate(259.2deg)}.radial-progress[data-progress="73"] .circle .mask.full,.radial-progress[data-progress="73"] .circle .fill{-webkit-transform:rotate(131.4deg);-ms-transform:rotate(131.4deg);transform:rotate(131.4deg)}.radial-progress[data-progress="73"] .circle .fill.fix{-webkit-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);transform:rotate(262.8deg)}.radial-progress[data-progress="74"] .circle .mask.full,.radial-progress[data-progress="74"] .circle .fill{-webkit-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);transform:rotate(133.2deg)}.radial-progress[data-progress="74"] .circle .fill.fix{-webkit-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);transform:rotate(266.4deg)}.radial-progress[data-progress="75"] .circle .mask.full,.radial-progress[data-progress="75"] .circle .fill{-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.radial-progress[data-progress="75"] .circle .fill.fix{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.radial-progress[data-progress="76"] .circle .mask.full,.radial-progress[data-progress="76"] .circle .fill{-webkit-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);transform:rotate(136.8deg)}.radial-progress[data-progress="76"] .circle .fill.fix{-webkit-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);transform:rotate(273.6deg)}.radial-progress[data-progress="77"] .circle .mask.full,.radial-progress[data-progress="77"] .circle .fill{-webkit-transform:rotate(138.6deg);-ms-transform:rotate(138.6deg);transform:rotate(138.6deg)}.radial-progress[data-progress="77"] .circle .fill.fix{-webkit-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);transform:rotate(277.2deg)}.radial-progress[data-progress="78"] .circle .mask.full,.radial-progress[data-progress="78"] .circle .fill{-webkit-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);transform:rotate(140.4deg)}.radial-progress[data-progress="78"] .circle .fill.fix{-webkit-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);transform:rotate(280.8deg)}.radial-progress[data-progress="79"] .circle .mask.full,.radial-progress[data-progress="79"] .circle .fill{-webkit-transform:rotate(142.2deg);-ms-transform:rotate(142.2deg);transform:rotate(142.2deg)}.radial-progress[data-progress="79"] .circle .fill.fix{-webkit-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);transform:rotate(284.4deg)}.radial-progress[data-progress="80"] .circle .mask.full,.radial-progress[data-progress="80"] .circle .fill{-webkit-transform:rotate(144deg);-ms-transform:rotate(144deg);transform:rotate(144deg)}.radial-progress[data-progress="80"] .circle .fill.fix{-webkit-transform:rotate(288deg);-ms-transform:rotate(288deg);transform:rotate(288deg)}.radial-progress[data-progress="81"] .circle .mask.full,.radial-progress[data-progress="81"] .circle .fill{-webkit-transform:rotate(145.8deg);-ms-transform:rotate(145.8deg);transform:rotate(145.8deg)}.radial-progress[data-progress="81"] .circle .fill.fix{-webkit-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);transform:rotate(291.6deg)}.radial-progress[data-progress="82"] .circle .mask.full,.radial-progress[data-progress="82"] .circle .fill{-webkit-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);transform:rotate(147.6deg)}.radial-progress[data-progress="82"] .circle .fill.fix{-webkit-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);transform:rotate(295.2deg)}.radial-progress[data-progress="83"] .circle .mask.full,.radial-progress[data-progress="83"] .circle .fill{-webkit-transform:rotate(149.4deg);-ms-transform:rotate(149.4deg);transform:rotate(149.4deg)}.radial-progress[data-progress="83"] .circle .fill.fix{-webkit-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);transform:rotate(298.8deg)}.radial-progress[data-progress="84"] .circle .mask.full,.radial-progress[data-progress="84"] .circle .fill{-webkit-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);transform:rotate(151.2deg)}.radial-progress[data-progress="84"] .circle .fill.fix{-webkit-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);transform:rotate(302.4deg)}.radial-progress[data-progress="85"] .circle .mask.full,.radial-progress[data-progress="85"] .circle .fill{-webkit-transform:rotate(153deg);-ms-transform:rotate(153deg);transform:rotate(153deg)}.radial-progress[data-progress="85"] .circle .fill.fix{-webkit-transform:rotate(306deg);-ms-transform:rotate(306deg);transform:rotate(306deg)}.radial-progress[data-progress="86"] .circle .mask.full,.radial-progress[data-progress="86"] .circle .fill{-webkit-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);transform:rotate(154.8deg)}.radial-progress[data-progress="86"] .circle .fill.fix{-webkit-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);transform:rotate(309.6deg)}.radial-progress[data-progress="87"] .circle .mask.full,.radial-progress[data-progress="87"] .circle .fill{-webkit-transform:rotate(156.6deg);-ms-transform:rotate(156.6deg);transform:rotate(156.6deg)}.radial-progress[data-progress="87"] .circle .fill.fix{-webkit-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);transform:rotate(313.2deg)}.radial-progress[data-progress="88"] .circle .mask.full,.radial-progress[data-progress="88"] .circle .fill{-webkit-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);transform:rotate(158.4deg)}.radial-progress[data-progress="88"] .circle .fill.fix{-webkit-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);transform:rotate(316.8deg)}.radial-progress[data-progress="89"] .circle .mask.full,.radial-progress[data-progress="89"] .circle .fill{-webkit-transform:rotate(160.2deg);-ms-transform:rotate(160.2deg);transform:rotate(160.2deg)}.radial-progress[data-progress="89"] .circle .fill.fix{-webkit-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);transform:rotate(320.4deg)}.radial-progress[data-progress="90"] .circle .mask.full,.radial-progress[data-progress="90"] .circle .fill{-webkit-transform:rotate(162deg);-ms-transform:rotate(162deg);transform:rotate(162deg)}.radial-progress[data-progress="90"] .circle .fill.fix{-webkit-transform:rotate(324deg);-ms-transform:rotate(324deg);transform:rotate(324deg)}.radial-progress[data-progress="91"] .circle .mask.full,.radial-progress[data-progress="91"] .circle .fill{-webkit-transform:rotate(163.8deg);-ms-transform:rotate(163.8deg);transform:rotate(163.8deg)}.radial-progress[data-progress="91"] .circle .fill.fix{-webkit-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);transform:rotate(327.6deg)}.radial-progress[data-progress="92"] .circle .mask.full,.radial-progress[data-progress="92"] .circle .fill{-webkit-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);transform:rotate(165.6deg)}.radial-progress[data-progress="92"] .circle .fill.fix{-webkit-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);transform:rotate(331.2deg)}.radial-progress[data-progress="93"] .circle .mask.full,.radial-progress[data-progress="93"] .circle .fill{-webkit-transform:rotate(167.4deg);-ms-transform:rotate(167.4deg);transform:rotate(167.4deg)}.radial-progress[data-progress="93"] .circle .fill.fix{-webkit-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);transform:rotate(334.8deg)}.radial-progress[data-progress="94"] .circle .mask.full,.radial-progress[data-progress="94"] .circle .fill{-webkit-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);transform:rotate(169.2deg)}.radial-progress[data-progress="94"] .circle .fill.fix{-webkit-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);transform:rotate(338.4deg)}.radial-progress[data-progress="95"] .circle .mask.full,.radial-progress[data-progress="95"] .circle .fill{-webkit-transform:rotate(171deg);-ms-transform:rotate(171deg);transform:rotate(171deg)}.radial-progress[data-progress="95"] .circle .fill.fix{-webkit-transform:rotate(342deg);-ms-transform:rotate(342deg);transform:rotate(342deg)}.radial-progress[data-progress="96"] .circle .mask.full,.radial-progress[data-progress="96"] .circle .fill{-webkit-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);transform:rotate(172.8deg)}.radial-progress[data-progress="96"] .circle .fill.fix{-webkit-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);transform:rotate(345.6deg)}.radial-progress[data-progress="97"] .circle .mask.full,.radial-progress[data-progress="97"] .circle .fill{-webkit-transform:rotate(174.6deg);-ms-transform:rotate(174.6deg);transform:rotate(174.6deg)}.radial-progress[data-progress="97"] .circle .fill.fix{-webkit-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);transform:rotate(349.2deg)}.radial-progress[data-progress="98"] .circle .mask.full,.radial-progress[data-progress="98"] .circle .fill{-webkit-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);transform:rotate(176.4deg)}.radial-progress[data-progress="98"] .circle .fill.fix{-webkit-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);transform:rotate(352.8deg)}.radial-progress[data-progress="99"] .circle .mask.full,.radial-progress[data-progress="99"] .circle .fill{-webkit-transform:rotate(178.2deg);-ms-transform:rotate(178.2deg);transform:rotate(178.2deg)}.radial-progress[data-progress="99"] .circle .fill.fix{-webkit-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);transform:rotate(356.4deg)}.radial-progress[data-progress="100"] .circle .mask.full,.radial-progress[data-progress="100"] .circle .fill{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.radial-progress[data-progress="100"] .circle .fill.fix{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}.radial-progress:not([data-progress="0"]) .inset .bgIcon{opacity:1}.radial-progress.radial-progress-success .circle .mask .fill{background-color:#78be20}.radial-progress.radial-progress-success .inset .percentage .number span{color:#78be20}.radial-progress.radial-progress-info .circle .mask .fill{background-color:#a6a6a6}.radial-progress.radial-progress-info .inset .percentage .number span{color:#a6a6a6}.radial-progress.radial-progress-danger .circle .mask .fill{background-color:#d6001c}.radial-progress.radial-progress-danger .inset .percentage .number span{color:#d6001c}.radial-progress.radial-progress-warning .circle .mask .fill{background-color:#f2af40}.radial-progress.radial-progress-warning .inset .percentage .number span{color:#f2af40}.radial-progress.radial-progress-sm{width:80px;height:80px}.radial-progress.radial-progress-sm .circle .mask{clip:rect(0px, 80px, 80px, 40px)}.radial-progress.radial-progress-sm .circle .mask .fill{clip:rect(0px, 40px, 80px, 0px)}.radial-progress.radial-progress-sm .inset{width:60px;height:60px;margin-left:10px;margin-top:10px;font-size:14.4px}.radial-progress.radial-progress-sm .inset .bgIcon{position:absolute;font-size:50px;top:5px;left:-2px}.radial-progress.radial-progress-lg{width:180px;height:180px}.radial-progress.radial-progress-lg .circle .mask{clip:rect(0px, 180px, 180px, 90px)}.radial-progress.radial-progress-lg .circle .mask .fill{clip:rect(0px, 90px, 180px, 0px)}.radial-progress.radial-progress-lg .inset{width:135px;height:135px;margin-left:22.5px;margin-top:22.5px;font-size:32.4px}.radial-progress.radial-progress-lg .inset .bgIcon{position:absolute;font-size:115px;top:5px;left:-6px}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:80px}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{float:left;z-index:2;position:relative;background:#fff}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:0 0 0 15px}#o_main_wrapper #o_main_container #o_main_left #o_main_left_toggle{position:absolute;display:none;right:0;top:70px;margin-right:-30px;font-size:25px;line-height:35px;text-align:center;width:30px;height:35px;z-index:3;border:1px solid #ddd;border-left:none;border-bottom-right-radius:4px;border-top-right-radius:4px;background-color:#fbfbfb;-webkit-box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);color:#209d9e}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas{background:#fbfbfb;-webkit-box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);min-width:250px}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas #o_main_left_content{padding:0 0 0 0}#o_main_wrapper #o_main_container #o_main_right{float:right;z-index:2;position:relative;background:inherit}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:0 15px 0 0}#o_main_wrapper #o_main_container #o_main_center{position:relative;z-index:1;background:inherit}#o_main_wrapper #o_main_container #o_main_center h2:first-child{margin-top:0}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:0 15px}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content #o_main_center_content_inner{padding-bottom:15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:15px;text-align:center;z-index:3}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}}#o_back_wrapper,#o_preview_wrapper{margin-top:10px}#o_back_wrapper.o_toolbar .o_breadcrumb .breadcrumb,#o_preview_wrapper.o_toolbar .o_breadcrumb .breadcrumb{font-size:14px}body.o_message #o_main_center_content_inner{min-height:150px;max-width:500px;padding:15px;margin:60px auto}#o_footer_wrapper{position:absolute;bottom:0;width:100%;height:70px;overflow:hidden;background-color:#f5f5f5;color:#999;line-height:16px;font-size:12px}#o_footer_wrapper a{color:#999}#o_footer_wrapper a:hover{color:#000}#o_footer_container{position:relative;padding-top:10px;min-height:70px;background:#f5f5f5;z-index:1}#o_footer_user{position:absolute;left:15px;top:10px;z-index:1}#o_footer_user #o_counter{white-space:nowrap}#o_footer_user #o_username{white-space:nowrap;margin-right:1em}#o_footer_version{position:absolute;right:15px;top:10px;text-align:right;z-index:1}@media (max-width: 767px){#o_footer_version{padding-top:10px;text-align:left}}#o_footer_powered{position:absolute;top:30px;right:15px;z-index:1}#o_footer_powered img{opacity:.6;filter:alpha(opacity=60);width:120px}#o_footer_powered img:hover{opacity:1;filter:alpha(opacity=100)}#o_footer_impressum{position:absolute;top:10px;width:100%;text-align:center;z-index:-1}#o_footer_impressum i{display:none}#o_footer_textline{position:absolute;top:30px;width:100%;text-align:center;z-index:-1}#o_share{margin-top:10px}#o_share a{opacity:.6;filter:alpha(opacity=60)}#o_share a:hover{opacity:1;filter:alpha(opacity=100)}#o_share a,#o_share_social_container a{color:#999;margin:0 0.25em 0 0}#o_share a:hover,#o_share_social_container a:hover{color:#000}@media (max-width: 767px){#o_counter,#o_footer_version,#o_share{display:none}#o_footer_impressum{top:30px;text-align:left}#o_footer_textline{top:50px;text-align:left}#o_footer_powered{top:10px}#o_footer_powered a:after{content:"\221E";font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:14px}#o_footer_powered img{display:none}}#o_navbar_wrapper{z-index:4;border-top:1px solid #e7e7e7;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}#o_navbar_wrapper #o_navbar_container{position:relative}a.o_disabled.navbar-text{margin:0}.o_navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid #e7e7e7;background-color:#f8f8f8}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar .o_navbar_tabs li{max-width:150px}.o_navbar .o_navbar_tabs li a{padding-right:30px}.o_navbar .o_navbar_tabs li a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_navbar .o_navbar_tabs .o_icon-fw{position:absolute;top:15px;left:0.5em;padding-top:3px;width:1em;height:1em;display:none}.o_navbar .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}.o_navbar .o_navbar_tabs .o_navbar_tab_close i:before{color:#d6001c}.o_navbar .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#a30015}.o_navbar .o_custom_navbar-brand{background-position:5px 0;background-repeat:no-repeat;height:50px;width:120px}.o_navbar #o_navbar_langchooser{color:#777;padding:7px 15px}.o_navbar #o_navbar_langchooser form span+div{display:inline}.o_navbar #o_navbar_tools_permanent #o_navbar_print a,.o_navbar #o_navbar_tools_permanent #o_navbar_impress a,.o_navbar #o_navbar_tools_permanent #o_navbar_help a{color:#777;padding-right:0}.o_navbar #o_navbar_tools_permanent #o_navbar_login a{color:#f2af40}.o_navbar .o_navbar_tools>#o_navbar_tools_permanent>li>a>span{display:none}@media (min-width: 768px){.o_navbar .o_navbar_tools li.o_portrait>a>span{display:inline}}.o_navbar #o_navbar_tools_personal .o_navbar_tool a,.o_navbar #o_navbar_tools_permanent .o_navbar_tool a{padding-right:5px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu a{padding-left:45px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .dropdown-menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .dropdown-menu a{padding-left:15px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .o_portrait,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .o_portrait{position:absolute;left:7px;top:10px}.o_navbar #o_navbar_tools_personal .o_logout,.o_navbar #o_navbar_tools_permanent .o_logout{color:#d6001c}.o_navbar.o_navbar-offcanvas .o_navbar_tab_close{top:10px;right:10px}.o_navbar.o_navbar-offcanvas .o_navbar-right a{padding:3px 20px;color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-right a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a:focus{color:#fff;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout{color:#d6001c}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:focus{color:#a30015}.o_navbar.o_navbar-offcanvas .o_navbar-right a .o_icon-lg{font-size:1.0em;vertical-align:baseline}.o_navbar.o_navbar-offcanvas .o_navbar-right .divider{height:1px;margin:9px 0;overflow:hidden;background-color:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-header{padding-left:15px}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-toggle{display:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu{box-shadow:none;position:relative;top:0;left:0;display:block;float:none;background-color:#222;color:#9d9d9d;font-size:14px;border:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu .divider{background:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a{color:#9d9d9d;text-shadow:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav a:focus{background-color:transparent;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:focus{background-color:#090909;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link{color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link:hover{color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a{color:#777}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}#o_navbar_impress a span,#o_navbar_search_opener a span{display:none}body.o_dmz #o_navbar_print a span,body.o_dmz #o_navbar_impress a span,body.o_dmz #o_navbar_help a span,body.o_dmz #o_navbar_search_opener a span{display:inline}.o_navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;font-size:18px;line-height:20px;height:50px;color:#777}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none;color:#5e5e5e;background-color:transparent}.o_navbar-toggle{position:relative;margin-right:15px;margin-left:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;border:1px solid #ddd;border-radius:4px;background-color:transparent;background-image:none}.o_navbar-toggle:hover,.o_navbar-toggle:focus{outline:none;background-color:#ddd}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;background-color:#888}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}#o_navbar_left-toggle{float:left}#o_navbar_right-toggle{float:right}.o_navbar-link{color:#777}.o_navbar-link:hover{color:#333}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px;color:#777}.o_navbar-nav>li>a:hover,.o_navbar-nav>li>a:focus{color:#333;background-color:transparent}.o_navbar-nav>.active>a,.o_navbar-nav>.active>a:hover,.o_navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-nav>.disabled>a,.o_navbar-nav>.disabled>a:hover,.o_navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-nav>.open>a,.o_navbar-nav>.open>a:hover,.o_navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}}.o_collapse .o_navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.o_collapse .o_navbar-form.o_navbar-right:last-child{margin-right:-15px}.o_navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.o_navbar-fixed-bottom .o_navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.o_navbar-btn{margin-top:8px;margin-bottom:8px}.o_navbar-btn.btn-sm,.btn-group-sm>.o_navbar-btn.btn{margin-top:10px;margin-bottom:10px}.o_navbar-btn.btn-xs,.btn-group-xs>.o_navbar-btn.btn{margin-top:14px;margin-bottom:14px}.o_navbar-text{margin-top:15px;margin-bottom:15px;color:#777}.o_collapse .o_navbar-text{float:left;margin-left:15px;margin-right:15px}.o_collapse .o_navbar-text.o_navbar-right:last-child{margin-right:0}.o_dropdown_tab{position:relative}.o_dropdown_tab>a:first-child{padding-right:30px}.o_dropdown_tab>a:first-child .o_icon-fw{display:none;position:absolute;top:0;left:10px;padding-top:3px;line-height:20px}.o_dropdown_tab>a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_dropdown_tab .o_navbar_tab_close{position:absolute;top:0px;right:10px;padding-left:0px;padding-right:0px;color:#d6001c;background-color:inherit}.o_dropdown_tab .o_navbar_tab_close:focus,.o_dropdown_tab .o_navbar_tab_close:hover{color:#a30015;background-color:inherit}#o_navbar_more .dropdown-menu .divider:last-child{display:none}@media (min-width: 768px){#o_navbar_more .dropdown-menu{max-width:300px}}@media (max-width: 767px){#o_navbar_more>li{position:inherit}#o_navbar_more .dropdown-menu{left:0px;right:0px}#o_navbar_more .dropdown-menu a,#o_navbar_more .dropdown-menu i{line-height:30px}#o_navbar_more .dropdown-menu .o_navbar_tab_close{line-height:inherit}}.o_body_popup #o_topnav_printview{display:inline-block}.o_body_popup #o_topnav_close{float:right}.o_body_popup #o_topnav_close span{display:block}.o_body_popup #o_navbar_tools_permanent li>a{background-color:transparent}.o_toolbar{position:relative;margin-bottom:20px;margin-top:-10px;border:1px solid #e7e7e7}.o_toolbar:before,.o_toolbar:after{content:" ";display:table}.o_toolbar:after{clear:both}@media (min-width: 768px){.o_toolbar{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}}.o_toolbar.o_toolbar_with_segments{margin-bottom:30px}.o_toolbar .o_breadcrumb:before,.o_toolbar .o_breadcrumb:after{content:" ";display:table}.o_toolbar .o_breadcrumb:after{clear:both}.o_toolbar .o_breadcrumb .breadcrumb{margin-bottom:0;padding:5px 9px;font-size:11px;line-height:15px;border-radius:0;background:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d6001c}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a:hover{color:#8a0012}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a span{display:none}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close:before{content:none}.o_toolbar .o_tools_container{text-align:center;min-height:37px;position:relative;background-color:#f8f8f8;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_toolbar .o_tools_container:before,.o_toolbar .o_tools_container:after{content:" ";display:table}.o_toolbar .o_tools_container:after{clear:both}@media (max-width: 991px){.o_toolbar .o_tools_container{min-height:35px}}@media (max-width: 767px){.o_toolbar .o_tools_container{min-height:22px;text-align:left}}.o_toolbar .o_tools_container span.o_tool_text{color:#777;display:inline-block}.o_toolbar .o_tools_container a{color:#777;display:inline-block}.o_toolbar .o_tools_container a:hover{color:#333}.o_toolbar .o_tools_container a.o_disabled{color:#aaa !important}.o_toolbar .o_tools_container a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tools_container a.active{color:#209d9e;background-color:transparent}.o_toolbar .o_tools_container a.btn-primary{color:#fff}.o_toolbar .o_tools_container .dropdown-menu a{display:block}.o_toolbar .o_tools_container .dropdown-menu a.active{color:#209d9e;background-color:transparent}.o_toolbar .o_breadcrumb+.o_tools_container{border-top:1px solid #e7e7e7}.o_toolbar .o_tools{margin-top:8px;margin-bottom:5px}.o_toolbar .o_tool,.o_toolbar .o_text{position:relative;margin:0 10px}.o_toolbar .o_tool:first-child,.o_toolbar .o_text:first-child{margin-left:0}.o_toolbar .o_tool:last-child,.o_toolbar .o_text:last-child{margin-right:0}.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:18px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:block;font-size:12px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{position:absolute;right:50%;top:-18px;margin-right:-12px;font-size:13px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:16px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{font-size:11px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{top:-16.5px;margin-right:-11px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:20px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:none}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{display:block;position:relative;top:0;left:0;margin-right:0}}.o_toolbar .o_tool .o_chelp,.o_toolbar .o_text .o_chelp{position:relative;top:-1em;vertical-align:top;color:#fff}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{padding:0;margin-top:5px;border:1px solid #ccc;background-color:#eee}.o_toolbar .o_tool_next a,.o_toolbar .o_tool_previous a{color:#777}.o_toolbar .o_tool_next a:hover,.o_toolbar .o_tool_previous a:hover{color:#333}.o_toolbar .o_tool_next a.o_disabled,.o_toolbar .o_tool_previous a.o_disabled{color:#aaa !important}.o_toolbar .o_tool_next a.o_disabled:hover,.o_toolbar .o_tool_previous a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:21px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:4px}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:18px}}@media (max-width: 767px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:0}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:20px}}.o_toolbar .o_tool_previous{margin-left:10px;border-bottom-left-radius:4px;border-top-left-radius:4px;border-right:0}.o_toolbar .o_tool_next{border-bottom-right-radius:4px;border-top-right-radius:4px}.o_toolbar .o_tool_dropdown{margin:0 10px}.o_toolbar .o_tool_dropdown:first-child{margin-left:0}.o_toolbar .o_tool_dropdown:last-child{margin-right:0}.o_toolbar .o_tool_dropdown a.dropdown-toggle{position:relative}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:18px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label{display:block;font-size:12px;text-align:center}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{position:absolute;right:50%;top:4px;margin-right:-20px;font-size:14px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:16px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label,.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{font-size:11px}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{top:4px;margin-right:-18px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown a.dropdown-toggle{padding:0 10px 0 5px}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:20px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label{display:none}}.o_toolbar .o_tool_dropdown .dropdown-menu{text-align:left}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{line-height:16px;font-size:70% !important;padding:0 18px 0 4px;position:relative;top:-2px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:12px !important;margin:0 0 3px 0}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{position:absolute;right:5px;top:2px;margin-right:0}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{line-height:14px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:10px !important}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{right:5px;top:2px;margin-right:0;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{padding:0 18px 0 4px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:20px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{right:15px;top:2px;margin-right:0}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled span.o_inner_text,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled span.o_label,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light span.o_inner_text,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light span.o_label{display:none}}.o_toolbar .o_tool_dropdown .dropdown-toggle.o_with_labeled .o_inner_wrapper.o_labeled+.o_icon_caret{color:#fff !important}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled{padding:0;margin:0}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled .o_labeled{text-align:left}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled>li>a{padding:5px 5px;margin:1px}.o_toolbar .o_tools_left{float:left}.o_toolbar .o_tools_right{float:right}.o_toolbar .o_tools_right_edge{float:right}.o_toolbar .o_tools_center{float:both;width:50%;margin-left:auto;margin-right:auto}.o_toolbar .o_tools_segments{margin:0 auto -1.1em auto}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}@media (max-width: 991px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools.o_tools_segments{margin:0 auto -1.1em auto}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}.o_toolbar .o_tool span{max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_toolbar .o_tools_segments .o_tool span{display:block}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 5px}}@media (max-width: 767px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools .o_chelp{top:0;vertical-align:top}.o_toolbar .o_tools.o_tools_segments{margin:0 auto -1.1em auto;text-align:center}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}.o_toolbar .o_tools_center{float:left}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 0;position:static}.o_toolbar .o_tool_dropdown .dropdown-menu{left:0px;right:0px}.o_toolbar .o_tool_dropdown .dropdown-menu a,.o_toolbar .o_tool_dropdown .dropdown-menu i{line-height:30px}.o_toolbar .o_tool_dropdown .dropdown-menu .o_navbar_tab_close{line-height:inherit}}#o_main_container .o_toolbar_message{display:table;margin:0 auto 20px auto}#o_main_container .o_toolbar_message.o_warning{padding-top:5px;padding-bottom:5px;border:1px solid #8a6d3b;border-radius:3px}.o_edit_mode .o_toolbar .o_tools_container{background:repeating-linear-gradient(300deg, #fff0d9, #fff0d9 10px, #fcfcfc 10px, #fcfcfc 20px)}.o_edit_mode .o_toolbar .o_edit_mode .o_tools_container{background:#f8f8f8}body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px}#o_container_page_width_toggler{position:absolute;top:25px;margin-top:-.75em;right:10px;z-index:5;display:none}@media (min-width: 1364px){#o_container_page_width_toggler{display:block}#o_container_page_width_toggler #o_go_standard_width{display:none}#o_container_page_width_toggler #o_go_full_width{display:block}body.o_width_full .o_container_offcanvas{max-width:100%;margin-left:20px;margin-right:20px}body.o_width_full #o_container_page_width_toggler #o_go_standard_width{display:block}body.o_width_full #o_container_page_width_toggler #o_go_full_width{display:none}}body.o_dmz #o_container_page_width_toggler{display:none !important}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#9d9d9d;border:1px solid #090909;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);min-height:100%;z-index:10;display:none}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}.o_info,.b_info,p.b_info,div.b_info,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback,.o_assessmentitem_wrapper .modalFeedback .o_info{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_info h5,.b_info h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.o_assessmentitem_wrapper .modalFeedback .o_info h2,.b_info h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.o_assessmentitem_wrapper .modalFeedback .o_info h3,.b_info h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.o_assessmentitem_wrapper .modalFeedback .o_info h4,.b_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_info h2,.o_form .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.o_assessmentitem_wrapper .modalFeedback .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info h2,.b_info h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5,.o_assessmentitem_wrapper .modalFeedback .o_info h5{color:#777}.o_note,.b_note,p.b_note,div.b_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_note h5,.b_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h2,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2,.b_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h3,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h3,.b_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h4,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h4,.b_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h2,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2,.b_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h5,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{margin:20px 0;padding:20px;border-left:3px solid #F4D000;background-color:#FFF1A4}.o_important h2,.o_important h3,.o_important h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_important h5,.b_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.b_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.b_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.b_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.b_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#F4D000}.o_success,.b_success,p.b_success,div.b_success,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5,.b_success h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h2,.b_success h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h3,.b_success h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h4,.b_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_success h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h2,.b_success h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning,.o_instruction,.o_form .o_warning,p.o_gta_reopen_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.b_warning h2,.o_instruction h2,.o_form .o_warning h2,p.o_gta_reopen_warning h2,.b_warning h3,.o_instruction h3,.o_form .o_warning h3,p.o_gta_reopen_warning h3,.b_warning h4,.o_instruction h4,.o_form .o_warning h4,p.o_gta_reopen_warning h4,.b_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_warning h2,.o_instruction .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_instruction h2,.o_form .o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_warning h2,p.o_gta_reopen_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title p.o_gta_reopen_warning h2,.b_warning h5,.o_instruction h5,.o_form .o_warning h5,p.o_gta_reopen_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5,.b_error h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h2,.b_error h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h3,.b_error h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h4,.b_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_error h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h2,.b_error h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h5{color:#a94442}.o_instruction{margin-top:0px;border-left:none;padding-top:10px;padding-bottom:10px}.o_instruction>.o_button_group{margin-bottom:0px}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_alert_close{float:right;color:#777}.o_alert_info .alert .o_alert_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}#o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4,.modal .modal-header .o_cal .fc-header-title h2,.o_cal .fc-header-title .modal .modal-header h2{color:#342c24;font-weight:500;font-family:inherit;line-height:1.1}.o_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_tree a{color:#777;background-color:none}.o_tree a:hover,.o_tree a:focus{color:#333}.o_tree .o_tree_link{background-color:none}.o_tree .o_tree_link:hover,.o_tree .o_tree_link:focus{background-color:#f8f8f8}.o_tree .o_tree_link:first-child{background-color:transparent}.o_tree .o_tree_link:last-child:hover,.o_tree .o_tree_link:last-child:focus{background-color:#f8f8f8}.o_tree .o_insertion_point>a>span{padding:5px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_insertion_source>a>span.o_tree_item,.o_tree .o_insertion_source>a>span.o_dnd_item{border-bottom:solid #f90 4px;background-color:#fefbf6}.o_tree ul{margin:0;padding:0;list-style-type:none}.o_tree ul li{margin:0;padding:0;white-space:nowrap}.o_tree ul li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_tree ul li div.popover{position:absolute;left:auto;right:0}.o_tree ul li div a.o_tree_oc_l0{position:absolute;top:10px;left:-4px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l0,.o_tree ul .o_tree_level_close.b_tree_oc_l0{z-index:10}.o_tree ul li div a.o_tree_oc_l1{position:absolute;top:10px;left:11px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l1,.o_tree ul .o_tree_level_close.b_tree_oc_l1{z-index:10}.o_tree ul li div a.o_tree_oc_l2{position:absolute;top:10px;left:26px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l2,.o_tree ul .o_tree_level_close.b_tree_oc_l2{z-index:10}.o_tree ul li div a.o_tree_oc_l3{position:absolute;top:10px;left:41px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l3,.o_tree ul .o_tree_level_close.b_tree_oc_l3{z-index:10}.o_tree ul li div a.o_tree_oc_l4{position:absolute;top:10px;left:56px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l4,.o_tree ul .o_tree_level_close.b_tree_oc_l4{z-index:10}.o_tree ul li div a.o_tree_oc_l5{position:absolute;top:10px;left:71px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l5,.o_tree ul .o_tree_level_close.b_tree_oc_l5{z-index:10}.o_tree ul li div a.o_tree_oc_l6{position:absolute;top:10px;left:86px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l6,.o_tree ul .o_tree_level_close.b_tree_oc_l6{z-index:10}.o_tree ul li div a.o_tree_oc_l7{position:absolute;top:10px;left:101px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l7,.o_tree ul .o_tree_level_close.b_tree_oc_l7{z-index:10}.o_tree ul li div a.o_tree_oc_l8{position:absolute;top:10px;left:116px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l8,.o_tree ul .o_tree_level_close.b_tree_oc_l8{z-index:10}.o_tree ul li div a.o_tree_oc_l9{position:absolute;top:10px;left:131px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l9,.o_tree ul .o_tree_level_close.b_tree_oc_l9{z-index:10}.o_tree ul li div a.o_tree_oc_l10{position:absolute;top:10px;left:146px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l10,.o_tree ul .o_tree_level_close.b_tree_oc_l10{z-index:10}.o_tree ul li div a.o_tree_oc_l11{position:absolute;top:10px;left:161px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l11,.o_tree ul .o_tree_level_close.b_tree_oc_l11{z-index:10}.o_tree ul li div span.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_tree ul li div span.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_tree ul li div span.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_tree ul li div span.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_tree ul li div span.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_tree ul li div span.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_tree ul li div span.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_tree ul li div span.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_tree ul li div span.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_tree ul li div span.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_tree ul li div span.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_tree ul li div span.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_tree ul span.o_tree_leaf{display:none}.o_tree ul span.o_tree_link>input[type=checkbox]{margin-right:5px}.o_tree ul li .badge{position:absolute;font-size:70%}.o_tree ul li .badge:before{content:none}.o_tree ul li .badge.o_badge_1{top:3px;right:1px}.o_tree ul li .badge.o_badge_2{bottom:3px;right:1px}.o_tree ul li .badge.o_badge_3{top:3px;right:25px}.o_tree ul li .badge.o_badge_4{bottom:3px;right:25px}.o_tree ul li div.o_dnd_sibling{margin:0;padding:0;border-bottom:none}.o_tree ul li .active.o_tree_link{background-color:none;font-weight:bold}.o_tree ul li .active.o_tree_link a{color:#209d9e}.o_tree ul li .active.o_tree_link:hover,.o_tree ul li .active.o_tree_link:focus{background-color:#eee}.o_tree ul li .active.o_tree_link:hover a,.o_tree ul li .active.o_tree_link:focus a{color:#177374}.o_tree ul li .active_parent.o_tree_link{font-weight:bold}.o_tree ul li .active_parent.o_tree_link a{color:#777}.o_tree ul li .active_parent.o_tree_link a:hover,.o_tree ul li .active_parent.o_tree_link a:focus{color:#333}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l0{left:6px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l1{left:21px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l2{left:36px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l3{left:51px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l4{left:66px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l5{left:81px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l6{left:96px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l7{left:111px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l8{left:126px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l9{left:141px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l10{left:156px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l11{left:171px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l0{padding:10px 2px 10px 20px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l1{padding:10px 2px 10px 35px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l2{padding:10px 2px 10px 50px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l3{padding:10px 2px 10px 65px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l4{padding:10px 2px 10px 80px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l5{padding:10px 2px 10px 95px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l6{padding:10px 2px 10px 110px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l7{padding:10px 2px 10px 125px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l8{padding:10px 2px 10px 140px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l9{padding:10px 2px 10px 155px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l10{padding:10px 2px 10px 170px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l11{padding:10px 2px 10px 185px}.o_tree .o_dnd_item{cursor:move;z-index:100}.o_tree .o_dnd_proxy{opacity:.4;filter:alpha(opacity=40);background-color:#f2af40;padding:5px 10px 5px 10px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_dnd_item.o_dnd_over{background-color:#ffff60}.o_tree .o_dnd_sibling{height:7px;width:100%}.o_tree .o_dnd_sibling.o_dnd_over{background:transparent url(../light/images/arrow_dd.png) top left no-repeat}.o_tree .o_dnd_l1{margin-left:0 !important}.o_tree .o_dnd_l2{margin-left:1em !important}.o_tree .o_dnd_l3{margin-left:2em !important}.o_tree .o_dnd_l4{margin-left:3em !important}.o_tree .o_dnd_l5{margin-left:4em !important}.o_tree .o_dnd_l6{margin-left:5em !important}.o_tree .o_dnd_l7{margin-left:6em !important}.o_tree .o_dnd_l8{margin-left:7em !important}.o_tree .o_dnd_l9{margin-left:8em !important}.o_tree .o_dnd_l10{margin-left:9em !important}.o_tree .o_dnd_l11{margin-left:10em !important}.o_tree.o_tree_insert_tool span.o_tree_link a{display:block}.o_offcanvas .o_tree{border:0}.o_selection_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_selection_tree ul{margin:0;padding:0;list-style-type:none}.o_selection_tree li{margin:0;padding:0;white-space:nowrap}.o_selection_tree li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_selection_tree li>div>span.o_tree_l0,.o_selection_tree li>div>div.checkbox.o_tree_l0,.o_selection_tree li>div>div.radio.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_selection_tree li>div>span.o_tree_l1,.o_selection_tree li>div>div.checkbox.o_tree_l1,.o_selection_tree li>div>div.radio.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_selection_tree li>div>span.o_tree_l2,.o_selection_tree li>div>div.checkbox.o_tree_l2,.o_selection_tree li>div>div.radio.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_selection_tree li>div>span.o_tree_l3,.o_selection_tree li>div>div.checkbox.o_tree_l3,.o_selection_tree li>div>div.radio.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_selection_tree li>div>span.o_tree_l4,.o_selection_tree li>div>div.checkbox.o_tree_l4,.o_selection_tree li>div>div.radio.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_selection_tree li>div>span.o_tree_l5,.o_selection_tree li>div>div.checkbox.o_tree_l5,.o_selection_tree li>div>div.radio.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_selection_tree li>div>span.o_tree_l6,.o_selection_tree li>div>div.checkbox.o_tree_l6,.o_selection_tree li>div>div.radio.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_selection_tree li>div>span.o_tree_l7,.o_selection_tree li>div>div.checkbox.o_tree_l7,.o_selection_tree li>div>div.radio.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_selection_tree li>div>span.o_tree_l8,.o_selection_tree li>div>div.checkbox.o_tree_l8,.o_selection_tree li>div>div.radio.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_selection_tree li>div>span.o_tree_l9,.o_selection_tree li>div>div.checkbox.o_tree_l9,.o_selection_tree li>div>div.radio.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_selection_tree li>div>span.o_tree_l10,.o_selection_tree li>div>div.checkbox.o_tree_l10,.o_selection_tree li>div>div.radio.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_selection_tree li>div>span.o_tree_l11,.o_selection_tree li>div>div.checkbox.o_tree_l11,.o_selection_tree li>div>div.radio.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_breadcrumb{position:relative}.o_breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d6001c}.o_breadcrumb .o_breadcrumb_close a:hover{color:#8a0012}.o_breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_breadcrumb .o_breadcrumb_close a span{display:none}.o_breadcrumb .o_breadcrumb_close:before{content:none}.o_form .o_icon_mandatory{margin-right:0.25em}.o_form .o_form_chelp{padding-left:0.25em;margin-right:-1.25em}.o_form .o_form_example{font-size:90%}.o_form .o_error{margin-top:1px;margin-bottom:0;padding:10px}.o_form hr.o_spacer_noline{border-top:1px solid transparent}.o_form hr.o_spacer.form,.o_form hr.o_spacer_noline.form{margin-top:0px;margin-bottom:0px}.o_form .form-group.o_omit_margin{margin-bottom:0}.o_form .o_date{position:relative;padding-right:34px}.o_form .o_date.form-inline .form-group,.o_form .o_date.o_navbar-form .form-group{margin-left:0}.o_form .o_date.form-inline .form-group.o_second_date,.o_form .o_date.o_navbar-form .form-group.o_second_date,.o_form .o_date.form-inline .o_date_ms.form-group,.o_form .o_date.o_navbar-form .o_date_ms.form-group,.o_form .o_date.form-inline .form-group.o_date_separator,.o_form .o_date.o_navbar-form .form-group.o_date_separator{margin-left:25px}.o_form .btn-group .o_date{display:inline-block}.o_form input.o_date_ms{width:3em}.o_form .has-feedback .o_date.form-inline .form-control.o_date_ms,.o_form .has-feedback .o_date.o_navbar-form .form-control.o_date_ms{padding-right:0}.o_form .o_form_element.form-inline .o_form_element.form-group,.o_form .o_form_element.o_navbar-form .o_form_element.form-group{margin-left:25px}.o_form .input-group.o_date_picker{width:11em}.o_form .has-feedback .o_date_picker .form-control{padding-right:0}.o_form .o_filepreview{margin-bottom:10px}.o_form .o_fileinput{cursor:pointer;position:relative}.o_form .o_fileinput .o_fakechooser{position:relative;z-index:1}.o_form .o_fileinput .o_realchooser{position:absolute;top:0;right:0;z-index:2;opacity:0;filter:alpha(opacity=0)}.o_form .o_fileinput .o_realchooser.o_chooser_with_delete{right:38px}.o_form .o_fileElement.has-error .o_icon_error.form-control-feedback{display:none}.o_form .form-control.textarea.o_fixed_font_with{resize:vertical !important;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_form .form-control.textarea_disabled.o_fixed_font_with{white-space:pre-wrap;height:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;color:#555 !important;background:#fafafa}.o_form .form-control.textarea_disabled{resize:both;overflow:auto;white-space:pre-wrap;background:#fafafa}.o_form_inline_mandatory_compact i{width:20px}.o_form_inline_mandatory_compact select.form-control{width:calc(100% - 25px)}.o_day_chooser .o_day_previous{display:inline-block}.o_day_chooser .o_day_previous a{border-bottom-right-radius:0;border-top-right-radius:0;border-right:0}.o_day_chooser .o_day_date{display:inline-block;border-radius:0}.o_day_chooser .o_day_date input,.o_day_chooser .o_day_date .input-group-addon{border-radius:0}.o_day_chooser .o_day_next{display:inline-block}.o_day_chooser .o_day_next a{border-bottom-left-radius:0;border-top-left-radius:0;border-left:0}.o_centered_form{text-align:center}.o_centered_form fieldset.o_form{display:inline-block;text-align:left}.o_choice_checkrow,.o_choice_textrow{vertical-align:text-top;padding-bottom:2px}.o_choice_textrow{padding-left:1em}.o_togglecheck a{white-space:nowrap}.o_catalog .o_catalog_delete_img{position:relative;top:-0.5em}.o_button_dirty{color:#fff;background-color:#f2af40;border-color:#f0a528}.o_button_dirty:hover,.o_button_dirty:focus,.o_button_dirty.focus,.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{color:#fff;background-color:#ef9b10;border-color:#cd850e}.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{background-image:none}.o_button_dirty.disabled,.o_button_dirty.disabled:hover,.o_button_dirty.disabled:focus,.o_button_dirty.disabled.focus,.o_button_dirty.disabled:active,.o_button_dirty.disabled.active,.o_button_dirty[disabled],.o_button_dirty[disabled]:hover,.o_button_dirty[disabled]:focus,.o_button_dirty[disabled].focus,.o_button_dirty[disabled]:active,.o_button_dirty[disabled].active,fieldset[disabled] .o_button_dirty,fieldset[disabled] .o_button_dirty:hover,fieldset[disabled] .o_button_dirty:focus,fieldset[disabled] .o_button_dirty.focus,fieldset[disabled] .o_button_dirty:active,fieldset[disabled] .o_button_dirty.active{background-color:#f2af40;border-color:#f0a528}.o_button_dirty .badge{color:#f2af40;background-color:#fff}.o_button_toggle{border:1px solid #777;border-top-right-radius:9px;border-top-left-radius:9px;border-bottom-right-radius:9px;border-bottom-left-radius:9px;background:#eee;display:inline-block;height:18px;line-height:16px;font-size:16px;text-align:left;padding:0 0.5em 0 1px;margin:0}.o_button_toggle i{color:#777;text-shadow:1px 0 2px rgba(0,0,0,0.25)}.o_button_toggle span{line-height:16px;vertical-align:top;font-size:60%;color:#777;text-transform:uppercase}.o_button_toggle.o_on{text-align:right;padding:0 1px 0 0.5em}.o_button_toggle.o_on i{color:#209d9e;text-shadow:-1px 0 2px rgba(0,0,0,0.25)}.o_table_wrapper{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_table_wrapper.o_table_flexi .o_table_body{margin-top:20px}.o_table_wrapper.o_table_flexi .table{margin-top:20px}.o_table_wrapper.o_table_flexi .table td ul{margin:0}.o_table_wrapper.o_table_flexi.o_table_no_margin .table{margin:0}.o_table_wrapper.o_table_flexi tfoot{border-top:solid #ddd 2px}.o_table_wrapper.o_table_flexi .o_multiselect{width:20px}.o_table_wrapper.o_table_edit table tbody{border-top:solid #f90 4px;background-color:#fefbf6}.o_table_wrapper .o_table_search{max-width:50em}.o_table_wrapper .o_table_footer .o_table_checkall>a{font-weight:normal;margin-right:10px}.o_table_wrapper .o_table_footer .o_table_checkall.input-sm,.o_table_wrapper .o_table_footer .input-group-sm>.o_table_checkall.form-control,.o_table_wrapper .o_table_footer .input-group-sm>.o_table_checkall.input-group-addon,.o_table_wrapper .o_table_footer .input-group-sm>.input-group-btn>.o_table_checkall.btn{padding:5px 6px}.o_table_wrapper .o_table_footer .o_table_pagination{text-align:center}.o_table_wrapper .o_table_rows_infos{float:left;padding-left:0;padding-right:20px;margin:20px 0}.o_table_wrapper .o_row_selected td{background-color:#dff0d8 !important}.o_table_wrapper .o_table{margin-bottom:0}.o_table_wrapper .o_marked{font-weight:bold}.o_table_wrapper .table{margin-bottom:0}.o_table_wrapper th a,.o_table_wrapper th a:hover{color:#2d2926;text-decoration:none}.o_table_search a.btn.o_reset_quick_search{width:38px;margin-left:-38px;z-index:5;color:grey}.o_breadcrumb.o_table_flexi_breadcrumb ol.breadcrumb{margin:5px 0 0 0}div.o_table_flexi div.o_table_flexi_leaf{margin-left:1.55em}div.o_table_flexi div.o_table_flexi_l0{padding-left:0px}div.o_table_flexi div.o_table_flexi_l1{padding-left:15px}div.o_table_flexi div.o_table_flexi_l2{padding-left:30px}div.o_table_flexi div.o_table_flexi_l3{padding-left:45px}div.o_table_flexi div.o_table_flexi_l4{padding-left:60px}div.o_table_flexi div.o_table_flexi_l5{padding-left:75px}div.o_table_flexi div.o_table_flexi_l6{padding-left:90px}div.o_table_flexi div.o_table_flexi_l7{padding-left:105px}div.o_table_flexi div.o_table_flexi_l8{padding-left:120px}div.o_table_flexi div.o_table_flexi_l9{padding-left:135px}div.o_table_flexi div.o_table_flexi_l10{padding-left:150px}div.o_table_flexi div.o_table_flexi_l11{padding-left:165px}@media (max-width: 767px){.o_table_wrapper .o_table_rows_infos{clear:both}}a.o_orderby,a.o_orderby:hover{color:#2d2926;text-decoration:none}a.o_orderby.o_orderby_asc,a.o_orderby.o_orderby_desc,a.o_orderby:hover.o_orderby_asc,a.o_orderby:hover.o_orderby_desc{border-bottom:1px solid #ddd}.o_table_row_count{padding-top:6px;padding-bottom:6px;vertical-align:middle}.o_table_row_details td{background-color:white !important}.o_table_config{font-size:12px}.o_table_buttons{text-align:center}.o_table_buttons input{margin-right:1em}.o_table_buttons input:last-child{margin-right:0}.o_table_tools{margin-left:6px}.o_table_tools_indications,.o_table_tools_indications_filter_only{margin-left:10px;padding-top:3px;font-size:80%}.o_table_tools_indications a,.o_table_tools_indications_filter_only a{color:#d6001c}.o_table_toolbar_left .o_table_tools_indications{text-align:right}.o_table_count{max-width:20em;float:left;padding:0 15px}.o_table_filter .control-label{margin-right:0.5em}.o_table_filter .control-label:after{content:':'}.o_table_filter>div{display:inline-block}.o_table_filter>div label{font-weight:normal}.o_info .table-bordered td,o_note .table-bordered td,o_important .table-bordered td,o_warning .table-bordered td,o_error .table-bordered td{border-color:#333}.panel .o_table_layout{border-top:1px solid #ddd;padding-top:6px}.panel .o_table_count{padding:0 15px}#o_navbar_imclient .o_im_messages{float:left}#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary{float:left;position:relative;padding:15px 3px}#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_message{padding-left:15px}#o_navbar_imclient #o_im_summary .badge{color:#fff;background-color:#777}#o_navbar_imclient #o_im_status li>a>span{display:inline}#o_navbar_imclient #o_im_status div.o_chelp_wrapper{right:0.5em}#o_navbar_imclient #o_im_message a:hover,#o_navbar_imclient #o_im_message a:focus{text-decoration:none}#o_navbar_imclient #o_im_message .o_icon_message{color:#d6001c}#o_navbar_imclient #o_im_message .o_icon_message:hover{color:#f5c370}.o_im_load_history{margin-bottom:6px}.o_im_load_history .o_label{font-size:12px;padding-right:0.5em;line-height:1.5em;color:#777}.o_im_chat_history{height:170px;font-size:90%;border:1px solid #eee;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_im_message_group{padding:3px 3px 3px 40px;min-height:40px;position:relative;border-top:1px solid #eee;background:#fff}.o_im_message_group.o_odd{background:#F4F4F4}.o_im_message_group .o_portrait{position:absolute;top:3px;left:3px}.o_im_message_group .o_im_from{color:#777;font-size:12px;font-weight:bold}.o_im_message_group .o_im_from:hover{color:#5e5e5e}.o_im_message_group div.o_im_body{padding:3px 0 3px 0;font-size:12px}.o_im_message_group div.o_im_body .o_date{float:right;color:#777;font-size:9px}.o_groupchat_roster{font-size:12px}.o_groupchat_roster li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2d2926}.o_groupchat_roster li.o_vip{color:#3c763d}.o_groupchat_roster li.o_anonymous{color:#31708f}.o_im_buddieslist .o_im_buddieslist_toggler .btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_im_buddieslist ul{font-size:12px}.o_im_buddieslist ul ul{padding-left:1em}.o_im_buddieslist ul a{color:#209d9e}.o_im_buddieslist ul a:hover{color:#177374}.o_flag{position:relative;top:1px;display:inline-block;line-height:1;width:16px;height:16px;background-repeat:no-repeat;background-position:0 100%}option.o_with_flag{padding-left:23px;min-height:16px;background-repeat:no-repeat;background-position:2px 50%}.o_flag_en{background-image:url("../light/images/flags/gb.png")}.o_flag_de{background-image:url("../light/images/flags/de.png")}.o_flag_fr{background-image:url("../light/images/flags/fr.png")}.o_flag_it{background-image:url("../light/images/flags/it.png")}.o_flag_es{background-image:url("../light/images/flags/es.png")}.o_flag_da{background-image:url("../light/images/flags/dk.png")}.o_flag_cs{background-image:url("../light/images/flags/cz.png")}.o_flag_el{background-image:url("../light/images/flags/gr.png")}.o_flag_ee{background-image:url("../light/images/flags/ee.png")}.o_flag_ru{background-image:url("../light/images/flags/ru.png")}.o_flag_pl{background-image:url("../light/images/flags/pl.png")}.o_flag_zh_CN{background-image:url("../light/images/flags/cn.png")}.o_flag_zh_TW{background-image:url("../light/images/flags/tw.png")}.o_flag_lt{background-image:url("../light/images/flags/lt.png")}.o_flag_fa{background-image:url("../light/images/flags/ir.png")}.o_flag_pt_PT{background-image:url("../light/images/flags/pt.png")}.o_flag_pt_BR{background-image:url("../light/images/flags/br.png")}.o_flag_tr{background-image:url("../light/images/flags/tr.png")}.o_flag_hu{background-image:url("../light/images/flags/hu.png")}.o_flag_sq{background-image:url("../light/images/flags/al.png")}.o_flag_in{background-image:url("../light/images/flags/id.png")}.o_flag_ar{background-image:url("../light/images/flags/eg.png")}.o_flag_rm{background-image:url("../light/images/flags/rm.png")}.o_flag_af{background-image:url("../light/images/flags/za.png")}.o_flag_vi{background-image:url("../light/images/flags/vn.png")}.o_flag_mn{background-image:url("../light/images/flags/mn.png")}.o_flag_iw{background-image:url("../light/images/flags/il.png")}.o_flag_ko{background-image:url("../light/images/flags/kr.png")}.o_flag_nl_NL{background-image:url("../light/images/flags/nl.png")}.o_flag_jp{background-image:url("../light/images/flags/jp.png")}.o_flag_nb_NO{background-image:url("../light/images/flags/no.png")}.o_flag_et_EE{background-image:url("../light/images/flags/ee.png")}.o_flag_bg{background-image:url("../light/images/flags/bg.png")}.o_flag_hi_IN_ASIA{background-image:url("../light/images/flags/in.png")}.o_flag_ar_LB{background-image:url("../light/images/flags/lb.png")}.o_flag_gl_ES{background-image:url("../light/images/flags/galicia.png")}.o_flag_sk{background-image:url("../light/images/flags/sk.png")}.o_rating .o_rating_title{font-size:12px}.o_rating .o_rating_items{white-space:nowrap}.o_rating .o_rating_items .o_icon{color:#f2af40}.o_rating .o_rating_items .o_legend{margin-left:1em;font-size:12px;line-height:normal}.o_rating.o_rating_personal .o_rating_items .o_icon{color:#209d9e}.o_rating .o_rating_explanation{font-size:12px;color:#777}@media (max-width: 991px){.o_rating .o_rating_title,.o_rating .o_rating_explanation{display:none}}.o_comments .o_comment_wrapper .o_avatar{float:left;margin:0 1em 0 0}.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.o_comments .o_comment_wrapper .o_comment_wrapper{margin-left:16px}.o_ratings_and_comments .o_rating_wrapper{vertical-align:middle;display:inline-block}.o_ratings_and_comments a.o_comments{margin-left:10px;position:relative;top:0.1em}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#35d5d6}.d3chart .bar_default,.d3chart .bubble_default{fill:#209d9e}.d3chart .bar_default_dark{fill:#135e5e}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_forum_peekview .o_quote_wrapper,.o_forum_peekview .b_quote_wrapper{display:none}.o_forum_thread_sticky{font-weight:bold}.o_forum_switch{font-size:12px}.o_forum_toolbar{margin-bottom:6px;float:left}.o_forum_fulltextsearch{float:right}@media (max-width: 767px){.o_forum_fulltextsearch{float:left}.o_forum_toolbar .o_forum_tool span{display:none}}.o_forum{padding-bottom:50px}.o_forum .o_mark,.o_forum .o_ep_collect{float:right;position:relative;width:2em;margin-left:12px}.o_forum .o_portrait{float:left;margin-right:16px}.o_forum .o_portrait_avatar{width:70px;height:70px}.o_forum .o_newindicator{font-size:10px;color:#78be20;text-transform:uppercase;padding-left:1em;vertical-align:text-top;white-space:nowrap}.o_forum .o_author,.o_forum .o_date{display:inline-block;color:#777}.o_forum .o_date{font-size:12px}.o_forum .o_modified{color:#8a6d3b;font-size:12px;font-style:italic}.o_forum .o_forum_message{margin-bottom:20px;background-color:#fcfcfc;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_forum .o_forum_message_new{-webkit-box-shadow:0 1px 10px rgba(92,184,92,0.3);box-shadow:0 1px 10px rgba(92,184,92,0.3)}.o_forum .o_forum_message_highlight{-webkit-box-shadow:0 1px 10px rgba(240,173,78,0.5);box-shadow:0 1px 10px rgba(240,173,78,0.5)}.o_forum .o_forum_message_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:3px;border-top-left-radius:3px}.o_forum .o_forum_message_title{margin-top:0}.o_forum .o_forum_message_body{padding:10px 15px}.o_forum .o_forum_message_attachments{border-top:1px solid #ddd;padding:10px 15px;font-size:12px;background-color:#f7f7f9}.o_forum .o_attachment{position:relative;max-width:250px;vertical-align:top;margin:6px 12px 10px 0}.o_forum .o_attachment img{margin-top:6px}.o_forum .o_filename{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_forum .o_icon_enlarge{position:absolute;left:1em;bottom:1em;text-shadow:1px 1px 2px #fff, -1px 1px 2px #fff, 1px -1px 2px #fff, -1px -1px 2px #fff}@media (min-width: 768px) and (max-width: 991px){.o_forum .o_attachments{font-size:10px}.o_forum .o_attachment{max-width:200px}.o_forum .o_attachment img{max-width:150px}.o_forum .o_filename{max-width:200px}}@media (max-width: 767px){.o_forum .o_attachments{font-size:9px}.o_forum .o_attachment{max-width:150px}.o_forum .o_attachment img{max-width:100px}.o_forum .o_filename{max-width:150px}}.o_quote_wrapper,.b_quote_wrapper{position:relative;margin:10px 0}.o_quote_author,.b_quote_author{color:#777;font-size:12px}.o_quote_author:before,.b_quote_author:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";font-size:21px;padding-right:0.5em}blockquote.o_quote,blockquote.b_quote{color:#555;font-size:12px;margin-top:6px;padding:0 12px}a.o_chelp{display:inline-block;padding:1px 3px;text-align:center;vertical-align:middle;white-space:nowrap;font-size:10px;font-weight:normal;line-height:15px;color:#fff;background-color:#209d9e;border:1px solid #1c8889;border-radius:2px;cursor:help;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}a.o_chelp:active,a.o_chelp:hover,a.o_chelp:focus{text-decoration:none;color:#fff;background-color:#197b7c;border-color:#115556}a.o_chelp i{font-size:10px !important}.o_chelp_wrapper{position:relative;float:right;display:inline-block;line-height:normal;margin-bottom:10px;margin-left:10px}.o_form_chelp,.o_chelp_tooltip{color:#726860}.o_draw_circle{border:2px solid #209d9e;border-radius:50%;position:absolute !important;box-sizing:border-box}.o_draw_rectangle{border:2px solid #209d9e;position:absolute !important;box-sizing:border-box}.o_iframedisplay iframe{width:100%}.o_singlepage .o_edit{position:absolute;top:0;right:37px}.o_content_popup{position:absolute;top:0;right:12px}.o_module_cp_wrapper{position:relative}.o_module_cp_wrapper .o_tools{position:absolute;top:0;right:0;text-align:right;vertical-align:middle}.o_module_cp_wrapper .o_tools .o_search_wrapper{display:inline-block;position:relative;top:-2px}.o_module_cp_wrapper .o_tools .o_search_wrapper .form-group{margin-bottom:0}.o_module_cp_wrapper .o_tools .o_search_wrapper .form-control-static{padding-top:0;padding-bottom:0}ul.o_dropdown{margin:-5px -14px}ul.o_dropdown .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}ul.o_dropdown>li>a{display:block;padding:5px 14px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;background:#fcfcfc;white-space:nowrap}ul.o_dropdown>li>a:hover,ul.o_dropdown>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}ul.o_dropdown>li>i.o_icon_check{display:inline-block;padding-left:14px}ul.o_dropdown>li>i.o_icon_check+a{display:inline-block;padding-left:5px}.badge.o_scorm_completed{background-color:#3c763d}.badge.o_scorm_failed{background-color:#a94442}.badge.o_scorm_incomplete{background-color:#8a6d3b}.badge.o_scorm_not_attempted{background:none}.o_bc_meta h5,.o_bc_meta .o_author,.o_bc_meta .o_comment,.tooltip h5,.tooltip .o_author,.tooltip .o_comment{color:#fff;margin:5px 0}.o_bc_meta .o_thumbnail,.tooltip .o_thumbnail{width:200px;height:200px;display:inline-block;background-color:#fff;margin:0 -5px}.o_htmleditor .o_metadata{border:1px solid #999;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom:0;background:#eee;position:relative;top:1px;padding:5px}.o_htmleditor .o_metadata #o_filename{float:left}.o_htmleditor .o_metadata .o_lastmodified{float:right;color:#777;line-height:1.428571429}.o_htmleditor #o_save{margin-top:10px;text-align:center}.o_htmleditor #o_save input{margin-right:1em}.o_htmleditor #o_save input:last-child{margin-right:0}.o_notifications_news_wrapper .o_notifications_news_subscription{margin:10px 0}.o_notifications_news_wrapper .o_notifications_news_subscription h4 i,.o_notifications_news_wrapper .o_notifications_news_subscription .o_cal .fc-header-title h2 i,.o_cal .fc-header-title .o_notifications_news_wrapper .o_notifications_news_subscription h2 i{display:none}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_context{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content{margin-left:1.5em;position:relative}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_icon{position:absolute;left:-1.5em;line-height:1.5em;top:0}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_date{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_url{margin-left:1.5em}.o_noti{margin:6px 0 6px 12px;float:right;color:#777}.o_noti .o_label{color:#777;cursor:help}@media (max-width: 767px){.o_noti .o_label span{display:none}}.panel-body .o_noti{margin:0}.o_portrait{display:inline-block}.o_portrait img{border-radius:50%;border:none;background-color:#eee;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.o_portrait_name{margin-top:6px}.o_block_inline .o_portait,.o_block_inline .o_portrait_name,.o_block_inline .o_portrait_image,.o_block_inline_right .o_portait,.o_block_inline_right .o_portrait_name,.o_block_inline_right .o_portrait_image,.o_block_inline_left .o_portait,.o_block_inline_left .o_portrait_name,.o_block_inline_left .o_portrait_image,.o_block_inline_both .o_portait,.o_block_inline_both .o_portrait_name,.o_block_inline_both .o_portrait_image{display:inline-block}.o_portrait_avatar,.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png") !important}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png") !important}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png") !important}.o_portrait_anonymous{background-image:url("../light/images/portrait/anonymous.png") !important}.o_portrait_avatar_small,.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png") !important}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png") !important}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png") !important}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/anonymous_small.png") !important}.o_datecomp{position:relative;width:40px;height:52px;border:1px solid #555;margin-right:12px;text-align:center;vertical-align:middle}.o_datecomp div.o_year{position:absolute;left:0;width:100%;top:-20px;height:20px;line-height:20px;font-size:10px}.o_datecomp div.o_month{height:20px;line-height:20px;font-size:12px;background-color:#209d9e;color:#fff}.o_datecomp div.o_day{height:30px;line-height:30px;font-size:18px;border-top:1px solid #555;background-color:#fff;color:#2d2926}.o_block_with_datecomp .o_head{position:relative;padding-left:52px}.o_block_with_datecomp .o_datecomp{position:absolute;top:0.2em;left:0}.o_block_with_datecomp .o_title{margin-top:0}.o_block_with_datecomp .o_meta{color:#777}.o_block_with_datecomp .o_content{border-left:5px solid #eee;padding:0 20px}.o_block_with_datecomp .o_block_footer{padding-left:25px}ul.o_certificates li{padding:5px 0}ul.o_certificates li a.o_sel_certificate_delete{padding-left:2em}.o_cal_toptoolbar{margin-bottom:6px}.o_cal_toptoolbar .o_cal_toptoolbar_help{float:left;margin-right:12px}.o_cal_toptoolbar .o_noti{margin-top:0}.o_feed .o_date,.o_feed .o_author{color:#777}.o_feed .o_subscription a{margin-right:1.5em}.o_feed .o_subscription .form-group{margin-bottom:5px}.o_feed .o_subscription .form-control{border:0;background:none;padding:0;height:auto;-webkit-box-shadow:none;box-shadow:none}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper{float:left}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_title,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_explanation,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_legend{display:none}.o_feed .o_blog_posts .o_ratings_and_comments a.o_comments span{display:none}.o_feed .o_content:before,.o_feed .o_content:after{content:" ";display:table}.o_feed .o_content:after{clear:both}.o_feed .o_enclosure{clear:both}.o_glossary .o_register{text-align:center}.o_glossary .o_meta{font-size:90%;color:#777;font-style:italic}.o_glossary dl dt:first-letter{font-size:21px}.o_glossary dl dt small{color:#777}.o_tm_glossary{border-bottom:1px dotted #666699 !important}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_coaching div#o_main_toolbar.o_toolbar{margin-top:0px}.o_eff_statement_details .o_user_infos{margin-top:20px}div.o_assessment_user_type_filter{display:inline-block;padding:0.5em;border:1px solid #eee;border-radius:4px}div.o_assessment_user_type_filter div.form-inline,div.o_assessment_user_type_filter div.o_navbar-form{margin-left:5px;display:inline-block}div.panel.o_assessment_modes .o_table_body{margin-top:0}div.panel.o_assessment_modes .o_table_wrapper{margin-bottom:5px}div.o_assessment_mode_row{padding:0 15px}div.o_assessment_mode_row.o_assessment_today{padding:0 20px 0 12px;border-left:3px solid #3c763d;background-color:#dff0d8}div.o_assessment_mode_row.o_assessment_end_soon.o_assessment_today{padding:0 20px 0 12px;border-left:3px solid #a94442;background-color:#f2dede}.vitero_iframe{width:100%;height:100%;border:none;min-height:60em}.o_reminder_rule{padding:5px 0}.o_segments.btn-group a span{overflow:hidden;display:block;text-overflow:ellipsis}.o_segments_content{margin-top:20px}.o_segments.o_segments_linked .btn,.o_segments.o_segments_linked .btn:hover,.o_segments.o_segments_linked .btn:active,.o_segments.o_segments_linked .btn:focus{border:none;border-radius:0;box-shadow:none;background:none}.o_segments.o_segments_linked .btn-primary{color:#000;font-size:24px;background:none}.o_segments.o_segments_linked .btn-default,.o_segments.o_segments_linked .btn-default:hover,.o_segments.o_segments_linked .btn-default:active,.o_segments.o_segments_linked .btn-default:focus{color:#209d9e;background:none}.o_segments.o_segments_linked .o_segment_separator{color:#000}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d6001c}ul.o_assessment_docs{margin-bottom:0}ul.o_assessment_docs>li{margin-bottom:0.33em}ul.o_assessment_docs>li:last-child{margin-bottom:0em}.o_mail_message .o_mail_meta{background:#fafafa;border:1px solid #eee;padding:5px 10px}.o_mail_message .o_mail_meta h3{margin-top:0}.o_mail_message .o_mail_date,.o_mail_message .o_mail_from,.o_mail_message .o_mail_recipients{color:#777;font-size:90%}.o_mail_message .o_mail_date .o_label,.o_mail_message .o_mail_from .o_label,.o_mail_message .o_mail_recipients .o_label{font-weight:bold;margin-right:1em}.o_mail_message .o_mail_date .o_group span,.o_mail_message .o_mail_from .o_group span,.o_mail_message .o_mail_recipients .o_group span{font-weight:bold}.o_mail_message .o_mail_date .o_group span:after,.o_mail_message .o_mail_from .o_group span:after,.o_mail_message .o_mail_recipients .o_group span:after{content:':';margin-right:0.5em}.o_mail_message .o_mail_date i,.o_mail_message .o_mail_from i,.o_mail_message .o_mail_recipients i{margin-left:1em}.o_mail_message .o_mail_date ul.list-inline,.o_mail_message .o_mail_from ul.list-inline,.o_mail_message .o_mail_recipients ul.list-inline{display:inline}.o_mail_message .o_mail_date ul.list-inline li,.o_mail_message .o_mail_from ul.list-inline li,.o_mail_message .o_mail_recipients ul.list-inline li{padding-right:0;padding-left:0}.o_mail_message .o_more{margin-left:1em}.o_mail_message .o_showAllLink{float:right;font-size:80%}.progress .o_progress_marker{position:absolute;height:100%;top:0;width:3px;background:red}.progress .progress-bar{text-shadow:1px 1px 2px #000000}.o_progress_label_right{float:left;margin-right:10px}.o_web_content{padding-bottom:15px}.o_labeled_light,a.o_labeled_light,.o_labeled,a.o_labeled{display:inline-block;text-transform:uppercase;text-align:center;text-decoration:none;vertical-align:middle;font-size:75%;line-height:1;white-space:nowrap;border:1px solid;border-radius:3px;padding:2px 5px;background-color:#777;color:#fff;position:relative}.o_labeled_light,a.o_labeled_light{font-weight:bold;background-color:#f8f8f8}.o_ms_button{max-width:100%;width:100%;display:flex}.o_ms_button span:not(.o_ms_carret){text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.o_ms_button .o_ms_carret{margin:auto 0 auto auto}.o_ms_list{width:100%;height:auto;max-height:300px;overflow-x:hidden;top:unset}.o_disclaimer .o_disclaimer_content{max-height:50vh;overflow:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;background:#fbfbfb;padding:10px;border:1px solid #c2c2c2}.tt-input{width:400px}.tt-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fcfcfc;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.428571429}.tt-suggestion.tt-cursor,.tt-suggestion:hover{color:#fff;background-color:#209d9e}.tt-suggestion p{margin:0}.tt-menu div.o_icon_error:before{content:''}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_title h4 .o_icon-fw,.o_search_result_title .o_cal .fc-header-title h2 .o_icon-fw,.o_cal .fc-header-title .o_search_result_title h2 .o_icon-fw{text-align:left}.o_search_result_highlight{font-weight:bold;background-color:transparent}.o_search_result_context{display:inline-block;color:#3c763d;margin-right:1em}.o_search_result_license{display:inline-block;color:#777}.o_search_result_excerpt{color:#555}.o_search_result .o_opener{font-size:12px}.o_search_result .o_opener i{width:1em}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}.o_search_result_details .o_togglebox_wrapper .o_search_result_license i{font-size:20px}@media (max-width: 767px){.o_search_result_details{display:none}}.wizard{border:1px solid #d4d4d4;border-radius:2px;background-color:#f9f9f9;position:relative;overflow:hidden;margin-bottom:15px}.wizard ul{list-style:none outside none;padding:0;margin:0;width:4000px}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#2d2926;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #d4d4d4;border-right:0;display:block;position:absolute;right:-14px;top:0;z-index:1}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.active{background:#f1f6fc;color:#2d2926}.wizard ul li.active .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:first-child{border-radius:4px 0 0 4px;padding-left:20px}.o_process{position:relative;padding-left:25px}.o_process .o_step{position:relative;height:auto;padding-top:10px;padding-left:30px;padding-bottom:10px}.o_process .o_bar{position:absolute;top:10px;left:8px;height:100%;border-left:4px solid #777}.o_process .o_bar:after{position:absolute;top:0;left:-10px;height:16px;width:16px;border:4px solid #777;border-radius:16px;background:#fff;content:" "}.o_process .o_title{margin-top:-1px;color:#777 !important}.o_process .o_title:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;left:-24px}.o_process .o_title a:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";width:1em}.o_process .o_title a.collapsed:before{content:""}.o_process .o_step.o_active .o_bar,.o_process .o_step.o_active .o_bar:after{border-color:#209d9e}.o_process .o_step.o_active .o_title{color:#209d9e !important}.o_process .o_step.o_active .o_title:before{content:"";color:#209d9e}.o_process .o_step.o_done .o_bar,.o_process .o_step.o_done .o_bar:after{border-color:#29c7c8}.o_process .o_step.o_done .o_title{color:#29c7c8 !important}.o_process .o_step.o_done .o_title:before{content:"";color:#78be20}.o_process .o_meta{color:#777;font-size:12px;margin-top:-0.5em}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5D5D5D !important}.o_cal_class.o_cal_orange{border-left:20px solid #ffc266}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:#FFF !important}.o_cal_class.o_cal_green{border-left:20px solid #66c266}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:#FFF !important}.o_cal_class.o_cal_blue{border-left:20px solid #4d6e9f}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5D5D5D !important}.o_cal_class.o_cal_yellow{border-left:20px solid #ffe066}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:#FFF !important}.o_cal_class.o_cal_red{border-left:20px solid #c26666}.o_cal_rebeccapurple{background:#663399;border-color:#663399;color:#FFF}.o_cal_rebeccapurple .o_cal_wv_event_header{background:#663399}.o_cal_rebeccapurple a{color:#FFF !important}.o_cal_class.o_cal_rebeccapurple{border-left:20px solid #639}.o_cal_fuchsia{background:#FF00FF;border-color:#dd00dd;color:#FFF}.o_cal_fuchsia .o_cal_wv_event_header{background:#FF00FF}.o_cal_fuchsia a{color:#FFF !important}.o_cal_class.o_cal_fuchsia{border-left:20px solid #f0f}.o_cal_olive{background:#808000;border-color:#636300;color:#FFF}.o_cal_olive .o_cal_wv_event_header{background:#808000}.o_cal_olive a{color:#FFF !important}.o_cal_class.o_cal_olive{border-left:20px solid olive}.o_cal_navy{background:#000080;border-color:#000057;color:#FFF}.o_cal_navy .o_cal_wv_event_header{background:#000080}.o_cal_navy a{color:#FFF !important}.o_cal_class.o_cal_navy{border-left:20px solid navy}.o_cal_maroon{background:#800000;border-color:#740000;color:#FFF}.o_cal_maroon .o_cal_wv_event_header{background:#800000}.o_cal_maroon a{color:#FFF !important}.o_cal_class.o_cal_maroon{border-left:20px solid maroon}.o_cal_lime{background:#00FF00;border-color:#00e200;color:#004d00}.o_cal_lime .o_cal_wv_event_header{background:#00FF00}.o_cal_lime a{color:#004d00 !important}.o_cal_class.o_cal_lime{border-left:20px solid lime}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:#FFF !important}.o_cal_class.o_cal_grey{border-left:20px solid #DDDAAA}.o_sel_calendar_print_chooser{padding-right:4em}.o_cal_config_enabled,.o_cal_config_disabled{position:relative;float:left;display:inline}.o_cal_config_calendar{margin:0 5px;padding:1px 6px 1px 4px;position:relative;width:200px;overflow:hidden;float:left;display:inline}.o_cal_config_color{display:block;width:16px;height:16px;border-radius:8px}.o_cal_colorchooser_selected:before{content:""}#o_cal_colorchooser div{border:1px solid #209d9e;margin:5px;display:inline-block}#o_cal_colorchooser div:hover{border:1px solid #333}#o_cal_colorchooser a{width:20px;height:20px;display:inline-block}.o_cal_embedded_course_container .o_content_popup{top:0}.o_cal_wv_event_tooltip_content .o_cal_description{background-color:#f8f8f8;padding:10px 7px;margin:10px -7px}.o_cal_wv_event_tooltip_content .o_cal_tooltip_buttons{text-align:center;margin-top:20px}.o_cal_event_managed .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_not_managed .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_managed.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:" "}.o_cal_event_not_managed.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:" "}.fc-button{color:#333;background-color:#fcfcfc;border-color:#ccc}.fc-button:hover,.fc-button:focus,.fc-button.focus,.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{color:#333;background-color:#e3e3e3;border-color:#adadad}.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{background-image:none}.fc-button.disabled,.fc-button.disabled:hover,.fc-button.disabled:focus,.fc-button.disabled.focus,.fc-button.disabled:active,.fc-button.disabled.active,.fc-button[disabled],.fc-button[disabled]:hover,.fc-button[disabled]:focus,.fc-button[disabled].focus,.fc-button[disabled]:active,.fc-button[disabled].active,fieldset[disabled] .fc-button,fieldset[disabled] .fc-button:hover,fieldset[disabled] .fc-button:focus,fieldset[disabled] .fc-button.focus,fieldset[disabled] .fc-button:active,fieldset[disabled] .fc-button.active{background-color:#fcfcfc;border-color:#ccc}.fc-button .badge{color:#fcfcfc;background-color:#333}.fc-button.fc-state-default{text-shadow:none}.fc-button.fc-state-active{color:#fff;background-color:#209d9e;border-color:#1c8889}.fc-button.fc-state-active:hover,.fc-button.fc-state-active:focus,.fc-button.fc-state-active.focus,.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{background-image:none}.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#209d9e;border-color:#1c8889}.fc-button.fc-state-active .badge{color:#209d9e;background-color:#fff}.fc-listYear-button:before,.fc-listMonth-button:before,.fc-listWeek-button:before,.fc-listDay-button:before{content:"";margin-right:5px;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:80%;webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}table.fc-list-table .fc-list-item{background-color:white;color:#5D5D5D !important}table.fc-list-table .fc-list-item a,table.fc-list-table .fc-list-item span{color:#5D5D5D !important}body.o_cal_print fieldset{border:none;margin-bottom:2em}body.o_cal_print legend{font-size:2em;font-weight:bold}body.o_cal_print legend span{display:block;font-size:14px;font-weight:normal}body.o_cal_print ul.o_cal_wv_list{list-style-type:none;padding:0}body.o_cal_print ul.o_cal_wv_list>li{page-break-inside:avoid;margin-bottom:2em}body.o_cal_print ul.o_cal_wv_list .o_cal_date{font-size:1.25em;font-weight:bold;padding:0.5em 0 0.5em 0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events{list-style-type:none;padding:0.5em 0 0 0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event{position:relative;left:30px;page-break-inside:avoid;clear:both;margin-bottom:1.5em;padding-right:30px}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_time{float:left;font-weight:bold;margin-right:1em}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_subject{font-weight:bold}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_subject p{margin:0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_location,body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_description,body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_freebusy{clear:both}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_freebusy{font-style:italic}body.o_cal_print .o_cal_class{position:absolute;left:-30px;width:20px}body.o_cal_print #o_cal_config legend{font-size:1.25em}body.o_cal_print #o_cal_config .o_cal_config_calendar{margin:0;padding:0}body.o_cal_print #o_cal_config .o_cal_config_calendar{position:relative;left:30px;float:none;padding-right:30px}.o_page_content_editor .o_toolbar{border:none}.o_page_content_editor .o_page_part,.gu-mirror{border:2px solid transparent}.o_page_content_editor .o_page_part:hover,.gu-mirror:hover{border:2px dotted #209d9e}.o_page_fragment_edit{position:relative;display:grid}.o_page_fragment_edit .o_page_tools_above{height:25px;width:100%;background:#209d9e;position:absolute;z-index:3;left:0;top:-25px;box-shadow:3px -8px 10px 0px rgba(0,0,0,0.2)}.o_page_fragment_edit .o_page_tools_above .o_page_add_above{position:absolute;left:0;right:0;margin-left:auto;margin-right:auto;width:26px;top:-19px;height:19px;background-color:#209d9e;border-radius:10px 10px 0 0}.o_page_fragment_edit .o_page_tools_above .o_page_add_above .o_icon{color:#fff;background-color:#209d9e}.o_page_fragment_edit .o_page_tools_above .o_sel_add_element_above{display:inline-block;padding:3px 5px 0 7px}.o_page_fragment_edit .o_page_tools_above .o_page_others_above{padding-right:25px;line-height:25px;vertical-align:middle}.o_page_fragment_edit .o_page_tools_above .o_page_others_above .o_page_type{display:none}.o_page_fragment_edit .o_page_tools_above .o_page_others_above a{float:right;color:#fff;padding-right:1em}.o_page_fragment_edit .o_page_tools_above .o_page_others_above a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_tools_dd{position:absolute;z-index:4;top:0;right:0;width:25px;height:100%;background:#209d9e}.o_page_fragment_edit .o_page_tools_dd:before{content:' ';width:25px;height:100%;position:absolute;left:0;top:0;border:3px #209d9e solid;border-bottom:28px #209d9e solid;background-image:-webkit-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:-moz-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:-ms-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);-webkit-background-size:3px 3px;-moz-background-size:3px 3px;background-size:3px 3px}.o_page_fragment_edit .o_page_tools_dd a{position:absolute;display:inline-block;width:25px;height:25px;line-height:25px;text-align:center;vertical-align:middle;background:#209d9e;color:#fff}.o_page_fragment_edit .o_page_tools_dd a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_tools_dd a.o_disabled{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_tools_dd a.o_disabled:hover{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_tools_dd a.o_sel_move_up_element{z-index:4;top:-25px}.o_page_fragment_edit .o_page_tools_dd a.o_sel_move_down_element{bottom:0}.o_page_fragment_edit .o_page_part.o_page_edit{padding-right:23px;border:2px solid #209d9e;box-shadow:5px 5px 10px 0px rgba(0,0,0,0.2)}.o_page_fragment_edit .o_page_part.o_page_edit:hover{border:2px solid #209d9e}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar{position:absolute;z-index:5;left:5px;top:-25px;display:inline-block;height:25px;line-height:25px;vertical-align:middle}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a{color:#fff}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a.o_disabled{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a.o_disabled:hover{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_title .o_page_edit_toolbar li{font-weight:bold}.o_page_fragment_edit .o_page_part.o_page_edit .o_richtext_mce textarea{border:0}.o_page_fragment_edit .o_page_add_below{position:absolute;z-index:3;position:absolute;z-index:3;left:0;right:0;margin-left:auto;margin-right:auto;width:26px;bottom:-20px;height:22px;background-color:#209d9e;border-radius:0 0 10px 10px}.o_page_fragment_edit .o_page_add_below .o_icon{color:#fff;background-color:#209d9e}.o_page_fragment_edit .o_page_add_below .o_sel_add_element_below{display:inline-block;padding:0 5px 5px 5px;margin:0px 0px 0px 2px}.o_page_fragment_edit.gu-mirror .o_page_add_below,.o_page_fragment_edit.gu-mirror .o_page_add_above,.o_page_fragment_edit.gu-transit .o_page_add_below,.o_page_fragment_edit.gu-transit .o_page_add_above{display:none}.o_page_container_slot.col-md-3 .o_page_others_above a span,.o_page_container_slot.col-md-4 .o_page_others_above a span{display:none}.o_page_container_slot.col-md-3 .o_page_edit_toolbar ul>li,.o_page_container_slot.col-md-4 .o_page_edit_toolbar ul>li{padding-right:0}div.o_page_content_editor .gu-mirror,.o_page_content_editor .gu-transit{box-shadow:none}.o_page_container{box-sizing:border-box;padding:10px}.o_page_container{background-color:transparent}.o_page_container .o_page_container{background-color:transparent}.o_page_container .o_page_container .o_page_container{background-color:transparent}.o_page_container_slot{box-sizing:border-box;margin:0 -1px -1px 0;padding:10px}.o_page_container .o_page_container_slot{border:2px dotted #eee}.o_page_container:hover .o_page_container_slot{border:2px dotted #ef00ef}.o_page_add_in_container_grp{margin-bottom:0}.gu-transit{border:2px dotted #e80c96;opacity:0.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40)}.gu-mirror{border:2px dotted #209d9e;opacity:0.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80)}.o_page_add_callout a span{display:none}.o_page_add_callout ul.list-inline{margin-bottom:0}.o_page_table_edition .o_table_title,.o_page_table_edition .o_table_caption{padding:5px}.o_page_with_side_options_wrapper{display:flex;align-items:stretch;flex-direction:row}.o_page_side_options_target{background-color:#f9f9f9;flex-grow:4}.o_page_side_options{flex-grow:0;background-color:#209d9e;border-left:1px solid #b9b9b9;border-bottom:1px solid #b9b9b9;padding:5px;z-index:2}@media (max-width: 767px){.o_page_with_side_options_wrapper{flex-direction:column-reverse}}.o_page_content .o_image,.o_page_content .o_video,.o_page_content_editor .o_image,.o_page_content_editor .o_video{width:100%}.o_page_content .o_image img,.o_page_content .o_video img,.o_page_content_editor .o_image img,.o_page_content_editor .o_video img{border:1px #f8f8f8 solid;border-radius:10px}.o_page_content .o_image .o_artefact_metadata,.o_page_content .o_video .o_artefact_metadata,.o_page_content_editor .o_image .o_artefact_metadata,.o_page_content_editor .o_video .o_artefact_metadata{text-align:left}.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left{float:left}.o_page_content .o_image.o_image_align_left+.o_image_clear,.o_page_content .o_video.o_image_align_left+.o_image_clear,.o_page_content_editor .o_image.o_image_align_left+.o_image_clear,.o_page_content_editor .o_video.o_image_align_left+.o_image_clear{clear:both}.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right{float:right}.o_page_content .o_image.o_image_align_right+.o_image_clear,.o_page_content .o_video.o_image_align_right+.o_image_clear,.o_page_content_editor .o_image.o_image_align_right+.o_image_clear,.o_page_content_editor .o_video.o_image_align_right+.o_image_clear{clear:both}.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle{clear:both;margin-left:50%;text-align:center;transform:translate(-50%, 0%)}.o_page_content .o_image.o_image_align_leftfloat,.o_page_content .o_video.o_image_align_leftfloat,.o_page_content_editor .o_image.o_image_align_leftfloat,.o_page_content_editor .o_video.o_image_align_leftfloat{float:left;padding-right:10px;padding-bottom:10px}.o_page_content .o_image.o_image_align_rightfloat,.o_page_content .o_video.o_image_align_rightfloat,.o_page_content_editor .o_image.o_image_align_rightfloat,.o_page_content_editor .o_video.o_image_align_rightfloat{float:right;padding-left:10px;padding-bottom:10px}.o_page_content .o_image.o_image_size_style_small,.o_page_content .o_video.o_image_size_style_small,.o_page_content_editor .o_image.o_image_size_style_small,.o_page_content_editor .o_video.o_image_size_style_small{width:25%}.o_page_content .o_image.o_image_size_style_small img,.o_page_content .o_video.o_image_size_style_small img,.o_page_content_editor .o_image.o_image_size_style_small img,.o_page_content_editor .o_video.o_image_size_style_small img{width:100%}.o_page_content .o_image.o_image_size_style_medium,.o_page_content .o_video.o_image_size_style_medium,.o_page_content_editor .o_image.o_image_size_style_medium,.o_page_content_editor .o_video.o_image_size_style_medium{width:40%}.o_page_content .o_image.o_image_size_style_medium img,.o_page_content .o_video.o_image_size_style_medium img,.o_page_content_editor .o_image.o_image_size_style_medium img,.o_page_content_editor .o_video.o_image_size_style_medium img{width:100%}.o_page_content .o_image.o_image_size_style_large,.o_page_content .o_video.o_image_size_style_large,.o_page_content_editor .o_image.o_image_size_style_large,.o_page_content_editor .o_video.o_image_size_style_large{width:60%}.o_page_content .o_image.o_image_size_style_large img,.o_page_content .o_video.o_image_size_style_large img,.o_page_content_editor .o_image.o_image_size_style_large img,.o_page_content_editor .o_video.o_image_size_style_large img{width:100%}.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill{width:100%;float:none !important;display:block}.o_page_content .o_image.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content .o_video.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content_editor .o_image.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content_editor .o_video.o_image_size_style_fill .o_figure_caption_bottom{display:block}.o_page_content .o_image.o_image_size_style_fill img,.o_page_content .o_video.o_image_size_style_fill img,.o_page_content_editor .o_image.o_image_size_style_fill img,.o_page_content_editor .o_video.o_image_size_style_fill img{width:100%;display:block}.o_page_content .o_image img.o_image_classic,.o_page_content .o_video img.o_image_classic,.o_page_content_editor .o_image img.o_image_classic,.o_page_content_editor .o_video img.o_image_classic{padding:0;border:0;border-radius:0}.o_page_content .o_image img.o_image_border,.o_page_content .o_video img.o_image_border,.o_page_content_editor .o_image img.o_image_border,.o_page_content_editor .o_video img.o_image_border{padding:3px;border:solid 1px #CCC}.o_page_content .o_image img.o_image_shadow,.o_page_content .o_video img.o_image_shadow,.o_page_content_editor .o_image img.o_image_shadow,.o_page_content_editor .o_video img.o_image_shadow{padding:0;border:0;-moz-box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);-webkit-box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.o_page_content .o_image img.o_image_frame,.o_page_content .o_video img.o_image_frame,.o_page_content_editor .o_image img.o_image_frame,.o_page_content_editor .o_video img.o_image_frame{padding:0;border:0;border-radius:0;-moz-box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);-webkit-box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);margin:15px}.o_page_content .o_image img.o_image_polaroid,.o_page_content .o_video img.o_image_polaroid,.o_page_content_editor .o_image img.o_image_polaroid,.o_page_content_editor .o_video img.o_image_polaroid{padding:0;border-radius:0;border:1px solid #dcdcdc;background:#fff;padding:10px 10px 45px 10px;-webkit-box-shadow:3px 3px 3px rgba(0,0,0,0.2);-moz-box-shadow:3px 3px 3px rgba(0,0,0,0.2);box-shadow:3px 3px 3px rgba(0,0,0,0.2)}.o_page_content .o_image img.o_image_round,.o_page_content .o_video img.o_image_round,.o_page_content_editor .o_image img.o_image_round,.o_page_content_editor .o_video img.o_image_round{padding:3px;border:solid 1px #CCC;border-radius:50%}.o_page_content .o_image .o_image_title_dark,.o_page_content .o_video .o_image_title_dark,.o_page_content_editor .o_image .o_image_title_dark,.o_page_content_editor .o_video .o_image_title_dark{color:#000}.o_page_content .o_image .o_image_title_bright,.o_page_content .o_video .o_image_title_bright,.o_page_content_editor .o_image .o_image_title_bright,.o_page_content_editor .o_video .o_image_title_bright{color:#f9f9f9}.o_page_content .o_image .o_image_title,.o_page_content .o_video .o_image_title,.o_page_content_editor .o_image .o_image_title,.o_page_content_editor .o_video .o_image_title{position:relative}.o_page_content .o_image .o_image_title .o_image_title_top,.o_page_content .o_image .o_image_title .o_image_title_centered,.o_page_content .o_image .o_image_title .o_image_title_bottom,.o_page_content .o_video .o_image_title .o_image_title_top,.o_page_content .o_video .o_image_title .o_image_title_centered,.o_page_content .o_video .o_image_title .o_image_title_bottom,.o_page_content_editor .o_image .o_image_title .o_image_title_top,.o_page_content_editor .o_image .o_image_title .o_image_title_centered,.o_page_content_editor .o_image .o_image_title .o_image_title_bottom,.o_page_content_editor .o_video .o_image_title .o_image_title_top,.o_page_content_editor .o_video .o_image_title .o_image_title_centered,.o_page_content_editor .o_video .o_image_title .o_image_title_bottom{position:absolute;left:50%;margin-right:-50%;transform:translate(-50%, -50%)}.o_page_content .o_image .o_image_title .o_image_title_top,.o_page_content .o_video .o_image_title .o_image_title_top,.o_page_content_editor .o_image .o_image_title .o_image_title_top,.o_page_content_editor .o_video .o_image_title .o_image_title_top{top:10%}.o_page_content .o_image .o_image_title .o_image_title_centered,.o_page_content .o_video .o_image_title .o_image_title_centered,.o_page_content_editor .o_image .o_image_title .o_image_title_centered,.o_page_content_editor .o_video .o_image_title .o_image_title_centered{top:50%}.o_page_content .o_image .o_image_title .o_image_title_bottom,.o_page_content .o_video .o_image_title .o_image_title_bottom,.o_page_content_editor .o_image .o_image_title .o_image_title_bottom,.o_page_content_editor .o_video .o_image_title .o_image_title_bottom{bottom:10%}.o_page_content .o_image.o_image_size_style_none .o_image_title_top,.o_page_content .o_image.o_image_size_style_none .o_image_title_centered,.o_page_content .o_image.o_image_size_style_none .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_none .o_image_title_top,.o_page_content .o_video.o_image_size_style_none .o_image_title_centered,.o_page_content .o_video.o_image_size_style_none .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_bottom{font-size:24px}.o_page_content .o_image.o_image_size_style_small .o_image_title_top,.o_page_content .o_image.o_image_size_style_small .o_image_title_centered,.o_page_content .o_image.o_image_size_style_small .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_small .o_image_title_top,.o_page_content .o_video.o_image_size_style_small .o_image_title_centered,.o_page_content .o_video.o_image_size_style_small .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_bottom{font-size:18px}.o_page_content .o_image.o_image_size_style_medium .o_image_title_top,.o_page_content .o_image.o_image_size_style_medium .o_image_title_centered,.o_page_content .o_image.o_image_size_style_medium .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_medium .o_image_title_top,.o_page_content .o_video.o_image_size_style_medium .o_image_title_centered,.o_page_content .o_video.o_image_size_style_medium .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_bottom{font-size:32px}.o_page_content .o_image.o_image_size_style_large .o_image_title_top,.o_page_content .o_image.o_image_size_style_large .o_image_title_centered,.o_page_content .o_image.o_image_size_style_large .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_large .o_image_title_top,.o_page_content .o_video.o_image_size_style_large .o_image_title_centered,.o_page_content .o_video.o_image_size_style_large .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_bottom{font-size:40px}.o_page_content .o_image.o_image_size_style_fill .o_image_title_top,.o_page_content .o_image.o_image_size_style_fill .o_image_title_centered,.o_page_content .o_image.o_image_size_style_fill .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_fill .o_image_title_top,.o_page_content .o_video.o_image_size_style_fill .o_image_title_centered,.o_page_content .o_video.o_image_size_style_fill .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_bottom{font-size:56px}.o_page_add_contents{clear:both;margin-top:30px}.o_ce_html_raw.o_html_col2,.o_ce_html_paragraph.o_html_col2{column-count:2;column-gap:1em}.o_ce_html_raw.o_html_col3,.o_ce_html_paragraph.o_html_col3{column-count:3;column-gap:1em}.o_ce_html_raw.o_html_col4,.o_ce_html_paragraph.o_html_col4{column-count:4;column-gap:1em}table.o_ce_table caption{caption-side:bottom}.o_ce_add_main_btns{margin-top:2em}.o_ce_add{border:none;margin-bottom:0px}.o_ce_add .o_ce_tools{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.o_ce_add .o_ce_tools .o_ce_tool{padding:0px;margin:0px;width:33%}.o_ce_add .o_ce_tools .o_ce_tool a{padding:6px 3px;margin:0px;display:block;width:100%;height:100%}.o_ce_add .o_ce_tools .o_ce_tool a:hover{padding:5px 2px;border:1px solid #e7e7e7;border-radius:4px}.o_ce_add_list .o_ce_add_list_item{border-style:none;padding:0px;margin:0px -15px}.o_ce_add_list .o_ce_add_list_item a{padding:5px 25px;margin:0px;display:block;width:100%;height:100%}.o_ce_add_list .o_ce_add_list_item a:hover{text-decoration:none;background-color:#f5f5f5}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #ccc;border-radius:4px;background:#fcfcfc;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{box-sizing:content-box;border-top-left-radius:4px;border-bottom-left-radius:4px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual .o_visual_not_available{background-color:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #ccc;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#a6a6a6}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0;border-bottom-right-radius:4px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#209d9e;border-color:#1c8889}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#209d9e;border-color:#1c8889}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#209d9e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#209d9e;border-color:#1c8889}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#209d9e;border-color:#1c8889}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#209d9e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#a6a6a6;border-color:#999}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#8d8d8d;border-color:#7b7b7b}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#a6a6a6;border-color:#999}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#a6a6a6;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;background:#fcfcfc;border-left:1px solid #ccc;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#342c24}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#16130f}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:normal;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d;background:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;z-index:2px;background:#fcfcfc;padding:0 3px 3px 3px;border-radius:0px 0px 3px 3px;font-size:90%;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em;background:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#209d9e;border-top-right-radius:4px;border-bottom-right-radius:4px}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac ul{display:inline-block}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#342c24}.o_catalog .o_level .o_meta .o_title a:hover{color:#16130f}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #ccc;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #ccc;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em;overflow:hidden}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels_list .o_sublevel.o_fill_sublevels{border:1px solid transparent}.o_catalog .o_sublevels_list .o_sublevel.o_fill_sublevels .o_meta{border-left:1px solid transparent}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #ccc;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #ccc;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#342c24;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#16130f}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}.o_repo_details{position:relative}.o_repo_details .o_lead{margin-bottom:10px}.o_repo_details .o_lead .o_author{margin-top:0.5em;margin-bottom:1em;font-size:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_repo_details .o_lead .o_media{float:right;margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead .o_media.o_desc_empty{float:none;margin-left:0;margin-bottom:0}.o_repo_details .o_lead h1{font-size:37px}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start_wrapper{clear:both;margin:2em 0 -10px 0;text-align:right}.o_repo_details .o_start_wrapper .o_start_inner{display:inline-block}.o_repo_details .o_start,.o_repo_details .o_book{max-width:400px;display:inline-block}.o_repo_details .o_social:before,.o_repo_details .o_social:after{content:" ";display:table}.o_repo_details .o_social:after{clear:both}.o_repo_details .o_social .o_rating_wrapper{float:left}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-left:0;float:none;text-align:center}.o_repo_details .o_start_wrapper{text-align:center}.o_repo_details .o_start_wrapper .o_start_inner{display:block}.o_repo_details .o_start,.o_repo_details .o_book{max-width:100%;display:block}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}}.o_meta .o_closed{padding:2px 5px;margin:5px 0}.o_overview .o_closed{padding:12px 15px;margin:15px 0}.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.o_ac_configuration div.o_ac_method{background-color:#efefef;padding:5px;border-radius:3px}.o_ac_configuration div.o_ac_methods.form-group{padding-bottom:0;margin-bottom:0}.o_repo_with_explanation{padding-bottom:0;margin-bottom:0}.o_repo_explanation{color:#f2af40}tr.o_entry_closed,tr.o_entry_closed td,tr.o_entry_closed td span,tr.o_entry_unpublished,tr.o_entry_unpublished td,tr.o_entry_unpublished td span{text-decoration:line-through}a.o_repo_tools_status{cursor:pointer;margin:0 2px 2px 2px;text-align:left}.o_labeled.o_repo_status_preparation,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_preparation{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_labeled.o_repo_status_review,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_review{background-color:#FCCA46;border-color:#FCCA46;color:#fff}.o_labeled.o_repo_status_coachpublished,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_coachpublished{background-color:#1DC63F;border-color:#1DC63F;color:#fff}.o_labeled.o_repo_status_published,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_published{background-color:#14892c;border-color:#14892c;color:#fff}.o_labeled.o_repo_status_closed,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_closed{background-color:#99583D;border-color:#99583D;color:#fff}.o_labeled.o_repo_status_trash,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_trash{background-color:#5A5958;border-color:#5A5958;color:#fff}.o_labeled.o_repo_status_deleted,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_deleted{background-color:#888;border-color:#888;color:#fff}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_preparation{background-color:#384e64}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_review{background-color:#fbbc14}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_coachpublished{background-color:#169a31}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_published{background-color:#0e5c1e}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_closed{background-color:#75432e}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_trash{background-color:#40403f}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_deleted{background-color:#6f6f6f}.o_labeled_light.o_repo_status_preparation,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_preparation{border-color:#4a6785;color:#4a6785}.o_labeled_light.o_repo_status_review,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_review{border-color:#FCCA46;color:#FCCA46}.o_labeled_light.o_repo_status_coachpublished,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_coachpublished{border-color:#1DC63F;color:#1DC63F}.o_labeled_light.o_repo_status_published,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_published{border-color:#14892c;color:#14892c}.o_labeled_light.o_repo_status_closed,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_closed{border-color:#99583D;color:#99583D}.o_labeled_light.o_repo_status_trash,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_trash{border-color:#5A5958;color:#5A5958}.o_labeled_light.o_repo_status_deleted,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_deleted{border-color:#888;color:#888}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#2d2926}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#2d2926}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#2d2926}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run .o_in_review{font-style:italic;position:relative}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_course_run .o_cal_toptoolbar{margin-right:26px}.o_course_run .o_titled_wrapper .o_cal_toptoolbar{margin-right:0px}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_ll_container h5{margin-bottom:5px}.o_ll_container h5 a.o_desc{color:#342c24}.o_ll_container h5 a.o_desc small{display:none}.o_ll_container h5 a.o_desc:hover{color:#16130f;text-decoration:none}.o_ll_container h5 a.o_desc:hover small{color:#5e5e5e;display:inline}.o_ll_container div.o_comment{color:#777}.o_cmembers .o_cmember{margin:12px 0;display:table}.o_cmembers .o_cmember .o_portrait{padding-right:10px;display:table-cell;vertical-align:top;min-width:60px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{display:table-cell;vertical-align:middle;color:#777}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}.o_cmembers .o_cmember .o_curriculum_displayname,.o_cmembers .o_cmember .o_curriculum_root_el_identifier,.o_cmembers .o_cmember .o_curriculum_root_el_displayname{font-size:12px}.o_cmembers .o_cmember a.o_mail{display:none}.o_cmembers .o_cmember:hover a.o_mail{display:inline}.o_cmembers_print{color:#000}.o_cmembers_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_cmembers_print #o_print_brand img{width:100%}.o_cmembers_print .o_portrait{width:100px;height:100px;position:relative}.o_cmembers_print .o_portrait img{border-radius:0px;max-width:100%;max-height:100%;width:auto;height:auto;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.o_cmembers_print .o_cmember{padding-left:0px;padding-right:15px;margin-bottom:20px}.o_cmembers_print .o_cmember .o_cmember_info_wrapper{word-wrap:break-word}.o_cmembers_print .o_cmember .o_prop.o_zipCode{float:left;padding-right:0.5em}.o_cmembers_print h1{font-size:18pt;color:#000}.o_cmembers_print h3{font-size:14pt;margin-top:5px;font-weight:normal;color:#000}.o_cmembers_print h4,.o_cmembers_print .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_cmembers_print h2{font-size:11pt;font-weight:strong;color:#000;padding-bottom:10px;border-bottom:1px solid #eee}.o_cmembers_print .o_cmember_info_wrapper{font-size:7pt;color:#000}.o_cmembers_print .o_cmember_info_wrapper strong{font-size:8pt}.tag.label.label-info{margin-right:3px}.input-group.o_tag_inputgroup .form-control{height:auto}div.o_correction_navigation .o_correction_navigation_back{float:left;line-height:32px}div.o_correction_navigation .o_correction_navigation_previous{position:absolute;right:50%;margin-right:102px}div.o_correction_navigation #o_cocurrent_item_SELBOX{width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute;left:50%;margin-left:-100px}div.o_correction_navigation .o_correction_navigation_next{position:absolute;left:50%;margin-left:102px}@media (max-width: 767px){div.o_correction_navigation .o_correction_navigation_previous span,div.o_correction_navigation .o_correction_navigation_next span{display:none}}.o_ms_stack_panel .o_toolbar{margin-top:0px}.o_ms_bold{font-weight:bold}.o_ms_legend{padding:5px}.o_ms_legend li{display:block;font-size:90%}.o_ms_legend .ident{font-weight:bold}.o_curriculum_el_listing tr.o_curriculum_element_inactive,.o_curriculum_el_listing tr.o_curriculum_element_inactive td,.o_curriculum_el_listing tr.o_curriculum_element_inactive td span,.o_curriculum_el_listing tr.o_curriculum_element_inactive td a{color:#777}.o_curriculum_el_listing tr.o_curriculum_element_unfiltered,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td span,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td a{color:#aaa}.o_curriculum_el_listing tr.o_curriculum_element_deleted,.o_curriculum_el_listing tr.o_curriculum_element_deleted td,.o_curriculum_el_listing tr.o_curriculum_element_deleted td span,.o_curriculum_el_listing tr.o_curriculum_element_deleted td a{color:#777;text-decoration:line-through}.o_curriculumtable tr.o_curriculum_element_l0 td:nth-thild(first){padding-left:0px}.o_curriculumtable tr.o_curriculum_element_l1 td:nth-thild(first){padding-left:15px}.o_curriculumtable tr.o_curriculum_element_l2 td:nth-thild(first){padding-left:30px}.o_curriculumtable tr.o_curriculum_element_l3 td:nth-thild(first){padding-left:45px}.o_curriculumtable tr.o_curriculum_element_l4 td:nth-thild(first){padding-left:60px}.o_curriculumtable tr.o_curriculum_element_l5 td:nth-thild(first){padding-left:75px}.o_curriculumtable tr.o_curriculum_element_l6 td:nth-thild(first){padding-left:90px}.o_curriculumtable tr.o_curriculum_element_l7 td:nth-thild(first){padding-left:105px}.o_curriculumtable tr.o_curriculum_element_l8 td:nth-thild(first){padding-left:120px}.o_curriculumtable tr.o_curriculum_element_l9 td:nth-thild(first){padding-left:135px}.o_curriculumtable tr.o_curriculum_element_l10 td:nth-thild(first){padding-left:150px}.o_curriculumtable tr.o_curriculum_element_l11 td:nth-thild(first){padding-left:165px}.o_curriculumtable tr.o_curriculum_element_inactive,.o_curriculumtable tr.o_curriculum_element_inactive td,.o_curriculumtable tr.o_curriculum_element_inactive td span{color:#777}.o_curriculumtable tr.o_curriculum_element_deleted,.o_curriculumtable tr.o_curriculum_element_deleted td,.o_curriculumtable tr.o_curriculum_element_deleted td span{color:#777;text-decoration:line-through}.o_curriculumtable.o_rendertype_custom .container-fluid{padding-left:0;padding-right:0}.o_curriculumtable.o_rendertype_custom .o_table_row{position:relative;vertical-align:top;margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row:before,.o_curriculumtable.o_rendertype_custom .o_table_row:after{content:" ";display:table}.o_curriculumtable.o_rendertype_custom .o_table_row:after{clear:both}.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{background:none;border:none;position:relative}.o_curriculumtable.o_rendertype_custom .o_table_row .o_ext_id{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_hierarchy_info{display:none;position:absolute;top:0;right:30px;font-size:70%;z-index:5;background:gold}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_title{margin-top:0;margin-bottom:0;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_title small{white-space:nowrap}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars{padding-left:6px;color:#777}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle.o_active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars.o_active{color:#3c763d}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle.o_active:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars.o_active:hover{color:#2b542c}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_desc{padding:6px 6px 16px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_empty{font-style:italic;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{position:relative;padding-left:132px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:50px;padding-left:87px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_visual{left:0;border:none;background-color:#fff;max-height:80px;max-width:120px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_author,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_location,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_lifecycle{color:#3c763d}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state{position:absolute;right:0;bottom:30px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_failed{font-weight:normal}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_state,.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_score{display:inline-block}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_state+.o_score:before{content:', '}.o_curriculumtable.o_rendertype_custom .o_table_row .o_bookmark{position:absolute;top:-1px;right:2px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access{position:absolute;bottom:0;right:0;overflow:hidden;width:180px;height:30px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start{right:0;color:#fff;background-color:#209d9e;border-color:#1c8889}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#209d9e;border-color:#1c8889}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#209d9e;background-color:#fff}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#a6a6a6;border-color:#999}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#8d8d8d;border-color:#7b7b7b}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#a6a6a6;border-color:#999}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#a6a6a6;background-color:#fff}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_author,.o_curriculumtable.o_rendertype_custom .o_table_row .o_bookmark,.o_curriculumtable.o_rendertype_custom .o_table_row .o_lifecycle,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_desc,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_desc,.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state,.o_curriculumtable.o_rendertype_custom .o_table_row .o_details{display:none}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_row_inner_wrapper{background:#f6f6f6;border:1px solid #eee}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_element_title{background:transparent;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_element_title{background:#ebebeb;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry{display:inline-block;width:50%;border-right:12px solid transparent;margin-top:0 !important}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry_title{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_row_inner_wrapper{background:#f6f6f6;border:1px solid #eee}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_element_title{background:transparent;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_element_title{background:#ebebeb;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_calendars{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{background:#f6f6f6;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{background:none;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_entry{min-height:50px}}@media print{.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state{position:relative;bottom:0}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access{display:none}}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}td.o_qti_item_kprim_text{width:80%}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#78be20}.d3chart .bar_red{fill:#d6001c}.d3chart .bar_grey{fill:lightgrey}.d3chart circle.bubble_green{fill:#78be20}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0;vertical-align:bottom}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:""}.o_qti_menu_item_attempts_marked:after{content:"";color:#209d9e}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}ul.sessionControl{list-style:none;margin:1em;text-align:center}ul.sessionControl li{display:inline;padding:0.2em}.association{margin:20px 20px 20px 40px;background:transparent url("../light/images/association_bg.png") repeat-x center center}.o_associate_item{padding:5px;margin:0 15px 10px 0;border:2px solid #999}.o_associate_item.oo-selected{border:2px solid #209d9e}.o_associate_item.oo-choosed{border:none !important}.o_associate_item.oo-drag{border:2px solid #209d9e !important}.association_box{border:3px dotted #999}.association_box.oo-filled{border:3px solid #999}.association_box{background-color:white}.prompt{font-weight:bold}.sketch{position:relative;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}#tmp_canvas{position:absolute;left:0px;right:0;bottom:0;top:0;cursor:crosshair;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}#colors .black .o_icon:before{color:#000000}#colors .blue .o_icon:before{color:#0000FF}#colors .green .o_icon:before{color:#008000}#colors .yellow .o_icon:before{color:#FFFF00}#colors .red .o_icon:before{color:#FF0000}#colors .purple .o_icon:before{color:#800080}.o_gap_item{padding:5px;margin:5px;background-repeat:no-repeat;background-position:center center}.o_gap_item.oo-choosed{position:relative;left:auto;top:auto;padding:3px;margin:0}.o_gap_item.oo-selected{border:3px solid #209d9e}.o_item_container_help,.o_items_container_help{font-size:90%;font-style:italic;color:#777;padding:5px}.items_container{padding:15px}.items_container .o_item{float:left}#o_qti_hotspots_edit{min-height:100px;min-width:400px;background-repeat:no-repeat}#o_qti_hotspots_edit.o_qti_hotspot-standard .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-standard .o_draw_rectangle{background-color:rgba(255,255,255,0.5);border-color:#6E6E6E}#o_qti_hotspots_edit.o_qti_hotspot-standard .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-standard .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(45,0,255,0.5);border-color:#0000ff}#o_qti_hotspots_edit.o_qti_hotspot-light .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-light .o_draw_rectangle{background-color:rgba(221,221,221,0);border-color:#7E7E7E}#o_qti_hotspots_edit.o_qti_hotspot-light .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-light .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(51,122,183,0.05);border-color:#337ab7}#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_draw_rectangle{background-color:rgba(110,110,110,0.5);border-color:#3E3E3E}#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(222,222,222,0.2);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-green .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-green .o_draw_rectangle{background-color:rgba(142,142,142,0.25);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-green .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-green .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(134,195,81,0.5);border-color:#518b33}#o_qti_hotspots_edit.o_qti_hotspot-purple .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-purple .o_draw_rectangle{background-color:rgba(142,142,142,0.33);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-purple .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-purple .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(234,168,255,0.5);border-color:#ab47cb}div.hotspotInteraction{overflow-x:auto}img.o_hotspot_responsive[usemap]{max-width:100%;width:auto;height:auto}.form-inline.o_qti_gaptext_add_first_alternative,.o_qti_gaptext_add_first_alternative.o_navbar-form{padding:9px 0 3px 0}.form-inline.o_qti_gaptext_add_alternative,.o_qti_gaptext_add_alternative.o_navbar-form{margin-bottom:3px}.o_qti_gaptext_alternatives{background-color:#eee;color:#555;border:1px solid #eee;border-radius:4px;padding:2px 5px}.o_qti_item_body .extendedTextInteraction{margin:15px 0}.o_qti_item_body .extendedTextInteraction textarea{resize:vertical !important;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_qti_item_body .extendedTextInteraction pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_qti_item_body .extendedTextInteraction .o_qti_essay_last_save{padding:2px 2px;font-style:italic;font-size:90%;text-align:right}.extendedTextInteraction div.form-control.textarea_disabled{white-space:pre-wrap;height:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;color:#555 !important}#o_qti_run_title{margin:0 15px 0.5em 15px}#o_qti_run_title h3{margin:15px 0 0 0}#o_qti_run_infos{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:10px 0;margin:0 15px 1em 15px}#o_qti_run_infos .progress{background-color:#eee}#o_qti_run_infos #o_qti_scoreinfo .progress-bar{background-color:#209d9e}.progress-striped #o_qti_run_infos #o_qti_scoreinfo .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}#o_qti_run_infos #o_qti_questioninfo .progress-bar{background-color:#209d9e}.progress-striped #o_qti_run_infos #o_qti_questioninfo .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}#o_qti_run_infos #o_qti_run_scoreinfo,#o_qti_run_infos #o_qti_run_scoreprogress{white-space:nowrap}#o_qti_results_infos{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:10px 0;margin:0 0 1em 0}#o_qti_results_infos .progress{background-color:#eee}#o_qti_results_infos #o_qti_run_scoreinfo,#o_qti_results_infos #o_qti_run_scoreprogress{white-space:nowrap}#o_qti_assessment_test_timer{border:1px solid #e7e7e7;border-radius:4px;padding:10px;margin:0 15px 1em 15px}#o_qti_assessment_test_timer.o_10_minutes{background-color:#fcf8e3}#o_qti_assessment_test_timer.o_5_minutes{background-color:#f2dede}#o_qti_assessment_test_timer.o_panic{background-color:#ce8383}#o_qti_assessment_test_timer.o_15_seconds{background-color:#fcf8e3}#o_qti_assessment_test_timer.o_panic{background-color:#f2dede}#o_qti_assessment_test_timer .o_qti_times_up{padding-left:2em;font-weight:bold}#o_qti_assessment_test_timer .o_qti_times_message{padding-left:2em;font-weight:bold}.o_draw_circle.o_qti_hotspot_correct,.o_draw_rectangle.o_qti_hotspot_correct{background-color:rgba(229,255,204,0.6)}#width_range_ui,#opacity_range_ui{width:120px}.o_slider_width_range,.o_slider_opacity_range{margin:3px 10px 0 0}.o_qti_hotspot_label{padding-left:48%}.o_assessmentsection_rubrics_wrapper{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:4px;padding:5px 10px;margin:0 0 0.5em 0}.o_assessmentsection_rubrics_correction_wrapper{background:#f8f8f8;border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;padding:5px 10px}.o_info.o_assessmentsection_rubrics{margin:5px -10px;position:relative;display:block}.o_info.o_assessmentsection_rubrics.o_hide{display:none}.o_info.o_assessmentsection_rubrics a.o_hide{position:absolute;bottom:0.5em;right:1em}.o_assessmentitem h1{margin-bottom:0}.o_assessmentitem div.badResponse,.o_assessmentitem span.badResponse{color:#d6001c;font-weight:bold}.o_assessmentitem input.badResponse{border:1px solid #d6001c}.o_assessmentitem .infoControl input{margin-right:0.5em}.o_assessmentitem .infoControl .infoControlContent{display:none}.o_assessmentitem .sliderInteraction{margin:1em}.o_assessmentitem .sliderInteraction .sliderVertical .sliderValue{margin:1em 0}.o_assessmentitem .sliderInteraction .sliderVertical .sliderWidget{height:200px}.o_assessmentitem .sliderInteraction .sliderHorizontal .sliderValue{text-align:center}.o_assessmentitem div.orderInteraction div.highlight{border:1px solid #d6001c}.o_assessmentitem div.orderInteraction div.box.vertical{width:50%;float:left;position:relative;padding:0;margin-top:5px}.o_assessmentitem div.orderInteraction div.box.vertical ul{min-height:200px}.o_assessmentitem div.orderInteraction div.box.horizontal ul{min-height:50px;width:100%}.o_assessmentitem div.orderInteraction div.box.source{padding:5px 10px;border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8}.o_assessmentitem div.orderInteraction div.box.source.horizontal{padding:5px 10px 15px 10px}.o_assessmentitem div.orderInteraction div.box.target ul{border:2px solid #a6a6a6;border-radius:4px;background:#d9edf7}.o_assessmentitem div.orderInteraction div.box.target ul.oo-accepted{border-color:#666}.o_assessmentitem div.orderInteraction div.box.target.vertical{padding:6px 0 0 10px}.o_assessmentitem div.orderInteraction div.box.target.vertical ul{padding:10px}.o_assessmentitem div.orderInteraction div.box.target.horizontal{padding-top:10px}.o_assessmentitem div.orderInteraction div.box.target.horizontal ul{padding:10px 10px 0 10px}.o_assessmentitem div.orderInteraction div.box.horizontal ul li{float:left;width:auto;margin-right:10px;min-width:50px}.o_assessmentitem div.orderInteraction div.box span.info{color:#666;font-style:italic;font-size:smaller}.o_assessmentitem div.orderInteraction ul{list-style-type:none;margin:0;padding:0}.o_assessmentitem .hottext{position:relative;margin:-2px 0.15em -2px 0.15em;white-space:nowrap}.o_assessmentitem .hottext input{margin:0 3px 0 2px;position:absolute;top:0.1em;left:0.05em}.o_assessmentitem .hottext input+label{display:inline;padding:0 0.1em 0 1.2em;background:#f8f8f8;border:1px solid #e7e7e7;border-radius:2px;color:#2d2926;font-weight:normal;white-space:normal}.o_assessmentitem .hottext input:checked+label{color:#2d2926;background:#d9edf7;border:1px solid #bce8f1}.o_assessmentitem .gap{font-weight:bold;border:1px dashed #000}.o_assessmentitem .textEntryInteraction input,.o_assessmentitem .textEntryInteraction span.o_input_value{margin:-1px 2px;line-height:90%;vertical-align:middle;font-size:13.72px;line-height:1.5;border:1px solid #999;background:#fff;padding:1px 1px;color:#2d2926;max-width:100%}.o_assessmentitem .textEntryInteraction input:valid,.o_assessmentitem .textEntryInteraction input:disabled,.o_assessmentitem .textEntryInteraction input.o_input_value_wrapper,.o_assessmentitem .textEntryInteraction span.o_input_value:valid,.o_assessmentitem .textEntryInteraction span.o_input_value:disabled,.o_assessmentitem .textEntryInteraction span.o_input_value.o_input_value_wrapper{color:#2d2926;-webkit-text-fill-color:#2d2926;background:#d9edf7;border:1px solid #bce8f1}li.o_assessmentitem_order_item{padding:10px;margin-bottom:10px;border:2px dashed #999;border-radius:4px;background-color:#ffffff;background:#fcf8e3;list-style-type:none}li.o_assessmentitem_order_item:before,li.o_assessmentitem_order_item:after{content:" ";display:table}li.o_assessmentitem_order_item:after{clear:both}body>li.o_assessmentitem_order_item{display:block}.o_assessmentitem_wrapper .itemTitle{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:4px 4px 0 0;margin-top:0;margin-bottom:0;padding:5px 10px;line-height:1.5em;position:relative}.o_assessmentitem_wrapper .itemTitle .o_qti_item_max_score{position:absolute;left:49%}.o_assessmentitem_wrapper .o_qti_item_body{min-height:200px;margin:0;padding:5px 10px;border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;font-size:14px;line-height:1.8}.o_assessmentitem_wrapper .o_assessment_item_not_final.o_warning{margin:0}.o_assessmentitem_wrapper .modalFeedback h4:first-of-type,.o_assessmentitem_wrapper .modalFeedback .o_cal .fc-header-title h2:first-of-type,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback h2:first-of-type{padding-left:10px;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper h4,.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper h2{border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;padding-bottom:5px;margin-bottom:0}.o_assessmentitem_wrapper ul.o_testpartnavigation,.o_qti_menu_buttonstyle ul.o_testpartnavigation{list-style:none;padding:0;margin:0}.o_assessmentitem_wrapper li.o_assessmentitem,.o_qti_menu_buttonstyle li.o_assessmentitem{margin-bottom:2px}.o_assessmentitem_wrapper .o_assessmentitem_status,.o_qti_menu_buttonstyle .o_assessmentitem_status{float:right;display:block;padding:0.3em;margin-left:1em;border-radius:0.3em;border-width:1px;font-size:0.8em;line-height:1.2em;color:#fff}.o_assessmentitem_wrapper .o_assessmentitem_status.ended,.o_qti_menu_buttonstyle .o_assessmentitem_status.ended{background-color:#a6a6a6}.o_assessmentitem_wrapper .o_assessmentitem_status.invalid,.o_qti_menu_buttonstyle .o_assessmentitem_status.invalid{background-color:#d6001c}.o_assessmentitem_wrapper .o_assessmentitem_status.answered,.o_qti_menu_buttonstyle .o_assessmentitem_status.answered{background-color:#78be20}.o_assessmentitem_wrapper .o_assessmentitem_status.notAnswered,.o_qti_menu_buttonstyle .o_assessmentitem_status.notAnswered{background-color:#f2af40}.o_assessmentitem_wrapper .o_assessmentitem_status.notPresented,.o_qti_menu_buttonstyle .o_assessmentitem_status.notPresented{background-color:#ddd}.o_assessmentitem_wrapper .o_assessmentitem_status.review,.o_qti_menu_buttonstyle .o_assessmentitem_status.review{background-color:#a6a6a6}.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotAllowed,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewInvalid,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotAnswered,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotSeen,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotAllowed,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewInvalid,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotAnswered,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotSeen{background-color:#a6a6a6;opacity:0.7}.o_assessmentitem_wrapper .o_assessmentitem_status i:before,.o_qti_menu_buttonstyle .o_assessmentitem_status i:before{color:#fff}.o_assessmentitem_controls{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:0 0 4px 4px;margin-top:0;margin-bottom:16px;padding:5px 10px}.o_assessmentitem_controls button,.o_assessmentitem_controls a{margin-bottom:0}.o_assessmentitem_controls .o_sel_assessment_item_submit span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_next_question span:after{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-left:0.5em}.o_assessmentitem_controls .o_sel_question_menu span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_end_testpart span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_back_test_feedback span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_show_solution span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_solution_hide span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_skip_question span:before,.o_assessmentitem_controls .o_sel_back_question span:before,.o_assessmentitem_controls .o_sel_retry_question span:before{padding-right:0.5em;margin-bottom:0}.o_assessmentitem_control_view_solution{background:#f8f8f8;border:1px solid #e7e7e7;margin:0;padding:5px 10px}.o_assessmentitem_scoring{background:#f8f8f8;border:1px solid #e7e7e7;border-bottom:0;border-radius:4px 4px 0 0;margin-top:0;margin-bottom:0;padding:5px 10px}.o_assessmentitem_scoring_buttons{background:#f8f8f8;border:1px solid #e7e7e7;border-top:0;border-radius:0 0 4px 4px;margin-top:0;margin-bottom:16px;padding:5px 10px}.o_assessmentitem_scoring_override_window{width:300px}.itemPrompt{margin:1.5em 0;font-style:italic;color:#666666}.o_qti_item_body{margin:1em 0}.o_sel_assessment_item_hint{margin-top:1em}.o_assessment_test_results .o_sel_assessment_item_hint{display:none}tr.choiceinteraction td.control{padding:0.5em}tr.choiceinteraction td.choiceInteraction{padding:0.5em}.choiceInteraction label{font-weight:normal}.choiceInteraction input+i{background-color:red}.choiceInteraction div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.choiceInteraction div.o_qti_item_choice_option_flow label span{font-weight:normal}.choiceInteraction div.o_qti_item_choice_option_flow label span>p{display:inline-block}.choiceInteraction.choiceright table tr td.choiceInteraction{background-color:#e7e7e7;border-bottom:3px solid white}.matchInteraction.choiceright table tr td.o_qti_item_kprim_text{background-color:#e7e7e7;border-bottom:3px solid white}table.o_qti_item_kprim td.o_qti_item_kprim_input_correct{background-color:#d8f3b7}table.o_qti_item_kprim td.o_qti_item_kprim_input_wrong{background-color:#ffa3af}table.o_qti_item_kprim td.o_qti_item_kprim_input_correct,table.o_qti_item_kprim td.o_qti_item_kprim_input_wrong,table.o_qti_item_kprim th.o_qti_item_kprim_input_correct,table.o_qti_item_kprim th.o_qti_item_kprim_input_wrong{width:11%}table.o_qti_item_kprim td.o_qti_item_kprim_text,table.o_qti_item_kprim th.o_qti_item_kprim_text{width:88%}.matchInteraction input[type='text']{display:inline;width:auto}.matchInteraction div.bar_green{background-color:#78be20}.matchInteraction div.bar_red{background-color:#d6001c}.source-left,.target-left,.source-right,.target-right{width:50%;float:left;position:relative;padding:0;margin-top:5px}.o_match_dnd_sources{padding:10px 10px 0 10px;min-height:60px;border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8}.o_match_dnd_sources.oo-accepted{border-color:#666}.o_match_dnd_source{padding:10px;margin-bottom:10px;border:2px dashed #999;border-radius:4px;background-color:#ffffff;background:#fcf8e3;cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.o_match_dnd_source:before,.o_match_dnd_source:after{content:" ";display:table}.o_match_dnd_source:after{clear:both}.o_match_dnd_source.oo-selected{border:2px dashed #f2af40;background:#fae1b7}.o_match_dnd_source.oo-drag{border:2px dashed #f2af40 !important}.source-bottom .o_match_dnd_source,.source-top .o_match_dnd_source{margin:0 0 10px 0}.o_match_dnd_targets .oo-accepted{border:2px solid #666;border-radius:4px}.o_match_dnd_target{padding:10px 10px 0 10px;margin:0 0 10px 10px;border:2px solid #a6a6a6;border-radius:4px;background:#d9edf7}.o_match_dnd_target:before,.o_match_dnd_target:after{content:" ";display:table}.o_match_dnd_target:after{clear:both}.o_match_dnd_target .o_match_dnd_target_drop_zone{margin:0;padding:5px 0 0 15px;min-height:30px}.o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source{border:2px dashed #777}.target-bottom .o_match_dnd_target,.target-top .o_match_dnd_target{margin:0 0 10px 0}.target-bottom .o_match_dnd_target .o_match_dnd_target_drop_zone,.target-top .o_match_dnd_target .o_match_dnd_target_drop_zone{padding-left:0px}.target-bottom .o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source,.target-top .o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source{padding-left:15px}.table.o_match_true_false_edit th.o_sel_match_target_0,.table.o_match_true_false_edit th.o_sel_match_target_1,.table.o_match_true_false_edit th.o_sel_match_target_2{width:12%}.match_true_false input[type="checkbox"]{-webkit-appearance:radio;-moz-appearance:radio;-ms-appearance:radio;appearance:radio}.match_true_false .table>tbody>tr>td.o_match_true_false_unanswered,.match_true_false .table>tbody>tr>td.o_match_true_false_right,.match_true_false .table>tbody>tr>td.o_match_true_false_wrong{vertical-align:middle;width:11%}.match_true_false th.o_match_true_false_unanswered,.match_true_false th.o_match_true_false_right,.match_true_false th.o_match_true_false_wrong{width:11%}.match_true_false td.o_match_true_false_answer,.match_true_false th.o_match_true_false_answer{width:67%}.match_true_false td.o_match_true_false_unanswered{background-color:#fbfbfb}.match_true_false td.o_match_true_false_right{background-color:#d8f3b7}.match_true_false td.o_match_true_false_wrong{background-color:#ffa3af}.o_assessmentitem .mathEntryInteraction{border:1px solid #ddedfc;background-color:#edf1f6;background:linear-gradient(to top, #edf1f6 0%, #f6f9fb 100%);border-radius:0.4em;padding:1em;margin:0.5em 0}.o_assessmentitem .mathEntryInteraction .inputPanel{line-height:1em;text-align:left}.o_assessmentitem .mathEntryInteraction .inputPanel input{margin:0;padding:0}.o_assessmentitem .mathEntryInteraction .previewPanel{text-align:center}.o_assessmentitem .mathEntryInteraction.horizontal{min-height:5em;width:40em}.o_assessmentitem .mathEntryInteraction.horizontal .inputPanel{width:45%;float:left;margin:2em 0}.o_assessmentitem .mathEntryInteraction.horizontal .previewPanel{width:50%;margin-left:40%}.o_assessmentitem .mathEntryInteraction.vertical{min-height:6em}.o_assessmentitem .mathEntryInteraction.vertical .inputPanel{padding:0 5em}.o_assessmentitem .mathEntryInteraction.vertical .inputPanel:before{content:'Input Maths: '}.o_assessmentitem .mathEntryInteraction.vertical .previewPanel{margin-top:2em;min-height:4em}.o_assessmentitem div.upConversionAjaxControlMessage{width:auto;text-align:center;display:inline;padding:0.5em 0 0.5em 20px}.o_assessmentitem div.success{background:#78be20}.o_assessmentitem div.failure{background-color:#f2af40}.o_assessmentitem div.error{background-color:#d6001c}.o_assessmentitem div.upConversionAjaxControlPreview{margin:0.5em 0;font-size:110%}.o_assessmentitem table.inputHelp{border-collapse:collapse;width:100%;font-size:90%}.o_assessmentitem table.inputHelp th{border:1px solid #999999;padding:0.2em 0.5em;background-color:#cad8e5}.o_assessmentitem table.inputHelp td{color:#999999;border:1px solid #999999;padding:0.2em 0.5em}.o_assessmentitem table.inputHelp kbd{color:black;font-size:100%;line-height:100%}.o_assessmentitem table.inputHelp .longComma{margin-right:0.5em}.o_togglebox_wrapper #modal-correct-solution div.o_togglebox_content{background-color:#fcf8e3;border-color:#8a6d3b}.o_candidatecomment{padding:0;margin:2em 0 1em 0;border:none}.o_candidatecomment legend{font-size:110%;font-weight:bold;color:#777;margin-bottom:0;border-bottom:0}.o_candidatecomment div.o_item_container_help{margin:0;padding:0}.o_candidatecomment textarea{display:block;color:#777}.o_qti_menu_menustyle ul.o_testpartnavigation{list-style:none;padding:0;margin:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:0 1em 0.5em 1em;margin:0 0 0.5em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection header{margin:0 0 1em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection header div.rubric{font-style:italic}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection ul.o_testpartnavigation_inner{list-style:none;padding:0;margin:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem{padding:0.1em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a{color:#777}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a:hover,.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a:focus{color:#333}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a{color:#209d9e;font-weight:bold}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a:hover,.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a:focus{color:#177374;background-color:#eee}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem span{vertical-align:middle}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_status{display:inline;position:relative;left:-0.3em;background:transparent;border:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_status span{display:none}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts{float:right;display:block;padding:0.3em;border-radius:2px;background-color:#fafafa;color:#777;font-size:0.7em}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts.o_assessmentitem_attempts_limited{color:#f2af40}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts.o_assessmentitem_attempts_nomore{color:#a6a6a6}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_marks{float:right;display:inline-block;font-size:0.8em;position:relative;top:0.3em;right:-0.5em}.o_qti_menu_menustyle ul.o_testpartnavigation .o_assessmentitem .questionTitle{margin-right:1em}.testFeedback h1:first-of-type{margin-top:0}ul.testPartDrilldown{list-style:none;padding:0;margin:0}ul.testPartDrilldown li.o_assessmentsection{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:0 1em 0.5em 1em}ul.testPartDrilldown li.o_assessmentsection header{margin:0 0 1em 0}ul.testPartDrilldown li.o_assessmentsection header div.rubric{font-style:italic}ul.testPartDrilldown li.o_assessmentsection ul.testPartDrilldownInner{list-style:none;padding:0;margin:0}ul.testPartDrilldown li.currentItem{border:1px solid #e7e7e7;border-radius:0.5em;padding:0 1em;margin-top:1em}.testItemControl{margin-top:0.5em}ul.o_qti_statistics_answers li span.o_qti_statistics_answer{background:#F5F5F5;padding:1px 3px;width:90%;display:inline-block}.o_assessment_test_results .o_qti_assessment_title{border-bottom:1px solid #ddd}.o_assessment_test_results table th{width:40%}.o_assessment_test_results .o_qti_sectionsummary .o_qti_section{text-align:center}.o_assessment_test_results .o_qti_sectionsummary .o_qti_section .o_qti_section_sublisting{padding:0 10%;min-height:3em}.o_assessment_test_results .o_qti_sections .o_qti_section{margin-top:40px}.o_assessment_test_results .o_qti_sections .o_qti_section h3{margin-bottom:20px}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_id{display:none}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment{margin:0;padding:5px 10px 10px 5px;border-top:1px solid #ddd;broder-bottom:1px solid #ddd}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h4,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2{font-size:100%;font-weight:bold;color:inherit}.o_assessment_test_results .o_qti_to_overview{text-align:right}.o_sel_assessment_item_feedbacks{min-height:250px}.o_alternative_question_types h4 select,.o_alternative_question_types .o_cal .fc-header-title h2 select,.o_cal .fc-header-title .o_alternative_question_types h2 select{display:inline-block;width:auto}@media print{canvas,div.hotspotInteraction>div>div{-webkit-print-color-adjust:exact;color-adjust:exact}.choiceInteraction label{font-weight:normal}.choiceinteraction input[type="radio"][disabled],.choiceinteraction input[type="checkbox"][disabled],.matchInteraction input[type="radio"][disabled],.matchInteraction input[type="checkbox"][disabled]{display:none}.choiceinteraction input+i,.matchInteraction input+i{font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.choiceInteraction input[type="radio"][disabled]+i:before,.matchInteraction input[type="radio"][disabled]+i:before,.matchInteraction.match_true_false input[type="checkbox"][disabled]+i:before{content:""}.choiceInteraction input[type="radio"][disabled]:checked+i:before,.matchInteraction input[type="radio"][disabled]:checked+i:before,.matchInteraction.match_true_false input[type="checkbox"][disabled]:checked+i:before{content:""}.choiceInteraction input[type="checkbox"][disabled]+i:before,.matchInteraction input[type="checkbox"][disabled]+i:before{content:""}.choiceInteraction input[type="checkbox"][disabled]:checked+i:before,.matchInteraction input[type="checkbox"][disabled]:checked+i:before{content:""}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav{margin-right:20px}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_nav .o_portfolio_collector{position:relative;top:-5px}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}div.o_wiki_wrapper a.wikiimg{text-decoration:none;color:inherit;font-weight:inherit}div.o_wiki_wrapper div.imgcaption{padding:0.3em 0em 0.2em 0.3em}div.o_wiki_wrapper div.imgleft{clear:left;float:left;margin:0.3em 0.3em 0.3em 0em}div.o_wiki_wrapper div.imgright{clear:right;float:right;margin:0.3em 0em 0.3em 0.3em}div.o_wiki_wrapper div.imgcenter{clear:both;overflow:hidden;text-align:center;margin:0.3em 0em 0.3em 0em}div.o_wiki_wrapper div.imgthumb{border:1px solid #bbbbbb;padding:0.3em}div.o_wiki_wrapper table.gallery{border:1px solid #ccc;margin:2px;padding:2px;background-color:white}div.o_wiki_wrapper table.gallery tr{vertical-align:middle}div.o_wiki_wrapper table.gallery td{background-color:#f9f9f9;border:solid 2px white;text-align:center;vertical-align:middle;width:150px}div.o_wiki_wrapper img.gallery{border:1px solid #bbbbbb;padding:0.3em}div.o_wiki_wrapper a.edit{font-style:italic;color:red}div.o_wiki_wrapper a.externallink:before{padding-right:2px}div.o_wiki_wrapper a.externallink:before:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}.o_ep_icon_map:before{content:""}.o_ep_icon_collection:before{content:""}.o_ep_icon_page:before{content:""}.o_ep_icon_struct:before{content:""}.o_ep_icon_liveblog:before{content:""}.o_artefact_closed:before{content:""}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ECF69A;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99E44D;background:#99E44D -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99E44D), to(#CBF1A5));background:#99E44D -moz-linear-gradient(43% 71% 101deg, #CBF1A5, #99E44D);background:#99E44D -o-linear-gradient(#99E44D, #CBF1A5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99E44D', EndColorStr='#CBF1A5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#DFF0C1;background:#DFF0C1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#DFF0C1), to(#A0D346));background:#DFF0C1 -moz-linear-gradient(43% 71% 101deg, #A0D346, #DFF0C1);background:#DFF0C1 -o-linear-gradient(#DFF0C1, #A0D346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#DFF0C1', EndColorStr='#A0D346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#D7DBB5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#FFBA71;background:#FFBA71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FFBA71), to(#FFBA99));background:#FFBA71 -moz-linear-gradient(43% 71% 101deg, #FFBA99, #FFBA71);background:#FFBA71 -o-linear-gradient(#FFBA71, #FFBA99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFBA71', EndColorStr='#FFBA99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#FF9772;background:#FF9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FF9772), to(#FF9780));background:#FF9772 -moz-linear-gradient(43% 71% 101deg, #FF9780, #FF9772);background:#FF9772 -o-linear-gradient(#FF9772, #FF9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FF9772', EndColorStr='#FF9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#E8AFBB;background:#E8AFBB -webkit-gradient(linear, 37% 20%, 53% 100%, from(#E8AFBB), to(#E8AFA0));background:#E8AFBB -moz-linear-gradient(43% 71% 101deg, #E8AFA0, #E8AFBB);background:#E8AFBB -o-linear-gradient(#E8AFBB, #E8AFA0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#E8AFBB', EndColorStr='#E8AFA0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#FFA800;background:#FFA800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FFA800), to(#FFAF00));background:#FFA800 -moz-linear-gradient(43% 71% 101deg, #FFAF00, #FFA800);background:#FFA800 -o-linear-gradient(#FFA800, #FFAF00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFA800', EndColorStr='#FFAF00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00D2F8;background:#00D2F8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00D2F8), to(#4A9EAD));background:#00D2F8 -moz-linear-gradient(43% 71% 101deg, #4A9EAD, #00D2F8);background:#00D2F8 -o-linear-gradient(#00D2F8, #4A9EAD);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00D2F8', EndColorStr='#4A9EAD');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#C4F6FF;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#B3E2F7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#DEE7F7;background:#DEE7F7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#DEE7F7), to(#C1E9FD));background:#DEE7F7 -moz-linear-gradient(43% 71% 101deg, #C1E9FD, #DEE7F7);background:#DEE7F7 -o-linear-gradient(#DEE7F7, #C1E9FD);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#DEE7F7', EndColorStr='#C1E9FD');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_portfolio div#o_main_toolbar.o_toolbar{margin-top:0px}.o_portfolio_home .o_portfolio_my li,.o_portfolio_home .o_portfolio_shared li{margin:2em 1em 2em 0;text-align:center;vertical-align:top}.o_portfolio_home .o_portfolio_my li.o_pf_trash_entry,.o_portfolio_home .o_portfolio_shared li.o_pf_trash_entry{border-right:5px dashed #eee;padding-right:2em}.o_portfolio_home .o_portfolio_my li a,.o_portfolio_home .o_portfolio_shared li a{display:block;width:9em}.o_portfolio_home .o_portfolio_my li a i,.o_portfolio_home .o_portfolio_shared li a i{display:inline-block;font-size:4em}.o_portfolio_home .o_portfolio_my li a span,.o_portfolio_home .o_portfolio_shared li a span{display:block;margin-top:0.8em}@media (max-width: 1199px){.o_portfolio_home .o_portfolio_my,.o_portfolio_home .o_portfolio_shared{font-size:90%}}@media (max-width: 767px){.o_portfolio_home .o_portfolio_my,.o_portfolio_home .o_portfolio_shared{font-size:80%}.o_portfolio_home .o_portfolio_my li.o_pf_trash_entry,.o_portfolio_home .o_portfolio_shared li.o_pf_trash_entry{border-right:none;padding-right:0}}.o_portfolio_home #o_my_last_binders .o_table_body{margin-top:0;padding-left:0}.o_portfolio_home #o_my_last_pages .o_table_body{margin-top:0}.o_portfolio_home #o_my_last_pages .o_table_toolbar{display:none}.o_portfolio_home #o_my_last_pages .o_portfolio_page{margin-top:0;margin-bottom:1em}.o_section_lead,.o_page_lead,.o_assignment_lead{padding:10px 10px;margin-bottom:10px;background-color:#f2f2f2;border-radius:3px;border:1px #d9d9d9 solid}.o_section_ended .o_section_lead{border-color:#ff3d56;background-color:#ff7083}.o_media.o_media_right,.o_media.o_media_right_large{float:right;margin-left:2em;margin-bottom:2em}.o_media.o_media_left,.o_media.o_media_left_large{float:left;margin-right:2em;margin-bottom:2em}.o_media.o_media_left,.o_media.o_media_right{max-height:200px;max-width:50%}.o_media.o_media_left img,.o_media.o_media_right img{max-height:200px}.o_media.o_media_right_large,.o_media.o_media_left_large{max-height:300px;max-width:75%}.o_media.o_media_right_large img,.o_media.o_media_left_large img{max-height:300px}.o_media img{border-radius:3px;border:1px #d9d9d9 solid;background:#fff;height:auto;width:auto}@media (max-width: 767px){.o_page_lead .o_media.o_media_right,.o_page_lead .o_media.o_media_right_large{margin-left:1em;margin-bottom:1em}.o_page_lead .o_media.o_media_left,.o_page_lead .o_media.o_media_left_large{margin-right:1em;margin-bottom:1em}.o_page_lead .o_media.o_media_left,.o_page_lead .o_media.o_media_right{max-height:120px;max-width:30%}.o_page_lead .o_media.o_media_left img,.o_page_lead .o_media.o_media_right img{max-height:120px}.o_page_lead .o_media.o_media_right_large,.o_page_lead .o_media.o_media_left_large{max-height:180px;max-width:50%}.o_page_lead .o_media.o_media_right_large img,.o_page_lead .o_media.o_media_left_large img{max-height:180px}}.o_page_lead{padding:20px}.o_page_lead h2{margin-bottom:5px}.o_page_lead .o_portfolio_page_meta{margin-bottom:5px}.o_page_lead .o_page_summary{font-size:18px}.o_page_lead .o_media.o_desc_empty{max-height:300px;text-align:center}.o_page_lead .o_media.o_desc_empty img{max-height:300px}.o_page_lead .o_portfolio_status_block{border-top:1px solid #d9d9d9;padding-top:1em;margin-bottom:-1em}.o_page_lead .o_edit_page_meta{padding-right:2em}.o_page_lead .o_portfolio_status{display:inline-block;padding-right:2em}.o_page_lead.o_block_imagebg .o_portfolio_status{padding:2px;background-color:rgba(255,255,255,0.8)}.o_portfolio_status_block p.o_section_ended{font-size:120%}.o_page_assignment{font-size:12px}.o_page_assignment.o_togglebox_wrapper div.o_togglebox_content{margin:10px 0 20px 0;padding:20px;border-left:3px solid #d6001c;background-color:#f2dede}.o_page_assignment .o_page_assignement_info{position:relative;left:-1em}.o_page_export .o_page_assignment .o_opener,.o_binder_export .o_page_assignment .o_opener{visibility:hidden}.o_page_export .o_page_assignment .o_closer,.o_binder_export .o_page_assignment .o_closer{display:none}.o_portfolio_listing.o_rendertype_custom .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry{position:relative;display:inline-block;height:230px;width:400px;vertical-align:top;margin-right:10px}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry ul{padding-left:2em}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry .oo-accepted{box-shadow:10px 10px 10px pink}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry .o_binder_tools a{color:#2d2926}.o_portfolio_listing.o_rendertype_custom .panel-imagebg .panel-body ul{margin:0;padding:0;list-style-type:none}.o_portfolio_listing.o_rendertype_custom .panel-imagebg .panel-body ul li{padding:2px}.o_binder.o_portfolio_assignments .panel-heading,.o_binder.o_portfolio_assignments .panel-body{border-left:3px solid #d6001c}.panel-default.o_portfolio_assignments .panel-heading,.panel-default.o_portfolio_assignments .panel-body{border-left:3px solid #d6001c}.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body{border-left:3px solid #d6001c}.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body .o_portfolio_page_meta_wrapper,.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body .o_portfolio_page_summary{padding-left:10px}.o_portfolio_page_summary .o_media.o_media_right,.o_portfolio_page_summary .o_media.o_media_right_large{margin-left:1em;margin-bottom:1em}.o_portfolio_page_summary .o_media.o_media_left,.o_portfolio_page_summary .o_media.o_media_left_large{margin-right:1em;margin-bottom:1em}.o_portfolio_page_summary .o_media.o_media_left,.o_portfolio_page_summary .o_media.o_media_right{max-height:150px}.o_portfolio_page_summary .o_media.o_media_left img,.o_portfolio_page_summary .o_media.o_media_right img{max-height:150px}.o_portfolio_page_summary .o_media.o_media_right_large,.o_portfolio_page_summary .o_media.o_media_left_large{max-height:230px}.o_portfolio_page_summary .o_media.o_media_right_large img,.o_portfolio_page_summary .o_media.o_media_left_large img{max-height:230px}.o_portfolio_categories .tag{font-size:80%;font-weight:normal}.o_portfolio_categories div,.o_portfolio_categories form{display:inline-block}.o_portfolio_categories_edit .bootstrap-tagsinput{margin-bottom:0;padding:0px 4px}.o_portfolio_last_modified+.o_portfolio_categories,.o_portfolio_page_meta+.o_portfolio_categories{margin-left:1em}.o_rendertype_classic .o_pf_page,.o_rendertype_classic .o_pf_assignment{padding-left:1em}.o_portfolio_timeline .o_timeline_up{text-align:center}.o_portfolio_timeline .o_timeline_down{text-align:center}.o_portfolio_timeline .axis path,.o_portfolio_timeline .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_portfolio_timeline .x.axis line,.o_portfolio_timeline .x.axis path{display:none}.o_portfolio_timeline path.o_timeline_curve{fill:none;stroke:#ccc;shape-rendering:crispEdges}.o_portfolio_timeline .y.axis .tick line,.o_portfolio_timeline .y.axis path.domain{stroke:#ddd}.o_portfolio_timeline text{fill:#888;stroke:none;font-size:10px}.o_portfolio_timeline .dot.o_pf_status_draft{fill:#f2af40}.o_portfolio_timeline .dot.o_pf_status_published{fill:#209d9e}.o_portfolio_timeline .dot.o_pf_status_inrevision{fill:#d6001c}.o_portfolio_timeline .dot.o_pf_status_closed{fill:#78be20}.o_portfolio_timeline .dot.o_pf_status_deleted{fill:#000}.o_pf_comments{margin-top:3em}.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file{background-color:#f8f8f8;padding:10px;border-radius:10px}.o_pf_content .o_forum,.gu-mirror .o_forum{border:1px #f8f8f8 solid;padding:10px;border-radius:10px}.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_forum,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_forum,.gu-mirror .o_wiki{background-color:#f8f8f8;padding:10px;border-radius:10px}.o_pf_content .o_efficiencystatement h3,.o_pf_content .o_efficiencystatement .h3,.o_pf_content .o_feed h3,.o_pf_content .o_feed .h3,.o_pf_content .o_forum h3,.o_pf_content .o_forum .h3,.o_pf_content .o_wiki h3,.o_pf_content .o_wiki .h3,.gu-mirror .o_efficiencystatement h3,.gu-mirror .o_efficiencystatement .h3,.gu-mirror .o_feed h3,.gu-mirror .o_feed .h3,.gu-mirror .o_forum h3,.gu-mirror .o_forum .h3,.gu-mirror .o_wiki h3,.gu-mirror .o_wiki .h3{font-size:14px}.o_pf_content .o_efficiencystatement .row,.o_pf_content .o_feed .row,.o_pf_content .o_forum .row,.o_pf_content .o_wiki .row,.gu-mirror .o_efficiencystatement .row,.gu-mirror .o_feed .row,.gu-mirror .o_forum .row,.gu-mirror .o_wiki .row{margin:0}.o_pf_content .o_efficiencystatement .o_block_with_datecomp,.o_pf_content .o_feed .o_block_with_datecomp,.o_pf_content .o_forum .o_block_with_datecomp,.o_pf_content .o_wiki .o_block_with_datecomp,.gu-mirror .o_efficiencystatement .o_block_with_datecomp,.gu-mirror .o_feed .o_block_with_datecomp,.gu-mirror .o_forum .o_block_with_datecomp,.gu-mirror .o_wiki .o_block_with_datecomp{margin-top:0.5em;margin-bottom:0}.o_pf_video_placeholder{background-color:#f8f8f8;border:1px solid #f8f8f8;border-radius:10px;display:table;min-width:400px;text-align:center;padding:40px 10px}.o_pf_video_placeholder i{display:table-cell;vertical-align:middle}.o_binder_page_listing .o_portfolio_page_links{background-color:#f8f8f8;border-radius:4px}.o_binder_page_listing .o_portfolio_page_links .o_portfolio_comment{float:right}.o_portfolio_toc .o_portfolio_toc_section{position:relative;padding-right:80px}.o_portfolio_toc .o_portfolio_section_meta{margin-top:-0.5em}.o_portfolio_toc .o_section_actions{position:absolute;top:-10px;right:0}.o_portfolio_toc .o_section_actions .o_section_move_up_and_down,.o_portfolio_toc .o_section_actions .o_section_dropdown{vertical-align:middle;display:inline-block}.o_portfolio_toc a.o_comment{color:#777;margin-left:1em}.o_portfolio_toc .o_section ul{padding-left:1em;line-height:24px}.o_portfolio div span.badge{padding:3px 7px}.o_portfolio div .o_portfolio_entry_draft{background-color:#f2af40}.o_portfolio div .o_portfolio_published{background-color:#209d9e}.o_portfolio div .o_portfolio_entry_revision{background-color:#d6001c}.o_portfolio div .o_portfolio_entry_closed{background-color:#78be20}.o_portfolio div .o_portfolio_entry_deleted{background-color:#000}.o_portfolio div .o_portfolio_entry_incoming{background-color:#78be20}.o_portfolio div .o_portfolio_entry_inprocess{background-color:#c8c8c8}.o_portfolio div .o_portfolio_entry_done{background-color:#78be20}.o_portfolio div .o_popover,.o_portfolio div .popover:hover{color:#2d2926;text-decoration:none}.o_portfolio_content .o_portfolio_toc.o_portfolio_toc_withtimeline{width:70%;float:left}.o_portfolio_content .o_portfolio_timeline{width:29%;float:right}.o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline,.o_portfolio_content .o_portfolio_entries.o_portfolio_withtimeline{width:70%;float:left}.o_portfolio_content .o_portfolio_timeline{width:29%;float:right}.o_portfolio_page{background:#fcfcfc;border:1px solid #eee;border-radius:4px}.o_portfolio_page_meta_wrapper{background-position:left top;background-repeat:no-repeat}.o_portfolio_rights table .o_portfolio_section td:first-child{padding-left:1.5em}.o_portfolio_rights table .o_portfolio_page td:first-child{padding-left:2.5em}.o_portfolio_publication table{padding-bottom:10px}.o_portfolio_publication table td{padding:5px 5px 5px 0}.o_portfolio_publication .o_portfolio_ac{font-size:90%}.o_portfolio_publication .o_portfolio_ac table td:nth-of-type(2){width:200px;white-space:nowrap}.o_portfolio_publication .o_portfolio_ac table td:nth-of-type(3){width:40px;white-space:nowrap}.o_portfolio_publication ul ul{margin-left:2em;margin-bottom:5px}.o_portfolio_publication ul li{background:#fbfbfb;padding:3px;margin-bottom:2px}.o_portfolio_publication ul li li{background:#f2f2f2}.o_portfolio_publication ul li li li{background:#eee}.o_portfolio_publication ul li li .table{margin-bottom:0px}@media (max-width: 767px){.o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline,.o_portfolio_content .o_portfolio_entries.o_portfolio_withtimeline{width:100%;float:none}.o_portfolio_content .o_sel_timeline_off,.o_portfolio_content .o_sel_timeline_on,.o_portfolio_content .o_portfolio_timeline{display:none}.o_portfolio_content .o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline{width:100%;float:none}}.o_portfolio_media_browser .o_portfolio_medias{position:relative;margin-bottom:20px;margin-top:20px}.o_portfolio_media_browser .o_portfolio_medias:before,.o_portfolio_media_browser .o_portfolio_medias:after{content:" ";display:table}.o_portfolio_media_browser .o_portfolio_medias:after{clear:both}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media:last-child{margin-right:0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{border:1px solid #209d9e;position:relative;height:180px;width:180px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon span.o_visual_not_available{background-image:none}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:6em;text-align:center;color:#eee;line-height:140px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #209d9e;border-top:0;background-color:rgba(255,255,255,0.8)}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a{display:block;color:#209d9e;font-family:inherit;font-weight:inherit}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:hover{color:#177374}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{width:80px;margin:0 10px 10px 0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{height:80px;width:80px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:2.5em;line-height:55px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_title{font-size:90%}}@media (max-width: 767px){.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{width:80px;margin:0 1px 1px 0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{height:80px;width:80px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:2.5em;line-height:55px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_title{font-size:90%}}.o_portfolio_status_legend{margin-top:3em}.o_portfolio_status_legend h6{margin-bottom:5px}.o_ed_htitle h1,.o_ed_htitle .h1{font-size:30px}.o_ed_htitle h2,.o_ed_htitle .h2{font-size:24px}.o_ed_htitle h3,.o_ed_htitle .h3{font-size:18px}.o_ed_htitle h4,.o_ed_htitle .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_ed_htitle h2,.o_ed_htitle .h4{font-size:14px}.o_ed_htitle h5,.o_ed_htitle .h5{font-size:12px}.o_ed_htitle h6,.o_ed_htitle .h6{font-size:12px}@media print{.o_binder h1{font-size:43.2px;margin-top:10cm}.o_portfolio_section{margin-bottom:1cm}.o_portfolio_section h3:first-of-type{font-size:36px}.o_page_lead{border:0;border-bottom:1px solid #d9d9d9;border-radius:0;background-color:none;padding:0;margin-bottom:10px}.o_page_lead .o_portfolio_status_block{border-top:0;margin-bottom:0}.o_page_lead .o_media img{border:0}.o_page_lead .o_portfolio_categories{display:block;margin-left:0}.o_page_lead .o_portfolio_status_block{padding-top:0}.o_page_lead .o_page_summary{margin-top:1em;font-style:italic}.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.o_pf_content .o_forum,.o_pf_content .o_image,.o_pf_content .o_video,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_forum,.o_pf_content .o_wiki{padding:0;border-radius:0;border:0}.o_pf_content .o_cit .o_desc p,.o_pf_content .o_text .o_desc p,.o_pf_content .o_file .o_desc p,.o_pf_content .o_forum .o_desc p,.o_pf_content .o_image .o_desc p,.o_pf_content .o_video .o_desc p,.o_pf_content .o_efficiencystatement .o_desc p,.o_pf_content .o_feed .o_desc p,.o_pf_content .o_forum .o_desc p,.o_pf_content .o_wiki .o_desc p{margin:0}.o_efficiencystatement table{font-size:90%}.o_artefact_metadata{page-break-inside:avoid;border:0;border-left:5px solid #eee;padding-left:10px;font-size:80%}.o_artefact_metadata table td,.o_artefact_metadata table th{border:0 !important;padding:2px !important}.o_artefact_metadata table th:first-of-type{width:20%}.o_pf_video_placeholder{background-color:#f8f8f8 !important;-webkit-print-color-adjust:exact;color-adjust:exact}.o_pf_video_placeholder.visible-print-block{display:table !important}}.o_evaluation_form .o_evaluation_block{margin-top:2em;margin-bottom:2em}.o_evaluation_form .o_rubric_name{font-weight:bold;margin-bottom:1em}.o_evaluation_form .o_evaluation_step_labels{margin-bottom:1em;font-weight:bold}.o_evaluation_form .o_evaluation_step_labels div,.o_evaluation_form .o_evaluation_step_labels span{display:inline-block;text-align:center;align-self:flex-end;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_evaluation_form .o_slider_wrapper{height:33px;overflow:hidden}.o_evaluation_form .o_slider{margin-bottom:1em}.o_evaluation_form .o_slider label{padding:0}.o_evaluation_form .o_slider input{padding:0;margin:0;position:relative}.o_evaluation_form .o_slider.hover{background-color:#f5f5f5}.o_evaluation_form .o_evaluation_continous .o_evaluation_no_response div.radio{padding:0;margin:0}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps{display:flex;justify-content:space-between}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps label{padding:0;margin:0;text-align:center}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps .radio{background-color:#f9f9f9;padding:0px;margin-top:0px;text-align:center}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps .radio:hover{background-color:#f5f5f5}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_no_response div.radio{margin-top:2px}.o_evaluation_form .o_evaluation_discrete_radio .o_evaluation_step_labels{display:flex;justify-content:space-between}.o_evaluation_form .o_slider .ui-slider.ui-slider-horizontal.ui-widget-content{margin-top:0.3em;margin-bottom:10px}.o_evaluation_form .o_evaluation_left_label{text-align:right;font-weight:normal}.o_evaluation_form .o_evaluation_left_label.o_evaluation_left_label_la{text-align:left;padding-left:0px;font-weight:normal}.o_evaluation_form .o_evaluation_right_label{text-align:left;font-weight:normal}.o_evaluation_form .o_evaluation_text_legend{margin-bottom:1em}.o_evaluation_form .o_evaluation_legend{padding-left:0.5em;margin-bottom:0.5em}.o_evaluation_form .o_evaluation_fileupload{margin-bottom:2em}.o_evaluation_form .o_evaluation_mc_other{margin-top:-10px;margin-left:10px;margin-right:10px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_slider{margin-left:15px;margin-right:15px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_end_label{text-align:right;padding-right:20px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_continous .x .tick{visibility:hidden}.o_evaluation_form .o_ed_rubrictablehandler .table{margin-top:5px}.o_evaluation_form .svg-container{display:inline-block;position:relative;width:100%;padding-bottom:50%;vertical-align:top;overflow:hidden}.o_evaluation_form .svg-content-responsive{display:inline-block;position:absolute;top:10px;left:0}.d3chart .o_eva_bar{fill:#209d9e}.d3chart .o_rubric_sufficient{fill:#78be20}.d3chart .o_rubric_neutral{fill:#f2af40}.d3chart .o_rubric_insufficient{fill:#d6001c}.d3chart .o_rubric_unrated{fill:#209d9e}.o_qual_hm_legend{padding:5px}.o_qual_hm_legend li{font-size:90%}.o_qual_hm_legend .ident{font-weight:bold}.o_evaluation_discrete_slider .o_evaluation_step_labels{position:relative}.o_evaluation_discrete_slider .o_evaluation_step_labels div:first-child{position:absolute;left:0px;text-align:left}.o_evaluation_discrete_slider .o_evaluation_step_labels div{display:inline-block;text-align:center}.o_evaluation_discrete_slider .o_evaluation_step_labels div:last-child{position:absolute;right:0px;text-align:right}.o_slider_overview{width:100%;height:20px;position:relative}.o_slider_overview .o_slider_overview_line{top:5px;left:0px;position:absolute;width:100%;height:11px;border:1px solid #999;border-radius:4px}.o_slider_overview .o_slider_overview_point{position:absolute;width:10px;height:10px;background-color:#209d9e}.o_evaluation_editor_form{margin:10px 10px 0 10px}.o_evaluation_editor_form .o_slider_editor{margin-top:10px}@media (max-width: 992px){.o_evaluation_editor_form .o_slider_editor{margin-bottom:20px}}@media (max-width: 992px){.o_evaluation_editor_form .o_evaluation_step_label{text-align:unset;margin-bottom:5px;padding-top:unset}}.o_evaluation_editor_form .o_evaluation_step_labels{display:inline-block}.o_evaluation_editor_form .o_evaluation_step_labels input{width:100%}.o_evaluation_editor_form .o_slider_descrete_radio{display:flex;justify-content:space-between}.o_evaluation_editor_form .o_slider_descrete_radio .radio{background-color:#f9f9f9;padding:0px;margin-top:0px;text-align:center}.o_evaluation_editor_form .o_slider_descrete_radio .radio:hover{background-color:#f5f5f5}@media (max-width: 992px){.o_evaluation_editor_form input[type="text"]{margin-bottom:5px}}.o_evaluation_editor_form .o_slider_continous{padding-top:10px;padding-bottom:-10px}.o_evaluation_editor_form .o_slider_descrete{padding-top:5px;padding-bottom:-5px}.o_evaluation_editor_form .o_evaluation_example{font-size:90%}.o_evaluation_editor_form .o_slider_top{margin-top:23px}.o_evaluation_editor_form .o_slider_buttons .pull-right div:not(:first-child){display:inline-block}.o_evaluation_editor_form .o_slider_buttons .pull-right .btn{margin-top:-3px}.o_evaluation_editor_form .o_slider_weight{max-width:40px}@media (max-width: 768px){.o_evaluation_form .o_evaluation_left_label{text-align:left;margin-bottom:0.5em}.o_evaluation_form .o_evaluation_right_label{text-align:right}.o_evaluation_form .o_evaluation_no_response{text-align:left}.o_evaluation_form .o_evaluation_no_response .o_evaluation_no_resp_value{font-weight:bold}.o_evaluation_form .o_slider{margin-bottom:2em}.o_evaluation_form .o_slider div{padding-left:0}.o_evaluation_form .o_slider .o_evaluation_no_response{margin-top:0.7em}}@media (min-width: 768px){.o_evaluation_form .o_evaluation_no_resp_value{display:none}}@media print{.o_evaluation_discrete_radio .o_slider .o_evaluation_steps div.radio{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#f9f9f9 !important}.o_icon_rubric_insufficient::before{color:#d6001c !important}.o_icon_rubric_neutral::before{color:#f2af40 !important}.o_icon_rubric_sufficient::before{color:#78be20 !important}}.o_eva_report_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_eva_report_print #o_print_brand img{width:100%}.o_eva_report_print .o_eva_content{margin-top:4em}.o_eva_report_print .o_eva_overview .panel table{margin:0px 0px 1px 0px}.o_eva_report_print .o_evaluation_duration,.o_eva_report_print .o_participated_users{display:none}.o_surv_run.withCmds .o_eva_report{margin-top:-44px}.o_eva_report .o_eva_overview .o_eva_rubric .table{margin-top:5px}.o_eva_report .o_ed_rubrictablehandler .o_table_footer{font-weight:bold}.o_eva_report .o_rubric_avg{font-weight:bold;white-sprace:nowrap}.o_eva_report .o_rubric_table .o_table_wrapper{margin-bottom:10px}.o_eva_report .o_rubric_table_legend{display:block}.o_eva_report .o_rubric_table_legend .ident{font-weight:bold}.o_eva_report .o_rubric_table_legend .list-inline{margin-bottom:0px}.o_eva_report .o_rubric_table_legend.o_last{margin-bottom:15px}.o_evaluation_execution .o_evaluation_anonymous_info{display:inherit}.o_qual_main .o_labeled.o_qual_dc_status_preparation,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_preparation{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_ready,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_ready{background-color:#ffd351;border-color:#ffd351;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_running,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_running{background-color:#933;border-color:#933;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_finished,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_finished{background-color:#14892c;border-color:#14892c;color:#fff}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_preparation{background-color:#384e64}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_ready{background-color:#ffc61e}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_running{background-color:#732626}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_finished{background-color:#0e5c1e}.o_qual_main .o_qual_dc_list tbody tr td:nth-child(1){padding-top:3px}.o_qual_main .o_labeled_light.o_qual_dc_status_preparation_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_preparation_light{border-color:#4a6785;color:#4a6785}.o_qual_main .o_labeled_light.o_qual_dc_status_ready_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_ready_light{border-color:#ffd351;color:#333}.o_qual_main .o_labeled_light.o_qual_dc_status_running_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_running_light{border-color:#933;color:#933}.o_qual_main .o_labeled_light.o_qual_dc_status_finished_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_finished_light{border-color:#14892c;color:#14892c}.o_qual_main .o_qual_exec_list tbody tr td:nth-child(1){padding-top:3px}.o_qual_main .o_qual_exec_status_future_light{border-color:#4a6785;color:#4a6785}.o_qual_main .o_qual_exec_status_ready_light{border-color:#ffd351;color:#333}.o_qual_main .o_qual_exec_status_participating_light{border-color:#933;color:#933}.o_qual_main .o_qual_exec_status_participated_light{border-color:#14892c;color:#14892c}.o_qual_main .o_qual_exec_status_over_light{border-color:#aaa;color:#aaa}.o_qual_execute_header .o_qual_context_table,.o_qual_report_header .o_qual_context_table{margin-bottom:0}.o_qual_execute_header .o_qual_context_table th,.o_qual_report_header .o_qual_context_table th{width:40%;border-top:none;padding:4px 8px}.o_qual_execute_header .o_qual_context_table td,.o_qual_report_header .o_qual_context_table td{width:60%;border-top:none;padding:4px 8px}.o_qual_ana_table .o_table_body{padding:0}.o_qual_ana_filter .o_date_range{margin-bottom:0px}.o_qual_ana_filter .o_date_range .control-label{margin-bottom:5px}.o_qual_ana_filter .o_date_range .o_date{margin-bottom:15px;padding-right:12px}.o_qual_ana_filter .o_date_range .o_date_range_from{padding-right:12px}.o_qual_ana_filter .o_date_range .o_date_range_to{padding-right:0px}.o_qual_hm_basecolor{background-color:#337ab7}.o_qual_hm .o_circle_container{display:flex}.o_qual_hm .o_circle_box{display:flex;align-items:center;justify-content:center}.o_qual_hm .o_circle{border-radius:50%}.o_qual_hm .o_circle.o_rubric_insufficient{background-color:#d6001c !important}.o_qual_hm .o_circle.o_rubric_neutral{background-color:#f2af40 !important}.o_qual_hm .o_circle.o_rubric_sufficient{background-color:#78be20 !important}.o_qual_hm .o_avg{display:flex;align-items:center;margin-left:5px}.o_qual_trend_invisible{visibility:hidden}.o_qual_trend .o_qual_ana_trend_up{transform:rotate(315deg);-webkit-transform:rotate(315deg);-moz-transform:rotate(315deg);-ms-transform:rotate(315deg);-o-transform:rotate(315deg)}.o_qual_trend .o_qual_ana_trend_down{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.o_qual_trend .o_rubric_insufficient{color:#d6001c}.o_qual_trend .o_rubric_neutral{color:#f2af40}.o_qual_trend .o_rubric_sufficient{color:#78be20}.o_qual_trend .o_qual_ana_unrated{color:#337ab7}.o_qual_filtered_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_qual_filtered_print #o_print_brand img{width:100%}.o_qual_filtered_print .o_qual_content{margin-top:4em}.o_qual_filtered_print .o_groupby_config,.o_qual_filtered_print .o_slider_trend_config,.o_qual_filtered_print .o_qual_hm tr td:last-child,.o_qual_filtered_print .o_qual_hm tr th:last-child{display:none}.o_evaluation_bar_chart_legend{padding:5px}.o_evaluation_bar_chart_legend li{font-size:90%}.o_evaluation_bar_chart_legend .ident{font-weight:bold}@media (max-width: 768px){.o_hm_group_select{padding-bottom:12px}.o_hm_panel_body{margin-bottom:-12px}}@media (min-width: 768px){.o_hm_trend_row{padding-top:12px}}@media print{.o_qual_hm .o_circle{-webkit-print-color-adjust:exact;color-adjust:exact}.o_qual_hm .o_circle.o_rubric_insufficient{background-color:#d6001c !important}.o_qual_hm .o_circle.o_rubric_neutral{background-color:#f2af40 !important}.o_qual_hm .o_circle.o_rubric_sufficient{background-color:#78be20 !important}.o_qual_hm .o_circle.o_qual_hm_basecolor{background-color:#337ab7 !important}.o_qual_trend{-webkit-print-color-adjust:exact;color-adjust:exact}.o_qual_trend .o_rubric_insufficient::before{color:#d6001c !important}.o_qual_trend .o_rubric_neutral::before{color:#f2af40 !important}.o_qual_trend .o_rubric_sufficient::before{color:#78be20 !important}.o_qual_trend .o_qual_ana_unrated::before{color:#337ab7 !important}}.o_cit{position:relative;margin:10px 0}.o_cit blockquote.o_quote{color:#555;font-size:18px;margin-top:6px;margin-bottom:0;padding:0 12px;font-style:italic;padding:5px 5px 0;border:0}.o_cit blockquote.o_quote p:last-child:after{content:'1)';top:-0.5em;font-size:75%;line-height:0;position:relative;vertical-align:baseline}.o_cit .o_cit_bibinfo{font-size:90%;margin-left:1em;position:relative}.o_cit .o_cit_bibinfo>div:first-child:before{content:'1)';position:absolute;top:0.5em;left:-1em;font-size:75%;line-height:0;vertical-align:baseline}.o_cit .title,.o_cit .url,.o_cit .authors,.o_cit .pages,.o_cit .date,.o_cit .dateAdded,.o_cit .place,.o_cit .institution,.o_cit .issue,.o_cit .publisher,.o_cit .publicationTitle,.o_cit .edition,.o_cit .series,.o_cit .volume{margin-right:0.5em}.o_cit .title{font-style:italic}.o_cit .publicationTitle{color:black}.o_cit .links{padding-left:2em}.o_cit .notes{padding-left:2em;color:grey}.o_cit .note{font-style:italic}.o_cit .note p:first-child{margin-top:0}.o_cit .note p:first-child{margin-bottom:0}.o_cit .listing.web .item{padding-left:0;text-indent:0}.o_cit .listing.web .title{display:block;font-weight:bold;font-style:normal}.o_cit .listing.web .publicationTitle{display:block;font-style:italic}.o_cit .listing.web .url{display:block}.o_cit .listing.web .links{padding-left:0}.o_cit .listing.web .notes{padding-left:0}.o_cit .general-info{border-top:1px solid #eee;padding-top:30px;margin-top:30px}.o_cit .copyright{display:none}@media print{.o_cit blockquote.o_quote{page-break-inside:avoid}}.o_video_poster{position:relative;display:inline-block;width:400px;max-width:100%;height:225px;background-size:cover;background-repeat:no-repeat;border:1px solid #eee}.o_video_poster_select{text-align:center}.o_video_poster_select .o_video_poster{margin:5px}.o_video_poster_select .o_video_poster a{position:absolute;left:0;top:0;width:100%;height:100%}.o_video_poster_select .o_video_poster a span{position:absolute;bottom:0;width:100%;display:block;line-height:3em;background:#f8f8f8;opacity:0.8}.o_video_poster_select .o_video_poster a:hover{border:1px solid #bbb}.o_video_poster_select .o_video_poster a:hover span{opacity:0.9}.o_video_peekview{text-align:center}.o_video_listing .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_video_listing .o_video_entry{position:relative;display:inline-block;height:230px;width:250px;vertical-align:top;margin-right:10px}.o_video_listing .o_video_poster{width:250px;max-width:100%;height:140px;border:1px solid #eee}.o_video_listing .o_timecode{position:absolute;bottom:2px;right:3px;padding:3px 4px;background:#333;color:#fff;font-size:12px;line-height:12px}.o_video_listing .o_meta{padding:2px;font-size:11px}.o_video_listing .o_meta h5{font-size:14px;margin-top:0;margin-bottom:5px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o_video_listing .o_date{margin-left:10px;display:inline-block}.o_video_listing .o_date:before{content:'\002022';margin-right:10px;display:inline-block}.o_video_run h1{font-size:1.8rem;font-weight:normal}.o_video_run .o_author{margin-top:0.5em;margin-bottom:1em;line-height:normal;font-size:90%;color:#3c763d}.o_video_run .o_ratings_and_comments{margin-top:2em;border-top:1px solid #eee;padding-top:1em}.o_video_chapter_editor .o_table_wrapper.o_table_flexi .table,.o_video_marker_editor .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_video_marker_editor .o_video_question.mejs__overlay{overflow:scroll}.o_video_question.mejs__overlay.o_video_large_question{align-items:flex-start;padding:1em 1em 0 1em;z-index:5}.o_video_question.mejs__overlay.o_video_large_question #o_qti_container{border:1px solid #eee}.o_video_marker{position:absolute;background-color:#efefef;opacity:0.85;border-left:3px solid #a6a6a6;padding:5px}.o_video_marker.o_video_marker_gray{border-left-color:#333}.o_video_marker.o_video_marker_blue{border-left-color:#bce8f1}.o_video_marker.o_video_marker_green{border-left-color:#78be20}.o_video_marker.o_video_marker_yellow{border-left-color:#f2af40}.o_video_marker.o_video_marker_red{border-left-color:#d6001c}.o_video_question.mejs__overlay{width:100%;height:100%;background-color:rgba(255,255,255,0.5)}.o_video_question #itemBody,.o_video_question .modalFeedback{background-color:white;opacity:1.0}.o_video_question .o_assessmentitem_wrapper .o_qti_item_body{min-height:50px}.o_video_question #o_qti_assessment_test_timer{border:none;padding:5px;margin:0}.o_video_question #o_qti_progress .progress{height:10px}.o_video_question #o_qti_container{background-color:white;padding:5px;border-radius:3px}.o_video_question .o_sel_additional_feedback{float:left;font-size:26px}.o_video_question .o_sel_additional_feedback .o_icon_passed{color:#78be20}.o_video_question .o_sel_additional_feedback .o_icon_failed{color:#d6001c}.mejs__time-rail .o_video_marker_gray{background:#333}.mejs__time-rail .o_video_marker_blue{background:#bce8f1}.mejs__time-rail .o_video_marker_green{background:#78be20}.mejs__time-rail .o_video_marker_yellow{background:#f2af40}.mejs__time-rail .o_video_marker_red{background:#d6001c}.mejs__controls .mejs__sourcechooser-button>button{background:transparent;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.mejs__controls .mejs__sourcechooser-button>button:before{content:"";color:white;font-size:18px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector{visibility:visible !important;width:170px;padding-left:10px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label{font-weight:normal;font-size:10px;width:140px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label:hover{color:#eee}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label .type{display:none}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li input{visibility:hidden;margin:0;width:0}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li input:checked+label{color:#d6001c}.mejs__controls .mejs__captions-button .mejs__captions-selector{right:-26px}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label{font-weight:normal;font-size:10px}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label:hover{color:#eee}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label .type{display:none}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li input{visibility:hidden;margin:0;width:0}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li input:checked+label{color:#d6001c}.mejs__button.mejs__speed-button{width:36px}.mejs__controls .mejs__speed-button>button{background:transparent;width:36px;margin:11px 0 0 0;font-size:11px;line-height:normal;color:#ffffff}.mejs__controls .mejs__speed-button .mejs__speed-selector{height:150px;top:auto;bottom:40px}.mejs__controls .mejs__speed-button .mejs__speed-selector ul li label{font-weight:normal;font-size:10px}.mejs__chapters .mejs__chapter .mejs__chapter-block .ch-title,.mejs__chapters .mejs__chapter .mejs__chapter-block .ch-time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.mejs__time-marker{background-color:#a6a6a6}.o_userbulk_changedcell{font-style:italic;font-weight:bold}.o_qpool_source_status{text-align:center}.o_qitem_author{white-space:nowrap}a.o_qpool_status{margin:0 2px 2px 2px;text-align:left}.o_labeled.o_qpool_status_draft,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_draft{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_labeled.o_qpool_status_review,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_review{background-color:#ffd351;border-color:#ffd351;color:#fff}.o_labeled.o_qpool_status_revised,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_revised{background-color:#933;border-color:#933;color:#fff}.o_labeled.o_qpool_status_finalVersion,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_finalVersion{background-color:#14892c;border-color:#14892c;color:#fff}.o_labeled.o_qpool_status_endOfLife,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_endOfLife{background-color:#aaa;border-color:#aaa;color:#fff}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_draft{background-color:#384e64}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_review{background-color:#ffc61e}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_revised{background-color:#732626}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_finalVersion{background-color:#0e5c1e}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_endOfLife{background-color:#919191}.o_labeled_light.o_qpool_status_draft_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_draft_light{border-color:#4a6785;color:#4a6785}.o_labeled_light.o_qpool_status_review_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_review_light{border-color:#ffd351;color:#333}.o_labeled_light.o_qpool_status_revised_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_revised_light{border-color:#933;color:#933}.o_labeled_light.o_qpool_status_finalVersion_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_finalVersion_light{border-color:#14892c;color:#14892c}.o_labeled_light.o_qpool_status_endOfLife_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_endOfLife_light{border-color:#aaa;color:#aaa}.btn-arrow-right.o_qpool_qitem_draft{background:#f8f8f8;border-bottom-color:#4a6785;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_review{background:#f8f8f8;border-bottom-color:#ffd351;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_revised{background:#f8f8f8;border-bottom-color:#933;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_final{background:#f8f8f8;border-bottom-color:#14892c;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_end_of_life{background:#f8f8f8;border-bottom-color:#aaa;border-bottom-width:3px}.btn-arrow-right.o_qpool_status_slected{background-color:#e7e7e7;color:#555}.btn-arrow-right,.btn-arrow-left{position:relative;padding-left:18px;padding-right:18px;margin-bottom:5px}.btn-arrow-right{padding-left:36px}.btn-arrow-left{padding-right:36px}.btn-arrow-right:before,.btn-arrow-right:after,.btn-arrow-left:before,.btn-arrow-left:after{content:"";position:absolute;top:5px;width:22.627417px;height:22.627417px;background:inherit;border:inherit;border-left-color:transparent;border-bottom-color:transparent;border-radius:0px 4px 0px 0px;-webkit-border-radius:0px 4px 0px 0px;-moz-border-radius:0px 4px 0px 0px}.btn-arrow-right:before,.btn-arrow-right:after{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-transform:rotate(45deg)}.btn-arrow-left:before,.btn-arrow-left:after{transform:rotate(225deg);-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-o-transform:rotate(225deg);-ms-transform:rotate(225deg)}.btn-arrow-right:before,.btn-arrow-left:before{left:-11px}.btn-arrow-right:after,.btn-arrow-left:after{right:-11px}.btn-arrow-right:after,.btn-arrow-left:before{z-index:1}.btn-arrow-right:before,.btn-arrow-left:after{background-color:white}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;border-top:50px solid transparent;border-bottom:70px solid transparent;background:url("images/infinite.jpg");background-size:cover;background-position:center center;background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=1 )}body.o_dmz #o_bg:after{content:" ";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left, rgba(255,255,255,0) 0.2%, rgba(255,255,255,0.3) 60%, rgba(255,255,255,0.5) 100%);background-size:cover;background-position:center center;background-repeat:no-repeat}body.o_dmz #o_toplink{display:none}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;padding-right:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#342c24}.o_login .o_login_intro .lead{color:#2d2926}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#342c24}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#f2af40;border-color:#f2af40;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#ef9b10;border-color:#e59510}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#f2af40;border-color:#f2af40}.o_login .o_login_register .badge{color:#f2af40;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social .btn-default.o_sel_auth_facebook{color:#fff;background-color:#4568b2;border-color:#3e5da0}.o_login .o_login_social .btn-default.o_sel_auth_facebook:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_facebook.dropdown-toggle{color:#fff;background-color:#37538d;border-color:#2d4374}.o_login .o_login_social .btn-default.o_sel_auth_facebook:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_facebook.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled],.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook.active{background-color:#4568b2;border-color:#3e5da0}.o_login .o_login_social .btn-default.o_sel_auth_facebook .badge{color:#4568b2;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_twitter{color:#fff;background-color:#2cc5ff;border-color:#13beff}.o_login .o_login_social .btn-default.o_sel_auth_twitter:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_twitter.dropdown-toggle{color:#fff;background-color:#00b4f8;border-color:#009ad4}.o_login .o_login_social .btn-default.o_sel_auth_twitter:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_twitter.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled],.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter.active{background-color:#2cc5ff;border-color:#13beff}.o_login .o_login_social .btn-default.o_sel_auth_twitter .badge{color:#2cc5ff;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_google{color:#fff;background-color:#e15f4f;border-color:#dd4b39}.o_login .o_login_social .btn-default.o_sel_auth_google:hover,.o_login .o_login_social .btn-default.o_sel_auth_google:focus,.o_login .o_login_social .btn-default.o_sel_auth_google.focus,.o_login .o_login_social .btn-default.o_sel_auth_google:active,.o_login .o_login_social .btn-default.o_sel_auth_google.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_google.dropdown-toggle{color:#fff;background-color:#d83825;border-color:#ba3120}.o_login .o_login_social .btn-default.o_sel_auth_google:active,.o_login .o_login_social .btn-default.o_sel_auth_google.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_google.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_google.disabled,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled],.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google.active{background-color:#e15f4f;border-color:#dd4b39}.o_login .o_login_social .btn-default.o_sel_auth_google .badge{color:#e15f4f;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_linkedin{color:#fff;background-color:#0181bd;border-color:#0170a4}.o_login .o_login_social .btn-default.o_sel_auth_linkedin:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_linkedin.dropdown-toggle{color:#fff;background-color:#015e8a;border-color:#014667}.o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_linkedin.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled],.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin.active{background-color:#0181bd;border-color:#0170a4}.o_login .o_login_social .btn-default.o_sel_auth_linkedin .badge{color:#0181bd;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_adfs{color:#fff;background-color:#209d9e;border-color:#1c8889}.o_login .o_login_social .btn-default.o_sel_auth_adfs:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_adfs.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_login .o_login_social .btn-default.o_sel_auth_adfs:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_adfs.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled],.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs.active{background-color:#209d9e;border-color:#1c8889}.o_login .o_login_social .btn-default.o_sel_auth_adfs .badge{color:#209d9e;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect{color:#fff;background-color:#209d9e;border-color:#1c8889}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled],.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active{background-color:#209d9e;border-color:#1c8889}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect .badge{color:#209d9e;background-color:#fff}.o_old_browser{display:none}.o_browser_ie10 .o_old_browser{display:block}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fcfcfc;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:""}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_catalog_title h2,.o_library_catalog_title h3,.o_library_catalog_title h4,.o_library_catalog_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_catalog_title h2{margin-top:0}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_library .o_ratings_and_comments .o_rating_title,.o_library .o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #209d9e !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_useradmin .o_user_infos .o_user_infos_inner{margin-right:45px}div.o_skype_button{display:inline-block}div.o_skype_button p{margin:0 0 0 0}div.o_skype_button p a img{margin:0 !important;vertical-align:middle !important}.o_useradmin div#o_main_toolbar.o_toolbar{margin-top:0px}.o_members_pagination{text-align:center}.o_bcard_logo{margin-left:10px;height:66px}.o_bcard_title_with_logo{clear:both;padding:20px 0 0 0}.o_visitingcard_image,.o_visitingcard_logo{height:66px}.o_visitingcard .o_icon_visitingcard{display:none}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}.o_visitingcard_image,.o_visitingcard_logo{height:50px}.o_visitingcard_logo,.o_bcard_logo{height:50px;margin:5px 0 0 5px}.o_visitingcard_logo img,.o_bcard_logo img{position:relative;transform:scale(.7575757576);top:-8px}}@media (max-width: 414px){.o_visitingcard_logo img{max-width:260px}}@media (max-width: 375px){.o_visitingcard_logo img{max-width:220px}}@media (max-width: 320px){.o_visitingcard_logo img{max-width:180px}.o_bcard_logo img{max-width:150px}}.o_gta_coach_selection .o_noti{display:inline-block;float:none;margin:0}.o_gta_coach_selection .o_gta_coach_selection_bar{position:relative}.o_gta_coach_selection .o_gta_coach_selection_bar .o_noti{position:absolute;top:3px;right:0}p.o_gta_reopen_warning{margin-top:-20px}.o_lecture_authorized_absence div.form-inline,.o_lecture_authorized_absence div.o_navbar-form{display:inline}.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_date,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_startTime,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_endTime,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_details,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_tools{width:1%}.o_lectures_teacher_overview .o_lectures_current_wrapper{border:1px solid transparent;background:#f8f8f8;border-radius:4px;margin:10px -10px 20px -10px;padding:10px}.o_lectures_teacher_overview .o_lectures_current_wrapper .o_button_group{margin-bottom:0}.o_lectures_teacher_overview .o_lectures_teacher_search .o_form .o_date{padding-right:10px;position:relative}.o_lectures_teacher_overview .o_lectures_teacher_search div.o_chelp_wrapper_and_buttons{position:absolute;top:0;right:0}.o_header_with_buttons .o_day_chooser{position:relative;float:right}.o_lectures_rollcall legend{margin-bottom:10px}.o_lectures_rollcall .o_desc,.o_lectures_rollcall .o_preparation{margin:0}.o_rollcall_next_previous_group{text-align:center}.o_rollcall_next_previous_group a.o_sel_close{float:left}.o_rollcall_next_previous_group a.o_sel_close span{display:none}.o_rollcall_next_previous_group .form-control{display:inline;width:auto}@media (max-width: 767px){.o_rollcall_next_previous_group a span{display:none}}.o_lecture_free{color:#777}.o_rollcall_portrait>div{margin:0 auto 10px auto;width:100px}.o_edubase_pv{overflow:hidden;padding-top:10px}.o_edubase_pv_fig{display:inline-block;vertical-align:top;width:110px;margin-right:3%}.o_edubase_run_enabled .o_edubase_page{font-size:12px;color:#777}.o_edubase_run_disabled .o_edubase_booksection{margin-right:3%;margin-bottom:3%;width:177px;display:inline-table}.o_edubase_run_disabled .o_edubase_page{font-size:12px;color:#777}.o_edubase_bs_buttons{padding-top:10px}.o_edubase_bs_book_id{margin-top:-2px}.o_edubase_bs_details{margin-left:-20px}.o_edubase_bs_details_label{visibility:hidden}.o_edubase_bs_cover object{margin-left:10px;margin-top:10px;height:120px}.o_edubase_bs_cover img{margin-left:10px;margin-top:10px;height:120px}.o_edubase_edit_books .o_icon_error{visibility:hidden}.o_edubase_edit_books .o_icon_help{margin-bottom:0px}.o_edubase_edit_books .row{margin-bottom:5px}.o_edusharing_container.o_in_iframe .edusharing_metadata_wrapper{margin-top:5px}.o_edusharing_container.o_in_iframe .edusharing_metadata.open{position:unset;margin:0;padding:0}.o_edusharing_container.o_in_iframe .edusharing_metadata.open:before{content:unset;border:unset;top:unset;position:unset;left:unset;width:unset;height:unset}.o_edusharing_container.o_hide_license .license{display:none}.o_edusharing_container.o_hide_infos .edusharing_metadata_wrapper{display:none}.o_edusharing_left{display:block;float:left;margin:5px 5px 5px 0}.o_edusharing_right{display:block;float:right;margin:5px 0 5px 5px}.o_edusharing_inline{display:inline-block;margin:0 5px}.o_edusharing_none{display:block;float:none;margin:5px 0}.eduContainer{width:180px;color:transparent}.edusharing_spinner_inner{width:30px;height:50px;display:inline-block}.edusharing_spinner1{background:url("../light/images/edusharing/hex1.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.1s;-moz-animation-delay:0.1s;animation-delay:0.1s}.edusharing_spinner2{background:url("../light/images/edusharing/hex2.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.25s;-moz-animation-delay:0.25s;animation-delay:0.25s}.edusharing_spinner3{background:url("../light/images/edusharing/hex3.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.5s;-moz-animation-delay:0.5s;animation-delay:0.5s}@-webkit-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-moz-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-ms-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-o-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5) rotate(90deg)}100%{transform:scale(1)}}body.o_doceditor_body{margin-bottom:0px}body.o_doceditor_body .o_container_offcanvas{max-width:100%}body.o_doceditor_body .container-fluid{padding-left:0px;padding-right:0px;margin-left:0px;margin-right:0px}body.o_doceditor_body #o_toplink{display:none}.o_doceditor{margin-top:10px}.o_doceditor .o_doceditor_config .nav button{margin-top:3px}.o_doceditor .navbar-collapse{border-top:0 !important}.o_doceditor .navbar-collapse.collapse{display:block !important}.o_doceditor .navbar-nav{margin:0}.o_doceditor .navbar-nav>li,.o_doceditor .navbar-nav{float:left !important}.o_doceditor .navbar-right{float:right !important}.o_doceditor .navbar-nav>li>.dropdown-menu{background-color:#f8f8f8;border-color:#e7e7e7;position:absolute;right:0;left:auto}.o_doceditor .navbar-nav>li>a{padding-top:10px !important;padding-bottom:10px !important;line-height:20px !important}.o_doceditor .o_collabora iframe,.o_doceditor .o_onlyoffice iframe,.o_doceditor .o_office365 iframe{width:100%;height:calc(100vh - 61px);height:calc(var(--doceditorvh, 1vh) * 100 - 61px);margin-top:10px;border-width:0px}.o_doceditor.o_web_document .o_collabora iframe,.o_doceditor.o_web_document .o_onlyoffice iframe,.o_doceditor.o_web_document .o_office365 iframe{width:100%;height:calc(100vh - 321px);height:calc(var(--doceditorvh, 1vh) * 100 - 321px);margin-top:10px;margin-bottom:10px;border-width:1px}.o_doceditor.o_web_document_edit .o_collabora iframe,.o_doceditor.o_web_document_edit .o_onlyoffice iframe,.o_doceditor.o_web_document_edit .o_office365 iframe{width:100%;height:calc(100vh - 276px);height:calc(var(--doceditorvh, 1vh) * 100 - 276px);margin-top:10px;margin-bottom:25px;border-width:1px}.o_doceditor .o_file_editor,.o_doceditor .o_doceditor_data_transfer{margin-right:15px;margin-left:15px}.o_web_content .o_doceditor{margin-top:0px}.o_taxonomy div#o_main_toolbar.o_toolbar{margin-top:0px}.o_taxonomy_listing.o_rendertype_custom .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_taxonomy_listing.o_rendertype_custom .o_taxonomy_row{position:relative;display:inline-block;height:225px;width:450px;vertical-align:top;margin-right:10px}.o_taxonomy_listing.o_rendertype_custom .o_taxonomy_row ul{padding-left:2em}.ui-widget{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#342c24;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close span{display:none}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important;float:right}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px;overflow:auto;background:white !important}.ui-dialog .ui-dialog-titlebar{padding:4px 7px 4px 7px;background-color:#eee !important}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui{max-width:100vw;max-height:100vh}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}@media (max-width: 767px){.ui-dialog.o_modal-ui{height:100vh !important;width:100vw !important}.ui-dialog.o_modal-ui div.ui-dialog-content{height:90vh !important}}.ui-slider.ui-slider-horizontal.ui-widget-content{border-color:#aaa;background:#f9f9f9}.ui-slider.ui-slider-horizontal.ui-widget-content.ui-state-disabled{opacity:0.65}.o_has_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:1px solid #209d9e;background-image:none;background-color:#209d9e}.o_no_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:3px solid #209d9e;background-image:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #1c8889;background:#209d9e;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}.o_richtext_mce_without_path .mce-statusbar{border:none}.o_richtext_mce_without_path .mce-path{display:none !important}.o_richtext_mce_without_path .mce-menubtn.mce-fixed-width span{width:auto}.o_richtext_mce>.o_richtext_mce_modes{text-align:right;padding-right:4px}.o_richtext_mce>.o_richtext_mce_modes a{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}i.mce-ico.mce-i-media,i.mce-ico.mce-i-movie,i.mce-ico.mce-i-help,i.mce-ico.mce-i-gaptext,i.mce-ico.mce-i-gapnumerical,i.mce-ico.mce-i-hottext,i.mce-ico.mce-i-edit{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}i.mce-ico.mce-i-media:before{content:""}i.mce-ico.mce-i-movie:before{content:""}i.mce-ico.mce-i-gaptext:before{content:""}i.mce-ico.mce-i-gapnumerical:before{content:""}i.mce-ico.mce-i-hottext:before{content:""}i.mce-ico.mce-i-math:before{content:'\03A3'}i.mce-ico.mce-i-edit:before{content:""}i.mce-ico.mce-i-help{width:9px;height:9px;padding-top:1px}i.mce-ico.mce-i-help:before{content:"";color:white}.mce-tabs span.o_chelp_wrapper{float:right;margin:5px}.mce-wordcount:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:""}.mce-danger .mce-wordcount:after{color:#d6001c;content:""}.mce-statusbar.mce-danger{background-color:#f2dede}.mce-textbox.mce-danger{border-color:#ce8383;background-color:#f2dede}@media (max-width: 470px){.mce-foot .mce-container-body.mce-abs-layout{left:-337px}}div.o_table_search>span.twitter-typeahead{padding-top:5px}.tag.label.label-info{margin-right:3px}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_segments,.o_table_toolbar,.o_breadcrumb,.o_bookmark,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_container_offcanvas{max-width:100%;margin-left:5px;margin-right:5px}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}.o_print_break_after{clear:both;page-break-after:always}.btn{display:none}.o_form textarea,.o_form .form-control.textarea_disabled{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fff !important;height:auto !important;color:#000 !important;resize:none}#o_comment_form_link,.o_comments form{display:none !important}.o_avatar{display:none}body.o_dmz{background:white !important;-webkit-print-color-adjust:exact;color-adjust:exact}.modal-content{border:0}.modal-header{display:none}.modal-body{padding:0}.modal-dialog{margin:0 !important;width:100% !important;height:100% !important;background:#fff !important;-webkit-print-color-adjust:exact;color-adjust:exact}.progress{page-break-inside:avoid;-webkit-print-color-adjust:exact;color-adjust:exact;background-color:rgba(0,0,0,0.1) !important;border:1px solid rgba(0,0,0,0.5)}.progress-bar{-webkit-print-color-adjust:exact;background-color:#000 !important;border:10px solid #000}.ui-slider.ui-slider-horizontal.ui-widget-content{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f9f9f9 !important}.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{-webkit-print-color-adjust:exact;color-adjust:exact}.o_has_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{background-color:#209d9e !important}.o_no_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:none !important}.radial-progress{page-break-inside:avoid;-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#eee !important}.radial-progress .circle .mask .fill{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#000 !important}.radial-progress .inset{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#fff !important}.radial-progress .inset .bgIcon{opacity:0.3;transition:opacity 0.3}.radial-progress .inset .bgIcon:before,.radial-progress .inset .o_icon_progress_danger:before,.radial-progress .inset .o_icon_progress_success:before{opacity:0.3;transition:opacity 0.3;color:#777 !important}.radial-progress:not([data-progress="0"]) .inset .bgIcon{opacity:0.3;transition:opacity 0.3;color:#777 !important}body{margin:0;zoom:0.6}table,figure,figure{page-break-inside:avoid}h1,h2,h3,h4,.o_cal .fc-header-title h2,h5,h6{page-break-after:avoid}.o_disclaimer .o_disclaimer_content{max-height:none}}.o_highscore .o_position{text-align:center;font-size:1.2em;font-weight:bold}.o_highscore .o_position h2{font-size:3em;font-weight:700;line-height:1.2em}@media screen and (-webkit-min-device-pixel-ratio: 0){.o_highscore .o_position h2{background:linear-gradient(330deg, #e05252 0%, #99e052 25%, #52e0e0 50%, #9952e0 75%, #e05252 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline}.o_highscore .o_position h2:after{content:"\A";white-space:pre}}.o_highscore .o_position_relative{font-size:1em;font-weight:normal}.o_highscore .o_podium{position:relative;vertical-align:bottom;height:300px;margin-bottom:50px}.o_highscore .o_rank{width:30%;position:absolute;bottom:0;text-shadow:rgba(102,102,102,0.5) 0 -1px 0,rgba(255,255,255,0.6) 0 2px 1px}.o_highscore .o_rank:before{position:absolute;bottom:0;left:0;width:100%;text-align:center}.o_highscore .o_rank .o_name{position:absolute;top:100%;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:1em;text-shadow:none}.o_highscore .o_rank .o_score{color:#777;font-size:90%;width:100%;text-align:center;position:absolute;top:-20px;text-shadow:none}.o_highscore .o_rank .o_singleportrait{position:absolute;width:100%;text-align:center;top:-125px}.o_highscore .o_rank .o_rank_portraits{position:relative;left:0;top:-210px;height:180px;width:200px;text-align:center;vertical-align:bottom;display:table-cell}.o_highscore .o_rank .o_rank_portraits ul{display:inline-block}.o_highscore .o_rank .o_rank_portraits .o_portrait{margin:5px}.o_highscore .o_first{height:150px;left:30%;border:1px solid #d9d9d9;border-top-left-radius:4px;border-top-right-radius:4px;background:gold;background:-moz-linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);background:-webkit-linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);background:linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 )}.o_highscore .o_first:before{content:"1";font-size:700%;line-height:150px;color:#666}.o_highscore .o_second{height:100px;left:0;background:silver;background:-moz-linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);background:-webkit-linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);background:linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 );border-left:1px solid #d9d9d9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;border-top-left-radius:4px}.o_highscore .o_second:before{content:"2";font-size:500%;line-height:100px;color:#666}.o_highscore .o_third{height:80px;left:60%;background:#cd7f32;background:-moz-linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);background:-webkit-linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);background:linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 );border-right:1px solid #d9d9d9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;border-top-right-radius:4px}.o_highscore .o_third:before{content:"3";font-size:300%;line-height:80px;color:#666}.o_highscore .o_histogram{position:relative;bottom:-40px;margin-bottom:40px}.o_highscore .o_histogram .d3chart{width:100%;padding-top:50px;height:300px}.o_highscore .o_histogram .d3chart text{fill:#888}.o_highscore .o_histogram .d3chart .axis path,.o_highscore .o_histogram .d3chart .axis line{stroke:#888}.o_highscore .o_histogram .d3chart .o_myself{fill:#209d9e}.o_highscore .o_histogram .d3chart .o_myself:hover{fill:#29c7c8}.o_highscore .o_histogram .d3chart .o_other{fill:#777}.o_highscore .o_histogram .d3chart .o_other:hover{fill:#919191}.o_highscore .o_histogram .d3chart .o_empty{fill:#000}.o_listing .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_listing table th:nth-of-type(1),.o_listing table th :nth-of-type(2){width:5em}.o_navbar-brand{background-image:url("images/OpenOlat_Logo_RGB.svg");background-position:-35px -62px;background-size:250px;background-repeat:no-repeat;height:50px;width:60px}#o_print_brand .o_navbar-brand{background-image:url("images/OpenOlat_Logo_RGB.svg")}.o_cmembers_print #o_print_brand{width:5cm}#o_body.o_dmz .o_navbar-brand{display:none}#o_body.o_dmz .o_login .o_login_intro{position:relative;text-align:center}#o_body.o_dmz .o_login .o_login_intro:before{content:' ';display:inline-block;background-image:url("images/OpenOlat_Logo_claim_RGB.svg");background-repeat:no-repeat;background-position:0px -110px;background-size:100%;width:400px;max-width:100%;height:90px}#o_body.o_dmz .o_login .o_login_intro h1{display:none}@media (min-width: 767px){#o_body.o_dmz #o_bg{background-position:top left;border-top:0;border-bottom:0}#o_body.o_dmz #o_navbar_wrapper{border:0}#o_body.o_dmz .o_login{background:rgba(255,255,255,0.8);width:480px;left:10%;padding:40px;border-radius:20px;position:relative}#o_body.o_dmz .o_login .o_login_intro{padding-top:120px}#o_body.o_dmz .o_login .o_login_intro:before{position:absolute;top:0;left:-25px;background-position:-40px -150px;background-size:510px;width:460px;height:110px}#o_body.o_dmz .o_infomessage_wrapper{background:rgba(255,255,255,0.8);left:500px;width:400px;top:-30px;width:400xp;position:absolute;border-radius:20px}#o_body.o_dmz #o_navbar_wrapper{background:transparent}#o_body.o_dmz .o_navbar-nav>li>a,#o_body.o_dmz #o_footer_wrapper a{color:#FFF}#o_body.o_dmz .o_navbar-nav>li>a:hover,#o_body.o_dmz #o_footer_wrapper a:hover{background-color:transparent}#o_body.o_dmz #o_footer_wrapper{background:linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.2) 40%, rgba(0,0,0,0.5) 100%);border:0;height:100px;padding-top:30px}#o_body.o_dmz #o_footer_container{background:transparent;color:#FFF}#o_body.o_dmz #o_share_social_container a{color:#209d9e}#o_body.o_dmz #o_share_social_container a:hover{color:#177374}}#o_footer_wrapper{border-top:1px solid #e6e6e6}
+**//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:14px;line-height:1.428571429;color:#2d2926;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#209d9e;text-decoration:none}a:hover,a:focus{color:#177374;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail,.o_form .o_filepreview img,.o_feed .o_media{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,.o_cal .fc-header-title h2,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:#342c24}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,.o_cal .fc-header-title h2 small,h4 .small,.o_cal .fc-header-title h2 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.o_cal .fc-header-title h2,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.o_cal .fc-header-title h2 small,h4 .small,.o_cal .fc-header-title h2 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.o_cal .fc-header-title h2,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#209d9e}a.text-primary:hover{color:#177374}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff}.bg-primary{background-color:#209d9e}a.bg-primary:hover{background-color:#177374}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.428571429;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width: 767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;background-color:#fcfcfc;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#fafafa;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px}input[type="date"].input-sm,.input-group-sm>input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,input[type="time"].input-sm,.input-group-sm>input[type="time"].form-control,.input-group-sm>input[type="time"].input-group-addon,.input-group-sm>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-sm,.input-group-sm>input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].input-group-addon,.input-group-sm>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-sm,.input-group-sm>input[type="month"].form-control,.input-group-sm>input[type="month"].input-group-addon,.input-group-sm>.input-group-btn>input[type="month"].btn{line-height:30px}input[type="date"].input-lg,.input-group-lg>input[type="date"].form-control,.input-group-lg>input[type="date"].input-group-addon,.input-group-lg>.input-group-btn>input[type="date"].btn,input[type="time"].input-lg,.input-group-lg>input[type="time"].form-control,.input-group-lg>input[type="time"].input-group-addon,.input-group-lg>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-lg,.input-group-lg>input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].input-group-addon,.input-group-lg>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-lg,.input-group-lg>input[type="month"].form-control,.input-group-lg>input[type="month"].input-group-addon,.input-group-lg>.input-group-btn>input[type="month"].btn{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"].disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"].disabled,fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,fieldset[disabled] .radio-inline,.checkbox-inline.disabled,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,fieldset[disabled] .radio label,.checkbox.disabled label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn,.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,.form-group-sm .form-control,select[multiple].input-sm,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn,.form-group-sm .form-control{height:auto}.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn,.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,.form-group-lg .form-control,select[multiple].input-lg,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn,.form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label ~ .form-control-feedback{top:25px}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#726860}@media (min-width: 768px){.form-inline .form-group,.o_navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control,.o_navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static,.o_navbar-form .form-control-static{display:inline-block}.form-inline .input-group,.o_navbar-form .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.o_navbar-form .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.o_navbar-form .input-group .input-group-btn,.form-inline .input-group .form-control,.o_navbar-form .input-group .form-control{width:auto}.form-inline .input-group>.form-control,.o_navbar-form .input-group>.form-control{width:100%}.form-inline .control-label,.o_navbar-form .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.o_navbar-form .radio,.form-inline .checkbox,.o_navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.o_navbar-form .radio label,.form-inline .checkbox label,.o_navbar-form .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.o_navbar-form .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"],.o_navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback,.o_navbar-form .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width: 768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width: 768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width: 768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn.focus,.btn:active:focus,.btn:active.focus,.btn.active:focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fcfcfc;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e3e3e3;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#fcfcfc;border-color:#ccc}.btn-default .badge{color:#fcfcfc;background-color:#333}.btn-primary{color:#fff;background-color:#209d9e;border-color:#1c8889}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#209d9e;border-color:#1c8889}.btn-primary .badge{color:#209d9e;background-color:#fff}.btn-success{color:#fff;background-color:#78be20;border-color:#6aa81c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#5c9219;border-color:#497414}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled].active,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:#78be20;border-color:#6aa81c}.btn-success .badge{color:#78be20;background-color:#fff}.btn-info{color:#fff;background-color:#a6a6a6;border-color:#999}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#8d8d8d;border-color:#7b7b7b}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#a6a6a6;border-color:#999}.btn-info .badge{color:#a6a6a6;background-color:#fff}.btn-warning{color:#fff;background-color:#f2af40;border-color:#f0a528}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ef9b10;border-color:#cd850e}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#f2af40;border-color:#f0a528}.btn-warning .badge{color:#f2af40;background-color:#fff}.btn-danger{color:#fff;background-color:#d6001c;border-color:#bd0019}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#a30015;border-color:#7f0011}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#d6001c;border-color:#bd0019}.btn-danger .badge{color:#d6001c;background-color:#fff}.btn-link{color:#209d9e;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#177374;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fcfcfc;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#209d9e}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#209d9e}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#209d9e}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width: 768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width: 480px) and (orientation: landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (min-width: 768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width: 767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width: 768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm,.btn-group-sm>.navbar-btn.btn{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs,.btn-group-xs>.navbar-btn.btn{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right ~ .navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:hover,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#090909;color:#fff}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:hover,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#209d9e;background-color:#fcfcfc;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#177374;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fcfcfc;background-color:#209d9e;border-color:#209d9e;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fcfcfc;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fcfcfc;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#209d9e}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#177374}.label-success{background-color:#78be20}.label-success[href]:hover,.label-success[href]:focus{background-color:#5c9219}.label-info{background-color:#a6a6a6}.label-info[href]:hover,.label-info[href]:focus{background-color:#8d8d8d}.label-warning{background-color:#f2af40}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ef9b10}.label-danger{background-color:#d6001c}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#a30015}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#209d9e;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.jumbotron,.o_repo_details .o_lead{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{color:#342c24}.jumbotron p,.o_repo_details .o_lead p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr,.o_repo_details .o_lead>hr{border-top-color:#d5d5d5}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead,.container-fluid .jumbotron,.container-fluid .o_repo_details .o_lead,.o_repo_details .container-fluid .o_lead{border-radius:6px}.jumbotron .container,.o_repo_details .o_lead .container{max-width:100%}@media screen and (min-width: 768px){.jumbotron,.o_repo_details .o_lead{padding:48px 0}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead,.container-fluid .jumbotron,.container-fluid .o_repo_details .o_lead,.o_repo_details .container-fluid .o_lead{padding-left:60px;padding-right:60px}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#2d2926}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#209d9e}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4,.alert .o_cal .fc-header-title h2,.o_cal .fc-header-title .alert h2{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#209d9e;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#78be20}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#a6a6a6}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f2af40}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d6001c}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fcfcfc;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#209d9e;border-color:#209d9e}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#9febeb}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fcfcfc;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table,.panel-collapse>.table,.panel-collapse>.table-responsive>.table,.panel-collapse>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption,.panel-collapse>.table caption,.panel-collapse>.table-responsive>.table caption,.panel-collapse>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child,.panel-collapse>.table:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child,.panel-collapse>.table:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body,.panel-collapse>.panel-body+.table,.panel-collapse>.panel-body+.table-responsive,.panel-collapse>.table+.panel-body,.panel-collapse>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td,.panel-collapse>.table>tbody:first-child>tr:first-child th,.panel-collapse>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered,.panel-collapse>.table-bordered,.panel-collapse>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive,.panel-collapse>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#209d9e}.panel-primary>.panel-heading{color:#fff;background-color:#209d9e;border-color:#209d9e}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#209d9e}.panel-primary>.panel-heading .badge{color:#209d9e;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#209d9e}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body div.popover input{max-width:100%}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}.panel-body:nth-child(n+2){border-top:1px solid #ddd}.panel .panel-heading[data-toggle="collapse"]{cursor:pointer}#o_ajax_busy_backdrop{bottom:0;z-index:1020}.form-control-feedback{top:10px}.form-horizontal .has-feedback .form-control-feedback{top:10px}.btn.btn-primary.o_disabled{color:#fff !important}body .progress-bar[aria-valuenow="1"],body .progress-bar[aria-valuenow="2"]{min-width:1px}td.text-left>div.form-inline>label.checkbox-inline>input[type='checkbox'],td.text-left>div.o_navbar-form>label.checkbox-inline>input[type='checkbox']{position:relative}@-moz-document url-prefix(){fieldset{display:table-cell}}@media screen and (max-width: 768px){@supports (-webkit-overflow-scrolling: touch){.form-control,.ui-widget input,.ui-widget select,.ui-widget textarea{font-size:16px}}}@font-face{font-family:'openolat';src:url("../light/fonts/openolat/openolat.eot?4yacgg");src:url("../light/fonts/openolat/openolat.woff") format("woff"),url("../light/fonts/openolat/openolat.ttf") format("truetype"),url("../light/fonts/openolat/openolat.svg") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot");src:url("../../font-awesome/fonts/fontawesome-webfont.woff2") format("woff2"),url("../../font-awesome/fonts/fontawesome-webfont.woff") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf") format("truetype");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.2857142857em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.o_icon-li.o_icon-lg{left:-1.8571428571em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.o_icon-pull-left{float:left}.o_icon-pull-right{float:right}.o_icon.o_icon-pull-left{margin-right:.3em}.o_icon.o_icon-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.o_icon.pull-left{margin-right:.3em}.o_icon.pull-right{margin-left:.3em}.o_icon-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.o_icon-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .o_icon-rotate-90,:root .o_icon-rotate-180,:root .o_icon-rotate-270,:root .o_icon-flip-horizontal,:root .o_icon-flip-vertical{filter:none}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon_absence:before{content:""}.o_icon_absence_authorized:before{content:"";color:#78be20}.o_icon_absence_unauthorized:before{content:"";color:#d6001c}.o_icon_accepted:before{content:""}.o_icon_accessibility:before{content:""}.o_icon_actions:before{content:""}.o_icon_add_html:before{content:""}.o_icon_align_left:before{content:""}.o_icon_align_middle:before{content:""}.o_icon_align_right:before{content:""}.o_icon_archive_tool:before{content:""}.o_icon_assessment_mode:before{content:""}.o_icon_assessment_tool:before{content:""}.o_icon_assignment:before{content:"";color:#d6001c}.o_icon_attempt_limit:before{content:""}.o_icon_accept:before{content:"";color:#78be20}.o_icon_add:before{content:""}.o_icon_add_member:before{content:""}.o_icon_add_search:before{content:""}.o_icon_audio:before{content:""}.o_icon_back:before{content:""}.o_icon_back_history:before{content:""}.o_icon_banned:before{content:"";color:#d6001c}.o_icon_bold:before{content:""}.o_icon_booking:before{content:""}.o_icon_bookmark:before{content:"";color:#8f1f40}.o_icon_bookmark_add:before{content:"";color:#8f1f40}.o_icon_bookmark_header:before{content:""}.o_icon_browse:before{content:""}.o_icon_brush:before{content:""}.o_icon_browsercheck:before{content:""}.o_icon_busy:before{content:""}.o_icon_calendar:before{content:""}.o_icon_calendar_enabled:before{content:""}.o_icon_calendar_disabled:before{content:""}.o_icon_calendar:before{content:""}.o_icon_calendar_sync:before{content:""}.o_icon_cancelled:before{content:""}.o_icon_caret:before{content:""}.o_icon_caret_right:before{content:""}.o_icon_catalog:before{content:""}.o_icon_catalog_sub:before{content:""}.o_icon_certificate:before{content:""}.o_icon_chat:before{content:""}.o_icon_check:before{content:""}.o_icon_check_off:before{content:""}.o_icon_check_on:before{content:""}.o_icon_checkbox:before{content:""}.o_icon_checkbox_checked:before{content:""}.o_icon_circle:before{content:""}.o_icon_circle_color:before{content:""}.o_icon_citation:before{content:""}.o_icon_cleanup:before{content:""}.o_icon_clear_all:before{content:""}.o_icon_close:before{content:""}.o_icon_close_resource:before{content:""}.o_icon_close_tab:before{content:""}.o_icon_close_tool:before{content:""}.o_icon_close_tree:before{content:""}.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before,.o_search_result .o_opener.o_in i:before{content:""}.o_icon_code:before{content:""}.o_icon_color_picker:before{content:""}.o_icon_column:before{content:""}.o_icon_columns:before{content:""}.o_icon_container:before{content:""}.o_icon_copy:before{content:""}.o_icon_courseareas:before{content:""}.o_icon_coursedb:before{content:""}.o_icon_courseeditor:before{content:""}.o_icon_coursefolder:before{content:""}.o_icon_courserun:before{content:""}.o_icon_comments:before{content:""}.o_icon_comments_none:before{content:""}.o_icon_compress:before{content:""}.o_icon_compulsory:before{content:""}.o_icon_content_popup:before{content:""}.o_icon_correct_answer:before{content:"";color:#78be20}.o_icon_correct_response:before{content:"";color:#78be20}.o_icon_correction:before{content:""}.o_icon_curriculum_element:before{content:""}.o_icon_customize:before{content:""}.o_icon_delete_item:before{content:""}.o_icon_delete:before{content:"";color:#A87E7E}.o_icon_deleted:before{content:""}.o_icon_details:before{content:""}.o_icon_description:before{content:""}.o_icon_dev:before{content:""}.o_icon_disabled:before{content:""}.o_icon_dispensation_authorized:before{content:"";color:#78be20}.o_icon_dispensation_unauthorized:before{content:"";color:#f2af40}.o_icon_download:before{content:""}.o_icon_edit:before{content:""}.o_icon_edit_file:before{content:""}.o_icon_edit_metadata:before{content:""}.o_icon_element_after:before{content:""}.o_icon_element_before:before{content:""}.o_icon_enabled:before{content:""}.o_icon_enlarge:before{content:""}.o_icon_eportfolio_add:before{content:""}.o_icon_eportfolio_link:before{content:""}.o_icon_eraser:before{content:""}.o_icon_error:before{content:"";color:#d6001c}.o_icon_expand:before{content:""}.o_icon_expenditure:before{content:""}.o_icon_export:before{content:""}.o_icon_external_link:before{content:""}.o_icon_extra_time:before{content:""}.o_icon_failed:before{content:""}.o_icon_files:before{content:""}.o_icon_fileupload:before{content:""}.o_icon_filter:before{content:""}.o_icon_graduate:before{content:""}.o_icon_group:before,.o_BusinessGroup_icon:before{content:""}.o_icon_header:before{content:""}.o_icon_help:before{content:"";cursor:help}.o_icon_home:before{content:""}.o_icon_image:before{content:""}.o_icon_impress:before{content:""}.o_icon_important:before{content:"";color:#f2af40}.o_icon_import:before{content:""}.o_icon_incorrect_response:before{content:"";color:#d6001c}.o_icon_info:before{content:"";color:#a6a6a6}.o_icon_info_msg:before{content:"";color:#d6001c}.o_icon_info_resource:before{content:""}.o_icon_inheritance_root:before{content:""}.o_icon_inheritance_inherited:before{content:""}.o_icon_inheritance_none:before{content:""}.o_icon_inline_editable:before{content:""}.o_icon_institution:before{content:""}.o_icon_italic:before{content:""}.o_icon_landingpage:before{content:""}.o_icon_language:before{content:""}.o_icon_layout:before{content:""}.o_icon_lecture:before{content:""}.o_icon_left:before{content:""}.o_icon_levels:before{content:""}.o_icon_line:before{content:""}.o_icon_link:before{content:""}.o_icon_link_extern:before{content:""}.o_icon_list:before{content:""}.o_icon_list_num:before{content:""}.o_icon_lifecycle:before{content:""}.o_icon_lifecycle_date:before{content:""}.o_icon_locked:before{content:""}.o_icon_log:before{content:""}.o_icon_login:before{content:""}.o_icon_logout:before{content:""}.o_icon_mandatory:before{content:"";color:#f0ad4e}.o_icon_managed:before{content:"";color:#777}.o_icon_manual:before{content:"";cursor:help}.o_icon_mail:before{content:""}.o_icon_math:before{content:"\03a3"}.o_icon_media:before{content:""}.o_icon_mediacenter:before{content:""}.o_icon_membersmanagement:before{content:""}.o_icon_menuhandel:before{content:""}.o_icon_message:before{content:""}.o_icon_mobile:before{content:""}.o_icon_move:before{content:""}.o_icon_move_down:before{content:""}.o_icon_move_left:before{content:""}.o_icon_move_right:before{content:""}.o_icon_move_up:before{content:""}.o_icon_ms_done:before{content:""}.o_icon_ms_pending:before{content:""}.o_icon_new:before{content:"";color:#78be20}.o_icon_new_document:before{content:""}.o_icon_new_folder:before{content:""}.o_icon_new_portfolio:before{content:""}.o_icon_news:before{content:""}.o_icon_next:before{content:""}.o_icon_next_step:before{content:""}.o_icon_next_page:before{content:""}.o_icon_next_toolbar:before{content:""}.o_icon_node_after:before{content:""}.o_icon_node_before:before{content:""}.o_icon_node_under:before{content:""}.o_icon_node_up_down:before{content:""}.o_icon_notes:before{content:""}.o_icon_notice_authorized:before{content:"";color:#78be20}.o_icon_notice_unauthorized:before{content:"";color:#f2af40}.o_icon_notification:before{content:""}.o_icon_number_of:before{content:""}.o_icon_ok:before{content:"";color:#78be20}.o_icon_open_tree:before{content:""}.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before,.o_search_result .o_opener i:before{content:""}.o_icon_openolat:before,.o_icon_provider_olat:before{content:"\E600";font-family:openolat;font-size:10px}.o_icon_options:before{content:""}.o_icon_origin:before{content:""}.o_icon_others:before{content:""}.o_icon_pageing:before{content:""}.o_icon_paragraph:before{content:""}.o_icon_passed:before{content:""}.o_icon_password:before{content:""}.o_icon_pending:before{content:""}.o_icon_phone:before{content:""}.o_icon_post:before{content:""}.o_icon_presence:before{content:""}.o_icon_preview:before{content:""}.o_icon_previous:before{content:""}.o_icon_previous_page:before{content:""}.o_icon_previous_step:before{content:""}.o_icon_previous_toolbar:before{content:""}.o_icon_print:before{content:""}.o_icon_private:before{content:""}.o_icon_progress_success:before{content:"";color:#e5efe5}.o_icon_progress_danger:before{content:"";color:#efe5e5}.o_icon_provider_adfs:before{content:""}.o_icon_provider_facebook:before{content:""}.o_icon_provider_google:before{content:""}.o_icon_provider_guest:before{content:""}.o_icon_provider_ldap:before{content:""}.o_icon_provider_linkedin:before{content:""}.o_icon_provider_oauth:before{content:""}.o_icon_provider_openid:before{content:""}.o_icon_provider_performx:before{content:""}.o_icon_provider_shibboleth:before{content:""}.o_icon_provider_tequila:before{content:""}.o_icon_provider_twitter:before{content:""}.o_icon_publish:before{content:""}.o_icon_pull:before{content:""}.o_icon_quota:before{content:""}.o_icon_qrcode:before{content:""}.o_icon_quickview:before{content:""}.o_icon_radio_off:before{content:""}.o_icon_radio_on:before{content:""}.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:""}.o_icon_rating_off:before{content:""}.o_icon_read:before{content:""}.o_icon_readonly:before{content:"";color:red}.o_icon_readwrite:before{content:""}.o_icon_recycle:before{content:""}.o_icon_rectangle:before{content:""}.o_icon_redo:before{content:""}.o_icon_refresh:before{content:""}.o_icon_reject:before{content:"";color:#d6001c}.o_icon_rejected:before{content:""}.o_icon_reminder:before{content:""}.o_icon_remove:before{content:""}.o_icon_remove_filters:before{content:""}.o_icon_reopen:before{content:""}.o_icon_replace:before{content:""}.o_icon_reply:before{content:""}.o_icon_reply_with_quote:before{content:""}.o_icon_reset:before{content:""}.o_icon_response_feedback:before{content:""}.o_icon_restore:before{content:""}.o_icon_results_visible:before{content:""}.o_icon_results_hidden:before{content:""}.o_icon_reviewer:before{content:""}.o_icon_right:before{content:""}.o_icon_rss:before{content:""}.o_icon_rss_unsubscribe:before{content:"";color:#996633}.o_icon_rubric:before{content:""}.o_icon_rubric_insufficient:before{content:"";color:#d6001c}.o_icon_rubric_sufficient:before{content:"";color:#78be20}.o_icon_rubric_neutral:before{content:"";color:#f2af40}.o_icon_save:before{content:""}.o_icon_search:before{content:""}.o_icon_select:before{content:""}.o_icon_send:before{content:""}.o_icon_settings:before{content:""}.o_icon_share:before{content:""}.o_icon_show_more:before{content:""}.o_icon_show_less:before{content:""}.o_icon_show_send:before{content:""}.o_icon_shuffle:before{content:""}.o_icon_sign_out:before{content:""}.o_icon_slide_down:before{content:""}.o_icon_slide_up:before{content:""}.o_icon_spacer:before{content:""}.o_icon_split:before{content:""}.o_icon_sort:before{content:""}.o_icon_sort_asc:before{content:""}.o_icon_sort_desc:before{content:""}.o_icon_sort_amount_asc:before{content:""}.o_icon_sort_amount_desc:before{content:""}.o_icon_sort_menu:before{content:""}.o_icon_start:before{content:""}.o_icon_status_available:before{content:"";color:#063}.o_icon_status_chat:before{content:""}.o_icon_status_dnd:before{content:"";color:#cc3}.o_icon_status_unavailable:before{content:"";color:#963}.o_icon_status_not_started:before{content:""}.o_icon_status_in_progress:before{content:""}.o_icon_status_in_review:before{content:""}.o_icon_status_done:before{content:""}.o_icon_statistics_tool:before{content:""}.o_icon_submit:before{content:""}.o_icon_table:before{content:""}.o_icon_table_custom:before{content:""}.o_icon_table_large:before{content:""}.o_icon_tags:before{content:""}.o_icon_textinput:before{content:""}.o_icon_time:before{content:""}.o_icon_timelimit:before{content:""}.o_icon_timelimit_start:before{content:""}.o_icon_timelimit_half:before{content:""}.o_icon_timelimit_end:before{content:""}.o_icon_timetable:before{content:""}.o_icon_toggle:before{content:""}.o_icon_toggle_on:before{content:""}.o_icon_toggle_off:before{content:""}.o_icon_to_read:before{content:""}.o_icon_tool:before{content:""}.o_icon_tool_pdf:before{content:""}.o_icon_tools:before{content:""}.o_icon_top:before{content:""}.o_icon_translation_item:before{content:""}.o_icon_translation_package:before{content:""}.o_icon_unlocked:before{content:""}.o_icon_undo:before{content:""}.o_icon_user:before{content:""}.o_icon_user_vip:before{content:""}.o_icon_user_anonymous:before{content:""}.o_icon_update:before{content:""}.o_icon_upload:before{content:""}.o_icon_version:before{content:""}.o_icon_video:before{content:""}.o_icon_visitingcard.o_icon_waiting:before{content:""}.o_icon_warn:before{content:"";color:#f2af40}.o_icon_width_expand:before{content:""}.o_icon_width_collapse:before{content:""}.o_icon_wizard:before{content:""}.o_icon_xing:before{content:"";color:#cfdc00}.o_BinderTemplate_icon:before{content:""}.o_CourseModule_icon:before,.o_course_icon:before{content:""}.o_EPStructuredMapTemplate_icon:before{content:""}.o_FileResource-BLOG_icon:before{content:""}.o_FileResource-IMSCP_icon:before{content:""}.o_FileResource-FORM_icon:before{content:""}.o_FileResource-PODCAST_icon:before{content:""}.o_FileResource-SHAREDFOLDER:before{content:""}.o_FileResource-SCORMCP_icon:before{content:""}.o_FileResource-SURVEY_icon:before{content:""}.o_FileResource-TEST_icon:before{content:""}.o_FileResource-IMSQTI21_icon:before{content:""}.o_FileResource-WIKI_icon:before{content:""}.o_FileResource-SHAREDFOLDER_icon:before{content:""}.o_FileResource-GLOSSARY_icon:before{content:""}.o_FileResource-PDF_icon:before{content:""}.o_FileResource-XLS_icon:before{content:""}.o_FileResource-PPT_icon:before{content:""}.o_FileResource-DOC_icon:before{content:""}.o_FileResource-ANIM_icon:before{content:""}.o_FileResource-IMAGE_icon:before{content:""}.o_FileResource-SOUND_icon:before{content:""}.o_FileResource-MOVIE_icon:before{content:""}.o_FileResource-FILE_icon:before{content:""}.o_FileResource-VIDEO_icon:before{content:""}.o_CourseModule_icon_closed:before{content:""}.o_icon_repo_status_preparation:before{content:""}.o_icon_repo_status_review:before{content:""}.o_icon_repo_status_coachpublished:before{content:""}.o_icon_repo_status_published:before{content:""}.o_icon_repo_status_closed:before{content:""}.o_icon_repo_status_trash:before{content:""}.o_icon_repo_status_deleted:before{content:""}.o_sp_icon:before{content:""}.o_st_icon:before{content:""}.o_tu_icon:before{content:""}.o_bc_icon:before{content:""}.o_lti_icon:before{content:""}.o_cp_icon:before{content:""}.o_cp_item:before{content:""}.o_scorm_icon:before{content:""}.o_en_icon:before{content:""}.o_fo_icon:before{content:""}.o_co_icon:before{content:""}.o_infomsg_icon:before{content:""}.o_cal_icon:before{content:""}.o_wiki_icon:before{content:""}.o_podcast_icon:before{content:""}.o_pf_icon:before{content:""}.o_blog_icon:before{content:""}.o_ep_icon:before{content:""}.o_ep_icon_v1:before{content:""}.o_iqtest_icon:before{content:""}.o_iqself_icon:before{content:""}.o_iqsurv_icon:before{content:""}.o_survey_icon:before{content:""}.o_qtiassessment_icon:before{content:""}.o_ta_icon:before{content:""}.o_gta_icon:before{content:""}.o_ms_icon:before{content:""}.o_dialog_icon:before{content:""}.o_projectbroker_icon:before{content:""}.o_ll_icon:before{content:""}.o_den_icon:before{content:""}.o_cmembers_icon:before{content:""}.o_cl_icon:before{content:""}.o_vc_icon:before{content:""}.o_video_icon:before{content:""}.o_vitero_icon:before{content:""}.o_openmeetings_icon:before{content:""}.o_gotomeeting_icon:before{content:""}.o_card2brain_icon:before{content:"\E800";font-family:openolat;font-size:120%}.o_edubase_icon:before{content:"\E885";font-family:openolat}.o_livestream_icon:before{content:""}.o_portlet_infomsg_icon:before{content:""}.o_portlet_quickstart_icon:before{content:""}.o_portlet_bookmark_icon:before{content:""}.o_portlet_groups_icon:before{content:""}.o_portlet_notes_icon:before{content:""}.o_portlet_noti_icon:before{content:""}.o_portlet_eff_icon:before{content:""}.o_portlet_repository_student_icon:before{content:""}.o_portlet_repository_teacher_icon:before{content:""}.o_portlet_iframe_icon:before{content:""}.o_portlet_sysinfo_icon:before{content:""}.o_portlet_dyk_icon:before{content:""}.o_portlet_infomessages_icon:before{content:""}.o_portlet_cal_icon:before{content:""}.o_portlet_institutions_icon:before{content:""}.o_portlet_links_icon:before{content:""}.o_portlet_shibboleth_icon:before{content:""}.o_icon_qpool:before{content:""}.o_icon_pool_private:before{content:""}.o_icon_pool_public:before{content:""}.o_icon_pool_my_items:before{content:""}.o_icon_pool_favorits:before{content:""}.o_icon_pool_collection:before{content:""}.o_icon_pool_pool:before{content:""}.o_icon_pool_share:before{content:""}.o_icon_qitem_commands:before{content:""}.o_icon_qitem_convert:before{content:""}.o_icon_qitem_copy:before{content:""}.o_icon_qitem_delete:before{content:""}.o_icon_qitem_draft:before{content:""}.o_icon_qitem_endOfLife:before{content:""}.o_icon_qitem_finalVersion:before{content:""}.o_icon_qitem_export:before{content:""}.o_icon_qitem_hide_metadata:before{content:""}.o_icon_qitem_import:before{content:""}.o_icon_qitem_new:before{content:""}.o_icon_qitem_review:before{content:""}.o_icon_qitem_revised:before{content:""}.o_icon_qitem_share:before{content:""}.o_icon_qitem_show_metadata:before{content:""}.o_icon_qitem_status:before{content:""}.o_forum_message_icon:before{content:""}.o_calendar_icon:before{content:""}.o_icon_pf_section_draft:before{content:"";color:#f2af40}.o_icon_pf_section_progress:before{content:"";color:#f2af40}.o_icon_pf_section_submitted:before{content:"";color:#209d9e}.o_icon_pf_section_closed:before{content:"";color:#78be20}.o_icon_pf_binder:before{content:""}.o_icon_pf_entry:before{content:""}.o_icon_pf_entry_draft:before{content:"";color:#f2af40}.o_icon_pf_entry_published:before{content:"";color:#209d9e}.o_icon_pf_entry_revision:before{content:"";color:#d6001c}.o_icon_pf_entry_closed:before{content:"";color:#78be20}.o_icon_pf_entry_deleted:before{content:"";color:#000}.o_icon_pf_history:before{content:""}.o_icon_pf_my_shares:before{content:""}.o_icon_pf_new_entry:before{content:""}.o_icon_pf_quick_links:before{content:""}.o_icon_pf_page:before{content:""}.o_icon_pf_section:before{content:""}.o_icon_pf_shared_with_me:before{content:""}.o_icon_pf_trash:before{content:""}.o_forum_status_thread_icon:before{content:""}.o_forum_status_sticky_closed_icon:before{content:""}.o_forum_status_sticky_icon:before{content:""}.o_forum_status_closed_icon:before{content:"";color:#a94442}.o_forum_status_opened_icon:before{content:"";color:#3c763d}.o_forum_status_hidden_icon:before{content:"";color:#a94442}.o_forum_status_visible_icon:before{content:"";color:#3c763d}.o_forum_all_icon:before{content:""}.o_forum_all_flat_icon:before{content:""}.o_forum_one_icon:before{content:""}.o_forum_marked_icon:before{content:""}.o_forum_new_icon:before{content:""}.o_mi_qpool_import:before{content:""}.o_mi_qtidrawing:before{content:""}.o_mi_qtisection:before{content:""}.o_mi_qtisc:before{content:""}.o_mi_qtimatch:before{content:""}.o_mi_qtimatch_draganddrop:before{content:""}.o_mi_qtimatch_truefalse:before{content:""}.o_mi_qtimc:before{content:""}.o_mi_qtikprim:before{content:""}.o_mi_qtifib:before{content:""}.o_mi_qtinumerical:before{content:""}.o_mi_qtihotspot:before{content:""}.o_mi_qtihottext:before{content:""}.o_mi_qtiessay:before{content:""}.o_mi_qtiunkown:before{content:""}.o_mi_qtiupload:before{content:""}.o_as_mode_leadtime:before{content:""}.o_as_mode_assessment:before{content:""}.o_as_mode_followup:before{content:""}.o_as_mode_closed:before{content:'-'}.o_as_mode_stop:before{content:""}.o_icon_qti_notPresented:before{content:"";color:#ddd}.o_icon_qti_notAnswered:before{content:"";color:#f2af40}.o_icon_qti_answered:before{content:"";color:#78be20}.o_icon_qti_ended:before{content:"";color:#a6a6a6}.o_icon_qti_invalid:before{content:"";color:#d6001c}.o_icon_qti_review:before{content:"";color:#a6a6a6}.o_icon_qti_reviewNotSeen:before,.o_icon_qti_reviewNotAnswered:before,.o_icon_qti_reviewInvalid:before{content:"";color:#a6a6a6}.o_icon_qti_end_testpart:before{content:""}.o_icon_qti_close_test:before{content:""}.o_icon_qti_cancel:before{content:""}.o_icon_qti_suspend:before{content:""}.o_icon_qti_close_results:before{content:""}.o_icon_qti_hint:before{content:""}.o_icon_qti_summary_notAnswered:before{content:"";color:#f2af40}.o_icon_qti_summary_ended:before{content:"";color:#d6001c}.o_icon_qti_summary_correct:before{content:"";color:#78be20}.o_lectures_current:before{content:"";color:#f2af40}.o_lectures_next:before{content:""}.o_lectures_pending:before{content:"";color:#d6001c}.o_lectures_closed:before{content:""}.o_lectures_rollcall_ok:before{content:"";color:#78be20}.o_lectures_rollcall_warning:before{content:"";color:#f2af40}.o_lectures_rollcall_danger:before{content:"";color:#d6001c}.o_lectures_rollcall_free:before{content:"";color:#969696}.o_lectures_rollcall_notice:before{content:"";color:#969696}.o_lectures_rollcall_pending:before{content:"";color:#b8b8b8}.o_lectures_attended:before{content:"";color:#78be20}.o_lectures_authorized:before{content:"";color:#f2af40}.o_lectures_absent:before{content:"";color:#d6001c}.o_absences_col_warning:before{content:""}.o_absences_col_alert:before{content:""}.o_icon_taxonomy:before{content:""}.o_icon_taxonomy_level:before{content:""}.o_icon_taxonomy_level_leaf:before{content:""}.o_icon_taxonomy_templates:before{content:""}.o_icon_taxonomy_levels:before{content:""}.o_black_led:before{content:"";color:#209d9e}.o_green_led:before{content:"";color:#78be20}.o_yellow_led:before{content:"";color:#f2af40}.o_red_led:before{content:"";color:#d6001c}.o_icon_identity_permanent:before{content:""}.o_icon_identity_pending:before{content:""}.o_icon_identity_login_denied:before{content:""}.o_icon_identity_deleted:before{content:""}.o_ac_token_icon:before{content:""}.o_ac_free_icon:before{content:""}.o_ac_group_icon:before{content:""}.o_ac_membersonly_icon:before{content:""}.o_ac_guests_icon:before{content:""}.o_ac_paypal_icon:before{content:""}.o_ac_status_canceled_icon:before{content:"";color:#f2af40}.o_ac_status_error_icon:before{content:"";color:#d6001c}.o_ac_status_new_icon:before{content:"";color:#209d9e}.o_ac_status_success_icon:before{content:"";color:#78be20}.o_ac_status_waiting_icon:before{content:"";color:#209d9e}.o_ac_order_status_new_icon:before{content:"";color:#209d9e}.o_ac_order_status_prepayment_icon:before{content:"";color:#a6a6a6}.o_ac_order_status_payed_icon:before{content:"";color:#78be20}.o_ac_order_status_canceled_icon:before{content:"";color:#f2af40}.o_ac_order_status_error_icon:before{content:"";color:#d6001c}.o_ac_order_status_warning_icon:before{content:"";color:#f2af40}.o_scorm_org:before{content:""}.o_scorm_item:before{content:""}.o_scorm_completed:before,.o_scorm_passed:before{content:""}.o_scorm_failed:before{content:""}.o_scorm_incomplete:before{content:""}.o_scorm_not_attempted:before{background:none}.o_midpub:before{content:""}.o_midwarn:before{content:""}.o_midlock:before{content:""}.o_miderr:before{content:""}.o_middel:before{content:""}.o_filetype_file:before,.o_filetype_ico:before{content:""}.o_filetype_folder:before{content:""}.o_filetype_folder_open:before{content:""}.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:""}.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before{content:""}.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:""}.o_filetype_xls:before,.o_filetype_xlsx:before{content:""}.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:""}.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:""}.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:""}.o_filetype_ps:before,.o_filetype_pdf:before{content:""}.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:""}.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before{content:""}.o_filetype_odt:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:""}.o_icon_share_social:before{content:""}.o_icon_apple:before{content:""}.o_icon_facebook:before{content:""}.o_icon_twitter:before{content:""}.o_icon_google:before{content:""}.o_icon_delicious:before{content:""}.o_icon_digg:before{content:""}.o_icon_mailto:before{content:""}.o_icon_link:before{content:""}.o_icon_yahoo:before{content:""}.o_icon_eva_disclaimer:before{content:""}.o_icon_eva_end_show:before{content:""}.o_icon_eva_end_hide:before{content:""}.o_icon_eva_export:before{content:""}.o_icon_eva_pdf:before{content:""}.o_icon_eva_print:before{content:""}.o_icon_eva_session_info:before{content:""}.o_icon_eva_mc:before{content:""}.o_icon_eva_sc:before{content:""}.o_icon_eva_sc:before{content:""}.o_icon_surv_reset:before{content:""}.o_icon_qual_ana_hide_filter:before{content:""}.o_icon_qual_ana_pres_edit:before{content:""}.o_icon_qual_ana_export:before{content:""}.o_icon_qual_ana_pres_delete:before{content:""}.o_icon_qual_ana_pdf:before{content:""}.o_icon_qual_ana_print:before{content:""}.o_icon_qual_ana_show_filter:before{content:""}.o_icon_qual_ana_trend:before{content:""}.o_icon_qual_ana_trend_arrow:before{content:""}.o_icon_qual_dc_create:before{content:""}.o_icon_qual_dc_delete:before{content:""}.o_icon_qual_dc_finished:before{content:""}.o_icon_qual_dc_preparation:before{content:""}.o_icon_qual_dc_ready:before{content:""}.o_icon_qual_dc_running:before{content:""}.o_icon_qual_exec_future:before{content:""}.o_icon_qual_exec_over:before{content:""}.o_icon_qual_exec_participating:before{content:""}.o_icon_qual_exec_participated:before{content:""}.o_icon_qual_exec_ready:before{content:""}.o_icon_qual_gen_ce_add:before{content:""}.o_icon_qual_gen_create:before{content:""}.o_icon_qual_gen_delete:before{content:""}.o_icon_qual_gen_disabled:before{content:""}.o_icon_qual_gen_enabled:before{content:""}.o_icon_qual_gen_re_add:before{content:""}.o_icon_qual_part_user_add:before{content:""}.o_icon_qual_part_user_add_course:before{content:""}.o_icon_qual_part_user_add_curele:before{content:""}.o_icon_qual_part_execute:before{content:""}.o_icon_lic_add:before{content:""}.o_icon_lic_public_domain:before{content:"\E810";font-family:openolat;font-size:120%}.o_icon_lic_cc0:before{content:"\E811";font-family:openolat;font-size:120%}.o_icon_lic_by:before{content:"\E812";font-family:openolat;font-size:120%}.o_icon_lic_by_sa:before{content:"\E813";font-family:openolat;font-size:120%}.o_icon_lic_by_nd:before{content:"\E814";font-family:openolat;font-size:120%}.o_icon_lic_by_nc:before{content:"\E815";font-family:openolat;font-size:120%}.o_icon_lic_by_nc_sa:before{content:"\E817";font-family:openolat;font-size:120%}.o_icon_lic_by_nc_nd:before{content:"\E819";font-family:openolat;font-size:120%}.o_icon_lic_all_rights_reserved:before{content:""}.o_icon_lic_freetext:before{content:""}.o_icon_lic_general:before{content:""}.o_icon_lic_youtube:before{content:""}a.o_icon:hover,a.o_icon:focus{text-decoration:none}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}.o_block_bottom,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry,.o_header_with_buttons,.o_search_result{margin-bottom:1em}.o_block_top,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_small_bottom,.o_block_small{margin-bottom:0.5em}.o_block_small_top,.o_block_small{margin-top:0.5em}.o_block_large_bottom,.o_block_large,.o_block_with_datecomp,.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left,.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right,.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle,.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill,.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file,.o_pf_content .o_forum,.gu-mirror .o_forum,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_wiki,.o_login .o_login_footer_wrapper,.o_portlet{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_block_with_datecomp,.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left,.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right,.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle,.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill,.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file,.o_pf_content .o_forum,.gu-mirror .o_forum,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_wiki,.o_login .o_login_footer_wrapper,.o_portlet{margin-top:2em}.o_block_move_up{margin-top:-1em}.o_block_move_up_small{margin-top:-0.5em}.o_block_move_up_large{margin-top:-2em}.o_block_inline,.o_block_inline_left,.o_block_inline_both,.o_block_inline_right{display:inline-block;vertical-align:top}.o_block_inline_left,.o_block_inline_both{margin-left:0.5em}.o_block_inline_right,.o_block_inline_both{margin-right:0.5em}.o_block_centered_wrapper{display:table;width:100%;height:100%}.o_block_centered_content{display:table-cell;vertical-align:middle;text-align:center}.o_block_imagebg{background-repeat:no-repeat;background-position:center;background-size:cover}.o_block_imagebg span{padding:2px;background-color:rgba(255,255,255,0.8)}.o_block_imagebg h1,.o_block_imagebg h2,.o_block_imagebg h3,.o_block_imagebg h4,.o_block_imagebg .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_block_imagebg h2,.o_block_imagebg h5,.o_block_imagebg p{padding:2px;background-color:rgba(255,255,255,0.8);display:inline-block}.o_block_imagebg h1:after,.o_block_imagebg h2:after,.o_block_imagebg h3:after,.o_block_imagebg h4:after,.o_block_imagebg .o_cal .fc-header-title h2:after,.o_cal .fc-header-title .o_block_imagebg h2:after,.o_block_imagebg h5:after,.o_block_imagebg p:after{content:' ';display:block}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h2,.o_header_with_buttons h3,.o_header_with_buttons h4,.o_header_with_buttons .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_header_with_buttons h2,.o_header_with_buttons h5,.o_header_with_buttons h6{display:inline-block}.o_header_with_buttons .o_button_group{margin-bottom:0;float:right}.o_header_with_buttons h1+.o_button_group{margin-top:28px}.o_header_with_buttons h2+.o_button_group{margin-top:24px}.o_header_with_buttons h3+.o_button_group{margin-top:20px}.o_header_with_buttons h4+.o_button_group,.o_header_with_buttons .o_cal .fc-header-title h2+.o_button_group,.o_cal .fc-header-title .o_header_with_buttons h2+.o_button_group{margin-top:10px}.o_header_with_buttons h5+.o_button_group{margin-top:6.6666666667px}.o_header_with_buttons h6+.o_button_group{margin-top:5px}#o_main_center .o_header_with_buttons h2+.o_button_group{margin-top:0}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_button_textstyle:before{content:'['}.o_button_textstyle:after{content:']'}.panel-imagebg{background-repeat:no-repeat;background-position:center;background-size:cover}.panel-imagebg.panel-default>.panel-heading{background-color:rgba(255,255,255,0.8);border-bottom:transparent}.panel-imagebg .panel-body span{padding:2px;background-color:rgba(255,255,255,0.8)}.panel-placeholder{border-width:2px;border-style:dashed;border-color:#ccc;border-radius:10px;background-color:#fcfcfc}.panel-placeholder .panel-body{padding:10px}.panel-placeholder .panel-body:nth-child(n+2){border-top:none}.panel-placeholder .panel-body h3:nth-child(1),.panel-placeholder .panel-body h4:nth-child(1),.panel-placeholder .panel-body .o_cal .fc-header-title h2:nth-child(1),.o_cal .fc-header-title .panel-placeholder .panel-body h2:nth-child(1),.panel-placeholder .panel-body h5:nth-child(1){margin-top:0}.panel-placeholder .panel-body .o_button_group{margin-bottom:0}.panel-placeholder .panel-heading{border-top-right-radius:8px;border-top-left-radius:8px;border-width:2px;border-style:dashed;border-color:#ccc;border-top:none;border-left:none;border-right:none;color:#888;font-weight:bold}.panel-placeholder .panel-footer{border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-width:2px;border-style:dashed;border-color:#ccc;border-bottom:none;border-left:none;border-right:none}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:11px}.o_small,.b_small,p.b_small,div.b_small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o_comment,.o_bc_meta,.tooltip,.o_htmleditor .o_metadata .o_lastmodified,.o_noti,.o_block_with_datecomp .o_meta,.o_togglebox_wrapper div.o_togglebox_content .o_hide,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label,.o_course_run .o_toc .o_entry,.o_assessment_test_results .o_qti_to_overview{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:20px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_highlight_on_hover:hover{background-color:#f5f5f5}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,#o_main_wrapper #o_toplink:hover,#o_footer_powered a:hover,#o_share a:hover,#o_share_social_container a:hover,.o_toolbar .o_tools_container a:hover,.o_button_toggle:hover,.o_im_message_group .o_im_from:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:hover,.o_login .o_login_register:hover,.o_disabled:focus,.b_disabled:focus,#o_main_wrapper #o_toplink:focus,#o_footer_powered a:focus,#o_share a:focus,#o_share_social_container a:focus,.o_toolbar .o_tools_container a:focus,.o_button_toggle:focus,.o_im_message_group .o_im_from:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:focus,.o_login .o_login_register:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}.o_copy_code input,.o_copy_code textarea,.b_copy_code input,code input,pre input,.b_copy_code textarea,code textarea,pre textarea{border:0;width:90%;background:transparent}.o_nowrap,.b_copy_code,p.b_copy_code,div.b_copy_code,code{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o_titled_wrapper .o_content{margin-top:20px}.o_video,.o_video video,.b_video,.o_video_wrapper{display:inline-block;max-width:100%;height:auto;max-width:100%}.o_image,.o_image img,img,.b_image{display:inline-block;max-width:100%;height:auto;max-width:100%}.o_figure_caption_bottom{display:inline-block;min-width:50%}.o_figure_caption_bottom figure{display:table}.o_image_vertical_center_helper{display:inline-block;height:100%;vertical-align:middle}.o_image_vertical_center_helper+.o_image img{vertical-align:middle}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_page_margins{padding:25px}.o_dragable,.o_page_fragment_edit .o_page_tools_dd:before,.o_page_drop{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.o_dragable:active,.o_page_fragment_edit .o_page_tools_dd:active:before,.o_page_drop:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_draging,.gu-mirror{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_draging:active,.gu-mirror:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.o_hidden{visibility:hidden}h1{color:#342c24}h2{color:#342c24}h3{color:#342c24}h4,.o_cal .fc-header-title h2{color:#342c24}h5{color:#342c24}h5{color:#342c24}fieldset legend{color:#342c24}.o_user_content_block a{color:#209d9e;text-decoration:none}.o_user_content_block a:hover,.o_user_content_block a:focus{color:#177374;text-decoration:underline}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{line-height:1.428571429;vertical-align:top}table.b_default td,table.b_default th{padding:8px;vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:8px;border:1px solid #777}table.b_grid thead td,table.b_grid th{background:#eee;font-weight:bold}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:8px;border:1px solid #777}table.b_border thead td,table.b_border th{background:#eee;font-weight:bold}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:8px;border:0 !important}table.b_borderless thead td,table.b_borderless th{font-weight:bold}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}table.b_gray{border-collapse:collapse}table.b_gray td,table.b_gray th{padding:8px;background:#eee;border:1px solid #fbfbfb}table.b_gray thead td,table.b_gray th{background:#d5d5d5;font-weight:bold}table.b_gray tbody tr:nth-child(even) td{background:#fbfbfb;border:1px solid #eee}table.b_gray.b_no_stripes tbody tr:nth-child(even) td{background:#eee;border:1px solid #fbfbfb}@media print{table.b_gray td,table.b_gray th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eee !important}table.b_gray thead td,table.b_gray th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#d5d5d5 !important}table.b_gray tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fbfbfb !important}}table.b_blue{border-collapse:collapse}table.b_blue td,table.b_blue th{padding:8px;background:#d9edf7;border:1px solid #eef7fb}table.b_blue thead td,table.b_blue th{background:#afd9ee;font-weight:bold}table.b_blue tbody tr:nth-child(even) td{background:#eef7fb;border:1px solid #d9edf7}table.b_blue.b_no_stripes tbody tr:nth-child(even) td{background:#d9edf7;border:1px solid #eef7fb}@media print{table.b_blue td,table.b_blue th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#d9edf7 !important}table.b_blue thead td,table.b_blue th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#afd9ee !important}table.b_blue tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eef7fb !important}}table.b_green{border-collapse:collapse}table.b_green td,table.b_green th{padding:8px;background:#dff0d8;border:1px solid #eef7ea}table.b_green thead td,table.b_green th{background:#c1e2b3;font-weight:bold}table.b_green tbody tr:nth-child(even) td{background:#eef7ea;border:1px solid #dff0d8}table.b_green.b_no_stripes tbody tr:nth-child(even) td{background:#dff0d8;border:1px solid #eef7ea}@media print{table.b_green td,table.b_green th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#dff0d8 !important}table.b_green thead td,table.b_green th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#c1e2b3 !important}table.b_green tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#eef7ea !important}}table.b_yellow{border-collapse:collapse}table.b_yellow td,table.b_yellow th{padding:8px;background:#fcf8e3;border:1px solid #fefefa}table.b_yellow thead td,table.b_yellow th{background:#f7ecb5;font-weight:bold}table.b_yellow tbody tr:nth-child(even) td{background:#fefefa;border:1px solid #fcf8e3}table.b_yellow.b_no_stripes tbody tr:nth-child(even) td{background:#fcf8e3;border:1px solid #fefefa}@media print{table.b_yellow td,table.b_yellow th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fcf8e3 !important}table.b_yellow thead td,table.b_yellow th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f7ecb5 !important}table.b_yellow tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fefefa !important}}table.b_red{border-collapse:collapse}table.b_red td,table.b_red th{padding:8px;background:#f2dede;border:1px solid #f9f0f0}table.b_red thead td,table.b_red th{background:#e4b9b9;font-weight:bold}table.b_red tbody tr:nth-child(even) td{background:#f9f0f0;border:1px solid #f2dede}table.b_red.b_no_stripes tbody tr:nth-child(even) td{background:#f2dede;border:1px solid #f9f0f0}@media print{table.b_red td,table.b_red th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f2dede !important}table.b_red thead td,table.b_red th{-webkit-print-color-adjust:exact;color-adjust:exact;background:#e4b9b9 !important}table.b_red tbody tr:nth-child(even) td{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f9f0f0 !important}}table.a_responsive{width:auto !important}@media (max-width: 768px){.a_responsive td{display:block}}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#209d9e}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}a.b_link_mailto{color:#209d9e}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}a.b_link_forward{color:#209d9e}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_float_left_clear_nomargin{float:left;display:block;margin:0 0 0 0}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}p.b_figure_title{margin:20px 0 5px 0;font-size:85%;font-family:inherit}p.b_figure_caption{clear:both;margin:5px 0 20px 0}caption,figcaption,.o_caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left;font-style:italic}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}figure.align-left{float:left}figure.align-right{float:right}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}img.align-left{float:left}img.align-right{float:right}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}figure.image.align-center{display:block;text-align:center}figure.image.align-left{float:none;display:block;text-align:left}figure.image.align-left figcaption{text-align:left}figure.image.align-right{float:none;display:block;text-align:right}figure.image.align-right figcaption{text-align:right}figure.image{margin:2em 0 2em 0;border:0;background:none}figure.image img.b_float_left,figure.image img.b_float_left_clear,figure.image img.b_float_right,figure.image img.b_float_right_clear,figure.image img.b_float_left_clear_nomargin,figure.image img.b_centered{float:none;display:inline-block;margin:0}figure.image figcaption{font-size:90%;font-style:italic}.radial-progress{margin:10px;width:120px;height:120px;background-color:#eee;border-radius:50%;display:inline-block;position:relative}.radial-progress .circle .mask,.radial-progress .circle .fill,.radial-progress .circle .shadow{width:100%;height:100%;position:absolute;border-radius:50%}.radial-progress .circle .shadow{box-shadow:none inset}.radial-progress .circle .mask,.radial-progress .circle .fill{-webkit-backface-visibility:hidden;transition:-webkit-transform 1s;transition:-ms-transform 1s;transition:transform 1s;border-radius:50%}.radial-progress .circle .mask{clip:rect(0px, 120px, 120px, 60px)}.radial-progress .circle .mask .fill{clip:rect(0px, 60px, 120px, 0px);background-color:#209d9e}.radial-progress .inset{width:90px;height:90px;position:absolute;border-radius:50%;margin-left:15px;margin-top:15px;overflow:hidden;background-color:#fff;box-shadow:none;font-size:21.6px}.radial-progress .inset .bgIcon{position:absolute;font-size:80px;top:5px;left:-5px;opacity:0;transition:opacity 0;transition-delay:1s}.radial-progress .inset .percentage{height:80%;width:80%;position:absolute;top:10%;left:10%;display:table;line-height:1}.radial-progress .inset .percentage .centeredWrapper{display:table-cell;vertical-align:middle;text-align:center}.radial-progress .inset .percentage .centeredWrapper .number{font-weight:800;color:#209d9e}.radial-progress .inset .percentage .centeredWrapper .addon{color:#777;margin-top:5px}.radial-progress .inset .percentage .centeredWrapper .addon div:nth-of-type(1){font-size:0.55em;font-weight:bold}.radial-progress .inset .percentage .centeredWrapper .addon div:nth-of-type(2){margin-top:2px;font-size:0.45em}.radial-progress[data-progress="0"] .circle .mask.full,.radial-progress[data-progress="0"] .circle .fill{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.radial-progress[data-progress="0"] .circle .fill.fix{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.radial-progress[data-progress="1"] .circle .mask.full,.radial-progress[data-progress="1"] .circle .fill{-webkit-transform:rotate(1.8deg);-ms-transform:rotate(1.8deg);transform:rotate(1.8deg)}.radial-progress[data-progress="1"] .circle .fill.fix{-webkit-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);transform:rotate(3.6deg)}.radial-progress[data-progress="2"] .circle .mask.full,.radial-progress[data-progress="2"] .circle .fill{-webkit-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);transform:rotate(3.6deg)}.radial-progress[data-progress="2"] .circle .fill.fix{-webkit-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);transform:rotate(7.2deg)}.radial-progress[data-progress="3"] .circle .mask.full,.radial-progress[data-progress="3"] .circle .fill{-webkit-transform:rotate(5.4deg);-ms-transform:rotate(5.4deg);transform:rotate(5.4deg)}.radial-progress[data-progress="3"] .circle .fill.fix{-webkit-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);transform:rotate(10.8deg)}.radial-progress[data-progress="4"] .circle .mask.full,.radial-progress[data-progress="4"] .circle .fill{-webkit-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);transform:rotate(7.2deg)}.radial-progress[data-progress="4"] .circle .fill.fix{-webkit-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);transform:rotate(14.4deg)}.radial-progress[data-progress="5"] .circle .mask.full,.radial-progress[data-progress="5"] .circle .fill{-webkit-transform:rotate(9deg);-ms-transform:rotate(9deg);transform:rotate(9deg)}.radial-progress[data-progress="5"] .circle .fill.fix{-webkit-transform:rotate(18deg);-ms-transform:rotate(18deg);transform:rotate(18deg)}.radial-progress[data-progress="6"] .circle .mask.full,.radial-progress[data-progress="6"] .circle .fill{-webkit-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);transform:rotate(10.8deg)}.radial-progress[data-progress="6"] .circle .fill.fix{-webkit-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);transform:rotate(21.6deg)}.radial-progress[data-progress="7"] .circle .mask.full,.radial-progress[data-progress="7"] .circle .fill{-webkit-transform:rotate(12.6deg);-ms-transform:rotate(12.6deg);transform:rotate(12.6deg)}.radial-progress[data-progress="7"] .circle .fill.fix{-webkit-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);transform:rotate(25.2deg)}.radial-progress[data-progress="8"] .circle .mask.full,.radial-progress[data-progress="8"] .circle .fill{-webkit-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);transform:rotate(14.4deg)}.radial-progress[data-progress="8"] .circle .fill.fix{-webkit-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);transform:rotate(28.8deg)}.radial-progress[data-progress="9"] .circle .mask.full,.radial-progress[data-progress="9"] .circle .fill{-webkit-transform:rotate(16.2deg);-ms-transform:rotate(16.2deg);transform:rotate(16.2deg)}.radial-progress[data-progress="9"] .circle .fill.fix{-webkit-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);transform:rotate(32.4deg)}.radial-progress[data-progress="10"] .circle .mask.full,.radial-progress[data-progress="10"] .circle .fill{-webkit-transform:rotate(18deg);-ms-transform:rotate(18deg);transform:rotate(18deg)}.radial-progress[data-progress="10"] .circle .fill.fix{-webkit-transform:rotate(36deg);-ms-transform:rotate(36deg);transform:rotate(36deg)}.radial-progress[data-progress="11"] .circle .mask.full,.radial-progress[data-progress="11"] .circle .fill{-webkit-transform:rotate(19.8deg);-ms-transform:rotate(19.8deg);transform:rotate(19.8deg)}.radial-progress[data-progress="11"] .circle .fill.fix{-webkit-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);transform:rotate(39.6deg)}.radial-progress[data-progress="12"] .circle .mask.full,.radial-progress[data-progress="12"] .circle .fill{-webkit-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);transform:rotate(21.6deg)}.radial-progress[data-progress="12"] .circle .fill.fix{-webkit-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);transform:rotate(43.2deg)}.radial-progress[data-progress="13"] .circle .mask.full,.radial-progress[data-progress="13"] .circle .fill{-webkit-transform:rotate(23.4deg);-ms-transform:rotate(23.4deg);transform:rotate(23.4deg)}.radial-progress[data-progress="13"] .circle .fill.fix{-webkit-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);transform:rotate(46.8deg)}.radial-progress[data-progress="14"] .circle .mask.full,.radial-progress[data-progress="14"] .circle .fill{-webkit-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);transform:rotate(25.2deg)}.radial-progress[data-progress="14"] .circle .fill.fix{-webkit-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);transform:rotate(50.4deg)}.radial-progress[data-progress="15"] .circle .mask.full,.radial-progress[data-progress="15"] .circle .fill{-webkit-transform:rotate(27deg);-ms-transform:rotate(27deg);transform:rotate(27deg)}.radial-progress[data-progress="15"] .circle .fill.fix{-webkit-transform:rotate(54deg);-ms-transform:rotate(54deg);transform:rotate(54deg)}.radial-progress[data-progress="16"] .circle .mask.full,.radial-progress[data-progress="16"] .circle .fill{-webkit-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);transform:rotate(28.8deg)}.radial-progress[data-progress="16"] .circle .fill.fix{-webkit-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);transform:rotate(57.6deg)}.radial-progress[data-progress="17"] .circle .mask.full,.radial-progress[data-progress="17"] .circle .fill{-webkit-transform:rotate(30.6deg);-ms-transform:rotate(30.6deg);transform:rotate(30.6deg)}.radial-progress[data-progress="17"] .circle .fill.fix{-webkit-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);transform:rotate(61.2deg)}.radial-progress[data-progress="18"] .circle .mask.full,.radial-progress[data-progress="18"] .circle .fill{-webkit-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);transform:rotate(32.4deg)}.radial-progress[data-progress="18"] .circle .fill.fix{-webkit-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);transform:rotate(64.8deg)}.radial-progress[data-progress="19"] .circle .mask.full,.radial-progress[data-progress="19"] .circle .fill{-webkit-transform:rotate(34.2deg);-ms-transform:rotate(34.2deg);transform:rotate(34.2deg)}.radial-progress[data-progress="19"] .circle .fill.fix{-webkit-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);transform:rotate(68.4deg)}.radial-progress[data-progress="20"] .circle .mask.full,.radial-progress[data-progress="20"] .circle .fill{-webkit-transform:rotate(36deg);-ms-transform:rotate(36deg);transform:rotate(36deg)}.radial-progress[data-progress="20"] .circle .fill.fix{-webkit-transform:rotate(72deg);-ms-transform:rotate(72deg);transform:rotate(72deg)}.radial-progress[data-progress="21"] .circle .mask.full,.radial-progress[data-progress="21"] .circle .fill{-webkit-transform:rotate(37.8deg);-ms-transform:rotate(37.8deg);transform:rotate(37.8deg)}.radial-progress[data-progress="21"] .circle .fill.fix{-webkit-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);transform:rotate(75.6deg)}.radial-progress[data-progress="22"] .circle .mask.full,.radial-progress[data-progress="22"] .circle .fill{-webkit-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);transform:rotate(39.6deg)}.radial-progress[data-progress="22"] .circle .fill.fix{-webkit-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);transform:rotate(79.2deg)}.radial-progress[data-progress="23"] .circle .mask.full,.radial-progress[data-progress="23"] .circle .fill{-webkit-transform:rotate(41.4deg);-ms-transform:rotate(41.4deg);transform:rotate(41.4deg)}.radial-progress[data-progress="23"] .circle .fill.fix{-webkit-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);transform:rotate(82.8deg)}.radial-progress[data-progress="24"] .circle .mask.full,.radial-progress[data-progress="24"] .circle .fill{-webkit-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);transform:rotate(43.2deg)}.radial-progress[data-progress="24"] .circle .fill.fix{-webkit-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);transform:rotate(86.4deg)}.radial-progress[data-progress="25"] .circle .mask.full,.radial-progress[data-progress="25"] .circle .fill{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.radial-progress[data-progress="25"] .circle .fill.fix{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.radial-progress[data-progress="26"] .circle .mask.full,.radial-progress[data-progress="26"] .circle .fill{-webkit-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);transform:rotate(46.8deg)}.radial-progress[data-progress="26"] .circle .fill.fix{-webkit-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);transform:rotate(93.6deg)}.radial-progress[data-progress="27"] .circle .mask.full,.radial-progress[data-progress="27"] .circle .fill{-webkit-transform:rotate(48.6deg);-ms-transform:rotate(48.6deg);transform:rotate(48.6deg)}.radial-progress[data-progress="27"] .circle .fill.fix{-webkit-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);transform:rotate(97.2deg)}.radial-progress[data-progress="28"] .circle .mask.full,.radial-progress[data-progress="28"] .circle .fill{-webkit-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);transform:rotate(50.4deg)}.radial-progress[data-progress="28"] .circle .fill.fix{-webkit-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);transform:rotate(100.8deg)}.radial-progress[data-progress="29"] .circle .mask.full,.radial-progress[data-progress="29"] .circle .fill{-webkit-transform:rotate(52.2deg);-ms-transform:rotate(52.2deg);transform:rotate(52.2deg)}.radial-progress[data-progress="29"] .circle .fill.fix{-webkit-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);transform:rotate(104.4deg)}.radial-progress[data-progress="30"] .circle .mask.full,.radial-progress[data-progress="30"] .circle .fill{-webkit-transform:rotate(54deg);-ms-transform:rotate(54deg);transform:rotate(54deg)}.radial-progress[data-progress="30"] .circle .fill.fix{-webkit-transform:rotate(108deg);-ms-transform:rotate(108deg);transform:rotate(108deg)}.radial-progress[data-progress="31"] .circle .mask.full,.radial-progress[data-progress="31"] .circle .fill{-webkit-transform:rotate(55.8deg);-ms-transform:rotate(55.8deg);transform:rotate(55.8deg)}.radial-progress[data-progress="31"] .circle .fill.fix{-webkit-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);transform:rotate(111.6deg)}.radial-progress[data-progress="32"] .circle .mask.full,.radial-progress[data-progress="32"] .circle .fill{-webkit-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);transform:rotate(57.6deg)}.radial-progress[data-progress="32"] .circle .fill.fix{-webkit-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);transform:rotate(115.2deg)}.radial-progress[data-progress="33"] .circle .mask.full,.radial-progress[data-progress="33"] .circle .fill{-webkit-transform:rotate(59.4deg);-ms-transform:rotate(59.4deg);transform:rotate(59.4deg)}.radial-progress[data-progress="33"] .circle .fill.fix{-webkit-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);transform:rotate(118.8deg)}.radial-progress[data-progress="34"] .circle .mask.full,.radial-progress[data-progress="34"] .circle .fill{-webkit-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);transform:rotate(61.2deg)}.radial-progress[data-progress="34"] .circle .fill.fix{-webkit-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);transform:rotate(122.4deg)}.radial-progress[data-progress="35"] .circle .mask.full,.radial-progress[data-progress="35"] .circle .fill{-webkit-transform:rotate(63deg);-ms-transform:rotate(63deg);transform:rotate(63deg)}.radial-progress[data-progress="35"] .circle .fill.fix{-webkit-transform:rotate(126deg);-ms-transform:rotate(126deg);transform:rotate(126deg)}.radial-progress[data-progress="36"] .circle .mask.full,.radial-progress[data-progress="36"] .circle .fill{-webkit-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);transform:rotate(64.8deg)}.radial-progress[data-progress="36"] .circle .fill.fix{-webkit-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);transform:rotate(129.6deg)}.radial-progress[data-progress="37"] .circle .mask.full,.radial-progress[data-progress="37"] .circle .fill{-webkit-transform:rotate(66.6deg);-ms-transform:rotate(66.6deg);transform:rotate(66.6deg)}.radial-progress[data-progress="37"] .circle .fill.fix{-webkit-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);transform:rotate(133.2deg)}.radial-progress[data-progress="38"] .circle .mask.full,.radial-progress[data-progress="38"] .circle .fill{-webkit-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);transform:rotate(68.4deg)}.radial-progress[data-progress="38"] .circle .fill.fix{-webkit-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);transform:rotate(136.8deg)}.radial-progress[data-progress="39"] .circle .mask.full,.radial-progress[data-progress="39"] .circle .fill{-webkit-transform:rotate(70.2deg);-ms-transform:rotate(70.2deg);transform:rotate(70.2deg)}.radial-progress[data-progress="39"] .circle .fill.fix{-webkit-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);transform:rotate(140.4deg)}.radial-progress[data-progress="40"] .circle .mask.full,.radial-progress[data-progress="40"] .circle .fill{-webkit-transform:rotate(72deg);-ms-transform:rotate(72deg);transform:rotate(72deg)}.radial-progress[data-progress="40"] .circle .fill.fix{-webkit-transform:rotate(144deg);-ms-transform:rotate(144deg);transform:rotate(144deg)}.radial-progress[data-progress="41"] .circle .mask.full,.radial-progress[data-progress="41"] .circle .fill{-webkit-transform:rotate(73.8deg);-ms-transform:rotate(73.8deg);transform:rotate(73.8deg)}.radial-progress[data-progress="41"] .circle .fill.fix{-webkit-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);transform:rotate(147.6deg)}.radial-progress[data-progress="42"] .circle .mask.full,.radial-progress[data-progress="42"] .circle .fill{-webkit-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);transform:rotate(75.6deg)}.radial-progress[data-progress="42"] .circle .fill.fix{-webkit-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);transform:rotate(151.2deg)}.radial-progress[data-progress="43"] .circle .mask.full,.radial-progress[data-progress="43"] .circle .fill{-webkit-transform:rotate(77.4deg);-ms-transform:rotate(77.4deg);transform:rotate(77.4deg)}.radial-progress[data-progress="43"] .circle .fill.fix{-webkit-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);transform:rotate(154.8deg)}.radial-progress[data-progress="44"] .circle .mask.full,.radial-progress[data-progress="44"] .circle .fill{-webkit-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);transform:rotate(79.2deg)}.radial-progress[data-progress="44"] .circle .fill.fix{-webkit-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);transform:rotate(158.4deg)}.radial-progress[data-progress="45"] .circle .mask.full,.radial-progress[data-progress="45"] .circle .fill{-webkit-transform:rotate(81deg);-ms-transform:rotate(81deg);transform:rotate(81deg)}.radial-progress[data-progress="45"] .circle .fill.fix{-webkit-transform:rotate(162deg);-ms-transform:rotate(162deg);transform:rotate(162deg)}.radial-progress[data-progress="46"] .circle .mask.full,.radial-progress[data-progress="46"] .circle .fill{-webkit-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);transform:rotate(82.8deg)}.radial-progress[data-progress="46"] .circle .fill.fix{-webkit-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);transform:rotate(165.6deg)}.radial-progress[data-progress="47"] .circle .mask.full,.radial-progress[data-progress="47"] .circle .fill{-webkit-transform:rotate(84.6deg);-ms-transform:rotate(84.6deg);transform:rotate(84.6deg)}.radial-progress[data-progress="47"] .circle .fill.fix{-webkit-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);transform:rotate(169.2deg)}.radial-progress[data-progress="48"] .circle .mask.full,.radial-progress[data-progress="48"] .circle .fill{-webkit-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);transform:rotate(86.4deg)}.radial-progress[data-progress="48"] .circle .fill.fix{-webkit-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);transform:rotate(172.8deg)}.radial-progress[data-progress="49"] .circle .mask.full,.radial-progress[data-progress="49"] .circle .fill{-webkit-transform:rotate(88.2deg);-ms-transform:rotate(88.2deg);transform:rotate(88.2deg)}.radial-progress[data-progress="49"] .circle .fill.fix{-webkit-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);transform:rotate(176.4deg)}.radial-progress[data-progress="50"] .circle .mask.full,.radial-progress[data-progress="50"] .circle .fill{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.radial-progress[data-progress="50"] .circle .fill.fix{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.radial-progress[data-progress="51"] .circle .mask.full,.radial-progress[data-progress="51"] .circle .fill{-webkit-transform:rotate(91.8deg);-ms-transform:rotate(91.8deg);transform:rotate(91.8deg)}.radial-progress[data-progress="51"] .circle .fill.fix{-webkit-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);transform:rotate(183.6deg)}.radial-progress[data-progress="52"] .circle .mask.full,.radial-progress[data-progress="52"] .circle .fill{-webkit-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);transform:rotate(93.6deg)}.radial-progress[data-progress="52"] .circle .fill.fix{-webkit-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);transform:rotate(187.2deg)}.radial-progress[data-progress="53"] .circle .mask.full,.radial-progress[data-progress="53"] .circle .fill{-webkit-transform:rotate(95.4deg);-ms-transform:rotate(95.4deg);transform:rotate(95.4deg)}.radial-progress[data-progress="53"] .circle .fill.fix{-webkit-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);transform:rotate(190.8deg)}.radial-progress[data-progress="54"] .circle .mask.full,.radial-progress[data-progress="54"] .circle .fill{-webkit-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);transform:rotate(97.2deg)}.radial-progress[data-progress="54"] .circle .fill.fix{-webkit-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);transform:rotate(194.4deg)}.radial-progress[data-progress="55"] .circle .mask.full,.radial-progress[data-progress="55"] .circle .fill{-webkit-transform:rotate(99deg);-ms-transform:rotate(99deg);transform:rotate(99deg)}.radial-progress[data-progress="55"] .circle .fill.fix{-webkit-transform:rotate(198deg);-ms-transform:rotate(198deg);transform:rotate(198deg)}.radial-progress[data-progress="56"] .circle .mask.full,.radial-progress[data-progress="56"] .circle .fill{-webkit-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);transform:rotate(100.8deg)}.radial-progress[data-progress="56"] .circle .fill.fix{-webkit-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);transform:rotate(201.6deg)}.radial-progress[data-progress="57"] .circle .mask.full,.radial-progress[data-progress="57"] .circle .fill{-webkit-transform:rotate(102.6deg);-ms-transform:rotate(102.6deg);transform:rotate(102.6deg)}.radial-progress[data-progress="57"] .circle .fill.fix{-webkit-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);transform:rotate(205.2deg)}.radial-progress[data-progress="58"] .circle .mask.full,.radial-progress[data-progress="58"] .circle .fill{-webkit-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);transform:rotate(104.4deg)}.radial-progress[data-progress="58"] .circle .fill.fix{-webkit-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);transform:rotate(208.8deg)}.radial-progress[data-progress="59"] .circle .mask.full,.radial-progress[data-progress="59"] .circle .fill{-webkit-transform:rotate(106.2deg);-ms-transform:rotate(106.2deg);transform:rotate(106.2deg)}.radial-progress[data-progress="59"] .circle .fill.fix{-webkit-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);transform:rotate(212.4deg)}.radial-progress[data-progress="60"] .circle .mask.full,.radial-progress[data-progress="60"] .circle .fill{-webkit-transform:rotate(108deg);-ms-transform:rotate(108deg);transform:rotate(108deg)}.radial-progress[data-progress="60"] .circle .fill.fix{-webkit-transform:rotate(216deg);-ms-transform:rotate(216deg);transform:rotate(216deg)}.radial-progress[data-progress="61"] .circle .mask.full,.radial-progress[data-progress="61"] .circle .fill{-webkit-transform:rotate(109.8deg);-ms-transform:rotate(109.8deg);transform:rotate(109.8deg)}.radial-progress[data-progress="61"] .circle .fill.fix{-webkit-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);transform:rotate(219.6deg)}.radial-progress[data-progress="62"] .circle .mask.full,.radial-progress[data-progress="62"] .circle .fill{-webkit-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);transform:rotate(111.6deg)}.radial-progress[data-progress="62"] .circle .fill.fix{-webkit-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);transform:rotate(223.2deg)}.radial-progress[data-progress="63"] .circle .mask.full,.radial-progress[data-progress="63"] .circle .fill{-webkit-transform:rotate(113.4deg);-ms-transform:rotate(113.4deg);transform:rotate(113.4deg)}.radial-progress[data-progress="63"] .circle .fill.fix{-webkit-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);transform:rotate(226.8deg)}.radial-progress[data-progress="64"] .circle .mask.full,.radial-progress[data-progress="64"] .circle .fill{-webkit-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);transform:rotate(115.2deg)}.radial-progress[data-progress="64"] .circle .fill.fix{-webkit-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);transform:rotate(230.4deg)}.radial-progress[data-progress="65"] .circle .mask.full,.radial-progress[data-progress="65"] .circle .fill{-webkit-transform:rotate(117deg);-ms-transform:rotate(117deg);transform:rotate(117deg)}.radial-progress[data-progress="65"] .circle .fill.fix{-webkit-transform:rotate(234deg);-ms-transform:rotate(234deg);transform:rotate(234deg)}.radial-progress[data-progress="66"] .circle .mask.full,.radial-progress[data-progress="66"] .circle .fill{-webkit-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);transform:rotate(118.8deg)}.radial-progress[data-progress="66"] .circle .fill.fix{-webkit-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);transform:rotate(237.6deg)}.radial-progress[data-progress="67"] .circle .mask.full,.radial-progress[data-progress="67"] .circle .fill{-webkit-transform:rotate(120.6deg);-ms-transform:rotate(120.6deg);transform:rotate(120.6deg)}.radial-progress[data-progress="67"] .circle .fill.fix{-webkit-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);transform:rotate(241.2deg)}.radial-progress[data-progress="68"] .circle .mask.full,.radial-progress[data-progress="68"] .circle .fill{-webkit-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);transform:rotate(122.4deg)}.radial-progress[data-progress="68"] .circle .fill.fix{-webkit-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);transform:rotate(244.8deg)}.radial-progress[data-progress="69"] .circle .mask.full,.radial-progress[data-progress="69"] .circle .fill{-webkit-transform:rotate(124.2deg);-ms-transform:rotate(124.2deg);transform:rotate(124.2deg)}.radial-progress[data-progress="69"] .circle .fill.fix{-webkit-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);transform:rotate(248.4deg)}.radial-progress[data-progress="70"] .circle .mask.full,.radial-progress[data-progress="70"] .circle .fill{-webkit-transform:rotate(126deg);-ms-transform:rotate(126deg);transform:rotate(126deg)}.radial-progress[data-progress="70"] .circle .fill.fix{-webkit-transform:rotate(252deg);-ms-transform:rotate(252deg);transform:rotate(252deg)}.radial-progress[data-progress="71"] .circle .mask.full,.radial-progress[data-progress="71"] .circle .fill{-webkit-transform:rotate(127.8deg);-ms-transform:rotate(127.8deg);transform:rotate(127.8deg)}.radial-progress[data-progress="71"] .circle .fill.fix{-webkit-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);transform:rotate(255.6deg)}.radial-progress[data-progress="72"] .circle .mask.full,.radial-progress[data-progress="72"] .circle .fill{-webkit-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);transform:rotate(129.6deg)}.radial-progress[data-progress="72"] .circle .fill.fix{-webkit-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);transform:rotate(259.2deg)}.radial-progress[data-progress="73"] .circle .mask.full,.radial-progress[data-progress="73"] .circle .fill{-webkit-transform:rotate(131.4deg);-ms-transform:rotate(131.4deg);transform:rotate(131.4deg)}.radial-progress[data-progress="73"] .circle .fill.fix{-webkit-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);transform:rotate(262.8deg)}.radial-progress[data-progress="74"] .circle .mask.full,.radial-progress[data-progress="74"] .circle .fill{-webkit-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);transform:rotate(133.2deg)}.radial-progress[data-progress="74"] .circle .fill.fix{-webkit-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);transform:rotate(266.4deg)}.radial-progress[data-progress="75"] .circle .mask.full,.radial-progress[data-progress="75"] .circle .fill{-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.radial-progress[data-progress="75"] .circle .fill.fix{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.radial-progress[data-progress="76"] .circle .mask.full,.radial-progress[data-progress="76"] .circle .fill{-webkit-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);transform:rotate(136.8deg)}.radial-progress[data-progress="76"] .circle .fill.fix{-webkit-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);transform:rotate(273.6deg)}.radial-progress[data-progress="77"] .circle .mask.full,.radial-progress[data-progress="77"] .circle .fill{-webkit-transform:rotate(138.6deg);-ms-transform:rotate(138.6deg);transform:rotate(138.6deg)}.radial-progress[data-progress="77"] .circle .fill.fix{-webkit-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);transform:rotate(277.2deg)}.radial-progress[data-progress="78"] .circle .mask.full,.radial-progress[data-progress="78"] .circle .fill{-webkit-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);transform:rotate(140.4deg)}.radial-progress[data-progress="78"] .circle .fill.fix{-webkit-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);transform:rotate(280.8deg)}.radial-progress[data-progress="79"] .circle .mask.full,.radial-progress[data-progress="79"] .circle .fill{-webkit-transform:rotate(142.2deg);-ms-transform:rotate(142.2deg);transform:rotate(142.2deg)}.radial-progress[data-progress="79"] .circle .fill.fix{-webkit-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);transform:rotate(284.4deg)}.radial-progress[data-progress="80"] .circle .mask.full,.radial-progress[data-progress="80"] .circle .fill{-webkit-transform:rotate(144deg);-ms-transform:rotate(144deg);transform:rotate(144deg)}.radial-progress[data-progress="80"] .circle .fill.fix{-webkit-transform:rotate(288deg);-ms-transform:rotate(288deg);transform:rotate(288deg)}.radial-progress[data-progress="81"] .circle .mask.full,.radial-progress[data-progress="81"] .circle .fill{-webkit-transform:rotate(145.8deg);-ms-transform:rotate(145.8deg);transform:rotate(145.8deg)}.radial-progress[data-progress="81"] .circle .fill.fix{-webkit-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);transform:rotate(291.6deg)}.radial-progress[data-progress="82"] .circle .mask.full,.radial-progress[data-progress="82"] .circle .fill{-webkit-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);transform:rotate(147.6deg)}.radial-progress[data-progress="82"] .circle .fill.fix{-webkit-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);transform:rotate(295.2deg)}.radial-progress[data-progress="83"] .circle .mask.full,.radial-progress[data-progress="83"] .circle .fill{-webkit-transform:rotate(149.4deg);-ms-transform:rotate(149.4deg);transform:rotate(149.4deg)}.radial-progress[data-progress="83"] .circle .fill.fix{-webkit-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);transform:rotate(298.8deg)}.radial-progress[data-progress="84"] .circle .mask.full,.radial-progress[data-progress="84"] .circle .fill{-webkit-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);transform:rotate(151.2deg)}.radial-progress[data-progress="84"] .circle .fill.fix{-webkit-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);transform:rotate(302.4deg)}.radial-progress[data-progress="85"] .circle .mask.full,.radial-progress[data-progress="85"] .circle .fill{-webkit-transform:rotate(153deg);-ms-transform:rotate(153deg);transform:rotate(153deg)}.radial-progress[data-progress="85"] .circle .fill.fix{-webkit-transform:rotate(306deg);-ms-transform:rotate(306deg);transform:rotate(306deg)}.radial-progress[data-progress="86"] .circle .mask.full,.radial-progress[data-progress="86"] .circle .fill{-webkit-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);transform:rotate(154.8deg)}.radial-progress[data-progress="86"] .circle .fill.fix{-webkit-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);transform:rotate(309.6deg)}.radial-progress[data-progress="87"] .circle .mask.full,.radial-progress[data-progress="87"] .circle .fill{-webkit-transform:rotate(156.6deg);-ms-transform:rotate(156.6deg);transform:rotate(156.6deg)}.radial-progress[data-progress="87"] .circle .fill.fix{-webkit-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);transform:rotate(313.2deg)}.radial-progress[data-progress="88"] .circle .mask.full,.radial-progress[data-progress="88"] .circle .fill{-webkit-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);transform:rotate(158.4deg)}.radial-progress[data-progress="88"] .circle .fill.fix{-webkit-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);transform:rotate(316.8deg)}.radial-progress[data-progress="89"] .circle .mask.full,.radial-progress[data-progress="89"] .circle .fill{-webkit-transform:rotate(160.2deg);-ms-transform:rotate(160.2deg);transform:rotate(160.2deg)}.radial-progress[data-progress="89"] .circle .fill.fix{-webkit-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);transform:rotate(320.4deg)}.radial-progress[data-progress="90"] .circle .mask.full,.radial-progress[data-progress="90"] .circle .fill{-webkit-transform:rotate(162deg);-ms-transform:rotate(162deg);transform:rotate(162deg)}.radial-progress[data-progress="90"] .circle .fill.fix{-webkit-transform:rotate(324deg);-ms-transform:rotate(324deg);transform:rotate(324deg)}.radial-progress[data-progress="91"] .circle .mask.full,.radial-progress[data-progress="91"] .circle .fill{-webkit-transform:rotate(163.8deg);-ms-transform:rotate(163.8deg);transform:rotate(163.8deg)}.radial-progress[data-progress="91"] .circle .fill.fix{-webkit-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);transform:rotate(327.6deg)}.radial-progress[data-progress="92"] .circle .mask.full,.radial-progress[data-progress="92"] .circle .fill{-webkit-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);transform:rotate(165.6deg)}.radial-progress[data-progress="92"] .circle .fill.fix{-webkit-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);transform:rotate(331.2deg)}.radial-progress[data-progress="93"] .circle .mask.full,.radial-progress[data-progress="93"] .circle .fill{-webkit-transform:rotate(167.4deg);-ms-transform:rotate(167.4deg);transform:rotate(167.4deg)}.radial-progress[data-progress="93"] .circle .fill.fix{-webkit-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);transform:rotate(334.8deg)}.radial-progress[data-progress="94"] .circle .mask.full,.radial-progress[data-progress="94"] .circle .fill{-webkit-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);transform:rotate(169.2deg)}.radial-progress[data-progress="94"] .circle .fill.fix{-webkit-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);transform:rotate(338.4deg)}.radial-progress[data-progress="95"] .circle .mask.full,.radial-progress[data-progress="95"] .circle .fill{-webkit-transform:rotate(171deg);-ms-transform:rotate(171deg);transform:rotate(171deg)}.radial-progress[data-progress="95"] .circle .fill.fix{-webkit-transform:rotate(342deg);-ms-transform:rotate(342deg);transform:rotate(342deg)}.radial-progress[data-progress="96"] .circle .mask.full,.radial-progress[data-progress="96"] .circle .fill{-webkit-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);transform:rotate(172.8deg)}.radial-progress[data-progress="96"] .circle .fill.fix{-webkit-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);transform:rotate(345.6deg)}.radial-progress[data-progress="97"] .circle .mask.full,.radial-progress[data-progress="97"] .circle .fill{-webkit-transform:rotate(174.6deg);-ms-transform:rotate(174.6deg);transform:rotate(174.6deg)}.radial-progress[data-progress="97"] .circle .fill.fix{-webkit-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);transform:rotate(349.2deg)}.radial-progress[data-progress="98"] .circle .mask.full,.radial-progress[data-progress="98"] .circle .fill{-webkit-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);transform:rotate(176.4deg)}.radial-progress[data-progress="98"] .circle .fill.fix{-webkit-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);transform:rotate(352.8deg)}.radial-progress[data-progress="99"] .circle .mask.full,.radial-progress[data-progress="99"] .circle .fill{-webkit-transform:rotate(178.2deg);-ms-transform:rotate(178.2deg);transform:rotate(178.2deg)}.radial-progress[data-progress="99"] .circle .fill.fix{-webkit-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);transform:rotate(356.4deg)}.radial-progress[data-progress="100"] .circle .mask.full,.radial-progress[data-progress="100"] .circle .fill{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.radial-progress[data-progress="100"] .circle .fill.fix{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}.radial-progress:not([data-progress="0"]) .inset .bgIcon{opacity:1}.radial-progress.radial-progress-success .circle .mask .fill{background-color:#78be20}.radial-progress.radial-progress-success .inset .percentage .number span{color:#78be20}.radial-progress.radial-progress-info .circle .mask .fill{background-color:#a6a6a6}.radial-progress.radial-progress-info .inset .percentage .number span{color:#a6a6a6}.radial-progress.radial-progress-danger .circle .mask .fill{background-color:#d6001c}.radial-progress.radial-progress-danger .inset .percentage .number span{color:#d6001c}.radial-progress.radial-progress-warning .circle .mask .fill{background-color:#f2af40}.radial-progress.radial-progress-warning .inset .percentage .number span{color:#f2af40}.radial-progress.radial-progress-sm{width:80px;height:80px}.radial-progress.radial-progress-sm .circle .mask{clip:rect(0px, 80px, 80px, 40px)}.radial-progress.radial-progress-sm .circle .mask .fill{clip:rect(0px, 40px, 80px, 0px)}.radial-progress.radial-progress-sm .inset{width:60px;height:60px;margin-left:10px;margin-top:10px;font-size:14.4px}.radial-progress.radial-progress-sm .inset .bgIcon{position:absolute;font-size:50px;top:5px;left:-2px}.radial-progress.radial-progress-lg{width:180px;height:180px}.radial-progress.radial-progress-lg .circle .mask{clip:rect(0px, 180px, 180px, 90px)}.radial-progress.radial-progress-lg .circle .mask .fill{clip:rect(0px, 90px, 180px, 0px)}.radial-progress.radial-progress-lg .inset{width:135px;height:135px;margin-left:22.5px;margin-top:22.5px;font-size:32.4px}.radial-progress.radial-progress-lg .inset .bgIcon{position:absolute;font-size:115px;top:5px;left:-6px}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:80px}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{float:left;z-index:2;position:relative;background:#fff}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:0 0 0 15px}#o_main_wrapper #o_main_container #o_main_left #o_main_left_toggle{position:absolute;display:none;right:0;top:70px;margin-right:-30px;font-size:25px;line-height:35px;text-align:center;width:30px;height:35px;z-index:3;border:1px solid #ddd;border-left:none;border-bottom-right-radius:4px;border-top-right-radius:4px;background-color:#fbfbfb;-webkit-box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);color:#209d9e}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas{background:#fbfbfb;-webkit-box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);min-width:250px}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas #o_main_left_content{padding:0 0 0 0}#o_main_wrapper #o_main_container #o_main_right{float:right;z-index:2;position:relative;background:inherit}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:0 15px 0 0}#o_main_wrapper #o_main_container #o_main_center{position:relative;z-index:1;background:inherit}#o_main_wrapper #o_main_container #o_main_center h2:first-child{margin-top:0}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:0 15px}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content #o_main_center_content_inner{padding-bottom:15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:15px;text-align:center;z-index:3}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}}#o_back_wrapper,#o_preview_wrapper{margin-top:10px}#o_back_wrapper.o_toolbar .o_breadcrumb .breadcrumb,#o_preview_wrapper.o_toolbar .o_breadcrumb .breadcrumb{font-size:14px}body.o_message #o_main_center_content_inner{min-height:150px;max-width:500px;padding:15px;margin:60px auto}#o_footer_wrapper{position:absolute;bottom:0;width:100%;height:70px;overflow:hidden;background-color:#f5f5f5;color:#999;line-height:16px;font-size:12px}#o_footer_wrapper a{color:#999}#o_footer_wrapper a:hover{color:#000}#o_footer_container{position:relative;padding-top:10px;min-height:70px;background:#f5f5f5;z-index:1}#o_footer_user{position:absolute;left:15px;top:10px;z-index:1}#o_footer_user #o_counter{white-space:nowrap}#o_footer_user #o_username{white-space:nowrap;margin-right:1em}#o_footer_version{position:absolute;right:15px;top:10px;text-align:right;z-index:1}@media (max-width: 767px){#o_footer_version{padding-top:10px;text-align:left}}#o_footer_powered{position:absolute;top:30px;right:15px;z-index:1}#o_footer_powered img{opacity:.6;filter:alpha(opacity=60);width:120px}#o_footer_powered img:hover{opacity:1;filter:alpha(opacity=100)}#o_footer_impressum{position:absolute;top:10px;width:100%;text-align:center;z-index:-1}#o_footer_impressum i{display:none}#o_footer_textline{position:absolute;top:30px;width:100%;text-align:center;z-index:-1}#o_share{margin-top:10px}#o_share a{opacity:.6;filter:alpha(opacity=60)}#o_share a:hover{opacity:1;filter:alpha(opacity=100)}#o_share a,#o_share_social_container a{color:#999;margin:0 0.25em 0 0}#o_share a:hover,#o_share_social_container a:hover{color:#000}@media (max-width: 767px){#o_counter,#o_footer_version,#o_share{display:none}#o_footer_impressum{top:30px;text-align:left}#o_footer_textline{top:50px;text-align:left}#o_footer_powered{top:10px}#o_footer_powered a:after{content:"\221E";font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:14px}#o_footer_powered img{display:none}}#o_navbar_wrapper{z-index:4;border-top:1px solid #e7e7e7;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}#o_navbar_wrapper #o_navbar_container{position:relative}a.o_disabled.navbar-text{margin:0}.o_navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid #e7e7e7;background-color:#f8f8f8}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar .o_navbar_tabs li{max-width:150px}.o_navbar .o_navbar_tabs li a{padding-right:30px}.o_navbar .o_navbar_tabs li a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_navbar .o_navbar_tabs .o_icon-fw{position:absolute;top:15px;left:0.5em;padding-top:3px;width:1em;height:1em;display:none}.o_navbar .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}.o_navbar .o_navbar_tabs .o_navbar_tab_close i:before{color:#d6001c}.o_navbar .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#a30015}.o_navbar .o_custom_navbar-brand{background-position:5px 0;background-repeat:no-repeat;height:50px;width:120px}.o_navbar #o_navbar_langchooser{color:#777;padding:7px 15px}.o_navbar #o_navbar_langchooser form span+div{display:inline}.o_navbar #o_navbar_tools_permanent #o_navbar_print a,.o_navbar #o_navbar_tools_permanent #o_navbar_impress a,.o_navbar #o_navbar_tools_permanent #o_navbar_help a{color:#777;padding-right:0}.o_navbar #o_navbar_tools_permanent #o_navbar_login a{color:#f2af40}.o_navbar .o_navbar_tools>#o_navbar_tools_permanent>li>a>span{display:none}@media (min-width: 768px){.o_navbar .o_navbar_tools li.o_portrait>a>span{display:inline}}.o_navbar #o_navbar_tools_personal .o_navbar_tool a,.o_navbar #o_navbar_tools_permanent .o_navbar_tool a{padding-right:5px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu a{padding-left:45px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .dropdown-menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .dropdown-menu a{padding-left:15px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .o_portrait,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .o_portrait{position:absolute;left:7px;top:10px}.o_navbar #o_navbar_tools_personal .o_logout,.o_navbar #o_navbar_tools_permanent .o_logout{color:#d6001c}.o_navbar.o_navbar-offcanvas .o_navbar_tab_close{top:10px;right:10px}.o_navbar.o_navbar-offcanvas .o_navbar-right a{padding:3px 20px;color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-right a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a:focus{color:#fff;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout{color:#d6001c}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:focus{color:#a30015}.o_navbar.o_navbar-offcanvas .o_navbar-right a .o_icon-lg{font-size:1.0em;vertical-align:baseline}.o_navbar.o_navbar-offcanvas .o_navbar-right .divider{height:1px;margin:9px 0;overflow:hidden;background-color:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-header{padding-left:15px}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-toggle{display:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu{box-shadow:none;position:relative;top:0;left:0;display:block;float:none;background-color:#222;color:#9d9d9d;font-size:14px;border:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu .divider{background:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a{color:#9d9d9d;text-shadow:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav a:focus{background-color:transparent;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:focus{background-color:#090909;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link{color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link:hover{color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a{color:#777}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}#o_navbar_impress a span,#o_navbar_search_opener a span{display:none}body.o_dmz #o_navbar_print a span,body.o_dmz #o_navbar_impress a span,body.o_dmz #o_navbar_help a span,body.o_dmz #o_navbar_search_opener a span{display:inline}.o_navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;font-size:18px;line-height:20px;height:50px;color:#777}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none;color:#5e5e5e;background-color:transparent}.o_navbar-toggle{position:relative;margin-right:15px;margin-left:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;border:1px solid #ddd;border-radius:4px;background-color:transparent;background-image:none}.o_navbar-toggle:hover,.o_navbar-toggle:focus{outline:none;background-color:#ddd}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;background-color:#888}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}#o_navbar_left-toggle{float:left}#o_navbar_right-toggle{float:right}.o_navbar-link{color:#777}.o_navbar-link:hover{color:#333}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px;color:#777}.o_navbar-nav>li>a:hover,.o_navbar-nav>li>a:focus{color:#333;background-color:transparent}.o_navbar-nav>.active>a,.o_navbar-nav>.active>a:hover,.o_navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-nav>.disabled>a,.o_navbar-nav>.disabled>a:hover,.o_navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-nav>.open>a,.o_navbar-nav>.open>a:hover,.o_navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}}.o_collapse .o_navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.o_collapse .o_navbar-form.o_navbar-right:last-child{margin-right:-15px}.o_navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.o_navbar-fixed-bottom .o_navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.o_navbar-btn{margin-top:8px;margin-bottom:8px}.o_navbar-btn.btn-sm,.btn-group-sm>.o_navbar-btn.btn{margin-top:10px;margin-bottom:10px}.o_navbar-btn.btn-xs,.btn-group-xs>.o_navbar-btn.btn{margin-top:14px;margin-bottom:14px}.o_navbar-text{margin-top:15px;margin-bottom:15px;color:#777}.o_collapse .o_navbar-text{float:left;margin-left:15px;margin-right:15px}.o_collapse .o_navbar-text.o_navbar-right:last-child{margin-right:0}.o_dropdown_tab{position:relative}.o_dropdown_tab>a:first-child{padding-right:30px}.o_dropdown_tab>a:first-child .o_icon-fw{display:none;position:absolute;top:0;left:10px;padding-top:3px;line-height:20px}.o_dropdown_tab>a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_dropdown_tab .o_navbar_tab_close{position:absolute;top:0px;right:10px;padding-left:0px;padding-right:0px;color:#d6001c;background-color:inherit}.o_dropdown_tab .o_navbar_tab_close:focus,.o_dropdown_tab .o_navbar_tab_close:hover{color:#a30015;background-color:inherit}#o_navbar_more .dropdown-menu .divider:last-child{display:none}@media (min-width: 768px){#o_navbar_more .dropdown-menu{max-width:300px}}@media (max-width: 767px){#o_navbar_more>li{position:inherit}#o_navbar_more .dropdown-menu{left:0px;right:0px}#o_navbar_more .dropdown-menu a,#o_navbar_more .dropdown-menu i{line-height:30px}#o_navbar_more .dropdown-menu .o_navbar_tab_close{line-height:inherit}}.o_body_popup #o_topnav_printview{display:inline-block}.o_body_popup #o_topnav_close{float:right}.o_body_popup #o_topnav_close span{display:block}.o_body_popup #o_navbar_tools_permanent li>a{background-color:transparent}.o_toolbar{position:relative;margin-bottom:20px;margin-top:-10px;border:1px solid #e7e7e7}.o_toolbar:before,.o_toolbar:after{content:" ";display:table}.o_toolbar:after{clear:both}@media (min-width: 768px){.o_toolbar{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}}.o_toolbar.o_toolbar_with_segments{margin-bottom:30px}.o_toolbar .o_breadcrumb:before,.o_toolbar .o_breadcrumb:after{content:" ";display:table}.o_toolbar .o_breadcrumb:after{clear:both}.o_toolbar .o_breadcrumb .breadcrumb{margin-bottom:0;padding:5px 9px;font-size:11px;line-height:15px;border-radius:0;background:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d6001c}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a:hover{color:#8a0012}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a span{display:none}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close:before{content:none}.o_toolbar .o_tools_container{text-align:center;min-height:37px;position:relative;background-color:#f8f8f8;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_toolbar .o_tools_container:before,.o_toolbar .o_tools_container:after{content:" ";display:table}.o_toolbar .o_tools_container:after{clear:both}@media (max-width: 991px){.o_toolbar .o_tools_container{min-height:35px}}@media (max-width: 767px){.o_toolbar .o_tools_container{min-height:22px;text-align:left}}.o_toolbar .o_tools_container span.o_tool_text{color:#777;display:inline-block}.o_toolbar .o_tools_container a{color:#777;display:inline-block}.o_toolbar .o_tools_container a:hover{color:#333}.o_toolbar .o_tools_container a.o_disabled{color:#aaa !important}.o_toolbar .o_tools_container a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tools_container a.active{color:#209d9e;background-color:transparent}.o_toolbar .o_tools_container a.btn-primary{color:#fff}.o_toolbar .o_tools_container .dropdown-menu a{display:block}.o_toolbar .o_tools_container .dropdown-menu a.active{color:#209d9e;background-color:transparent}.o_toolbar .o_breadcrumb+.o_tools_container{border-top:1px solid #e7e7e7}.o_toolbar .o_tools{margin-top:8px;margin-bottom:5px}.o_toolbar .o_tool,.o_toolbar .o_text{position:relative;margin:0 10px}.o_toolbar .o_tool:first-child,.o_toolbar .o_text:first-child{margin-left:0}.o_toolbar .o_tool:last-child,.o_toolbar .o_text:last-child{margin-right:0}.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:18px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:block;font-size:12px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{position:absolute;right:50%;top:-18px;margin-right:-12px;font-size:13px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:16px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{font-size:11px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{top:-16.5px;margin-right:-11px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:20px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:none}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{display:block;position:relative;top:0;left:0;margin-right:0}}.o_toolbar .o_tool .o_chelp,.o_toolbar .o_text .o_chelp{position:relative;top:-1em;vertical-align:top;color:#fff}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{padding:0;margin-top:5px;border:1px solid #ccc;background-color:#eee}.o_toolbar .o_tool_next a,.o_toolbar .o_tool_previous a{color:#777}.o_toolbar .o_tool_next a:hover,.o_toolbar .o_tool_previous a:hover{color:#333}.o_toolbar .o_tool_next a.o_disabled,.o_toolbar .o_tool_previous a.o_disabled{color:#aaa !important}.o_toolbar .o_tool_next a.o_disabled:hover,.o_toolbar .o_tool_previous a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:21px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:4px}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:18px}}@media (max-width: 767px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:0}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:20px}}.o_toolbar .o_tool_previous{margin-left:10px;border-bottom-left-radius:4px;border-top-left-radius:4px;border-right:0}.o_toolbar .o_tool_next{border-bottom-right-radius:4px;border-top-right-radius:4px}.o_toolbar .o_tool_dropdown{margin:0 10px}.o_toolbar .o_tool_dropdown:first-child{margin-left:0}.o_toolbar .o_tool_dropdown:last-child{margin-right:0}.o_toolbar .o_tool_dropdown a.dropdown-toggle{position:relative}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:18px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label{display:block;font-size:12px;text-align:center}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{position:absolute;right:50%;top:4px;margin-right:-20px;font-size:14px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:16px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label,.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{font-size:11px}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{top:4px;margin-right:-18px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown a.dropdown-toggle{padding:0 10px 0 5px}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:20px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span.o_label{display:none}}.o_toolbar .o_tool_dropdown .dropdown-menu{text-align:left}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{line-height:16px;font-size:70% !important;padding:0 18px 0 4px;position:relative;top:-2px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:12px !important;margin:0 0 3px 0}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{position:absolute;right:5px;top:2px;margin-right:0}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{line-height:14px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:10px !important}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{right:5px;top:2px;margin-right:0;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light{padding:0 18px 0 4px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled i,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light i{font-size:20px}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled+.o_icon_caret,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light+.o_icon_caret{right:15px;top:2px;margin-right:0}.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled span.o_inner_text,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled span.o_label,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light span.o_inner_text,.o_toolbar .o_tool_dropdown .o_inner_wrapper.o_labeled_light span.o_label{display:none}}.o_toolbar .o_tool_dropdown .dropdown-toggle.o_with_labeled .o_inner_wrapper.o_labeled+.o_icon_caret{color:#fff !important}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled{padding:0;margin:0}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled .o_labeled{text-align:left}.o_toolbar .o_tool_dropdown .dropdown-menu.o_with_labeled>li>a{padding:5px 5px;margin:1px}.o_toolbar .o_tools_left{float:left}.o_toolbar .o_tools_right{float:right}.o_toolbar .o_tools_right_edge{float:right}.o_toolbar .o_tools_center{float:both;width:50%;margin-left:auto;margin-right:auto}.o_toolbar .o_tools_segments{margin:0 auto -1.1em auto}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}@media (max-width: 991px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools.o_tools_segments{margin:0 auto -1.1em auto}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}.o_toolbar .o_tool span{max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_toolbar .o_tools_segments .o_tool span{display:block}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 5px}}@media (max-width: 767px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools .o_chelp{top:0;vertical-align:top}.o_toolbar .o_tools.o_tools_segments{margin:0 auto -1.1em auto;text-align:center}.o_toolbar .o_tools_segments.o_tools_segments_alone{margin-top:1.5em}.o_toolbar .o_tools_center{float:left}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 0;position:static}.o_toolbar .o_tool_dropdown .dropdown-menu{left:0px;right:0px}.o_toolbar .o_tool_dropdown .dropdown-menu a,.o_toolbar .o_tool_dropdown .dropdown-menu i{line-height:30px}.o_toolbar .o_tool_dropdown .dropdown-menu .o_navbar_tab_close{line-height:inherit}}#o_main_container .o_toolbar_message{display:table;margin:0 auto 20px auto}#o_main_container .o_toolbar_message.o_warning{padding-top:5px;padding-bottom:5px;border:1px solid #8a6d3b;border-radius:3px}.o_edit_mode .o_toolbar .o_tools_container{background:repeating-linear-gradient(300deg, #fff0d9, #fff0d9 10px, #fcfcfc 10px, #fcfcfc 20px)}.o_edit_mode .o_toolbar .o_edit_mode .o_tools_container{background:#f8f8f8}body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px}#o_container_page_width_toggler{position:absolute;top:25px;margin-top:-.75em;right:10px;z-index:5;display:none}@media (min-width: 1364px){#o_container_page_width_toggler{display:block}#o_container_page_width_toggler #o_go_standard_width{display:none}#o_container_page_width_toggler #o_go_full_width{display:block}body.o_width_full .o_container_offcanvas{max-width:100%;margin-left:20px;margin-right:20px}body.o_width_full #o_container_page_width_toggler #o_go_standard_width{display:block}body.o_width_full #o_container_page_width_toggler #o_go_full_width{display:none}}body.o_dmz #o_container_page_width_toggler{display:none !important}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#9d9d9d;border:1px solid #090909;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);min-height:100%;z-index:10;display:none}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}.o_info,.b_info,p.b_info,div.b_info,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback,.o_assessmentitem_wrapper .modalFeedback .o_info{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_info h5,.b_info h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.o_assessmentitem_wrapper .modalFeedback .o_info h2,.b_info h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.o_assessmentitem_wrapper .modalFeedback .o_info h3,.b_info h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.o_assessmentitem_wrapper .modalFeedback .o_info h4,.b_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_info h2,.o_form .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.o_assessmentitem_wrapper .modalFeedback .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info h2,.b_info h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5,.o_assessmentitem_wrapper .modalFeedback .o_info h5{color:#777}.o_note,.b_note,p.b_note,div.b_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_note h5,.b_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h2,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2,.b_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h3,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h3,.b_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h4,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h4,.b_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h2,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2,.b_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback h5,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{margin:20px 0;padding:20px;border-left:3px solid #F4D000;background-color:#FFF1A4}.o_important h2,.o_important h3,.o_important h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_important h5,.b_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.b_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.b_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.b_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.b_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#F4D000}.o_success,.b_success,p.b_success,div.b_success,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5,.b_success h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h2,.b_success h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h3,.b_success h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h4,.b_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_success h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h2,.b_success h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning,.o_instruction,.o_form .o_warning,p.o_gta_reopen_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.b_warning h2,.o_instruction h2,.o_form .o_warning h2,p.o_gta_reopen_warning h2,.b_warning h3,.o_instruction h3,.o_form .o_warning h3,p.o_gta_reopen_warning h3,.b_warning h4,.o_instruction h4,.o_form .o_warning h4,p.o_gta_reopen_warning h4,.b_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_warning h2,.o_instruction .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_instruction h2,.o_form .o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_warning h2,p.o_gta_reopen_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title p.o_gta_reopen_warning h2,.b_warning h5,.o_instruction h5,.o_form .o_warning h5,p.o_gta_reopen_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5,.b_error h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h2,.b_error h3,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h3,.b_error h4,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h4,.b_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_error h2,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h2,.b_error h5,.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback h5{color:#a94442}.o_instruction{margin-top:0px;border-left:none;padding-top:10px;padding-bottom:10px}.o_instruction>.o_button_group{margin-bottom:0px}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_alert_close{float:right;color:#777}.o_alert_info .alert .o_alert_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}#o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4,.modal .modal-header .o_cal .fc-header-title h2,.o_cal .fc-header-title .modal .modal-header h2{color:#342c24;font-weight:500;font-family:inherit;line-height:1.1}.o_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_tree a{color:#777;background-color:none}.o_tree a:hover,.o_tree a:focus{color:#333}.o_tree .o_tree_link{background-color:none}.o_tree .o_tree_link:hover,.o_tree .o_tree_link:focus{background-color:#f8f8f8}.o_tree .o_tree_link:first-child{background-color:transparent}.o_tree .o_tree_link:last-child:hover,.o_tree .o_tree_link:last-child:focus{background-color:#f8f8f8}.o_tree .o_insertion_point>a>span{padding:5px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_insertion_source>a>span.o_tree_item,.o_tree .o_insertion_source>a>span.o_dnd_item{border-bottom:solid #f90 4px;background-color:#fefbf6}.o_tree ul{margin:0;padding:0;list-style-type:none}.o_tree ul li{margin:0;padding:0;white-space:nowrap}.o_tree ul li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_tree ul li div.popover{position:absolute;left:auto;right:0}.o_tree ul li div a.o_tree_oc_l0{position:absolute;top:10px;left:-4px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l0,.o_tree ul .o_tree_level_close.b_tree_oc_l0{z-index:10}.o_tree ul li div a.o_tree_oc_l1{position:absolute;top:10px;left:11px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l1,.o_tree ul .o_tree_level_close.b_tree_oc_l1{z-index:10}.o_tree ul li div a.o_tree_oc_l2{position:absolute;top:10px;left:26px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l2,.o_tree ul .o_tree_level_close.b_tree_oc_l2{z-index:10}.o_tree ul li div a.o_tree_oc_l3{position:absolute;top:10px;left:41px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l3,.o_tree ul .o_tree_level_close.b_tree_oc_l3{z-index:10}.o_tree ul li div a.o_tree_oc_l4{position:absolute;top:10px;left:56px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l4,.o_tree ul .o_tree_level_close.b_tree_oc_l4{z-index:10}.o_tree ul li div a.o_tree_oc_l5{position:absolute;top:10px;left:71px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l5,.o_tree ul .o_tree_level_close.b_tree_oc_l5{z-index:10}.o_tree ul li div a.o_tree_oc_l6{position:absolute;top:10px;left:86px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l6,.o_tree ul .o_tree_level_close.b_tree_oc_l6{z-index:10}.o_tree ul li div a.o_tree_oc_l7{position:absolute;top:10px;left:101px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l7,.o_tree ul .o_tree_level_close.b_tree_oc_l7{z-index:10}.o_tree ul li div a.o_tree_oc_l8{position:absolute;top:10px;left:116px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l8,.o_tree ul .o_tree_level_close.b_tree_oc_l8{z-index:10}.o_tree ul li div a.o_tree_oc_l9{position:absolute;top:10px;left:131px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l9,.o_tree ul .o_tree_level_close.b_tree_oc_l9{z-index:10}.o_tree ul li div a.o_tree_oc_l10{position:absolute;top:10px;left:146px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l10,.o_tree ul .o_tree_level_close.b_tree_oc_l10{z-index:10}.o_tree ul li div a.o_tree_oc_l11{position:absolute;top:10px;left:161px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l11,.o_tree ul .o_tree_level_close.b_tree_oc_l11{z-index:10}.o_tree ul li div span.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_tree ul li div span.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_tree ul li div span.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_tree ul li div span.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_tree ul li div span.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_tree ul li div span.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_tree ul li div span.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_tree ul li div span.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_tree ul li div span.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_tree ul li div span.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_tree ul li div span.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_tree ul li div span.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_tree ul span.o_tree_leaf{display:none}.o_tree ul span.o_tree_link>input[type=checkbox]{margin-right:5px}.o_tree ul li .badge{position:absolute;font-size:70%}.o_tree ul li .badge:before{content:none}.o_tree ul li .badge.o_badge_1{top:3px;right:1px}.o_tree ul li .badge.o_badge_2{bottom:3px;right:1px}.o_tree ul li .badge.o_badge_3{top:3px;right:25px}.o_tree ul li .badge.o_badge_4{bottom:3px;right:25px}.o_tree ul li div.o_dnd_sibling{margin:0;padding:0;border-bottom:none}.o_tree ul li .active.o_tree_link{background-color:none;font-weight:bold}.o_tree ul li .active.o_tree_link a{color:#209d9e}.o_tree ul li .active.o_tree_link:hover,.o_tree ul li .active.o_tree_link:focus{background-color:#eee}.o_tree ul li .active.o_tree_link:hover a,.o_tree ul li .active.o_tree_link:focus a{color:#177374}.o_tree ul li .active_parent.o_tree_link{font-weight:bold}.o_tree ul li .active_parent.o_tree_link a{color:#777}.o_tree ul li .active_parent.o_tree_link a:hover,.o_tree ul li .active_parent.o_tree_link a:focus{color:#333}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l0{left:6px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l1{left:21px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l2{left:36px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l3{left:51px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l4{left:66px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l5{left:81px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l6{left:96px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l7{left:111px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l8{left:126px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l9{left:141px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l10{left:156px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l11{left:171px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l0{padding:10px 2px 10px 20px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l1{padding:10px 2px 10px 35px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l2{padding:10px 2px 10px 50px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l3{padding:10px 2px 10px 65px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l4{padding:10px 2px 10px 80px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l5{padding:10px 2px 10px 95px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l6{padding:10px 2px 10px 110px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l7{padding:10px 2px 10px 125px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l8{padding:10px 2px 10px 140px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l9{padding:10px 2px 10px 155px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l10{padding:10px 2px 10px 170px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l11{padding:10px 2px 10px 185px}.o_tree .o_dnd_item{cursor:move;z-index:100}.o_tree .o_dnd_proxy{opacity:.4;filter:alpha(opacity=40);background-color:#f2af40;padding:5px 10px 5px 10px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_dnd_item.o_dnd_over{background-color:#ffff60}.o_tree .o_dnd_sibling{height:7px;width:100%}.o_tree .o_dnd_sibling.o_dnd_over{background:transparent url(../light/images/arrow_dd.png) top left no-repeat}.o_tree .o_dnd_l1{margin-left:0 !important}.o_tree .o_dnd_l2{margin-left:1em !important}.o_tree .o_dnd_l3{margin-left:2em !important}.o_tree .o_dnd_l4{margin-left:3em !important}.o_tree .o_dnd_l5{margin-left:4em !important}.o_tree .o_dnd_l6{margin-left:5em !important}.o_tree .o_dnd_l7{margin-left:6em !important}.o_tree .o_dnd_l8{margin-left:7em !important}.o_tree .o_dnd_l9{margin-left:8em !important}.o_tree .o_dnd_l10{margin-left:9em !important}.o_tree .o_dnd_l11{margin-left:10em !important}.o_tree.o_tree_insert_tool span.o_tree_link a{display:block}.o_offcanvas .o_tree{border:0}.o_selection_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_selection_tree ul{margin:0;padding:0;list-style-type:none}.o_selection_tree li{margin:0;padding:0;white-space:nowrap}.o_selection_tree li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_selection_tree li>div>span.o_tree_l0,.o_selection_tree li>div>div.checkbox.o_tree_l0,.o_selection_tree li>div>div.radio.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_selection_tree li>div>span.o_tree_l1,.o_selection_tree li>div>div.checkbox.o_tree_l1,.o_selection_tree li>div>div.radio.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_selection_tree li>div>span.o_tree_l2,.o_selection_tree li>div>div.checkbox.o_tree_l2,.o_selection_tree li>div>div.radio.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_selection_tree li>div>span.o_tree_l3,.o_selection_tree li>div>div.checkbox.o_tree_l3,.o_selection_tree li>div>div.radio.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_selection_tree li>div>span.o_tree_l4,.o_selection_tree li>div>div.checkbox.o_tree_l4,.o_selection_tree li>div>div.radio.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_selection_tree li>div>span.o_tree_l5,.o_selection_tree li>div>div.checkbox.o_tree_l5,.o_selection_tree li>div>div.radio.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_selection_tree li>div>span.o_tree_l6,.o_selection_tree li>div>div.checkbox.o_tree_l6,.o_selection_tree li>div>div.radio.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_selection_tree li>div>span.o_tree_l7,.o_selection_tree li>div>div.checkbox.o_tree_l7,.o_selection_tree li>div>div.radio.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_selection_tree li>div>span.o_tree_l8,.o_selection_tree li>div>div.checkbox.o_tree_l8,.o_selection_tree li>div>div.radio.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_selection_tree li>div>span.o_tree_l9,.o_selection_tree li>div>div.checkbox.o_tree_l9,.o_selection_tree li>div>div.radio.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_selection_tree li>div>span.o_tree_l10,.o_selection_tree li>div>div.checkbox.o_tree_l10,.o_selection_tree li>div>div.radio.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_selection_tree li>div>span.o_tree_l11,.o_selection_tree li>div>div.checkbox.o_tree_l11,.o_selection_tree li>div>div.radio.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_breadcrumb{position:relative}.o_breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d6001c}.o_breadcrumb .o_breadcrumb_close a:hover{color:#8a0012}.o_breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_breadcrumb .o_breadcrumb_close a span{display:none}.o_breadcrumb .o_breadcrumb_close:before{content:none}.o_form .o_icon_mandatory{margin-right:0.25em}.o_form .o_form_chelp{padding-left:0.25em;margin-right:-1.25em}.o_form .o_form_example{font-size:90%}.o_form .o_error{margin-top:1px;margin-bottom:0;padding:10px}.o_form hr.o_spacer_noline{border-top:1px solid transparent}.o_form hr.o_spacer.form,.o_form hr.o_spacer_noline.form{margin-top:0px;margin-bottom:0px}.o_form .form-group.o_omit_margin{margin-bottom:0}.o_form .o_date{position:relative;padding-right:34px}.o_form .o_date.form-inline .form-group,.o_form .o_date.o_navbar-form .form-group{margin-left:0}.o_form .o_date.form-inline .form-group.o_second_date,.o_form .o_date.o_navbar-form .form-group.o_second_date,.o_form .o_date.form-inline .o_date_ms.form-group,.o_form .o_date.o_navbar-form .o_date_ms.form-group,.o_form .o_date.form-inline .form-group.o_date_separator,.o_form .o_date.o_navbar-form .form-group.o_date_separator{margin-left:25px}.o_form .btn-group .o_date{display:inline-block}.o_form input.o_date_ms{width:3em}.o_form .has-feedback .o_date.form-inline .form-control.o_date_ms,.o_form .has-feedback .o_date.o_navbar-form .form-control.o_date_ms{padding-right:0}.o_form .o_form_element.form-inline .o_form_element.form-group,.o_form .o_form_element.o_navbar-form .o_form_element.form-group{margin-left:25px}.o_form .input-group.o_date_picker{width:11em}.o_form .has-feedback .o_date_picker .form-control{padding-right:0}.o_form .o_filepreview{margin-bottom:10px}.o_form .o_fileinput{cursor:pointer;position:relative}.o_form .o_fileinput .o_fakechooser{position:relative;z-index:1}.o_form .o_fileinput .o_realchooser{position:absolute;top:0;right:0;z-index:2;opacity:0;filter:alpha(opacity=0)}.o_form .o_fileinput .o_realchooser.o_chooser_with_delete{right:38px}.o_form .o_fileElement.has-error .o_icon_error.form-control-feedback{display:none}.o_form .form-control.textarea.o_fixed_font_with{resize:vertical !important;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_form .form-control.textarea_disabled.o_fixed_font_with{white-space:pre-wrap;height:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;color:#555 !important;background:#fafafa}.o_form .form-control.textarea_disabled{resize:both;overflow:auto;white-space:pre-wrap;background:#fafafa}.o_form_inline_mandatory_compact i{width:20px}.o_form_inline_mandatory_compact select.form-control{width:calc(100% - 25px)}.o_day_chooser .o_day_previous{display:inline-block}.o_day_chooser .o_day_previous a{border-bottom-right-radius:0;border-top-right-radius:0;border-right:0}.o_day_chooser .o_day_date{display:inline-block;border-radius:0}.o_day_chooser .o_day_date input,.o_day_chooser .o_day_date .input-group-addon{border-radius:0}.o_day_chooser .o_day_next{display:inline-block}.o_day_chooser .o_day_next a{border-bottom-left-radius:0;border-top-left-radius:0;border-left:0}.o_centered_form{text-align:center}.o_centered_form fieldset.o_form{display:inline-block;text-align:left}.o_choice_checkrow,.o_choice_textrow{vertical-align:text-top;padding-bottom:2px}.o_choice_textrow{padding-left:1em}.o_togglecheck a{white-space:nowrap}.o_catalog .o_catalog_delete_img{position:relative;top:-0.5em}.o_button_dirty{color:#fff;background-color:#f2af40;border-color:#f0a528}.o_button_dirty:hover,.o_button_dirty:focus,.o_button_dirty.focus,.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{color:#fff;background-color:#ef9b10;border-color:#cd850e}.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{background-image:none}.o_button_dirty.disabled,.o_button_dirty.disabled:hover,.o_button_dirty.disabled:focus,.o_button_dirty.disabled.focus,.o_button_dirty.disabled:active,.o_button_dirty.disabled.active,.o_button_dirty[disabled],.o_button_dirty[disabled]:hover,.o_button_dirty[disabled]:focus,.o_button_dirty[disabled].focus,.o_button_dirty[disabled]:active,.o_button_dirty[disabled].active,fieldset[disabled] .o_button_dirty,fieldset[disabled] .o_button_dirty:hover,fieldset[disabled] .o_button_dirty:focus,fieldset[disabled] .o_button_dirty.focus,fieldset[disabled] .o_button_dirty:active,fieldset[disabled] .o_button_dirty.active{background-color:#f2af40;border-color:#f0a528}.o_button_dirty .badge{color:#f2af40;background-color:#fff}.o_button_toggle{border:1px solid #777;border-top-right-radius:9px;border-top-left-radius:9px;border-bottom-right-radius:9px;border-bottom-left-radius:9px;background:#eee;display:inline-block;height:18px;line-height:16px;font-size:16px;text-align:left;padding:0 0.5em 0 1px;margin:0}.o_button_toggle i{color:#777;text-shadow:1px 0 2px rgba(0,0,0,0.25)}.o_button_toggle span{line-height:16px;vertical-align:top;font-size:60%;color:#777;text-transform:uppercase}.o_button_toggle.o_on{text-align:right;padding:0 1px 0 0.5em}.o_button_toggle.o_on i{color:#209d9e;text-shadow:-1px 0 2px rgba(0,0,0,0.25)}.o_table_wrapper{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_table_wrapper.o_table_flexi .o_table_body{margin-top:20px}.o_table_wrapper.o_table_flexi .table{margin-top:20px}.o_table_wrapper.o_table_flexi .table td ul{margin:0}.o_table_wrapper.o_table_flexi.o_table_no_margin .table{margin:0}.o_table_wrapper.o_table_flexi tfoot{border-top:solid #ddd 2px}.o_table_wrapper.o_table_flexi .o_multiselect{width:20px}.o_table_wrapper.o_table_edit table tbody{border-top:solid #f90 4px;background-color:#fefbf6}.o_table_wrapper .o_table_search{max-width:50em}.o_table_wrapper .o_table_footer .o_table_checkall>a{font-weight:normal;margin-right:10px}.o_table_wrapper .o_table_footer .o_table_checkall.input-sm,.o_table_wrapper .o_table_footer .input-group-sm>.o_table_checkall.form-control,.o_table_wrapper .o_table_footer .input-group-sm>.o_table_checkall.input-group-addon,.o_table_wrapper .o_table_footer .input-group-sm>.input-group-btn>.o_table_checkall.btn{padding:5px 6px}.o_table_wrapper .o_table_footer .o_table_pagination{text-align:center}.o_table_wrapper .o_table_rows_infos{float:left;padding-left:0;padding-right:20px;margin:20px 0}.o_table_wrapper .o_row_selected td{background-color:#dff0d8 !important}.o_table_wrapper .o_table{margin-bottom:0}.o_table_wrapper .o_marked{font-weight:bold}.o_table_wrapper .table{margin-bottom:0}.o_table_wrapper th a,.o_table_wrapper th a:hover{color:#2d2926;text-decoration:none}.o_table_search a.btn.o_reset_quick_search{width:38px;margin-left:-38px;z-index:5;color:grey}.o_breadcrumb.o_table_flexi_breadcrumb ol.breadcrumb{margin:5px 0 0 0}div.o_table_flexi div.o_table_flexi_leaf{margin-left:1.55em}div.o_table_flexi div.o_table_flexi_l0{padding-left:0px}div.o_table_flexi div.o_table_flexi_l1{padding-left:15px}div.o_table_flexi div.o_table_flexi_l2{padding-left:30px}div.o_table_flexi div.o_table_flexi_l3{padding-left:45px}div.o_table_flexi div.o_table_flexi_l4{padding-left:60px}div.o_table_flexi div.o_table_flexi_l5{padding-left:75px}div.o_table_flexi div.o_table_flexi_l6{padding-left:90px}div.o_table_flexi div.o_table_flexi_l7{padding-left:105px}div.o_table_flexi div.o_table_flexi_l8{padding-left:120px}div.o_table_flexi div.o_table_flexi_l9{padding-left:135px}div.o_table_flexi div.o_table_flexi_l10{padding-left:150px}div.o_table_flexi div.o_table_flexi_l11{padding-left:165px}@media (max-width: 767px){.o_table_wrapper .o_table_rows_infos{clear:both}}a.o_orderby,a.o_orderby:hover{color:#2d2926;text-decoration:none}a.o_orderby.o_orderby_asc,a.o_orderby.o_orderby_desc,a.o_orderby:hover.o_orderby_asc,a.o_orderby:hover.o_orderby_desc{border-bottom:1px solid #ddd}.o_table_row_count{padding-top:6px;padding-bottom:6px;vertical-align:middle}.o_table_row_details td{background-color:white !important}.o_table_config{font-size:12px}.o_table_buttons{text-align:center}.o_table_buttons input{margin-right:1em}.o_table_buttons input:last-child{margin-right:0}.o_table_tools{margin-left:6px}.o_table_tools_indications,.o_table_tools_indications_filter_only{margin-left:10px;padding-top:3px;font-size:80%}.o_table_tools_indications a,.o_table_tools_indications_filter_only a{color:#d6001c}.o_table_toolbar_left .o_table_tools_indications{text-align:right}.o_table_count{max-width:20em;float:left;padding:0 15px}.o_table_filter .control-label{margin-right:0.5em}.o_table_filter .control-label:after{content:':'}.o_table_filter>div{display:inline-block}.o_table_filter>div label{font-weight:normal}.o_info .table-bordered td,o_note .table-bordered td,o_important .table-bordered td,o_warning .table-bordered td,o_error .table-bordered td{border-color:#333}.panel .o_table_layout{border-top:1px solid #ddd;padding-top:6px}.panel .o_table_count{padding:0 15px}#o_navbar_imclient .o_im_messages{float:left}#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary{float:left;position:relative;padding:15px 3px}#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_message{padding-left:15px}#o_navbar_imclient #o_im_summary .badge{color:#fff;background-color:#777}#o_navbar_imclient #o_im_status li>a>span{display:inline}#o_navbar_imclient #o_im_status div.o_chelp_wrapper{right:0.5em}#o_navbar_imclient #o_im_message a:hover,#o_navbar_imclient #o_im_message a:focus{text-decoration:none}#o_navbar_imclient #o_im_message .o_icon_message{color:#d6001c}#o_navbar_imclient #o_im_message .o_icon_message:hover{color:#f5c370}.o_im_load_history{margin-bottom:6px}.o_im_load_history .o_label{font-size:12px;padding-right:0.5em;line-height:1.5em;color:#777}.o_im_chat_history{height:170px;font-size:90%;border:1px solid #eee;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_im_message_group{padding:3px 3px 3px 40px;min-height:40px;position:relative;border-top:1px solid #eee;background:#fff}.o_im_message_group.o_odd{background:#F4F4F4}.o_im_message_group .o_portrait{position:absolute;top:3px;left:3px}.o_im_message_group .o_im_from{color:#777;font-size:12px;font-weight:bold}.o_im_message_group .o_im_from:hover{color:#5e5e5e}.o_im_message_group div.o_im_body{padding:3px 0 3px 0;font-size:12px}.o_im_message_group div.o_im_body .o_date{float:right;color:#777;font-size:9px}.o_groupchat_roster{font-size:12px}.o_groupchat_roster li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2d2926}.o_groupchat_roster li.o_vip{color:#3c763d}.o_groupchat_roster li.o_anonymous{color:#31708f}.o_im_buddieslist .o_im_buddieslist_toggler .btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_im_buddieslist ul{font-size:12px}.o_im_buddieslist ul ul{padding-left:1em}.o_im_buddieslist ul a{color:#209d9e}.o_im_buddieslist ul a:hover{color:#177374}.o_flag{position:relative;top:1px;display:inline-block;line-height:1;width:16px;height:16px;background-repeat:no-repeat;background-position:0 100%}option.o_with_flag{padding-left:23px;min-height:16px;background-repeat:no-repeat;background-position:2px 50%}.o_flag_en{background-image:url("../light/images/flags/gb.png")}.o_flag_de{background-image:url("../light/images/flags/de.png")}.o_flag_fr{background-image:url("../light/images/flags/fr.png")}.o_flag_it{background-image:url("../light/images/flags/it.png")}.o_flag_es{background-image:url("../light/images/flags/es.png")}.o_flag_da{background-image:url("../light/images/flags/dk.png")}.o_flag_cs{background-image:url("../light/images/flags/cz.png")}.o_flag_el{background-image:url("../light/images/flags/gr.png")}.o_flag_ee{background-image:url("../light/images/flags/ee.png")}.o_flag_ru{background-image:url("../light/images/flags/ru.png")}.o_flag_pl{background-image:url("../light/images/flags/pl.png")}.o_flag_zh_CN{background-image:url("../light/images/flags/cn.png")}.o_flag_zh_TW{background-image:url("../light/images/flags/tw.png")}.o_flag_lt{background-image:url("../light/images/flags/lt.png")}.o_flag_fa{background-image:url("../light/images/flags/ir.png")}.o_flag_pt_PT{background-image:url("../light/images/flags/pt.png")}.o_flag_pt_BR{background-image:url("../light/images/flags/br.png")}.o_flag_tr{background-image:url("../light/images/flags/tr.png")}.o_flag_hu{background-image:url("../light/images/flags/hu.png")}.o_flag_sq{background-image:url("../light/images/flags/al.png")}.o_flag_in{background-image:url("../light/images/flags/id.png")}.o_flag_ar{background-image:url("../light/images/flags/eg.png")}.o_flag_rm{background-image:url("../light/images/flags/rm.png")}.o_flag_af{background-image:url("../light/images/flags/za.png")}.o_flag_vi{background-image:url("../light/images/flags/vn.png")}.o_flag_mn{background-image:url("../light/images/flags/mn.png")}.o_flag_iw{background-image:url("../light/images/flags/il.png")}.o_flag_ko{background-image:url("../light/images/flags/kr.png")}.o_flag_nl_NL{background-image:url("../light/images/flags/nl.png")}.o_flag_jp{background-image:url("../light/images/flags/jp.png")}.o_flag_nb_NO{background-image:url("../light/images/flags/no.png")}.o_flag_et_EE{background-image:url("../light/images/flags/ee.png")}.o_flag_bg{background-image:url("../light/images/flags/bg.png")}.o_flag_hi_IN_ASIA{background-image:url("../light/images/flags/in.png")}.o_flag_ar_LB{background-image:url("../light/images/flags/lb.png")}.o_flag_gl_ES{background-image:url("../light/images/flags/galicia.png")}.o_flag_sk{background-image:url("../light/images/flags/sk.png")}.o_rating .o_rating_title{font-size:12px}.o_rating .o_rating_items{white-space:nowrap}.o_rating .o_rating_items .o_icon{color:#f2af40}.o_rating .o_rating_items .o_legend{margin-left:1em;font-size:12px;line-height:normal}.o_rating.o_rating_personal .o_rating_items .o_icon{color:#209d9e}.o_rating .o_rating_explanation{font-size:12px;color:#777}@media (max-width: 991px){.o_rating .o_rating_title,.o_rating .o_rating_explanation{display:none}}.o_comments .o_comment_wrapper .o_avatar{float:left;margin:0 1em 0 0}.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.o_comments .o_comment_wrapper .o_comment_wrapper{margin-left:16px}.o_ratings_and_comments .o_rating_wrapper{vertical-align:middle;display:inline-block}.o_ratings_and_comments a.o_comments{margin-left:10px;position:relative;top:0.1em}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#35d5d6}.d3chart .bar_default,.d3chart .bubble_default{fill:#209d9e}.d3chart .bar_default_dark{fill:#135e5e}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_forum_peekview .o_quote_wrapper,.o_forum_peekview .b_quote_wrapper{display:none}.o_forum_thread_sticky{font-weight:bold}.o_forum_switch{font-size:12px}.o_forum_toolbar{margin-bottom:6px;float:left}.o_forum_fulltextsearch{float:right}@media (max-width: 767px){.o_forum_fulltextsearch{float:left}.o_forum_toolbar .o_forum_tool span{display:none}}.o_forum{padding-bottom:50px}.o_forum .o_mark,.o_forum .o_ep_collect{float:right;position:relative;width:2em;margin-left:12px}.o_forum .o_portrait{float:left;margin-right:16px}.o_forum .o_portrait_avatar{width:70px;height:70px}.o_forum .o_newindicator{font-size:10px;color:#78be20;text-transform:uppercase;padding-left:1em;vertical-align:text-top;white-space:nowrap}.o_forum .o_author,.o_forum .o_date{display:inline-block;color:#777}.o_forum .o_date{font-size:12px}.o_forum .o_modified{color:#8a6d3b;font-size:12px;font-style:italic}.o_forum .o_forum_message{margin-bottom:20px;background-color:#fcfcfc;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_forum .o_forum_message_new{-webkit-box-shadow:0 1px 10px rgba(92,184,92,0.3);box-shadow:0 1px 10px rgba(92,184,92,0.3)}.o_forum .o_forum_message_highlight{-webkit-box-shadow:0 1px 10px rgba(240,173,78,0.5);box-shadow:0 1px 10px rgba(240,173,78,0.5)}.o_forum .o_forum_message_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:3px;border-top-left-radius:3px}.o_forum .o_forum_message_title{margin-top:0}.o_forum .o_forum_message_body{padding:10px 15px}.o_forum .o_forum_message_attachments{border-top:1px solid #ddd;padding:10px 15px;font-size:12px;background-color:#f7f7f9}.o_forum .o_attachment{position:relative;max-width:250px;vertical-align:top;margin:6px 12px 10px 0}.o_forum .o_attachment img{margin-top:6px}.o_forum .o_filename{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_forum .o_icon_enlarge{position:absolute;left:1em;bottom:1em;text-shadow:1px 1px 2px #fff, -1px 1px 2px #fff, 1px -1px 2px #fff, -1px -1px 2px #fff}@media (min-width: 768px) and (max-width: 991px){.o_forum .o_attachments{font-size:10px}.o_forum .o_attachment{max-width:200px}.o_forum .o_attachment img{max-width:150px}.o_forum .o_filename{max-width:200px}}@media (max-width: 767px){.o_forum .o_attachments{font-size:9px}.o_forum .o_attachment{max-width:150px}.o_forum .o_attachment img{max-width:100px}.o_forum .o_filename{max-width:150px}}.o_quote_wrapper,.b_quote_wrapper{position:relative;margin:10px 0}.o_quote_author,.b_quote_author{color:#777;font-size:12px}.o_quote_author:before,.b_quote_author:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";font-size:21px;padding-right:0.5em}blockquote.o_quote,blockquote.b_quote{color:#555;font-size:12px;margin-top:6px;padding:0 12px}a.o_chelp{display:inline-block;padding:1px 3px;text-align:center;vertical-align:middle;white-space:nowrap;font-size:10px;font-weight:normal;line-height:15px;color:#fff;background-color:#209d9e;border:1px solid #1c8889;border-radius:2px;cursor:help;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}a.o_chelp:active,a.o_chelp:hover,a.o_chelp:focus{text-decoration:none;color:#fff;background-color:#197b7c;border-color:#115556}a.o_chelp i{font-size:10px !important}.o_chelp_wrapper{position:relative;float:right;display:inline-block;line-height:normal;margin-bottom:10px;margin-left:10px}.o_form_chelp,.o_chelp_tooltip{color:#726860}.o_draw_circle{border:2px solid #209d9e;border-radius:50%;position:absolute !important;box-sizing:border-box}.o_draw_rectangle{border:2px solid #209d9e;position:absolute !important;box-sizing:border-box}.o_iframedisplay iframe{width:100%}.o_singlepage .o_edit{position:absolute;top:0;right:37px}.o_content_popup{position:absolute;top:0;right:12px}.o_module_cp_wrapper{position:relative}.o_module_cp_wrapper .o_tools{position:absolute;top:0;right:0;text-align:right;vertical-align:middle}.o_module_cp_wrapper .o_tools .o_search_wrapper{display:inline-block;position:relative;top:-2px}.o_module_cp_wrapper .o_tools .o_search_wrapper .form-group{margin-bottom:0}.o_module_cp_wrapper .o_tools .o_search_wrapper .form-control-static{padding-top:0;padding-bottom:0}ul.o_dropdown{margin:-5px -14px}ul.o_dropdown .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}ul.o_dropdown>li>a{display:block;padding:5px 14px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;background:#fcfcfc;white-space:nowrap}ul.o_dropdown>li>a:hover,ul.o_dropdown>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}ul.o_dropdown>li>i.o_icon_check{display:inline-block;padding-left:14px}ul.o_dropdown>li>i.o_icon_check+a{display:inline-block;padding-left:5px}.badge.o_scorm_completed{background-color:#3c763d}.badge.o_scorm_failed{background-color:#a94442}.badge.o_scorm_incomplete{background-color:#8a6d3b}.badge.o_scorm_not_attempted{background:none}.o_bc_meta h5,.o_bc_meta .o_author,.o_bc_meta .o_comment,.tooltip h5,.tooltip .o_author,.tooltip .o_comment{color:#fff;margin:5px 0}.o_bc_meta .o_thumbnail,.tooltip .o_thumbnail{width:200px;height:200px;display:inline-block;background-color:#fff;margin:0 -5px}.o_htmleditor .o_metadata{border:1px solid #999;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom:0;background:#eee;position:relative;top:1px;padding:5px}.o_htmleditor .o_metadata #o_filename{float:left}.o_htmleditor .o_metadata .o_lastmodified{float:right;color:#777;line-height:1.428571429}.o_htmleditor #o_save{margin-top:10px;text-align:center}.o_htmleditor #o_save input{margin-right:1em}.o_htmleditor #o_save input:last-child{margin-right:0}.o_notifications_news_wrapper .o_notifications_news_subscription{margin:10px 0}.o_notifications_news_wrapper .o_notifications_news_subscription h4 i,.o_notifications_news_wrapper .o_notifications_news_subscription .o_cal .fc-header-title h2 i,.o_cal .fc-header-title .o_notifications_news_wrapper .o_notifications_news_subscription h2 i{display:none}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_context{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content{margin-left:1.5em;position:relative}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_icon{position:absolute;left:-1.5em;line-height:1.5em;top:0}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_date{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_url{margin-left:1.5em}.o_noti{margin:6px 0 6px 12px;float:right;color:#777}.o_noti .o_label{color:#777;cursor:help}@media (max-width: 767px){.o_noti .o_label span{display:none}}.panel-body .o_noti{margin:0}.o_portrait{display:inline-block}.o_portrait img{border-radius:50%;border:none;background-color:#eee;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.o_portrait_name{margin-top:6px}.o_block_inline .o_portait,.o_block_inline .o_portrait_name,.o_block_inline .o_portrait_image,.o_block_inline_right .o_portait,.o_block_inline_right .o_portrait_name,.o_block_inline_right .o_portrait_image,.o_block_inline_left .o_portait,.o_block_inline_left .o_portrait_name,.o_block_inline_left .o_portrait_image,.o_block_inline_both .o_portait,.o_block_inline_both .o_portrait_name,.o_block_inline_both .o_portrait_image{display:inline-block}.o_portrait_avatar,.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png") !important}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png") !important}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png") !important}.o_portrait_anonymous{background-image:url("../light/images/portrait/anonymous.png") !important}.o_portrait_avatar_small,.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png") !important}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png") !important}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png") !important}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/anonymous_small.png") !important}.o_datecomp{position:relative;width:40px;height:52px;border:1px solid #555;margin-right:12px;text-align:center;vertical-align:middle}.o_datecomp div.o_year{position:absolute;left:0;width:100%;top:-20px;height:20px;line-height:20px;font-size:10px}.o_datecomp div.o_month{height:20px;line-height:20px;font-size:12px;background-color:#209d9e;color:#fff}.o_datecomp div.o_day{height:30px;line-height:30px;font-size:18px;border-top:1px solid #555;background-color:#fff;color:#2d2926}.o_block_with_datecomp .o_head{position:relative;padding-left:52px}.o_block_with_datecomp .o_datecomp{position:absolute;top:0.2em;left:0}.o_block_with_datecomp .o_title{margin-top:0}.o_block_with_datecomp .o_meta{color:#777}.o_block_with_datecomp .o_content{border-left:5px solid #eee;padding:0 20px}.o_block_with_datecomp .o_block_footer{padding-left:25px}ul.o_certificates li{padding:5px 0}ul.o_certificates li a.o_sel_certificate_delete{padding-left:2em}.o_cal_toptoolbar{margin-bottom:6px}.o_cal_toptoolbar .o_cal_toptoolbar_help{float:left;margin-right:12px}.o_cal_toptoolbar .o_noti{margin-top:0}.o_feed .o_date,.o_feed .o_author{color:#777}.o_feed .o_subscription a{margin-right:1.5em}.o_feed .o_subscription .form-group{margin-bottom:5px}.o_feed .o_subscription .form-control{border:0;background:none;padding:0;height:auto;-webkit-box-shadow:none;box-shadow:none}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper{float:left}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_title,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_explanation,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_legend{display:none}.o_feed .o_blog_posts .o_ratings_and_comments a.o_comments span{display:none}.o_feed .o_content:before,.o_feed .o_content:after{content:" ";display:table}.o_feed .o_content:after{clear:both}.o_feed .o_enclosure{clear:both}.o_glossary .o_register{text-align:center}.o_glossary .o_meta{font-size:90%;color:#777;font-style:italic}.o_glossary dl dt:first-letter{font-size:21px}.o_glossary dl dt small{color:#777}.o_tm_glossary{border-bottom:1px dotted #666699 !important}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_coaching div#o_main_toolbar.o_toolbar{margin-top:0px}.o_eff_statement_details .o_user_infos{margin-top:20px}div.o_assessment_user_type_filter{display:inline-block;padding:0.5em;border:1px solid #eee;border-radius:4px}div.o_assessment_user_type_filter div.form-inline,div.o_assessment_user_type_filter div.o_navbar-form{margin-left:5px;display:inline-block}div.panel.o_assessment_modes .o_table_body{margin-top:0}div.panel.o_assessment_modes .o_table_wrapper{margin-bottom:5px}div.o_assessment_mode_row{padding:0 15px}div.o_assessment_mode_row.o_assessment_today{padding:0 20px 0 12px;border-left:3px solid #3c763d;background-color:#dff0d8}div.o_assessment_mode_row.o_assessment_end_soon.o_assessment_today{padding:0 20px 0 12px;border-left:3px solid #a94442;background-color:#f2dede}.vitero_iframe{width:100%;height:100%;border:none;min-height:60em}.o_reminder_rule{padding:5px 0}.o_segments.btn-group a span{overflow:hidden;display:block;text-overflow:ellipsis}.o_segments_content{margin-top:20px}.o_segments.o_segments_linked .btn,.o_segments.o_segments_linked .btn:hover,.o_segments.o_segments_linked .btn:active,.o_segments.o_segments_linked .btn:focus{border:none;border-radius:0;box-shadow:none;background:none}.o_segments.o_segments_linked .btn-primary{color:#000;font-size:24px;background:none}.o_segments.o_segments_linked .btn-default,.o_segments.o_segments_linked .btn-default:hover,.o_segments.o_segments_linked .btn-default:active,.o_segments.o_segments_linked .btn-default:focus{color:#209d9e;background:none}.o_segments.o_segments_linked .o_segment_separator{color:#000}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d6001c}ul.o_assessment_docs{margin-bottom:0}ul.o_assessment_docs>li{margin-bottom:0.33em}ul.o_assessment_docs>li:last-child{margin-bottom:0em}.o_mail_message .o_mail_meta{background:#fafafa;border:1px solid #eee;padding:5px 10px}.o_mail_message .o_mail_meta h3{margin-top:0}.o_mail_message .o_mail_date,.o_mail_message .o_mail_from,.o_mail_message .o_mail_recipients{color:#777;font-size:90%}.o_mail_message .o_mail_date .o_label,.o_mail_message .o_mail_from .o_label,.o_mail_message .o_mail_recipients .o_label{font-weight:bold;margin-right:1em}.o_mail_message .o_mail_date .o_group span,.o_mail_message .o_mail_from .o_group span,.o_mail_message .o_mail_recipients .o_group span{font-weight:bold}.o_mail_message .o_mail_date .o_group span:after,.o_mail_message .o_mail_from .o_group span:after,.o_mail_message .o_mail_recipients .o_group span:after{content:':';margin-right:0.5em}.o_mail_message .o_mail_date i,.o_mail_message .o_mail_from i,.o_mail_message .o_mail_recipients i{margin-left:1em}.o_mail_message .o_mail_date ul.list-inline,.o_mail_message .o_mail_from ul.list-inline,.o_mail_message .o_mail_recipients ul.list-inline{display:inline}.o_mail_message .o_mail_date ul.list-inline li,.o_mail_message .o_mail_from ul.list-inline li,.o_mail_message .o_mail_recipients ul.list-inline li{padding-right:0;padding-left:0}.o_mail_message .o_more{margin-left:1em}.o_mail_message .o_showAllLink{float:right;font-size:80%}.progress .o_progress_marker{position:absolute;height:100%;top:0;width:3px;background:red}.progress .progress-bar{text-shadow:1px 1px 2px #000000}.o_progress_label_right{float:left;margin-right:10px}.o_web_content{padding-bottom:15px}.o_labeled_light,a.o_labeled_light,.o_labeled,a.o_labeled{display:inline-block;text-transform:uppercase;text-align:center;text-decoration:none;vertical-align:middle;font-size:75%;line-height:1;white-space:nowrap;border:1px solid;border-radius:3px;padding:2px 5px;background-color:#777;color:#fff;position:relative}.o_labeled_light,a.o_labeled_light{font-weight:bold;background-color:#f8f8f8}.o_ms_button{max-width:100%;width:100%;display:flex}.o_ms_button span:not(.o_ms_carret){text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.o_ms_button .o_ms_carret{margin:auto 0 auto auto}.o_ms_list{width:100%;height:auto;max-height:300px;overflow-x:hidden;top:unset}.o_disclaimer .o_disclaimer_content{max-height:50vh;overflow:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;background:#fbfbfb;padding:10px;border:1px solid #c2c2c2}.tt-input{width:400px}.tt-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fcfcfc;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.428571429}.tt-suggestion.tt-cursor,.tt-suggestion:hover{color:#fff;background-color:#209d9e}.tt-suggestion p{margin:0}.tt-menu div.o_icon_error:before{content:''}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_title h4 .o_icon-fw,.o_search_result_title .o_cal .fc-header-title h2 .o_icon-fw,.o_cal .fc-header-title .o_search_result_title h2 .o_icon-fw{text-align:left}.o_search_result_highlight{font-weight:bold;background-color:transparent}.o_search_result_context{display:inline-block;color:#3c763d;margin-right:1em}.o_search_result_license{display:inline-block;color:#777}.o_search_result_excerpt{color:#555}.o_search_result .o_opener{font-size:12px}.o_search_result .o_opener i{width:1em}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}.o_search_result_details .o_togglebox_wrapper .o_search_result_license i{font-size:20px}@media (max-width: 767px){.o_search_result_details{display:none}}.wizard{border:1px solid #d4d4d4;border-radius:2px;background-color:#f9f9f9;position:relative;overflow:hidden;margin-bottom:15px}.wizard ul{list-style:none outside none;padding:0;margin:0;width:4000px}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#2d2926;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #d4d4d4;border-right:0;display:block;position:absolute;right:-14px;top:0;z-index:1}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.active{background:#f1f6fc;color:#2d2926}.wizard ul li.active .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:first-child{border-radius:4px 0 0 4px;padding-left:20px}.o_process{position:relative;padding-left:25px}.o_process .o_step{position:relative;height:auto;padding-top:10px;padding-left:30px;padding-bottom:10px}.o_process .o_bar{position:absolute;top:10px;left:8px;height:100%;border-left:4px solid #777}.o_process .o_bar:after{position:absolute;top:0;left:-10px;height:16px;width:16px;border:4px solid #777;border-radius:16px;background:#fff;content:" "}.o_process .o_title{margin-top:-1px;color:#777 !important}.o_process .o_title:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;left:-24px}.o_process .o_title a:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";width:1em}.o_process .o_title a.collapsed:before{content:""}.o_process .o_step.o_active .o_bar,.o_process .o_step.o_active .o_bar:after{border-color:#209d9e}.o_process .o_step.o_active .o_title{color:#209d9e !important}.o_process .o_step.o_active .o_title:before{content:"";color:#209d9e}.o_process .o_step.o_done .o_bar,.o_process .o_step.o_done .o_bar:after{border-color:#29c7c8}.o_process .o_step.o_done .o_title{color:#29c7c8 !important}.o_process .o_step.o_done .o_title:before{content:"";color:#78be20}.o_process .o_meta{color:#777;font-size:12px;margin-top:-0.5em}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5D5D5D !important}.o_cal_class.o_cal_orange{border-left:20px solid #ffc266}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:#FFF !important}.o_cal_class.o_cal_green{border-left:20px solid #66c266}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:#FFF !important}.o_cal_class.o_cal_blue{border-left:20px solid #4d6e9f}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5D5D5D !important}.o_cal_class.o_cal_yellow{border-left:20px solid #ffe066}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:#FFF !important}.o_cal_class.o_cal_red{border-left:20px solid #c26666}.o_cal_rebeccapurple{background:#663399;border-color:#663399;color:#FFF}.o_cal_rebeccapurple .o_cal_wv_event_header{background:#663399}.o_cal_rebeccapurple a{color:#FFF !important}.o_cal_class.o_cal_rebeccapurple{border-left:20px solid #639}.o_cal_fuchsia{background:#FF00FF;border-color:#dd00dd;color:#FFF}.o_cal_fuchsia .o_cal_wv_event_header{background:#FF00FF}.o_cal_fuchsia a{color:#FFF !important}.o_cal_class.o_cal_fuchsia{border-left:20px solid #f0f}.o_cal_olive{background:#808000;border-color:#636300;color:#FFF}.o_cal_olive .o_cal_wv_event_header{background:#808000}.o_cal_olive a{color:#FFF !important}.o_cal_class.o_cal_olive{border-left:20px solid olive}.o_cal_navy{background:#000080;border-color:#000057;color:#FFF}.o_cal_navy .o_cal_wv_event_header{background:#000080}.o_cal_navy a{color:#FFF !important}.o_cal_class.o_cal_navy{border-left:20px solid navy}.o_cal_maroon{background:#800000;border-color:#740000;color:#FFF}.o_cal_maroon .o_cal_wv_event_header{background:#800000}.o_cal_maroon a{color:#FFF !important}.o_cal_class.o_cal_maroon{border-left:20px solid maroon}.o_cal_lime{background:#00FF00;border-color:#00e200;color:#004d00}.o_cal_lime .o_cal_wv_event_header{background:#00FF00}.o_cal_lime a{color:#004d00 !important}.o_cal_class.o_cal_lime{border-left:20px solid lime}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:#FFF !important}.o_cal_class.o_cal_grey{border-left:20px solid #DDDAAA}.o_sel_calendar_print_chooser{padding-right:4em}.o_cal_config_enabled,.o_cal_config_disabled{position:relative;float:left;display:inline}.o_cal_config_calendar{margin:0 5px;padding:1px 6px 1px 4px;position:relative;width:200px;overflow:hidden;float:left;display:inline}.o_cal_config_color{display:block;width:16px;height:16px;border-radius:8px}.o_cal_colorchooser_selected:before{content:""}#o_cal_colorchooser div{border:1px solid #209d9e;margin:5px;display:inline-block}#o_cal_colorchooser div:hover{border:1px solid #333}#o_cal_colorchooser a{width:20px;height:20px;display:inline-block}.o_cal_embedded_course_container .o_content_popup{top:0}.o_cal_wv_event_tooltip_content .o_cal_description{background-color:#f8f8f8;padding:10px 7px;margin:10px -7px}.o_cal_wv_event_tooltip_content .o_cal_tooltip_buttons{text-align:center;margin-top:20px}.o_cal_event_managed .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_not_managed .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.o_cal_event_managed.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:" "}.o_cal_event_not_managed.o_cal_event_livestream .fc-content:after{margin-right:2px;float:right;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:" "}.fc-button{color:#333;background-color:#fcfcfc;border-color:#ccc}.fc-button:hover,.fc-button:focus,.fc-button.focus,.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{color:#333;background-color:#e3e3e3;border-color:#adadad}.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{background-image:none}.fc-button.disabled,.fc-button.disabled:hover,.fc-button.disabled:focus,.fc-button.disabled.focus,.fc-button.disabled:active,.fc-button.disabled.active,.fc-button[disabled],.fc-button[disabled]:hover,.fc-button[disabled]:focus,.fc-button[disabled].focus,.fc-button[disabled]:active,.fc-button[disabled].active,fieldset[disabled] .fc-button,fieldset[disabled] .fc-button:hover,fieldset[disabled] .fc-button:focus,fieldset[disabled] .fc-button.focus,fieldset[disabled] .fc-button:active,fieldset[disabled] .fc-button.active{background-color:#fcfcfc;border-color:#ccc}.fc-button .badge{color:#fcfcfc;background-color:#333}.fc-button.fc-state-default{text-shadow:none}.fc-button.fc-state-active{color:#fff;background-color:#209d9e;border-color:#1c8889}.fc-button.fc-state-active:hover,.fc-button.fc-state-active:focus,.fc-button.fc-state-active.focus,.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{background-image:none}.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#209d9e;border-color:#1c8889}.fc-button.fc-state-active .badge{color:#209d9e;background-color:#fff}.fc-listYear-button:before,.fc-listMonth-button:before,.fc-listWeek-button:before,.fc-listDay-button:before{content:"";margin-right:5px;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:80%;webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}table.fc-list-table .fc-list-item{background-color:white;color:#5D5D5D !important}table.fc-list-table .fc-list-item a,table.fc-list-table .fc-list-item span{color:#5D5D5D !important}body.o_cal_print fieldset{border:none;margin-bottom:2em}body.o_cal_print legend{font-size:2em;font-weight:bold}body.o_cal_print legend span{display:block;font-size:14px;font-weight:normal}body.o_cal_print ul.o_cal_wv_list{list-style-type:none;padding:0}body.o_cal_print ul.o_cal_wv_list>li{page-break-inside:avoid;margin-bottom:2em}body.o_cal_print ul.o_cal_wv_list .o_cal_date{font-size:1.25em;font-weight:bold;padding:0.5em 0 0.5em 0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events{list-style-type:none;padding:0.5em 0 0 0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event{position:relative;left:30px;page-break-inside:avoid;clear:both;margin-bottom:1.5em;padding-right:30px}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_time{float:left;font-weight:bold;margin-right:1em}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_subject{font-weight:bold}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_subject p{margin:0}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_location,body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_description,body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_freebusy{clear:both}body.o_cal_print ul.o_cal_wv_list ul.o_cal_events li.o_cal_event .o_cal_freebusy{font-style:italic}body.o_cal_print .o_cal_class{position:absolute;left:-30px;width:20px}body.o_cal_print #o_cal_config legend{font-size:1.25em}body.o_cal_print #o_cal_config .o_cal_config_calendar{margin:0;padding:0}body.o_cal_print #o_cal_config .o_cal_config_calendar{position:relative;left:30px;float:none;padding-right:30px}.o_page_content_editor .o_toolbar{border:none}.o_page_content_editor .o_page_part,.gu-mirror{border:2px solid transparent}.o_page_content_editor .o_page_part:hover,.gu-mirror:hover{border:2px dotted #209d9e}.o_page_fragment_edit{position:relative;display:grid}.o_page_fragment_edit .o_page_tools_above{height:25px;width:100%;background:#209d9e;position:absolute;z-index:3;left:0;top:-25px;box-shadow:3px -8px 10px 0px rgba(0,0,0,0.2)}.o_page_fragment_edit .o_page_tools_above .o_page_add_above{position:absolute;left:0;right:0;margin-left:auto;margin-right:auto;width:26px;top:-19px;height:19px;background-color:#209d9e;border-radius:10px 10px 0 0}.o_page_fragment_edit .o_page_tools_above .o_page_add_above .o_icon{color:#fff;background-color:#209d9e}.o_page_fragment_edit .o_page_tools_above .o_sel_add_element_above{display:inline-block;padding:3px 5px 0 7px}.o_page_fragment_edit .o_page_tools_above .o_page_others_above{padding-right:25px;line-height:25px;vertical-align:middle}.o_page_fragment_edit .o_page_tools_above .o_page_others_above .o_page_type{display:none}.o_page_fragment_edit .o_page_tools_above .o_page_others_above a{float:right;color:#fff;padding-right:1em}.o_page_fragment_edit .o_page_tools_above .o_page_others_above a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_tools_dd{position:absolute;z-index:4;top:0;right:0;width:25px;height:100%;background:#209d9e}.o_page_fragment_edit .o_page_tools_dd:before{content:' ';width:25px;height:100%;position:absolute;left:0;top:0;border:3px #209d9e solid;border-bottom:28px #209d9e solid;background-image:-webkit-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:-moz-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:-ms-repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);background-image:repeating-radial-gradient(center center, #fff, #fff 1px, transparent 1px, transparent 100%);-webkit-background-size:3px 3px;-moz-background-size:3px 3px;background-size:3px 3px}.o_page_fragment_edit .o_page_tools_dd a{position:absolute;display:inline-block;width:25px;height:25px;line-height:25px;text-align:center;vertical-align:middle;background:#209d9e;color:#fff}.o_page_fragment_edit .o_page_tools_dd a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_tools_dd a.o_disabled{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_tools_dd a.o_disabled:hover{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_tools_dd a.o_sel_move_up_element{z-index:4;top:-25px}.o_page_fragment_edit .o_page_tools_dd a.o_sel_move_down_element{bottom:0}.o_page_fragment_edit .o_page_part.o_page_edit{padding-right:23px;border:2px solid #209d9e;box-shadow:5px 5px 10px 0px rgba(0,0,0,0.2)}.o_page_fragment_edit .o_page_part.o_page_edit:hover{border:2px solid #209d9e}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar{position:absolute;z-index:5;left:5px;top:-25px;display:inline-block;height:25px;line-height:25px;vertical-align:middle}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a{color:#fff}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a:hover{color:#e6e6e6}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a.o_disabled{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_toolbar a.o_disabled:hover{color:rgba(255,255,255,0.5) !important}.o_page_fragment_edit .o_page_part.o_page_edit .o_page_edit_title .o_page_edit_toolbar li{font-weight:bold}.o_page_fragment_edit .o_page_part.o_page_edit .o_richtext_mce textarea{border:0}.o_page_fragment_edit .o_page_add_below{position:absolute;z-index:3;position:absolute;z-index:3;left:0;right:0;margin-left:auto;margin-right:auto;width:26px;bottom:-20px;height:22px;background-color:#209d9e;border-radius:0 0 10px 10px}.o_page_fragment_edit .o_page_add_below .o_icon{color:#fff;background-color:#209d9e}.o_page_fragment_edit .o_page_add_below .o_sel_add_element_below{display:inline-block;padding:0 5px 5px 5px;margin:0px 0px 0px 2px}.o_page_fragment_edit.gu-mirror .o_page_add_below,.o_page_fragment_edit.gu-mirror .o_page_add_above,.o_page_fragment_edit.gu-transit .o_page_add_below,.o_page_fragment_edit.gu-transit .o_page_add_above{display:none}.o_page_container_slot.col-md-3 .o_page_others_above a span,.o_page_container_slot.col-md-4 .o_page_others_above a span{display:none}.o_page_container_slot.col-md-3 .o_page_edit_toolbar ul>li,.o_page_container_slot.col-md-4 .o_page_edit_toolbar ul>li{padding-right:0}div.o_page_content_editor .gu-mirror,.o_page_content_editor .gu-transit{box-shadow:none}.o_page_container{box-sizing:border-box;padding:10px}.o_page_container{background-color:transparent}.o_page_container .o_page_container{background-color:transparent}.o_page_container .o_page_container .o_page_container{background-color:transparent}.o_page_container_slot{box-sizing:border-box;margin:0 -1px -1px 0;padding:10px}.o_page_container .o_page_container_slot{border:2px dotted #eee}.o_page_container:hover .o_page_container_slot{border:2px dotted #ef00ef}.o_page_add_in_container_grp{margin-bottom:0}.gu-transit{border:2px dotted #e80c96;opacity:0.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40)}.gu-mirror{border:2px dotted #209d9e;opacity:0.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80)}.o_page_add_callout a span{display:none}.o_page_add_callout ul.list-inline{margin-bottom:0}.o_page_table_edition .o_table_title,.o_page_table_edition .o_table_caption{padding:5px}.o_page_with_side_options_wrapper{display:flex;align-items:stretch;flex-direction:row}.o_page_side_options_target{background-color:#f9f9f9;flex-grow:4}.o_page_side_options{flex-grow:0;background-color:#209d9e;border-left:1px solid #b9b9b9;border-bottom:1px solid #b9b9b9;padding:5px;z-index:2}@media (max-width: 767px){.o_page_with_side_options_wrapper{flex-direction:column-reverse}}.o_page_content .o_image,.o_page_content .o_video,.o_page_content_editor .o_image,.o_page_content_editor .o_video{width:100%}.o_page_content .o_image img,.o_page_content .o_video img,.o_page_content_editor .o_image img,.o_page_content_editor .o_video img{border:1px #f8f8f8 solid;border-radius:10px}.o_page_content .o_image .o_artefact_metadata,.o_page_content .o_video .o_artefact_metadata,.o_page_content_editor .o_image .o_artefact_metadata,.o_page_content_editor .o_video .o_artefact_metadata{text-align:left}.o_page_content .o_image.o_image_align_left,.o_page_content .o_video.o_image_align_left,.o_page_content_editor .o_image.o_image_align_left,.o_page_content_editor .o_video.o_image_align_left{float:left}.o_page_content .o_image.o_image_align_left+.o_image_clear,.o_page_content .o_video.o_image_align_left+.o_image_clear,.o_page_content_editor .o_image.o_image_align_left+.o_image_clear,.o_page_content_editor .o_video.o_image_align_left+.o_image_clear{clear:both}.o_page_content .o_image.o_image_align_right,.o_page_content .o_video.o_image_align_right,.o_page_content_editor .o_image.o_image_align_right,.o_page_content_editor .o_video.o_image_align_right{float:right}.o_page_content .o_image.o_image_align_right+.o_image_clear,.o_page_content .o_video.o_image_align_right+.o_image_clear,.o_page_content_editor .o_image.o_image_align_right+.o_image_clear,.o_page_content_editor .o_video.o_image_align_right+.o_image_clear{clear:both}.o_page_content .o_image.o_image_align_middle,.o_page_content .o_video.o_image_align_middle,.o_page_content_editor .o_image.o_image_align_middle,.o_page_content_editor .o_video.o_image_align_middle{clear:both;margin-left:50%;text-align:center;transform:translate(-50%, 0%)}.o_page_content .o_image.o_image_align_leftfloat,.o_page_content .o_video.o_image_align_leftfloat,.o_page_content_editor .o_image.o_image_align_leftfloat,.o_page_content_editor .o_video.o_image_align_leftfloat{float:left;padding-right:10px;padding-bottom:10px}.o_page_content .o_image.o_image_align_rightfloat,.o_page_content .o_video.o_image_align_rightfloat,.o_page_content_editor .o_image.o_image_align_rightfloat,.o_page_content_editor .o_video.o_image_align_rightfloat{float:right;padding-left:10px;padding-bottom:10px}.o_page_content .o_image.o_image_size_style_small,.o_page_content .o_video.o_image_size_style_small,.o_page_content_editor .o_image.o_image_size_style_small,.o_page_content_editor .o_video.o_image_size_style_small{width:25%}.o_page_content .o_image.o_image_size_style_small img,.o_page_content .o_video.o_image_size_style_small img,.o_page_content_editor .o_image.o_image_size_style_small img,.o_page_content_editor .o_video.o_image_size_style_small img{width:100%}.o_page_content .o_image.o_image_size_style_medium,.o_page_content .o_video.o_image_size_style_medium,.o_page_content_editor .o_image.o_image_size_style_medium,.o_page_content_editor .o_video.o_image_size_style_medium{width:40%}.o_page_content .o_image.o_image_size_style_medium img,.o_page_content .o_video.o_image_size_style_medium img,.o_page_content_editor .o_image.o_image_size_style_medium img,.o_page_content_editor .o_video.o_image_size_style_medium img{width:100%}.o_page_content .o_image.o_image_size_style_large,.o_page_content .o_video.o_image_size_style_large,.o_page_content_editor .o_image.o_image_size_style_large,.o_page_content_editor .o_video.o_image_size_style_large{width:60%}.o_page_content .o_image.o_image_size_style_large img,.o_page_content .o_video.o_image_size_style_large img,.o_page_content_editor .o_image.o_image_size_style_large img,.o_page_content_editor .o_video.o_image_size_style_large img{width:100%}.o_page_content .o_image.o_image_size_style_fill,.o_page_content .o_video.o_image_size_style_fill,.o_page_content_editor .o_image.o_image_size_style_fill,.o_page_content_editor .o_video.o_image_size_style_fill{width:100%;float:none !important;display:block}.o_page_content .o_image.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content .o_video.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content_editor .o_image.o_image_size_style_fill .o_figure_caption_bottom,.o_page_content_editor .o_video.o_image_size_style_fill .o_figure_caption_bottom{display:block}.o_page_content .o_image.o_image_size_style_fill img,.o_page_content .o_video.o_image_size_style_fill img,.o_page_content_editor .o_image.o_image_size_style_fill img,.o_page_content_editor .o_video.o_image_size_style_fill img{width:100%;display:block}.o_page_content .o_image img.o_image_classic,.o_page_content .o_video img.o_image_classic,.o_page_content_editor .o_image img.o_image_classic,.o_page_content_editor .o_video img.o_image_classic{padding:0;border:0;border-radius:0}.o_page_content .o_image img.o_image_border,.o_page_content .o_video img.o_image_border,.o_page_content_editor .o_image img.o_image_border,.o_page_content_editor .o_video img.o_image_border{padding:3px;border:solid 1px #CCC}.o_page_content .o_image img.o_image_shadow,.o_page_content .o_video img.o_image_shadow,.o_page_content_editor .o_image img.o_image_shadow,.o_page_content_editor .o_video img.o_image_shadow{padding:0;border:0;-moz-box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);-webkit-box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.o_page_content .o_image img.o_image_frame,.o_page_content .o_video img.o_image_frame,.o_page_content_editor .o_image img.o_image_frame,.o_page_content_editor .o_video img.o_image_frame{padding:0;border:0;border-radius:0;-moz-box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);-webkit-box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);box-shadow:0px 0px 0px 1px rgba(0,0,0,0.6),0px 0px 0px 10px #f6f3f8,0px 0px 0px 14px rgba(0,0,0,0.2);margin:15px}.o_page_content .o_image img.o_image_polaroid,.o_page_content .o_video img.o_image_polaroid,.o_page_content_editor .o_image img.o_image_polaroid,.o_page_content_editor .o_video img.o_image_polaroid{padding:0;border-radius:0;border:1px solid #dcdcdc;background:#fff;padding:10px 10px 45px 10px;-webkit-box-shadow:3px 3px 3px rgba(0,0,0,0.2);-moz-box-shadow:3px 3px 3px rgba(0,0,0,0.2);box-shadow:3px 3px 3px rgba(0,0,0,0.2)}.o_page_content .o_image img.o_image_round,.o_page_content .o_video img.o_image_round,.o_page_content_editor .o_image img.o_image_round,.o_page_content_editor .o_video img.o_image_round{padding:3px;border:solid 1px #CCC;border-radius:50%}.o_page_content .o_image .o_image_title_dark,.o_page_content .o_video .o_image_title_dark,.o_page_content_editor .o_image .o_image_title_dark,.o_page_content_editor .o_video .o_image_title_dark{color:#000}.o_page_content .o_image .o_image_title_bright,.o_page_content .o_video .o_image_title_bright,.o_page_content_editor .o_image .o_image_title_bright,.o_page_content_editor .o_video .o_image_title_bright{color:#f9f9f9}.o_page_content .o_image .o_image_title,.o_page_content .o_video .o_image_title,.o_page_content_editor .o_image .o_image_title,.o_page_content_editor .o_video .o_image_title{position:relative}.o_page_content .o_image .o_image_title .o_image_title_top,.o_page_content .o_image .o_image_title .o_image_title_centered,.o_page_content .o_image .o_image_title .o_image_title_bottom,.o_page_content .o_video .o_image_title .o_image_title_top,.o_page_content .o_video .o_image_title .o_image_title_centered,.o_page_content .o_video .o_image_title .o_image_title_bottom,.o_page_content_editor .o_image .o_image_title .o_image_title_top,.o_page_content_editor .o_image .o_image_title .o_image_title_centered,.o_page_content_editor .o_image .o_image_title .o_image_title_bottom,.o_page_content_editor .o_video .o_image_title .o_image_title_top,.o_page_content_editor .o_video .o_image_title .o_image_title_centered,.o_page_content_editor .o_video .o_image_title .o_image_title_bottom{position:absolute;left:50%;margin-right:-50%;transform:translate(-50%, -50%)}.o_page_content .o_image .o_image_title .o_image_title_top,.o_page_content .o_video .o_image_title .o_image_title_top,.o_page_content_editor .o_image .o_image_title .o_image_title_top,.o_page_content_editor .o_video .o_image_title .o_image_title_top{top:10%}.o_page_content .o_image .o_image_title .o_image_title_centered,.o_page_content .o_video .o_image_title .o_image_title_centered,.o_page_content_editor .o_image .o_image_title .o_image_title_centered,.o_page_content_editor .o_video .o_image_title .o_image_title_centered{top:50%}.o_page_content .o_image .o_image_title .o_image_title_bottom,.o_page_content .o_video .o_image_title .o_image_title_bottom,.o_page_content_editor .o_image .o_image_title .o_image_title_bottom,.o_page_content_editor .o_video .o_image_title .o_image_title_bottom{bottom:10%}.o_page_content .o_image.o_image_size_style_none .o_image_title_top,.o_page_content .o_image.o_image_size_style_none .o_image_title_centered,.o_page_content .o_image.o_image_size_style_none .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_none .o_image_title_top,.o_page_content .o_video.o_image_size_style_none .o_image_title_centered,.o_page_content .o_video.o_image_size_style_none .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_none .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_none .o_image_title_bottom{font-size:24px}.o_page_content .o_image.o_image_size_style_small .o_image_title_top,.o_page_content .o_image.o_image_size_style_small .o_image_title_centered,.o_page_content .o_image.o_image_size_style_small .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_small .o_image_title_top,.o_page_content .o_video.o_image_size_style_small .o_image_title_centered,.o_page_content .o_video.o_image_size_style_small .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_small .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_small .o_image_title_bottom{font-size:18px}.o_page_content .o_image.o_image_size_style_medium .o_image_title_top,.o_page_content .o_image.o_image_size_style_medium .o_image_title_centered,.o_page_content .o_image.o_image_size_style_medium .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_medium .o_image_title_top,.o_page_content .o_video.o_image_size_style_medium .o_image_title_centered,.o_page_content .o_video.o_image_size_style_medium .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_medium .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_medium .o_image_title_bottom{font-size:32px}.o_page_content .o_image.o_image_size_style_large .o_image_title_top,.o_page_content .o_image.o_image_size_style_large .o_image_title_centered,.o_page_content .o_image.o_image_size_style_large .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_large .o_image_title_top,.o_page_content .o_video.o_image_size_style_large .o_image_title_centered,.o_page_content .o_video.o_image_size_style_large .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_large .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_large .o_image_title_bottom{font-size:40px}.o_page_content .o_image.o_image_size_style_fill .o_image_title_top,.o_page_content .o_image.o_image_size_style_fill .o_image_title_centered,.o_page_content .o_image.o_image_size_style_fill .o_image_title_bottom,.o_page_content .o_video.o_image_size_style_fill .o_image_title_top,.o_page_content .o_video.o_image_size_style_fill .o_image_title_centered,.o_page_content .o_video.o_image_size_style_fill .o_image_title_bottom,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_top,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_centered,.o_page_content_editor .o_image.o_image_size_style_fill .o_image_title_bottom,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_top,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_centered,.o_page_content_editor .o_video.o_image_size_style_fill .o_image_title_bottom{font-size:56px}.o_page_add_contents{clear:both;margin-top:30px}.o_ce_html_raw.o_html_col2,.o_ce_html_paragraph.o_html_col2{column-count:2;column-gap:1em}.o_ce_html_raw.o_html_col3,.o_ce_html_paragraph.o_html_col3{column-count:3;column-gap:1em}.o_ce_html_raw.o_html_col4,.o_ce_html_paragraph.o_html_col4{column-count:4;column-gap:1em}table.o_ce_table caption{caption-side:bottom}.o_ce_add_main_btns{margin-top:2em}.o_ce_add{border:none;margin-bottom:0px}.o_ce_add .o_ce_tools{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.o_ce_add .o_ce_tools .o_ce_tool{padding:0px;margin:0px;width:33%}.o_ce_add .o_ce_tools .o_ce_tool a{padding:6px 3px;margin:0px;display:block;width:100%;height:100%}.o_ce_add .o_ce_tools .o_ce_tool a:hover{padding:5px 2px;border:1px solid #e7e7e7;border-radius:4px}.o_ce_add_list .o_ce_add_list_item{border-style:none;padding:0px;margin:0px -15px}.o_ce_add_list .o_ce_add_list_item a{padding:5px 25px;margin:0px;display:block;width:100%;height:100%}.o_ce_add_list .o_ce_add_list_item a:hover{text-decoration:none;background-color:#f5f5f5}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #ccc;border-radius:4px;background:#fcfcfc;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{box-sizing:content-box;border-top-left-radius:4px;border-bottom-left-radius:4px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual .o_visual_not_available{background-color:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #ccc;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#a6a6a6}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0;border-bottom-right-radius:4px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#209d9e;border-color:#1c8889}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#209d9e;border-color:#1c8889}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#209d9e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#209d9e;border-color:#1c8889}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#209d9e;border-color:#1c8889}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#209d9e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#a6a6a6;border-color:#999}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#8d8d8d;border-color:#7b7b7b}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#a6a6a6;border-color:#999}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#a6a6a6;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;background:#fcfcfc;border-left:1px solid #ccc;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#342c24}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#16130f}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:normal;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d;background:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;z-index:2px;background:#fcfcfc;padding:0 3px 3px 3px;border-radius:0px 0px 3px 3px;font-size:90%;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em;background:#fcfcfc}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#209d9e;border-top-right-radius:4px;border-bottom-right-radius:4px}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac ul{display:inline-block}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#342c24}.o_catalog .o_level .o_meta .o_title a:hover{color:#16130f}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #ccc;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #ccc;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em;overflow:hidden}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels_list .o_sublevel.o_fill_sublevels{border:1px solid transparent}.o_catalog .o_sublevels_list .o_sublevel.o_fill_sublevels .o_meta{border-left:1px solid transparent}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #ccc;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #ccc;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#342c24;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#16130f}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}.o_repo_details{position:relative}.o_repo_details .o_lead{margin-bottom:10px}.o_repo_details .o_lead .o_author{margin-top:0.5em;margin-bottom:1em;font-size:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_repo_details .o_lead .o_media{float:right;margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead .o_media.o_desc_empty{float:none;margin-left:0;margin-bottom:0}.o_repo_details .o_lead h1{font-size:37px}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start_wrapper{clear:both;margin:2em 0 -10px 0;text-align:right}.o_repo_details .o_start_wrapper .o_start_inner{display:inline-block}.o_repo_details .o_start,.o_repo_details .o_book{max-width:400px;display:inline-block}.o_repo_details .o_social:before,.o_repo_details .o_social:after{content:" ";display:table}.o_repo_details .o_social:after{clear:both}.o_repo_details .o_social .o_rating_wrapper{float:left}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-left:0;float:none;text-align:center}.o_repo_details .o_start_wrapper{text-align:center}.o_repo_details .o_start_wrapper .o_start_inner{display:block}.o_repo_details .o_start,.o_repo_details .o_book{max-width:100%;display:block}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}}.o_meta .o_closed{padding:2px 5px;margin:5px 0}.o_overview .o_closed{padding:12px 15px;margin:15px 0}.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.o_ac_configuration div.o_ac_method{background-color:#efefef;padding:5px;border-radius:3px}.o_ac_configuration div.o_ac_methods.form-group{padding-bottom:0;margin-bottom:0}.o_repo_with_explanation{padding-bottom:0;margin-bottom:0}.o_repo_explanation{color:#f2af40}tr.o_entry_closed,tr.o_entry_closed td,tr.o_entry_closed td span,tr.o_entry_unpublished,tr.o_entry_unpublished td,tr.o_entry_unpublished td span{text-decoration:line-through}a.o_repo_tools_status{cursor:pointer;margin:0 2px 2px 2px;text-align:left}.o_labeled.o_repo_status_preparation,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_preparation{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_labeled.o_repo_status_review,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_review{background-color:#FCCA46;border-color:#FCCA46;color:#fff}.o_labeled.o_repo_status_coachpublished,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_coachpublished{background-color:#1DC63F;border-color:#1DC63F;color:#fff}.o_labeled.o_repo_status_published,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_published{background-color:#14892c;border-color:#14892c;color:#fff}.o_labeled.o_repo_status_closed,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_closed{background-color:#99583D;border-color:#99583D;color:#fff}.o_labeled.o_repo_status_trash,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_trash{background-color:#5A5958;border-color:#5A5958;color:#fff}.o_labeled.o_repo_status_deleted,.o_toolbar .o_tools_container a.o_labeled.o_repo_status_deleted{background-color:#888;border-color:#888;color:#fff}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_preparation{background-color:#384e64}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_review{background-color:#fbbc14}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_coachpublished{background-color:#169a31}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_published{background-color:#0e5c1e}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_closed{background-color:#75432e}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_trash{background-color:#40403f}.o_toolbar .o_tools_container a.o_labeled:hover.o_repo_status_deleted{background-color:#6f6f6f}.o_labeled_light.o_repo_status_preparation,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_preparation{border-color:#4a6785;color:#4a6785}.o_labeled_light.o_repo_status_review,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_review{border-color:#FCCA46;color:#FCCA46}.o_labeled_light.o_repo_status_coachpublished,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_coachpublished{border-color:#1DC63F;color:#1DC63F}.o_labeled_light.o_repo_status_published,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_published{border-color:#14892c;color:#14892c}.o_labeled_light.o_repo_status_closed,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_closed{border-color:#99583D;color:#99583D}.o_labeled_light.o_repo_status_trash,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_trash{border-color:#5A5958;color:#5A5958}.o_labeled_light.o_repo_status_deleted,.o_toolbar .o_tools_container a.o_labeled_light.o_repo_status_deleted{border-color:#888;color:#888}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#2d2926}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#2d2926}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#2d2926}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run .o_in_review{font-style:italic;position:relative}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_course_run .o_cal_toptoolbar{margin-right:26px}.o_course_run .o_titled_wrapper .o_cal_toptoolbar{margin-right:0px}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_ll_container h5{margin-bottom:5px}.o_ll_container h5 a.o_desc{color:#342c24}.o_ll_container h5 a.o_desc small{display:none}.o_ll_container h5 a.o_desc:hover{color:#16130f;text-decoration:none}.o_ll_container h5 a.o_desc:hover small{color:#5e5e5e;display:inline}.o_ll_container div.o_comment{color:#777}.o_cmembers .o_cmember{margin:12px 0;display:table}.o_cmembers .o_cmember .o_portrait{padding-right:10px;display:table-cell;vertical-align:top;min-width:60px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{display:table-cell;vertical-align:middle;color:#777}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}.o_cmembers .o_cmember .o_curriculum_displayname,.o_cmembers .o_cmember .o_curriculum_root_el_identifier,.o_cmembers .o_cmember .o_curriculum_root_el_displayname{font-size:12px}.o_cmembers .o_cmember a.o_mail{display:none}.o_cmembers .o_cmember:hover a.o_mail{display:inline}.o_cmembers_print{color:#000}.o_cmembers_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_cmembers_print #o_print_brand img{width:100%}.o_cmembers_print .o_portrait{width:100px;height:100px;position:relative}.o_cmembers_print .o_portrait img{border-radius:0px;max-width:100%;max-height:100%;width:auto;height:auto;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.o_cmembers_print .o_cmember{padding-left:0px;padding-right:15px;margin-bottom:20px}.o_cmembers_print .o_cmember .o_cmember_info_wrapper{word-wrap:break-word}.o_cmembers_print .o_cmember .o_prop.o_zipCode{float:left;padding-right:0.5em}.o_cmembers_print h1{font-size:18pt;color:#000}.o_cmembers_print h3{font-size:14pt;margin-top:5px;font-weight:normal;color:#000}.o_cmembers_print h4,.o_cmembers_print .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_cmembers_print h2{font-size:11pt;font-weight:strong;color:#000;padding-bottom:10px;border-bottom:1px solid #eee}.o_cmembers_print .o_cmember_info_wrapper{font-size:7pt;color:#000}.o_cmembers_print .o_cmember_info_wrapper strong{font-size:8pt}.tag.label.label-info{margin-right:3px}.input-group.o_tag_inputgroup .form-control{height:auto}div.o_correction_navigation .o_correction_navigation_back{float:left;line-height:32px}div.o_correction_navigation .o_correction_navigation_previous{position:absolute;right:50%;margin-right:102px}div.o_correction_navigation #o_cocurrent_item_SELBOX{width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute;left:50%;margin-left:-100px}div.o_correction_navigation .o_correction_navigation_next{position:absolute;left:50%;margin-left:102px}@media (max-width: 767px){div.o_correction_navigation .o_correction_navigation_previous span,div.o_correction_navigation .o_correction_navigation_next span{display:none}}.o_ms_stack_panel .o_toolbar{margin-top:0px}.o_ms_bold{font-weight:bold}.o_ms_legend{padding:5px}.o_ms_legend li{display:block;font-size:90%}.o_ms_legend .ident{font-weight:bold}.o_browser_ie10 .o_paella_wrapper iframe,.o_browser_ie11 .o_paella_wrapper iframe{display:none}.o_browser_ie10 .o_paella_wrapper .o_paella_error,.o_browser_ie11 .o_paella_wrapper .o_paella_error{display:block}.o_paella_wrapper iframe{width:100%;height:400px}@media (max-width: 768px){.o_paella_wrapper iframe{height:300px}}.o_paella_wrapper .o_paella_error{display:none}.o_curriculum_el_listing tr.o_curriculum_element_inactive,.o_curriculum_el_listing tr.o_curriculum_element_inactive td,.o_curriculum_el_listing tr.o_curriculum_element_inactive td span,.o_curriculum_el_listing tr.o_curriculum_element_inactive td a{color:#777}.o_curriculum_el_listing tr.o_curriculum_element_unfiltered,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td span,.o_curriculum_el_listing tr.o_curriculum_element_unfiltered td a{color:#aaa}.o_curriculum_el_listing tr.o_curriculum_element_deleted,.o_curriculum_el_listing tr.o_curriculum_element_deleted td,.o_curriculum_el_listing tr.o_curriculum_element_deleted td span,.o_curriculum_el_listing tr.o_curriculum_element_deleted td a{color:#777;text-decoration:line-through}.o_curriculumtable tr.o_curriculum_element_l0 td:nth-thild(first){padding-left:0px}.o_curriculumtable tr.o_curriculum_element_l1 td:nth-thild(first){padding-left:15px}.o_curriculumtable tr.o_curriculum_element_l2 td:nth-thild(first){padding-left:30px}.o_curriculumtable tr.o_curriculum_element_l3 td:nth-thild(first){padding-left:45px}.o_curriculumtable tr.o_curriculum_element_l4 td:nth-thild(first){padding-left:60px}.o_curriculumtable tr.o_curriculum_element_l5 td:nth-thild(first){padding-left:75px}.o_curriculumtable tr.o_curriculum_element_l6 td:nth-thild(first){padding-left:90px}.o_curriculumtable tr.o_curriculum_element_l7 td:nth-thild(first){padding-left:105px}.o_curriculumtable tr.o_curriculum_element_l8 td:nth-thild(first){padding-left:120px}.o_curriculumtable tr.o_curriculum_element_l9 td:nth-thild(first){padding-left:135px}.o_curriculumtable tr.o_curriculum_element_l10 td:nth-thild(first){padding-left:150px}.o_curriculumtable tr.o_curriculum_element_l11 td:nth-thild(first){padding-left:165px}.o_curriculumtable tr.o_curriculum_element_inactive,.o_curriculumtable tr.o_curriculum_element_inactive td,.o_curriculumtable tr.o_curriculum_element_inactive td span{color:#777}.o_curriculumtable tr.o_curriculum_element_deleted,.o_curriculumtable tr.o_curriculum_element_deleted td,.o_curriculumtable tr.o_curriculum_element_deleted td span{color:#777;text-decoration:line-through}.o_curriculumtable.o_rendertype_custom .container-fluid{padding-left:0;padding-right:0}.o_curriculumtable.o_rendertype_custom .o_table_row{position:relative;vertical-align:top;margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row:before,.o_curriculumtable.o_rendertype_custom .o_table_row:after{content:" ";display:table}.o_curriculumtable.o_rendertype_custom .o_table_row:after{clear:both}.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{background:none;border:none;position:relative}.o_curriculumtable.o_rendertype_custom .o_table_row .o_ext_id{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_hierarchy_info{display:none;position:absolute;top:0;right:30px;font-size:70%;z-index:5;background:gold}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_title{margin-top:0;margin-bottom:0;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_title small{white-space:nowrap}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars{padding-left:6px;color:#777}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle.o_active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars.o_active{color:#3c763d}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_lifecycle.o_active:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_calendars.o_active:hover{color:#2b542c}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_desc{padding:6px 6px 16px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_empty{font-style:italic;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{position:relative;padding-left:132px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:50px;padding-left:87px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_visual{left:0;border:none;background-color:#fff;max-height:80px;max-width:120px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_author,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_location,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_meta .o_lifecycle{color:#3c763d}.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state{position:absolute;right:0;bottom:30px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_failed{font-weight:normal}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_state,.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_score{display:inline-block}.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state .o_state+.o_score:before{content:', '}.o_curriculumtable.o_rendertype_custom .o_table_row .o_bookmark{position:absolute;top:-1px;right:2px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access{position:absolute;bottom:0;right:0;overflow:hidden;width:180px;height:30px}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start{right:0;color:#fff;background-color:#209d9e;border-color:#1c8889}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#209d9e;border-color:#1c8889}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#209d9e;background-color:#fff}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#a6a6a6;border-color:#999}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#8d8d8d;border-color:#7b7b7b}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#a6a6a6;border-color:#999}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#a6a6a6;background-color:#fff}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row .o_author,.o_curriculumtable.o_rendertype_custom .o_table_row .o_bookmark,.o_curriculumtable.o_rendertype_custom .o_table_row .o_lifecycle,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_entry_desc,.o_curriculumtable.o_rendertype_custom .o_table_row .o_curriculum_element_desc,.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state,.o_curriculumtable.o_rendertype_custom .o_table_row .o_details{display:none}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_row_inner_wrapper{background:#f6f6f6;border:1px solid #eee}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_element_title{background:transparent;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l0 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_element_title{background:#ebebeb;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l1 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l2 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_element_l3 .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry{display:inline-block;width:50%;border-right:12px solid transparent;margin-top:0 !important}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_repository_entry .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_mixed_element .o_curriculum_entry_title{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_row_inner_wrapper{background:#f6f6f6;border:1px solid #eee}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_element_title{background:transparent;padding:12px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_program .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_element_title{background:#ebebeb;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_calendars{padding:6px 6px 12px 6px;background:#ebebeb}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_semester .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{background:#f6f6f6;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{background:#f6f6f6;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_module .o_curriculum_entry{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{margin:10px 0 5px 0}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{background:none;border:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_element_title{background:transparent;padding:12px 6px 6px 6px}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_lifecycle{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_calendars{padding:6px 6px 12px 6px;background:transparent}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_element_desc{display:none}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{display:inline-block;width:50%;border-right:12px solid transparent}@media (max-width: 991px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course{display:block;width:100%;border-right:0 !important}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course.o_with_multi_repository_entries{display:block;width:100%;border-right:0 !important}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{background:none;min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_row_inner_wrapper{min-height:50px}}.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_entry{min-height:80px}@media (max-width: 767px){.o_curriculumtable.o_rendertype_custom .o_table_row.o_curriculum_course .o_curriculum_entry{min-height:50px}}@media print{.o_curriculumtable.o_rendertype_custom .o_table_row .o_user_state{position:relative;bottom:0}.o_curriculumtable.o_rendertype_custom .o_table_row .o_access{display:none}}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}td.o_qti_item_kprim_text{width:80%}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#78be20}.d3chart .bar_red{fill:#d6001c}.d3chart .bar_grey{fill:lightgrey}.d3chart circle.bubble_green{fill:#78be20}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0;vertical-align:bottom}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:""}.o_qti_menu_item_attempts_marked:after{content:"";color:#209d9e}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}ul.sessionControl{list-style:none;margin:1em;text-align:center}ul.sessionControl li{display:inline;padding:0.2em}.association{margin:20px 20px 20px 40px;background:transparent url("../light/images/association_bg.png") repeat-x center center}.o_associate_item{padding:5px;margin:0 15px 10px 0;border:2px solid #999}.o_associate_item.oo-selected{border:2px solid #209d9e}.o_associate_item.oo-choosed{border:none !important}.o_associate_item.oo-drag{border:2px solid #209d9e !important}.association_box{border:3px dotted #999}.association_box.oo-filled{border:3px solid #999}.association_box{background-color:white}.prompt{font-weight:bold}.sketch{position:relative;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}#tmp_canvas{position:absolute;left:0px;right:0;bottom:0;top:0;cursor:crosshair;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}#colors .black .o_icon:before{color:#000000}#colors .blue .o_icon:before{color:#0000FF}#colors .green .o_icon:before{color:#008000}#colors .yellow .o_icon:before{color:#FFFF00}#colors .red .o_icon:before{color:#FF0000}#colors .purple .o_icon:before{color:#800080}.o_gap_item{padding:5px;margin:5px;background-repeat:no-repeat;background-position:center center}.o_gap_item.oo-choosed{position:relative;left:auto;top:auto;padding:3px;margin:0}.o_gap_item.oo-selected{border:3px solid #209d9e}.o_item_container_help,.o_items_container_help{font-size:90%;font-style:italic;color:#777;padding:5px}.items_container{padding:15px}.items_container .o_item{float:left}#o_qti_hotspots_edit{min-height:100px;min-width:400px;background-repeat:no-repeat}#o_qti_hotspots_edit.o_qti_hotspot-standard .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-standard .o_draw_rectangle{background-color:rgba(255,255,255,0.5);border-color:#6E6E6E}#o_qti_hotspots_edit.o_qti_hotspot-standard .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-standard .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(45,0,255,0.5);border-color:#0000ff}#o_qti_hotspots_edit.o_qti_hotspot-light .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-light .o_draw_rectangle{background-color:rgba(221,221,221,0);border-color:#7E7E7E}#o_qti_hotspots_edit.o_qti_hotspot-light .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-light .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(51,122,183,0.05);border-color:#337ab7}#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_draw_rectangle{background-color:rgba(110,110,110,0.5);border-color:#3E3E3E}#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-inverted .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(222,222,222,0.2);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-green .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-green .o_draw_rectangle{background-color:rgba(142,142,142,0.25);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-green .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-green .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(134,195,81,0.5);border-color:#518b33}#o_qti_hotspots_edit.o_qti_hotspot-purple .o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-purple .o_draw_rectangle{background-color:rgba(142,142,142,0.33);border-color:#CECECE}#o_qti_hotspots_edit.o_qti_hotspot-purple .o_qti_hotspot_correct.o_draw_circle,#o_qti_hotspots_edit.o_qti_hotspot-purple .o_qti_hotspot_correct.o_draw_rectangle{background-color:rgba(234,168,255,0.5);border-color:#ab47cb}div.hotspotInteraction{overflow-x:auto}img.o_hotspot_responsive[usemap]{max-width:100%;width:auto;height:auto}.form-inline.o_qti_gaptext_add_first_alternative,.o_qti_gaptext_add_first_alternative.o_navbar-form{padding:9px 0 3px 0}.form-inline.o_qti_gaptext_add_alternative,.o_qti_gaptext_add_alternative.o_navbar-form{margin-bottom:3px}.o_qti_gaptext_alternatives{background-color:#eee;color:#555;border:1px solid #eee;border-radius:4px;padding:2px 5px}.o_qti_item_body .extendedTextInteraction{margin:15px 0}.o_qti_item_body .extendedTextInteraction textarea{resize:vertical !important;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_qti_item_body .extendedTextInteraction pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.o_qti_item_body .extendedTextInteraction .o_qti_essay_last_save{padding:2px 2px;font-style:italic;font-size:90%;text-align:right}.extendedTextInteraction div.form-control.textarea_disabled{white-space:pre-wrap;height:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;color:#555 !important}#o_qti_run_title{margin:0 15px 0.5em 15px}#o_qti_run_title h3{margin:15px 0 0 0}#o_qti_run_infos{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:10px 0;margin:0 15px 1em 15px}#o_qti_run_infos .progress{background-color:#eee}#o_qti_run_infos #o_qti_scoreinfo .progress-bar{background-color:#209d9e}.progress-striped #o_qti_run_infos #o_qti_scoreinfo .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}#o_qti_run_infos #o_qti_questioninfo .progress-bar{background-color:#209d9e}.progress-striped #o_qti_run_infos #o_qti_questioninfo .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}#o_qti_run_infos #o_qti_run_scoreinfo,#o_qti_run_infos #o_qti_run_scoreprogress{white-space:nowrap}#o_qti_results_infos{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:10px 0;margin:0 0 1em 0}#o_qti_results_infos .progress{background-color:#eee}#o_qti_results_infos #o_qti_run_scoreinfo,#o_qti_results_infos #o_qti_run_scoreprogress{white-space:nowrap}#o_qti_assessment_test_timer{border:1px solid #e7e7e7;border-radius:4px;padding:10px;margin:0 15px 1em 15px}#o_qti_assessment_test_timer.o_10_minutes{background-color:#fcf8e3}#o_qti_assessment_test_timer.o_5_minutes{background-color:#f2dede}#o_qti_assessment_test_timer.o_panic{background-color:#ce8383}#o_qti_assessment_test_timer.o_15_seconds{background-color:#fcf8e3}#o_qti_assessment_test_timer.o_panic{background-color:#f2dede}#o_qti_assessment_test_timer .o_qti_times_up{padding-left:2em;font-weight:bold}#o_qti_assessment_test_timer .o_qti_times_message{padding-left:2em;font-weight:bold}.o_draw_circle.o_qti_hotspot_correct,.o_draw_rectangle.o_qti_hotspot_correct{background-color:rgba(229,255,204,0.6)}#width_range_ui,#opacity_range_ui{width:120px}.o_slider_width_range,.o_slider_opacity_range{margin:3px 10px 0 0}.o_qti_hotspot_label{padding-left:48%}.o_assessmentsection_rubrics_wrapper{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:4px;padding:5px 10px;margin:0 0 0.5em 0}.o_assessmentsection_rubrics_correction_wrapper{background:#f8f8f8;border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;padding:5px 10px}.o_info.o_assessmentsection_rubrics{margin:5px -10px;position:relative;display:block}.o_info.o_assessmentsection_rubrics.o_hide{display:none}.o_info.o_assessmentsection_rubrics a.o_hide{position:absolute;bottom:0.5em;right:1em}.o_assessmentitem h1{margin-bottom:0}.o_assessmentitem div.badResponse,.o_assessmentitem span.badResponse{color:#d6001c;font-weight:bold}.o_assessmentitem input.badResponse{border:1px solid #d6001c}.o_assessmentitem .infoControl input{margin-right:0.5em}.o_assessmentitem .infoControl .infoControlContent{display:none}.o_assessmentitem .sliderInteraction{margin:1em}.o_assessmentitem .sliderInteraction .sliderVertical .sliderValue{margin:1em 0}.o_assessmentitem .sliderInteraction .sliderVertical .sliderWidget{height:200px}.o_assessmentitem .sliderInteraction .sliderHorizontal .sliderValue{text-align:center}.o_assessmentitem div.orderInteraction div.highlight{border:1px solid #d6001c}.o_assessmentitem div.orderInteraction div.box.vertical{width:50%;float:left;position:relative;padding:0;margin-top:5px}.o_assessmentitem div.orderInteraction div.box.vertical ul{min-height:200px}.o_assessmentitem div.orderInteraction div.box.horizontal ul{min-height:50px;width:100%}.o_assessmentitem div.orderInteraction div.box.source{padding:5px 10px;border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8}.o_assessmentitem div.orderInteraction div.box.source.horizontal{padding:5px 10px 15px 10px}.o_assessmentitem div.orderInteraction div.box.target ul{border:2px solid #a6a6a6;border-radius:4px;background:#d9edf7}.o_assessmentitem div.orderInteraction div.box.target ul.oo-accepted{border-color:#666}.o_assessmentitem div.orderInteraction div.box.target.vertical{padding:6px 0 0 10px}.o_assessmentitem div.orderInteraction div.box.target.vertical ul{padding:10px}.o_assessmentitem div.orderInteraction div.box.target.horizontal{padding-top:10px}.o_assessmentitem div.orderInteraction div.box.target.horizontal ul{padding:10px 10px 0 10px}.o_assessmentitem div.orderInteraction div.box.horizontal ul li{float:left;width:auto;margin-right:10px;min-width:50px}.o_assessmentitem div.orderInteraction div.box span.info{color:#666;font-style:italic;font-size:smaller}.o_assessmentitem div.orderInteraction ul{list-style-type:none;margin:0;padding:0}.o_assessmentitem .hottext{position:relative;margin:-2px 0.15em -2px 0.15em;white-space:nowrap}.o_assessmentitem .hottext input{margin:0 3px 0 2px;position:absolute;top:0.1em;left:0.05em}.o_assessmentitem .hottext input+label{display:inline;padding:0 0.1em 0 1.2em;background:#f8f8f8;border:1px solid #e7e7e7;border-radius:2px;color:#2d2926;font-weight:normal;white-space:normal}.o_assessmentitem .hottext input:checked+label{color:#2d2926;background:#d9edf7;border:1px solid #bce8f1}.o_assessmentitem .gap{font-weight:bold;border:1px dashed #000}.o_assessmentitem .textEntryInteraction input,.o_assessmentitem .textEntryInteraction span.o_input_value{margin:-1px 2px;line-height:90%;vertical-align:middle;font-size:13.72px;line-height:1.5;border:1px solid #999;background:#fff;padding:1px 1px;color:#2d2926;max-width:100%}.o_assessmentitem .textEntryInteraction input:valid,.o_assessmentitem .textEntryInteraction input:disabled,.o_assessmentitem .textEntryInteraction input.o_input_value_wrapper,.o_assessmentitem .textEntryInteraction span.o_input_value:valid,.o_assessmentitem .textEntryInteraction span.o_input_value:disabled,.o_assessmentitem .textEntryInteraction span.o_input_value.o_input_value_wrapper{color:#2d2926;-webkit-text-fill-color:#2d2926;background:#d9edf7;border:1px solid #bce8f1}li.o_assessmentitem_order_item{padding:10px;margin-bottom:10px;border:2px dashed #999;border-radius:4px;background-color:#ffffff;background:#fcf8e3;list-style-type:none}li.o_assessmentitem_order_item:before,li.o_assessmentitem_order_item:after{content:" ";display:table}li.o_assessmentitem_order_item:after{clear:both}body>li.o_assessmentitem_order_item{display:block}.o_assessmentitem_wrapper .itemTitle{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:4px 4px 0 0;margin-top:0;margin-bottom:0;padding:5px 10px;line-height:1.5em;position:relative}.o_assessmentitem_wrapper .itemTitle .o_qti_item_max_score{position:absolute;left:49%}.o_assessmentitem_wrapper .o_qti_item_body{min-height:200px;margin:0;padding:5px 10px;border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;font-size:14px;line-height:1.8}.o_assessmentitem_wrapper .o_assessment_item_not_final.o_warning{margin:0}.o_assessmentitem_wrapper .modalFeedback h4:first-of-type,.o_assessmentitem_wrapper .modalFeedback .o_cal .fc-header-title h2:first-of-type,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback h2:first-of-type{padding-left:10px;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_correct_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_incorrect_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_info.o_empty_modal_feedback{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper{margin-bottom:0;margin-top:0}.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper h4,.o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessmentitem_wrapper .modalFeedback .o_togglebox_wrapper h2{border-left:1px solid #e7e7e7;border-right:1px solid #e7e7e7;padding-bottom:5px;margin-bottom:0}.o_assessmentitem_wrapper ul.o_testpartnavigation,.o_qti_menu_buttonstyle ul.o_testpartnavigation{list-style:none;padding:0;margin:0}.o_assessmentitem_wrapper li.o_assessmentitem,.o_qti_menu_buttonstyle li.o_assessmentitem{margin-bottom:2px}.o_assessmentitem_wrapper .o_assessmentitem_status,.o_qti_menu_buttonstyle .o_assessmentitem_status{float:right;display:block;padding:0.3em;margin-left:1em;border-radius:0.3em;border-width:1px;font-size:0.8em;line-height:1.2em;color:#fff}.o_assessmentitem_wrapper .o_assessmentitem_status.ended,.o_qti_menu_buttonstyle .o_assessmentitem_status.ended{background-color:#a6a6a6}.o_assessmentitem_wrapper .o_assessmentitem_status.invalid,.o_qti_menu_buttonstyle .o_assessmentitem_status.invalid{background-color:#d6001c}.o_assessmentitem_wrapper .o_assessmentitem_status.answered,.o_qti_menu_buttonstyle .o_assessmentitem_status.answered{background-color:#78be20}.o_assessmentitem_wrapper .o_assessmentitem_status.notAnswered,.o_qti_menu_buttonstyle .o_assessmentitem_status.notAnswered{background-color:#f2af40}.o_assessmentitem_wrapper .o_assessmentitem_status.notPresented,.o_qti_menu_buttonstyle .o_assessmentitem_status.notPresented{background-color:#ddd}.o_assessmentitem_wrapper .o_assessmentitem_status.review,.o_qti_menu_buttonstyle .o_assessmentitem_status.review{background-color:#a6a6a6}.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotAllowed,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewInvalid,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotAnswered,.o_assessmentitem_wrapper .o_assessmentitem_status.reviewNotSeen,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotAllowed,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewInvalid,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotAnswered,.o_qti_menu_buttonstyle .o_assessmentitem_status.reviewNotSeen{background-color:#a6a6a6;opacity:0.7}.o_assessmentitem_wrapper .o_assessmentitem_status i:before,.o_qti_menu_buttonstyle .o_assessmentitem_status i:before{color:#fff}.o_assessmentitem_controls{background:#f8f8f8;border:1px solid #e7e7e7;border-radius:0 0 4px 4px;margin-top:0;margin-bottom:16px;padding:5px 10px}.o_assessmentitem_controls button,.o_assessmentitem_controls a{margin-bottom:0}.o_assessmentitem_controls .o_sel_assessment_item_submit span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_next_question span:after{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-left:0.5em}.o_assessmentitem_controls .o_sel_question_menu span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_end_testpart span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_back_test_feedback span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_show_solution span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_solution_hide span:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";padding-right:0.5em}.o_assessmentitem_controls .o_sel_skip_question span:before,.o_assessmentitem_controls .o_sel_back_question span:before,.o_assessmentitem_controls .o_sel_retry_question span:before{padding-right:0.5em;margin-bottom:0}.o_assessmentitem_control_view_solution{background:#f8f8f8;border:1px solid #e7e7e7;margin:0;padding:5px 10px}.o_assessmentitem_scoring{background:#f8f8f8;border:1px solid #e7e7e7;border-bottom:0;border-radius:4px 4px 0 0;margin-top:0;margin-bottom:0;padding:5px 10px}.o_assessmentitem_scoring_buttons{background:#f8f8f8;border:1px solid #e7e7e7;border-top:0;border-radius:0 0 4px 4px;margin-top:0;margin-bottom:16px;padding:5px 10px}.o_assessmentitem_scoring_override_window{width:300px}.itemPrompt{margin:1.5em 0;font-style:italic;color:#666666}.o_qti_item_body{margin:1em 0}.o_sel_assessment_item_hint{margin-top:1em}.o_assessment_test_results .o_sel_assessment_item_hint{display:none}tr.choiceinteraction td.control{padding:0.5em}tr.choiceinteraction td.choiceInteraction{padding:0.5em}.choiceInteraction label{font-weight:normal}.choiceInteraction input+i{background-color:red}.choiceInteraction div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.choiceInteraction div.o_qti_item_choice_option_flow label span{font-weight:normal}.choiceInteraction div.o_qti_item_choice_option_flow label span>p{display:inline-block}.choiceInteraction.choiceright table tr td.choiceInteraction{background-color:#e7e7e7;border-bottom:3px solid white}.matchInteraction.choiceright table tr td.o_qti_item_kprim_text{background-color:#e7e7e7;border-bottom:3px solid white}table.o_qti_item_kprim td.o_qti_item_kprim_input_correct{background-color:#d8f3b7}table.o_qti_item_kprim td.o_qti_item_kprim_input_wrong{background-color:#ffa3af}table.o_qti_item_kprim td.o_qti_item_kprim_input_correct,table.o_qti_item_kprim td.o_qti_item_kprim_input_wrong,table.o_qti_item_kprim th.o_qti_item_kprim_input_correct,table.o_qti_item_kprim th.o_qti_item_kprim_input_wrong{width:11%}table.o_qti_item_kprim td.o_qti_item_kprim_text,table.o_qti_item_kprim th.o_qti_item_kprim_text{width:88%}.matchInteraction input[type='text']{display:inline;width:auto}.matchInteraction div.bar_green{background-color:#78be20}.matchInteraction div.bar_red{background-color:#d6001c}.source-left,.target-left,.source-right,.target-right{width:50%;float:left;position:relative;padding:0;margin-top:5px}.o_match_dnd_sources{padding:10px 10px 0 10px;min-height:60px;border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8}.o_match_dnd_sources.oo-accepted{border-color:#666}.o_match_dnd_source{padding:10px;margin-bottom:10px;border:2px dashed #999;border-radius:4px;background-color:#ffffff;background:#fcf8e3;cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.o_match_dnd_source:before,.o_match_dnd_source:after{content:" ";display:table}.o_match_dnd_source:after{clear:both}.o_match_dnd_source.oo-selected{border:2px dashed #f2af40;background:#fae1b7}.o_match_dnd_source.oo-drag{border:2px dashed #f2af40 !important}.source-bottom .o_match_dnd_source,.source-top .o_match_dnd_source{margin:0 0 10px 0}.o_match_dnd_targets .oo-accepted{border:2px solid #666;border-radius:4px}.o_match_dnd_target{padding:10px 10px 0 10px;margin:0 0 10px 10px;border:2px solid #a6a6a6;border-radius:4px;background:#d9edf7}.o_match_dnd_target:before,.o_match_dnd_target:after{content:" ";display:table}.o_match_dnd_target:after{clear:both}.o_match_dnd_target .o_match_dnd_target_drop_zone{margin:0;padding:5px 0 0 15px;min-height:30px}.o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source{border:2px dashed #777}.target-bottom .o_match_dnd_target,.target-top .o_match_dnd_target{margin:0 0 10px 0}.target-bottom .o_match_dnd_target .o_match_dnd_target_drop_zone,.target-top .o_match_dnd_target .o_match_dnd_target_drop_zone{padding-left:0px}.target-bottom .o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source,.target-top .o_match_dnd_target .o_match_dnd_target_drop_zone .o_match_dnd_source{padding-left:15px}.table.o_match_true_false_edit th.o_sel_match_target_0,.table.o_match_true_false_edit th.o_sel_match_target_1,.table.o_match_true_false_edit th.o_sel_match_target_2{width:12%}.match_true_false input[type="checkbox"]{-webkit-appearance:radio;-moz-appearance:radio;-ms-appearance:radio;appearance:radio}.match_true_false .table>tbody>tr>td.o_match_true_false_unanswered,.match_true_false .table>tbody>tr>td.o_match_true_false_right,.match_true_false .table>tbody>tr>td.o_match_true_false_wrong{vertical-align:middle;width:11%}.match_true_false th.o_match_true_false_unanswered,.match_true_false th.o_match_true_false_right,.match_true_false th.o_match_true_false_wrong{width:11%}.match_true_false td.o_match_true_false_answer,.match_true_false th.o_match_true_false_answer{width:67%}.match_true_false td.o_match_true_false_unanswered{background-color:#fbfbfb}.match_true_false td.o_match_true_false_right{background-color:#d8f3b7}.match_true_false td.o_match_true_false_wrong{background-color:#ffa3af}.o_assessmentitem .mathEntryInteraction{border:1px solid #ddedfc;background-color:#edf1f6;background:linear-gradient(to top, #edf1f6 0%, #f6f9fb 100%);border-radius:0.4em;padding:1em;margin:0.5em 0}.o_assessmentitem .mathEntryInteraction .inputPanel{line-height:1em;text-align:left}.o_assessmentitem .mathEntryInteraction .inputPanel input{margin:0;padding:0}.o_assessmentitem .mathEntryInteraction .previewPanel{text-align:center}.o_assessmentitem .mathEntryInteraction.horizontal{min-height:5em;width:40em}.o_assessmentitem .mathEntryInteraction.horizontal .inputPanel{width:45%;float:left;margin:2em 0}.o_assessmentitem .mathEntryInteraction.horizontal .previewPanel{width:50%;margin-left:40%}.o_assessmentitem .mathEntryInteraction.vertical{min-height:6em}.o_assessmentitem .mathEntryInteraction.vertical .inputPanel{padding:0 5em}.o_assessmentitem .mathEntryInteraction.vertical .inputPanel:before{content:'Input Maths: '}.o_assessmentitem .mathEntryInteraction.vertical .previewPanel{margin-top:2em;min-height:4em}.o_assessmentitem div.upConversionAjaxControlMessage{width:auto;text-align:center;display:inline;padding:0.5em 0 0.5em 20px}.o_assessmentitem div.success{background:#78be20}.o_assessmentitem div.failure{background-color:#f2af40}.o_assessmentitem div.error{background-color:#d6001c}.o_assessmentitem div.upConversionAjaxControlPreview{margin:0.5em 0;font-size:110%}.o_assessmentitem table.inputHelp{border-collapse:collapse;width:100%;font-size:90%}.o_assessmentitem table.inputHelp th{border:1px solid #999999;padding:0.2em 0.5em;background-color:#cad8e5}.o_assessmentitem table.inputHelp td{color:#999999;border:1px solid #999999;padding:0.2em 0.5em}.o_assessmentitem table.inputHelp kbd{color:black;font-size:100%;line-height:100%}.o_assessmentitem table.inputHelp .longComma{margin-right:0.5em}.o_togglebox_wrapper #modal-correct-solution div.o_togglebox_content{background-color:#fcf8e3;border-color:#8a6d3b}.o_candidatecomment{padding:0;margin:2em 0 1em 0;border:none}.o_candidatecomment legend{font-size:110%;font-weight:bold;color:#777;margin-bottom:0;border-bottom:0}.o_candidatecomment div.o_item_container_help{margin:0;padding:0}.o_candidatecomment textarea{display:block;color:#777}.o_qti_menu_menustyle ul.o_testpartnavigation{list-style:none;padding:0;margin:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:0 1em 0.5em 1em;margin:0 0 0.5em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection header{margin:0 0 1em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection header div.rubric{font-style:italic}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentsection ul.o_testpartnavigation_inner{list-style:none;padding:0;margin:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem{padding:0.1em 0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a{color:#777}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a:hover,.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem a:focus{color:#333}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a{color:#209d9e;font-weight:bold}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a:hover,.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem.active a:focus{color:#177374;background-color:#eee}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem span{vertical-align:middle}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_status{display:inline;position:relative;left:-0.3em;background:transparent;border:0}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_status span{display:none}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts{float:right;display:block;padding:0.3em;border-radius:2px;background-color:#fafafa;color:#777;font-size:0.7em}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts.o_assessmentitem_attempts_limited{color:#f2af40}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_attempts.o_assessmentitem_attempts_nomore{color:#a6a6a6}.o_qti_menu_menustyle ul.o_testpartnavigation li.o_assessmentitem .o_assessmentitem_marks{float:right;display:inline-block;font-size:0.8em;position:relative;top:0.3em;right:-0.5em}.o_qti_menu_menustyle ul.o_testpartnavigation .o_assessmentitem .questionTitle{margin-right:1em}.testFeedback h1:first-of-type{margin-top:0}ul.testPartDrilldown{list-style:none;padding:0;margin:0}ul.testPartDrilldown li.o_assessmentsection{border:1px solid #e7e7e7;border-radius:4px;background:#f8f8f8;padding:0 1em 0.5em 1em}ul.testPartDrilldown li.o_assessmentsection header{margin:0 0 1em 0}ul.testPartDrilldown li.o_assessmentsection header div.rubric{font-style:italic}ul.testPartDrilldown li.o_assessmentsection ul.testPartDrilldownInner{list-style:none;padding:0;margin:0}ul.testPartDrilldown li.currentItem{border:1px solid #e7e7e7;border-radius:0.5em;padding:0 1em;margin-top:1em}.testItemControl{margin-top:0.5em}ul.o_qti_statistics_answers li span.o_qti_statistics_answer{background:#F5F5F5;padding:1px 3px;width:90%;display:inline-block}.o_assessment_test_results .o_qti_assessment_title{border-bottom:1px solid #ddd}.o_assessment_test_results table th{width:40%}.o_assessment_test_results .o_qti_sectionsummary .o_qti_section{text-align:center}.o_assessment_test_results .o_qti_sectionsummary .o_qti_section .o_qti_section_sublisting{padding:0 10%;min-height:3em}.o_assessment_test_results .o_qti_sections .o_qti_section{margin-top:40px}.o_assessment_test_results .o_qti_sections .o_qti_section h3{margin-bottom:20px}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_id{display:none}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment{margin:0;padding:5px 10px 10px 5px;border-top:1px solid #ddd;broder-bottom:1px solid #ddd}.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h4,.o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_assessment_test_results .o_qti_sections .o_qti_section .o_qti_items .o_qti_item .o_qti_item_comment h2{font-size:100%;font-weight:bold;color:inherit}.o_assessment_test_results .o_qti_to_overview{text-align:right}.o_sel_assessment_item_feedbacks{min-height:250px}.o_alternative_question_types h4 select,.o_alternative_question_types .o_cal .fc-header-title h2 select,.o_cal .fc-header-title .o_alternative_question_types h2 select{display:inline-block;width:auto}@media print{canvas,div.hotspotInteraction>div>div{-webkit-print-color-adjust:exact;color-adjust:exact}.choiceInteraction label{font-weight:normal}.choiceinteraction input[type="radio"][disabled],.choiceinteraction input[type="checkbox"][disabled],.matchInteraction input[type="radio"][disabled],.matchInteraction input[type="checkbox"][disabled]{display:none}.choiceinteraction input+i,.matchInteraction input+i{font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.choiceInteraction input[type="radio"][disabled]+i:before,.matchInteraction input[type="radio"][disabled]+i:before,.matchInteraction.match_true_false input[type="checkbox"][disabled]+i:before{content:""}.choiceInteraction input[type="radio"][disabled]:checked+i:before,.matchInteraction input[type="radio"][disabled]:checked+i:before,.matchInteraction.match_true_false input[type="checkbox"][disabled]:checked+i:before{content:""}.choiceInteraction input[type="checkbox"][disabled]+i:before,.matchInteraction input[type="checkbox"][disabled]+i:before{content:""}.choiceInteraction input[type="checkbox"][disabled]:checked+i:before,.matchInteraction input[type="checkbox"][disabled]:checked+i:before{content:""}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav{margin-right:20px}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_nav .o_portfolio_collector{position:relative;top:-5px}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}div.o_wiki_wrapper a.wikiimg{text-decoration:none;color:inherit;font-weight:inherit}div.o_wiki_wrapper div.imgcaption{padding:0.3em 0em 0.2em 0.3em}div.o_wiki_wrapper div.imgleft{clear:left;float:left;margin:0.3em 0.3em 0.3em 0em}div.o_wiki_wrapper div.imgright{clear:right;float:right;margin:0.3em 0em 0.3em 0.3em}div.o_wiki_wrapper div.imgcenter{clear:both;overflow:hidden;text-align:center;margin:0.3em 0em 0.3em 0em}div.o_wiki_wrapper div.imgthumb{border:1px solid #bbbbbb;padding:0.3em}div.o_wiki_wrapper table.gallery{border:1px solid #ccc;margin:2px;padding:2px;background-color:white}div.o_wiki_wrapper table.gallery tr{vertical-align:middle}div.o_wiki_wrapper table.gallery td{background-color:#f9f9f9;border:solid 2px white;text-align:center;vertical-align:middle;width:150px}div.o_wiki_wrapper img.gallery{border:1px solid #bbbbbb;padding:0.3em}div.o_wiki_wrapper a.edit{font-style:italic;color:red}div.o_wiki_wrapper a.externallink:before{padding-right:2px}div.o_wiki_wrapper a.externallink:before:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:""}.o_ep_icon_map:before{content:""}.o_ep_icon_collection:before{content:""}.o_ep_icon_page:before{content:""}.o_ep_icon_struct:before{content:""}.o_ep_icon_liveblog:before{content:""}.o_artefact_closed:before{content:""}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ECF69A;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99E44D;background:#99E44D -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99E44D), to(#CBF1A5));background:#99E44D -moz-linear-gradient(43% 71% 101deg, #CBF1A5, #99E44D);background:#99E44D -o-linear-gradient(#99E44D, #CBF1A5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99E44D', EndColorStr='#CBF1A5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#DFF0C1;background:#DFF0C1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#DFF0C1), to(#A0D346));background:#DFF0C1 -moz-linear-gradient(43% 71% 101deg, #A0D346, #DFF0C1);background:#DFF0C1 -o-linear-gradient(#DFF0C1, #A0D346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#DFF0C1', EndColorStr='#A0D346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#D7DBB5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#FFBA71;background:#FFBA71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FFBA71), to(#FFBA99));background:#FFBA71 -moz-linear-gradient(43% 71% 101deg, #FFBA99, #FFBA71);background:#FFBA71 -o-linear-gradient(#FFBA71, #FFBA99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFBA71', EndColorStr='#FFBA99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#FF9772;background:#FF9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FF9772), to(#FF9780));background:#FF9772 -moz-linear-gradient(43% 71% 101deg, #FF9780, #FF9772);background:#FF9772 -o-linear-gradient(#FF9772, #FF9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FF9772', EndColorStr='#FF9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#E8AFBB;background:#E8AFBB -webkit-gradient(linear, 37% 20%, 53% 100%, from(#E8AFBB), to(#E8AFA0));background:#E8AFBB -moz-linear-gradient(43% 71% 101deg, #E8AFA0, #E8AFBB);background:#E8AFBB -o-linear-gradient(#E8AFBB, #E8AFA0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#E8AFBB', EndColorStr='#E8AFA0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#FFA800;background:#FFA800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#FFA800), to(#FFAF00));background:#FFA800 -moz-linear-gradient(43% 71% 101deg, #FFAF00, #FFA800);background:#FFA800 -o-linear-gradient(#FFA800, #FFAF00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFA800', EndColorStr='#FFAF00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00D2F8;background:#00D2F8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00D2F8), to(#4A9EAD));background:#00D2F8 -moz-linear-gradient(43% 71% 101deg, #4A9EAD, #00D2F8);background:#00D2F8 -o-linear-gradient(#00D2F8, #4A9EAD);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00D2F8', EndColorStr='#4A9EAD');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#C4F6FF;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#B3E2F7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#DEE7F7;background:#DEE7F7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#DEE7F7), to(#C1E9FD));background:#DEE7F7 -moz-linear-gradient(43% 71% 101deg, #C1E9FD, #DEE7F7);background:#DEE7F7 -o-linear-gradient(#DEE7F7, #C1E9FD);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#DEE7F7', EndColorStr='#C1E9FD');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_portfolio div#o_main_toolbar.o_toolbar{margin-top:0px}.o_portfolio_home .o_portfolio_my li,.o_portfolio_home .o_portfolio_shared li{margin:2em 1em 2em 0;text-align:center;vertical-align:top}.o_portfolio_home .o_portfolio_my li.o_pf_trash_entry,.o_portfolio_home .o_portfolio_shared li.o_pf_trash_entry{border-right:5px dashed #eee;padding-right:2em}.o_portfolio_home .o_portfolio_my li a,.o_portfolio_home .o_portfolio_shared li a{display:block;width:9em}.o_portfolio_home .o_portfolio_my li a i,.o_portfolio_home .o_portfolio_shared li a i{display:inline-block;font-size:4em}.o_portfolio_home .o_portfolio_my li a span,.o_portfolio_home .o_portfolio_shared li a span{display:block;margin-top:0.8em}@media (max-width: 1199px){.o_portfolio_home .o_portfolio_my,.o_portfolio_home .o_portfolio_shared{font-size:90%}}@media (max-width: 767px){.o_portfolio_home .o_portfolio_my,.o_portfolio_home .o_portfolio_shared{font-size:80%}.o_portfolio_home .o_portfolio_my li.o_pf_trash_entry,.o_portfolio_home .o_portfolio_shared li.o_pf_trash_entry{border-right:none;padding-right:0}}.o_portfolio_home #o_my_last_binders .o_table_body{margin-top:0;padding-left:0}.o_portfolio_home #o_my_last_pages .o_table_body{margin-top:0}.o_portfolio_home #o_my_last_pages .o_table_toolbar{display:none}.o_portfolio_home #o_my_last_pages .o_portfolio_page{margin-top:0;margin-bottom:1em}.o_section_lead,.o_page_lead,.o_assignment_lead{padding:10px 10px;margin-bottom:10px;background-color:#f2f2f2;border-radius:3px;border:1px #d9d9d9 solid}.o_section_ended .o_section_lead{border-color:#ff3d56;background-color:#ff7083}.o_media.o_media_right,.o_media.o_media_right_large{float:right;margin-left:2em;margin-bottom:2em}.o_media.o_media_left,.o_media.o_media_left_large{float:left;margin-right:2em;margin-bottom:2em}.o_media.o_media_left,.o_media.o_media_right{max-height:200px;max-width:50%}.o_media.o_media_left img,.o_media.o_media_right img{max-height:200px}.o_media.o_media_right_large,.o_media.o_media_left_large{max-height:300px;max-width:75%}.o_media.o_media_right_large img,.o_media.o_media_left_large img{max-height:300px}.o_media img{border-radius:3px;border:1px #d9d9d9 solid;background:#fff;height:auto;width:auto}@media (max-width: 767px){.o_page_lead .o_media.o_media_right,.o_page_lead .o_media.o_media_right_large{margin-left:1em;margin-bottom:1em}.o_page_lead .o_media.o_media_left,.o_page_lead .o_media.o_media_left_large{margin-right:1em;margin-bottom:1em}.o_page_lead .o_media.o_media_left,.o_page_lead .o_media.o_media_right{max-height:120px;max-width:30%}.o_page_lead .o_media.o_media_left img,.o_page_lead .o_media.o_media_right img{max-height:120px}.o_page_lead .o_media.o_media_right_large,.o_page_lead .o_media.o_media_left_large{max-height:180px;max-width:50%}.o_page_lead .o_media.o_media_right_large img,.o_page_lead .o_media.o_media_left_large img{max-height:180px}}.o_page_lead{padding:20px}.o_page_lead h2{margin-bottom:5px}.o_page_lead .o_portfolio_page_meta{margin-bottom:5px}.o_page_lead .o_page_summary{font-size:18px}.o_page_lead .o_media.o_desc_empty{max-height:300px;text-align:center}.o_page_lead .o_media.o_desc_empty img{max-height:300px}.o_page_lead .o_portfolio_status_block{border-top:1px solid #d9d9d9;padding-top:1em;margin-bottom:-1em}.o_page_lead .o_edit_page_meta{padding-right:2em}.o_page_lead .o_portfolio_status{display:inline-block;padding-right:2em}.o_page_lead.o_block_imagebg .o_portfolio_status{padding:2px;background-color:rgba(255,255,255,0.8)}.o_portfolio_status_block p.o_section_ended{font-size:120%}.o_page_assignment{font-size:12px}.o_page_assignment.o_togglebox_wrapper div.o_togglebox_content{margin:10px 0 20px 0;padding:20px;border-left:3px solid #d6001c;background-color:#f2dede}.o_page_assignment .o_page_assignement_info{position:relative;left:-1em}.o_page_export .o_page_assignment .o_opener,.o_binder_export .o_page_assignment .o_opener{visibility:hidden}.o_page_export .o_page_assignment .o_closer,.o_binder_export .o_page_assignment .o_closer{display:none}.o_portfolio_listing.o_rendertype_custom .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry{position:relative;display:inline-block;height:230px;width:400px;vertical-align:top;margin-right:10px}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry ul{padding-left:2em}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry .oo-accepted{box-shadow:10px 10px 10px pink}.o_portfolio_listing.o_rendertype_custom .o_portfolio_entry .o_binder_tools a{color:#2d2926}.o_portfolio_listing.o_rendertype_custom .panel-imagebg .panel-body ul{margin:0;padding:0;list-style-type:none}.o_portfolio_listing.o_rendertype_custom .panel-imagebg .panel-body ul li{padding:2px}.o_binder.o_portfolio_assignments .panel-heading,.o_binder.o_portfolio_assignments .panel-body{border-left:3px solid #d6001c}.panel-default.o_portfolio_assignments .panel-heading,.panel-default.o_portfolio_assignments .panel-body{border-left:3px solid #d6001c}.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body{border-left:3px solid #d6001c}.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body .o_portfolio_page_meta_wrapper,.o_portfolio_page .o_portfolio_assignments .o_portfolio_page_body .o_portfolio_page_summary{padding-left:10px}.o_portfolio_page_summary .o_media.o_media_right,.o_portfolio_page_summary .o_media.o_media_right_large{margin-left:1em;margin-bottom:1em}.o_portfolio_page_summary .o_media.o_media_left,.o_portfolio_page_summary .o_media.o_media_left_large{margin-right:1em;margin-bottom:1em}.o_portfolio_page_summary .o_media.o_media_left,.o_portfolio_page_summary .o_media.o_media_right{max-height:150px}.o_portfolio_page_summary .o_media.o_media_left img,.o_portfolio_page_summary .o_media.o_media_right img{max-height:150px}.o_portfolio_page_summary .o_media.o_media_right_large,.o_portfolio_page_summary .o_media.o_media_left_large{max-height:230px}.o_portfolio_page_summary .o_media.o_media_right_large img,.o_portfolio_page_summary .o_media.o_media_left_large img{max-height:230px}.o_portfolio_categories .tag{font-size:80%;font-weight:normal}.o_portfolio_categories div,.o_portfolio_categories form{display:inline-block}.o_portfolio_categories_edit .bootstrap-tagsinput{margin-bottom:0;padding:0px 4px}.o_portfolio_last_modified+.o_portfolio_categories,.o_portfolio_page_meta+.o_portfolio_categories{margin-left:1em}.o_rendertype_classic .o_pf_page,.o_rendertype_classic .o_pf_assignment{padding-left:1em}.o_portfolio_timeline .o_timeline_up{text-align:center}.o_portfolio_timeline .o_timeline_down{text-align:center}.o_portfolio_timeline .axis path,.o_portfolio_timeline .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_portfolio_timeline .x.axis line,.o_portfolio_timeline .x.axis path{display:none}.o_portfolio_timeline path.o_timeline_curve{fill:none;stroke:#ccc;shape-rendering:crispEdges}.o_portfolio_timeline .y.axis .tick line,.o_portfolio_timeline .y.axis path.domain{stroke:#ddd}.o_portfolio_timeline text{fill:#888;stroke:none;font-size:10px}.o_portfolio_timeline .dot.o_pf_status_draft{fill:#f2af40}.o_portfolio_timeline .dot.o_pf_status_published{fill:#209d9e}.o_portfolio_timeline .dot.o_pf_status_inrevision{fill:#d6001c}.o_portfolio_timeline .dot.o_pf_status_closed{fill:#78be20}.o_portfolio_timeline .dot.o_pf_status_deleted{fill:#000}.o_pf_comments{margin-top:3em}.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.gu-mirror .o_cit,.gu-mirror .o_text,.gu-mirror .o_file{background-color:#f8f8f8;padding:10px;border-radius:10px}.o_pf_content .o_forum,.gu-mirror .o_forum{border:1px #f8f8f8 solid;padding:10px;border-radius:10px}.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_forum,.o_pf_content .o_wiki,.gu-mirror .o_efficiencystatement,.gu-mirror .o_feed,.gu-mirror .o_forum,.gu-mirror .o_wiki{background-color:#f8f8f8;padding:10px;border-radius:10px}.o_pf_content .o_efficiencystatement h3,.o_pf_content .o_efficiencystatement .h3,.o_pf_content .o_feed h3,.o_pf_content .o_feed .h3,.o_pf_content .o_forum h3,.o_pf_content .o_forum .h3,.o_pf_content .o_wiki h3,.o_pf_content .o_wiki .h3,.gu-mirror .o_efficiencystatement h3,.gu-mirror .o_efficiencystatement .h3,.gu-mirror .o_feed h3,.gu-mirror .o_feed .h3,.gu-mirror .o_forum h3,.gu-mirror .o_forum .h3,.gu-mirror .o_wiki h3,.gu-mirror .o_wiki .h3{font-size:14px}.o_pf_content .o_efficiencystatement .row,.o_pf_content .o_feed .row,.o_pf_content .o_forum .row,.o_pf_content .o_wiki .row,.gu-mirror .o_efficiencystatement .row,.gu-mirror .o_feed .row,.gu-mirror .o_forum .row,.gu-mirror .o_wiki .row{margin:0}.o_pf_content .o_efficiencystatement .o_block_with_datecomp,.o_pf_content .o_feed .o_block_with_datecomp,.o_pf_content .o_forum .o_block_with_datecomp,.o_pf_content .o_wiki .o_block_with_datecomp,.gu-mirror .o_efficiencystatement .o_block_with_datecomp,.gu-mirror .o_feed .o_block_with_datecomp,.gu-mirror .o_forum .o_block_with_datecomp,.gu-mirror .o_wiki .o_block_with_datecomp{margin-top:0.5em;margin-bottom:0}.o_pf_video_placeholder{background-color:#f8f8f8;border:1px solid #f8f8f8;border-radius:10px;display:table;min-width:400px;text-align:center;padding:40px 10px}.o_pf_video_placeholder i{display:table-cell;vertical-align:middle}.o_binder_page_listing .o_portfolio_page_links{background-color:#f8f8f8;border-radius:4px}.o_binder_page_listing .o_portfolio_page_links .o_portfolio_comment{float:right}.o_portfolio_toc .o_portfolio_toc_section{position:relative;padding-right:80px}.o_portfolio_toc .o_portfolio_section_meta{margin-top:-0.5em}.o_portfolio_toc .o_section_actions{position:absolute;top:-10px;right:0}.o_portfolio_toc .o_section_actions .o_section_move_up_and_down,.o_portfolio_toc .o_section_actions .o_section_dropdown{vertical-align:middle;display:inline-block}.o_portfolio_toc a.o_comment{color:#777;margin-left:1em}.o_portfolio_toc .o_section ul{padding-left:1em;line-height:24px}.o_portfolio div span.badge{padding:3px 7px}.o_portfolio div .o_portfolio_entry_draft{background-color:#f2af40}.o_portfolio div .o_portfolio_published{background-color:#209d9e}.o_portfolio div .o_portfolio_entry_revision{background-color:#d6001c}.o_portfolio div .o_portfolio_entry_closed{background-color:#78be20}.o_portfolio div .o_portfolio_entry_deleted{background-color:#000}.o_portfolio div .o_portfolio_entry_incoming{background-color:#78be20}.o_portfolio div .o_portfolio_entry_inprocess{background-color:#c8c8c8}.o_portfolio div .o_portfolio_entry_done{background-color:#78be20}.o_portfolio div .o_popover,.o_portfolio div .popover:hover{color:#2d2926;text-decoration:none}.o_portfolio_content .o_portfolio_toc.o_portfolio_toc_withtimeline{width:70%;float:left}.o_portfolio_content .o_portfolio_timeline{width:29%;float:right}.o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline,.o_portfolio_content .o_portfolio_entries.o_portfolio_withtimeline{width:70%;float:left}.o_portfolio_content .o_portfolio_timeline{width:29%;float:right}.o_portfolio_page{background:#fcfcfc;border:1px solid #eee;border-radius:4px}.o_portfolio_page_meta_wrapper{background-position:left top;background-repeat:no-repeat}.o_portfolio_rights table .o_portfolio_section td:first-child{padding-left:1.5em}.o_portfolio_rights table .o_portfolio_page td:first-child{padding-left:2.5em}.o_portfolio_publication table{padding-bottom:10px}.o_portfolio_publication table td{padding:5px 5px 5px 0}.o_portfolio_publication .o_portfolio_ac{font-size:90%}.o_portfolio_publication .o_portfolio_ac table td:nth-of-type(2){width:200px;white-space:nowrap}.o_portfolio_publication .o_portfolio_ac table td:nth-of-type(3){width:40px;white-space:nowrap}.o_portfolio_publication ul ul{margin-left:2em;margin-bottom:5px}.o_portfolio_publication ul li{background:#fbfbfb;padding:3px;margin-bottom:2px}.o_portfolio_publication ul li li{background:#f2f2f2}.o_portfolio_publication ul li li li{background:#eee}.o_portfolio_publication ul li li .table{margin-bottom:0px}@media (max-width: 767px){.o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline,.o_portfolio_content .o_portfolio_entries.o_portfolio_withtimeline{width:100%;float:none}.o_portfolio_content .o_sel_timeline_off,.o_portfolio_content .o_sel_timeline_on,.o_portfolio_content .o_portfolio_timeline{display:none}.o_portfolio_content .o_portfolio_content .o_portfolio_toc.o_portfolio_withtimeline{width:100%;float:none}}.o_portfolio_media_browser .o_portfolio_medias{position:relative;margin-bottom:20px;margin-top:20px}.o_portfolio_media_browser .o_portfolio_medias:before,.o_portfolio_media_browser .o_portfolio_medias:after{content:" ";display:table}.o_portfolio_media_browser .o_portfolio_medias:after{clear:both}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media:last-child{margin-right:0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{border:1px solid #209d9e;position:relative;height:180px;width:180px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual span.o_visual_not_available{width:100%;height:100%;display:block}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon span.o_visual_not_available{background-image:none}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:6em;text-align:center;color:#eee;line-height:140px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #209d9e;border-top:0;background-color:rgba(255,255,255,0.8)}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a{display:block;color:#209d9e;font-family:inherit;font-weight:inherit}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a:hover{color:#177374}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{width:80px;margin:0 10px 10px 0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{height:80px;width:80px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:2.5em;line-height:55px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_title{font-size:90%}}@media (max-width: 767px){.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media{width:80px;margin:0 1px 1px 0}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual{height:80px;width:80px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_visual.o_icon{font-size:2.5em;line-height:55px}.o_portfolio_media_browser .o_portfolio_medias .o_portfolio_media .o_title{font-size:90%}}.o_portfolio_status_legend{margin-top:3em}.o_portfolio_status_legend h6{margin-bottom:5px}.o_ed_htitle h1,.o_ed_htitle .h1{font-size:30px}.o_ed_htitle h2,.o_ed_htitle .h2{font-size:24px}.o_ed_htitle h3,.o_ed_htitle .h3{font-size:18px}.o_ed_htitle h4,.o_ed_htitle .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_ed_htitle h2,.o_ed_htitle .h4{font-size:14px}.o_ed_htitle h5,.o_ed_htitle .h5{font-size:12px}.o_ed_htitle h6,.o_ed_htitle .h6{font-size:12px}@media print{.o_binder h1{font-size:43.2px;margin-top:10cm}.o_portfolio_section{margin-bottom:1cm}.o_portfolio_section h3:first-of-type{font-size:36px}.o_page_lead{border:0;border-bottom:1px solid #d9d9d9;border-radius:0;background-color:none;padding:0;margin-bottom:10px}.o_page_lead .o_portfolio_status_block{border-top:0;margin-bottom:0}.o_page_lead .o_media img{border:0}.o_page_lead .o_portfolio_categories{display:block;margin-left:0}.o_page_lead .o_portfolio_status_block{padding-top:0}.o_page_lead .o_page_summary{margin-top:1em;font-style:italic}.o_pf_content .o_cit,.o_pf_content .o_text,.o_pf_content .o_file,.o_pf_content .o_forum,.o_pf_content .o_image,.o_pf_content .o_video,.o_pf_content .o_efficiencystatement,.o_pf_content .o_feed,.o_pf_content .o_forum,.o_pf_content .o_wiki{padding:0;border-radius:0;border:0}.o_pf_content .o_cit .o_desc p,.o_pf_content .o_text .o_desc p,.o_pf_content .o_file .o_desc p,.o_pf_content .o_forum .o_desc p,.o_pf_content .o_image .o_desc p,.o_pf_content .o_video .o_desc p,.o_pf_content .o_efficiencystatement .o_desc p,.o_pf_content .o_feed .o_desc p,.o_pf_content .o_forum .o_desc p,.o_pf_content .o_wiki .o_desc p{margin:0}.o_efficiencystatement table{font-size:90%}.o_artefact_metadata{page-break-inside:avoid;border:0;border-left:5px solid #eee;padding-left:10px;font-size:80%}.o_artefact_metadata table td,.o_artefact_metadata table th{border:0 !important;padding:2px !important}.o_artefact_metadata table th:first-of-type{width:20%}.o_pf_video_placeholder{background-color:#f8f8f8 !important;-webkit-print-color-adjust:exact;color-adjust:exact}.o_pf_video_placeholder.visible-print-block{display:table !important}}.o_evaluation_form .o_evaluation_block{margin-top:2em;margin-bottom:2em}.o_evaluation_form .o_rubric_name{font-weight:bold;margin-bottom:1em}.o_evaluation_form .o_evaluation_step_labels{margin-bottom:1em;font-weight:bold}.o_evaluation_form .o_evaluation_step_labels div,.o_evaluation_form .o_evaluation_step_labels span{display:inline-block;text-align:center;align-self:flex-end;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_evaluation_form .o_slider_wrapper{height:33px;overflow:hidden}.o_evaluation_form .o_slider{margin-bottom:1em}.o_evaluation_form .o_slider label{padding:0}.o_evaluation_form .o_slider input{padding:0;margin:0;position:relative}.o_evaluation_form .o_slider.hover{background-color:#f5f5f5}.o_evaluation_form .o_evaluation_continous .o_evaluation_no_response div.radio{padding:0;margin:0}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps{display:flex;justify-content:space-between}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps label{padding:0;margin:0;text-align:center}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps .radio{background-color:#f9f9f9;padding:0px;margin-top:0px;text-align:center}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_steps .radio:hover{background-color:#f5f5f5}.o_evaluation_form .o_evaluation_discrete_radio .o_slider .o_evaluation_no_response div.radio{margin-top:2px}.o_evaluation_form .o_evaluation_discrete_radio .o_evaluation_step_labels{display:flex;justify-content:space-between}.o_evaluation_form .o_slider .ui-slider.ui-slider-horizontal.ui-widget-content{margin-top:0.3em;margin-bottom:10px}.o_evaluation_form .o_evaluation_left_label{text-align:right;font-weight:normal}.o_evaluation_form .o_evaluation_left_label.o_evaluation_left_label_la{text-align:left;padding-left:0px;font-weight:normal}.o_evaluation_form .o_evaluation_right_label{text-align:left;font-weight:normal}.o_evaluation_form .o_evaluation_text_legend{margin-bottom:1em}.o_evaluation_form .o_evaluation_legend{padding-left:0.5em;margin-bottom:0.5em}.o_evaluation_form .o_evaluation_fileupload{margin-bottom:2em}.o_evaluation_form .o_evaluation_mc_other{margin-top:-10px;margin-left:10px;margin-right:10px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_slider{margin-left:15px;margin-right:15px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_end_label{text-align:right;padding-right:20px}.o_evaluation_form .o_evaluation_rubric_diagrams .o_continous .x .tick{visibility:hidden}.o_evaluation_form .o_ed_rubrictablehandler .table{margin-top:5px}.o_evaluation_form .svg-container{display:inline-block;position:relative;width:100%;padding-bottom:50%;vertical-align:top;overflow:hidden}.o_evaluation_form .svg-content-responsive{display:inline-block;position:absolute;top:10px;left:0}.d3chart .o_eva_bar{fill:#209d9e}.d3chart .o_rubric_sufficient{fill:#78be20}.d3chart .o_rubric_neutral{fill:#f2af40}.d3chart .o_rubric_insufficient{fill:#d6001c}.d3chart .o_rubric_unrated{fill:#209d9e}.o_qual_hm_legend{padding:5px}.o_qual_hm_legend li{font-size:90%}.o_qual_hm_legend .ident{font-weight:bold}.o_evaluation_discrete_slider .o_evaluation_step_labels{position:relative}.o_evaluation_discrete_slider .o_evaluation_step_labels div:first-child{position:absolute;left:0px;text-align:left}.o_evaluation_discrete_slider .o_evaluation_step_labels div{display:inline-block;text-align:center}.o_evaluation_discrete_slider .o_evaluation_step_labels div:last-child{position:absolute;right:0px;text-align:right}.o_slider_overview{width:100%;height:20px;position:relative}.o_slider_overview .o_slider_overview_line{top:5px;left:0px;position:absolute;width:100%;height:11px;border:1px solid #999;border-radius:4px}.o_slider_overview .o_slider_overview_point{position:absolute;width:10px;height:10px;background-color:#209d9e}.o_evaluation_editor_form{margin:10px 10px 0 10px}.o_evaluation_editor_form .o_slider_editor{margin-top:10px}@media (max-width: 992px){.o_evaluation_editor_form .o_slider_editor{margin-bottom:20px}}@media (max-width: 992px){.o_evaluation_editor_form .o_evaluation_step_label{text-align:unset;margin-bottom:5px;padding-top:unset}}.o_evaluation_editor_form .o_evaluation_step_labels{display:inline-block}.o_evaluation_editor_form .o_evaluation_step_labels input{width:100%}.o_evaluation_editor_form .o_slider_descrete_radio{display:flex;justify-content:space-between}.o_evaluation_editor_form .o_slider_descrete_radio .radio{background-color:#f9f9f9;padding:0px;margin-top:0px;text-align:center}.o_evaluation_editor_form .o_slider_descrete_radio .radio:hover{background-color:#f5f5f5}@media (max-width: 992px){.o_evaluation_editor_form input[type="text"]{margin-bottom:5px}}.o_evaluation_editor_form .o_slider_continous{padding-top:10px;padding-bottom:-10px}.o_evaluation_editor_form .o_slider_descrete{padding-top:5px;padding-bottom:-5px}.o_evaluation_editor_form .o_evaluation_example{font-size:90%}.o_evaluation_editor_form .o_slider_top{margin-top:23px}.o_evaluation_editor_form .o_slider_buttons .pull-right div:not(:first-child){display:inline-block}.o_evaluation_editor_form .o_slider_buttons .pull-right .btn{margin-top:-3px}.o_evaluation_editor_form .o_slider_weight{max-width:40px}@media (max-width: 768px){.o_evaluation_form .o_evaluation_left_label{text-align:left;margin-bottom:0.5em}.o_evaluation_form .o_evaluation_right_label{text-align:right}.o_evaluation_form .o_evaluation_no_response{text-align:left}.o_evaluation_form .o_evaluation_no_response .o_evaluation_no_resp_value{font-weight:bold}.o_evaluation_form .o_slider{margin-bottom:2em}.o_evaluation_form .o_slider div{padding-left:0}.o_evaluation_form .o_slider .o_evaluation_no_response{margin-top:0.7em}}@media (min-width: 768px){.o_evaluation_form .o_evaluation_no_resp_value{display:none}}@media print{.o_evaluation_discrete_radio .o_slider .o_evaluation_steps div.radio{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#f9f9f9 !important}.o_icon_rubric_insufficient::before{color:#d6001c !important}.o_icon_rubric_neutral::before{color:#f2af40 !important}.o_icon_rubric_sufficient::before{color:#78be20 !important}}.o_eva_report_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_eva_report_print #o_print_brand img{width:100%}.o_eva_report_print .o_eva_content{margin-top:4em}.o_eva_report_print .o_eva_overview .panel table{margin:0px 0px 1px 0px}.o_eva_report_print .o_evaluation_duration,.o_eva_report_print .o_participated_users{display:none}.o_surv_run.withCmds .o_eva_report{margin-top:-44px}.o_eva_report .o_eva_overview .o_eva_rubric .table{margin-top:5px}.o_eva_report .o_ed_rubrictablehandler .o_table_footer{font-weight:bold}.o_eva_report .o_rubric_avg{font-weight:bold;white-sprace:nowrap}.o_eva_report .o_rubric_table .o_table_wrapper{margin-bottom:10px}.o_eva_report .o_rubric_table_legend{display:block}.o_eva_report .o_rubric_table_legend .ident{font-weight:bold}.o_eva_report .o_rubric_table_legend .list-inline{margin-bottom:0px}.o_eva_report .o_rubric_table_legend.o_last{margin-bottom:15px}.o_evaluation_execution .o_evaluation_anonymous_info{display:inherit}.o_qual_main .o_labeled.o_qual_dc_status_preparation,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_preparation{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_ready,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_ready{background-color:#ffd351;border-color:#ffd351;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_running,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_running{background-color:#933;border-color:#933;color:#fff}.o_qual_main .o_labeled.o_qual_dc_status_finished,.o_qual_main .o_toolbar .o_tools_container a.o_labeled.o_qual_dc_status_finished{background-color:#14892c;border-color:#14892c;color:#fff}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_preparation{background-color:#384e64}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_ready{background-color:#ffc61e}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_running{background-color:#732626}.o_qual_main .o_toolbar .o_tools_container a.o_labeled:hover.o_qual_dc_status_finished{background-color:#0e5c1e}.o_qual_main .o_qual_dc_list tbody tr td:nth-child(1){padding-top:3px}.o_qual_main .o_labeled_light.o_qual_dc_status_preparation_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_preparation_light{border-color:#4a6785;color:#4a6785}.o_qual_main .o_labeled_light.o_qual_dc_status_ready_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_ready_light{border-color:#ffd351;color:#333}.o_qual_main .o_labeled_light.o_qual_dc_status_running_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_running_light{border-color:#933;color:#933}.o_qual_main .o_labeled_light.o_qual_dc_status_finished_light,.o_qual_main .o_toolbar .o_tools_container a.o_labeled_light.o_qual_dc_status_finished_light{border-color:#14892c;color:#14892c}.o_qual_main .o_qual_exec_list tbody tr td:nth-child(1){padding-top:3px}.o_qual_main .o_qual_exec_status_future_light{border-color:#4a6785;color:#4a6785}.o_qual_main .o_qual_exec_status_ready_light{border-color:#ffd351;color:#333}.o_qual_main .o_qual_exec_status_participating_light{border-color:#933;color:#933}.o_qual_main .o_qual_exec_status_participated_light{border-color:#14892c;color:#14892c}.o_qual_main .o_qual_exec_status_over_light{border-color:#aaa;color:#aaa}.o_qual_execute_header .o_qual_context_table,.o_qual_report_header .o_qual_context_table{margin-bottom:0}.o_qual_execute_header .o_qual_context_table th,.o_qual_report_header .o_qual_context_table th{width:40%;border-top:none;padding:4px 8px}.o_qual_execute_header .o_qual_context_table td,.o_qual_report_header .o_qual_context_table td{width:60%;border-top:none;padding:4px 8px}.o_qual_ana_table .o_table_body{padding:0}.o_qual_ana_filter .o_date_range{margin-bottom:0px}.o_qual_ana_filter .o_date_range .control-label{margin-bottom:5px}.o_qual_ana_filter .o_date_range .o_date{margin-bottom:15px;padding-right:12px}.o_qual_ana_filter .o_date_range .o_date_range_from{padding-right:12px}.o_qual_ana_filter .o_date_range .o_date_range_to{padding-right:0px}.o_qual_hm_basecolor{background-color:#337ab7}.o_qual_hm .o_circle_container{display:flex}.o_qual_hm .o_circle_box{display:flex;align-items:center;justify-content:center}.o_qual_hm .o_circle{border-radius:50%}.o_qual_hm .o_circle.o_rubric_insufficient{background-color:#d6001c !important}.o_qual_hm .o_circle.o_rubric_neutral{background-color:#f2af40 !important}.o_qual_hm .o_circle.o_rubric_sufficient{background-color:#78be20 !important}.o_qual_hm .o_avg{display:flex;align-items:center;margin-left:5px}.o_qual_trend_invisible{visibility:hidden}.o_qual_trend .o_qual_ana_trend_up{transform:rotate(315deg);-webkit-transform:rotate(315deg);-moz-transform:rotate(315deg);-ms-transform:rotate(315deg);-o-transform:rotate(315deg)}.o_qual_trend .o_qual_ana_trend_down{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.o_qual_trend .o_rubric_insufficient{color:#d6001c}.o_qual_trend .o_rubric_neutral{color:#f2af40}.o_qual_trend .o_rubric_sufficient{color:#78be20}.o_qual_trend .o_qual_ana_unrated{color:#337ab7}.o_qual_filtered_print #o_print_brand{position:absolute;top:1cm;right:1cm;width:5cm;height:4cm}.o_qual_filtered_print #o_print_brand img{width:100%}.o_qual_filtered_print .o_qual_content{margin-top:4em}.o_qual_filtered_print .o_groupby_config,.o_qual_filtered_print .o_slider_trend_config,.o_qual_filtered_print .o_qual_hm tr td:last-child,.o_qual_filtered_print .o_qual_hm tr th:last-child{display:none}.o_evaluation_bar_chart_legend{padding:5px}.o_evaluation_bar_chart_legend li{font-size:90%}.o_evaluation_bar_chart_legend .ident{font-weight:bold}@media (max-width: 768px){.o_hm_group_select{padding-bottom:12px}.o_hm_panel_body{margin-bottom:-12px}}@media (min-width: 768px){.o_hm_trend_row{padding-top:12px}}@media print{.o_qual_hm .o_circle{-webkit-print-color-adjust:exact;color-adjust:exact}.o_qual_hm .o_circle.o_rubric_insufficient{background-color:#d6001c !important}.o_qual_hm .o_circle.o_rubric_neutral{background-color:#f2af40 !important}.o_qual_hm .o_circle.o_rubric_sufficient{background-color:#78be20 !important}.o_qual_hm .o_circle.o_qual_hm_basecolor{background-color:#337ab7 !important}.o_qual_trend{-webkit-print-color-adjust:exact;color-adjust:exact}.o_qual_trend .o_rubric_insufficient::before{color:#d6001c !important}.o_qual_trend .o_rubric_neutral::before{color:#f2af40 !important}.o_qual_trend .o_rubric_sufficient::before{color:#78be20 !important}.o_qual_trend .o_qual_ana_unrated::before{color:#337ab7 !important}}.o_cit{position:relative;margin:10px 0}.o_cit blockquote.o_quote{color:#555;font-size:18px;margin-top:6px;margin-bottom:0;padding:0 12px;font-style:italic;padding:5px 5px 0;border:0}.o_cit blockquote.o_quote p:last-child:after{content:'1)';top:-0.5em;font-size:75%;line-height:0;position:relative;vertical-align:baseline}.o_cit .o_cit_bibinfo{font-size:90%;margin-left:1em;position:relative}.o_cit .o_cit_bibinfo>div:first-child:before{content:'1)';position:absolute;top:0.5em;left:-1em;font-size:75%;line-height:0;vertical-align:baseline}.o_cit .title,.o_cit .url,.o_cit .authors,.o_cit .pages,.o_cit .date,.o_cit .dateAdded,.o_cit .place,.o_cit .institution,.o_cit .issue,.o_cit .publisher,.o_cit .publicationTitle,.o_cit .edition,.o_cit .series,.o_cit .volume{margin-right:0.5em}.o_cit .title{font-style:italic}.o_cit .publicationTitle{color:black}.o_cit .links{padding-left:2em}.o_cit .notes{padding-left:2em;color:grey}.o_cit .note{font-style:italic}.o_cit .note p:first-child{margin-top:0}.o_cit .note p:first-child{margin-bottom:0}.o_cit .listing.web .item{padding-left:0;text-indent:0}.o_cit .listing.web .title{display:block;font-weight:bold;font-style:normal}.o_cit .listing.web .publicationTitle{display:block;font-style:italic}.o_cit .listing.web .url{display:block}.o_cit .listing.web .links{padding-left:0}.o_cit .listing.web .notes{padding-left:0}.o_cit .general-info{border-top:1px solid #eee;padding-top:30px;margin-top:30px}.o_cit .copyright{display:none}@media print{.o_cit blockquote.o_quote{page-break-inside:avoid}}.o_video_poster{position:relative;display:inline-block;width:400px;max-width:100%;height:225px;background-size:cover;background-repeat:no-repeat;border:1px solid #eee}.o_video_poster_select{text-align:center}.o_video_poster_select .o_video_poster{margin:5px}.o_video_poster_select .o_video_poster a{position:absolute;left:0;top:0;width:100%;height:100%}.o_video_poster_select .o_video_poster a span{position:absolute;bottom:0;width:100%;display:block;line-height:3em;background:#f8f8f8;opacity:0.8}.o_video_poster_select .o_video_poster a:hover{border:1px solid #bbb}.o_video_poster_select .o_video_poster a:hover span{opacity:0.9}.o_video_peekview{text-align:center}.o_video_listing .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_video_listing .o_video_entry{position:relative;display:inline-block;height:230px;width:250px;vertical-align:top;margin-right:10px}.o_video_listing .o_video_poster{width:250px;max-width:100%;height:140px;border:1px solid #eee}.o_video_listing .o_timecode{position:absolute;bottom:2px;right:3px;padding:3px 4px;background:#333;color:#fff;font-size:12px;line-height:12px}.o_video_listing .o_meta{padding:2px;font-size:11px}.o_video_listing .o_meta h5{font-size:14px;margin-top:0;margin-bottom:5px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o_video_listing .o_date{margin-left:10px;display:inline-block}.o_video_listing .o_date:before{content:'\002022';margin-right:10px;display:inline-block}.o_video_run h1{font-size:1.8rem;font-weight:normal}.o_video_run .o_author{margin-top:0.5em;margin-bottom:1em;line-height:normal;font-size:90%;color:#3c763d}.o_video_run .o_ratings_and_comments{margin-top:2em;border-top:1px solid #eee;padding-top:1em}.o_video_chapter_editor .o_table_wrapper.o_table_flexi .table,.o_video_marker_editor .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_video_marker_editor .o_video_question.mejs__overlay{overflow:scroll}.o_video_question.mejs__overlay.o_video_large_question{align-items:flex-start;padding:1em 1em 0 1em;z-index:5}.o_video_question.mejs__overlay.o_video_large_question #o_qti_container{border:1px solid #eee}.o_video_marker{position:absolute;background-color:#efefef;opacity:0.85;border-left:3px solid #a6a6a6;padding:5px}.o_video_marker.o_video_marker_gray{border-left-color:#333}.o_video_marker.o_video_marker_blue{border-left-color:#bce8f1}.o_video_marker.o_video_marker_green{border-left-color:#78be20}.o_video_marker.o_video_marker_yellow{border-left-color:#f2af40}.o_video_marker.o_video_marker_red{border-left-color:#d6001c}.o_video_question.mejs__overlay{width:100%;height:100%;background-color:rgba(255,255,255,0.5)}.o_video_question #itemBody,.o_video_question .modalFeedback{background-color:white;opacity:1.0}.o_video_question .o_assessmentitem_wrapper .o_qti_item_body{min-height:50px}.o_video_question #o_qti_assessment_test_timer{border:none;padding:5px;margin:0}.o_video_question #o_qti_progress .progress{height:10px}.o_video_question #o_qti_container{background-color:white;padding:5px;border-radius:3px}.o_video_question .o_sel_additional_feedback{float:left;font-size:26px}.o_video_question .o_sel_additional_feedback .o_icon_passed{color:#78be20}.o_video_question .o_sel_additional_feedback .o_icon_failed{color:#d6001c}.mejs__time-rail .o_video_marker_gray{background:#333}.mejs__time-rail .o_video_marker_blue{background:#bce8f1}.mejs__time-rail .o_video_marker_green{background:#78be20}.mejs__time-rail .o_video_marker_yellow{background:#f2af40}.mejs__time-rail .o_video_marker_red{background:#d6001c}.mejs__controls .mejs__sourcechooser-button>button{background:transparent;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.mejs__controls .mejs__sourcechooser-button>button:before{content:"";color:white;font-size:18px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector{visibility:visible !important;width:170px;padding-left:10px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label{font-weight:normal;font-size:10px;width:140px}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label:hover{color:#eee}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li label .type{display:none}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li input{visibility:hidden;margin:0;width:0}.mejs__controls .mejs__sourcechooser-button .mejs__sourcechooser-selector ul li input:checked+label{color:#d6001c}.mejs__controls .mejs__captions-button .mejs__captions-selector{right:-26px}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label{font-weight:normal;font-size:10px}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label:hover{color:#eee}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li label .type{display:none}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li input{visibility:hidden;margin:0;width:0}.mejs__controls .mejs__captions-button .mejs__captions-selector ul li input:checked+label{color:#d6001c}.mejs__button.mejs__speed-button{width:36px}.mejs__controls .mejs__speed-button>button{background:transparent;width:36px;margin:11px 0 0 0;font-size:11px;line-height:normal;color:#ffffff}.mejs__controls .mejs__speed-button .mejs__speed-selector{height:150px;top:auto;bottom:40px}.mejs__controls .mejs__speed-button .mejs__speed-selector ul li label{font-weight:normal;font-size:10px}.mejs__chapters .mejs__chapter .mejs__chapter-block .ch-title,.mejs__chapters .mejs__chapter .mejs__chapter-block .ch-time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.mejs__time-marker{background-color:#a6a6a6}.o_userbulk_changedcell{font-style:italic;font-weight:bold}.o_qpool_source_status{text-align:center}.o_qitem_author{white-space:nowrap}a.o_qpool_status{margin:0 2px 2px 2px;text-align:left}.o_labeled.o_qpool_status_draft,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_draft{background-color:#4a6785;border-color:#4a6785;color:#fff}.o_labeled.o_qpool_status_review,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_review{background-color:#ffd351;border-color:#ffd351;color:#fff}.o_labeled.o_qpool_status_revised,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_revised{background-color:#933;border-color:#933;color:#fff}.o_labeled.o_qpool_status_finalVersion,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_finalVersion{background-color:#14892c;border-color:#14892c;color:#fff}.o_labeled.o_qpool_status_endOfLife,.o_toolbar .o_tools_container a.o_labeled.o_qpool_status_endOfLife{background-color:#aaa;border-color:#aaa;color:#fff}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_draft{background-color:#384e64}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_review{background-color:#ffc61e}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_revised{background-color:#732626}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_finalVersion{background-color:#0e5c1e}.o_toolbar .o_tools_container a.o_labeled:hover.o_qpool_status_endOfLife{background-color:#919191}.o_labeled_light.o_qpool_status_draft_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_draft_light{border-color:#4a6785;color:#4a6785}.o_labeled_light.o_qpool_status_review_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_review_light{border-color:#ffd351;color:#333}.o_labeled_light.o_qpool_status_revised_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_revised_light{border-color:#933;color:#933}.o_labeled_light.o_qpool_status_finalVersion_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_finalVersion_light{border-color:#14892c;color:#14892c}.o_labeled_light.o_qpool_status_endOfLife_light,.o_toolbar .o_tools_container a.o_labeled_light.o_qpool_status_endOfLife_light{border-color:#aaa;color:#aaa}.btn-arrow-right.o_qpool_qitem_draft{background:#f8f8f8;border-bottom-color:#4a6785;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_review{background:#f8f8f8;border-bottom-color:#ffd351;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_revised{background:#f8f8f8;border-bottom-color:#933;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_final{background:#f8f8f8;border-bottom-color:#14892c;border-bottom-width:3px}.btn-arrow-right.o_qpool_qitem_end_of_life{background:#f8f8f8;border-bottom-color:#aaa;border-bottom-width:3px}.btn-arrow-right.o_qpool_status_slected{background-color:#e7e7e7;color:#555}.btn-arrow-right,.btn-arrow-left{position:relative;padding-left:18px;padding-right:18px;margin-bottom:5px}.btn-arrow-right{padding-left:36px}.btn-arrow-left{padding-right:36px}.btn-arrow-right:before,.btn-arrow-right:after,.btn-arrow-left:before,.btn-arrow-left:after{content:"";position:absolute;top:5px;width:22.627417px;height:22.627417px;background:inherit;border:inherit;border-left-color:transparent;border-bottom-color:transparent;border-radius:0px 4px 0px 0px;-webkit-border-radius:0px 4px 0px 0px;-moz-border-radius:0px 4px 0px 0px}.btn-arrow-right:before,.btn-arrow-right:after{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-transform:rotate(45deg)}.btn-arrow-left:before,.btn-arrow-left:after{transform:rotate(225deg);-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-o-transform:rotate(225deg);-ms-transform:rotate(225deg)}.btn-arrow-right:before,.btn-arrow-left:before{left:-11px}.btn-arrow-right:after,.btn-arrow-left:after{right:-11px}.btn-arrow-right:after,.btn-arrow-left:before{z-index:1}.btn-arrow-right:before,.btn-arrow-left:after{background-color:white}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;border-top:50px solid transparent;border-bottom:70px solid transparent;background:url("images/infinite.jpg");background-size:cover;background-position:center center;background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=1 )}body.o_dmz #o_bg:after{content:" ";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left, rgba(255,255,255,0) 0.2%, rgba(255,255,255,0.3) 60%, rgba(255,255,255,0.5) 100%);background-size:cover;background-position:center center;background-repeat:no-repeat}body.o_dmz #o_toplink{display:none}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;padding-right:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#342c24}.o_login .o_login_intro .lead{color:#2d2926}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#342c24}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#f2af40;border-color:#f2af40;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#ef9b10;border-color:#e59510}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#f2af40;border-color:#f2af40}.o_login .o_login_register .badge{color:#f2af40;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social .btn-default.o_sel_auth_facebook{color:#fff;background-color:#4568b2;border-color:#3e5da0}.o_login .o_login_social .btn-default.o_sel_auth_facebook:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_facebook.dropdown-toggle{color:#fff;background-color:#37538d;border-color:#2d4374}.o_login .o_login_social .btn-default.o_sel_auth_facebook:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_facebook.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled],.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_facebook[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_facebook.active{background-color:#4568b2;border-color:#3e5da0}.o_login .o_login_social .btn-default.o_sel_auth_facebook .badge{color:#4568b2;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_twitter{color:#fff;background-color:#2cc5ff;border-color:#13beff}.o_login .o_login_social .btn-default.o_sel_auth_twitter:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_twitter.dropdown-toggle{color:#fff;background-color:#00b4f8;border-color:#009ad4}.o_login .o_login_social .btn-default.o_sel_auth_twitter:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_twitter.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled],.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_twitter[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_twitter.active{background-color:#2cc5ff;border-color:#13beff}.o_login .o_login_social .btn-default.o_sel_auth_twitter .badge{color:#2cc5ff;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_google{color:#fff;background-color:#e15f4f;border-color:#dd4b39}.o_login .o_login_social .btn-default.o_sel_auth_google:hover,.o_login .o_login_social .btn-default.o_sel_auth_google:focus,.o_login .o_login_social .btn-default.o_sel_auth_google.focus,.o_login .o_login_social .btn-default.o_sel_auth_google:active,.o_login .o_login_social .btn-default.o_sel_auth_google.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_google.dropdown-toggle{color:#fff;background-color:#d83825;border-color:#ba3120}.o_login .o_login_social .btn-default.o_sel_auth_google:active,.o_login .o_login_social .btn-default.o_sel_auth_google.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_google.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_google.disabled,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_google.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled],.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_google[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_google.active{background-color:#e15f4f;border-color:#dd4b39}.o_login .o_login_social .btn-default.o_sel_auth_google .badge{color:#e15f4f;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_linkedin{color:#fff;background-color:#0181bd;border-color:#0170a4}.o_login .o_login_social .btn-default.o_sel_auth_linkedin:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_linkedin.dropdown-toggle{color:#fff;background-color:#015e8a;border-color:#014667}.o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_linkedin.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled],.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_linkedin[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_linkedin.active{background-color:#0181bd;border-color:#0170a4}.o_login .o_login_social .btn-default.o_sel_auth_linkedin .badge{color:#0181bd;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_adfs{color:#fff;background-color:#209d9e;border-color:#1c8889}.o_login .o_login_social .btn-default.o_sel_auth_adfs:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_adfs.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_login .o_login_social .btn-default.o_sel_auth_adfs:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_adfs.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled],.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_adfs[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_adfs.active{background-color:#209d9e;border-color:#1c8889}.o_login .o_login_social .btn-default.o_sel_auth_adfs .badge{color:#209d9e;background-color:#fff}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect{color:#fff;background-color:#209d9e;border-color:#1c8889}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.dropdown-toggle{color:#fff;background-color:#177374;border-color:#115556}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active,.open>.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.dropdown-toggle{background-image:none}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled.focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.disabled.active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled],.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:hover,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled].focus,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled]:active,.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect[disabled].active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:hover,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.focus,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect:active,fieldset[disabled] .o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect.active{background-color:#209d9e;border-color:#1c8889}.o_login .o_login_social .btn-default.o_sel_auth_OpenIDConnect .badge{color:#209d9e;background-color:#fff}.o_old_browser{display:none}.o_browser_ie10 .o_old_browser{display:block}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fcfcfc;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:""}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_catalog_title h2,.o_library_catalog_title h3,.o_library_catalog_title h4,.o_library_catalog_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_catalog_title h2{margin-top:0}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_library .o_ratings_and_comments .o_rating_title,.o_library .o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #209d9e !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_useradmin .o_user_infos .o_user_infos_inner{margin-right:45px}div.o_skype_button{display:inline-block}div.o_skype_button p{margin:0 0 0 0}div.o_skype_button p a img{margin:0 !important;vertical-align:middle !important}.o_useradmin div#o_main_toolbar.o_toolbar{margin-top:0px}.o_members_pagination{text-align:center}.o_bcard_logo{margin-left:10px;height:66px}.o_bcard_title_with_logo{clear:both;padding:20px 0 0 0}.o_visitingcard_image,.o_visitingcard_logo{height:66px}.o_visitingcard .o_icon_visitingcard{display:none}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}.o_visitingcard_image,.o_visitingcard_logo{height:50px}.o_visitingcard_logo,.o_bcard_logo{height:50px;margin:5px 0 0 5px}.o_visitingcard_logo img,.o_bcard_logo img{position:relative;transform:scale(.7575757576);top:-8px}}@media (max-width: 414px){.o_visitingcard_logo img{max-width:260px}}@media (max-width: 375px){.o_visitingcard_logo img{max-width:220px}}@media (max-width: 320px){.o_visitingcard_logo img{max-width:180px}.o_bcard_logo img{max-width:150px}}.o_gta_coach_selection .o_noti{display:inline-block;float:none;margin:0}.o_gta_coach_selection .o_gta_coach_selection_bar{position:relative}.o_gta_coach_selection .o_gta_coach_selection_bar .o_noti{position:absolute;top:3px;right:0}p.o_gta_reopen_warning{margin-top:-20px}.o_lecture_authorized_absence div.form-inline,.o_lecture_authorized_absence div.o_navbar-form{display:inline}.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_date,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_startTime,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_endTime,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_details,.o_lectures_teacher_overview .o_table_wrapper.o_table_flexi .table thead th.o_col_tools{width:1%}.o_lectures_teacher_overview .o_lectures_current_wrapper{border:1px solid transparent;background:#f8f8f8;border-radius:4px;margin:10px -10px 20px -10px;padding:10px}.o_lectures_teacher_overview .o_lectures_current_wrapper .o_button_group{margin-bottom:0}.o_lectures_teacher_overview .o_lectures_teacher_search .o_form .o_date{padding-right:10px;position:relative}.o_lectures_teacher_overview .o_lectures_teacher_search div.o_chelp_wrapper_and_buttons{position:absolute;top:0;right:0}.o_header_with_buttons .o_day_chooser{position:relative;float:right}.o_lectures_rollcall legend{margin-bottom:10px}.o_lectures_rollcall .o_desc,.o_lectures_rollcall .o_preparation{margin:0}.o_rollcall_next_previous_group{text-align:center}.o_rollcall_next_previous_group a.o_sel_close{float:left}.o_rollcall_next_previous_group a.o_sel_close span{display:none}.o_rollcall_next_previous_group .form-control{display:inline;width:auto}@media (max-width: 767px){.o_rollcall_next_previous_group a span{display:none}}.o_lecture_free{color:#777}.o_rollcall_portrait>div{margin:0 auto 10px auto;width:100px}.o_edubase_pv{overflow:hidden;padding-top:10px}.o_edubase_pv_fig{display:inline-block;vertical-align:top;width:110px;margin-right:3%}.o_edubase_run_enabled .o_edubase_page{font-size:12px;color:#777}.o_edubase_run_disabled .o_edubase_booksection{margin-right:3%;margin-bottom:3%;width:177px;display:inline-table}.o_edubase_run_disabled .o_edubase_page{font-size:12px;color:#777}.o_edubase_bs_buttons{padding-top:10px}.o_edubase_bs_book_id{margin-top:-2px}.o_edubase_bs_details{margin-left:-20px}.o_edubase_bs_details_label{visibility:hidden}.o_edubase_bs_cover object{margin-left:10px;margin-top:10px;height:120px}.o_edubase_bs_cover img{margin-left:10px;margin-top:10px;height:120px}.o_edubase_edit_books .o_icon_error{visibility:hidden}.o_edubase_edit_books .o_icon_help{margin-bottom:0px}.o_edubase_edit_books .row{margin-bottom:5px}.o_edusharing_container.o_in_iframe .edusharing_metadata_wrapper{margin-top:5px}.o_edusharing_container.o_in_iframe .edusharing_metadata.open{position:unset;margin:0;padding:0}.o_edusharing_container.o_in_iframe .edusharing_metadata.open:before{content:unset;border:unset;top:unset;position:unset;left:unset;width:unset;height:unset}.o_edusharing_container.o_hide_license .license{display:none}.o_edusharing_container.o_hide_infos .edusharing_metadata_wrapper{display:none}.o_edusharing_left{display:block;float:left;margin:5px 5px 5px 0}.o_edusharing_right{display:block;float:right;margin:5px 0 5px 5px}.o_edusharing_inline{display:inline-block;margin:0 5px}.o_edusharing_none{display:block;float:none;margin:5px 0}.eduContainer{width:180px;color:transparent}.edusharing_spinner_inner{width:30px;height:50px;display:inline-block}.edusharing_spinner1{background:url("../light/images/edusharing/hex1.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.1s;-moz-animation-delay:0.1s;animation-delay:0.1s}.edusharing_spinner2{background:url("../light/images/edusharing/hex2.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.25s;-moz-animation-delay:0.25s;animation-delay:0.25s}.edusharing_spinner3{background:url("../light/images/edusharing/hex3.svg");background-repeat:no-repeat;background-position:center;background-size:50px;width:50px;height:50px;-webkit-animation:spin 2s infinite ease-in;-moz-animation:spin 2s infinite ease-in;-ms-animation:spin 2s infinite ease-in;-o-animation:spin 2s infinite ease-in;animation:spin 2s infinite ease-in;-webkit-animation-delay:0.5s;-moz-animation-delay:0.5s;animation-delay:0.5s}@-webkit-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-moz-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-ms-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@-o-keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@keyframes spin{0%{transform:scale(1)}50%{transform:scale(0.5) rotate(90deg)}100%{transform:scale(1)}}body.o_doceditor_body{margin-bottom:0px}body.o_doceditor_body .o_container_offcanvas{max-width:100%}body.o_doceditor_body .container-fluid{padding-left:0px;padding-right:0px;margin-left:0px;margin-right:0px}body.o_doceditor_body #o_toplink{display:none}.o_doceditor{margin-top:10px}.o_doceditor .o_doceditor_config .nav button{margin-top:3px}.o_doceditor .navbar-collapse{border-top:0 !important}.o_doceditor .navbar-collapse.collapse{display:block !important}.o_doceditor .navbar-nav{margin:0}.o_doceditor .navbar-nav>li,.o_doceditor .navbar-nav{float:left !important}.o_doceditor .navbar-right{float:right !important}.o_doceditor .navbar-nav>li>.dropdown-menu{background-color:#f8f8f8;border-color:#e7e7e7;position:absolute;right:0;left:auto}.o_doceditor .navbar-nav>li>a{padding-top:10px !important;padding-bottom:10px !important;line-height:20px !important}.o_doceditor .o_collabora iframe,.o_doceditor .o_onlyoffice iframe,.o_doceditor .o_office365 iframe{width:100%;height:calc(100vh - 61px);height:calc(var(--doceditorvh, 1vh) * 100 - 61px);margin-top:10px;border-width:0px}.o_doceditor.o_web_document .o_collabora iframe,.o_doceditor.o_web_document .o_onlyoffice iframe,.o_doceditor.o_web_document .o_office365 iframe{width:100%;height:calc(100vh - 321px);height:calc(var(--doceditorvh, 1vh) * 100 - 321px);margin-top:10px;margin-bottom:10px;border-width:1px}.o_doceditor.o_web_document_edit .o_collabora iframe,.o_doceditor.o_web_document_edit .o_onlyoffice iframe,.o_doceditor.o_web_document_edit .o_office365 iframe{width:100%;height:calc(100vh - 276px);height:calc(var(--doceditorvh, 1vh) * 100 - 276px);margin-top:10px;margin-bottom:25px;border-width:1px}.o_doceditor .o_file_editor,.o_doceditor .o_doceditor_data_transfer{margin-right:15px;margin-left:15px}.o_web_content .o_doceditor{margin-top:0px}.o_taxonomy div#o_main_toolbar.o_toolbar{margin-top:0px}.o_taxonomy_listing.o_rendertype_custom .o_table_body.container-fluid{padding-right:0px;padding-left:0px}.o_taxonomy_listing.o_rendertype_custom .o_taxonomy_row{position:relative;display:inline-block;height:225px;width:450px;vertical-align:top;margin-right:10px}.o_taxonomy_listing.o_rendertype_custom .o_taxonomy_row ul{padding-left:2em}.ui-widget{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#342c24;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close span{display:none}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important;float:right}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px;overflow:auto;background:white !important}.ui-dialog .ui-dialog-titlebar{padding:4px 7px 4px 7px;background-color:#eee !important}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui{max-width:100vw;max-height:100vh}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}@media (max-width: 767px){.ui-dialog.o_modal-ui{height:100vh !important;width:100vw !important}.ui-dialog.o_modal-ui div.ui-dialog-content{height:90vh !important}}.ui-slider.ui-slider-horizontal.ui-widget-content{border-color:#aaa;background:#f9f9f9}.ui-slider.ui-slider-horizontal.ui-widget-content.ui-state-disabled{opacity:0.65}.o_has_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:1px solid #209d9e;background-image:none;background-color:#209d9e}.o_no_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:3px solid #209d9e;background-image:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #1c8889;background:#209d9e;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}.o_richtext_mce_without_path .mce-statusbar{border:none}.o_richtext_mce_without_path .mce-path{display:none !important}.o_richtext_mce_without_path .mce-menubtn.mce-fixed-width span{width:auto}.o_richtext_mce>.o_richtext_mce_modes{text-align:right;padding-right:4px}.o_richtext_mce>.o_richtext_mce_modes a{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}i.mce-ico.mce-i-media,i.mce-ico.mce-i-movie,i.mce-ico.mce-i-help,i.mce-ico.mce-i-gaptext,i.mce-ico.mce-i-gapnumerical,i.mce-ico.mce-i-hottext,i.mce-ico.mce-i-edit{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}i.mce-ico.mce-i-media:before{content:""}i.mce-ico.mce-i-movie:before{content:""}i.mce-ico.mce-i-gaptext:before{content:""}i.mce-ico.mce-i-gapnumerical:before{content:""}i.mce-ico.mce-i-hottext:before{content:""}i.mce-ico.mce-i-math:before{content:'\03A3'}i.mce-ico.mce-i-edit:before{content:""}i.mce-ico.mce-i-help{width:9px;height:9px;padding-top:1px}i.mce-ico.mce-i-help:before{content:"";color:white}.mce-tabs span.o_chelp_wrapper{float:right;margin:5px}.mce-wordcount:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);content:""}.mce-danger .mce-wordcount:after{color:#d6001c;content:""}.mce-statusbar.mce-danger{background-color:#f2dede}.mce-textbox.mce-danger{border-color:#ce8383;background-color:#f2dede}@media (max-width: 470px){.mce-foot .mce-container-body.mce-abs-layout{left:-337px}}div.o_table_search>span.twitter-typeahead{padding-top:5px}.tag.label.label-info{margin-right:3px}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_segments,.o_table_toolbar,.o_breadcrumb,.o_bookmark,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_container_offcanvas{max-width:100%;margin-left:5px;margin-right:5px}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}.o_print_break_after{clear:both;page-break-after:always}.btn{display:none}.o_form textarea,.o_form .form-control.textarea_disabled{-webkit-print-color-adjust:exact;color-adjust:exact;background:#fff !important;height:auto !important;color:#000 !important;resize:none}#o_comment_form_link,.o_comments form{display:none !important}.o_avatar{display:none}body.o_dmz{background:white !important;-webkit-print-color-adjust:exact;color-adjust:exact}.modal-content{border:0}.modal-header{display:none}.modal-body{padding:0}.modal-dialog{margin:0 !important;width:100% !important;height:100% !important;background:#fff !important;-webkit-print-color-adjust:exact;color-adjust:exact}.progress{page-break-inside:avoid;-webkit-print-color-adjust:exact;color-adjust:exact;background-color:rgba(0,0,0,0.1) !important;border:1px solid rgba(0,0,0,0.5)}.progress-bar{-webkit-print-color-adjust:exact;background-color:#000 !important;border:10px solid #000}.ui-slider.ui-slider-horizontal.ui-widget-content{-webkit-print-color-adjust:exact;color-adjust:exact;background:#f9f9f9 !important}.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{-webkit-print-color-adjust:exact;color-adjust:exact}.o_has_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{background-color:#209d9e !important}.o_no_value.ui-slider.ui-slider-horizontal.ui-widget-content .ui-slider-handle{border:none !important}.radial-progress{page-break-inside:avoid;-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#eee !important}.radial-progress .circle .mask .fill{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#000 !important}.radial-progress .inset{-webkit-print-color-adjust:exact;color-adjust:exact;background-color:#fff !important}.radial-progress .inset .bgIcon{opacity:0.3;transition:opacity 0.3}.radial-progress .inset .bgIcon:before,.radial-progress .inset .o_icon_progress_danger:before,.radial-progress .inset .o_icon_progress_success:before{opacity:0.3;transition:opacity 0.3;color:#777 !important}.radial-progress:not([data-progress="0"]) .inset .bgIcon{opacity:0.3;transition:opacity 0.3;color:#777 !important}body{margin:0;zoom:0.6}table,figure,figure{page-break-inside:avoid}h1,h2,h3,h4,.o_cal .fc-header-title h2,h5,h6{page-break-after:avoid}.o_disclaimer .o_disclaimer_content{max-height:none}}.o_highscore .o_position{text-align:center;font-size:1.2em;font-weight:bold}.o_highscore .o_position h2{font-size:3em;font-weight:700;line-height:1.2em}@media screen and (-webkit-min-device-pixel-ratio: 0){.o_highscore .o_position h2{background:linear-gradient(330deg, #e05252 0%, #99e052 25%, #52e0e0 50%, #9952e0 75%, #e05252 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline}.o_highscore .o_position h2:after{content:"\A";white-space:pre}}.o_highscore .o_position_relative{font-size:1em;font-weight:normal}.o_highscore .o_podium{position:relative;vertical-align:bottom;height:300px;margin-bottom:50px}.o_highscore .o_rank{width:30%;position:absolute;bottom:0;text-shadow:rgba(102,102,102,0.5) 0 -1px 0,rgba(255,255,255,0.6) 0 2px 1px}.o_highscore .o_rank:before{position:absolute;bottom:0;left:0;width:100%;text-align:center}.o_highscore .o_rank .o_name{position:absolute;top:100%;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:1em;text-shadow:none}.o_highscore .o_rank .o_score{color:#777;font-size:90%;width:100%;text-align:center;position:absolute;top:-20px;text-shadow:none}.o_highscore .o_rank .o_singleportrait{position:absolute;width:100%;text-align:center;top:-125px}.o_highscore .o_rank .o_rank_portraits{position:relative;left:0;top:-210px;height:180px;width:200px;text-align:center;vertical-align:bottom;display:table-cell}.o_highscore .o_rank .o_rank_portraits ul{display:inline-block}.o_highscore .o_rank .o_rank_portraits .o_portrait{margin:5px}.o_highscore .o_first{height:150px;left:30%;border:1px solid #d9d9d9;border-top-left-radius:4px;border-top-right-radius:4px;background:gold;background:-moz-linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);background:-webkit-linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);background:linear-gradient(top, #fff7cc 0%, #ffdf33 50%, gold 51%, #ffe766 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 )}.o_highscore .o_first:before{content:"1";font-size:700%;line-height:150px;color:#666}.o_highscore .o_second{height:100px;left:0;background:silver;background:-moz-linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);background:-webkit-linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);background:linear-gradient(top, #fff 0%, #dadada 50%, silver 51%, #f3f3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 );border-left:1px solid #d9d9d9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;border-top-left-radius:4px}.o_highscore .o_second:before{content:"2";font-size:500%;line-height:100px;color:#666}.o_highscore .o_third{height:80px;left:60%;background:#cd7f32;background:-moz-linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);background:-webkit-linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);background:linear-gradient(top, #f5e5d6 0%, #d7995b 50%, #cd7f32 51%, #e1b284 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='$basecolor', endColorstr='lighten($basecolor,20%)',GradientType=0 );border-right:1px solid #d9d9d9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;border-top-right-radius:4px}.o_highscore .o_third:before{content:"3";font-size:300%;line-height:80px;color:#666}.o_highscore .o_histogram{position:relative;bottom:-40px;margin-bottom:40px}.o_highscore .o_histogram .d3chart{width:100%;padding-top:50px;height:300px}.o_highscore .o_histogram .d3chart text{fill:#888}.o_highscore .o_histogram .d3chart .axis path,.o_highscore .o_histogram .d3chart .axis line{stroke:#888}.o_highscore .o_histogram .d3chart .o_myself{fill:#209d9e}.o_highscore .o_histogram .d3chart .o_myself:hover{fill:#29c7c8}.o_highscore .o_histogram .d3chart .o_other{fill:#777}.o_highscore .o_histogram .d3chart .o_other:hover{fill:#919191}.o_highscore .o_histogram .d3chart .o_empty{fill:#000}.o_listing .o_table_wrapper.o_table_flexi .table{margin-top:0}.o_listing table th:nth-of-type(1),.o_listing table th :nth-of-type(2){width:5em}.o_navbar-brand{background-image:url("images/OpenOlat_Logo_RGB.svg");background-position:-35px -62px;background-size:250px;background-repeat:no-repeat;height:50px;width:60px}#o_print_brand .o_navbar-brand{background-image:url("images/OpenOlat_Logo_RGB.svg")}.o_cmembers_print #o_print_brand{width:5cm}#o_body.o_dmz .o_navbar-brand{display:none}#o_body.o_dmz .o_login .o_login_intro{position:relative;text-align:center}#o_body.o_dmz .o_login .o_login_intro:before{content:' ';display:inline-block;background-image:url("images/OpenOlat_Logo_claim_RGB.svg");background-repeat:no-repeat;background-position:0px -110px;background-size:100%;width:400px;max-width:100%;height:90px}#o_body.o_dmz .o_login .o_login_intro h1{display:none}@media (min-width: 767px){#o_body.o_dmz #o_bg{background-position:top left;border-top:0;border-bottom:0}#o_body.o_dmz #o_navbar_wrapper{border:0}#o_body.o_dmz .o_login{background:rgba(255,255,255,0.8);width:480px;left:10%;padding:40px;border-radius:20px;position:relative}#o_body.o_dmz .o_login .o_login_intro{padding-top:120px}#o_body.o_dmz .o_login .o_login_intro:before{position:absolute;top:0;left:-25px;background-position:-40px -150px;background-size:510px;width:460px;height:110px}#o_body.o_dmz .o_infomessage_wrapper{background:rgba(255,255,255,0.8);left:500px;width:400px;top:-30px;width:400xp;position:absolute;border-radius:20px}#o_body.o_dmz #o_navbar_wrapper{background:transparent}#o_body.o_dmz .o_navbar-nav>li>a,#o_body.o_dmz #o_footer_wrapper a{color:#FFF}#o_body.o_dmz .o_navbar-nav>li>a:hover,#o_body.o_dmz #o_footer_wrapper a:hover{background-color:transparent}#o_body.o_dmz #o_footer_wrapper{background:linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.2) 40%, rgba(0,0,0,0.5) 100%);border:0;height:100px;padding-top:30px}#o_body.o_dmz #o_footer_container{background:transparent;color:#FFF}#o_body.o_dmz #o_share_social_container a{color:#209d9e}#o_body.o_dmz #o_share_social_container a:hover{color:#177374}}#o_footer_wrapper{border-top:1px solid #e6e6e6}
 /*# sourceMappingURL=theme.css.map */
diff --git a/src/main/webapp/static/themes/openolat/theme.css.map b/src/main/webapp/static/themes/openolat/theme.css.map
index f518b4fae850c24a5f9252e879b80f0f0052cc14..b8318a8c8a6619b047920b0483f88d2ce04186b9 100644
--- a/src/main/webapp/static/themes/openolat/theme.css.map
+++ b/src/main/webapp/static/themes/openolat/theme.css.map
@@ -1,6 +1,6 @@
 {
 "version": 3,
-"mappings": "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",
+"mappings": "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",
 "sources": ["fonts/_fonts.scss","../light/_license.scss","../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","../light/_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../bootstrap/stylesheets/bootstrap/_code.scss","../../bootstrap/stylesheets/bootstrap/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid-framework.scss","../../bootstrap/stylesheets/bootstrap/_tables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_table-row.scss","../../bootstrap/stylesheets/bootstrap/_forms.scss","../../bootstrap/stylesheets/bootstrap/mixins/_forms.scss","../../bootstrap/stylesheets/bootstrap/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","../../bootstrap/stylesheets/bootstrap/_component-animations.scss","../../bootstrap/stylesheets/bootstrap/_dropdowns.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-divider.scss","../../bootstrap/stylesheets/bootstrap/mixins/_reset-filter.scss","../../bootstrap/stylesheets/bootstrap/_button-groups.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../bootstrap/stylesheets/bootstrap/_input-groups.scss","../../bootstrap/stylesheets/bootstrap/_navs.scss","../../bootstrap/stylesheets/bootstrap/_navbar.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-vertical-align.scss","../../bootstrap/stylesheets/bootstrap/_breadcrumbs.scss","../../bootstrap/stylesheets/bootstrap/_pagination.scss","../../bootstrap/stylesheets/bootstrap/mixins/_pagination.scss","../../bootstrap/stylesheets/bootstrap/_pager.scss","../../bootstrap/stylesheets/bootstrap/_labels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_labels.scss","../../bootstrap/stylesheets/bootstrap/_badges.scss","../../bootstrap/stylesheets/bootstrap/_jumbotron.scss","../../bootstrap/stylesheets/bootstrap/_thumbnails.scss","../../bootstrap/stylesheets/bootstrap/_alerts.scss","../../bootstrap/stylesheets/bootstrap/mixins/_alerts.scss","../../bootstrap/stylesheets/bootstrap/_progress-bars.scss","../../bootstrap/stylesheets/bootstrap/mixins/_gradients.scss","../../bootstrap/stylesheets/bootstrap/mixins/_progress-bar.scss","../../bootstrap/stylesheets/bootstrap/_media.scss","../../bootstrap/stylesheets/bootstrap/_list-group.scss","../../bootstrap/stylesheets/bootstrap/mixins/_list-group.scss","../../bootstrap/stylesheets/bootstrap/_panels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_panels.scss","../../bootstrap/stylesheets/bootstrap/_responsive-embed.scss","../../bootstrap/stylesheets/bootstrap/_wells.scss","../../bootstrap/stylesheets/bootstrap/_close.scss","../../bootstrap/stylesheets/bootstrap/_modals.scss","../../bootstrap/stylesheets/bootstrap/_tooltip.scss","../../bootstrap/stylesheets/bootstrap/_popovers.scss","../../bootstrap/stylesheets/bootstrap/_utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_center-block.scss","../../bootstrap/stylesheets/bootstrap/mixins/_hide-text.scss","../../bootstrap/stylesheets/bootstrap/_responsive-utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_responsive-visibility.scss","../light/modules/_bootstrap.scss","../light/modules/_fonts.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","../../font-awesome/scss/_larger.scss","../../font-awesome/scss/_fixed-width.scss","../../font-awesome/scss/_list.scss","../../font-awesome/scss/_variables.scss","../../font-awesome/scss/_bordered-pulled.scss","../../font-awesome/scss/_animated.scss","../../font-awesome/scss/_rotated-flipped.scss","../../font-awesome/scss/_mixins.scss","../../font-awesome/scss/_stacked.scss","../light/modules/_icons.scss","_openolat_config.scss","../light/modules/_emoticons.scss","../light/modules/_helpers.scss","../light/modules/_type.scss","../light/modules/_content_embedded.scss","../light/modules/_mixins.scss","../light/modules/_tinymce.scss","../light/modules/_radial-progress.scss","../light/modules/_layout.scss","../light/modules/_main.scss","../light/modules/_footer.scss","../light/modules/_navbar.scss","../light/modules/_toolbar.scss","../light/modules/_offcanvas.scss","../light/modules/_dialog.scss","../light/modules/_tree.scss","../light/modules/_breadcrumb.scss","../light/modules/_form.scss","../light/modules/_table.scss","../light/modules/_im.scss","../light/modules/_flags.scss","../light/modules/_rating_and_comments.scss","../light/modules/_chart.scss","../light/modules/_forum.scss","../light/modules/_various_modules.scss","../light/modules/_autocomplete.scss","../light/modules/_search.scss","../light/modules/_wizard.scss","../light/modules/_process.scss","../light/modules/_cal.scss","../light/modules/_pagecontenteditor.scss","../light/modules/_coursesite.scss","../light/modules/_repository.scss","../light/modules/_course.scss","../light/modules/_curriculum.scss","../light/modules/_qti.scss","../light/modules/_qti21.scss","../light/modules/_devel.scss","../light/modules/_wiki.scss","../light/modules/_portfolio.scss","../light/modules/_portfoliomaps/_epmst_default.scss","../light/modules/_portfoliomaps/_mixins.scss","../light/modules/_portfoliomaps/_epmst_comic.scss","../light/modules/_portfoliomaps/_epmst_leather.scss","../light/modules/_portfoliomaps/_epmst_green.scss","../light/modules/_portfoliomaps/_epmst_green2.scss","../light/modules/_portfoliomaps/_epmst_green3.scss","../light/modules/_portfoliomaps/_epmst_green4.scss","../light/modules/_portfoliomaps/_epmst_red.scss","../light/modules/_portfoliomaps/_epmst_red2.scss","../light/modules/_portfoliomaps/_epmst_red3.scss","../light/modules/_portfoliomaps/_epmst_red4.scss","../light/modules/_portfoliomaps/_epmst_blue.scss","../light/modules/_portfoliomaps/_epmst_blue2.scss","../light/modules/_portfoliomaps/_epmst_blue3.scss","../light/modules/_portfoliomaps/_epmst_blue4.scss","../light/modules/_portfolio_v2.scss","../light/modules/_evaluation_form.scss","../light/modules/_quality.scss","../light/modules/_citation.scss","../light/modules/_video.scss","../light/modules/_admin.scss","../light/modules/_qpool.scss","../light/modules/_dmz.scss","../light/modules/_portal.scss","../light/modules/_library.scss","../light/modules/_translationtool.scss","../light/modules/_user.scss","../light/modules/_members.scss","../light/modules/_grouptask.scss","../light/modules/_lecture.scss","../light/modules/_edubase.scss","../light/modules/_edusharing.scss","../light/modules/_doceditor.scss","../light/modules/_taxonomy.scss","../light/modules/_thirdparty.scss","../light/modules/_print.scss","../light/modules/_highscore.scss","_openolat_theme.scss"],
 "names": [],
 "file": "theme.css"