text:
class VisualiserTimer
{
public:
	VisualiserTimer(ros::NodeHandle& node);

	static float getTime();
private:

	void receiveTime(const std_msgs::Float32::ConstPtr& msg);

	static float latest_received_time_;
	ros::Subscriber timer_sub_;
};

#endif


text:
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid data: userinfo-username-contains-at-sign</title>
<object data="http://::@c@d:2"></object>

redpajama_set_name: RedPajamaGithub


text:
/* 商家搜索css  */
.search_tips{
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 4px;
	display: none;
}
.search_tips li{
	height: 40px;
	line-height: 40px;
	border-bottom: 1px solid #ccc;
	background: url(../images/search.jpg) no-repeat 5px center;
	background-size: 18px;
}
.search_tips li:last-child{
	border: 0;
}
.search_tips li a{
	display: block;
	padding-left: 26px;
}layout div{word-wrap:break-word;word-break:break-all;padding:1px 5px;}


text:
package de.maximilian_miller.www.frontdoor.app;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * Main Screen
 */
public class MainActivityFragment extends Fragment implements View.OnClickListener
{
    private EditText panel;
    private Button btn0;
    private Button btn1;
    private Button btn2;
    private Button btn3;
    private Button btn4;
    private Button btn5;
    private Button btn6;
    private Button btn7;
    private Button btn8;
    private Button btn9;
    private Button btnCancel;
    private Button btnOK;
    private ProgressBar pb;

    private boolean straightExecution = false;

    public static final int RESPONSE_OK = 0;
    public static final int RESPONSE_ERROR = 1;

    public MainActivityFragment() {
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
        // Get the message from the intent
        Intent intent = this.getActivity().getIntent();
        if (intent.hasExtra(NFCActivity.NFC_TAG)) {
            String nfc_tag = intent.getStringExtra(NFCActivity.NFC_TAG);
            straightExecution = true;
        }
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        Log.d("FrontDoor:HttpRequest", "Straight execution: "+straightExecution);
        if (straightExecution) {
            SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
            if (panel.getText().toString().isEmpty())
            {
                Toast toast = Toast.makeText(getActivity().getApplicationContext(), R.string.msg_no_key, Toast.LENGTH_LONG);
                toast.setGravity(Gravity.CENTER, Gravity.CENTER, Gravity.CENTER);
                toast.show();
                return;
            }
            MyAsyncTask task = new MyAsyncTask();
            task.execute(panel.getText().toString());
        }
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
    {
        inflater.inflate(R.menu.menu_main, menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_settings:
                startActivity(new Intent(this.getActivity(), SettingsActivity.class));
                return true;
            case R.id.action_nfc:
                startActivity(new Intent(this.getActivity(), NFCActivity.class));
                return true;

        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)
    {
        SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
        String preferenceRememberKey = getString(R.string.preference_remember_key);
        String preferenceKeyKey = getString(R.string.preference_key_key);
        boolean remembered = sPrefs.getBoolean(preferenceRememberKey, false);
        String rememberedCode = sPrefs.getString(preferenceKeyKey,"");

        View inflatedView = inflater.inflate(R.layout.fragment_main, container, false);
        panel =(EditText)inflatedView.findViewById(R.id.key);
        if (remembered && rememberedCode != null && !rememberedCode.isEmpty())
            panel.setText(rememberedCode);
        btn0=(Button)inflatedView.findViewById(R.id.btn0);
        btn0=(Button)inflatedView.findViewById(R.id.btn0);
        btn1=(Button)inflatedView.findViewById(R.id.btn1);
        btn2=(Button)inflatedView.findViewById(R.id.btn2);
        btn3=(Button)inflatedView.findViewById(R.id.btn3);
        btn4=(Button)inflatedView.findViewById(R.id.btn4);
        btn5=(Button)inflatedView.findViewById(R.id.btn5);
        btn6=(Button)inflatedView.findViewById(R.id.btn6);
        btn7=(Button)inflatedView.findViewById(R.id.btn7);
        btn8=(Button)inflatedView.findViewById(R.id.btn8);
        btn9=(Button)inflatedView.findViewById(R.id.btn9);
        btnOK=(Button)inflatedView.findViewById(R.id.buttonOK);
        btnCancel=(Button)inflatedView.findViewById(R.id.buttonCancel);
        pb=(ProgressBar)inflatedView.findViewById(R.id.progressBar1);
        pb.setVisibility(View.INVISIBLE);
        btn0.setOnClickListener(this);
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
        btn3.setOnClickListener(this);
        btn4.setOnClickListener(this);
        btn5.setOnClickListener(this);
        btn6.setOnClickListener(this);
        btn7.setOnClickListener(this);
        btn8.setOnClickListener(this);
        btn9.setOnClickListener(this);
        btnCancel.setOnClickListener(this);
        btnOK.setOnClickListener(this);
        return inflatedView;
    }

    @Override
    public void onClick(View v)
    {
        switch(v.getId())
        {
            case R.id.btn0:
                panel.setText(panel.getText()+"0");
                break;
            case R.id.btn1:
                panel.setText(panel.getText()+"1");
                break;
            case R.id.btn2:
                panel.setText(panel.getText()+"2");
                break;
            case R.id.btn3:
                panel.setText(panel.getText()+"3");
                break;
            case R.id.btn4:
                panel.setText(panel.getText()+"4");
                break;
            case R.id.btn5:
                panel.setText(panel.getText()+"5");
                break;
            case R.id.btn6:
                panel.setText(panel.getText()+"6");
                break;
            case R.id.btn7:
                panel.setText(panel.getText()+"7");
                break;
            case R.id.btn8:
                panel.setText(panel.getText()+"8");
                break;
            case R.id.btn9:
                panel.setText(panel.getText()+"9");
                break;
            case R.id.buttonCancel:
                panel.setText("");
                panel.setHint(getString(R.string.hint));
                break;
            case R.id.buttonOK:
                SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
                boolean remember = sp.getBoolean(getString(R.string.preference_remember_key), false);
                if (remember)
                {
                    SharedPreferences.Editor editor = sp.edit();
                    editor.putString(getString(R.string.preference_key_key), panel.getText().toString());
                    editor.commit();
                }
                MyAsyncTask task = new MyAsyncTask();
                task.execute(panel.getText().toString());
        }
    }

    private class MyAsyncTask extends AsyncTask<String, Integer, HashMap<String, Object>>
    {
        String code;

        @Override
        protected HashMap<String, Object> doInBackground(String... params)
        {
            Map<String, String> parameters = new HashMap<>();
            parameters.put("key",params[0]);
            return postData(createQueryStringForParameters(parameters));
        }

        @Override
        protected void onPreExecute()
        {
            code = panel.getText().toString();
            panel.setText("");
            panel.setHint("");
            pb.setVisibility(View.VISIBLE);
        }

        @Override
        protected void onPostExecute(HashMap<String, Object> response)
        {
            int responseCode = (int)response.get("response_code");
            pb.setVisibility(View.INVISIBLE);
            String preferenceRememberKey = getString(R.string.preference_remember_key);
            SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
            boolean remembered = sp.getBoolean(preferenceRememberKey, false);
            if (!remembered)
                panel.setHint(R.string.hint);
            else
                panel.setText(code);
            String message;
            if (responseCode == RESPONSE_OK)
            {
                if ((int)response.get("valid") == 1)
                    message = "Welcome back " + response.get("name") + "!";
                else
                    message = "DENIED";
            }
            else
                message = "ERROR: " + response.get("msg_err");
            Toast toast = Toast.makeText(getActivity().getApplicationContext(), message, Toast.LENGTH_LONG);
            toast.setGravity(Gravity.CENTER, Gravity.CENTER, Gravity.CENTER);
            toast.show();
        }

        @Override
        protected void onProgressUpdate(Integer... progress)
        {
            pb.setProgress(progress[0]);
        }

        public HashMap<String, Object> postData(String postParameters)
        {
            HashMap<String, Object> response = new HashMap<>();
            BufferedReader br = null;
            HttpURLConnection conn = null;

            SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
            String preferenceUrlKey = getString(R.string.preference_url_key);
            String preferenceUrlDefault = getString(R.string.preference_url_default);
            String preferences_url = sPrefs.getString(preferenceUrlKey,preferenceUrlDefault);

            try {
                URL url = new URL(preferences_url);

                conn = (HttpURLConnection) url.openConnection();

                conn.setRequestMethod("POST");
                conn.setReadTimeout(10000);
                conn.setConnectTimeout(15000);
                conn.setDoInput(true);
                conn.setDoOutput(true);
                conn.setRequestProperty("Content-Type",
                        "application/x-www-form-urlencoded");
                conn.setFixedLengthStreamingMode(
                        postParameters.getBytes().length);

                //send the POST out
                PrintWriter out;
                try {
                    out = new PrintWriter(conn.getOutputStream());
                    out.print(postParameters);
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }

                int responseCode = RESPONSE_OK;

                // handle issues
                int statusCode;

                statusCode = conn.getResponseCode();

                if (statusCode != HttpURLConnection.HTTP_OK) {
                    responseCode = RESPONSE_ERROR;
                    response.put("msg_err", "Connection failure: "+responseCode);
                }
                else
                {
                    // read the response
                    String response_raw = "";

                    InputStream in = new BufferedInputStream(conn.getInputStream());

                    br = new BufferedReader(new InputStreamReader(in));

                    String line;
                    while ((line = br.readLine()) != null) {
                        response_raw += line + "\n";
                    }
                    JSONObject json = new JSONObject(response_raw.trim());
                    response.putAll(jsonToMap(json));
                }
                response.put("response_code", responseCode);

            } catch (MalformedURLException e) {
                response.put("msg_err", e.getMessage());
                Log.e("FrontDoor:HttpRequest", e.getMessage(), e);
            } catch (IOException e1) {
                response.put("msg_err", e1.getMessage());
                Log.e("FrontDoor:HttpRequest", e1.getMessage(), e1);
            } catch (JSONException e2) {
                response.put("msg_err", e2.getMessage());
                Log.e("FrontDoor:HttpRequest", e2.getMessage(), e2);
            } finally {
                if (conn != null) {
                    conn.disconnect();
                }
                if (br != null) {
                    try {
                        br.close();
                    } catch (final IOException e) {
                        Log.e("FrontDoor:HttpRequest", e.getMessage(), e);
                    }
                }

            }

            return response;
        }

        // create post query string
        private static final char PARAMETER_DELIMITER = '&';
        private static final char PARAMETER_EQUALS_CHAR = '=';
        public String createQueryStringForParameters(Map<String, String> parameters)
        {
            StringBuilder parametersAsQueryString = new StringBuilder();
            try {
                if (parameters != null) {
                    boolean firstParameter = true;

                    for (String parameterName : parameters.keySet()) {
                        if (!firstParameter) {
                            parametersAsQueryString.append(PARAMETER_DELIMITER);
                        }

                        parametersAsQueryString.append(parameterName)
                                .append(PARAMETER_EQUALS_CHAR)
                                .append(URLEncoder.encode(
                                        parameters.get(parameterName), "UTF-8"));

                        firstParameter = false;
                    }
                }
            } catch (UnsupportedEncodingException e)
            {
                // catch exception
            }
            return parametersAsQueryString.toString();
        }

        // convert inputstream to String
        private String convertInputStreamToString(InputStream inputStream) throws IOException
        {
            BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
            String line;
            String result = "";
            while((line = bufferedReader.readLine()) != null)
                result += line;

            inputStream.close();
            return result;

        }

        public Map<String, Object> jsonToMap(JSONObject json) throws JSONException {
            Map<String, Object> retMap = new HashMap<>();

            if(json != JSONObject.NULL) {
                retMap = toMap(json);
            }
            return retMap;
        }

        public Map<String, Object> toMap(JSONObject object) throws JSONException {
            Map<String, Object> map = new HashMap<>();

            Iterator<String> keysItr = object.keys();
            while(keysItr.hasNext()) {
                String key = keysItr.next();
                Object value = object.get(key);

                if(value instanceof JSONArray) {
                    value = toList((JSONArray) value);
                }

                else if(value instanceof JSONObject) {
                    value = toMap((JSONObject) value);
                }
                map.put(key, value);
            }
            return map;
        }

        public List<Object> toList(JSONArray array) throws JSONException {
            List<Object> list = new ArrayList<>();
            for(int i = 0; i < array.length(); i++) {
                Object value = array.get(i);
                if(value instanceof JSONArray) {
                    value = toList((JSONArray) value);
                }

                else if(value instanceof JSONObject) {
                    value = toMap((JSONObject) value);
                }
                list.add(value);
            }
            return list;
        }
    }
}


text:
/*
 * Reveal.js menu plugin
 * MIT licensed
 * (c) Greg Denehy 2015
 */

var RevealMenu = window.RevealMenu || (function(){
	var config = Reveal.getConfig();
	var options = config.menu || {};
	options.path = options.path || scriptPath() || 'plugin/menu';

	var module = {};

	loadResource(options.path + '/lib/jeesh.min.js', 'script', function() {
	loadResource(options.path + '/lib/bowser.min.js', 'script', function() {
	loadResource(options.path + '/menu.css', 'stylesheet', function() {
	loadResource(options.path + '/font-awesome-4.3.0/css/font-awesome.min.css', 'stylesheet', function() {
		// does not support IE8 or below
		if (!bowser.msie || bowser.version >= 9) {
			//
			// Set option defaults
			//
			var side = options.side || 'left';	// 'left' or 'right'
			var numbers = options.numbers || false;
			var titleSelector = 'h1, h2, h3, h4, h5';
			if (typeof options.titleSelector === 'string') titleSelector = options.titleSelector;
			var hideMissingTitles = options.hideMissingTitles || false;
			var markers = options.markers || false;
			var custom = options.custom;
			var themes = options.themes;
			if (typeof themes === "undefined") {
				themes = [
					{ name: 'Black', theme: 'css/theme/black.css' },
					{ name: 'White', theme: 'css/theme/white.css' },
					{ name: 'League', theme: 'css/theme/league.css' },
					{ name: 'Sky', theme: 'css/theme/sky.css' },
					{ name: 'Beige', theme: 'css/theme/beige.css' },
					{ name: 'Simple', theme: 'css/theme/simple.css' },
					{ name: 'Serif', theme: 'css/theme/serif.css' },
					{ name: 'Blood', theme: 'css/theme/blood.css' },
					{ name: 'Night', theme: 'css/theme/night.css' },
					{ name: 'Moon', theme: 'css/theme/moon.css' },
					{ name: 'Solarized', theme: 'css/theme/solarized.css' }
				];
			}
			var transitions = options.transitions;
			if (typeof transitions === "undefined") transitions = true;
			if (bowser.msie && bowser.version <= 9) {
				// transitions aren't support in IE9 anyway, so no point in showing them
				transitions = false;
			}
			var openButton = options.openButton;
			if (typeof openButton === "undefined") openButton = true;
			var openSlideNumber = options.openSlideNumber;
			if (typeof openSlideNumber === "undefined") openSlideNumber = false;
			var keyboard = options.keyboard;
			if (typeof keyboard === "undefined") keyboard = true;

			function disableMouseSelection() {
				mouseSelectionEnabled = false;
			}

			function reenableMouseSelection() {
				// wait until the mouse has moved before re-enabling mouse selection
				// to avoid selections on scroll
				$('nav.slide-menu').one('mousemove', function(event) {
					//XXX this should select the item under the mouse
					mouseSelectionEnabled = true;
				});
			}

			//
			// Keyboard handling
			//
			function getOffset(el) {
				var _x = 0;
				var _y = 0;
				while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
					_x += el.offsetLeft - el.scrollLeft;
					_y += el.offsetTop - el.scrollTop;
					el = el.offsetParent;
				}
				return { top: _y, left: _x };
			}

			function visibleOffset(el) {
				var offsetFromTop = getOffset(el).top - el.offsetParent.offsetTop;
				if (offsetFromTop < 0) return -offsetFromTop
				var offsetFromBottom = el.offsetParent.offsetHeight - (el.offsetTop - el.offsetParent.scrollTop + el.offsetHeight);
				if (offsetFromBottom < 0) return offsetFromBottom;
				return 0;
			}

			function keepVisible(el) {
				var offset = visibleOffset(el);
				if (offset) {
					disableMouseSelection();
					el.scrollIntoView(offset > 0);
					reenableMouseSelection();
				}
			}

			function scrollItemToTop(el) {
				disableMouseSelection();
				el.offsetParent.scrollTop = el.offsetTop;
				reenableMouseSelection();
			}

			function scrollItemToBottom(el) {
				disableMouseSelection();
				el.offsetParent.scrollTop = el.offsetTop - el.offsetParent.offsetHeight + el.offsetHeight
				reenableMouseSelection();
			}

			function selectItem(el) {
				$(el).addClass('selected');
				keepVisible(el);
			}

			function onDocumentKeyDown(event) {
				if (event.keyCode === 77) {
					toggleMenu();
				} else if (isOpen()) {
					event.stopImmediatePropagation();
					switch( event.keyCode ) {
						// h, left - change panel
						case 72: case 37:
							prevPanel();
							break;
						// l, right - change panel
						case 76: case 39:
							nextPanel();
							break;
						// k, up
						case 75: case 38:
							var currItem = $('.active-menu-panel .slide-menu-items li.selected').get(0) || $('.active-menu-panel .slide-menu-items li.active').get(0);
							if (currItem) {
								$('.active-menu-panel .slide-menu-items li').removeClass('selected');
								var nextItem = $('.active-menu-panel .slide-menu-items li[data-item="' + ($(currItem).data('item') - 1) + '"]').get(0) || currItem;
								selectItem(nextItem);
							} else {
								var items = $('.active-menu-panel .slide-menu-items li.slide-menu-item');
								if (items.length > 0) {
									selectItem(items.get(0));
								}
							}
							break;
						// j, down
						case 74: case 40:
							var currItem = $('.active-menu-panel .slide-menu-items li.selected').get(0) || $('.active-menu-panel .slide-menu-items li.active').get(0);
							if (currItem) {
								$('.active-menu-panel .slide-menu-items li').removeClass('selected');
								var nextItem = $('.active-menu-panel .slide-menu-items li[data-item="' + ($(currItem).data('item') + 1) + '"]').get(0) || currItem;
								selectItem(nextItem);
							} else {
								var items = $('.active-menu-panel .slide-menu-items li.slide-menu-item');
								if (items.length > 0) {
									selectItem(items.get(0));
								}
							}
							break;
						// pageup, u
						case 33: case 85:
							var itemsAbove = $('.active-menu-panel .slide-menu-items li').filter(function(item) { return visibleOffset(item) > 0; });
							var visibleItems = $('.active-menu-panel .slide-menu-items li').filter(function(item) { return visibleOffset(item) == 0; });

							var firstVisible = (itemsAbove.length > 0 && Math.abs(visibleOffset(itemsAbove[itemsAbove.length-1])) < itemsAbove[itemsAbove.length-1].clientHeight ? itemsAbove[itemsAbove.length-1] : visibleItems[0]);
							if (firstVisible) {
								if ($(firstVisible).hasClass('selected') && itemsAbove.length > 0) {
									// at top of viewport already, page scroll (if not at start)
									// ...move selected item to bottom, and change selection to last fully visible item at top
									scrollItemToBottom(firstVisible);
									visibleItems = $('.active-menu-panel .slide-menu-items li').filter(function(item) { return visibleOffset(item) == 0; });
									if (visibleItems[0] == firstVisible) {
										// prev item is still beyond the viewport (for custom panels)
										firstVisible = itemsAbove[itemsAbove.length-1];
									} else {
										firstVisible = visibleItems[0];
									}
								}
								$('.active-menu-panel .slide-menu-items li').removeClass('selected');
								selectItem(firstVisible);
								// ensure selected item is positioned at the top of the viewport
								scrollItemToTop(firstVisible);
							}
							break;
						// pagedown, d
						case 34: case 68:
							var visibleItems = $('.active-menu-panel .slide-menu-items li').filter(function(item) { return visibleOffset(item) == 0; });
							var itemsBelow = $('.active-menu-panel .slide-menu-items li').filter(function(item) { return visibleOffset(item) < 0; });

							var lastVisible = (itemsBelow.length > 0 && Math.abs(visibleOffset(itemsBelow[0])) < itemsBelow[0].clientHeight ? itemsBelow[0] : visibleItems[visibleItems.length-1]);
							if (lastVisible) {
								if ($(lastVisible).hasClass('selected') && itemsBelow.length > 0) {
									// at bottom of viewport already, page scroll (if not at end)
									// ...move selected item to top, and change selection to last fully visible item at bottom
									scrollItemToTop(lastVisible);
									visibleItems = $('.active-menu-panel .slide-menu-items li').filter(function(item) { return visibleOffset(item) == 0; });
									if (visibleItems[visibleItems.length-1] == lastVisible) {
										// next item is still beyond the viewport (for custom panels)
										lastVisible = itemsBelow[0];
									} else {
										lastVisible = visibleItems[visibleItems.length-1];
									}
								}
								$('.active-menu-panel .slide-menu-items li').removeClass('selected');
								selectItem(lastVisible);
								// ensure selected item is positioned at the bottom of the viewport
								scrollItemToBottom(lastVisible);
							}
							break;
						// home
						case 36:
							$('.active-menu-panel .slide-menu-items li').removeClass('selected');
							var sel = $('.active-menu-panel .slide-menu-items li:first-of-type');
							if (sel.length > 0) {
								keepVisible(sel.addClass('selected').get(0));
							}
							break;
						// end
						case 35:
							$('.active-menu-panel .slide-menu-items li').removeClass('selected');
							var sel = $('.active-menu-panel .slide-menu-items li:last-of-type');
							if (sel.length > 0) {
								keepVisible(sel.addClass('selected').get(0));
							}
							break;
						// space, return
						case 32: case 13:
							var currItem = $('.active-menu-panel .slide-menu-items li.selected').get(0);
							if (currItem) {
								openItem(currItem);
							}
							break;
						// esc
						case 27: closeMenu(); break;
					}
				}
			}

			if (keyboard) {
				//XXX add keyboard option for custom key codes, etc.

				document.addEventListener('keydown', onDocumentKeyDown, false);

				// handle key presses within speaker notes
				window.addEventListener( 'message', function( event ) {
					var data = JSON.parse( event.data );
					if (data.method === 'triggerKey') {
						onDocumentKeyDown( { keyCode: data.args[0], stopImmediatePropagation: function() {} } );
					}
				});

				// Prevent reveal from processing keyboard events when the menu is open
				if (config.keyboardCondition && typeof config.keyboardCondition === 'function') {
					// combine user defined keyboard condition with the menu's own condition
					var userCondition = config.keyboardCondition;
					config.keyboardCondition = function() {
						return userCondition() && !isOpen();
					};
				} else {
					config.keyboardCondition = function() { return !isOpen(); }
				}
			}

			//
			// Utilty functions
			//

			function openMenu(event) {
				if (event) event.preventDefault();
				if (!isOpen()) {
				    $('body').addClass('slide-menu-active');
				    $('.reveal').addClass('has-' + options.effect + '-' + side);
				    $('.slide-menu').addClass('active');
				    $('.slide-menu-overlay').addClass('active');

				    // identify active theme
				    $('div[data-panel="Themes"] li').removeClass('active');
				    $('li[data-theme="' + $('#theme').attr('href') + '"]').addClass('active');

				    // identify active transition
				    $('div[data-panel="Transitions"] li').removeClass('active');
				    $('li[data-transition="' + Reveal.getConfig().transition + '"]').addClass('active');

				    // set item selections to match active items
				    $('.slide-menu-panel li.active')
				    	.addClass('selected')
				    	.each(function(item) { keepVisible(item) });
				}
			}

			function closeMenu(event) {
				if (event) event.preventDefault();
			    $('body').removeClass('slide-menu-active');
			    $('.reveal').removeClass('has-' + options.effect + '-' + side);
			    $('.slide-menu').removeClass('active');
			    $('.slide-menu-overlay').removeClass('active');
			    $('.slide-menu-panel li.selected').removeClass('selected');
			}

			function toggleMenu(event) {
				if (isOpen()) {
					closeMenu(event);
				} else {
					openMenu(event);
				}
			}

			function isOpen() {
				return $('body').hasClass('slide-menu-active');
			}

			function openPanel(e) {
				openMenu();
				var panel = e;
				if (typeof e !== "string") {
					panel = $(e.currentTarget).data('panel');
				}
				$('.slide-menu-toolbar > li').removeClass('active-toolbar-button');
				$('li[data-panel="' + panel + '"]').addClass('active-toolbar-button');
				$('.slide-menu-panel').removeClass('active-menu-panel');
				$('div[data-panel="' + panel + '"]').addClass('active-menu-panel');
			}

			function nextPanel() {
				var next = ($('.active-toolbar-button').data('button') + 1) % buttons;
				openPanel($('.toolbar-panel-button[data-button="' + next + '"]').data('panel'));
			}

			function prevPanel() {
				var next = $('.active-toolbar-button').data('button') - 1;
				if (next < 0) {
					next = buttons - 1;
				}
				openPanel($('.toolbar-panel-button[data-button="' + next + '"]').data('panel'));
			}

			$('')
				.appendTo($('.reveal'));
			$('

')
				.appendTo($('.reveal'))
				.click(closeMenu);

			var toolbar = $('

').prependTo($('.slide-menu'));
			var buttons = 0;
			$('
Slides

')
				.appendTo(toolbar)
				.addClass('active-toolbar-button')
				.click(openPanel);

			if (custom) {
				custom.forEach(function(element, index, array) {
					$('
' + element.title + '
' + element.icon + '
')
						.appendTo(toolbar)
						.click(openPanel);
				})
			}

			if (themes) {
				$('
Themes

')
					.appendTo(toolbar)
					.click(openPanel);
			}
			if (transitions) {
				$('
Transitions

')
					.appendTo(toolbar)
					.click(openPanel);
			}
			$('
Close

')
				.appendTo(toolbar)
				.click(closeMenu);

			var panels = $('.slide-menu');

			//
			// Slide links
			//
			function generateItem(type, section, i, h, v) {
				var link = '/#/' + h;
				if (typeof v === 'number' && !isNaN( v )) link += '/' + v;

				var title = $(section).data('menu-title') ||
					$('.menu-title', section).text() ||
					$(titleSelector, section).text();
				if (!title) {
					if (hideMissingTitles) return '';
					title = "Slide " + i;
					type += ' no-title';
				}

				title = '' + title + '';
				if (numbers) {
					// Number formatting taken from reveal.js
					var value = [];
					var format = 'h.v';

					// Check if a custom number format is available
					if( typeof numbers === 'string' ) {
						format = numbers;
					}
					else if (typeof config.slideNumber === 'string') {
						// Take user defined number format for slides
						format = config.slideNumber;
					}

					switch( format ) {
						case 'c':
							value.push( i );
							break;
						case 'c/t':
							value.push( i, '/', Reveal.getTotalSlides() );
							break;
						case 'h/v':
							value.push( h + 1 );
							if( typeof v === 'number' && !isNaN( v ) ) value.push( '/', v + 1 );
							break;
						default:
							value.push( h + 1 );
							if( typeof v === 'number' && !isNaN( v ) ) value.push( '.', v + 1 );
					}

					title = '' + value.join('') + '. ' + title;
				}

				var m = '';
				if (markers) {
					m = '' +
								'' +
								'';
				}

				return '
' + m + title + '
';
			}

			function openItem(item) {
				var h = $(item).data('slide-h');
				var v = $(item).data('slide-v');
				var theme = $(item).data('theme');
				var transition = $(item).data('transition');
				if (typeof h !== "undefined" && typeof v !== "undefined") {
					Reveal.slide(h, v);
					closeMenu();
				} else if (theme) {
					$('#theme').attr('href', theme);
					closeMenu();
				} else if (transition) {
					Reveal.configure({ transition: transition });
					closeMenu();
				} else {
					var links = $(item).find('a');
					if (links.length > 0) {
						links.get(0).click();
					}
					closeMenu();
				}
			}

			function clicked(event) {
				if (event.target.nodeName !== "A") {
					event.preventDefault();
				}
				openItem(event.currentTarget);
			}

			function highlightCurrentSlide() {
				var state = Reveal.getState();
				$('li.slide-menu-item, li.slide-menu-item-vertical')
					.removeClass('past')
					.removeClass('active')
					.removeClass('future');

				$('li.slide-menu-item, li.slide-menu-item-vertical').each(function(e) {
					var h = $(e).data('slide-h');
					var v = $(e).data('slide-v');
					if (h < state.indexh || (h === state.indexh && v < state.indexv)) {
						$(e).addClass('past');
					}
					else if (h === state.indexh && v === state.indexv) {
						$(e).addClass('active');
					}
					else {
						$(e).addClass('future');
					}
				});
			}

			function createSlideMenu() {
				if ( !document.querySelector('section[data-markdown]:not([data-markdown-parsed="true"]') ) {
					$('

')
						.appendTo(panels)
						.addClass('active-menu-panel');
					var items = $('.slide-menu-panel[data-panel="Slides"] > .slide-menu-items');
					var slideCount = 0;
					$('.slides > section').each(function(section, h) {
						var subsections = $('section', section);
						if (subsections.length > 0) {
							subsections.each(function(subsection, v) {
								var type = (v === 0 ? 'slide-menu-item' : 'slide-menu-item-vertical');
								var item = generateItem(type, subsection, slideCount, h, v);
								if (item) {
									slideCount++;
									items.append(item);
								}
							});
						} else {
							var item = generateItem('slide-menu-item', section, slideCount, h);
							if (item) {
								slideCount++;
								items.append(item);
							}
						}
					});
					$('.slide-menu-item, .slide-menu-item-vertical').click(clicked);
					highlightCurrentSlide();
				}
				else {
				// wait for markdown to be loaded and parsed
					setTimeout( createSlideMenu, 100 );
				}
			}

			createSlideMenu();
			Reveal.addEventListener('slidechanged', highlightCurrentSlide);

			//
			// Custom menu panels
			//
			if (custom) {
				function xhrSuccess () {
					if (this.status >= 200 && this.status < 300) {
						$(this.responseText).appendTo(this.panel);
						enableCustomLinks(this.panel);
					}
					else {
						showErrorMsg(this)
					}
				}
				function xhrError () {
					showErrorMsg(this)
				}
				function loadCustomPanelContent (panel, sURL) {
					var oReq = new XMLHttpRequest();
					oReq.panel = panel;
					oReq.arguments = Array.prototype.slice.call(arguments, 2);
					oReq.onload = xhrSuccess;
					oReq.onerror = xhrError;
					oReq.open("get", sURL, true);
					oReq.send(null);
				}
				function enableCustomLinks(panel) {
					$(panel).find('ul.slide-menu-items li.slide-menu-item').each(function(item, i) {
						$(item).attr('data-item', i+1);
						$(item).click(clicked);
					});
				}
				function showErrorMsg(response) {
					var msg = '
ERROR: The attempt to fetch ' + response.responseURL + ' failed with HTTP status ' +
						response.status + ' (' + response.statusText + ').
' +
						'
Remember that you need to serve the presentation HTML from a HTTP server.
';
						$(msg).appendTo(response.panel)
				}

				custom.forEach(function(element, index, array) {
					var panel = $('

');
					if (element.content) {
						$(element.content).appendTo(panel);
						enableCustomLinks(panel);
					}
					else if (element.src) {
						loadCustomPanelContent(panel, element.src);
					}
					panel.appendTo(panels);
				})
			}

			//
			// Themes
			//
			if (themes) {
				var panel = $('

').appendTo(panels);
				var menu = $('

').appendTo(panel);
				themes.forEach(function(t, i) {
					$('
' + t.name + '
').appendTo(menu).click(clicked);
				})
			}

			//
			// Transitions
			//
			if (transitions) {
				var panel = $('

').appendTo(panels);
				var menu = $('

').appendTo(panel);
				['None', 'Fade', 'Slide', 'Convex', 'Concave', 'Zoom'].forEach(function(name, i) {
					$('
' + name + '
').appendTo(menu).click(clicked);
				})
			}

			//
			// Open menu options
			//
			if (openButton) {
				// add menu button
				$('

')
					.appendTo($('.reveal'))
					.click(openMenu);
			}

			if (openSlideNumber) {
				// wrap slide number in link
				$('

').insertAfter($('div.slide-number'));
				$('.slide-number').appendTo($('.slide-number-wrapper a'));
				$('.slide-number-wrapper a').click(openMenu);
			}

			//
			// Handle mouse overs
			//
			var mouseSelectionEnabled = true;
			$('.slide-menu-panel .slide-menu-items li').mouseenter(function(event) {
				if (mouseSelectionEnabled) {
					$('.active-menu-panel .slide-menu-items li').removeClass('selected');
					$(event.currentTarget).addClass('selected');
				}
			});

			module.toggle = toggleMenu;
			module.isOpen = isOpen;

			/**
			 * Extend object a with the properties of object b.
			 * If there's a conflict, object b takes precedence.
			 */
			function extend( a, b ) {
				for( var i in b ) {
					a[ i ] = b[ i ];
				}
			}

			/**
			 * Dispatches an event of the specified type from the
			 * reveal DOM element.
			 */
			function dispatchEvent( type, args ) {
				var event = document.createEvent( 'HTMLEvents', 1, 2 );
				event.initEvent( type, true, true );
				extend( event, args );
				document.querySelector('.reveal').dispatchEvent( event );

				// If we're in an iframe, post each reveal.js event to the
				// parent window. Used by the notes plugin
				if( config.postMessageEvents && window.parent !== window.self ) {
					window.parent.postMessage( JSON.stringify({ namespace: 'reveal', eventName: type, state: getState() }), '*' );
				}
			}

			dispatchEvent('menu-ready');
		}
	})
	})
	})
	});

	// modified from math plugin
	function loadResource( url, type, callback ) {
		var head = document.querySelector( 'head' );
		var resource;

		if ( type === 'script' ) {
			resource = document.createElement( 'script' );
			resource.type = 'text/javascript';
			resource.src = url;
		}
		else if ( type === 'stylesheet' ) {
			resource = document.createElement( 'link' );
			resource.rel = 'stylesheet';
			resource.href = url;
		}

		// Wrapper for callback to make sure it only fires once
		var finish = function() {
			if( typeof callback === 'function' ) {
				callback.call();
				callback = null;
			}
		}

		resource.onload = finish;

		// IE
		resource.onreadystatechange = function() {
			if ( this.readyState === 'loaded' ) {
				finish();
			}
		}

		// Normal browsers
		head.appendChild( resource );
	}

	function scriptPath() {
		// obtain plugin path from the script element
		var path;
		if (document.currentScript) {
			path = document.currentScript.src.slice(0, -7);
		} else {
			var sel = document.querySelector('script[src$="/menu.js"]')
			if (sel) {
				path = sel.src.slice(0, -7);
			}
		}
		return path;
	}

	return module;
})();


text:
.tp-datepicker-icon.tp-datepicker-icon-arrow_from, .tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-start-sausage div,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-start-sausage div, .tp-datepicker.tp-datepicker-range .tp-datepicker-legend--start-date:before,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-legend--start-date:before {
  background-repeat: no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg%20version%3D'1.2'%20baseProfile%3D'tiny'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2026%2022'%3E%3Cpath%20fill%3D'%23FF5A5F'%20d%3D'M21.7%2022H0V0h21.7L26%2011z'%2F%3E%3C%2Fsvg%3E"); }
.tp-datepicker-icon.tp-datepicker-icon-arrow_to, .tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-end-sausage div,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-end-sausage div, .tp-datepicker.tp-datepicker-range .tp-datepicker-legend--end-date:before,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-legend--end-date:before {
  background-repeat: no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg%20version%3D'1.2'%20baseProfile%3D'tiny'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2026%2022'%3E%3Cpath%20fill%3D'%23FF5A5F'%20d%3D'M4.3%2022H26V0H4.3L0%2011z'%2F%3E%3C%2Fsvg%3E"); }
.tp-datepicker-icon.tp-datepicker-icon-calendar, input.tp-datepicker-trigger {
  background-repeat: no-repeat;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.2%22%20baseProfile%3D%22tiny%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2025%2017%22%3E%3Cpath%20fill%3D%22%23FF5A5F%22%20d%3D%22M0%205v10c0%201.1.9%202%202%202h11c1.1%200%202-.9%202-2V5H0zm5%2010H2v-2h3v2zm0-3H2v-2h3v2zm0-3H2V7h3v2zm4%206H6v-2h3v2zm0-3H6v-2h3v2zm0-3H6V7h3v2zm4%206h-3v-2h3v2zm0-3h-3v-2h3v2zm0-3h-3V7h3v2zM13%202h-1V1c0-.6-.4-1-1-1h-1c-.6%200-1%20.4-1%201v1H6V1c0-.6-.4-1-1-1H4c-.6%200-1%20.4-1%201v1H2C.9%202%200%202.9%200%204h15c0-1.1-.9-2-2-2z%22%2F%3E%3C%2Fsvg%3E"); }
.tp-datepicker-icon.tp-datepicker-icon-arrow, .tp-datepicker .tp-datepicker-prev-month-control,
.tp-datepicker .tp-datepicker-next-month-control {
  background-repeat: no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg%20version%3D'1.2'%20baseProfile%3D'tiny'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2030.6%2024.6'%3E%3Cpath%20fill%3D'%23FF5A5F'%20d%3D'M.6%2010.8l.2-.2%209.9-10c.8-.8%202.2-.8%203%200l.3.2c.8.8.8%202.2%200%203L7.9%2010h20.6c1.2%200%202.1%201%202.1%202.1v.3c0%201.2-1%202.1-2.1%202.1H7.9l6.2%206.2c.8.8.8%202.2%200%203l-.3.3c-.8.8-2.2.8-3%200L.8%2014l-.2-.2c-.8-.8-.8-2.2%200-3z'%2F%3E%3C%2Fsvg%3E"); }

input.tp-datepicker-trigger {
  background-repeat: no-repeat;
  background-position: right center;
  background-size: auto 17px;
  cursor: pointer;
  transition: border 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); }

input.tp-datepicker-trigger.tp-datepicker-trigger--active {
  border: 2px solid #fdd835; }

.tp-datepicker {
  /**
   * Remove most spacing between table cells.
   */
  font-weight: 400;
  font-size: 13px;
  transform: scale(0);
  min-width: 200px;
  width: 100%;
  max-width: 260px;
  height: 220px;
  padding-bottom: 15px;
  padding-top: 5px;
  z-index: 1000;
  border: none;
  background: white;
  box-shadow: 0px 18px 40px -10px rgba(0, 0, 0, 0.45);
  transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
  position: absolute; }
  .tp-datepicker, .tp-datepicker * {
    box-sizing: border-box; }
  .tp-datepicker table {
    border-collapse: collapse;
    border-spacing: 0; }
  .tp-datepicker td,
  .tp-datepicker th {
    padding: 0; }
  .tp-datepicker.tp-datepicker--active {
    transform: scale(1); }
  .tp-datepicker .tp-datepicker-header {
    width: 100%;
    height: 40px;
    text-align: center;
    padding: 10px 9px 0; }
  .tp-datepicker .tp-datepicker-container {
    padding: 0 5px; }
  .tp-datepicker.tp-datepicker-hidden {
    opacity: 0;
    transform: scale(1, 0); }
  .tp-datepicker.tp-datepicker-simple .tp-datepicker-current:hover {
    background-color: #ff5a5f;
    color: white; }
  .tp-datepicker .tp-datepicker-table {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse; }
    .tp-datepicker .tp-datepicker-table .tp-datepicker-day_name {
      text-transform: uppercase;
      font-size: 10px;
      text-align: center; }
    .tp-datepicker .tp-datepicker-table.tp-datepicker-table--normal-weekdays .tp-datepicker-day_name:nth-child(6), .tp-datepicker .tp-datepicker-table.tp-datepicker-table--normal-weekdays .tp-datepicker-day_name:nth-child(7) {
      color: #555555; }
    .tp-datepicker .tp-datepicker-table.tp-datepicker-table--sunday-first .tp-datepicker-day_name:first-child, .tp-datepicker .tp-datepicker-table.tp-datepicker-table--sunday-first .tp-datepicker-day_name:last-child {
      color: #555555; }
    .tp-datepicker .tp-datepicker-table .tp-datepicker-prev-date {
      color: silver;
      cursor: pointer; }
    .tp-datepicker .tp-datepicker-table .tp-datepicker-current {
      cursor: pointer;
      color: #ff5a5f; }
    .tp-datepicker .tp-datepicker-table .tp-datepicker-next {
      opacity: .4;
      color: #ff5a5f;
      display: table-cell;
      cursor: pointer; }
      .tp-datepicker .tp-datepicker-table .tp-datepicker-next.tp-datepicker-prev-date div {
        color: silver; }
    .tp-datepicker .tp-datepicker-table .tp-datepicker-prev {
      opacity: .4;
      color: #ff5a5f;
      visibility: visible; }
      .tp-datepicker .tp-datepicker-table .tp-datepicker-prev.tp-datepicker-prev-date div {
        color: silver; }
    .tp-datepicker .tp-datepicker-table td.tp-datepicker-day_name {
      height: 15px;
      cursor: default; }
    .tp-datepicker .tp-datepicker-table td div {
      line-height: 1;
      height: 22px;
      width: 100%;
      margin: 1px 0; }
  .tp-datepicker .tp-datepicker-current-date div,
  .tp-datepicker .tp-datepicker-next div,
  .tp-datepicker .tp-datepicker-prev div {
    position: relative;
    text-align: center;
    z-index: 1;
    padding: 5px 0; }
  .tp-datepicker .tp-datepicker-prev-month-control,
  .tp-datepicker .tp-datepicker-next-month-control {
    position: absolute;
    top: 15px;
    width: 15px;
    height: 13px;
    font-size: 15px;
    content: ''; }
  .tp-datepicker .tp-datepicker-prev-month-control:hover,
  .tp-datepicker .tp-datepicker-next-month-control:hover {
    cursor: pointer;
    opacity: .7; }
  .tp-datepicker .tp-datepicker-prev-month-control {
    left: 15px; }
  .tp-datepicker .tp-datepicker-next-month-control {
    right: 15px;
    transform: rotate(180deg); }
  .tp-datepicker.tp-datepicker--current_month .tp-datepicker-prev-month-control,
  .tp-datepicker.tp-datepicker--current_month .tp-datepicker-prev-month-control:hover {
    opacity: .3;
    cursor: default; }

.tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-range div,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-range div {
  background-color: whitesmoke; }
.tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-start-sausage,
.tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-end-sausage,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-start-sausage,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-end-sausage {
  position: relative; }
  .tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-start-sausage div,
  .tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-end-sausage div,
  .tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-start-sausage div,
  .tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-end-sausage div {
    background-size: 100%;
    color: white; }
    .tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-start-sausage div:before,
    .tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-end-sausage div:before,
    .tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-start-sausage div:before,
    .tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-end-sausage div:before {
      position: absolute;
      content: '';
      height: 24px;
      width: 15%;
      top: -1px;
      background-color: white; }
.tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-start-sausage--invisible div,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-start-sausage--invisible div {
  font-weight: bold;
  color: #ff5a5f; }
.tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-start-sausage div,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-start-sausage div {
  background-position: left; }
  .tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-start-sausage div:before,
  .tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-start-sausage div:before {
    left: -1px; }
.tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-end-sausage--invisible div,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-end-sausage--invisible div {
  font-weight: bold;
  color: #ff5a5f; }
.tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-end-sausage div,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-end-sausage div {
  background-position: right; }
  .tp-datepicker.tp-datepicker-range .tp-datepicker-table .tp-datepicker-end-sausage div:before,
  .tp-datepicker.tp-datepicker-range-legend .tp-datepicker-table .tp-datepicker-end-sausage div:before {
    right: -1px; }
.tp-datepicker.tp-datepicker-range .tp-datepicker-legend,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-legend {
  position: absolute;
  bottom: 11px;
  right: 5px;
  z-index: 1001;
  font-size: 12px;
  padding: 5px 5px 5px 25px;
  color: #ff5a5f;
  background-color: white;
  transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); }
  .tp-datepicker.tp-datepicker-range .tp-datepicker-legend:before,
  .tp-datepicker.tp-datepicker-range-legend .tp-datepicker-legend:before {
    background-size: 100%;
    position: absolute;
    left: 5px;
    color: white;
    content: '';
    height: 13px;
    width: 15px; }
.tp-datepicker.tp-datepicker-range .tp-datepicker-legend--start-date,
.tp-datepicker.tp-datepicker-range-legend .tp-datepicker-legend--start-date {
  color: #ff5a5f; }


text:
This chart will do the following:

* Create a deployment of [external-dns] within your Kubernetes Cluster.

Currently this uses the [Zalando] hosted container, if this is a concern follow the steps in the [external-dns] documentation to compile the binary and make a container. Where the chart pulls the image from is fully configurable.

## Installing the Chart

To install the chart with the release name `my-release`:

```bash
$ helm install --name my-release stable/external-dns
```

## Configuration

The following tables lists the configurable parameters of the external-dns chart and their default values.

| Parameter                 | Description                                                                                | Default                                            |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| `aws.access_key`          | `AWS_ACCESS_KEY_ID` to set in the environment (optional).                                                                  | `""`                                               |
| `aws.secret_key`          | `AWS_SECRET_ACCESS_KEY` to set in the environment (optional).                                                              | `""`                                               |
| `aws.region`              | `AWS_DEFAULT_REGION` to set in the environment (optional).                                                                 | `us-east-1`                                        |
| `aws.zone_type`           | Filter for zones of this type (optional, options: public, private).                                                        | `""`                                               |
| `cloudflare.api_key`      | `CF_API_KEY` to set in the environment (optional).                                                                 | `""`                                        |
| `cloudflare.email`        | `CF_API_EMAIL` to set in the environment (optional).                                                                 | `""`                                        |
| `cloudflare.api_key`      | `CF_API_KEY` to set in the environment (optional).                                                                         | `""`                                               |
| `cloudflare.email`        | `CF_API_EMAIL` to set in the environment (optional).                                                                       | `""`                                               |
| `domainFilters`           | Limit possible target zones by domain suffixes (optional).                                                                 | `[]`                                               |
| `extraArgs`               | Optional object of extra args, as `name`: `value` pairs. Where the name is the command line arg to external-dns.           | `{}`                                               |
| `image.name`              | Container image name (Including repository name if not `hub.docker.com`).                                                  | `registry.opensource.zalan.do/teapot/external-dns` |
| `image.pullPolicy`        | Container pull policy.                                                                                | `IfNotPresent`                                     |
| `image.tag`               | Container image tag.                                                                                | `v0.4.3`                                           |
| `logLevel`                | Verbosity of the logs (options: panic, debug, info, warn, error, fatal)                                                    | `info`                                             |
| `image.tag`               | Container image tag.                                                                                | `v0.4.4`                                           |
| `podAnnotations`          | Additional annotations to apply to the pod.                                                                                | `{}`                                               |
| `policy`                  | Modify how DNS records are sychronized between sources and providers (options: sync, upsert-only ).                        | `upsert-only`                                      |
| `provider`                | The DNS provider where the DNS records will be created (options: aws, google, azure, cloudflare, digitalocean, inmemory ). | `aws`                                              |
| `publishInternalServices` | Allow external-dns to publish DNS records for ClusterIP services (optional).                                               | `false`                                            |
| `rbac.create`             | If true, create & use RBAC resources                                                                                | `false`                                            |
| `rbac.serviceAccountName` | Existing ServiceAccount to use (ignored if rbac.create=true)                                                               | `default`                                          |
| `resources`               | CPU/Memory resource requests/limits.                                                                                | `{}`                                               |
| `sources`                 | List of resource types to monitor, possible values are fake, service or ingress.                                           | `[service, ingress]`                               |
| `extraArgs`               | Additional key-value parameters.                                                                                | `{}`                                               |
| `tolerations`             | List of node taints to tolerate (requires Kubernetes >= 1.6)                                                               | `[]`                                               |

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.

Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,

```bash
$ helm install --name my-release -f values.yaml stable/external-dns
```

> **Tip**: You can use the default [values.yaml](values.yaml)

## IAM Permissions

```json
{
 "Version": "2012-10-17",
 "Statement": [
   {
     "Effect": "Allow",
     "Action": [
       "route53:ChangeResourceRecordSets"
     ],
     "Resource": [
       "arn:aws:route53:::hostedzone/*"
     ]
   },
   {
     "Effect": "Allow",
     "Action": [
       "route53:ListHostedZones",
       "route53:ListResourceRecordSets"
     ],
     "Resource": [
       "*"
     ]
   }
 ]
}
```

[external-dns]: https://github.com/kubernetes-incubator/external-dns
[Zalando]: https://zalando.github.io/
[getting-started]: https://github.com/kubernetes-incubator/external-dns/blob/master/README.md#getting-started


text:
[![Build Status](https://travis-ci.org/Jakehp/language-groovy.svg?branch=master)](https://travis-ci.org/Jakehp/language-groovy)

Adds syntax highlighting and snippets to Groovy files in Atom.

Originally [converted](https://atom.io/docs/latest/hacking-atom-converting-from-textmate)
from the [groovy.tmbundle](https://github.com/textmate/groovy.tmbundle).

Contributions are *greatly* appreciated. Please fork this repository, open a pull request to add snippets, make grammar tweaks, fix issues, etc.

## Installation

```shell
apm install language-groovy
```
If apm is not recognized, open Atom, open the Atom menu, and select "Install Shell Commands". Then try running the command again.

Contributors:
[ChristianMurphy](https://github.com/ChristianMurphy), [bhuddleston42](https://github.com/bhuddleston42), [bakharal](https://github.com/bakharal)


text:
			{{error}}

		Loading...


text:
		#set($url = '/survey/' + $token)
		<form action="#springUrl($url)" method="POST" id="frmSurvey">

						$text.que001.label.user_name $text.error.hp_03
						<input type="text" class="textbox-1" name="userName" maxlength="30" tabindex="2">

					$text.que001.label.use_date $text.error.hp_03
					<input type="text" class="textbox-2 input-date" name="useDate" maxlength="10" readonly="readonly" tabindex="3">
					<button class="btn btn-calendar ui-datepicker-trigger" type="button">

					</button>

						$text.que001.label.interest_risk_simu_user $text.error.hp_03

$text.que001.label.note.user.care

							<input id="radio1" type="radio" name="interestRiskSimuUser" value="0" checked> $text.que001.option.interest_risk_simu_user.value1

							<input id="radio2" type="radio" name="interestRiskSimuUser" value="1"> $text.que001.option.interest_risk_simu_user.value2

						$text.que001.label.interest_life_imp_user $text.error.hp_03

$text.que001.label.note.user.care

							<input id="radio2-1" type="radio" name="interestLifeImpUser" value="0" checked> $text.que001.option.interest_life_imp_user.value1

							<input id="radio2-2" type="radio" name="interestLifeImpUser" value="1"> $text.que001.option.interest_life_imp_user.value2

						$text.que001.label.crisis $text.error.hp_03

							<input id="radio3-1" type="radio" name="crisis" value="0" checked> $text.que001.option.crisis.value1

							<input id="radio3-2" type="radio" name="crisis" value="1"> $text.que001.option.crisis.value2

						$text.que001.label.start_act $text.error.hp_03

						<input id="radio4-1" type="radio" name="startAct" value="0" checked> $text.que001.option.start_act.value1

						<input id="radio4-2" type="radio" name="startAct" value="1"> $text.que001.option.start_act.value2

						<input id="radio4-3" type="radio" name="startAct" value="2"> $text.que001.option.start_act.value3

					$text.que001.label.requirement <input type="text"
						class="textbox-3" name="requirement" maxlength="100" tabindex="14">

				$text.que001.label.notice_user
				<textarea rows="3" cols="50" class="textarea-2" name="noticeUser" tabindex="15"></textarea>

			<button class="btn btn-link btn-link-2" type="submit" tabindex="16">
				$text.button.submit
			</button>
		</form>


text:
MQTT-Infrastructure
===================

Target
------

Creating and collecting several tools (like server, client, gateways, complex event processors, taskmanagers, gatekeepers, wrappers) for a comfortable and common MQTT-Infrastucture. Creating of a standard API (Wrapper) for using MQTT in different programming language in a similar way. Comfortable integration of $SYS-Namespace for admin/client ...


text:
@interface UIView (LLView)
@property (nonatomic, assign) CGFloat frameX;
@property (nonatomic, assign) CGFloat frameY;
@property (nonatomic, assign) CGFloat frameWidth;
@property (nonatomic, assign) CGFloat frameHeight;
@property (nonatomic, assign) CGPoint frameOrigin;
@property (nonatomic, assign) CGSize frameSize;
@property (nonatomic, assign) CGFloat boundsX;
@property (nonatomic, assign) CGFloat boundsY;
@property (nonatomic, assign) CGFloat boundsWidth;
@property (nonatomic, assign) CGFloat boundsHeight;
@property (nonatomic, assign) CGFloat centerX;
@property (nonatomic, assign) CGFloat centerY;
@end


text:
require 'spec_helper'

describe "Track Service", :test_environment do

  example "Track" do

    client = Fex.client(credentials: credentials, mode: mode, client: { logger: logger })

    service = client.service(:track)

    service.should have(4).operations

    response = service.call(
      :track,
      package_identifier: {
        value: "400030715008165",
        type: "TRACKING_NUMBER_OR_DOORTAG"
      },
      include_detailed_scans: true
    )
    response.severity.should eq "SUCCESS"
  end

end


text:
"""A setuptools based setup module for pyjdx.

Author: Lizhou Sha <slz@mit.edu>
"""
from setuptools import setup, find_packages

with open("README.rst") as f:
    readme = f.read()

setup(
    name="pyjdx",
    version="0.0.1",

    description="A reader of JCAMP-DX spectral data files",
    long_description=readme,
    keywords="spectroscopy chemistry astronomy atmospheric planetary science",
    url="https://github.com/vulpicastor/pyjdx",

    author="Lizhou Sha",
    author_email="slz@mit.edu",
    license="MIT",

    classifiers=[
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Science/Research",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.4",
        "Topic :: Scientific/Engineering :: Astronomy",
        "Topic :: Scientific/Engineering :: Atmospheric Science",
        "Topic :: Scientific/Engineering :: Chemistry",
        "Topic :: Software Development :: Libraries :: Python Modules",
    ],
    packages=find_packages(),
    install_requires=["numpy"]
)


text:
package com.yueny.blog.dao.article.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.yueny.blog.dao.article.IArticleBlogDao;
import com.yueny.blog.mapper.IArticleBlogMapper;
import com.yueny.blog.dao.cd.ArticleBlogCondition;
import com.yueny.blog.entry.article.ArticleBlogEntry;
import com.yueny.kapo.api.annnotation.DbSchemaType;
import com.yueny.kapo.core.condition.builder.DeleteBuilder;
import com.yueny.kapo.core.condition.builder.QueryBuilder;
import com.yueny.kapo.core.condition.column.operand.enums.BasicSqlOperand;
import com.yueny.kapo.core.condition.column.operand.enums.FuzzySqlOperand;
import com.yueny.kapo.core.dao.SingleTableDao;
import com.yueny.rapid.lang.util.StringUtil;
import com.yueny.superclub.api.page.IPageable;

/**
 * 博客持久层操作
 *
 * @author 袁洋 2015年8月24日 下午1:46:10
 *
 */
@DbSchemaType("BLOG")
@Repository
public class ArticleBlogDaoImpl extends SingleTableDao<ArticleBlogEntry> implements IArticleBlogDao {
	@Autowired
	private IArticleBlogMapper articleBlogMapper;

	/*
	 * (non-Javadoc)
	 *
	 * @see com.yueny.blog.dao.article.IArticleBlogDao#countBy(java.lang.String)
	 */
	@Override
	public Long countBy(final String owenerTagId) {
		// null
		if (owenerTagId == null) {
			final QueryBuilder builder = QueryBuilder.builder().where("OWENER_TAG_IDS", BasicSqlOperand.IS_NULL, null)
					.build();
			return super.queryCountByColumns(builder);
		}
		// 空, 如 ''
		if (StringUtils.isEmpty(owenerTagId)) {
			final QueryBuilder builder = QueryBuilder.builder().where("OWENER_TAG_IDS", "").build();
			return super.queryCountByColumns(builder);
		}

		final QueryBuilder builder = QueryBuilder.builder().where("OWENER_TAG_IDS", FuzzySqlOperand.LIKE, owenerTagId)
				.build();

		return super.queryCountByColumns(builder);
	}

	/*
	 * (non-Javadoc)
	 *
	 * @see com.yueny.blog.dao.article.IArticleBlogDao#deleteByBlogId(java.lang.
	 * String)
	 */
	@Override
	public boolean deleteByBlogId(final String articleBlogId) {
		final DeleteBuilder builder = DeleteBuilder.builder().where("ARTICLE_BLOG_ID", articleBlogId).build();
		return super.deleteByColumns(builder) > 0;
	}

	@Override
	public List<ArticleBlogEntry> findByOwenerTagId(final String owenerTagId) {
		// null
		if (owenerTagId == null) {
			final QueryBuilder builder = QueryBuilder.builder().where("OWENER_TAG_IDS", BasicSqlOperand.IS_NULL, null)
					.build();
			return super.queryListByColumns(builder);
		}
		// 空, 如 ''
		if (StringUtils.isEmpty(owenerTagId)) {
			final QueryBuilder builder = QueryBuilder.builder().where("OWENER_TAG_IDS", "").build();
			return super.queryListByColumns(builder);
		}

		final QueryBuilder builder = QueryBuilder.builder().where("OWENER_TAG_IDS", FuzzySqlOperand.LIKE, owenerTagId)
				.build();
		return super.queryListByColumns(builder);
	}

	@Override
	public boolean plusReadTimes(final String articleBlogId, final int step) {
		return articleBlogMapper.plusReadTimesByArticleBlogId(articleBlogId, step) == 1;
	}

	@Override
	public Long queryAllCount(final String articleTitle) {
		final QueryBuilder builder = QueryBuilder.builder()
				.where("ARTICLE_TITLE", FuzzySqlOperand.LIKE_RIGHT, articleTitle).build();

		return super.queryCountByColumns(builder);
	}

	/*
	 * (non-Javadoc)
	 *
	 * @see com.yueny.blog.dao.article.IArticleBlogDao#queryByBlogId(java.lang.
	 * String)
	 */
	@Override
	public ArticleBlogEntry queryByBlogId(final String articleBlogId) {
		final Map<String, Object> whereColumns = new HashMap<>();
		whereColumns.put("ARTICLE_BLOG_ID", articleBlogId);

		return super.queryByColumns(whereColumns);
	}

	/*
	 * (non-Javadoc)
	 *
	 * @see com.yueny.blog.dao.article.IArticleBlogDao#Condition(com.yueny.blog.dao.
	 * cd.ArticleBlogCd)
	 */
	@Override
	public List<ArticleBlogEntry> queryByCondition(final ArticleBlogCondition cd) {
		final QueryBuilder.InnerBuilder builder = QueryBuilder.builder();
		if (StringUtil.isNotEmpty(cd.getArticleBlogId())) {
			builder.where("ARTICLE_BLOG_ID", cd.getArticleBlogId());
		}
		if (StringUtil.isNotEmpty(cd.getArticleTitle())) {
			builder.where("ARTICLE_TITLE", FuzzySqlOperand.LIKE_RIGHT, cd.getArticleTitle());
		}
		if (cd.getReadTimes() != null) {
			builder.where("READ_TIMES", FuzzySqlOperand.GREATER_THAN_OR_EQUALS, cd.getReadTimes());
		}

		if (cd.getPageable() != null) {
			return super.queryListByColumns(builder.build(), cd.getPageable());
		}
		return super.queryListByColumns(builder.build());
	}

	@Override
	public ArticleBlogEntry queryByPreviousBlogId(final String articlePreviousBlogId) {
		final QueryBuilder builder = QueryBuilder.builder().where("ARTICLE_PREVIOUS_BLOG_ID", articlePreviousBlogId)
				.build();

		return super.queryByColumns(builder);
	}

	@Override
	public List<ArticleBlogEntry> queryBySelType(final String selType) {
		final QueryBuilder builder = QueryBuilder.builder().where("SEL_TYPE", selType).build();

		return super.queryListByColumns(builder);
	}

	@Override
	public ArticleBlogEntry queryLatestBlog() {
		return articleBlogMapper.queryLatestBlog();
	}

	@Override
	public ArticleBlogEntry queryLatestBlog(final String uid) {
		return articleBlogMapper.queryLatestBlogByUid(uid);
	}

	@Override
	public String queryLatestBlogId(final String uid) {
		return articleBlogMapper.queryLatestBlogId(uid);
	}

	@Override
	public List<ArticleBlogEntry> queryList(final IPageable pageable) {
		final QueryBuilder builder = QueryBuilder.builder().orderBy("CREATE_TIME").build();

		return super.queryListByColumns(builder, pageable);
	}

}


text:
<?php
/**
 * Processor resolver to decorate another processor resolver and return an authentication based processor.
 *
 * @package     stubbles
 * @subpackage  websites_processors_auth
 * @version     $Id: stubAuthProcessorResolver.php 3149 2011-08-09 21:04:00Z mikey $
 */
stubClassLoader::load('net::stubbles::websites::processors::stubProcessorResolver',
                      'net::stubbles::websites::processors::auth::stubAuthHandler',
                      'net::stubbles::websites::processors::auth::stubAuthProcessor'
);
/**
 * Processor resolver to decorate another processor resolver and return an authentication based processor.
 *
 * @package     stubbles
 * @subpackage  websites_processors_auth
 * @deprecated  use webapp configuration instead, will be removed with 1.8.0 or 2.0.0
 */
class stubAuthProcessorResolver extends stubBaseObject implements stubProcessorResolver
{
    /**
     * decorated processor resolver
     *
     * @var  stubProcessorResolver
     */
    protected $processorResolver;
    /**
     * injector to create authentication handler
     *
     * @var  stubInjector
     */
    protected $injector;

    /**
     * constructor
     *
     * @param  stubProcessorResolver  $processorResolver
     * @param  stubInjector           $injector
     * @Inject
     * @Named{processorResolver}('net.stubbles.websites.processor.finalResolver')
     */
    public function __construct(stubProcessorResolver $processorResolver, stubInjector $injector)
    {
        $this->processorResolver = $processorResolver;
        $this->injector          = $injector;
    }

    /**
     * returns interceptor descriptor
     *
     * @param   stubRequest  $request
     * @return  string
     */
    public function getInterceptorDescriptor(stubRequest $request)
    {
        return $this->processorResolver->getInterceptorDescriptor($request);
    }

    /**
     * resolves the request and creates the appropriate processor
     *
     * @param   stubRequest    $request   the current request
     * @param   stubSession    $session   the current session
     * @param   stubResponse   $response  the current response
     * @return  stubProcessor
     */
    public function resolve(stubRequest $request, stubSession $session, stubResponse $response)
    {
        return new stubAuthProcessor($this->processorResolver->resolve($request, $session, $response),
                                     $request,
                                     $response,
                                     $this->injector->getInstance('stubAuthHandler')
               );
    }
}
?>


text:
namespace DM.MovieApi.MovieDb.TV;

[DataContract]
public class Network : IEqualityComparer<Network>
{
    [DataMember( Name = "id" )]
    public int Id { get; set; }

    [DataMember( Name = "name" )]
    public string Name { get; set; }

    public Network( int id, string name )
    {
        Id = id;
        Name = name;
    }

    public bool Equals( Network x, Network y )
        => x != null && y != null && x.Id == y.Id && x.Name == y.Name;

    public int GetHashCode( Network obj )
    {
        unchecked // Overflow is fine, just wrap
        {
            int hash = 17;
            hash = hash * 23 + obj.Id.GetHashCode();
            hash = hash * 23 + obj.Name.GetHashCode();
            return hash;
        }
    }

    public override bool Equals( object obj )
    {
        if( obj is not Network network )
        {
            return false;
        }

        return Equals( this, network );
    }

    public override int GetHashCode()
        => GetHashCode( this );

    public override string ToString()
        => $"{Name} ({Id})";
}


text:
### Summary

This cmdlet creates instances of Octopus Resource Objects
### Parameters
| Name | DataType          | Description |
| ------------- | ----------- | ----------- |
| Resource | String |  Resource object model     |

### Syntax
``` powershell

Get-OctopusResourceModel -Resource <string> [<CommonParameters>]

```

### Examples

**EXAMPLE 1**

Creates an Environment Resource object

``` powershell
 $EnvironmentObj = Get-OctopusResourceModel -Resource Environment
```


text:
layout: post
status: publish
published: true
title: End of Study Break
author:
  display_name: Jon Clausen
  login: JClausen
  email: jon_clausen@silowebworks.com
  url: http://jonclausen.com
author_login: JClausen
author_email: jon_clausen@silowebworks.com
author_url: http://jonclausen.com
wordpress_id: 129
wordpress_url: http://jonclausen.com/?p=129
date: '2008-08-23 15:57:09 -0400'
date_gmt: '2008-08-23 20:57:09 -0400'
categories:
- Poetry
tags:
- Poetry
- creative writing
- poems
comments: []
---

by Jonathan Clausen

It's as if I am aging in reverse.

Rekindled passions, dormant for many seasons,

speak to me now and ask questions:

was what once seemed right, instead

necessary protection from an aching heart?

From poverty? From pain?

Shall I try once again to cover myself in

the sheath of success which

has, in the past,

wrapped me with its gilded fabric of a duller hue?

I think I will ask my old friends.

They once were accomplice to my greatest escape.

Yet their pages are yellowed:

their brittle stacks faded from passage of time.

Perhaps, instead, I should put them away;

safe for later days, poised for fresh eyes.

The faces on the planks of this shelf

have changed much in 15 years.

Some familiarity remains.

"Hello my friends, my comforts, my teachers

I'd like to catch up.

It seems I have a moment."


text:
Module xnuplot.utils
====================

Experimental high-level functions.

.. module:: xnuplot.utils

.. function:: no_autorefresh(plot)

.. function:: get_var(plot, varname[, type_=str])

.. function:: convert_coord(plot, axis, to_system, coord)

.. function:: convert_coords(plot, to_axes, x1=None, y1=None, x2=None, y2=None)

.. function:: get_range_settings(plot, axis[, system=1])

.. function:: set_range(plot, axis, system, range[, reverse=False, writeback=None])

.. function:: get_last_event(plot)

.. function:: wait_for_event(plot)

.. function:: get_line_segment(plot[, axes="x1y1"])

.. function:: get_polyline(plot[, axes="x1y1", vertex_callback=None])

.. function:: input_polyline(plot[, axes="x1y1", with_="lines", leave_polyline=True, close_polygon=False)


text:
  <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Juan Scarton's Cube Summation Challenge</title>
        <link href='http://fonts.googleapis.com/css?family=Nunito:400,300' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="{{ URL::asset('css/rappi.css')}}" />
        <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
        <script src="{{ URL::asset('js/rappi.js')}}"></script>
        <script src="https://use.fontawesome.com/0fd21d919d.js"></script>
    </head>
    <body>
      @yield('content')
    </body>
</html>


text:
// Destination Marker|Pointers|10010
namespace VRTK
{
    using UnityEngine;
    using System;

    /// <summary>
    /// Event Payload
    /// </summary>
    /// <param name="distance">The distance between the origin and the collided destination.</param>
    /// <param name="target">The Transform of the collided destination object.</param>
    /// <param name="raycastHit">The optional RaycastHit generated from when the ray collided.</param>
    /// <param name="destinationPosition">The world position of the destination marker.</param>
    /// <param name="destinationRotation">The world rotation of the destination marker.</param>
    /// <param name="forceDestinationPosition">If true then the given destination position should not be altered by anything consuming the payload.</param>
    /// <param name="enableTeleport">Whether the destination set event should trigger teleport.</param>
    /// <param name="controllerIndex">**OBSOLETE** The optional index of the controller controlling the destination marker.</param>
    /// <param name="controllerReference">The optional reference to the controller controlling the destination marker.</param>
    public struct DestinationMarkerEventArgs
    {
        public float distance;
        public Transform target;
        public RaycastHit raycastHit;
        public Vector3 destinationPosition;
        public Quaternion? destinationRotation;
        public bool forceDestinationPosition;
        public bool enableTeleport;
        [Obsolete("`DestinationMarkerEventArgs.controllerIndex` has been replaced with `DestinationMarkerEventArgs.controllerReference`. This parameter will be removed in a future version of VRTK.")]
        public uint controllerIndex;
        public VRTK_ControllerReference controllerReference;
    }

    /// <summary>
    /// Event Payload
    /// </summary>
    /// <param name="sender">this object</param>
    /// <param name="e"><see cref="DestinationMarkerEventArgs"/></param>
    public delegate void DestinationMarkerEventHandler(object sender, DestinationMarkerEventArgs e);

    /// <summary>
    /// This abstract class provides the ability to emit events of destination markers within the game world. It can be useful for tagging locations for specific purposes such as teleporting.
    /// </summary>
    /// <remarks>
    /// It is utilised by the `VRTK_BasePointer` for dealing with pointer events when the pointer cursor touches areas within the game world.
    /// </remarks>
    public abstract class VRTK_DestinationMarker : MonoBehaviour
    {
        [Header("Destination Marker Settings", order = 1)]

        [Tooltip("If this is checked then the teleport flag is set to true in the Destination Set event so teleport scripts will know whether to action the new destination.")]
        public bool enableTeleport = true;
        [Tooltip("A specified VRTK_PolicyList to use to determine whether destination targets will be considered valid or invalid.")]
        public VRTK_PolicyList targetListPolicy;

        /// <summary>
        /// Emitted when a collision with another collider has first occurred.
        /// </summary>
        public event DestinationMarkerEventHandler DestinationMarkerEnter;
        /// <summary>
        /// Emitted when the collision with the other collider ends.
        /// </summary>
        public event DestinationMarkerEventHandler DestinationMarkerExit;
        /// Emitted when a collision the existing collider is continuing.
        /// </summary>
        public event DestinationMarkerEventHandler DestinationMarkerHover;
        /// <summary>
        /// Emitted when the destination marker is active in the scene to determine the last destination position (useful for selecting and teleporting).
        /// </summary>
        public event DestinationMarkerEventHandler DestinationMarkerSet;

        protected float navMeshCheckDistance;
        protected bool headsetPositionCompensation;
        protected bool forceHoverOnRepeatedEnter = true;
        protected Collider existingCollider;

        public virtual void OnDestinationMarkerEnter(DestinationMarkerEventArgs e)
        {
            if (DestinationMarkerEnter != null && (!forceHoverOnRepeatedEnter || (e.raycastHit.collider != existingCollider)))
            {
                existingCollider = e.raycastHit.collider;
                DestinationMarkerEnter(this, e);
            }

            if (forceHoverOnRepeatedEnter && e.raycastHit.collider == existingCollider)
            {
                OnDestinationMarkerHover(e);
            }
        }

        public virtual void OnDestinationMarkerExit(DestinationMarkerEventArgs e)
        {
            if (DestinationMarkerExit != null)
            {
                DestinationMarkerExit(this, e);
                existingCollider = null;
            }
        }

        public virtual void OnDestinationMarkerHover(DestinationMarkerEventArgs e)
        {
            if (DestinationMarkerHover != null)
            {
                DestinationMarkerHover(this, e);
            }
        }

        public virtual void OnDestinationMarkerSet(DestinationMarkerEventArgs e)
        {
            if (DestinationMarkerSet != null)
            {
                DestinationMarkerSet(this, e);
            }
        }

        /// <summary>
        /// The SetInvalidTarget method is used to set objects that contain the given tag or class matching the name as invalid destination targets. It accepts a VRTK_PolicyList for a custom level of policy management.
        /// </summary>
        /// <param name="list">The Tag Or Script list policy to check the set operation on.</param>
        [Obsolete("`DestinationMarkerEventArgs.SetInvalidTarget(list)` has been replaced with the public variable `DestinationMarkerEventArgs.targetListPolicy`. This method will be removed in a future version of VRTK.")]
        public virtual void SetInvalidTarget(VRTK_PolicyList list = null)
        {
            targetListPolicy = list;
        }

        /// <summary>
        /// The SetNavMeshCheckDistance method sets the max distance the destination marker position can be from the edge of a nav mesh to be considered a valid destination.
        /// </summary>
        /// <param name="distance">The max distance the nav mesh can be from the sample point to be valid.</param>
        public virtual void SetNavMeshCheckDistance(float distance)
        {
            navMeshCheckDistance = distance;
        }

        /// <summary>
        /// The SetHeadsetPositionCompensation method determines whether the offset position of the headset from the centre of the play area should be taken into consideration when setting the destination marker. If `true` then it will take the offset position into consideration.
        /// </summary>
        /// <param name="state">The state of whether to take the position of the headset within the play area into account when setting the destination marker.</param>
        public virtual void SetHeadsetPositionCompensation(bool state)
        {
            headsetPositionCompensation = state;
        }

        /// <summary>
        /// The SetForceHoverOnRepeatedEnter method is used to set whether the Enter event will forciably call the Hover event if the existing colliding object is the same as it was the previous enter call.
        /// </summary>
        /// <param name="state">The state of whether to force the hover on or off.</param>
        public virtual void SetForceHoverOnRepeatedEnter(bool state)
        {
            forceHoverOnRepeatedEnter = state;
        }

        protected virtual void OnEnable()
        {
            VRTK_ObjectCache.registeredDestinationMarkers.Add(this);
        }

        protected virtual void OnDisable()
        {
            VRTK_ObjectCache.registeredDestinationMarkers.Remove(this);
        }

        protected virtual DestinationMarkerEventArgs SetDestinationMarkerEvent(float distance, Transform target, RaycastHit raycastHit, Vector3 position, VRTK_ControllerReference controllerReference, bool forceDestinationPosition = false, Quaternion? rotation = null)
        {
            DestinationMarkerEventArgs e;
#pragma warning disable 0618
            e.controllerIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);
#pragma warning restore 0618
            e.controllerReference = controllerReference;
            e.distance = distance;
            e.target = target;
            e.raycastHit = raycastHit;
            e.destinationPosition = position;
            e.destinationRotation = rotation;
            e.enableTeleport = enableTeleport;
            e.forceDestinationPosition = forceDestinationPosition;
            return e;
        }
    }
}


text:
class UserReaction < ActiveRecord::Base
  belongs_to :user
  belongs_to :reaction
end


text:
<?php
/**
 * Elastica index object
 *
 * Handles reads, deletes and configurations of an index
 *
 * @category Xodoa
 * @package  Elastica
 * @author   Nicolas Ruflin <spam@ruflin.com>
 */
class Elastica_Index implements Elastica_Searchable
{
    /**
     * Index name
     *
     * @var string Index name
     */
    protected $_name = '';

    /**
     * Client object
     *
     * @var Elastica_Client Client object
     */
    protected $_client = null;

    /**
     * Creates a new index object
     *
     * All the communication to and from an index goes of this object
     *
     * @param Elastica_Client $client Client object
     * @param string          $name   Index name
     * @throws Elastica_Exception_Invalid
     */
    public function __construct(Elastica_Client $client, $name)
    {
        $this->_client = $client;

        if (!is_string($name)) {
            throw new Elastica_Exception_Invalid('Index name should be of type string');
        }
        $this->_name = $name;
    }

    /**
     * Returns a type object for the current index with the given name
     *
     * @param  string        $type Type name
     * @return Elastica_Type Type object
     */
    public function getType($type)
    {
        return new Elastica_Type($this, $type);
    }

    /**
     * Returns the current status of the index
     *
     * @return Elastica_Index_Status Index status
     */
    public function getStatus()
    {
        return new Elastica_Index_Status($this);
    }

    /**
     * Return Index Stats
     *
     * @return Elastica_Index_Stats
     */
    public function getStats()
    {
        return new Elastica_Index_Stats($this);
    }

    /**
     * Gets all the type mappings for an index.
     *
     * @return array
     */
    public function getMapping()
    {
        $path = '_mapping';

        $response = $this->request($path, Elastica_Request::GET);

        return $response->getData();
    }

    /**
     * Returns the index settings object
     *
     * @return Elastica_Index_Settings Settings object
     */
    public function getSettings()
    {
        return new Elastica_Index_Settings($this);
    }

    /**
     * Uses _bulk to send documents to the server
     *
     * @param array|Elastica_Document[] $docs Array of Elastica_Document
     * @return Elastica_Response
     * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
     */
    public function addDocuments(array $docs)
    {
        foreach ($docs as $doc) {
            $doc->setIndex($this->getName());
        }

        return $this->getClient()->addDocuments($docs);
    }

    /**
     * Update document, using update script. Requires elasticsearch >= 0.19.0
     *
     * @param  string            $id      document id
     * @param  Elastica_Script   $script  script to use for update
     * @param  string            $type    index type
     * @param  array             $options options for query
     * @return Elastica_Response
     * @link http://www.elasticsearch.org/guide/reference/api/update.html
     * @see  Elastica_Client::updateDocument()
     */
    public function updateDocument($id, Elastica_Script $script, $type, array $options = array())
    {
        return $this->getClient()->updateDocument($id, $script, $this->getName(), $type, $options);
    }

    /**
     * Deletes the index
     *
     * @return Elastica_Response Response object
     */
    public function delete()
    {
        $response = $this->request('', Elastica_Request::DELETE);

        return $response;
    }

    /**
     * Optimizes search index
     *
     * Detailed arguments can be found here in the link
     *
     * @param  array $args OPTIONAL Additional arguments
     * @return array Server response
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-optimize.html
     */
    public function optimize($args = array())
    {
        // TODO: doesn't seem to work?
        $this->request('_optimize', Elastica_Request::POST, $args);
    }

    /**
     * Refreshes the index
     *
     * @return Elastica_Response Response object
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-refresh.html
     */
    public function refresh()
    {
        return $this->request('_refresh', Elastica_Request::POST, array());
    }

    /**
     * Creates a new index with the given arguments
     *
     * @param array      $args    OPTIONAL Arguments to use
     * @param bool|array $options OPTIONAL
     *                            bool=> Deletes index first if already exists (default = false).
     *                            array => Associative array of options (option=>value)
     * @throws Elastica_Exception_Invalid
     * @return array Server response
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index.html
     */
    public function create(array $args = array(), $options = null)
    {
        $path = '';
        $query = array();

        if (is_bool($options)) {
            if ($options) {
                try {
                    $this->delete();
                } catch (Elastica_Exception_Response $e) {
                    // Table can't be deleted, because doesn't exist
                }
            }
        } else {
            if (is_array($options)) {
                foreach ($options as $key => $value) {
                    switch ($key) {
                        case 'recreate' :
                            try {
                                $this->delete();
                            } catch (Elastica_Exception_Response $e) {
                                // Table can't be deleted, because doesn't exist
                            }
                            break;
                        case 'routing' :
                            $query = array('routing' => $value);
                            break;
                        default:
                            throw new Elastica_Exception_Invalid('Invalid option ' . $key);
                            break;
                    }
                }
            }
        }

        return $this->request($path, Elastica_Request::PUT, $args, $query);
    }

    /**
     * Checks if the given index is already created
     *
     * @return bool True if index exists
     */
    public function exists()
    {
        $cluster = new Elastica_Cluster($this->getClient());

        return in_array($this->getName(), $cluster->getIndexNames());
    }

    /**
     * Searchs in this index
     *
     * @param  string|array|Elastica_Query $query   Array with all query data inside or a Elastica_Query object
     * @param  int|array                   $options OPTIONAL Limit or associative array of options (option=>value)
     * @return Elastica_ResultSet          ResultSet with all results inside
     * @see Elastica_Searchable::search
     */
    public function search($query, $options = null)
    {
        $search = new Elastica_Search($this->getClient());
        $search->addIndex($this);

        return $search->search($query, $options);
    }

    /**
     * Counts results of query
     *
     * @param  string|array|Elastica_Query $query Array with all query data inside or a Elastica_Query object
     * @return int                         number of documents matching the query
     * @see Elastica_Searchable::count
     */
    public function count($query = '')
    {
        $query = Elastica_Query::create($query);
        $path = '_search';

        $response = $this->request($path, Elastica_Request::GET, $query->toArray(), array('search_type' => 'count'));
        $resultSet = new Elastica_ResultSet($response);

        return $resultSet->getTotalHits();
    }

    /**
     * Opens an index
     *
     * @return Elastica_Response Response object
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-open-close.html
     */
    public function open()
    {
        $this->request('_open', Elastica_Request::POST);
    }

    /**
     * Closes the index
     *
     * @return Elastica_Response Response object
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-open-close.html
     */
    public function close()
    {
        return $this->request('_close', Elastica_Request::POST);
    }

    /**
     * Returns the index name
     *
     * @return string Index name
     */
    public function getName()
    {
        return $this->_name;
    }

    /**
     * Returns index client
     *
     * @return Elastica_Client Index client object
     */
    public function getClient()
    {
        return $this->_client;
    }

    /**
     * Adds an alias to the current index
     *
     * @param  string            $name    Alias name
     * @param  bool              $replace OPTIONAL If set, an existing alias will be replaced
     * @return Elastica_Response Response
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-aliases.html
     */
    public function addAlias($name, $replace = false)
    {
        $path = '_aliases';

        $data = array( 'actions' => array( ) );

        if ($replace) {
            $status = new Elastica_Status( $this->getClient() );
            foreach ( $status->getIndicesWithAlias( $name ) as $index ) {
                $data['actions'][] = array('remove' => array('index' => $index->getName(), 'alias' => $name));
            }
        }

        $data['actions'][] = array('add' => array('index' => $this->getName(), 'alias' => $name));

        return $this->getClient()->request($path, Elastica_Request::POST, $data);
    }

    /**
     * Removes an alias pointing to the current index
     *
     * @param  string            $name Alias name
     * @return Elastica_Response Response
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-aliases.html
     */
    public function removeAlias($name)
    {
        $path = '_aliases';

        $data = array('actions' => array(array('remove' => array('index' => $this->getName(), 'alias' => $name))));

        return $this->getClient()->request($path, Elastica_Request::POST, $data);
    }

    /**
     * Clears the cache of an index
     *
     * @return Elastica_Response Response object
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-clearcache.html
     */
    public function clearCache()
    {
        $path = '_cache/clear';
        // TODO: add additional cache clean arguments
        return $this->request($path, Elastica_Request::POST);
    }

    /**
     * Flushes the index to storage
     *
     * @return Elastica_Response Response object
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-flush.html
     */
    public function flush()
    {
        $path = '_flush';
        // TODO: Add option for refresh
        return $this->request($path, Elastica_Request::POST);
    }

    /**
     * Can be used to change settings during runtime. One example is to use
     * if for bulk updating {@link http://www.elasticsearch.org/blog/2011/03/23/update-settings.html}
     *
     * @param  array             $data Data array
     * @return Elastica_Response Response object
     * @link http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html
     */
    public function setSettings(array $data)
    {
        return $this->request('_settings', Elastica_Request::PUT, $data);
    }

    /**
     * Makes calls to the elasticsearch server based on this index
     *
     * @param  string            $path   Path to call
     * @param  string            $method Rest method to use (GET, POST, DELETE, PUT)
     * @param  array             $data   OPTIONAL Arguments as array
     * @param  array             $query  OPTIONAL Query params
     * @return Elastica_Response Response object
     */
    public function request($path, $method, $data = array(), array $query = array())
    {
        $path = $this->getName() . '/' . $path;

        return $this->getClient()->request($path, $method, $data, $query);
    }
}