text:
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using JetBrains.Annotations;
using JsonApiDotNetCore.Queries;
using JsonApiDotNetCore.Queries.Expressions;
using JsonApiDotNetCore.Resources;

namespace JsonApiDotNetCore.Repositories
{
    /// <inheritdoc />
    public interface IResourceReadRepository<TResource> : IResourceReadRepository<TResource, int>
        where TResource : class, IIdentifiable<int>
    {
    }

    /// <summary>
    /// Groups read operations.
    /// </summary>
    /// <typeparam name="TResource">
    /// The resource type.
    /// </typeparam>
    /// <typeparam name="TId">
    /// The resource identifier type.
    /// </typeparam>
    [PublicAPI]
    public interface IResourceReadRepository<TResource, in TId>
        where TResource : class, IIdentifiable<TId>
    {
        /// <summary>
        /// Executes a read query using the specified constraints and returns the collection of matching resources.
        /// </summary>
        Task<IReadOnlyCollection<TResource>> GetAsync(QueryLayer layer, CancellationToken cancellationToken);

        /// <summary>
        /// Executes a read query using the specified top-level filter and returns the top-level count of matching resources.
        /// </summary>
        Task<int> CountAsync(FilterExpression topFilter, CancellationToken cancellationToken);
    }
}


text:
layout: post
date: 2017-02-04
title: "Naeem Khan COSTA RICA CARDIGAN 2016 Spring 3/4 Sleeves Two Piece Wedding Dress"
category: Naeem Khan
tags: [Naeem Khan,Two Piece Wedding Dress ,V-neck,3/4 Sleeves,2016,Spring,Tulle]
---
### Naeem Khan COSTA RICA CARDIGAN
Just **$549.99**
### 2016 Spring 3/4 Sleeves   Two Piece Wedding Dress

BRANDS	Naeem Khan

Trend	Two Piece Wedding Dress

Neckline	V-neck

Sleeve	3/4 Sleeves

Years	2016

Season	Spring

Fabric	Tulle

Buy it: [https://www.readybrides.com/en/naeem-khan/9905-naeem-khan-costa-rica-cardigan.html](https://www.readybrides.com/en/naeem-khan/9905-naeem-khan-costa-rica-cardigan.html)

redpajama_set_name: RedPajamaGithub


text:
<?php
namespace Tango\Addon;

use Tango\Core\TangoException;

class Passport {

	public static function id(int $iUser = -1) {

		if ($iUser < 0) {
			$iUser = Session::id();
		}

		if ($iUser < 1) {
			throw new TangoException('user id error: ' . $iUser);
		}

		$sQuery = 'SELECT * FROM user WHERE user_id = ' . $iUser;

		$oDB = \Tango\Drive\DB::getInstance('passport');
		return $oDB->getRow($sQuery) ?: [];
	}

	public static function create() {

		$sQuery = 'INSERT INTO user '
			. 'SET ts_create = ' . $_SERVER['REQUEST_TIME'];

		$oDB = \Tango\Drive\DB::getInstance('passport');
		return $oDB->getInsertID($sQuery);
	}
}


text:
namespace Microsoft.DocAsCode.Build.Engine.Tests
{
    using System.Collections.Generic;
    using System.Linq;

    using Microsoft.DocAsCode.Tests.Common;

    using Xunit;

    [Trait("Owner", "lianwei")]
    [Trait("EntityType", "TemplateRenderer")]
    [Collection("docfx STA")]
    public class TemplateRendererLoaderUnitTest : TestBase
    {
        private readonly string _inputFolder;

        public TemplateRendererLoaderUnitTest()
        {
            _inputFolder = GetRandomFolder();
        }

        [Fact]
        public void TestLoaderWhenNoFileExists()
        {
            using var listener = new TestListenerScope("NoTemplate");
            var renderers = LoadAllRenderers();
            Assert.Empty(listener.Items);
            Assert.Empty(renderers);

            var file1 = CreateFile("a.js", string.Empty, _inputFolder);
            renderers = LoadAllRenderers();
            Assert.Empty(listener.Items);
            Assert.Empty(renderers);

            // only allows file under root folder
            var file2 = CreateFile("sub/a.tmpl", string.Empty, _inputFolder);
            renderers = LoadAllRenderers();
            Assert.Empty(listener.Items);
            Assert.Empty(renderers);

            var file3 = CreateFile("a.tmpl.js", string.Empty, _inputFolder);
            renderers = LoadAllRenderers();
            Assert.Empty(listener.Items);
            Assert.Empty(renderers);
        }

        [Fact]
        public void TestLoaderWithValidInput()
        {
            var file1 = CreateFile("a.tmpl", "{{name}}", _inputFolder);

            using var listener = new TestListenerScope("TestLoaderWithValidInput");
            var renderers = LoadAllRenderers();

            Assert.Empty(listener.Items);

            Assert.Single(renderers);
            var renderer = renderers[0];
            Assert.NotNull(renderer);

            var model = new { name = "model" };

            var output = renderer.Render(model);
            Assert.Equal("model", output);
        }

        [Fact]
        public void TestSingleFileLoaderWithValidInput()
        {
            var path = "a.tmpl";
            var file1 = CreateFile(path, "{{name}}", _inputFolder);

            using var listener = new TestListenerScope("TestLoaderWithValidInput");
            var renderer = Load(path);

            Assert.Empty(listener.Items);

            Assert.NotNull(renderer);

            var model = new { name = "model" };

            var output = renderer.Render(model);
            Assert.Equal("model", output);
        }

        private List<ITemplateRenderer> LoadAllRenderers()
        {
            var loader = new RendererLoader(new LocalFileResourceReader(_inputFolder), 64);
            return loader.LoadAll().ToList();
        }

        private ITemplateRenderer Load(string path)
        {
            var loader = new RendererLoader(new LocalFileResourceReader(_inputFolder), 64);
            return loader.Load(path);
        }
    }
}


text:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Linq;
using System.Globalization;
#if(UNITY_IOS || UNITY_IPHONE)
using Newtonsoft.Json.Aot;
#endif

namespace Newtonsoft.Json.Utilities
{
	internal static class StringUtils
	{
		public const string CarriageReturnLineFeed = "\r\n";
		public const string Empty = "";
		public const char CarriageReturn = '\r';
		public const char LineFeed = '\n';
		public const char Tab = '\t';

		public static string FormatWith(this string format, IFormatProvider provider, params object[] args)
		{
			ValidationUtils.ArgumentNotNull(format, "format");

			return string.Format(provider, format, args);
		}

		/// <summary>
		/// Determines whether the string contains white space.
		/// </summary>
		/// <param name="s">The string to test for white space.</param>
		/// <returns>
		/// 	<c>true</c> if the string contains white space; otherwise, <c>false</c>.
		/// </returns>
		public static bool ContainsWhiteSpace(string s)
		{
			if (s == null)
				throw new ArgumentNullException("s");

			for (int i = 0; i < s.Length; i++)
			{
				if (char.IsWhiteSpace(s[i]))
					return true;
			}
			return false;
		}

		/// <summary>
		/// Determines whether the string is all white space. Empty string will return false.
		/// </summary>
		/// <param name="s">The string to test whether it is all white space.</param>
		/// <returns>
		/// 	<c>true</c> if the string is all white space; otherwise, <c>false</c>.
		/// </returns>
		public static bool IsWhiteSpace(string s)
		{
			if (s == null)
				throw new ArgumentNullException("s");

			if (s.Length == 0)
				return false;

			for (int i = 0; i < s.Length; i++)
			{
				if (!char.IsWhiteSpace(s[i]))
					return false;
			}

			return true;
		}

		/// <summary>
		/// Ensures the target string ends with the specified string.
		/// </summary>
		/// <param name="target">The target.</param>
		/// <param name="value">The value.</param>
		/// <returns>The target string with the value string at the end.</returns>
		public static string EnsureEndsWith(string target, string value)
		{
			if (target == null)
				throw new ArgumentNullException("target");

			if (value == null)
				throw new ArgumentNullException("value");

			if (target.Length >= value.Length)
			{
				if (string.Compare(target, target.Length - value.Length, value, 0, value.Length, StringComparison.OrdinalIgnoreCase) ==
								0)
					return target;

				string trimmedString = target.TrimEnd(null);

				if (string.Compare(trimmedString, trimmedString.Length - value.Length, value, 0, value.Length,
								StringComparison.OrdinalIgnoreCase) == 0)
					return target;
			}

			return target + value;
		}

		public static bool IsNullOrEmptyOrWhiteSpace(string s)
		{
			if (string.IsNullOrEmpty(s))
				return true;
			else if (IsWhiteSpace(s))
				return true;
			else
				return false;
		}

		/// <summary>
		/// Perform an action if the string is not null or empty.
		/// </summary>
		/// <param name="value">The value.</param>
		/// <param name="action">The action to perform.</param>
		public static void IfNotNullOrEmpty(string value, Action<string> action)
		{
			IfNotNullOrEmpty(value, action, null);
		}

		private static void IfNotNullOrEmpty(string value, Action<string> trueAction, Action<string> falseAction)
		{
			if (!string.IsNullOrEmpty(value))
			{
				if (trueAction != null)
					trueAction(value);
			}
			else
			{
				if (falseAction != null)
					falseAction(value);
			}
		}

		/// <summary>
		/// Indents the specified string.
		/// </summary>
		/// <param name="s">The string to indent.</param>
		/// <param name="indentation">The number of characters to indent by.</param>
		/// <returns></returns>
		public static string Indent(string s, int indentation)
		{
			return Indent(s, indentation, ' ');
		}

		/// <summary>
		/// Indents the specified string.
		/// </summary>
		/// <param name="s">The string to indent.</param>
		/// <param name="indentation">The number of characters to indent by.</param>
		/// <param name="indentChar">The indent character.</param>
		/// <returns></returns>
		public static string Indent(string s, int indentation, char indentChar)
		{
			if (s == null)
				throw new ArgumentNullException("s");

			if (indentation <= 0)
				throw new ArgumentException("Must be greater than zero.", "indentation");

			StringReader sr = new StringReader(s);
			StringWriter sw = new StringWriter(CultureInfo.InvariantCulture);

			ActionTextReaderLine(sr, sw, delegate(TextWriter tw, string line)
			{
				tw.Write(new string(indentChar, indentation));
				tw.Write(line);
			});

			return sw.ToString();
		}

		private delegate void ActionLine(TextWriter textWriter, string line);

		private static void ActionTextReaderLine(TextReader textReader, TextWriter textWriter, ActionLine lineAction)
		{
			string line;
			bool firstLine = true;
			while ((line = textReader.ReadLine()) != null)
			{
				if (!firstLine)
					textWriter.WriteLine();
				else
					firstLine = false;

				lineAction(textWriter, line);
			}
		}

		/// <summary>
		/// Numbers the lines.
		/// </summary>
		/// <param name="s">The string to number.</param>
		/// <returns></returns>
		public static string NumberLines(string s)
		{
			if (s == null)
				throw new ArgumentNullException("s");

			StringReader sr = new StringReader(s);
			StringWriter sw = new StringWriter(CultureInfo.InvariantCulture);

			int lineNumber = 1;

			ActionTextReaderLine(sr, sw, delegate(TextWriter tw, string line)
			{
				tw.Write(lineNumber.ToString(CultureInfo.InvariantCulture).PadLeft(4));
				tw.Write(". ");
				tw.Write(line);

				lineNumber++;
			});

			return sw.ToString();
		}

		/// <summary>
		/// Nulls an empty string.
		/// </summary>
		/// <param name="s">The string.</param>
		/// <returns>Null if the string was null, otherwise the string unchanged.</returns>
		public static string NullEmptyString(string s)
		{
			return (string.IsNullOrEmpty(s)) ? null : s;
		}

		public static string ReplaceNewLines(string s, string replacement)
		{
			StringReader sr = new StringReader(s);
			StringBuilder sb = new StringBuilder();

			bool first = true;

			string line;
			while ((line = sr.ReadLine()) != null)
			{
				if (first)
					first = false;
				else
					sb.Append(replacement);

				sb.Append(line);
			}

			return sb.ToString();
		}

		public static string Truncate(string s, int maximumLength)
		{
			return Truncate(s, maximumLength, "...");
		}

		public static string Truncate(string s, int maximumLength, string suffix)
		{
			if (suffix == null)
				throw new ArgumentNullException("suffix");

			if (maximumLength <= 0)
				throw new ArgumentException("Maximum length must be greater than zero.", "maximumLength");

			int subStringLength = maximumLength - suffix.Length;

			if (subStringLength <= 0)
				throw new ArgumentException("Length of suffix string is greater or equal to maximumLength");

			if (s != null && s.Length > maximumLength)
			{
				string truncatedString = s.Substring(0, subStringLength);
				// incase the last character is a space
				truncatedString = truncatedString.Trim();
				truncatedString += suffix;

				return truncatedString;
			}
			else
			{
				return s;
			}
		}

		public static StringWriter CreateStringWriter(int capacity)
		{
			StringBuilder sb = new StringBuilder(capacity);
			StringWriter sw = new StringWriter(sb, CultureInfo.InvariantCulture);

			return sw;
		}

		public static int? GetLength(string value)
		{
			if (value == null)
				return null;
			else
				return value.Length;
		}

		public static string ToCharAsUnicode(char c)
		{
			char h1 = MathUtils.IntToHex((c >> 12) & '\x000f');
			char h2 = MathUtils.IntToHex((c >> 8) & '\x000f');
			char h3 = MathUtils.IntToHex((c >> 4) & '\x000f');
			char h4 = MathUtils.IntToHex(c & '\x000f');

			return new string(new[] { '\\', 'u', h1, h2, h3, h4 });
		}

		public static void WriteCharAsUnicode(TextWriter writer, char c)
		{
			ValidationUtils.ArgumentNotNull(writer, "writer");

			char h1 = MathUtils.IntToHex((c >> 12) & '\x000f');
			char h2 = MathUtils.IntToHex((c >> 8) & '\x000f');
			char h3 = MathUtils.IntToHex((c >> 4) & '\x000f');
			char h4 = MathUtils.IntToHex(c & '\x000f');

			writer.Write('\\');
			writer.Write('u');
			writer.Write(h1);
			writer.Write(h2);
			writer.Write(h3);
			writer.Write(h4);
		}

		public static TSource ForgivingCaseSensitiveFind<TSource>(this IEnumerable<TSource> source, Func<TSource, string> valueSelector, string testValue)
		{
			if (source == null)
				throw new ArgumentNullException("source");
			if (valueSelector == null)
				throw new ArgumentNullException("valueSelector");

#if !(UNITY_IOS || UNITY_IPHONE)
			var caseInsensitiveResults = source.Where(s => string.Compare(valueSelector(s), testValue, StringComparison.OrdinalIgnoreCase) == 0).ToArray();
			var resultCount = caseInsensitiveResults.Length;
#else
			var caseInsensitiveResults = new List<TSource>();
			source.ForEach(itm =>
							{
								if (string.Compare(valueSelector(itm), testValue, StringComparison.OrdinalIgnoreCase) == 0)
									caseInsensitiveResults.Add(itm);
							});
			var resultCount = caseInsensitiveResults.Count;
#endif

			if (resultCount <= 1)
			{
				return resultCount == 1 ? caseInsensitiveResults[0] : default(TSource);
			}
			else
			{
				//multiple results returned. now filter using case sensitivity
#if !(UNITY_IOS || UNITY_IPHONE)

				var caseSensitiveResults = source.Where(s => string.Compare(valueSelector(s), testValue, StringComparison.Ordinal) == 0);
				return caseSensitiveResults.SingleOrDefault();
#else
        var caseSensitiveResults = new List<TSource>();
        source.ForEach(itm =>
                       {
                           if (string.Compare(valueSelector(itm), testValue, StringComparison.Ordinal) == 0)
                               caseSensitiveResults.Add(itm);
                       });

        return caseSensitiveResults.Count > 0 ? caseSensitiveResults[0] : default(TSource);
#endif
			}
		}

		public static string ToCamelCase(string s)
		{
			if (string.IsNullOrEmpty(s))
				return s;

			if (!char.IsUpper(s[0]))
				return s;

			string camelCase = char.ToLower(s[0], CultureInfo.InvariantCulture).ToString(CultureInfo.InvariantCulture);
			if (s.Length > 1)
				camelCase += s.Substring(1);

			return camelCase;
		}
	}
}
#endif


text:
<?php

pb_backupbuddy::$ui->title( 'Multisite Import Site (EXPERIMENTAL)' . ' ' . pb_backupbuddy::video( '4RmC5nLmabE', __('Multisite import', 'it-l10n-backupbuddy' ), false ) );

pb_backupbuddy::$classes['core']->versions_confirm();

pb_backupbuddy::set_status_serial( 'ms_import' );

/*
// Used for drag & drop / collapsing boxes.
wp_enqueue_style('dashboard');
wp_print_styles('dashboard');
wp_enqueue_script('dashboard');
wp_print_scripts('dashboard');

wp_enqueue_script( 'thickbox' );
wp_print_scripts( 'thickbox' );
wp_print_styles( 'thickbox' );
// Handles resizing thickbox.
if ( !wp_script_is( 'media-upload' ) ) {
	wp_enqueue_script( 'media-upload' );
	wp_print_scripts( 'media-upload' );
}
wp_enqueue_script( 'backupbuddy-ms-export', $this->_parent->_pluginURL . '/js/ms.js', array( 'jquery' ) );
wp_print_scripts( 'backupbuddy-ms-export' );
*/

$action = isset( $_GET[ 'action' ] ) ? $_GET[ 'action' ] : false;
?>

For BackupBuddy Multisite documentation, please visit the BackupBuddy Multisite Codex.

<?php
//check_admin_referer( 'bbms-migration', 'pb_bbms_migrate' );
if ( !current_user_can( 'manage_sites' ) )
	wp_die( __( 'You do not have permission to access this page.','it-l10n-backupbuddy' ) );
//global $current_blog;
$errors = false;
$blog = $domain = $path = '';

// ********** BEGIN IMPORT OPTIONS **********
$import_options = array(
	'zip_id' => '',
	'extract_to' => '',

	'show_php_warnings' => false,
	'type' => 'zip',
	'skip_files' => false,
	'force_compatibility_slow' => false,
	'force_compatibility_medium' => true,
	'skip_database_import' => false,
);

// Set backup file.
if ( isset( $_POST[ 'backup_file' ] ) ) {
	$import_options['file'] = $_POST[ 'backup_file' ];
}
// ********** END IMPORT OPTIONS **********

$pluginbuddy_ms_import = new pluginbuddy_ms_import( $action, $import_options );

class pluginbuddy_ms_import {
	var $import_options;

	public function __construct( $action, $import_options ) {
		$this->import_options = $import_options;
		if ( ( $this->import_options['zip_id'] == '' ) && ( isset( $this->import_options['file'] ) ) ) {
			$this->import_options['zip_id'] = $this->get_zip_id( basename( $this->import_options['file'] ) );
		}

		// Detect max execution time for database steps so they can pause when needed for additional PHP processes.
		$this->detected_max_execution_time = str_ireplace( 's', '', ini_get( 'max_execution_time' ) );
		if ( is_numeric( $this->detected_max_execution_time ) === false ) {
			$this->detected_max_execution_time = 30;
		}

		// Set advanced options if they have been passed along.
		if ( isset( $_POST['global_options'] ) && ( $_POST['global_options'] != '' ) ) {
			$this->advanced_options = unserialize( base64_decode( $_POST['global_options'] ) );
		}

		$this->time_start = microtime( true );

		// Temporarily unzips into the main sites uploads temp
		$wp_uploads = wp_upload_dir();
		$this->import_options[ 'extract_to' ] = $wp_uploads[ 'basedir' ] . '/backupbuddy_temp/import_' . $this->import_options[ 'zip_id' ];

		global $current_blog;
		$import_steps = 8;

		switch( $action ) {
			case 'step2':
				echo '
Step 2 of ' . $import_steps . ': Create Site
';
				require( pb_backupbuddy::plugin_path() . '/controllers/pages/_ms_import/_step2.php' );
				break;
			case 'step3':
				echo '
Step 3 of ' . $import_steps . ': Unzipping Backup File
';
				require( pb_backupbuddy::plugin_path() . '/controllers/pages/_ms_import/_step3.php' );
				break;
			case 'step4':
				echo '
Step 4 of ' . $import_steps . ': Migrating Files (Media, Plugins, Themes, and more)
';
				require( pb_backupbuddy::plugin_path() . '/controllers/pages/_ms_import/_step4.php' );
				break;
			case 'step5':
				echo '
Step 5 of ' . $import_steps . ': Importing Database Content
';
				require( pb_backupbuddy::plugin_path() . '/controllers/pages/_ms_import/_step5.php' );
				break;
			case 'step6':
				echo '
Step 6 of ' . $import_steps . ': Migrating Database Content (URLs, Paths, and more)
';
				require( pb_backupbuddy::plugin_path() . '/controllers/pages/_ms_import/_step6.php' );
				break;
			case 'step7':
				echo '
Step 7 of ' . $import_steps . ': Migrating Users & Accounts
';
				require( pb_backupbuddy::plugin_path() . '/controllers/pages/_ms_import/_step7.php' );
				break;
			case 'step8':
				echo '
Step 8 of ' . $import_steps . ': Final Cleanup
';
				require( pb_backupbuddy::plugin_path() . '/controllers/pages/_ms_import/_step8.php' );
				break;
			default:
				//require( pb_backupbuddy::plugin_path() . '/classes/' . 'msimport_steps/step1.php' );
				echo '
Step 1 of ' . $import_steps . ': Select Backup & Site Address
';
				require( pb_backupbuddy::plugin_path() . '/controllers/pages/_ms_import/_step1.php' );
				break;
		} //end switch
	}

	function load_backup_dat() {
		$dat_file = $this->import_options[ 'extract_to' ] . '/wp-content/uploads/backupbuddy_temp/' . $this->import_options[ 'zip_id' ] . '/backupbuddy_dat.php';
		$this->_backupdata = $this->get_backup_dat( $dat_file );
	}

	function get_backup_dat( $dat_file ) {
		require_once( pb_backupbuddy::plugin_path() . '/classes/import.php' );
		$import = new pb_backupbuddy_import();

		return $import->get_dat_file_array( $dat_file );
	}

	function get_ms_option( $blogID, $option_name ) {
		global $wpdb;

		$sql = "SELECT option_value FROM `" . DB_NAME . "`.`" . $wpdb->get_blog_prefix( $blogID ) . "options` WHERE `option_name` = %s";
		$query = $wpdb->prepare( $sql, $option_name );
		$option_value = $wpdb->get_var( $query );
		return $option_value;
	}

	/**
	 *	array_remove()
	 *
	 *	Removes array values in $remove from $array.
	 *
	 *	@param			$array		array		Source array. This will have values removed and be returned.
	 *	@param			$remove		array		Array of values to search for in $array and remove.
	 *	@return						array		Returns array $array stripped of all values found in $remove
	 */
	function array_remove( $array, $remove ) {
		if ( !is_array( $remove ) ) {
			$remove = array( $remove );
		}
		return array_values( array_diff( $array, $remove ) );
	}

	/**
	 *	status_box()
	 *
	 *	Displays a textarea for placing status text into.
	 *
	 *	@param			$default_text	string		First line of text to display.
	 *	@return							string		HTML for textarea.
	 */
	function status_box( $default_text = '' ) {
		return '<textarea readonly="readonly" style="width: 100%;" rows="10" cols="75" id="importbuddy_status" wrap="off">' . $default_text . '</textarea>

';
	}

	/**
	 *	status()
	 *
	 *	Write a status line into an existing textarea created with the status_box() function.
	 *
	 *	@param			$type		string		message, details, error, or warning. Currently not in use.
	 *	@param			$message	string		Message to append to the status box.
	 *	@return			null
	 */
	function status( $type, $message ) {
		pb_backupbuddy::status( $type, $message );

		$status_lines = pb_backupbuddy::get_status( 'ms_import', true, true, true ); // $serial = '', $clear_retrieved = true, $erase_retrieved = true, $hide_getting_status = false
		if ( $status_lines !== false ) { // Only add lines if there is status contents.
			foreach( $status_lines as $status_line ) {
				$status_line[0] = pb_backupbuddy::$format->date( pb_backupbuddy::$format->localize_time( $status_line[0] ) );
				$status_line[1] .= 'sec';
				$status_line[2] .= 'MB';
				echo '';
				pb_backupbuddy::flush();
			}
		}
	}

	/**
	 *	get_zip_id()
	 *
	 *	Given a BackupBuddy ZIP file, extracts the random ZIP ID from the filename. This random string determines
	 *	where BackupBuddy will find the temporary directory in the backup's wp-uploads directory. IE a zip ID of
	 *	3poje9j34 will mean the temporary directory is wp-uploads/temp_3poje9j34/. backupbuddy_dat.php is in this
	 *	directory as well as the SQL dump.
	 *
	 *	Currently handles old BackupBuddy ZIP file format. Remove this backward compatibility at some point.
	 *
	 *	$file			string		BackupBuddy ZIP filename.
	 *	@return			string		ZIP ID characters.
	 *
	 */
	function get_zip_id( $file ) {
		$posa = strrpos($file,'_')+1;
		$posb = strrpos($file,'-')+1;
		if ( $posa < $posb ) {
			$zip_id = strrpos($file,'-')+1;
		} else {
			$zip_id = strrpos($file,'_')+1;
		}

		$zip_id = substr( $file, $zip_id, - 4 );
		return $zip_id;
	}

	/*	remove_file()
	 *
	 *	Deletes a file.
	 *
	 *	@param		string		$file				Full path to file to delete.
	 *	@param		string		$description		Description of file for logging.
	 *	@param		boolean		$error_on_missing	default false. Whether to log an error for a missing file.
	 *	@return		null
	 */
	function remove_file( $file, $description, $error_on_missing = false ) {
		$this->status( 'message', 'Deleting ' . $description . '...' );

		@chmod( $file, 0755 ); // High permissions to delete.

		if ( is_dir( $file ) ) { // directory.
			$this->remove_dir( $file );
			if ( file_exists( $file ) ) {
				$this->status( 'error', 'Unable to delete directory: `' . $description . '` named `' . $file . '`. You should manually delete it.' );
			} else {
				$this->status( 'message', 'Deleted `' . $file . '`.' );
			}
		} else { // file
			if ( file_exists( $file ) ) {
				if ( @unlink( $file ) != 1 ) {
					$this->status( 'error', 'Unable to delete file: `' . $description . '` named `' . $file . '`. You should manually delete it.' );
				} else {
					$this->status( 'message', 'Deleted `' . $file . '`.' );
				}
			} else {
				$this->status( 'message', 'File does not exist; nothing to delete.' );
			}
		}
	}
}

?>


text:
import { symbolProto } from './native'
const nativeSymbolValueOf = symbolProto ? symbolProto.valueOf : undefined
export default nativeSymbolValueOf


text:
<!DOCTYPE html>

    <title>Frequently Asked Questions | Lit2Go ETC</title>
    <link rel="stylesheet" href="http://etc.usf.edu/lit2go/css/screenless.css" type="text/css" media="screen" title="no title" charset="utf-8">
    <link rel="stylesheet" href="http://etc.usf.edu/lit2go/css/printless.css" type="text/css" media="print" title="no title" charset="utf-8">

          Lit2Go

<form action="http://etc.usf.edu/lit2go/search/"><input type="text" name="q" placeholder="Search" value=""></form>

Authors

Books

Genres

Collections

Readability

Frequently Asked Questions

  How are your reading levels determined?

  The Flesch-Kincaid Grade Level index is one way to measure and report the readability of English text. The Flesch-Kincaid formula considers the average number of words per sentence (average sentence length, or ASL) and the average number of syllables per word (ASW) within a given passage in order to estimate the complexity of the text. The formula then converts that complexity level into a score that roughly equates with a grade level (K-12) in the United States. The formula is:

  Flesch-Kincaid Grade Level = (.39 × ASL) + (11.8 × ASW) - 15.59

  Flesch-Kincaid is only an estimate and may be less accurate with certain types of text. Readability is determined by examining two variables: the complexity of the sentence construction and the complexity of the vocabulary. The complexity of the sentence construction is represented in the Flesch-Kincaid formula only by sentence length. The complexity of vocabulary is represented only by the number of syllables per word.

  While Flesch-Kincaid may be a useful tool for comparing the complexity of different passages, whether or not a given passage is appropriate for a given reader depends on several other factors, including: background knowledge of the reader, reader interest in the subject matter, text genre, and the level of support provided during reading.

  In the Lit2Go Flesch-Kincaid grade level index, you will see novels and similar kinds of books listed by the grade level of the book as a whole, while short stories and essays that are included in anthologies are listed individually. All passage pages report the Flesch-Kincaid level for the individual passage, not the book average.

  Are the audio passages found on the Lit2Go also available on iTunesU?

  All passages on the Lit2Go site are currently available on iTunesU. However, due to the additional materials required to post material on the Lit2Go site, there are a number of audio passages available on iTunesU that are not currently available on Lit2Go.

  Are the materials made available by Lit2Go copyrighted, and what are the limits of their use?

  For answers to questions regarding copyright and "fair use" of materials on Lit2Go, please refer to the license section of the site.

            This collection of children's literature is a part of the Educational Technology Clearinghouse and is funded by various grants.

            Copyright © 2006—2016 by the Florida Center for Instructional Technology, College of Education, University of South Florida.

License

Credits

FAQ

Giving


text:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="8dp"
    tools:context="net.danlew.counter.ui.MainActivity">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="8dp">

        <Button
            android:id="@+id/plus_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="0dp"
            android:text="+"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <Button
            android:id="@+id/minus_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="0dp"
            android:layout_marginTop="8dp"
            android:text="-"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/plus_button"
            app:layout_constraintVertical_bias="1.0" />

        <TextView
            android:id="@+id/count"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginRight="16dp"
            android:layout_marginTop="8dp"
            android:padding="8dp"
            android:text="0"
            android:textColor="#000"
            android:textSize="48sp"
            android:textStyle="bold"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintRight_toLeftOf="@+id/plus_button"
            app:layout_constraintTop_toTopOf="parent" />

        <EditText
            android:id="@+id/counter_name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dp"
            android:layout_marginRight="16dp"
            android:hint="@string/label"
            android:imeOptions="flagNoExtractUi|actionDone"
            android:inputType="textCapWords"
            android:maxLines="1"
            android:selectAllOnFocus="true"
            android:text="Name"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toLeftOf="@+id/count"
            app:layout_constraintTop_toTopOf="parent" />
    </android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>


text:
<?php

namespace Surfnet\ServiceProviderDashboard\Application\Provider;

use Surfnet\ServiceProviderDashboard\Application\Exception\InvalidArgumentException;
use Surfnet\ServiceProviderDashboard\Domain\Entity\Constants;
use Surfnet\ServiceProviderDashboard\Domain\Repository\QueryManageRepository;

class EntityQueryRepositoryProvider
{
    /**
     * @var QueryManageRepository
     */
    private $manageTestQueryClient;

    /**
     * @var QueryManageRepository
     */
    private $manageProductionQueryClient;

    public function __construct(
        QueryManageRepository $manageTestQueryClient,
        QueryManageRepository $manageProductionQueryClient
    ) {
        $this->manageTestQueryClient = $manageTestQueryClient;
        $this->manageProductionQueryClient = $manageProductionQueryClient;
    }

    public function fromEnvironment(string $environment): QueryManageRepository
    {
        switch ($environment) {
            case Constants::ENVIRONMENT_TEST:
                return $this->manageTestQueryClient;
            case Constants::ENVIRONMENT_PRODUCTION:
                return $this->manageProductionQueryClient;
            default:
                throw new InvalidArgumentException(sprintf('Unsupported environment "%s" requested.', $environment));
        }
    }

    public function getManageTestQueryClient(): QueryManageRepository
    {
        return $this->manageTestQueryClient;
    }

    public function getManageProductionQueryClient(): QueryManageRepository
    {
        return $this->manageProductionQueryClient;
    }
}


text:
require('lore/validation/type_validator')
require('lore/exceptions/invalid_field')
require('lore/exceptions/validation_failure')
require('lore/exceptions/unknown_type')

module Lore
module Validation

  class Parameter_Validator

    PG_BOOL                 = 16
    PG_SMALLINT             = 21
    PG_INT                  = 23
    PG_TEXT                 = 25
    PG_VARCHAR              = 1043
    PG_TIMESTAMP_TIMEZONE   = 1184

    @logger = Lore.logger

    #############################################################
    # To be used inside Table_Accessor with
    # Validator.invalid_params(this, @attribute_values)
    # or e.g. in a dispatcher with
    # Validator.invalid_params(Some_Klass, parameter_hash)
    #
    def self.validate(klass, value_hash)

      Lore.logger.debug { "Validating attributes for #{klass.to_s}: " }
      Lore.logger.debug { "#{value_hash.inspect}" }
      invalid_params     = Hash.new
      attribute_settings = klass.__attributes__
      constraints        = attribute_settings.constraints
      required           = attribute_settings.required

      attribute_settings.types.each_pair { |table, fields|
        begin
          validate_types(fields, value_hash[table], required[table])
        rescue Lore::Exceptions::Invalid_Types => ip
          invalid_params[table] = ip
        end
      }

      attribute_settings.constraints.each_pair { |table, fields|
        begin
          validate_constraints(fields, value_hash[table])
        rescue Lore::Exceptions::Unmet_Constraints => ip
          invalid_params[table] = ip
        end
      }
      if invalid_params.length == 0 then return true end

      raise Lore::Exceptions::Validation_Failure.new(klass, invalid_params)

    end

    def self.validate_update(klass, value_hash)
      Lore.logger.debug { "Validating attributes for updating #{klass.to_s}: " }
      Lore.logger.debug { "#{value_hash.inspect}" }
      invalid_params     = Hash.new
      attribute_settings = klass.__attributes__
      constraints        = attribute_settings.constraints
      required           = attribute_settings.required

      value_hash.each_pair { |table, attributes|
        types = attribute_settings.types[table]
        if !types then
          raise ::Exception.new("No types given for #{klass.to_s} (#{table})")
        end
        types.delete_if { |attribute,value| !attributes[attribute] }
        begin
          validate_types(types, attributes, required[table])
        rescue Lore::Exceptions::Invalid_Types => ip
          invalid_params[table] = ip
        end
      }

      value_hash.each_pair { |table, attributes|
        constraints = attribute_settings.constraints[table]
        if constraints then
          constraints.delete_if { |attribute,constraint| !attributes[attribute] }
          begin
            validate_constraints(constraints, attributes)
          rescue Lore::Exceptions::Unmet_Constraints => ip
            invalid_params[table] = ip
          end
        else
          Lore.logger.info { "No constraints for #{klass.to_s}?" }
        end
      }
      if invalid_params.length == 0 then return true end

      raise Lore::Exceptions::Validation_Failure.new(klass, invalid_params)

    end

    def self.validate_types(type_codes, table_value_hash, required)
      invalid_types  = {}
      value          = false
      type_validator = Type_Validator.new()

      # DERRN-DERRN-DERRN!! What if there is no value hash?
      type_codes.each_pair { |field,type|
        field = field.to_sym
        is_required = (required && required[field]) || false

        value = table_value_hash[field] if table_value_hash
        # Replace whitespaces and array delimiters to check for real value length
        value_nil = (value.nil? || value.to_s.gsub(/\s/,'').gsub(/[{}]/,'').length == 0)
        # Is value missing?
        if (is_required && value_nil) then
          invalid_types[field] = :missing
          Lore.logger.debug { "Field #{field} is :missing" }
        # Otherwise: Is value of valid type?
        elsif !value_nil && !type_validator.typecheck(type, value, is_required) then
          invalid_types[field] = type
          Lore.logger.debug {
            "Field #{field} has invalid type: " <<
            "expected: #{type}, value: #{value}"
          }
        end

      }
      if invalid_types.keys.length > 0 then
        raise Lore::Exceptions::Invalid_Types.new(invalid_types)
      end
      return true
    end

    def self.validate_constraints(table_constraints, table_value_hash)
      unmet_constraints = {}
      table_constraints.each_pair { |attrib, rules|
        value = table_value_hash[attrib.to_sym] if table_value_hash
        rules.each_pair { |rule, rule_value|
          Lore.logger.debug { "Found constraint for #{attrib}: #{rule.inspect} " }
          Lore.logger.debug { "constraint is: #{rule_value.inspect} " }
          if rule == :minlength && value.to_s.length < rule_value then
            unmet_constraints[attrib] = :minlength
            Lore.logger.debug { "Field #{attrib} failed :minlength" }
          end
          if rule == :maxlength && value.to_s.length > rule_value then
            unmet_constraints[attrib] = :maxlength
            Lore.logger.debug { "Field #{attrib} failed :maxlength" }
          end
          if rule == :format && rule_value.match(value.to_s).nil? then
            unmet_constraints[attrib] = :format
            Lore.logger.debug { "Field #{attrib} failed :format - value: #{value.inspect} - match returned #{rule_value.match(value).inspect}" }
          end
        }
      }
      if unmet_constraints.length > 0 then
        raise Lore::Exceptions::Unmet_Constraints.new(unmet_constraints)
      end
      return true
    end

  end

end # module
end # module


text:
.placeholder {
  color: #999;
}
.text-sm {
  font-size: 12px;
}

.text-xs {
  font-size: 10px;
}

.text-md {
  font-size: 16px;
}

.text-lg {
  font-size: 18px;
}

.money-text {
  color: #f40;
}

.short-long-text .trigger {
  visibility: hidden;
  _visibility: visible;
}

.short-long-text .short-text:hover .trigger,
.short-long-text .long-text:hover .trigger {
  visibility: visible;
  font-size: 12px;
  color: #999;
}

.short-long-text .short-text {
  cursor: pointer;
}

.short-long-text .long-text {
  cursor: pointer;
  display: none;
}

.social-share-icon-weibo,
.social-share-icon-qq,
.social-share-icon-qzone,
.social-share-icon-weixin
 {
  width: 16px;
  height: 16px;
  display: inline-block;
  *display: inline-block;
  *zoom: 1;
  background: url(../img/common/social-share-icons.png) 0 0 no-repeat;
  vertical-align: middle;
  margin-right: 6px;
}

.social-share-icon-qzone {
  background-position: 0 -00px;
}

.social-share-icon-weibo {
  background-position: 0 -30px;
}

.social-share-icon-weixin {
  background-position: 0 -60px;
}

.social-share-icon-qq {
  background-position: 0 -90px;
}

.social-icon-weibo,
.social-icon-qq,
.social-icon-renren,
.social-icon-douban,
.social-icon-weixin
 {
	width: 24px;
	height: 24px;
	display: inline-block;
	*display: inline-block;
	*zoom: 1;
	background: url(../img/social/social-icons.png) 0 0 no-repeat;
	vertical-align: middle;
}

.social-icon-weibo {
	background-position: 0 -00px;
}

.social-icon-qq {
	background-position: 0 -40px;
}

.social-icon-renren {
	background-position: 0 -80px;
}

.social-icon-douban {
	background-position: 0 -120px;
}

.social-icon-weixin {
  background-position: 0 -160px;
}
.stars-0, .stars-1, .stars-2, .stars-3, .stars-4, .stars-5 {
	display:inline-block;
	*display:inline;
	*zoom:1;
	overflow:hidden;
	width:85px;
	height:16px;
	background:url("../img/common/stars.png") no-repeat;
}

.stars-5 {
	background-position:0 0px;
}

.stars-4 {
	background-position:0 -16px;
}

.stars-3 {
	background-position:0 -32px;
}

.stars-2 {
	background-position:0 -48px;
}

.stars-1 {
	background-position:0 -64px;
}

.stars-0 {
	background-position:0 -80px;
}

@font-face {font-family: "esicon";
  src: url('font/es-icon.eot'); /* IE9*/
  src: url('font/es-icon.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
  url('font/es-icon.woff') format('woff'), /* chrome、firefox */
  url('font/es-icon.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
  url('font/es-icon.svg#es-icon') format('svg'); /* iOS 4.1- */
}

.esicon {
  font-family:"esicon" !important;
  font-style:normal;
  -webkit-font-smoothing: antialiased;
  -webkit-text-stroke-width: 0.2px;
  -moz-osx-font-smoothing: grayscale;
}

.esicon-safety:before { content: "\e600"; }
.esicon-share:before { content: "\e601"; }
.esicon-setting:before { content: "\e603"; }
.esicon-like:before { content: "\e605"; }
.esicon-exit:before { content: "\e602"; }
.esicon-user:before { content: "\e607"; }

/*! define gallery2/video-js/4.2.1/video-js-debug.css */
/*!
Video.js Default Styles (http://videojs.com)
Version 4.2.1
Create your own skin at http://designer.videojs.com
*/
/* SKIN
================================================================================
The main class name for all skin-specific styles. To make your own skin,
replace all occurances of 'vjs-default-skin' with a new name. Then add your new
skin name to your video tag instead of the default skin.
e.g. <video class="video-js my-skin-name">
*/
.local-video-player {
  /* Custom Icon Font
  --------------------------------------------------------------------------------
  The control icons are from a custom font. Each icon corresponds to a character
  (e.g. "\e001"). Font icons allow for easy scaling and coloring of icons.
  */
  /* Base UI Component Classes
  --------------------------------------------------------------------------------
  */
  /* Slider - used for Volume bar and Seek bar */
  /* Control Bar
  --------------------------------------------------------------------------------
  The default control bar that is a container for most of the controls.
  */
  /* Show the control bar only once the video has started playing */
  /* Hide the control bar when the video is playing and the user is inactive  */
  /* IE8 is flakey with fonts, and you have to change the actual content to force
  fonts to show/hide properly.
    - "\9" IE8 hack didn't work for this
    - Found in XP IE8 from http://modern.ie. Does not show up in "IE8 mode" in IE9
  */
  /* General styles for individual controls. */
  /* FontAwsome button icons */
  /* Replacement for focus outline */
  /* Hide control text visually, but have it available for screenreaders */
  /* Play/Pause
  --------------------------------------------------------------------------------
  */
  /* Volume/Mute
  -------------------------------------------------------------------------------- */
  /* Progress
  --------------------------------------------------------------------------------
  */
  /* On hover, make the progress bar grow to something that's more clickable.
      This simply changes the overall font for the progress bar, and this
      updates both the em-based widths and heights, as wells as the icon font */
  /* Box containing play and load progresses. Also acts as seek scrubber. */
  /* Progress Bars */
  /* Time Display
  --------------------------------------------------------------------------------
  */
  /* Remaining time is in the HTML, but not included in default design */
  /* Fullscreen
  --------------------------------------------------------------------------------
  */
  /* Switch to the exit icon when the player is in fullscreen */
  /* Big Play Button (play button at start)
  --------------------------------------------------------------------------------
  Positioning of the play button in the center or other corners can be done more
  easily in the skin designer. http://designer.videojs.com/
  */
  /* Hide if controls are disabled */
  /* Hide when video starts playing */
  /* Hide on mobile devices. Remove when we stop using native controls
      by default on mobile  */
  /* Loading Spinner
  --------------------------------------------------------------------------------
  */
  /* Menu Buttons (Captions/Subtitles/etc.)
  --------------------------------------------------------------------------------
  */
  /* Button Pop-up Menu */
  /* Subtitles Button */
  /* Captions Button */
  /* Replacement for focus outline */
  /*
  REQUIRED STYLES (be careful overriding)
  ================================================================================
  When loading the player, the video tag is replaced with a DIV,
  that will hold the video tag or object tag for other playback methods.
  The div contains the video playback element (Flash or HTML5) and controls,
  and sets the width and height of the video.

  ** If you want to add some kind of border/padding (e.g. a frame), or special
  positioning, use another containing element. Otherwise you risk messing up
  control positioning and full window mode. **
  */
  /* Playback technology elements expand to the width/height of the containing div
      <video> or <object> */
  /* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when
     checking fullScreenEnabled. */
  /* Fullscreen Styles */
  /* Poster Styles */
  /* Hide the poster when native controls are used otherwise it covers them */
  /* Text Track Styles */
  /* Overall track holder for both captions and subtitles */
  /* Individual tracks */
  /* Hide disabled or unsupported controls */
}
.local-video-player .vjs-default-skin {
  color: #cccccc;
}
@font-face {
  font-family: 'VideoJS';
  src: url('font/vjs.eot');
  src: url('font/vjs.eot?#iefix') format('embedded-opentype'), url('font/vjs.woff') format('woff'), url('font/vjs.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}
.local-video-player .vjs-default-skin .vjs-slider {
  /* Replace browser focus hightlight with handle highlight */
  outline: 0;
  position: relative;
  cursor: pointer;
  padding: 0;
  /* background-color-with-alpha */
  background-color: #333333;
  background-color: rgba(51, 51, 51, 0.9);
}
.local-video-player .vjs-default-skin .vjs-slider:focus {
  /* box-shadow */
  -webkit-box-shadow: 0 0 2em #ffffff;
  -moz-box-shadow: 0 0 2em #ffffff;
  box-shadow: 0 0 2em #ffffff;
}
.local-video-player .vjs-default-skin .vjs-slider-handle {
  position: absolute;
  /* Needed for IE6 */
  left: 0;
  top: 0;
}
.local-video-player .vjs-default-skin .vjs-slider-handle:before {
  content: "\e009";
  font-family: VideoJS;
  font-size: 1em;
  line-height: 1;
  text-align: center;
  text-shadow: 0em 0em 1em #fff;
  position: absolute;
  top: 0;
  left: 0;
  /* Rotate the square icon to make a diamond */
  /* transform */
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.local-video-player .vjs-default-skin .vjs-control-bar {
  /* Start hidden */
  display: none;
  position: absolute;
  /* Place control bar at the bottom of the player box/video.
       If you want more margin below the control bar, add more height. */
  bottom: 0;
  /* Use left/right to stretch to 100% width of player div */
  left: 0;
  right: 0;
  /* Height includes any margin you want above or below control items */
  height: 3.0em;
  /* background-color-with-alpha */
  background-color: #07141e;
  background-color: rgba(7, 20, 30, 0.7);
}
.local-video-player .vjs-default-skin.vjs-has-started .vjs-control-bar {
  display: block;
  /* Visibility needed to make sure things hide in older browsers too. */
  visibility: visible;
  opacity: 1;
  /* transition */
  -webkit-transition: visibility 0.1s, opacity 0.1s;
  -moz-transition: visibility 0.1s, opacity 0.1s;
  -o-transition: visibility 0.1s, opacity 0.1s;
  transition: visibility 0.1s, opacity 0.1s;
}
.local-video-player .vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
  display: block;
  visibility: hidden;
  opacity: 0;
  /* transition */
  -webkit-transition: visibility 1s, opacity 1s;
  -moz-transition: visibility 1s, opacity 1s;
  -o-transition: visibility 1s, opacity 1s;
  transition: visibility 1s, opacity 1s;
}
.local-video-player .vjs-default-skin.vjs-controls-disabled .vjs-control-bar {
  display: none;
}
.local-video-player .vjs-default-skin.vjs-using-native-controls .vjs-control-bar {
  display: none;
}
.local-video-player .vjs-default-skin .vjs-control {
  outline: none;
  position: relative;
  float: left;
  text-align: center;
  margin: 0;
  padding: 0;
  height: 3.0em;
  width: 4em;
}
.local-video-player .vjs-default-skin .vjs-control:before {
  font-family: VideoJS;
  font-size: 1.5em;
  line-height: 2;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
}
.local-video-player .vjs-default-skin .vjs-control:focus:before,
.local-video-player .vjs-default-skin .vjs-control:hover:before {
  text-shadow: 0em 0em 1em #ffffff;
}
.local-video-player .vjs-default-skin .vjs-control:focus {
  /*  outline: 0; */
  /* keyboard-only users cannot see the focus on several of the UI elements when
    this is set to 0 */
}
.local-video-player .vjs-default-skin .vjs-control-text {
  /* hide-visually */
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.local-video-player .vjs-default-skin .vjs-play-control {
  width: 5em;
  cursor: pointer;
}
.local-video-player .vjs-default-skin .vjs-play-control:before {
  content: "\e001";
}
.local-video-player .vjs-default-skin.vjs-playing .vjs-play-control:before {
  content: "\e002";
}
.local-video-player .vjs-default-skin .vjs-mute-control,
.local-video-player .vjs-default-skin .vjs-volume-menu-button {
  cursor: pointer;
  float: right;
}
.local-video-player .vjs-default-skin .vjs-mute-control:before,
.local-video-player .vjs-default-skin .vjs-volume-menu-button:before {
  content: "\e006";
}
.local-video-player .vjs-default-skin .vjs-mute-control.vjs-vol-0:before,
.local-video-player .vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before {
  content: "\e003";
}
.local-video-player .vjs-default-skin .vjs-mute-control.vjs-vol-1:before,
.local-video-player .vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before {
  content: "\e004";
}
.local-video-player .vjs-default-skin .vjs-mute-control.vjs-vol-2:before,
.local-video-player .vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before {
  content: "\e005";
}
.local-video-player .vjs-default-skin .vjs-volume-control {
  width: 5em;
  float: right;
}
.local-video-player .vjs-default-skin .vjs-volume-bar {
  width: 5em;
  height: 0.6em;
  margin: 1.1em auto 0;
}
.local-video-player .vjs-default-skin .vjs-volume-menu-button .vjs-menu-content {
  height: 2.9em;
}
.local-video-player .vjs-default-skin .vjs-volume-level {
  position: absolute;
  top: 0;
  left: 0;
  height: 0.5em;
  background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat;
}
.local-video-player .vjs-default-skin .vjs-volume-bar .vjs-volume-handle {
  width: 0.5em;
  height: 0.5em;
}
.local-video-player .vjs-default-skin .vjs-volume-handle:before {
  font-size: 0.9em;
  top: -0.2em;
  left: -0.2em;
  width: 1em;
  height: 1em;
}
.local-video-player .vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content {
  width: 6em;
  left: -4em;
}
.local-video-player .vjs-default-skin .vjs-progress-control {
  position: absolute;
  left: 0;
  right: 0;
  width: auto;
  font-size: 0.3em;
  height: 1em;
  /* Set above the rest of the controls. */
  top: -1em;
  /* Shrink the bar slower than it grows. */
  /* transition */
  -webkit-transition: all 0.4s;
  -moz-transition: all 0.4s;
  -o-transition: all 0.4s;
  transition: all 0.4s;
}
.local-video-player .vjs-default-skin:hover .vjs-progress-control {
  font-size: .9em;
  /* Even though we're not changing the top/height, we need to include them in
        the transition so they're handled correctly. */
  /* transition */
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  transition: all 0.2s;
}
.local-video-player .vjs-default-skin .vjs-progress-holder {
  height: 100%;
}
.local-video-player .vjs-default-skin .vjs-progress-holder .vjs-play-progress,
.local-video-player .vjs-default-skin .vjs-progress-holder .vjs-load-progress {
  position: absolute;
  display: block;
  height: 100%;
  margin: 0;
  padding: 0;
  /* Needed for IE6 */
  left: 0;
  top: 0;
}
.local-video-player .vjs-default-skin .vjs-play-progress {
  /*
      Using a data URI to create the white diagonal lines with a transparent
        background. Surprisingly works in IE8.
        Created using http://www.patternify.com
      Changing the first color value will change the bar color.
      Also using a paralax effect to make the lines move backwards.
        The -50% left position makes that happen.
    */
  background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat;
}
.local-video-player .vjs-default-skin .vjs-load-progress {
  background: #646464 /* IE8- Fallback */;
  background: rgba(255, 255, 255, 0.4);
}
.local-video-player .vjs-default-skin .vjs-seek-handle {
  width: 1.5em;
  height: 100%;
}
.local-video-player .vjs-default-skin .vjs-seek-handle:before {
  padding-top: 0.1em /* Minor adjustment */;
}
.local-video-player .vjs-default-skin .vjs-time-controls {
  font-size: 1em;
  /* Align vertically by making the line height the same as the control bar */
  line-height: 3em;
}
.local-video-player .vjs-default-skin .vjs-current-time {
  float: left;
}
.local-video-player .vjs-default-skin .vjs-duration {
  float: left;
}
.local-video-player .vjs-default-skin .vjs-remaining-time {
  display: none;
  float: left;
}
.local-video-player .vjs-time-divider {
  float: left;
  line-height: 3em;
}
.local-video-player .vjs-default-skin .vjs-fullscreen-control {
  width: 3.8em;
  cursor: pointer;
  float: right;
}
.local-video-player .vjs-default-skin .vjs-fullscreen-control:before {
  content: "\e000";
}
.local-video-player .vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before {
  content: "\e00b";
}
.local-video-player .vjs-default-skin .vjs-big-play-button {
  left: 0.5em;
  top: 0.5em;
  font-size: 3em;
  display: block;
  z-index: 2;
  position: absolute;
  width: 4em;
  height: 2.6em;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  opacity: 1;
  /* Need a slightly gray bg so it can be seen on black backgrounds */
  /* background-color-with-alpha */
  background-color: #07141e;
  background-color: rgba(7, 20, 30, 0.7);
  border: 0.1em solid #3b4249;
  /* border-radius */
  -webkit-border-radius: 0.8em;
  -moz-border-radius: 0.8em;
  border-radius: 0.8em;
  /* box-shadow */
  -webkit-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
  -moz-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
  box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
  /* transition */
  -webkit-transition: all 0.4s;
  -moz-transition: all 0.4s;
  -o-transition: all 0.4s;
  transition: all 0.4s;
}
.local-video-player .vjs-default-skin.vjs-controls-disabled .vjs-big-play-button {
  display: none;
}
.local-video-player .vjs-default-skin.vjs-has-started .vjs-big-play-button {
  display: none;
}
.local-video-player .vjs-default-skin.vjs-using-native-controls .vjs-big-play-button {
  display: none;
}
.local-video-player .vjs-default-skin:hover .vjs-big-play-button,
.local-video-player .vjs-default-skin .vjs-big-play-button:focus {
  outline: 0;
  border-color: #fff;
  /* IE8 needs a non-glow hover state */
  background-color: #505050;
  background-color: rgba(50, 50, 50, 0.75);
  /* box-shadow */
  -webkit-box-shadow: 0 0 3em #ffffff;
  -moz-box-shadow: 0 0 3em #ffffff;
  box-shadow: 0 0 3em #ffffff;
  /* transition */
  -webkit-transition: all 0s;
  -moz-transition: all 0s;
  -o-transition: all 0s;
  transition: all 0s;
}
.local-video-player .vjs-default-skin .vjs-big-play-button:before {
  content: "\e001";
  font-family: VideoJS;
  /* In order to center the play icon vertically we need to set the line height
       to the same as the button height */
  line-height: 2.6em;
  text-shadow: 0.05em 0.05em 0.1em #000;
  text-align: center /* Needed for IE8 */;
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
}
.local-video-player .vjs-loading-spinner {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  font-size: 5em;
  line-height: 1;
  width: 1em;
  height: 1em;
  margin-left: -0.5em;
  margin-top: -0.5em;
  opacity: 0.75;
  /* animation */
  -webkit-animation: spin 1.5s infinite linear;
  -moz-animation: spin 1.5s infinite linear;
  -o-animation: spin 1.5s infinite linear;
  animation: spin 1.5s infinite linear;
}
.local-video-player .vjs-default-skin .vjs-loading-spinner:before {
  content: "\e00a";
  font-family: VideoJS;
  position: absolute;
  top: 0;
  left: 0;
  width: 1em;
  height: 1em;
  text-align: center;
  text-shadow: 0em 0em 0.1em #000;
}
@-moz-keyframes spin {
  0% {
    -moz-transform: rotate(0deg);
  }
  100% {
    -moz-transform: rotate(359deg);
  }
}
@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
  }
}
@-o-keyframes spin {
  0% {
    -o-transform: rotate(0deg);
  }
  100% {
    -o-transform: rotate(359deg);
  }
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(359deg);
  }
}
.local-video-player .vjs-default-skin .vjs-menu-button {
  float: right;
  cursor: pointer;
}
.local-video-player .vjs-default-skin .vjs-menu {
  display: none;
  position: absolute;
  bottom: 0;
  left: 0em;
  /* (Width of vjs-menu - width of button) / 2 */
  width: 0em;
  height: 0em;
  margin-bottom: 3em;
  border-left: 2em solid transparent;
  border-right: 2em solid transparent;
  border-top: 1.55em solid #000000;
  /* Same width top as ul bottom */
  border-top-color: rgba(7, 40, 50, 0.5);
  /* Same as ul background */
}
.local-video-player .vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content {
  display: block;
  padding: 0;
  margin: 0;
  position: absolute;
  width: 10em;
  bottom: 1.5em;
  /* Same bottom as vjs-menu border-top */
  max-height: 15em;
  overflow: auto;
  left: -5em;
  /* Width of menu - width of button / 2 */
  /* background-color-with-alpha */
  background-color: #07141e;
  background-color: rgba(7, 20, 30, 0.7);
  /* box-shadow */
  -webkit-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
  -moz-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
  box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
}
.local-video-player .vjs-default-skin .vjs-menu-button:hover .vjs-menu {
  display: block;
}
.local-video-player .vjs-default-skin .vjs-menu-button ul li {
  list-style: none;
  margin: 0;
  padding: 0.3em 0 0.3em 0;
  line-height: 1.4em;
  font-size: 1.2em;
  text-align: center;
  text-transform: lowercase;
}
.local-video-player .vjs-default-skin .vjs-menu-button ul li.vjs-selected {
  background-color: #000;
}
.local-video-player .vjs-default-skin .vjs-menu-button ul li:focus,
.local-video-player .vjs-default-skin .vjs-menu-button ul li:hover,
.local-video-player .vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,
.local-video-player .vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover {
  outline: 0;
  color: #111;
  /* background-color-with-alpha */
  background-color: #ffffff;
  background-color: rgba(255, 255, 255, 0.75);
  /* box-shadow */
  -webkit-box-shadow: 0 0 1em #ffffff;
  -moz-box-shadow: 0 0 1em #ffffff;
  box-shadow: 0 0 1em #ffffff;
}
.local-video-player .vjs-default-skin .vjs-menu-button ul li.vjs-menu-title {
  text-align: center;
  text-transform: uppercase;
  font-size: 1em;
  line-height: 2em;
  padding: 0;
  margin: 0 0 0.3em 0;
  font-weight: bold;
  cursor: default;
}
.local-video-player .vjs-default-skin .vjs-subtitles-button:before {
  content: "\e00c";
}
.local-video-player .vjs-default-skin .vjs-captions-button:before {
  content: "\e008";
}
.local-video-player .vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,
.local-video-player .vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before {
  /* box-shadow */
  -webkit-box-shadow: 0 0 1em #ffffff;
  -moz-box-shadow: 0 0 1em #ffffff;
  box-shadow: 0 0 1em #ffffff;
}
.local-video-player .video-js {
  background-color: #000;
  position: relative;
  padding: 0;
  /* Start with 10px for base font size so other dimensions can be em based and
       easily calculable. */
  font-size: 10px;
  /* Allow poster to be vertially aligned. */
  vertical-align: middle;
  /*  display: table-cell; */
  /*This works in Safari but not Firefox.*/
  /* Provide some basic defaults for fonts */
  font-weight: normal;
  font-style: normal;
  /* Avoiding helvetica: issue #376 */
  font-family: Arial, sans-serif;
  /* Turn off user selection (text highlighting) by default.
       The majority of player components will not be text blocks.
       Text areas will need to turn user selection back on. */
  /* user-select */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.local-video-player .video-js .vjs-tech {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.local-video-player .video-js:-moz-full-screen {
  position: absolute;
}
.local-video-player body.vjs-full-window {
  padding: 0;
  margin: 0;
  height: 100%;
  /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */
  overflow-y: auto;
}
.local-video-player .video-js.vjs-fullscreen {
  position: fixed;
  overflow: hidden;
  z-index: 1000;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
  /* IE6 full-window (underscore hack) */
  _position: absolute;
}
.local-video-player .video-js:-webkit-full-screen {
  width: 100% !important;
  height: 100% !important;
}
.local-video-player .video-js.vjs-fullscreen.vjs-user-inactive {
  cursor: none;
}
.local-video-player .vjs-poster {
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
  cursor: pointer;
  height: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  width: 100%;
}
.local-video-player .vjs-poster img {
  display: block;
  margin: 0 auto;
  max-height: 100%;
  padding: 0;
  width: 100%;
}
.local-video-player .video-js.vjs-using-native-controls .vjs-poster {
  display: none;
}
.local-video-player .video-js .vjs-text-track-display {
  text-align: center;
  position: absolute;
  bottom: 4em;
  /* Leave padding on left and right */
  left: 1em;
  right: 1em;
}
.local-video-player .video-js .vjs-text-track {
  display: none;
  font-size: 1.4em;
  text-align: center;
  margin-bottom: 0.1em;
  /* Transparent black background, or fallback to all black (oldIE) */
  /* background-color-with-alpha */
  background-color: #000000;
  background-color: rgba(0, 0, 0, 0.5);
}
.local-video-player .video-js .vjs-subtitles {
  color: #ffffff /* Subtitles are white */;
}
.local-video-player .video-js .vjs-captions {
  color: #ffcc66 /* Captions are yellow */;
}
.local-video-player .vjs-tt-cue {
  display: block;
}
.local-video-player .vjs-default-skin .vjs-hidden {
  display: none;
}
.local-video-player .vjs-lock-showing {
  display: block !important;
  opacity: 1;
  visibility: visible;
}
.lt-ie9 .local-video-player .vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before {
  content: "";
}
/* -----------------------------------------------------------------------------
The original source of this file lives at
https://github.com/videojs/video.js/blob/master/src/css/video-js.less */

/*! define gallery2/mediaelement/2.14.2/mediaelementplayer-debug.css */
.mejs-container {
  position: relative;
  background: #000;
  font-family: Helvetica, Arial;
  text-align: left;
  vertical-align: top;
  text-indent: 0;
}

.me-plugin {
  position: absolute;
}

.mejs-embed, .mejs-embed body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: #000;
  overflow: hidden;
}

.mejs-fullscreen {
  /* set it to not show scroll bars so 100% will work */
  overflow: hidden !important;
}

.mejs-container-fullscreen {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  z-index: 1000;
}
.mejs-container-fullscreen .mejs-mediaelement,
.mejs-container-fullscreen video {
  width: 100%;
  height: 100%;
}

.mejs-clear {
  clear: both;
}

/* Start: LAYERS */
.mejs-background {
  position: absolute;
  top: 0;
  left: 0;
}

.mejs-mediaelement {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.mejs-poster {
  position: absolute;
  top: 0;
  left: 0;
  background-size: contain ;
  background-position: 50% 50% ;
  background-repeat: no-repeat ;
}
:root .mejs-poster img {
  display: none ;
}

.mejs-poster img {
  border: 0;
  padding: 0;
  border: 0;
}

.mejs-overlay {
  position: absolute;
  top: 0;
  left: 0;
}

.mejs-overlay-play {
  cursor: pointer;
}

.mejs-overlay-button {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100px;
  height: 100px;
  margin: -50px 0 0 -50px;
  background: url(mediaelement/bigplay.svg) no-repeat;
}

.no-svg .mejs-overlay-button {
  background-image: url(mediaelement/bigplay.png);
}

.mejs-overlay:hover .mejs-overlay-button {
  background-position: 0 -100px ;
}

.mejs-overlay-loading {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 80px;
  height: 80px;
  margin: -40px 0 0 -40px;
  background: #333;
  background: url(mediaelement/background.png);
  background: rgba(0, 0, 0, 0.9);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.9)), to(rgba(0,0,0,0.9)));
  background: -webkit-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
  background: -moz-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
  background: -o-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
  background: -ms-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
  background: linear-gradient(rgba(50,50,50,0.9), rgba(0,0,0,0.9));
}

.mejs-overlay-loading span {
  display: block;
  width: 80px;
  height: 80px;
  background: transparent url(mediaelement/loading.gif) 50% 50% no-repeat;
}

/* End: LAYERS */

/* Start: CONTROL BAR */
.mejs-container .mejs-controls {
  position: absolute;
  list-style-type: none;
  margin: 0;
  padding: 0;
  bottom: 0;
  left: 0;
  background: url(mediaelement/background.png);
  background: rgba(0, 0, 0, 0.7);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.7)), to(rgba(0,0,0,0.7)));
  background: -webkit-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  background: -moz-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  background: -o-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  background: -ms-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  height: 30px;
  width: 100%;
}
.mejs-container .mejs-controls  div {
  list-style-type: none;
  background-image: none;
  display: block;
  float: left;
  margin: 0;
  padding: 0;
  width: 26px;
  height: 26px;
  font-size: 11px;
  line-height: 11px;
  font-family: Helvetica, Arial;
  border: 0;
}

.mejs-controls .mejs-button button {
  cursor: pointer;
  display: block;
  font-size: 0;
  line-height: 0;
  text-decoration: none;
  margin: 7px 5px;
  padding: 0;
  position: absolute;
  height: 16px;
  width: 16px;
  border: 0;
  background: transparent url(mediaelement/controls.svg) no-repeat;
}

.no-svg .mejs-controls .mejs-button button {
  background-image: url(mediaelement/controls.png);
}

/* :focus for accessibility */
.mejs-controls .mejs-button button:focus {
  outline: dotted 1px #999;
}

/* End: CONTROL BAR */

/* Start: Time (Current / Duration) */
.mejs-container .mejs-controls .mejs-time {
  color: #fff;
  display: block;
  height: 17px;
  width: auto;
  padding: 8px 3px 0 3px ;
  overflow: hidden;
  text-align: center;
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
}

.mejs-container .mejs-controls .mejs-time span {
  color: #fff;
  font-size: 11px;
  line-height: 12px;
  display: block;
  float: left;
  margin: 1px 2px 0 0;
  width: auto;
}
/* End: Time (Current / Duration) */

/* Start: Play/Pause/Stop */
.mejs-controls .mejs-play button {
  background-position: 0 0;
}

.mejs-controls .mejs-pause button {
  background-position: 0 -16px;
}

.mejs-controls .mejs-stop button {
  background-position: -112px 0;
}
/* Start: Play/Pause/Stop */

/* Start: Progress Bar */
.mejs-controls div.mejs-time-rail {
  direction: ltr;
  width: 200px;
  padding-top: 5px;
}

.mejs-controls .mejs-time-rail span {
  display: block;
  position: absolute;
  width: 180px;
  height: 10px;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  cursor: pointer;
}

.mejs-controls .mejs-time-rail .mejs-time-total {
  margin: 5px;
  background: #333;
  background: rgba(50,50,50,0.8);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(30,30,30,0.8)), to(rgba(60,60,60,0.8)));
  background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
  background: -moz-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
  background: -o-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
  background: -ms-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
  background: linear-gradient(rgba(30,30,30,0.8), rgba(60,60,60,0.8));
}

.mejs-controls .mejs-time-rail .mejs-time-buffering {
  width: 100%;
  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: -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: -ms-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: 15px 15px;
  -moz-background-size: 15px 15px;
  -o-background-size: 15px 15px;
  background-size: 15px 15px;
  -webkit-animation: buffering-stripes 2s linear infinite;
  -moz-animation: buffering-stripes 2s linear infinite;
  -ms-animation: buffering-stripes 2s linear infinite;
  -o-animation: buffering-stripes 2s linear infinite;
  animation: buffering-stripes 2s linear infinite;
}

@-webkit-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
@-moz-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
@-ms-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
@-o-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
@keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }

.mejs-controls .mejs-time-rail .mejs-time-loaded {
  background: #3caac8;
  background: rgba(60,170,200,0.8);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(44,124,145,0.8)), to(rgba(78,183,212,0.8)));
  background: -webkit-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
  background: -moz-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
  background: -o-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
  background: -ms-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
  background: linear-gradient(rgba(44,124,145,0.8), rgba(78,183,212,0.8));
  width: 0;
}

.mejs-controls .mejs-time-rail .mejs-time-current {
  background: #fff;
  background: rgba(255,255,255,0.8);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.9)), to(rgba(200,200,200,0.8)));
  background: -webkit-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
  background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
  background: -o-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
  background: -ms-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
  background: linear-gradient(rgba(255,255,255,0.9), rgba(200,200,200,0.8));
  width: 0;
}

.mejs-controls .mejs-time-rail .mejs-time-handle {
  display: none;
  position: absolute;
  margin: 0;
  width: 10px;
  background: #fff;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  cursor: pointer;
  border: solid 2px #333;
  top: -2px;
  text-align: center;
}

.mejs-controls .mejs-time-rail .mejs-time-float {
  position: absolute;
  display: none;
  background: #eee;
  width: 54px;
  height: 17px;
  border: solid 1px #333;
  top: -26px;
  margin-left: -18px;
  text-align: center;
  color: #111;
}

.mejs-controls .mejs-time-rail .mejs-time-float-current {
  margin: 2px;
  width: 50px;
  display: block;
  text-align: center;
  left: 0;
}

.mejs-controls .mejs-time-rail .mejs-time-float-corner {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  line-height: 0;
  border: solid 5px #eee;
  border-color: #eee transparent transparent transparent;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  top: 15px;
  left: 22px;
}

.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float {
  width: 48px;
}

.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-current {
  width: 44px;
}

.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-corner {
  left: 18px;
}

/*
.mejs-controls .mejs-time-rail:hover .mejs-time-handle {
  visibility:visible;
}
*/
/* End: Progress Bar */

/* Start: Fullscreen */
.mejs-controls .mejs-fullscreen-button button {
  background-position: -32px 0;
}

.mejs-controls .mejs-unfullscreen button {
  background-position: -32px -16px;
}
/* End: Fullscreen */

/* Start: Mute/Volume */
.mejs-controls .mejs-volume-button {
}

.mejs-controls .mejs-mute button {
  background-position: -16px -16px;
}

.mejs-controls .mejs-unmute button {
  background-position: -16px 0;
}

.mejs-controls .mejs-volume-button {
  position: relative;
}

.mejs-controls .mejs-volume-button .mejs-volume-slider {
  display: none;
  height: 115px;
  width: 25px;
  background: url(mediaelement/background.png);
  background: rgba(50, 50, 50, 0.7);
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  top: -115px;
  left: 0;
  z-index: 1;
  position: absolute;
  margin: 0;
}

.mejs-controls .mejs-volume-button:hover {
  -webkit-border-radius: 0 0 4px 4px;
  -moz-border-radius: 0 0 4px 4px;
  border-radius: 0 0 4px 4px;
}

/*
.mejs-controls .mejs-volume-button:hover .mejs-volume-slider {
  display: block;
}
*/

.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total {
  position: absolute;
  left: 11px;
  top: 8px;
  width: 2px;
  height: 100px;
  background: #ddd;
  background: rgba(255, 255, 255, 0.5);
  margin: 0;
}

.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-current {
  position: absolute;
  left: 11px;
  top: 8px;
  width: 2px;
  height: 100px;
  background: #ddd;
  background: rgba(255, 255, 255, 0.9);
  margin: 0;
}

.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-handle {
  position: absolute;
  left: 4px;
  top: -3px;
  width: 16px;
  height: 6px;
  background: #ddd;
  background: rgba(255, 255, 255, 0.9);
  cursor: N-resize;
  -webkit-border-radius: 1px;
  -moz-border-radius: 1px;
  border-radius: 1px;
  margin: 0;
}

/* horizontal version */
.mejs-controls div.mejs-horizontal-volume-slider {
  height: 26px;
  width: 60px;
  position: relative;
}

.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total {
  position: absolute;
  left: 0;
  top: 11px;
  width: 50px;
  height: 8px;
  margin: 0;
  padding: 0;
  font-size: 1px;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  background: #333;
  background: rgba(50,50,50,0.8);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(30,30,30,0.8)), to(rgba(60,60,60,0.8)));
  background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
  background: -moz-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
  background: -o-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
  background: -ms-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
  background: linear-gradient(rgba(30,30,30,0.8), rgba(60,60,60,0.8));
}

.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current {
  position: absolute;
  left: 0;
  top: 11px;
  width: 50px;
  height: 8px;
  margin: 0;
  padding: 0;
  font-size: 1px;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  background: #fff;
  background: rgba(255,255,255,0.8);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.9)), to(rgba(200,200,200,0.8)));
  background: -webkit-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
  background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
  background: -o-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
  background: -ms-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
  background: linear-gradient(rgba(255,255,255,0.9), rgba(200,200,200,0.8));
}

.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle {
  display: none;
}

/* End: Mute/Volume */

/* Start: Track (Captions and Chapters) */
.mejs-controls .mejs-captions-button {
  position: relative;
}

.mejs-controls .mejs-captions-button button {
  background-position: -48px 0;
}
.mejs-controls .mejs-captions-button .mejs-captions-selector {
  visibility: hidden;
  position: absolute;
  bottom: 26px;
  right: -10px;
  width: 130px;
  height: 100px;
  background: url(mediaelement/background.png);
  background: rgba(50,50,50,0.7);
  border: solid 1px transparent;
  padding: 10px;
  overflow: hidden;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}

/*
.mejs-controls .mejs-captions-button:hover  .mejs-captions-selector {
  visibility: visible;
}
*/

.mejs-controls .mejs-captions-button .mejs-captions-selector ul {
  margin: 0;
  padding: 0;
  display: block;
  list-style-type: none !important;
  overflow: hidden;
}

.mejs-controls .mejs-captions-button .mejs-captions-selector ul li {
  margin: 0 0 6px 0;
  padding: 0;
  list-style-type: none !important;
  display: block;
  color: #fff;
  overflow: hidden;
}

.mejs-controls .mejs-captions-button .mejs-captions-selector ul li input {
  clear: both;
  float: left;
  margin: 3px 3px 0 5px;
}

.mejs-controls .mejs-captions-button .mejs-captions-selector ul li label {
  width: 100px;
  float: left;
  padding: 4px 0 0 0;
  line-height: 15px;
  font-family: helvetica, arial;
  font-size: 10px;
}

.mejs-controls .mejs-captions-button .mejs-captions-translations {
  font-size: 10px;
  margin: 0 0 5px 0;
}

.mejs-chapters {
  position: absolute;
  top: 0;
  left: 0;
  -xborder-right: solid 1px #fff;
  width: 10000px;
  z-index: 1;
}

.mejs-chapters .mejs-chapter {
  position: absolute;
  float: left;
  background: #222;
  background: rgba(0, 0, 0, 0.7);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.7)), to(rgba(0,0,0,0.7)));
  background: -webkit-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  background: -moz-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  background: -o-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  background: -ms-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7));
  filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#323232,endColorstr=#000000);
  overflow: hidden;
  border: 0;
}

.mejs-chapters .mejs-chapter .mejs-chapter-block {
  font-size: 11px;
  color: #fff;
  padding: 5px;
  display: block;
  border-right: solid 1px #333;
  border-bottom: solid 1px #333;
  cursor: pointer;
}

.mejs-chapters .mejs-chapter .mejs-chapter-block-last {
  border-right: none;
}

.mejs-chapters .mejs-chapter .mejs-chapter-block:hover {
  background: #666;
  background: rgba(102,102,102, 0.7);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(102,102,102,0.7)), to(rgba(50,50,50,0.6)));
  background: -webkit-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
  background: -moz-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
  background: -o-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
  background: -ms-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
  background: linear-gradient(rgba(102,102,102,0.7), rgba(50,50,50,0.6));
  filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#666666,endColorstr=#323232);
}

.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title {
  font-size: 12px;
  font-weight: bold;
  display: block;
  white-space: nowrap;
  text-overflow: ellipsis;
  margin: 0 0 3px 0;
  line-height: 12px;
}

.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-timespan {
  font-size: 12px;
  line-height: 12px;
  margin: 3px 0 4px 0;
  display: block;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.mejs-captions-layer {
  position: absolute;
  bottom: 0;
  left: 0;
  text-align:center;
  line-height: 22px;
  font-size: 12px;
  color: #fff;
}

.mejs-captions-layer  a {
  color: #fff;
  text-decoration: underline;
}

.mejs-captions-layer[lang=ar] {
  font-size: 20px;
  font-weight: normal;
}

.mejs-captions-position {
  position: absolute;
  width: 100%;
  bottom: 15px;
  left: 0;
}

.mejs-captions-position-hover {
  bottom: 45px;
}

.mejs-captions-text {
  padding: 3px 5px;
  background: url(mediaelement/background.png);
  background: rgba(20, 20, 20, 0.8);

}
/* End: Track (Captions and Chapters) */

/* Start: Error */
.me-cannotplay {
}

.me-cannotplay a {
  color: #fff;
  font-weight: bold;
}

.me-cannotplay span {
  padding: 15px;
  display: block;
}
/* End: Error */

/* Start: Loop */
.mejs-controls .mejs-loop-off button {
  background-position: -64px -16px;
}

.mejs-controls .mejs-loop-on button {
  background-position: -64px 0;
}

/* End: Loop */

/* Start: backlight */
.mejs-controls .mejs-backlight-off button {
  background-position: -80px -16px;
}

.mejs-controls .mejs-backlight-on button {
  background-position: -80px 0;
}
/* End: backlight */

/* Start: Picture Controls */
.mejs-controls .mejs-picturecontrols-button {
  background-position: -96px 0;
}
/* End: Picture Controls */

/* context menu */
.mejs-contextmenu {
  position: absolute;
  width: 150px;
  padding: 10px;
  border-radius: 4px;
  top: 0;
  left: 0;
  background: #fff;
  border: solid 1px #999;
  z-index: 1001; /* make sure it shows on fullscreen */
}
.mejs-contextmenu .mejs-contextmenu-separator {
  height: 1px;
  font-size: 0;
  margin: 5px 6px;
  background: #333;
}

.mejs-contextmenu .mejs-contextmenu-item {
  font-family: Helvetica, Arial;
  font-size: 12px;
  padding: 4px 6px;
  cursor: pointer;
  color: #333;
}
.mejs-contextmenu .mejs-contextmenu-item:hover {
  background: #2C7C91;
  color: #fff;
}

/* Start: Source Chooser */
.mejs-controls .mejs-sourcechooser-button {
  position: relative;
}

.mejs-controls .mejs-sourcechooser-button button {
  background-position: -128px 0;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector {
  visibility: hidden;
  position: absolute;
  bottom: 26px;
  right: -10px;
  width: 130px;
  height: 100px;
  background: url(mediaelement/background.png);
  background: rgba(50,50,50,0.7);
  border: solid 1px transparent;
  padding: 10px;
  overflow: hidden;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul {
  margin: 0;
  padding: 0;
  display: block;
  list-style-type: none !important;
  overflow: hidden;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li {
  margin: 0 0 6px 0;
  padding: 0;
  list-style-type: none !important;
  display: block;
  color: #fff;
  overflow: hidden;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input {
  clear: both;
  float: left;
  margin: 3px 3px 0 5px;
}

.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label {
  width: 100px;
  float: left;
  padding: 4px 0 0 0;
  line-height: 15px;
  font-family: helvetica, arial;
  font-size: 10px;
}
/* End: Source Chooser */

/* Start: Postroll */
.mejs-postroll-layer {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(mediaelement/background.png);
  background: rgba(50,50,50,0.7);
  z-index: 1000;
  overflow: hidden;
}
.mejs-postroll-layer-content {
  width: 100%;
  height: 100%;
}
.mejs-postroll-close {
  position: absolute;
  right: 0;
  top: 0;
  background: url(mediaelement/background.png);
  background: rgba(50,50,50,0.7);
  color: #fff;
  padding: 4px;
  z-index: 100;
  cursor: pointer;
}
/* End: Postroll */

.mejs-audio {
  display: inline-block;
}

.webuploader-container {
  position: relative;
}

.webuploader-for-glyphicon .webuploader-container {
  position: relative;
  padding: 0;
}

.webuploader-for-glyphicon .webuploader-pick {
  position: relative;
  overflow: hidden;
  padding: 5px 10px;
}

.webuploader-container label {
  margin-bottom: 0;
  line-height: 1;
}

.webuploader-container > .glyphicon {
  padding: 8px 10px;
  top: 0;
}

.webuploader-element-invisible {
  position: absolute !important;
  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
    clip: rect(1px,1px,1px,1px);
}
.webuploader-pick {
  position: relative;
  overflow: hidden;
}
.webuploader-pick-hover {
}

.webuploader-pick-disable {
  opacity: 0.6;
  pointer-events:none;
}

.searchSelect {
  height: 46px;
}

.amount-num {
  color: #434343;
}

.inflow-num {
  color: #1bb974;
}

.outflow-num {
  color: #ff7b0e;
}

/**
 * jQuery sortable
 */
body.dragging, body.dragging * {
  cursor: move !important;
}

.dragged {
  position: absolute;
  opacity: 0.5;
  z-index: 2000;
}

ul.sortable-list li.placeholder,
ol.sortable-list li.placeholder,
.panel-sortable .placeholder {
  margin-bottom: 10px 0;
  width: 100%;
  height: 40px;
  background: #FCFFC0;
  border: 1px dashed #ccc;
  list-style: none;
}
tr.placeholder {
  display: block;
  background: red;
  position: relative;
  margin: 0;
  padding: 0;
  border: none;
}
tr.placeholder:before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border: 5px solid transparent;
  border-left-color: red;
  margin-top: -5px;
  left: -5px;
  border-right: none;
}
.sortable-list .sort-handle{
  cursor: move !important;
}
.list-table {
  padding: 0;
}
.list-table .row {
  margin-left: 0px;
}
.list-table>.th {
  border-bottom: 1px solid #ddd;
  font-weight: bold;
}
.list-table-striped>.tr:nth-child(odd) {
  background-color: #f9f9f9;
}
.list-table>.th, .list-table>.tr{
  border-top: 1px solid #ddd;
  margin: 0;
}
.list-table .td {
  line-height: 45px;
  height: 45px;
  word-break: break-all;
  overflow: hidden;
}
.list-table-tree-icon {
  display: inline-block;
  width: 14px;
}
.treegrid-expander {
  cursor: pointer !important;
}

.form-group .select2-container .select2-choice {
  height: 34px;
  line-height: 34px;
}
.form-group .select2-search input, .form-group .select2-search-choice-close, .form-group .select2-container .select2-choice abbr, .form-group .select2-container .select2-choice .select2-arrow b {
  background-size: 60px 50px!important;
}


text:
layout: page
title: Brennan Coast Holdings Seminar
date: 2016-05-24
author: Douglas Gould
tags: weekly links, java
status: published
summary: Vestibulum ante ipsum primis in faucibus orci luctus et.
banner: images/banner/people.jpg
booking:
  startDate: 06/06/2016
  endDate: 06/11/2016
  ctyhocn: CTGHXHX
  groupCode: BCHS
published: true
---
Nulla malesuada tortor eu nulla tempus, ut condimentum tortor luctus. Nullam ultricies, libero ut suscipit luctus, mi diam aliquam diam, eget porta ante ipsum at diam. Cras posuere leo nec elit ultrices venenatis. Fusce ullamcorper odio a mauris convallis molestie. Praesent hendrerit, enim eu placerat lobortis, nibh magna tempus lorem, et consectetur arcu orci sit amet dolor. Duis ac porttitor nunc. Morbi vel blandit erat. Sed sit amet ante id lectus rhoncus malesuada quis in turpis. Phasellus mattis sagittis felis quis gravida. Sed iaculis massa ut ipsum tempus dignissim. Nullam eget nibh in arcu tristique suscipit non a purus. Vivamus commodo imperdiet magna, quis eleifend libero.

1 Morbi laoreet tortor eget nibh porta, non dapibus ipsum mattis
1 In sed quam bibendum, facilisis nulla at, cursus massa
1 Aenean et lacus id orci bibendum porttitor
1 In eu neque porttitor, molestie lorem in, elementum arcu
1 Vivamus euismod turpis eget scelerisque pretium
1 Quisque non enim egestas, venenatis nisi nec, dapibus arcu.

Etiam consequat gravida vehicula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Phasellus egestas elementum tortor, vel commodo erat ultricies vel. Nulla ante metus, blandit commodo nisl ac, iaculis cursus ligula. Donec nunc purus, interdum et cursus ac, gravida non ex. Nulla maximus urna eu dictum ultrices. Nam quis sollicitudin erat. Aliquam commodo lorem efficitur, lacinia ipsum ac, lacinia tortor. Donec et lobortis ante. Ut tristique, felis at egestas aliquam, massa eros bibendum nulla, vel elementum nibh sem nec leo. Maecenas nec justo purus. Vivamus turpis magna, tincidunt ac porta id, facilisis mollis orci. Curabitur sed hendrerit odio, vitae feugiat mi. Praesent non ultricies quam, ac hendrerit dui. Sed dictum quam nec pretium feugiat. Aliquam ullamcorper ultricies ornare.


text:
package com.blazebit.persistence.examples.itsm.model.host.view;

import com.blazebit.persistence.SubqueryInitiator;
import com.blazebit.persistence.examples.itsm.model.host.entity.HostDeviceItemLong;
import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.MappingSubquery;
import com.blazebit.persistence.view.SubqueryProvider;

/**
 * @author Giovanni Lovato
 * @since 1.4.0
 */
@EntityView(HostDeviceItemLong.class)
public interface HostDeviceItemLongLastValue extends HostDeviceItemDetail {

    @MappingSubquery(LastValueProvider.class)
    Long getLastValue();

    class LastValueProvider implements SubqueryProvider {

        @Override
        public <T> T createSubquery(SubqueryInitiator<T> subqueryInitiator) {
            // @formatter:off
            return subqueryInitiator
                    .from("embedding_view(values)", "v")
                    .select("v")
                    .orderByDesc("key(v)")
                    .setMaxResults(1)
                    .end();
            // @formatter:on
        }

    }

}


text:
using System.Runtime;
using System.Runtime.CompilerServices;

namespace System.Buffers.Binary
{
    /// <summary>
    /// Reads bytes as primitives with specific endianness
    /// </summary>
    /// <remarks>
    /// For native formats, SpanExtensions.Read<T> should be used.
    /// Use these helpers when you need to read specific endinanness.
    /// </remarks>
    public static partial class BinaryPrimitives
    {
        /// <summary>
        /// This is a no-op and added only for consistency.
        /// This allows the caller to read a struct of numeric primitives and reverse each field
        /// rather than having to skip sbyte fields.
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static sbyte ReverseEndianness(sbyte value)
        {
            return value;
        }

        /// <summary>
        /// Reverses a primitive value - performs an endianness swap
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static short ReverseEndianness(short value)
        {
            return (short)((value & 0x00FF) << 8 | (value & 0xFF00) >> 8);
        }

        /// <summary>
        /// Reverses a primitive value - performs an endianness swap
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static int ReverseEndianness(int value) => (int)ReverseEndianness((uint)value);

        /// <summary>
        /// Reverses a primitive value - performs an endianness swap
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static long ReverseEndianness(long value) => (long)ReverseEndianness((ulong)value);

        /// <summary>
        /// This is a no-op and added only for consistency.
        /// This allows the caller to read a struct of numeric primitives and reverse each field
        /// rather than having to skip byte fields.
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static byte ReverseEndianness(byte value)
        {
            return value;
        }

        /// <summary>
        /// Reverses a primitive value - performs an endianness swap
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static ushort ReverseEndianness(ushort value)
        {
            return (ushort)((value & 0x00FFU) << 8 | (value & 0xFF00U) >> 8);
        }

        /// <summary>
        /// Reverses a primitive value - performs an endianness swap
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static uint ReverseEndianness(uint value)
        {
            value = (value << 16) | (value >> 16);
            value = (value & 0x00FF00FF) << 8 | (value & 0xFF00FF00) >> 8;
            return value;
        }

        /// <summary>
        /// Reverses a primitive value - performs an endianness swap
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static ulong ReverseEndianness(ulong value)
        {
            value = (value << 32) | (value >> 32);
            value = (value & 0x0000FFFF0000FFFF) << 16 | (value & 0xFFFF0000FFFF0000) >> 16;
            value = (value & 0x00FF00FF00FF00FF) << 8 | (value & 0xFF00FF00FF00FF00) >> 8;
            return value;
        }

        /// <summary>
        /// Reads a structure of type T out of a read-only span of bytes.
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static T ReadMachineEndian<T>(ReadOnlySpan<byte> buffer)
            where T : struct
        {
#if netstandard
            if (SpanHelpers.IsReferenceOrContainsReferences<T>())
            {
                ThrowHelper.ThrowArgumentException_InvalidTypeWithPointersNotSupported(typeof(T));
            }
#else
            if (RuntimeHelpers.IsReferenceOrContainsReferences<T>())
            {
                throw new ArgumentException(SR.Format(SR.Argument_InvalidTypeWithPointersNotSupported, typeof(T)));
            }
#endif
            if (Unsafe.SizeOf<T>() > buffer.Length)
            {
                throw new ArgumentOutOfRangeException();
            }
            return Unsafe.ReadUnaligned<T>(ref buffer.DangerousGetPinnableReference());
        }

        /// <summary>
        /// Reads a structure of type T out of a span of bytes.
        /// <returns>If the span is too small to contain the type T, return false.</returns>
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static bool TryReadMachineEndian<T>(ReadOnlySpan<byte> buffer, out T value)
            where T : struct
        {
#if netstandard
            if (SpanHelpers.IsReferenceOrContainsReferences<T>())
            {
                ThrowHelper.ThrowArgumentException_InvalidTypeWithPointersNotSupported(typeof(T));
            }
#else
            if (RuntimeHelpers.IsReferenceOrContainsReferences<T>())
            {
                throw new ArgumentException(SR.Format(SR.Argument_InvalidTypeWithPointersNotSupported, typeof(T)));
            }
#endif
            if (Unsafe.SizeOf<T>() > (uint)buffer.Length)
            {
                value = default;
                return false;
            }
            value = Unsafe.ReadUnaligned<T>(ref buffer.DangerousGetPinnableReference());
            return true;
        }
    }
}