text:
namespace HydrantWiki.Mobile.Api.ResponseObjects
{
    public class PagedResponse : BaseResponse
    {
        public PagedResponse() { }

        public PagedResponse(int _currentPage, int _pageSize, int _totalPages, int _totalItems)
            : base(true)
        {
            CurrentPage = _currentPage;
            PageSize = _pageSize;
            TotalPages = _totalPages;
            TotalItems = _totalItems;
        }

        public int CurrentPage { get; set; }
        public int PageSize { get; set; }
        public int TotalPages { get; set; }
        public int TotalItems { get; set; }
    }
}

redpajama_set_name: RedPajamaGithub


text:
// Copyright (C) 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html

#include "unicode/utypes.h"

#if !UCONFIG_NO_FORMATTING

#include "unicode/fpositer.h"
#include "cmemory.h"
#include "uvectr32.h"

U_NAMESPACE_BEGIN

FieldPositionIterator::~FieldPositionIterator() {
  delete data;
  data = NULL;
  pos = -1;
}

FieldPositionIterator::FieldPositionIterator()
    : data(NULL), pos(-1) {
}

FieldPositionIterator::FieldPositionIterator(const FieldPositionIterator &rhs)
  : UObject(rhs), data(NULL), pos(rhs.pos) {

  if (rhs.data) {
    UErrorCode status = U_ZERO_ERROR;
    data = new UVector32(status);
    data->assign(*rhs.data, status);
    if (status != U_ZERO_ERROR) {
      delete data;
      data = NULL;
      pos = -1;
    }
  }
}

UBool FieldPositionIterator::operator==(const FieldPositionIterator &rhs) const {
  if (&rhs == this) {
    return TRUE;
  }
  if (pos != rhs.pos) {
    return FALSE;
  }
  if (!data) {
    return rhs.data == NULL;
  }
  return rhs.data ? data->operator==(*rhs.data) : FALSE;
}

void FieldPositionIterator::setData(UVector32 *adopt, UErrorCode& status) {
  // Verify that adopt has valid data, and update status if it doesn't.
  if (U_SUCCESS(status)) {
    if (adopt) {
      if (adopt->size() == 0) {
        delete adopt;
        adopt = NULL;
      } else if ((adopt->size() % 3) != 0) {
        status = U_ILLEGAL_ARGUMENT_ERROR;
      } else {
        for (int i = 1; i < adopt->size(); i += 3) {
          if (adopt->elementAti(i) >= adopt->elementAti(i+1)) {
            status = U_ILLEGAL_ARGUMENT_ERROR;
            break;
          }
        }
      }
    }
  }

  // We own the data, even if status is in error, so we need to delete it now
  // if we're not keeping track of it.
  if (!U_SUCCESS(status)) {
    delete adopt;
    return;
  }

  delete data;
  data = adopt;
  pos = adopt == NULL ? -1 : 0;
}

UBool FieldPositionIterator::next(FieldPosition& fp) {
  if (pos == -1) {
    return FALSE;
  }

  fp.setField(data->elementAti(pos++));
  fp.setBeginIndex(data->elementAti(pos++));
  fp.setEndIndex(data->elementAti(pos++));

  if (pos == data->size()) {
    pos = -1;
  }

  return TRUE;
}

U_NAMESPACE_END

#endif /* #if !UCONFIG_NO_FORMATTING */


text:
{-# LANGUAGE Safe #-}
-- |
-- Maintainer  : Ricky Elrod <ricky@elrod.me>
-- Stability   : stable, changes with new languages

module Evalso.Cruncher.Language.Everything (
    languages
  , module L
) where

import Data.Map (Map)
import qualified Data.Map as Map

import Evalso.Cruncher.Language (Language (..))

-- Language imports here.
import Evalso.Cruncher.Language.Bash as L
import Evalso.Cruncher.Language.C as L
import Evalso.Cruncher.Language.ChickenScheme as L
import Evalso.Cruncher.Language.CPlusPlus as L
import Evalso.Cruncher.Language.Clojure as L
import Evalso.Cruncher.Language.CoffeeScript as L
import Evalso.Cruncher.Language.CSharp as L
import Evalso.Cruncher.Language.Elixir as L
import Evalso.Cruncher.Language.Factor as L
import Evalso.Cruncher.Language.FSharp as L
import Evalso.Cruncher.Language.Go as L
import Evalso.Cruncher.Language.Haskell as L
import Evalso.Cruncher.Language.Idris as L
import Evalso.Cruncher.Language.Io as L
import Evalso.Cruncher.Language.Java as L
import Evalso.Cruncher.Language.JavaScript as L
import Evalso.Cruncher.Language.JRuby18 as L
import Evalso.Cruncher.Language.LOLCODE as L
import Evalso.Cruncher.Language.Lua as L
import Evalso.Cruncher.Language.Perl6 as L
import Evalso.Cruncher.Language.Perl as L
import Evalso.Cruncher.Language.PHP as L
import Evalso.Cruncher.Language.Python2 as L
import Evalso.Cruncher.Language.Ruby as L
import Evalso.Cruncher.Language.Rust as L
import Evalso.Cruncher.Language.Scala as L
import Evalso.Cruncher.Language.Smalltalk as L
import Evalso.Cruncher.Language.SML as L
import Evalso.Cruncher.Language.VBNET as L

-- | A map of languages, by name.
--
--   Effective use of this map requires importing 'Data.Map.lookup' and using
--   it to get a 'Maybe' 'Language'
languages :: Map String Language
languages = Map.fromList
  [
    ("bash", bash)
  , ("c++", cplusplus)
  , ("c", c)
  , ("chickenscheme", chickenscheme)
  , ("clojure", clojure)
  , ("coffeescript", coffeescript)
  , ("csharp", csharp)
  , ("elixir", elixir)
  , ("factor", factor)
  , ("fsharp", fsharp)
  , ("go", go)
  , ("haskell", haskell)
  , ("idris", idris)
  , ("io", io)
  , ("java", java)
  , ("javascript", javascript)
  , ("jruby18", jruby18)
  , ("lolcode", lolcode)
  , ("lua", lua)
  , ("perl6", perl6)
  , ("perl", perl)
  , ("php", php)
  , ("python2", python2)
  , ("ruby", ruby)
  , ("rust", rust)
  , ("scala", scala)
  , ("smalltalk", smalltalk)
  , ("sml", sml)
  , ("vbnet", vbnet)
  ]


text:
// Copyright (C) 2012 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.gerrit.client.rpc;

import static com.google.gwt.http.client.RequestBuilder.DELETE;
import static com.google.gwt.http.client.RequestBuilder.GET;
import static com.google.gwt.http.client.RequestBuilder.POST;
import static com.google.gwt.http.client.RequestBuilder.PUT;

import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.RpcStatus;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.RequestBuilder.Method;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONException;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.StatusCodeException;

/** Makes a REST API call to the server. */
public class RestApi {
  private static final int SC_UNAVAILABLE = 2;
  private static final int SC_BAD_TRANSPORT = 3;
  private static final int SC_BAD_RESPONSE = 4;
  private static final String JSON_TYPE = "application/json";
  private static final String JSON_UTF8 = JSON_TYPE + "; charset=utf-8";
  private static final String TEXT_TYPE = "text/plain";

  /**
   * Expected JSON content body prefix that prevents XSSI.
   *

   * The server always includes this line as the first line of the response
   * content body when the response body is formatted as JSON. It gets inserted
   * by the server to prevent the resource from being imported into another
   * domain's page using a <script> tag. This line must be removed before
   * the JSON can be parsed.
   */
  private static final String JSON_MAGIC = ")]}'\n";

  /** True if err is a StatusCodeException reporting Not Found. */
  public static boolean isNotFound(Throwable err) {
    return isStatus(err, Response.SC_NOT_FOUND);
  }

  /** True if err is describing a user that is currently anonymous. */
  public static boolean isNotSignedIn(Throwable err) {
    if (err instanceof StatusCodeException) {
      StatusCodeException sce = (StatusCodeException) err;
      if (sce.getStatusCode() == Response.SC_UNAUTHORIZED) {
        return true;
      }
      return sce.getStatusCode() == Response.SC_FORBIDDEN
          && (sce.getEncodedResponse().equals("Authentication required")
              || sce.getEncodedResponse().startsWith("Must be signed-in"));
    }
    return false;
  }

  /** True if err is a StatusCodeException with a specific HTTP code. */
  public static boolean isStatus(Throwable err, int status) {
    return err instanceof StatusCodeException
        && ((StatusCodeException) err).getStatusCode() == status;
  }

  /** Is the Gerrit Code Review server likely to return this status? */
  public static boolean isExpected(int statusCode) {
    switch (statusCode) {
      case SC_UNAVAILABLE:
      case 400: // Bad Request
      case 401: // Unauthorized
      case 403: // Forbidden
      case 404: // Not Found
      case 405: // Method Not Allowed
      case 409: // Conflict
      case 412: // Precondition Failed
      case 429: // Too Many Requests (RFC 6585)
        return true;

      default:
        // Assume any other code is not expected. These may be
        // local proxy server errors outside of our control.
        return false;
    }
  }

  private static class HttpCallback<T extends JavaScriptObject>
      implements RequestCallback {
    private final AsyncCallback<T> cb;

    HttpCallback(AsyncCallback<T> cb) {
      this.cb = cb;
    }

    @Override
    public void onResponseReceived(Request req, Response res) {
      int status = res.getStatusCode();
      if (status == Response.SC_NO_CONTENT) {
        cb.onSuccess(null);
        RpcStatus.INSTANCE.onRpcComplete();

      } else if (200 <= status && status < 300) {
        if (!isJsonBody(res)) {
          RpcStatus.INSTANCE.onRpcComplete();
          cb.onFailure(new StatusCodeException(SC_BAD_RESPONSE, "Expected "
              + JSON_TYPE + "; received Content-Type: "
              + res.getHeader("Content-Type")));
          return;
        }

        T data;
        try {
          // javac generics bug
          data = RestApi.<T>cast(parseJson(res));
        } catch (JSONException e) {
          RpcStatus.INSTANCE.onRpcComplete();
          cb.onFailure(new StatusCodeException(SC_BAD_RESPONSE,
              "Invalid JSON: " + e.getMessage()));
          return;
        }

        cb.onSuccess(data);
        RpcStatus.INSTANCE.onRpcComplete();

      } else {
        String msg;
        if (isTextBody(res)) {
          msg = res.getText().trim();
        } else if (isJsonBody(res)) {
          JSONValue v;
          try {
            v = parseJson(res);
          } catch (JSONException e) {
            v = null;
          }
          if (v != null && v.isString() != null) {
            msg = v.isString().stringValue();
          } else {
            msg = trimJsonMagic(res.getText()).trim();
          }
        } else {
          msg = res.getStatusText();
        }

        RpcStatus.INSTANCE.onRpcComplete();
        cb.onFailure(new StatusCodeException(status, msg));
      }
    }

    @Override
    public void onError(Request req, Throwable err) {
      RpcStatus.INSTANCE.onRpcComplete();
      if (err.getMessage().contains("XmlHttpRequest.status")) {
        cb.onFailure(new StatusCodeException(
            SC_UNAVAILABLE,
            RpcConstants.C.errorServerUnavailable()));
      } else {
        cb.onFailure(new StatusCodeException(SC_BAD_TRANSPORT, err.getMessage()));
      }
    }
  }

  private StringBuilder url;
  private boolean hasQueryParams;
  private String ifNoneMatch;

  /**
   * Initialize a new API call.
   *

   * By default the JSON format will be selected by including an HTTP Accept
   * header in the request.
   *
   * @param name URL of the REST resource to access, e.g. {@code "/projects/"}
   *        to list accessible projects from the server.
   */
  public RestApi(String name) {
    if (name.startsWith("/")) {
      name = name.substring(1);
    }

    url = new StringBuilder();
    url.append(GWT.getHostPageBaseURL());
    url.append(name);
  }

  public RestApi view(String name) {
    return idRaw(name);
  }

  public RestApi id(String id) {
    return idRaw(URL.encodeQueryString(id));
  }

  public RestApi id(int id) {
    return idRaw(Integer.toString(id));
  }

  public RestApi idRaw(String name) {
    if (hasQueryParams) {
      throw new IllegalStateException();
    }
    if (url.charAt(url.length() - 1) != '/') {
      url.append('/');
    }
    url.append(name);
    return this;
  }

  public RestApi addParameter(String name, String value) {
    return addParameterRaw(name, URL.encodeQueryString(value));
  }

  public RestApi addParameter(String name, String... value) {
    for (String val : value) {
      addParameter(name, val);
    }
    return this;
  }

  public RestApi addParameterTrue(String name) {
    return addParameterRaw(name, null);
  }

  public RestApi addParameter(String name, boolean value) {
    return addParameterRaw(name, value ? "t" : "f");
  }

  public RestApi addParameter(String name, int value) {
    return addParameterRaw(name, String.valueOf(value));
  }

  public RestApi addParameter(String name, Enum<?> value) {
    return addParameterRaw(name, value.name());
  }

  public RestApi addParameterRaw(String name, String value) {
    if (hasQueryParams) {
      url.append("&");
    } else {
      url.append("?");
      hasQueryParams = true;
    }
    url.append(name);
    if (value != null) {
      url.append("=").append(value);
    }
    return this;
  }

  public RestApi ifNoneMatch() {
    return ifNoneMatch("*");
  }

  public RestApi ifNoneMatch(String etag) {
    ifNoneMatch = etag;
    return this;
  }

  public String url() {
    return url.toString();
  }

  public <T extends JavaScriptObject> void get(AsyncCallback<T> cb) {
    send(GET, cb);
  }

  public <T extends JavaScriptObject> void delete(AsyncCallback<T> cb) {
    send(DELETE, cb);
  }

  private <T extends JavaScriptObject> void send(
      Method method, AsyncCallback<T> cb) {
    HttpCallback<T> httpCallback = new HttpCallback<T>(cb);
    try {
      RpcStatus.INSTANCE.onRpcStart();
      request(method).sendRequest(null, httpCallback);
    } catch (RequestException e) {
      httpCallback.onError(null, e);
    }
  }

  public <T extends JavaScriptObject> void post(
      JavaScriptObject content,
      AsyncCallback<T> cb) {
    sendJSON(POST, content, cb);
  }

  public <T extends JavaScriptObject> void put(AsyncCallback<T> cb) {
    send(PUT, cb);
  }

  public <T extends JavaScriptObject> void put(
      JavaScriptObject content,
      AsyncCallback<T> cb) {
    sendJSON(PUT, content, cb);
  }

  private <T extends JavaScriptObject> void sendJSON(
      Method method, JavaScriptObject content,
      AsyncCallback<T> cb) {
    HttpCallback<T> httpCallback = new HttpCallback<T>(cb);
    try {
      RpcStatus.INSTANCE.onRpcStart();
      String body = new JSONObject(content).toString();
      RequestBuilder req = request(method);
      req.setHeader("Content-Type", JSON_UTF8);
      req.sendRequest(body, httpCallback);
    } catch (RequestException e) {
      httpCallback.onError(null, e);
    }
  }

  private RequestBuilder request(Method method) {
    RequestBuilder req = new RequestBuilder(method, url());
    if (ifNoneMatch != null) {
      req.setHeader("If-None-Match", ifNoneMatch);
    }
    req.setHeader("Accept", JSON_TYPE);
    if (Gerrit.getAuthorization() != null) {
      req.setHeader("Authorization", Gerrit.getAuthorization());
    }
    return req;
  }

  private static boolean isJsonBody(Response res) {
    return isContentType(res, JSON_TYPE);
  }

  private static boolean isTextBody(Response res) {
    return isContentType(res, TEXT_TYPE);
  }

  private static boolean isContentType(Response res, String want) {
    String type = res.getHeader("Content-Type");
    if (type == null) {
      return false;
    }
    int semi = type.indexOf(';');
    if (semi >= 0) {
      type = type.substring(0, semi).trim();
    }
    return want.equals(type);
  }

  private static JSONValue parseJson(Response res)
      throws JSONException {
    String json = trimJsonMagic(res.getText());
    if (json.isEmpty()) {
      throw new JSONException("response was empty");
    }
    return JSONParser.parseStrict(json);
  }

  private static String trimJsonMagic(String json) {
    if (json.startsWith(JSON_MAGIC)) {
      json = json.substring(JSON_MAGIC.length());
    }
    return json;
  }

  @SuppressWarnings("unchecked")
  private static <T extends JavaScriptObject> T cast(JSONValue val) {
    if (val.isObject() != null) {
      return (T) val.isObject().getJavaScriptObject();
    } else if (val.isArray() != null) {
      return (T) val.isArray().getJavaScriptObject();
    } else if (val.isString() != null) {
      return (T) NativeString.wrap(val.isString().stringValue());
    } else if (val.isNull() != null) {
      return null;
    } else {
      throw new JSONException("unsupported JSON type");
    }
  }
}


text:
<!DOCTYPE html>

<title>Com2You</title>

<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="We Plan Responsive web template, Bootstrap Web Templates, Flat Web Templates, Android Compatible web template,
Smartphone Compatible web template, free webdesigns for Nokia, Samsung, LG, SonyEricsson, Motorola web design" />

<link href="<?php echo(base_url());?>Content/bootstrap.css" type="text/css" rel="stylesheet" media="all">
<link href="<?php echo(base_url()); ?>/Content/style.css" type="text/css" rel="stylesheet" media="all">
<link rel="stylesheet" type="text/css" href="<?php echo(base_url()); ?>/Content/component.css" />

<link rel="stylesheet" type="text/css" href="<?php echo(base_url()); ?>/Scripts/toastr.css" />

    <link href='//fonts.googleapis.com/css?family=Pacifico' rel='stylesheet' type='text/css'>
    <link href='//fonts.googleapis.com/css?family=Roboto:400,500,700' rel='stylesheet' type='text/css'>

 Tchat

			    <input class="col-md-9 form-control" type ="text" id="txtMessage" name="txtMessage" value=""/>

			    <input  class="col-md-3 form-control connexion"   type="button" id="btMessage" name="btMessage" value="Envoyer"
			    onclick="sendMessage();"/>

   <input type="hidden" id="senderId" name="senderId" value="<?php  echo $_SESSION['com2youuserid'];?>"/>

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


text:
CREATE TABLE only_foreign_keys_and_id (
  id INT AUTO_INCREMENT PRIMARY KEY,
  sample_id INT,
  car_id INT,
  FOREIGN KEY (sample_id) REFERENCES sample_table (id),
  FOREIGN KEY (car_id) REFERENCES cars (id)
);


text:
using UnityEngine;
using System.Collections;

public class LargeEnemy : MonoBehaviour {// no slow
	//public Texture2D test1;
	//	public Texture2D test2;
	public GameObject explosion;
	bool once = false;
	public float health = 10;
	public static float increase1 = 0;
	public GameObject chest;
	bool oncea = false;
	bool onceb = false;

	bool ready = true;
	float timer = 0;
	public GameObject slime;
	// Use this for initialization
	void Start () {

	}

	// Update is called once per frame
	void Update ()
	{

	}

	void OnCollisionEnter(Collision collision){
		if(collision.collider.tag == "Mortar")
		{
			//health= health - (health+ increase1*(health/100));
			//Instantiate(explosion, collision.contacts[0].point, Quaternion.identity);
			Destroy(collision.collider.gameObject);
		}
		if(collision.collider.tag == "RapidBullet")
		{
			//health= health - (health+ increase1*(health/100));

			Destroy(collision.collider.gameObject);
		}
		if(collision.collider.tag == "Slow")
		{
			//health= health - (health+ increase1*(health/100));
			//health = health-1;
			//renderer.material.mainTexture = test2;
			//gameObject.GetComponent<ShipSmoothMove>().maxSpeed = 1;
			Destroy(collision.collider.gameObject);

			if(ready == true){
				//GameObject slowdown = Instantiate(slime, transform.position,transform.rotation) as GameObject;
				oncea = true;
				onceb = true;
				ready = false;}
		}
		if(collision.collider.tag == "Bullet")
		{
			//health= health - (health+ increase1*(health/100));
			health = health-2;
			Destroy(collision.collider.gameObject);
		}
		if(collision.collider.tag == "Explosion")
		{
			health = health -5;
			//Destroy(collision.collider.gameObject);
		}

		if(health <= 0&& once == false)
		{	GUIControllerFireEmblem.highScorePDF = GUIControllerFireEmblem.highScorePDF + 1250;// add 1000 to high score
			DeadCount.numberDead+= 1;
			Destroy(collision.collider.gameObject);
			once = true;

			//EnergyManager.energy += energyBonus;
			//	Quaternion pathObjectOrientation = Quaternion.LookRotation(pathPoints[0].transform.position - transform.position);
			Vector3 chestPosition  = new Vector3(transform.position.x,transform.position.y+30,transform.position.z);
			GameObject test = Instantiate(chest, chestPosition, Quaternion.identity) as GameObject;
			Destroy(gameObject);
		}
	}
}


text:
require 'appdash/span/id'

module Appdash
  class Span

    # @attr_reader :root_id returns the root span ID
    attr_reader :root_id

    # @attr_reader :id returns the current span ID
    attr_reader :id

    def initialize(client)
      @client  = client
      @packets = []
      @root_id = Appdash::Span::ID.new
      @id      = root_id
    end

    # Appends a new Appdash::Event::SpanName event
    def name(val)
      event Appdash::Event::SpanName.new(val)
    end

    # Appends a new Appdash::Event::Message event
    def message(msg)
      event Appdash::Event::Message.new(msg)
    end

    # Appends a new Appdash::Event::Log event
    def log(msg)
      event Appdash::Event::Log.new(msg)
    end

    # Appends a generic Appdash::Event event
    def event(evt)
      @packets.push Appdash::CollectPacket.build(evt, @id)
      @id = @id.child
    end

    def flush
      count = @packets.size
      @client.send :write, @packets
      @packets.clear
      count
    end

  end
end


text:
@import url(http://fonts.googleapis.com/css?family=Indie+Flower);
@import url(http://fonts.googleapis.com/css?family=Indie+Flower);
@import url(http://fonts.googleapis.com/css?family=Indie+Flower);
@import url(http://fonts.googleapis.com/css?family=Indie+Flower);
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/******************************************************* COLOURS *******************************************************/
/******************************************************* GRAPHICS PATHS *******************************************************/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/******************************************************* COLOURS *******************************************************/
/******************************************************* GRAPHICS PATHS *******************************************************/
@keyframes growing {
  0% {
    transform: scale(1);
    background-color: rgba(255, 255, 255, 0); }
  50% {
    transform: scale(1.15);
    background-color: rgba(255, 255, 255, 0.7); }
  100% {
    transform: scale(1);
    background-color: white; } }
/******************************************** Main menu *******************************************/
#aplication_menu_container {
  width: 100%;
  padding: 10px 0;
  box-shadow: 0 0 6px 0 black;
  background: #fefdca;
  background: -webkit-gradient(linear, left top, left bottom, from(#FFFEFDCA), to(#FFF7F381));
  background: -moz-linear-gradient(center top, #fefdca 0%, #f7f381 30%);
  background: -moz-gradient(center top, #fefdca 0%, #f7f381 30%);
  background: -webkit-linear-gradient(top, #fefdca 0%, #f7f381 30%);
  background: -o-linear-gradient(top, #fefdca 0%, #f7f381 30%);
  background: -ms-linear-gradient(top, #fefdca 0%, #f7f381 30%);
  background: linear-gradient(to bottom, #fefdca 0%, #f7f381 30%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFEFDCA', endColorstr='#FFF7F381',GradientType=0 ); }
  #aplication_menu_container #aplication_menu_toggle {
    display: none;
    width: 60%;
    margin: 15px auto;
    width: 200px;
    padding: 15px;
    border: 1px solid black; }
  #aplication_menu_container .aplication_menu_position {
    height: 0;
    overflow: hidden;
    width: 10%;
    padding-bottom: 10%;
    margin: 0 5%;
    border: 1px solid black;
    float: left; }
    #aplication_menu_container .aplication_menu_position:hover {
      box-shadow: 0 0 10px 1px #1e1e6e; }
  #aplication_menu_container .currert {
    border: 2px solid red; }
  #aplication_menu_container .currert_line {
    background: url("/calculus_symfony/web/js/baranek/app/img/menu/location.png") no-repeat center center; }
  #aplication_menu_container .courses_list {
    background: url("/calculus_symfony/web/js/baranek/app/img/menu/list.png") no-repeat center center; }
  #aplication_menu_container .titles {
    background: url("/calculus_symfony/web/js/baranek/app/img/menu/crown.png") no-repeat center center; }
  #aplication_menu_container .achievements {
    background: url("/calculus_symfony/web/js/baranek/app/img/menu/puchar.png") no-repeat center center; }
  #aplication_menu_container .my_courses {
    background: url("/calculus_symfony/web/js/baranek/app/img/menu/person.png") no-repeat center center; }
  #aplication_menu_container .currert_line, #aplication_menu_container .courses_list, #aplication_menu_container .titles, #aplication_menu_container .achievements, #aplication_menu_container .my_courses {
    background-size: 80% 80%; }
  #aplication_menu_container .selectedView {
    box-shadow: 0 0 10px 1px #1e1e6e;
    animation-name: growing;
    animation-duration: 1s;
    background-color: white; }
  @media all and (max-width: 700px) {
    #aplication_menu_container .aplication_menu_position {
      width: 18%;
      padding-bottom: 18%;
      margin: 0 1%; }
      #aplication_menu_container .aplication_menu_position:hover {
        box-shadow: 0 0 5px 0 #1e1e6e; } }

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/******************************************************* COLOURS *******************************************************/
/******************************************************* GRAPHICS PATHS *******************************************************/
.cloud_container {
  width: 100%;
  display: inline-block;
  margin-bottom: 25px; }
  .cloud_container .cloud_content {
    border: 1px solid silver;
    display: inline-block;
    width: 100%;
    -moz-box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.2);
    box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.2);
    background-color: white;
    position: relative;
    line-height: 1.54em;
    z-index: 2; }
    .cloud_container .cloud_content.cloud_bottom {
      border-radius: 20px 20px 20px 0px; }
      .cloud_container .cloud_content.cloud_bottom div {
        border-radius: 20px 20px 20px 0px; }
      .cloud_container .cloud_content.cloud_bottom::before {
        -ms-transform: skewX(135deg);
        -webkit-transform: skewX(135deg);
        transform: skewX(135deg);
        bottom: -1px;
        border-bottom: 1px solid silver;
        border-right: 1px solid silver; }
    .cloud_container .cloud_content.cloud_top {
      border-radius: 0px 20px 20px 20px; }
      .cloud_container .cloud_content.cloud_top div {
        border-radius: 0px 20px 20px 20px; }
      .cloud_container .cloud_content.cloud_top::before {
        -ms-transform: skewX(45deg);
        -webkit-transform: skewX(45deg);
        transform: skewX(45deg);
        top: -1px;
        border-top: 1px solid silver;
        border-left: 1px solid silver; }
    .cloud_container .cloud_content.cloud_mid_top {
      border-radius: 20px 20px 20px 20px; }
      .cloud_container .cloud_content.cloud_mid_top div {
        border-radius: 20px 20px 20px 20px; }
      .cloud_container .cloud_content.cloud_mid_top::before {
        left: 50%;
        top: -5px;
        -ms-transform: skewX(0) rotate(45deg);
        -webkit-transform: skewX(0) rotate(45deg);
        transform: skewX(0) rotate(45deg); }
    .cloud_container .cloud_content.cloud_top::before, .cloud_container .cloud_content.cloud_bottom::before {
      left: -10px; }
    @media all and (max-width: 649.99px) {
      .cloud_container .cloud_content.cloud_top div, .cloud_container .cloud_content.cloud_bottom div, .cloud_container .cloud_content.cloud_mid_top div {
        border-radius: 20px 20px 20px 20px; } }
    @media all and (max-width: 649.99px) {
      .cloud_container .cloud_content.cloud_top, .cloud_container .cloud_content.cloud_bottom, .cloud_container .cloud_content.cloud_mid_top {
        border-radius: 20px 20px 20px 20px; } }
    .cloud_container .cloud_content.cloud_top::before, .cloud_container .cloud_content.cloud_bottom::before, .cloud_container .cloud_content.cloud_mid_top::before {
      content: '';
      display: block;
      -moz-box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.2);
      -webkit-box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.2);
      box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.2);
      height: 17px;
      width: 17px;
      background-color: #fff;
      position: absolute;
      z-index: 1; }
      @media all and (max-width: 649.99px) {
        .cloud_container .cloud_content.cloud_top::before, .cloud_container .cloud_content.cloud_bottom::before, .cloud_container .cloud_content.cloud_mid_top::before {
          left: 50%;
          top: -5px;
          -ms-transform: skewX(0) rotate(45deg);
          -webkit-transform: skewX(0) rotate(45deg);
          transform: skewX(0) rotate(45deg); } }
    .cloud_container .cloud_content div {
      position: relative;
      background-color: #fff;
      z-index: 2;
      padding: 15px 3%; }

.tooltip_cloud, .cloud {
  margin: 8px;
  text-align: justify;
  min-width: 250px;
  max-width: 350px;
  -moz-box-shadow: 0 1px 4px 1px rgba(0, 0, 0, 0.6);
  -webkit-box-shadow: 0 1px 4px 1px rgba(0, 0, 0, 0.6);
  box-shadow: 0 1px 4px 1px rgba(0, 0, 0, 0.6);
  border-radius: 10px;
  background-color: white;
  position: absolute;
  z-index: 2000; }
  .tooltip_cloud .tooltip_content_header, .cloud .tooltip_content_header {
    margin: 3px;
    padding: 5px;
    border-radius: 10px 10px 0 0;
    width: 100%;
    text-align: right; }
    .tooltip_cloud .tooltip_content_header button, .cloud .tooltip_content_header button {
      border: none;
      background: transparent;
      margin: 5px;
      font-size: 20px; }
  .tooltip_cloud .tooltip_content, .cloud .tooltip_content {
    margin: 3px;
    padding: 8px 15px;
    font-size: 16px;
    line-height: 1.4rem; }
  .tooltip_cloud .tooltip_content_footer, .cloud .tooltip_content_footer {
    margin: 3px;
    padding: 5px;
    border-radius: 0 0 10px 10px;
    font-size: 16px;
    line-height: 1.4rem;
    width: 100%;
    text-align: center; }
    .tooltip_cloud .tooltip_content_footer button, .cloud .tooltip_content_footer button {
      border: none;
      background: transparent;
      margin: 0 auto 10px auto;
      font-size: 20px; }

.tooltip_triangle, .cloud_triangle {
  margin: 8px;
  padding: 8px;
  width: 18px;
  height: 18px;
  background-color: white;
  position: absolute;
  -moz-transform: rotate(60deg) skewX(30deg);
  -webkit-transform: rotate(60deg) skewX(30deg);
  -o-transform: rotate(60deg) skewX(30deg);
  -ms-transform: rotate(60deg) skewX(30deg);
  transform: rotate(60deg) skewX(30deg);
  -moz-box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.6);
  -webkit-box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.6);
  box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.6);
  z-index: 100; }

.guide_hide {
  display: none; }

.guide_start {
  width: 100%;
  margin: 30px auto 0 auto; }

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/******************************************************* COLOURS *******************************************************/
/******************************************************* GRAPHICS PATHS *******************************************************/
.pseudo_cell.image {
  width: 28%; }
  .pseudo_cell.image img.welcoming_ram {
    display: block;
    width: 100%;
    height: auto; }
    @media all and (max-width: 649.99px) {
      .pseudo_cell.image img.welcoming_ram {
        width: 70%;
        margin: auto; } }

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/******************************************************* COLOURS *******************************************************/
/******************************************************* GRAPHICS PATHS *******************************************************/
.badge_img {
  width: 80%;
  height: auto; }

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/******************************************************* COLOURS *******************************************************/
/******************************************************* GRAPHICS PATHS *******************************************************/
#baranek_titles_block .throne {
  height: auto;
  width: 100%; }
#baranek_titles_block .search_title {
  width: 80%;
  max-width: 400px; }
#baranek_titles_block #titles_form .single_title_name {
  display: inline-block;
  width: 100%; }
  #baranek_titles_block #titles_form .single_title_name .single_title_input {
    display: none; }
  #baranek_titles_block #titles_form .single_title_name:hover {
    cursor: pointer; }

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/******************************************************* COLOURS *******************************************************/
/******************************************************* GRAPHICS PATHS *******************************************************/
#courses_list .add_info_wrapper {
  display: inline-block; }
  @media all and (max-width: 600px) {
    #courses_list .add_info_wrapper {
      display: block;
      margin: 20px auto 0 auto;
      text-align: center; } }
#courses_list .play_course {
  border: none;
  display: inline-block;
  background-color: rgba(34, 177, 76, 0.6);
  font-size: 24px;
  box-shadow: 0 0 10px 0 black;
  border-radius: 50%;
  text-align: center;
  padding: 6px 4px 6px 8px;
  margin-left: 20px;
  transition-duration: 0.15s;
  color: rgba(0, 0, 0, 0.5); }
  #courses_list .play_course:hover {
    background-color: rgba(255, 255, 128, 0.6); }
  #courses_list .play_course:active {
    box-shadow: 0 0 2px 0 black; }
  @media all and (max-width: 600px) {
    #courses_list .play_course {
      margin-left: 0; } }
#courses_list .passed {
  border: 3px solid rgba(34, 177, 76, 0.8);
  display: inline-block;
  color: rgba(34, 177, 76, 0.9);
  background-color: transparent;
  font-size: 24px;
  border-radius: 50%;
  text-align: center;
  padding: 8px 10px;
  margin-left: 20px; }

#my_courses_pannel {
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  top: 0;
  left: 0;
  z-index: 10000; }
  #my_courses_pannel #switch_course_pannel {
    width: 60%;
    min-width: 280px;
    background-color: white;
    border: 4px groove black;
    padding: 5% 5% 2% 5%;
    margin: 5% auto 0 auto; }
  #my_courses_pannel .pseudo_row:hover {
    transition-duration: 1s;
    background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IiIgcj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iNTMlIiBzdG9wLWNvbG9yPSIjZjJmMmYyIiBzdG9wLW9wYWNpdHk9IjAuNDciLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4wIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g');
    background-size: 100%;
    background-image: -moz-radial-gradient(center, ellipse cover, #ffffff 0%, rgba(242, 242, 242, 0.47) 53%, rgba(255, 255, 255, 0) 100%);
    background-image: -webkit-radial-gradient(center, ellipse cover, #ffffff 0%, rgba(242, 242, 242, 0.47) 53%, rgba(255, 255, 255, 0) 100%);
    background-image: radial-gradient(ellipse cover at center, #ffffff 0%, rgba(242, 242, 242, 0.47) 53%, rgba(255, 255, 255, 0) 100%); }

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/******************************************************* COLOURS *******************************************************/
/******************************************************* GRAPHICS PATHS *******************************************************/
@media all and (min-width: 850px) {
  #my_courses_list {
    width: 82%; } }
@media all and (min-width: 650px) and (max-width: 849.99px) {
  #my_courses_list {
    width: 90%; } }
@media all and (max-width: 649.99px) {
  #my_courses_list {
    width: 98%; } }
#my_courses_list .pseudo_row:not(:last-of-type) {
  border-bottom: 1px solid black; }

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

/******************************************************* COLOURS *******************************************************/
/******************************************************* GRAPHICS PATHS *******************************************************/
/***************************************** Currert course *****************************************/
.course_start img {
  max-width: 200px; }

.currert_course_message_wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
  background: rgba(0, 0, 0, 0.5); }
  .currert_course_message_wrapper .currert_course_message_content {
    width: 100%;
    max-width: 500px;
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translate(-50%);
    border: 4px groove grey;
    background-color: white; }
    @media all and (max-width: 500px) {
      .currert_course_message_wrapper .currert_course_message_content {
        top: 5%; } }

@media all and (min-width: 1000px) {
  #currert_course_path {
    float: left;
    width: 15%;
    margin: 4% 0; }
    #currert_course_path ul {
      width: 100%; }
      #currert_course_path ul li > a {
        width: 100%;
        display: block;
        position: relative;
        left: -3px;
        box-shadow: 2px 0 5px 0px black;
        border-radius: 3px 0 0 3px;
        min-height: 40px;
        transition-duration: 0.2s;
        margin-bottom: 15px; }
        #currert_course_path ul li > a.step, #currert_course_path ul li > a.edge {
          width: 100px;
          line-height: 0; }
          #currert_course_path ul li > a.step .vertical_middle, #currert_course_path ul li > a.edge .vertical_middle {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            right: 10%; }
        #currert_course_path ul li > a.passed:hover, #currert_course_path ul li > a.currert:hover {
          cursor: pointer;
          left: -1px;
          border-radius: 0;
          box-shadow: 1px 0 5px 0px black;
          transition-duration: 0.2s; }
        #currert_course_path ul li > a.camera.passed {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/camera.png") no-repeat right 10% center, linear-gradient(to bottom, #d3e496, #bcd86a 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.camera.currert {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/camera.png") no-repeat right 10% center, linear-gradient(to bottom, #fefdca, #f7f381 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.camera.locked {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/camera.png") no-repeat right 10% center, linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.homework.passed {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/homework.png") no-repeat right 10% center, linear-gradient(to bottom, #d3e496, #bcd86a 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.homework.currert {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/homework.png") no-repeat right 10% center, linear-gradient(to bottom, #fefdca, #f7f381 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.homework.locked {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/homework.png") no-repeat right 10% center, linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.finalTest.passed {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/final.png") no-repeat right 10% center, linear-gradient(to bottom, #d3e496, #bcd86a 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.finalTest.currert {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/final.png") no-repeat right 10% center, linear-gradient(to bottom, #fefdca, #f7f381 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.finalTest.locked {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/final.png") no-repeat right 10% center, linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.text.passed {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/text.png") no-repeat right 10% center, linear-gradient(to bottom, #d3e496, #bcd86a 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.text.currert {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/text.png") no-repeat right 10% center, linear-gradient(to bottom, #fefdca, #f7f381 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.text.locked {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/text.png") no-repeat right 10% center, linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.edge.passed {
          background: linear-gradient(to bottom, #d3e496, #bcd86a 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.edge.currert {
          background: linear-gradient(to bottom, #fefdca, #f7f381 35%);
          background-size: auto 90%; }
        #currert_course_path ul li > a.edge.locked {
          background: linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
          background-size: auto 90%; } }
@media all and (max-width: 999.99px) {
  #currert_course_path ul {
    width: 90%;
    margin: 0 auto;
    margin-bottom: 30px; } }
  @media all and (max-width: 999.99px) and (max-width: 599.99px) {
    #currert_course_path ul {
      width: 100%; } }
@media all and (max-width: 999.99px) {
    #currert_course_path ul li {
      display: block;
      width: 10%;
      float: left;
      margin-bottom: 15px; } }
    @media all and (max-width: 999.99px) and (min-width: 600px) and (max-width: 800px) {
      #currert_course_path ul li {
        width: 14.28%; } }
    @media all and (max-width: 999.99px) and (max-width: 599.99px) {
      #currert_course_path ul li {
        width: 20%; } }
@media all and (max-width: 999.99px) {
      #currert_course_path ul li a {
        display: block;
        width: 80%;
        height: 0;
        padding-bottom: 80%;
        box-shadow: 0 0 5px 0 black;
        margin: 0 auto;
        overflow: hidden;
        transition-duration: 0.25s; }
        #currert_course_path ul li a:not(.locked):hover {
          box-shadow: 0 0 5px 1px black;
          transform: scale(1.1);
          transition-duration: 0.25s; }
        #currert_course_path ul li a.step, #currert_course_path ul li a.edge {
          line-height: 0; }
          #currert_course_path ul li a.step .vertical_middle, #currert_course_path ul li a.edge .vertical_middle {
            position: absolute;
            top: 50%;
            transform: translate(50%, -50%);
            right: 50%; }
        #currert_course_path ul li a.camera.passed {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/camera.png") no-repeat center center, linear-gradient(to bottom, #d3e496, #bcd86a 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.camera.currert {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/camera.png") no-repeat center center, linear-gradient(to bottom, #fefdca, #f7f381 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.camera.locked {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/camera.png") no-repeat center center, linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.homework.passed {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/homework.png") no-repeat center center, linear-gradient(to bottom, #d3e496, #bcd86a 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.homework.currert {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/homework.png") no-repeat center center, linear-gradient(to bottom, #fefdca, #f7f381 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.homework.locked {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/homework.png") no-repeat center center, linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.finalTest.passed {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/final.png") no-repeat center center, linear-gradient(to bottom, #d3e496, #bcd86a 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.finalTest.currert {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/final.png") no-repeat center center, linear-gradient(to bottom, #fefdca, #f7f381 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.finalTest.locked {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/final.png") no-repeat center center, linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.text.passed {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/text.png") no-repeat center center, linear-gradient(to bottom, #d3e496, #bcd86a 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.text.currert {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/text.png") no-repeat center center, linear-gradient(to bottom, #fefdca, #f7f381 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.text.locked {
          background: url("/calculus_symfony/web/js/baranek/app/img/structures/text.png") no-repeat center center, linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
          background-size: auto 30px; }
        #currert_course_path ul li a.edge {
          position: relative; }
          #currert_course_path ul li a.edge.passed {
            background: linear-gradient(to bottom, #d3e496, #bcd86a 35%);
            background-size: auto 30px; }
          #currert_course_path ul li a.edge.currert {
            background: linear-gradient(to bottom, #fefdca, #f7f381 35%);
            background-size: auto 30px; }
          #currert_course_path ul li a.edge.locked {
            background: linear-gradient(to bottom, #ccd7c7, #b9c4b4 35%);
            background-size: auto 30px; } }

#baranek_task {
  float: left; }
  @media all and (min-width: 1000px) {
    #baranek_task {
      width: 85%; } }
  @media all and (max-width: 999.99px) {
    #baranek_task {
      width: 100%; } }
  #baranek_task .task {
    width: 90%;
    margin: 45px auto;
    padding: 5%;
    box-shadow: 0 0 4px 1px #3c3c3c;
    transition-duration: 0.4s;
    text-indent: 0; }
    #baranek_task .task:hover {
      transform: rotate(0deg);
      transition-duration: 0.4s; }
  #baranek_task .task_input {
    background-color: #ffbd9d;
    transform: rotate(0.5deg); }
    #baranek_task .task_input .task_answer {
      margin-top: 20px;
      text-align: center; }
      #baranek_task .task_input .task_answer input {
        background: transparent;
        border: none;
        border-bottom: 2px dotted #14146e;
        text-align: center; }
  #baranek_task .task_choosing {
    background-color: #b4ffb4;
    transform: rotate(-0.5deg); }
    #baranek_task .task_choosing .task_answer {
      margin-top: 20px;
      text-align: left; }
      #baranek_task .task_choosing .task_answer input[type='radio'] {
        margin-left: 4%;
        margin-bottom: 10px; }

.structure {
  width: 100%;
  padding: 0 4% 3% 0;
  margin-top: 3%; }
  .structure.camera_structure .photo {
    width: 70%;
    margin: 0 auto 30px auto;
    padding: 30px;
    box-shadow: 0 0 10px 0 black;
    background-color: white; }
    .structure.camera_structure .photo .videoWrapper {
      width: 100%;
      position: relative;
      padding-bottom: 56.25%;
      /* 16:9 */
      padding-top: 25px;
      height: 0;
      box-shadow: 0 0 5px 0 black; }
      .structure.camera_structure .photo .videoWrapper iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%; }
  .structure.text_structure {
    padding: 0 4%;
    text-indent: 5%; }
    .structure.text_structure p {
      margin-bottom: 25px; }

.moduleSection {
  margin: 40px 0 20px 0;
  padding: 0; }
  .moduleSection h3 {
    text-align: center;
    font-family: 'Kalam', Arial, 'Times New Roman';
    font-size: 18px;
    line-height: 1.6rem; }

#baranek_welcoming_block #baranek_cloud_1 {
  margin-top: 5%; }

/*# sourceMappingURL=baranek.css.map */


text:
namespace cronet {

#define DEFINE_CONTEXT_CONFIG(x) const char REQUEST_CONTEXT_CONFIG_##x[] = #x;
#include "components/cronet/url_request_context_config_list.h"
#undef DEFINE_CONTEXT_CONFIG

URLRequestContextConfig::URLRequestContextConfig() {
}

URLRequestContextConfig::~URLRequestContextConfig() {
}

void URLRequestContextConfig::ConfigureURLRequestContextBuilder(
    net::URLRequestContextBuilder* context_builder) {
  std::string config_cache;
  if (http_cache != REQUEST_CONTEXT_CONFIG_HTTP_CACHE_DISABLED) {
    net::URLRequestContextBuilder::HttpCacheParams cache_params;
    if (http_cache == REQUEST_CONTEXT_CONFIG_HTTP_CACHE_DISK &&
        !storage_path.empty()) {
      cache_params.type = net::URLRequestContextBuilder::HttpCacheParams::DISK;
      cache_params.path = base::FilePath(storage_path);
    } else {
      cache_params.type =
          net::URLRequestContextBuilder::HttpCacheParams::IN_MEMORY;
    }
    cache_params.max_size = http_cache_max_size;
    context_builder->EnableHttpCache(cache_params);
  } else {
    context_builder->DisableHttpCache();
  }

  context_builder->SetSpdyAndQuicEnabled(enable_spdy, enable_quic);
  // TODO(mef): Use |config| to set cookies.
}

// static
void URLRequestContextConfig::RegisterJSONConverter(
    base::JSONValueConverter<URLRequestContextConfig>* converter) {
  converter->RegisterBoolField(REQUEST_CONTEXT_CONFIG_ENABLE_QUIC,
                               &URLRequestContextConfig::enable_quic);
  converter->RegisterBoolField(REQUEST_CONTEXT_CONFIG_ENABLE_SPDY,
                               &URLRequestContextConfig::enable_spdy);
  converter->RegisterStringField(REQUEST_CONTEXT_CONFIG_HTTP_CACHE,
                                 &URLRequestContextConfig::http_cache);
  converter->RegisterIntField(REQUEST_CONTEXT_CONFIG_HTTP_CACHE_MAX_SIZE,
                              &URLRequestContextConfig::http_cache_max_size);
  converter->RegisterStringField(REQUEST_CONTEXT_CONFIG_STORAGE_PATH,
                                 &URLRequestContextConfig::storage_path);
}

}  // namespace cronet


text:
use strict;
use warnings;

use Git::Repository;
use JSON::PP qw();
use Path::Tiny qw();

# Read the metadata to find distribution information.
my $meta_text = Path::Tiny::path( 'META.json' )->slurp_utf8();
my $json = JSON::PP::decode_json( $meta_text );

# Verify the new version passed.
my $new_version = $ARGV[0] // '';
die 'The version must follow the vX.Y.Z format'
	if $new_version !~ /\Av\d+\.\d+\.\d+\Z/;

# Retrieve the current version.
my $old_version = $json->{'version'};
die 'Could not find old version'
	if $old_version !~ /\Av\d+\.\d+\.\d+\Z/;

# Find files with the current version.
my $old_version_git_pattern = $old_version;
$old_version_git_pattern =~ s/^v/v?/;
$old_version_git_pattern =~ s/\./\\./g;
my $repository = Git::Repository->new();
my @files = $repository->run( 'grep', '--files-with-matches', $old_version_git_pattern );

# Replace the old version with the new one in the files found.
$old_version =~ s/^v//;
$new_version =~ s/^v//;
foreach my $file ( @files )
{
	next if $file eq 'Changes';

	my $path = Path::Tiny::path( $file );
	my $text = $path->slurp_utf8();
	$text =~ s/\Q$old_version\E/$new_version/g;
	$path->spew_utf8( $text );
}


text:
<?xml version="1.0"?>

<project name="dependencies" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
	<property file="project.properties" />

	<!-- OVERLOADED-->
	<property name="ivy.resolve.configurations" value="impl,impl-test" />
	<property name="ivy.generated.artifacts.pattern" value="${ivy.generated.artifacts.dir}/jars/[artifact]-[revision].[ext]" />

	<property name="ivy-shared-targets.file" location="${basedir}/../../antfiles/ivy/ivy-shared-targets.xml" />
	<import file="${ivy-shared-targets.file}" />

	<!--
	   Overloaded to look for generated artifacts in multiple locations:
	-->
	<target name="do.publish" depends="pre.publish">
		<publish-artifacts>
			<artifacts-list>
				<artifacts pattern="${ivy.generated.artifacts.pattern}" />
				<artifacts pattern="${basedir}/skeleton/lib/[artifact]-[revision].[ext]" />
				<artifacts pattern="${basedir}/skeleton/tools/lib/[artifact]-[revision].[ext]" />
				<artifacts pattern="${basedir}/updates/lib/[artifact]-[revision].[ext]" />
			</artifacts-list>
		</publish-artifacts>
	</target>

	<target name="do.resolve-dependencies" depends="pre.resolve-dependencies">
		<ivy:retrieve conf="${ivy.resolve.configurations}" pattern="${ivy.resolved.artifacts.pattern}" sync="true" />
		<ivy:retrieve conf="impl" pattern="${ivy.resolved.artifacts.dir}/dependencies/[type]s/[originalname](.[ext])" sync="true" type="jar" />
		<ivy:retrieve conf="impl" pattern="${ivy.resolved.artifacts.dir}/dependencies/[type]/[artifact](.[ext])" type="wsdl,xsd" />
		<ivy:retrieve conf="impl-test" pattern="${ivy.resolved.artifacts.dir}/dependencies/test/[type]s/[originalname](.[ext])" sync="true" type="*"/>

		<!-- I'd like to set sync=true on the skeleton.. but that blows away the cvsignore, so I'll manually clean first -->
		<delete>
			<fileset dir="${basedir}/skeleton/lib">
				<include name="*.jar" />
			</fileset>
		</delete>
		<ivy:retrieve conf="skeleton" pattern="${basedir}/skeleton/lib/[originalname](.[ext])" type="jar" />
		<delete>
			<fileset dir="${basedir}/skeleton/tools/lib">
				<include name="*.jar" />
			</fileset>
		</delete>
		<ivy:retrieve conf="skeletonTools" pattern="${basedir}/skeleton/tools/lib/[originalname](.[ext])" type="jar" />
		<ivy:retrieve conf="schema.grape" pattern="${ivy.resolved.artifacts.dir}/dependencies/xsd/grape/[type]/[artifact](.[ext])" sync="true" type="xsd" />

	</target>

</project>


text:
package org.smpp.pdu;

import org.smpp.Data;
import org.smpp.util.*;

/**
 * @author Logica Mobile Networks SMPP Open Source Team
 * @version $Revision: 1.1 $
 */
public class UnbindResp extends Response {
	public UnbindResp() {
		super(Data.UNBIND_RESP);
	}

	public void setBody(ByteBuffer buffer)
		throws NotEnoughDataInByteBufferException, TerminatingZeroNotFoundException, PDUException {
	}

	public ByteBuffer getBody() {
		return null;
	}

	public String debugString() {
		String dbgs = "(unbind_resp: ";
		dbgs += super.debugString();
		dbgs += ") ";
		return dbgs;
	}
}
/*
 * $Log: not supported by cvs2svn $
 */


text:
require "spec_helper"

module YieldStarClient
  describe Client do
    include Savon::SpecHelper

    let(:logger) { Logger.new("tmp/test.log") }
    let(:client_config) do
      CONFIG.merge(
        debug: true,
        logger: logger
      )
    end

    let(:client) { described_class.new(client_config) }

    describe "#get_floor_plan_amenities" do
      before(:all) { savon.mock! }

      after(:all) { savon.unmock! }

      let(:fixture) do
        path = File.join(
          SPEC_DIR,
          "fixtures",
          "get_floor_plan_amenities",
          "multiple_amenities.xml"
        )
        File.read(path)
      end

      it "returns floor plan amenities", vcr: {record: :once} do
        expected_message = client_config
          .slice(:client_name)
          .merge(
            external_property_id: "external_property_id",
            floor_plan_name: "floor_plan_name"
          )

        savon.expects(:get_floor_plan_amenities)
          .with(message: {request: expected_message.symbolize_keys})
          .returns(fixture)

        amenities = client.get_floor_plan_amenities(
          "external_property_id",
          "floor_plan_name"
        )

        expect(amenities.first).to be_an Amenity

        # TODO: Find a way to use real recorded data, even if it's a test
        # account.
        #
        # loop through the different properties and floor plans until we
        # find one that has amenities to test.

        # amenities = catch(:amenities) do
        #   client.get_properties.each do |property|
        #     external_property_id = property.external_property_id
        #     floor_plans = client.get_floor_plans(external_property_id)
        #     floor_plans.each do |floor_plan|
        #       floor_plan_name = floor_plan.name
        #       amenities = client.get_floor_plan_amenities(
        #         external_property_id,
        #         floor_plan_name
        #       )

        #       throw :amenities, amenities if amenities.any?
        #     end
        #   end
        #   throw :amenities, []
        # end

        # fail "Unable to find any amenities" if amenities.empty?
        # expect(amenities.first).to be_an Amenity
      end
    end

    describe "#get_unit_amenities" do
      it "returns unit amenities", vcr: {record: :once} do
        # loop through the different properties and floor plans until we
        # find one that has amenities to test.
        amenities = catch(:amenities) do
          client.get_properties.each do |property|
            external_property_id = property.external_property_id
            floor_plans = client.get_floor_plans(external_property_id)
            floor_plans.each do |floor_plan|
              units = client.get_units(external_property_id, floor_plan.name)
              units.each do |unit|
                amenities = client.get_unit_amenities(
                  external_property_id,
                  unit.name
                )

                throw :amenities, amenities if amenities.any?
              end
            end
          end

          throw :amenities, []
        end

        raise "Unable to find any amenities" if amenities.empty?

        expect(amenities.first).to be_an Amenity
      end
    end

    it "passes the building to the request class" do
      expected_hash = {
        external_property_id: "external_property_id",
        unit_name: "unit_name",
        building: "building"
      }

      response = double

      expect(GetUnitAmenities::Request).to receive(:execute)
        .with(hash_including(expected_hash))
        .and_return(response)

      parsed_response = double(amenities: [])

      allow(GetUnitAmenities::Response).to receive(:new)
        .with(response).and_return(parsed_response)

      client.get_unit_amenities(
        "external_property_id",
        "unit_name",
        "building"
      )
    end
  end
end


text:
"""This file contains preprocessors for Windows."""

from plaso.containers import artifacts
from plaso.lib import errors
from plaso.preprocessors import interface
from plaso.preprocessors import logger
from plaso.preprocessors import manager
from plaso.winnt import time_zones

class WindowsEnvironmentVariableArtifactPreprocessorPlugin(
    interface.WindowsRegistryValueArtifactPreprocessorPlugin):
  """Windows environment variable artifact preprocessor plugin interface."""

  _NAME = None

  def _ParseValueData(self, mediator, value_data):
    """Parses Windows Registry value data for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      value_data (object): Windows Registry value data.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
    if not isinstance(value_data, str):
      raise errors.PreProcessFail(
          'Unsupported Windows Registry value type: {0!s} for '
          'artifact: {1:s}.'.format(
              type(value_data), self.ARTIFACT_DEFINITION_NAME))

    environment_variable = artifacts.EnvironmentVariableArtifact(
        case_sensitive=False, name=self._NAME, value=value_data)

    try:
      logger.debug('setting environment variable: {0:s} to: "{1:s}"'.format(
          self._NAME, value_data))
      mediator.knowledge_base.AddEnvironmentVariable(environment_variable)
    except KeyError:
      mediator.ProducePreprocessingWarning(
          self.ARTIFACT_DEFINITION_NAME,
          'Unable to set environment variable: {0:s} in knowledge base.'.format(
              self._NAME))

class WindowsPathEnvironmentVariableArtifactPreprocessorPlugin(
    interface.FileSystemArtifactPreprocessorPlugin):
  """Windows path environment variable plugin interface."""

  _NAME = None

  def _ParsePathSpecification(
      self, mediator, searcher, file_system, path_specification,
      path_separator):
    """Parses artifact file system data for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      searcher (dfvfs.FileSystemSearcher): file system searcher to preprocess
          the file system.
      file_system (dfvfs.FileSystem): file system to be preprocessed.
      path_specification (dfvfs.PathSpec): path specification that contains
          the artifact value data.
      path_separator (str): path segment separator.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
    relative_path = searcher.GetRelativePath(path_specification)
    if not relative_path:
      raise errors.PreProcessFail(
          'Unable to read: {0:s} with error: missing relative path'.format(
              self.ARTIFACT_DEFINITION_NAME))

    if path_separator != file_system.PATH_SEPARATOR:
      relative_path_segments = file_system.SplitPath(relative_path)
      relative_path = '{0:s}{1:s}'.format(
          path_separator, path_separator.join(relative_path_segments))

    environment_variable = artifacts.EnvironmentVariableArtifact(
        case_sensitive=False, name=self._NAME, value=relative_path)

    try:
      logger.debug('setting environment variable: {0:s} to: "{1:s}"'.format(
          self._NAME, relative_path))
      mediator.knowledge_base.AddEnvironmentVariable(environment_variable)
    except KeyError:
      mediator.ProducePreprocessingWarning(
          self.ARTIFACT_DEFINITION_NAME,
          'Unable to set environment variable: {0:s} in knowledge base.'.format(
              self._NAME))

class WindowsAllUsersAppDataKnowledgeBasePlugin(
    interface.KnowledgeBasePreprocessorPlugin):
  """The allusersdata knowledge base value plugin.

  The allusersdata value is needed for the expansion of
  %%environ_allusersappdata%% in artifact definitions.
  """

  def Collect(self, mediator):
    """Collects values from the knowledge base.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.

    Raises:
      PreProcessFail: if the preprocessing fails.
    """
    environment_variable = mediator.knowledge_base.GetEnvironmentVariable(
        'programdata')
    allusersappdata = getattr(environment_variable, 'value', None)

    if not allusersappdata:
      environment_variable = mediator.knowledge_base.GetEnvironmentVariable(
          'allusersprofile')
      allusersdata = getattr(environment_variable, 'value', None)

      if allusersdata:
        allusersappdata = '\\'.join([allusersdata, 'Application Data'])

    if allusersappdata:
      environment_variable = artifacts.EnvironmentVariableArtifact(
          case_sensitive=False, name='allusersappdata', value=allusersappdata)

      try:
        logger.debug('setting environment variable: {0:s} to: "{1:s}"'.format(
            'allusersappdata', allusersappdata))
        mediator.knowledge_base.AddEnvironmentVariable(environment_variable)
      except KeyError:
        mediator.ProducePreprocessingWarning(
            self.__class__.__name__,
            ('Unable to set environment variable: %AllUsersAppData% in '
             'knowledge base.'))

class WindowsAllUsersProfileEnvironmentVariablePlugin(
    WindowsEnvironmentVariableArtifactPreprocessorPlugin):
  """The Windows %AllUsersProfile% environment variable plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsEnvironmentVariableAllUsersProfile'

  _NAME = 'allusersprofile'

class WindowsAllUsersAppProfileKnowledgeBasePlugin(
    interface.KnowledgeBasePreprocessorPlugin):
  """The allusersprofile knowledge base value plugin.

  The allusersprofile value is needed for the expansion of
  %%environ_allusersappprofile%% in artifact definitions.

  It is derived from %ProgramData% for versions of Windows, Vista and later,
  that do not define %AllUsersProfile%.
  """

  def Collect(self, mediator):
    """Collects values from the knowledge base.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.

    Raises:
      PreProcessFail: if the preprocessing fails.
    """
    environment_variable = mediator.knowledge_base.GetEnvironmentVariable(
        'allusersprofile')
    allusersprofile = getattr(environment_variable, 'value', None)

    if not allusersprofile:
      environment_variable = mediator.knowledge_base.GetEnvironmentVariable(
          'programdata')
      allusersprofile = getattr(environment_variable, 'value', None)

      if allusersprofile:
        environment_variable = artifacts.EnvironmentVariableArtifact(
            case_sensitive=False, name='allusersprofile', value=allusersprofile)

        try:
          logger.debug('setting environment variable: {0:s} to: "{1:s}"'.format(
              'allusersprofile', allusersprofile))
          mediator.knowledge_base.AddEnvironmentVariable(environment_variable)
        except KeyError:
          mediator.ProducePreprocessingWarning(
              self.__class__.__name__,
              ('Unable to set environment variable: %AllUsersProfile% in '
               'knowledge base.'))

class WindowsAvailableTimeZonesPlugin(
    interface.WindowsRegistryKeyArtifactPreprocessorPlugin):
  """The Windows available time zones plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsAvailableTimeZones'

  def _ParseKey(self, mediator, registry_key, value_name):
    """Parses a Windows Registry key for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      registry_key (dfwinreg.WinRegistryKey): Windows Registry key.
      value_name (str): name of the Windows Registry value.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
    time_zone_artifact = artifacts.TimeZoneArtifact(name=registry_key.name)

    try:
      mediator.knowledge_base.AddAvailableTimeZone(time_zone_artifact)
    except KeyError:
      mediator.ProducePreprocessingWarning(
          self.ARTIFACT_DEFINITION_NAME,
          'Unable to set time zone in knowledge base.')

class WindowsCodepagePlugin(
    interface.WindowsRegistryValueArtifactPreprocessorPlugin):
  """The Windows codepage plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsCodePage'

  def _ParseValueData(self, mediator, value_data):
    """Parses Windows Registry value data for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      value_data (object): Windows Registry value data.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
    if not isinstance(value_data, str):
      raise errors.PreProcessFail(
          'Unsupported Windows Registry value type: {0!s} for '
          'artifact: {1:s}.'.format(
              type(value_data), self.ARTIFACT_DEFINITION_NAME))

    # Map the Windows code page name to a Python equivalent name.
    codepage = 'cp{0:s}'.format(value_data)

    if not mediator.knowledge_base.codepage:
      try:
        mediator.knowledge_base.SetCodepage(codepage)
      except ValueError:
        mediator.ProducePreprocessingWarning(
            self.ARTIFACT_DEFINITION_NAME,
            'Unable to set codepage in knowledge base.')

class WindowsHostnamePlugin(
    interface.WindowsRegistryValueArtifactPreprocessorPlugin):
  """The Windows hostname plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsComputerName'

  def _ParseValueData(self, mediator, value_data):
    """Parses Windows Registry value data for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      value_data (object): Windows Registry value data.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
    if not isinstance(value_data, str):
      if not hasattr(value_data, '__iter__'):
        raise errors.PreProcessFail(
            'Unsupported Windows Registry value type: {0!s} for '
            'artifact: {1:s}.'.format(
                type(value_data), self.ARTIFACT_DEFINITION_NAME))

      # If the value data is a multi string only use the first string.
      value_data = value_data[0]

    if not mediator.knowledge_base.GetHostname():
      hostname_artifact = artifacts.HostnameArtifact(name=value_data)
      mediator.knowledge_base.SetHostname(hostname_artifact)

class WindowsProgramDataEnvironmentVariablePlugin(
    WindowsEnvironmentVariableArtifactPreprocessorPlugin):
  """The Windows %ProgramData% environment variable plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsEnvironmentVariableProgramData'

  _NAME = 'programdata'

class WindowsProgramDataKnowledgeBasePlugin(
    interface.KnowledgeBasePreprocessorPlugin):
  """The programdata knowledge base value plugin.

  The programdata value is needed for the expansion of %%environ_programdata%%
  in artifact definitions.

  It is derived from %AllUsersProfile% for versions of Windows prior to Vista
  that do not define %ProgramData%.
  """

  def Collect(self, mediator):
    """Collects values from the knowledge base.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.

    Raises:
      PreProcessFail: if the preprocessing fails.
    """
    environment_variable = mediator.knowledge_base.GetEnvironmentVariable(
        'programdata')
    allusersprofile = getattr(environment_variable, 'value', None)

    if not allusersprofile:
      environment_variable = mediator.knowledge_base.GetEnvironmentVariable(
          'allusersprofile')
      allusersprofile = getattr(environment_variable, 'value', None)

      if allusersprofile:
        environment_variable = artifacts.EnvironmentVariableArtifact(
            case_sensitive=False, name='programdata', value=allusersprofile)

        try:
          logger.debug('setting environment variable: {0:s} to: "{1:s}"'.format(
              'programdata', allusersprofile))
          mediator.knowledge_base.AddEnvironmentVariable(environment_variable)
        except KeyError:
          mediator.ProducePreprocessingWarning(
              self.__class__.__name__,
              ('Unable to set environment variable: %ProgramData% in '
               'knowledge base.'))

class WindowsProgramFilesEnvironmentVariablePlugin(
    WindowsEnvironmentVariableArtifactPreprocessorPlugin):
  """The Windows %ProgramFiles% environment variable plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsEnvironmentVariableProgramFiles'

  _NAME = 'programfiles'

class WindowsProgramFilesX86EnvironmentVariablePlugin(
    WindowsEnvironmentVariableArtifactPreprocessorPlugin):
  """The Windows %ProgramFilesX86% environment variable plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsEnvironmentVariableProgramFilesX86'

  _NAME = 'programfilesx86'

class WindowsSystemProductPlugin(
    interface.WindowsRegistryValueArtifactPreprocessorPlugin):
  """The Windows system product information plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsProductName'

  def _ParseValueData(self, mediator, value_data):
    """Parses Windows Registry value data for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      value_data (object): Windows Registry value data.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
    if not isinstance(value_data, str):
      raise errors.PreProcessFail(
          'Unsupported Windows Registry value type: {0!s} for '
          'artifact: {1:s}.'.format(
              type(value_data), self.ARTIFACT_DEFINITION_NAME))

    if not mediator.knowledge_base.GetValue('operating_system_product'):
      mediator.knowledge_base.SetValue('operating_system_product', value_data)

class WindowsSystemRootEnvironmentVariablePlugin(
    WindowsPathEnvironmentVariableArtifactPreprocessorPlugin):
  """The Windows %SystemRoot% environment variable plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsEnvironmentVariableSystemRoot'

  _NAME = 'systemroot'

class WindowsSystemVersionPlugin(
    interface.WindowsRegistryValueArtifactPreprocessorPlugin):
  """The Windows system version information plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsCurrentVersion'

  def _ParseValueData(self, mediator, value_data):
    """Parses Windows Registry value data for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      value_data (object): Windows Registry value data.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
    if not isinstance(value_data, str):
      raise errors.PreProcessFail(
          'Unsupported Windows Registry value type: {0!s} for '
          'artifact: {1:s}.'.format(
              type(value_data), self.ARTIFACT_DEFINITION_NAME))

    if not mediator.knowledge_base.GetValue('operating_system_version'):
      mediator.knowledge_base.SetValue('operating_system_version', value_data)

class WindowsTimeZonePlugin(
    interface.WindowsRegistryValueArtifactPreprocessorPlugin):
  """The Windows time zone plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsTimezone'

  def _ParseValueData(self, mediator, value_data):
    """Parses Windows Registry value data for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      value_data (object): Windows Registry value data.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
    if not isinstance(value_data, str):
      raise errors.PreProcessFail(
          'Unsupported Windows Registry value type: {0!s} for '
          'artifact: {1:s}.'.format(
              type(value_data), self.ARTIFACT_DEFINITION_NAME))

    # Map the Windows time zone name to a Python equivalent name.
    lookup_key = value_data.replace(' ', '')

    time_zone = time_zones.TIME_ZONES.get(lookup_key, value_data)
    # TODO: check if time zone is set in knowledge base.
    if time_zone:
      try:
        # Catch and warn about unsupported preprocessor plugin.
        mediator.knowledge_base.SetTimeZone(time_zone)
      except ValueError:
        mediator.ProducePreprocessingWarning(
            self.ARTIFACT_DEFINITION_NAME,
            'Unable to map: "{0:s}" to time zone'.format(value_data))

class WindowsUserAccountsPlugin(
    interface.WindowsRegistryKeyArtifactPreprocessorPlugin):
  """The Windows user account plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsRegistryProfiles'

  def _GetUsernameFromProfilePath(self, path):
    """Retrieves the username from a Windows profile path.

    Trailing path path segment are ignored.

    Args:
      path (str): a Windows path with '\\' as path segment separator.

    Returns:
      str: basename which is the last path segment.
    """
    # Strip trailing key separators.
    while path and path[-1] == '\\':
      path = path[:-1]

    if path:
      _, _, path = path.rpartition('\\')
    return path

  def _ParseKey(self, mediator, registry_key, value_name):
    """Parses a Windows Registry key for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      registry_key (dfwinreg.WinRegistryKey): Windows Registry key.
      value_name (str): name of the Windows Registry value.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
    user_account = artifacts.UserAccountArtifact(
        identifier=registry_key.name, path_separator='\\')

    registry_value = registry_key.GetValueByName('ProfileImagePath')
    if registry_value:
      profile_path = registry_value.GetDataAsObject()
      username = self._GetUsernameFromProfilePath(profile_path)

      user_account.user_directory = profile_path or None
      user_account.username = username or None

    try:
      mediator.knowledge_base.AddUserAccount(user_account)
    except KeyError:
      mediator.ProducePreprocessingWarning(
          self.ARTIFACT_DEFINITION_NAME,
          ('Unable to add user account: "{0!s}" to knowledge '
           'base').format(username))

class WindowsWinDirEnvironmentVariablePlugin(
    WindowsPathEnvironmentVariableArtifactPreprocessorPlugin):
  """The Windows %WinDir% environment variable plugin."""

  ARTIFACT_DEFINITION_NAME = 'WindowsEnvironmentVariableWinDir'

  _NAME = 'windir'

manager.PreprocessPluginsManager.RegisterPlugins([
    WindowsAllUsersAppDataKnowledgeBasePlugin,
    WindowsAllUsersProfileEnvironmentVariablePlugin,
    WindowsAllUsersAppProfileKnowledgeBasePlugin,
    WindowsAvailableTimeZonesPlugin,
    WindowsCodepagePlugin, WindowsHostnamePlugin,
    WindowsProgramDataEnvironmentVariablePlugin,
    WindowsProgramDataKnowledgeBasePlugin,
    WindowsProgramFilesEnvironmentVariablePlugin,
    WindowsProgramFilesX86EnvironmentVariablePlugin,
    WindowsSystemProductPlugin, WindowsSystemRootEnvironmentVariablePlugin,
    WindowsSystemVersionPlugin, WindowsTimeZonePlugin,
    WindowsWinDirEnvironmentVariablePlugin, WindowsUserAccountsPlugin])


text:
.template-iquest-available-jobs {
  width: 1920px;
  height: 1080px;
  position: relative;
  padding-top: 125px;
  padding-left: 105px;
  color: #444;
  font-family: 'Segoe UI', sans-serif;
  cursor: default;
  display: flex;
  flex-flow: column; }
  .template-iquest-available-jobs .jobs-picture-container .jobs-picture {
    top: 0;
    right: 55px;
    height: 1080px;
    position: absolute;
    z-index: -2; }
  .template-iquest-available-jobs .jobs-picture-container .jobs-picture-cut-left {
    top: -5px;
    right: 600px;
    width: 10000px;
    height: 1090px;
    background: #fff;
    position: absolute;
    z-index: -1;
    transform: skewX(-10deg); }
  .template-iquest-available-jobs .jobs-picture-container .jobs-picture-cut-right {
    top: -5px;
    left: 1770px;
    width: 10000px;
    height: 1090px;
    background: #fff;
    position: absolute;
    z-index: -1;
    transform: skewX(-10deg); }
  .template-iquest-available-jobs .jobs-heading {
    width: 1260px;
    font-size: 80px;
    font-weight: 500;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    margin-bottom: 105px; }
  .template-iquest-available-jobs .jobs-body {
    width: 1080px;
    display: flex;
    flex-flow: column;
    flex: 1; }
    .template-iquest-available-jobs .jobs-body a {
      color: #0095d6 !important;
      text-decoration: none; }
    .template-iquest-available-jobs .jobs-body .jobs-title-label {
      font-size: 30px;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis; }
    .template-iquest-available-jobs .jobs-body .jobs-title {
      color: #0095d6;
      font-size: 65px;
      font-weight: 500;
      letter-spacing: 3px;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis; }
    .template-iquest-available-jobs .jobs-body .jobs-location-label {
      font-size: 30px;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis; }
    .template-iquest-available-jobs .jobs-body .jobs-location {
      color: #0095d6;
      font-size: 45px;
      font-weight: 500;
      letter-spacing: 3px;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
      margin-bottom: 50px; }
    .template-iquest-available-jobs .jobs-body .jobs-content {
      font-size: 36px;
      font-weight: 200;
      word-wrap: break-word;
      overflow: hidden; }
      .template-iquest-available-jobs .jobs-body .jobs-content p {
        margin-bottom: 25px; }
        .template-iquest-available-jobs .jobs-body .jobs-content p:last-child {
          margin-bottom: 0; }
    .template-iquest-available-jobs .jobs-body .jobs-message {
      margin-top: 20px;
      color: #0095d6;
      font-size: 45px;
      font-weight: 500;
      letter-spacing: 3px;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis; }
    .template-iquest-available-jobs .jobs-body .jobs-contact {
      margin-top: 35px;
      font-size: 30px;
      font-weight: 200;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis; }
  .template-iquest-available-jobs .jobs-qr-logo {
    right: 15px;
    bottom: 15px;
    width: 140px;
    position: absolute; }
    .template-iquest-available-jobs .jobs-qr-logo .jobs-qr {
      display: block;
      width: 100px;
      height: 100px;
      margin: 20px auto; }
    .template-iquest-available-jobs .jobs-qr-logo .jobs-logo {
      display: block;
      width: 125px;
      height: 31px;
      margin: 0 auto;
      background-image: url("[RELATIVE-PATH]/logo.png");
      background-size: cover; }