text:
package com.tunyk.mvn.plugins.htmlcompressor;

import org.apache.maven.plugin.MojoExecutionException;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

class XmlCompressorMojoTest {

    // logger
    private static final Logger LOG = LoggerFactory.getLogger(XmlCompressorMojoTest.class);

    @BeforeAll
    static void setUpClass() {
        LOG.info("Setting up class...");
    }

    @AfterAll
    static void tearDownClass() {
        LOG.info("Mojo test finished.");
    }

    @BeforeEach
    void setUp() {
        LOG.info("Setting up data for testing...");
    }

    @Test
    void testExecute() throws MojoExecutionException {
        LOG.info("Testing mojo execution...");

        XmlCompressorMojo xmlCompressorMojo = new XmlCompressorMojo();
        xmlCompressorMojo.setSrcFolder("src/test/resources/xml");
        xmlCompressorMojo.setTargetFolder("target/htmlcompressor/xml");
        xmlCompressorMojo.execute();

        // TODO: test results

        LOG.info("Passed");
    }
}


text:
namespace Google.Cloud.Dialogflow.V2.Snippets
{
    // [START dialogflow_v2_generated_ConversationProfiles_GetConversationProfile_sync]
    using Google.Cloud.Dialogflow.V2;

    public sealed partial class GeneratedConversationProfilesClientSnippets
    {
        /// <summary>Snippet for GetConversationProfile</summary>
        /// <remarks>
        /// This snippet has been automatically generated for illustrative purposes only.
        /// It may require modifications to work in your environment.
        /// </remarks>
        public void GetConversationProfileRequestObject()
        {
            // Create client
            ConversationProfilesClient conversationProfilesClient = ConversationProfilesClient.Create();
            // Initialize request argument(s)
            GetConversationProfileRequest request = new GetConversationProfileRequest
            {
                ConversationProfileName = ConversationProfileName.FromProjectConversationProfile("[PROJECT]", "[CONVERSATION_PROFILE]"),
            };
            // Make the request
            ConversationProfile response = conversationProfilesClient.GetConversationProfile(request);
        }
    }
    // [END dialogflow_v2_generated_ConversationProfiles_GetConversationProfile_sync]
}

redpajama_set_name: RedPajamaGithub


text:
ACCEPTED

#### According to
Index Fungorum

#### Published in
null

#### Original name
Cryptosporium mori Fuckel

### Remarks
null


text:
require 'rest-client'
require 'silver_spurs/client/exceptions'
require 'erb'

module SilverSpurs
  class ChefOutput

    attr_reader :log, :status

    def initialize(response)
      @status = convert_status response
      @log = prettify_log response
    end

    private

    def convert_status(response)
      failure = (response['exit_code'] == 1) || (response['exit_status'] == 1)
      failure ? :failed : :success
    end

    def prettify_log(response)
      stdout = response['stdout']
      stderr = response['stderr']
      exit_code = response['exit_code'] || response['exit_status']

      template = ERB.new <<-END
Exit Code: <%= exit_code %>
--STDOUT-----------------
<%= stdout %>
--STDERR-----------------
<%= stderr %>
      END
      template.result binding
    end

  end
end


text:
#pragma once
#include <aws/greengrass/Greengrass_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/greengrass/model/DefinitionInformation.h>
#include <utility>

namespace Aws
{
template<typename RESULT_TYPE>
class AmazonWebServiceResult;

namespace Utils
{
namespace Json
{
  class JsonValue;
} // namespace Json
} // namespace Utils
namespace Greengrass
{
namespace Model
{
  class AWS_GREENGRASS_API ListCoreDefinitionsResult
  {
  public:
    ListCoreDefinitionsResult();
    ListCoreDefinitionsResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
    ListCoreDefinitionsResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);

    /**
     * Information about a definition.
     */
    inline const Aws::Vector<DefinitionInformation>& GetDefinitions() const{ return m_definitions; }

    /**
     * Information about a definition.
     */
    inline void SetDefinitions(const Aws::Vector<DefinitionInformation>& value) { m_definitions = value; }

    /**
     * Information about a definition.
     */
    inline void SetDefinitions(Aws::Vector<DefinitionInformation>&& value) { m_definitions = std::move(value); }

    /**
     * Information about a definition.
     */
    inline ListCoreDefinitionsResult& WithDefinitions(const Aws::Vector<DefinitionInformation>& value) { SetDefinitions(value); return *this;}

    /**
     * Information about a definition.
     */
    inline ListCoreDefinitionsResult& WithDefinitions(Aws::Vector<DefinitionInformation>&& value) { SetDefinitions(std::move(value)); return *this;}

    /**
     * Information about a definition.
     */
    inline ListCoreDefinitionsResult& AddDefinitions(const DefinitionInformation& value) { m_definitions.push_back(value); return *this; }

    /**
     * Information about a definition.
     */
    inline ListCoreDefinitionsResult& AddDefinitions(DefinitionInformation&& value) { m_definitions.push_back(std::move(value)); return *this; }

    /**
     * The token for the next set of results, or ''null'' if there are no additional
     * results.
     */
    inline const Aws::String& GetNextToken() const{ return m_nextToken; }

    /**
     * The token for the next set of results, or ''null'' if there are no additional
     * results.
     */
    inline void SetNextToken(const Aws::String& value) { m_nextToken = value; }

    /**
     * The token for the next set of results, or ''null'' if there are no additional
     * results.
     */
    inline void SetNextToken(Aws::String&& value) { m_nextToken = std::move(value); }

    /**
     * The token for the next set of results, or ''null'' if there are no additional
     * results.
     */
    inline void SetNextToken(const char* value) { m_nextToken.assign(value); }

    /**
     * The token for the next set of results, or ''null'' if there are no additional
     * results.
     */
    inline ListCoreDefinitionsResult& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;}

    /**
     * The token for the next set of results, or ''null'' if there are no additional
     * results.
     */
    inline ListCoreDefinitionsResult& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;}

    /**
     * The token for the next set of results, or ''null'' if there are no additional
     * results.
     */
    inline ListCoreDefinitionsResult& WithNextToken(const char* value) { SetNextToken(value); return *this;}

  private:

    Aws::Vector<DefinitionInformation> m_definitions;

    Aws::String m_nextToken;
  };

} // namespace Model
} // namespace Greengrass
} // namespace Aws


text:
package jason.datastructure.graph;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class HamiltonianCycle  extends ConnectivityGraph {

	boolean directed=true;
	public HamiltonianCycle(int v) {
		super(v);
	}

	public boolean isDirected() {
		return directed;
	}

	public void setDirected(boolean directed) {
		this.directed = directed;
	}

	private String edgeKey(int u, int v){
		return Math.min(u, v)+"_"+Math.max(u, v);
	}
	int[] path;
	public boolean findCycle(){
		int[] color=new int[V];
		Arrays.fill(color, 0);
		path=new int[V];

		//start with 0. It doesn't matter what vertex to start if we have a cycle
		path[0]=0;
		Set<String> usedEdges=new HashSet<>();
		return DFSTraverse(0, color, path, usedEdges);
	}

	public int[] getPath(){
		return path;
	}

	private boolean DFSTraverse(int fromPos, int[] color, int[] path, Set<String> usedEdges){
		int u=path[fromPos];
		//base case
		if (fromPos==V-1){
			//can we reach zero from last vertex
			//do we have a path to zero
			for (int v: adj[u]){
				if (v==0){
					return true;
				}
			}
			return false;
		}

		color[u]=1; //grey

		boolean hasCycle=false;
		for (int v: adj[u]){
			if (color[v]==0 && (directed  ||  !usedEdges.contains(edgeKey(u, v)) )){ //no visited

				path[fromPos+1]=v;
				usedEdges.add(edgeKey(u, v));
				hasCycle=DFSTraverse(fromPos+1, color, path, usedEdges);
				if (hasCycle){
					return true;
				} else {
					usedEdges.remove(edgeKey(u, v));
				}
			}
		}

		//if code has here, we don't have a cycle
		color[u]=0; //relable U as unvisited.

		return false;

	}

}


text:
namespace RedditSharp.Things
{
    static class RedditUserConstants
    {
        public const string OverviewUrl = "/user/{0}.json";
        public const string CommentsUrl = "/user/{0}/comments.json";
        public const string LinksUrl = "/user/{0}/submitted.json";
        public const string SubscribedSubredditsUrl = "/subreddits/mine.json";
        public const string LikedUrl = "/user/{0}/liked.json";
        public const string DislikedUrl = "/user/{0}/disliked.json";

        public const int MAX_LIMIT = 100;
    }
}


text:
var uniTipTag = "title"; //Which tag do you want to uniTip-ize? Keep it lowercase. No spaces around commas.//
var uniTipClass = ""; //Which classes do you want to uniTip-ize? If you leave this blank, then all the tags designated above will get uniTip-ized. Match case. No spaces around commas.

var uniTipX = 0; // X offset from cursor//
var uniTipY = 15; // Y offset from cursor//

//______________________________________________There's no need to edit anything below this line//

var offsetX = uniTipX, offsetY = uniTipY, elewidth = null, eleheight = null, tipid = null, tiptop = null, tipbot = null, tipcapin=null, tippointin=null, altText=false;

var x=0, y=0, WinWidth=0, WinHeight=0, TipWidth=0, TipHeight=0, CapHeight=0, PointHeight=0;

// first, find all the correct elements
init = function () {
	var elementList = uniTipTag.split(",");
	for(var j = 0; j < elementList.length; j++) {
		var elements = document.getElementsByTagName(elementList[j]);

		if(elements) {
			for (var i = 0; i < elements.length; i ++) {
				if (uniTipClass != '') {

					var elClass = elements[i].className;
					var elClassList = uniTipClass.split(",");

					for (var h=0; h < elClassList.length; h++) { if (elClass.match(elClassList[h])) unitipize(elements[i]); }

				} else unitipize(elements[i]);
			}
		}
	}
}

// next, add the tooltip function to those elements
unitipize = function (element) {
	var a = element;
	altText = (a.alt && a.getAttribute("alt") != '' ) ? true : false;
	//var sTitle = (altText == true) ? a.getAttribute("alt") : a.getAttribute("title");
  // jsPhyloSVG is not writing tips into title attribute, but as a title element, so
  // need to get the text within that
	var sTitle = (altText == true) ? a.getAttribute("alt") : a.textContent;
	if(sTitle) {
	  var parent = a.parentNode;
		parent.onmouseover = function() {build(parent, sTitle);};
		parent.onmouseout = function() {hide(parent, sTitle);};
	}
}

// now, we build the tooltip
build = function (a, sTitle) {

	if (a.title) a.title = "";
	if (altText==true) a.alt = "";

	var tipContainer = document.createElement("div");
	tipContainer.setAttribute("id", "unitip");
	document.body.appendChild(tipContainer);

	var tipContainerTop = document.createElement("div");
	tipContainerTop.setAttribute("id", "unitippoint");
	tipContainer.appendChild(tipContainerTop);

	var tipContainerMid = document.createElement("div");
	tipContainerMid.setAttribute("id", "unitipmid");
	tipContainer.appendChild(tipContainerMid);

	var tipContainerBot = document.createElement("div");
	tipContainerBot.setAttribute("id", "unitipcap");
	tipContainer.appendChild(tipContainerBot);

	tipid = document.getElementById("unitip");
	tippoint = document.getElementById("unitippoint");
	tipmid = document.getElementById("unitipmid");
	tipcap = document.getElementById("unitipcap");

	document.getElementById("unitipmid").innerHTML = sTitle;
	tipid.style.display = "block";

	elewidth = document.getElementById("unitipmid").offsetWidth;
	eleheight = document.getElementById("unitip").offsetHeight;

	WinWidth = document.body.offsetWidth;
	WinHeight = (document.body.clientHeight < document.documentElement.clientHeight) ? document.body.clientHeight : document.documentElement.clientHeight;

	CapHeight = document.getElementById('unitipcap').offsetHeight;
	PointHeight = document.getElementById('unitippoint').offsetHeight;

	if (typeof pngfix=="function") { // if IE, rebuilds wraps unitippoint and unitipcap in outer div
		if (tippoint.currentStyle.backgroundImage.match(/\.png/gi)) {
			var tipP = tippoint.innerHTML;

			tippoint.id = 'unitipP'; // switch unitippoint to outer div

			tippoint.style.overflow = "hidden";
			tippoint.style.height = PointHeight + "px";
			tippoint.style.width = elewidth + "px";
			tippoint.style.position = "relative";
			tippoint.style.display = "block";

			tippoint.innerHTML = '
' + tipP + '
'; // inject unitippoint

			tippointin = document.getElementById("unitippoint");  // redefine styles for unitippoint to fit filter image
			tippointin.style.width = (elewidth * 2) + "px";
			tippointin.style.height = (PointHeight * 2) + "px";
			tippointin.style.backgroundImage = tippoint.style.backgroundImage;
			tippointin.style.position = "absolute";

			tippoint.style.backgroundImage = "none";
		}
		if (tipcap.currentStyle.backgroundImage.match(/\.png/gi)) {
			var tipC = tipcap.innerHTML;

			tipcap.id = 'unitipC';

			tipcap.style.overflow = "hidden";
			tipcap.style.height = CapHeight + "px";
			tipcap.style.width = elewidth + "px";
			tipcap.style.position = "relative";
			tipcap.style.display = "block";

			tipcap.innerHTML = '
' + tipP + '
';

			tipcapin = document.getElementById("unitipcap");
			tipcapin.style.height = (CapHeight * 2) + "px";
			tipcapin.style.backgroundImage = tipcap.style.backgroundImage;
			tipcapin.style.position = "absolute";

			tipcap.style.backgroundImage = "none";
		}

		pngfix(); // png fix

	}

	document.onmousemove = function (evt) {move (evt)};
}

// now, we track the mouse and make the tooltip follow
move = function (evt) {

	if (window.event) {
		x = window.event.clientX;
		y = window.event.clientY;

		if (document.documentElement.scrollLeft) tipid.style.left = (TipWidth >= WinWidth ) ? ((x - offsetX - elewidth) + document.documentElement.scrollLeft) + "px" :  (x + offsetX + document.documentElement.scrollLeft) + "px";
		else tipid.style.left = (TipWidth >= WinWidth ) ? ((x - offsetX - elewidth) + document.body.scrollLeft) + "px" :  (x + offsetX + document.body.scrollLeft) + "px";

		if (document.documentElement.scrollTop) tipid.style.top = (TipHeight >= WinHeight) ? ((y - offsetY - eleheight) + document.documentElement.scrollTop) + "px" : (y + offsetY + document.documentElement.scrollTop) + "px";
		else tipid.style.top = (TipHeight >= WinHeight) ? ((y - offsetY - eleheight) + document.body.scrollTop) + "px" : (y + offsetY + document.body.scrollTop) + "px";

	} else {
		x = evt.clientX;
		y = evt.clientY;

		tipid.style.left = (TipWidth >= WinWidth ) ? ((x - offsetX - elewidth) + window.scrollX) + "px" :  (x + offsetX + window.scrollX) + "px";
		tipid.style.top = (TipHeight >= WinHeight) ? ((y - offsetY - eleheight) + window.scrollY) + "px" : (y + offsetY + window.scrollY) + "px";
	}

	TipWidth = x + elewidth + 20;
	TipHeight = y + eleheight + 20;

	if (TipHeight >= WinHeight ) { // rearrange the inner divs [123 to 321]
		tipid.removeChild(tippoint);
		tipid.removeChild(tipmid);
		tipid.removeChild(tipcap);
		tipid.appendChild(tipcap);
		tipid.appendChild(tipmid);
		tipid.appendChild(tippoint);
	} else {  // rearrange the inner divs [321 to 123]
		tipid.removeChild(tippoint);
		tipid.removeChild(tipmid);
		tipid.removeChild(tipcap);
		tipid.appendChild(tippoint);
		tipid.appendChild(tipmid);
		tipid.appendChild(tipcap);
	}

	if (TipHeight >= WinHeight) {

		if (document.getElementById('uniTipP')) {
			tippointin.style.left = (TipWidth >= WinWidth ) ? "-" + elewidth + "px" : "0px";
			tippointin.style.top = "-" + PointHeight + "px";
		} else tippoint.style.backgroundPosition = (TipWidth >= WinWidth ) ? "right bottom" : "left bottom";

		if (document.getElementById('uniTipC')) tipcapin.style.top = "-" + CapHeight + "px";
		else tipcap.style.backgroundPosition = "0 -" + CapHeight + "px";

	} else {

		if (document.getElementById('uniTipP')) {
			tippointin.style.left = (TipWidth >= WinWidth ) ? "-" + elewidth + "px" : "0px";
			tippointin.style.top = "0px";
		} else tippoint.style.backgroundPosition = (TipWidth >= WinWidth ) ? "right top" : "left top";

		if (document.getElementById('uniTipC')) tipcapin.style.top = "0px";
		else tipcap.style.backgroundPosition = "0 0";

	}
}

// lastly, hide the tooltip
hide = function (a, sTitle) {
	document.getElementById("unitipmid").innerHTML = "";
	document.onmousemove = '';
	document.body.removeChild(tipid);
	tipid.style.display = "none";
	if (altText==false) a.setAttribute("title", sTitle);
	else a.setAttribute("alt", sTitle);
	altText=false;
}

// add the event to the page
if (window.addEventListener) window.addEventListener("load", init, false);
if (window.attachEvent) window.attachEvent("onload", init);


text:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_vertical"
    >

    <ImageView
        android:id="@+id/iv_splash"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:src="@drawable/def_wallpaper"
        android:scaleType="fitXY" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textColor="@android:color/white"
        android:drawableLeft="@drawable/ic_drawer_oauth_sina_normal"
        android:drawablePadding="5dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textStyle="bold"
        android:text="Koku"/>

</RelativeLayout>


text:
/**
 * Module dependencies
 */

var util = require('util');
var _ = require('lodash');
var defaultsDeep = require('merge-defaults');
var MockReq = require('mock-req');

/**
 * Factory which builds generic Sails request object (i.e. `req`).
 *
 * This generic implementation of `req` forms the basis for
 * Sails' transport-agnostic support of Connect/Express
 * middleware.  Used by hooks (i.e. sockets) but also for
 * tests-- both at the app-level and in Sails core.
 *
 * @return {Request} simulated HTTP request object
 * @idempotent
 */

module.exports = function buildRequest (_req) {
  _req = _req||{};

  var req;

  // If `_req` appears to be a stream (duck-typing), then don't try
  // and turn it into a mock stream again.
  if (typeof _req === 'object' && _req.read) {
    req = _req;
  }
  else {

    // TODO: send a PR to mock-req with a fix for this
    if (_req.headers && typeof _req.headers === 'object') {
      // Strip undefined headers
      _.each(_req.headers, function (headerVal, headerKey) {
        if (_.isUndefined(headerVal)){
          delete _req.headers[headerKey];
        }
      });
      // Make sure all remaining headers are strings
      _req.headers = _.mapValues(_req.headers, function (headerVal, headerKey) {
        if (typeof headerVal !== 'string') {
          headerVal = ''+headerVal+'';
        }
        return headerVal;
      });
    }

    // Create a mock IncomingMessage stream.
    req = new MockReq({
      method: _req && (_.isString(_req.method) ? _req.method.toUpperCase() : 'GET'),
      headers: _req && _req.headers || {},
      url: _req && _req.url
    });

    // Now pump client request body to the mock IncomingMessage stream (req)
    // Req stream ends automatically if this is a GET or HEAD or DELETE request
    // (since there is no request body in that case) so no need to do it again.
    if (req.method !== 'GET' && req.method !== 'HEAD' && req.method !== 'DELETE') {

      // Only write the body if there IS a body.
      if (req.body) {
        req.write(req.body);
      }
      req.end();
    }
  }

  // Track request start time
  req._startTime = new Date();

  // TODO: add all the other methods in core

  // Provide defaults for other request state and methods
  req = defaultsDeep(req, {
    params: [],
    query: (_req && _req.query) || {},
    body: (_req && _req.body) || {},
    param: function(paramName, defaultValue) {

      var key, params = {};
      for (key in (req.params || {}) ) {
        params[key] = params[key] || req.params[key];
      }
      for (key in (req.query || {}) ) {
        params[key] = params[key] || req.query[key];
      }
      for (key in (req.body || {}) ) {
        params[key] = params[key] || req.body[key];
      }

      // Grab the value of the parameter from the appropriate place
      // and return it
      if (typeof params[paramName] !== 'undefined') {
        return params[paramName];
      } else {
        return defaultValue;
      }

    },
    wantsJSON: (_req && _req.wantsJSON) || true,
    method: 'GET'
  }, _req||{});

  return req;
};


text:
public class ActionMultiply implements Strategy {
	@Override
	public int doAction(int num1, int num2) {
		return num1 * num2;
	}
}


text:
<?php

App::import('Core', 'View');

if (!class_exists('DoppelGangerView')) {
	class DoppelGangerView extends View {}
}

App::import('View', 'DebugKit.Debug');
App::import('Vendor', 'DebugKit.DebugKitDebugger');
/**
 * Debug View Test Case
 *
 * @package       debug_kit.tests
 */
class DebugViewTestCase extends CakeTestCase {
/**
 * set Up test case
 *
 * @return void
 **/
	function startTest() {
		Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
		Router::parse('/');
		$this->Controller =& ClassRegistry::init('Controller');
		$this->View  =& new DebugView($this->Controller, false);
		$this->_debug = Configure::read('debug');
		$this->_paths = array();
		$this->_paths['plugin'] = Configure::read('pluginPaths');
		$this->_paths['view'] = Configure::read('viewPaths');
		$this->_paths['vendor'] = Configure::read('vendorPaths');
		$this->_paths['controller'] = Configure::read('controllerPaths');
	}
/**
 * tear down function
 *
 * @return void
 **/
	function endTest() {
		Configure::write('pluginPaths', $this->_paths['plugin']);
		Configure::write('viewPaths', $this->_paths['view']);
		Configure::write('vendorPaths', $this->_paths['vendor']);
		Configure::write('controllerPaths', $this->_paths['controller']);

		unset($this->View, $this->Controller);
		DebugKitDebugger::clearTimers();
		Configure::write('debug', $this->_debug);
	}

/**
 * start Case - switch view paths
 *
 * @return void
 **/
	function startCase() {
		$this->_viewPaths = Configure::read('viewPaths');
		Configure::write('viewPaths', array(
			TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views'. DS,
			APP . 'plugins' . DS . 'debug_kit' . DS . 'views'. DS,
			ROOT . DS . LIBS . 'view' . DS
		));
	}

/**
 * test that element timers are working
 *
 * @return void
 **/
	function testElementTimers() {
		$result = $this->View->element('test_element');
		$this->assertPattern('/^this is the test element$/', $result);

		$result = DebugKitDebugger::getTimers();
		$this->assertTrue(isset($result['render_test_element.ctp']));
	}

/**
 * test rendering and ensure that timers are being set.
 *
 * @access public
 * @return void
 */
	function testRenderTimers() {
		$this->Controller->viewPath = 'posts';
		$this->Controller->action = 'index';
		$this->Controller->params = array(
			'action' => 'index',
			'controller' => 'posts',
			'plugin' => null,
			'url' => array('url' => 'posts/index'),
			'base' => null,
			'here' => '/posts/index',
		);
		$this->Controller->layout = 'default';
		$View =& new DebugView($this->Controller, false);
		$View->render('index');

		$result = DebugKitDebugger::getTimers();
		$this->assertEqual(count($result), 4);
		$this->assertTrue(isset($result['viewRender']));
		$this->assertTrue(isset($result['render_default.ctp']));
		$this->assertTrue(isset($result['render_index.ctp']));
	}

/**
 * Test for correct loading of helpers into custom view
 *
 * @return void
 */
	function testLoadHelpers() {
		$loaded = array();
		$result = $this->View->_loadHelpers($loaded, array('Html', 'Javascript', 'Number'));
		$this->assertTrue(is_object($result['Html']));
		$this->assertTrue(is_object($result['Javascript']));
		$this->assertTrue(is_object($result['Number']));
	}
/**
 * test that $out is returned when a layout is rendered instead of the empty
 * $this->output.  As this causes issues with requestAction()
 *
 * @return void
 **/
	function testProperReturnUnderRequestAction() {
		$plugins = Configure::read('pluginPaths');
		$views = Configure::read('viewPaths');
		$testapp = $plugins[1] . 'debug_kit' . DS . 'tests' . DS . 'test_app' . DS . 'views' . DS;
		array_unshift($views, $testapp);
		Configure::write('viewPaths', $views);

		$this->View->set('test', 'I have been rendered.');
		$this->View->viewPath = 'debug_kit_test';
		$this->View->layout = false;
		$result = $this->View->render('request_action_render');

		$this->assertEqual($result, 'I have been rendered.');
	}
}
?>


text:
using System;
using System.Windows.Input;

namespace AddInsShare.Common
{
  public class WaitCursor : IDisposable
  {
    private Cursor _previousCursor;

    public WaitCursor()
    {
      _previousCursor = Mouse.OverrideCursor;

      Mouse.OverrideCursor = Cursors.Wait;
    }

    #region IDisposable Members

    public void Dispose()
    {
      Mouse.OverrideCursor = _previousCursor;
    }

    #endregion
  }
}


text:
package com.wlgbsj.mymoblieplayer.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;

/**
 * 作者:杨光福 on 2016/7/19 11:42
 * 微信:yangguangfu520
 * QQ号:541433511
 * 作用:自定义VitamioVideoView
 */
public class VitamioVideoView extends io.vov.vitamio.widget.VideoView {

    /**
     * 在代码中创建的时候一般用这个方法
     * @param context
     */
    public VitamioVideoView(Context context) {
        this(context,null);
    }

    /**
     * 当这个类在布局文件的时候,系统通过该构造方法实例化该类
     * @param context
     * @param attrs
     */
    public VitamioVideoView(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }

    /**
     * 当需要设置样式的时候调用该方法
     * @param context
     * @param attrs
     * @param defStyleAttr
     */
    public VitamioVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
    }

    /**
     * 设置视频的宽和高 \n
     * by 杨光福
     * @param videoWidth 指定视频的宽
     * @param videoHeight 指定视频的高
     */
    public void setVideoSize(int videoWidth,int videoHeight){
        ViewGroup.LayoutParams params = getLayoutParams();
        params.width = videoWidth;
        params.height = videoHeight;
        setLayoutParams(params);
    }
}


text:
<?xml version="1.0" encoding="UTF-8"?>
<section version="5.0" xml:id="sect-datamodeler-entities"
         xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd http://www.w3.org/1999/xlink http://www.docbook.org/xml/5.0/xsd/xlink.xsd"
         xml:base="../../../../" xmlns="http://docbook.org/ns/docbook"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:xs="http://www.w3.org/2001/XMLSchema"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:ns="http://docbook.org/ns/docbook">

  <title>Entities</title>

  <para>A data model consists of data entities which are a logical
    representation of some real-world data. Such data entities have a fixed set
    of modeller (or application-owned) properties, such as its internal
    identifier, a label, description, package etc. Besides those, an entity also
    has a variable set of user-defined fields, which are an abstraction of a
    real-world property of the type of data that this logical entity
    represents.
  </para>

  <para>Creating a data entity can be achieved either by clicking the "Create"
    button in the model browser section (see fig. "The data model browser"
    above), or by clicking the one in the top data modeller menu:
  </para>

  <figure>
    <title>Starting creation of an entity from the top menu</title>

    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/Workbench/Authoring/DataModeller/create_top.jpg"/>
        </imageobject>
      </mediaobject>
    </screenshot>
  </figure>

  <para>This will pop up the new object screen:</para>

  <figure>
    <title>The new entity pop up screen</title>

    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/Workbench/Authoring/DataModeller/new_object.jpg"/>
        </imageobject>
      </mediaobject>
    </screenshot>
  </figure>

  <para/>

  <para>Some initial information needs to be provided before creating the new
    object:
  </para>

  <itemizedlist>
    <listitem>
      <para>The object's internal identifier (mandatory). The value of this
        field must be unique per package, i.e. if the object's proposed
        identifier already exists in the selected package, an error message will
        be displayed.
      </para>
    </listitem>

    <listitem>
      <para>A label (optional): this field allows the user to define a
        user-friendly label for the data entity about to be created. This is
        purely conceptual info that has no further influence on how objects of
        this entity will be treated. If a label is defined, then this is how the
        entity will be displayed throughout the data modeller tool.
      </para>
    </listitem>

    <listitem>
      <para>A package (mandatory): a data entity must always be created within
        a package (or name space, in which this entity will be unique at a
        platform level). By default, the option for selecting an already
        existing package will be activated, in which case the corresponding
        drop-down shows all the packages that are currently defined. If a new
        package needs to be defined for this entity, then the "New package"
        option should be selected. In this case the new to be created package
        should be input into the corresponding text-field. The format for
        defining new packages is the same as the one for standard Java
        packages.
      </para>
    </listitem>

    <listitem>
      <para>A superclass (optional): this will indicate that this entity
        extends from another already existing one. Since the data modeller
        entities are translated into standard Java classes, indicating a
        superclass implies normal Java object extension at the generated-code
        level.
      </para>
    </listitem>
  </itemizedlist>

  <para>Once the user has provided at least the mandatory information, by
    pushing the "Ok" button at the bottom of the screen the new data entity will
    be created. It will be added to the model browser's entity listing.
  </para>

  <para>It will also appear automatically selected, to make it easy for the
    user to complete the definition of the newly created entity, by completing
    the entity's properties in the Data Object Properties browser, or by adding
    new fields.
  </para>

  <figure>
    <title>New entity has been created</title>

    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/Workbench/Authoring/DataModeller/new_created.jpg"/>
        </imageobject>
      </mediaobject>
    </screenshot>
  </figure>

  <note>
    <para>As can be seen in the above figure, after performing changes to the
      data model, the model name will appear with an '*' to alert the user of
      the existence of un-persisted changes to the model.
    </para>
  </note>

  <para>In the Data Modeller's object browsing section, an entity can be
    deleted by clicking upon the 'x' icon to the right of each entity. If an
    entity is being referenced from within another entity (as a field
    type), then the modeller tool will not allow it to be deleted, and an error
    message will appear on the screen.
  </para>

  <para/>
</section>


text:
@CHARSET "UTF-8";
@font-face {font-family:'Architext';src:url('../../fonts/Architext.eot');src:url('../../fonts/Architext.eot') format('embedded-opentype'), url('../../fonts/Architext.woff') format('woff'), url('../../fonts/Architext.ttf') format('truetype'), url('../../fonts/Architext.svg') format('svg');font-weight:normal;font-style:normal}
*{box-sizing: border-box}
*:before,*:after{box-sizing: border-box}
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,font,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend{border:0 none;margin:0;outline:0 none;padding:0}
article,aside,div,dt,figcaption,footer,form,header,html,map,nav,section,main{display:block}

body{font-family:"Microsoft Yahei","微软雅黑",Tahoma,Arial,Helvetica,STHeiti,Segoe UI Emoji,Segoe UI Symbol;font-size:14px;line-height:1.42857143;color:#2c2e2f;background-color:#eee}
ul,ul li{list-style:none}
ul li.disc{list-style:disc !important}
img{border:0}
html,body{height:100%}
a{color:#21759b;text-decoration:none;transition:all 0.2s linear 0s}
a:hover{color:#d54e21;text-decoration:none}
select{font-family:sans-serif}
abbr[title],.abbr{border-bottom:1px dotted}
mark{background:#ff0;color:#000}
pre{overflow:auto}
code,pre{font-family:Courier New,monospace,monospace;font-size:1em}
code{border:1px solid #eaeaea;margin:0 2px;padding:1px 5px;background-color:#f8f8f8;border-radius:3px;color:#d14}
label{display:inline-block}
table{border-spacing:0}
input,textarea,select{font-family:inherit;font-size:inherit;*font-size:100%;font-weight:inherit}

/* 布局类 */
.container{padding:30px 30px 0}
.row{margin:0 -15px}
.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{float:left;padding:0 15px}
@media screen and (max-width:768px){
	.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{padding:0}
}
.col-12{width:100%}
.col-11{width:91.66666667%}
.col-10{width:83.33333333%}
.col-9{width:75%}
.col-8{width:66.66666667%}
.col-7{width:58.33333333%}
.col-6{width:50%}
.col-5{width:41.66666667%}
.col-4{width:33.33333333%}
.col-3{width:25%}
.col-2{width:16.66666667%}
.col-1{width:8.33333333%}
@media screen and (max-width:768px){
	.col-2,.col-8{width:100%;margin-bottom:10px}
}
@media screen and (max-width:992px){
	.col-5,.col-6,.col-7{width:100%;margin-bottom:10px}
}
@media screen and (max-width:1140px){
	.col-3,.col-4,.col-8,.col-9{width:100%;margin-bottom:10px}
}

/* 颜色 */
.fc-red{color:#d54e21 !important}
.fc-red:hover{color:red !important}
.fc-green{color:green !important}
.fc-orange{color:#f7aa47 !important}
.fc-blue{color:#21759B !important}
.fc-grey{color:grey !important}
.fc-yellow{color:#fcd036 !important}
.fc-purple{color:#7c38bc !important}
.required{color:red !important}

.bl-yellow{border-left:4px solid #FFB848 !important}
.bl-red{border-left:4px solid #E1472F !important}
.bl-blue{border-left:4px solid #21759B !important}

.bg-red,.bg-grey,.bg-yellow,.bg-green{color:#fff !important;transition:all 0.5s linear 0s}
.bg-red{background-color:#E1472F !important}
.bg-red:hover{background-color:#D44029 !important}
.bg-grey{background-color:#787878 !important}
.bg-grey:hover{background-color:#444 !important}
.bg-light-grey{background-color:#EAEAEA !important}
.bg-light-grey:hover{background-color:#D2D2D2 !important}
.bg-yellow{background-color:#FFB141 !important}
.bg-yellow:hover{background-color:#FD9602 !important}
.bg-green{background-color:#9DD30B !important}
.bg-green:hover{background-color:#8DBD0A !important}

/* 下拉菜单 */
.dropdown-container a.dropdown{top:1px;z-index:5}
.dropdown-container .dropdown-menu{position:absolute;z-index:3;min-width:160px;border:1px solid #ddd;background-color:#fff;right:-1px;left:auto;display:none;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);-webkit-box-shadow:0 6px 12px rgba(0, 0, 0, 0.175)}
.dropdown-container .dropdown-menu > li{position:relative;display:block;padding:15px 20px 0}
.dropdown-container .dropdown-menu > li a{color:#979898;padding-bottom:15px;border-bottom:1px solid #f0f0f0;display:block}
.dropdown-container .dropdown-menu > li a:hover{color:#606161}
.dropdown-container .dropdown-menu > li a i{margin-right:5px}
.dropdown-container > a > span > i{transition:all 0.2s linear 0s}
.dropdown-container.open > a > span > i.fa{transform:rotate(-180deg)}
.dropdown-container.open > .dropdown-menu{display:block}

/* 按钮 */
.btn{display:inline-block;text-align:center;vertical-align:middle;border:1px solid transparent;white-space:nowrap;padding:6px 12px;line-height:1.42857143;color:#fff;background-color:#2196ff;user-select:none}
.btn:hover{color:#fff;background-color:#1e87ef}
.btn:active,.btn.active{-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125)}
.btn.btn-sm{padding:3px 12px 4px}
.btn.btn-grey{background-color:#e1e1e1;color:#333}
.btn.btn-grey:hover{background-color:#d1d1d1}

/* 表单布局 */
.form-field{padding:8px 0}
.form-field label.title{color:#222;text-shadow:0 1px 0 #fff;padding-bottom:4px;display:block;font-size:15px}
.form-field p.description{color:#999;padding:5px}
.form-field h4{margin-top:10px}
input.bigtxt{font-size:1.7em;width:100%;border-radius:3px;padding:6px}
select option[disabled]{text-decoration:line-through}

/* 常规表单元素式样 */
.form-control{display:block;width:100%;padding:5px 6px;font-size:13px;line-height:1.42857143;color:#555555;background-color:#fff;border:1px solid #e4e4e4}
.form-control:focus{border-color:#aaa;box-shadow:1px 1px 2px rgba(0,0,0,0.1);outline:0}
.form-control::-moz-placeholder{color:#777;opacity:1}
.form-control:-ms-input-placeholder{color:#777}
.form-control::-webkit-input-placeholder{color:#777}
.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eeeeee;opacity:1}
.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}

/* box */
.box{background-color:#fff;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04);border:1px solid #DFDFDF;margin-bottom:30px;position:relative}
.box-title{border-bottom:1px solid #EEEEEE;text-shadow:0 1px 0 #fff;padding:3px 12px}
.box-title h4,.box-title h3{font-size:15px;height:32px;line-height:32px}
.box-title .tools{cursor:pointer;float:right;height:32px;width:19px;line-height:32px;color:#B7B7B7;text-align:center}
.box-title:hover .toggle:before{content:"\f0d7";font-family:FontAwesome}
.box-title:hover .remove:before{content:"×"}
.box.closed .box-title.hover .handlediv:before{content:"\f0d9"}
.box-content{padding:8px 12px}
.box-content .misc-pub-section{padding:6px 11px 8px;border-top:1px solid #DFDFDF}
.box.closed .box-content{display:none}
.box.holder{border:2px dashed #DFDFDF !important}

/* toast */
.toast-container{position:fixed;z-index:999999;opacity:0.85}
.toast-top-right{top:12px;right:12px}
.toast-bottom-right{bottom:12px;right:12px}
.toast-bottom-middle{bottom:12px;left:50%;margin-left:-175px}
.toast-container > div.toast{padding:12px 15px;width:350px;margin-bottom:10px;color:#fff}
.toast-container > div i{font-family:FontAwesome;font-style:normal;position:absolute}
.toast-container > div:hover{cursor:pointer}
.toast-container .toast-message p{text-indent:23px}
.toast-warning{background-color:#ffba00}
.toast-info{background-color:#40bbea}
.toast-success{background-color:#8dc63f}
.toast-error,.toast-alert{background-color:#cc3f44}
.toast-warning i:before{content:"\f071"}
.toast-info i:before{content:"\f12a"}
.toast-success i:before{content:"\f058"}
.toast-error i:before,.toast-alert i:before{content:"\f05a"}
.toast-close-link{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#fff;opacity:0.8}
.toast-close-link:hover{opacity:1;color:#fff}
@media only screen and (max-width: 500px) {
	.toast-container{width:100%}
	.toast-bottom-middle{margin:0 20px;width:100%;left:auto}
	.toast-container > div.toast{width:90%}
}

/* badge右上角的小点点 */
.badge{display:inline-block;color:#fff;vertical-align:baseline;white-space:nowrap;text-align:center;border-radius:10px}
.badge.badge-green,.badge.badge-success{background-color:#8dc63f}
.user-info-menu .badge{font-size:9px;position:absolute;top:20px;right:10px;padding:4px;min-width:18px;line-height:1}

/* 数据表格 */
.list-table{border:1px solid #dfdfdf;border-bottom:0 none;background-color:#fff;margin:3px 0;width:100%}
.list-table thead th, .list-table tfoot th{background-color:#fff;text-align:left;padding:9px 7px;height:36px;border-bottom:1px solid #e1e1e1;font-weight:normal;font-size:15px}
.list-table tr td{box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);background-color:#fff;padding:5px 7px;vertical-align:top}
.list-table tr.alternate td{background-color:#fcfcfc}
.list-table tr .align-center{text-align:center}
.list-table tr .row-actions{padding-top:3px;visibility:hidden}
.list-table tr .row-actions a{background:url(images/cut-off-line.png) no-repeat scroll right 5px transparent;padding:0 9px 0 5px}
.list-table tr .row-actions a:last-child{background:0 none}
.list-table tr.hover .row-actions,.list-table tr:hover .row-actions{visibility:visible}
.list-table tr.hover td,.list-table tr:hover td{background-color:#f5f5f5}
.list-table .sorting-indicator{display:block;float:left;height:10px;line-height:10px;margin-left:3px;margin-top:6px;width:10px;visibility:hidden;font-family:FontAwesome}
.list-table .sortable:hover .sorting-indicator,.list-table .sorted .sorting-indicator{visibility:visible}
.list-table .asc .sorting-indicator:before{content:"\f0d7"}
.list-table .asc:hover .sorting-indicator:before{content:"\f0d8"}
.list-table .desc .sorting-indicator:before{content:"\f0d8"}
.list-table .desc:hover .sorting-indicator:before{content:"\f0d7"}

/* 带一像素边框的表格 */
.border-table{border-collapse:collapse;border-spacing:0}
.border-table td,.border-table th{border:1px solid #f0f0ee;padding:8px 16px;text-align:center;vertical-align:middle}

/* dialog */
.dialog{overflow:auto}
.dialog-content{padding:20px 30px;min-width:400px}
.dialog-content h4{border-bottom:1px solid #dfdfdf;color:#464646;font-size:18px;line-height:18px;margin-bottom:10px;text-shadow:0 1px 0 #fff;font-weight:normal;padding-bottom:15px}
.dialog-form-table{width:100%}
.dialog-form-table tr td,.dialog-form-table tr th{padding:10px;vertical-align:top}
.dialog-form-table tr td{text-align:left}
.dialog-form-table tr th{text-align:right}

/* 带细线边框的表格 */
.inbox-table{width:100%;margin:3px 0;border-color:#f0f0ee;border-style:solid;border-width:1px 1px 0 0}
.inbox-table td,.inbox-table th{padding:8px;border-color:#F0F0EE;border-style:solid;border-width:0 0 1px 1px}
.inbox-table th{text-align:left}

/* 左侧文字,右侧输入框的模式 */
.form-table{width:100%}
.form-table tr th,.form-table tr td{padding:5px 10px;text-align:left;font-weight:normal}
.form-table tr th{width:38%;font-weight:bold}
.form-table tr th.adaption{width:auto}
.form-table.col4 tr th{width:19%}

/* 跟上面的差不多,只不过不是以table的方式实现,能实现响应式 */
.form-group{margin:0 -15px 15px}
.form-group label.title{text-align:right;padding-top:7px;color:#23282d;font-weight:600}
@media screen and (max-width:768px){
	.form-group{margin-left:0;margin-right:0}
	.form-group label.title{text-align:left}
}
.form-group-separator{height:1px;background-color:#eee;margin-bottom:15px}

/* tabs */
.tabbable .nav-tabs{zoom:1;clear:left}
.tabbable .nav-tabs:before, .tabbable .nav-tabs:after{content:"";display:table}
.tabbable .nav-tabs:after{clear: both}
.tabbable .nav-tabs li{display:block;float:left;margin-right:4px;margin-bottom:-1px;padding-top:1px;background-color:#fff;border:1px solid #ddd}
.tabbable .nav-tabs li a{display:block;padding:3px 18px;transition:none;color:#aaa}
.tabbable .nav-tabs li.active{font-weight:400;padding-top:0;border-bottom:0;border-top:0}
.tabbable .nav-tabs li.active a{background-color:#fff;border-top:3px solid #D12610;color:#000}
.tabbable .tab-content{background-color:#fff;border:1px solid #ddd;padding:30px;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04)}
.tabbable .tab-pane{position:relative}

/* 分页条 */
.pager{text-align:right;float:right;line-height:28px}
.pager .summary{color:#777;font-family:"Open Sans",sans-serif;margin-right:2px}
.pager a{padding:3px 10px 3px;font-size:16px;font-weight:400;margin:0 1px;background-color:#fff;vertical-align:middle}
.pager a:hover{background-color:#2ea2cc;color:#fff}
.pager a.disabled{color:#aaa}
.pager a.disabled:hover{background-color:#f5f5f5;color:#aaa}
.pager a.prev{border-left-width:1px}
.pager .pager-input{width:50px;display:inline-block}
@media screen and (max-width:768px){
	.pager{width:100%;text-align:center;float:none}
	.pager .summary{display:none}
	.pager a{padding:8px 20px 11px;font-size:18px}
	.pager .pager-input{padding:12px 6px}
}

/* 左侧导航栏 */
/* 菜单 */
.sidebar-menu{display:table-cell;position:relative;width:230px;background:#2c2e2f;z-index:1}
@media screen and (min-width:1230px){
	.sidebar-menu{width:18.7%;max-width:340px}
}
.sidebar-menu.fixed{height:100%}
.sidebar-menu.fixed .sidebar-menu-inner{position:fixed;left:0;top:0;bottom:0;overflow:hidden;width:inherit}

/* 导航栏上的logo */
.sidebar-menu .logo-env .logo a{color:#fff;font-family:Architext;font-size:30px;font-weight:bold}
.sidebar-menu .logo-env .logo a:hover{text-decoration:none}
.sidebar-menu .logo-env .logo a.logo-collapsed{display:none}
.sidebar-menu .logo-env .toggle-mobile-menu{display:none}
.sidebar-menu .sidebar-menu-inner .logo-env{margin-bottom:0;padding:19px 30px;border-bottom:1px solid #313437}

/* 左侧菜单基础效果 */
.sidebar-menu .main-menu{padding:0 30px;margin-top:20px;margin-bottom:20px}
.sidebar-menu .main-menu a{color:#979898;text-decoration:none;display:block;padding:13px 5px;border-bottom:1px solid #313437}
.sidebar-menu .main-menu a:hover{color:#fff}
.sidebar-menu .main-menu a i{margin-right:10px}
.sidebar-menu .main-menu li.active > a{color:#fff}
.sidebar-menu .main-menu > li.opened > ul{display:block}
.sidebar-menu .main-menu > li.opened .opened > ul{display:block}
.sidebar-menu .main-menu ul{display:none;overflow:hidden}
.sidebar-menu .main-menu .expanded > ul{display:block}
.sidebar-menu .main-menu ul li{position:relative}
.sidebar-menu .main-menu ul li a{padding-left:35px}
.sidebar-menu .main-menu ul li ul li a{padding-left:60px}
.sidebar-menu .main-menu ul li ul li ul li a{padding-left:85px}
.sidebar-menu .main-menu ul li ul li ul li ul li a{padding-left:110px}
.sidebar-menu .main-menu li.has-sub > a:before{position:relative;display:inline-block;font-family:'FontAwesome';content:'\f107';float:right;color:#6d747a;margin-left:10px;transform:rotate(-90deg);transition:all 150ms ease-in-out}
.sidebar-menu .main-menu li.has-sub.expanded > a:before{transform:rotate(0deg)}
.sidebar-menu .main-menu > li > a > i.fa{width:1.25em;display:inline-block;text-align:center}

/* 打开菜单挨个划入的效果 */
@media screen and (min-width:768px){
	.sidebar-menu .main-menu ul li.is-hidden{left:-20px;opacity:0}
}
.sidebar-menu .main-menu ul li.is-shown{left:0;zoom:1;opacity:1;transition:all 200ms ease-in-out}
.sidebar-menu .main-menu ul li.is-shown + .is-shown{transition-delay:80ms}
.sidebar-menu .main-menu ul li.is-shown + .is-shown + .is-shown{transition-delay:120ms}
.sidebar-menu .main-menu ul li.is-shown + .is-shown + .is-shown + .is-shown{transition-delay:160ms}
.sidebar-menu .main-menu ul li.is-shown + .is-shown + .is-shown + .is-shown + .is-shown{transition-delay:200ms}
.sidebar-menu .main-menu ul li.is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown{transition-delay:240ms}
.sidebar-menu .main-menu ul li.is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown{transition-delay:280ms}
.sidebar-menu .main-menu ul li.is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown{transition-delay:320ms}
.sidebar-menu .main-menu ul li.is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown{transition-delay:360ms}
.sidebar-menu .main-menu ul li.is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown{transition-delay:400ms}
.sidebar-menu .main-menu ul li.is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown + .is-shown{transition-delay:440ms}

/* 小屏幕菜单到顶部 */
@media screen and (max-width:768px){
	.wrapper{display:block;position:relative}
	.sidebar-menu{display:block;width:100%;height:auto}
	.sidebar-menu{position:relative}
	.sidebar-menu .sidebar-menu-inner{position:relative !important}
	.sidebar-menu .sidebar-menu-inner .logo-env{padding:12px 30px}
	.sidebar-menu .sidebar-menu-inner .main-menu{padding:0 20px}
	.sidebar-menu .sidebar-menu-inner .main-menu{display:none;margin-bottom:0}
	.sidebar-menu .sidebar-menu-inner .main-menu.mobile-is-visible{display:block}
	.sidebar-menu .sidebar-menu-inner .main-menu > li:last-child > a{border-bottom:0}
	.sidebar-menu .sidebar-menu-inner .logo-env .mobile-menu-toggle{position:absolute;right:30px;top:25px}
	.sidebar-menu .sidebar-menu-inner .logo-env .mobile-menu-toggle a{position:relative;display:inline-block;color:#979898;line-height:1;margin-left:15px}
	.user-info-navbar .user-info-menu.fl{display:none}
}

/* 菜单缩起来的效果 */
@media screen and (min-width:769px){
	.sidebar-menu.collapsed{width:80px;z-index:10;overflow:visible}
	.sidebar-menu.collapsed .main-menu{padding:0}
	.sidebar-menu.collapsed .main-menu > li{text-align:center;position:relative}
	.sidebar-menu.collapsed .main-menu > li > a > span{display:none}
	.sidebar-menu.collapsed .main-menu > li > ul{position:absolute;background:#2c2e2f;width:250px;top:0;left:100%;text-align:left;display:none}
	.sidebar-menu.collapsed .main-menu > li:hover > ul{display:block}
	.sidebar-menu.collapsed .main-menu > li.has-sub > a:before{display:none}
	.sidebar-menu.collapsed .main-menu > li.has-sub > ul a{padding-right:20px}
	.sidebar-menu.collapsed .main-menu > li > a > i{margin-right:0}
	.sidebar-menu.collapsed .logo-env{padding:18px 0}
	.sidebar-menu.collapsed .logo-env .logo a.logo-expanded{display:none}
	.sidebar-menu.collapsed .logo-env .logo a.logo-collapsed{display:block;text-align:center}
	.sidebar-menu.collapsed .sidebar-menu-inner{position:relative;overflow:visible}
}

/* 内容主体 */
.wrapper{display:table;width:100%;height:100%;vertical-align:top;border-collapse:collapse;border-spacing:0;table-layout:fixed}
.main-content{display:table-cell;position:relative;z-index:1;padding:30px;vertical-align:top;word-break:break-word}
@media screen and (max-width:768px){
	.wrapper,.main-content{height:auto;display:block}
}

/* 内容主题-页面标题 */
.main-content .page-title{background:#f8f8f8;margin:-30px;margin-bottom:30px;padding:20px 0;box-shadow:0 1px 0 rgba(0,1,1,.08), inset 0 1px 0 #ededed}
@media screen and (max-width: 768px) {
	.main-content .page-title{padding:15px 0}
}
.main-content .page-title .title-env{padding-left:30px}
.main-content .page-title .title-env h1{font-size:27px;font-weight:normal;float:left;vertical-align:bottom}
/* 快捷菜单 */
.main-content .page-title .quick-link{font-size:14px;margin-left:10px}
.main-content .page-title .quick-link i{margin-right:5px}
.main-content .page-title .operate-env{float:right;padding-right:30px}
.main-content .page-title .operate-env .fa{color:#979898;padding:4px 8px}
.main-content .page-title .operate-env .fa:hover{color:#646565}
.main-content .page-title .operate-env .faycms-help-link{transition:all 700ms ease-in-out;transform:rotateY(0deg)}
.main-content .page-title .operate-env .faycms-help-link:hover{transform:rotateY(360deg)}

/* 顶部导航 */
.main-content .user-info-navbar{background-color:#fff;margin:-30px;margin-bottom:30px}
.user-info-navbar .user-info-menu .fa{font-size:15px}
.user-info-navbar .user-info-menu > li{position:relative;border:1px solid #fff;border-top:0;border-bottom:0;display:block;float:left}
.user-info-navbar .user-info-menu > li.hover-line:hover:before,.user-info-navbar .user-info-menu > li.hover-line.open:before{content:'';position:absolute;display:block;height:2px;top:0;left:0;right:0;background:#68b828}
.user-info-navbar .user-info-menu > li > a{position:relative;display:block;padding:30px 20px;color:#606161;border-bottom:1px solid #fff}
.user-info-navbar .user-info-menu > li > a.toggle-sidebar{padding-left:30px}
.user-info-navbar .user-info-menu > li.user-profile{margin-right:10px}
.user-info-navbar .user-info-menu > li.dropdown-container a.dropdown{border-bottom-color:#ededed}
.user-info-navbar .user-info-menu > li.dropdown-container.open > a{border-bottom-color:#fff}
.user-info-navbar .user-info-menu > li.user-profile img{position:relative;top:8px;margin-top:-17px;width:28px;height:28px}
.user-info-navbar .user-info-menu > li.user-profile img + span{margin-left:9px}
.user-info-navbar .user-info-menu > li.user-profile i.fa{margin-left:5px}
.user-info-navbar .user-info-menu > li.open{border-left-color:#ddd;border-right-color:#ddd;z-index:15}
.user-info-navbar .user-info-menu > li.user-profile .dropdown-menu{width:250px}
.user-info-navbar .user-info-menu > li.dropdown-container > ul > li.last{background-color:#fafafa}
.user-info-navbar .user-info-menu > li.dropdown-container > ul > li.last:after{content:'';display:block;position:absolute;height:1px;background:#f0f0f0;top:-1px;left:0;right:0}
.user-info-navbar .user-info-menu > li.dropdown-container > ul > li.last a{border-bottom:0}

#faycms-messages-container{width:369px}
#faycms-messages li{position:relative;display:block;padding-top:15px}
#faycms-messages li a span.desc{color:#606161}
#faycms-messages li span.faycms-message-container{border-bottom:1px solid #f0f0f0;padding-bottom:15px;display:block}
#faycms-messages li .delete-message-link{position:absolute;top:9px;right:20px;border-bottom:0;display:none;font-size:21px}
#faycms-messages li .set-read-link{position:absolute;top:20px;right:42px;border-bottom:0;display:none;font-size:12px}
#faycms-messages li:hover .delete-message-link,#faycms-messages li:hover .set-read-link{display:block}

/* 树 */
.tree-container{background-color:#fff;padding:30px 9px 30px 0}
.tree{margin-left:10px}
.tree .leaf-container{margin-left:10px;white-space:nowrap;background:url(images/tree/L4.gif) repeat-y scroll 0 0 transparent}
.tree .leaf-container .options{padding-right:10px;margin-left:150px}
.leaf-title{padding-left:22px;cursor:pointer;display:inline-block}
.leaf-title.parent{background:url(images/tree/M1.gif) repeat-y scroll -1px 5px transparent}
.tree .leaf-container.close >.leaf > .leaf-title.parent{background:url(images/tree/P1.gif) repeat-y scroll -1px 5px transparent}
.tree .leaf-container.close > ul.tree{display:none}
.leaf-title.terminal{background:url(images/tree/L1.gif) repeat-y scroll 0 8px transparent}
.leaf-title i.fa{margin-right:4px}
.leaf:hover{background-color:#f1f1f1}
.leaf{height:34px;line-height:32px;transition:all 0.2s linear 0s}
.leaf .options .form-control{padding-top:4px;padding-bottom:4px;line-height:1;vertical-align: inherit}
.leaf .options a{background:url(images/cut-off-line.png) no-repeat scroll right 5px transparent;padding:0 5px}
.leaf .options a:last-child{background:0 none}
.leaf a.hover-link{visibility:hidden}
.tree-container .leaf.hover a.hover-link,.tree-container .leaf:hover a.hover-link{visibility:visible}
.leaf a.hover-link .icon-pencil{margin-right:0}
@media screen and (max-width:768px){
	.leaf .options{display:none}
	.leaf a.hover-link{visibility:visible}
}

/* 可拖拽排序列表 */
.dragsort-list{padding:10px 0}
.dragsort-list .dragsort-item{position:relative;margin-bottom:10px;padding:10px 10px 10px 0;border:1px solid #e1e1e1;box-shadow:1px 1px 2px rgba(0, 0, 0, 0.1);background-color:#fff;box-sizing:content-box}
.dragsort-list .dragsort-item .dragsort-item-selector{width:30px;display:block;text-align:center;position:absolute;top:50%;margin-top:-15px;height:30px;line-height:30px}
.dragsort-list .dragsort-item .dragsort-item-selector:before{content:"\f0dc";font-family:FontAwesome}
.dragsort-list .dragsort-item .dragsort-meta{margin-left:31px}
.dragsort-list .dragsort-item.holder{background-color:#fff;border:2px dashed #DFDFDF !important}
.dragsort-list .dragsort-item .dragsort-rm{float:right;color:grey;margin-top:-3px;z-index:100;line-height:1em;font-size:20px}
.dragsort-list .dragsort-item .dragsort-rm:before{content:"×"}
.dragsort-list .dragsort-item-container{margin:0 30px}

/* 小工具域 */
.widget-list{padding-top:10px}
.widget-list .widget-item{position:relative;margin-bottom:10px;padding:10px 10px 10px 0;border:1px solid #e1e1e1;box-shadow:1px 1px 2px rgba(0, 0, 0, 0.1);background-color:#fff;box-sizing:content-box}
.widget-list .widget-item .widget-item-selector{width:30px;display:block;text-align:center;position:absolute;top:50%;margin-top:-15px;height:30px;line-height:30px}
.widget-list .widget-item .widget-item-selector:before{content:"\f047";font-family:FontAwesome}
.widget-list .widget-item.holder[data-placeholder="true"]{background-color:#fff;border:2px dashed #DFDFDF !important}
.widget-list .widget-item.holder[data-droptarget="true"]{height:2px !important;border:0 none;padding:0;margin:0;box-shadow:none}
.widget-list .widget-item .operations a{background:url(images/cut-off-line.png) no-repeat scroll right 5px transparent;padding:0 6px 0 5px}
.widget-list .widget-item .operations a:last-child{background:0 none}
.widget-list .widget-item-container{margin:0 22px 0 31px}
.widget-list .widget-item-container .operations{visibility:hidden}
.widget-list .widget-item:hover .widget-item-container .operations{visibility:visible}

/* 如文章编辑页面文件列表 */
.file-list .file-thumb{float:left;overflow:hidden;text-align:center;width:105px}
.file-list .file-thumb img{height:100px}
.file-list .file-desc{width:95%}
.file-list .file-desc-container{margin-left:120px;margin-right:16px}
.progress-bar{height:5px;position:absolute;bottom:-1px;width:100%;left:0}
.progress-bar-percent{background-color:#2187E7;height:2px;margin:2px 0;position:absolute}

/* 文章编辑框架 */
.poststuff .post-body{margin-right:310px}
.poststuff .post-body-content{width:100%;min-width:463px;float:left}
.poststuff .postbox-container-1{float:right;margin-right:-310px;width:280px}
.poststuff .postbox-container-2{float:left;width:100%}
@media screen and (max-width:1140px){
	.poststuff .post-body{margin-right:0}
	.poststuff .post-body-content{min-width:0}
	.poststuff .postbox-container-1{margin-right:0;width:100%}
}

/* 杂项 */
.ajax-status-img{vertical-align:middle;margin-left:5px}
.subsubsub{margin:8px 0 5px;white-space:nowrap}
.subsubsub li{display:inline}
.subsubsub li.sel a{font-weight:bold;color:#000}
.subsubsub li img{vertical-align:middle}
.drag-drop-area{border:4px dashed #ddd;height:200px;text-align:center;background-color:#fff}
.drag-drop-inside{margin-top:55px;color:#aaa}
#visual-editor{width:100%}
#avatar-container img{vertical-align:bottom;margin-right:10px}
#avatar-container #avatar-img{width:178px;height:178px}
#avatar-container #avatar-img-circle{width:70px;height:70px;border-radius:50%}
.tick-circle,.cross-circle{width:16px;height:16px;display:inline-block;vertical-align:middle;margin-top:-3px}
.tick-circle{background:url("images/tick-circle.png") no-repeat !important}
.cross-circle{background:url("images/cross-circle.png") no-repeat !important}

/* 插件式样修正 */
#faycms #fancybox-wrap{box-sizing:content-box}
#faycms #fancybox-outer{width:100%}
#faycms #fancybox-close{background:none;font-size:23px;text-align:center;font-weight:bold;top:12px;right:18px}
#faycms #fancybox-close:before{content:"×";color:#888}
#faycms #fancybox-close:hover:before{color:#373e4a}

.fn-block{position:absolute;top:0;left:0;width:100%;height:100%;cursor:wait;z-index:500;background:url(images/bgblackp10.png) repeat scroll 0 0 transparent}
.fn-block-loading-img{position:absolute;top:50%;left:50%;margin:-22px 0 0 -22px;z-index:501;cursor:wait}

/* tags输入框 */
.ftextext-container{display:inline-block;border:1px solid #DFDFDF;box-sizing:content-box}
.ftextext-container.ftextext-active{border-color:#aaa;box-shadow:1px 1px 2px rgba(0,0,0,0.1)}
.ftextext-container input[type="text"]{outline:0;border:0 !important;background:transparent !important;box-shadow:none}
.ftextext-container .ftextext-choices{padding:3px;cursor:text;background-color:#fff}
.ftextext-drop{margin-top:4px;border:1px solid #aaa;box-shadow:0 4px 5px rgba(0, 0, 0, 0.15);display:none;background-color:#fff;position:absolute;z-index:500}
.ftextext-drop ul{margin:4px}
.ftextext-drop li{padding:5px 6px}
.ftextext-drop li .highlight{background-color:yellow}
.ftextext-drop li.disabled{display:none}
.ftextext-drop li.active{background-color:#eeeeee;cursor:pointer}
.ftextext-choices li{padding:3px 5px 3px 5px;display:inline-block;margin:2px 0}
.ftextext-choices li.ftextext-choice{cursor:default;margin-left:5px;background-color:#eeeeee;transition:all 0.2s linear 0s}
.ftextext-choices li.ftextext-choice:hover{background-color:#E5E5E5}
.ftextext-remove{font-family:FontAwesome;display:inline-block;font-size:12px;color:#777;margin-left:3px}
.ftextext-remove:before{content:"\f00d"}

/* 后台会话 */
.chats-list .chat-item{position:relative;padding:12px;margin-bottom:5px;vertical-align:top;background-color:#fff;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04)}
.chats-list .ci-avatar{float:left}
.chats-list .chat-body{padding-left:10px;margin:2px 0 0 40px}
.chats-list .ci-user{color:#379BE9}
.chats-list .ci-to{color:#379BE9;margin-left:3px}
.chats-list .ci-time{color:#999;margin-left:7px;font-size:12px}
.chats-list .ci-time{margin-left:7px}
.chats-list .ci-content{margin-top:6px}
.chats-list .ci-footer{margin-top:2px}
.chats-list .ci-reply-link{color:#999;font-size:12px}
.chats-list .ci-reply-link .icon-reply{margin-right:1px}
.chats-list .ci-reply-link:hover{color:#379BE9}
.chats-list .ci-reply-link em{font-style:normal}
.chats-list .ci-footer a:hover span{text-decoration:underline}
.chats-list .ci-footer .ci-options{visibility:hidden}
.chats-list .chat-item:hover .ci-options{visibility:visible}

#chat-dialog .cd-header{background-color:#379BE9;color:#fff;padding:15px 0 15px 35px}
#chat-dialog .cd-avatar{width:80px;height:80px;float:left;margin-right:10px}
#chat-dialog .reply-root{color:#fff;text-decoration:underline;margin-left:10px}
#chat-dialog .icon-share{margin-right:0}
#chat-dialog .cd-user,#chat-dialog .cd-to{font-size:16px}
#chat-dialog .cd-reply-list{padding:0 20px 10px 20px}
#chat-dialog .cd-item{position:relative;padding:9px 0 9px 92px;background:url(images/timeline.png) -113px 0 repeat-y}
#chat-dialog .cdi-user{line-height:20px;color:#379BE9}
#chat-dialog .cdi-time{position:absolute;left:0;top:9px;margin-left:4px;width:72px;background:url(images/timeline.png) 63px 6px no-repeat}
#chat-dialog .cdi-status{margin-left:3px}
#chat-dialog .reply-container{padding:8px 20px;border-top:1px solid #ddd;margin-right:6px}
#chat-dialog .reply-container textarea{width:95%;margin:0 auto;display:block;height:80px}
#chat-dialog .cdi-options{visibility:hidden}
#chat-dialog .cd-item:hover .cdi-options{visibility:visible}
#chat-dialog .cdi-options a{background:url("images/cut-off-line.png") no-repeat scroll right 5px transparent;padding:0 9px 0 5px}
#chat-dialog .cdi-options a:last-child{background:0 none}
#chat-dialog .cdi-line{position:absolute;background:#379BE9;width:2px;height:100%;left:70px;top:0;visibility:hidden}
#chat-dialog .cd-item:hover .cdi-line{visibility:visible}
#chat-dialog .cdi-options i{margin-right:1px}

.user-info{background-color:#fff;padding:20px;box-shadow:0 1px 1px rgba(0, 0, 0, 0.04);border:1px solid #DFDFDF}
.user-info .user-avatar{float:left}
.user-info .user-avatar img{display:block;border-radius:50%;width:70px;height:70px}
.user-info .user-details p{margin-left:90px;font-size:12px;margin-bottom:6px}
.user-info .user-nickname{color:#646565;font-size:14px}
.user-info .user-nickname:hover{color:#d54e21}
.user-info time{color:#b1b1b1}

/* 阅卷 */
.exam-question-list .exam-question-item{font-weight:bold;margin-bottom:8px}
.exam-question-list .exam-question-answers{padding-left:10px}
.exam-question-list .exam-question-answers li{padding:5px 6px}
.exam-question-list .exam-question-answers li:hover{background-color:#EAEAEA}

/* 帮助信息(多行文本) */
.text ol,.text ul{margin-left:20px}
.text ol li,.text ul li{line-height:23px}
.text ul li{list-style:square}
.text ul li ul li{list-style:disc}
.text strong{margin:5px 0}
.text p{margin:5px 0}
.text h1,.text h2,.text h3{font-size:16px;margin:10px 0}
.text h4,.text h5,.text h6{font-size:15px;margin:5px 0}
.text blockquote{padding:5px 11px;margin:0 0 8px 3px;border-left:5px solid #eee}

/* autocomplete输入框 */
.fac-container{border:1px solid #aaa;box-shadow:0 4px 5px rgba(0, 0, 0, 0.15);display:none;background-color:#fff;position:absolute;z-index:500;box-sizing:content-box}
.fac-container ul{margin:4px}
.fac-container li{padding:5px 6px}
.fac-container li .highlight{background-color:yellow}
.fac-container li.active{background-color:#eeeeee;cursor:pointer}

/* prettify */
.prettyprinted code{border:0 none;background:none;padding:0;display:block}
pre .str,code .str{color:#65b042}
pre .kwd,code .kwd{color:#e28964}
pre .com,code .com{color:#aeaeae;font-style:italic}
pre .typ,code .typ{color:#89bdff}
pre .lit,code .lit{color:#3387cc}
pre .pun,code .pun{color:#fff}
pre .pln,code .pln{color:#fff}
pre .tag,code .tag{color:#89bdff}
pre .atn,code .atn{color:#bdb76b}
pre .atv,code .atv{color:#65b042}
pre .dec,code .dec{color:#3387cc}
pre.prettyprint,code.prettyprint{background-color:#333;font-family:'Source Code Pro', Monaco, Consolas, "Lucida Console", monospace}
pre.prettyprint{margin:0 auto 10px;padding:1em 0 1em 1em;white-space:pre-wrap}
ol.linenums{margin-top:0;margin-bottom:0;color:#aeaeae}
@media print{
	pre .str,code .str{color:#060}
	pre .kwd,code .kwd{color:#006;font-weight:bold}
	pre .com,code .com{color:#600;font-style:italic}
	pre .typ,code .typ{color:#404;font-weight:bold}
	pre .lit,code .lit{color:#044}
	pre .pun,code .pun{color:#440}
	pre .pln,code .pln{color:#333}
	pre .tag,code .tag{color:#006;font-weight:bold}
	pre .atn,code .atn{color:#404}
	pre .atv,code .atv{color:#060}
}
pre li.crt{background-color:#553B3B}
pre li:hover{background-color:#575757 !important}
pre li.L1,pre li.L3,pre li.L5,pre li.L7,pre li.L9 {background:none}

/* editormd编辑器预览式样修正 */
#faycms .editormd-preview-container pre,#faycms .editormd-html-preview pre{background:#333}
#faycms .editormd-preview-container ul{list-style-type:disc}
#faycms .editormd-preview-container ul ul,#faycms .editormd-preview-container ol ul{list-style-type:circle}
#faycms .editormd-preview-container ol ol ul,#faycms .editormd-preview-container ol ul ul,#faycms .editormd-preview-container ul ol ul,#faycms .editormd-preview-container ul ul ul{list-style-type:square}

/* 工具类 */
.bold{font-weight:bold}
.circle{border-radius:50%}
.clear{clear:both}
.cf,.row,.page-title,.form-field,.user-info-navbar,.form-group{zoom:1;clear:left}
.cf:before,.cf:after,
.row:before,.row:after,
.page-title:before,.page-title:after,
.form-field:before,.form-field:after,
.user-info-navbar:before,.user-info-navbar:after,
.form-group:before,.form-group:after{content:"";display:table}
.cf:after,.row:after,.page-title:after,.form-field:after,.user-info-navbar:after,.form-group:after{clear:both}
.fl{float:left}
.fr{float:right}
.ib{display:inline-block !important}
.title-sup{padding:0 3px}
.block{display:block}
.ellipsis{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pointer{cursor:pointer}
.hide,.hidden{display:none}
.fn-hide{display:none !important}
.vat{vertical-align:top}
@media (max-width:767px){
	.hidden-xs{display:none !important}
}
@media (max-width:1200px) {
    .hidden-not-lg{display:none !important}
}

/* 宽高类 */
.w20{width:20px !important}
.w50{width:50px !important}
.w70{width:70px !important}
.w90{width:90px !important}
.w100{width:100px !important}
.w115{width:115px !important}
.w135{width:135px !important}
.w150{width:150px !important}
.w200{width:200px !important}
.w240{width:240px !important}
.w600{width:600px !important}
.w650{width:650px !important}
.w800{width:800px !important}
.wa{width:auto !important}
.mw100{max-width:100px !important}
.mw110{max-width:110px !important}
.mw150{max-width:150px !important}
.mw200{max-width:200px !important}
.mw400{max-width:400px !important}
.mw500{max-width:500px !important}
.mw600{max-width:600px !important}
.wp10{width:10% !important}
.wp15{width:15% !important}
.wp25{width:25% !important}
.wp38{width:38% !important}
.wp49{width:49% !important}
.wp62{width:62% !important}
.wp100{width:100% !important}

.h60{height:60px;min-height:60px}
.h90{height:90px;min-height:90px}
.h200{height:200px;min-height:200px}
.h350{height:350px;min-height:350px}

.mr5{margin-right:5px !important}
.mb5{margin-bottom:5px !important}
.mb10{margin-bottom:10px !important}
.mb30{margin-bottom:30px !important}
.mt0{margin-top:0 !important}
.mt5{margin-top:5px !important}
.mt6{margin-top:6px !important}
.mt32{margin-top:32px !important}
.ml5{margin-left:5px !important}
.mr10{margin-right:10px !important}
.pl0{padding-left:0 !important}
.pt0{padding-top:0 !important}
.pt7{padding-top:7px !important}
.pl11{padding-left:11px !important}
.pl20{padding-left:20px !important}
.b0{border:0 none !important}


text:
<?xml version="1.0" encoding="UTF-8"?>

<rootTag>
  <Award>
    <AwardTitle>Travel Support for Software Design and Productivity Summit</AwardTitle>
    <AwardEffectiveDate>08/01/2011</AwardEffectiveDate>
    <AwardExpirationDate>04/30/2014</AwardExpirationDate>
    <AwardAmount>40000</AwardAmount>
    <AwardInstrument>
      <Value>Standard Grant</Value>
    </AwardInstrument>
    <Organization>
      05010000
      <Directorate>
        <LongName>Direct For Computer & Info Scie & Enginr</LongName>
      </Directorate>
      <Division>
        <LongName>Division of Computing and Communication Foundations</LongName>
      </Division>
    </Organization>
    <ProgramOfficer>
      <SignBlockName>Sol J. Greenspan</SignBlockName>
    </ProgramOfficer>
    <AbstractNarration>The Software Design and Productivity (SDP) Cross Agency and National Needs Summit will be held at the NASA Ames Conference Center, September 20-23, 2011. The summit is organized and sponsored by SDP Coordinating Group within the National Coordination Office (NCO) for Networking and Information Technology Research and Development (NITRD). The purpose of this summit is to inform a crosscutting SDP research and technology agenda. It will provide a forum for bringing together policy makers, stakeholders, visionaries, and R&D leaders for software design and productivity research. The summit will focus on the key issues of the SDP mission: to advance software engineering concepts, methods, techniques and tools that result in more usable, dependable, cost-effective, and sustainable software-intensive systems. This grant will reimburse academic participants for travel and accommodations.</AbstractNarration>
    <MinAmdLetterDate>07/16/2011</MinAmdLetterDate>
    <MaxAmdLetterDate>09/17/2013</MaxAmdLetterDate>
    <ARRAAmount/>
    <AwardID>1143825</AwardID>
    <Investigator>
      <FirstName>Robyn</FirstName>
      <LastName>Lutz</LastName>
      <EmailAddress>rlutz@cs.iastate.edu</EmailAddress>
      <StartDate>07/16/2011</StartDate>
      <EndDate/>
      <RoleCode>Principal Investigator</RoleCode>
    </Investigator>
    <Institution>
      <Name>Iowa State University</Name>
      <CityName>AMES</CityName>
      <ZipCode>500112207</ZipCode>
      <PhoneNumber>5152945225</PhoneNumber>
      <StreetAddress>1138 Pearson</StreetAddress>
      <CountryName>United States</CountryName>
      <StateName>Iowa</StateName>
      <StateCode>IA</StateCode>
    </Institution>
  </Award>
</rootTag>