Stackedit/js/main-min.js
2013-08-19 22:44:13 +02:00

15830 lines
1006 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*!
* jQuery JavaScript Library v2.0.3
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2013-07-03T13:30Z
*/
/*!
* Sizzle CSS Selector Engine v1.9.4-pre
* http://sizzlejs.com/
*
* Copyright 2013 jQuery Foundation, Inc. and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2013-06-03
*/
// > http://underscorejs.org
// > (c) 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.
// > Underscore may be freely distributed under the MIT license.
//Copyright (C) 2012 Kory Nunn
//Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
//The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
/**
* @license RequireJS text 2.0.6 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/requirejs/text for details
*/
/*
* to-markdown - an HTML to Markdown converter
*
* Copyright 2011-2012, Dom Christie
* Licenced under the MIT licence
*
*/
/**
* Copyright 2013 Craig Campbell
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Mousetrap is a simple keyboard shortcut library for Javascript with
* no external dependencies
*
* @version 1.4.1
* @url craig.is/killing/mice
*/
/**
* jGrowl 1.2.11
*
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
*
* Written by Stan Lemon <stosh1985@gmail.com>
* Last updated: 2013.02.14
*
* jGrowl is a jQuery plugin implementing unobtrusive userland notifications. These
* notifications function similarly to the Growl Framework available for
* Mac OS X (http://growl.info).
*
* To Do:
* - Move library settings to containers and allow them to be changed per container
*
* Changes in 1.2.11
* - Fix artifacts left behind by the shutdown method and text-cleanup
*
* Changes in 1.2.10
* - Fix beforeClose to be called in click event
*
* Changes in 1.2.9
* - Fixed BC break in jQuery 2.0 beta
*
* Changes in 1.2.8
* - Fixes for jQuery 1.9 and the MSIE6 check, note that with jQuery 2.0 support
* jGrowl intends to drop support for IE6 altogether
*
* Changes in 1.2.6
* - Fixed js error when a notification is opening and closing at the same time
*
* Changes in 1.2.5
* - Changed wrapper jGrowl's options usage to "o" instead of $.jGrowl.defaults
* - Added themeState option to control 'highlight' or 'error' for jQuery UI
* - Ammended some CSS to provide default positioning for nested usage.
* - Changed some CSS to be prefixed with jGrowl- to prevent namespacing issues
* - Added two new options - openDuration and closeDuration to allow
* better control of notification open and close speeds, respectively
* Patch contributed by Jesse Vincet.
* - Added afterOpen callback. Patch contributed by Russel Branca.
*
* Changes in 1.2.4
* - Fixed IE bug with the close-all button
* - Fixed IE bug with the filter CSS attribute (special thanks to gotwic)
* - Update IE opacity CSS
* - Changed font sizes to use "em", and only set the base style
*
* Changes in 1.2.3
* - The callbacks no longer use the container as context, instead they use the actual notification
* - The callbacks now receive the container as a parameter after the options parameter
* - beforeOpen and beforeClose now check the return value, if it's false - the notification does
* not continue. The open callback will also halt execution if it returns false.
* - Fixed bug where containers would get confused
* - Expanded the pause functionality to pause an entire container.
*
* Changes in 1.2.2
* - Notification can now be theme rolled for jQuery UI, special thanks to Jeff Chan!
*
* Changes in 1.2.1
* - Fixed instance where the interval would fire the close method multiple times.
* - Added CSS to hide from print media
* - Fixed issue with closer button when div { position: relative } is set
* - Fixed leaking issue with multiple containers. Special thanks to Matthew Hanlon!
*
* Changes in 1.2.0
* - Added message pooling to limit the number of messages appearing at a given time.
* - Closing a notification is now bound to the notification object and triggered by the close button.
*
* Changes in 1.1.2
* - Added iPhone styled example
* - Fixed possible IE7 bug when determining if the ie6 class shoudl be applied.
* - Added template for the close button, so that it's content could be customized.
*
* Changes in 1.1.1
* - Fixed CSS styling bug for ie6 caused by a mispelling
* - Changes height restriction on default notifications to min-height
* - Added skinned examples using a variety of images
* - Added the ability to customize the content of the [close all] box
* - Added jTweet, an example of using jGrowl + Twitter
*
* Changes in 1.1.0
* - Multiple container and instances.
* - Standard $.jGrowl() now wraps $.fn.jGrowl() by first establishing a generic jGrowl container.
* - Instance methods of a jGrowl container can be called by $.fn.jGrowl(methodName)
* - Added glue preferenced, which allows notifications to be inserted before or after nodes in the container
* - Added new log callback which is called before anything is done for the notification
* - Corner's attribute are now applied on an individual notification basis.
*
* Changes in 1.0.4
* - Various CSS fixes so that jGrowl renders correctly in IE6.
*
* Changes in 1.0.3
* - Fixed bug with options persisting across notifications
* - Fixed theme application bug
* - Simplified some selectors and manipulations.
* - Added beforeOpen and beforeClose callbacks
* - Reorganized some lines of code to be more readable
* - Removed unnecessary this.defaults context
* - If corners plugin is present, it's now customizable.
* - Customizable open animation.
* - Customizable close animation.
* - Customizable animation easing.
* - Added customizable positioning (top-left, top-right, bottom-left, bottom-right, center)
*
* Changes in 1.0.2
* - All CSS styling is now external.
* - Added a theme parameter which specifies a secondary class for styling, such
* that notifications can be customized in appearance on a per message basis.
* - Notification life span is now customizable on a per message basis.
* - Added the ability to disable the global closer, enabled by default.
* - Added callbacks for when a notification is opened or closed.
* - Added callback for the global closer.
* - Customizable animation speed.
* - jGrowl now set itself up and tears itself down.
*
* Changes in 1.0.1:
* - Removed dependency on metadata plugin in favor of .data()
* - Namespaced all events
*/
// Copyright (C) 2006 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
CSS Browser Selector 0.6.1
Originally written by Rafael Lima (http://rafael.adm.br)
http://rafael.adm.br/css_browser_selector
License: http://creativecommons.org/licenses/by/2.5/
Co-maintained by:
https://github.com/verbatim/css_browser_selector
*/
/*! Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net)
* Licensed under the MIT License (LICENSE.txt).
*
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
* Thanks to: Seamus Leahy for adding deltaX and deltaY
*
* Version: 3.1.3
*
* Requires: 1.2.2+
*/
/**
* bootstrap.js v3.0.0 by @fat and @mdo
* Copyright 2013 Twitter Inc.
* http://www.apache.org/licenses/LICENSE-2.0
*/
/* ========================================================================
* Bootstrap: transition.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#transitions
* ========================================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: alert.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#alerts
* ========================================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: button.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#buttons
* ========================================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: carousel.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#carousel
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: collapse.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#collapse
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: dropdown.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#dropdowns
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: modal.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#modals
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: tooltip.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: popover.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#popovers
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: scrollspy.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#scrollspy
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: tab.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#tabs
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: affix.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#affix
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/*
* waitForImages 1.4.2
* -------------------
* Provides a callback when all images have loaded in your given selector.
* https://github.com/alexanderdickson/waitForImages
*
* Copyright (c) 2013 Alex Dickson
* Licensed under the MIT license.
*/
/*! jQuery UI - v1.10.3 - 2013-08-03
* http://jqueryui.com
* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.effect.js, jquery.ui.effect-slide.js
* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
/*!
* jQuery Color Animations v2.1.2
* https://github.com/jquery/jquery-color
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* Date: Wed Jan 16 08:47:09 2013 -0600
*/
/**
* @preserve
* jquery.layout 1.3.0 - Release Candidate 30.79
* $Date: 2013-01-12 08:00:00 (Sat, 12 Jan 2013) $
* $Rev: 303007 $
*
* Copyright (c) 2013 Kevin Dalman (http://allpro.net)
* Based on work by Fabrizio Balliano (http://www.fabrizioballiano.net)
*
* Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
* and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
*
* SEE: http://layout.jquery-dev.net/LICENSE.txt
*
* Changelog: http://layout.jquery-dev.net/changelog.cfm#1.3.0.rc30.79
*
* Docs: http://layout.jquery-dev.net/documentation.html
* Tips: http://layout.jquery-dev.net/tips.html
* Help: http://groups.google.com/group/jquery-ui-layout
*/
/**
* jquery.layout.state 1.0
* $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $
*
* Copyright (c) 2012
* Kevin Dalman (http://allpro.net)
*
* Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
* and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
*
* @requires: UI Layout 1.3.0.rc30.1 or higher
* @requires: $.ui.cookie (above)
*
* @see: http://groups.google.com/group/jquery-ui-layout
*/
/**
* jquery.layout.buttons 1.0
* $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $
*
* Copyright (c) 2012
* Kevin Dalman (http://allpro.net)
*
* Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
* and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
*
* @requires: UI Layout 1.3.0.rc30.1 or higher
*
* @see: http://groups.google.com/group/jquery-ui-layout
*
* Docs: [ to come ]
* Tips: [ to come ]
*/
/**
* jquery.layout.browserZoom 1.0
* $Date: 2011-12-29 08:00:00 (Thu, 29 Dec 2011) $
*
* Copyright (c) 2012
* Kevin Dalman (http://allpro.net)
*
* Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
* and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
*
* @requires: UI Layout 1.3.0.rc30.1 or higher
*
* @see: http://groups.google.com/group/jquery-ui-layout
*
* TODO: Extend logic to handle other problematic zooming in browsers
* TODO: Add hotkey/mousewheel bindings to _instantly_ respond to these zoom event
*/
function printStackTrace(n) {
n = n || {
guess: !0
};
var e = n.e || null, t = !!n.guess, o = new printStackTrace.implementation(), i = o.run(e);
return t ? o.guessAnonymousFunctions(i) : i;
}
function runDelayedFunction() {
void 0 !== delayedFunction && delayedFunction();
}
function log(n) {
window.console && showLog && console.log(n);
}
function css_browser_selector(n) {
function e() {
var n = window.outerWidth || x.clientWidth, e = window.outerHeight || x.clientHeight;
t.orientation = e > n ? "portrait" : "landscape", x.className = x.className.replace(/ ?orientation_\w+/g, "").replace(/ [min|max|cl]+[w|h]_\d+/g, "");
for (var r = i - 1; r >= 0; r--) if (n >= o[r]) {
t.maxw = o[r];
break;
}
widthClasses = "";
for (var a in t) widthClasses += " " + a + "_" + t[a];
return x.className = x.className + widthClasses, widthClasses;
}
var t = {}, o = [ 320, 480, 640, 768, 1024, 1152, 1280, 1440, 1680, 1920, 2560 ], i = o.length, r = n.toLowerCase(), a = function(n) {
return RegExp(n, "i").test(r);
}, s = function(n, e) {
e = e.replace(".", "_");
for (var t = e.indexOf("_"), o = ""; t > 0; ) o += " " + n + e.substring(0, t),
t = e.indexOf("_", t + 1);
return o += " " + n + e;
}, l = "gecko", c = "webkit", d = "chrome", p = "firefox", u = "safari", f = "opera", h = "mobile", g = "android", b = "blackberry", m = "lang_", v = "device_", x = document.documentElement, y = [ !/opera|webtv/i.test(r) && /msie\s(\d+)/.test(r) ? "ie ie" + (/trident\/4\.0/.test(r) ? "8" : RegExp.$1) : a("firefox/") ? l + " " + p + (/firefox\/((\d+)(\.(\d+))(\.\d+)*)/.test(r) ? " " + p + RegExp.$2 + " " + p + RegExp.$2 + "_" + RegExp.$4 : "") : a("gecko/") ? l : a("opera") ? f + (/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(r) ? " " + f + RegExp.$2 + " " + f + RegExp.$2 + "_" + RegExp.$4 : /opera(\s|\/)(\d+)\.(\d+)/.test(r) ? " " + f + RegExp.$2 + " " + f + RegExp.$2 + "_" + RegExp.$3 : "") : a("konqueror") ? "konqueror" : a("blackberry") ? b + (/Version\/(\d+)(\.(\d+)+)/i.test(r) ? " " + b + RegExp.$1 + " " + b + RegExp.$1 + RegExp.$2.replace(".", "_") : /Blackberry ?(([0-9]+)([a-z]?))[\/|;]/gi.test(r) ? " " + b + RegExp.$2 + (RegExp.$3 ? " " + b + RegExp.$2 + RegExp.$3 : "") : "") : a("android") ? g + (/Version\/(\d+)(\.(\d+))+/i.test(r) ? " " + g + RegExp.$1 + " " + g + RegExp.$1 + RegExp.$2.replace(".", "_") : "") + (/Android (.+); (.+) Build/i.test(r) ? " " + v + RegExp.$2.replace(/ /g, "_").replace(/-/g, "_") : "") : a("chrome") ? c + " " + d + (/chrome\/((\d+)(\.(\d+))(\.\d+)*)/.test(r) ? " " + d + RegExp.$2 + (RegExp.$4 > 0 ? " " + d + RegExp.$2 + "_" + RegExp.$4 : "") : "") : a("iron") ? c + " iron" : a("applewebkit/") ? c + " " + u + (/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(r) ? " " + u + RegExp.$2 + " " + u + RegExp.$2 + RegExp.$3.replace(".", "_") : / Safari\/(\d+)/i.test(r) ? "419" == RegExp.$1 || "417" == RegExp.$1 || "416" == RegExp.$1 || "412" == RegExp.$1 ? " " + u + "2_0" : "312" == RegExp.$1 ? " " + u + "1_3" : "125" == RegExp.$1 ? " " + u + "1_2" : "85" == RegExp.$1 ? " " + u + "1_0" : "" : "") : a("mozilla/") ? l : "", a("android|mobi|mobile|j2me|iphone|ipod|ipad|blackberry|playbook|kindle|silk") ? h : "", a("j2me") ? "j2me" : a("ipad|ipod|iphone") ? (/CPU( iPhone)? OS (\d+[_|\.]\d+([_|\.]\d+)*)/i.test(r) ? "ios" + s("ios", RegExp.$2) : "") + " " + (/(ip(ad|od|hone))/gi.test(r) ? RegExp.$1 : "") : a("playbook") ? "playbook" : a("kindle|silk") ? "kindle" : a("playbook") ? "playbook" : a("mac") ? "mac" + (/mac os x ((\d+)[.|_](\d+))/.test(r) ? " mac" + RegExp.$2 + " mac" + RegExp.$1.replace(".", "_") : "") : a("win") ? "win" + (a("windows nt 6.2") ? " win8" : a("windows nt 6.1") ? " win7" : a("windows nt 6.0") ? " vista" : a("windows nt 5.2") || a("windows nt 5.1") ? " win_xp" : a("windows nt 5.0") ? " win_2k" : a("windows nt 4.0") || a("WinNT4.0") ? " win_nt" : "") : a("freebsd") ? "freebsd" : a("x11|linux") ? "linux" : "", /[; |\[](([a-z]{2})(\-[a-z]{2})?)[)|;|\]]/i.test(r) ? (m + RegExp.$2).replace("-", "_") + ("" != RegExp.$3 ? (" " + m + RegExp.$1).replace("-", "_") : "") : "", a("ipad|iphone|ipod") && !a("safari") ? "ipad_app" : "" ];
window.onresize = e, e();
var w = y.join(" ") + " js ";
return x.className = (w + x.className.replace(/\b(no[-|_]?)?js\b/g, "")).replace(/^ /, "").replace(/ +/g, " "),
w;
}
(function(n, e) {
function t(n) {
var e = n.length, t = re.type(n);
return re.isWindow(n) ? !1 : 1 === n.nodeType && e ? !0 : "array" === t || "function" !== t && (0 === e || "number" == typeof e && e > 0 && e - 1 in n);
}
function o(n) {
var e = he[n] = {};
return re.each(n.match(se) || [], function(n, t) {
e[t] = !0;
}), e;
}
function i() {
Object.defineProperty(this.cache = {}, 0, {
get: function() {
return {};
}
}), this.expando = re.expando + Math.random();
}
function r(n, t, o) {
var i;
if (o === e && 1 === n.nodeType) if (i = "data-" + t.replace(ve, "-$1").toLowerCase(),
o = n.getAttribute(i), "string" == typeof o) {
try {
o = "true" === o ? !0 : "false" === o ? !1 : "null" === o ? null : +o + "" === o ? +o : me.test(o) ? JSON.parse(o) : o;
} catch (r) {}
ge.set(n, t, o);
} else o = e;
return o;
}
function a() {
return !0;
}
function s() {
return !1;
}
function l() {
try {
return G.activeElement;
} catch (n) {}
}
function c(n, e) {
for (;(n = n[e]) && 1 !== n.nodeType; ) ;
return n;
}
function d(n, e, t) {
if (re.isFunction(e)) return re.grep(n, function(n, o) {
return !!e.call(n, o, n) !== t;
});
if (e.nodeType) return re.grep(n, function(n) {
return n === e !== t;
});
if ("string" == typeof e) {
if (ze.test(e)) return re.filter(e, n, t);
e = re.filter(e, n);
}
return re.grep(n, function(n) {
return ee.call(e, n) >= 0 !== t;
});
}
function p(n, e) {
return re.nodeName(n, "table") && re.nodeName(1 === e.nodeType ? e : e.firstChild, "tr") ? n.getElementsByTagName("tbody")[0] || n.appendChild(n.ownerDocument.createElement("tbody")) : n;
}
function u(n) {
return n.type = (null !== n.getAttribute("type")) + "/" + n.type, n;
}
function f(n) {
var e = Oe.exec(n.type);
return e ? n.type = e[1] : n.removeAttribute("type"), n;
}
function h(n, e) {
for (var t = n.length, o = 0; t > o; o++) be.set(n[o], "globalEval", !e || be.get(e[o], "globalEval"));
}
function g(n, e) {
var t, o, i, r, a, s, l, c;
if (1 === e.nodeType) {
if (be.hasData(n) && (r = be.access(n), a = be.set(e, r), c = r.events)) {
delete a.handle, a.events = {};
for (i in c) for (t = 0, o = c[i].length; o > t; t++) re.event.add(e, i, c[i][t]);
}
ge.hasData(n) && (s = ge.access(n), l = re.extend({}, s), ge.set(e, l));
}
}
function b(n, t) {
var o = n.getElementsByTagName ? n.getElementsByTagName(t || "*") : n.querySelectorAll ? n.querySelectorAll(t || "*") : [];
return t === e || t && re.nodeName(n, t) ? re.merge([ n ], o) : o;
}
function m(n, e) {
var t = e.nodeName.toLowerCase();
"input" === t && Ae.test(n.type) ? e.checked = n.checked : ("input" === t || "textarea" === t) && (e.defaultValue = n.defaultValue);
}
function v(n, e) {
if (e in n) return e;
for (var t = e.charAt(0).toUpperCase() + e.slice(1), o = e, i = Qe.length; i--; ) if (e = Qe[i] + t,
e in n) return e;
return o;
}
function x(n, e) {
return n = e || n, "none" === re.css(n, "display") || !re.contains(n.ownerDocument, n);
}
function y(e) {
return n.getComputedStyle(e, null);
}
function w(n, e) {
for (var t, o, i, r = [], a = 0, s = n.length; s > a; a++) o = n[a], o.style && (r[a] = be.get(o, "olddisplay"),
t = o.style.display, e ? (r[a] || "none" !== t || (o.style.display = ""), "" === o.style.display && x(o) && (r[a] = be.access(o, "olddisplay", T(o.nodeName)))) : r[a] || (i = x(o),
(t && "none" !== t || !i) && be.set(o, "olddisplay", i ? t : re.css(o, "display"))));
for (a = 0; s > a; a++) o = n[a], o.style && (e && "none" !== o.style.display && "" !== o.style.display || (o.style.display = e ? r[a] || "" : "none"));
return n;
}
function k(n, e, t) {
var o = Ue.exec(e);
return o ? Math.max(0, o[1] - (t || 0)) + (o[2] || "px") : e;
}
function C(n, e, t, o, i) {
for (var r = t === (o ? "border" : "content") ? 4 : "width" === e ? 1 : 0, a = 0; 4 > r; r += 2) "margin" === t && (a += re.css(n, t + Ze[r], !0, i)),
o ? ("content" === t && (a -= re.css(n, "padding" + Ze[r], !0, i)), "margin" !== t && (a -= re.css(n, "border" + Ze[r] + "Width", !0, i))) : (a += re.css(n, "padding" + Ze[r], !0, i),
"padding" !== t && (a += re.css(n, "border" + Ze[r] + "Width", !0, i)));
return a;
}
function S(n, e, t) {
var o = !0, i = "width" === e ? n.offsetWidth : n.offsetHeight, r = y(n), a = re.support.boxSizing && "border-box" === re.css(n, "boxSizing", !1, r);
if (0 >= i || null == i) {
if (i = Fe(n, e, r), (0 > i || null == i) && (i = n.style[e]), Ve.test(i)) return i;
o = a && (re.support.boxSizingReliable || i === n.style[e]), i = parseFloat(i) || 0;
}
return i + C(n, e, t || (a ? "border" : "content"), o, r) + "px";
}
function T(n) {
var e = G, t = Ye[n];
return t || (t = E(n, e), "none" !== t && t || (Be = (Be || re("<iframe frameborder='0' width='0' height='0'/>").css("cssText", "display:block !important")).appendTo(e.documentElement),
e = (Be[0].contentWindow || Be[0].contentDocument).document, e.write("<!doctype html><html><body>"),
e.close(), t = E(n, e), Be.detach()), Ye[n] = t), t;
}
function E(n, e) {
var t = re(e.createElement(n)).appendTo(e.body), o = re.css(t[0], "display");
return t.remove(), o;
}
function _(n, e, t, o) {
var i;
if (re.isArray(e)) re.each(e, function(e, i) {
t || et.test(n) ? o(n, i) : _(n + "[" + ("object" == typeof i ? e : "") + "]", i, t, o);
}); else if (t || "object" !== re.type(e)) o(n, e); else for (i in e) _(n + "[" + i + "]", e[i], t, o);
}
function z(n) {
return function(e, t) {
"string" != typeof e && (t = e, e = "*");
var o, i = 0, r = e.toLowerCase().match(se) || [];
if (re.isFunction(t)) for (;o = r[i++]; ) "+" === o[0] ? (o = o.slice(1) || "*",
(n[o] = n[o] || []).unshift(t)) : (n[o] = n[o] || []).push(t);
};
}
function I(n, e, t, o) {
function i(s) {
var l;
return r[s] = !0, re.each(n[s] || [], function(n, s) {
var c = s(e, t, o);
return "string" != typeof c || a || r[c] ? a ? !(l = c) : void 0 : (e.dataTypes.unshift(c),
i(c), !1);
}), l;
}
var r = {}, a = n === vt;
return i(e.dataTypes[0]) || !r["*"] && i("*");
}
function P(n, t) {
var o, i, r = re.ajaxSettings.flatOptions || {};
for (o in t) t[o] !== e && ((r[o] ? n : i || (i = {}))[o] = t[o]);
return i && re.extend(!0, n, i), n;
}
function $(n, t, o) {
for (var i, r, a, s, l = n.contents, c = n.dataTypes; "*" === c[0]; ) c.shift(),
i === e && (i = n.mimeType || t.getResponseHeader("Content-Type"));
if (i) for (r in l) if (l[r] && l[r].test(i)) {
c.unshift(r);
break;
}
if (c[0] in o) a = c[0]; else {
for (r in o) {
if (!c[0] || n.converters[r + " " + c[0]]) {
a = r;
break;
}
s || (s = r);
}
a = a || s;
}
return a ? (a !== c[0] && c.unshift(a), o[a]) : void 0;
}
function N(n, e, t, o) {
var i, r, a, s, l, c = {}, d = n.dataTypes.slice();
if (d[1]) for (a in n.converters) c[a.toLowerCase()] = n.converters[a];
for (r = d.shift(); r; ) if (n.responseFields[r] && (t[n.responseFields[r]] = e),
!l && o && n.dataFilter && (e = n.dataFilter(e, n.dataType)), l = r, r = d.shift()) if ("*" === r) r = l; else if ("*" !== l && l !== r) {
if (a = c[l + " " + r] || c["* " + r], !a) for (i in c) if (s = i.split(" "), s[1] === r && (a = c[l + " " + s[0]] || c["* " + s[0]])) {
a === !0 ? a = c[i] : c[i] !== !0 && (r = s[0], d.unshift(s[1]));
break;
}
if (a !== !0) if (a && n["throws"]) e = a(e); else try {
e = a(e);
} catch (p) {
return {
state: "parsererror",
error: a ? p : "No conversion from " + l + " to " + r
};
}
}
return {
state: "success",
data: e
};
}
function L() {
return setTimeout(function() {
_t = e;
}), _t = re.now();
}
function R(n, e, t) {
for (var o, i = (Lt[e] || []).concat(Lt["*"]), r = 0, a = i.length; a > r; r++) if (o = i[r].call(t, e, n)) return o;
}
function M(n, e, t) {
var o, i, r = 0, a = Nt.length, s = re.Deferred().always(function() {
delete l.elem;
}), l = function() {
if (i) return !1;
for (var e = _t || L(), t = Math.max(0, c.startTime + c.duration - e), o = t / c.duration || 0, r = 1 - o, a = 0, l = c.tweens.length; l > a; a++) c.tweens[a].run(r);
return s.notifyWith(n, [ c, r, t ]), 1 > r && l ? t : (s.resolveWith(n, [ c ]),
!1);
}, c = s.promise({
elem: n,
props: re.extend({}, e),
opts: re.extend(!0, {
specialEasing: {}
}, t),
originalProperties: e,
originalOptions: t,
startTime: _t || L(),
duration: t.duration,
tweens: [],
createTween: function(e, t) {
var o = re.Tween(n, c.opts, e, t, c.opts.specialEasing[e] || c.opts.easing);
return c.tweens.push(o), o;
},
stop: function(e) {
var t = 0, o = e ? c.tweens.length : 0;
if (i) return this;
for (i = !0; o > t; t++) c.tweens[t].run(1);
return e ? s.resolveWith(n, [ c, e ]) : s.rejectWith(n, [ c, e ]), this;
}
}), d = c.props;
for (A(d, c.opts.specialEasing); a > r; r++) if (o = Nt[r].call(c, n, d, c.opts)) return o;
return re.map(d, R, c), re.isFunction(c.opts.start) && c.opts.start.call(n, c),
re.fx.timer(re.extend(l, {
elem: n,
anim: c,
queue: c.opts.queue
})), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always);
}
function A(n, e) {
var t, o, i, r, a;
for (t in n) if (o = re.camelCase(t), i = e[o], r = n[t], re.isArray(r) && (i = r[1],
r = n[t] = r[0]), t !== o && (n[o] = r, delete n[t]), a = re.cssHooks[o], a && "expand" in a) {
r = a.expand(r), delete n[o];
for (t in r) t in n || (n[t] = r[t], e[t] = i);
} else e[o] = i;
}
function j(n, t, o) {
var i, r, a, s, l, c, d = this, p = {}, u = n.style, f = n.nodeType && x(n), h = be.get(n, "fxshow");
o.queue || (l = re._queueHooks(n, "fx"), null == l.unqueued && (l.unqueued = 0,
c = l.empty.fire, l.empty.fire = function() {
l.unqueued || c();
}), l.unqueued++, d.always(function() {
d.always(function() {
l.unqueued--, re.queue(n, "fx").length || l.empty.fire();
});
})), 1 === n.nodeType && ("height" in t || "width" in t) && (o.overflow = [ u.overflow, u.overflowX, u.overflowY ],
"inline" === re.css(n, "display") && "none" === re.css(n, "float") && (u.display = "inline-block")),
o.overflow && (u.overflow = "hidden", d.always(function() {
u.overflow = o.overflow[0], u.overflowX = o.overflow[1], u.overflowY = o.overflow[2];
}));
for (i in t) if (r = t[i], It.exec(r)) {
if (delete t[i], a = a || "toggle" === r, r === (f ? "hide" : "show")) {
if ("show" !== r || !h || h[i] === e) continue;
f = !0;
}
p[i] = h && h[i] || re.style(n, i);
}
if (!re.isEmptyObject(p)) {
h ? "hidden" in h && (f = h.hidden) : h = be.access(n, "fxshow", {}), a && (h.hidden = !f),
f ? re(n).show() : d.done(function() {
re(n).hide();
}), d.done(function() {
var e;
be.remove(n, "fxshow");
for (e in p) re.style(n, e, p[e]);
});
for (i in p) s = R(f ? h[i] : 0, i, d), i in h || (h[i] = s.start, f && (s.end = s.start,
s.start = "width" === i || "height" === i ? 1 : 0));
}
}
function D(n, e, t, o, i) {
return new D.prototype.init(n, e, t, o, i);
}
function O(n, e) {
var t, o = {
height: n
}, i = 0;
for (e = e ? 1 : 0; 4 > i; i += 2 - e) t = Ze[i], o["margin" + t] = o["padding" + t] = n;
return e && (o.opacity = o.width = n), o;
}
function H(n) {
return re.isWindow(n) ? n : 9 === n.nodeType && n.defaultView;
}
var q, F, B = typeof e, W = n.location, G = n.document, U = G.documentElement, V = n.jQuery, X = n.$, Y = {}, J = [], K = "2.0.3", Z = J.concat, Q = J.push, ne = J.slice, ee = J.indexOf, te = Y.toString, oe = Y.hasOwnProperty, ie = K.trim, re = function(n, e) {
return new re.fn.init(n, e, q);
}, ae = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, se = /\S+/g, le = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, ce = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, de = /^-ms-/, pe = /-([\da-z])/gi, ue = function(n, e) {
return e.toUpperCase();
}, fe = function() {
G.removeEventListener("DOMContentLoaded", fe, !1), n.removeEventListener("load", fe, !1),
re.ready();
};
re.fn = re.prototype = {
jquery: K,
constructor: re,
init: function(n, t, o) {
var i, r;
if (!n) return this;
if ("string" == typeof n) {
if (i = "<" === n.charAt(0) && ">" === n.charAt(n.length - 1) && n.length >= 3 ? [ null, n, null ] : le.exec(n),
!i || !i[1] && t) return !t || t.jquery ? (t || o).find(n) : this.constructor(t).find(n);
if (i[1]) {
if (t = t instanceof re ? t[0] : t, re.merge(this, re.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : G, !0)),
ce.test(i[1]) && re.isPlainObject(t)) for (i in t) re.isFunction(this[i]) ? this[i](t[i]) : this.attr(i, t[i]);
return this;
}
return r = G.getElementById(i[2]), r && r.parentNode && (this.length = 1, this[0] = r),
this.context = G, this.selector = n, this;
}
return n.nodeType ? (this.context = this[0] = n, this.length = 1, this) : re.isFunction(n) ? o.ready(n) : (n.selector !== e && (this.selector = n.selector,
this.context = n.context), re.makeArray(n, this));
},
selector: "",
length: 0,
toArray: function() {
return ne.call(this);
},
get: function(n) {
return null == n ? this.toArray() : 0 > n ? this[this.length + n] : this[n];
},
pushStack: function(n) {
var e = re.merge(this.constructor(), n);
return e.prevObject = this, e.context = this.context, e;
},
each: function(n, e) {
return re.each(this, n, e);
},
ready: function(n) {
return re.ready.promise().done(n), this;
},
slice: function() {
return this.pushStack(ne.apply(this, arguments));
},
first: function() {
return this.eq(0);
},
last: function() {
return this.eq(-1);
},
eq: function(n) {
var e = this.length, t = +n + (0 > n ? e : 0);
return this.pushStack(t >= 0 && e > t ? [ this[t] ] : []);
},
map: function(n) {
return this.pushStack(re.map(this, function(e, t) {
return n.call(e, t, e);
}));
},
end: function() {
return this.prevObject || this.constructor(null);
},
push: Q,
sort: [].sort,
splice: [].splice
}, re.fn.init.prototype = re.fn, re.extend = re.fn.extend = function() {
var n, t, o, i, r, a, s = arguments[0] || {}, l = 1, c = arguments.length, d = !1;
for ("boolean" == typeof s && (d = s, s = arguments[1] || {}, l = 2), "object" == typeof s || re.isFunction(s) || (s = {}),
c === l && (s = this, --l); c > l; l++) if (null != (n = arguments[l])) for (t in n) o = s[t],
i = n[t], s !== i && (d && i && (re.isPlainObject(i) || (r = re.isArray(i))) ? (r ? (r = !1,
a = o && re.isArray(o) ? o : []) : a = o && re.isPlainObject(o) ? o : {}, s[t] = re.extend(d, a, i)) : i !== e && (s[t] = i));
return s;
}, re.extend({
expando: "jQuery" + (K + Math.random()).replace(/\D/g, ""),
noConflict: function(e) {
return n.$ === re && (n.$ = X), e && n.jQuery === re && (n.jQuery = V), re;
},
isReady: !1,
readyWait: 1,
holdReady: function(n) {
n ? re.readyWait++ : re.ready(!0);
},
ready: function(n) {
(n === !0 ? --re.readyWait : re.isReady) || (re.isReady = !0, n !== !0 && --re.readyWait > 0 || (F.resolveWith(G, [ re ]),
re.fn.trigger && re(G).trigger("ready").off("ready")));
},
isFunction: function(n) {
return "function" === re.type(n);
},
isArray: Array.isArray,
isWindow: function(n) {
return null != n && n === n.window;
},
isNumeric: function(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
},
type: function(n) {
return null == n ? String(n) : "object" == typeof n || "function" == typeof n ? Y[te.call(n)] || "object" : typeof n;
},
isPlainObject: function(n) {
if ("object" !== re.type(n) || n.nodeType || re.isWindow(n)) return !1;
try {
if (n.constructor && !oe.call(n.constructor.prototype, "isPrototypeOf")) return !1;
} catch (e) {
return !1;
}
return !0;
},
isEmptyObject: function(n) {
var e;
for (e in n) return !1;
return !0;
},
error: function(n) {
throw new Error(n);
},
parseHTML: function(n, e, t) {
if (!n || "string" != typeof n) return null;
"boolean" == typeof e && (t = e, e = !1), e = e || G;
var o = ce.exec(n), i = !t && [];
return o ? [ e.createElement(o[1]) ] : (o = re.buildFragment([ n ], e, i), i && re(i).remove(),
re.merge([], o.childNodes));
},
parseJSON: JSON.parse,
parseXML: function(n) {
var t, o;
if (!n || "string" != typeof n) return null;
try {
o = new DOMParser(), t = o.parseFromString(n, "text/xml");
} catch (i) {
t = e;
}
return (!t || t.getElementsByTagName("parsererror").length) && re.error("Invalid XML: " + n),
t;
},
noop: function() {},
globalEval: function(n) {
var e, t = eval;
n = re.trim(n), n && (1 === n.indexOf("use strict") ? (e = G.createElement("script"),
e.text = n, G.head.appendChild(e).parentNode.removeChild(e)) : t(n));
},
camelCase: function(n) {
return n.replace(de, "ms-").replace(pe, ue);
},
nodeName: function(n, e) {
return n.nodeName && n.nodeName.toLowerCase() === e.toLowerCase();
},
each: function(n, e, o) {
var i, r = 0, a = n.length, s = t(n);
if (o) {
if (s) for (;a > r && (i = e.apply(n[r], o), i !== !1); r++) ; else for (r in n) if (i = e.apply(n[r], o),
i === !1) break;
} else if (s) for (;a > r && (i = e.call(n[r], r, n[r]), i !== !1); r++) ; else for (r in n) if (i = e.call(n[r], r, n[r]),
i === !1) break;
return n;
},
trim: function(n) {
return null == n ? "" : ie.call(n);
},
makeArray: function(n, e) {
var o = e || [];
return null != n && (t(Object(n)) ? re.merge(o, "string" == typeof n ? [ n ] : n) : Q.call(o, n)),
o;
},
inArray: function(n, e, t) {
return null == e ? -1 : ee.call(e, n, t);
},
merge: function(n, t) {
var o = t.length, i = n.length, r = 0;
if ("number" == typeof o) for (;o > r; r++) n[i++] = t[r]; else for (;t[r] !== e; ) n[i++] = t[r++];
return n.length = i, n;
},
grep: function(n, e, t) {
var o, i = [], r = 0, a = n.length;
for (t = !!t; a > r; r++) o = !!e(n[r], r), t !== o && i.push(n[r]);
return i;
},
map: function(n, e, o) {
var i, r = 0, a = n.length, s = t(n), l = [];
if (s) for (;a > r; r++) i = e(n[r], r, o), null != i && (l[l.length] = i); else for (r in n) i = e(n[r], r, o),
null != i && (l[l.length] = i);
return Z.apply([], l);
},
guid: 1,
proxy: function(n, t) {
var o, i, r;
return "string" == typeof t && (o = n[t], t = n, n = o), re.isFunction(n) ? (i = ne.call(arguments, 2),
r = function() {
return n.apply(t || this, i.concat(ne.call(arguments)));
}, r.guid = n.guid = n.guid || re.guid++, r) : e;
},
access: function(n, t, o, i, r, a, s) {
var l = 0, c = n.length, d = null == o;
if ("object" === re.type(o)) {
r = !0;
for (l in o) re.access(n, t, l, o[l], !0, a, s);
} else if (i !== e && (r = !0, re.isFunction(i) || (s = !0), d && (s ? (t.call(n, i),
t = null) : (d = t, t = function(n, e, t) {
return d.call(re(n), t);
})), t)) for (;c > l; l++) t(n[l], o, s ? i : i.call(n[l], l, t(n[l], o)));
return r ? n : d ? t.call(n) : c ? t(n[0], o) : a;
},
now: Date.now,
swap: function(n, e, t, o) {
var i, r, a = {};
for (r in e) a[r] = n.style[r], n.style[r] = e[r];
i = t.apply(n, o || []);
for (r in e) n.style[r] = a[r];
return i;
}
}), re.ready.promise = function(e) {
return F || (F = re.Deferred(), "complete" === G.readyState ? setTimeout(re.ready) : (G.addEventListener("DOMContentLoaded", fe, !1),
n.addEventListener("load", fe, !1))), F.promise(e);
}, re.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(n, e) {
Y["[object " + e + "]"] = e.toLowerCase();
}), q = re(G), function(n, e) {
function t(n, e, t, o) {
var i, r, a, s, l, c, d, p, h, g;
if ((e ? e.ownerDocument || e : H) !== N && $(e), e = e || N, t = t || [], !n || "string" != typeof n) return t;
if (1 !== (s = e.nodeType) && 9 !== s) return [];
if (R && !o) {
if (i = xe.exec(n)) if (a = i[1]) {
if (9 === s) {
if (r = e.getElementById(a), !r || !r.parentNode) return t;
if (r.id === a) return t.push(r), t;
} else if (e.ownerDocument && (r = e.ownerDocument.getElementById(a)) && D(e, r) && r.id === a) return t.push(r),
t;
} else {
if (i[2]) return ne.apply(t, e.getElementsByTagName(n)), t;
if ((a = i[3]) && C.getElementsByClassName && e.getElementsByClassName) return ne.apply(t, e.getElementsByClassName(a)),
t;
}
if (C.qsa && (!M || !M.test(n))) {
if (p = d = O, h = e, g = 9 === s && n, 1 === s && "object" !== e.nodeName.toLowerCase()) {
for (c = u(n), (d = e.getAttribute("id")) ? p = d.replace(ke, "\\$&") : e.setAttribute("id", p),
p = "[id='" + p + "'] ", l = c.length; l--; ) c[l] = p + f(c[l]);
h = fe.test(n) && e.parentNode || e, g = c.join(",");
}
if (g) try {
return ne.apply(t, h.querySelectorAll(g)), t;
} catch (b) {} finally {
d || e.removeAttribute("id");
}
}
}
return w(n.replace(de, "$1"), e, t, o);
}
function o() {
function n(t, o) {
return e.push(t += " ") > T.cacheLength && delete n[e.shift()], n[t] = o;
}
var e = [];
return n;
}
function i(n) {
return n[O] = !0, n;
}
function r(n) {
var e = N.createElement("div");
try {
return !!n(e);
} catch (t) {
return !1;
} finally {
e.parentNode && e.parentNode.removeChild(e), e = null;
}
}
function a(n, e) {
for (var t = n.split("|"), o = n.length; o--; ) T.attrHandle[t[o]] = e;
}
function s(n, e) {
var t = e && n, o = t && 1 === n.nodeType && 1 === e.nodeType && (~e.sourceIndex || Y) - (~n.sourceIndex || Y);
if (o) return o;
if (t) for (;t = t.nextSibling; ) if (t === e) return -1;
return n ? 1 : -1;
}
function l(n) {
return function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && e.type === n;
};
}
function c(n) {
return function(e) {
var t = e.nodeName.toLowerCase();
return ("input" === t || "button" === t) && e.type === n;
};
}
function d(n) {
return i(function(e) {
return e = +e, i(function(t, o) {
for (var i, r = n([], t.length, e), a = r.length; a--; ) t[i = r[a]] && (t[i] = !(o[i] = t[i]));
});
});
}
function p() {}
function u(n, e) {
var o, i, r, a, s, l, c, d = W[n + " "];
if (d) return e ? 0 : d.slice(0);
for (s = n, l = [], c = T.preFilter; s; ) {
(!o || (i = pe.exec(s))) && (i && (s = s.slice(i[0].length) || s), l.push(r = [])),
o = !1, (i = ue.exec(s)) && (o = i.shift(), r.push({
value: o,
type: i[0].replace(de, " ")
}), s = s.slice(o.length));
for (a in T.filter) !(i = me[a].exec(s)) || c[a] && !(i = c[a](i)) || (o = i.shift(),
r.push({
value: o,
type: a,
matches: i
}), s = s.slice(o.length));
if (!o) break;
}
return e ? s.length : s ? t.error(n) : W(n, l).slice(0);
}
function f(n) {
for (var e = 0, t = n.length, o = ""; t > e; e++) o += n[e].value;
return o;
}
function h(n, e, t) {
var o = e.dir, i = t && "parentNode" === o, r = F++;
return e.first ? function(e, t, r) {
for (;e = e[o]; ) if (1 === e.nodeType || i) return n(e, t, r);
} : function(e, t, a) {
var s, l, c, d = q + " " + r;
if (a) {
for (;e = e[o]; ) if ((1 === e.nodeType || i) && n(e, t, a)) return !0;
} else for (;e = e[o]; ) if (1 === e.nodeType || i) if (c = e[O] || (e[O] = {}),
(l = c[o]) && l[0] === d) {
if ((s = l[1]) === !0 || s === S) return s === !0;
} else if (l = c[o] = [ d ], l[1] = n(e, t, a) || S, l[1] === !0) return !0;
};
}
function g(n) {
return n.length > 1 ? function(e, t, o) {
for (var i = n.length; i--; ) if (!n[i](e, t, o)) return !1;
return !0;
} : n[0];
}
function b(n, e, t, o, i) {
for (var r, a = [], s = 0, l = n.length, c = null != e; l > s; s++) (r = n[s]) && (!t || t(r, o, i)) && (a.push(r),
c && e.push(s));
return a;
}
function m(n, e, t, o, r, a) {
return o && !o[O] && (o = m(o)), r && !r[O] && (r = m(r, a)), i(function(i, a, s, l) {
var c, d, p, u = [], f = [], h = a.length, g = i || y(e || "*", s.nodeType ? [ s ] : s, []), m = !n || !i && e ? g : b(g, u, n, s, l), v = t ? r || (i ? n : h || o) ? [] : a : m;
if (t && t(m, v, s, l), o) for (c = b(v, f), o(c, [], s, l), d = c.length; d--; ) (p = c[d]) && (v[f[d]] = !(m[f[d]] = p));
if (i) {
if (r || n) {
if (r) {
for (c = [], d = v.length; d--; ) (p = v[d]) && c.push(m[d] = p);
r(null, v = [], c, l);
}
for (d = v.length; d--; ) (p = v[d]) && (c = r ? te.call(i, p) : u[d]) > -1 && (i[c] = !(a[c] = p));
}
} else v = b(v === a ? v.splice(h, v.length) : v), r ? r(null, a, v, l) : ne.apply(a, v);
});
}
function v(n) {
for (var e, t, o, i = n.length, r = T.relative[n[0].type], a = r || T.relative[" "], s = r ? 1 : 0, l = h(function(n) {
return n === e;
}, a, !0), c = h(function(n) {
return te.call(e, n) > -1;
}, a, !0), d = [ function(n, t, o) {
return !r && (o || t !== I) || ((e = t).nodeType ? l(n, t, o) : c(n, t, o));
} ]; i > s; s++) if (t = T.relative[n[s].type]) d = [ h(g(d), t) ]; else {
if (t = T.filter[n[s].type].apply(null, n[s].matches), t[O]) {
for (o = ++s; i > o && !T.relative[n[o].type]; o++) ;
return m(s > 1 && g(d), s > 1 && f(n.slice(0, s - 1).concat({
value: " " === n[s - 2].type ? "*" : ""
})).replace(de, "$1"), t, o > s && v(n.slice(s, o)), i > o && v(n = n.slice(o)), i > o && f(n));
}
d.push(t);
}
return g(d);
}
function x(n, e) {
var o = 0, r = e.length > 0, a = n.length > 0, s = function(i, s, l, c, d) {
var p, u, f, h = [], g = 0, m = "0", v = i && [], x = null != d, y = I, w = i || a && T.find.TAG("*", d && s.parentNode || s), k = q += null == y ? 1 : Math.random() || .1;
for (x && (I = s !== N && s, S = o); null != (p = w[m]); m++) {
if (a && p) {
for (u = 0; f = n[u++]; ) if (f(p, s, l)) {
c.push(p);
break;
}
x && (q = k, S = ++o);
}
r && ((p = !f && p) && g--, i && v.push(p));
}
if (g += m, r && m !== g) {
for (u = 0; f = e[u++]; ) f(v, h, s, l);
if (i) {
if (g > 0) for (;m--; ) v[m] || h[m] || (h[m] = Z.call(c));
h = b(h);
}
ne.apply(c, h), x && !i && h.length > 0 && g + e.length > 1 && t.uniqueSort(c);
}
return x && (q = k, I = y), v;
};
return r ? i(s) : s;
}
function y(n, e, o) {
for (var i = 0, r = e.length; r > i; i++) t(n, e[i], o);
return o;
}
function w(n, e, t, o) {
var i, r, a, s, l, c = u(n);
if (!o && 1 === c.length) {
if (r = c[0] = c[0].slice(0), r.length > 2 && "ID" === (a = r[0]).type && C.getById && 9 === e.nodeType && R && T.relative[r[1].type]) {
if (e = (T.find.ID(a.matches[0].replace(Ce, Se), e) || [])[0], !e) return t;
n = n.slice(r.shift().value.length);
}
for (i = me.needsContext.test(n) ? 0 : r.length; i-- && (a = r[i], !T.relative[s = a.type]); ) if ((l = T.find[s]) && (o = l(a.matches[0].replace(Ce, Se), fe.test(r[0].type) && e.parentNode || e))) {
if (r.splice(i, 1), n = o.length && f(r), !n) return ne.apply(t, o), t;
break;
}
}
return z(n, c)(o, e, !R, t, fe.test(n)), t;
}
var k, C, S, T, E, _, z, I, P, $, N, L, R, M, A, j, D, O = "sizzle" + -new Date(), H = n.document, q = 0, F = 0, B = o(), W = o(), G = o(), U = !1, V = function(n, e) {
return n === e ? (U = !0, 0) : 0;
}, X = typeof e, Y = 1 << 31, J = {}.hasOwnProperty, K = [], Z = K.pop, Q = K.push, ne = K.push, ee = K.slice, te = K.indexOf || function(n) {
for (var e = 0, t = this.length; t > e; e++) if (this[e] === n) return e;
return -1;
}, oe = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", ie = "[\\x20\\t\\r\\n\\f]", ae = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", se = ae.replace("w", "w#"), le = "\\[" + ie + "*(" + ae + ")" + ie + "*(?:([*^$|!~]?=)" + ie + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + se + ")|)|)" + ie + "*\\]", ce = ":(" + ae + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + le.replace(3, 8) + ")*)|.*)\\)|)", de = new RegExp("^" + ie + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ie + "+$", "g"), pe = new RegExp("^" + ie + "*," + ie + "*"), ue = new RegExp("^" + ie + "*([>+~]|" + ie + ")" + ie + "*"), fe = new RegExp(ie + "*[+~]"), he = new RegExp("=" + ie + "*([^\\]'\"]*)" + ie + "*\\]", "g"), ge = new RegExp(ce), be = new RegExp("^" + se + "$"), me = {
ID: new RegExp("^#(" + ae + ")"),
CLASS: new RegExp("^\\.(" + ae + ")"),
TAG: new RegExp("^(" + ae.replace("w", "w*") + ")"),
ATTR: new RegExp("^" + le),
PSEUDO: new RegExp("^" + ce),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ie + "*(even|odd|(([+-]|)(\\d*)n|)" + ie + "*(?:([+-]|)" + ie + "*(\\d+)|))" + ie + "*\\)|)", "i"),
bool: new RegExp("^(?:" + oe + ")$", "i"),
needsContext: new RegExp("^" + ie + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ie + "*((?:-\\d)?\\d*)" + ie + "*\\)|)(?=[^-]|$)", "i")
}, ve = /^[^{]+\{\s*\[native \w/, xe = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ye = /^(?:input|select|textarea|button)$/i, we = /^h\d$/i, ke = /'|\\/g, Ce = new RegExp("\\\\([\\da-f]{1,6}" + ie + "?|(" + ie + ")|.)", "ig"), Se = function(n, e, t) {
var o = "0x" + e - 65536;
return o !== o || t ? e : 0 > o ? String.fromCharCode(o + 65536) : String.fromCharCode(55296 | o >> 10, 56320 | 1023 & o);
};
try {
ne.apply(K = ee.call(H.childNodes), H.childNodes), K[H.childNodes.length].nodeType;
} catch (Te) {
ne = {
apply: K.length ? function(n, e) {
Q.apply(n, ee.call(e));
} : function(n, e) {
for (var t = n.length, o = 0; n[t++] = e[o++]; ) ;
n.length = t - 1;
}
};
}
_ = t.isXML = function(n) {
var e = n && (n.ownerDocument || n).documentElement;
return e ? "HTML" !== e.nodeName : !1;
}, C = t.support = {}, $ = t.setDocument = function(n) {
var e = n ? n.ownerDocument || n : H, t = e.defaultView;
return e !== N && 9 === e.nodeType && e.documentElement ? (N = e, L = e.documentElement,
R = !_(e), t && t.attachEvent && t !== t.top && t.attachEvent("onbeforeunload", function() {
$();
}), C.attributes = r(function(n) {
return n.className = "i", !n.getAttribute("className");
}), C.getElementsByTagName = r(function(n) {
return n.appendChild(e.createComment("")), !n.getElementsByTagName("*").length;
}), C.getElementsByClassName = r(function(n) {
return n.innerHTML = "<div class='a'></div><div class='a i'></div>", n.firstChild.className = "i",
2 === n.getElementsByClassName("i").length;
}), C.getById = r(function(n) {
return L.appendChild(n).id = O, !e.getElementsByName || !e.getElementsByName(O).length;
}), C.getById ? (T.find.ID = function(n, e) {
if (typeof e.getElementById !== X && R) {
var t = e.getElementById(n);
return t && t.parentNode ? [ t ] : [];
}
}, T.filter.ID = function(n) {
var e = n.replace(Ce, Se);
return function(n) {
return n.getAttribute("id") === e;
};
}) : (delete T.find.ID, T.filter.ID = function(n) {
var e = n.replace(Ce, Se);
return function(n) {
var t = typeof n.getAttributeNode !== X && n.getAttributeNode("id");
return t && t.value === e;
};
}), T.find.TAG = C.getElementsByTagName ? function(n, e) {
return typeof e.getElementsByTagName !== X ? e.getElementsByTagName(n) : void 0;
} : function(n, e) {
var t, o = [], i = 0, r = e.getElementsByTagName(n);
if ("*" === n) {
for (;t = r[i++]; ) 1 === t.nodeType && o.push(t);
return o;
}
return r;
}, T.find.CLASS = C.getElementsByClassName && function(n, e) {
return typeof e.getElementsByClassName !== X && R ? e.getElementsByClassName(n) : void 0;
}, A = [], M = [], (C.qsa = ve.test(e.querySelectorAll)) && (r(function(n) {
n.innerHTML = "<select><option selected=''></option></select>", n.querySelectorAll("[selected]").length || M.push("\\[" + ie + "*(?:value|" + oe + ")"),
n.querySelectorAll(":checked").length || M.push(":checked");
}), r(function(n) {
var t = e.createElement("input");
t.setAttribute("type", "hidden"), n.appendChild(t).setAttribute("t", ""), n.querySelectorAll("[t^='']").length && M.push("[*^$]=" + ie + "*(?:''|\"\")"),
n.querySelectorAll(":enabled").length || M.push(":enabled", ":disabled"), n.querySelectorAll("*,:x"),
M.push(",.*:");
})), (C.matchesSelector = ve.test(j = L.webkitMatchesSelector || L.mozMatchesSelector || L.oMatchesSelector || L.msMatchesSelector)) && r(function(n) {
C.disconnectedMatch = j.call(n, "div"), j.call(n, "[s!='']:x"), A.push("!=", ce);
}), M = M.length && new RegExp(M.join("|")), A = A.length && new RegExp(A.join("|")),
D = ve.test(L.contains) || L.compareDocumentPosition ? function(n, e) {
var t = 9 === n.nodeType ? n.documentElement : n, o = e && e.parentNode;
return n === o || !(!o || 1 !== o.nodeType || !(t.contains ? t.contains(o) : n.compareDocumentPosition && 16 & n.compareDocumentPosition(o)));
} : function(n, e) {
if (e) for (;e = e.parentNode; ) if (e === n) return !0;
return !1;
}, V = L.compareDocumentPosition ? function(n, t) {
if (n === t) return U = !0, 0;
var o = t.compareDocumentPosition && n.compareDocumentPosition && n.compareDocumentPosition(t);
return o ? 1 & o || !C.sortDetached && t.compareDocumentPosition(n) === o ? n === e || D(H, n) ? -1 : t === e || D(H, t) ? 1 : P ? te.call(P, n) - te.call(P, t) : 0 : 4 & o ? -1 : 1 : n.compareDocumentPosition ? -1 : 1;
} : function(n, t) {
var o, i = 0, r = n.parentNode, a = t.parentNode, l = [ n ], c = [ t ];
if (n === t) return U = !0, 0;
if (!r || !a) return n === e ? -1 : t === e ? 1 : r ? -1 : a ? 1 : P ? te.call(P, n) - te.call(P, t) : 0;
if (r === a) return s(n, t);
for (o = n; o = o.parentNode; ) l.unshift(o);
for (o = t; o = o.parentNode; ) c.unshift(o);
for (;l[i] === c[i]; ) i++;
return i ? s(l[i], c[i]) : l[i] === H ? -1 : c[i] === H ? 1 : 0;
}, e) : N;
}, t.matches = function(n, e) {
return t(n, null, null, e);
}, t.matchesSelector = function(n, e) {
if ((n.ownerDocument || n) !== N && $(n), e = e.replace(he, "='$1']"), !(!C.matchesSelector || !R || A && A.test(e) || M && M.test(e))) try {
var o = j.call(n, e);
if (o || C.disconnectedMatch || n.document && 11 !== n.document.nodeType) return o;
} catch (i) {}
return t(e, N, null, [ n ]).length > 0;
}, t.contains = function(n, e) {
return (n.ownerDocument || n) !== N && $(n), D(n, e);
}, t.attr = function(n, t) {
(n.ownerDocument || n) !== N && $(n);
var o = T.attrHandle[t.toLowerCase()], i = o && J.call(T.attrHandle, t.toLowerCase()) ? o(n, t, !R) : e;
return i === e ? C.attributes || !R ? n.getAttribute(t) : (i = n.getAttributeNode(t)) && i.specified ? i.value : null : i;
}, t.error = function(n) {
throw new Error("Syntax error, unrecognized expression: " + n);
}, t.uniqueSort = function(n) {
var e, t = [], o = 0, i = 0;
if (U = !C.detectDuplicates, P = !C.sortStable && n.slice(0), n.sort(V), U) {
for (;e = n[i++]; ) e === n[i] && (o = t.push(i));
for (;o--; ) n.splice(t[o], 1);
}
return n;
}, E = t.getText = function(n) {
var e, t = "", o = 0, i = n.nodeType;
if (i) {
if (1 === i || 9 === i || 11 === i) {
if ("string" == typeof n.textContent) return n.textContent;
for (n = n.firstChild; n; n = n.nextSibling) t += E(n);
} else if (3 === i || 4 === i) return n.nodeValue;
} else for (;e = n[o]; o++) t += E(e);
return t;
}, T = t.selectors = {
cacheLength: 50,
createPseudo: i,
match: me,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(n) {
return n[1] = n[1].replace(Ce, Se), n[3] = (n[4] || n[5] || "").replace(Ce, Se),
"~=" === n[2] && (n[3] = " " + n[3] + " "), n.slice(0, 4);
},
CHILD: function(n) {
return n[1] = n[1].toLowerCase(), "nth" === n[1].slice(0, 3) ? (n[3] || t.error(n[0]),
n[4] = +(n[4] ? n[5] + (n[6] || 1) : 2 * ("even" === n[3] || "odd" === n[3])), n[5] = +(n[7] + n[8] || "odd" === n[3])) : n[3] && t.error(n[0]),
n;
},
PSEUDO: function(n) {
var t, o = !n[5] && n[2];
return me.CHILD.test(n[0]) ? null : (n[3] && n[4] !== e ? n[2] = n[4] : o && ge.test(o) && (t = u(o, !0)) && (t = o.indexOf(")", o.length - t) - o.length) && (n[0] = n[0].slice(0, t),
n[2] = o.slice(0, t)), n.slice(0, 3));
}
},
filter: {
TAG: function(n) {
var e = n.replace(Ce, Se).toLowerCase();
return "*" === n ? function() {
return !0;
} : function(n) {
return n.nodeName && n.nodeName.toLowerCase() === e;
};
},
CLASS: function(n) {
var e = B[n + " "];
return e || (e = new RegExp("(^|" + ie + ")" + n + "(" + ie + "|$)")) && B(n, function(n) {
return e.test("string" == typeof n.className && n.className || typeof n.getAttribute !== X && n.getAttribute("class") || "");
});
},
ATTR: function(n, e, o) {
return function(i) {
var r = t.attr(i, n);
return null == r ? "!=" === e : e ? (r += "", "=" === e ? r === o : "!=" === e ? r !== o : "^=" === e ? o && 0 === r.indexOf(o) : "*=" === e ? o && r.indexOf(o) > -1 : "$=" === e ? o && r.slice(-o.length) === o : "~=" === e ? (" " + r + " ").indexOf(o) > -1 : "|=" === e ? r === o || r.slice(0, o.length + 1) === o + "-" : !1) : !0;
};
},
CHILD: function(n, e, t, o, i) {
var r = "nth" !== n.slice(0, 3), a = "last" !== n.slice(-4), s = "of-type" === e;
return 1 === o && 0 === i ? function(n) {
return !!n.parentNode;
} : function(e, t, l) {
var c, d, p, u, f, h, g = r !== a ? "nextSibling" : "previousSibling", b = e.parentNode, m = s && e.nodeName.toLowerCase(), v = !l && !s;
if (b) {
if (r) {
for (;g; ) {
for (p = e; p = p[g]; ) if (s ? p.nodeName.toLowerCase() === m : 1 === p.nodeType) return !1;
h = g = "only" === n && !h && "nextSibling";
}
return !0;
}
if (h = [ a ? b.firstChild : b.lastChild ], a && v) {
for (d = b[O] || (b[O] = {}), c = d[n] || [], f = c[0] === q && c[1], u = c[0] === q && c[2],
p = f && b.childNodes[f]; p = ++f && p && p[g] || (u = f = 0) || h.pop(); ) if (1 === p.nodeType && ++u && p === e) {
d[n] = [ q, f, u ];
break;
}
} else if (v && (c = (e[O] || (e[O] = {}))[n]) && c[0] === q) u = c[1]; else for (;(p = ++f && p && p[g] || (u = f = 0) || h.pop()) && ((s ? p.nodeName.toLowerCase() !== m : 1 !== p.nodeType) || !++u || (v && ((p[O] || (p[O] = {}))[n] = [ q, u ]),
p !== e)); ) ;
return u -= i, u === o || 0 === u % o && u / o >= 0;
}
};
},
PSEUDO: function(n, e) {
var o, r = T.pseudos[n] || T.setFilters[n.toLowerCase()] || t.error("unsupported pseudo: " + n);
return r[O] ? r(e) : r.length > 1 ? (o = [ n, n, "", e ], T.setFilters.hasOwnProperty(n.toLowerCase()) ? i(function(n, t) {
for (var o, i = r(n, e), a = i.length; a--; ) o = te.call(n, i[a]), n[o] = !(t[o] = i[a]);
}) : function(n) {
return r(n, 0, o);
}) : r;
}
},
pseudos: {
not: i(function(n) {
var e = [], t = [], o = z(n.replace(de, "$1"));
return o[O] ? i(function(n, e, t, i) {
for (var r, a = o(n, null, i, []), s = n.length; s--; ) (r = a[s]) && (n[s] = !(e[s] = r));
}) : function(n, i, r) {
return e[0] = n, o(e, null, r, t), !t.pop();
};
}),
has: i(function(n) {
return function(e) {
return t(n, e).length > 0;
};
}),
contains: i(function(n) {
return function(e) {
return (e.textContent || e.innerText || E(e)).indexOf(n) > -1;
};
}),
lang: i(function(n) {
return be.test(n || "") || t.error("unsupported lang: " + n), n = n.replace(Ce, Se).toLowerCase(),
function(e) {
var t;
do if (t = R ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return t = t.toLowerCase(),
t === n || 0 === t.indexOf(n + "-"); while ((e = e.parentNode) && 1 === e.nodeType);
return !1;
};
}),
target: function(e) {
var t = n.location && n.location.hash;
return t && t.slice(1) === e.id;
},
root: function(n) {
return n === L;
},
focus: function(n) {
return n === N.activeElement && (!N.hasFocus || N.hasFocus()) && !!(n.type || n.href || ~n.tabIndex);
},
enabled: function(n) {
return n.disabled === !1;
},
disabled: function(n) {
return n.disabled === !0;
},
checked: function(n) {
var e = n.nodeName.toLowerCase();
return "input" === e && !!n.checked || "option" === e && !!n.selected;
},
selected: function(n) {
return n.parentNode && n.parentNode.selectedIndex, n.selected === !0;
},
empty: function(n) {
for (n = n.firstChild; n; n = n.nextSibling) if (n.nodeName > "@" || 3 === n.nodeType || 4 === n.nodeType) return !1;
return !0;
},
parent: function(n) {
return !T.pseudos.empty(n);
},
header: function(n) {
return we.test(n.nodeName);
},
input: function(n) {
return ye.test(n.nodeName);
},
button: function(n) {
var e = n.nodeName.toLowerCase();
return "input" === e && "button" === n.type || "button" === e;
},
text: function(n) {
var e;
return "input" === n.nodeName.toLowerCase() && "text" === n.type && (null == (e = n.getAttribute("type")) || e.toLowerCase() === n.type);
},
first: d(function() {
return [ 0 ];
}),
last: d(function(n, e) {
return [ e - 1 ];
}),
eq: d(function(n, e, t) {
return [ 0 > t ? t + e : t ];
}),
even: d(function(n, e) {
for (var t = 0; e > t; t += 2) n.push(t);
return n;
}),
odd: d(function(n, e) {
for (var t = 1; e > t; t += 2) n.push(t);
return n;
}),
lt: d(function(n, e, t) {
for (var o = 0 > t ? t + e : t; --o >= 0; ) n.push(o);
return n;
}),
gt: d(function(n, e, t) {
for (var o = 0 > t ? t + e : t; ++o < e; ) n.push(o);
return n;
})
}
}, T.pseudos.nth = T.pseudos.eq;
for (k in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) T.pseudos[k] = l(k);
for (k in {
submit: !0,
reset: !0
}) T.pseudos[k] = c(k);
p.prototype = T.filters = T.pseudos, T.setFilters = new p(), z = t.compile = function(n, e) {
var t, o = [], i = [], r = G[n + " "];
if (!r) {
for (e || (e = u(n)), t = e.length; t--; ) r = v(e[t]), r[O] ? o.push(r) : i.push(r);
r = G(n, x(i, o));
}
return r;
}, C.sortStable = O.split("").sort(V).join("") === O, C.detectDuplicates = U, $(),
C.sortDetached = r(function(n) {
return 1 & n.compareDocumentPosition(N.createElement("div"));
}), r(function(n) {
return n.innerHTML = "<a href='#'></a>", "#" === n.firstChild.getAttribute("href");
}) || a("type|href|height|width", function(n, e, t) {
return t ? void 0 : n.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2);
}), C.attributes && r(function(n) {
return n.innerHTML = "<input/>", n.firstChild.setAttribute("value", ""), "" === n.firstChild.getAttribute("value");
}) || a("value", function(n, e, t) {
return t || "input" !== n.nodeName.toLowerCase() ? void 0 : n.defaultValue;
}), r(function(n) {
return null == n.getAttribute("disabled");
}) || a(oe, function(n, e, t) {
var o;
return t ? void 0 : (o = n.getAttributeNode(e)) && o.specified ? o.value : n[e] === !0 ? e.toLowerCase() : null;
}), re.find = t, re.expr = t.selectors, re.expr[":"] = re.expr.pseudos, re.unique = t.uniqueSort,
re.text = t.getText, re.isXMLDoc = t.isXML, re.contains = t.contains;
}(n);
var he = {};
re.Callbacks = function(n) {
n = "string" == typeof n ? he[n] || o(n) : re.extend({}, n);
var t, i, r, a, s, l, c = [], d = !n.once && [], p = function(e) {
for (t = n.memory && e, i = !0, l = a || 0, a = 0, s = c.length, r = !0; c && s > l; l++) if (c[l].apply(e[0], e[1]) === !1 && n.stopOnFalse) {
t = !1;
break;
}
r = !1, c && (d ? d.length && p(d.shift()) : t ? c = [] : u.disable());
}, u = {
add: function() {
if (c) {
var e = c.length;
(function o(e) {
re.each(e, function(e, t) {
var i = re.type(t);
"function" === i ? n.unique && u.has(t) || c.push(t) : t && t.length && "string" !== i && o(t);
});
})(arguments), r ? s = c.length : t && (a = e, p(t));
}
return this;
},
remove: function() {
return c && re.each(arguments, function(n, e) {
for (var t; (t = re.inArray(e, c, t)) > -1; ) c.splice(t, 1), r && (s >= t && s--,
l >= t && l--);
}), this;
},
has: function(n) {
return n ? re.inArray(n, c) > -1 : !(!c || !c.length);
},
empty: function() {
return c = [], s = 0, this;
},
disable: function() {
return c = d = t = e, this;
},
disabled: function() {
return !c;
},
lock: function() {
return d = e, t || u.disable(), this;
},
locked: function() {
return !d;
},
fireWith: function(n, e) {
return !c || i && !d || (e = e || [], e = [ n, e.slice ? e.slice() : e ], r ? d.push(e) : p(e)),
this;
},
fire: function() {
return u.fireWith(this, arguments), this;
},
fired: function() {
return !!i;
}
};
return u;
}, re.extend({
Deferred: function(n) {
var e = [ [ "resolve", "done", re.Callbacks("once memory"), "resolved" ], [ "reject", "fail", re.Callbacks("once memory"), "rejected" ], [ "notify", "progress", re.Callbacks("memory") ] ], t = "pending", o = {
state: function() {
return t;
},
always: function() {
return i.done(arguments).fail(arguments), this;
},
then: function() {
var n = arguments;
return re.Deferred(function(t) {
re.each(e, function(e, r) {
var a = r[0], s = re.isFunction(n[e]) && n[e];
i[r[1]](function() {
var n = s && s.apply(this, arguments);
n && re.isFunction(n.promise) ? n.promise().done(t.resolve).fail(t.reject).progress(t.notify) : t[a + "With"](this === o ? t.promise() : this, s ? [ n ] : arguments);
});
}), n = null;
}).promise();
},
promise: function(n) {
return null != n ? re.extend(n, o) : o;
}
}, i = {};
return o.pipe = o.then, re.each(e, function(n, r) {
var a = r[2], s = r[3];
o[r[1]] = a.add, s && a.add(function() {
t = s;
}, e[1 ^ n][2].disable, e[2][2].lock), i[r[0]] = function() {
return i[r[0] + "With"](this === i ? o : this, arguments), this;
}, i[r[0] + "With"] = a.fireWith;
}), o.promise(i), n && n.call(i, i), i;
},
when: function(n) {
var e, t, o, i = 0, r = ne.call(arguments), a = r.length, s = 1 !== a || n && re.isFunction(n.promise) ? a : 0, l = 1 === s ? n : re.Deferred(), c = function(n, t, o) {
return function(i) {
t[n] = this, o[n] = arguments.length > 1 ? ne.call(arguments) : i, o === e ? l.notifyWith(t, o) : --s || l.resolveWith(t, o);
};
};
if (a > 1) for (e = new Array(a), t = new Array(a), o = new Array(a); a > i; i++) r[i] && re.isFunction(r[i].promise) ? r[i].promise().done(c(i, o, r)).fail(l.reject).progress(c(i, t, e)) : --s;
return s || l.resolveWith(o, r), l.promise();
}
}), re.support = function(e) {
var t = G.createElement("input"), o = G.createDocumentFragment(), i = G.createElement("div"), r = G.createElement("select"), a = r.appendChild(G.createElement("option"));
return t.type ? (t.type = "checkbox", e.checkOn = "" !== t.value, e.optSelected = a.selected,
e.reliableMarginRight = !0, e.boxSizingReliable = !0, e.pixelPosition = !1, t.checked = !0,
e.noCloneChecked = t.cloneNode(!0).checked, r.disabled = !0, e.optDisabled = !a.disabled,
t = G.createElement("input"), t.value = "t", t.type = "radio", e.radioValue = "t" === t.value,
t.setAttribute("checked", "t"), t.setAttribute("name", "t"), o.appendChild(t), e.checkClone = o.cloneNode(!0).cloneNode(!0).lastChild.checked,
e.focusinBubbles = "onfocusin" in n, i.style.backgroundClip = "content-box", i.cloneNode(!0).style.backgroundClip = "",
e.clearCloneStyle = "content-box" === i.style.backgroundClip, re(function() {
var t, o, r = "padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box", a = G.getElementsByTagName("body")[0];
a && (t = G.createElement("div"), t.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",
a.appendChild(t).appendChild(i), i.innerHTML = "", i.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",
re.swap(a, null != a.style.zoom ? {
zoom: 1
} : {}, function() {
e.boxSizing = 4 === i.offsetWidth;
}), n.getComputedStyle && (e.pixelPosition = "1%" !== (n.getComputedStyle(i, null) || {}).top,
e.boxSizingReliable = "4px" === (n.getComputedStyle(i, null) || {
width: "4px"
}).width, o = i.appendChild(G.createElement("div")), o.style.cssText = i.style.cssText = r,
o.style.marginRight = o.style.width = "0", i.style.width = "1px", e.reliableMarginRight = !parseFloat((n.getComputedStyle(o, null) || {}).marginRight)),
a.removeChild(t));
}), e) : e;
}({});
var ge, be, me = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, ve = /([A-Z])/g;
i.uid = 1, i.accepts = function(n) {
return n.nodeType ? 1 === n.nodeType || 9 === n.nodeType : !0;
}, i.prototype = {
key: function(n) {
if (!i.accepts(n)) return 0;
var e = {}, t = n[this.expando];
if (!t) {
t = i.uid++;
try {
e[this.expando] = {
value: t
}, Object.defineProperties(n, e);
} catch (o) {
e[this.expando] = t, re.extend(n, e);
}
}
return this.cache[t] || (this.cache[t] = {}), t;
},
set: function(n, e, t) {
var o, i = this.key(n), r = this.cache[i];
if ("string" == typeof e) r[e] = t; else if (re.isEmptyObject(r)) re.extend(this.cache[i], e); else for (o in e) r[o] = e[o];
return r;
},
get: function(n, t) {
var o = this.cache[this.key(n)];
return t === e ? o : o[t];
},
access: function(n, t, o) {
var i;
return t === e || t && "string" == typeof t && o === e ? (i = this.get(n, t), i !== e ? i : this.get(n, re.camelCase(t))) : (this.set(n, t, o),
o !== e ? o : t);
},
remove: function(n, t) {
var o, i, r, a = this.key(n), s = this.cache[a];
if (t === e) this.cache[a] = {}; else {
re.isArray(t) ? i = t.concat(t.map(re.camelCase)) : (r = re.camelCase(t), t in s ? i = [ t, r ] : (i = r,
i = i in s ? [ i ] : i.match(se) || [])), o = i.length;
for (;o--; ) delete s[i[o]];
}
},
hasData: function(n) {
return !re.isEmptyObject(this.cache[n[this.expando]] || {});
},
discard: function(n) {
n[this.expando] && delete this.cache[n[this.expando]];
}
}, ge = new i(), be = new i(), re.extend({
acceptData: i.accepts,
hasData: function(n) {
return ge.hasData(n) || be.hasData(n);
},
data: function(n, e, t) {
return ge.access(n, e, t);
},
removeData: function(n, e) {
ge.remove(n, e);
},
_data: function(n, e, t) {
return be.access(n, e, t);
},
_removeData: function(n, e) {
be.remove(n, e);
}
}), re.fn.extend({
data: function(n, t) {
var o, i, a = this[0], s = 0, l = null;
if (n === e) {
if (this.length && (l = ge.get(a), 1 === a.nodeType && !be.get(a, "hasDataAttrs"))) {
for (o = a.attributes; s < o.length; s++) i = o[s].name, 0 === i.indexOf("data-") && (i = re.camelCase(i.slice(5)),
r(a, i, l[i]));
be.set(a, "hasDataAttrs", !0);
}
return l;
}
return "object" == typeof n ? this.each(function() {
ge.set(this, n);
}) : re.access(this, function(t) {
var o, i = re.camelCase(n);
if (a && t === e) {
if (o = ge.get(a, n), o !== e) return o;
if (o = ge.get(a, i), o !== e) return o;
if (o = r(a, i, e), o !== e) return o;
} else this.each(function() {
var o = ge.get(this, i);
ge.set(this, i, t), -1 !== n.indexOf("-") && o !== e && ge.set(this, n, t);
});
}, null, t, arguments.length > 1, null, !0);
},
removeData: function(n) {
return this.each(function() {
ge.remove(this, n);
});
}
}), re.extend({
queue: function(n, e, t) {
var o;
return n ? (e = (e || "fx") + "queue", o = be.get(n, e), t && (!o || re.isArray(t) ? o = be.access(n, e, re.makeArray(t)) : o.push(t)),
o || []) : void 0;
},
dequeue: function(n, e) {
e = e || "fx";
var t = re.queue(n, e), o = t.length, i = t.shift(), r = re._queueHooks(n, e), a = function() {
re.dequeue(n, e);
};
"inprogress" === i && (i = t.shift(), o--), i && ("fx" === e && t.unshift("inprogress"),
delete r.stop, i.call(n, a, r)), !o && r && r.empty.fire();
},
_queueHooks: function(n, e) {
var t = e + "queueHooks";
return be.get(n, t) || be.access(n, t, {
empty: re.Callbacks("once memory").add(function() {
be.remove(n, [ e + "queue", t ]);
})
});
}
}), re.fn.extend({
queue: function(n, t) {
var o = 2;
return "string" != typeof n && (t = n, n = "fx", o--), arguments.length < o ? re.queue(this[0], n) : t === e ? this : this.each(function() {
var e = re.queue(this, n, t);
re._queueHooks(this, n), "fx" === n && "inprogress" !== e[0] && re.dequeue(this, n);
});
},
dequeue: function(n) {
return this.each(function() {
re.dequeue(this, n);
});
},
delay: function(n, e) {
return n = re.fx ? re.fx.speeds[n] || n : n, e = e || "fx", this.queue(e, function(e, t) {
var o = setTimeout(e, n);
t.stop = function() {
clearTimeout(o);
};
});
},
clearQueue: function(n) {
return this.queue(n || "fx", []);
},
promise: function(n, t) {
var o, i = 1, r = re.Deferred(), a = this, s = this.length, l = function() {
--i || r.resolveWith(a, [ a ]);
};
for ("string" != typeof n && (t = n, n = e), n = n || "fx"; s--; ) o = be.get(a[s], n + "queueHooks"),
o && o.empty && (i++, o.empty.add(l));
return l(), r.promise(t);
}
});
var xe, ye, we = /[\t\r\n\f]/g, ke = /\r/g, Ce = /^(?:input|select|textarea|button)$/i;
re.fn.extend({
attr: function(n, e) {
return re.access(this, re.attr, n, e, arguments.length > 1);
},
removeAttr: function(n) {
return this.each(function() {
re.removeAttr(this, n);
});
},
prop: function(n, e) {
return re.access(this, re.prop, n, e, arguments.length > 1);
},
removeProp: function(n) {
return this.each(function() {
delete this[re.propFix[n] || n];
});
},
addClass: function(n) {
var e, t, o, i, r, a = 0, s = this.length, l = "string" == typeof n && n;
if (re.isFunction(n)) return this.each(function(e) {
re(this).addClass(n.call(this, e, this.className));
});
if (l) for (e = (n || "").match(se) || []; s > a; a++) if (t = this[a], o = 1 === t.nodeType && (t.className ? (" " + t.className + " ").replace(we, " ") : " ")) {
for (r = 0; i = e[r++]; ) o.indexOf(" " + i + " ") < 0 && (o += i + " ");
t.className = re.trim(o);
}
return this;
},
removeClass: function(n) {
var e, t, o, i, r, a = 0, s = this.length, l = 0 === arguments.length || "string" == typeof n && n;
if (re.isFunction(n)) return this.each(function(e) {
re(this).removeClass(n.call(this, e, this.className));
});
if (l) for (e = (n || "").match(se) || []; s > a; a++) if (t = this[a], o = 1 === t.nodeType && (t.className ? (" " + t.className + " ").replace(we, " ") : "")) {
for (r = 0; i = e[r++]; ) for (;o.indexOf(" " + i + " ") >= 0; ) o = o.replace(" " + i + " ", " ");
t.className = n ? re.trim(o) : "";
}
return this;
},
toggleClass: function(n, e) {
var t = typeof n;
return "boolean" == typeof e && "string" === t ? e ? this.addClass(n) : this.removeClass(n) : re.isFunction(n) ? this.each(function(t) {
re(this).toggleClass(n.call(this, t, this.className, e), e);
}) : this.each(function() {
if ("string" === t) for (var e, o = 0, i = re(this), r = n.match(se) || []; e = r[o++]; ) i.hasClass(e) ? i.removeClass(e) : i.addClass(e); else (t === B || "boolean" === t) && (this.className && be.set(this, "__className__", this.className),
this.className = this.className || n === !1 ? "" : be.get(this, "__className__") || "");
});
},
hasClass: function(n) {
for (var e = " " + n + " ", t = 0, o = this.length; o > t; t++) if (1 === this[t].nodeType && (" " + this[t].className + " ").replace(we, " ").indexOf(e) >= 0) return !0;
return !1;
},
val: function(n) {
var t, o, i, r = this[0];
{
if (arguments.length) return i = re.isFunction(n), this.each(function(o) {
var r;
1 === this.nodeType && (r = i ? n.call(this, o, re(this).val()) : n, null == r ? r = "" : "number" == typeof r ? r += "" : re.isArray(r) && (r = re.map(r, function(n) {
return null == n ? "" : n + "";
})), t = re.valHooks[this.type] || re.valHooks[this.nodeName.toLowerCase()], t && "set" in t && t.set(this, r, "value") !== e || (this.value = r));
});
if (r) return t = re.valHooks[r.type] || re.valHooks[r.nodeName.toLowerCase()],
t && "get" in t && (o = t.get(r, "value")) !== e ? o : (o = r.value, "string" == typeof o ? o.replace(ke, "") : null == o ? "" : o);
}
}
}), re.extend({
valHooks: {
option: {
get: function(n) {
var e = n.attributes.value;
return !e || e.specified ? n.value : n.text;
}
},
select: {
get: function(n) {
for (var e, t, o = n.options, i = n.selectedIndex, r = "select-one" === n.type || 0 > i, a = r ? null : [], s = r ? i + 1 : o.length, l = 0 > i ? s : r ? i : 0; s > l; l++) if (t = o[l],
!(!t.selected && l !== i || (re.support.optDisabled ? t.disabled : null !== t.getAttribute("disabled")) || t.parentNode.disabled && re.nodeName(t.parentNode, "optgroup"))) {
if (e = re(t).val(), r) return e;
a.push(e);
}
return a;
},
set: function(n, e) {
for (var t, o, i = n.options, r = re.makeArray(e), a = i.length; a--; ) o = i[a],
(o.selected = re.inArray(re(o).val(), r) >= 0) && (t = !0);
return t || (n.selectedIndex = -1), r;
}
}
},
attr: function(n, t, o) {
var i, r, a = n.nodeType;
if (n && 3 !== a && 8 !== a && 2 !== a) return typeof n.getAttribute === B ? re.prop(n, t, o) : (1 === a && re.isXMLDoc(n) || (t = t.toLowerCase(),
i = re.attrHooks[t] || (re.expr.match.bool.test(t) ? ye : xe)), o === e ? i && "get" in i && null !== (r = i.get(n, t)) ? r : (r = re.find.attr(n, t),
null == r ? e : r) : null !== o ? i && "set" in i && (r = i.set(n, o, t)) !== e ? r : (n.setAttribute(t, o + ""),
o) : (re.removeAttr(n, t), void 0));
},
removeAttr: function(n, e) {
var t, o, i = 0, r = e && e.match(se);
if (r && 1 === n.nodeType) for (;t = r[i++]; ) o = re.propFix[t] || t, re.expr.match.bool.test(t) && (n[o] = !1),
n.removeAttribute(t);
},
attrHooks: {
type: {
set: function(n, e) {
if (!re.support.radioValue && "radio" === e && re.nodeName(n, "input")) {
var t = n.value;
return n.setAttribute("type", e), t && (n.value = t), e;
}
}
}
},
propFix: {
"for": "htmlFor",
"class": "className"
},
prop: function(n, t, o) {
var i, r, a, s = n.nodeType;
if (n && 3 !== s && 8 !== s && 2 !== s) return a = 1 !== s || !re.isXMLDoc(n), a && (t = re.propFix[t] || t,
r = re.propHooks[t]), o !== e ? r && "set" in r && (i = r.set(n, o, t)) !== e ? i : n[t] = o : r && "get" in r && null !== (i = r.get(n, t)) ? i : n[t];
},
propHooks: {
tabIndex: {
get: function(n) {
return n.hasAttribute("tabindex") || Ce.test(n.nodeName) || n.href ? n.tabIndex : -1;
}
}
}
}), ye = {
set: function(n, e, t) {
return e === !1 ? re.removeAttr(n, t) : n.setAttribute(t, t), t;
}
}, re.each(re.expr.match.bool.source.match(/\w+/g), function(n, t) {
var o = re.expr.attrHandle[t] || re.find.attr;
re.expr.attrHandle[t] = function(n, t, i) {
var r = re.expr.attrHandle[t], a = i ? e : (re.expr.attrHandle[t] = e) != o(n, t, i) ? t.toLowerCase() : null;
return re.expr.attrHandle[t] = r, a;
};
}), re.support.optSelected || (re.propHooks.selected = {
get: function(n) {
var e = n.parentNode;
return e && e.parentNode && e.parentNode.selectedIndex, null;
}
}), re.each([ "tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable" ], function() {
re.propFix[this.toLowerCase()] = this;
}), re.each([ "radio", "checkbox" ], function() {
re.valHooks[this] = {
set: function(n, e) {
return re.isArray(e) ? n.checked = re.inArray(re(n).val(), e) >= 0 : void 0;
}
}, re.support.checkOn || (re.valHooks[this].get = function(n) {
return null === n.getAttribute("value") ? "on" : n.value;
});
});
var Se = /^key/, Te = /^(?:mouse|contextmenu)|click/, Ee = /^(?:focusinfocus|focusoutblur)$/, _e = /^([^.]*)(?:\.(.+)|)$/;
re.event = {
global: {},
add: function(n, t, o, i, r) {
var a, s, l, c, d, p, u, f, h, g, b, m = be.get(n);
if (m) {
for (o.handler && (a = o, o = a.handler, r = a.selector), o.guid || (o.guid = re.guid++),
(c = m.events) || (c = m.events = {}), (s = m.handle) || (s = m.handle = function(n) {
return typeof re === B || n && re.event.triggered === n.type ? e : re.event.dispatch.apply(s.elem, arguments);
}, s.elem = n), t = (t || "").match(se) || [ "" ], d = t.length; d--; ) l = _e.exec(t[d]) || [],
h = b = l[1], g = (l[2] || "").split(".").sort(), h && (u = re.event.special[h] || {},
h = (r ? u.delegateType : u.bindType) || h, u = re.event.special[h] || {}, p = re.extend({
type: h,
origType: b,
data: i,
handler: o,
guid: o.guid,
selector: r,
needsContext: r && re.expr.match.needsContext.test(r),
namespace: g.join(".")
}, a), (f = c[h]) || (f = c[h] = [], f.delegateCount = 0, u.setup && u.setup.call(n, i, g, s) !== !1 || n.addEventListener && n.addEventListener(h, s, !1)),
u.add && (u.add.call(n, p), p.handler.guid || (p.handler.guid = o.guid)), r ? f.splice(f.delegateCount++, 0, p) : f.push(p),
re.event.global[h] = !0);
n = null;
}
},
remove: function(n, e, t, o, i) {
var r, a, s, l, c, d, p, u, f, h, g, b = be.hasData(n) && be.get(n);
if (b && (l = b.events)) {
for (e = (e || "").match(se) || [ "" ], c = e.length; c--; ) if (s = _e.exec(e[c]) || [],
f = g = s[1], h = (s[2] || "").split(".").sort(), f) {
for (p = re.event.special[f] || {}, f = (o ? p.delegateType : p.bindType) || f,
u = l[f] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"),
a = r = u.length; r--; ) d = u[r], !i && g !== d.origType || t && t.guid !== d.guid || s && !s.test(d.namespace) || o && o !== d.selector && ("**" !== o || !d.selector) || (u.splice(r, 1),
d.selector && u.delegateCount--, p.remove && p.remove.call(n, d));
a && !u.length && (p.teardown && p.teardown.call(n, h, b.handle) !== !1 || re.removeEvent(n, f, b.handle),
delete l[f]);
} else for (f in l) re.event.remove(n, f + e[c], t, o, !0);
re.isEmptyObject(l) && (delete b.handle, be.remove(n, "events"));
}
},
trigger: function(t, o, i, r) {
var a, s, l, c, d, p, u, f = [ i || G ], h = oe.call(t, "type") ? t.type : t, g = oe.call(t, "namespace") ? t.namespace.split(".") : [];
if (s = l = i = i || G, 3 !== i.nodeType && 8 !== i.nodeType && !Ee.test(h + re.event.triggered) && (h.indexOf(".") >= 0 && (g = h.split("."),
h = g.shift(), g.sort()), d = h.indexOf(":") < 0 && "on" + h, t = t[re.expando] ? t : new re.Event(h, "object" == typeof t && t),
t.isTrigger = r ? 2 : 3, t.namespace = g.join("."), t.namespace_re = t.namespace ? new RegExp("(^|\\.)" + g.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
t.result = e, t.target || (t.target = i), o = null == o ? [ t ] : re.makeArray(o, [ t ]),
u = re.event.special[h] || {}, r || !u.trigger || u.trigger.apply(i, o) !== !1)) {
if (!r && !u.noBubble && !re.isWindow(i)) {
for (c = u.delegateType || h, Ee.test(c + h) || (s = s.parentNode); s; s = s.parentNode) f.push(s),
l = s;
l === (i.ownerDocument || G) && f.push(l.defaultView || l.parentWindow || n);
}
for (a = 0; (s = f[a++]) && !t.isPropagationStopped(); ) t.type = a > 1 ? c : u.bindType || h,
p = (be.get(s, "events") || {})[t.type] && be.get(s, "handle"), p && p.apply(s, o),
p = d && s[d], p && re.acceptData(s) && p.apply && p.apply(s, o) === !1 && t.preventDefault();
return t.type = h, r || t.isDefaultPrevented() || u._default && u._default.apply(f.pop(), o) !== !1 || !re.acceptData(i) || d && re.isFunction(i[h]) && !re.isWindow(i) && (l = i[d],
l && (i[d] = null), re.event.triggered = h, i[h](), re.event.triggered = e, l && (i[d] = l)),
t.result;
}
},
dispatch: function(n) {
n = re.event.fix(n);
var t, o, i, r, a, s = [], l = ne.call(arguments), c = (be.get(this, "events") || {})[n.type] || [], d = re.event.special[n.type] || {};
if (l[0] = n, n.delegateTarget = this, !d.preDispatch || d.preDispatch.call(this, n) !== !1) {
for (s = re.event.handlers.call(this, n, c), t = 0; (r = s[t++]) && !n.isPropagationStopped(); ) for (n.currentTarget = r.elem,
o = 0; (a = r.handlers[o++]) && !n.isImmediatePropagationStopped(); ) (!n.namespace_re || n.namespace_re.test(a.namespace)) && (n.handleObj = a,
n.data = a.data, i = ((re.event.special[a.origType] || {}).handle || a.handler).apply(r.elem, l),
i !== e && (n.result = i) === !1 && (n.preventDefault(), n.stopPropagation()));
return d.postDispatch && d.postDispatch.call(this, n), n.result;
}
},
handlers: function(n, t) {
var o, i, r, a, s = [], l = t.delegateCount, c = n.target;
if (l && c.nodeType && (!n.button || "click" !== n.type)) for (;c !== this; c = c.parentNode || this) if (c.disabled !== !0 || "click" !== n.type) {
for (i = [], o = 0; l > o; o++) a = t[o], r = a.selector + " ", i[r] === e && (i[r] = a.needsContext ? re(r, this).index(c) >= 0 : re.find(r, this, null, [ c ]).length),
i[r] && i.push(a);
i.length && s.push({
elem: c,
handlers: i
});
}
return l < t.length && s.push({
elem: this,
handlers: t.slice(l)
}), s;
},
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function(n, e) {
return null == n.which && (n.which = null != e.charCode ? e.charCode : e.keyCode),
n;
}
},
mouseHooks: {
props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function(n, t) {
var o, i, r, a = t.button;
return null == n.pageX && null != t.clientX && (o = n.target.ownerDocument || G,
i = o.documentElement, r = o.body, n.pageX = t.clientX + (i && i.scrollLeft || r && r.scrollLeft || 0) - (i && i.clientLeft || r && r.clientLeft || 0),
n.pageY = t.clientY + (i && i.scrollTop || r && r.scrollTop || 0) - (i && i.clientTop || r && r.clientTop || 0)),
n.which || a === e || (n.which = 1 & a ? 1 : 2 & a ? 3 : 4 & a ? 2 : 0), n;
}
},
fix: function(n) {
if (n[re.expando]) return n;
var e, t, o, i = n.type, r = n, a = this.fixHooks[i];
for (a || (this.fixHooks[i] = a = Te.test(i) ? this.mouseHooks : Se.test(i) ? this.keyHooks : {}),
o = a.props ? this.props.concat(a.props) : this.props, n = new re.Event(r), e = o.length; e--; ) t = o[e],
n[t] = r[t];
return n.target || (n.target = G), 3 === n.target.nodeType && (n.target = n.target.parentNode),
a.filter ? a.filter(n, r) : n;
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function() {
return this !== l() && this.focus ? (this.focus(), !1) : void 0;
},
delegateType: "focusin"
},
blur: {
trigger: function() {
return this === l() && this.blur ? (this.blur(), !1) : void 0;
},
delegateType: "focusout"
},
click: {
trigger: function() {
return "checkbox" === this.type && this.click && re.nodeName(this, "input") ? (this.click(),
!1) : void 0;
},
_default: function(n) {
return re.nodeName(n.target, "a");
}
},
beforeunload: {
postDispatch: function(n) {
n.result !== e && (n.originalEvent.returnValue = n.result);
}
}
},
simulate: function(n, e, t, o) {
var i = re.extend(new re.Event(), t, {
type: n,
isSimulated: !0,
originalEvent: {}
});
o ? re.event.trigger(i, null, e) : re.event.dispatch.call(e, i), i.isDefaultPrevented() && t.preventDefault();
}
}, re.removeEvent = function(n, e, t) {
n.removeEventListener && n.removeEventListener(e, t, !1);
}, re.Event = function(n, e) {
return this instanceof re.Event ? (n && n.type ? (this.originalEvent = n, this.type = n.type,
this.isDefaultPrevented = n.defaultPrevented || n.getPreventDefault && n.getPreventDefault() ? a : s) : this.type = n,
e && re.extend(this, e), this.timeStamp = n && n.timeStamp || re.now(), this[re.expando] = !0,
void 0) : new re.Event(n, e);
}, re.Event.prototype = {
isDefaultPrevented: s,
isPropagationStopped: s,
isImmediatePropagationStopped: s,
preventDefault: function() {
var n = this.originalEvent;
this.isDefaultPrevented = a, n && n.preventDefault && n.preventDefault();
},
stopPropagation: function() {
var n = this.originalEvent;
this.isPropagationStopped = a, n && n.stopPropagation && n.stopPropagation();
},
stopImmediatePropagation: function() {
this.isImmediatePropagationStopped = a, this.stopPropagation();
}
}, re.each({
mouseenter: "mouseover",
mouseleave: "mouseout"
}, function(n, e) {
re.event.special[n] = {
delegateType: e,
bindType: e,
handle: function(n) {
var t, o = this, i = n.relatedTarget, r = n.handleObj;
return (!i || i !== o && !re.contains(o, i)) && (n.type = r.origType, t = r.handler.apply(this, arguments),
n.type = e), t;
}
};
}), re.support.focusinBubbles || re.each({
focus: "focusin",
blur: "focusout"
}, function(n, e) {
var t = 0, o = function(n) {
re.event.simulate(e, n.target, re.event.fix(n), !0);
};
re.event.special[e] = {
setup: function() {
0 === t++ && G.addEventListener(n, o, !0);
},
teardown: function() {
0 === --t && G.removeEventListener(n, o, !0);
}
};
}), re.fn.extend({
on: function(n, t, o, i, r) {
var a, l;
if ("object" == typeof n) {
"string" != typeof t && (o = o || t, t = e);
for (l in n) this.on(l, t, o, n[l], r);
return this;
}
if (null == o && null == i ? (i = t, o = t = e) : null == i && ("string" == typeof t ? (i = o,
o = e) : (i = o, o = t, t = e)), i === !1) i = s; else if (!i) return this;
return 1 === r && (a = i, i = function(n) {
return re().off(n), a.apply(this, arguments);
}, i.guid = a.guid || (a.guid = re.guid++)), this.each(function() {
re.event.add(this, n, i, o, t);
});
},
one: function(n, e, t, o) {
return this.on(n, e, t, o, 1);
},
off: function(n, t, o) {
var i, r;
if (n && n.preventDefault && n.handleObj) return i = n.handleObj, re(n.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler),
this;
if ("object" == typeof n) {
for (r in n) this.off(r, t, n[r]);
return this;
}
return (t === !1 || "function" == typeof t) && (o = t, t = e), o === !1 && (o = s),
this.each(function() {
re.event.remove(this, n, o, t);
});
},
trigger: function(n, e) {
return this.each(function() {
re.event.trigger(n, e, this);
});
},
triggerHandler: function(n, e) {
var t = this[0];
return t ? re.event.trigger(n, e, t, !0) : void 0;
}
});
var ze = /^.[^:#\[\.,]*$/, Ie = /^(?:parents|prev(?:Until|All))/, Pe = re.expr.match.needsContext, $e = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
re.fn.extend({
find: function(n) {
var e, t = [], o = this, i = o.length;
if ("string" != typeof n) return this.pushStack(re(n).filter(function() {
for (e = 0; i > e; e++) if (re.contains(o[e], this)) return !0;
}));
for (e = 0; i > e; e++) re.find(n, o[e], t);
return t = this.pushStack(i > 1 ? re.unique(t) : t), t.selector = this.selector ? this.selector + " " + n : n,
t;
},
has: function(n) {
var e = re(n, this), t = e.length;
return this.filter(function() {
for (var n = 0; t > n; n++) if (re.contains(this, e[n])) return !0;
});
},
not: function(n) {
return this.pushStack(d(this, n || [], !0));
},
filter: function(n) {
return this.pushStack(d(this, n || [], !1));
},
is: function(n) {
return !!d(this, "string" == typeof n && Pe.test(n) ? re(n) : n || [], !1).length;
},
closest: function(n, e) {
for (var t, o = 0, i = this.length, r = [], a = Pe.test(n) || "string" != typeof n ? re(n, e || this.context) : 0; i > o; o++) for (t = this[o]; t && t !== e; t = t.parentNode) if (t.nodeType < 11 && (a ? a.index(t) > -1 : 1 === t.nodeType && re.find.matchesSelector(t, n))) {
t = r.push(t);
break;
}
return this.pushStack(r.length > 1 ? re.unique(r) : r);
},
index: function(n) {
return n ? "string" == typeof n ? ee.call(re(n), this[0]) : ee.call(this, n.jquery ? n[0] : n) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
},
add: function(n, e) {
var t = "string" == typeof n ? re(n, e) : re.makeArray(n && n.nodeType ? [ n ] : n), o = re.merge(this.get(), t);
return this.pushStack(re.unique(o));
},
addBack: function(n) {
return this.add(null == n ? this.prevObject : this.prevObject.filter(n));
}
}), re.each({
parent: function(n) {
var e = n.parentNode;
return e && 11 !== e.nodeType ? e : null;
},
parents: function(n) {
return re.dir(n, "parentNode");
},
parentsUntil: function(n, e, t) {
return re.dir(n, "parentNode", t);
},
next: function(n) {
return c(n, "nextSibling");
},
prev: function(n) {
return c(n, "previousSibling");
},
nextAll: function(n) {
return re.dir(n, "nextSibling");
},
prevAll: function(n) {
return re.dir(n, "previousSibling");
},
nextUntil: function(n, e, t) {
return re.dir(n, "nextSibling", t);
},
prevUntil: function(n, e, t) {
return re.dir(n, "previousSibling", t);
},
siblings: function(n) {
return re.sibling((n.parentNode || {}).firstChild, n);
},
children: function(n) {
return re.sibling(n.firstChild);
},
contents: function(n) {
return n.contentDocument || re.merge([], n.childNodes);
}
}, function(n, e) {
re.fn[n] = function(t, o) {
var i = re.map(this, e, t);
return "Until" !== n.slice(-5) && (o = t), o && "string" == typeof o && (i = re.filter(o, i)),
this.length > 1 && ($e[n] || re.unique(i), Ie.test(n) && i.reverse()), this.pushStack(i);
};
}), re.extend({
filter: function(n, e, t) {
var o = e[0];
return t && (n = ":not(" + n + ")"), 1 === e.length && 1 === o.nodeType ? re.find.matchesSelector(o, n) ? [ o ] : [] : re.find.matches(n, re.grep(e, function(n) {
return 1 === n.nodeType;
}));
},
dir: function(n, t, o) {
for (var i = [], r = o !== e; (n = n[t]) && 9 !== n.nodeType; ) if (1 === n.nodeType) {
if (r && re(n).is(o)) break;
i.push(n);
}
return i;
},
sibling: function(n, e) {
for (var t = []; n; n = n.nextSibling) 1 === n.nodeType && n !== e && t.push(n);
return t;
}
});
var Ne = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, Le = /<([\w:]+)/, Re = /<|&#?\w+;/, Me = /<(?:script|style|link)/i, Ae = /^(?:checkbox|radio)$/i, je = /checked\s*(?:[^=]|=\s*.checked.)/i, De = /^$|\/(?:java|ecma)script/i, Oe = /^true\/(.*)/, He = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, qe = {
option: [ 1, "<select multiple='multiple'>", "</select>" ],
thead: [ 1, "<table>", "</table>" ],
col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
tr: [ 2, "<table><tbody>", "</tbody></table>" ],
td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
_default: [ 0, "", "" ]
};
qe.optgroup = qe.option, qe.tbody = qe.tfoot = qe.colgroup = qe.caption = qe.thead,
qe.th = qe.td, re.fn.extend({
text: function(n) {
return re.access(this, function(n) {
return n === e ? re.text(this) : this.empty().append((this[0] && this[0].ownerDocument || G).createTextNode(n));
}, null, n, arguments.length);
},
append: function() {
return this.domManip(arguments, function(n) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var e = p(this, n);
e.appendChild(n);
}
});
},
prepend: function() {
return this.domManip(arguments, function(n) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var e = p(this, n);
e.insertBefore(n, e.firstChild);
}
});
},
before: function() {
return this.domManip(arguments, function(n) {
this.parentNode && this.parentNode.insertBefore(n, this);
});
},
after: function() {
return this.domManip(arguments, function(n) {
this.parentNode && this.parentNode.insertBefore(n, this.nextSibling);
});
},
remove: function(n, e) {
for (var t, o = n ? re.filter(n, this) : this, i = 0; null != (t = o[i]); i++) e || 1 !== t.nodeType || re.cleanData(b(t)),
t.parentNode && (e && re.contains(t.ownerDocument, t) && h(b(t, "script")), t.parentNode.removeChild(t));
return this;
},
empty: function() {
for (var n, e = 0; null != (n = this[e]); e++) 1 === n.nodeType && (re.cleanData(b(n, !1)),
n.textContent = "");
return this;
},
clone: function(n, e) {
return n = null == n ? !1 : n, e = null == e ? n : e, this.map(function() {
return re.clone(this, n, e);
});
},
html: function(n) {
return re.access(this, function(n) {
var t = this[0] || {}, o = 0, i = this.length;
if (n === e && 1 === t.nodeType) return t.innerHTML;
if ("string" == typeof n && !Me.test(n) && !qe[(Le.exec(n) || [ "", "" ])[1].toLowerCase()]) {
n = n.replace(Ne, "<$1></$2>");
try {
for (;i > o; o++) t = this[o] || {}, 1 === t.nodeType && (re.cleanData(b(t, !1)),
t.innerHTML = n);
t = 0;
} catch (r) {}
}
t && this.empty().append(n);
}, null, n, arguments.length);
},
replaceWith: function() {
var n = re.map(this, function(n) {
return [ n.nextSibling, n.parentNode ];
}), e = 0;
return this.domManip(arguments, function(t) {
var o = n[e++], i = n[e++];
i && (o && o.parentNode !== i && (o = this.nextSibling), re(this).remove(), i.insertBefore(t, o));
}, !0), e ? this : this.remove();
},
detach: function(n) {
return this.remove(n, !0);
},
domManip: function(n, e, t) {
n = Z.apply([], n);
var o, i, r, a, s, l, c = 0, d = this.length, p = this, h = d - 1, g = n[0], m = re.isFunction(g);
if (m || !(1 >= d || "string" != typeof g || re.support.checkClone) && je.test(g)) return this.each(function(o) {
var i = p.eq(o);
m && (n[0] = g.call(this, o, i.html())), i.domManip(n, e, t);
});
if (d && (o = re.buildFragment(n, this[0].ownerDocument, !1, !t && this), i = o.firstChild,
1 === o.childNodes.length && (o = i), i)) {
for (r = re.map(b(o, "script"), u), a = r.length; d > c; c++) s = o, c !== h && (s = re.clone(s, !0, !0),
a && re.merge(r, b(s, "script"))), e.call(this[c], s, c);
if (a) for (l = r[r.length - 1].ownerDocument, re.map(r, f), c = 0; a > c; c++) s = r[c],
De.test(s.type || "") && !be.access(s, "globalEval") && re.contains(l, s) && (s.src ? re._evalUrl(s.src) : re.globalEval(s.textContent.replace(He, "")));
}
return this;
}
}), re.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(n, e) {
re.fn[n] = function(n) {
for (var t, o = [], i = re(n), r = i.length - 1, a = 0; r >= a; a++) t = a === r ? this : this.clone(!0),
re(i[a])[e](t), Q.apply(o, t.get());
return this.pushStack(o);
};
}), re.extend({
clone: function(n, e, t) {
var o, i, r, a, s = n.cloneNode(!0), l = re.contains(n.ownerDocument, n);
if (!(re.support.noCloneChecked || 1 !== n.nodeType && 11 !== n.nodeType || re.isXMLDoc(n))) for (a = b(s),
r = b(n), o = 0, i = r.length; i > o; o++) m(r[o], a[o]);
if (e) if (t) for (r = r || b(n), a = a || b(s), o = 0, i = r.length; i > o; o++) g(r[o], a[o]); else g(n, s);
return a = b(s, "script"), a.length > 0 && h(a, !l && b(n, "script")), s;
},
buildFragment: function(n, e, t, o) {
for (var i, r, a, s, l, c, d = 0, p = n.length, u = e.createDocumentFragment(), f = []; p > d; d++) if (i = n[d],
i || 0 === i) if ("object" === re.type(i)) re.merge(f, i.nodeType ? [ i ] : i); else if (Re.test(i)) {
for (r = r || u.appendChild(e.createElement("div")), a = (Le.exec(i) || [ "", "" ])[1].toLowerCase(),
s = qe[a] || qe._default, r.innerHTML = s[1] + i.replace(Ne, "<$1></$2>") + s[2],
c = s[0]; c--; ) r = r.lastChild;
re.merge(f, r.childNodes), r = u.firstChild, r.textContent = "";
} else f.push(e.createTextNode(i));
for (u.textContent = "", d = 0; i = f[d++]; ) if ((!o || -1 === re.inArray(i, o)) && (l = re.contains(i.ownerDocument, i),
r = b(u.appendChild(i), "script"), l && h(r), t)) for (c = 0; i = r[c++]; ) De.test(i.type || "") && t.push(i);
return u;
},
cleanData: function(n) {
for (var t, o, r, a, s, l, c = re.event.special, d = 0; (o = n[d]) !== e; d++) {
if (i.accepts(o) && (s = o[be.expando], s && (t = be.cache[s]))) {
if (r = Object.keys(t.events || {}), r.length) for (l = 0; (a = r[l]) !== e; l++) c[a] ? re.event.remove(o, a) : re.removeEvent(o, a, t.handle);
be.cache[s] && delete be.cache[s];
}
delete ge.cache[o[ge.expando]];
}
},
_evalUrl: function(n) {
return re.ajax({
url: n,
type: "GET",
dataType: "script",
async: !1,
global: !1,
"throws": !0
});
}
}), re.fn.extend({
wrapAll: function(n) {
var e;
return re.isFunction(n) ? this.each(function(e) {
re(this).wrapAll(n.call(this, e));
}) : (this[0] && (e = re(n, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && e.insertBefore(this[0]),
e.map(function() {
for (var n = this; n.firstElementChild; ) n = n.firstElementChild;
return n;
}).append(this)), this);
},
wrapInner: function(n) {
return re.isFunction(n) ? this.each(function(e) {
re(this).wrapInner(n.call(this, e));
}) : this.each(function() {
var e = re(this), t = e.contents();
t.length ? t.wrapAll(n) : e.append(n);
});
},
wrap: function(n) {
var e = re.isFunction(n);
return this.each(function(t) {
re(this).wrapAll(e ? n.call(this, t) : n);
});
},
unwrap: function() {
return this.parent().each(function() {
re.nodeName(this, "body") || re(this).replaceWith(this.childNodes);
}).end();
}
});
var Fe, Be, We = /^(none|table(?!-c[ea]).+)/, Ge = /^margin/, Ue = new RegExp("^(" + ae + ")(.*)$", "i"), Ve = new RegExp("^(" + ae + ")(?!px)[a-z%]+$", "i"), Xe = new RegExp("^([+-])=(" + ae + ")", "i"), Ye = {
BODY: "block"
}, Je = {
position: "absolute",
visibility: "hidden",
display: "block"
}, Ke = {
letterSpacing: 0,
fontWeight: 400
}, Ze = [ "Top", "Right", "Bottom", "Left" ], Qe = [ "Webkit", "O", "Moz", "ms" ];
re.fn.extend({
css: function(n, t) {
return re.access(this, function(n, t, o) {
var i, r, a = {}, s = 0;
if (re.isArray(t)) {
for (i = y(n), r = t.length; r > s; s++) a[t[s]] = re.css(n, t[s], !1, i);
return a;
}
return o !== e ? re.style(n, t, o) : re.css(n, t);
}, n, t, arguments.length > 1);
},
show: function() {
return w(this, !0);
},
hide: function() {
return w(this);
},
toggle: function(n) {
return "boolean" == typeof n ? n ? this.show() : this.hide() : this.each(function() {
x(this) ? re(this).show() : re(this).hide();
});
}
}), re.extend({
cssHooks: {
opacity: {
get: function(n, e) {
if (e) {
var t = Fe(n, "opacity");
return "" === t ? "1" : t;
}
}
}
},
cssNumber: {
columnCount: !0,
fillOpacity: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
"float": "cssFloat"
},
style: function(n, t, o, i) {
if (n && 3 !== n.nodeType && 8 !== n.nodeType && n.style) {
var r, a, s, l = re.camelCase(t), c = n.style;
return t = re.cssProps[l] || (re.cssProps[l] = v(c, l)), s = re.cssHooks[t] || re.cssHooks[l],
o === e ? s && "get" in s && (r = s.get(n, !1, i)) !== e ? r : c[t] : (a = typeof o,
"string" === a && (r = Xe.exec(o)) && (o = (r[1] + 1) * r[2] + parseFloat(re.css(n, t)),
a = "number"), null == o || "number" === a && isNaN(o) || ("number" !== a || re.cssNumber[l] || (o += "px"),
re.support.clearCloneStyle || "" !== o || 0 !== t.indexOf("background") || (c[t] = "inherit"),
s && "set" in s && (o = s.set(n, o, i)) === e || (c[t] = o)), void 0);
}
},
css: function(n, t, o, i) {
var r, a, s, l = re.camelCase(t);
return t = re.cssProps[l] || (re.cssProps[l] = v(n.style, l)), s = re.cssHooks[t] || re.cssHooks[l],
s && "get" in s && (r = s.get(n, !0, o)), r === e && (r = Fe(n, t, i)), "normal" === r && t in Ke && (r = Ke[t]),
"" === o || o ? (a = parseFloat(r), o === !0 || re.isNumeric(a) ? a || 0 : r) : r;
}
}), Fe = function(n, t, o) {
var i, r, a, s = o || y(n), l = s ? s.getPropertyValue(t) || s[t] : e, c = n.style;
return s && ("" !== l || re.contains(n.ownerDocument, n) || (l = re.style(n, t)),
Ve.test(l) && Ge.test(t) && (i = c.width, r = c.minWidth, a = c.maxWidth, c.minWidth = c.maxWidth = c.width = l,
l = s.width, c.width = i, c.minWidth = r, c.maxWidth = a)), l;
}, re.each([ "height", "width" ], function(n, e) {
re.cssHooks[e] = {
get: function(n, t, o) {
return t ? 0 === n.offsetWidth && We.test(re.css(n, "display")) ? re.swap(n, Je, function() {
return S(n, e, o);
}) : S(n, e, o) : void 0;
},
set: function(n, t, o) {
var i = o && y(n);
return k(n, t, o ? C(n, e, o, re.support.boxSizing && "border-box" === re.css(n, "boxSizing", !1, i), i) : 0);
}
};
}), re(function() {
re.support.reliableMarginRight || (re.cssHooks.marginRight = {
get: function(n, e) {
return e ? re.swap(n, {
display: "inline-block"
}, Fe, [ n, "marginRight" ]) : void 0;
}
}), !re.support.pixelPosition && re.fn.position && re.each([ "top", "left" ], function(n, e) {
re.cssHooks[e] = {
get: function(n, t) {
return t ? (t = Fe(n, e), Ve.test(t) ? re(n).position()[e] + "px" : t) : void 0;
}
};
});
}), re.expr && re.expr.filters && (re.expr.filters.hidden = function(n) {
return n.offsetWidth <= 0 && n.offsetHeight <= 0;
}, re.expr.filters.visible = function(n) {
return !re.expr.filters.hidden(n);
}), re.each({
margin: "",
padding: "",
border: "Width"
}, function(n, e) {
re.cssHooks[n + e] = {
expand: function(t) {
for (var o = 0, i = {}, r = "string" == typeof t ? t.split(" ") : [ t ]; 4 > o; o++) i[n + Ze[o] + e] = r[o] || r[o - 2] || r[0];
return i;
}
}, Ge.test(n) || (re.cssHooks[n + e].set = k);
});
var nt = /%20/g, et = /\[\]$/, tt = /\r?\n/g, ot = /^(?:submit|button|image|reset|file)$/i, it = /^(?:input|select|textarea|keygen)/i;
re.fn.extend({
serialize: function() {
return re.param(this.serializeArray());
},
serializeArray: function() {
return this.map(function() {
var n = re.prop(this, "elements");
return n ? re.makeArray(n) : this;
}).filter(function() {
var n = this.type;
return this.name && !re(this).is(":disabled") && it.test(this.nodeName) && !ot.test(n) && (this.checked || !Ae.test(n));
}).map(function(n, e) {
var t = re(this).val();
return null == t ? null : re.isArray(t) ? re.map(t, function(n) {
return {
name: e.name,
value: n.replace(tt, "\r\n")
};
}) : {
name: e.name,
value: t.replace(tt, "\r\n")
};
}).get();
}
}), re.param = function(n, t) {
var o, i = [], r = function(n, e) {
e = re.isFunction(e) ? e() : null == e ? "" : e, i[i.length] = encodeURIComponent(n) + "=" + encodeURIComponent(e);
};
if (t === e && (t = re.ajaxSettings && re.ajaxSettings.traditional), re.isArray(n) || n.jquery && !re.isPlainObject(n)) re.each(n, function() {
r(this.name, this.value);
}); else for (o in n) _(o, n[o], t, r);
return i.join("&").replace(nt, "+");
}, re.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(n, e) {
re.fn[e] = function(n, t) {
return arguments.length > 0 ? this.on(e, null, n, t) : this.trigger(e);
};
}), re.fn.extend({
hover: function(n, e) {
return this.mouseenter(n).mouseleave(e || n);
},
bind: function(n, e, t) {
return this.on(n, null, e, t);
},
unbind: function(n, e) {
return this.off(n, null, e);
},
delegate: function(n, e, t, o) {
return this.on(e, n, t, o);
},
undelegate: function(n, e, t) {
return 1 === arguments.length ? this.off(n, "**") : this.off(e, n || "**", t);
}
});
var rt, at, st = re.now(), lt = /\?/, ct = /#.*$/, dt = /([?&])_=[^&]*/, pt = /^(.*?):[ \t]*([^\r\n]*)$/gm, ut = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, ft = /^(?:GET|HEAD)$/, ht = /^\/\//, gt = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, bt = re.fn.load, mt = {}, vt = {}, xt = "*/".concat("*");
try {
at = W.href;
} catch (yt) {
at = G.createElement("a"), at.href = "", at = at.href;
}
rt = gt.exec(at.toLowerCase()) || [], re.fn.load = function(n, t, o) {
if ("string" != typeof n && bt) return bt.apply(this, arguments);
var i, r, a, s = this, l = n.indexOf(" ");
return l >= 0 && (i = n.slice(l), n = n.slice(0, l)), re.isFunction(t) ? (o = t,
t = e) : t && "object" == typeof t && (r = "POST"), s.length > 0 && re.ajax({
url: n,
type: r,
dataType: "html",
data: t
}).done(function(n) {
a = arguments, s.html(i ? re("<div>").append(re.parseHTML(n)).find(i) : n);
}).complete(o && function(n, e) {
s.each(o, a || [ n.responseText, e, n ]);
}), this;
}, re.each([ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function(n, e) {
re.fn[e] = function(n) {
return this.on(e, n);
};
}), re.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: at,
type: "GET",
isLocal: ut.test(rt[1]),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": xt,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /xml/,
html: /html/,
json: /json/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": re.parseJSON,
"text xml": re.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(n, e) {
return e ? P(P(n, re.ajaxSettings), e) : P(re.ajaxSettings, n);
},
ajaxPrefilter: z(mt),
ajaxTransport: z(vt),
ajax: function(n, t) {
function o(n, t, o, s) {
var c, p, v, x, w, C = t;
2 !== y && (y = 2, l && clearTimeout(l), i = e, a = s || "", k.readyState = n > 0 ? 4 : 0,
c = n >= 200 && 300 > n || 304 === n, o && (x = $(u, k, o)), x = N(u, x, k, c),
c ? (u.ifModified && (w = k.getResponseHeader("Last-Modified"), w && (re.lastModified[r] = w),
w = k.getResponseHeader("etag"), w && (re.etag[r] = w)), 204 === n || "HEAD" === u.type ? C = "nocontent" : 304 === n ? C = "notmodified" : (C = x.state,
p = x.data, v = x.error, c = !v)) : (v = C, (n || !C) && (C = "error", 0 > n && (n = 0))),
k.status = n, k.statusText = (t || C) + "", c ? g.resolveWith(f, [ p, C, k ]) : g.rejectWith(f, [ k, C, v ]),
k.statusCode(m), m = e, d && h.trigger(c ? "ajaxSuccess" : "ajaxError", [ k, u, c ? p : v ]),
b.fireWith(f, [ k, C ]), d && (h.trigger("ajaxComplete", [ k, u ]), --re.active || re.event.trigger("ajaxStop")));
}
"object" == typeof n && (t = n, n = e), t = t || {};
var i, r, a, s, l, c, d, p, u = re.ajaxSetup({}, t), f = u.context || u, h = u.context && (f.nodeType || f.jquery) ? re(f) : re.event, g = re.Deferred(), b = re.Callbacks("once memory"), m = u.statusCode || {}, v = {}, x = {}, y = 0, w = "canceled", k = {
readyState: 0,
getResponseHeader: function(n) {
var e;
if (2 === y) {
if (!s) for (s = {}; e = pt.exec(a); ) s[e[1].toLowerCase()] = e[2];
e = s[n.toLowerCase()];
}
return null == e ? null : e;
},
getAllResponseHeaders: function() {
return 2 === y ? a : null;
},
setRequestHeader: function(n, e) {
var t = n.toLowerCase();
return y || (n = x[t] = x[t] || n, v[n] = e), this;
},
overrideMimeType: function(n) {
return y || (u.mimeType = n), this;
},
statusCode: function(n) {
var e;
if (n) if (2 > y) for (e in n) m[e] = [ m[e], n[e] ]; else k.always(n[k.status]);
return this;
},
abort: function(n) {
var e = n || w;
return i && i.abort(e), o(0, e), this;
}
};
if (g.promise(k).complete = b.add, k.success = k.done, k.error = k.fail, u.url = ((n || u.url || at) + "").replace(ct, "").replace(ht, rt[1] + "//"),
u.type = t.method || t.type || u.method || u.type, u.dataTypes = re.trim(u.dataType || "*").toLowerCase().match(se) || [ "" ],
null == u.crossDomain && (c = gt.exec(u.url.toLowerCase()), u.crossDomain = !(!c || c[1] === rt[1] && c[2] === rt[2] && (c[3] || ("http:" === c[1] ? "80" : "443")) === (rt[3] || ("http:" === rt[1] ? "80" : "443")))),
u.data && u.processData && "string" != typeof u.data && (u.data = re.param(u.data, u.traditional)),
I(mt, u, t, k), 2 === y) return k;
d = u.global, d && 0 === re.active++ && re.event.trigger("ajaxStart"), u.type = u.type.toUpperCase(),
u.hasContent = !ft.test(u.type), r = u.url, u.hasContent || (u.data && (r = u.url += (lt.test(r) ? "&" : "?") + u.data,
delete u.data), u.cache === !1 && (u.url = dt.test(r) ? r.replace(dt, "$1_=" + st++) : r + (lt.test(r) ? "&" : "?") + "_=" + st++)),
u.ifModified && (re.lastModified[r] && k.setRequestHeader("If-Modified-Since", re.lastModified[r]),
re.etag[r] && k.setRequestHeader("If-None-Match", re.etag[r])), (u.data && u.hasContent && u.contentType !== !1 || t.contentType) && k.setRequestHeader("Content-Type", u.contentType),
k.setRequestHeader("Accept", u.dataTypes[0] && u.accepts[u.dataTypes[0]] ? u.accepts[u.dataTypes[0]] + ("*" !== u.dataTypes[0] ? ", " + xt + "; q=0.01" : "") : u.accepts["*"]);
for (p in u.headers) k.setRequestHeader(p, u.headers[p]);
if (u.beforeSend && (u.beforeSend.call(f, k, u) === !1 || 2 === y)) return k.abort();
w = "abort";
for (p in {
success: 1,
error: 1,
complete: 1
}) k[p](u[p]);
if (i = I(vt, u, t, k)) {
k.readyState = 1, d && h.trigger("ajaxSend", [ k, u ]), u.async && u.timeout > 0 && (l = setTimeout(function() {
k.abort("timeout");
}, u.timeout));
try {
y = 1, i.send(v, o);
} catch (C) {
if (!(2 > y)) throw C;
o(-1, C);
}
} else o(-1, "No Transport");
return k;
},
getJSON: function(n, e, t) {
return re.get(n, e, t, "json");
},
getScript: function(n, t) {
return re.get(n, e, t, "script");
}
}), re.each([ "get", "post" ], function(n, t) {
re[t] = function(n, o, i, r) {
return re.isFunction(o) && (r = r || i, i = o, o = e), re.ajax({
url: n,
type: t,
dataType: r,
data: o,
success: i
});
};
}), re.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /(?:java|ecma)script/
},
converters: {
"text script": function(n) {
return re.globalEval(n), n;
}
}
}), re.ajaxPrefilter("script", function(n) {
n.cache === e && (n.cache = !1), n.crossDomain && (n.type = "GET");
}), re.ajaxTransport("script", function(n) {
if (n.crossDomain) {
var e, t;
return {
send: function(o, i) {
e = re("<script>").prop({
async: !0,
charset: n.scriptCharset,
src: n.url
}).on("load error", t = function(n) {
e.remove(), t = null, n && i("error" === n.type ? 404 : 200, n.type);
}), G.head.appendChild(e[0]);
},
abort: function() {
t && t();
}
};
}
});
var wt = [], kt = /(=)\?(?=&|$)|\?\?/;
re.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var n = wt.pop() || re.expando + "_" + st++;
return this[n] = !0, n;
}
}), re.ajaxPrefilter("json jsonp", function(t, o, i) {
var r, a, s, l = t.jsonp !== !1 && (kt.test(t.url) ? "url" : "string" == typeof t.data && !(t.contentType || "").indexOf("application/x-www-form-urlencoded") && kt.test(t.data) && "data");
return l || "jsonp" === t.dataTypes[0] ? (r = t.jsonpCallback = re.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback,
l ? t[l] = t[l].replace(kt, "$1" + r) : t.jsonp !== !1 && (t.url += (lt.test(t.url) ? "&" : "?") + t.jsonp + "=" + r),
t.converters["script json"] = function() {
return s || re.error(r + " was not called"), s[0];
}, t.dataTypes[0] = "json", a = n[r], n[r] = function() {
s = arguments;
}, i.always(function() {
n[r] = a, t[r] && (t.jsonpCallback = o.jsonpCallback, wt.push(r)), s && re.isFunction(a) && a(s[0]),
s = a = e;
}), "script") : void 0;
}), re.ajaxSettings.xhr = function() {
try {
return new XMLHttpRequest();
} catch (n) {}
};
var Ct = re.ajaxSettings.xhr(), St = {
0: 200,
1223: 204
}, Tt = 0, Et = {};
n.ActiveXObject && re(n).on("unload", function() {
for (var n in Et) Et[n]();
Et = e;
}), re.support.cors = !!Ct && "withCredentials" in Ct, re.support.ajax = Ct = !!Ct,
re.ajaxTransport(function(n) {
var t;
return re.support.cors || Ct && !n.crossDomain ? {
send: function(o, i) {
var r, a, s = n.xhr();
if (s.open(n.type, n.url, n.async, n.username, n.password), n.xhrFields) for (r in n.xhrFields) s[r] = n.xhrFields[r];
n.mimeType && s.overrideMimeType && s.overrideMimeType(n.mimeType), n.crossDomain || o["X-Requested-With"] || (o["X-Requested-With"] = "XMLHttpRequest");
for (r in o) s.setRequestHeader(r, o[r]);
t = function(n) {
return function() {
t && (delete Et[a], t = s.onload = s.onerror = null, "abort" === n ? s.abort() : "error" === n ? i(s.status || 404, s.statusText) : i(St[s.status] || s.status, s.statusText, "string" == typeof s.responseText ? {
text: s.responseText
} : e, s.getAllResponseHeaders()));
};
}, s.onload = t(), s.onerror = t("error"), t = Et[a = Tt++] = t("abort"), s.send(n.hasContent && n.data || null);
},
abort: function() {
t && t();
}
} : void 0;
});
var _t, zt, It = /^(?:toggle|show|hide)$/, Pt = new RegExp("^(?:([+-])=|)(" + ae + ")([a-z%]*)$", "i"), $t = /queueHooks$/, Nt = [ j ], Lt = {
"*": [ function(n, e) {
var t = this.createTween(n, e), o = t.cur(), i = Pt.exec(e), r = i && i[3] || (re.cssNumber[n] ? "" : "px"), a = (re.cssNumber[n] || "px" !== r && +o) && Pt.exec(re.css(t.elem, n)), s = 1, l = 20;
if (a && a[3] !== r) {
r = r || a[3], i = i || [], a = +o || 1;
do s = s || ".5", a /= s, re.style(t.elem, n, a + r); while (s !== (s = t.cur() / o) && 1 !== s && --l);
}
return i && (a = t.start = +a || +o || 0, t.unit = r, t.end = i[1] ? a + (i[1] + 1) * i[2] : +i[2]),
t;
} ]
};
re.Animation = re.extend(M, {
tweener: function(n, e) {
re.isFunction(n) ? (e = n, n = [ "*" ]) : n = n.split(" ");
for (var t, o = 0, i = n.length; i > o; o++) t = n[o], Lt[t] = Lt[t] || [], Lt[t].unshift(e);
},
prefilter: function(n, e) {
e ? Nt.unshift(n) : Nt.push(n);
}
}), re.Tween = D, D.prototype = {
constructor: D,
init: function(n, e, t, o, i, r) {
this.elem = n, this.prop = t, this.easing = i || "swing", this.options = e, this.start = this.now = this.cur(),
this.end = o, this.unit = r || (re.cssNumber[t] ? "" : "px");
},
cur: function() {
var n = D.propHooks[this.prop];
return n && n.get ? n.get(this) : D.propHooks._default.get(this);
},
run: function(n) {
var e, t = D.propHooks[this.prop];
return this.pos = e = this.options.duration ? re.easing[this.easing](n, this.options.duration * n, 0, 1, this.options.duration) : n,
this.now = (this.end - this.start) * e + this.start, this.options.step && this.options.step.call(this.elem, this.now, this),
t && t.set ? t.set(this) : D.propHooks._default.set(this), this;
}
}, D.prototype.init.prototype = D.prototype, D.propHooks = {
_default: {
get: function(n) {
var e;
return null == n.elem[n.prop] || n.elem.style && null != n.elem.style[n.prop] ? (e = re.css(n.elem, n.prop, ""),
e && "auto" !== e ? e : 0) : n.elem[n.prop];
},
set: function(n) {
re.fx.step[n.prop] ? re.fx.step[n.prop](n) : n.elem.style && (null != n.elem.style[re.cssProps[n.prop]] || re.cssHooks[n.prop]) ? re.style(n.elem, n.prop, n.now + n.unit) : n.elem[n.prop] = n.now;
}
}
}, D.propHooks.scrollTop = D.propHooks.scrollLeft = {
set: function(n) {
n.elem.nodeType && n.elem.parentNode && (n.elem[n.prop] = n.now);
}
}, re.each([ "toggle", "show", "hide" ], function(n, e) {
var t = re.fn[e];
re.fn[e] = function(n, o, i) {
return null == n || "boolean" == typeof n ? t.apply(this, arguments) : this.animate(O(e, !0), n, o, i);
};
}), re.fn.extend({
fadeTo: function(n, e, t, o) {
return this.filter(x).css("opacity", 0).show().end().animate({
opacity: e
}, n, t, o);
},
animate: function(n, e, t, o) {
var i = re.isEmptyObject(n), r = re.speed(e, t, o), a = function() {
var e = M(this, re.extend({}, n), r);
(i || be.get(this, "finish")) && e.stop(!0);
};
return a.finish = a, i || r.queue === !1 ? this.each(a) : this.queue(r.queue, a);
},
stop: function(n, t, o) {
var i = function(n) {
var e = n.stop;
delete n.stop, e(o);
};
return "string" != typeof n && (o = t, t = n, n = e), t && n !== !1 && this.queue(n || "fx", []),
this.each(function() {
var e = !0, t = null != n && n + "queueHooks", r = re.timers, a = be.get(this);
if (t) a[t] && a[t].stop && i(a[t]); else for (t in a) a[t] && a[t].stop && $t.test(t) && i(a[t]);
for (t = r.length; t--; ) r[t].elem !== this || null != n && r[t].queue !== n || (r[t].anim.stop(o),
e = !1, r.splice(t, 1));
(e || !o) && re.dequeue(this, n);
});
},
finish: function(n) {
return n !== !1 && (n = n || "fx"), this.each(function() {
var e, t = be.get(this), o = t[n + "queue"], i = t[n + "queueHooks"], r = re.timers, a = o ? o.length : 0;
for (t.finish = !0, re.queue(this, n, []), i && i.stop && i.stop.call(this, !0),
e = r.length; e--; ) r[e].elem === this && r[e].queue === n && (r[e].anim.stop(!0),
r.splice(e, 1));
for (e = 0; a > e; e++) o[e] && o[e].finish && o[e].finish.call(this);
delete t.finish;
});
}
}), re.each({
slideDown: O("show"),
slideUp: O("hide"),
slideToggle: O("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(n, e) {
re.fn[n] = function(n, t, o) {
return this.animate(e, n, t, o);
};
}), re.speed = function(n, e, t) {
var o = n && "object" == typeof n ? re.extend({}, n) : {
complete: t || !t && e || re.isFunction(n) && n,
duration: n,
easing: t && e || e && !re.isFunction(e) && e
};
return o.duration = re.fx.off ? 0 : "number" == typeof o.duration ? o.duration : o.duration in re.fx.speeds ? re.fx.speeds[o.duration] : re.fx.speeds._default,
(null == o.queue || o.queue === !0) && (o.queue = "fx"), o.old = o.complete, o.complete = function() {
re.isFunction(o.old) && o.old.call(this), o.queue && re.dequeue(this, o.queue);
}, o;
}, re.easing = {
linear: function(n) {
return n;
},
swing: function(n) {
return .5 - Math.cos(n * Math.PI) / 2;
}
}, re.timers = [], re.fx = D.prototype.init, re.fx.tick = function() {
var n, t = re.timers, o = 0;
for (_t = re.now(); o < t.length; o++) n = t[o], n() || t[o] !== n || t.splice(o--, 1);
t.length || re.fx.stop(), _t = e;
}, re.fx.timer = function(n) {
n() && re.timers.push(n) && re.fx.start();
}, re.fx.interval = 13, re.fx.start = function() {
zt || (zt = setInterval(re.fx.tick, re.fx.interval));
}, re.fx.stop = function() {
clearInterval(zt), zt = null;
}, re.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, re.fx.step = {}, re.expr && re.expr.filters && (re.expr.filters.animated = function(n) {
return re.grep(re.timers, function(e) {
return n === e.elem;
}).length;
}), re.fn.offset = function(n) {
if (arguments.length) return n === e ? this : this.each(function(e) {
re.offset.setOffset(this, n, e);
});
var t, o, i = this[0], r = {
top: 0,
left: 0
}, a = i && i.ownerDocument;
if (a) return t = a.documentElement, re.contains(t, i) ? (typeof i.getBoundingClientRect !== B && (r = i.getBoundingClientRect()),
o = H(a), {
top: r.top + o.pageYOffset - t.clientTop,
left: r.left + o.pageXOffset - t.clientLeft
}) : r;
}, re.offset = {
setOffset: function(n, e, t) {
var o, i, r, a, s, l, c, d = re.css(n, "position"), p = re(n), u = {};
"static" === d && (n.style.position = "relative"), s = p.offset(), r = re.css(n, "top"),
l = re.css(n, "left"), c = ("absolute" === d || "fixed" === d) && (r + l).indexOf("auto") > -1,
c ? (o = p.position(), a = o.top, i = o.left) : (a = parseFloat(r) || 0, i = parseFloat(l) || 0),
re.isFunction(e) && (e = e.call(n, t, s)), null != e.top && (u.top = e.top - s.top + a),
null != e.left && (u.left = e.left - s.left + i), "using" in e ? e.using.call(n, u) : p.css(u);
}
}, re.fn.extend({
position: function() {
if (this[0]) {
var n, e, t = this[0], o = {
top: 0,
left: 0
};
return "fixed" === re.css(t, "position") ? e = t.getBoundingClientRect() : (n = this.offsetParent(),
e = this.offset(), re.nodeName(n[0], "html") || (o = n.offset()), o.top += re.css(n[0], "borderTopWidth", !0),
o.left += re.css(n[0], "borderLeftWidth", !0)), {
top: e.top - o.top - re.css(t, "marginTop", !0),
left: e.left - o.left - re.css(t, "marginLeft", !0)
};
}
},
offsetParent: function() {
return this.map(function() {
for (var n = this.offsetParent || U; n && !re.nodeName(n, "html") && "static" === re.css(n, "position"); ) n = n.offsetParent;
return n || U;
});
}
}), re.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(t, o) {
var i = "pageYOffset" === o;
re.fn[t] = function(r) {
return re.access(this, function(t, r, a) {
var s = H(t);
return a === e ? s ? s[o] : t[r] : (s ? s.scrollTo(i ? n.pageXOffset : a, i ? a : n.pageYOffset) : t[r] = a,
void 0);
}, t, r, arguments.length, null);
};
}), re.each({
Height: "height",
Width: "width"
}, function(n, t) {
re.each({
padding: "inner" + n,
content: t,
"": "outer" + n
}, function(o, i) {
re.fn[i] = function(i, r) {
var a = arguments.length && (o || "boolean" != typeof i), s = o || (i === !0 || r === !0 ? "margin" : "border");
return re.access(this, function(t, o, i) {
var r;
return re.isWindow(t) ? t.document.documentElement["client" + n] : 9 === t.nodeType ? (r = t.documentElement,
Math.max(t.body["scroll" + n], r["scroll" + n], t.body["offset" + n], r["offset" + n], r["client" + n])) : i === e ? re.css(t, o, s) : re.style(t, o, i, s);
}, t, a ? i : e, a, null);
};
});
}), re.fn.size = function() {
return this.length;
}, re.fn.andSelf = re.fn.addBack, "object" == typeof module && module && "object" == typeof module.exports ? module.exports = re : "function" == typeof define && define.amd && define("jquery", [], function() {
return re;
}), "object" == typeof n && "object" == typeof n.document && (n.jQuery = n.$ = re);
})(window), function() {
var n = this, e = n._, t = {}, o = Array.prototype, i = Object.prototype, r = Function.prototype, a = o.push, s = o.slice, l = o.concat, c = i.toString, d = i.hasOwnProperty, p = o.forEach, u = o.map, f = o.reduce, h = o.reduceRight, g = o.filter, b = o.every, m = o.some, v = o.indexOf, x = o.lastIndexOf, y = Array.isArray, w = Object.keys, k = r.bind, C = function(n) {
return n instanceof C ? n : this instanceof C ? (this._wrapped = n, void 0) : new C(n);
};
"undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = C),
exports._ = C) : n._ = C, C.VERSION = "1.4.4";
var S = C.each = C.forEach = function(n, e, o) {
if (null != n) if (p && n.forEach === p) n.forEach(e, o); else if (n.length === +n.length) {
for (var i = 0, r = n.length; r > i; i++) if (e.call(o, n[i], i, n) === t) return;
} else for (var a in n) if (C.has(n, a) && e.call(o, n[a], a, n) === t) return;
};
C.map = C.collect = function(n, e, t) {
var o = [];
return null == n ? o : u && n.map === u ? n.map(e, t) : (S(n, function(n, i, r) {
o[o.length] = e.call(t, n, i, r);
}), o);
};
var T = "Reduce of empty array with no initial value";
C.reduce = C.foldl = C.inject = function(n, e, t, o) {
var i = arguments.length > 2;
if (null == n && (n = []), f && n.reduce === f) return o && (e = C.bind(e, o)),
i ? n.reduce(e, t) : n.reduce(e);
if (S(n, function(n, r, a) {
i ? t = e.call(o, t, n, r, a) : (t = n, i = !0);
}), !i) throw new TypeError(T);
return t;
}, C.reduceRight = C.foldr = function(n, e, t, o) {
var i = arguments.length > 2;
if (null == n && (n = []), h && n.reduceRight === h) return o && (e = C.bind(e, o)),
i ? n.reduceRight(e, t) : n.reduceRight(e);
var r = n.length;
if (r !== +r) {
var a = C.keys(n);
r = a.length;
}
if (S(n, function(s, l, c) {
l = a ? a[--r] : --r, i ? t = e.call(o, t, n[l], l, c) : (t = n[l], i = !0);
}), !i) throw new TypeError(T);
return t;
}, C.find = C.detect = function(n, e, t) {
var o;
return E(n, function(n, i, r) {
return e.call(t, n, i, r) ? (o = n, !0) : void 0;
}), o;
}, C.filter = C.select = function(n, e, t) {
var o = [];
return null == n ? o : g && n.filter === g ? n.filter(e, t) : (S(n, function(n, i, r) {
e.call(t, n, i, r) && (o[o.length] = n);
}), o);
}, C.reject = function(n, e, t) {
return C.filter(n, function(n, o, i) {
return !e.call(t, n, o, i);
}, t);
}, C.every = C.all = function(n, e, o) {
e || (e = C.identity);
var i = !0;
return null == n ? i : b && n.every === b ? n.every(e, o) : (S(n, function(n, r, a) {
return (i = i && e.call(o, n, r, a)) ? void 0 : t;
}), !!i);
};
var E = C.some = C.any = function(n, e, o) {
e || (e = C.identity);
var i = !1;
return null == n ? i : m && n.some === m ? n.some(e, o) : (S(n, function(n, r, a) {
return i || (i = e.call(o, n, r, a)) ? t : void 0;
}), !!i);
};
C.contains = C.include = function(n, e) {
return null == n ? !1 : v && n.indexOf === v ? -1 != n.indexOf(e) : E(n, function(n) {
return n === e;
});
}, C.invoke = function(n, e) {
var t = s.call(arguments, 2), o = C.isFunction(e);
return C.map(n, function(n) {
return (o ? e : n[e]).apply(n, t);
});
}, C.pluck = function(n, e) {
return C.map(n, function(n) {
return n[e];
});
}, C.where = function(n, e, t) {
return C.isEmpty(e) ? t ? null : [] : C[t ? "find" : "filter"](n, function(n) {
for (var t in e) if (e[t] !== n[t]) return !1;
return !0;
});
}, C.findWhere = function(n, e) {
return C.where(n, e, !0);
}, C.max = function(n, e, t) {
if (!e && C.isArray(n) && n[0] === +n[0] && n.length < 65535) return Math.max.apply(Math, n);
if (!e && C.isEmpty(n)) return -1/0;
var o = {
computed: -1/0,
value: -1/0
};
return S(n, function(n, i, r) {
var a = e ? e.call(t, n, i, r) : n;
a >= o.computed && (o = {
value: n,
computed: a
});
}), o.value;
}, C.min = function(n, e, t) {
if (!e && C.isArray(n) && n[0] === +n[0] && n.length < 65535) return Math.min.apply(Math, n);
if (!e && C.isEmpty(n)) return 1/0;
var o = {
computed: 1/0,
value: 1/0
};
return S(n, function(n, i, r) {
var a = e ? e.call(t, n, i, r) : n;
a < o.computed && (o = {
value: n,
computed: a
});
}), o.value;
}, C.shuffle = function(n) {
var e, t = 0, o = [];
return S(n, function(n) {
e = C.random(t++), o[t - 1] = o[e], o[e] = n;
}), o;
};
var _ = function(n) {
return C.isFunction(n) ? n : function(e) {
return e[n];
};
};
C.sortBy = function(n, e, t) {
var o = _(e);
return C.pluck(C.map(n, function(n, e, i) {
return {
value: n,
index: e,
criteria: o.call(t, n, e, i)
};
}).sort(function(n, e) {
var t = n.criteria, o = e.criteria;
if (t !== o) {
if (t > o || void 0 === t) return 1;
if (o > t || void 0 === o) return -1;
}
return n.index < e.index ? -1 : 1;
}), "value");
};
var z = function(n, e, t, o) {
var i = {}, r = _(e || C.identity);
return S(n, function(e, a) {
var s = r.call(t, e, a, n);
o(i, s, e);
}), i;
};
C.groupBy = function(n, e, t) {
return z(n, e, t, function(n, e, t) {
(C.has(n, e) ? n[e] : n[e] = []).push(t);
});
}, C.countBy = function(n, e, t) {
return z(n, e, t, function(n, e) {
C.has(n, e) || (n[e] = 0), n[e]++;
});
}, C.sortedIndex = function(n, e, t, o) {
t = null == t ? C.identity : _(t);
for (var i = t.call(o, e), r = 0, a = n.length; a > r; ) {
var s = r + a >>> 1;
t.call(o, n[s]) < i ? r = s + 1 : a = s;
}
return r;
}, C.toArray = function(n) {
return n ? C.isArray(n) ? s.call(n) : n.length === +n.length ? C.map(n, C.identity) : C.values(n) : [];
}, C.size = function(n) {
return null == n ? 0 : n.length === +n.length ? n.length : C.keys(n).length;
}, C.first = C.head = C.take = function(n, e, t) {
return null == n ? void 0 : null == e || t ? n[0] : s.call(n, 0, e);
}, C.initial = function(n, e, t) {
return s.call(n, 0, n.length - (null == e || t ? 1 : e));
}, C.last = function(n, e, t) {
return null == n ? void 0 : null == e || t ? n[n.length - 1] : s.call(n, Math.max(n.length - e, 0));
}, C.rest = C.tail = C.drop = function(n, e, t) {
return s.call(n, null == e || t ? 1 : e);
}, C.compact = function(n) {
return C.filter(n, C.identity);
};
var I = function(n, e, t) {
return S(n, function(n) {
C.isArray(n) ? e ? a.apply(t, n) : I(n, e, t) : t.push(n);
}), t;
};
C.flatten = function(n, e) {
return I(n, e, []);
}, C.without = function(n) {
return C.difference(n, s.call(arguments, 1));
}, C.uniq = C.unique = function(n, e, t, o) {
C.isFunction(e) && (o = t, t = e, e = !1);
var i = t ? C.map(n, t, o) : n, r = [], a = [];
return S(i, function(t, o) {
(e ? o && a[a.length - 1] === t : C.contains(a, t)) || (a.push(t), r.push(n[o]));
}), r;
}, C.union = function() {
return C.uniq(l.apply(o, arguments));
}, C.intersection = function(n) {
var e = s.call(arguments, 1);
return C.filter(C.uniq(n), function(n) {
return C.every(e, function(e) {
return C.indexOf(e, n) >= 0;
});
});
}, C.difference = function(n) {
var e = l.apply(o, s.call(arguments, 1));
return C.filter(n, function(n) {
return !C.contains(e, n);
});
}, C.zip = function() {
for (var n = s.call(arguments), e = C.max(C.pluck(n, "length")), t = new Array(e), o = 0; e > o; o++) t[o] = C.pluck(n, "" + o);
return t;
}, C.object = function(n, e) {
if (null == n) return {};
for (var t = {}, o = 0, i = n.length; i > o; o++) e ? t[n[o]] = e[o] : t[n[o][0]] = n[o][1];
return t;
}, C.indexOf = function(n, e, t) {
if (null == n) return -1;
var o = 0, i = n.length;
if (t) {
if ("number" != typeof t) return o = C.sortedIndex(n, e), n[o] === e ? o : -1;
o = 0 > t ? Math.max(0, i + t) : t;
}
if (v && n.indexOf === v) return n.indexOf(e, t);
for (;i > o; o++) if (n[o] === e) return o;
return -1;
}, C.lastIndexOf = function(n, e, t) {
if (null == n) return -1;
var o = null != t;
if (x && n.lastIndexOf === x) return o ? n.lastIndexOf(e, t) : n.lastIndexOf(e);
for (var i = o ? t : n.length; i--; ) if (n[i] === e) return i;
return -1;
}, C.range = function(n, e, t) {
arguments.length <= 1 && (e = n || 0, n = 0), t = arguments[2] || 1;
for (var o = Math.max(Math.ceil((e - n) / t), 0), i = 0, r = new Array(o); o > i; ) r[i++] = n,
n += t;
return r;
}, C.bind = function(n, e) {
if (n.bind === k && k) return k.apply(n, s.call(arguments, 1));
var t = s.call(arguments, 2);
return function() {
return n.apply(e, t.concat(s.call(arguments)));
};
}, C.partial = function(n) {
var e = s.call(arguments, 1);
return function() {
return n.apply(this, e.concat(s.call(arguments)));
};
}, C.bindAll = function(n) {
var e = s.call(arguments, 1);
return 0 === e.length && (e = C.functions(n)), S(e, function(e) {
n[e] = C.bind(n[e], n);
}), n;
}, C.memoize = function(n, e) {
var t = {};
return e || (e = C.identity), function() {
var o = e.apply(this, arguments);
return C.has(t, o) ? t[o] : t[o] = n.apply(this, arguments);
};
}, C.delay = function(n, e) {
var t = s.call(arguments, 2);
return setTimeout(function() {
return n.apply(null, t);
}, e);
}, C.defer = function(n) {
return C.delay.apply(C, [ n, 1 ].concat(s.call(arguments, 1)));
}, C.throttle = function(n, e) {
var t, o, i, r, a = 0, s = function() {
a = new Date(), i = null, r = n.apply(t, o);
};
return function() {
var l = new Date(), c = e - (l - a);
return t = this, o = arguments, 0 >= c ? (clearTimeout(i), i = null, a = l, r = n.apply(t, o)) : i || (i = setTimeout(s, c)),
r;
};
}, C.debounce = function(n, e, t) {
var o, i;
return function() {
var r = this, a = arguments, s = function() {
o = null, t || (i = n.apply(r, a));
}, l = t && !o;
return clearTimeout(o), o = setTimeout(s, e), l && (i = n.apply(r, a)), i;
};
}, C.once = function(n) {
var e, t = !1;
return function() {
return t ? e : (t = !0, e = n.apply(this, arguments), n = null, e);
};
}, C.wrap = function(n, e) {
return function() {
var t = [ n ];
return a.apply(t, arguments), e.apply(this, t);
};
}, C.compose = function() {
var n = arguments;
return function() {
for (var e = arguments, t = n.length - 1; t >= 0; t--) e = [ n[t].apply(this, e) ];
return e[0];
};
}, C.after = function(n, e) {
return 0 >= n ? e() : function() {
return --n < 1 ? e.apply(this, arguments) : void 0;
};
}, C.keys = w || function(n) {
if (n !== Object(n)) throw new TypeError("Invalid object");
var e = [];
for (var t in n) C.has(n, t) && (e[e.length] = t);
return e;
}, C.values = function(n) {
var e = [];
for (var t in n) C.has(n, t) && e.push(n[t]);
return e;
}, C.pairs = function(n) {
var e = [];
for (var t in n) C.has(n, t) && e.push([ t, n[t] ]);
return e;
}, C.invert = function(n) {
var e = {};
for (var t in n) C.has(n, t) && (e[n[t]] = t);
return e;
}, C.functions = C.methods = function(n) {
var e = [];
for (var t in n) C.isFunction(n[t]) && e.push(t);
return e.sort();
}, C.extend = function(n) {
return S(s.call(arguments, 1), function(e) {
if (e) for (var t in e) n[t] = e[t];
}), n;
}, C.pick = function(n) {
var e = {}, t = l.apply(o, s.call(arguments, 1));
return S(t, function(t) {
t in n && (e[t] = n[t]);
}), e;
}, C.omit = function(n) {
var e = {}, t = l.apply(o, s.call(arguments, 1));
for (var i in n) C.contains(t, i) || (e[i] = n[i]);
return e;
}, C.defaults = function(n) {
return S(s.call(arguments, 1), function(e) {
if (e) for (var t in e) null == n[t] && (n[t] = e[t]);
}), n;
}, C.clone = function(n) {
return C.isObject(n) ? C.isArray(n) ? n.slice() : C.extend({}, n) : n;
}, C.tap = function(n, e) {
return e(n), n;
};
var P = function(n, e, t, o) {
if (n === e) return 0 !== n || 1 / n == 1 / e;
if (null == n || null == e) return n === e;
n instanceof C && (n = n._wrapped), e instanceof C && (e = e._wrapped);
var i = c.call(n);
if (i != c.call(e)) return !1;
switch (i) {
case "[object String]":
return n == String(e);
case "[object Number]":
return n != +n ? e != +e : 0 == n ? 1 / n == 1 / e : n == +e;
case "[object Date]":
case "[object Boolean]":
return +n == +e;
case "[object RegExp]":
return n.source == e.source && n.global == e.global && n.multiline == e.multiline && n.ignoreCase == e.ignoreCase;
}
if ("object" != typeof n || "object" != typeof e) return !1;
for (var r = t.length; r--; ) if (t[r] == n) return o[r] == e;
t.push(n), o.push(e);
var a = 0, s = !0;
if ("[object Array]" == i) {
if (a = n.length, s = a == e.length) for (;a-- && (s = P(n[a], e[a], t, o)); ) ;
} else {
var l = n.constructor, d = e.constructor;
if (l !== d && !(C.isFunction(l) && l instanceof l && C.isFunction(d) && d instanceof d)) return !1;
for (var p in n) if (C.has(n, p) && (a++, !(s = C.has(e, p) && P(n[p], e[p], t, o)))) break;
if (s) {
for (p in e) if (C.has(e, p) && !a--) break;
s = !a;
}
}
return t.pop(), o.pop(), s;
};
C.isEqual = function(n, e) {
return P(n, e, [], []);
}, C.isEmpty = function(n) {
if (null == n) return !0;
if (C.isArray(n) || C.isString(n)) return 0 === n.length;
for (var e in n) if (C.has(n, e)) return !1;
return !0;
}, C.isElement = function(n) {
return !(!n || 1 !== n.nodeType);
}, C.isArray = y || function(n) {
return "[object Array]" == c.call(n);
}, C.isObject = function(n) {
return n === Object(n);
}, S([ "Arguments", "Function", "String", "Number", "Date", "RegExp" ], function(n) {
C["is" + n] = function(e) {
return c.call(e) == "[object " + n + "]";
};
}), C.isArguments(arguments) || (C.isArguments = function(n) {
return !(!n || !C.has(n, "callee"));
}), "function" != typeof /./ && (C.isFunction = function(n) {
return "function" == typeof n;
}), C.isFinite = function(n) {
return isFinite(n) && !isNaN(parseFloat(n));
}, C.isNaN = function(n) {
return C.isNumber(n) && n != +n;
}, C.isBoolean = function(n) {
return n === !0 || n === !1 || "[object Boolean]" == c.call(n);
}, C.isNull = function(n) {
return null === n;
}, C.isUndefined = function(n) {
return void 0 === n;
}, C.has = function(n, e) {
return d.call(n, e);
}, C.noConflict = function() {
return n._ = e, this;
}, C.identity = function(n) {
return n;
}, C.times = function(n, e, t) {
for (var o = Array(n), i = 0; n > i; i++) o[i] = e.call(t, i);
return o;
}, C.random = function(n, e) {
return null == e && (e = n, n = 0), n + Math.floor(Math.random() * (e - n + 1));
};
var $ = {
escape: {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
"/": "&#x2F;"
}
};
$.unescape = C.invert($.escape);
var N = {
escape: new RegExp("[" + C.keys($.escape).join("") + "]", "g"),
unescape: new RegExp("(" + C.keys($.unescape).join("|") + ")", "g")
};
C.each([ "escape", "unescape" ], function(n) {
C[n] = function(e) {
return null == e ? "" : ("" + e).replace(N[n], function(e) {
return $[n][e];
});
};
}), C.result = function(n, e) {
if (null == n) return null;
var t = n[e];
return C.isFunction(t) ? t.call(n) : t;
}, C.mixin = function(n) {
S(C.functions(n), function(e) {
var t = C[e] = n[e];
C.prototype[e] = function() {
var n = [ this._wrapped ];
return a.apply(n, arguments), j.call(this, t.apply(C, n));
};
});
};
var L = 0;
C.uniqueId = function(n) {
var e = ++L + "";
return n ? n + e : e;
}, C.templateSettings = {
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
var R = /(.)^/, M = {
"'": "'",
"\\": "\\",
"\r": "r",
"\n": "n",
" ": "t",
"\u2028": "u2028",
"\u2029": "u2029"
}, A = /\\|'|\r|\n|\t|\u2028|\u2029/g;
C.template = function(n, e, t) {
var o;
t = C.defaults({}, t, C.templateSettings);
var i = new RegExp([ (t.escape || R).source, (t.interpolate || R).source, (t.evaluate || R).source ].join("|") + "|$", "g"), r = 0, a = "__p+='";
n.replace(i, function(e, t, o, i, s) {
return a += n.slice(r, s).replace(A, function(n) {
return "\\" + M[n];
}), t && (a += "'+\n((__t=(" + t + "))==null?'':_.escape(__t))+\n'"), o && (a += "'+\n((__t=(" + o + "))==null?'':__t)+\n'"),
i && (a += "';\n" + i + "\n__p+='"), r = s + e.length, e;
}), a += "';\n", t.variable || (a = "with(obj||{}){\n" + a + "}\n"), a = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + a + "return __p;\n";
try {
o = new Function(t.variable || "obj", "_", a);
} catch (s) {
throw s.source = a, s;
}
if (e) return o(e, C);
var l = function(n) {
return o.call(this, n, C);
};
return l.source = "function(" + (t.variable || "obj") + "){\n" + a + "}", l;
}, C.chain = function(n) {
return C(n).chain();
};
var j = function(n) {
return this._chain ? C(n).chain() : n;
};
C.mixin(C), S([ "pop", "push", "reverse", "shift", "sort", "splice", "unshift" ], function(n) {
var e = o[n];
C.prototype[n] = function() {
var t = this._wrapped;
return e.apply(t, arguments), "shift" != n && "splice" != n || 0 !== t.length || delete t[0],
j.call(this, t);
};
}), S([ "concat", "join", "slice" ], function(n) {
var e = o[n];
C.prototype[n] = function() {
return j.call(this, e.apply(this._wrapped, arguments));
};
}), C.extend(C.prototype, {
chain: function() {
return this._chain = !0, this;
},
value: function() {
return this._wrapped;
}
});
}.call(this), define("underscore", function(n) {
return function() {
var e;
return e || n._;
};
}(this)), function(n, e) {
"object" == typeof exports ? module.exports = e() : "function" == typeof define && define.amd ? define("crel", e) : n.crel = e();
}(this, function() {
function n() {
var t, o = window.document, i = arguments, r = o.createElement(i[0]), a = i[1], s = 2, l = i.length, c = n.attrMap;
if (1 === l) return r;
if (("object" != typeof a || e(a)) && (--s, a = null), 1 === l - s && "string" == typeof i[s] && void 0 !== r.textContent) r.textContent = i[s]; else for (;l > s; ++s) t = i[s],
null != t && (e(t) || (t = o.createTextNode(t)), r.appendChild(t));
for (var d in a) if (c[d]) {
var p = n.attrMap[d];
"function" == typeof p ? p(r, a[d]) : r.setAttribute(p, a[d]);
} else r.setAttribute(d, a[d]);
return r;
}
var e = "object" == typeof Node ? function(n) {
return n instanceof Node;
} : function(n) {
return n && "object" == typeof n && "number" == typeof n.nodeType && "string" == typeof n.nodeName;
};
return n.attrMap = {}, n.isNode = e, n;
});
var saveAs = saveAs || navigator.msSaveBlob && navigator.msSaveBlob.bind(navigator) || function(n) {
try {
var e = n.document, t = function() {
return n.URL || n.webkitURL || n;
}, o = n.URL || n.webkitURL || n, i = e.createElementNS("http://www.w3.org/1999/xhtml", "a"), r = "download" in i, a = function(t) {
var o = e.createEvent("MouseEvents");
o.initMouseEvent("click", !0, !1, n, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), t.dispatchEvent(o);
}, s = n.webkitRequestFileSystem, l = n.requestFileSystem || s || n.mozRequestFileSystem, c = function(e) {
(n.setImmediate || n.setTimeout)(function() {
throw e;
}, 0);
}, d = "application/octet-stream", p = 0, u = [], f = function() {
for (var n = u.length; n--; ) {
var e = u[n];
"string" == typeof e ? o.revokeObjectURL(e) : e.remove();
}
u.length = 0;
}, h = function(n, e, t) {
e = [].concat(e);
for (var o = e.length; o--; ) {
var i = n["on" + e[o]];
if ("function" == typeof i) try {
i.call(n, t || n);
} catch (r) {
c(r);
}
}
}, g = function(e, o) {
var c, f, g, b = this, m = e.type, v = !1, x = function() {
var n = t().createObjectURL(e);
return u.push(n), n;
}, y = function() {
h(b, "writestart progress write writeend".split(" "));
}, w = function() {
(v || !c) && (c = x(e)), f && (f.location.href = c), b.readyState = b.DONE, y();
}, k = function(n) {
return function() {
return b.readyState !== b.DONE ? n.apply(this, arguments) : void 0;
};
}, C = {
create: !0,
exclusive: !1
};
return b.readyState = b.INIT, o || (o = "download"), r ? (c = x(e), i.href = c,
i.download = o, a(i), b.readyState = b.DONE, y(), void 0) : (n.chrome && m && m !== d && (g = e.slice || e.webkitSlice,
e = g.call(e, 0, e.size, d), v = !0), s && "download" !== o && (o += ".download"),
f = m === d || s ? n : n.open(), l ? (p += e.size, l(n.TEMPORARY, p, k(function(n) {
n.root.getDirectory("saved", C, k(function(n) {
var t = function() {
n.getFile(o, C, k(function(n) {
n.createWriter(k(function(t) {
t.onwriteend = function(e) {
f.location.href = n.toURL(), u.push(n), b.readyState = b.DONE, h(b, "writeend", e);
}, t.onerror = function() {
var n = t.error;
n.code !== n.ABORT_ERR && w();
}, "writestart progress write abort".split(" ").forEach(function(n) {
t["on" + n] = b["on" + n];
}), t.write(e), b.abort = function() {
t.abort(), b.readyState = b.DONE;
}, b.readyState = b.WRITING;
}), w);
}), w);
};
n.getFile(o, {
create: !1
}, k(function(n) {
n.remove(), t();
}), k(function(n) {
n.code === n.NOT_FOUND_ERR ? t() : w();
}));
}), w);
}), w), void 0) : (w(), void 0));
}, b = g.prototype, m = function(n, e) {
return new g(n, e);
};
return b.abort = function() {
var n = this;
n.readyState = n.DONE, h(n, "abort");
}, b.readyState = b.INIT = 0, b.WRITING = 1, b.DONE = 2, b.error = b.onwritestart = b.onprogress = b.onwrite = b.onabort = b.onerror = b.onwriteend = null,
n.addEventListener("unload", f, !1), m;
} catch (v) {
return void 0;
}
}(self);
define("libs/FileSaver", function() {}), "undefined" != typeof module && module.exports && (module.exports = printStackTrace),
printStackTrace.implementation = function() {}, printStackTrace.implementation.prototype = {
run: function(n, e) {
return n = n || this.createException(), e = e || this.mode(n), "other" === e ? this.other(arguments.callee) : this[e](n);
},
createException: function() {
try {
this.undef();
} catch (n) {
return n;
}
},
mode: function(n) {
return n.arguments && n.stack ? "chrome" : n.stack && n.sourceURL ? "safari" : n.stack && n.number ? "ie" : "string" == typeof n.message && "undefined" != typeof window && window.opera ? n.stacktrace ? n.message.indexOf("\n") > -1 && n.message.split("\n").length > n.stacktrace.split("\n").length ? "opera9" : n.stack ? n.stacktrace.indexOf("called from line") < 0 ? "opera10b" : "opera11" : "opera10a" : "opera9" : n.stack ? "firefox" : "other";
},
instrumentFunction: function(n, e, t) {
n = n || window;
var o = n[e];
n[e] = function() {
return t.call(this, printStackTrace().slice(4)), n[e]._instrumented.apply(this, arguments);
}, n[e]._instrumented = o;
},
deinstrumentFunction: function(n, e) {
n[e].constructor === Function && n[e]._instrumented && n[e]._instrumented.constructor === Function && (n[e] = n[e]._instrumented);
},
chrome: function(n) {
var e = (n.stack + "\n").replace(/^\S[^\(]+?[\n$]/gm, "").replace(/^\s+(at eval )?at\s+/gm, "").replace(/^([^\(]+?)([\n$])/gm, "{anonymous}()@$1$2").replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm, "{anonymous}()@$1").split("\n");
return e.pop(), e;
},
safari: function(n) {
return n.stack.replace(/\[native code\]\n/m, "").replace(/^(?=\w+Error\:).*$\n/m, "").replace(/^@/gm, "{anonymous}()@").split("\n");
},
ie: function(n) {
var e = /^.*at (\w+) \(([^\)]+)\)$/gm;
return n.stack.replace(/at Anonymous function /gm, "{anonymous}()@").replace(/^(?=\w+Error\:).*$\n/m, "").replace(e, "$1@$2").split("\n");
},
firefox: function(n) {
return n.stack.replace(/(?:\n@:0)?\s+$/m, "").replace(/^[\(@]/gm, "{anonymous}()@").split("\n");
},
opera11: function(n) {
for (var e = "{anonymous}", t = /^.*line (\d+), column (\d+)(?: in (.+))? in (\S+):$/, o = n.stacktrace.split("\n"), i = [], r = 0, a = o.length; a > r; r += 2) {
var s = t.exec(o[r]);
if (s) {
var l = s[4] + ":" + s[1] + ":" + s[2], c = s[3] || "global code";
c = c.replace(/<anonymous function: (\S+)>/, "$1").replace(/<anonymous function>/, e),
i.push(c + "@" + l + " -- " + o[r + 1].replace(/^\s+/, ""));
}
}
return i;
},
opera10b: function(n) {
for (var e = /^(.*)@(.+):(\d+)$/, t = n.stacktrace.split("\n"), o = [], i = 0, r = t.length; r > i; i++) {
var a = e.exec(t[i]);
if (a) {
var s = a[1] ? a[1] + "()" : "global code";
o.push(s + "@" + a[2] + ":" + a[3]);
}
}
return o;
},
opera10a: function(n) {
for (var e = "{anonymous}", t = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i, o = n.stacktrace.split("\n"), i = [], r = 0, a = o.length; a > r; r += 2) {
var s = t.exec(o[r]);
if (s) {
var l = s[3] || e;
i.push(l + "()@" + s[2] + ":" + s[1] + " -- " + o[r + 1].replace(/^\s+/, ""));
}
}
return i;
},
opera9: function(n) {
for (var e = "{anonymous}", t = /Line (\d+).*script (?:in )?(\S+)/i, o = n.message.split("\n"), i = [], r = 2, a = o.length; a > r; r += 2) {
var s = t.exec(o[r]);
s && i.push(e + "()@" + s[2] + ":" + s[1] + " -- " + o[r + 1].replace(/^\s+/, ""));
}
return i;
},
other: function(n) {
for (var e, t, o = "{anonymous}", i = /function\s*([\w\-$]+)?\s*\(/i, r = [], a = 10; n && n.arguments && r.length < a; ) e = i.test(n.toString()) ? RegExp.$1 || o : o,
t = Array.prototype.slice.call(n.arguments || []), r[r.length] = e + "(" + this.stringifyArguments(t) + ")",
n = n.caller;
return r;
},
stringifyArguments: function(n) {
for (var e = [], t = Array.prototype.slice, o = 0; o < n.length; ++o) {
var i = n[o];
void 0 === i ? e[o] = "undefined" : null === i ? e[o] = "null" : i.constructor && (i.constructor === Array ? e[o] = i.length < 3 ? "[" + this.stringifyArguments(i) + "]" : "[" + this.stringifyArguments(t.call(i, 0, 1)) + "..." + this.stringifyArguments(t.call(i, -1)) + "]" : i.constructor === Object ? e[o] = "#object" : i.constructor === Function ? e[o] = "#function" : i.constructor === String ? e[o] = '"' + i + '"' : i.constructor === Number && (e[o] = i));
}
return e.join(",");
},
sourceCache: {},
ajax: function(n) {
var e = this.createXMLHTTPObject();
if (e) try {
return e.open("GET", n, !1), e.send(null), e.responseText;
} catch (t) {}
return "";
},
createXMLHTTPObject: function() {
for (var n, e = [ function() {
return new XMLHttpRequest();
}, function() {
return new ActiveXObject("Msxml2.XMLHTTP");
}, function() {
return new ActiveXObject("Msxml3.XMLHTTP");
}, function() {
return new ActiveXObject("Microsoft.XMLHTTP");
} ], t = 0; t < e.length; t++) try {
return n = e[t](), this.createXMLHTTPObject = e[t], n;
} catch (o) {}
},
isSameDomain: function(n) {
return "undefined" != typeof location && -1 !== n.indexOf(location.hostname);
},
getSource: function(n) {
return n in this.sourceCache || (this.sourceCache[n] = this.ajax(n).split("\n")),
this.sourceCache[n];
},
guessAnonymousFunctions: function(n) {
for (var e = 0; e < n.length; ++e) {
var t = /\{anonymous\}\(.*\)@(.*)/, o = /^(.*?)(?::(\d+))(?::(\d+))?(?: -- .+)?$/, i = n[e], r = t.exec(i);
if (r) {
var a = o.exec(r[1]);
if (a) {
var s = a[1], l = a[2], c = a[3] || 0;
if (s && this.isSameDomain(s) && l) {
var d = this.guessAnonymousFunction(s, l, c);
n[e] = i.replace("{anonymous}", d);
}
}
}
}
return n;
},
guessAnonymousFunction: function(n, e) {
var t;
try {
t = this.findFunctionName(this.getSource(n), e);
} catch (o) {
t = "getSource failed with url: " + n + ", exception: " + o.toString();
}
return t;
},
findFunctionName: function(n, e) {
for (var t, o, i, r = /function\s+([^(]*?)\s*\(([^)]*)\)/, a = /['"]?([$_A-Za-z][$_A-Za-z0-9]*)['"]?\s*[:=]\s*function\b/, s = /['"]?([$_A-Za-z][$_A-Za-z0-9]*)['"]?\s*[:=]\s*(?:eval|new Function)\b/, l = "", c = Math.min(e, 20), d = 0; c > d; ++d) if (t = n[e - d - 1],
i = t.indexOf("//"), i >= 0 && (t = t.substr(0, i)), t) {
if (l = t + l, o = a.exec(l), o && o[1]) return o[1];
if (o = r.exec(l), o && o[1]) return o[1];
if (o = s.exec(l), o && o[1]) return o[1];
}
return "(?)";
}
}, define("libs/stacktrace", function() {}), define("utils", [ "jquery", "underscore", "crel", "libs/FileSaver", "libs/stacktrace" ], function($, _, crel) {
function jqElt(n) {
return _.isString(n) ? $(n) : n;
}
function inputError(n, e) {
void 0 !== e && (n.stop(!0, !0).addClass("error").delay(1e3).switchClass("error"),
e.stopPropagation());
}
var utils = {};
utils.getURLParameter = function(n) {
var e = new RegExp(n + "=(.+?)(&|$)");
try {
return decodeURIComponent(e.exec(location.search)[1]);
} catch (t) {
return void 0;
}
}, utils.getInputValue = function(n) {
return n = jqElt(n), n.val();
}, utils.setInputValue = function(n, e) {
n = jqElt(n), n.val(e);
}, utils.getInputTextValue = function(n, e, t) {
n = jqElt(n);
var o = n.val();
return void 0 === o ? (inputError(n, e), void 0) : (o = utils.trim(o), 0 === o.length || void 0 !== t && !o.match(t) ? (inputError(n, e),
void 0) : o);
}, utils.getInputIntValue = function(n, e, t, o) {
n = jqElt(n);
var i = utils.getInputTextValue(n, e);
return void 0 === i ? void 0 : (i = parseInt(i), 0/0 === i || void 0 !== t && t > i || void 0 !== o && i > o ? (inputError(n, e),
void 0) : i);
}, utils.getInputRegExpValue = function(n, e) {
n = jqElt(n);
var t = utils.getInputTextValue(n, e);
if (void 0 === t) return void 0;
try {
new RegExp(t);
} catch (o) {
return inputError(n, e), void 0;
}
return t;
}, utils.getInputJsValue = function(element, event) {
element = jqElt(element);
var value = utils.getInputTextValue(element, event);
if (void 0 === value) return void 0;
try {
eval("var test=" + value);
} catch (e) {
return inputError(element, event), void 0;
}
return value;
}, utils.getInputChecked = function(n) {
return n = jqElt(n), n.prop("checked");
}, utils.setInputChecked = function(n, e) {
n = jqElt(n), n.prop("checked", e);
}, utils.getInputRadio = function(n) {
return $("input:radio[name=" + n + "]:checked").prop("value");
}, utils.setInputRadio = function(n, e) {
$("input:radio[name=" + n + "][value=" + e + "]").prop("checked", !0);
}, utils.resetModalInputs = function() {
$(".modal input[type=text]:not([disabled]), .modal input[type=password], .modal textarea").val(""),
$(".modal input[type=checkbox]").prop("checked", !1).change();
}, utils.trim = function(n) {
return $.trim(n);
}, utils.slugify = function(n) {
return n.toLowerCase().replace(/\s+/g, "-").replace(/[^\w\-]+/g, "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
}, utils.checkUrl = function(n, e) {
return n ? (0 !== n.indexOf("http") && (n = "http://" + n), e && -1 === n.indexOf("/", n.length - 1) && (n += "/"),
n) : n;
}, utils.addModal = function(n, e) {
var t = crel("div", {
"class": "modal " + n
});
t.innerHTML = e, document.body.appendChild(t);
}, utils.createBackdrop = function(n, e) {
var t = crel("div", {
"class": "modal-backdrop in",
"data-toggle": n,
"data-target": e
});
return document.body.appendChild(t), t;
}, utils.popupWindow = function(n, e, t, o) {
var i = screen.width / 2 - t / 2, r = screen.height / 2 - o / 2;
return window.open(n, e, [ "toolbar=no, ", "location=no, ", "directories=no, ", "status=no, ", "menubar=no, ", "scrollbars=no, ", "resizable=no, ", "copyhistory=no, ", "width=" + t + ", ", "height=" + o + ", ", "top=" + r + ", ", "left=" + i ].join(""));
}, utils.saveAs = function(n, e) {
if (void 0 !== saveAs) {
var t = new Blob([ n ], {
type: "text/plain;charset=utf-8"
});
saveAs(t, e);
} else {
var o = "data:application/octet-stream;base64," + utils.encodeBase64(n);
window.open(o, "file");
}
}, utils.randomString = function() {
return _.random(4294967296).toString(36);
}, utils.updateCurrentTime = function() {
utils.currentTime = new Date().getTime();
}, utils.updateCurrentTime(), utils.storeAttributes = function(n) {
var e = n.syncIndex || n.publishIndex, t = _.omit(n, "syncIndex", "publishIndex", "provider");
t.provider = n.provider.providerId, localStorage[e] = JSON.stringify(t);
}, utils.retrieveIndexArray = function(n) {
try {
return _.compact(localStorage[n].split(";"));
} catch (e) {
return localStorage[n] = ";", [];
}
}, utils.appendIndexToArray = function(n, e) {
localStorage[n] += e + ";";
}, utils.removeIndexFromArray = function(n, e) {
localStorage[n] = localStorage[n].replace(";" + e + ";", ";");
}, utils.retrieveIgnoreError = function(n) {
try {
return JSON.parse(localStorage[n]);
} catch (e) {
return void 0;
}
};
var eventList = [];
utils.logValue = function(n) {
eventList.unshift(n), eventList.length > 5 && eventList.pop();
}, utils.logStackTrace = function() {
eventList.unshift(printStackTrace()), eventList.length > 5 && eventList.pop();
}, utils.formatEventList = function() {
var n = [];
return _.each(eventList, function(e) {
n.push("\n"), _.isString(e) ? n.push(e) : _.isArray(e) && (n.push(e[5] || ""), n.push(e[6] || ""));
}), n.join("");
}, utils.encodeBase64 = function(n) {
if (0 === n.length) return "";
var e, t, o = [], i = 0;
for (n = encodeURI(n), e = n.length; e > i; ) t = n[i], i += 1, "%" !== t ? o.push(t.charCodeAt(0)) : (t = n[i] + n[i + 1],
o.push(parseInt(t, 16)), i += 2);
var r, a, s = "=", l = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", c = [], d = o.length - o.length % 3;
for (r = 0; d > r; r += 3) a = o[r] << 16 | o[r + 1] << 8 | o[r + 2], c.push(l.charAt(a >> 18)),
c.push(l.charAt(63 & a >> 12)), c.push(l.charAt(63 & a >> 6)), c.push(l.charAt(63 & a));
switch (o.length - d) {
case 1:
a = o[r] << 16, c.push(l.charAt(a >> 18) + l.charAt(63 & a >> 12) + s + s);
break;
case 2:
a = o[r] << 16 | o[r + 1] << 8, c.push(l.charAt(a >> 18) + l.charAt(63 & a >> 12) + l.charAt(63 & a >> 6) + s);
}
return c.join("");
};
var mHash = [ 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117 ];
return utils.crc32 = function(n) {
for (var e = 0, t = -1, o = 0; o < n.length; o++) e = 255 & (t ^ n.charCodeAt(o)),
t = t >>> 8 ^ mHash[e];
return t = -1 ^ t, 0 > t && (t = 4294967295 + t + 1), t.toString(16);
}, utils;
});
var MAIN_URL = "http://benweet.github.io/stackedit/", GOOGLE_ANALYTICS_ACCOUNT_ID = "UA-39556145-1", GOOGLE_API_KEY = "AIzaSyAeCU8CGcSkn0z9js6iocHuPBX4f_mMWkw", GOOGLE_SCOPES = [ "https://www.googleapis.com/auth/drive.install", "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/blogger", "https://picasaweb.google.com/data/" ], GOOGLE_DRIVE_APP_ID = "241271498917", DROPBOX_APP_KEY = "lq6mwopab8wskas", DROPBOX_APP_SECRET = "851fgnucpezy84t", BITLY_ACCESS_TOKEN = "317e033bfd48cf31155a68a536b1860013b09c4c", DEFAULT_FILE_TITLE = "Title", DEFAULT_FOLDER_NAME = "New folder", GDRIVE_DEFAULT_FILE_TITLE = "New Markdown document", CHECK_ONLINE_PERIOD = 12e4, AJAX_TIMEOUT = 3e4, ASYNC_TASK_DEFAULT_TIMEOUT = 6e4, ASYNC_TASK_LONG_TIMEOUT = 18e4, SYNC_PERIOD = 18e4, USER_IDLE_THRESHOLD = 3e5, IMPORT_FILE_MAX_CONTENT_SIZE = 1e5, IMPORT_IMG_MAX_CONTENT_SIZE = 1e7, TEMPORARY_FILE_INDEX = "file.tempIndex", WELCOME_DOCUMENT_TITLE = "Welcome document", DOWNLOAD_PROXY_URL = "http://stackedit-download-proxy.herokuapp.com/", PICASA_PROXY_URL = "http://stackedit-picasa-proxy.herokuapp.com/", WORDPRESS_CLIENT_ID = "3185", WORDPRESS_PROXY_URL = "http://stackedit-wordpress-proxy.herokuapp.com/", SSH_PROXY_URL = "http://stackedit-ssh-proxy.herokuapp.com/", delayedFunction = void 0, BASE_URL = "http://localhost/stackedit/", GOOGLE_CLIENT_ID = "241271498917-lev37kef013q85avc91am1gccg5g8lrb.apps.googleusercontent.com", GITHUB_CLIENT_ID = "e47fef6055344579799d", GATEKEEPER_URL = "http://stackedit-gatekeeper-localhost.herokuapp.com/", TUMBLR_PROXY_URL = "http://stackedit-tumblr-proxy-local.herokuapp.com/";
0 === location.hostname.indexOf("benweet.github.io") && (BASE_URL = MAIN_URL, GOOGLE_CLIENT_ID = "241271498917-jpto9lls9fqnem1e4h6ppds9uob8rpvu.apps.googleusercontent.com",
GITHUB_CLIENT_ID = "fa0d09514da8377ee32e", GATEKEEPER_URL = "http://stackedit-gatekeeper.herokuapp.com/",
TUMBLR_PROXY_URL = "http://stackedit-tumblr-proxy.herokuapp.com/");
var THEME_LIST = {
"default": "Default",
"blue-gray": "Blue-Gray",
night: "Night"
};
define("config", function() {}), define("settings", [ "underscore", "config" ], function(n) {
var e = {
layoutOrientation: "horizontal",
lazyRendering: !0,
editorFontFamily: "Courier New, Courier, monospace",
editorFontSize: 14,
defaultContent: "\n\n\n> Written with [StackEdit](" + MAIN_URL + ").",
commitMsg: "Published with " + MAIN_URL,
template: [ "<!DOCTYPE html>\n", "<html>\n", "<head>\n", '<meta charset="utf-8">\n', "<title><%= documentTitle %></title>\n", '<link rel="stylesheet" href="', MAIN_URL, 'css/main-min.css" />\n', '<script type="text/javascript" src="', MAIN_URL, 'lib/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>\n', "</head>\n", "<body><%= documentHTML %></body>\n", "</html>" ].join(""),
sshProxy: SSH_PROXY_URL,
extensionSettings: {}
};
try {
n.extend(e, JSON.parse(localStorage.settings));
} catch (t) {}
return e;
}), define("classes/Extension", [], function() {
function n(n, e, t, o) {
this.extensionId = n, this.extensionName = e, this.isOptional = t, this.disableInViewer = o;
}
return n;
}), define("text", [ "module" ], function(n) {
var e, t, o, i, r = [ "Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0" ], a = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, s = /<body[^>]*>\s*([\s\S]+)\s*<\/body>/im, l = "undefined" != typeof location && location.href, c = l && location.protocol && location.protocol.replace(/\:/, ""), d = l && location.hostname, p = l && (location.port || void 0), u = [], f = n.config && n.config() || {};
return e = {
version: "2.0.6",
strip: function(n) {
if (n) {
n = n.replace(a, "");
var e = n.match(s);
e && (n = e[1]);
} else n = "";
return n;
},
jsEscape: function(n) {
return n.replace(/(['\\])/g, "\\$1").replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r").replace(/[\u2028]/g, "\\u2028").replace(/[\u2029]/g, "\\u2029");
},
createXhr: f.createXhr || function() {
var n, e, t;
if ("undefined" != typeof XMLHttpRequest) return new XMLHttpRequest();
if ("undefined" != typeof ActiveXObject) for (e = 0; 3 > e; e += 1) {
t = r[e];
try {
n = new ActiveXObject(t);
} catch (o) {}
if (n) {
r = [ t ];
break;
}
}
return n;
},
parseName: function(n) {
var e, t, o, i = !1, r = n.indexOf("."), a = 0 === n.indexOf("./") || 0 === n.indexOf("../");
return -1 !== r && (!a || r > 1) ? (e = n.substring(0, r), t = n.substring(r + 1, n.length)) : e = n,
o = t || e, r = o.indexOf("!"), -1 !== r && (i = "strip" === o.substring(r + 1),
o = o.substring(0, r), t ? t = o : e = o), {
moduleName: e,
ext: t,
strip: i
};
},
xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/,
useXhr: function(n, t, o, i) {
var r, a, s, l = e.xdRegExp.exec(n);
return l ? (r = l[2], a = l[3], a = a.split(":"), s = a[1], a = a[0], !(r && r !== t || a && a.toLowerCase() !== o.toLowerCase() || (s || a) && s !== i)) : !0;
},
finishLoad: function(n, t, o, i) {
o = t ? e.strip(o) : o, f.isBuild && (u[n] = o), i(o);
},
load: function(n, t, o, i) {
if (i.isBuild && !i.inlineText) return o(), void 0;
f.isBuild = i.isBuild;
var r = e.parseName(n), a = r.moduleName + (r.ext ? "." + r.ext : ""), s = t.toUrl(a), u = f.useXhr || e.useXhr;
!l || u(s, c, d, p) ? e.get(s, function(t) {
e.finishLoad(n, r.strip, t, o);
}, function(n) {
o.error && o.error(n);
}) : t([ a ], function(n) {
e.finishLoad(r.moduleName + "." + r.ext, r.strip, n, o);
});
},
write: function(n, t, o) {
if (u.hasOwnProperty(t)) {
var i = e.jsEscape(u[t]);
o.asModule(n + "!" + t, "define(function () { return '" + i + "';});\n");
}
},
writeFile: function(n, t, o, i, r) {
var a = e.parseName(t), s = a.ext ? "." + a.ext : "", l = a.moduleName + s, c = o.toUrl(a.moduleName + s) + ".js";
e.load(l, o, function() {
var t = function(n) {
return i(c, n);
};
t.asModule = function(n, e) {
return i.asModule(n, c, e);
}, e.write(n, l, t, r);
}, r);
}
}, "node" === f.env || !f.env && "undefined" != typeof process && process.versions && process.versions.node ? (t = require.nodeRequire("fs"),
e.get = function(n, e) {
var o = t.readFileSync(n, "utf8");
0 === o.indexOf("") && (o = o.substring(1)), e(o);
}) : "xhr" === f.env || !f.env && e.createXhr() ? e.get = function(n, t, o, i) {
var r, a = e.createXhr();
if (a.open("GET", n, !0), i) for (r in i) i.hasOwnProperty(r) && a.setRequestHeader(r.toLowerCase(), i[r]);
f.onXhr && f.onXhr(a, n), a.onreadystatechange = function() {
var e, i;
4 === a.readyState && (e = a.status, e > 399 && 600 > e ? (i = new Error(n + " HTTP status: " + e),
i.xhr = a, o(i)) : t(a.responseText), f.onXhrComplete && f.onXhrComplete(a, n));
}, a.send(null);
} : "rhino" === f.env || !f.env && "undefined" != typeof Packages && "undefined" != typeof java ? e.get = function(n, e) {
var t, o, i = "utf-8", r = new java.io.File(n), a = java.lang.System.getProperty("line.separator"), s = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(r), i)), l = "";
try {
for (t = new java.lang.StringBuffer(), o = s.readLine(), o && o.length() && 65279 === o.charAt(0) && (o = o.substring(1)),
t.append(o); null !== (o = s.readLine()); ) t.append(a), t.append(o);
l = String(t.toString());
} finally {
s.close();
}
e(l);
} : ("xpconnect" === f.env || !f.env && "undefined" != typeof Components && Components.classes && Components.interfaces) && (o = Components.classes,
i = Components.interfaces, Components.utils["import"]("resource://gre/modules/FileUtils.jsm"),
e.get = function(n, e) {
var t, r, a = {}, s = new FileUtils.File(n);
try {
t = o["@mozilla.org/network/file-input-stream;1"].createInstance(i.nsIFileInputStream),
t.init(s, 1, 0, !1), r = o["@mozilla.org/intl/converter-input-stream;1"].createInstance(i.nsIConverterInputStream),
r.init(t, "utf-8", t.available(), i.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),
r.readString(t.available(), a), r.close(), t.close(), e(a.value);
} catch (l) {
throw new Error((s && s.path || "") + ": " + l);
}
}), e;
}), define("text!html/settingsExtensionsAccordion.html", [], function() {
return '<div class="panel">\n <div class="accordion-heading">\n <div class="checkbox pull-right">\n <label> <input id="input-enable-extension-<%= extensionId %>"\n type="checkbox"<% if(!isOptional) print(\'disabled\') %>>\n enabled\n </label>\n </div>\n <span data-toggle="collapse" data-parent=".accordion-extensions"\n class="accordion-toggle" href="#accordion-extensions-collapse-<%= extensionId %>">\n <%= extensionName %> </span>\n </div>\n <div id="accordion-extensions-collapse-<%= extensionId %>" class="collapse">\n <div class="accordion-inner clearfix"><%= settingsBlock %></div>\n </div>\n</div>\n';
}), define("text!html/partialRenderingSettingsBlock.html", [], function() {
return '<p>Renders modified sections only.</p>\n<blockquote class="muted">\n <b>NOTE:</b> Document sections are based on title elements (h1, h2...). Therefore if\n your document does not contain any title, performance will not be increased.\n</blockquote>';
}), define("extensions/partialRendering", [ "underscore", "crel", "classes/Extension", "text!html/partialRenderingSettingsBlock.html" ], function(n, e, t, o) {
function i(e, t) {
if (u = [], p = [], f = void 0, h === !0 || d != t) return h = !1, d = t, p = c,
c = e, u = e, void 0;
var o = c.length;
n.some(c, function(n, t) {
return t >= e.length || n.text != e[t].text ? (o = t, !0) : void 0;
});
var i = -c.length;
n.some(c.slice().reverse(), function(n, t) {
return t >= e.length || n.text != e[e.length - t - 1].text ? (i = -t, !0) : void 0;
});
var r = c.slice(0, o);
u = e.slice(o, e.length + i);
var a = c.slice(c.length + i, c.length);
f = n.first(a), p = c.slice(o, c.length + i), c = r.concat(u).concat(a);
}
function r() {
n.each(p, function(n) {
var e = document.getElementById("wmd-preview-section-" + n.id);
v.removeChild(e);
});
var t = document.getElementById("wmd-preview"), o = Array.prototype.slice.call(t.childNodes);
t.innerHTML = "";
var i = document.createDocumentFragment();
n.each(u, function(t) {
for (var r = e("div", {
id: "wmd-preview-section-" + t.id,
"class": "wmd-preview-section preview-content"
}), a = !0; 0 !== o.length; ) {
var s = o[0];
if (a === !1 && /(^| )wmd-title($| )/.test(s.className)) break;
a = !1, "DIV" == s.tagName && "footnotes" == s.className ? n.each(s.querySelectorAll("ol > li"), function(n) {
var e = n.id.substring(3);
x[e] = n;
}) : r.appendChild(s), o.shift();
}
i.appendChild(r);
});
var r = m;
void 0 !== f && (r = document.getElementById("wmd-preview-section-" + f.id)), v.insertBefore(i, r),
m.innerHTML = "";
var a = [];
if (b === !0) {
var s = e("ol");
n.each(v.querySelectorAll("a.footnote"), function(n, e) {
n.textContent = e + 1;
var t = n.id.substring(6);
a.push(t), s.appendChild(x[t].cloneNode(!0));
}), a.length > 0 && m.appendChild(e("div", {
"class": "footnotes"
}, e("hr"), s)), x = n.pick(x, a);
}
}
var a = new t("partialRendering", "Partial Rendering", !0);
a.settingsBlock = o;
var s = void 0, l = 0, c = [], d = void 0, p = [], u = [], f = void 0, h = !1, g = !1, b = !1;
a.onSectionsCreated = function(e) {
var t = [], o = "";
b = !1, n.each(e, function(n) {
n += "\n\n", g && (n = n.replace(/^```.*\n[\s\S]*?\n```|\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/g, function(n, e) {
return e ? (b = !0, o += n, "") : n;
})), n = n.replace(/^```.*\n[\s\S]*?\n```|^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?(?=\s|$)[ \t]*\n?[ \t]*((\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm, function(n, e) {
return e ? (o += n, "") : n;
}), /\S/.test(n) && t.push({
id: ++l,
text: n
});
}), i(t, o);
};
var m = void 0, v = void 0, x = {};
return a.onEditorConfigure = function(e) {
s = e.getConverter(), s.hooks.chain("preConversion", function() {
var e = n.map(u, function(n) {
return n.text;
});
return e.push(d + "\n\n"), e.join("");
}), e.hooks.chain("onPreviewRefresh", function() {
r();
});
}, a.onReady = function() {
m = e("div", {
id: "wmd-preview-section-footnotes",
"class": "preview-content"
}), v = document.getElementById("preview-contents"), v.appendChild(m);
}, a.onFileSelected = function() {
h = !0;
}, a.onFileOpen = function() {
s.extraExtensions && (g = n.some(s.extraExtensions, function(n) {
return "footnotes" == n;
}));
}, a;
}), define("classes/FileDescriptor", [ "underscore", "utils" ], function(n, e) {
function t(n, e, t, o) {
this.fileIndex = n, this._title = e || localStorage[n + ".title"], this._editorScrollTop = parseInt(localStorage[n + ".editorScrollTop"]) || 0,
this._editorStart = parseInt(localStorage[n + ".editorStart"]) || 0, this._editorEnd = parseInt(localStorage[n + ".editorEnd"]) || 0,
this._previewScrollTop = parseInt(localStorage[n + ".previewScrollTop"]) || 0, this._selectTime = parseInt(localStorage[n + ".selectTime"]) || 0,
this.syncLocations = t || {}, this.publishLocations = o || {}, Object.defineProperty(this, "title", {
get: function() {
return this._title;
},
set: function(n) {
this._title = n, localStorage[this.fileIndex + ".title"] = n;
}
}), Object.defineProperty(this, "content", {
get: function() {
return localStorage[this.fileIndex + ".content"];
},
set: function(n) {
localStorage[this.fileIndex + ".content"] = n;
}
}), Object.defineProperty(this, "editorScrollTop", {
get: function() {
return this._editorScrollTop;
},
set: function(n) {
this._editorScrollTop = n, localStorage[this.fileIndex + ".editorScrollTop"] = n;
}
}), Object.defineProperty(this, "editorStart", {
get: function() {
return this._editorStart;
},
set: function(n) {
this._editorStart = n, localStorage[this.fileIndex + ".editorStart"] = n;
}
}), Object.defineProperty(this, "editorEnd", {
get: function() {
return this._editorEnd;
},
set: function(n) {
this._editorEnd = n, localStorage[this.fileIndex + ".editorEnd"] = n;
}
}), Object.defineProperty(this, "previewScrollTop", {
get: function() {
return this._previewScrollTop;
},
set: function(n) {
this._previewScrollTop = n, localStorage[this.fileIndex + ".previewScrollTop"] = n;
}
}), Object.defineProperty(this, "selectTime", {
get: function() {
return this._selectTime;
},
set: function(n) {
this._selectTime = n, localStorage[this.fileIndex + ".selectTime"] = n;
}
});
}
return t.prototype.addSyncLocation = function(n) {
e.storeAttributes(n), e.appendIndexToArray(this.fileIndex + ".sync", n.syncIndex),
this.syncLocations[n.syncIndex] = n;
}, t.prototype.removeSyncLocation = function(n) {
e.removeIndexFromArray(this.fileIndex + ".sync", n.syncIndex), delete this.syncLocations[n.syncIndex],
localStorage.removeItem(n.syncIndex);
}, t.prototype.addPublishLocation = function(n) {
e.storeAttributes(n), e.appendIndexToArray(this.fileIndex + ".publish", n.publishIndex),
this.publishLocations[n.publishIndex] = n;
}, t.prototype.removePublishLocation = function(n) {
e.removeIndexFromArray(this.fileIndex + ".publish", n.publishIndex), delete this.publishLocations[n.publishIndex],
localStorage.removeItem(n.publishIndex);
}, t.prototype.composeTitle = function() {
var e = [], t = n.values(this.syncLocations), o = n.values(this.publishLocations), i = t.concat(o);
return n.chain(i).sortBy(function(n) {
return n.provider.providerId;
}).each(function(n) {
var t = "icon-provider-" + n.provider.providerId;
n.isRealtime === !0 && (t += " realtime"), e.push('<i class="' + t + '"></i>');
}), e.push(" "), e.push(this.title), e.join("");
}, t;
}), define("storage", [ "underscore", "utils" ], function(n, e) {
var t = e.retrieveIndexArray("file.list"), o = localStorage.version;
if (void 0 === o && (localStorage.removeItem("sync.queue"), localStorage.removeItem("sync.current"),
localStorage.removeItem("file.counter"), n.each(t, function(t) {
localStorage[t + ".publish"] = ";";
var o = e.retrieveIndexArray(t + ".sync");
n.each(o, function(n) {
localStorage[n + ".contentCRC"] = "0", void 0 !== localStorage[n + ".etag"] && (localStorage[n + ".titleCRC"] = "0");
});
}), o = "v1"), "v1" == o) {
var i = localStorage["sync.gdrive.lastChangeId"];
i && (localStorage["gdrive.lastChangeId"] = i, localStorage.removeItem("sync.gdrive.lastChangeId"));
var r = localStorage["sync.dropbox.lastChangeId"];
r && (localStorage["dropbox.lastChangeId"] = r, localStorage.removeItem("sync.dropbox.lastChangeId"));
var a = "gdrive", s = "dropbox", l = "sync." + a + ".", c = "sync." + s + ".";
n.each(t, function(t) {
var o = e.retrieveIndexArray(t + ".sync");
n.each(o, function(n) {
var e = {};
0 === n.indexOf(l) ? (e.provider = a, e.id = n.substring(l.length), e.etag = localStorage[n + ".etag"],
e.contentCRC = localStorage[n + ".contentCRC"], e.titleCRC = localStorage[n + ".titleCRC"]) : 0 === n.indexOf(c) && (e.provider = s,
e.path = decodeURIComponent(n.substring(c.length)), e.version = localStorage[n + ".version"],
e.contentCRC = localStorage[n + ".contentCRC"]), localStorage[n] = JSON.stringify(e),
localStorage.removeItem(n + ".etag"), localStorage.removeItem(n + ".version"), localStorage.removeItem(n + ".contentCRC"),
localStorage.removeItem(n + ".titleCRC");
});
}), o = "v2";
}
if ("v2" == o && (n.each(t, function(t) {
n.has(localStorage, t + ".sync") || (localStorage.removeItem(t + ".title"), localStorage.removeItem(t + ".publish"),
localStorage.removeItem(t + ".content"), e.removeIndexFromArray("file.list", t));
}), o = "v3"), "v3" == o) {
var d = localStorage["file.current"];
void 0 !== d && -1 === localStorage["file.list"].indexOf(";" + d + ";") && localStorage.removeItem("file.current"),
o = "v4";
}
if ("v4" == o && (localStorage.removeItem("githubToken"), o = "v5"), "v5" == o && (n.each(t, function(t) {
var o = e.retrieveIndexArray(t + ".publish");
n.each(o, function(n) {
var e = JSON.parse(localStorage[n]);
"gdrive" == e.provider && (e.id = e.fileId, e.fileId = void 0, localStorage[n] = JSON.stringify(e));
});
}), o = "v6"), "v6" == o) {
var d = localStorage["file.current"];
void 0 !== d && (localStorage[d + ".selectTime"] = new Date().getTime(), localStorage.removeItem("file.current")),
o = "v7";
}
localStorage.version = o;
}), define("fileSystem", [ "underscore", "utils", "classes/FileDescriptor", "storage" ], function(n, e, t) {
var o = {};
return n.each(e.retrieveIndexArray("file.list"), function(n) {
o[n] = new t(n);
}), o;
}), define("text!html/userCustomSettingsBlock.html", [], function() {
return '<p>Allows users to implement their own extension.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label" for="textarea-usercustom-code">JavaScript code\n <a href="#" class="tooltip-usercustom-extension">(?)</a>\n </label>\n <div class="col-lg-7">\n <textarea id="textarea-usercustom-code" class="form-control"></textarea>\n </div>\n </div>\n</div>\n<span class="help-block pull-right"><a target="_blank" href="https://github.com/benweet/stackedit/blob/master/doc/developer-guide.md#architecture">More info</a></span>';
}), define("extensions/userCustom", [ "jquery", "underscore", "utils", "classes/Extension", "fileSystem", "settings", "text!html/userCustomSettingsBlock.html" ], function($, _, utils, Extension, fileSystem, settings, userCustomSettingsBlockHTML) {
var userCustom = new Extension("userCustom", "UserCustom extension", !0);
userCustom.settingsBlock = userCustomSettingsBlockHTML, userCustom.defaultConfig = {
code: ""
};
var fileMgr = void 0;
userCustom.onFileMgrCreated = function(n) {
fileMgr = n;
};
var synchronizer = void 0;
userCustom.onSynchronizerCreated = function(n) {
synchronizer = n;
};
var publisher = void 0;
userCustom.onPublisherCreated = function(n) {
publisher = n;
};
var eventMgr = void 0;
return userCustom.onEventMgrCreated = function(n) {
eventMgr = n;
}, userCustom.onLoadSettings = function() {
utils.setInputValue("#textarea-usercustom-code", userCustom.config.code);
}, userCustom.onSaveSettings = function(newConfig, event) {
newConfig.code = utils.getInputValue("#textarea-usercustom-code");
try {
eval(newConfig.code);
} catch (e) {
eventMgr.onError(e), utils.getInputTextValue("#textarea-usercustom-code", event, /^$/);
}
}, userCustom.onInit = function() {
try {
eval(userCustom.config.code);
} catch (e) {
console.error(e);
}
}, userCustom;
}), define("extensions/googleAnalytics", [ "jquery", "underscore", "utils", "classes/Extension", "settings", "config" ], function(n, e, t, o, i) {
function r() {
t.currentTime - d > 18e4 && (_gaq.push([ "_trackPageview" ]), d = t.currentTime);
}
var a = new o("googleAnalytics", "Google Analytics", !0);
a.settingsBlock = "<p>Sends anonymous statistics about usage and errors to help improve StackEdit.</p>";
var s = !1, l = !1;
window._gaq = [];
var c = function() {
if (s === !1 && l === !1) {
var e = "/ga.js";
location.search.match(/(\?|&)console/) && (e = "/u/ga_debug.js"), n.ajax({
url: "http://www.google-analytics.com" + e,
dataType: "script"
}).done(function() {
s = !0;
});
}
}, d = 0;
a.onPeriodicRun = function() {
r();
}, a.onReady = function() {
_gaq.push([ "_setAccount", GOOGLE_ANALYTICS_ACCOUNT_ID ]), r(), _gaq.push([ "_trackEvent", "Settings", "layoutOrientation", "" + i.layoutOrientation ]),
_gaq.push([ "_trackEvent", "Settings", "lazyRendering", "" + i.lazyRendering ]),
_gaq.push([ "_trackEvent", "Settings", "editorFontFamily", "" + i.editorFontFamily ]),
_gaq.push([ "_trackEvent", "Settings", "editorFontSize", "" + i.editorFontSize ]),
_gaq.push([ "_trackEvent", "Settings", "defaultContent backlink", "" + (-1 !== i.defaultContent.indexOf(MAIN_URL)) ]),
_gaq.push([ "_trackEvent", "Settings", "commitMsg backlink", "" + (-1 !== i.commitMsg.indexOf(MAIN_URL)) ]),
_gaq.push([ "_trackEvent", "Settings", "sshProxy unchanged", "" + (i.sshProxy == SSH_PROXY_URL) ]),
e.each(i.extensionSettings, function(n, e) {
_gaq.push([ "_trackEvent", "Extensions", e + " enabled", "" + (n.enabled === !0) ]);
}), window.onerror = function(n, e, o) {
_gaq.push([ "_trackEvent", "Error", n, e + ":" + o + t.formatEventList() ]);
}, c();
}, a.onOfflineChanged = function(n) {
l = n, c();
};
var p = 0;
return a.onSyncRunning = function(n) {
n === !0 && (p = new Date().getTime());
}, a.onPublishRunning = function(n) {
n === !0 && (p = new Date().getTime());
}, a.onSyncSuccess = function() {
var n = new Date().getTime();
_gaq.push([ "_trackTiming", "Sync", "SyncTime", n - p ]);
}, a.onSyncImportSuccess = function(n, e) {
_gaq.push([ "_trackEvent", "Sync", "SyncImport" ]), _gaq.push([ "_trackEvent", "Sync", "SyncImport provider", e.providerId ]);
}, a.onSyncExportSuccess = function(n, e) {
_gaq.push([ "_trackEvent", "Sync", "SyncExport" ]), _gaq.push([ "_trackEvent", "Sync", "SyncExport provider", e.provider.providerId ]);
}, a.onPublishSuccess = function(n) {
var t = new Date().getTime();
_gaq.push([ "_trackTiming", "Publish", "PublishSuccess", t - p ]), e.each(n.publishLocations, function(n) {
_gaq.push([ "_trackEvent", "Publish", "PublishSuccess provider", n.provider.providerId ]);
});
}, a.onNewPublishSuccess = function(n, e) {
_gaq.push([ "_trackEvent", "Publish", "NewPublish provider", e.provider.providerId ]);
}, a.onError = function(n) {
!e.isString(n) && n.message && _gaq.push([ "_trackEvent", "Error", "message", n.message + t.formatEventList() ]);
}, a;
}), define("text!extensions/../../version", [], function() {
return "2.0 beta-1\n";
}), define("text!html/dialogAbout.html", [], function() {
return '\n<div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <img src="img/stackedit-promo.png" />\n </div>\n <div class="modal-body">\n <dl>\n <dt>About:</dt>\n <dd>\n <a target="_blank" href="https://github.com/benweet/stackedit/">GitHub\n project</a> / <a target="_blank"\n href="https://github.com/benweet/stackedit/issues">issue\n tracker</a><br /> <a target="_blank"\n href="https://chrome.google.com/webstore/detail/stackedit/iiooodelglhkcpgbajoejffhijaclcdg">Chrome\n app</a> (thanks for your review!)<br /> <a target="_blank"\n href="https://twitter.com/stackedit/">Follow on Twitter</a><br />\n <a target="_blank" href="https://www.facebook.com/stackedit/">Follow\n on Facebook</a><br /> <a target="_blank"\n href="https://plus.google.com/110816046787593496375"\n rel="publisher">Follow on Google+</a><br />\n </dd>\n </dl>\n <dl>\n <dt>Developers:</dt>\n <dd>\n <a target="_blank" href="http://www.benoitschweblin.com">Benoit\n Schweblin</a><br /> Pete Eigel (contributor)\n </dd>\n </dl>\n <dl>\n <dt>Credit:</dt>\n <dd>\n <% _.each(libraries, function(url, name) { %> <a target="_blank"\n href="<%= url %>"><%= name %></a><br /> <% }); %>\n </dd>\n </dl>\n <dl>\n <dt>Related projects:</dt>\n <dd>\n <% _.each(projects, function(url, name) { %> <a target="_blank"\n href="<%= url %>"><%= name %></a><br /> <% }); %>\n </dd>\n </dl>\n <p>\n StackEdit <%= version %><br /> Copyright 2013 <a\n target="_blank" href="http://www.benoitschweblin.com">Benoit\n Schweblin</a><br /> Licensed under an <a target="_blank"\n href="http://www.apache.org/licenses/LICENSE-2.0">Apache\n License</a>\n </p>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>\n </div>\n </div>\n</div>\n';
}), define("extensions/dialogAbout", [ "underscore", "utils", "classes/Extension", "text!../../version", "text!html/dialogAbout.html" ], function(n, e, t, o, i) {
var r = new t("dialogAbout", 'Dialog "About"'), a = {
Bootstrap: "http://twitter.github.io/bootstrap/",
crel: "https://github.com/KoryNunn/crel",
"CSS Browser Selector": "https://github.com/rafaelp/css_browser_selector/",
"Dropbox-js": "https://github.com/dropbox/dropbox-js",
"FileSaver.js": "https://github.com/eligrey/FileSaver.js/",
Gatekeeper: "https://github.com/prose/gatekeeper",
"Github.js": "https://github.com/michael/github",
Glyphicons: "http://glyphicons.com/",
"Highlight.js": "http://softwaremaniacs.org/soft/highlight/en/",
jGrowl: "https://github.com/stanlemon/jGrowl/",
jQuery: "http://jquery.com/",
"jQuery Mouse Wheel Plugin": "https://github.com/brandonaaron/jquery-mousewheel",
MathJax: "http://www.mathjax.org/",
Mousetrap: "http://craig.is/killing/mice",
PageDown: "https://code.google.com/p/pagedown/",
"Pagedown-extra": "https://github.com/jmcmanus/pagedown-extra/",
Prettify: "https://code.google.com/p/google-code-prettify/",
RequireJS: "http://requirejs.org/",
"stacktrace.js": "http://stacktracejs.com/",
"to-markdown": "https://github.com/domchristie/to-markdown",
"UI Layout": "http://layout.jquery-dev.net/",
"Underscore.js": "http://underscorejs.org/",
waitForImages: "https://github.com/alexanderdickson/waitForImages"
}, s = {
"StackEdit Download Proxy": "https://github.com/benweet/stackedit-download-proxy",
"StackEdit Picasa Proxy": "https://github.com/benweet/stackedit-picasa-proxy",
"StackEdit SSH Proxy": "https://github.com/benweet/stackedit-ssh-proxy",
"StackEdit Tumblr Proxy": "https://github.com/benweet/stackedit-tumblr-proxy",
"StackEdit WordPress Proxy": "https://github.com/benweet/stackedit-wordpress-proxy"
};
return r.onReady = function() {
e.addModal("modal-about", n.template(i, {
libraries: a,
projects: s,
version: o
}));
}, r;
}), define("text!html/dialogManagePublicationLocation.html", [], function() {
return '<div class="input-group">\n <span class="input-group-addon" title="<%= publishAttributes.provider.providerName %>">\n <i class="icon-provider-<%= publishAttributes.provider.providerId %>"></i>\n </span> <input class="form-control" type="text"\n value="<%= publishDesc %>" disabled />\n <div class="input-group-btn">\n <a class="btn btn-link remove-button" title="Remove this location"\n data-publish-index="<%= publishAttributes.publishIndex %>"><i\n class="icon-trash"></i></a>\n </div>\n</div>\n';
}), define("extensions/dialogManagePublication", [ "jquery", "underscore", "classes/Extension", "text!html/dialogManagePublicationLocation.html" ], function(n, e, t, o) {
var i = new t("dialogManagePublication", 'Dialog "Manage publication"'), r = void 0;
i.onEventMgrCreated = function(n) {
r = n;
};
var a = void 0, s = void 0, l = void 0, c = void 0, d = function(t) {
if (void 0 === t || t === a) {
e.size(a.publishLocations) > 0 ? (l.removeClass("hide"), c.addClass("hide")) : (l.addClass("hide"),
c.removeClass("hide"));
var i = e.reduce(a.publishLocations, function(n, t) {
var i = e.omit(t, "provider", "publishIndex", "sharingLink");
return i.password && (i.password = "********"), i = JSON.stringify(i).replace(/{|}|"/g, "").replace(/,/g, ", "),
n + e.template(o, {
publishAttributes: t,
publishDesc: i
});
}, "");
s.innerHTML = i, e.each(s.querySelectorAll(".remove-button"), function(e) {
var t = n(e), o = a.publishLocations[t.data("publishIndex")];
t.click(function() {
a.removePublishLocation(o), r.onPublishRemoved(a, o);
});
});
}
};
return i.onFileSelected = function(n) {
a = n, d(n);
}, i.onNewPublishSuccess = d, i.onPublishRemoved = d, i.onReady = function() {
var e = document.querySelector(".modal-manage-publish");
s = e.querySelector(".publish-list"), l = n(e.querySelectorAll(".msg-publish-list")),
c = n(e.querySelectorAll(".msg-no-publish"));
}, i;
}), define("text!html/dialogManageSynchronizationLocation.html", [], function() {
return '<div class="input-group">\n <span class="input-group-addon"\n title="<%= syncAttributes.provider.providerName %><%= syncAttributes.isRealtime ? \' (real time)\' : \'\' %>">\n <i\n class="icon-provider-<%= syncAttributes.provider.providerId %><%= syncAttributes.isRealtime ? \' realtime\' : \'\' %>"></i>\n </span> <input class="form-control" type="text"\n value="<%= syncDesc %>" disabled />\n <div class="input-group-btn">\n <a class="btn btn-link remove-button" title="Remove this location"\n data-sync-index="<%= syncAttributes.syncIndex %>"><i class="icon-trash"></i></a>\n </div>\n</div>\n';
}), define("extensions/dialogManageSynchronization", [ "jquery", "underscore", "classes/Extension", "text!html/dialogManageSynchronizationLocation.html" ], function(n, e, t, o) {
var i = new t("dialogManageSynchronization", 'Dialog "Manage synchronization"'), r = void 0;
i.onEventMgrCreated = function(n) {
r = n;
};
var a = void 0;
i.onSynchronizerCreated = function(n) {
a = n;
};
var s = void 0, l = void 0, c = void 0, d = void 0, p = function(t) {
if (void 0 === t || t === s) {
e.size(s.syncLocations) > 0 ? (c.removeClass("hide"), d.addClass("hide")) : (c.addClass("hide"),
d.removeClass("hide"));
var i = e.reduce(s.syncLocations, function(n, t) {
return n + e.template(o, {
syncAttributes: t,
syncDesc: t.id || t.path
});
}, "");
l.innerHTML = i, e.each(l.querySelectorAll(".remove-button"), function(e) {
var t = n(e), o = s.syncLocations[t.data("syncIndex")];
t.click(function() {
a.tryStopRealtimeSync(), s.removeSyncLocation(o), r.onSyncRemoved(s, o);
});
});
}
};
return i.onFileSelected = function(n) {
s = n, p(n);
}, i.onSyncExportSuccess = p, i.onSyncRemoved = p, i.onReady = function() {
var e = document.querySelector(".modal-manage-sync");
l = e.querySelector(".sync-list"), c = n(e.querySelectorAll(".msg-sync-list")),
d = n(e.querySelectorAll(".msg-no-sync"));
}, i;
}), function() {
var n = this, e = {}, t = !1;
"undefined" != typeof module && module.exports ? (module.exports = e, n.toMarkdown = e,
t = !0) : n.toMarkdown = e, e.converter = function(n) {
n && n.elements && $.isArray(n.elements) && (c = c.concat(n.elements)), this.makeMd = function(n, e) {
var i;
if (t) {
var r = require("jsdom");
r.env({
html: n,
scripts: [ "http://code.jquery.com/jquery-1.6.4.min.js" ],
done: function(t, i) {
"function" == typeof e && e(o(n, i.$));
}
});
} else i = o(n, $);
return i;
};
};
var o = function(n, e) {
n = n.replace(/(\d+)\. /g, "$1\\. ");
var t = e("<div/>"), o = t.html(n);
o.find("*:not(pre, code)").contents().filter(function() {
return 3 === this.nodeType && /^\s+$/.test(this.nodeValue);
}).remove();
for (var i = [], r = 0, s = c.length; s > r; r++) i.push(c[r].selector);
for (i = i.join(","); o.find(i).length; ) for (var r = 0, s = c.length; s > r; r++) $matches = o.find(c[r].selector + ':not(:has("' + i + '"))'),
$matches.each(function(n, t) {
var o = e(t);
o.before(c[r].replacement(o.html(), o)).remove();
});
return a(o.html());
}, i = function(n) {
return n.replace(/^[\n\r\f]+|[\n\r\f]+$/g, "");
}, r = function(n) {
return String(n).replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"');
}, a = function(n) {
return n = n.replace(/^[\t\r\n]+|[\t\r\n]+$/g, ""), n = n.replace(/\n\s+\n/g, "\n\n"),
n = n.replace(/\n{3,}/g, "\n\n"), n = r(n);
}, s = function(n) {
return n = i(n), n ? "**" + n + "**" : "";
}, l = function(n) {
return n = i(n), n ? "_" + n + "_" : "";
}, c = [ {
selector: "p",
replacement: function(n) {
return n = $.trim(n), n ? "\n\n" + n + "\n\n" : "";
}
}, {
selector: "br",
replacement: function() {
return "\n";
}
}, {
selector: "h1,h2,h3,h4,h5,h6",
replacement: function(n, e) {
n = $.trim(n);
for (var t = e.prop("nodeName").charAt(1), o = "", i = 0; t > i; i++) o += "#";
return n ? "\n\n" + o + " " + n + "\n\n" : "";
}
}, {
selector: "hr",
replacement: function() {
return "\n\n* * *\n\n";
}
}, {
selector: "a[href]",
replacement: function(n, e) {
if (n) {
n = i(n);
var t = e.attr("href"), o = e.attr("title") || "";
return "[" + n + "]" + "(" + t + (o ? ' "' + o + '"' : "") + ")";
}
return !1;
}
}, {
selector: "b",
replacement: s
}, {
selector: "strong",
replacement: s
}, {
selector: "i",
replacement: l
}, {
selector: "em",
replacement: l
}, {
selector: "code",
replacement: function(n) {
return n = i(n), n ? "`" + n + "`" : "";
}
}, {
selector: "img",
replacement: function(n, e) {
var t = e.attr("alt") || "", o = e.attr("src") || "", i = e.attr("title") || "";
return "![" + t + "]" + "(" + o + (i ? ' "' + i + '"' : "") + ")";
}
}, {
selector: "pre",
replacement: function(n) {
return /^\s*\`/.test(n) ? (n = n.replace(/\`/g, ""), " " + n.replace(/\n/g, "\n ")) : "";
}
}, {
selector: "li",
replacement: function(n, e) {
n = n.replace(/^\s+|\s+$/, "").replace(/\n/gm, "\n ");
var t = "* ", o = "", i = e.parent(), r = i.contents().filter(function() {
return 1 === this.nodeType && "LI" === this.nodeName || 3 === this.nodeType;
}), a = r.index(e) + 1;
return t = i.is("ol") ? a + ". " : "* ", a == r.length && (e.parents("li").length || (o = "\n"),
n = n.replace(/\s+$/, ""), e.unwrap()), t + n + o + "\n";
}
}, {
selector: "blockquote",
replacement: function(n) {
return n = n = $.trim(n).replace(/\n{3,}/g, "\n\n"), n = n.replace(/\n/g, "\n&gt; "),
"&gt; " + n;
}
} ];
}(), define("toMarkdown", [ "jquery" ], function(n) {
return function() {
var e;
return e || n.toMarkdown;
};
}(this)), define("extensions/dialogOpenHarddrive", [ "jquery", "underscore", "utils", "classes/Extension", "toMarkdown", "config" ], function(n, e, t, o, i) {
function r(t) {
t.stopPropagation(), t.preventDefault();
var o = (t.dataTransfer || t.target).files;
n(".modal-import-harddrive-markdown, .modal-import-harddrive-html").modal("hide"),
e.each(o, function(e) {
if (!n(t.target).is("#wmd-input") || !e.name.match(/.(jpe?g|png|gif)$/)) {
var o = new FileReader();
o.onload = function(n) {
return function(e) {
var t = e.target.result;
if (t.match(/\uFFFD/)) return p.onError(n.name + " is a binary file."), void 0;
if (t = u ? u(t) : t, void 0 === t) return p.onError(n.name + " is not a valid HTML file."),
void 0;
var o = n.name, i = o.lastIndexOf(".");
o = -1 !== i ? o.substring(0, i) : o;
var r = d.createFile(o, t);
d.selectFile(r);
};
}(e);
var i = e.slice(0, IMPORT_FILE_MAX_CONTENT_SIZE);
o.readAsText(i);
}
});
}
function a(n) {
u = void 0, r(n);
}
function s(n) {
u = h, r(n);
}
function l(n) {
n.stopPropagation(), n.preventDefault(), n.dataTransfer.dropEffect = "copy";
}
var c = new o("dialogOpenHarddrive", 'Dialog "Open from"'), d = void 0;
c.onFileMgrCreated = function(n) {
d = n;
};
var p = void 0;
c.onEventMgrCreated = function(n) {
p = n;
};
var u = void 0, f = void 0, h = function(n) {
return f.makeMd(n);
};
return c.onReady = function() {
f = new i.converter(), n("#input-file-import-harddrive-markdown").change(a), n("#dropzone-import-harddrive-markdown, #wmd-input").each(function() {
this.addEventListener("dragover", l, !1), this.addEventListener("drop", a, !1);
}), n("#input-file-import-harddrive-html").change(s), n("#dropzone-import-harddrive-html").each(function() {
this.addEventListener("dragover", l, !1), this.addEventListener("drop", s, !1);
}), n(".action-convert-html").click(function(n) {
var e = t.getInputTextValue("#input-convert-html", n);
if (void 0 !== e) {
if (e = f.makeMd(e), void 0 === e) return p.onError("Invalid HTML code."), void 0;
var o = d.createFile(void 0, e);
d.selectFile(o);
}
});
}, c;
}), define("extensions/documentTitle", [ "jquery", "underscore", "classes/Extension" ], function(n, e, t) {
var o = new t("documentTitle", "Document Title"), i = void 0;
o.onLayoutCreated = function(n) {
i = n;
};
var r = void 0, a = function(t) {
if (t === r) {
var o = r.title;
document.title = "StackEdit - " + o, n(".file-title-navbar").html(r.composeTitle()),
n(".file-title").text(o), n(".input-file-title").val(o), void 0 !== i && e.defer(i.resizeAll);
}
};
return o.onFileSelected = function(n) {
r = n, a(n);
}, o.onTitleChanged = a, o.onSyncExportSuccess = a, o.onSyncRemoved = a, o.onNewPublishSuccess = a,
o.onPublishRemoved = a, o;
}), function() {
function n(n, e, t) {
return n.addEventListener ? (n.addEventListener(e, t, !1), void 0) : (n.attachEvent("on" + e, t),
void 0);
}
function e(n) {
if ("keypress" == n.type) {
var e = String.fromCharCode(n.which);
return n.shiftKey || (e = e.toLowerCase()), e;
}
return y[n.which] ? y[n.which] : w[n.which] ? w[n.which] : String.fromCharCode(n.which).toLowerCase();
}
function t(n, e) {
return n.sort().join(",") === e.sort().join(",");
}
function o(n) {
n = n || {};
var e, t = !1;
for (e in E) n[e] ? t = !0 : E[e] = 0;
t || (z = !1);
}
function i(n, e, o, i, r, a) {
var s, l, d = [], p = o.type;
if (!S[n]) return [];
for ("keyup" == p && c(n) && (e = [ n ]), s = 0; s < S[n].length; ++s) if (l = S[n][s],
(i || !l.seq || E[l.seq] == l.level) && p == l.action && ("keypress" == p && !o.metaKey && !o.ctrlKey || t(e, l.modifiers))) {
var u = !i && l.combo == r, f = i && l.seq == i && l.level == a;
(u || f) && S[n].splice(s, 1), d.push(l);
}
return d;
}
function r(n) {
var e = [];
return n.shiftKey && e.push("shift"), n.altKey && e.push("alt"), n.ctrlKey && e.push("ctrl"),
n.metaKey && e.push("meta"), e;
}
function a(n, e, t) {
P.stopCallback(e, e.target || e.srcElement, t) || n(e, t) === !1 && (e.preventDefault && e.preventDefault(),
e.stopPropagation && e.stopPropagation(), e.returnValue = !1, e.cancelBubble = !0);
}
function s(n, e, t) {
var r, s = i(n, e, t), l = {}, d = 0, p = !1;
for (r = 0; r < s.length; ++r) s[r].seq && (d = Math.max(d, s[r].level));
for (r = 0; r < s.length; ++r) if (s[r].seq) {
if (s[r].level != d) continue;
p = !0, l[s[r].seq] = 1, a(s[r].callback, t, s[r].combo);
} else p || a(s[r].callback, t, s[r].combo);
t.type != z || c(n) || o(l);
}
function l(n) {
"number" != typeof n.which && (n.which = n.keyCode);
var t = e(n);
if (t) return "keyup" == n.type && _ == t ? (_ = !1, void 0) : (P.handleKey(t, r(n), n),
void 0);
}
function c(n) {
return "shift" == n || "ctrl" == n || "alt" == n || "meta" == n;
}
function d() {
clearTimeout(x), x = setTimeout(o, 1e3);
}
function p() {
if (!v) {
v = {};
for (var n in y) n > 95 && 112 > n || y.hasOwnProperty(n) && (v[y[n]] = n);
}
return v;
}
function u(n, e, t) {
return t || (t = p()[n] ? "keydown" : "keypress"), "keypress" == t && e.length && (t = "keydown"),
t;
}
function f(n, t, i, r) {
function s(e) {
return function() {
z = e, ++E[n], d();
};
}
function l(t) {
a(i, t, n), "keyup" !== r && (_ = e(t)), setTimeout(o, 10);
}
E[n] = 0;
for (var c = 0; c < t.length; ++c) {
var p = c + 1 === t.length, u = p ? l : s(r || g(t[c + 1]).action);
b(t[c], u, r, n, c);
}
}
function h(n) {
return "+" === n ? [ "+" ] : n.split("+");
}
function g(n, e) {
var t, o, i, r = [];
for (t = h(n), i = 0; i < t.length; ++i) o = t[i], C[o] && (o = C[o]), e && "keypress" != e && k[o] && (o = k[o],
r.push("shift")), c(o) && r.push(o);
return e = u(o, r, e), {
key: o,
modifiers: r,
action: e
};
}
function b(n, e, t, o, r) {
T[n + ":" + t] = e, n = n.replace(/\s+/g, " ");
var a, s = n.split(" ");
return s.length > 1 ? (f(n, s, e, t), void 0) : (a = g(n, t), S[a.key] = S[a.key] || [],
i(a.key, a.modifiers, {
type: a.action
}, o, n, r), S[a.key][o ? "unshift" : "push"]({
callback: e,
modifiers: a.modifiers,
action: a.action,
seq: o,
level: r,
combo: n
}), void 0);
}
function m(n, e, t) {
for (var o = 0; o < n.length; ++o) b(n[o], e, t);
}
for (var v, x, y = {
8: "backspace",
9: "tab",
13: "enter",
16: "shift",
17: "ctrl",
18: "alt",
20: "capslock",
27: "esc",
32: "space",
33: "pageup",
34: "pagedown",
35: "end",
36: "home",
37: "left",
38: "up",
39: "right",
40: "down",
45: "ins",
46: "del",
91: "meta",
93: "meta",
224: "meta"
}, w = {
106: "*",
107: "+",
109: "-",
110: ".",
111: "/",
186: ";",
187: "=",
188: ",",
189: "-",
190: ".",
191: "/",
192: "`",
219: "[",
220: "\\",
221: "]",
222: "'"
}, k = {
"~": "`",
"!": "1",
"@": "2",
"#": "3",
$: "4",
"%": "5",
"^": "6",
"&": "7",
"*": "8",
"(": "9",
")": "0",
_: "-",
"+": "=",
":": ";",
'"': "'",
"<": ",",
">": ".",
"?": "/",
"|": "\\"
}, C = {
option: "alt",
command: "meta",
"return": "enter",
escape: "esc",
mod: /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? "meta" : "ctrl"
}, S = {}, T = {}, E = {}, _ = !1, z = !1, I = 1; 20 > I; ++I) y[111 + I] = "f" + I;
for (I = 0; 9 >= I; ++I) y[I + 96] = I;
n(document, "keypress", l), n(document, "keydown", l), n(document, "keyup", l);
var P = {
bind: function(n, e, t) {
return n = n instanceof Array ? n : [ n ], m(n, e, t), this;
},
unbind: function(n, e) {
return P.bind(n, function() {}, e);
},
trigger: function(n, e) {
return T[n + ":" + e] && T[n + ":" + e]({}, n), this;
},
reset: function() {
return S = {}, T = {}, this;
},
stopCallback: function(n, e) {
return (" " + e.className + " ").indexOf(" mousetrap ") > -1 ? !1 : "INPUT" == e.tagName || "SELECT" == e.tagName || "TEXTAREA" == e.tagName || e.contentEditable && "true" == e.contentEditable;
},
handleKey: s
};
window.Mousetrap = P, "function" == typeof define && define.amd && define("mousetrap", P);
}(), define("text!html/documentSelectorSettingsBlock.html", [], function() {
return '<p>Builds the "Open document" dropdown menu.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-5 control-label" for="select-document-selector-orderby">Order\n by</label>\n <div class="col-lg-6">\n <select id="select-document-selector-orderby" class="form-control">\n <option value="title">Document title</option>\n <option value="mru">Most recently used</option>\n </select>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-5 control-label"\n for="input-document-selector-shortcut-previous">"Previous"\n shortcut <a href="http://craig.is/killing/mice#keys" target="_blank">(?)</a></label>\n <div class="col-lg-6">\n <input type="text" id="input-document-selector-shortcut-previous"\n class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-5 control-label"\n for="input-document-selector-shortcut-next">"Next"\n shortcut <a href="http://craig.is/killing/mice#keys" target="_blank">(?)</a></label>\n <div class="col-lg-6">\n <input type="text" id="input-document-selector-shortcut-next"\n class="form-control">\n </div>\n </div>\n</div>';
}), define("extensions/documentSelector", [ "jquery", "underscore", "crel", "utils", "classes/Extension", "mousetrap", "fileSystem", "text!html/documentSelectorSettingsBlock.html" ], function(n, e, t, o, i, r, a, s) {
var l = new i("documentSelector", "Document Selector");
l.settingsBlock = s, l.defaultConfig = {
orderBy: "title",
shortcutPrevious: "Ctrl+[",
shortcutNext: "Ctrl+]"
}, l.onLoadSettings = function() {
o.setInputValue("#select-document-selector-orderby", l.config.orderBy), o.setInputValue("#input-document-selector-shortcut-previous", l.config.shortcutPrevious),
o.setInputValue("#input-document-selector-shortcut-next", l.config.shortcutNext);
}, l.onSaveSettings = function(n, e) {
n.orderBy = o.getInputValue("#select-document-selector-orderby"), n.shortcutPrevious = o.getInputTextValue("#input-document-selector-shortcut-previous", e),
n.shortcutNext = o.getInputTextValue("#input-document-selector-shortcut-next", e);
};
var c = void 0;
l.onFileMgrCreated = function(n) {
c = n;
};
var d = [ '<li class="<%= isCurrent ? "disabled" : "" %>" data-file-index="<%= fileDesc.fileIndex %>">', ' <a href="#">', " <%= fileDesc.composeTitle() %>", " </a>", "</li>" ].join(""), p = void 0, u = void 0, f = void 0, h = void 0, g = void 0, b = void 0, m = function() {
var t = e.chain(a).sortBy(g).reduce(function(n, t) {
return n + e.template(d, {
fileDesc: t,
isCurrent: t === b
});
}, "").value();
u.innerHTML = t, h = [], f = {}, e.each(u.querySelectorAll("li"), function(e) {
var t = n(e);
h.push(t);
var o = a[t.data("fileIndex")];
f[o.fileIndex] = t, t.find("a").click(function() {
t.hasClass("disabled") ? p.focus() : c.selectFile(o);
});
});
};
return l.onFileSelected = function(n) {
b = n, m();
}, l.onFileCreated = m, l.onFileDeleted = m, l.onTitleChanged = m, l.onSyncExportSuccess = m,
l.onSyncRemoved = m, l.onNewPublishSuccess = m, l.onPublishRemoved = m, l.onReady = function() {
p = n("#wmd-input"), "title" == l.config.orderBy ? g = function(n) {
return n.title.toLowerCase();
} : "mru" == l.config.orderBy && (g = function(n) {
return -n.selectTime;
}), u = t("ul", {
"class": "dropdown-menu dropdown-file-selector"
}), document.querySelector(".ui-layout-resizer-north").appendChild(t("div", t("div", {
"data-toggle": "dropdown"
}), u));
var o = n(u).dropdown(), i = void 0, a = n(".document-panel .collapse-button");
a.prop("title", e.template("<%= title %> <%= shortcutPrevious %> <%= shortcutNext %>", {
title: a.prop("title"),
shortcutPrevious: l.config.shortcutPrevious,
shortcutNext: l.config.shortcutNext
}));
var s = l.config.shortcutPrevious.toLowerCase();
r.bind(s, function() {
void 0 === i && (o.dropdown("toggle"), i = f[b.fileIndex]);
var n = e.indexOf(h, i) - 1;
return -2 === n && (n = -1), i = h[(n + h.length) % h.length], e.defer(function() {
i.find("a").focus();
}), !1;
});
var c = l.config.shortcutNext.toLowerCase();
r.bind(l.config.shortcutNext.toLowerCase(), function() {
void 0 === i && (o.dropdown("toggle"), i = f[b.fileIndex]);
var n = e.indexOf(h, i) + 1;
return i = h[n % h.length], e.defer(function() {
i.find("a").focus();
}), !1;
});
var d = s.indexOf("+"), m = -1 === d ? s : s.substring(0, d), v = c.indexOf("+"), x = -1 === v ? c : c.substring(0, v);
r.bind([ m, x ], function() {
void 0 !== i && (i.find("a").click(), i = void 0);
}, "keyup");
}, l;
}), define("classes/FolderDescriptor", [ "underscore", "utils", "fileSystem" ], function(n, e, t) {
function o(o, i) {
this.folderIndex = o, this._name = i || localStorage[o + ".name"], this.fileList = {},
n.each(e.retrieveIndexArray(o + ".files"), function(n) {
try {
var i = t[n];
i.folder = this, this.fileList[n] = i;
} catch (r) {
e.removeIndexFromArray(o + ".files", n);
}
}, this), Object.defineProperty(this, "name", {
get: function() {
return this._name;
},
set: function(n) {
this._name = n, localStorage[this.folderIndex + ".name"] = n;
}
});
}
return o.prototype.addFile = function(n) {
n.folder = this, e.appendIndexToArray(this.folderIndex + ".files", n.fileIndex),
this.fileList[n.fileIndex] = n;
}, o.prototype.removeFile = function(n) {
n.folder = void 0, e.removeIndexFromArray(this.folderIndex + ".files", n.fileIndex),
delete this.fileList[n.fileIndex];
}, o;
}), define("folderList", [ "underscore", "utils", "classes/FolderDescriptor", "storage" ], function(n, e, t) {
var o = {};
return n.each(e.retrieveIndexArray("folder.list"), function(n) {
o[n] = new t(n);
}), o;
}), define("extensions/documentPanel", [ "jquery", "underscore", "utils", "classes/Extension", "folderList", "fileSystem" ], function(n, e, t, o, i, r) {
function a(t) {
if (t != v) {
if (v = t, m.scrollTop = 0, !t) return g.addClass("hide"), f.removeClass("hide"),
void 0;
var o = t.toLowerCase().split(/\s+/);
e.each(h.querySelectorAll(".file"), function(t) {
var i = n(t), r = i.text().toLowerCase();
i.toggle(!e.some(o, function(n) {
return -1 === r.indexOf(n);
}));
}), g.removeClass("hide"), f.addClass("hide");
}
}
var s = new o("documentPanel", "Document Panel"), l = void 0;
s.onFileMgrCreated = function(n) {
l = n;
};
var c = [ '<a href="#"', ' class="list-group-item folder clearfix"', ' data-folder-index="<%= folderDesc.folderIndex %>"', ' data-toggle="collapse"', ' data-target=".document-panel .file-list.<%= id %>">', ' <div class="pull-right file-count">', " <%= _.size(folderDesc.fileList) %>", " </div>", ' <i class="icon-folder"></i> <%= folderDesc.name %>', "</a>", '<div class="file-list collapse <%= id %> clearfix">', " <%= fileListHtml %>", "</div>" ].join(""), d = [ '<a href="#"', ' class="list-group-item file<%= fileDesc === selectedFileDesc ? " active" : "" %>"', ' data-file-index="<%= fileDesc.fileIndex %>"', ' data-toggle="collapse"', ' data-target=".document-panel">', " <%= fileDesc.composeTitle() %>", "</a>" ].join(""), p = void 0, u = void 0, f = void 0, h = void 0, g = void 0, b = function() {
var t = e.filter(r, function(n) {
return void 0 === n.folder;
}), o = e.chain(t).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + "<li>" + e.template(d, {
fileDesc: t
}) + "</li>";
}, "").value();
o = o && '<ul class="nav">' + o + "</ul>", e.chain(i).sortBy(function(n) {
return n.name.toLowerCase();
}).each(function(n) {
var t = e.chain(n.fileList).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + "<li>" + e.template(d, {
fileDesc: t
}) + "</li>";
}, "").value();
t = t && '<ul class="nav">' + t + "</ul>", o += e.template(c, {
folderDesc: n,
fileListHtml: t,
id: n.folderIndex.replace(".", "")
});
}), u.innerHTML = o;
var a = e.chain(r).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + "<li>" + e.template(d, {
fileDesc: t
}) + "</li>";
}, "").value();
a = '<ul class="nav">' + a + "</ul>", h.innerHTML = a, e.each(u.querySelectorAll(".file"), function(e) {
e = n(e), e.click(function() {
var n = r[e.data("fileIndex")];
n && n !== selectedFileDesc && l.selectFile(n);
});
});
};
s.onFileSelected = function(n) {
selectedFileDesc = n, b();
}, s.onFileCreated = b, s.onFileDeleted = b, s.onTitleChanged = b, s.onSyncExportSuccess = b,
s.onSyncRemoved = b, s.onNewPublishSuccess = b, s.onPublishRemoved = b, s.onFoldersChanged = b;
var m = void 0, v = "";
return s.onReady = function() {
p = document.querySelector(".document-panel"), m = p.querySelector(".panel-content"),
u = p.querySelector(".document-list"), f = n(u), h = p.querySelector(".document-list-filtered"),
g = n(h), n(p).on("show.bs.collapse", function(e) {
if (e.target === p) {
var t = selectedFileDesc.folder;
void 0 !== t && n(p.querySelector(".file-list." + t.folderIndex.replace(".", ""))).collapse("show");
}
}).on("shown.bs.collapse", function(n) {
n.target === p && (e.val(""), a(""), m.scrollTop += u.querySelector(".file.active").getBoundingClientRect().top - 120);
});
var e = n(p.querySelector(".search-bar .form-control"));
e.bind("propertychange keyup input paste", function() {
a(e.val());
}), n(p.querySelector(".search-bar .close")).click(function() {
e.val(""), a(""), e.focus();
});
}, s;
}), define("extensions/documentManager", [ "jquery", "underscore", "utils", "classes/Extension", "classes/FolderDescriptor", "folderList", "fileSystem", "config" ], function(n, e, t, o, i, r, a) {
function s() {
k = [], w = [], e.each(y.querySelectorAll('input[type="checkbox"]:checked'), function(e) {
var t = n(e.parentNode.parentNode), o = r[t.data("folderIndex")], i = a[t.data("fileIndex")];
void 0 !== o ? k.push(o) : void 0 !== i && w.push(i);
});
}
function l() {
if (0 === e.size(w)) return c(), void 0;
var t = e.chain(w).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + e.template(m, {
fileDesc: t
});
}, "").value();
C.innerHTML = '<ul class="file-list nav">' + t + "</ul>", n(x.querySelectorAll(".document-list")).addClass("hide"),
n(x.querySelectorAll(".confirm-delete, .selected-document-list")).removeClass("hide");
}
function c() {
e.each(w, function(n) {
n.folder && n.folder.removeFile(n), u.deleteFile(n);
}), e.each(k, function(n) {
t.removeIndexFromArray("folder.list", n.folderIndex), delete r[n.folderIndex];
}), f.onFoldersChanged();
}
function d() {
s(), S.toggleClass("disabled", 0 === e.size(r) || 0 === e.size(w)), T.toggleClass("disabled", 0 === e.size(k) && 0 === e.size(w));
}
var p = new o("documentManager", "Document Manager", !1, !0), u = void 0;
p.onFileMgrCreated = function(n) {
u = n;
};
var f = void 0;
p.onEventMgrCreated = function(n) {
f = n;
};
var h = [ '<a href="#" class="list-group-item folder clearfix" data-folder-index="<%= folderDesc.folderIndex %>" data-toggle="collapse" data-target=".modal-document-manager .file-list.<%= id %>">', '<label class="checkbox" title="Select"><input type="checkbox"></label>', '<button class="btn btn-default button-delete" title="Delete"><i class="icon-trash"></i></button>', '<button class="btn btn-default button-rename" title="Rename"><i class="icon-pencil"></i></button>', '<div class="pull-right file-count"><%= _.size(folderDesc.fileList) %></div>', '<div class="name"><i class="icon-folder"></i> ', "<%= folderDesc.name %></div>", '<input type="text" class="input-rename form-control hide"></a>', '<div class="file-list collapse <%= id %> clearfix"><%= fileListHtml %></div>' ].join(""), g = [ '<li class="list-group-item file clearfix" data-file-index="<%= fileDesc.fileIndex %>">', '<label class="checkbox" title="Select"><input type="checkbox"></label>', '<button class="btn btn-default button-delete" title="Delete"><i class="icon-trash"></i></button>', '<button class="btn btn-default button-rename" title="Rename"><i class="icon-pencil"></i></button>', '<div class="name"><%= fileDesc.composeTitle() %></div>', '<input type="text" class="input-rename form-control hide"></li>' ].join(""), b = [ '<a href="#" class="list-group-item folder clearfix" data-folder-index="<%= folderDesc.folderIndex %>">', '<div class="pull-right file-count"><%= _.size(folderDesc.fileList) %></div>', '<div class="name"><i class="icon-forward"></i> ', "<%= folderDesc.name %></div></a>" ].join(""), m = [ '<li class="list-group-item file clearfix">', '<div class="name"><%= fileDesc.composeTitle() %></div></li>' ].join(""), v = !1, x = void 0, y = void 0, w = [], k = [], C = void 0, S = void 0, T = void 0, E = void 0, _ = void 0, z = void 0, I = function() {
if (v !== !1) {
d(), _.text(e.size(a)), z.text(e.size(r) + 1), E = e.filter(a, function(n) {
return void 0 === n.folder;
});
var t = [ '<a href="#" class="list-group-item folder clearfix" data-toggle="collapse" data-target=".modal-document-manager .file-list.root-folder">', '<label class="checkbox" title="Select"><input type="checkbox"></label>', '<div class="pull-right file-count">', e.size(E), "</div>", '<div class="name"><i class="icon-folder"></i> ', "ROOT folder</div></a>" ].join(""), o = e.chain(E).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + e.template(g, {
fileDesc: t
});
}, "").value();
o = o && '<ul class="nav">' + o + "</ul>", t += '<div class="file-list collapse root-folder clearfix">' + o + "</div>",
e.chain(r).sortBy(function(n) {
return n.name.toLowerCase();
}).each(function(n) {
var o = e.chain(n.fileList).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + e.template(g, {
fileDesc: t
});
}, "").value();
o = o && '<ul class="nav">' + o + "</ul>", t += e.template(h, {
folderDesc: n,
fileListHtml: o,
id: n.folderIndex.replace(".", "")
});
}), y.innerHTML = t, e.each(y.querySelectorAll(".button-delete"), function(e) {
e = n(e), e.click(function(n) {
n.stopPropagation();
var t = e.parent(), o = r[t.data("folderIndex")], i = a[t.data("fileIndex")];
w = [], k = [], o ? (k.push(o), w = o.fileList) : i && w.push(i), l();
});
}), e.each(y.querySelectorAll(".button-rename"), function(e) {
e = n(e), e.click(function(n) {
n.stopPropagation();
var t = e.parent(), o = void 0, i = r[t.data("folderIndex")], s = a[t.data("fileIndex")];
i ? o = i.name : s && (o = s.title), t.find(".name").addClass("hide"), t.find(".input-rename").removeClass("hide").val(o)[0].select();
});
}), e.each(y.querySelectorAll(".input-rename"), function(e) {
function t() {
var t = e.parent(), o = n.trim(e.val()), i = r[t.data("folderIndex")], s = a[t.data("fileIndex")];
o && i && o != i.name ? (i.name = o, f.onFoldersChanged()) : o && s && o != s.title ? (s.title = o,
f.onTitleChanged(s)) : (e.addClass("hide"), t.find(".name").removeClass("hide"));
}
e = n(e), e.blur(function() {
t();
}).keyup(function(n) {
13 == n.keyCode && (t(), n.stopPropagation()), 27 == n.keyCode && (e.val(""), t(),
n.stopPropagation());
});
}), e.each(y.querySelectorAll(".folder .checkbox"), function(e) {
e = n(e), e.click(function(n) {
n.stopPropagation();
}).find("[type=checkbox]").change(function() {
var n = e.parent().next().find("[type=checkbox]");
this.checked ? n.prop("checked", !0).prop("disabled", !0) : n.prop("checked", !1).prop("disabled", !1);
});
}), n(y.querySelectorAll("[type=checkbox]")).change(d);
}
};
return p.onFileCreated = I, p.onFileDeleted = I, p.onTitleChanged = I, p.onSyncExportSuccess = I,
p.onSyncRemoved = I, p.onNewPublishSuccess = I, p.onPublishRemoved = I, p.onFoldersChanged = I,
p.onReady = function() {
x = document.querySelector(".modal-document-manager"), y = x.querySelector(".list-group.document-list"),
_ = n(x.querySelectorAll(".document-count")), z = n(x.querySelectorAll(".folder-count")),
C = x.querySelector(".list-group.selected-document-list");
var o = x.querySelector(".list-group.select-folder-list");
n(x).on("show.bs.modal", function() {
v = !0, I();
}).on("hide.bs.modal", function() {
v = !1;
}), n(x.querySelectorAll(".action-create-folder")).click(function() {
var o = void 0;
do o = "folder." + t.randomString(); while (e.has(r, o));
localStorage[o + ".name"] = DEFAULT_FOLDER_NAME;
var a = new i(o, DEFAULT_FOLDER_NAME);
t.appendIndexToArray("folder.list", o), r[o] = a, f.onFoldersChanged();
var s = n(x.querySelector('[data-folder-index="' + o + '"] .button-rename')).click();
x.scrollTop += s.offset().top - 50;
}), n(x.querySelectorAll(".action-select-all")).click(function() {
n(y.querySelectorAll('input[type="checkbox"]')).prop("checked", !0).change();
}), n(x.querySelectorAll(".action-unselect-all")).click(function() {
n(y.querySelectorAll('input[type="checkbox"]')).prop("checked", !1).change();
});
var a = n(x.querySelectorAll(".action-delete-items")).click(function() {
T.hasClass("disabled") || (s(), l());
});
T = a.parent(), n(x.querySelectorAll(".action-delete-items-confirm")).click(function() {
c(), n(x.querySelectorAll(".document-list")).removeClass("hide"), n(x.querySelectorAll(".confirm-delete, .selected-document-list")).addClass("hide");
});
var d = n(x.querySelectorAll(".action-move-items")).click(function() {
if (!S.hasClass("disabled")) {
s();
var t = [ '<a href="#" class="list-group-item folder clearfix">', '<div class="pull-right file-count">', e.size(E), "</div>", '<div class="name"><i class="icon-forward"></i> ', "ROOT folder</div></a>" ].join("");
t += e.chain(r).sortBy(function(n) {
return n.name.toLowerCase();
}).reduce(function(n, t) {
return n + e.template(b, {
folderDesc: t
});
}, "").value(), o.innerHTML = t, e.each(o.querySelectorAll(".folder"), function(t) {
t = n(t), t.click(function() {
var o = r[t.data("folderIndex")];
e.each(w, function(n) {
n.folder && n.folder.removeFile(n), o && o.addFile(n);
}), f.onFoldersChanged(), n(x.querySelectorAll(".document-list")).removeClass("hide"),
n(x.querySelectorAll(".choose-folder, .select-folder-list")).addClass("hide");
});
}), n(x.querySelectorAll(".document-list")).addClass("hide"), n(x.querySelectorAll(".choose-folder, .select-folder-list")).removeClass("hide");
}
});
S = d.parent(), n(x.querySelectorAll(".action-cancel")).click(function() {
n(x.querySelectorAll(".document-list")).removeClass("hide"), n(x.querySelectorAll(".confirm-delete, .choose-folder, .selected-document-list, .select-folder-list")).addClass("hide");
});
}, p;
}), define("extensions/workingIndicator", [ "jquery", "underscore", "classes/Extension" ], function(n, e, t) {
var o = new t("workingIndicator", "Working Indicator");
return o.onAsyncRunning = function(e) {
e === !1 ? (n(".working-indicator").removeClass("show"), n("body").removeClass("working")) : (n(".working-indicator").addClass("show"),
n("body").addClass("working"));
}, o;
}), function(n) {
var e = function() {
return !1 === n.support.boxModel && n.support.objectAll && n.support.leadingWhitespace;
}();
n.jGrowl = function(e, t) {
0 == n("#jGrowl").size() && n('<div id="jGrowl"></div>').addClass(t && t.position ? t.position : n.jGrowl.defaults.position).appendTo("body"),
n("#jGrowl").jGrowl(e, t);
}, n.fn.jGrowl = function(e, t) {
if (n.isFunction(this.each)) {
var o = arguments;
return this.each(function() {
void 0 == n(this).data("jGrowl.instance") && (n(this).data("jGrowl.instance", n.extend(new n.fn.jGrowl(), {
notifications: [],
element: null,
interval: null
})), n(this).data("jGrowl.instance").startup(this)), n.isFunction(n(this).data("jGrowl.instance")[e]) ? n(this).data("jGrowl.instance")[e].apply(n(this).data("jGrowl.instance"), n.makeArray(o).slice(1)) : n(this).data("jGrowl.instance").create(e, t);
});
}
}, n.extend(n.fn.jGrowl.prototype, {
defaults: {
pool: 0,
header: "",
group: "",
sticky: !1,
position: "top-right",
glue: "after",
theme: "default",
themeState: "highlight",
corners: "10px",
check: 250,
life: 3e3,
closeDuration: "normal",
openDuration: "normal",
easing: "swing",
closer: !0,
closeTemplate: "&times;",
closerTemplate: "<div>[ close all ]</div>",
log: function() {},
beforeOpen: function() {},
afterOpen: function() {},
open: function() {},
beforeClose: function() {},
close: function() {},
animateOpen: {
opacity: "show"
},
animateClose: {
opacity: "hide"
}
},
notifications: [],
element: null,
interval: null,
create: function(e, t) {
var t = n.extend({}, this.defaults, t);
"undefined" != typeof t.speed && (t.openDuration = t.speed, t.closeDuration = t.speed),
this.notifications.push({
message: e,
options: t
}), t.log.apply(this.element, [ this.element, e, t ]);
},
render: function(e) {
var t = this, o = e.message, i = e.options;
i.themeState = "" == i.themeState ? "" : "ui-state-" + i.themeState;
var e = n("<div/>").addClass("jGrowl-notification " + i.themeState + " ui-corner-all" + (void 0 != i.group && "" != i.group ? " " + i.group : "")).append(n("<div/>").addClass("jGrowl-close").html(i.closeTemplate)).append(n("<div/>").addClass("jGrowl-header").html(i.header)).append(n("<div/>").addClass("jGrowl-message").html(o)).data("jGrowl", i).addClass(i.theme).children("div.jGrowl-close").bind("click.jGrowl", function() {
n(this).parent().trigger("jGrowl.beforeClose");
}).parent();
n(e).bind("mouseover.jGrowl", function() {
n("div.jGrowl-notification", t.element).data("jGrowl.pause", !0);
}).bind("mouseout.jGrowl", function() {
n("div.jGrowl-notification", t.element).data("jGrowl.pause", !1);
}).bind("jGrowl.beforeOpen", function() {
0 != i.beforeOpen.apply(e, [ e, o, i, t.element ]) && n(this).trigger("jGrowl.open");
}).bind("jGrowl.open", function() {
0 != i.open.apply(e, [ e, o, i, t.element ]) && ("after" == i.glue ? n("div.jGrowl-notification:last", t.element).after(e) : n("div.jGrowl-notification:first", t.element).before(e),
n(this).animate(i.animateOpen, i.openDuration, i.easing, function() {
n.support.opacity === !1 && this.style.removeAttribute("filter"), null != n(this).data("jGrowl") && (n(this).data("jGrowl").created = new Date()),
n(this).trigger("jGrowl.afterOpen");
}));
}).bind("jGrowl.afterOpen", function() {
i.afterOpen.apply(e, [ e, o, i, t.element ]);
}).bind("jGrowl.beforeClose", function() {
0 != i.beforeClose.apply(e, [ e, o, i, t.element ]) && n(this).trigger("jGrowl.close");
}).bind("jGrowl.close", function() {
n(this).data("jGrowl.pause", !0), n(this).animate(i.animateClose, i.closeDuration, i.easing, function() {
n.isFunction(i.close) ? i.close.apply(e, [ e, o, i, t.element ]) !== !1 && n(this).remove() : n(this).remove();
});
}).trigger("jGrowl.beforeOpen"), "" != i.corners && void 0 != n.fn.corner && n(e).corner(i.corners),
n("div.jGrowl-notification:parent", t.element).size() > 1 && 0 == n("div.jGrowl-closer", t.element).size() && 0 != this.defaults.closer && n(this.defaults.closerTemplate).addClass("jGrowl-closer " + this.defaults.themeState + " ui-corner-all").addClass(this.defaults.theme).appendTo(t.element).animate(this.defaults.animateOpen, this.defaults.speed, this.defaults.easing).bind("click.jGrowl", function() {
n(this).siblings().trigger("jGrowl.beforeClose"), n.isFunction(t.defaults.closer) && t.defaults.closer.apply(n(this).parent()[0], [ n(this).parent()[0] ]);
});
},
update: function() {
n(this.element).find("div.jGrowl-notification:parent").each(function() {
void 0 != n(this).data("jGrowl") && void 0 != n(this).data("jGrowl").created && n(this).data("jGrowl").created.getTime() + parseInt(n(this).data("jGrowl").life) < new Date().getTime() && 1 != n(this).data("jGrowl").sticky && (void 0 == n(this).data("jGrowl.pause") || 1 != n(this).data("jGrowl.pause")) && n(this).trigger("jGrowl.beforeClose");
}), this.notifications.length > 0 && (0 == this.defaults.pool || n(this.element).find("div.jGrowl-notification:parent").size() < this.defaults.pool) && this.render(this.notifications.shift()),
n(this.element).find("div.jGrowl-notification:parent").size() < 2 && n(this.element).find("div.jGrowl-closer").animate(this.defaults.animateClose, this.defaults.speed, this.defaults.easing, function() {
n(this).remove();
});
},
startup: function(t) {
this.element = n(t).addClass("jGrowl").append('<div class="jGrowl-notification"></div>'),
this.interval = setInterval(function() {
n(t).data("jGrowl.instance").update();
}, parseInt(this.defaults.check)), e && n(this.element).addClass("ie6");
},
shutdown: function() {
n(this.element).removeClass("jGrowl").find("div.jGrowl-notification").trigger("jGrowl.close").parent().empty();
},
close: function() {
n(this.element).find("div.jGrowl-notification").each(function() {
n(this).trigger("jGrowl.beforeClose");
});
}
}), n.jGrowl.defaults = n.fn.jGrowl.prototype.defaults;
}(jQuery), define("jgrowl", [ "jquery" ], function(n) {
return function() {
var e;
return e || n.jQuery.jGrowl;
};
}(this)), define("text!html/notificationsSettingsBlock.html", [], function() {
return '<p>Shows notification messages in the bottom-right corner of the\n screen.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-notifications-timeout">Timeout</label>\n <div class="col-lg-7 form-inline">\n <input type="text" id="input-notifications-timeout"\n class="col-lg-5 form-control"> <span class="help-inline">ms</span>\n </div>\n </div>\n</div>';
}), define("extensions/notifications", [ "jquery", "underscore", "utils", "classes/Extension", "jgrowl", "text!html/notificationsSettingsBlock.html" ], function(n, e, t, o, i, r) {
function a() {
c === !1 && (i.defaults.life = l.config.timeout, i.defaults.closer = !1, i.defaults.closeTemplate = "",
i.defaults.position = "bottom-right", c = !0);
}
function s(n, t, o) {
if (logger.info(n), a(), n) {
var r = n.indexOf("|");
(-1 === r || (n = n.substring(0, r))) && (o = o || {}, t = t || "icon-info-sign",
i("<i class='icon-white " + t + "'></i> " + e.escape(n), o));
}
}
var l = new o("notifications", "Notifications");
l.settingsBlock = r, l.defaultConfig = {
timeout: 8e3
}, l.onLoadSettings = function() {
t.setInputValue("#input-notifications-timeout", l.config.timeout);
}, l.onSaveSettings = function(n, e) {
n.timeout = t.getInputIntValue("#input-notifications-timeout", e, 1, 6e4);
};
var c = !1;
return l.onMessage = function(n) {
s(n);
}, l.onError = function(n) {
logger.error(n), e.isString(n) ? s(n, "icon-warning-sign") : e.isObject(n) && s(n.message, "icon-warning-sign");
}, l.onOfflineChanged = function(e) {
e === !0 ? s("You are offline.", "icon-attention-circled msg-offline", {
sticky: !0,
close: function() {
s("You are back online!", "icon-signal");
}
}) : n(".msg-offline").parents(".jGrowl-notification").trigger("jGrowl.beforeClose");
}, l.onSyncImportSuccess = function(n, t) {
var o = e.map(n, function(n) {
return n.title;
}).join(", ");
s(o + " imported successfully from " + t.providerName + ".");
}, l.onSyncExportSuccess = function(n, e) {
s('"' + n.title + '" will now be synchronized on ' + e.provider.providerName + ".");
}, l.onSyncRemoved = function(n, e) {
s(e.provider.providerName + " synchronized location has been removed.");
}, l.onPublishSuccess = function(n) {
s('"' + n.title + '" successfully published.');
}, l.onNewPublishSuccess = function(n, e) {
s('"' + n.title + '" is now published on ' + e.provider.providerName + ".");
}, l.onPublishRemoved = function(n, e) {
s(e.provider.providerName + " publish location has been removed.");
}, l;
}), define("text!html/markdownExtraSettingsBlock.html", [], function() {
return '<p>Adds extra features to the original Markdown syntax.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-fencedcodegfm">GFM fenced code\n blocks</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-fencedcodegfm">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-markdownextra-tables">Tables</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-tables">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-deflist">Definition lists</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-deflist">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-attrlist">Special attributes</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-attrlist">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-footnotes">Footnotes</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-footnotes">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-highlighter">Syntax highlighter</label>\n <div class="col-lg-7">\n <select id="input-markdownextra-highlighter" class="form-control"><option>None</option>\n <option value="prettify">Prettify</option>\n <option value="highlight">Highlight.js</option>\n </select>\n </div>\n </div>\n</div>\n<span class="help-block pull-right"><a target="_blank"\n href="https://github.com/jmcmanus/pagedown-extra">More info</a></span>';
});
var Markdown;
Markdown = "object" == typeof exports && "function" == typeof require ? exports : {},
function() {
function n(n) {
return n;
}
function e() {
return !1;
}
function t() {}
function o() {}
t.prototype = {
chain: function(e, t) {
var o = this[e];
if (!o) throw new Error("unknown hook " + e);
this[e] = o === n ? t : function() {
var n = Array.prototype.slice.call(arguments, 0);
return n[0] = o.apply(null, n), t.apply(null, n);
};
},
set: function(n, e) {
if (!this[n]) throw new Error("unknown hook " + n);
this[n] = e;
},
addNoop: function(e) {
this[e] = n;
},
addFalse: function(n) {
this[n] = e;
}
}, Markdown.HookCollection = t, o.prototype = {
set: function(n, e) {
this["s_" + n] = e;
},
get: function(n) {
return this["s_" + n];
}
}, Markdown.Converter = function() {
function n(n) {
return n = n.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?(?=\s|$)[ \t]*\n?[ \t]*((\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm, function(n, e, t, o, i, r) {
return e = e.toLowerCase(), R.set(e, C(t)), i ? o : (r && M.set(e, r.replace(/"/g, "&quot;")),
"");
});
}
function e(n) {
return n = n.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm, i),
n = n.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm, i),
n = n.replace(/\n[ ]{0,3}((<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, i), n = n.replace(/\n\n[ ]{0,3}(<!(--(?:|(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>[ \t]*(?=\n{2,}))/g, i),
n = n.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, i);
}
function i(n, e) {
var t = e;
return t = t.replace(/^\n+/, ""), t = t.replace(/\n+$/g, ""), t = "\n\n~K" + (A.push(t) - 1) + "K\n\n";
}
function r(n, t) {
n = L.preBlockGamut(n, D), n = f(n);
var o = "<hr />\n";
return n = n.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm, o), n = n.replace(/^[ ]{0,2}([ ]?-[ ]?){3,}[ \t]*$/gm, o),
n = n.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm, o), n = h(n), n = b(n), n = w(n),
n = L.postBlockGamut(n, D), n = e(n), n = k(n, t);
}
function a(n) {
return n = L.preSpanGamut(n), n = v(n), n = s(n), n = S(n), n = d(n), n = l(n),
n = E(n), n = n.replace(/~P/g, "://"), n = C(n), n = y(n), n = n.replace(/ +\n/g, " <br>\n"),
n = L.postSpanGamut(n);
}
function s(n) {
var e = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--(?:|(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>)/gi;
return n = n.replace(e, function(n) {
var e = n.replace(/(.)<\/?code>(?=.)/g, "$1`");
return e = $(e, "!" == n.charAt(1) ? "\\`*_/" : "\\`*_");
});
}
function l(n) {
return n = n.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, c),
n = n.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?((?:\([^)]*\)|[^()\s])*?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, c),
n = n.replace(/(\[([^\[\]]+)\])()()()()()/g, c);
}
function c(n, e, t, o, i, r, a, s) {
void 0 == s && (s = "");
var l = e, c = t.replace(/:\/\//g, "~P"), d = o.toLowerCase(), u = i, f = s;
if ("" == u) if ("" == d && (d = c.toLowerCase().replace(/ ?\n/g, " ")), u = "#" + d,
void 0 != R.get(d)) u = R.get(d), void 0 != M.get(d) && (f = M.get(d)); else {
if (!(l.search(/\(\s*\)$/m) > -1)) return l;
u = "";
}
u = P(u), u = $(u, "*_");
var h = '<a href="' + u + '"';
return "" != f && (f = p(f), f = $(f, "*_"), h += ' title="' + f + '"'), h += ">" + c + "</a>";
}
function d(n) {
return n = n.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, u), n = n.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, u);
}
function p(n) {
return n.replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/"/g, "&quot;");
}
function u(n, e, t, o, i, r, a, s) {
var l = e, c = t, d = o.toLowerCase(), u = i, f = s;
if (f || (f = ""), "" == u) {
if ("" == d && (d = c.toLowerCase().replace(/ ?\n/g, " ")), u = "#" + d, void 0 == R.get(d)) return l;
u = R.get(d), void 0 != M.get(d) && (f = M.get(d));
}
c = $(p(c), "*_[]()"), u = $(u, "*_");
var h = '<img src="' + u + '" alt="' + c + '"';
return f = p(f), f = $(f, "*_"), h += ' title="' + f + '"', h += " />";
}
function f(n) {
return n = n.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm, function(n, e) {
return '<h1 class="wmd-title">' + a(e) + "</h1>\n\n";
}), n = n.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm, function(n, e) {
return '<h2 class="wmd-title">' + a(e) + "</h2>\n\n";
}), n = n.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm, function(n, e, t) {
var o = e.length;
return "<h" + o + ' class="wmd-title">' + a(t) + "</h" + o + ">\n\n";
});
}
function h(n, e) {
n += "~0";
var t = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
return j ? n = n.replace(t, function(n, t, o) {
var i = t, r = o.search(/[*+-]/g) > -1 ? "ul" : "ol", a = g(i, r, e);
return a = a.replace(/\s+$/, ""), a = "<" + r + ">" + a + "</" + r + ">\n";
}) : (t = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,
n = n.replace(t, function(n, e, t, o) {
var i = e, r = t, a = o.search(/[*+-]/g) > -1 ? "ul" : "ol", s = g(r, a);
return s = i + "<" + a + ">\n" + s + "</" + a + ">\n";
})), n = n.replace(/~0/, "");
}
function g(n, e, t) {
j++, n = n.replace(/\n{2,}$/, "\n"), n += "~0";
var o = O[e], i = new RegExp("(^[ \\t]*)(" + o + ")[ \\t]+([^\\r]+?(\\n+))(?=(~0|\\1(" + o + ")[ \\t]+))", "gm"), s = !1;
return n = n.replace(i, function(n, e, o, i) {
var l = i, c = /\n\n$/.test(l), d = c || l.search(/\n{2,}/) > -1;
return d || s ? l = r(z(l), !0) : (l = h(z(l), !0), l = l.replace(/\n$/, ""), t || (l = a(l))),
s = c, "<li>" + l + "</li>\n";
}), n = n.replace(/~0/g, ""), j--, n;
}
function b(n) {
return n += "~0", n = n.replace(/(?:\n\n|^\n?)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g, function(n, e, t) {
var o = e, i = t;
return o = x(z(o)), o = I(o), o = o.replace(/^\n+/g, ""), o = o.replace(/\n+$/g, ""),
o = "<pre><code>" + o + "\n</code></pre>", "\n\n" + o + "\n\n" + i;
}), n = n.replace(/~0/, "");
}
function m(n) {
return n = n.replace(/(^\n+|\n+$)/g, ""), "\n\n~K" + (A.push(n) - 1) + "K\n\n";
}
function v(n) {
return n = n.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, function(n, e, t, o) {
var i = o;
return i = i.replace(/^([ \t]*)/g, ""), i = i.replace(/[ \t]*$/g, ""), i = x(i),
i = i.replace(/:\/\//g, "~P"), e + "<code>" + i + "</code>";
});
}
function x(n) {
return n = n.replace(/&/g, "&amp;"), n = n.replace(/</g, "&lt;"), n = n.replace(/>/g, "&gt;"),
n = $(n, "*_{}[]\\", !1);
}
function y(n) {
return n = n.replace(/([\W_]|^)(\*\*|__)(?=\S)([^\r]*?\S[\*_]*)\2([\W_]|$)/g, "$1<strong>$3</strong>$4"),
n = n.replace(/([\W_]|^)(\*|_)(?=\S)([^\r\*_]*?\S)\2([\W_]|$)/g, "$1<em>$3</em>$4");
}
function w(n) {
return n = n.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm, function(n, e) {
var t = e;
return t = t.replace(/^[ \t]*>[ \t]?/gm, "~0"), t = t.replace(/~0/g, ""), t = t.replace(/^[ \t]+$/gm, ""),
t = r(t), t = t.replace(/(^|\n)/g, "$1 "), t = t.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm, function(n, e) {
var t = e;
return t = t.replace(/^ /gm, "~0"), t = t.replace(/~0/g, "");
}), m("<blockquote>\n" + t + "\n</blockquote>");
});
}
function k(n, e) {
n = n.replace(/^\n+/g, ""), n = n.replace(/\n+$/g, "");
for (var t = n.split(/\n{2,}/g), o = [], i = /~K(\d+)K/, r = t.length, s = 0; r > s; s++) {
var l = t[s];
i.test(l) ? o.push(l) : /\S/.test(l) && (l = a(l), l = l.replace(/^([ \t]*)/g, "<p>"),
l += "</p>", o.push(l));
}
if (!e) {
r = o.length;
for (var s = 0; r > s; s++) for (var c = !0; c; ) c = !1, o[s] = o[s].replace(/~K(\d+)K/g, function(n, e) {
return c = !0, A[e];
});
}
return o.join("\n\n");
}
function C(n) {
return n = n.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&amp;"), n = n.replace(/<(?![a-z\/?!]|~D)/gi, "&lt;");
}
function S(n) {
return n = n.replace(/\\(\\)/g, N), n = n.replace(/\\([`*_{}\[\]()>#+-.!])/g, N);
}
function T(n, e, t, o) {
if (e) return n;
if (")" !== o.charAt(o.length - 1)) return "<" + t + o + ">";
for (var i = o.match(/[()]/g), r = 0, a = 0; a < i.length; a++) "(" === i[a] ? 0 >= r ? r = 1 : r++ : r--;
var s = "";
if (0 > r) {
var l = new RegExp("\\){1," + -r + "}$");
o = o.replace(l, function(n) {
return s = n, "";
});
}
if (s) {
var c = o.charAt(o.length - 1);
B.test(c) || (s = c + s, o = o.substr(0, o.length - 1));
}
return "<" + t + o + ">" + s;
}
function E(n) {
n = n.replace(F, T);
var e = function(n, e) {
return '<a href="' + e + '">' + L.plainLinkText(e) + "</a>";
};
return n = n.replace(/<((https?|ftp):[^'">\s]+)>/gi, e);
}
function _(n) {
return n = n.replace(/~E(\d+)E/g, function(n, e) {
var t = parseInt(e);
return String.fromCharCode(t);
});
}
function z(n) {
return n = n.replace(/^(\t|[ ]{1,4})/gm, "~0"), n = n.replace(/~0/g, "");
}
function I(n) {
if (!/\t/.test(n)) return n;
var e, t = [ " ", " ", " ", " " ], o = 0;
return n.replace(/[\n\t]/g, function(n, i) {
return "\n" === n ? (o = i + 1, n) : (e = (i - o) % 4, o = i + 1, t[e]);
});
}
function P(n) {
return n ? (n.length, n.replace(W, function(n) {
return "~D" == n ? "%24" : ":" == n ? ":" : "%" + n.charCodeAt(0).toString(16);
})) : "";
}
function $(n, e, t) {
var o = "([" + e.replace(/([\[\]\\])/g, "\\$1") + "])";
t && (o = "\\\\" + o);
var i = new RegExp(o, "g");
return n = n.replace(i, N);
}
function N(n, e) {
var t = e.charCodeAt(0);
return "~E" + t + "E";
}
var L = this.hooks = new t();
L.addNoop("plainLinkText"), L.addNoop("preConversion"), L.addNoop("postNormalization"),
L.addNoop("preBlockGamut"), L.addNoop("postBlockGamut"), L.addNoop("preSpanGamut"),
L.addNoop("postSpanGamut"), L.addNoop("postConversion");
var R, M, A, j;
this.makeHtml = function(t) {
if (R) throw new Error("Recursive call to converter.makeHtml");
return R = new o(), M = new o(), A = [], j = 0, t = L.preConversion(t), t = t.replace(/~/g, "~T"),
t = t.replace(/\$/g, "~D"), t = t.replace(/\r\n/g, "\n"), t = t.replace(/\r/g, "\n"),
t = "\n\n" + t + "\n\n", t = I(t), t = t.replace(/^[ \t]+$/gm, ""), t = L.postNormalization(t),
t = e(t), t = n(t), t = r(t), t = _(t), t = t.replace(/~D/g, "$$"), t = t.replace(/~T/g, "~"),
t = L.postConversion(t), A = M = R = null, t;
};
var D = function(n) {
return r(n);
}, O = {
ol: "\\d+[.]",
ul: "[*+-]"
}, H = "[-A-Z0-9+&@#/%?=~_|[\\]()!:,.;]", q = "[-A-Z0-9+&@#/%=~_|[\\])]", F = new RegExp('(="|<)?\\b(https?|ftp)(://' + H + "*" + q + ")(?=$|\\W)", "gi"), B = new RegExp(q, "i"), W = /(?:["'*()[\]:]|~D)/g;
};
}(), define("libs/Markdown.Converter", function() {});
var IN_GLOBAL_SCOPE = !0;
window.PR_SHOULD_USE_CONTINUATION = !0;
var prettyPrintOne, prettyPrint;
(function() {
function n(n) {
function e(n) {
var e = n.charCodeAt(0);
if (92 !== e) return e;
var t = n.charAt(1);
return e = p[t], e ? e : t >= "0" && "7" >= t ? parseInt(n.substring(1), 8) : "u" === t || "x" === t ? parseInt(n.substring(2), 16) : n.charCodeAt(1);
}
function t(n) {
if (32 > n) return (16 > n ? "\\x0" : "\\x") + n.toString(16);
var e = String.fromCharCode(n);
return "\\" === e || "-" === e || "]" === e || "^" === e ? "\\" + e : e;
}
function o(n) {
var o = n.substring(1, n.length - 1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]", "g")), i = [], r = "^" === o[0], a = [ "[" ];
r && a.push("^");
for (var s = r ? 1 : 0, l = o.length; l > s; ++s) {
var c = o[s];
if (/\\[bdsw]/i.test(c)) a.push(c); else {
var d, p = e(c);
l > s + 2 && "-" === o[s + 1] ? (d = e(o[s + 2]), s += 2) : d = p, i.push([ p, d ]),
65 > d || p > 122 || (65 > d || p > 90 || i.push([ 32 | Math.max(65, p), 32 | Math.min(d, 90) ]),
97 > d || p > 122 || i.push([ -33 & Math.max(97, p), -33 & Math.min(d, 122) ]));
}
}
i.sort(function(n, e) {
return n[0] - e[0] || e[1] - n[1];
});
for (var u = [], f = [], s = 0; s < i.length; ++s) {
var h = i[s];
h[0] <= f[1] + 1 ? f[1] = Math.max(f[1], h[1]) : u.push(f = h);
}
for (var s = 0; s < u.length; ++s) {
var h = u[s];
a.push(t(h[0])), h[1] > h[0] && (h[1] + 1 > h[0] && a.push("-"), a.push(t(h[1])));
}
return a.push("]"), a.join("");
}
function i(n) {
for (var e = n.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)", "g")), i = e.length, s = [], l = 0, c = 0; i > l; ++l) {
var d = e[l];
if ("(" === d) ++c; else if ("\\" === d.charAt(0)) {
var p = +d.substring(1);
p && (c >= p ? s[p] = -1 : e[l] = t(p));
}
}
for (var l = 1; l < s.length; ++l) -1 === s[l] && (s[l] = ++r);
for (var l = 0, c = 0; i > l; ++l) {
var d = e[l];
if ("(" === d) ++c, s[c] || (e[l] = "(?:"); else if ("\\" === d.charAt(0)) {
var p = +d.substring(1);
p && c >= p && (e[l] = "\\" + s[p]);
}
}
for (var l = 0; i > l; ++l) "^" === e[l] && "^" !== e[l + 1] && (e[l] = "");
if (n.ignoreCase && a) for (var l = 0; i > l; ++l) {
var d = e[l], u = d.charAt(0);
d.length >= 2 && "[" === u ? e[l] = o(d) : "\\" !== u && (e[l] = d.replace(/[a-zA-Z]/g, function(n) {
var e = n.charCodeAt(0);
return "[" + String.fromCharCode(-33 & e, 32 | e) + "]";
}));
}
return e.join("");
}
for (var r = 0, a = !1, s = !1, l = 0, c = n.length; c > l; ++l) {
var d = n[l];
if (d.ignoreCase) s = !0; else if (/[a-z]/i.test(d.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ""))) {
a = !0, s = !1;
break;
}
}
for (var p = {
b: 8,
t: 9,
n: 10,
v: 11,
f: 12,
r: 13
}, u = [], l = 0, c = n.length; c > l; ++l) {
var d = n[l];
if (d.global || d.multiline) throw new Error("" + d);
u.push("(?:" + i(d) + ")");
}
return new RegExp(u.join("|"), s ? "gi" : "g");
}
function e(n, e) {
function t(n) {
var l = n.nodeType;
if (1 == l) {
if (o.test(n.className)) return;
for (var c = n.firstChild; c; c = c.nextSibling) t(c);
var d = n.nodeName.toLowerCase();
("br" === d || "li" === d) && (i[s] = "\n", a[s << 1] = r++, a[1 | s++ << 1] = n);
} else if (3 == l || 4 == l) {
var p = n.nodeValue;
p.length && (p = e ? p.replace(/\r\n?/g, "\n") : p.replace(/[ \t\r\n]+/g, " "),
i[s] = p, a[s << 1] = r, r += p.length, a[1 | s++ << 1] = n);
}
}
var o = /(?:^|\s)nocode(?:\s|$)/, i = [], r = 0, a = [], s = 0;
return t(n), {
sourceCode: i.join("").replace(/\n$/, ""),
spans: a
};
}
function t(n, e, t, o) {
if (e) {
var i = {
sourceCode: e,
basePos: n
};
t(i), o.push.apply(o, i.decorations);
}
}
function o(n) {
for (var e = void 0, t = n.firstChild; t; t = t.nextSibling) {
var o = t.nodeType;
e = 1 === o ? e ? n : t : 3 === o ? B.test(t.nodeValue) ? n : e : e;
}
return e === n ? void 0 : e;
}
function i(e, o) {
var i, r = {};
(function() {
for (var t = e.concat(o), a = [], s = {}, l = 0, c = t.length; c > l; ++l) {
var d = t[l], p = d[3];
if (p) for (var u = p.length; --u >= 0; ) r[p.charAt(u)] = d;
var f = d[1], h = "" + f;
s.hasOwnProperty(h) || (a.push(f), s[h] = null);
}
a.push(/[\0-\uffff]/), i = n(a);
})();
var a = o.length, s = function(n) {
for (var e = n.sourceCode, l = n.basePos, d = [ l, M ], p = 0, u = e.match(i) || [], f = {}, h = 0, g = u.length; g > h; ++h) {
var b, m = u[h], v = f[m], x = void 0;
if ("string" == typeof v) b = !1; else {
var y = r[m.charAt(0)];
if (y) x = m.match(y[1]), v = y[0]; else {
for (var w = 0; a > w; ++w) if (y = o[w], x = m.match(y[1])) {
v = y[0];
break;
}
x || (v = M);
}
b = v.length >= 5 && "lang-" === v.substring(0, 5), !b || x && "string" == typeof x[1] || (b = !1,
v = D), b || (f[m] = v);
}
var k = p;
if (p += m.length, b) {
var C = x[1], S = m.indexOf(C), T = S + C.length;
x[2] && (T = m.length - x[2].length, S = T - C.length);
var E = v.substring(5);
t(l + k, m.substring(0, S), s, d), t(l + k + S, C, c(E, C), d), t(l + k + T, m.substring(T), s, d);
} else d.push(l + k, v);
}
n.decorations = d;
};
return s;
}
function r(n) {
var e = [], t = [];
n.tripleQuotedStrings ? e.push([ I, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, null, "'\"" ]) : n.multiLineStrings ? e.push([ I, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, null, "'\"`" ]) : e.push([ I, /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, "\"'" ]),
n.verbatimStrings && t.push([ I, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null ]);
var o = n.hashComments;
o && (n.cStyleComments ? (o > 1 ? e.push([ $, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, "#" ]) : e.push([ $, /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/, null, "#" ]),
t.push([ I, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, null ])) : e.push([ $, /^#[^\r\n]*/, null, "#" ])),
n.cStyleComments && (t.push([ $, /^\/\/[^\r\n]*/, null ]), t.push([ $, /^\/\*[\s\S]*?(?:\*\/|$)/, null ]));
var r = n.regexLiterals;
if (r) {
var a = r > 1 ? "" : "\n\r", s = a ? "." : "[\\S\\s]", l = "/(?=[^/*" + a + "])" + "(?:[^/\\x5B\\x5C" + a + "]" + "|\\x5C" + s + "|\\x5B(?:[^\\x5C\\x5D" + a + "]" + "|\\x5C" + s + ")*(?:\\x5D|$))+" + "/";
t.push([ "lang-regex", RegExp("^" + F + "(" + l + ")") ]);
}
var c = n.types;
c && t.push([ N, c ]);
var d = ("" + n.keywords).replace(/^ | $/g, "");
d.length && t.push([ P, new RegExp("^(?:" + d.replace(/[\s,]+/g, "|") + ")\\b"), null ]),
e.push([ M, /^\s+/, null, " \r\n  " ]);
var p = "^.[^\\s\\w.$@'\"`/\\\\]*";
return n.regexLiterals && (p += "(?!s*/)"), t.push([ L, /^@[a-z_$][a-z_$@0-9]*/i, null ], [ N, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null ], [ M, /^[a-z_$][a-z_$@0-9]*/i, null ], [ L, new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*", "i"), null, "0123456789" ], [ M, /^\\[\s\S]?/, null ], [ R, new RegExp(p), null ]),
i(e, t);
}
function a(n, e, t) {
function o(n) {
var e = n.nodeType;
if (1 != e || r.test(n.className)) {
if ((3 == e || 4 == e) && t) {
var l = n.nodeValue, c = l.match(a);
if (c) {
var d = l.substring(0, c.index);
n.nodeValue = d;
var p = l.substring(c.index + c[0].length);
if (p) {
var u = n.parentNode;
u.insertBefore(s.createTextNode(p), n.nextSibling);
}
i(n), d || n.parentNode.removeChild(n);
}
}
} else if ("br" === n.nodeName) i(n), n.parentNode && n.parentNode.removeChild(n); else for (var f = n.firstChild; f; f = f.nextSibling) o(f);
}
function i(n) {
function e(n, t) {
var o = t ? n.cloneNode(!1) : n, i = n.parentNode;
if (i) {
var r = e(i, 1), a = n.nextSibling;
r.appendChild(o);
for (var s = a; s; s = a) a = s.nextSibling, r.appendChild(s);
}
return o;
}
for (;!n.nextSibling; ) if (n = n.parentNode, !n) return;
for (var t, o = e(n.nextSibling, 0); (t = o.parentNode) && 1 === t.nodeType; ) o = t;
c.push(o);
}
for (var r = /(?:^|\s)nocode(?:\s|$)/, a = /\r\n?|\n/, s = n.ownerDocument, l = s.createElement("li"); n.firstChild; ) l.appendChild(n.firstChild);
for (var c = [ l ], d = 0; d < c.length; ++d) o(c[d]);
e === (0 | e) && c[0].setAttribute("value", e);
var p = s.createElement("ol");
p.className = "linenums";
for (var u = Math.max(0, 0 | e - 1) || 0, d = 0, f = c.length; f > d; ++d) l = c[d],
l.className = "L" + (d + u) % 10, l.firstChild || l.appendChild(s.createTextNode(" ")),
p.appendChild(l);
n.appendChild(p);
}
function s(n) {
var e = /\bMSIE\s(\d+)/.exec(navigator.userAgent);
e = e && +e[1] <= 8;
var t = /\n/g, o = n.sourceCode, i = o.length, r = 0, a = n.spans, s = a.length, l = 0, c = n.decorations, d = c.length, p = 0;
c[d] = i;
var u, f;
for (f = u = 0; d > f; ) c[f] !== c[f + 2] ? (c[u++] = c[f++], c[u++] = c[f++]) : f += 2;
for (d = u, f = u = 0; d > f; ) {
for (var h = c[f], g = c[f + 1], b = f + 2; d >= b + 2 && c[b + 1] === g; ) b += 2;
c[u++] = h, c[u++] = g, f = b;
}
d = c.length = u;
var m, v = n.sourceNode;
v && (m = v.style.display, v.style.display = "none");
try {
for (;s > l; ) {
a[l];
var x, y = a[l + 2] || i, w = c[p + 2] || i, b = Math.min(y, w), k = a[l + 1];
if (1 !== k.nodeType && (x = o.substring(r, b))) {
e && (x = x.replace(t, "\r")), k.nodeValue = x;
var C = k.ownerDocument, S = C.createElement("span");
S.className = c[p + 1];
var T = k.parentNode;
T.replaceChild(S, k), S.appendChild(k), y > r && (a[l + 1] = k = C.createTextNode(o.substring(b, y)),
T.insertBefore(k, S.nextSibling));
}
r = b, r >= y && (l += 2), r >= w && (p += 2);
}
} finally {
v && (v.style.display = m);
}
}
function l(n, e) {
for (var t = e.length; --t >= 0; ) {
var o = e[t];
G.hasOwnProperty(o) ? f.console && console.warn("cannot override language handler %s", o) : G[o] = n;
}
}
function c(n, e) {
return n && G.hasOwnProperty(n) || (n = /^\s*</.test(e) ? "default-markup" : "default-code"),
G[n];
}
function d(n) {
var t = n.langExtension;
try {
var o = e(n.sourceNode, n.pre), i = o.sourceCode;
n.sourceCode = i, n.spans = o.spans, n.basePos = 0, c(t, i)(n), s(n);
} catch (r) {
f.console && console.log(r && r.stack || r);
}
}
function p(n, e, t) {
var o = document.createElement("div");
o.innerHTML = "<pre>" + n + "</pre>", o = o.firstChild, t && a(o, t, !0);
var i = {
langExtension: e,
numberLines: t,
sourceNode: o,
pre: 1
};
return d(i), o.innerHTML;
}
function u(n, e) {
function t(n) {
return r.getElementsByTagName(n);
}
function i() {
for (var e = f.PR_SHOULD_USE_CONTINUATION ? g.now() + 250 : 1/0; m < c.length && g.now() < e; m++) {
for (var t = c[m], r = S, l = t; l = l.previousSibling; ) {
var p = l.nodeType, u = (7 === p || 8 === p) && l.nodeValue;
if (u ? !/^\??prettify\b/.test(u) : 3 !== p || /\S/.test(l.nodeValue)) break;
if (u) {
r = {}, u.replace(/\b(\w+)=([\w:.%+-]+)/g, function(n, e, t) {
r[e] = t;
});
break;
}
}
var h = t.className;
if ((r !== S || x.test(h)) && !y.test(h)) {
for (var T = !1, E = t.parentNode; E; E = E.parentNode) {
var _ = E.tagName;
if (C.test(_) && E.className && x.test(E.className)) {
T = !0;
break;
}
}
if (!T) {
t.className += " prettyprinted";
var z = r.lang;
if (!z) {
z = h.match(v);
var I;
!z && (I = o(t)) && k.test(I.tagName) && (z = I.className.match(v)), z && (z = z[1]);
}
var P;
if (w.test(t.tagName)) P = 1; else {
var $ = t.currentStyle, N = s.defaultView, L = $ ? $.whiteSpace : N && N.getComputedStyle ? N.getComputedStyle(t, null).getPropertyValue("white-space") : 0;
P = L && "pre" === L.substring(0, 3);
}
var R = r.linenums;
(R = "true" === R || +R) || (R = h.match(/\blinenums\b(?::(\d+))?/), R = R ? R[1] && R[1].length ? +R[1] : !0 : !1),
R && a(t, R, P), b = {
langExtension: z,
sourceNode: t,
numberLines: R,
pre: P
}, d(b);
}
}
}
m < c.length ? setTimeout(i, 250) : "function" == typeof n && n();
}
for (var r = e || document.body, s = r.ownerDocument || document, l = [ t("pre"), t("code"), t("xmp") ], c = [], p = 0; p < l.length; ++p) for (var u = 0, h = l[p].length; h > u; ++u) c.push(l[p][u]);
l = null;
var g = Date;
g.now || (g = {
now: function() {
return +new Date();
}
});
var b, m = 0, v = /\blang(?:uage)?-([\w.]+)(?!\S)/, x = /\bprettyprint\b/, y = /\bprettyprinted\b/, w = /pre|xmp/i, k = /^code$/i, C = /^(?:pre|code|xmp)$/i, S = {};
i();
}
var f = window, h = [ "break,continue,do,else,for,if,return,while" ], g = [ h, "auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile" ], b = [ g, "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof" ], m = [ b, "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where" ], v = [ b, "abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient" ], x = [ v, "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where" ], y = "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes", w = [ b, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN" ], k = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END", C = [ h, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None" ], S = [ h, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END" ], T = [ h, "as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use" ], E = [ h, "case,done,elif,esac,eval,fi,function,in,local,set,then,until" ], _ = [ m, x, w, k, C, S, E ], z = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, I = "str", P = "kwd", $ = "com", N = "typ", L = "lit", R = "pun", M = "pln", A = "tag", j = "dec", D = "src", O = "atn", H = "atv", q = "nocode", F = "(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*", B = /\S/, W = r({
keywords: _,
hashComments: !0,
cStyleComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), G = {};
l(W, [ "default-code" ]), l(i([], [ [ M, /^[^<?]+/ ], [ j, /^<!\w[^>]*(?:>|$)/ ], [ $, /^<\!--[\s\S]*?(?:-\->|$)/ ], [ "lang-", /^<\?([\s\S]+?)(?:\?>|$)/ ], [ "lang-", /^<%([\s\S]+?)(?:%>|$)/ ], [ R, /^(?:<[%?]|[%?]>)/ ], [ "lang-", /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i ], [ "lang-js", /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i ], [ "lang-css", /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i ], [ "lang-in.tag", /^(<\/?[a-z][^<>]*>)/i ] ]), [ "default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl" ]),
l(i([ [ M, /^[\s]+/, null, " \r\n" ], [ H, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, "\"'" ] ], [ [ A, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i ], [ O, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i ], [ "lang-uq.val", /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/ ], [ R, /^[=<>\/]+/ ], [ "lang-js", /^on\w+\s*=\s*\"([^\"]+)\"/i ], [ "lang-js", /^on\w+\s*=\s*\'([^\']+)\'/i ], [ "lang-js", /^on\w+\s*=\s*([^\"\'>\s]+)/i ], [ "lang-css", /^style\s*=\s*\"([^\"]+)\"/i ], [ "lang-css", /^style\s*=\s*\'([^\']+)\'/i ], [ "lang-css", /^style\s*=\s*([^\"\'>\s]+)/i ] ]), [ "in.tag" ]),
l(i([], [ [ H, /^[\s\S]+/ ] ]), [ "uq.val" ]), l(r({
keywords: m,
hashComments: !0,
cStyleComments: !0,
types: z
}), [ "c", "cc", "cpp", "cxx", "cyc", "m" ]), l(r({
keywords: "null,true,false"
}), [ "json" ]), l(r({
keywords: x,
hashComments: !0,
cStyleComments: !0,
verbatimStrings: !0,
types: z
}), [ "cs" ]), l(r({
keywords: v,
cStyleComments: !0
}), [ "java" ]), l(r({
keywords: E,
hashComments: !0,
multiLineStrings: !0
}), [ "bash", "bsh", "csh", "sh" ]), l(r({
keywords: C,
hashComments: !0,
multiLineStrings: !0,
tripleQuotedStrings: !0
}), [ "cv", "py", "python" ]), l(r({
keywords: k,
hashComments: !0,
multiLineStrings: !0,
regexLiterals: 2
}), [ "perl", "pl", "pm" ]), l(r({
keywords: S,
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), [ "rb", "ruby" ]), l(r({
keywords: w,
cStyleComments: !0,
regexLiterals: !0
}), [ "javascript", "js" ]), l(r({
keywords: y,
hashComments: 3,
cStyleComments: !0,
multilineStrings: !0,
tripleQuotedStrings: !0,
regexLiterals: !0
}), [ "coffee" ]), l(r({
keywords: T,
cStyleComments: !0,
multilineStrings: !0
}), [ "rc", "rs", "rust" ]), l(i([], [ [ I, /^[\s\S]+/ ] ]), [ "regex" ]);
var U = f.PR = {
createSimpleLexer: i,
registerLangHandler: l,
sourceDecorator: r,
PR_ATTRIB_NAME: O,
PR_ATTRIB_VALUE: H,
PR_COMMENT: $,
PR_DECLARATION: j,
PR_KEYWORD: P,
PR_LITERAL: L,
PR_NOCODE: q,
PR_PLAIN: M,
PR_PUNCTUATION: R,
PR_SOURCE: D,
PR_STRING: I,
PR_TAG: A,
PR_TYPE: N,
prettyPrintOne: IN_GLOBAL_SCOPE ? f.prettyPrintOne = p : prettyPrintOne = p,
prettyPrint: prettyPrint = IN_GLOBAL_SCOPE ? f.prettyPrint = u : prettyPrint = u
};
"function" == typeof define && define.amd && define("google-code-prettify", [], function() {
return U;
});
})(), define("libs/prettify", function() {});
var hljs = new function() {
function n(n) {
return n.replace(/&/gm, "&amp;").replace(/</gm, "&lt;").replace(/>/gm, "&gt;");
}
function e(n) {
for (var e = n.firstChild; e; e = e.nextSibling) {
if ("CODE" == e.nodeName) return e;
if (3 != e.nodeType || !e.nodeValue.match(/\s+/)) break;
}
}
function t(n, e) {
return Array.prototype.map.call(n.childNodes, function(n) {
return 3 == n.nodeType ? e ? n.nodeValue.replace(/\n/g, "") : n.nodeValue : "BR" == n.nodeName ? "\n" : t(n, e);
}).join("");
}
function o(n) {
var e = (n.className + " " + n.parentNode.className).split(/\s+/);
e = e.map(function(n) {
return n.replace(/^language-/, "");
});
for (var t = 0; t < e.length; t++) if (f[e[t]] || "no-highlight" == e[t]) return e[t];
}
function i(n) {
var e = [];
return function t(n, o) {
for (var i = n.firstChild; i; i = i.nextSibling) 3 == i.nodeType ? o += i.nodeValue.length : "BR" == i.nodeName ? o += 1 : 1 == i.nodeType && (e.push({
event: "start",
offset: o,
node: i
}), o = t(i, o), e.push({
event: "stop",
offset: o,
node: i
}));
return o;
}(n, 0), e;
}
function r(e, t, o) {
function i() {
return e.length && t.length ? e[0].offset != t[0].offset ? e[0].offset < t[0].offset ? e : t : "start" == t[0].event ? e : t : e.length ? e : t;
}
function r(e) {
function t(e) {
return " " + e.nodeName + '="' + n(e.value) + '"';
}
return "<" + e.nodeName + Array.prototype.map.call(e.attributes, t).join("") + ">";
}
for (var a = 0, s = "", l = []; e.length || t.length; ) {
var c = i().splice(0, 1)[0];
if (s += n(o.substr(a, c.offset - a)), a = c.offset, "start" == c.event) s += r(c.node),
l.push(c.node); else if ("stop" == c.event) {
var d, p = l.length;
do p--, d = l[p], s += "</" + d.nodeName.toLowerCase() + ">"; while (d != c.node);
for (l.splice(p, 1); p < l.length; ) s += r(l[p]), p++;
}
}
return s + n(o.substr(a));
}
function a(n) {
function e(e, t) {
return RegExp(e, "m" + (n.cI ? "i" : "") + (t ? "g" : ""));
}
function t(n, o) {
function i(n, e) {
e.split(" ").forEach(function(e) {
var t = e.split("|");
a[t[0]] = [ n, t[1] ? Number(t[1]) : 1 ], r.push(t[0]);
});
}
if (!n.compiled) {
n.compiled = !0;
var r = [];
if (n.k) {
var a = {};
if (n.lR = e(n.l || hljs.IR, !0), "string" == typeof n.k) i("keyword", n.k); else for (var s in n.k) n.k.hasOwnProperty(s) && i(s, n.k[s]);
n.k = a;
}
o && (n.bWK && (n.b = "\\b(" + r.join("|") + ")\\s"), n.bR = e(n.b ? n.b : "\\B|\\b"),
n.e || n.eW || (n.e = "\\B|\\b"), n.e && (n.eR = e(n.e)), n.tE = n.e || "", n.eW && o.tE && (n.tE += (n.e ? "|" : "") + o.tE)),
n.i && (n.iR = e(n.i)), void 0 === n.r && (n.r = 1), n.c || (n.c = []);
for (var l = 0; l < n.c.length; l++) "self" == n.c[l] && (n.c[l] = n), t(n.c[l], n);
n.starts && t(n.starts, o);
for (var c = [], l = 0; l < n.c.length; l++) c.push(n.c[l].b);
n.tE && c.push(n.tE), n.i && c.push(n.i), n.t = c.length ? e(c.join("|"), !0) : {
exec: function() {
return null;
}
};
}
}
t(n);
}
function s(e, t) {
function o(n, e) {
for (var t = 0; t < e.c.length; t++) {
var o = e.c[t].bR.exec(n);
if (o && 0 == o.index) return e.c[t];
}
}
function i(n, e) {
return n.e && n.eR.test(e) ? n : n.eW ? i(n.parent, e) : void 0;
}
function r(n, e) {
return e.i && e.iR.test(n);
}
function c(n, e) {
var t = b.cI ? e[0].toLowerCase() : e[0];
return n.k.hasOwnProperty(t) && n.k[t];
}
function d() {
var e = n(v);
if (!m.k) return e;
var t = "", o = 0;
m.lR.lastIndex = 0;
for (var i = m.lR.exec(e); i; ) {
t += e.substr(o, i.index - o);
var r = c(m, i);
r ? (y += r[1], t += '<span class="' + r[0] + '">' + i[0] + "</span>") : t += i[0],
o = m.lR.lastIndex, i = m.lR.exec(e);
}
return t + e.substr(o);
}
function p() {
if (m.sL && !f[m.sL]) return n(v);
var e = m.sL ? s(m.sL, v) : l(v);
return m.r > 0 && (y += e.keyword_count, x += e.r), '<span class="' + e.language + '">' + e.value + "</span>";
}
function u() {
return void 0 !== m.sL ? p() : d();
}
function h(e, t) {
var o = e.cN ? '<span class="' + e.cN + '">' : "";
e.rB ? (w += o, v = "") : e.eB ? (w += n(t) + o, v = "") : (w += o, v = t), m = Object.create(e, {
parent: {
value: m
}
}), x += e.r;
}
function g(e, t) {
if (v += e, void 0 === t) return w += u(), 0;
var a = o(t, m);
if (a) return w += u(), h(a, t), a.rB ? 0 : t.length;
var s = i(m, t);
if (s) {
s.rE || s.eE || (v += t), w += u();
do m.cN && (w += "</span>"), m = m.parent; while (m != s.parent);
return s.eE && (w += n(t)), v = "", s.starts && h(s.starts, ""), s.rE ? 0 : t.length;
}
if (r(t, m)) throw "Illegal";
return v += t, t.length || 1;
}
var b = f[e];
a(b);
var m = b, v = "", x = 0, y = 0, w = "";
try {
for (var k, C, S = 0; ;) {
if (m.t.lastIndex = S, k = m.t.exec(t), !k) break;
C = g(t.substr(S, k.index - S), k[0]), S = k.index + C;
}
return g(t.substr(S)), {
r: x,
keyword_count: y,
value: w,
language: e
};
} catch (T) {
if ("Illegal" == T) return {
r: 0,
keyword_count: 0,
value: n(t)
};
throw T;
}
}
function l(e) {
var t = {
keyword_count: 0,
r: 0,
value: n(e)
}, o = t;
for (var i in f) if (f.hasOwnProperty(i)) {
var r = s(i, e);
r.language = i, r.keyword_count + r.r > o.keyword_count + o.r && (o = r), r.keyword_count + r.r > t.keyword_count + t.r && (o = t,
t = r);
}
return o.language && (t.second_best = o), t;
}
function c(n, e, t) {
return e && (n = n.replace(/^((<[^>]+>|\t)+)/gm, function(n, t) {
return t.replace(/\t/g, e);
})), t && (n = n.replace(/\n/g, "<br>")), n;
}
function d(n, e, a) {
var d = t(n, a), p = o(n);
if ("no-highlight" != p) {
var u = p ? s(p, d) : l(d);
p = u.language;
var f = i(n);
if (f.length) {
var h = document.createElement("pre");
h.innerHTML = u.value, u.value = r(f, i(h), d);
}
u.value = c(u.value, e, a);
var g = n.className;
g.match("(\\s|^)(language-)?" + p + "(\\s|$)") || (g = g ? g + " " + p : p), n.innerHTML = u.value,
n.className = g, n.result = {
language: p,
kw: u.keyword_count,
re: u.r
}, u.second_best && (n.second_best = {
language: u.second_best.language,
kw: u.second_best.keyword_count,
re: u.second_best.r
});
}
}
function p() {
p.called || (p.called = !0, Array.prototype.map.call(document.getElementsByTagName("pre"), e).filter(Boolean).forEach(function(n) {
d(n, hljs.tabReplace);
}));
}
function u() {
window.addEventListener("DOMContentLoaded", p, !1), window.addEventListener("load", p, !1);
}
var f = {};
this.LANGUAGES = f, this.highlight = s, this.highlightAuto = l, this.fixMarkup = c,
this.highlightBlock = d, this.initHighlighting = p, this.initHighlightingOnLoad = u,
this.IR = "[a-zA-Z][a-zA-Z0-9_]*", this.UIR = "[a-zA-Z_][a-zA-Z0-9_]*", this.NR = "\\b\\d+(\\.\\d+)?",
this.CNR = "(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
this.BNR = "\\b(0b[01]+)", this.RSR = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
this.BE = {
b: "\\\\[\\s\\S]",
r: 0
}, this.ASM = {
cN: "string",
b: "'",
e: "'",
i: "\\n",
c: [ this.BE ],
r: 0
}, this.QSM = {
cN: "string",
b: '"',
e: '"',
i: "\\n",
c: [ this.BE ],
r: 0
}, this.CLCM = {
cN: "comment",
b: "//",
e: "$"
}, this.CBLCLM = {
cN: "comment",
b: "/\\*",
e: "\\*/"
}, this.HCM = {
cN: "comment",
b: "#",
e: "$"
}, this.NM = {
cN: "number",
b: this.NR,
r: 0
}, this.CNM = {
cN: "number",
b: this.CNR,
r: 0
}, this.BNM = {
cN: "number",
b: this.BNR,
r: 0
}, this.inherit = function(n, e) {
var t = {};
for (var o in n) t[o] = n[o];
if (e) for (var o in e) t[o] = e[o];
return t;
};
}();
if (hljs.LANGUAGES.bash = function(n) {
var e = "true false", t = "if then else elif fi for break continue while in do done echo exit return set declare", o = {
cN: "variable",
b: "\\$[a-zA-Z0-9_#]+"
}, i = {
cN: "variable",
b: "\\${([^}]|\\\\})+}"
}, r = {
cN: "string",
b: '"',
e: '"',
i: "\\n",
c: [ n.BE, o, i ],
r: 0
}, a = {
cN: "string",
b: "'",
e: "'",
c: [ {
b: "''"
} ],
r: 0
}, s = {
cN: "test_condition",
b: "",
e: "",
c: [ r, a, o, i ],
k: {
literal: e
},
r: 0
};
return {
k: {
keyword: t,
literal: e
},
c: [ {
cN: "shebang",
b: "(#!\\/bin\\/bash)|(#!\\/bin\\/sh)",
r: 10
}, o, i, n.HCM, r, a, n.inherit(s, {
b: "\\[ ",
e: " \\]",
r: 0
}), n.inherit(s, {
b: "\\[\\[ ",
e: " \\]\\]"
}) ]
};
}(hljs), hljs.LANGUAGES.cs = function(n) {
return {
k: "abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while ascending descending from get group into join let orderby partial select set value var where yield",
c: [ {
cN: "comment",
b: "///",
e: "$",
rB: !0,
c: [ {
cN: "xmlDocTag",
b: "///|<!--|-->"
}, {
cN: "xmlDocTag",
b: "</?",
e: ">"
} ]
}, n.CLCM, n.CBLCLM, {
cN: "preprocessor",
b: "#",
e: "$",
k: "if else elif endif define undef warning error line region endregion pragma checksum"
}, {
cN: "string",
b: '@"',
e: '"',
c: [ {
b: '""'
} ]
}, n.ASM, n.QSM, n.CNM ]
};
}(hljs), hljs.LANGUAGES.ruby = function(n) {
var e = "[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?", t = "[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?", o = {
keyword: "and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"
}, i = {
cN: "yardoctag",
b: "@[A-Za-z]+"
}, r = [ {
cN: "comment",
b: "#",
e: "$",
c: [ i ]
}, {
cN: "comment",
b: "^\\=begin",
e: "^\\=end",
c: [ i ],
r: 10
}, {
cN: "comment",
b: "^__END__",
e: "\\n$"
} ], a = {
cN: "subst",
b: "#\\{",
e: "}",
l: e,
k: o
}, s = [ n.BE, a ], l = [ {
cN: "string",
b: "'",
e: "'",
c: s,
r: 0
}, {
cN: "string",
b: '"',
e: '"',
c: s,
r: 0
}, {
cN: "string",
b: "%[qw]?\\(",
e: "\\)",
c: s
}, {
cN: "string",
b: "%[qw]?\\[",
e: "\\]",
c: s
}, {
cN: "string",
b: "%[qw]?{",
e: "}",
c: s
}, {
cN: "string",
b: "%[qw]?<",
e: ">",
c: s,
r: 10
}, {
cN: "string",
b: "%[qw]?/",
e: "/",
c: s,
r: 10
}, {
cN: "string",
b: "%[qw]?%",
e: "%",
c: s,
r: 10
}, {
cN: "string",
b: "%[qw]?-",
e: "-",
c: s,
r: 10
}, {
cN: "string",
b: "%[qw]?\\|",
e: "\\|",
c: s,
r: 10
} ], c = {
cN: "function",
bWK: !0,
e: " |$|;",
k: "def",
c: [ {
cN: "title",
b: t,
l: e,
k: o
}, {
cN: "params",
b: "\\(",
e: "\\)",
l: e,
k: o
} ].concat(r)
}, d = r.concat(l.concat([ {
cN: "class",
bWK: !0,
e: "$|;",
k: "class module",
c: [ {
cN: "title",
b: "[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",
r: 0
}, {
cN: "inheritance",
b: "<\\s*",
c: [ {
cN: "parent",
b: "(" + n.IR + "::)?" + n.IR
} ]
} ].concat(r)
}, c, {
cN: "constant",
b: "(::)?(\\b[A-Z]\\w*(::)?)+",
r: 0
}, {
cN: "symbol",
b: ":",
c: l.concat([ {
b: t
} ]),
r: 0
}, {
cN: "symbol",
b: e + ":",
r: 0
}, {
cN: "number",
b: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
r: 0
}, {
cN: "number",
b: "\\?\\w"
}, {
cN: "variable",
b: "(\\$\\W)|((\\$|\\@\\@?)(\\w+))"
}, {
b: "(" + n.RSR + ")\\s*",
c: r.concat([ {
cN: "regexp",
b: "/",
e: "/[a-z]*",
i: "\\n",
c: [ n.BE, a ]
} ]),
r: 0
} ]));
return a.c = d, c.c[1].c = d, {
l: e,
k: o,
c: d
};
}(hljs), hljs.LANGUAGES.diff = function() {
return {
c: [ {
cN: "chunk",
b: "^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",
r: 10
}, {
cN: "chunk",
b: "^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",
r: 10
}, {
cN: "chunk",
b: "^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",
r: 10
}, {
cN: "header",
b: "Index: ",
e: "$"
}, {
cN: "header",
b: "=====",
e: "=====$"
}, {
cN: "header",
b: "^\\-\\-\\-",
e: "$"
}, {
cN: "header",
b: "^\\*{3} ",
e: "$"
}, {
cN: "header",
b: "^\\+\\+\\+",
e: "$"
}, {
cN: "header",
b: "\\*{5}",
e: "\\*{5}$"
}, {
cN: "addition",
b: "^\\+",
e: "$"
}, {
cN: "deletion",
b: "^\\-",
e: "$"
}, {
cN: "change",
b: "^\\!",
e: "$"
} ]
};
}(hljs), hljs.LANGUAGES.javascript = function(n) {
return {
k: {
keyword: "in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const",
literal: "true false null undefined NaN Infinity"
},
c: [ n.ASM, n.QSM, n.CLCM, n.CBLCLM, n.CNM, {
b: "(" + n.RSR + "|\\b(case|return|throw)\\b)\\s*",
k: "return throw case",
c: [ n.CLCM, n.CBLCLM, {
cN: "regexp",
b: "/",
e: "/[gim]*",
i: "\\n",
c: [ {
b: "\\\\/"
} ]
}, {
b: "<",
e: ">;",
sL: "xml"
} ],
r: 0
}, {
cN: "function",
bWK: !0,
e: "{",
k: "function",
c: [ {
cN: "title",
b: "[A-Za-z$_][0-9A-Za-z$_]*"
}, {
cN: "params",
b: "\\(",
e: "\\)",
c: [ n.CLCM, n.CBLCLM ],
i: "[\"'\\(]"
} ],
i: "\\[|%"
} ]
};
}(hljs), hljs.LANGUAGES.css = function(n) {
var e = {
cN: "function",
b: n.IR + "\\(",
e: "\\)",
c: [ n.NM, n.ASM, n.QSM ]
};
return {
cI: !0,
i: "[=/|']",
c: [ n.CBLCLM, {
cN: "id",
b: "\\#[A-Za-z0-9_-]+"
}, {
cN: "class",
b: "\\.[A-Za-z0-9_-]+",
r: 0
}, {
cN: "attr_selector",
b: "\\[",
e: "\\]",
i: "$"
}, {
cN: "pseudo",
b: ":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"
}, {
cN: "at_rule",
b: "@(font-face|page)",
l: "[a-z-]+",
k: "font-face page"
}, {
cN: "at_rule",
b: "@",
e: "[{;]",
eE: !0,
k: "import page media charset",
c: [ e, n.ASM, n.QSM, n.NM ]
}, {
cN: "tag",
b: n.IR,
r: 0
}, {
cN: "rules",
b: "{",
e: "}",
i: "[^\\s]",
r: 0,
c: [ n.CBLCLM, {
cN: "rule",
b: "[^\\s]",
rB: !0,
e: ";",
eW: !0,
c: [ {
cN: "attribute",
b: "[A-Z\\_\\.\\-]+",
e: ":",
eE: !0,
i: "[^\\s]",
starts: {
cN: "value",
eW: !0,
eE: !0,
c: [ e, n.NM, n.QSM, n.ASM, n.CBLCLM, {
cN: "hexcolor",
b: "\\#[0-9A-F]+"
}, {
cN: "important",
b: "!important"
} ]
}
} ]
} ]
} ]
};
}(hljs), hljs.LANGUAGES.xml = function() {
var n = "[A-Za-z0-9\\._:-]+", e = {
eW: !0,
c: [ {
cN: "attribute",
b: n,
r: 0
}, {
b: '="',
rB: !0,
e: '"',
c: [ {
cN: "value",
b: '"',
eW: !0
} ]
}, {
b: "='",
rB: !0,
e: "'",
c: [ {
cN: "value",
b: "'",
eW: !0
} ]
}, {
b: "=",
c: [ {
cN: "value",
b: "[^\\s/>]+"
} ]
} ]
};
return {
cI: !0,
c: [ {
cN: "pi",
b: "<\\?",
e: "\\?>",
r: 10
}, {
cN: "doctype",
b: "<!DOCTYPE",
e: ">",
r: 10,
c: [ {
b: "\\[",
e: "\\]"
} ]
}, {
cN: "comment",
b: "<!--",
e: "-->",
r: 10
}, {
cN: "cdata",
b: "<\\!\\[CDATA\\[",
e: "\\]\\]>",
r: 10
}, {
cN: "tag",
b: "<style(?=\\s|>|$)",
e: ">",
k: {
title: "style"
},
c: [ e ],
starts: {
e: "</style>",
rE: !0,
sL: "css"
}
}, {
cN: "tag",
b: "<script(?=\\s|>|$)",
e: ">",
k: {
title: "script"
},
c: [ e ],
starts: {
e: "</script>",
rE: !0,
sL: "javascript"
}
}, {
b: "<%",
e: "%>",
sL: "vbscript"
}, {
cN: "tag",
b: "</?",
e: "/?>",
c: [ {
cN: "title",
b: "[^ />]+"
}, e ]
} ]
};
}(hljs), hljs.LANGUAGES.http = function() {
return {
i: "\\S",
c: [ {
cN: "status",
b: "^HTTP/[0-9\\.]+",
e: "$",
c: [ {
cN: "number",
b: "\\b\\d{3}\\b"
} ]
}, {
cN: "request",
b: "^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",
rB: !0,
e: "$",
c: [ {
cN: "string",
b: " ",
e: " ",
eB: !0,
eE: !0
} ]
}, {
cN: "attribute",
b: "^\\w",
e: ": ",
eE: !0,
i: "\\n|\\s|=",
starts: {
cN: "string",
e: "$"
}
}, {
b: "\\n\\n",
starts: {
sL: "",
eW: !0
}
} ]
};
}(hljs), hljs.LANGUAGES.java = function(n) {
return {
k: "false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws",
c: [ {
cN: "javadoc",
b: "/\\*\\*",
e: "\\*/",
c: [ {
cN: "javadoctag",
b: "@[A-Za-z]+"
} ],
r: 10
}, n.CLCM, n.CBLCLM, n.ASM, n.QSM, {
cN: "class",
bWK: !0,
e: "{",
k: "class interface",
i: ":",
c: [ {
bWK: !0,
k: "extends implements",
r: 10
}, {
cN: "title",
b: n.UIR
} ]
}, n.CNM, {
cN: "annotation",
b: "@[A-Za-z]+"
} ]
};
}(hljs), hljs.LANGUAGES.php = function(n) {
var e = {
cN: "variable",
b: "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"
}, t = [ n.inherit(n.ASM, {
i: null
}), n.inherit(n.QSM, {
i: null
}), {
cN: "string",
b: 'b"',
e: '"',
c: [ n.BE ]
}, {
cN: "string",
b: "b'",
e: "'",
c: [ n.BE ]
} ], o = [ n.BNM, n.CNM ], i = {
cN: "title",
b: n.UIR
};
return {
cI: !0,
k: "and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return implements parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception php_user_filter default die require __FUNCTION__ enddeclare final try this switch continue endfor endif declare unset true false namespace trait goto instanceof insteadof __DIR__ __NAMESPACE__ __halt_compiler",
c: [ n.CLCM, n.HCM, {
cN: "comment",
b: "/\\*",
e: "\\*/",
c: [ {
cN: "phpdoc",
b: "\\s@[A-Za-z]+"
} ]
}, {
cN: "comment",
eB: !0,
b: "__halt_compiler.+?;",
eW: !0
}, {
cN: "string",
b: "<<<['\"]?\\w+['\"]?$",
e: "^\\w+;",
c: [ n.BE ]
}, {
cN: "preprocessor",
b: "<\\?php",
r: 10
}, {
cN: "preprocessor",
b: "\\?>"
}, e, {
cN: "function",
bWK: !0,
e: "{",
k: "function",
i: "\\$|\\[|%",
c: [ i, {
cN: "params",
b: "\\(",
e: "\\)",
c: [ "self", e, n.CBLCLM ].concat(t).concat(o)
} ]
}, {
cN: "class",
bWK: !0,
e: "{",
k: "class",
i: "[:\\(\\$]",
c: [ {
bWK: !0,
eW: !0,
k: "extends",
c: [ i ]
}, i ]
}, {
b: "=>"
} ].concat(t).concat(o)
};
}(hljs), hljs.LANGUAGES.python = function(n) {
var e = {
cN: "prompt",
b: "^(>>>|\\.\\.\\.) "
}, t = [ {
cN: "string",
b: "(u|b)?r?'''",
e: "'''",
c: [ e ],
r: 10
}, {
cN: "string",
b: '(u|b)?r?"""',
e: '"""',
c: [ e ],
r: 10
}, {
cN: "string",
b: "(u|r|ur)'",
e: "'",
c: [ n.BE ],
r: 10
}, {
cN: "string",
b: '(u|r|ur)"',
e: '"',
c: [ n.BE ],
r: 10
}, {
cN: "string",
b: "(b|br)'",
e: "'",
c: [ n.BE ]
}, {
cN: "string",
b: '(b|br)"',
e: '"',
c: [ n.BE ]
} ].concat([ n.ASM, n.QSM ]), o = {
cN: "title",
b: n.UIR
}, i = {
cN: "params",
b: "\\(",
e: "\\)",
c: [ "self", n.CNM, e ].concat(t)
}, r = {
bWK: !0,
e: ":",
i: "[${=;\\n]",
c: [ o, i ],
r: 10
};
return {
k: {
keyword: "and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10",
built_in: "None True False Ellipsis NotImplemented"
},
i: "(</|->|\\?)",
c: t.concat([ e, n.HCM, n.inherit(r, {
cN: "function",
k: "def"
}), n.inherit(r, {
cN: "class",
k: "class"
}), n.CNM, {
cN: "decorator",
b: "@",
e: "$"
}, {
b: "\\b(print|exec)\\("
} ])
};
}(hljs), hljs.LANGUAGES.sql = function(n) {
return {
cI: !0,
c: [ {
cN: "operator",
b: "(begin|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant)\\b(?!:)",
e: ";",
eW: !0,
k: {
keyword: "all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number",
aggregate: "count sum min max avg"
},
c: [ {
cN: "string",
b: "'",
e: "'",
c: [ n.BE, {
b: "''"
} ],
r: 0
}, {
cN: "string",
b: '"',
e: '"',
c: [ n.BE, {
b: '""'
} ],
r: 0
}, {
cN: "string",
b: "`",
e: "`",
c: [ n.BE ]
}, n.CNM ]
}, n.CBLCLM, {
cN: "comment",
b: "--",
e: "$"
} ]
};
}(hljs), hljs.LANGUAGES.ini = function(n) {
return {
cI: !0,
i: "[^\\s]",
c: [ {
cN: "comment",
b: ";",
e: "$"
}, {
cN: "title",
b: "^\\[",
e: "\\]"
}, {
cN: "setting",
b: "^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",
e: "$",
c: [ {
cN: "value",
eW: !0,
k: "on off true false yes no",
c: [ n.QSM, n.NM ]
} ]
} ]
};
}(hljs), hljs.LANGUAGES.perl = function(n) {
var e = "getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when", t = {
cN: "subst",
b: "[$@]\\{",
e: "\\}",
k: e,
r: 10
}, o = {
cN: "variable",
b: "\\$\\d"
}, i = {
cN: "variable",
b: "[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"
}, r = [ n.BE, t, o, i ], a = {
b: "->",
c: [ {
b: n.IR
}, {
b: "{",
e: "}"
} ]
}, s = {
cN: "comment",
b: "^(__END__|__DATA__)",
e: "\\n$",
r: 5
}, l = [ o, i, n.HCM, s, {
cN: "comment",
b: "^\\=\\w",
e: "\\=cut",
eW: !0
}, a, {
cN: "string",
b: "q[qwxr]?\\s*\\(",
e: "\\)",
c: r,
r: 5
}, {
cN: "string",
b: "q[qwxr]?\\s*\\[",
e: "\\]",
c: r,
r: 5
}, {
cN: "string",
b: "q[qwxr]?\\s*\\{",
e: "\\}",
c: r,
r: 5
}, {
cN: "string",
b: "q[qwxr]?\\s*\\|",
e: "\\|",
c: r,
r: 5
}, {
cN: "string",
b: "q[qwxr]?\\s*\\<",
e: "\\>",
c: r,
r: 5
}, {
cN: "string",
b: "qw\\s+q",
e: "q",
c: r,
r: 5
}, {
cN: "string",
b: "'",
e: "'",
c: [ n.BE ],
r: 0
}, {
cN: "string",
b: '"',
e: '"',
c: r,
r: 0
}, {
cN: "string",
b: "`",
e: "`",
c: [ n.BE ]
}, {
cN: "string",
b: "{\\w+}",
r: 0
}, {
cN: "string",
b: "-?\\w+\\s*\\=\\>",
r: 0
}, {
cN: "number",
b: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
r: 0
}, {
b: "(" + n.RSR + "|\\b(split|return|print|reverse|grep)\\b)\\s*",
k: "split return print reverse grep",
r: 0,
c: [ n.HCM, s, {
cN: "regexp",
b: "(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",
r: 10
}, {
cN: "regexp",
b: "(m|qr)?/",
e: "/[a-z]*",
c: [ n.BE ],
r: 0
} ]
}, {
cN: "sub",
bWK: !0,
e: "(\\s*\\(.*?\\))?[;{]",
k: "sub",
r: 5
}, {
cN: "operator",
b: "-\\w\\b",
r: 0
} ];
return t.c = l, a.c[1].c = l, {
k: e,
c: l
};
}(hljs), hljs.LANGUAGES.json = function(n) {
var e = {
literal: "true false null"
}, t = [ n.QSM, n.CNM ], o = {
cN: "value",
e: ",",
eW: !0,
eE: !0,
c: t,
k: e
}, i = {
b: "{",
e: "}",
c: [ {
cN: "attribute",
b: '\\s*"',
e: '"\\s*:\\s*',
eB: !0,
eE: !0,
c: [ n.BE ],
i: "\\n",
starts: o
} ],
i: "\\S"
}, r = {
b: "\\[",
e: "\\]",
c: [ n.inherit(o, {
cN: null
}) ],
i: "\\S"
};
return t.splice(t.length, 0, i, r), {
c: t,
k: e,
i: "\\S"
};
}(hljs), hljs.LANGUAGES.cpp = function(n) {
var e = {
keyword: "false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex",
built_in: "std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr"
};
return {
k: e,
i: "</",
c: [ n.CLCM, n.CBLCLM, n.QSM, {
cN: "string",
b: "'\\\\?.",
e: "'",
i: "."
}, {
cN: "number",
b: "\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"
}, n.CNM, {
cN: "preprocessor",
b: "#",
e: "$"
}, {
cN: "stl_container",
b: "\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
e: ">",
k: e,
r: 10,
c: [ "self" ]
} ]
};
}(hljs), define("libs/highlight.pack", function() {}), function() {
function n(n) {
return n.replace(/^\s+|\s+$/g, "");
}
function e(n) {
return n.replace(/\s+$/g, "");
}
function t(n) {
return n.replace(new RegExp("^(\\t|[ ]{1,4})", "gm"), "");
}
function o(n, e) {
return -1 != n.indexOf(e);
}
function i(n, e) {
return n.replace(/<[^>]*>?/gi, function(n) {
return n.match(e) ? n : "";
});
}
function r(n, e) {
for (var t = {}, o = 0; o < n.length; o++) t[n[o]] = n[o];
for (o = 0; o < e.length; o++) t[e[o]] = e[o];
var i = [];
for (var r in t) t.hasOwnProperty(r) && i.push(t[r]);
return i;
}
function a(n) {
return "" != n.charAt(0) && (n = "" + n), "" != n.charAt(n.length - 1) && (n += ""),
n;
}
function s(n) {
return "" == n.charAt(0) && (n = n.substr(1)), "" == n.charAt(n.length - 1) && (n = n.substr(0, n.length - 1)),
n;
}
function l(n, e) {
return i(c(n, e), f);
}
function c(n, e) {
var t = e.blockGamutHookCallback(n);
return t = p(t), t = t.replace(/~D/g, "$$").replace(/~T/g, "~"), t = e.previousPostConversion(t);
}
function d(n) {
return n.replace(/\\\|/g, "&#124;").replace(/\\:/g, "&#58;");
}
function p(n) {
return n = n.replace(/~E(\d+)E/g, function(n, e) {
var t = parseInt(e);
return String.fromCharCode(t);
});
}
function u(n) {
return n.toLowerCase().replace(/\s+/g, "-").replace(/[^\w\-]+/g, "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
}
var f = new RegExp([ "^(<\\/?(a|abbr|acronym|applet|area|b|basefont|", "bdo|big|button|cite|code|del|dfn|em|figcaption|", "font|i|iframe|img|input|ins|kbd|label|map|", "mark|meter|object|param|progress|q|ruby|rp|rt|s|", "samp|script|select|small|span|strike|strong|", "sub|sup|textarea|time|tt|u|var|wbr)[^>]*>|", "<(br)\\s?\\/?>)$" ].join(""), "i");
Array.indexOf || (Array.prototype.indexOf = function(n) {
for (var e = 0; e < this.length; e++) if (this[e] == n) return e;
return -1;
}), Markdown.Extra = function() {
this.converter = null, this.hashBlocks = [], this.footnotes = {}, this.usedFootnotes = [],
this.attributeBlocks = !1, this.googleCodePrettify = !1, this.highlightJs = !1,
this.tableClass = "", this.tabWidth = 4;
}, Markdown.Extra.init = function(n, e) {
var t = new Markdown.Extra(), i = [], r = [], a = [ "unHashExtraBlocks" ];
return e = e || {}, e.extensions = e.extensions || [ "all" ], o(e.extensions, "all") && (e.extensions = [ "tables", "fenced_code_gfm", "def_list", "attr_list", "footnotes" ]),
o(e.extensions, "attr_list") && (i.push("hashFcbAttributeBlocks"), r.push("hashHeaderAttributeBlocks"),
a.push("applyAttributeBlocks"), t.attributeBlocks = !0), o(e.extensions, "tables") && r.push("tables"),
o(e.extensions, "fenced_code_gfm") && i.push("fencedCodeBlocks"), o(e.extensions, "def_list") && r.push("definitionLists"),
o(e.extensions, "footnotes") && (i.push("stripFootnoteDefinitions"), r.push("doFootnotes"),
a.push("printFootnotes")), n.hooks.chain("postNormalization", function(n) {
return t.doTransform(i, n) + "\n";
}), n.hooks.chain("preBlockGamut", function(n, e) {
return t.blockGamutHookCallback = e, n = d(n), t.doTransform(r, n) + "\n";
}), t.previousPostConversion = n.hooks.postConversion, n.hooks.chain("postConversion", function(n) {
return n = t.doTransform(a, n), t.hashBlocks = [], t.footnotes = {}, t.usedFootnotes = [],
n;
}), "highlighter" in e && (t.googleCodePrettify = "prettify" === e.highlighter,
t.highlightJs = "highlight" === e.highlighter), "table_class" in e && (t.tableClass = e.table_class),
t.converter = n, t;
}, Markdown.Extra.prototype.doTransform = function(n, e) {
for (var t = 0; t < n.length; t++) e = this[n[t]](e);
return e;
}, Markdown.Extra.prototype.hashExtraBlock = function(n) {
return "\n<p>~X" + (this.hashBlocks.push(n) - 1) + "X</p>\n";
}, Markdown.Extra.prototype.hashExtraInline = function(n) {
return "~X" + (this.hashBlocks.push(n) - 1) + "X";
}, Markdown.Extra.prototype.unHashExtraBlocks = function(n) {
function e() {
var o = !1;
n = n.replace(/(?:<p>)?~X(\d+)X(?:<\/p>)?/g, function(n, e) {
o = !0;
var i = parseInt(e, 10);
return t.hashBlocks[i];
}), o === !0 && e();
}
var t = this;
return e(), n;
}, Markdown.Extra.prototype.hashHeaderAttributeBlocks = function(n) {
function e(n, e, t) {
return "<p>~XX" + (r.hashBlocks.push(t) - 1) + "XX</p>\n" + e + "\n";
}
var t = "\\{\\s*[.|#][^}]+\\}", o = new RegExp("^(#{1,6}.*#{0,6})\\s+(" + t + ")[ \\t]*(\\n|0x03)", "gm"), i = new RegExp("^(.*)\\s+(" + t + ")[ \\t]*\\n" + "(?=[\\-|=]+\\s*(\\n|0x03))", "gm"), r = this;
return n = n.replace(o, e), n = n.replace(i, e);
}, Markdown.Extra.prototype.hashFcbAttributeBlocks = function(n) {
function e(n, e, t) {
return "<p>~XX" + (i.hashBlocks.push(t) - 1) + "XX</p>\n" + e + "\n";
}
var t = "\\{\\s*[.|#][^}]+\\}", o = new RegExp("^(```[^{\\n]*)\\s+(" + t + ")[ \\t]*\\n" + "(?=([\\s\\S]*?)\\n```\\s*(\\n|0x03))", "gm"), i = this;
return n.replace(o, e);
}, Markdown.Extra.prototype.applyAttributeBlocks = function(n) {
var e = this, t = new RegExp('<p>~XX(\\d+)XX</p>[\\s]*(?:<(h[1-6]|pre)(?: +class="(\\S+)")?(>[\\s\\S]*?</\\2>))', "gm");
return n = n.replace(t, function(n, t, o, i, a) {
if (!o) return "";
for (var s = parseInt(t, 10), l = e.hashBlocks[s], c = l.match(/#[^\s{}]+/g) || [], d = c[0] ? ' id="' + c[0].substr(1, c[0].length - 1) + '"' : "", p = l.match(/\.[^\s{}]+/g) || [], u = 0; u < p.length; u++) p[u] = p[u].substr(1, p[u].length - 1);
var f = "";
return i && (p = r(p, [ i ])), p.length > 0 && (f = ' class="' + p.join(" ") + '"'),
"<" + o + d + f + a;
});
}, Markdown.Extra.prototype.tables = function(e) {
function t(e, t, i, r) {
t = t.replace(/^ *[|]/m, ""), i = i.replace(/^ *[|]/m, ""), r = r.replace(/^ *[|]/gm, ""),
t = t.replace(/[|] *$/m, ""), i = i.replace(/[|] *$/m, ""), r = r.replace(/[|] *$/gm, ""),
alignspecs = i.split(/ *[|] */), align = [];
for (var a = 0; a < alignspecs.length; a++) {
var s = alignspecs[a];
align[a] = s.match(/^ *-+: *$/m) ? ' style="text-align:right;"' : s.match(/^ *:-+: *$/m) ? ' style="text-align:center;"' : s.match(/^ *:-+ *$/m) ? ' style="text-align:left;"' : "";
}
var c = t.split(/ *[|] */), d = c.length, p = o.tableClass ? ' class="' + o.tableClass + '"' : "", u = [ "<table", p, ">\n", "<thead>\n", "<tr>\n" ].join("");
for (a = 0; d > a; a++) {
var f = l(n(c[a]), o);
u += [ " <th", align[a], ">", f, "</th>\n" ].join("");
}
u += "</tr>\n</thead>\n";
var h = r.split("\n");
for (a = 0; a < h.length; a++) if (!h[a].match(/^\s*$/)) {
for (var g = h[a].split(/ *[|] */), b = d - g.length, m = 0; b > m; m++) g.push("");
for (u += "<tr>\n", m = 0; d > m; m++) {
var v = l(n(g[m]), o);
u += [ " <td", align[m], ">", v, "</td>\n" ].join("");
}
u += "</tr>\n";
}
return u += "</table>\n", o.hashExtraBlock(u);
}
var o = this, i = new RegExp([ "^", "[ ]{0,3}", "[|]", "(.+)\\n", "[ ]{0,3}", "[|]([ ]*[-:]+[-| :]*)\\n", "(", "(?:[ ]*[|].*\\n?)*", ")", "(?:\\n|$)" ].join(""), "gm"), r = new RegExp([ "^", "[ ]{0,3}", "(\\S.*[|].*)\\n", "[ ]{0,3}", "([-:]+[ ]*[|][-| :]*)\\n", "(", "(?:.*[|].*\\n?)*", ")", "(?:\\n|$)" ].join(""), "gm");
return e = e.replace(i, t), e = e.replace(r, t);
}, Markdown.Extra.prototype.stripFootnoteDefinitions = function(n) {
var e = this;
return n = n.replace(/\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/g, function(n, t, o) {
return t = u(t), o += "\n", o = o.replace(/^[ ]{0,3}/g, ""), e.footnotes[t] = o,
"\n";
});
}, Markdown.Extra.prototype.doFootnotes = function(n) {
var e = this;
if (e.isConvertingFootnote === !0) return n;
var t = 0;
return n = n.replace(/\[\^(.+?)\]/g, function(n, o) {
var i = u(o), r = e.footnotes[i];
if (void 0 === r) return "";
t++, e.usedFootnotes.push(i);
var a = '<a href="#fn:' + i + '" id="fnref:' + i + '" title="See footnote" class="footnote">' + t + "</a>";
return e.hashExtraInline(a);
});
}, Markdown.Extra.prototype.printFootnotes = function(n) {
var e = this;
if (0 === e.usedFootnotes.length) return n;
n += '\n\n<div class="footnotes">\n<hr>\n<ol>\n\n';
for (var t = 0; t < e.usedFootnotes.length; t++) {
var o = e.usedFootnotes[t], i = e.footnotes[o];
e.isConvertingFootnote = !0;
var r = l(i, e);
delete e.isConvertingFootnote, n += '<li id="fn:' + o + '">' + r + ' <a href="#fnref:' + o + '" title="Return to article" class="reversefootnote">&#8617;</a></li>\n\n';
}
return n += "</ol>\n</div>";
}, Markdown.Extra.prototype.fencedCodeBlocks = function(n) {
function e(n) {
return n = n.replace(/&/g, "&amp;"), n = n.replace(/</g, "&lt;"), n = n.replace(/>/g, "&gt;"),
n = n.replace(/~D/g, "$$"), n = n.replace(/~T/g, "~");
}
var t = this;
return n = n.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g, function(n, o, i) {
var r = o, a = i, s = t.googleCodePrettify ? ' class="prettyprint"' : "", l = "";
r && (l = t.googleCodePrettify || t.highlightJs ? ' class="language-' + r + '"' : ' class="' + r + '"');
var c = [ "<pre", s, "><code", l, ">", e(a), "</code></pre>" ].join("");
return t.hashExtraBlock(c);
});
}, Markdown.Extra.prototype.definitionLists = function(e) {
var t = new RegExp([ "(\\x02\\n?|\\n\\n)", "(?:", "(", "(", "[ ]{0,3}", "((?:[ \\t]*\\S.*\\n)+)", "\\n?", "[ ]{0,3}:[ ]+", ")", "([\\s\\S]+?)", "(", "(?=\\0x03)", "|", "(?=", "\\n{2,}", "(?=\\S)", "(?!", "[ ]{0,3}", "(?:\\S.*\\n)+?", "\\n?", "[ ]{0,3}:[ ]+", ")", "(?!", "[ ]{0,3}:[ ]+", ")", ")", ")", ")", ")" ].join(""), "gm"), o = this;
return e = a(e), e = e.replace(t, function(e, t, i) {
var r = n(o.processDefListItems(i));
return r = "<dl>\n" + r + "\n</dl>", t + o.hashExtraBlock(r) + "\n\n";
}), s(e);
}, Markdown.Extra.prototype.processDefListItems = function(o) {
var i = this, r = new RegExp([ "(\\x02\\n?|\\n\\n+)", "(", "[ ]{0,3}", "(?![:][ ]|[ ])", "(?:\\S.*\\n)+?", ")", "(?=\\n?[ ]{0,3}:[ ])" ].join(""), "gm"), d = new RegExp([ "\\n(\\n+)?", "(", "[ ]{0,3}", "[:][ ]+", ")", "([\\s\\S]+?)", "(?=\\n*", "(?:", "\\n[ ]{0,3}[:][ ]|", "<dt>|\\x03", ")", ")" ].join(""), "gm");
return o = a(o), o = o.replace(/\n{2,}(?=\\x03)/, "\n"), o = o.replace(r, function(e, t, o) {
for (var r = n(o).split("\n"), a = "", s = 0; s < r.length; s++) {
var c = r[s];
c = l(n(c), i), a += "\n<dt>" + c + "</dt>";
}
return a + "\n";
}), o = o.replace(d, function(n, o, r, a) {
return o || a.match(/\n{2,}/) ? (a = Array(r.length + 1).join(" ") + a, a = t(a) + "\n\n",
a = "\n" + c(a, i) + "\n") : (a = e(a), a = l(t(a), i)), "\n<dd>" + a + "</dd>\n";
}), s(o);
};
}(), define("libs/Markdown.Extra", function() {}), define("extensions/markdownExtra", [ "jquery", "underscore", "utils", "classes/Extension", "text!html/markdownExtraSettingsBlock.html", "libs/Markdown.Extra" ], function(n, e, t, o, i) {
var r = new o("markdownExtra", "Markdown Extra", !0);
return r.settingsBlock = i, r.defaultConfig = {
extensions: [ "fenced_code_gfm", "tables", "def_list", "attr_list", "footnotes" ],
highlighter: "prettify"
}, r.onLoadSettings = function() {
function n(n) {
return e.some(r.config.extensions, function(e) {
return e == n;
});
}
t.setInputChecked("#input-markdownextra-fencedcodegfm", n("fenced_code_gfm")), t.setInputChecked("#input-markdownextra-tables", n("tables")),
t.setInputChecked("#input-markdownextra-deflist", n("def_list")), t.setInputChecked("#input-markdownextra-attrlist", n("attr_list")),
t.setInputChecked("#input-markdownextra-footnotes", n("footnotes")), t.setInputValue("#input-markdownextra-highlighter", r.config.highlighter);
}, r.onSaveSettings = function(n) {
n.extensions = [], t.getInputChecked("#input-markdownextra-fencedcodegfm") && n.extensions.push("fenced_code_gfm"),
t.getInputChecked("#input-markdownextra-tables") && n.extensions.push("tables"),
t.getInputChecked("#input-markdownextra-deflist") && n.extensions.push("def_list"),
t.getInputChecked("#input-markdownextra-attrlist") && n.extensions.push("attr_list"),
t.getInputChecked("#input-markdownextra-footnotes") && n.extensions.push("footnotes"),
n.highlighter = t.getInputValue("#input-markdownextra-highlighter");
}, r.onEditorConfigure = function(n) {
var t = n.getConverter(), o = {
extensions: r.config.extensions
};
if ("highlight" == r.config.highlighter) {
o.highlighter = "prettify";
var i = document.getElementById("preview-contents");
n.hooks.chain("onPreviewRefresh", function() {
e.each(i.querySelectorAll(".prettyprint"), function(n) {
hljs.highlightBlock(n);
});
});
} else "prettify" == r.config.highlighter && (o.highlighter = "prettify", n.hooks.chain("onPreviewRefresh", prettyPrint));
Markdown.Extra.init(t, o), t.extraExtensions = r.config.extensions;
}, r;
}), define("text!html/buttonToc.html", [], function() {
return '<button class="btn btn-default dropdown-toggle" title="Table of contents" data-toggle="dropdown">\n <i class="icon-list"></i>\n</button>\n<div class="dropdown-menu pull-right">\n <h3>Table of contents</h3>\n <div class="table-of-contents">\n </div>\n</div>\n';
}), define("text!html/tocSettingsBlock.html", [], function() {
return '<p>Generates a table of contents when a [TOC] marker is found.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-toc-marker">Marker\n RegExp</label>\n <div class="col-lg-7">\n \n <input type="text" id="input-toc-marker" class="col-lg-4 form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-toc-button">Button over preview</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-toc-button">\n </div>\n </div>\n </div>\n \n</div>';
}), define("extensions/toc", [ "jquery", "underscore", "utils", "classes/Extension", "text!html/buttonToc.html", "text!html/tocSettingsBlock.html" ], function(n, e, t, o, i, r) {
function a(n, e, t) {
this.tagName = n, this.anchor = e, this.text = t, this.children = [];
}
function s(n, t) {
function o() {
void 0 !== l && (l.children.length > 0 && (l.children = s(l.children, t + 1)), r.push(l));
}
t = t || 1;
var i = "H" + t, r = [], l = void 0;
return e.each(n, function(n) {
n.tagName != i ? (void 0 === l && (l = new a()), l.children.push(n)) : (o(), l = n);
}), o(), r;
}
function l() {
function n(n) {
for (var i = n.id || t.slugify(n.textContent), r = i, a = 0; e.has(o, r); ) r = i + "-" + ++a;
return o[r] = !0, n.id = r, r;
}
var o = {}, i = [];
return e.each(d.querySelectorAll(".preview-content > .wmd-title"), function(e) {
i.push(new a(e.tagName, n(e), e.textContent));
}), i = s(i), '<div class="toc">\n<ul>\n' + i.join("") + "</ul>\n</div>\n";
}
var c = new o("toc", "Table of Contents", !0);
c.settingsBlock = r, c.defaultConfig = {
marker: "\\[(TOC|toc)\\]",
button: !0
}, c.onLoadSettings = function() {
t.setInputValue("#input-toc-marker", c.config.marker), t.setInputChecked("#input-toc-button", c.config.button);
}, c.onSaveSettings = function(n, e) {
n.marker = t.getInputRegExpValue("#input-toc-marker", e), n.button = t.getInputChecked("#input-toc-button");
}, c.onCreatePreviewButton = function() {
return c.config.button ? i : void 0;
}, a.prototype.childrenToString = function() {
if (0 === this.children.length) return "";
var n = "<ul>\n";
return e.each(this.children, function(e) {
n += e.toString();
}), n += "</ul>\n";
}, a.prototype.toString = function() {
var n = "<li>";
return this.anchor && this.text && (n += '<a href="#' + this.anchor + '">' + this.text + "</a>"),
n += this.childrenToString() + "</li>\n";
};
var d = void 0;
return c.onEditorConfigure = function(n) {
d = document.getElementById("preview-contents");
var t = document.querySelectorAll(".table-of-contents"), o = new RegExp("^" + c.config.marker + "$", "g");
n.hooks.chain("onPreviewRefresh", function() {
var n = l();
e.each(d.getElementsByTagName("p"), function(e) {
o.test(e.innerHTML) && (e.innerHTML = n);
}), e.each(t, function(e) {
e.innerHTML = n;
});
});
}, c;
}), define("text!html/mathJaxSettingsBlock.html", [], function() {
return '<p>Allows StackEdit to interpret LaTeX mathematical expressions.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-mathjax-config-tex">TeX configuration</label>\n <div class="col-lg-7">\n <input type="text" id="input-mathjax-config-tex" class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-mathjax-config-tex2jax">tex2jax configuration</label>\n <div class="col-lg-7">\n <input type="text" id="input-mathjax-config-tex2jax" class="form-control">\n </div>\n </div>\n</div>\n<span class="help-block pull-right"><a target="_blank" href="http://docs.mathjax.org/en/latest/options/">More info</a></span>';
}), define("extensions/mathJax", [ "utils", "classes/Extension", "text!html/mathJaxSettingsBlock.html", "libs/MathJax" ], function(utils, Extension, mathJaxSettingsBlockHTML) {
function processMath(n, e) {
var t = blocks.slice(n, e + 1).join("").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
for (HUB.Browser.isMSIE && (t = t.replace(/(%[^\n]*)\n/g, "$1<br/>\n")); e > n; ) blocks[e] = "",
e--;
blocks[n] = "@@" + math.length + "@@", math.push(t), start = end = last = null;
}
function removeMath(n) {
start = end = last = null, math = [], blocks = n.replace(/\r\n?/g, "\n").split(SPLIT);
for (var e = 1, t = blocks.length; t > e; e += 2) {
var o = blocks[e];
"@" === o.charAt(0) ? (blocks[e] = "@@" + math.length + "@@", math.push(o)) : start ? o === end ? braces ? last = e : processMath(start, e) : o.match(/\n.*\n/) ? (last && (e = last,
processMath(start, e)), start = end = last = null, braces = 0) : "{" === o ? braces++ : "}" === o && braces && braces-- : o === inline || "$$" === o ? (start = e,
end = o, braces = 0) : "begin" === o.substr(1, 5) && (start = e, end = "\\end" + o.substr(6),
braces = 0);
}
return last && processMath(start, last), blocks.join("");
}
function replaceMath(n) {
return n = n.replace(/@@(\d+)@@/g, function(n, e) {
return math[e];
}), math = null, n;
}
function RestartMJ() {
pending = !1, HUB.cancelTypeset = !1, HUB.Queue([ "Typeset", HUB, preview ]), HUB.Queue(afterRefreshCallback);
}
function UpdateMJ() {
pending || (pending = !0, HUB.Cancel(), HUB.Queue(RestartMJ));
}
var mathJax = new Extension("mathJax", "MathJax", !0);
mathJax.settingsBlock = mathJaxSettingsBlockHTML, mathJax.defaultConfig = {
tex: "{}",
tex2jax: '{ inlineMath: [["$","$"],["\\\\\\\\(","\\\\\\\\)"]], displayMath: [["$$","$$"],["\\\\[","\\\\]"]], processEscapes: true }'
}, mathJax.onLoadSettings = function() {
utils.setInputValue("#input-mathjax-config-tex", mathJax.config.tex), utils.setInputValue("#input-mathjax-config-tex2jax", mathJax.config.tex2jax);
}, mathJax.onSaveSettings = function(n, e) {
n.tex = utils.getInputJsValue("#input-mathjax-config-tex", e), n.tex2jax = utils.getInputJsValue("#input-mathjax-config-tex2jax", e);
}, mathJax.onReady = function() {
eval("var tex = " + mathJax.config.tex), eval("var tex2jax = " + mathJax.config.tex2jax),
MathJax.Hub.Config({
"HTML-CSS": {
preferredFont: "TeX",
availableFonts: [ "STIX", "TeX" ],
linebreaks: {
automatic: !0
},
EqnChunk: 10,
imageFont: null
},
tex2jax: tex2jax,
TeX: $.extend({
noUndefined: {
attributes: {
mathcolor: "red",
mathbackground: "#FFEEEE",
mathsize: "90%"
}
},
Safe: {
allow: {
URLs: "safe",
classes: "safe",
cssIDs: "safe",
styles: "safe",
fontsize: "all"
}
}
}, tex),
messageStyle: "none"
});
};
var converter = void 0, ready = !1, pending = !1, preview = null, inline = "$", blocks, start, end, last, braces, math, HUB = MathJax.Hub;
HUB.Queue(function() {
ready = !0, HUB.processUpdateTime = 50, HUB.Config({
"HTML-CSS": {
EqnChunk: 10,
EqnChunkFactor: 1
},
SVG: {
EqnChunk: 10,
EqnChunkFactor: 1
}
});
});
var SPLIT = /(\$\$?|\\(?:begin|end)\{[a-z]*\*?\}|\\[\\{}$]|[{}]|(?:\n\s*)+|@@\d+@@)/i, afterRefreshCallback = void 0;
if (mathJax.onEditorConfigure = function(n) {
preview = document.getElementById("preview-contents"), converter = n.getConverter(),
converter.hooks.chain("preConversion", removeMath), converter.hooks.chain("postConversion", replaceMath);
}, mathJax.onAsyncPreview = function(n) {
afterRefreshCallback = n, UpdateMJ();
}, !HUB.Cancel) {
HUB.cancelTypeset = !1;
var CANCELMESSAGE = "MathJax Canceled";
HUB.Register.StartupHook("HTML-CSS Jax Config", function() {
var n = MathJax.OutputJax["HTML-CSS"], e = n.Translate;
n.Augment({
Translate: function(t, o) {
if (HUB.cancelTypeset || o.cancelled) throw Error(CANCELMESSAGE);
return e.call(n, t, o);
}
});
}), HUB.Register.StartupHook("SVG Jax Config", function() {
var n = MathJax.OutputJax.SVG, e = n.Translate;
n.Augment({
Translate: function(t, o) {
if (HUB.cancelTypeset || o.cancelled) throw Error(CANCELMESSAGE);
return e.call(n, t, o);
}
});
}), HUB.Register.StartupHook("TeX Jax Config", function() {
var n = MathJax.InputJax.TeX, e = n.Translate;
n.Augment({
Translate: function(t, o) {
if (HUB.cancelTypeset || o.cancelled) throw Error(CANCELMESSAGE);
return e.call(n, t, o);
}
});
});
var PROCESSERROR = HUB.processError;
HUB.processError = function(n, e, t) {
return n.message !== CANCELMESSAGE ? PROCESSERROR.call(HUB, n, e, t) : (MathJax.Message.Clear(0, 0),
e.jaxIDs = [], e.jax = {}, e.scripts = [], e.i = e.j = 0, e.cancelled = !0, null);
}, HUB.Cancel = function() {
this.cancelTypeset = !0;
};
}
return mathJax;
}), define("extensions/emailConverter", [ "classes/Extension" ], function(n) {
var e = new n("emailConverter", "Markdown Email", !0);
return e.settingsBlock = "<p>Converts email adresses in the form &lt;email@example.com&gt; into clickable links.</p>",
e.onEditorConfigure = function(n) {
n.getConverter().hooks.chain("postConversion", function(n) {
return n.replace(/<(mailto\:)?([^\s>]+@[^\s>]+\.\S+?)>/g, function(n, e, t) {
return '<a href="mailto:' + t + '">' + t + "</a>";
});
});
}, e;
}), define("text!html/scrollLinkSettingsBlock.html", [], function() {
return '<p>Binds together editor and preview scrollbars.</p>\n<blockquote class="muted">\n <b>NOTE:</b> The mapping between Markdown and HTML is based on the\n position of the title elements (h1, h2...) in the page. Therefore if\n your document does not contain any title, the mapping will be linear and\n consequently less accurate.\n</blockquote>';
}), showLog = !0, css_browser_selector(navigator.userAgent), define("libs/css_browser_selector", function() {}),
function(n) {
"function" == typeof define && define.amd ? define("libs/jquery.mousewheel", [ "jquery" ], n) : "object" == typeof exports ? module.exports = n : n(jQuery);
}(function(n) {
function e(e) {
var i, r = e || window.event, a = [].slice.call(arguments, 1), s = 0, l = 0, c = 0, d = 0, p = 0;
return e = n.event.fix(r), e.type = "mousewheel", r.wheelDelta && (s = r.wheelDelta),
r.detail && (s = -1 * r.detail), r.deltaY && (c = -1 * r.deltaY, s = c), r.deltaX && (l = r.deltaX,
s = -1 * l), void 0 !== r.wheelDeltaY && (c = r.wheelDeltaY), void 0 !== r.wheelDeltaX && (l = -1 * r.wheelDeltaX),
d = Math.abs(s), (!t || t > d) && (t = d), p = Math.max(Math.abs(c), Math.abs(l)),
(!o || o > p) && (o = p), i = s > 0 ? "floor" : "ceil", s = Math[i](s / t), l = Math[i](l / o),
c = Math[i](c / o), a.unshift(e, s, l, c), (n.event.dispatch || n.event.handle).apply(this, a);
}
var t, o, i = [ "wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll" ], r = "onwheel" in document || document.documentMode >= 9 ? [ "wheel" ] : [ "mousewheel", "DomMouseScroll", "MozMousePixelScroll" ];
if (n.event.fixHooks) for (var a = i.length; a; ) n.event.fixHooks[i[--a]] = n.event.mouseHooks;
n.event.special.mousewheel = {
setup: function() {
if (this.addEventListener) for (var n = r.length; n; ) this.addEventListener(r[--n], e, !1); else this.onmousewheel = e;
},
teardown: function() {
if (this.removeEventListener) for (var n = r.length; n; ) this.removeEventListener(r[--n], e, !1); else this.onmousewheel = null;
}
}, n.fn.extend({
mousewheel: function(n) {
return n ? this.bind("mousewheel", n) : this.trigger("mousewheel");
},
unmousewheel: function(n) {
return this.unbind("mousewheel", n);
}
});
}), define("extensions/scrollLink", [ "jquery", "underscore", "classes/Extension", "text!html/scrollLinkSettingsBlock.html", "libs/css_browser_selector", "libs/jquery.mousewheel" ], function(n, e, t, o) {
function i(n) {
return parseFloat(n.substring(0, n.length - 2));
}
var r = new t("scrollLink", "Scroll Link", !0, !0);
r.settingsBlock = o;
var a = void 0;
r.onSectionsCreated = function(n) {
a = n;
};
var s = void 0, l = void 0, c = void 0, d = [], p = [], u = void 0, f = void 0, h = e.debounce(function() {
function t(n) {
var e = o;
0 !== n.length && (c.val(n), e += c.prop("scrollHeight"));
var t = r + e;
d.push({
startOffset: r,
endOffset: t,
height: e
}), r = t, o = 0;
}
d = [], c.width(s.width());
var o = i(s.css("padding-top")), r = 0;
e.each(a, function(n, e) {
e !== a.length - 1 ? n = n.substring(0, n.length - 1) : o += i(s.css("padding-bottom")),
t(n);
}), p = [];
var h = 0, g = l.scrollTop();
l.find(".preview-content > .wmd-title").each(function() {
var e = n(this), t = e.position().top + g + i(e.css("margin-top"));
p.push({
startOffset: h,
endOffset: t,
height: t - h
}), h = t;
});
var b = l.prop("scrollHeight");
p.push({
startOffset: h,
endOffset: b,
height: b - h
}), u = -10, f = -10, m();
}, 500), g = !1, b = !1, m = e.debounce(function() {
function n(n, t, o, i, r, a) {
var s = void 0, l = e.find(t, function(e, t) {
return s = t, n < e.endOffset;
});
if (void 0 !== l) {
var c = (n - l.startOffset) / l.height, d = i[s], p = d.startOffset + d.height * c;
return p = e.min([ p, o.prop("scrollHeight") - o.outerHeight() ]), Math.abs(p - r) <= 9 ? (a(r),
void 0) : (o.animate({
scrollTop: p
}, 500, function() {
a(p);
}), void 0);
}
}
if (0 !== d.length && d.length === p.length) {
var t = s.scrollTop(), o = l.scrollTop();
g === !0 && Math.abs(t - u) > 9 ? (g = !1, u = t, n(t, d, l, p, o, function(n) {
f = n;
})) : b === !0 && Math.abs(o - f) > 9 && (b = !1, f = o, n(o, p, s, d, t, function(n) {
u = n;
}));
}
}, 500);
r.onLayoutConfigure = function(n) {
n.onresize = function() {
g = !0, h();
};
}, r.onLayoutCreated = function() {
s = n("#wmd-input"), l = n(".preview-container"), c = n("#md-section-helper"), n(".preview-container").bind("keyup mouseup mousewheel", function() {
b = !0, g = !1, m();
}), n("#wmd-input").bind("keyup mouseup mousewheel", function() {
g = !0, b = !1, m();
});
};
var v = void 0;
return r.onEditorConfigure = function(e) {
v = n("#preview-contents"), e.getConverter().hooks.chain("postConversion", function(n) {
return v.height(v.height()), n;
});
}, r.onPreviewFinished = function() {
v.height("auto"), g = !0, h();
}, r;
}), define("text!html/buttonSync.html", [], function() {
return '<button class="btn btn-success" title="Synchronize all documents">\n <i class="icon-refresh"></i>\n</button>';
}), define("text!html/buttonSyncSettingsBlock.html", [], function() {
return '<p>Adds a "Synchronize documents" button in the navigation bar.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-5 control-label" for="input-sync-period">Sync\n period (0: manual)</label>\n <div class="col-lg-6 form-inline">\n <input type="text" id="input-sync-period"\n class="col-lg-5 form-control" placeholder="180000"> ms\n </div>\n </div>\n</div>';
}), define("extensions/buttonSync", [ "jquery", "underscore", "utils", "classes/Extension", "text!html/buttonSync.html", "text!html/buttonSyncSettingsBlock.html" ], function(n, e, t, o, i, r) {
var a = new o("buttonSync", 'Button "Synchronize"');
a.settingsBlock = r, a.defaultConfig = {
syncPeriod: 18e4
}, a.onLoadSettings = function() {
t.setInputValue("#input-sync-period", a.config.syncPeriod);
}, a.onSaveSettings = function(n, e) {
n.syncPeriod = t.getInputIntValue("#input-sync-period", e, 0);
};
var s = void 0;
a.onSynchronizerCreated = function(n) {
s = n;
};
var l = void 0, c = !1, d = !1, p = function() {
void 0 !== l && (c === !0 || s.hasSync() === !1 || d ? l.addClass("disabled") : l.removeClass("disabled"));
}, u = 0;
return a.onPeriodicRun = function() {
viewerMode === !0 || !a.config.syncPeriod || u + a.config.syncPeriod > t.currentTime || s.sync() === !0 && (u = t.currentTime);
}, a.onCreateButton = function() {
return l = n(i).click(function() {
n(this).hasClass("disabled") || s.sync();
}), l[0];
}, a.onReady = p, a.onFileCreated = p, a.onFileDeleted = p, a.onSyncImportSuccess = p,
a.onSyncExportSuccess = p, a.onSyncRemoved = p, a.onSyncRunning = function(n) {
c = n, p();
}, a.onOfflineChanged = function(n) {
d = n, p();
}, a;
}), define("text!html/buttonPublish.html", [], function() {
return '<button class="btn btn-success" title="Publish this document">\n <i class="icon-share"></i>\n</button>';
}), define("extensions/buttonPublish", [ "jquery", "underscore", "classes/Extension", "text!html/buttonPublish.html" ], function(n, e, t, o) {
function i() {
void 0 !== a && (l === !0 || c === !1 || d === !0 ? a.addClass("disabled") : a.removeClass("disabled"));
}
var r = new t("buttonPublish", 'Button "Publish"'), a = void 0, s = void 0, l = !1, c = !1, d = !1, p = void 0;
r.onPublisherCreated = function(n) {
p = n;
}, r.onCreateButton = function() {
return a = n(o).click(function() {
n(this).hasClass("disabled") || p.publish();
}), a[0];
}, r.onPublishRunning = function(n) {
l = n, i();
}, r.onOfflineChanged = function(n) {
d = n, i();
};
var u = function() {
c = 0 === e.size(s.publishLocations) ? !1 : !0, i();
};
return r.onFileSelected = function(n) {
s = n, u();
}, r.onPublishRemoved = u, r.onNewPublishSuccess = u, r;
}), define("text!html/buttonShare.html", [], function() {
return '<button class="btn btn-success dropdown-toggle" data-toggle="dropdown"\n title="Share this document">\n <i class="icon-link"></i>\n</button>\n<div class="dropdown-menu pull-right link-container">\n <h3 class="muted">Sharing</h3>\n <div class="link-list"></div>\n <p class="no-link">To share this document you need first to <a\n href="#" class="action-publish-gist">publish it as a Gist</a> in\n Markdown format.\n </p>\n <blockquote class="muted">\n <b>NOTE:</b> You can open any URL within StackEdit using <a\n href="viewer.html?url=https://raw.github.com/benweet/stackedit/master/README.md"\n title="Sharing example">viewer.html?url=...</a>\n </blockquote>\n</div>\n';
}), define("text!html/buttonShareLocation.html", [], function() {
return '<div class="input-group">\n <div class="input-group-btn"><a href="<%= link %>" class="btn btn-info" title="Sharing location"><i\n class="icon-link"></i></a></div> <input class="col-lg-5 form-control" type="text"\n value="<%= link %>" readonly />\n</div>\n';
}), define("extensions/buttonShare", [ "jquery", "underscore", "classes/Extension", "text!html/buttonShare.html", "text!html/buttonShareLocation.html" ], function(n, e, t, o, i) {
var r = new t("buttonShare", 'Button "Share"', !0);
r.settingsBlock = '<p>Adds a "Share document" button in the navigation bar.</p>',
r.onCreateButton = function() {
return o;
};
var a = void 0, s = function(t) {
if (void 0 === t || t === a) {
var o = n(".link-container .link-list").empty();
n(".link-container .no-link").show();
var r = e.values(a.publishLocations);
e.each(r, function(t) {
if (t.sharingLink) {
var r = n(e.template(i, {
link: t.sharingLink
}));
o.append(r), n(".link-container .no-link").hide();
}
});
}
};
return r.onFileSelected = function(n) {
a = n, s(n);
}, r.onNewPublishSuccess = s, r.onPublishRemoved = s, r;
}), define("text!html/buttonStat.html", [], function() {
return '<button class="btn btn-default dropdown-toggle" title="Document statistics" data-toggle="dropdown">\n <i class="icon-chart-bar"></i>\n</button>\n<div class="dropdown-menu pull-right">\n <h3>Statistics</h3>\n <div class="stat">\n <div>\n <%= name1 %>: <span id="span-stat-value1"></span>\n </div>\n <div>\n <%= name2 %>: <span id="span-stat-value2"></span>\n </div>\n <div>\n <%= name3 %>: <span id="span-stat-value3"></span>\n </div>\n </div>\n</div>\n';
}), define("text!html/buttonStatSettingsBlock.html", [], function() {
return '<p>Adds a "Document statistics" button over the preview.</p>\n<div class="form-horizontal">\n <div class="form-group form-inline">\n <label class="label-text" for="input-stat-name1">Title</label> <input\n id="input-stat-name1" type="text" class="form-control col-lg-3"> <label\n class="label-text" for="input-stat-value1">RegExp</label> <input\n id="input-stat-value1" type="text" class="form-control col-lg-4">\n </div>\n <div class="form-group form-inline">\n <label class="label-text" for="input-stat-name2">Title</label> <input\n id="input-stat-name2" type="text" class="form-control col-lg-3"> <label\n class="label-text" for="input-stat-value2">RegExp</label> <input\n id="input-stat-value2" type="text" class="form-control col-lg-4">\n </div>\n <div class="form-group form-inline">\n <label class="label-text" for="input-stat-name3">Title</label> <input\n id="input-stat-name3" type="text" class="form-control col-lg-3"> <label\n class="label-text" for="input-stat-value3">RegExp</label> <input\n id="input-stat-value3" type="text" class="form-control col-lg-4">\n </div>\n</div>\n';
}), define("extensions/buttonStat", [ "jquery", "underscore", "utils", "classes/Extension", "text!html/buttonStat.html", "text!html/buttonStatSettingsBlock.html" ], function(n, e, t, o, i, r) {
var a = new o("buttonStat", 'Button "Statistics"', !0, !0);
a.settingsBlock = r, a.defaultConfig = {
name1: "Characters",
value1: "\\S",
name2: "Words",
value2: "\\S+",
name3: "Paragraphs",
value3: "\\S.*"
}, a.onLoadSettings = function() {
e.each([ 1, 2, 3 ], function(n) {
t.setInputValue("#input-stat-name" + n, a.config["name" + n]), t.setInputValue("#input-stat-value" + n, a.config["value" + n]);
});
}, a.onSaveSettings = function(n, o) {
e.each([ 1, 2, 3 ], function(e) {
n["name" + e] = t.getInputTextValue("#input-stat-name" + e, o), n["value" + e] = t.getInputRegExpValue("#input-stat-value" + e, o);
});
}, a.onCreatePreviewButton = function() {
return e.template(i, a.config);
};
var s = void 0, l = void 0, c = void 0, d = void 0;
return a.onReady = function() {
s = document.getElementById("preview-contents"), l = document.getElementById("span-stat-value1"),
c = document.getElementById("span-stat-value2"), d = document.getElementById("span-stat-value3");
}, a.onPreviewFinished = function() {
for (var n = s.cloneNode(!0), e = n.getElementsByTagName("script"), t = e.length - 1; t >= 0; t--) {
var o = e[t];
o.parentNode.removeChild(o);
}
var i = n.textContent;
l.textContent = (i.match(new RegExp(a.config.value1, "g")) || []).length, c.textContent = (i.match(new RegExp(a.config.value2, "g")) || []).length,
d.textContent = (i.match(new RegExp(a.config.value3, "g")) || []).length;
}, a;
}), define("text!html/buttonHtmlCode.html", [], function() {
return '<button class="btn btn-default dropdown-toggle action-html-code" title="HTML code" data-toggle="dropdown">\n <i class="icon-code"></i>\n</button>\n<div class="dropdown-menu pull-right">\n <h3>HTML code</h3>\n <textarea id="input-html-code" class="form-control"></textarea>\n</div>\n';
}), define("text!html/buttonHtmlCodeSettingsBlock.html", [], function() {
return '<p>Adds a "HTML code" button over the preview.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label" for="textarea-html-code-template">Template\n <a href="#" class="tooltip-template">(?)</a>\n </label>\n <div class="col-lg-7">\n <textarea id="textarea-html-code-template" class="form-control"></textarea>\n </div>\n </div>\n</div>';
}), define("extensions/buttonHtmlCode", [ "jquery", "underscore", "utils", "classes/Extension", "text!html/buttonHtmlCode.html", "text!html/buttonHtmlCodeSettingsBlock.html" ], function(n, e, t, o, i, r) {
var a = new o("buttonHtmlCode", 'Button "HTML code"', !0, !0);
a.settingsBlock = r, a.defaultConfig = {
template: "<%= documentHTML %>"
}, a.onLoadSettings = function() {
t.setInputValue("#textarea-html-code-template", a.config.template);
}, a.onSaveSettings = function(n) {
n.template = t.getInputValue("#textarea-html-code-template");
};
var s = void 0;
a.onEventMgrCreated = function(n) {
s = n;
}, a.onCreatePreviewButton = function() {
return i;
};
var l = void 0;
a.onFileSelected = function(n) {
l = n;
};
var c = void 0;
return a.onPreviewFinished = function(n) {
try {
var t = e.template(a.config.template, {
documentTitle: l.title,
documentMarkdown: l.content,
documentHTML: n
});
c.value = t;
} catch (o) {
return s.onError(o), o.message;
}
}, a.onReady = function() {
c = document.getElementById("input-html-code"), n(".action-html-code").click(function() {
e.defer(function() {
n("#input-html-code").each(function() {
n(this).is(":hidden") || n(this).get(0).select();
});
});
});
}, a;
}), define("text!html/buttonMarkdownSyntax.html", [], function() {
return '<button class="btn btn-default dropdown-toggle" title="Markdown syntax" data-toggle="dropdown">\n <i class="icon-help-circled"></i>\n</button>\n<div class="dropdown-menu pull-right">\n <h3>Markdown syntax</h3>\n <div class="markdown-syntax">\n<h4>Phrase Emphasis</h4>\n\n<pre><code>*italic* **bold**\n_italic_ __bold__\n</code></pre>\n\n<h4>Links</h4>\n\n<p>Inline:</p>\n\n<pre><code>An [example](http://url.com/ "Title")\n</code></pre>\n\n<p>Reference-style labels (titles are optional):</p>\n\n<pre><code>An [example][id]. Then, anywhere\nelse in the doc, define the link:\n\n [id]: http://example.com/ "Title"\n</code></pre>\n\n<h4>Images</h4>\n\n<p>Inline (titles are optional):</p>\n\n<pre><code>![alt text](/path/img.jpg "Title")\n</code></pre>\n\n<p>Reference-style:</p>\n\n<pre><code>![alt text][id]\n\n[id]: /url/to/img.jpg "Title"\n</code></pre>\n\n<h4>Headers</h4>\n\n<p>Setext-style:</p>\n\n<pre><code>Header 1\n========\n\nHeader 2\n--------\n</code></pre>\n\n<p>atx-style (closing #\'s are optional):</p>\n\n<pre><code># Header 1 #\n\n## Header 2 ##\n\n###### Header 6\n</code></pre>\n\n<h4>Lists</h4>\n\n<p>Ordered, without paragraphs:</p>\n\n<pre><code>1. Foo\n2. Bar\n</code></pre>\n\n<p>Unordered, with paragraphs:</p>\n\n<pre><code>* A list item.\n\n With multiple paragraphs.\n\n* Bar\n</code></pre>\n\n<p>You can nest them:</p>\n\n<pre><code>* Abacus\n * answer\n* Bubbles\n 1. bunk\n 2. bupkis\n * BELITTLER\n 3. burper\n* Cunning\n</code></pre>\n\n<h4>Blockquotes</h4>\n\n<pre><code>&gt; Email-style angle brackets\n&gt; are used for blockquotes.\n\n&gt; &gt; And, they can be nested.\n\n&gt; #### Headers in blockquotes\n&gt; \n&gt; * You can quote a list.\n&gt; * Etc.\n</code></pre>\n\n<h4>Code Spans</h4>\n\n<pre><code>`&lt;code&gt;` spans are delimited\nby backticks.\n\nYou can include literal backticks\nlike `` `this` ``.\n</code></pre>\n\n<h4>Preformatted Code Blocks</h4>\n\n<p>Indent every line of a code block by at least 4 spaces or 1 tab.</p>\n\n<pre><code>This is a normal paragraph.\n\n This is a preformatted\n code block.\n</code></pre>\n\n<h4>Horizontal Rules</h4>\n\n<p>Three or more dashes or asterisks:</p>\n\n<pre><code>---\n\n* * *\n\n- - - - \n</code></pre>\n\n<h4>Manual Line Breaks</h4>\n\n<p>End a line with two or more spaces:</p>\n\n<pre><code>Roses are red, \nViolets are blue.\n</code></pre>\n\n<p class="muted">Based on the <a target="_blank" href="https://github.com/fletcher/MultiMarkdown/blob/master/Documentation/Markdown%20Syntax.md">Markdown syntax guide</a>, by Fletcher T. Penney.</p>\n </div>\n</div>\n';
}), define("extensions/buttonMarkdownSyntax", [ "jquery", "classes/Extension", "text!html/buttonMarkdownSyntax.html" ], function(n, e, t) {
var o = new e("buttonMarkdownSyntax", 'Button "Markdown syntax', !0);
return o.settingsBlock = '<p>Adds a "Markdown syntax" button over the preview.</p>',
o.onCreatePreviewButton = function() {
return t;
}, o;
}), define("text!html/buttonViewer.html", [], function() {
return '<a href="viewer.html" class="btn btn-default dropdown-toggle"\n title="Open in viewer">\n <i class="icon-resize-full"></i>\n</a>\n';
}), define("extensions/buttonViewer", [ "jquery", "classes/Extension", "text!html/buttonViewer.html" ], function(n, e, t) {
var o = new e("buttonViewer", 'Button "Viewer"', !0);
return o.settingsBlock = '<p>Adds a "Viewer" button over the preview.</p>', o.onCreatePreviewButton = function() {
return t;
}, o;
}), !jQuery) throw new Error("Bootstrap requires jQuery");
+function(n) {
function e() {
var n = document.createElement("bootstrap"), e = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend"
};
for (var t in e) if (void 0 !== n.style[t]) return {
end: e[t]
};
}
n.fn.emulateTransitionEnd = function(e) {
var t = !1, o = this;
n(this).one(n.support.transition.end, function() {
t = !0;
});
var i = function() {
t || n(o).trigger(n.support.transition.end);
};
return setTimeout(i, e), this;
}, n(function() {
n.support.transition = e();
});
}(window.jQuery), +function(n) {
var e = '[data-dismiss="alert"]', t = function(t) {
n(t).on("click", e, this.close);
};
t.prototype.close = function(e) {
function t() {
r.trigger("closed.bs.alert").remove();
}
var o = n(this), i = o.attr("data-target");
i || (i = o.attr("href"), i = i && i.replace(/.*(?=#[^\s]*$)/, ""));
var r = n(i);
e && e.preventDefault(), r.length || (r = o.hasClass("alert") ? o : o.parent()),
r.trigger(e = n.Event("close.bs.alert")), e.isDefaultPrevented() || (r.removeClass("in"),
n.support.transition && r.hasClass("fade") ? r.one(n.support.transition.end, t).emulateTransitionEnd(150) : t());
};
var o = n.fn.alert;
n.fn.alert = function(e) {
return this.each(function() {
var o = n(this), i = o.data("bs.alert");
i || o.data("bs.alert", i = new t(this)), "string" == typeof e && i[e].call(o);
});
}, n.fn.alert.Constructor = t, n.fn.alert.noConflict = function() {
return n.fn.alert = o, this;
}, n(document).on("click.bs.alert.data-api", e, t.prototype.close);
}(window.jQuery), +function(n) {
var e = function(t, o) {
this.$element = n(t), this.options = n.extend({}, e.DEFAULTS, o);
};
e.DEFAULTS = {
loadingText: "loading..."
}, e.prototype.setState = function(n) {
var e = "disabled", t = this.$element, o = t.is("input") ? "val" : "html", i = t.data();
n += "Text", i.resetText || t.data("resetText", t[o]()), t[o](i[n] || this.options[n]),
setTimeout(function() {
"loadingText" == n ? t.addClass(e).attr(e, e) : t.removeClass(e).removeAttr(e);
}, 0);
}, e.prototype.toggle = function() {
var n = this.$element.closest('[data-toggle="buttons"]');
if (n.length) {
var e = this.$element.find("input").prop("checked", !this.$element.hasClass("active")).trigger("change");
"radio" === e.prop("type") && n.find(".active").removeClass("active");
}
this.$element.toggleClass("active");
};
var t = n.fn.button;
n.fn.button = function(t) {
return this.each(function() {
var o = n(this), i = o.data("bs.button"), r = "object" == typeof t && t;
i || o.data("bs.button", i = new e(this, r)), "toggle" == t ? i.toggle() : t && i.setState(t);
});
}, n.fn.button.Constructor = e, n.fn.button.noConflict = function() {
return n.fn.button = t, this;
}, n(document).on("click.bs.button.data-api", "[data-toggle^=button]", function(e) {
var t = n(e.target);
t.hasClass("btn") || (t = t.closest(".btn")), t.button("toggle"), e.preventDefault();
});
}(window.jQuery), +function(n) {
var e = function(e, t) {
this.$element = n(e), this.$indicators = this.$element.find(".carousel-indicators"),
this.options = t, this.paused = this.sliding = this.interval = this.$active = this.$items = null,
"hover" == this.options.pause && this.$element.on("mouseenter", n.proxy(this.pause, this)).on("mouseleave", n.proxy(this.cycle, this));
};
e.DEFAULTS = {
interval: 5e3,
pause: "hover",
wrap: !0
}, e.prototype.cycle = function(e) {
return e || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(n.proxy(this.next, this), this.options.interval)),
this;
}, e.prototype.getActiveIndex = function() {
return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(),
this.$items.index(this.$active);
}, e.prototype.to = function(e) {
var t = this, o = this.getActiveIndex();
return e > this.$items.length - 1 || 0 > e ? void 0 : this.sliding ? this.$element.one("slid", function() {
t.to(e);
}) : o == e ? this.pause().cycle() : this.slide(e > o ? "next" : "prev", n(this.$items[e]));
}, e.prototype.pause = function(e) {
return e || (this.paused = !0), this.$element.find(".next, .prev").length && n.support.transition.end && (this.$element.trigger(n.support.transition.end),
this.cycle(!0)), this.interval = clearInterval(this.interval), this;
}, e.prototype.next = function() {
return this.sliding ? void 0 : this.slide("next");
}, e.prototype.prev = function() {
return this.sliding ? void 0 : this.slide("prev");
}, e.prototype.slide = function(e, t) {
var o = this.$element.find(".item.active"), i = t || o[e](), r = this.interval, a = "next" == e ? "left" : "right", s = "next" == e ? "first" : "last", l = this;
if (!i.length) {
if (!this.options.wrap) return;
i = this.$element.find(".item")[s]();
}
this.sliding = !0, r && this.pause();
var c = n.Event("slide.bs.carousel", {
relatedTarget: i[0],
direction: a
});
if (!i.hasClass("active")) {
if (this.$indicators.length && (this.$indicators.find(".active").removeClass("active"),
this.$element.one("slid", function() {
var e = n(l.$indicators.children()[l.getActiveIndex()]);
e && e.addClass("active");
})), n.support.transition && this.$element.hasClass("slide")) {
if (this.$element.trigger(c), c.isDefaultPrevented()) return;
i.addClass(e), i[0].offsetWidth, o.addClass(a), i.addClass(a), o.one(n.support.transition.end, function() {
i.removeClass([ e, a ].join(" ")).addClass("active"), o.removeClass([ "active", a ].join(" ")),
l.sliding = !1, setTimeout(function() {
l.$element.trigger("slid");
}, 0);
}).emulateTransitionEnd(600);
} else {
if (this.$element.trigger(c), c.isDefaultPrevented()) return;
o.removeClass("active"), i.addClass("active"), this.sliding = !1, this.$element.trigger("slid");
}
return r && this.cycle(), this;
}
};
var t = n.fn.carousel;
n.fn.carousel = function(t) {
return this.each(function() {
var o = n(this), i = o.data("bs.carousel"), r = n.extend({}, e.DEFAULTS, o.data(), "object" == typeof t && t), a = "string" == typeof t ? t : r.slide;
i || o.data("bs.carousel", i = new e(this, r)), "number" == typeof t ? i.to(t) : a ? i[a]() : r.interval && i.pause().cycle();
});
}, n.fn.carousel.Constructor = e, n.fn.carousel.noConflict = function() {
return n.fn.carousel = t, this;
}, n(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function(e) {
var t, o = n(this), i = n(o.attr("data-target") || (t = o.attr("href")) && t.replace(/.*(?=#[^\s]+$)/, "")), r = n.extend({}, i.data(), o.data()), a = o.attr("data-slide-to");
a && (r.interval = !1), i.carousel(r), (a = o.attr("data-slide-to")) && i.data("bs.carousel").to(a),
e.preventDefault();
}), n(window).on("load", function() {
n('[data-ride="carousel"]').each(function() {
var e = n(this);
e.carousel(e.data());
});
});
}(window.jQuery), +function(n) {
var e = function(t, o) {
this.$element = n(t), this.options = n.extend({}, e.DEFAULTS, o), this.transitioning = null,
this.options.parent && (this.$parent = n(this.options.parent)), this.options.toggle && this.toggle();
};
e.DEFAULTS = {
toggle: !0
}, e.prototype.dimension = function() {
var n = this.$element.hasClass("width");
return n ? "width" : "height";
}, e.prototype.show = function() {
if (!this.transitioning && !this.$element.hasClass("in")) {
var e = n.Event("show.bs.collapse");
if (this.$element.trigger(e), !e.isDefaultPrevented()) {
var t = this.$parent && this.$parent.find("> .panel > .in");
if (t && t.length) {
var o = t.data("bs.collapse");
if (o && o.transitioning) return;
t.collapse("hide"), o || t.data("bs.collapse", null);
}
var i = this.dimension();
this.$element.removeClass("collapse").addClass("collapsing")[i](0), this.transitioning = 1;
var r = function() {
this.$element.removeClass("collapsing").addClass("in")[i]("auto"), this.transitioning = 0,
this.$element.trigger("shown.bs.collapse");
};
if (!n.support.transition) return r.call(this);
var a = n.camelCase([ "scroll", i ].join("-"));
this.$element.one(n.support.transition.end, n.proxy(r, this)).emulateTransitionEnd(350)[i](this.$element[0][a]);
}
}
}, e.prototype.hide = function() {
if (!this.transitioning && this.$element.hasClass("in")) {
var e = n.Event("hide.bs.collapse");
if (this.$element.trigger(e), !e.isDefaultPrevented()) {
var t = this.dimension();
this.$element[t](this.$element[t]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),
this.transitioning = 1;
var o = function() {
this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse");
};
return n.support.transition ? (this.$element[t](0).one(n.support.transition.end, n.proxy(o, this)).emulateTransitionEnd(350),
void 0) : o.call(this);
}
}
}, e.prototype.toggle = function() {
this[this.$element.hasClass("in") ? "hide" : "show"]();
};
var t = n.fn.collapse;
n.fn.collapse = function(t) {
return this.each(function() {
var o = n(this), i = o.data("bs.collapse"), r = n.extend({}, e.DEFAULTS, o.data(), "object" == typeof t && t);
i || o.data("bs.collapse", i = new e(this, r)), "string" == typeof t && i[t]();
});
}, n.fn.collapse.Constructor = e, n.fn.collapse.noConflict = function() {
return n.fn.collapse = t, this;
}, n(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function(e) {
var t, o = n(this), i = o.attr("data-target") || e.preventDefault() || (t = o.attr("href")) && t.replace(/.*(?=#[^\s]+$)/, ""), r = n(i), a = r.data("bs.collapse"), s = a ? "toggle" : o.data(), l = o.attr("data-parent"), c = l && n(l);
a && a.transitioning || (c && c.find('[data-toggle=collapse][data-parent="' + l + '"]').not(o).addClass("collapsed"),
o[r.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), r.collapse(s);
});
}(window.jQuery), +function(n) {
function e() {
n(o).remove(), n(i).each(function(e) {
var o = t(n(this));
o.hasClass("open") && (o.trigger(e = n.Event("hide.bs.dropdown")), e.isDefaultPrevented() || o.removeClass("open").trigger("hidden.bs.dropdown"));
});
}
function t(e) {
var t = e.attr("data-target");
t || (t = e.attr("href"), t = t && /#/.test(t) && t.replace(/.*(?=#[^\s]*$)/, ""));
var o = t && n(t);
return o && o.length ? o : e.parent();
}
var o = ".dropdown-backdrop", i = "[data-toggle=dropdown]", r = function(e) {
n(e).on("click.bs.dropdown", this.toggle);
};
r.prototype.toggle = function(o) {
var i = n(this);
if (!i.is(".disabled, :disabled")) {
var r = t(i), a = r.hasClass("open");
if (e(), !a) {
if ("ontouchstart" in document.documentElement && !r.closest(".navbar-nav").length && n('<div class="dropdown-backdrop"/>').insertAfter(n(this)).on("click", e),
r.trigger(o = n.Event("show.bs.dropdown")), o.isDefaultPrevented()) return;
r.toggleClass("open").trigger("shown.bs.dropdown"), i.focus();
}
return !1;
}
}, r.prototype.keydown = function(e) {
if (/(38|40|27)/.test(e.keyCode)) {
var o = n(this);
if (e.preventDefault(), e.stopPropagation(), !o.is(".disabled, :disabled")) {
var r = t(o), a = r.hasClass("open");
if (!a || a && 27 == e.keyCode) return 27 == e.which && r.find(i).focus(), o.click();
var s = n("[role=menu] li:not(.divider):visible a", r);
if (s.length) {
var l = s.index(s.filter(":focus"));
38 == e.keyCode && l > 0 && l--, 40 == e.keyCode && l < s.length - 1 && l++, ~l || (l = 0),
s.eq(l).focus();
}
}
}
};
var a = n.fn.dropdown;
n.fn.dropdown = function(e) {
return this.each(function() {
var t = n(this), o = t.data("dropdown");
o || t.data("dropdown", o = new r(this)), "string" == typeof e && o[e].call(t);
});
}, n.fn.dropdown.Constructor = r, n.fn.dropdown.noConflict = function() {
return n.fn.dropdown = a, this;
}, n(document).on("click.bs.dropdown.data-api", e).on("click.bs.dropdown.data-api", ".dropdown form", function(n) {
n.stopPropagation();
}).on("click.bs.dropdown.data-api", i, r.prototype.toggle).on("keydown.bs.dropdown.data-api", i + ", [role=menu]", r.prototype.keydown);
}(window.jQuery), +function(n) {
var e = function(e, t) {
this.options = t, this.$element = n(e), this.$backdrop = this.isShown = null, this.options.remote && this.$element.load(this.options.remote);
};
e.DEFAULTS = {
backdrop: !0,
keyboard: !0,
show: !0
}, e.prototype.toggle = function(n) {
return this[this.isShown ? "hide" : "show"](n);
}, e.prototype.show = function(e) {
var t = this, o = n.Event("show.bs.modal", {
relatedTarget: e
});
this.$element.trigger(o), this.isShown || o.isDefaultPrevented() || (this.isShown = !0,
this.escape(), this.$element.on("click.dismiss.modal", '[data-dismiss="modal"]', n.proxy(this.hide, this)),
this.backdrop(function() {
var o = n.support.transition && t.$element.hasClass("fade");
t.$element.parent().length || t.$element.appendTo(document.body), t.$element.show(),
o && t.$element[0].offsetWidth, t.$element.addClass("in").attr("aria-hidden", !1),
t.enforceFocus();
var i = n.Event("shown.bs.modal", {
relatedTarget: e
});
o ? t.$element.find(".modal-dialog").one(n.support.transition.end, function() {
t.$element.focus().trigger(i);
}).emulateTransitionEnd(300) : t.$element.focus().trigger(i);
}));
}, e.prototype.hide = function(e) {
e && e.preventDefault(), e = n.Event("hide.bs.modal"), this.$element.trigger(e),
this.isShown && !e.isDefaultPrevented() && (this.isShown = !1, this.escape(), n(document).off("focusin.bs.modal"),
this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.modal"),
n.support.transition && this.$element.hasClass("fade") ? this.$element.one(n.support.transition.end, n.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal());
}, e.prototype.enforceFocus = function() {
n(document).off("focusin.bs.modal").on("focusin.bs.modal", n.proxy(function(n) {
this.$element[0] === n.target || this.$element.has(n.target).length || this.$element.focus();
}, this));
}, e.prototype.escape = function() {
this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", n.proxy(function(n) {
27 == n.which && this.hide();
}, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal");
}, e.prototype.hideModal = function() {
var n = this;
this.$element.hide(), this.backdrop(function() {
n.removeBackdrop(), n.$element.trigger("hidden.bs.modal");
});
}, e.prototype.removeBackdrop = function() {
this.$backdrop && this.$backdrop.remove(), this.$backdrop = null;
}, e.prototype.backdrop = function(e) {
var t = this.$element.hasClass("fade") ? "fade" : "";
if (this.isShown && this.options.backdrop) {
var o = n.support.transition && t;
if (this.$backdrop = n('<div class="modal-backdrop ' + t + '" />').appendTo(document.body),
this.$element.on("click.dismiss.modal", n.proxy(function(n) {
n.target === n.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this));
}, this)), o && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !e) return;
o ? this.$backdrop.one(n.support.transition.end, e).emulateTransitionEnd(150) : e();
} else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), n.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(n.support.transition.end, e).emulateTransitionEnd(150) : e()) : e && e();
};
var t = n.fn.modal;
n.fn.modal = function(t, o) {
return this.each(function() {
var i = n(this), r = i.data("bs.modal"), a = n.extend({}, e.DEFAULTS, i.data(), "object" == typeof t && t);
r || i.data("bs.modal", r = new e(this, a)), "string" == typeof t ? r[t](o) : a.show && r.show(o);
});
}, n.fn.modal.Constructor = e, n.fn.modal.noConflict = function() {
return n.fn.modal = t, this;
}, n(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(e) {
var t = n(this), o = t.attr("href"), i = n(t.attr("data-target") || o && o.replace(/.*(?=#[^\s]+$)/, "")), r = i.data("modal") ? "toggle" : n.extend({
remote: !/#/.test(o) && o
}, i.data(), t.data());
e.preventDefault(), i.modal(r, this).one("hide", function() {
t.is(":visible") && t.focus();
});
}), n(document).on("show.bs.modal", ".modal", function() {
n(document.body).addClass("modal-open");
}).on("hidden.bs.modal", ".modal", function() {
n(document.body).removeClass("modal-open");
});
}(window.jQuery), +function(n) {
var e = function(n, e) {
this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null,
this.init("tooltip", n, e);
};
e.DEFAULTS = {
animation: !0,
placement: "top",
selector: !1,
template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
container: !1
}, e.prototype.init = function(e, t, o) {
this.enabled = !0, this.type = e, this.$element = n(t), this.options = this.getOptions(o);
for (var i = this.options.trigger.split(" "), r = i.length; r--; ) {
var a = i[r];
if ("click" == a) this.$element.on("click." + this.type, this.options.selector, n.proxy(this.toggle, this)); else if ("manual" != a) {
var s = "hover" == a ? "mouseenter" : "focus", l = "hover" == a ? "mouseleave" : "blur";
this.$element.on(s + "." + this.type, this.options.selector, n.proxy(this.enter, this)),
this.$element.on(l + "." + this.type, this.options.selector, n.proxy(this.leave, this));
}
}
this.options.selector ? this._options = n.extend({}, this.options, {
trigger: "manual",
selector: ""
}) : this.fixTitle();
}, e.prototype.getDefaults = function() {
return e.DEFAULTS;
}, e.prototype.getOptions = function(e) {
return e = n.extend({}, this.getDefaults(), this.$element.data(), e), e.delay && "number" == typeof e.delay && (e.delay = {
show: e.delay,
hide: e.delay
}), e;
}, e.prototype.getDelegateOptions = function() {
var e = {}, t = this.getDefaults();
return this._options && n.each(this._options, function(n, o) {
t[n] != o && (e[n] = o);
}), e;
}, e.prototype.enter = function(e) {
var t = e instanceof this.constructor ? e : n(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
return clearTimeout(t.timeout), t.options.delay && t.options.delay.show ? (t.hoverState = "in",
t.timeout = setTimeout(function() {
"in" == t.hoverState && t.show();
}, t.options.delay.show), void 0) : t.show();
}, e.prototype.leave = function(e) {
var t = e instanceof this.constructor ? e : n(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
return clearTimeout(t.timeout), t.options.delay && t.options.delay.hide ? (t.hoverState = "out",
t.timeout = setTimeout(function() {
"out" == t.hoverState && t.hide();
}, t.options.delay.hide), void 0) : t.hide();
}, e.prototype.show = function() {
var e = n.Event("show.bs." + this.type);
if (this.hasContent() && this.enabled) {
if (this.$element.trigger(e), e.isDefaultPrevented()) return;
var t = this.tip();
this.setContent(), this.options.animation && t.addClass("fade");
var o = "function" == typeof this.options.placement ? this.options.placement.call(this, t[0], this.$element[0]) : this.options.placement, i = /\s?auto?\s?/i, r = i.test(o);
r && (o = o.replace(i, "") || "top"), t.detach().css({
top: 0,
left: 0,
display: "block"
}).addClass(o), this.options.container ? t.appendTo(this.options.container) : t.insertAfter(this.$element);
var a = this.getPosition(), s = t[0].offsetWidth, l = t[0].offsetHeight;
if (r) {
var c = this.$element.parent(), d = o, p = document.documentElement.scrollTop || document.body.scrollTop, u = "body" == this.options.container ? window.innerWidth : c.outerWidth(), f = "body" == this.options.container ? window.innerHeight : c.outerHeight(), h = "body" == this.options.container ? 0 : c.offset().left;
o = "bottom" == o && a.top + a.height + l - p > f ? "top" : "top" == o && a.top - p - l < 0 ? "bottom" : "right" == o && a.right + s > u ? "left" : "left" == o && a.left - s < h ? "right" : o,
t.removeClass(d).addClass(o);
}
var g = this.getCalculatedOffset(o, a, s, l);
this.applyPlacement(g, o), this.$element.trigger("shown.bs." + this.type);
}
}, e.prototype.applyPlacement = function(n, e) {
var t, o = this.tip(), i = o[0].offsetWidth, r = o[0].offsetHeight, a = parseInt(o.css("margin-top"), 10), s = parseInt(o.css("margin-left"), 10);
isNaN(a) && (a = 0), isNaN(s) && (s = 0), n.top = n.top + a, n.left = n.left + s,
o.offset(n).addClass("in");
var l = o[0].offsetWidth, c = o[0].offsetHeight;
if ("top" == e && c != r && (t = !0, n.top = n.top + r - c), /bottom|top/.test(e)) {
var d = 0;
n.left < 0 && (d = -2 * n.left, n.left = 0, o.offset(n), l = o[0].offsetWidth, c = o[0].offsetHeight),
this.replaceArrow(d - i + l, l, "left");
} else this.replaceArrow(c - r, c, "top");
t && o.offset(n);
}, e.prototype.replaceArrow = function(n, e, t) {
this.arrow().css(t, n ? 50 * (1 - n / e) + "%" : "");
}, e.prototype.setContent = function() {
var n = this.tip(), e = this.getTitle();
n.find(".tooltip-inner")[this.options.html ? "html" : "text"](e), n.removeClass("fade in top bottom left right");
}, e.prototype.hide = function() {
function e() {
t.detach();
}
var t = this.tip(), o = n.Event("hide.bs." + this.type);
return this.$element.trigger(o), o.isDefaultPrevented() ? void 0 : (t.removeClass("in"),
n.support.transition && this.$tip.hasClass("fade") ? t.one(n.support.transition.end, e).emulateTransitionEnd(150) : e(),
this.$element.trigger("hidden.bs." + this.type), this);
}, e.prototype.fixTitle = function() {
var n = this.$element;
(n.attr("title") || "string" != typeof n.attr("data-original-title")) && n.attr("data-original-title", n.attr("title") || "").attr("title", "");
}, e.prototype.hasContent = function() {
return this.getTitle();
}, e.prototype.getPosition = function() {
var e = this.$element[0];
return n.extend({}, "function" == typeof e.getBoundingClientRect ? e.getBoundingClientRect() : {
width: e.offsetWidth,
height: e.offsetHeight
}, this.$element.offset());
}, e.prototype.getCalculatedOffset = function(n, e, t, o) {
return "bottom" == n ? {
top: e.top + e.height,
left: e.left + e.width / 2 - t / 2
} : "top" == n ? {
top: e.top - o,
left: e.left + e.width / 2 - t / 2
} : "left" == n ? {
top: e.top + e.height / 2 - o / 2,
left: e.left - t
} : {
top: e.top + e.height / 2 - o / 2,
left: e.left + e.width
};
}, e.prototype.getTitle = function() {
var n, e = this.$element, t = this.options;
return n = e.attr("data-original-title") || ("function" == typeof t.title ? t.title.call(e[0]) : t.title);
}, e.prototype.tip = function() {
return this.$tip = this.$tip || n(this.options.template);
}, e.prototype.arrow = function() {
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow");
}, e.prototype.validate = function() {
this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null);
}, e.prototype.enable = function() {
this.enabled = !0;
}, e.prototype.disable = function() {
this.enabled = !1;
}, e.prototype.toggleEnabled = function() {
this.enabled = !this.enabled;
}, e.prototype.toggle = function(e) {
var t = e ? n(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this;
t.tip().hasClass("in") ? t.leave(t) : t.enter(t);
}, e.prototype.destroy = function() {
this.hide().$element.off("." + this.type).removeData("bs." + this.type);
};
var t = n.fn.tooltip;
n.fn.tooltip = function(t) {
return this.each(function() {
var o = n(this), i = o.data("bs.tooltip"), r = "object" == typeof t && t;
i || o.data("bs.tooltip", i = new e(this, r)), "string" == typeof t && i[t]();
});
}, n.fn.tooltip.Constructor = e, n.fn.tooltip.noConflict = function() {
return n.fn.tooltip = t, this;
};
}(window.jQuery), +function(n) {
var e = function(n, e) {
this.init("popover", n, e);
};
if (!n.fn.tooltip) throw new Error("Popover requires tooltip.js");
e.DEFAULTS = n.extend({}, n.fn.tooltip.Constructor.DEFAULTS, {
placement: "right",
trigger: "click",
content: "",
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
}), e.prototype = n.extend({}, n.fn.tooltip.Constructor.prototype), e.prototype.constructor = e,
e.prototype.getDefaults = function() {
return e.DEFAULTS;
}, e.prototype.setContent = function() {
var n = this.tip(), e = this.getTitle(), t = this.getContent();
n.find(".popover-title")[this.options.html ? "html" : "text"](e), n.find(".popover-content")[this.options.html ? "html" : "text"](t),
n.removeClass("fade top bottom left right in"), n.find(".popover-title").html() || n.find(".popover-title").hide();
}, e.prototype.hasContent = function() {
return this.getTitle() || this.getContent();
}, e.prototype.getContent = function() {
var n = this.$element, e = this.options;
return n.attr("data-content") || ("function" == typeof e.content ? e.content.call(n[0]) : e.content);
}, e.prototype.arrow = function() {
return this.$arrow = this.$arrow || this.tip().find(".arrow");
}, e.prototype.tip = function() {
return this.$tip || (this.$tip = n(this.options.template)), this.$tip;
};
var t = n.fn.popover;
n.fn.popover = function(t) {
return this.each(function() {
var o = n(this), i = o.data("bs.popover"), r = "object" == typeof t && t;
i || o.data("bs.popover", i = new e(this, r)), "string" == typeof t && i[t]();
});
}, n.fn.popover.Constructor = e, n.fn.popover.noConflict = function() {
return n.fn.popover = t, this;
};
}(window.jQuery), +function(n) {
function e(t, o) {
var i, r = n.proxy(this.process, this);
this.$element = n(t).is("body") ? n(window) : n(t), this.$body = n("body"), this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", r),
this.options = n.extend({}, e.DEFAULTS, o), this.selector = (this.options.target || (i = n(t).attr("href")) && i.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a",
this.offsets = n([]), this.targets = n([]), this.activeTarget = null, this.refresh(),
this.process();
}
e.DEFAULTS = {
offset: 10
}, e.prototype.refresh = function() {
var e = this.$element[0] == window ? "offset" : "position";
this.offsets = n([]), this.targets = n([]);
var t = this;
this.$body.find(this.selector).map(function() {
var o = n(this), i = o.data("target") || o.attr("href"), r = /^#\w/.test(i) && n(i);
return r && r.length && [ [ r[e]().top + (!n.isWindow(t.$scrollElement.get(0)) && t.$scrollElement.scrollTop()), i ] ] || null;
}).sort(function(n, e) {
return n[0] - e[0];
}).each(function() {
t.offsets.push(this[0]), t.targets.push(this[1]);
});
}, e.prototype.process = function() {
var n, e = this.$scrollElement.scrollTop() + this.options.offset, t = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, o = t - this.$scrollElement.height(), i = this.offsets, r = this.targets, a = this.activeTarget;
if (e >= o) return a != (n = r.last()[0]) && this.activate(n);
for (n = i.length; n--; ) a != r[n] && e >= i[n] && (!i[n + 1] || e <= i[n + 1]) && this.activate(r[n]);
}, e.prototype.activate = function(e) {
this.activeTarget = e, n(this.selector).parents(".active").removeClass("active");
var t = this.selector + '[data-target="' + e + '"],' + this.selector + '[href="' + e + '"]', o = n(t).parents("li").addClass("active");
o.parent(".dropdown-menu").length && (o = o.closest("li.dropdown").addClass("active")),
o.trigger("activate");
};
var t = n.fn.scrollspy;
n.fn.scrollspy = function(t) {
return this.each(function() {
var o = n(this), i = o.data("bs.scrollspy"), r = "object" == typeof t && t;
i || o.data("bs.scrollspy", i = new e(this, r)), "string" == typeof t && i[t]();
});
}, n.fn.scrollspy.Constructor = e, n.fn.scrollspy.noConflict = function() {
return n.fn.scrollspy = t, this;
}, n(window).on("load", function() {
n('[data-spy="scroll"]').each(function() {
var e = n(this);
e.scrollspy(e.data());
});
});
}(window.jQuery), +function(n) {
var e = function(e) {
this.element = n(e);
};
e.prototype.show = function() {
var e = this.element, t = e.closest("ul:not(.dropdown-menu)"), o = e.attr("data-target");
if (o || (o = e.attr("href"), o = o && o.replace(/.*(?=#[^\s]*$)/, "")), !e.parent("li").hasClass("active")) {
var i = t.find(".active:last a")[0], r = n.Event("show.bs.tab", {
relatedTarget: i
});
if (e.trigger(r), !r.isDefaultPrevented()) {
var a = n(o);
this.activate(e.parent("li"), t), this.activate(a, a.parent(), function() {
e.trigger({
type: "shown.bs.tab",
relatedTarget: i
});
});
}
}
}, e.prototype.activate = function(e, t, o) {
function i() {
r.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),
e.addClass("active"), a ? (e[0].offsetWidth, e.addClass("in")) : e.removeClass("fade"),
e.parent(".dropdown-menu") && e.closest("li.dropdown").addClass("active"), o && o();
}
var r = t.find("> .active"), a = o && n.support.transition && r.hasClass("fade");
a ? r.one(n.support.transition.end, i).emulateTransitionEnd(150) : i(), r.removeClass("in");
};
var t = n.fn.tab;
n.fn.tab = function(t) {
return this.each(function() {
var o = n(this), i = o.data("bs.tab");
i || o.data("bs.tab", i = new e(this)), "string" == typeof t && i[t]();
});
}, n.fn.tab.Constructor = e, n.fn.tab.noConflict = function() {
return n.fn.tab = t, this;
}, n(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(e) {
e.preventDefault(), n(this).tab("show");
});
}(window.jQuery), +function(n) {
var e = function(t, o) {
this.options = n.extend({}, e.DEFAULTS, o), this.$window = n(window).on("scroll.bs.affix.data-api", n.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", n.proxy(this.checkPositionWithEventLoop, this)),
this.$element = n(t), this.affixed = this.unpin = null, this.checkPosition();
};
e.RESET = "affix affix-top affix-bottom", e.DEFAULTS = {
offset: 0
}, e.prototype.checkPositionWithEventLoop = function() {
setTimeout(n.proxy(this.checkPosition, this), 1);
}, e.prototype.checkPosition = function() {
if (this.$element.is(":visible")) {
var t = n(document).height(), o = this.$window.scrollTop(), i = this.$element.offset(), r = this.options.offset, a = r.top, s = r.bottom;
"object" != typeof r && (s = a = r), "function" == typeof a && (a = r.top()), "function" == typeof s && (s = r.bottom());
var l = null != this.unpin && o + this.unpin <= i.top ? !1 : null != s && i.top + this.$element.height() >= t - s ? "bottom" : null != a && a >= o ? "top" : !1;
this.affixed !== l && (this.unpin && this.$element.css("top", ""), this.affixed = l,
this.unpin = "bottom" == l ? i.top - o : null, this.$element.removeClass(e.RESET).addClass("affix" + (l ? "-" + l : "")),
"bottom" == l && this.$element.offset({
top: document.body.offsetHeight - s - this.$element.height()
}));
}
};
var t = n.fn.affix;
n.fn.affix = function(t) {
return this.each(function() {
var o = n(this), i = o.data("bs.affix"), r = "object" == typeof t && t;
i || o.data("bs.affix", i = new e(this, r)), "string" == typeof t && i[t]();
});
}, n.fn.affix.Constructor = e, n.fn.affix.noConflict = function() {
return n.fn.affix = t, this;
}, n(window).on("load", function() {
n('[data-spy="affix"]').each(function() {
var e = n(this), t = e.data();
t.offset = t.offset || {}, t.offsetBottom && (t.offset.bottom = t.offsetBottom),
t.offsetTop && (t.offset.top = t.offsetTop), e.affix(t);
});
});
}(window.jQuery), define("libs/bootstrap/bootstrap", function() {}), function(n) {
var e = "waitForImages";
n.waitForImages = {
hasImageProperties: [ "backgroundImage", "listStyleImage", "borderImage", "borderCornerImage" ]
}, n.expr[":"].uncached = function(e) {
if (!n(e).is('img[src!=""]')) return !1;
var t = new Image();
return t.src = e.src, !t.complete;
}, n.fn.waitForImages = function(t, o, i) {
var r = 0, a = 0;
if (n.isPlainObject(arguments[0]) && (i = arguments[0].waitForAll, o = arguments[0].each,
t = arguments[0].finished), t = t || n.noop, o = o || n.noop, i = !!i, !n.isFunction(t) || !n.isFunction(o)) throw new TypeError("An invalid callback was supplied.");
return this.each(function() {
var s = n(this), l = [], c = n.waitForImages.hasImageProperties || [], d = /url\(\s*(['"]?)(.*?)\1\s*\)/g;
i ? s.find("*").andSelf().each(function() {
var e = n(this);
e.is("img:uncached") && l.push({
src: e.attr("src"),
element: e[0]
}), n.each(c, function(n, t) {
var o, i = e.css(t);
if (!i) return !0;
for (;o = d.exec(i); ) l.push({
src: o[2],
element: e[0]
});
});
}) : s.find("img:uncached").each(function() {
l.push({
src: this.src,
element: this
});
}), r = l.length, a = 0, 0 === r && t.call(s[0]), n.each(l, function(i, l) {
var c = new Image();
n(c).bind("load." + e + " error." + e, function(n) {
return a++, o.call(l.element, a, r, "load" == n.type), a == r ? (t.call(s[0]), !1) : void 0;
}), c.src = l.src;
});
});
};
}(jQuery), define("libs/jquery.waitforimages", function() {}), define("eventMgr", [ "jquery", "underscore", "crel", "utils", "classes/Extension", "settings", "text!html/settingsExtensionsAccordion.html", "extensions/partialRendering", "extensions/userCustom", "extensions/googleAnalytics", "extensions/dialogAbout", "extensions/dialogManagePublication", "extensions/dialogManageSynchronization", "extensions/dialogOpenHarddrive", "extensions/documentTitle", "extensions/documentSelector", "extensions/documentPanel", "extensions/documentManager", "extensions/workingIndicator", "extensions/notifications", "extensions/markdownExtra", "extensions/toc", "extensions/mathJax", "extensions/emailConverter", "extensions/scrollLink", "extensions/buttonSync", "extensions/buttonPublish", "extensions/buttonShare", "extensions/buttonStat", "extensions/buttonHtmlCode", "extensions/buttonMarkdownSyntax", "extensions/buttonViewer", "libs/bootstrap/bootstrap", "libs/jquery.waitforimages" ], function(n, e, t, o, i, r, a) {
function s(n) {
return e.chain(p).map(function(e) {
return e.enabled && e[n];
}).compact().value();
}
function l(n) {
return u[n] = s(n), function() {
logger.log(n, arguments);
var t = arguments;
e.each(u[n], function(n) {
try {
n.apply(null, t);
} catch (e) {
console.error(e);
}
});
};
}
function c(n) {
d[n] = l(n);
}
var d = {}, p = e.chain(arguments).map(function(n) {
return n instanceof i && n;
}).compact().value();
extensionSettings = r.extensionSettings || {}, e.each(p, function(n) {
n.config = e.extend({}, n.defaultConfig, extensionSettings[n.extensionId]), n.enabled = viewerMode === !0 && n.disableInViewer === !0 ? !1 : !n.isOptional || void 0 === n.config.enabled || n.config.enabled === !0;
});
var u = {};
d.addListener = function(n, e) {
try {
u[n].push(e);
} catch (t) {
console.error("No event listener called " + n);
}
}, l("onInit")(), d.onLoadSettings = function() {
logger.log("onLoadSettings"), e.each(p, function(n) {
o.setInputChecked("#input-enable-extension-" + n.extensionId, n.enabled === !0);
var e = n.onLoadSettings;
e && e();
});
}, d.onSaveSettings = function(n, t) {
logger.log("onSaveSettings"), e.each(p, function(i) {
var r = e.extend({}, i.defaultConfig);
r.enabled = o.getInputChecked("#input-enable-extension-" + i.extensionId);
var a = i.onSaveSettings;
a && a(r, t), n[i.extensionId] = r;
});
}, c("onMessage"), c("onError"), c("onOfflineChanged"), c("onUserActive"), c("onAsyncRunning", !0),
c("onPeriodicRun", !0), c("onFileMgrCreated"), c("onSynchronizerCreated"), c("onPublisherCreated"),
c("onEventMgrCreated"), c("onFileCreated"), c("onFileDeleted"), c("onFileSelected"),
c("onFileOpen"), c("onFileClosed"), c("onContentChanged"), c("onTitleChanged"),
c("onFoldersChanged"), c("onSyncRunning"), c("onSyncSuccess"), c("onSyncImportSuccess"),
c("onSyncExportSuccess"), c("onSyncRemoved"), c("onPublishRunning"), c("onPublishSuccess"),
c("onNewPublishSuccess"), c("onPublishRemoved"), c("onLayoutConfigure"), c("onLayoutCreated"),
c("onEditorConfigure"), c("onSectionsCreated");
var f = l("onPreviewFinished"), h = s("onAsyncPreview"), g = h.length + 1, b = void 0, m = void 0;
d.onAsyncPreview = function() {
function n() {
++t === g && (logger.log("Preview time: " + (new Date() - d.previewStartTime)),
e.defer(function() {
var n = "";
e.each(b.children, function(e) {
n += e.innerHTML;
}), f(o.trim(n));
}));
}
logger.log("onAsyncPreview"), logger.log("Conversion time: " + (new Date() - d.previewStartTime));
var t = 0;
m.waitForImages(n), e.each(h, function(e) {
e(n);
});
};
var v = l("onReady");
return d.onReady = function() {
function o(n) {
var o = t("div", {
"class": "btn-group"
}), i = n();
return e.isString(i) ? o.innerHTML = i : e.isElement(i) && o.appendChild(i), o;
}
if (b = document.getElementById("preview-contents"), m = n(b), viewerMode === !1) {
var i = e.chain(p).sortBy(function(n) {
return n.extensionName.toLowerCase();
}).reduce(function(n, t) {
return n + (t.settingsBlock ? e.template(a, {
extensionId: t.extensionId,
extensionName: t.extensionName,
isOptional: t.isOptional,
settingsBlock: t.settingsBlock
}) : "");
}, "").value();
document.querySelector(".accordion-extensions").innerHTML = i, logger.log("onCreateButton");
var r = s("onCreateButton"), l = document.createDocumentFragment();
e.each(r, function(n) {
l.appendChild(o(n));
}), document.getElementById("extension-buttons").appendChild(l), logger.log("onCreatePreviewButton");
var c = s("onCreatePreviewButton"), d = document.createDocumentFragment();
e.each(c, function(n) {
d.appendChild(o(n));
});
var u = document.querySelector(".extension-preview-buttons");
u.appendChild(d), u = n(u);
var f = u.width();
u.find(".btn-group").each(function() {
var e = n(this);
e.find(".dropdown-menu").css({
right: -f + e.width() + e.position().left
});
});
}
v();
}, d.onEventMgrCreated(d), d;
}), define("text!html/bodyIndex.html", [], function() {
return '<div class="navbar navbar-fixed-top ui-layout-north">\n <div class="navbar-inner">\n <div class="nav left-space"></div>\n <div class="nav right-space pull-right"></div>\n <ul class="nav">\n <li class="wmd-button-group1 btn-group"></li>\n </ul>\n <ul class="nav">\n <li class="wmd-button-group2 btn-group"></li>\n </ul>\n <ul class="nav">\n <li class="wmd-button-group3 btn-group"></li>\n </ul>\n <ul class="nav">\n <li class="wmd-button-group4 btn-group"></li>\n </ul>\n <ul class="nav pull-right">\n <li class="btn-group"><button\n class="btn btn-success action-create-file"\n title="New local document">\n <i class="icon-file"></i>\n </button>\n <button class="btn btn-success" title="Delete current document"\n data-toggle="modal" data-target=".modal-remove-file-confirm">\n <i class="icon-trash"></i>\n </button></li>\n </ul>\n <ul class="nav pull-right">\n <li id="extension-buttons"></li>\n </ul>\n <ul class="nav pull-right">\n <li><a class="btn btn-success file-title-navbar" href="#"\n title="Rename current document"> </a></li>\n <li><input type="text"\n class="col-lg-4 form-control hide input-file-title"\n placeholder="Document title" /></li>\n </ul>\n <ul class="nav pull-right">\n <li><i class="working-indicator icon-none"></i></li>\n </ul>\n </div>\n</div>\n<textarea id="wmd-input" class="ui-layout-center form-control"></textarea>\n<div class="ui-layout-east preview-container"></div>\n<div class="ui-layout-south preview-container"></div>\n<div id="wmd-button-bar" class="hide"></div>\n\n<div class="menu-panel collapse width">\n <button class="btn btn-success collapse-button" data-toggle="collapse"\n data-target=".menu-panel" title="Menu">\n <i class="icon-left-dir"></i> <img src="img/stackedit-64.png"\n width="32" height="32" />\n </button>\n <div class="panel-content">\n <div class="list-group">\n <a href="viewer.html" title="StackEdit Viewer"\n class="list-group-item"><i class="icon-resize-full"></i>\n StackEdit Viewer</a> <a href="#" data-toggle="collapse"\n data-target=".collapse-open-from" class="list-group-item"><i\n class="icon-hdd"></i> Open from...</a>\n <div class="sub-menu collapse collapse-open-from clearfix">\n <ul class="nav">\n <li><a data-toggle="modal"\n data-target=".modal-import-harddrive-markdown"\n class="action-reset-input" href="#">Import from hard drive</a></li>\n <li><a data-toggle="modal"\n data-target=".modal-import-harddrive-html"\n class="action-reset-input" href="#">Convert HTML to Markdown</a></li>\n </ul>\n </div>\n\n <a href="#" data-toggle="collapse" data-target=".collapse-save-as"\n class="list-group-item"><i class="icon-hdd"></i> Save as...</a>\n <div class="sub-menu collapse collapse-save-as clearfix">\n <ul class="nav">\n <li><a class="action-download-md" href="#">Save as\n Markdown</a></li>\n <li><a class="action-download-html" href="#">Save as HTML</a></li>\n <li><a class="action-download-template" href="#">Save\n using template</a></li>\n </ul>\n </div>\n </div>\n <div class=dropdown-header>SYNCHRONIZE</div>\n <div class="list-group">\n <a href="#" data-toggle="collapse"\n data-target=".collapse-sync-gdrive" class="list-group-item"><i\n class="icon-provider-gdrive"></i> Google Drive</a>\n <div class="sub-menu collapse collapse-sync-gdrive clearfix">\n <ul class="nav">\n <li><a href="#" class="action-sync-import-gdrive"\n data-toggle="collapse" data-target=".menu-panel">Import from\n Google Drive</a></li>\n <li><a href="#" class="action-sync-export-dialog-gdrive">Export\n to Google Drive</a></li>\n </ul>\n </div>\n <a href="#" data-toggle="collapse"\n data-target=".collapse-sync-dropbox" class="list-group-item"><i\n class="icon-provider-dropbox"></i> Dropbox</a>\n <div class="sub-menu collapse collapse-sync-dropbox clearfix">\n <ul class="nav">\n <li><a class="action-sync-import-dropbox" href="#"\n data-toggle="collapse" data-target=".menu-panel">Import from\n Dropbox</a></li>\n <li><a href="#" class="action-sync-export-dialog-dropbox">Export\n to Dropbox</a></li>\n </ul>\n </div>\n <a href="#" data-toggle="modal" data-target=".modal-manage-sync"\n class="action-reset-input list-group-item"><i\n class="icon-refresh"></i> Manage synchronization</a>\n </div>\n <div class=dropdown-header>PUBLISH</div>\n <div class="list-group">\n <a href="#" data-toggle="collapse" data-target=".collapse-publish-on"\n class="list-group-item"><i class="icon-share"></i> Publish on...</a>\n <div class="sub-menu collapse collapse-publish-on clearfix">\n <ul class="nav">\n </ul>\n </div>\n <a href="#" data-toggle="modal" data-target=".modal-manage-publish"\n class="action-reset-input list-group-item"><i class="icon-share"></i>\n Manage publication</a>\n </div>\n <ul class="nav">\n <li><a href="#" data-toggle="modal"\n data-target=".modal-settings"\n class="action-load-settings"><i class="icon-cog"></i>\n Settings</a></li>\n <li><a href="#" data-toggle="modal" data-target=".modal-about"><i class="icon-help-circled"></i> About</a></li>\n </ul>\n\n </div>\n</div>\n\n\n<div class="document-panel collapse width">\n <button class="btn btn-success collapse-button" data-toggle="collapse"\n data-target=".document-panel" title="Select document">\n <i class="icon-folder-open"></i> <i class="icon-right-dir"></i>\n </button>\n <div class="search-bar clearfix">\n <div class="input-group">\n <span class="input-group-addon"><i class="icon-search"></i></span><input\n type="text" class="form-control"></input>\n <button type="button" class="close" title="clear">&times;</button>\n <div class="input-group-btn">\n <a data-toggle="modal" data-target=".modal-document-manager"\n class="btn btn-link" title="Manage documents"><i\n class="icon-layers"></i></a>\n </div>\n </div>\n </div>\n <div class="panel-content">\n <div class="list-group document-list"></div>\n <div class="list-group document-list-filtered hide"></div>\n </div>\n</div>\n\n\n<div class="modal modal-document-manager">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Manage documents</h3>\n </div>\n <div class="modal-body">\n <div></div>\n <ul class="nav nav-pills document-list">\n <li class="pull-right dropdown"><a href="#"\n data-toggle="dropdown"><i class="icon-check"></i> Selection <b\n class="caret"></b></a>\n <ul class="dropdown-menu">\n <li><a href="#" class="action-select-all"><i\n class="icon-check"></i> Select all</a></li>\n <li><a href="#" class="action-unselect-all"><i\n class="icon-check-empty"></i> Unselect all</a></li>\n <li class="divider"></li>\n <li><a href="#" class="action-move-items"><i\n class="icon-forward"></i> Move to folder</a></li>\n <li><a href="#" class="action-delete-items"><i\n class="icon-trash"></i> Delete</a></li>\n </ul></li>\n <li class="pull-right"><a href="#"\n class="action-create-folder"> <i class="icon-folder"></i>\n Create folder\n </a></li>\n <li class="disabled"><a><i class="icon-file"></i> <span\n class="document-count"></span></a></li>\n <li class="disabled"><a><i class="icon-folder"></i> <span\n class="folder-count"></span></a></li>\n </ul>\n <div class="list-group document-list"></div>\n <p class="confirm-delete hide">The following documents will be\n deleted locally:</p>\n <p class="choose-folder hide">Please choose a destination\n folder:</p>\n <div class="list-group selected-document-list hide"></div>\n <div class="list-group select-folder-list hide"></div>\n </div>\n <div class="modal-footer">\n <a href="#"\n class="btn btn-default confirm-delete choose-folder action-cancel hide">Cancel</a>\n <a href="#"\n class="btn btn-primary confirm-delete action-delete-items-confirm hide">OK</a>\n <a href="#" class="btn btn-primary document-list"\n data-dismiss="modal">Close</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-insert-link">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Hyperlink</h3>\n </div>\n <div class="modal-body">\n <p>Please provide the link URL and an optional title:</p>\n <div class="input-group">\n <span class="input-group-addon"><i class="icon-globe"></i></span><input\n id="input-insert-link" type="text" class="col-lg-5 form-control"\n placeholder=\'http://example.com/ "optional title"\'></input>\n </div>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-insert-link"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-insert-image">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Image</h3>\n </div>\n <div class="modal-body">\n <p>Please provide the image URL and an optional title:</p>\n <div class="input-group">\n <span class="input-group-addon"><i class="icon-picture"></i></span><input\n id="input-insert-image" type="text" class="col-lg-5 form-control"\n placeholder=\'http://example.com/image.jpg "optional title"\'></input>\n </div>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default action-import-image-gplus"\n data-dismiss="modal"><i class="icon-provider-gplus"></i> Import\n from Google+</a> <a href="#" class="btn btn-default"\n data-dismiss="modal">Cancel</a> <a href="#"\n class="btn btn-primary action-insert-image" data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-import-image">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Google+ image import</h3>\n </div>\n <div class="modal-body">\n <div class="form-horizontal">\n <div class="form-group">\n <div class="col-lg-7">\n <img>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-import-image-title">Title (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-import-image-title"\n placeholder="Image title" class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-import-image-size">Size limit (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-import-image-size" placeholder="123"\n class="col-lg-3 form-control"> px\n </div>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-import-image"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-remove-file-confirm">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Delete</h3>\n </div>\n <div class="modal-body">\n <p>\n Are you sure you want to delete "<span class="file-title"></span>"?\n </p>\n <blockquote class="muted">\n <b>NOTE:</b> This will not delete the file on synchronized\n locations.\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-remove-file"\n data-dismiss="modal">Delete</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-import-harddrive-markdown">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Import from hard drive</h3>\n </div>\n <div class="modal-body">\n <p>Please select your Markdown files here:</p>\n <p>\n <input type="file" id="input-file-import-harddrive-markdown"\n multiple class="form-control" />\n </p>\n <p>Or drag and drop your Markdown files here:</p>\n <p id="dropzone-import-harddrive-markdown" class="drop-zone">Drop\n files here</p>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-import-harddrive-html">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Convert HTML to Markdown</h3>\n </div>\n <div class="modal-body">\n <p>Please select your HTML files here:</p>\n <p>\n <input type="file" id="input-file-import-harddrive-html" multiple\n class="form-control" />\n </p>\n <p>Or drag and drop your HTML files here:</p>\n <p id="dropzone-import-harddrive-html" class="drop-zone">Drop\n files here</p>\n <p>Or insert your HTML code here:</p>\n <textarea id="input-convert-html" class="form-control"></textarea>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Close</a> <a\n href="#" class="btn btn-primary action-convert-html"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-upload-gdrive">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Export to Google Drive</h3>\n </div>\n <div class="modal-body">\n <p>This will save "<span class="file-title"></span>" to your Google Drive\n account and keep it synchronized.</p>\n <div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-3 control-label"\n for="input-sync-export-gdrive-parentid">Folder ID\n (optional)</label>\n <div class="col-lg-8">\n <input type="text" id="input-sync-export-gdrive-parentid"\n placeholder="FolderID" class="form-control"> <span\n class="help-block"> If no folder ID is supplied, the file\n will be created in your root folder. </span>\n </div>\n </div>\n <div class="form-group">\n <div class="col-lg-3 control-label"></div>\n <div class="col-lg-8">\n <label> <input id="input-sync-export-gdrive-realtime"\n type="checkbox"> Create a real time collaborative\n document\n </label>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-3 control-label"\n for="input-sync-export-gdrive-fileid">Existing file ID\n (optional)</label>\n <div class="col-lg-8">\n <input type="text" id="input-sync-export-gdrive-fileid"\n placeholder="FileID" class="form-control"> <span\n class="help-block"> This will overwrite the existing file on the server. </span>\n </div>\n </div>\n </div>\n <blockquote class="muted">\n <b>NOTE:</b>\n <ul>\n <li>You can move or rename the file afterwards within Google\n Drive.</li>\n <li>Real time collaborative documents can\'t be open outside\n StackEdit.</li>\n <li>Real time collaborative documents can\'t have multiple\n synchronized locations.</li>\n </ul>\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" data-dismiss="modal"\n class="btn btn-primary action-sync-export-gdrive">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-upload-dropbox">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Export to Dropbox</h3>\n </div>\n <div class="modal-body">\n <p>This will save "<span class="file-title"></span>" to your Dropbox account\n and keep it synchronized.</p>\n <div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-3 control-label"\n for="input-sync-export-dropbox-path">File path</label>\n <div class="col-lg-8">\n <input type="text" id="input-sync-export-dropbox-path"\n placeholder="/path/to/My Document.md" class="form-control">\n <span class="help-block"> File path is composed of both\n folder and filename. </span>\n </div>\n </div>\n </div>\n <blockquote class="muted">\n <b>NOTE:</b>\n <ul>\n <li>Dropbox file path does not depend on document title.</li>\n <li>The title of your document will not be synchronized.</li>\n <li>Destination folder must exist.</li>\n <li>Any existing file at this location will be overwritten.</li>\n </ul>\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" data-dismiss="modal"\n class="btn btn-primary action-sync-export-dropbox">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-manage-sync">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Synchronization</h3>\n </div>\n <div class="modal-body">\n <p class="msg-sync-list hide">\n "<span class="file-title"></span>" is synchronized with the\n following location(s):\n </p>\n <div class="msg-sync-list sync-list hide"></div>\n <blockquote class="msg-sync-list hide muted">\n <b>NOTE:</b> Removing a synchronized location will not delete any\n file.\n </blockquote>\n <blockquote class="msg-no-sync hide muted">\n "<span class="file-title"></span>" is not synchronized yet. <br />\n <br /> <b>NOTE:</b> You can add synchronized locations by\n exporting your document using <i class="icon-provider-gdrive"></i>\n Google Drive or <i class="icon-provider-dropbox"></i> Dropbox\n sub-menu.\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-publish">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">\n Publish on <span class="publish-provider-name"></span>\n </h3>\n </div>\n <div class="modal-body">\n <div class="form-horizontal">\n <div class="form-group modal-publish-ssh">\n <label class="col-lg-4 control-label" for="input-publish-ssh-host">Host</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-ssh-host"\n placeholder="host.name.or.ip" class="form-control"> <span\n class="help-block"> Host must be accessible publicly,\n unless you are hosting your own <a target="_blank"\n href="https://github.com/benweet/stackedit-ssh-proxy">SSH\n proxy</a>.\n </span>\n </div>\n </div>\n <div class="form-group modal-publish-ssh">\n <label class="col-lg-4 control-label" for="input-publish-ssh-port">Port\n (optional)</label>\n <div class="col-lg-2">\n <input type="text" id="input-publish-ssh-port" placeholder="22"\n class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-ssh">\n <label class="col-lg-4 control-label"\n for="input-publish-ssh-username">Username</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-ssh-username"\n placeholder="username" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-ssh">\n <label class="col-lg-4 control-label"\n for="input-publish-ssh-password">Password</label>\n <div class="col-lg-7">\n <input type="password" id="input-publish-ssh-password"\n placeholder="password" class="form-control"> <span\n class="help-block"> Passwords are transmitted in clear,\n unless you are hosting your own <a target="_blank"\n href="https://github.com/benweet/stackedit-ssh-proxy">SSH\n proxy</a>.\n </span>\n </div>\n </div>\n <div class="form-group modal-publish-github">\n <label class="col-lg-4 control-label"\n for="input-publish-github-reponame">Repository</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-github-reponame"\n placeholder="repository-name" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-github">\n <label class="col-lg-4 control-label"\n for="input-publish-github-username">Username (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-github-username"\n placeholder="username" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-github">\n <label class="col-lg-4 control-label"\n for="input-publish-github-branch">Branch</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-github-branch"\n placeholder="branch-name" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-ssh modal-publish-github">\n <label class="col-lg-4 control-label"\n for="input-publish-file-path">File path</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-file-path"\n placeholder="path/to/file.md" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-gist">\n <label class="col-lg-4 control-label" for="input-publish-filename">Filename</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-filename"\n placeholder="filename" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-gist">\n <label class="col-lg-4 control-label" for="input-publish-gist-id">Existing\n ID (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-gist-id"\n placeholder="GistID" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-gist">\n <label class="col-lg-4 control-label"\n for="input-publish-gist-public">Public</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-publish-gist-public"\n checked="checked" />\n </div>\n </div>\n </div>\n <div class="form-group modal-publish-blogger">\n <label class="col-lg-4 control-label"\n for="input-publish-blogger-url">Blog URL</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-blogger-url"\n placeholder="http://exemple.blogger.com/" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-tumblr">\n <label class="col-lg-4 control-label"\n for="input-publish-tumblr-hostname">Blog hostname</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-tumblr-hostname"\n placeholder="exemple.tumblr.com" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-wordpress">\n <label class="col-lg-4 control-label"\n for="input-publish-tumblr-hostname">WordPress site</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-wordpress-site"\n placeholder="exemple.wordpress.com" class="form-control">\n <span class="help-block"> <a target="_blank"\n href="http://jetpack.me/">Jetpack plugin</a> is required for\n self-hosted sites.\n </span>\n </div>\n </div>\n <div\n class="form-group modal-publish-blogger modal-publish-tumblr modal-publish-wordpress">\n <label class="col-lg-4 control-label" for="input-publish-postid">Update\n existing post ID (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-postid" placeholder="PostID"\n class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-blogger">\n <label class="col-lg-4 control-label" for="input-publish-labels">Labels\n (comma separated)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-labels"\n placeholder="Label1, Label2" class="form-control">\n </div>\n </div>\n <div\n class="form-group modal-publish-tumblr modal-publish-wordpress">\n <label class="col-lg-4 control-label" for="input-publish-tags">Tags\n (comma separated)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-tags"\n placeholder="Tag1, Tag2" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-dropbox">\n <label class="col-lg-4 control-label"\n for="input-publish-dropbox-path">File path</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-dropbox-path"\n placeholder="/path/to/My Document.html" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-gdrive">\n <label class="col-lg-4 control-label"\n for="input-publish-gdrive-fileid">File ID (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-gdrive-fileid"\n placeholder="FileID" class="form-control"> <span\n class="help-block">If no file ID is supplied, a new file\n will be created in your Google Drive root folder. You can move\n the file afterwards within Google Drive.</span>\n </div>\n </div>\n <div class="form-group modal-publish-gdrive">\n <label class="col-lg-4 control-label"\n for="input-publish-gdrive-filename">Force filename\n (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-gdrive-filename"\n placeholder="Filename" class="form-control"> <span\n class="help-block">If no file name is supplied, the\n document title will be used.</span>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-4 control-label">Format</label>\n <div class="col-lg-7">\n <div class="radio">\n <label> <input type="radio" name="radio-publish-format"\n value="markdown"> Markdown\n </label>\n </div>\n <div class="radio">\n <label> <input type="radio" name="radio-publish-format"\n value="html"> HTML\n </label>\n </div>\n <div class="radio">\n <label> <input type="radio" name="radio-publish-format"\n value="template"> Template\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" data-dismiss="modal"\n class="btn btn-primary action-process-publish">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-manage-publish">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Publication</h3>\n </div>\n <div class="modal-body">\n <p class="msg-publish-list hide">\n "<span class="file-title"></span>" is published on the following\n location(s):\n </p>\n <div class="msg-publish-list publish-list hide"></div>\n <blockquote class="muted">\n <div class="msg-no-publish hide">\n "<span class="file-title"></span>" is not published yet. <br /> <br />\n </div>\n <b>NOTE:</b> You can add publications using "Publish on" sub-menu.\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-settings">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Settings</h3>\n <ul class="nav nav-tabs">\n <li class="active"><a class="action-load-settings"\n href="#tabpane-settings-editor" data-toggle="tab">Editor</a></li>\n <li><a class="action-load-settings"\n href="#tabpane-settings-publish" data-toggle="tab">Publish</a></li>\n <li><a class="action-load-settings"\n href="#tabpane-settings-extensions" data-toggle="tab">Extensions</a></li>\n <li><a class="action-load-settings"\n href="#tabpane-settings-utils" data-toggle="tab">Utils</a></li>\n </ul>\n </div>\n <div class="modal-body">\n\n <div class="tab-content">\n <div class="tab-pane active" id="tabpane-settings-editor">\n <div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label">Layout orientation</label>\n <div class="col-lg-7">\n <div class="radio">\n <label> <input type="radio"\n name="radio-layout-orientation" value="horizontal">\n Horizontal\n </label>\n </div>\n <div class="radio">\n <label> <input type="radio"\n name="radio-layout-orientation" value="vertical">\n Vertical\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-settings-theme">Theme</label>\n <div class="col-lg-7">\n <select id="input-settings-theme" class="form-control">\n </select> <span class="help-block"><a target="_blank"\n href="https://github.com/benweet/stackedit/blob/master/doc/theming.md#stackedit-theming-guide">Create\n your own theme...</a></span>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-lazy-rendering">Lazy rendering <a\n href="#" class="tooltip-lazy-rendering">(?)</a>\n </label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-settings-lazy-rendering" />\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-editor-font-family">Editor font</label>\n <div class="col-lg-8 form-inline">\n <input type="text" id="input-settings-editor-font-family"\n class="form-control col-lg-7"> <input type="text"\n id="input-settings-editor-font-size"\n class="form-control col-lg-2"> px\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="textarea-settings-default-content">Default content\n <a href="#" class="tooltip-default-content">(?)</a>\n </label>\n <div class="col-lg-7">\n <textarea id="textarea-settings-default-content"\n class="form-control"></textarea>\n </div>\n </div>\n </div>\n </div>\n <div class="tab-pane" id="tabpane-settings-publish">\n <div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-publish-commit-msg">Commit message</label>\n <div class="col-lg-7">\n <input type="text" id="input-settings-publish-commit-msg"\n class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="textarea-settings-publish-template">Template <a\n href="#" class="tooltip-template">(?)</a>\n </label>\n <div class="col-lg-7">\n <textarea id="textarea-settings-publish-template"\n class="form-control"></textarea>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-ssh-proxy">SSH proxy</label>\n <div class="col-lg-7">\n <input type="text" id="input-settings-ssh-proxy"\n class="form-control">\n </div>\n </div>\n </div>\n </div>\n <div class="tab-pane" id="tabpane-settings-extensions">\n <div class="panel-group accordion-extensions"></div>\n <span class="help-block pull-right"><a target="_blank"\n href="https://github.com/benweet/stackedit/blob/master/doc/developer-guide.md#architecture">Create\n your own extension...</a></span>\n </div>\n <div class="tab-pane" id="tabpane-settings-utils">\n <div class="tab-pane-button-container">\n <a href="#"\n class="btn btn-block btn-primary action-import-settings"><i\n class="icon-wrench icon-white"></i> Import settings</a> <a href="#"\n class="btn btn-block btn-primary action-export-settings"\n data-dismiss="modal"><i class="icon-wrench icon-white"></i>\n Export settings</a> <a href="#"\n class="btn btn-block btn-primary action-default-settings"\n data-dismiss="modal"><i class="icon-wrench icon-white"></i>\n Load default settings</a> <input type="file"\n id="input-file-import-settings" class="hide">\n </div>\n <div class="tab-pane-button-container">\n <a href="#" class="btn btn-block btn-primary action-welcome-file"\n data-dismiss="modal"><i class="icon-help-circled icon-white"></i>\n Welcome document</a> <a href="#" class="btn btn-block btn-primary"\n data-dismiss="modal" data-toggle="modal"\n data-target=".modal-app-reset"><i\n class="icon-fire icon-white"></i> Reset application</a>\n </div>\n </div>\n </div>\n\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-apply-settings"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-non-unique">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <h3 class="modal-title">Ooops...</h3>\n </div>\n <div class="modal-body">\n <p>StackEdit has stopped because another instance was running in\n the same browser.</p>\n <blockquote class="muted">If you want to reopen\n StackEdit, click on "Reload".</blockquote>\n </div>\n <div class="modal-footer">\n <a href="javascript:window.location.reload();"\n class="btn btn-primary">Reload</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-app-reset">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <h3 class="modal-title">Reset application</h3>\n </div>\n <div class="modal-body">\n <p>This will delete all your local documents.</p>\n <blockquote class="muted">Are you sure?</blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-app-reset"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<textarea id="md-section-helper" class="form-control"></textarea>\n<div class="lock-ui hide"></div>\n<div id="dropboxjs" data-app-key="x0k2l8puemfvg0o"></div>';
}), define("text!html/bodyViewer.html", [], function() {
return '\n<div class="navbar navbar-fixed-top ui-layout-north">\n <div class="navbar-inner">\n\n <ul class="nav pull-right hide">\n <li class="btn-group">\n <button class="btn btn-default action-edit-document hide"\n title="Edit this document">\n <i class="icon-pencil"></i>\n </button>\n </li>\n <li class="btn-group">\n <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"\n title="Save this document">\n <i class="icon-download-alt"></i>\n </button>\n <ul class="dropdown-menu">\n <li><a class="action-download-md" href="#"><i\n class="icon-download-alt"></i> Save as Markdown</a></li>\n <li><a class="action-download-html" href="#"><i\n class="icon-download-alt"></i> Save as HTML</a></li>\n <li><a class="action-download-template" href="#"><i\n class="icon-download-alt"></i> Save using template</a></li>\n </ul>\n </li>\n <li class="btn-group">\n <button class="btn btn-default dropdown-toggle action-open-file"\n data-toggle="dropdown" title="Open local document">\n <i class="icon-folder-open"></i>\n </button>\n <ul id="file-selector" class="dropdown-menu">\n <li class="stick">\n <div class="input-prepend">\n <span class="add-on"><i class="icon-search"></i></span><input\n type="text" id="file-search" class="span3">\n </div>\n </li>\n </ul>\n </li>\n <li class="btn-group"><button class="btn btn-default action-open-stackedit"\n title="Open StackEdit">\n <i class="icon-provider-stackedit"></i>\n </button></li>\n </ul>\n <ul class="nav pull-right">\n <li><i class="working-indicator icon-none"></i></li>\n <li><span class="brand file-title-navbar"></span></li>\n </ul>\n </div>\n</div>\n<div id="wmd-button-bar" class="hide"></div>\n<textarea id="wmd-input" class="hide"></textarea>\n<div class="preview-container">\n <div id="preview-contents">\n <div id="wmd-preview" class="preview-content"></div>\n </div>\n</div>\n\n<div class="modal modal-non-unique">\n <div class="modal-header">\n <h3>Ooops...</h3>\n </div>\n <div class="modal-body">\n <p>StackEdit has stopped because another instance was running in\n the same browser.</p>\n <blockquote class="muted">If you want to reopen\n StackEdit, click on "Reload".</blockquote>\n </div>\n <div class="modal-footer">\n <a href="javascript:window.location.reload();" class="btn btn-primary">Reload</a>\n </div>\n</div>\n';
}), define("text!html/settingsTemplateTooltip.html", [], function() {
return 'Available variables:\n<br>\n<ul>\n <li><b>documentTitle</b>: document title</li>\n <li><b>documentMarkdown</b>: document in Markdown format</li>\n <li><b>documentHTML</b>: document in HTML format</li>\n <li><b>publishAttributes</b>: attributes of the publish location\n (undefined if not publishing)</li>\n</ul>\n<b>Examples:</b>\n<br />\n&lt;title&gt;&lt;%= documentTitle %&gt;&lt;&#x2F;title&gt;\n<br />\n&lt;div&gt;&lt;%- documentHTML %&gt;&lt;&#x2F;div&gt;\n<br />\n&lt;%<br />\nif(publishAttributes.provider.providerId == &quot;github&quot;)\nprint(documentMarkdown);<br />\n%&gt;\n<br />\n<br />\n<a target="_blank" href="http://underscorejs.org/#template">More\n info</a>';
}), define("text!html/settingsUserCustomExtensionTooltip.html", [], function() {
return 'Extension variable name:\n<b>userCustom</b>\n<br>\n<br>\n<b>Example:</b>\n<br />\nuserCustom.onPreviewFinished = function() {\n<br />\n&nbsp;&nbsp;eventMgr.onMessage(&quot;Finished!&quot;);\n<br />\n};\n<br />\n<br />\n<a target="_blank"\n href="https://github.com/benweet/stackedit/blob/master/doc/developer-guide.md#architecture">More\n info</a>';
}), function(n, e) {
function t(e, t) {
var i, r, a, s = e.nodeName.toLowerCase();
return "area" === s ? (i = e.parentNode, r = i.name, e.href && r && "map" === i.nodeName.toLowerCase() ? (a = n("img[usemap=#" + r + "]")[0],
!!a && o(a)) : !1) : (/input|select|textarea|button|object/.test(s) ? !e.disabled : "a" === s ? e.href || t : t) && o(e);
}
function o(e) {
return n.expr.filters.visible(e) && !n(e).parents().addBack().filter(function() {
return "hidden" === n.css(this, "visibility");
}).length;
}
var i = 0, r = /^ui-id-\d+$/;
n.ui = n.ui || {}, n.extend(n.ui, {
version: "1.10.3",
keyCode: {
BACKSPACE: 8,
COMMA: 188,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
LEFT: 37,
NUMPAD_ADD: 107,
NUMPAD_DECIMAL: 110,
NUMPAD_DIVIDE: 111,
NUMPAD_ENTER: 108,
NUMPAD_MULTIPLY: 106,
NUMPAD_SUBTRACT: 109,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SPACE: 32,
TAB: 9,
UP: 38
}
}), n.fn.extend({
focus: function(e) {
return function(t, o) {
return "number" == typeof t ? this.each(function() {
var e = this;
setTimeout(function() {
n(e).focus(), o && o.call(e);
}, t);
}) : e.apply(this, arguments);
};
}(n.fn.focus),
scrollParent: function() {
var e;
return e = n.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function() {
return /(relative|absolute|fixed)/.test(n.css(this, "position")) && /(auto|scroll)/.test(n.css(this, "overflow") + n.css(this, "overflow-y") + n.css(this, "overflow-x"));
}).eq(0) : this.parents().filter(function() {
return /(auto|scroll)/.test(n.css(this, "overflow") + n.css(this, "overflow-y") + n.css(this, "overflow-x"));
}).eq(0), /fixed/.test(this.css("position")) || !e.length ? n(document) : e;
},
zIndex: function(t) {
if (t !== e) return this.css("zIndex", t);
if (this.length) for (var o, i, r = n(this[0]); r.length && r[0] !== document; ) {
if (o = r.css("position"), ("absolute" === o || "relative" === o || "fixed" === o) && (i = parseInt(r.css("zIndex"), 10),
!isNaN(i) && 0 !== i)) return i;
r = r.parent();
}
return 0;
},
uniqueId: function() {
return this.each(function() {
this.id || (this.id = "ui-id-" + ++i);
});
},
removeUniqueId: function() {
return this.each(function() {
r.test(this.id) && n(this).removeAttr("id");
});
}
}), n.extend(n.expr[":"], {
data: n.expr.createPseudo ? n.expr.createPseudo(function(e) {
return function(t) {
return !!n.data(t, e);
};
}) : function(e, t, o) {
return !!n.data(e, o[3]);
},
focusable: function(e) {
return t(e, !isNaN(n.attr(e, "tabindex")));
},
tabbable: function(e) {
var o = n.attr(e, "tabindex"), i = isNaN(o);
return (i || o >= 0) && t(e, !i);
}
}), n("<a>").outerWidth(1).jquery || n.each([ "Width", "Height" ], function(t, o) {
function i(e, t, o, i) {
return n.each(r, function() {
t -= parseFloat(n.css(e, "padding" + this)) || 0, o && (t -= parseFloat(n.css(e, "border" + this + "Width")) || 0),
i && (t -= parseFloat(n.css(e, "margin" + this)) || 0);
}), t;
}
var r = "Width" === o ? [ "Left", "Right" ] : [ "Top", "Bottom" ], a = o.toLowerCase(), s = {
innerWidth: n.fn.innerWidth,
innerHeight: n.fn.innerHeight,
outerWidth: n.fn.outerWidth,
outerHeight: n.fn.outerHeight
};
n.fn["inner" + o] = function(t) {
return t === e ? s["inner" + o].call(this) : this.each(function() {
n(this).css(a, i(this, t) + "px");
});
}, n.fn["outer" + o] = function(e, t) {
return "number" != typeof e ? s["outer" + o].call(this, e) : this.each(function() {
n(this).css(a, i(this, e, !0, t) + "px");
});
};
}), n.fn.addBack || (n.fn.addBack = function(n) {
return this.add(null == n ? this.prevObject : this.prevObject.filter(n));
}), n("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (n.fn.removeData = function(e) {
return function(t) {
return arguments.length ? e.call(this, n.camelCase(t)) : e.call(this);
};
}(n.fn.removeData)), n.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),
n.support.selectstart = "onselectstart" in document.createElement("div"), n.fn.extend({
disableSelection: function() {
return this.bind((n.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(n) {
n.preventDefault();
});
},
enableSelection: function() {
return this.unbind(".ui-disableSelection");
}
}), n.extend(n.ui, {
plugin: {
add: function(e, t, o) {
var i, r = n.ui[e].prototype;
for (i in o) r.plugins[i] = r.plugins[i] || [], r.plugins[i].push([ t, o[i] ]);
},
call: function(n, e, t) {
var o, i = n.plugins[e];
if (i && n.element[0].parentNode && 11 !== n.element[0].parentNode.nodeType) for (o = 0; o < i.length; o++) n.options[i[o][0]] && i[o][1].apply(n.element, t);
}
},
hasScroll: function(e, t) {
if ("hidden" === n(e).css("overflow")) return !1;
var o = t && "left" === t ? "scrollLeft" : "scrollTop", i = !1;
return e[o] > 0 ? !0 : (e[o] = 1, i = e[o] > 0, e[o] = 0, i);
}
});
}(jQuery), function(n, e) {
var t = 0, o = Array.prototype.slice, i = n.cleanData;
n.cleanData = function(e) {
for (var t, o = 0; null != (t = e[o]); o++) try {
n(t).triggerHandler("remove");
} catch (r) {}
i(e);
}, n.widget = function(e, t, o) {
var i, r, a, s, l = {}, c = e.split(".")[0];
e = e.split(".")[1], i = c + "-" + e, o || (o = t, t = n.Widget), n.expr[":"][i.toLowerCase()] = function(e) {
return !!n.data(e, i);
}, n[c] = n[c] || {}, r = n[c][e], a = n[c][e] = function(n, e) {
return this._createWidget ? (arguments.length && this._createWidget(n, e), void 0) : new a(n, e);
}, n.extend(a, r, {
version: o.version,
_proto: n.extend({}, o),
_childConstructors: []
}), s = new t(), s.options = n.widget.extend({}, s.options), n.each(o, function(e, o) {
return n.isFunction(o) ? (l[e] = function() {
var n = function() {
return t.prototype[e].apply(this, arguments);
}, i = function(n) {
return t.prototype[e].apply(this, n);
};
return function() {
var e, t = this._super, r = this._superApply;
return this._super = n, this._superApply = i, e = o.apply(this, arguments), this._super = t,
this._superApply = r, e;
};
}(), void 0) : (l[e] = o, void 0);
}), a.prototype = n.widget.extend(s, {
widgetEventPrefix: r ? s.widgetEventPrefix : e
}, l, {
constructor: a,
namespace: c,
widgetName: e,
widgetFullName: i
}), r ? (n.each(r._childConstructors, function(e, t) {
var o = t.prototype;
n.widget(o.namespace + "." + o.widgetName, a, t._proto);
}), delete r._childConstructors) : t._childConstructors.push(a), n.widget.bridge(e, a);
}, n.widget.extend = function(t) {
for (var i, r, a = o.call(arguments, 1), s = 0, l = a.length; l > s; s++) for (i in a[s]) r = a[s][i],
a[s].hasOwnProperty(i) && r !== e && (t[i] = n.isPlainObject(r) ? n.isPlainObject(t[i]) ? n.widget.extend({}, t[i], r) : n.widget.extend({}, r) : r);
return t;
}, n.widget.bridge = function(t, i) {
var r = i.prototype.widgetFullName || t;
n.fn[t] = function(a) {
var s = "string" == typeof a, l = o.call(arguments, 1), c = this;
return a = !s && l.length ? n.widget.extend.apply(null, [ a ].concat(l)) : a, s ? this.each(function() {
var o, i = n.data(this, r);
return i ? n.isFunction(i[a]) && "_" !== a.charAt(0) ? (o = i[a].apply(i, l), o !== i && o !== e ? (c = o && o.jquery ? c.pushStack(o.get()) : o,
!1) : void 0) : n.error("no such method '" + a + "' for " + t + " widget instance") : n.error("cannot call methods on " + t + " prior to initialization; " + "attempted to call method '" + a + "'");
}) : this.each(function() {
var e = n.data(this, r);
e ? e.option(a || {})._init() : n.data(this, r, new i(a, this));
}), c;
};
}, n.Widget = function() {}, n.Widget._childConstructors = [], n.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
defaultElement: "<div>",
options: {
disabled: !1,
create: null
},
_createWidget: function(e, o) {
o = n(o || this.defaultElement || this)[0], this.element = n(o), this.uuid = t++,
this.eventNamespace = "." + this.widgetName + this.uuid, this.options = n.widget.extend({}, this.options, this._getCreateOptions(), e),
this.bindings = n(), this.hoverable = n(), this.focusable = n(), o !== this && (n.data(o, this.widgetFullName, this),
this._on(!0, this.element, {
remove: function(n) {
n.target === o && this.destroy();
}
}), this.document = n(o.style ? o.ownerDocument : o.document || o), this.window = n(this.document[0].defaultView || this.document[0].parentWindow)),
this._create(), this._trigger("create", null, this._getCreateEventData()), this._init();
},
_getCreateOptions: n.noop,
_getCreateEventData: n.noop,
_create: n.noop,
_init: n.noop,
destroy: function() {
this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(n.camelCase(this.widgetFullName)),
this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled"),
this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"),
this.focusable.removeClass("ui-state-focus");
},
_destroy: n.noop,
widget: function() {
return this.element;
},
option: function(t, o) {
var i, r, a, s = t;
if (0 === arguments.length) return n.widget.extend({}, this.options);
if ("string" == typeof t) if (s = {}, i = t.split("."), t = i.shift(), i.length) {
for (r = s[t] = n.widget.extend({}, this.options[t]), a = 0; a < i.length - 1; a++) r[i[a]] = r[i[a]] || {},
r = r[i[a]];
if (t = i.pop(), o === e) return r[t] === e ? null : r[t];
r[t] = o;
} else {
if (o === e) return this.options[t] === e ? null : this.options[t];
s[t] = o;
}
return this._setOptions(s), this;
},
_setOptions: function(n) {
var e;
for (e in n) this._setOption(e, n[e]);
return this;
},
_setOption: function(n, e) {
return this.options[n] = e, "disabled" === n && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!e).attr("aria-disabled", e),
this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")),
this;
},
enable: function() {
return this._setOption("disabled", !1);
},
disable: function() {
return this._setOption("disabled", !0);
},
_on: function(e, t, o) {
var i, r = this;
"boolean" != typeof e && (o = t, t = e, e = !1), o ? (t = i = n(t), this.bindings = this.bindings.add(t)) : (o = t,
t = this.element, i = this.widget()), n.each(o, function(o, a) {
function s() {
return e || r.options.disabled !== !0 && !n(this).hasClass("ui-state-disabled") ? ("string" == typeof a ? r[a] : a).apply(r, arguments) : void 0;
}
"string" != typeof a && (s.guid = a.guid = a.guid || s.guid || n.guid++);
var l = o.match(/^(\w+)\s*(.*)$/), c = l[1] + r.eventNamespace, d = l[2];
d ? i.delegate(d, c, s) : t.bind(c, s);
});
},
_off: function(n, e) {
e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace,
n.unbind(e).undelegate(e);
},
_delay: function(n, e) {
function t() {
return ("string" == typeof n ? o[n] : n).apply(o, arguments);
}
var o = this;
return setTimeout(t, e || 0);
},
_hoverable: function(e) {
this.hoverable = this.hoverable.add(e), this._on(e, {
mouseenter: function(e) {
n(e.currentTarget).addClass("ui-state-hover");
},
mouseleave: function(e) {
n(e.currentTarget).removeClass("ui-state-hover");
}
});
},
_focusable: function(e) {
this.focusable = this.focusable.add(e), this._on(e, {
focusin: function(e) {
n(e.currentTarget).addClass("ui-state-focus");
},
focusout: function(e) {
n(e.currentTarget).removeClass("ui-state-focus");
}
});
},
_trigger: function(e, t, o) {
var i, r, a = this.options[e];
if (o = o || {}, t = n.Event(t), t.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(),
t.target = this.element[0], r = t.originalEvent) for (i in r) i in t || (t[i] = r[i]);
return this.element.trigger(t, o), !(n.isFunction(a) && a.apply(this.element[0], [ t ].concat(o)) === !1 || t.isDefaultPrevented());
}
}, n.each({
show: "fadeIn",
hide: "fadeOut"
}, function(e, t) {
n.Widget.prototype["_" + e] = function(o, i, r) {
"string" == typeof i && (i = {
effect: i
});
var a, s = i ? i === !0 || "number" == typeof i ? t : i.effect || t : e;
i = i || {}, "number" == typeof i && (i = {
duration: i
}), a = !n.isEmptyObject(i), i.complete = r, i.delay && o.delay(i.delay), a && n.effects && n.effects.effect[s] ? o[e](i) : s !== e && o[s] ? o[s](i.duration, i.easing, r) : o.queue(function(t) {
n(this)[e](), r && r.call(o[0]), t();
});
};
});
}(jQuery), function(n) {
var e = !1;
n(document).mouseup(function() {
e = !1;
}), n.widget("ui.mouse", {
version: "1.10.3",
options: {
cancel: "input,textarea,button,select,option",
distance: 1,
delay: 0
},
_mouseInit: function() {
var e = this;
this.element.bind("mousedown." + this.widgetName, function(n) {
return e._mouseDown(n);
}).bind("click." + this.widgetName, function(t) {
return !0 === n.data(t.target, e.widgetName + ".preventClickEvent") ? (n.removeData(t.target, e.widgetName + ".preventClickEvent"),
t.stopImmediatePropagation(), !1) : void 0;
}), this.started = !1;
},
_mouseDestroy: function() {
this.element.unbind("." + this.widgetName), this._mouseMoveDelegate && n(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
},
_mouseDown: function(t) {
if (!e) {
this._mouseStarted && this._mouseUp(t), this._mouseDownEvent = t;
var o = this, i = 1 === t.which, r = "string" == typeof this.options.cancel && t.target.nodeName ? n(t.target).closest(this.options.cancel).length : !1;
return i && !r && this._mouseCapture(t) ? (this.mouseDelayMet = !this.options.delay,
this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
o.mouseDelayMet = !0;
}, this.options.delay)), this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(t) !== !1,
!this._mouseStarted) ? (t.preventDefault(), !0) : (!0 === n.data(t.target, this.widgetName + ".preventClickEvent") && n.removeData(t.target, this.widgetName + ".preventClickEvent"),
this._mouseMoveDelegate = function(n) {
return o._mouseMove(n);
}, this._mouseUpDelegate = function(n) {
return o._mouseUp(n);
}, n(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate),
t.preventDefault(), e = !0, !0)) : !0;
}
},
_mouseMove: function(e) {
return n.ui.ie && (!document.documentMode || document.documentMode < 9) && !e.button ? this._mouseUp(e) : this._mouseStarted ? (this._mouseDrag(e),
e.preventDefault()) : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, e) !== !1,
this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)), !this._mouseStarted);
},
_mouseUp: function(e) {
return n(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate),
this._mouseStarted && (this._mouseStarted = !1, e.target === this._mouseDownEvent.target && n.data(e.target, this.widgetName + ".preventClickEvent", !0),
this._mouseStop(e)), !1;
},
_mouseDistanceMet: function(n) {
return Math.max(Math.abs(this._mouseDownEvent.pageX - n.pageX), Math.abs(this._mouseDownEvent.pageY - n.pageY)) >= this.options.distance;
},
_mouseDelayMet: function() {
return this.mouseDelayMet;
},
_mouseStart: function() {},
_mouseDrag: function() {},
_mouseStop: function() {},
_mouseCapture: function() {
return !0;
}
});
}(jQuery), function(n, e) {
function t(n, e, t) {
return [ parseFloat(n[0]) * (f.test(n[0]) ? e / 100 : 1), parseFloat(n[1]) * (f.test(n[1]) ? t / 100 : 1) ];
}
function o(e, t) {
return parseInt(n.css(e, t), 10) || 0;
}
function i(e) {
var t = e[0];
return 9 === t.nodeType ? {
width: e.width(),
height: e.height(),
offset: {
top: 0,
left: 0
}
} : n.isWindow(t) ? {
width: e.width(),
height: e.height(),
offset: {
top: e.scrollTop(),
left: e.scrollLeft()
}
} : t.preventDefault ? {
width: 0,
height: 0,
offset: {
top: t.pageY,
left: t.pageX
}
} : {
width: e.outerWidth(),
height: e.outerHeight(),
offset: e.offset()
};
}
n.ui = n.ui || {};
var r, a = Math.max, s = Math.abs, l = Math.round, c = /left|center|right/, d = /top|center|bottom/, p = /[\+\-]\d+(\.[\d]+)?%?/, u = /^\w+/, f = /%$/, h = n.fn.position;
n.position = {
scrollbarWidth: function() {
if (r !== e) return r;
var t, o, i = n("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), a = i.children()[0];
return n("body").append(i), t = a.offsetWidth, i.css("overflow", "scroll"), o = a.offsetWidth,
t === o && (o = i[0].clientWidth), i.remove(), r = t - o;
},
getScrollInfo: function(e) {
var t = e.isWindow ? "" : e.element.css("overflow-x"), o = e.isWindow ? "" : e.element.css("overflow-y"), i = "scroll" === t || "auto" === t && e.width < e.element[0].scrollWidth, r = "scroll" === o || "auto" === o && e.height < e.element[0].scrollHeight;
return {
width: r ? n.position.scrollbarWidth() : 0,
height: i ? n.position.scrollbarWidth() : 0
};
},
getWithinInfo: function(e) {
var t = n(e || window), o = n.isWindow(t[0]);
return {
element: t,
isWindow: o,
offset: t.offset() || {
left: 0,
top: 0
},
scrollLeft: t.scrollLeft(),
scrollTop: t.scrollTop(),
width: o ? t.width() : t.outerWidth(),
height: o ? t.height() : t.outerHeight()
};
}
}, n.fn.position = function(e) {
if (!e || !e.of) return h.apply(this, arguments);
e = n.extend({}, e);
var r, f, g, b, m, v, x = n(e.of), y = n.position.getWithinInfo(e.within), w = n.position.getScrollInfo(y), k = (e.collision || "flip").split(" "), C = {};
return v = i(x), x[0].preventDefault && (e.at = "left top"), f = v.width, g = v.height,
b = v.offset, m = n.extend({}, b), n.each([ "my", "at" ], function() {
var n, t, o = (e[this] || "").split(" ");
1 === o.length && (o = c.test(o[0]) ? o.concat([ "center" ]) : d.test(o[0]) ? [ "center" ].concat(o) : [ "center", "center" ]),
o[0] = c.test(o[0]) ? o[0] : "center", o[1] = d.test(o[1]) ? o[1] : "center", n = p.exec(o[0]),
t = p.exec(o[1]), C[this] = [ n ? n[0] : 0, t ? t[0] : 0 ], e[this] = [ u.exec(o[0])[0], u.exec(o[1])[0] ];
}), 1 === k.length && (k[1] = k[0]), "right" === e.at[0] ? m.left += f : "center" === e.at[0] && (m.left += f / 2),
"bottom" === e.at[1] ? m.top += g : "center" === e.at[1] && (m.top += g / 2), r = t(C.at, f, g),
m.left += r[0], m.top += r[1], this.each(function() {
var i, c, d = n(this), p = d.outerWidth(), u = d.outerHeight(), h = o(this, "marginLeft"), v = o(this, "marginTop"), S = p + h + o(this, "marginRight") + w.width, T = u + v + o(this, "marginBottom") + w.height, E = n.extend({}, m), _ = t(C.my, d.outerWidth(), d.outerHeight());
"right" === e.my[0] ? E.left -= p : "center" === e.my[0] && (E.left -= p / 2), "bottom" === e.my[1] ? E.top -= u : "center" === e.my[1] && (E.top -= u / 2),
E.left += _[0], E.top += _[1], n.support.offsetFractions || (E.left = l(E.left),
E.top = l(E.top)), i = {
marginLeft: h,
marginTop: v
}, n.each([ "left", "top" ], function(t, o) {
n.ui.position[k[t]] && n.ui.position[k[t]][o](E, {
targetWidth: f,
targetHeight: g,
elemWidth: p,
elemHeight: u,
collisionPosition: i,
collisionWidth: S,
collisionHeight: T,
offset: [ r[0] + _[0], r[1] + _[1] ],
my: e.my,
at: e.at,
within: y,
elem: d
});
}), e.using && (c = function(n) {
var t = b.left - E.left, o = t + f - p, i = b.top - E.top, r = i + g - u, l = {
target: {
element: x,
left: b.left,
top: b.top,
width: f,
height: g
},
element: {
element: d,
left: E.left,
top: E.top,
width: p,
height: u
},
horizontal: 0 > o ? "left" : t > 0 ? "right" : "center",
vertical: 0 > r ? "top" : i > 0 ? "bottom" : "middle"
};
p > f && s(t + o) < f && (l.horizontal = "center"), u > g && s(i + r) < g && (l.vertical = "middle"),
l.important = a(s(t), s(o)) > a(s(i), s(r)) ? "horizontal" : "vertical", e.using.call(this, n, l);
}), d.offset(n.extend(E, {
using: c
}));
});
}, n.ui.position = {
fit: {
left: function(n, e) {
var t, o = e.within, i = o.isWindow ? o.scrollLeft : o.offset.left, r = o.width, s = n.left - e.collisionPosition.marginLeft, l = i - s, c = s + e.collisionWidth - r - i;
e.collisionWidth > r ? l > 0 && 0 >= c ? (t = n.left + l + e.collisionWidth - r - i,
n.left += l - t) : n.left = c > 0 && 0 >= l ? i : l > c ? i + r - e.collisionWidth : i : l > 0 ? n.left += l : c > 0 ? n.left -= c : n.left = a(n.left - s, n.left);
},
top: function(n, e) {
var t, o = e.within, i = o.isWindow ? o.scrollTop : o.offset.top, r = e.within.height, s = n.top - e.collisionPosition.marginTop, l = i - s, c = s + e.collisionHeight - r - i;
e.collisionHeight > r ? l > 0 && 0 >= c ? (t = n.top + l + e.collisionHeight - r - i,
n.top += l - t) : n.top = c > 0 && 0 >= l ? i : l > c ? i + r - e.collisionHeight : i : l > 0 ? n.top += l : c > 0 ? n.top -= c : n.top = a(n.top - s, n.top);
}
},
flip: {
left: function(n, e) {
var t, o, i = e.within, r = i.offset.left + i.scrollLeft, a = i.width, l = i.isWindow ? i.scrollLeft : i.offset.left, c = n.left - e.collisionPosition.marginLeft, d = c - l, p = c + e.collisionWidth - a - l, u = "left" === e.my[0] ? -e.elemWidth : "right" === e.my[0] ? e.elemWidth : 0, f = "left" === e.at[0] ? e.targetWidth : "right" === e.at[0] ? -e.targetWidth : 0, h = -2 * e.offset[0];
0 > d ? (t = n.left + u + f + h + e.collisionWidth - a - r, (0 > t || t < s(d)) && (n.left += u + f + h)) : p > 0 && (o = n.left - e.collisionPosition.marginLeft + u + f + h - l,
(o > 0 || s(o) < p) && (n.left += u + f + h));
},
top: function(n, e) {
var t, o, i = e.within, r = i.offset.top + i.scrollTop, a = i.height, l = i.isWindow ? i.scrollTop : i.offset.top, c = n.top - e.collisionPosition.marginTop, d = c - l, p = c + e.collisionHeight - a - l, u = "top" === e.my[1], f = u ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0, h = "top" === e.at[1] ? e.targetHeight : "bottom" === e.at[1] ? -e.targetHeight : 0, g = -2 * e.offset[1];
0 > d ? (o = n.top + f + h + g + e.collisionHeight - a - r, n.top + f + h + g > d && (0 > o || o < s(d)) && (n.top += f + h + g)) : p > 0 && (t = n.top - e.collisionPosition.marginTop + f + h + g - l,
n.top + f + h + g > p && (t > 0 || s(t) < p) && (n.top += f + h + g));
}
},
flipfit: {
left: function() {
n.ui.position.flip.left.apply(this, arguments), n.ui.position.fit.left.apply(this, arguments);
},
top: function() {
n.ui.position.flip.top.apply(this, arguments), n.ui.position.fit.top.apply(this, arguments);
}
}
}, function() {
var e, t, o, i, r, a = document.getElementsByTagName("body")[0], s = document.createElement("div");
e = document.createElement(a ? "div" : "body"), o = {
visibility: "hidden",
width: 0,
height: 0,
border: 0,
margin: 0,
background: "none"
}, a && n.extend(o, {
position: "absolute",
left: "-1000px",
top: "-1000px"
});
for (r in o) e.style[r] = o[r];
e.appendChild(s), t = a || document.documentElement, t.insertBefore(e, t.firstChild),
s.style.cssText = "position: absolute; left: 10.7432222px;", i = n(s).offset().left,
n.support.offsetFractions = i > 10 && 11 > i, e.innerHTML = "", t.removeChild(e);
}();
}(jQuery), function(n) {
n.widget("ui.draggable", n.ui.mouse, {
version: "1.10.3",
widgetEventPrefix: "drag",
options: {
addClasses: !0,
appendTo: "parent",
axis: !1,
connectToSortable: !1,
containment: !1,
cursor: "auto",
cursorAt: !1,
grid: !1,
handle: !1,
helper: "original",
iframeFix: !1,
opacity: !1,
refreshPositions: !1,
revert: !1,
revertDuration: 500,
scope: "default",
scroll: !0,
scrollSensitivity: 20,
scrollSpeed: 20,
snap: !1,
snapMode: "both",
snapTolerance: 20,
stack: !1,
zIndex: !1,
drag: null,
start: null,
stop: null
},
_create: function() {
"original" !== this.options.helper || /^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative"),
this.options.addClasses && this.element.addClass("ui-draggable"), this.options.disabled && this.element.addClass("ui-draggable-disabled"),
this._mouseInit();
},
_destroy: function() {
this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),
this._mouseDestroy();
},
_mouseCapture: function(e) {
var t = this.options;
return this.helper || t.disabled || n(e.target).closest(".ui-resizable-handle").length > 0 ? !1 : (this.handle = this._getHandle(e),
this.handle ? (n(t.iframeFix === !0 ? "iframe" : t.iframeFix).each(function() {
n("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>").css({
width: this.offsetWidth + "px",
height: this.offsetHeight + "px",
position: "absolute",
opacity: "0.001",
zIndex: 1e3
}).css(n(this).offset()).appendTo("body");
}), !0) : !1);
},
_mouseStart: function(e) {
var t = this.options;
return this.helper = this._createHelper(e), this.helper.addClass("ui-draggable-dragging"),
this._cacheHelperProportions(), n.ui.ddmanager && (n.ui.ddmanager.current = this),
this._cacheMargins(), this.cssPosition = this.helper.css("position"), this.scrollParent = this.helper.scrollParent(),
this.offsetParent = this.helper.offsetParent(), this.offsetParentCssPosition = this.offsetParent.css("position"),
this.offset = this.positionAbs = this.element.offset(), this.offset = {
top: this.offset.top - this.margins.top,
left: this.offset.left - this.margins.left
}, this.offset.scroll = !1, n.extend(this.offset, {
click: {
left: e.pageX - this.offset.left,
top: e.pageY - this.offset.top
},
parent: this._getParentOffset(),
relative: this._getRelativeOffset()
}), this.originalPosition = this.position = this._generatePosition(e), this.originalPageX = e.pageX,
this.originalPageY = e.pageY, t.cursorAt && this._adjustOffsetFromHelper(t.cursorAt),
this._setContainment(), this._trigger("start", e) === !1 ? (this._clear(), !1) : (this._cacheHelperProportions(),
n.ui.ddmanager && !t.dropBehaviour && n.ui.ddmanager.prepareOffsets(this, e), this._mouseDrag(e, !0),
n.ui.ddmanager && n.ui.ddmanager.dragStart(this, e), !0);
},
_mouseDrag: function(e, t) {
if ("fixed" === this.offsetParentCssPosition && (this.offset.parent = this._getParentOffset()),
this.position = this._generatePosition(e), this.positionAbs = this._convertPositionTo("absolute"),
!t) {
var o = this._uiHash();
if (this._trigger("drag", e, o) === !1) return this._mouseUp({}), !1;
this.position = o.position;
}
return this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"),
this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"),
n.ui.ddmanager && n.ui.ddmanager.drag(this, e), !1;
},
_mouseStop: function(e) {
var t = this, o = !1;
return n.ui.ddmanager && !this.options.dropBehaviour && (o = n.ui.ddmanager.drop(this, e)),
this.dropped && (o = this.dropped, this.dropped = !1), "original" !== this.options.helper || n.contains(this.element[0].ownerDocument, this.element[0]) ? ("invalid" === this.options.revert && !o || "valid" === this.options.revert && o || this.options.revert === !0 || n.isFunction(this.options.revert) && this.options.revert.call(this.element, o) ? n(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
t._trigger("stop", e) !== !1 && t._clear();
}) : this._trigger("stop", e) !== !1 && this._clear(), !1) : !1;
},
_mouseUp: function(e) {
return n("div.ui-draggable-iframeFix").each(function() {
this.parentNode.removeChild(this);
}), n.ui.ddmanager && n.ui.ddmanager.dragStop(this, e), n.ui.mouse.prototype._mouseUp.call(this, e);
},
cancel: function() {
return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(),
this;
},
_getHandle: function(e) {
return this.options.handle ? !!n(e.target).closest(this.element.find(this.options.handle)).length : !0;
},
_createHelper: function(e) {
var t = this.options, o = n.isFunction(t.helper) ? n(t.helper.apply(this.element[0], [ e ])) : "clone" === t.helper ? this.element.clone().removeAttr("id") : this.element;
return o.parents("body").length || o.appendTo("parent" === t.appendTo ? this.element[0].parentNode : t.appendTo),
o[0] === this.element[0] || /(fixed|absolute)/.test(o.css("position")) || o.css("position", "absolute"),
o;
},
_adjustOffsetFromHelper: function(e) {
"string" == typeof e && (e = e.split(" ")), n.isArray(e) && (e = {
left: +e[0],
top: +e[1] || 0
}), "left" in e && (this.offset.click.left = e.left + this.margins.left), "right" in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left),
"top" in e && (this.offset.click.top = e.top + this.margins.top), "bottom" in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top);
},
_getParentOffset: function() {
var e = this.offsetParent.offset();
return "absolute" === this.cssPosition && this.scrollParent[0] !== document && n.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(),
e.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === document.body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && n.ui.ie) && (e = {
top: 0,
left: 0
}), {
top: e.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
left: e.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
};
},
_getRelativeOffset: function() {
if ("relative" === this.cssPosition) {
var n = this.element.position();
return {
top: n.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
left: n.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
};
}
return {
top: 0,
left: 0
};
},
_cacheMargins: function() {
this.margins = {
left: parseInt(this.element.css("marginLeft"), 10) || 0,
top: parseInt(this.element.css("marginTop"), 10) || 0,
right: parseInt(this.element.css("marginRight"), 10) || 0,
bottom: parseInt(this.element.css("marginBottom"), 10) || 0
};
},
_cacheHelperProportions: function() {
this.helperProportions = {
width: this.helper.outerWidth(),
height: this.helper.outerHeight()
};
},
_setContainment: function() {
var e, t, o, i = this.options;
return i.containment ? "window" === i.containment ? (this.containment = [ n(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, n(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, n(window).scrollLeft() + n(window).width() - this.helperProportions.width - this.margins.left, n(window).scrollTop() + (n(window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ],
void 0) : "document" === i.containment ? (this.containment = [ 0, 0, n(document).width() - this.helperProportions.width - this.margins.left, (n(document).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ],
void 0) : i.containment.constructor === Array ? (this.containment = i.containment,
void 0) : ("parent" === i.containment && (i.containment = this.helper[0].parentNode),
t = n(i.containment), o = t[0], o && (e = "hidden" !== t.css("overflow"), this.containment = [ (parseInt(t.css("borderLeftWidth"), 10) || 0) + (parseInt(t.css("paddingLeft"), 10) || 0), (parseInt(t.css("borderTopWidth"), 10) || 0) + (parseInt(t.css("paddingTop"), 10) || 0), (e ? Math.max(o.scrollWidth, o.offsetWidth) : o.offsetWidth) - (parseInt(t.css("borderRightWidth"), 10) || 0) - (parseInt(t.css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (e ? Math.max(o.scrollHeight, o.offsetHeight) : o.offsetHeight) - (parseInt(t.css("borderBottomWidth"), 10) || 0) - (parseInt(t.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom ],
this.relative_container = t), void 0) : (this.containment = null, void 0);
},
_convertPositionTo: function(e, t) {
t || (t = this.position);
var o = "absolute" === e ? 1 : -1, i = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && n.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent;
return this.offset.scroll || (this.offset.scroll = {
top: i.scrollTop(),
left: i.scrollLeft()
}), {
top: t.top + this.offset.relative.top * o + this.offset.parent.top * o - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : this.offset.scroll.top) * o,
left: t.left + this.offset.relative.left * o + this.offset.parent.left * o - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : this.offset.scroll.left) * o
};
},
_generatePosition: function(e) {
var t, o, i, r, a = this.options, s = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && n.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, l = e.pageX, c = e.pageY;
return this.offset.scroll || (this.offset.scroll = {
top: s.scrollTop(),
left: s.scrollLeft()
}), this.originalPosition && (this.containment && (this.relative_container ? (o = this.relative_container.offset(),
t = [ this.containment[0] + o.left, this.containment[1] + o.top, this.containment[2] + o.left, this.containment[3] + o.top ]) : t = this.containment,
e.pageX - this.offset.click.left < t[0] && (l = t[0] + this.offset.click.left),
e.pageY - this.offset.click.top < t[1] && (c = t[1] + this.offset.click.top), e.pageX - this.offset.click.left > t[2] && (l = t[2] + this.offset.click.left),
e.pageY - this.offset.click.top > t[3] && (c = t[3] + this.offset.click.top)), a.grid && (i = a.grid[1] ? this.originalPageY + Math.round((c - this.originalPageY) / a.grid[1]) * a.grid[1] : this.originalPageY,
c = t ? i - this.offset.click.top >= t[1] || i - this.offset.click.top > t[3] ? i : i - this.offset.click.top >= t[1] ? i - a.grid[1] : i + a.grid[1] : i,
r = a.grid[0] ? this.originalPageX + Math.round((l - this.originalPageX) / a.grid[0]) * a.grid[0] : this.originalPageX,
l = t ? r - this.offset.click.left >= t[0] || r - this.offset.click.left > t[2] ? r : r - this.offset.click.left >= t[0] ? r - a.grid[0] : r + a.grid[0] : r)),
{
top: c - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : this.offset.scroll.top),
left: l - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : this.offset.scroll.left)
};
},
_clear: function() {
this.helper.removeClass("ui-draggable-dragging"), this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(),
this.helper = null, this.cancelHelperRemoval = !1;
},
_trigger: function(e, t, o) {
return o = o || this._uiHash(), n.ui.plugin.call(this, e, [ t, o ]), "drag" === e && (this.positionAbs = this._convertPositionTo("absolute")),
n.Widget.prototype._trigger.call(this, e, t, o);
},
plugins: {},
_uiHash: function() {
return {
helper: this.helper,
position: this.position,
originalPosition: this.originalPosition,
offset: this.positionAbs
};
}
}), n.ui.plugin.add("draggable", "connectToSortable", {
start: function(e, t) {
var o = n(this).data("ui-draggable"), i = o.options, r = n.extend({}, t, {
item: o.element
});
o.sortables = [], n(i.connectToSortable).each(function() {
var t = n.data(this, "ui-sortable");
t && !t.options.disabled && (o.sortables.push({
instance: t,
shouldRevert: t.options.revert
}), t.refreshPositions(), t._trigger("activate", e, r));
});
},
stop: function(e, t) {
var o = n(this).data("ui-draggable"), i = n.extend({}, t, {
item: o.element
});
n.each(o.sortables, function() {
this.instance.isOver ? (this.instance.isOver = 0, o.cancelHelperRemoval = !0, this.instance.cancelHelperRemoval = !1,
this.shouldRevert && (this.instance.options.revert = this.shouldRevert), this.instance._mouseStop(e),
this.instance.options.helper = this.instance.options._helper, "original" === o.options.helper && this.instance.currentItem.css({
top: "auto",
left: "auto"
})) : (this.instance.cancelHelperRemoval = !1, this.instance._trigger("deactivate", e, i));
});
},
drag: function(e, t) {
var o = n(this).data("ui-draggable"), i = this;
n.each(o.sortables, function() {
var r = !1, a = this;
this.instance.positionAbs = o.positionAbs, this.instance.helperProportions = o.helperProportions,
this.instance.offset.click = o.offset.click, this.instance._intersectsWith(this.instance.containerCache) && (r = !0,
n.each(o.sortables, function() {
return this.instance.positionAbs = o.positionAbs, this.instance.helperProportions = o.helperProportions,
this.instance.offset.click = o.offset.click, this !== a && this.instance._intersectsWith(this.instance.containerCache) && n.contains(a.instance.element[0], this.instance.element[0]) && (r = !1),
r;
})), r ? (this.instance.isOver || (this.instance.isOver = 1, this.instance.currentItem = n(i).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", !0),
this.instance.options._helper = this.instance.options.helper, this.instance.options.helper = function() {
return t.helper[0];
}, e.target = this.instance.currentItem[0], this.instance._mouseCapture(e, !0),
this.instance._mouseStart(e, !0, !0), this.instance.offset.click.top = o.offset.click.top,
this.instance.offset.click.left = o.offset.click.left, this.instance.offset.parent.left -= o.offset.parent.left - this.instance.offset.parent.left,
this.instance.offset.parent.top -= o.offset.parent.top - this.instance.offset.parent.top,
o._trigger("toSortable", e), o.dropped = this.instance.element, o.currentItem = o.element,
this.instance.fromOutside = o), this.instance.currentItem && this.instance._mouseDrag(e)) : this.instance.isOver && (this.instance.isOver = 0,
this.instance.cancelHelperRemoval = !0, this.instance.options.revert = !1, this.instance._trigger("out", e, this.instance._uiHash(this.instance)),
this.instance._mouseStop(e, !0), this.instance.options.helper = this.instance.options._helper,
this.instance.currentItem.remove(), this.instance.placeholder && this.instance.placeholder.remove(),
o._trigger("fromSortable", e), o.dropped = !1);
});
}
}), n.ui.plugin.add("draggable", "cursor", {
start: function() {
var e = n("body"), t = n(this).data("ui-draggable").options;
e.css("cursor") && (t._cursor = e.css("cursor")), e.css("cursor", t.cursor);
},
stop: function() {
var e = n(this).data("ui-draggable").options;
e._cursor && n("body").css("cursor", e._cursor);
}
}), n.ui.plugin.add("draggable", "opacity", {
start: function(e, t) {
var o = n(t.helper), i = n(this).data("ui-draggable").options;
o.css("opacity") && (i._opacity = o.css("opacity")), o.css("opacity", i.opacity);
},
stop: function(e, t) {
var o = n(this).data("ui-draggable").options;
o._opacity && n(t.helper).css("opacity", o._opacity);
}
}), n.ui.plugin.add("draggable", "scroll", {
start: function() {
var e = n(this).data("ui-draggable");
e.scrollParent[0] !== document && "HTML" !== e.scrollParent[0].tagName && (e.overflowOffset = e.scrollParent.offset());
},
drag: function(e) {
var t = n(this).data("ui-draggable"), o = t.options, i = !1;
t.scrollParent[0] !== document && "HTML" !== t.scrollParent[0].tagName ? (o.axis && "x" === o.axis || (t.overflowOffset.top + t.scrollParent[0].offsetHeight - e.pageY < o.scrollSensitivity ? t.scrollParent[0].scrollTop = i = t.scrollParent[0].scrollTop + o.scrollSpeed : e.pageY - t.overflowOffset.top < o.scrollSensitivity && (t.scrollParent[0].scrollTop = i = t.scrollParent[0].scrollTop - o.scrollSpeed)),
o.axis && "y" === o.axis || (t.overflowOffset.left + t.scrollParent[0].offsetWidth - e.pageX < o.scrollSensitivity ? t.scrollParent[0].scrollLeft = i = t.scrollParent[0].scrollLeft + o.scrollSpeed : e.pageX - t.overflowOffset.left < o.scrollSensitivity && (t.scrollParent[0].scrollLeft = i = t.scrollParent[0].scrollLeft - o.scrollSpeed))) : (o.axis && "x" === o.axis || (e.pageY - n(document).scrollTop() < o.scrollSensitivity ? i = n(document).scrollTop(n(document).scrollTop() - o.scrollSpeed) : n(window).height() - (e.pageY - n(document).scrollTop()) < o.scrollSensitivity && (i = n(document).scrollTop(n(document).scrollTop() + o.scrollSpeed))),
o.axis && "y" === o.axis || (e.pageX - n(document).scrollLeft() < o.scrollSensitivity ? i = n(document).scrollLeft(n(document).scrollLeft() - o.scrollSpeed) : n(window).width() - (e.pageX - n(document).scrollLeft()) < o.scrollSensitivity && (i = n(document).scrollLeft(n(document).scrollLeft() + o.scrollSpeed)))),
i !== !1 && n.ui.ddmanager && !o.dropBehaviour && n.ui.ddmanager.prepareOffsets(t, e);
}
}), n.ui.plugin.add("draggable", "snap", {
start: function() {
var e = n(this).data("ui-draggable"), t = e.options;
e.snapElements = [], n(t.snap.constructor !== String ? t.snap.items || ":data(ui-draggable)" : t.snap).each(function() {
var t = n(this), o = t.offset();
this !== e.element[0] && e.snapElements.push({
item: this,
width: t.outerWidth(),
height: t.outerHeight(),
top: o.top,
left: o.left
});
});
},
drag: function(e, t) {
var o, i, r, a, s, l, c, d, p, u, f = n(this).data("ui-draggable"), h = f.options, g = h.snapTolerance, b = t.offset.left, m = b + f.helperProportions.width, v = t.offset.top, x = v + f.helperProportions.height;
for (p = f.snapElements.length - 1; p >= 0; p--) s = f.snapElements[p].left, l = s + f.snapElements[p].width,
c = f.snapElements[p].top, d = c + f.snapElements[p].height, s - g > m || b > l + g || c - g > x || v > d + g || !n.contains(f.snapElements[p].item.ownerDocument, f.snapElements[p].item) ? (f.snapElements[p].snapping && f.options.snap.release && f.options.snap.release.call(f.element, e, n.extend(f._uiHash(), {
snapItem: f.snapElements[p].item
})), f.snapElements[p].snapping = !1) : ("inner" !== h.snapMode && (o = Math.abs(c - x) <= g,
i = Math.abs(d - v) <= g, r = Math.abs(s - m) <= g, a = Math.abs(l - b) <= g, o && (t.position.top = f._convertPositionTo("relative", {
top: c - f.helperProportions.height,
left: 0
}).top - f.margins.top), i && (t.position.top = f._convertPositionTo("relative", {
top: d,
left: 0
}).top - f.margins.top), r && (t.position.left = f._convertPositionTo("relative", {
top: 0,
left: s - f.helperProportions.width
}).left - f.margins.left), a && (t.position.left = f._convertPositionTo("relative", {
top: 0,
left: l
}).left - f.margins.left)), u = o || i || r || a, "outer" !== h.snapMode && (o = Math.abs(c - v) <= g,
i = Math.abs(d - x) <= g, r = Math.abs(s - b) <= g, a = Math.abs(l - m) <= g, o && (t.position.top = f._convertPositionTo("relative", {
top: c,
left: 0
}).top - f.margins.top), i && (t.position.top = f._convertPositionTo("relative", {
top: d - f.helperProportions.height,
left: 0
}).top - f.margins.top), r && (t.position.left = f._convertPositionTo("relative", {
top: 0,
left: s
}).left - f.margins.left), a && (t.position.left = f._convertPositionTo("relative", {
top: 0,
left: l - f.helperProportions.width
}).left - f.margins.left)), !f.snapElements[p].snapping && (o || i || r || a || u) && f.options.snap.snap && f.options.snap.snap.call(f.element, e, n.extend(f._uiHash(), {
snapItem: f.snapElements[p].item
})), f.snapElements[p].snapping = o || i || r || a || u);
}
}), n.ui.plugin.add("draggable", "stack", {
start: function() {
var e, t = this.data("ui-draggable").options, o = n.makeArray(n(t.stack)).sort(function(e, t) {
return (parseInt(n(e).css("zIndex"), 10) || 0) - (parseInt(n(t).css("zIndex"), 10) || 0);
});
o.length && (e = parseInt(n(o[0]).css("zIndex"), 10) || 0, n(o).each(function(t) {
n(this).css("zIndex", e + t);
}), this.css("zIndex", e + o.length));
}
}), n.ui.plugin.add("draggable", "zIndex", {
start: function(e, t) {
var o = n(t.helper), i = n(this).data("ui-draggable").options;
o.css("zIndex") && (i._zIndex = o.css("zIndex")), o.css("zIndex", i.zIndex);
},
stop: function(e, t) {
var o = n(this).data("ui-draggable").options;
o._zIndex && n(t.helper).css("zIndex", o._zIndex);
}
});
}(jQuery), function(n, e) {
var t = "ui-effects-";
n.effects = {
effect: {}
}, function(n, e) {
function t(n, e, t) {
var o = p[e.type] || {};
return null == n ? t || !e.def ? null : e.def : (n = o.floor ? ~~n : parseFloat(n),
isNaN(n) ? e.def : o.mod ? (n + o.mod) % o.mod : 0 > n ? 0 : o.max < n ? o.max : n);
}
function o(e) {
var t = c(), o = t._rgba = [];
return e = e.toLowerCase(), h(l, function(n, i) {
var r, a = i.re.exec(e), s = a && i.parse(a), l = i.space || "rgba";
return s ? (r = t[l](s), t[d[l].cache] = r[d[l].cache], o = t._rgba = r._rgba, !1) : void 0;
}), o.length ? ("0,0,0,0" === o.join() && n.extend(o, r.transparent), t) : r[e];
}
function i(n, e, t) {
return t = (t + 1) % 1, 1 > 6 * t ? n + 6 * (e - n) * t : 1 > 2 * t ? e : 2 > 3 * t ? n + 6 * (e - n) * (2 / 3 - t) : n;
}
var r, a = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", s = /^([\-+])=\s*(\d+\.?\d*)/, l = [ {
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
parse: function(n) {
return [ n[1], n[2], n[3], n[4] ];
}
}, {
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
parse: function(n) {
return [ 2.55 * n[1], 2.55 * n[2], 2.55 * n[3], n[4] ];
}
}, {
re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
parse: function(n) {
return [ parseInt(n[1], 16), parseInt(n[2], 16), parseInt(n[3], 16) ];
}
}, {
re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
parse: function(n) {
return [ parseInt(n[1] + n[1], 16), parseInt(n[2] + n[2], 16), parseInt(n[3] + n[3], 16) ];
}
}, {
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
space: "hsla",
parse: function(n) {
return [ n[1], n[2] / 100, n[3] / 100, n[4] ];
}
} ], c = n.Color = function(e, t, o, i) {
return new n.Color.fn.parse(e, t, o, i);
}, d = {
rgba: {
props: {
red: {
idx: 0,
type: "byte"
},
green: {
idx: 1,
type: "byte"
},
blue: {
idx: 2,
type: "byte"
}
}
},
hsla: {
props: {
hue: {
idx: 0,
type: "degrees"
},
saturation: {
idx: 1,
type: "percent"
},
lightness: {
idx: 2,
type: "percent"
}
}
}
}, p = {
"byte": {
floor: !0,
max: 255
},
percent: {
max: 1
},
degrees: {
mod: 360,
floor: !0
}
}, u = c.support = {}, f = n("<p>")[0], h = n.each;
f.style.cssText = "background-color:rgba(1,1,1,.5)", u.rgba = f.style.backgroundColor.indexOf("rgba") > -1,
h(d, function(n, e) {
e.cache = "_" + n, e.props.alpha = {
idx: 3,
type: "percent",
def: 1
};
}), c.fn = n.extend(c.prototype, {
parse: function(i, a, s, l) {
if (i === e) return this._rgba = [ null, null, null, null ], this;
(i.jquery || i.nodeType) && (i = n(i).css(a), a = e);
var p = this, u = n.type(i), f = this._rgba = [];
return a !== e && (i = [ i, a, s, l ], u = "array"), "string" === u ? this.parse(o(i) || r._default) : "array" === u ? (h(d.rgba.props, function(n, e) {
f[e.idx] = t(i[e.idx], e);
}), this) : "object" === u ? (i instanceof c ? h(d, function(n, e) {
i[e.cache] && (p[e.cache] = i[e.cache].slice());
}) : h(d, function(e, o) {
var r = o.cache;
h(o.props, function(n, e) {
if (!p[r] && o.to) {
if ("alpha" === n || null == i[n]) return;
p[r] = o.to(p._rgba);
}
p[r][e.idx] = t(i[n], e, !0);
}), p[r] && n.inArray(null, p[r].slice(0, 3)) < 0 && (p[r][3] = 1, o.from && (p._rgba = o.from(p[r])));
}), this) : void 0;
},
is: function(n) {
var e = c(n), t = !0, o = this;
return h(d, function(n, i) {
var r, a = e[i.cache];
return a && (r = o[i.cache] || i.to && i.to(o._rgba) || [], h(i.props, function(n, e) {
return null != a[e.idx] ? t = a[e.idx] === r[e.idx] : void 0;
})), t;
}), t;
},
_space: function() {
var n = [], e = this;
return h(d, function(t, o) {
e[o.cache] && n.push(t);
}), n.pop();
},
transition: function(n, e) {
var o = c(n), i = o._space(), r = d[i], a = 0 === this.alpha() ? c("transparent") : this, s = a[r.cache] || r.to(a._rgba), l = s.slice();
return o = o[r.cache], h(r.props, function(n, i) {
var r = i.idx, a = s[r], c = o[r], d = p[i.type] || {};
null !== c && (null === a ? l[r] = c : (d.mod && (c - a > d.mod / 2 ? a += d.mod : a - c > d.mod / 2 && (a -= d.mod)),
l[r] = t((c - a) * e + a, i)));
}), this[i](l);
},
blend: function(e) {
if (1 === this._rgba[3]) return this;
var t = this._rgba.slice(), o = t.pop(), i = c(e)._rgba;
return c(n.map(t, function(n, e) {
return (1 - o) * i[e] + o * n;
}));
},
toRgbaString: function() {
var e = "rgba(", t = n.map(this._rgba, function(n, e) {
return null == n ? e > 2 ? 1 : 0 : n;
});
return 1 === t[3] && (t.pop(), e = "rgb("), e + t.join() + ")";
},
toHslaString: function() {
var e = "hsla(", t = n.map(this.hsla(), function(n, e) {
return null == n && (n = e > 2 ? 1 : 0), e && 3 > e && (n = Math.round(100 * n) + "%"),
n;
});
return 1 === t[3] && (t.pop(), e = "hsl("), e + t.join() + ")";
},
toHexString: function(e) {
var t = this._rgba.slice(), o = t.pop();
return e && t.push(~~(255 * o)), "#" + n.map(t, function(n) {
return n = (n || 0).toString(16), 1 === n.length ? "0" + n : n;
}).join("");
},
toString: function() {
return 0 === this._rgba[3] ? "transparent" : this.toRgbaString();
}
}), c.fn.parse.prototype = c.fn, d.hsla.to = function(n) {
if (null == n[0] || null == n[1] || null == n[2]) return [ null, null, null, n[3] ];
var e, t, o = n[0] / 255, i = n[1] / 255, r = n[2] / 255, a = n[3], s = Math.max(o, i, r), l = Math.min(o, i, r), c = s - l, d = s + l, p = .5 * d;
return e = l === s ? 0 : o === s ? 60 * (i - r) / c + 360 : i === s ? 60 * (r - o) / c + 120 : 60 * (o - i) / c + 240,
t = 0 === c ? 0 : .5 >= p ? c / d : c / (2 - d), [ Math.round(e) % 360, t, p, null == a ? 1 : a ];
}, d.hsla.from = function(n) {
if (null == n[0] || null == n[1] || null == n[2]) return [ null, null, null, n[3] ];
var e = n[0] / 360, t = n[1], o = n[2], r = n[3], a = .5 >= o ? o * (1 + t) : o + t - o * t, s = 2 * o - a;
return [ Math.round(255 * i(s, a, e + 1 / 3)), Math.round(255 * i(s, a, e)), Math.round(255 * i(s, a, e - 1 / 3)), r ];
}, h(d, function(o, i) {
var r = i.props, a = i.cache, l = i.to, d = i.from;
c.fn[o] = function(o) {
if (l && !this[a] && (this[a] = l(this._rgba)), o === e) return this[a].slice();
var i, s = n.type(o), p = "array" === s || "object" === s ? o : arguments, u = this[a].slice();
return h(r, function(n, e) {
var o = p["object" === s ? n : e.idx];
null == o && (o = u[e.idx]), u[e.idx] = t(o, e);
}), d ? (i = c(d(u)), i[a] = u, i) : c(u);
}, h(r, function(e, t) {
c.fn[e] || (c.fn[e] = function(i) {
var r, a = n.type(i), l = "alpha" === e ? this._hsla ? "hsla" : "rgba" : o, c = this[l](), d = c[t.idx];
return "undefined" === a ? d : ("function" === a && (i = i.call(this, d), a = n.type(i)),
null == i && t.empty ? this : ("string" === a && (r = s.exec(i), r && (i = d + parseFloat(r[2]) * ("+" === r[1] ? 1 : -1))),
c[t.idx] = i, this[l](c)));
});
});
}), c.hook = function(e) {
var t = e.split(" ");
h(t, function(e, t) {
n.cssHooks[t] = {
set: function(e, i) {
var r, a, s = "";
if ("transparent" !== i && ("string" !== n.type(i) || (r = o(i)))) {
if (i = c(r || i), !u.rgba && 1 !== i._rgba[3]) {
for (a = "backgroundColor" === t ? e.parentNode : e; ("" === s || "transparent" === s) && a && a.style; ) try {
s = n.css(a, "backgroundColor"), a = a.parentNode;
} catch (l) {}
i = i.blend(s && "transparent" !== s ? s : "_default");
}
i = i.toRgbaString();
}
try {
e.style[t] = i;
} catch (l) {}
}
}, n.fx.step[t] = function(e) {
e.colorInit || (e.start = c(e.elem, t), e.end = c(e.end), e.colorInit = !0), n.cssHooks[t].set(e.elem, e.start.transition(e.end, e.pos));
};
});
}, c.hook(a), n.cssHooks.borderColor = {
expand: function(n) {
var e = {};
return h([ "Top", "Right", "Bottom", "Left" ], function(t, o) {
e["border" + o + "Color"] = n;
}), e;
}
}, r = n.Color.names = {
aqua: "#00ffff",
black: "#000000",
blue: "#0000ff",
fuchsia: "#ff00ff",
gray: "#808080",
green: "#008000",
lime: "#00ff00",
maroon: "#800000",
navy: "#000080",
olive: "#808000",
purple: "#800080",
red: "#ff0000",
silver: "#c0c0c0",
teal: "#008080",
white: "#ffffff",
yellow: "#ffff00",
transparent: [ null, null, null, 0 ],
_default: "#ffffff"
};
}(jQuery), function() {
function t(e) {
var t, o, i = e.ownerDocument.defaultView ? e.ownerDocument.defaultView.getComputedStyle(e, null) : e.currentStyle, r = {};
if (i && i.length && i[0] && i[i[0]]) for (o = i.length; o--; ) t = i[o], "string" == typeof i[t] && (r[n.camelCase(t)] = i[t]); else for (t in i) "string" == typeof i[t] && (r[t] = i[t]);
return r;
}
function o(e, t) {
var o, i, a = {};
for (o in t) i = t[o], e[o] !== i && (r[o] || (n.fx.step[o] || !isNaN(parseFloat(i))) && (a[o] = i));
return a;
}
var i = [ "add", "remove", "toggle" ], r = {
border: 1,
borderBottom: 1,
borderColor: 1,
borderLeft: 1,
borderRight: 1,
borderTop: 1,
borderWidth: 1,
margin: 1,
padding: 1
};
n.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function(e, t) {
n.fx.step[t] = function(n) {
("none" !== n.end && !n.setAttr || 1 === n.pos && !n.setAttr) && (jQuery.style(n.elem, t, n.end),
n.setAttr = !0);
};
}), n.fn.addBack || (n.fn.addBack = function(n) {
return this.add(null == n ? this.prevObject : this.prevObject.filter(n));
}), n.effects.animateClass = function(e, r, a, s) {
var l = n.speed(r, a, s);
return this.queue(function() {
var r, a = n(this), s = a.attr("class") || "", c = l.children ? a.find("*").addBack() : a;
c = c.map(function() {
var e = n(this);
return {
el: e,
start: t(this)
};
}), r = function() {
n.each(i, function(n, t) {
e[t] && a[t + "Class"](e[t]);
});
}, r(), c = c.map(function() {
return this.end = t(this.el[0]), this.diff = o(this.start, this.end), this;
}), a.attr("class", s), c = c.map(function() {
var e = this, t = n.Deferred(), o = n.extend({}, l, {
queue: !1,
complete: function() {
t.resolve(e);
}
});
return this.el.animate(this.diff, o), t.promise();
}), n.when.apply(n, c.get()).done(function() {
r(), n.each(arguments, function() {
var e = this.el;
n.each(this.diff, function(n) {
e.css(n, "");
});
}), l.complete.call(a[0]);
});
});
}, n.fn.extend({
addClass: function(e) {
return function(t, o, i, r) {
return o ? n.effects.animateClass.call(this, {
add: t
}, o, i, r) : e.apply(this, arguments);
};
}(n.fn.addClass),
removeClass: function(e) {
return function(t, o, i, r) {
return arguments.length > 1 ? n.effects.animateClass.call(this, {
remove: t
}, o, i, r) : e.apply(this, arguments);
};
}(n.fn.removeClass),
toggleClass: function(t) {
return function(o, i, r, a, s) {
return "boolean" == typeof i || i === e ? r ? n.effects.animateClass.call(this, i ? {
add: o
} : {
remove: o
}, r, a, s) : t.apply(this, arguments) : n.effects.animateClass.call(this, {
toggle: o
}, i, r, a);
};
}(n.fn.toggleClass),
switchClass: function(e, t, o, i, r) {
return n.effects.animateClass.call(this, {
add: t,
remove: e
}, o, i, r);
}
});
}(), function() {
function o(e, t, o, i) {
return n.isPlainObject(e) && (t = e, e = e.effect), e = {
effect: e
}, null == t && (t = {}), n.isFunction(t) && (i = t, o = null, t = {}), ("number" == typeof t || n.fx.speeds[t]) && (i = o,
o = t, t = {}), n.isFunction(o) && (i = o, o = null), t && n.extend(e, t), o = o || t.duration,
e.duration = n.fx.off ? 0 : "number" == typeof o ? o : o in n.fx.speeds ? n.fx.speeds[o] : n.fx.speeds._default,
e.complete = i || t.complete, e;
}
function i(e) {
return !e || "number" == typeof e || n.fx.speeds[e] ? !0 : "string" != typeof e || n.effects.effect[e] ? n.isFunction(e) ? !0 : "object" != typeof e || e.effect ? !1 : !0 : !0;
}
n.extend(n.effects, {
version: "1.10.3",
save: function(n, e) {
for (var o = 0; o < e.length; o++) null !== e[o] && n.data(t + e[o], n[0].style[e[o]]);
},
restore: function(n, o) {
var i, r;
for (r = 0; r < o.length; r++) null !== o[r] && (i = n.data(t + o[r]), i === e && (i = ""),
n.css(o[r], i));
},
setMode: function(n, e) {
return "toggle" === e && (e = n.is(":hidden") ? "show" : "hide"), e;
},
getBaseline: function(n, e) {
var t, o;
switch (n[0]) {
case "top":
t = 0;
break;
case "middle":
t = .5;
break;
case "bottom":
t = 1;
break;
default:
t = n[0] / e.height;
}
switch (n[1]) {
case "left":
o = 0;
break;
case "center":
o = .5;
break;
case "right":
o = 1;
break;
default:
o = n[1] / e.width;
}
return {
x: o,
y: t
};
},
createWrapper: function(e) {
if (e.parent().is(".ui-effects-wrapper")) return e.parent();
var t = {
width: e.outerWidth(!0),
height: e.outerHeight(!0),
"float": e.css("float")
}, o = n("<div></div>").addClass("ui-effects-wrapper").css({
fontSize: "100%",
background: "transparent",
border: "none",
margin: 0,
padding: 0
}), i = {
width: e.width(),
height: e.height()
}, r = document.activeElement;
try {
r.id;
} catch (a) {
r = document.body;
}
return e.wrap(o), (e[0] === r || n.contains(e[0], r)) && n(r).focus(), o = e.parent(),
"static" === e.css("position") ? (o.css({
position: "relative"
}), e.css({
position: "relative"
})) : (n.extend(t, {
position: e.css("position"),
zIndex: e.css("z-index")
}), n.each([ "top", "left", "bottom", "right" ], function(n, o) {
t[o] = e.css(o), isNaN(parseInt(t[o], 10)) && (t[o] = "auto");
}), e.css({
position: "relative",
top: 0,
left: 0,
right: "auto",
bottom: "auto"
})), e.css(i), o.css(t).show();
},
removeWrapper: function(e) {
var t = document.activeElement;
return e.parent().is(".ui-effects-wrapper") && (e.parent().replaceWith(e), (e[0] === t || n.contains(e[0], t)) && n(t).focus()),
e;
},
setTransition: function(e, t, o, i) {
return i = i || {}, n.each(t, function(n, t) {
var r = e.cssUnit(t);
r[0] > 0 && (i[t] = r[0] * o + r[1]);
}), i;
}
}), n.fn.extend({
effect: function() {
function e(e) {
function o() {
n.isFunction(r) && r.call(i[0]), n.isFunction(e) && e();
}
var i = n(this), r = t.complete, s = t.mode;
(i.is(":hidden") ? "hide" === s : "show" === s) ? (i[s](), o()) : a.call(i[0], t, o);
}
var t = o.apply(this, arguments), i = t.mode, r = t.queue, a = n.effects.effect[t.effect];
return n.fx.off || !a ? i ? this[i](t.duration, t.complete) : this.each(function() {
t.complete && t.complete.call(this);
}) : r === !1 ? this.each(e) : this.queue(r || "fx", e);
},
show: function(n) {
return function(e) {
if (i(e)) return n.apply(this, arguments);
var t = o.apply(this, arguments);
return t.mode = "show", this.effect.call(this, t);
};
}(n.fn.show),
hide: function(n) {
return function(e) {
if (i(e)) return n.apply(this, arguments);
var t = o.apply(this, arguments);
return t.mode = "hide", this.effect.call(this, t);
};
}(n.fn.hide),
toggle: function(n) {
return function(e) {
if (i(e) || "boolean" == typeof e) return n.apply(this, arguments);
var t = o.apply(this, arguments);
return t.mode = "toggle", this.effect.call(this, t);
};
}(n.fn.toggle),
cssUnit: function(e) {
var t = this.css(e), o = [];
return n.each([ "em", "px", "%", "pt" ], function(n, e) {
t.indexOf(e) > 0 && (o = [ parseFloat(t), e ]);
}), o;
}
});
}(), function() {
var e = {};
n.each([ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function(n, t) {
e[t] = function(e) {
return Math.pow(e, n + 2);
};
}), n.extend(e, {
Sine: function(n) {
return 1 - Math.cos(n * Math.PI / 2);
},
Circ: function(n) {
return 1 - Math.sqrt(1 - n * n);
},
Elastic: function(n) {
return 0 === n || 1 === n ? n : -Math.pow(2, 8 * (n - 1)) * Math.sin((80 * (n - 1) - 7.5) * Math.PI / 15);
},
Back: function(n) {
return n * n * (3 * n - 2);
},
Bounce: function(n) {
for (var e, t = 4; n < ((e = Math.pow(2, --t)) - 1) / 11; ) ;
return 1 / Math.pow(4, 3 - t) - 7.5625 * Math.pow((3 * e - 2) / 22 - n, 2);
}
}), n.each(e, function(e, t) {
n.easing["easeIn" + e] = t, n.easing["easeOut" + e] = function(n) {
return 1 - t(1 - n);
}, n.easing["easeInOut" + e] = function(n) {
return .5 > n ? t(2 * n) / 2 : 1 - t(-2 * n + 2) / 2;
};
});
}();
}(jQuery), function(n) {
n.effects.effect.slide = function(e, t) {
var o, i = n(this), r = [ "position", "top", "bottom", "left", "right", "width", "height" ], a = n.effects.setMode(i, e.mode || "show"), s = "show" === a, l = e.direction || "left", c = "up" === l || "down" === l ? "top" : "left", d = "up" === l || "left" === l, p = {};
n.effects.save(i, r), i.show(), o = e.distance || i["top" === c ? "outerHeight" : "outerWidth"](!0),
n.effects.createWrapper(i).css({
overflow: "hidden"
}), s && i.css(c, d ? isNaN(o) ? "-" + o : -o : o), p[c] = (s ? d ? "+=" : "-=" : d ? "-=" : "+=") + o,
i.animate(p, {
queue: !1,
duration: e.duration,
easing: e.easing,
complete: function() {
"hide" === a && i.hide(), n.effects.restore(i, r), n.effects.removeWrapper(i), t();
}
});
};
}(jQuery), define("libs/jquery-ui", function() {}), function($) {
var min = Math.min, max = Math.max, round = Math.floor, isStr = function(n) {
return "string" === $.type(n);
}, runPluginCallbacks = function(Instance, a_fn) {
function g(n) {
return n;
}
if ($.isArray(a_fn)) for (var i = 0, c = a_fn.length; c > i; i++) {
var fn = a_fn[i];
try {
isStr(fn) && (fn = eval(fn)), $.isFunction(fn) && g(fn)(Instance);
} catch (ex) {}
}
};
$.layout = {
version: "1.3.rc30.79",
revision: .033007,
browser: {},
effects: {
slide: {
all: {
duration: "fast"
},
north: {
direction: "up"
},
south: {
direction: "down"
},
east: {
direction: "right"
},
west: {
direction: "left"
}
},
drop: {
all: {
duration: "slow"
},
north: {
direction: "up"
},
south: {
direction: "down"
},
east: {
direction: "right"
},
west: {
direction: "left"
}
},
scale: {
all: {
duration: "fast"
}
},
blind: {},
clip: {},
explode: {},
fade: {},
fold: {},
puff: {},
size: {
all: {
easing: "swing"
}
}
},
config: {
optionRootKeys: "effects,panes,north,south,west,east,center".split(","),
allPanes: "north,south,west,east,center".split(","),
borderPanes: "north,south,west,east".split(","),
oppositeEdge: {
north: "south",
south: "north",
east: "west",
west: "east"
},
offscreenCSS: {
left: "-99999px",
right: "auto"
},
offscreenReset: "offscreenReset",
hidden: {
visibility: "hidden"
},
visible: {
visibility: "visible"
},
resizers: {
cssReq: {
position: "absolute",
padding: 0,
margin: 0,
fontSize: "1px",
textAlign: "left",
overflow: "hidden"
},
cssDemo: {
background: "#DDD",
border: "none"
}
},
togglers: {
cssReq: {
position: "absolute",
display: "block",
padding: 0,
margin: 0,
overflow: "hidden",
textAlign: "center",
fontSize: "1px",
cursor: "pointer",
zIndex: 1
},
cssDemo: {
background: "#AAA"
}
},
content: {
cssReq: {
position: "relative"
},
cssDemo: {
overflow: "auto",
padding: "10px"
},
cssDemoPane: {
overflow: "hidden",
padding: 0
}
},
panes: {
cssReq: {
position: "absolute",
margin: 0
},
cssDemo: {
padding: "10px",
background: "#FFF",
border: "1px solid #BBB",
overflow: "auto"
}
},
north: {
side: "top",
sizeType: "Height",
dir: "horz",
cssReq: {
top: 0,
bottom: "auto",
left: 0,
right: 0,
width: "auto"
}
},
south: {
side: "bottom",
sizeType: "Height",
dir: "horz",
cssReq: {
top: "auto",
bottom: 0,
left: 0,
right: 0,
width: "auto"
}
},
east: {
side: "right",
sizeType: "Width",
dir: "vert",
cssReq: {
left: "auto",
right: 0,
top: "auto",
bottom: "auto",
height: "auto"
}
},
west: {
side: "left",
sizeType: "Width",
dir: "vert",
cssReq: {
left: 0,
right: "auto",
top: "auto",
bottom: "auto",
height: "auto"
}
},
center: {
dir: "center",
cssReq: {
left: "auto",
right: "auto",
top: "auto",
bottom: "auto",
height: "auto",
width: "auto"
}
}
},
callbacks: {},
getParentPaneElem: function(n) {
var e = $(n), t = e.data("layout") || e.data("parentLayout");
if (t) {
var o = t.container;
if (o.data("layoutPane")) return o;
var i = o.closest("." + $.layout.defaults.panes.paneClass);
if (i.data("layoutPane")) return i;
}
return null;
},
getParentPaneInstance: function(n) {
var e = $.layout.getParentPaneElem(n);
return e ? e.data("layoutPane") : null;
},
getParentLayoutInstance: function(n) {
var e = $.layout.getParentPaneElem(n);
return e ? e.data("parentLayout") : null;
},
getEventObject: function(n) {
return "object" == typeof n && n.stopPropagation ? n : null;
},
parsePaneName: function(n) {
var e = $.layout.getEventObject(n), t = n;
return e && (e.stopPropagation(), t = $(this).data("layoutEdge")), t && !/^(west|east|north|south|center)$/.test(t) && ($.layout.msg('LAYOUT ERROR - Invalid pane-name: "' + t + '"'),
t = "error"), t;
},
plugins: {
draggable: !!$.fn.draggable,
effects: {
core: !!$.effects,
slide: $.effects && ($.effects.slide || $.effects.effect && $.effects.effect.slide)
}
},
onCreate: [],
onLoad: [],
onReady: [],
onDestroy: [],
onUnload: [],
afterOpen: [],
afterClose: [],
scrollbarWidth: function() {
return window.scrollbarWidth || $.layout.getScrollbarSize("width");
},
scrollbarHeight: function() {
return window.scrollbarHeight || $.layout.getScrollbarSize("height");
},
getScrollbarSize: function(n) {
var e = $('<div style="position: absolute; top: -10000px; left: -10000px; width: 100px; height: 100px; overflow: scroll;"></div>').appendTo("body"), t = {
width: e.css("width") - e[0].clientWidth,
height: e.height() - e[0].clientHeight
};
return e.remove(), window.scrollbarWidth = t.width, window.scrollbarHeight = t.height,
n.match(/^(width|height)$/) ? t[n] : t;
},
showInvisibly: function(n, e) {
if (n && n.length && (e || "none" === n.css("display"))) {
var t = n[0].style, o = {
display: t.display || "",
visibility: t.visibility || ""
};
return n.css({
display: "block",
visibility: "hidden"
}), o;
}
return {};
},
getElementDimensions: function(n, e) {
var t, o, i, r = {
css: {},
inset: {}
}, a = r.css, s = {
bottom: 0
}, l = $.layout.cssNum, c = n.offset();
return r.offsetLeft = c.left, r.offsetTop = c.top, e || (e = {}), $.each("Left,Right,Top,Bottom".split(","), function(l, c) {
t = a["border" + c] = $.layout.borderWidth(n, c), o = a["padding" + c] = $.layout.cssNum(n, "padding" + c),
i = c.toLowerCase(), r.inset[i] = e[i] >= 0 ? e[i] : o, s[i] = r.inset[i] + t;
}), a.width = n.width(), a.height = n.height(), a.top = l(n, "top", !0), a.bottom = l(n, "bottom", !0),
a.left = l(n, "left", !0), a.right = l(n, "right", !0), r.outerWidth = n.outerWidth(),
r.outerHeight = n.outerHeight(), r.innerWidth = max(0, r.outerWidth - s.left - s.right),
r.innerHeight = max(0, r.outerHeight - s.top - s.bottom), r.layoutWidth = n.innerWidth(),
r.layoutHeight = n.innerHeight(), r;
},
getElementStyles: function(n, e) {
var t, o, i, r, a, s, l = {}, c = n[0].style, d = e.split(","), p = "Top,Bottom,Left,Right".split(","), u = "Color,Style,Width".split(",");
for (r = 0; r < d.length; r++) if (t = d[r], t.match(/(border|padding|margin)$/)) for (a = 0; 4 > a; a++) if (o = p[a],
"border" === t) for (s = 0; 3 > s; s++) i = u[s], l[t + o + i] = c[t + o + i]; else l[t + o] = c[t + o]; else l[t] = c[t];
return l;
},
cssWidth: function(n, e) {
if (0 >= e) return 0;
var t = $.layout.browser.boxModel ? $.support.boxSizing ? n.css("boxSizing") : "content-box" : "border-box", o = $.layout.borderWidth, i = $.layout.cssNum, r = e;
return "border-box" !== t && (r -= o(n, "Left") + o(n, "Right")), "content-box" === t && (r -= i(n, "paddingLeft") + i(n, "paddingRight")),
max(0, r);
},
cssHeight: function(n, e) {
if (0 >= e) return 0;
var t = $.layout.browser.boxModel ? $.support.boxSizing ? n.css("boxSizing") : "content-box" : "border-box", o = $.layout.borderWidth, i = $.layout.cssNum, r = e;
return "border-box" !== t && (r -= o(n, "Top") + o(n, "Bottom")), "content-box" === t && (r -= i(n, "paddingTop") + i(n, "paddingBottom")),
max(0, r);
},
cssNum: function(n, e, t) {
n.jquery || (n = $(n));
var o = $.layout.showInvisibly(n), i = $.css(n[0], e, !0), r = t && "auto" == i ? i : Math.round(parseFloat(i) || 0);
return n.css(o), r;
},
borderWidth: function(n, e) {
n.jquery && (n = n[0]);
var t = "border" + e.substr(0, 1).toUpperCase() + e.substr(1);
return "none" === $.css(n, t + "Style", !0) ? 0 : Math.round(parseFloat($.css(n, t + "Width", !0)) || 0);
},
isMouseOverElem: function(n, e) {
var t = $(e || this), o = t.offset(), i = o.top, r = o.left, a = r + t.outerWidth(), s = i + t.outerHeight(), l = n.pageX, c = n.pageY;
return $.layout.browser.msie && 0 > l && 0 > c || l >= r && a >= l && c >= i && s >= c;
},
msg: function(n, e, t, o) {
function i() {
var n = $.support.fixedPosition ? "fixed" : "absolute", e = $('<div id="layoutLogger" style="position: ' + n + '; top: 5px; z-index: 999999; max-width: 25%; overflow: hidden; border: 1px solid #000; border-radius: 5px; background: #FBFBFB; box-shadow: 0 2px 10px rgba(0,0,0,0.3);">' + '<div style="font-size: 13px; font-weight: bold; padding: 5px 10px; background: #F6F6F6; border-radius: 5px 5px 0 0; cursor: move;">' + '<span style="float: right; padding-left: 7px; cursor: pointer;" title="Remove Console" onclick="$(this).closest(\'#layoutLogger\').remove()">X</span>Layout console.log</div>' + '<ul style="font-size: 13px; font-weight: none; list-style: none; margin: 0; padding: 0 0 2px;"></ul>' + "</div>").appendTo("body");
return e.css("left", $(window).width() - e.outerWidth() - 5), $.ui.draggable && e.draggable({
handle: ":first-child"
}), e;
}
if ($.isPlainObject(n) && window.debugData) {
"string" == typeof e ? (o = t, t = e) : "object" == typeof t && (o = t, t = null);
var r = t || "log( <object> )", a = $.extend({
sort: !1,
returnHTML: !1,
display: !1
}, o);
e === !0 || a.display ? debugData(n, r, a) : window.console && console.log(debugData(n, r, a));
} else if (e) alert(n); else if (window.console) console.log(n); else {
var s = "#layoutLogger", l = $(s);
l.length || (l = i()), l.children("ul").append('<li style="padding: 4px 10px; margin: 0; border-top: 1px solid #CCC;">' + n.replace(/\</g, "&lt;").replace(/\>/g, "&gt;") + "</li>");
}
}
};
var u = navigator.userAgent.toLowerCase(), m = /(chrome)[ \/]([\w.]+)/.exec(u) || /(webkit)[ \/]([\w.]+)/.exec(u) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(u) || /(msie) ([\w.]+)/.exec(u) || u.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(u) || [], b = m[1] || "", v = m[2] || 0, ie = "msie" === b;
$.layout.browser = {
version: v,
safari: "webkit" === b,
webkit: "chrome" === b,
msie: ie,
isIE6: ie && 6 == v,
boxModel: !ie || $.support.boxModel !== !1
}, b && ($.layout.browser[b] = !0), ie && $(function() {
$.layout.browser.boxModel = $.support.boxModel;
}), $.layout.defaults = {
name: "",
containerClass: "ui-layout-container",
inset: null,
scrollToBookmarkOnLoad: !0,
resizeWithWindow: !0,
resizeWithWindowDelay: 200,
resizeWithWindowMaxDelay: 0,
maskPanesEarly: !1,
onresizeall_start: null,
onresizeall_end: null,
onload_start: null,
onload_end: null,
onunload_start: null,
onunload_end: null,
initPanes: !0,
showErrorMessages: !0,
showDebugMessages: !1,
zIndex: null,
zIndexes: {
pane_normal: 0,
content_mask: 1,
resizer_normal: 2,
pane_sliding: 100,
pane_animate: 1e3,
resizer_drag: 1e4
},
errors: {
pane: "pane",
selector: "selector",
addButtonError: "Error Adding Button\nInvalid ",
containerMissing: "UI Layout Initialization Error\nThe specified layout-container does not exist.",
centerPaneMissing: "UI Layout Initialization Error\nThe center-pane element does not exist.\nThe center-pane is a required element.",
noContainerHeight: "UI Layout Initialization Warning\nThe layout-container \"CONTAINER\" has no height.\nTherefore the layout is 0-height and hence 'invisible'!",
callbackError: "UI Layout Callback Error\nThe EVENT callback is not a valid function."
},
panes: {
applyDemoStyles: !1,
closable: !0,
resizable: !0,
slidable: !0,
initClosed: !1,
initHidden: !1,
contentSelector: ".ui-layout-content",
contentIgnoreSelector: ".ui-layout-ignore",
findNestedContent: !1,
paneClass: "ui-layout-pane",
resizerClass: "ui-layout-resizer",
togglerClass: "ui-layout-toggler",
buttonClass: "ui-layout-button",
minSize: 0,
maxSize: 0,
spacing_open: 6,
spacing_closed: 6,
togglerLength_open: 50,
togglerLength_closed: 50,
togglerAlign_open: "center",
togglerAlign_closed: "center",
togglerContent_open: "",
togglerContent_closed: "",
resizerDblClickToggle: !0,
autoResize: !0,
autoReopen: !0,
resizerDragOpacity: 1,
maskContents: !1,
maskObjects: !1,
maskZindex: null,
resizingGrid: !1,
livePaneResizing: !1,
liveContentResizing: !1,
liveResizingTolerance: 1,
sliderCursor: "pointer",
slideTrigger_open: "click",
slideTrigger_close: "mouseleave",
slideDelay_open: 300,
slideDelay_close: 300,
hideTogglerOnSlide: !1,
preventQuickSlideClose: $.layout.browser.webkit,
preventPrematureSlideClose: !1,
tips: {
Open: "Open",
Close: "Close",
Resize: "Resize",
Slide: "Slide Open",
Pin: "Pin",
Unpin: "Un-Pin",
noRoomToOpen: "Not enough room to show this panel.",
minSizeWarning: "Panel has reached its minimum size",
maxSizeWarning: "Panel has reached its maximum size"
},
showOverflowOnHover: !1,
enableCursorHotkey: !0,
customHotkeyModifier: "SHIFT",
fxName: "slide",
fxSpeed: null,
fxSettings: {},
fxOpacityFix: !0,
animatePaneSizing: !1,
children: null,
containerSelector: "",
initChildren: !0,
destroyChildren: !0,
resizeChildren: !0,
triggerEventsOnLoad: !1,
triggerEventsDuringLiveResize: !0,
onshow_start: null,
onshow_end: null,
onhide_start: null,
onhide_end: null,
onopen_start: null,
onopen_end: null,
onclose_start: null,
onclose_end: null,
onresize_start: null,
onresize_end: null,
onsizecontent_start: null,
onsizecontent_end: null,
onswap_start: null,
onswap_end: null,
ondrag_start: null,
ondrag_end: null
},
north: {
paneSelector: ".ui-layout-north",
size: "auto",
resizerCursor: "n-resize",
customHotkey: ""
},
south: {
paneSelector: ".ui-layout-south",
size: "auto",
resizerCursor: "s-resize",
customHotkey: ""
},
east: {
paneSelector: ".ui-layout-east",
size: 200,
resizerCursor: "e-resize",
customHotkey: ""
},
west: {
paneSelector: ".ui-layout-west",
size: 200,
resizerCursor: "w-resize",
customHotkey: ""
},
center: {
paneSelector: ".ui-layout-center",
minWidth: 0,
minHeight: 0
}
}, $.layout.optionsMap = {
layout: "name,instanceKey,stateManagement,effects,inset,zIndexes,errors,zIndex,scrollToBookmarkOnLoad,showErrorMessages,maskPanesEarly,outset,resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay,onresizeall,onresizeall_start,onresizeall_end,onload,onload_start,onload_end,onunload,onunload_start,onunload_end".split(","),
center: "paneClass,contentSelector,contentIgnoreSelector,findNestedContent,applyDemoStyles,triggerEventsOnLoad,showOverflowOnHover,maskContents,maskObjects,liveContentResizing,containerSelector,children,initChildren,resizeChildren,destroyChildren,onresize,onresize_start,onresize_end,onsizecontent,onsizecontent_start,onsizecontent_end".split(","),
noDefault: "paneSelector,resizerCursor,customHotkey".split(",")
}, $.layout.transformData = function(n, e) {
var t, o, i, r, a, s, l, c = e ? {
panes: {},
center: {}
} : {};
if ("object" != typeof n) return c;
for (o in n) for (t = c, a = n[o], i = o.split("__"), l = i.length - 1, s = 0; l >= s; s++) r = i[s],
s === l ? t[r] = $.isPlainObject(a) ? $.layout.transformData(a) : a : (t[r] || (t[r] = {}),
t = t[r]);
return c;
}, $.layout.backwardCompatibility = {
map: {
applyDefaultStyles: "applyDemoStyles",
childOptions: "children",
initChildLayout: "initChildren",
destroyChildLayout: "destroyChildren",
resizeChildLayout: "resizeChildren",
resizeNestedLayout: "resizeChildren",
resizeWhileDragging: "livePaneResizing",
resizeContentWhileDragging: "liveContentResizing",
triggerEventsWhileDragging: "triggerEventsDuringLiveResize",
maskIframesOnResize: "maskContents",
useStateCookie: "stateManagement.enabled",
"cookie.autoLoad": "stateManagement.autoLoad",
"cookie.autoSave": "stateManagement.autoSave",
"cookie.keys": "stateManagement.stateKeys",
"cookie.name": "stateManagement.cookie.name",
"cookie.domain": "stateManagement.cookie.domain",
"cookie.path": "stateManagement.cookie.path",
"cookie.expires": "stateManagement.cookie.expires",
"cookie.secure": "stateManagement.cookie.secure",
noRoomToOpenTip: "tips.noRoomToOpen",
togglerTip_open: "tips.Close",
togglerTip_closed: "tips.Open",
resizerTip: "tips.Resize",
sliderTip: "tips.Slide"
},
renameOptions: function(n) {
function e(e, t) {
for (var o, i = e.split("."), r = i.length - 1, a = {
branch: n,
key: i[r]
}, s = 0; r > s; s++) o = i[s], a.branch = void 0 == a.branch[o] ? t ? a.branch[o] = {} : {} : a.branch[o];
return a;
}
var t, o, i, r = $.layout.backwardCompatibility.map;
for (var a in r) t = e(a), i = t.branch[t.key], void 0 !== i && (o = e(r[a], !0),
o.branch[o.key] = i, delete t.branch[t.key]);
},
renameAllOptions: function(n) {
var e = $.layout.backwardCompatibility.renameOptions;
return e(n), n.defaults && ("object" != typeof n.panes && (n.panes = {}), $.extend(!0, n.panes, n.defaults),
delete n.defaults), n.panes && e(n.panes), $.each($.layout.config.allPanes, function(t, o) {
n[o] && e(n[o]);
}), n;
}
}, $.fn.layout = function(opts) {
function keyDown(n) {
if (!n) return !0;
var e = n.keyCode;
if (33 > e) return !0;
var t, o, i, r, a = {
38: "north",
40: "south",
37: "west",
39: "east"
}, s = (n.altKey, n.shiftKey), l = n.ctrlKey, c = l && e >= 37 && 40 >= e;
return c && options[a[e]].enableCursorHotkey ? r = a[e] : (l || s) && $.each(_c.borderPanes, function(n, a) {
return t = options[a], o = t.customHotkey, i = t.customHotkeyModifier, (s && "SHIFT" == i || l && "CTRL" == i || l && s) && o && e === (isNaN(o) || 9 >= o ? o.toUpperCase().charCodeAt(0) : o) ? (r = a,
!1) : void 0;
}), r && $Ps[r] && options[r].closable && !state[r].isHidden ? (toggle(r), n.stopPropagation(),
n.returnValue = !1, !1) : !0;
}
function allowOverflow(n) {
if (isInitialized()) {
this && this.tagName && (n = this);
var e;
if (isStr(n) ? e = $Ps[n] : $(n).data("layoutRole") ? e = $(n) : $(n).parents().each(function() {
return $(this).data("layoutRole") ? (e = $(this), !1) : void 0;
}), e && e.length) {
var t = e.data("layoutEdge"), o = state[t];
if (o.cssSaved && resetOverflow(t), o.isSliding || o.isResizing || o.isClosed) return o.cssSaved = !1,
void 0;
var i = {
zIndex: options.zIndexes.resizer_normal + 1
}, r = {}, a = e.css("overflow"), s = e.css("overflowX"), l = e.css("overflowY");
"visible" != a && (r.overflow = a, i.overflow = "visible"), s && !s.match(/(visible|auto)/) && (r.overflowX = s,
i.overflowX = "visible"), l && !l.match(/(visible|auto)/) && (r.overflowY = s, i.overflowY = "visible"),
o.cssSaved = r, e.css(i), $.each(_c.allPanes, function(n, e) {
e != t && resetOverflow(e);
});
}
}
}
function resetOverflow(n) {
if (isInitialized()) {
this && this.tagName && (n = this);
var e;
if (isStr(n) ? e = $Ps[n] : $(n).data("layoutRole") ? e = $(n) : $(n).parents().each(function() {
return $(this).data("layoutRole") ? (e = $(this), !1) : void 0;
}), e && e.length) {
var t = e.data("layoutEdge"), o = state[t], i = o.cssSaved || {};
o.isSliding || o.isResizing || e.css("zIndex", options.zIndexes.pane_normal), e.css(i),
o.cssSaved = !1;
}
}
}
var browser = $.layout.browser, _c = $.layout.config, cssW = $.layout.cssWidth, cssH = $.layout.cssHeight, elDims = $.layout.getElementDimensions, styles = $.layout.getElementStyles, evtObj = $.layout.getEventObject, evtPane = $.layout.parsePaneName, options = $.extend(!0, {}, $.layout.defaults), effects = options.effects = $.extend(!0, {}, $.layout.effects), state = {
id: "layout" + $.now(),
initialized: !1,
paneResizing: !1,
panesSliding: {},
container: {
innerWidth: 0,
innerHeight: 0,
outerWidth: 0,
outerHeight: 0,
layoutWidth: 0,
layoutHeight: 0
},
north: {
childIdx: 0
},
south: {
childIdx: 0
},
east: {
childIdx: 0
},
west: {
childIdx: 0
},
center: {
childIdx: 0
}
}, children = {
north: null,
south: null,
east: null,
west: null,
center: null
}, timer = {
data: {},
set: function(n, e, t) {
timer.clear(n), timer.data[n] = setTimeout(e, t);
},
clear: function(n) {
var e = timer.data;
e[n] && (clearTimeout(e[n]), delete e[n]);
}
}, _log = function(n, e, t) {
var o = options;
return (o.showErrorMessages && !t || t && o.showDebugMessages) && $.layout.msg(o.name + " / " + n, e !== !1),
!1;
}, _runCallbacks = function(evtName, pane, skipBoundEvents) {
function g(n) {
return n;
}
var hasPane = pane && isStr(pane), s = hasPane ? state[pane] : state, o = hasPane ? options[pane] : options, lName = options.name, lng = evtName + (evtName.match(/_/) ? "" : "_end"), shrt = lng.match(/_end$/) ? lng.substr(0, lng.length - 4) : "", fn = o[lng] || o[shrt], retVal = "NC", args = [], $P;
if (hasPane || "boolean" !== $.type(pane) || (skipBoundEvents = pane, pane = ""),
fn) try {
isStr(fn) && (fn.match(/,/) ? (args = fn.split(","), fn = eval(args[0])) : fn = eval(fn)),
$.isFunction(fn) && (retVal = args.length ? g(fn)(args[1]) : hasPane ? g(fn)(pane, $Ps[pane], s, o, lName) : g(fn)(Instance, s, o, lName));
} catch (ex) {
_log(options.errors.callbackError.replace(/EVENT/, $.trim((pane || "") + " " + lng)), !1),
"string" === $.type(ex) && string.length && _log("Exception: " + ex, !1);
}
return skipBoundEvents || retVal === !1 || (hasPane ? ($P = $Ps[pane], o = options[pane],
s = state[pane], $P.triggerHandler("layoutpane" + lng, [ pane, $P, s, o, lName ]),
shrt && $P.triggerHandler("layoutpane" + shrt, [ pane, $P, s, o, lName ])) : ($N.triggerHandler("layout" + lng, [ Instance, s, o, lName ]),
shrt && $N.triggerHandler("layout" + shrt, [ Instance, s, o, lName ]))), hasPane && "onresize_end" === evtName && resizeChildren(pane + "", !0),
retVal;
}, _fixIframe = function(n) {
if (!browser.mozilla) {
var e = $Ps[n];
"IFRAME" === state[n].tagName ? e.css(_c.hidden).css(_c.visible) : e.find("IFRAME").css(_c.hidden).css(_c.visible);
}
}, cssSize = function(n, e) {
var t = "horz" == _c[n].dir ? cssH : cssW;
return t($Ps[n], e);
}, cssMinDims = function(n) {
var e = $Ps[n], t = _c[n].dir, o = {
minWidth: 1001 - cssW(e, 1e3),
minHeight: 1001 - cssH(e, 1e3)
};
return "horz" === t && (o.minSize = o.minHeight), "vert" === t && (o.minSize = o.minWidth),
o;
}, setOuterWidth = function(n, e, t) {
var o, i = n;
isStr(n) ? i = $Ps[n] : n.jquery || (i = $(n)), o = cssW(i, e), i.css({
width: o
}), o > 0 ? t && i.data("autoHidden") && i.innerHeight() > 0 && (i.show().data("autoHidden", !1),
browser.mozilla || i.css(_c.hidden).css(_c.visible)) : t && !i.data("autoHidden") && i.hide().data("autoHidden", !0);
}, setOuterHeight = function(n, e, t) {
var o, i = n;
isStr(n) ? i = $Ps[n] : n.jquery || (i = $(n)), o = cssH(i, e), i.css({
height: o,
visibility: "visible"
}), o > 0 && i.innerWidth() > 0 ? t && i.data("autoHidden") && (i.show().data("autoHidden", !1),
browser.mozilla || i.css(_c.hidden).css(_c.visible)) : t && !i.data("autoHidden") && i.hide().data("autoHidden", !0);
}, _parseSize = function(n, e, t) {
if (t || (t = _c[n].dir), isStr(e) && e.match(/%/) && (e = "100%" === e ? -1 : parseInt(e, 10) / 100),
0 === e) return 0;
if (e >= 1) return parseInt(e, 10);
var o = options, i = 0;
if ("horz" == t ? i = sC.innerHeight - ($Ps.north ? o.north.spacing_open : 0) - ($Ps.south ? o.south.spacing_open : 0) : "vert" == t && (i = sC.innerWidth - ($Ps.west ? o.west.spacing_open : 0) - ($Ps.east ? o.east.spacing_open : 0)),
-1 === e) return i;
if (e > 0) return round(i * e);
if ("center" == n) return 0;
var r = "horz" === t ? "height" : "width", a = $Ps[n], s = "height" === r ? $Cs[n] : !1, l = $.layout.showInvisibly(a), c = a.css(r), d = s ? s.css(r) : 0;
return a.css(r, "auto"), s && s.css(r, "auto"), e = "height" === r ? a.outerHeight() : a.outerWidth(),
a.css(r, c).css(l), s && s.css(r, d), e;
}, getPaneSize = function(n, e) {
var t = $Ps[n], o = options[n], i = state[n], r = e ? o.spacing_open : 0, a = e ? o.spacing_closed : 0;
return !t || i.isHidden ? 0 : i.isClosed || i.isSliding && e ? a : "horz" === _c[n].dir ? t.outerHeight() + r : t.outerWidth() + r;
}, setSizeLimits = function(n, e) {
if (isInitialized()) {
var t = options[n], o = state[n], i = _c[n], r = i.dir, a = (i.sizeType.toLowerCase(),
void 0 != e ? e : o.isSliding), s = ($Ps[n], t.spacing_open), l = _c.oppositeEdge[n], c = state[l], d = $Ps[l], p = !d || c.isVisible === !1 || c.isSliding ? 0 : "horz" == r ? d.outerHeight() : d.outerWidth(), u = (!d || c.isHidden ? 0 : options[l][c.isClosed !== !1 ? "spacing_closed" : "spacing_open"]) || 0, f = "horz" == r ? sC.innerHeight : sC.innerWidth, h = cssMinDims("center"), g = "horz" == r ? max(options.center.minHeight, h.minHeight) : max(options.center.minWidth, h.minWidth), b = f - s - (a ? 0 : _parseSize("center", g, r) + p + u), m = o.minSize = max(_parseSize(n, t.minSize), cssMinDims(n).minSize), v = o.maxSize = min(t.maxSize ? _parseSize(n, t.maxSize) : 1e5, b), x = o.resizerPosition = {}, y = sC.inset.top, w = sC.inset.left, k = sC.innerWidth, C = sC.innerHeight, S = t.spacing_open;
switch (n) {
case "north":
x.min = y + m, x.max = y + v;
break;
case "west":
x.min = w + m, x.max = w + v;
break;
case "south":
x.min = y + C - v - S, x.max = y + C - m - S;
break;
case "east":
x.min = w + k - v - S, x.max = w + k - m - S;
}
}
}, calcNewCenterPaneDims = function() {
var n = {
top: getPaneSize("north", !0),
bottom: getPaneSize("south", !0),
left: getPaneSize("west", !0),
right: getPaneSize("east", !0),
width: 0,
height: 0
};
return n.width = sC.innerWidth - n.left - n.right, n.height = sC.innerHeight - n.bottom - n.top,
n.top += sC.inset.top, n.bottom += sC.inset.bottom, n.left += sC.inset.left, n.right += sC.inset.right,
n;
}, getHoverClasses = function(n, e) {
var t = $(n), o = t.data("layoutRole"), i = t.data("layoutEdge"), r = options[i], a = r[o + "Class"], s = "-" + i, l = "-open", c = "-closed", d = "-sliding", p = "-hover ", u = t.hasClass(a + c) ? c : l, f = u === c ? l : c, h = a + p + (a + s + p) + (a + u + p) + (a + s + u + p);
return e && (h += a + f + p + (a + s + f + p)), "resizer" == o && t.hasClass(a + d) && (h += a + d + p + (a + s + d + p)),
$.trim(h);
}, addHover = function(n, e) {
var t = $(e || this);
n && "toggler" === t.data("layoutRole") && n.stopPropagation(), t.addClass(getHoverClasses(t));
}, removeHover = function(n, e) {
var t = $(e || this);
t.removeClass(getHoverClasses(t, !0));
}, onResizerEnter = function() {
var n = $(this).data("layoutEdge"), e = state[n];
e.isClosed || e.isResizing || state.paneResizing || ($.fn.disableSelection && $("body").disableSelection(),
options.maskPanesEarly && showMasks(n, {
resizing: !0
}));
}, onResizerLeave = function(n, e) {
var t = e || this, o = $(t).data("layoutEdge"), i = o + "ResizerLeave";
timer.clear(o + "_openSlider"), timer.clear(i), e ? state.paneResizing || ($.fn.enableSelection && $("body").enableSelection(),
options.maskPanesEarly && hideMasks()) : timer.set(i, function() {
onResizerLeave(n, t);
}, 200);
}, _create = function() {
initOptions();
var n = options, e = state;
return e.creatingLayout = !0, runPluginCallbacks(Instance, $.layout.onCreate), !1 === _runCallbacks("onload_start") ? "cancel" : (_initContainer(),
initHotkeys(), $(window).bind("unload." + sID, unload), runPluginCallbacks(Instance, $.layout.onLoad),
n.initPanes && _initLayoutElements(), delete e.creatingLayout, state.initialized);
}, isInitialized = function() {
return state.initialized || state.creatingLayout ? !0 : _initLayoutElements();
}, _initLayoutElements = function(n) {
var e = options;
if (!$N.is(":visible")) return !n && browser.webkit && "BODY" === $N[0].tagName && setTimeout(function() {
_initLayoutElements(!0);
}, 50), !1;
if (!getPane("center").length) return _log(e.errors.centerPaneMissing);
if (state.creatingLayout = !0, $.extend(sC, elDims($N, e.inset)), initPanes(), e.scrollToBookmarkOnLoad) {
var t = self.location;
t.hash && t.replace(t.hash);
}
return Instance.hasParentLayout ? e.resizeWithWindow = !1 : e.resizeWithWindow && $(window).bind("resize." + sID, windowResize),
delete state.creatingLayout, state.initialized = !0, runPluginCallbacks(Instance, $.layout.onReady),
_runCallbacks("onload_end"), !0;
}, createChildren = function(n, e) {
var t = evtPane.call(this, n), o = $Ps[t];
if (o) {
var i = $Cs[t], r = state[t], a = options[t], s = options.stateManagement || {}, l = e ? a.children = e : a.children;
if ($.isPlainObject(l)) l = [ l ]; else if (!l || !$.isArray(l)) return;
$.each(l, function(n, e) {
if ($.isPlainObject(e)) {
var a = e.containerSelector ? o.find(e.containerSelector) : i || o;
a.each(function() {
var n = $(this), o = n.data("layout");
if (!o) {
if (setInstanceKey({
container: n,
options: e
}, r), s.includeChildren && state.stateData[t]) {
var i = state.stateData[t].children || {}, a = i[e.instanceKey], l = e.stateManagement || (e.stateManagement = {
autoLoad: !0
});
l.autoLoad === !0 && a && (l.autoSave = !1, l.includeChildren = !0, l.autoLoad = $.extend(!0, {}, a));
}
o = n.layout(e), o && refreshChildren(t, o);
}
});
}
});
}
}, setInstanceKey = function(n, e) {
var t = n.container, o = n.options, i = o.stateManagement, r = o.instanceKey || t.data("layoutInstanceKey");
return r || (r = (i && i.cookie ? i.cookie.name : "") || o.name), r = r ? r.replace(/[^\w-]/gi, "_").replace(/_{2,}/g, "_") : "layout" + ++e.childIdx,
o.instanceKey = r, t.data("layoutInstanceKey", r), r;
}, refreshChildren = function(n, e) {
var t, o = $Ps[n], i = children[n], r = state[n];
$.isPlainObject(i) && ($.each(i, function(n, e) {
e.destroyed && delete i[n];
}), $.isEmptyObject(i) && (i = children[n] = null)), e || i || (e = o.data("layout")),
e && (e.hasParentLayout = !0, t = e.options, setInstanceKey(e, r), i || (i = children[n] = {}),
i[t.instanceKey] = e.container.data("layout")), Instance[n].children = children[n],
e || createChildren(n);
}, windowResize = function() {
var n = options, e = Number(n.resizeWithWindowDelay);
10 > e && (e = 100), timer.clear("winResize"), timer.set("winResize", function() {
timer.clear("winResize"), timer.clear("winResizeRepeater");
var e = elDims($N, n.inset);
(e.innerWidth !== sC.innerWidth || e.innerHeight !== sC.innerHeight) && resizeAll();
}, e), timer.data.winResizeRepeater || setWindowResizeRepeater();
}, setWindowResizeRepeater = function() {
var n = Number(options.resizeWithWindowMaxDelay);
n > 0 && timer.set("winResizeRepeater", function() {
setWindowResizeRepeater(), resizeAll();
}, n);
}, unload = function() {
_runCallbacks("onunload_start"), runPluginCallbacks(Instance, $.layout.onUnload),
_runCallbacks("onunload_end");
}, _initContainer = function() {
var n, e, t = $N[0], o = $("html"), i = sC.tagName = t.tagName, r = sC.id = t.id, a = sC.className = t.className, s = options, l = s.name, c = "position,margin,padding,border", d = "layoutCSS", p = {}, u = "hidden", f = $N.data("parentLayout"), h = $N.data("layoutEdge"), g = f && h, b = $.layout.cssNum;
sC.selector = $N.selector.split(".slice")[0], sC.ref = (s.name ? s.name + " layout / " : "") + i + (r ? "#" + r : a ? ".[" + a + "]" : ""),
sC.isBody = "BODY" === i, g || sC.isBody || (n = $N.closest("." + $.layout.defaults.panes.paneClass),
f = n.data("parentLayout"), h = n.data("layoutEdge"), g = f && h), $N.data({
layout: Instance,
layoutContainer: sID
}).addClass(s.containerClass);
var m = {
destroy: "",
initPanes: "",
resizeAll: "resizeAll",
resize: "resizeAll"
};
for (l in m) $N.bind("layout" + l.toLowerCase() + "." + sID, Instance[m[l] || l]);
g && (Instance.hasParentLayout = !0, f.refreshChildren(h, Instance)), $N.data(d) || (sC.isBody ? ($N.data(d, $.extend(styles($N, c), {
height: $N.css("height"),
overflow: $N.css("overflow"),
overflowX: $N.css("overflowX"),
overflowY: $N.css("overflowY")
})), o.data(d, $.extend(styles(o, "padding"), {
height: "auto",
overflow: o.css("overflow"),
overflowX: o.css("overflowX"),
overflowY: o.css("overflowY")
}))) : $N.data(d, styles($N, c + ",top,bottom,left,right,width,height,overflow,overflowX,overflowY")));
try {
if (p = {
overflow: u,
overflowX: u,
overflowY: u
}, $N.css(p), s.inset && !$.isPlainObject(s.inset) && (e = parseInt(s.inset, 10) || 0,
s.inset = {
top: e,
bottom: e,
left: e,
right: e
}), sC.isBody) s.outset ? $.isPlainObject(s.outset) || (e = parseInt(s.outset, 10) || 0,
s.outset = {
top: e,
bottom: e,
left: e,
right: e
}) : s.outset = {
top: b(o, "paddingTop"),
bottom: b(o, "paddingBottom"),
left: b(o, "paddingLeft"),
right: b(o, "paddingRight")
}, o.css(p).css({
height: "100%",
border: "none",
padding: 0,
margin: 0
}), browser.isIE6 ? ($N.css({
width: "100%",
height: "100%",
border: "none",
padding: 0,
margin: 0,
position: "relative"
}), s.inset || (s.inset = elDims($N).inset)) : ($N.css({
width: "auto",
height: "auto",
margin: 0,
position: "absolute"
}), $N.css(s.outset)), $.extend(sC, elDims($N, s.inset)); else {
var v = $N.css("position");
v && v.match(/(fixed|absolute|relative)/) || $N.css("position", "relative"), $N.is(":visible") && ($.extend(sC, elDims($N, s.inset)),
sC.innerHeight < 1 && _log(s.errors.noContainerHeight.replace(/CONTAINER/, sC.ref)));
}
b($N, "minWidth") && $N.parent().css("overflowX", "auto"), b($N, "minHeight") && $N.parent().css("overflowY", "auto");
} catch (x) {}
}, initHotkeys = function(n) {
n = n ? n.split(",") : _c.borderPanes, $.each(n, function(n, e) {
var t = options[e];
return t.enableCursorHotkey || t.customHotkey ? ($(document).bind("keydown." + sID, keyDown),
!1) : void 0;
});
}, initOptions = function() {
function n(n) {
var e = options[n], t = options.panes;
e.fxSettings || (e.fxSettings = {}), t.fxSettings || (t.fxSettings = {}), $.each([ "_open", "_close", "_size" ], function(o, i) {
var r = "fxName" + i, a = "fxSpeed" + i, s = "fxSettings" + i, l = e[r] = e[r] || t[r] || e.fxName || t.fxName || "none", c = $.effects && ($.effects[l] || $.effects.effect && $.effects.effect[l]);
"none" !== l && options.effects[l] && c || (l = e[r] = "none");
var d = options.effects[l] || {}, p = d.all || null, u = d[n] || null;
e[a] = e[a] || t[a] || e.fxSpeed || t.fxSpeed || null, e[s] = $.extend(!0, {}, p, u, t.fxSettings, e.fxSettings, t[s], e[s]);
}), delete e.fxName, delete e.fxSpeed, delete e.fxSettings;
}
var e, t, o, i, r, a, s;
if (opts = $.layout.transformData(opts, !0), opts = $.layout.backwardCompatibility.renameAllOptions(opts),
!$.isEmptyObject(opts.panes)) {
for (e = $.layout.optionsMap.noDefault, r = 0, a = e.length; a > r; r++) o = e[r],
delete opts.panes[o];
for (e = $.layout.optionsMap.layout, r = 0, a = e.length; a > r; r++) o = e[r],
delete opts.panes[o];
}
e = $.layout.optionsMap.layout;
var l = $.layout.config.optionRootKeys;
for (o in opts) i = opts[o], $.inArray(o, l) < 0 && $.inArray(o, e) < 0 && (opts.panes[o] || (opts.panes[o] = $.isPlainObject(i) ? $.extend(!0, {}, i) : i),
delete opts[o]);
$.extend(!0, options, opts), $.each(_c.allPanes, function(i, r) {
if (_c[r] = $.extend(!0, {}, _c.panes, _c[r]), t = options.panes, s = options[r],
"center" === r) for (e = $.layout.optionsMap.center, i = 0, a = e.length; a > i; i++) o = e[i],
opts.center[o] || !opts.panes[o] && s[o] || (s[o] = t[o]); else s = options[r] = $.extend(!0, {}, t, s),
n(r), s.resizerClass || (s.resizerClass = "ui-layout-resizer"), s.togglerClass || (s.togglerClass = "ui-layout-toggler");
s.paneClass || (s.paneClass = "ui-layout-pane");
});
var c = opts.zIndex, d = options.zIndexes;
c > 0 && (d.pane_normal = c, d.content_mask = max(c + 1, d.content_mask), d.resizer_normal = max(c + 2, d.resizer_normal)),
delete options.panes;
}, getPane = function(n) {
var e = options[n].paneSelector;
if ("#" === e.substr(0, 1)) return $N.find(e).eq(0);
var t = $N.children(e).eq(0);
return t.length ? t : $N.children("form:first").children(e).eq(0);
}, initPanes = function(n) {
evtPane(n), $.each(_c.allPanes, function(n, e) {
addPane(e, !0);
}), initHandles(), $.each(_c.borderPanes, function(n, e) {
$Ps[e] && state[e].isVisible && (setSizeLimits(e), makePaneFit(e));
}), sizeMidPanes("center"), $.each(_c.allPanes, function(n, e) {
afterInitPane(e);
});
}, addPane = function(n, e) {
if (e || isInitialized()) {
var t, o, i, r = options[n], a = state[n], s = _c[n], l = s.dir, c = (a.fx, r.spacing_open || 0,
"center" === n), d = {}, p = $Ps[n];
if (p ? removePane(n, !1, !0, !1) : $Cs[n] = !1, p = $Ps[n] = getPane(n), !p.length) return $Ps[n] = !1,
void 0;
if (!p.data("layoutCSS")) {
var u = "position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border";
p.data("layoutCSS", styles(p, u));
}
Instance[n] = {
name: n,
pane: $Ps[n],
content: $Cs[n],
options: options[n],
state: state[n],
children: children[n]
}, p.data({
parentLayout: Instance,
layoutPane: Instance[n],
layoutEdge: n,
layoutRole: "pane"
}).css(s.cssReq).css("zIndex", options.zIndexes.pane_normal).css(r.applyDemoStyles ? s.cssDemo : {}).addClass(r.paneClass + " " + r.paneClass + "-" + n).bind("mouseenter." + sID, addHover).bind("mouseleave." + sID, removeHover);
var f, h = {
hide: "",
show: "",
toggle: "",
close: "",
open: "",
slideOpen: "",
slideClose: "",
slideToggle: "",
size: "sizePane",
sizePane: "sizePane",
sizeContent: "",
sizeHandles: "",
enableClosable: "",
disableClosable: "",
enableSlideable: "",
disableSlideable: "",
enableResizable: "",
disableResizable: "",
swapPanes: "swapPanes",
swap: "swapPanes",
move: "swapPanes",
removePane: "removePane",
remove: "removePane",
createChildren: "",
resizeChildren: "",
resizeAll: "resizeAll",
resizeLayout: "resizeAll"
};
for (f in h) p.bind("layoutpane" + f.toLowerCase() + "." + sID, Instance[h[f] || f]);
initContent(n, !1), c || (t = a.size = _parseSize(n, r.size), o = _parseSize(n, r.minSize) || 1,
i = _parseSize(n, r.maxSize) || 1e5, t > 0 && (t = max(min(t, i), o)), a.autoResize = r.autoResize,
a.isClosed = !1, a.isSliding = !1, a.isResizing = !1, a.isHidden = !1, a.pins || (a.pins = [])),
a.tagName = p[0].tagName, a.edge = n, a.noRoom = !1, a.isVisible = !0, setPanePosition(n),
"horz" === l ? d.height = cssH(p, t) : "vert" === l && (d.width = cssW(p, t)), p.css(d),
"horz" != l && sizeMidPanes(n, !0), state.initialized && (initHandles(n), initHotkeys(n)),
r.initClosed && r.closable && !r.initHidden ? close(n, !0, !0) : r.initHidden || r.initClosed ? hide(n) : a.noRoom || p.css("display", "block"),
p.css("visibility", "visible"), r.showOverflowOnHover && p.hover(allowOverflow, resetOverflow),
state.initialized && afterInitPane(n);
}
}, afterInitPane = function(n) {
var e = $Ps[n], t = state[n], o = options[n];
e && (e.data("layout") && refreshChildren(n, e.data("layout")), t.isVisible && (state.initialized ? resizeAll() : sizeContent(n),
o.triggerEventsOnLoad ? _runCallbacks("onresize_end", n) : resizeChildren(n, !0)),
o.initChildren && o.children && createChildren(n));
}, setPanePosition = function(n) {
n = n ? n.split(",") : _c.borderPanes, $.each(n, function(n, e) {
var t = $Ps[e], o = $Rs[e], i = (options[e], state[e]), r = _c[e].side, a = {};
if (t) {
switch (e) {
case "north":
a.top = sC.inset.top, a.left = sC.inset.left, a.right = sC.inset.right;
break;
case "south":
a.bottom = sC.inset.bottom, a.left = sC.inset.left, a.right = sC.inset.right;
break;
case "west":
a.left = sC.inset.left;
break;
case "east":
a.right = sC.inset.right;
break;
case "center": }
t.css(a), o && i.isClosed ? o.css(r, sC.inset[r]) : o && !i.isHidden && o.css(r, sC.inset[r] + getPaneSize(e));
}
});
}, initHandles = function(n) {
n = n ? n.split(",") : _c.borderPanes, $.each(n, function(n, e) {
var t = $Ps[e];
if ($Rs[e] = !1, $Ts[e] = !1, t) {
var o = options[e], i = state[e], r = (_c[e], "#" === o.paneSelector.substr(0, 1) ? o.paneSelector.substr(1) : ""), a = o.resizerClass, s = o.togglerClass, l = (i.isVisible ? o.spacing_open : o.spacing_closed,
"-" + e), c = (i.isVisible ? "-open" : "-closed", Instance[e]), d = c.resizer = $Rs[e] = $("<div></div>"), p = c.toggler = o.closable ? $Ts[e] = $("<div></div>") : !1;
!i.isVisible && o.slidable && d.attr("title", o.tips.Slide).css("cursor", o.sliderCursor),
d.attr("id", r ? r + "-resizer" : "").data({
parentLayout: Instance,
layoutPane: Instance[e],
layoutEdge: e,
layoutRole: "resizer"
}).css(_c.resizers.cssReq).css("zIndex", options.zIndexes.resizer_normal).css(o.applyDemoStyles ? _c.resizers.cssDemo : {}).addClass(a + " " + a + l).hover(addHover, removeHover).hover(onResizerEnter, onResizerLeave).appendTo($N),
o.resizerDblClickToggle && d.bind("dblclick." + sID, toggle), p && (p.attr("id", r ? r + "-toggler" : "").data({
parentLayout: Instance,
layoutPane: Instance[e],
layoutEdge: e,
layoutRole: "toggler"
}).css(_c.togglers.cssReq).css(o.applyDemoStyles ? _c.togglers.cssDemo : {}).addClass(s + " " + s + l).hover(addHover, removeHover).bind("mouseenter", onResizerEnter).appendTo(d),
o.togglerContent_open && $("<span>" + o.togglerContent_open + "</span>").data({
layoutEdge: e,
layoutRole: "togglerContent"
}).data("layoutRole", "togglerContent").data("layoutEdge", e).addClass("content content-open").css("display", "none").appendTo(p),
o.togglerContent_closed && $("<span>" + o.togglerContent_closed + "</span>").data({
layoutEdge: e,
layoutRole: "togglerContent"
}).addClass("content content-closed").css("display", "none").appendTo(p), enableClosable(e)),
initResizable(e), i.isVisible ? setAsOpen(e) : (setAsClosed(e), bindStartSlidingEvents(e, !0));
}
}), sizeHandles();
}, initContent = function(n, e) {
if (isInitialized()) {
var t, o = options[n], i = o.contentSelector, r = Instance[n], a = $Ps[n];
i && (t = r.content = $Cs[n] = o.findNestedContent ? a.find(i).eq(0) : a.children(i).eq(0)),
t && t.length ? (t.data("layoutRole", "content"), t.data("layoutCSS") || t.data("layoutCSS", styles(t, "height")),
t.css(_c.content.cssReq), o.applyDemoStyles && (t.css(_c.content.cssDemo), a.css(_c.content.cssDemoPane)),
a.css("overflowX").match(/(scroll|auto)/) && a.css("overflow", "hidden"), state[n].content = {},
e !== !1 && sizeContent(n)) : r.content = $Cs[n] = !1;
}
}, initResizable = function(n) {
var e = $.layout.plugins.draggable;
n = n ? n.split(",") : _c.borderPanes, $.each(n, function(n, o) {
var i = options[o];
if (!e || !$Ps[o] || !i.resizable) return i.resizable = !1, !0;
var r, a, s = state[o], l = options.zIndexes, c = _c[o], d = "horz" == c.dir ? "top" : "left", p = ($Ps[o],
$Rs[o]), u = i.resizerClass, f = 0, h = u + "-drag", g = u + "-" + o + "-drag", b = u + "-dragging", m = u + "-" + o + "-dragging", v = u + "-dragging-limit", x = u + "-" + o + "-dragging-limit", y = !1;
s.isClosed || p.attr("title", i.tips.Resize).css("cursor", i.resizerCursor), p.draggable({
containment: $N[0],
axis: "horz" == c.dir ? "y" : "x",
delay: 0,
distance: 1,
grid: i.resizingGrid,
helper: "clone",
opacity: i.resizerDragOpacity,
addClasses: !1,
zIndex: l.resizer_drag,
start: function(n, e) {
return i = options[o], s = state[o], a = i.livePaneResizing, !1 === _runCallbacks("ondrag_start", o) ? !1 : (s.isResizing = !0,
state.paneResizing = o, timer.clear(o + "_closeSlider"), setSizeLimits(o), r = s.resizerPosition,
f = e.position[d], p.addClass(h + " " + g), y = !1, $("body").disableSelection(),
showMasks(o, {
resizing: !0
}), void 0);
},
drag: function(n, e) {
y || (e.helper.addClass(b + " " + m).css({
right: "auto",
bottom: "auto"
}).children().css("visibility", "hidden"), y = !0, s.isSliding && $Ps[o].css("zIndex", l.pane_sliding));
var c = 0;
e.position[d] < r.min ? (e.position[d] = r.min, c = -1) : e.position[d] > r.max && (e.position[d] = r.max,
c = 1), c ? (e.helper.addClass(v + " " + x), window.defaultStatus = c > 0 && o.match(/(north|west)/) || 0 > c && o.match(/(south|east)/) ? i.tips.maxSizeWarning : i.tips.minSizeWarning) : (e.helper.removeClass(v + " " + x),
window.defaultStatus = ""), a && Math.abs(e.position[d] - f) >= i.liveResizingTolerance && (f = e.position[d],
t(n, e, o));
},
stop: function(n, e) {
$("body").enableSelection(), window.defaultStatus = "", p.removeClass(h + " " + g),
s.isResizing = !1, state.paneResizing = !1, t(n, e, o, !0);
}
});
});
var t = function(n, e, t, o) {
var i, r = e.position, a = _c[t], s = options[t], l = state[t];
switch (t) {
case "north":
i = r.top;
break;
case "west":
i = r.left;
break;
case "south":
i = sC.layoutHeight - r.top - s.spacing_open;
break;
case "east":
i = sC.layoutWidth - r.left - s.spacing_open;
}
var c = i - sC.inset[a.side];
if (o) !1 !== _runCallbacks("ondrag_end", t) && manualSizePane(t, c, !1, !0), hideMasks(!0),
l.isSliding && showMasks(t, {
resizing: !0
}); else {
if (Math.abs(c - l.size) < s.liveResizingTolerance) return;
manualSizePane(t, c, !1, !0), sizeMasks();
}
};
}, sizeMask = function() {
var n = $(this), e = n.data("layoutMask"), t = state[e];
"IFRAME" == t.tagName && t.isVisible && n.css({
top: t.offsetTop,
left: t.offsetLeft,
width: t.outerWidth,
height: t.outerHeight
});
}, sizeMasks = function() {
$Ms.each(sizeMask);
}, showMasks = function(n, e) {
var t, o, i = _c[n], r = [ "center" ], a = options.zIndexes, s = $.extend({
objectsOnly: !1,
animation: !1,
resizing: !0,
sliding: state[n].isSliding
}, e);
s.resizing && r.push(n), s.sliding && r.push(_c.oppositeEdge[n]), "horz" === i.dir && (r.push("west"),
r.push("east")), $.each(r, function(n, e) {
o = state[e], t = options[e], o.isVisible && (t.maskObjects || !s.objectsOnly && t.maskContents) && getMasks(e).each(function() {
sizeMask.call(this), this.style.zIndex = o.isSliding ? a.pane_sliding + 1 : a.pane_normal + 1,
this.style.display = "block";
});
});
}, hideMasks = function(n) {
if (n || !state.paneResizing) $Ms.hide(); else if (!n && !$.isEmptyObject(state.panesSliding)) for (var e, t, o = $Ms.length - 1; o >= 0; o--) t = $Ms.eq(o),
e = t.data("layoutMask"), options[e].maskObjects || t.hide();
}, getMasks = function(n) {
for (var e, t = $([]), o = 0, i = $Ms.length; i > o; o++) e = $Ms.eq(o), e.data("layoutMask") === n && (t = t.add(e));
return t.length ? t : createMasks(n);
}, createMasks = function(n) {
var e, t, o, i, r, a = $Ps[n], s = state[n], l = options[n], c = options.zIndexes, d = $([]);
if (!l.maskContents && !l.maskObjects) return d;
for (r = 0; r < (l.maskObjects ? 2 : 1); r++) e = l.maskObjects && 0 == r, t = document.createElement(e ? "iframe" : "div"),
o = $(t).data("layoutMask", n), t.className = "ui-layout-mask ui-layout-mask-" + n,
i = t.style, i.display = "block", i.position = "absolute", i.background = "#FFF",
e && (t.frameborder = 0, t.src = "about:blank", i.opacity = 0, i.filter = "Alpha(Opacity='0')",
i.border = 0), "IFRAME" == s.tagName ? (i.zIndex = c.pane_normal + 1, $N.append(t)) : (o.addClass("ui-layout-mask-inside-pane"),
i.zIndex = l.maskZindex || c.content_mask, i.top = 0, i.left = 0, i.width = "100%",
i.height = "100%", a.append(t)), d = d.add(t), $Ms = $Ms.add(t);
return d;
}, destroy = function(n, e) {
$(window).unbind("." + sID), $(document).unbind("." + sID), "object" == typeof n ? evtPane(n) : e = n,
$N.clearQueue().removeData("layout").removeData("layoutContainer").removeClass(options.containerClass).unbind("." + sID),
$Ms.remove(), $.each(_c.allPanes, function(n, t) {
removePane(t, !1, !0, e);
});
var t = "layoutCSS";
$N.data(t) && !$N.data("layoutRole") && $N.css($N.data(t)).removeData(t), "BODY" === sC.tagName && ($N = $("html")).data(t) && $N.css($N.data(t)).removeData(t),
runPluginCallbacks(Instance, $.layout.onDestroy), unload();
for (var o in Instance) o.match(/^(container|options)$/) || delete Instance[o];
return Instance.destroyed = !0, Instance;
}, removePane = function(n, e, t, o) {
if (isInitialized()) {
var i = evtPane.call(this, n), r = $Ps[i], a = $Cs[i], s = $Rs[i], l = $Ts[i];
r && $.isEmptyObject(r.data()) && (r = !1), a && $.isEmptyObject(a.data()) && (a = !1),
s && $.isEmptyObject(s.data()) && (s = !1), l && $.isEmptyObject(l.data()) && (l = !1),
r && r.stop(!0, !0);
var c = options[i], d = state[i], p = "layout", u = "layoutCSS", f = children[i], h = $.isPlainObject(f) && !$.isEmptyObject(f), g = void 0 !== o ? o : c.destroyChildren;
if (h && g && ($.each(f, function(n, e) {
e.destroyed || e.destroy(!0), e.destroyed && delete f[n];
}), $.isEmptyObject(f) && (f = children[i] = null, h = !1)), r && e && !h) r.remove(); else if (r && r[0]) {
var b = c.paneClass, m = b + "-" + i, v = "-open", x = "-sliding", y = "-closed", w = [ b, b + v, b + y, b + x, m, m + v, m + y, m + x ];
$.merge(w, getHoverClasses(r, !0)), r.removeClass(w.join(" ")).removeData("parentLayout").removeData("layoutPane").removeData("layoutRole").removeData("layoutEdge").removeData("autoHidden").unbind("." + sID),
h && a ? (a.width(a.width()), $.each(f, function(n, e) {
e.resizeAll();
})) : a && a.css(a.data(u)).removeData(u).removeData("layoutRole"), r.data(p) || r.css(r.data(u)).removeData(u);
}
l && l.remove(), s && s.remove(), Instance[i] = $Ps[i] = $Cs[i] = $Rs[i] = $Ts[i] = !1,
d = {
removed: !0
}, t || resizeAll();
}
}, _hidePane = function(n) {
var e = $Ps[n], t = options[n], o = e[0].style;
t.useOffscreenClose ? (e.data(_c.offscreenReset) || e.data(_c.offscreenReset, {
left: o.left,
right: o.right
}), e.css(_c.offscreenCSS)) : e.hide().removeData(_c.offscreenReset);
}, _showPane = function(n) {
var e = $Ps[n], t = options[n], o = _c.offscreenCSS, i = e.data(_c.offscreenReset), r = e[0].style;
e.show().removeData(_c.offscreenReset), t.useOffscreenClose && i && (r.left == o.left && (r.left = i.left),
r.right == o.right && (r.right = i.right));
}, hide = function(n, e) {
if (isInitialized()) {
var t = evtPane.call(this, n), o = options[t], i = state[t], r = $Ps[t], a = $Rs[t];
r && !i.isHidden && (state.initialized && !1 === _runCallbacks("onhide_start", t) || (i.isSliding = !1,
delete state.panesSliding[t], a && a.hide(), !state.initialized || i.isClosed ? (i.isClosed = !0,
i.isHidden = !0, i.isVisible = !1, state.initialized || _hidePane(t), sizeMidPanes("horz" === _c[t].dir ? "" : "center"),
(state.initialized || o.triggerEventsOnLoad) && _runCallbacks("onhide_end", t)) : (i.isHiding = !0,
close(t, !1, e))));
}
}, show = function(n, e, t, o) {
if (isInitialized()) {
var i = evtPane.call(this, n), r = (options[i], state[i]), a = $Ps[i];
$Rs[i], a && r.isHidden && !1 !== _runCallbacks("onshow_start", i) && (r.isShowing = !0,
r.isSliding = !1, delete state.panesSliding[i], e === !1 ? close(i, !0) : open(i, !1, t, o));
}
}, toggle = function(n, e) {
if (isInitialized()) {
var t = evtObj(n), o = evtPane.call(this, n), i = state[o];
t && t.stopImmediatePropagation(), i.isHidden ? show(o) : i.isClosed ? open(o, !!e) : close(o);
}
}, _closePane = function(n, e) {
var t = ($Ps[n], state[n]);
_hidePane(n), t.isClosed = !0, t.isVisible = !1, e && setAsClosed(n);
}, close = function(n, e, t, o) {
function i() {
u.isMoving = !1, bindStartSlidingEvents(r, !0);
var n = _c.oppositeEdge[r];
state[n].noRoom && (setSizeLimits(n), makePaneFit(n)), o || !state.initialized && !p.triggerEventsOnLoad || (s || _runCallbacks("onclose_end", r),
s && _runCallbacks("onshow_end", r), l && _runCallbacks("onhide_end", r));
}
var r = evtPane.call(this, n);
if (!state.initialized && $Ps[r]) return _closePane(r, !0), void 0;
if (isInitialized()) {
var a, s, l, c, d = $Ps[r], p = ($Rs[r], $Ts[r], options[r]), u = state[r];
_c[r], $N.queue(function(n) {
if (!d || !p.closable && !u.isShowing && !u.isHiding || !e && u.isClosed && !u.isShowing) return n();
var o = !u.isShowing && !1 === _runCallbacks("onclose_start", r);
return s = u.isShowing, l = u.isHiding, c = u.isSliding, delete u.isShowing, delete u.isHiding,
o ? n() : (a = !t && !u.isClosed && "none" != p.fxName_close, u.isMoving = !0, u.isClosed = !0,
u.isVisible = !1, l ? u.isHidden = !0 : s && (u.isHidden = !1), u.isSliding ? bindStopSlidingEvents(r, !1) : sizeMidPanes("horz" === _c[r].dir ? "" : "center", !1),
setAsClosed(r), a ? (lockPaneForFX(r, !0), d.hide(p.fxName_close, p.fxSettings_close, p.fxSpeed_close, function() {
lockPaneForFX(r, !1), u.isClosed && i(), n();
})) : (_hidePane(r), i(), n()), void 0);
});
}
}, setAsClosed = function(n) {
if ($Rs[n]) {
var e = ($Ps[n], $Rs[n]), t = $Ts[n], o = options[n], i = (state[n], _c[n].side), r = o.resizerClass, a = o.togglerClass, s = "-" + n, l = "-open", c = "-sliding", d = "-closed";
e.css(i, sC.inset[i]).removeClass(r + l + " " + r + s + l).removeClass(r + c + " " + r + s + c).addClass(r + d + " " + r + s + d),
o.resizable && $.layout.plugins.draggable && e.draggable("disable").removeClass("ui-state-disabled").css("cursor", "default").attr("title", ""),
t && (t.removeClass(a + l + " " + a + s + l).addClass(a + d + " " + a + s + d).attr("title", o.tips.Open),
t.children(".content-open").hide(), t.children(".content-closed").css("display", "block")),
syncPinBtns(n, !1), state.initialized && sizeHandles();
}
}, open = function(n, e, t, o) {
function i() {
d.isMoving = !1, _fixIframe(s), d.isSliding || sizeMidPanes("vert" == _c[s].dir ? "center" : "", !1),
setAsOpen(s);
}
if (isInitialized()) {
var r, a, s = evtPane.call(this, n), l = $Ps[s], c = ($Rs[s], $Ts[s], options[s]), d = state[s];
_c[s], $N.queue(function(n) {
if (!l || !c.resizable && !c.closable && !d.isShowing || d.isVisible && !d.isSliding) return n();
if (d.isHidden && !d.isShowing) return n(), show(s, !0), void 0;
d.autoResize && d.size != c.size ? sizePane(s, c.size, !0, !0, !0) : setSizeLimits(s, e);
var p = _runCallbacks("onopen_start", s);
return "abort" === p ? n() : ("NC" !== p && setSizeLimits(s, e), d.minSize > d.maxSize ? (syncPinBtns(s, !1),
!o && c.tips.noRoomToOpen && alert(c.tips.noRoomToOpen), n()) : (e ? bindStopSlidingEvents(s, !0) : d.isSliding ? bindStopSlidingEvents(s, !1) : c.slidable && bindStartSlidingEvents(s, !1),
d.noRoom = !1, makePaneFit(s), a = d.isShowing, delete d.isShowing, r = !t && d.isClosed && "none" != c.fxName_open,
d.isMoving = !0, d.isVisible = !0, d.isClosed = !1, a && (d.isHidden = !1), r ? (lockPaneForFX(s, !0),
l.show(c.fxName_open, c.fxSettings_open, c.fxSpeed_open, function() {
lockPaneForFX(s, !1), d.isVisible && i(), n();
})) : (_showPane(s), i(), n()), void 0));
});
}
}, setAsOpen = function(n, e) {
var t = $Ps[n], o = $Rs[n], i = $Ts[n], r = options[n], a = state[n], s = _c[n].side, l = r.resizerClass, c = r.togglerClass, d = "-" + n, p = "-open", u = "-closed", f = "-sliding";
o.css(s, sC.inset[s] + getPaneSize(n)).removeClass(l + u + " " + l + d + u).addClass(l + p + " " + l + d + p),
a.isSliding ? o.addClass(l + f + " " + l + d + f) : o.removeClass(l + f + " " + l + d + f),
removeHover(0, o), r.resizable && $.layout.plugins.draggable ? o.draggable("enable").css("cursor", r.resizerCursor).attr("title", r.tips.Resize) : a.isSliding || o.css("cursor", "default"),
i && (i.removeClass(c + u + " " + c + d + u).addClass(c + p + " " + c + d + p).attr("title", r.tips.Close),
removeHover(0, i), i.children(".content-closed").hide(), i.children(".content-open").css("display", "block")),
syncPinBtns(n, !a.isSliding), $.extend(a, elDims(t)), state.initialized && (sizeHandles(),
sizeContent(n, !0)), !e && (state.initialized || r.triggerEventsOnLoad) && t.is(":visible") && (_runCallbacks("onopen_end", n),
a.isShowing && _runCallbacks("onshow_end", n), state.initialized && _runCallbacks("onresize_end", n));
}, slideOpen = function(n) {
function e() {
i.isClosed ? i.isMoving || open(o, !0) : bindStopSlidingEvents(o, !0);
}
if (isInitialized()) {
var t = evtObj(n), o = evtPane.call(this, n), i = state[o], r = options[o].slideDelay_open;
t && t.stopImmediatePropagation(), i.isClosed && t && "mouseenter" === t.type && r > 0 ? timer.set(o + "_openSlider", e, r) : e();
}
}, slideClose = function(n) {
function e() {
r.isClosed ? bindStopSlidingEvents(o, !1) : r.isMoving || close(o);
}
if (isInitialized()) {
var t = evtObj(n), o = evtPane.call(this, n), i = options[o], r = state[o], a = r.isMoving ? 1e3 : 300;
if (!r.isClosed && !r.isResizing) if ("click" === i.slideTrigger_close) e(); else {
if (i.preventQuickSlideClose && r.isMoving) return;
if (i.preventPrematureSlideClose && t && $.layout.isMouseOverElem(t, $Ps[o])) return;
t ? timer.set(o + "_closeSlider", e, max(i.slideDelay_close, a)) : e();
}
}
}, slideToggle = function(n) {
var e = evtPane.call(this, n);
toggle(e, !0);
}, lockPaneForFX = function(n, e) {
var t = $Ps[n], o = state[n], i = options[n], r = options.zIndexes;
e ? (showMasks(n, {
animation: !0,
objectsOnly: !0
}), t.css({
zIndex: r.pane_animate
}), "south" == n ? t.css({
top: sC.inset.top + sC.innerHeight - t.outerHeight()
}) : "east" == n && t.css({
left: sC.inset.left + sC.innerWidth - t.outerWidth()
})) : (hideMasks(), t.css({
zIndex: o.isSliding ? r.pane_sliding : r.pane_normal
}), "south" == n ? t.css({
top: "auto"
}) : "east" != n || t.css("left").match(/\-99999/) || t.css({
left: "auto"
}), browser.msie && i.fxOpacityFix && "slide" != i.fxName_open && t.css("filter") && 1 == t.css("opacity") && t[0].style.removeAttribute("filter"));
}, bindStartSlidingEvents = function(n, e) {
var t = options[n], o = ($Ps[n], $Rs[n]), i = t.slideTrigger_open.toLowerCase();
!o || e && !t.slidable || (i.match(/mouseover/) ? i = t.slideTrigger_open = "mouseenter" : i.match(/(click|dblclick|mouseenter)/) || (i = t.slideTrigger_open = "click"),
t.resizerDblClickToggle && i.match(/click/) && o[e ? "unbind" : "bind"]("dblclick." + sID, toggle),
o[e ? "bind" : "unbind"](i + "." + sID, slideOpen).css("cursor", e ? t.sliderCursor : "default").attr("title", e ? t.tips.Slide : ""));
}, bindStopSlidingEvents = function(n, e) {
function t(e) {
timer.clear(n + "_closeSlider"), e.stopPropagation();
}
var o = options[n], i = state[n], r = (_c[n], options.zIndexes), a = o.slideTrigger_close.toLowerCase(), s = e ? "bind" : "unbind", l = $Ps[n], c = $Rs[n];
timer.clear(n + "_closeSlider"), e ? (i.isSliding = !0, state.panesSliding[n] = !0,
bindStartSlidingEvents(n, !1)) : (i.isSliding = !1, delete state.panesSliding[n]),
l.css("zIndex", e ? r.pane_sliding : r.pane_normal), c.css("zIndex", e ? r.pane_sliding + 2 : r.resizer_normal),
a.match(/(click|mouseleave)/) || (a = o.slideTrigger_close = "mouseleave"), c[s](a, slideClose),
"mouseleave" === a && (l[s]("mouseleave." + sID, slideClose), c[s]("mouseenter." + sID, t),
l[s]("mouseenter." + sID, t)), e ? "click" !== a || o.resizable || (c.css("cursor", e ? o.sliderCursor : "default"),
c.attr("title", e ? o.tips.Close : "")) : timer.clear(n + "_closeSlider");
}, makePaneFit = function(n, e, t, o) {
var i = options[n], r = state[n], a = _c[n], s = $Ps[n], l = $Rs[n], c = "vert" === a.dir, d = !1;
if (("center" === n || c && r.noVerticalRoom) && (d = r.maxHeight >= 0, d && r.noRoom ? (_showPane(n),
l && l.show(), r.isVisible = !0, r.noRoom = !1, c && (r.noVerticalRoom = !1), _fixIframe(n)) : d || r.noRoom || (_hidePane(n),
l && l.hide(), r.isVisible = !1, r.noRoom = !0)), "center" === n) ; else if (r.minSize <= r.maxSize) {
if (d = !0, r.size > r.maxSize) sizePane(n, r.maxSize, t, !0, o); else if (r.size < r.minSize) sizePane(n, r.minSize, t, !0, o); else if (l && r.isVisible && s.is(":visible")) {
var p = r.size + sC.inset[a.side];
$.layout.cssNum(l, a.side) != p && l.css(a.side, p);
}
r.noRoom && (r.wasOpen && i.closable ? i.autoReopen ? open(n, !1, !0, !0) : r.noRoom = !1 : show(n, r.wasOpen, !0, !0));
} else r.noRoom || (r.noRoom = !0, r.wasOpen = !r.isClosed && !r.isSliding, r.isClosed || (i.closable ? close(n, !0, !0) : hide(n, !0)));
}, manualSizePane = function(n, e, t, o, i) {
if (isInitialized()) {
var r = evtPane.call(this, n), a = options[r], s = state[r], l = i || a.livePaneResizing && !s.isResizing;
s.autoResize = !1, sizePane(r, e, t, o, l);
}
}, sizePane = function(n, e, t, o, i) {
function r() {
for (var n = "width" === h ? p.outerWidth() : p.outerHeight(), o = [ {
pane: l,
count: 1,
target: e,
actual: n,
correct: e === n,
attempt: e,
cssSize: s
} ], r = o[0], c = {}, b = "Inaccurate size after resizing the " + l + "-pane."; !(r.correct || (c = {
pane: l,
count: r.count + 1,
target: e
}, c.attempt = r.actual > e ? max(0, r.attempt - (r.actual - e)) : max(0, r.attempt + (e - r.actual)),
c.cssSize = cssSize(l, c.attempt), p.css(h, c.cssSize), c.actual = "width" == h ? p.outerWidth() : p.outerHeight(),
c.correct = e === c.actual, 1 === o.length && (_log(b, !1, !0), _log(r, !1, !0)),
_log(c, !1, !0), o.length > 3)); ) o.push(c), r = o[o.length - 1];
d.size = e, $.extend(d, elDims(p)), d.isVisible && p.is(":visible") && (u && u.css(f, e + sC.inset[f]),
sizeContent(l)), !t && !g && state.initialized && d.isVisible && _runCallbacks("onresize_end", l),
t || (d.isSliding || sizeMidPanes("horz" == _c[l].dir ? "" : "center", g, i), sizeHandles());
var m = _c.oppositeEdge[l];
a > e && state[m].noRoom && (setSizeLimits(m), makePaneFit(m, !1, t)), o.length > 1 && _log(b + "\nSee the Error Console for details.", !0, !0);
}
if (isInitialized()) {
var a, s, l = evtPane.call(this, n), c = options[l], d = state[l], p = $Ps[l], u = $Rs[l], f = _c[l].side, h = _c[l].sizeType.toLowerCase(), g = d.isResizing && !c.triggerEventsDuringLiveResize, b = o !== !0 && c.animatePaneSizing;
$N.queue(function(n) {
if (setSizeLimits(l), a = d.size, e = _parseSize(l, e), e = max(e, _parseSize(l, c.minSize)),
e = min(e, d.maxSize), e < d.minSize) return n(), makePaneFit(l, !1, t), void 0;
if (!i && e === a) return n();
if (d.newSize = e, !t && state.initialized && d.isVisible && _runCallbacks("onresize_start", l),
s = cssSize(l, e), b && p.is(":visible")) {
var o = $.layout.effects.size[l] || $.layout.effects.size.all, u = c.fxSettings_size.easing || o.easing, f = options.zIndexes, g = {};
g[h] = s + "px", d.isMoving = !0, p.css({
zIndex: f.pane_animate
}).show().animate(g, c.fxSpeed_size, u, function() {
p.css({
zIndex: d.isSliding ? f.pane_sliding : f.pane_normal
}), d.isMoving = !1, delete d.newSize, r(), n();
});
} else p.css(h, s), delete d.newSize, p.is(":visible") ? r() : (d.size = e, $.extend(d, elDims(p))),
n();
});
}
}, sizeMidPanes = function(n, e, t) {
n = (n ? n : "east,west,center").split(","), $.each(n, function(n, o) {
if ($Ps[o]) {
var i = options[o], r = state[o], a = $Ps[o], s = ($Rs[o], !0), l = {}, c = $.layout.showInvisibly(a), d = calcNewCenterPaneDims();
if ($.extend(r, elDims(a)), "center" === o) {
if (!t && r.isVisible && d.width === r.outerWidth && d.height === r.outerHeight) return a.css(c),
!0;
if ($.extend(r, cssMinDims(o), {
maxWidth: d.width,
maxHeight: d.height
}), l = d, r.newWidth = l.width, r.newHeight = l.height, l.width = cssW(a, l.width),
l.height = cssH(a, l.height), s = l.width >= 0 && l.height >= 0, !state.initialized && i.minWidth > d.width) {
var p = i.minWidth - r.outerWidth, u = options.east.minSize || 0, f = options.west.minSize || 0, h = state.east.size, g = state.west.size, b = h, m = g;
if (p > 0 && state.east.isVisible && h > u && (b = max(h - u, h - p), p -= h - b),
p > 0 && state.west.isVisible && g > f && (m = max(g - f, g - p), p -= g - m), 0 === p) return h && h != u && sizePane("east", b, !0, !0, t),
g && g != f && sizePane("west", m, !0, !0, t), sizeMidPanes("center", e, t), a.css(c),
void 0;
}
} else {
if (r.isVisible && !r.noVerticalRoom && $.extend(r, elDims(a), cssMinDims(o)), !t && !r.noVerticalRoom && d.height === r.outerHeight) return a.css(c),
!0;
l.top = d.top, l.bottom = d.bottom, r.newSize = d.height, l.height = cssH(a, d.height),
r.maxHeight = l.height, s = r.maxHeight >= 0, s || (r.noVerticalRoom = !0);
}
if (s ? (!e && state.initialized && _runCallbacks("onresize_start", o), a.css(l),
"center" !== o && sizeHandles(o), !r.noRoom || r.isClosed || r.isHidden || makePaneFit(o),
r.isVisible && ($.extend(r, elDims(a)), state.initialized && sizeContent(o))) : !r.noRoom && r.isVisible && makePaneFit(o),
a.css(c), delete r.newSize, delete r.newWidth, delete r.newHeight, !r.isVisible) return !0;
if ("center" === o) {
var v = browser.isIE6 || !browser.boxModel;
$Ps.north && (v || "IFRAME" == state.north.tagName) && $Ps.north.css("width", cssW($Ps.north, sC.innerWidth)),
$Ps.south && (v || "IFRAME" == state.south.tagName) && $Ps.south.css("width", cssW($Ps.south, sC.innerWidth));
}
!e && state.initialized && _runCallbacks("onresize_end", o);
}
});
}, resizeAll = function(n) {
var e = sC.innerWidth, t = sC.innerHeight;
if (evtPane(n), $N.is(":visible")) {
if (!state.initialized) return _initLayoutElements(), void 0;
if (n === !0 && $.isPlainObject(options.outset) && $N.css(options.outset), $.extend(sC, elDims($N, options.inset)),
sC.outerHeight) {
if (n === !0 && setPanePosition(), !1 === _runCallbacks("onresizeall_start")) return !1;
var o, i, r;
sC.innerHeight < t, sC.innerWidth < e, $.each([ "south", "north", "east", "west" ], function(n, e) {
$Ps[e] && (i = options[e], r = state[e], r.autoResize && r.size != i.size ? sizePane(e, i.size, !0, !0, !0) : (setSizeLimits(e),
makePaneFit(e, !1, !0, !0)));
}), sizeMidPanes("", !0, !0), sizeHandles(), $.each(_c.allPanes, function(n, e) {
o = $Ps[e], o && state[e].isVisible && _runCallbacks("onresize_end", e);
}), _runCallbacks("onresizeall_end");
}
}
}, resizeChildren = function(n, e) {
var t = evtPane.call(this, n);
if (options[t].resizeChildren) {
e || refreshChildren(t);
var o = children[t];
$.isPlainObject(o) && $.each(o, function(n, e) {
e.destroyed || e.resizeAll();
});
}
}, sizeContent = function(n, e) {
if (isInitialized()) {
var t = evtPane.call(this, n);
t = t ? t.split(",") : _c.allPanes, $.each(t, function(n, t) {
function o(n) {
return max(l.css.paddingBottom, parseInt(n.css("marginBottom"), 10) || 0);
}
function i() {
var n = options[t].contentIgnoreSelector, e = a.nextAll().not(".ui-layout-mask").not(n || ":lt(0)"), i = e.filter(":visible"), r = i.filter(":last");
c = {
top: a[0].offsetTop,
height: a.outerHeight(),
numFooters: e.length,
hiddenFooters: e.length - i.length,
spaceBelow: 0
}, c.spaceAbove = c.top, c.bottom = c.top + c.height, c.spaceBelow = r.length ? r[0].offsetTop + r.outerHeight() - c.bottom + o(r) : o(a);
}
var r = $Ps[t], a = $Cs[t], s = options[t], l = state[t], c = l.content;
if (!r || !a || !r.is(":visible")) return !0;
if ((a.length || (initContent(t, !1), a)) && !1 !== _runCallbacks("onsizecontent_start", t)) {
(!l.isMoving && !l.isResizing || s.liveContentResizing || e || void 0 == c.top) && (i(),
c.hiddenFooters > 0 && "hidden" === r.css("overflow") && (r.css("overflow", "visible"),
i(), r.css("overflow", "hidden")));
var d = l.innerHeight - (c.spaceAbove - l.css.paddingTop) - (c.spaceBelow - l.css.paddingBottom);
a.is(":visible") && c.height == d || (setOuterHeight(a, d, !0), c.height = d), state.initialized && _runCallbacks("onsizecontent_end", t);
}
});
}
}, sizeHandles = function(n) {
var e = evtPane.call(this, n);
e = e ? e.split(",") : _c.borderPanes, $.each(e, function(n, e) {
var t, o = options[e], i = state[e], r = $Ps[e], a = $Rs[e], s = $Ts[e];
if (r && a) {
var l, c, d, p = _c[e].dir, u = i.isClosed ? "_closed" : "_open", f = o["spacing" + u], h = o["togglerAlign" + u], g = o["togglerLength" + u];
if (0 === f) return a.hide(), void 0;
if (i.noRoom || i.isHidden || a.show(), "horz" === p ? (l = sC.innerWidth, i.resizerLength = l,
c = $.layout.cssNum(r, "left"), a.css({
width: cssW(a, l),
height: cssH(a, f),
left: c > -9999 ? c : sC.inset.left
})) : (l = r.outerHeight(), i.resizerLength = l, a.css({
height: cssH(a, l),
width: cssW(a, f),
top: sC.inset.top + getPaneSize("north", !0)
})), removeHover(o, a), s) {
if (0 === g || i.isSliding && o.hideTogglerOnSlide) return s.hide(), void 0;
if (s.show(), !(g > 0) || "100%" === g || g > l) g = l, d = 0; else if (isStr(h)) switch (h) {
case "top":
case "left":
d = 0;
break;
case "bottom":
case "right":
d = l - g;
break;
case "middle":
case "center":
default:
d = round((l - g) / 2);
} else {
var b = parseInt(h, 10);
d = h >= 0 ? b : l - g + b;
}
if ("horz" === p) {
var m = cssW(s, g);
s.css({
width: m,
height: cssH(s, f),
left: d,
top: 0
}), s.children(".content").each(function() {
t = $(this), t.css("marginLeft", round((m - t.outerWidth()) / 2));
});
} else {
var v = cssH(s, g);
s.css({
height: v,
width: cssW(s, f),
top: d,
left: 0
}), s.children(".content").each(function() {
t = $(this), t.css("marginTop", round((v - t.outerHeight()) / 2));
});
}
removeHover(0, s);
}
state.initialized || !o.initHidden && !i.isHidden || (a.hide(), s && s.hide());
}
});
}, enableClosable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Ts[e], o = options[e];
t && (o.closable = !0, t.bind("click." + sID, function(n) {
n.stopPropagation(), toggle(e);
}).css("visibility", "visible").css("cursor", "pointer").attr("title", state[e].isClosed ? o.tips.Open : o.tips.Close).show());
}
}, disableClosable = function(n, e) {
if (isInitialized()) {
var t = evtPane.call(this, n), o = $Ts[t];
o && (options[t].closable = !1, state[t].isClosed && open(t, !1, !0), o.unbind("." + sID).css("visibility", e ? "hidden" : "visible").css("cursor", "default").attr("title", ""));
}
}, enableSlidable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Rs[e];
t && t.data("draggable") && (options[e].slidable = !0, state[e].isClosed && bindStartSlidingEvents(e, !0));
}
}, disableSlidable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Rs[e];
t && (options[e].slidable = !1, state[e].isSliding ? close(e, !1, !0) : (bindStartSlidingEvents(e, !1),
t.css("cursor", "default").attr("title", ""), removeHover(null, t[0])));
}
}, enableResizable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Rs[e], o = options[e];
t && t.data("draggable") && (o.resizable = !0, t.draggable("enable"), state[e].isClosed || t.css("cursor", o.resizerCursor).attr("title", o.tips.Resize));
}
}, disableResizable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Rs[e];
t && t.data("draggable") && (options[e].resizable = !1, t.draggable("disable").css("cursor", "default").attr("title", ""),
removeHover(null, t[0]));
}
}, swapPanes = function(n, e) {
function t(n) {
var e = $Ps[n], t = $Cs[n];
return e ? {
pane: n,
P: e ? e[0] : !1,
C: t ? t[0] : !1,
state: $.extend(!0, {}, state[n]),
options: $.extend(!0, {}, options[n])
} : !1;
}
function o(n, e) {
if (n) {
var t, o, i = n.P, r = n.C, a = n.pane, l = _c[e], c = $.extend(!0, {}, state[e]), d = options[e], p = {
resizerCursor: d.resizerCursor
};
$.each("fxName,fxSpeed,fxSettings".split(","), function(n, e) {
p[e + "_open"] = d[e + "_open"], p[e + "_close"] = d[e + "_close"], p[e + "_size"] = d[e + "_size"];
}), $Ps[e] = $(i).data({
layoutPane: Instance[e],
layoutEdge: e
}).css(_c.hidden).css(l.cssReq), $Cs[e] = r ? $(r) : !1, options[e] = $.extend(!0, {}, n.options, p),
state[e] = $.extend(!0, {}, n.state), t = new RegExp(d.paneClass + "-" + a, "g"),
i.className = i.className.replace(t, d.paneClass + "-" + e), initHandles(e), l.dir != _c[a].dir ? (o = s[e] || 0,
setSizeLimits(e), o = max(o, state[e].minSize), manualSizePane(e, o, !0, !0)) : $Rs[e].css(l.side, sC.inset[l.side] + (state[e].isVisible ? getPaneSize(e) : 0)),
n.state.isVisible && !c.isVisible ? setAsOpen(e, !0) : (setAsClosed(e), bindStartSlidingEvents(e, !0)),
n = null;
}
}
if (isInitialized()) {
var i = evtPane.call(this, n);
if (state[i].edge = e, state[e].edge = i, !1 === _runCallbacks("onswap_start", i) || !1 === _runCallbacks("onswap_start", e)) return state[i].edge = i,
state[e].edge = e, void 0;
var r = t(i), a = t(e), s = {};
s[i] = r ? r.state.size : 0, s[e] = a ? a.state.size : 0, $Ps[i] = !1, $Ps[e] = !1,
state[i] = {}, state[e] = {}, $Ts[i] && $Ts[i].remove(), $Ts[e] && $Ts[e].remove(),
$Rs[i] && $Rs[i].remove(), $Rs[e] && $Rs[e].remove(), $Rs[i] = $Rs[e] = $Ts[i] = $Ts[e] = !1,
o(r, e), o(a, i), r = a = s = null, $Ps[i] && $Ps[i].css(_c.visible), $Ps[e] && $Ps[e].css(_c.visible),
resizeAll(), _runCallbacks("onswap_end", i), _runCallbacks("onswap_end", e);
}
}, syncPinBtns = function(n, e) {
$.layout.plugins.buttons && $.each(state[n].pins, function(t, o) {
$.layout.buttons.setPinState(Instance, $(o), n, e);
});
}, $N = $(this).eq(0);
if (!$N.length) return _log(options.errors.containerMissing);
if ($N.data("layoutContainer") && $N.data("layout")) return $N.data("layout");
var $Ps = {}, $Cs = {}, $Rs = {}, $Ts = {}, $Ms = $([]), sC = state.container, sID = state.id, Instance = {
options: options,
state: state,
container: $N,
panes: $Ps,
contents: $Cs,
resizers: $Rs,
togglers: $Ts,
hide: hide,
show: show,
toggle: toggle,
open: open,
close: close,
slideOpen: slideOpen,
slideClose: slideClose,
slideToggle: slideToggle,
setSizeLimits: setSizeLimits,
_sizePane: sizePane,
sizePane: manualSizePane,
sizeContent: sizeContent,
swapPanes: swapPanes,
showMasks: showMasks,
hideMasks: hideMasks,
initContent: initContent,
addPane: addPane,
removePane: removePane,
createChildren: createChildren,
refreshChildren: refreshChildren,
enableClosable: enableClosable,
disableClosable: disableClosable,
enableSlidable: enableSlidable,
disableSlidable: disableSlidable,
enableResizable: enableResizable,
disableResizable: disableResizable,
allowOverflow: allowOverflow,
resetOverflow: resetOverflow,
destroy: destroy,
initPanes: isInitialized,
resizeAll: resizeAll,
runCallbacks: _runCallbacks,
hasParentLayout: !1,
children: children,
north: !1,
south: !1,
west: !1,
east: !1,
center: !1
};
return "cancel" === _create() ? null : Instance;
};
}(jQuery), function(n) {
n.ui || (n.ui = {}), n.ui.cookie = {
acceptsCookies: !!navigator.cookieEnabled,
read: function(e) {
for (var t, o = document.cookie, i = o ? o.split(";") : [], r = 0, a = i.length; a > r; r++) if (t = n.trim(i[r]).split("="),
t[0] == e) return decodeURIComponent(t[1]);
return null;
},
write: function(e, t, o) {
var i = "", r = "", a = !1, s = o || {}, l = s.expires || null, c = n.type(l);
"date" === c ? r = l : "string" === c && l > 0 && (l = parseInt(l, 10), c = "number"),
"number" === c && (r = new Date(), l > 0 ? r.setDate(r.getDate() + l) : (r.setFullYear(1970),
a = !0)), r && (i += ";expires=" + r.toUTCString()), s.path && (i += ";path=" + s.path),
s.domain && (i += ";domain=" + s.domain), s.secure && (i += ";secure"), document.cookie = e + "=" + (a ? "" : encodeURIComponent(t)) + i;
},
clear: function(e) {
n.ui.cookie.write(e, "", {
expires: -1
});
}
}, n.cookie || (n.cookie = function(e, t, o) {
var i = n.ui.cookie;
if (null === t) i.clear(e); else {
if (void 0 === t) return i.read(e);
i.write(e, t, o);
}
}), n.layout.plugins.stateManagement = !0, n.layout.config.optionRootKeys.push("stateManagement"),
n.layout.defaults.stateManagement = {
enabled: !1,
autoSave: !0,
autoLoad: !0,
animateLoad: !0,
includeChildren: !0,
stateKeys: "north.size,south.size,east.size,west.size,north.isClosed,south.isClosed,east.isClosed,west.isClosed,north.isHidden,south.isHidden,east.isHidden,west.isHidden",
cookie: {
name: "",
domain: "",
path: "",
expires: "",
secure: !1
}
}, n.layout.optionsMap.layout.push("stateManagement"), n.layout.state = {
saveCookie: function(e, t, o) {
var i = e.options, r = i.stateManagement, a = n.extend(!0, {}, r.cookie, o || null), s = e.state.stateData = e.readState(t || r.stateKeys);
return n.ui.cookie.write(a.name || i.name || "Layout", n.layout.state.encodeJSON(s), a),
n.extend(!0, {}, s);
},
deleteCookie: function(e) {
var t = e.options;
n.ui.cookie.clear(t.stateManagement.cookie.name || t.name || "Layout");
},
readCookie: function(e) {
var t = e.options, o = n.ui.cookie.read(t.stateManagement.cookie.name || t.name || "Layout");
return o ? n.layout.state.decodeJSON(o) : {};
},
loadCookie: function(e) {
var t = n.layout.state.readCookie(e);
return t && (e.state.stateData = n.extend(!0, {}, t), e.loadState(t)), t;
},
loadState: function(e, t, o) {
if (n.isPlainObject(t) && !n.isEmptyObject(t)) {
t = e.state.stateData = n.layout.transformData(t);
var i = e.options.stateManagement;
if (o = n.extend({
animateLoad: !1,
includeChildren: i.includeChildren
}, o), e.state.initialized) {
var r, a, l, c, d, p = !o.animateLoad;
if (n.each(n.layout.config.borderPanes, function(o, i) {
r = t[i], n.isPlainObject(r) && (s = r.size, a = r.initClosed, l = r.initHidden,
ar = r.autoResize, c = e.state[i], d = c.isVisible, ar && (c.autoResize = ar), d || e._sizePane(i, s, !1, !1, !1),
l === !0 ? e.hide(i, p) : a === !0 ? e.close(i, !1, p) : a === !1 ? e.open(i, !1, p) : l === !1 && e.show(i, !1, p),
d && e._sizePane(i, s, !1, !1, p));
}), o.includeChildren) {
var u, f;
n.each(e.children, function(e, o) {
u = t[e] ? t[e].children : 0, u && o && n.each(o, function(n, e) {
f = u[n], e && f && e.loadState(f);
});
});
}
} else {
var r = n.extend(!0, {}, t);
n.each(n.layout.config.allPanes, function(n, e) {
r[e] && delete r[e].children;
}), n.extend(!0, e.options, r);
}
}
},
readState: function(e, t) {
"string" === n.type(t) && (t = {
keys: t
}), t || (t = {});
var o, i, r, a, s, l, c, d = e.options.stateManagement, p = t.includeChildren, u = void 0 !== p ? p : d.includeChildren, f = t.stateKeys || d.stateKeys, h = {
isClosed: "initClosed",
isHidden: "initHidden"
}, g = e.state, b = n.layout.config.allPanes, m = {};
n.isArray(f) && (f = f.join(",")), f = f.replace(/__/g, ".").split(",");
for (var v = 0, x = f.length; x > v; v++) o = f[v].split("."), i = o[0], r = o[1],
n.inArray(i, b) < 0 || (a = g[i][r], void 0 != a && ("isClosed" == r && g[i].isSliding && (a = !0),
(m[i] || (m[i] = {}))[h[r] ? h[r] : r] = a));
return u && n.each(b, function(t, o) {
l = e.children[o], s = g.stateData[o], n.isPlainObject(l) && !n.isEmptyObject(l) && (c = m[o] || (m[o] = {}),
c.children || (c.children = {}), n.each(l, function(e, t) {
t.state.initialized ? c.children[e] = n.layout.state.readState(t) : s && s.children && s.children[e] && (c.children[e] = n.extend(!0, {}, s.children[e]));
}));
}), m;
},
encodeJSON: function(e) {
function t(e) {
var o, i, r, a = [], s = 0, l = n.isArray(e);
for (o in e) i = e[o], r = typeof i, "string" == r ? i = '"' + i + '"' : "object" == r && (i = t(i)),
a[s++] = (l ? "" : '"' + o + '":') + i;
return (l ? "[" : "{") + a.join(",") + (l ? "]" : "}");
}
return t(e);
},
decodeJSON: function(e) {
try {
return n.parseJSON ? n.parseJSON(e) : window.eval("(" + e + ")") || {};
} catch (t) {
return {};
}
},
_create: function(e) {
var t = n.layout.state, o = e.options, i = o.stateManagement;
if (n.extend(e, {
readCookie: function() {
return t.readCookie(e);
},
deleteCookie: function() {
t.deleteCookie(e);
},
saveCookie: function(n, o) {
return t.saveCookie(e, n, o);
},
loadCookie: function() {
return t.loadCookie(e);
},
loadState: function(n, o) {
t.loadState(e, n, o);
},
readState: function(n) {
return t.readState(e, n);
},
encodeJSON: t.encodeJSON,
decodeJSON: t.decodeJSON
}), e.state.stateData = {}, i.autoLoad) if (n.isPlainObject(i.autoLoad)) n.isEmptyObject(i.autoLoad) || e.loadState(i.autoLoad); else if (i.enabled) if (n.isFunction(i.autoLoad)) {
var r = {};
try {
r = i.autoLoad(e, e.state, e.options, e.options.name || "");
} catch (a) {}
r && n.isPlainObject(r) && !n.isEmptyObject(r) && e.loadState(r);
} else e.loadCookie();
},
_unload: function(e) {
var t = e.options.stateManagement;
if (t.enabled && t.autoSave) if (n.isFunction(t.autoSave)) try {
t.autoSave(e, e.state, e.options, e.options.name || "");
} catch (o) {} else e.saveCookie();
}
}, n.layout.onCreate.push(n.layout.state._create), n.layout.onUnload.push(n.layout.state._unload),
n.layout.plugins.buttons = !0, n.layout.defaults.autoBindCustomButtons = !1, n.layout.optionsMap.layout.push("autoBindCustomButtons"),
n.layout.buttons = {
init: function(e) {
var t, o = "ui-layout-button-", i = e.options.name || "";
n.each("toggle,open,close,pin,toggle-slide,open-slide".split(","), function(r, a) {
n.each(n.layout.config.borderPanes, function(r, s) {
n("." + o + a + "-" + s).each(function() {
t = n(this).data("layoutName") || n(this).attr("layoutName"), (void 0 == t || t === i) && e.bindButton(this, a, s);
});
});
});
},
get: function(e, t, o, i) {
var r = n(t), a = e.options, s = a.errors.addButtonError;
if (r.length) if (n.inArray(o, n.layout.config.borderPanes) < 0) n.layout.msg(s + " " + a.errors.pane + ": " + o, !0),
r = n(""); else {
var l = a[o].buttonClass + "-" + i;
r.addClass(l + " " + l + "-" + o).data("layoutName", a.name);
} else n.layout.msg(s + " " + a.errors.selector + ": " + t, !0);
return r;
},
bind: function(e, t, o, i) {
var r = n.layout.buttons;
switch (o.toLowerCase()) {
case "toggle":
r.addToggle(e, t, i);
break;
case "open":
r.addOpen(e, t, i);
break;
case "close":
r.addClose(e, t, i);
break;
case "pin":
r.addPin(e, t, i);
break;
case "toggle-slide":
r.addToggle(e, t, i, !0);
break;
case "open-slide":
r.addOpen(e, t, i, !0);
}
return e;
},
addToggle: function(e, t, o, i) {
return n.layout.buttons.get(e, t, o, "toggle").click(function(n) {
e.toggle(o, !!i), n.stopPropagation();
}), e;
},
addOpen: function(e, t, o, i) {
return n.layout.buttons.get(e, t, o, "open").attr("title", e.options[o].tips.Open).click(function(n) {
e.open(o, !!i), n.stopPropagation();
}), e;
},
addClose: function(e, t, o) {
return n.layout.buttons.get(e, t, o, "close").attr("title", e.options[o].tips.Close).click(function(n) {
e.close(o), n.stopPropagation();
}), e;
},
addPin: function(e, t, o) {
var i = n.layout.buttons, r = i.get(e, t, o, "pin");
if (r.length) {
var a = e.state[o];
r.click(function(t) {
i.setPinState(e, n(this), o, a.isSliding || a.isClosed), a.isSliding || a.isClosed ? e.open(o) : e.close(o),
t.stopPropagation();
}), i.setPinState(e, r, o, !a.isClosed && !a.isSliding), a.pins.push(t);
}
return e;
},
setPinState: function(n, e, t, o) {
var i = e.attr("pin");
if (!i || o !== ("down" == i)) {
var r = n.options[t], a = r.buttonClass + "-pin", s = a + "-" + t, l = a + "-up " + s + "-up", c = a + "-down " + s + "-down";
e.attr("pin", o ? "down" : "up").attr("title", o ? r.tips.Unpin : r.tips.Pin).removeClass(o ? l : c).addClass(o ? c : l);
}
},
syncPinBtns: function(e, t, o) {
n.each(e.state[t].pins, function(i, r) {
n.layout.buttons.setPinState(e, n(r), t, o);
});
},
_load: function(e) {
var t = n.layout.buttons;
n.extend(e, {
bindButton: function(n, o, i) {
return t.bind(e, n, o, i);
},
addToggleBtn: function(n, o, i) {
return t.addToggle(e, n, o, i);
},
addOpenBtn: function(n, o, i) {
return t.addOpen(e, n, o, i);
},
addCloseBtn: function(n, o) {
return t.addClose(e, n, o);
},
addPinBtn: function(n, o) {
return t.addPin(e, n, o);
}
});
for (var o = 0; 4 > o; o++) {
var i = n.layout.config.borderPanes[o];
e.state[i].pins = [];
}
e.options.autoBindCustomButtons && t.init(e);
},
_unload: function() {}
}, n.layout.onLoad.push(n.layout.buttons._load), n.layout.plugins.browserZoom = !0,
n.layout.defaults.browserZoomCheckInterval = 1e3, n.layout.optionsMap.layout.push("browserZoomCheckInterval"),
n.layout.browserZoom = {
_init: function(e) {
n.layout.browserZoom.ratio() !== !1 && n.layout.browserZoom._setTimer(e);
},
_setTimer: function(e) {
if (!e.destroyed) {
var t = e.options, o = e.state, i = e.hasParentLayout ? 5e3 : Math.max(t.browserZoomCheckInterval, 100);
setTimeout(function() {
if (!e.destroyed && t.resizeWithWindow) {
var i = n.layout.browserZoom.ratio();
i !== o.browserZoom && (o.browserZoom = i, e.resizeAll()), n.layout.browserZoom._setTimer(e);
}
}, i);
}
},
ratio: function() {
function e(n, e) {
return (100 * (parseInt(n, 10) / parseInt(e, 10))).toFixed();
}
var t, o, i, r = window, a = screen, s = document, l = s.documentElement || s.body, c = n.layout.browser, d = c.version;
return c.msie && d > 8 || !c.msie ? !1 : a.deviceXDPI && a.systemXDPI ? e(a.deviceXDPI, a.systemXDPI) : c.webkit && (t = s.body.getBoundingClientRect) ? e(t.left - t.right, s.body.offsetWidth) : c.webkit && (o = r.outerWidth) ? e(o, r.innerWidth) : (o = a.width) && (i = l.clientWidth) ? e(o, i) : !1;
}
}, n.layout.onReady.push(n.layout.browserZoom._init);
}(jQuery), define("libs/layout", function() {}), function() {
function n() {}
function e(n) {
this.buttonBar = p.getElementById("wmd-button-bar" + n), this.preview = p.getElementById("wmd-preview" + n),
this.input = p.getElementById("wmd-input" + n);
}
function t(n, e) {
var t, i, r, a = this, s = [], c = 0, d = "none", p = function(n, e) {
d != n && (d = n, e || f()), g.isIE && "moving" == d ? r = null : i = setTimeout(u, 1);
}, u = function(n) {
r = new o(e, n), i = void 0;
};
this.setCommandMode = function() {
d = "command", f(), i = setTimeout(u, 0);
}, this.canUndo = function() {
return c > 1;
}, this.canRedo = function() {
return s[c + 1] ? !0 : !1;
}, this.undo = function() {
a.canUndo() && (t ? (t.restore(), t = null) : (s[c] = new o(e), s[--c].restore(),
n && n())), d = "none", e.input.focus(), u();
}, this.redo = function() {
a.canRedo() && (s[++c].restore(), n && n()), d = "none", e.input.focus(), u();
};
var f = function() {
var i = r || new o(e);
return i ? "moving" == d ? (t || (t = i), void 0) : (t && (s[c - 1].text != t.text && (s[c++] = t),
t = null), s[c++] = i, s[c + 1] = null, n && n(), void 0) : !1;
}, h = function(n) {
if (!n.ctrlKey && !n.metaKey) {
var e = n.keyCode;
e >= 33 && 40 >= e || e >= 63232 && 63235 >= e ? p("moving") : 8 == e || 46 == e || 127 == e ? p("deleting") : 13 == e ? p("newlines") : 27 == e ? p("escape") : (16 > e || e > 20) && 91 != e && p("typing");
}
}, b = function() {
l.addEvent(e.input, "keypress", function(n) {
!n.ctrlKey && !n.metaKey || n.altKey || 89 != n.keyCode && 90 != n.keyCode || n.preventDefault();
});
var n = function() {
(g.isIE || r && r.text != e.input.value) && void 0 == i && (d = "paste", f(), u());
};
l.addEvent(e.input, "keydown", h), l.addEvent(e.input, "mousedown", function() {
p("moving");
}), e.input.onpaste = n, e.input.ondrop = n;
}, m = function() {
b(), u(!0);
};
this.reinit = function(n, e, o, a) {
s = [], c = 0, d = "none", t = void 0, i = void 0, u(), r.text = n, r.start = e,
r.end = o, r.scrollTop = a, r.setInputAreaSelection(), f();
}, this.setMode = p, m();
}
function o(e, t) {
var o = this, i = e.input;
this.init = function() {
l.isVisible(i) && (t || !p.activeElement || p.activeElement === i) && (this.setInputAreaSelectionStartEnd(),
this.scrollTop = i.scrollTop, (!this.text && i.selectionStart || 0 === i.selectionStart) && (this.text = i.value));
}, this.setInputAreaSelection = function() {
if (l.isVisible(i)) if (void 0 === i.selectionStart || g.isOpera) {
if (p.selection) {
if (p.activeElement && p.activeElement !== i) return;
i.focus();
var n = i.createTextRange();
n.moveStart("character", -i.value.length), n.moveEnd("character", -i.value.length),
n.moveEnd("character", o.end), n.moveStart("character", o.start), n.select();
}
} else i.focus(), i.selectionStart = o.start, i.selectionEnd = o.end, i.scrollTop = o.scrollTop;
}, this.setInputAreaSelectionStartEnd = function() {
if (e.ieCachedRange || !i.selectionStart && 0 !== i.selectionStart) {
if (p.selection) {
o.text = l.fixEolChars(i.value);
var n = e.ieCachedRange || p.selection.createRange(), t = l.fixEolChars(n.text), r = "", a = r + t + r;
n.text = a;
var s = l.fixEolChars(i.value);
n.moveStart("character", -a.length), n.text = t, o.start = s.indexOf(r), o.end = s.lastIndexOf(r) - r.length;
var c = o.text.length - l.fixEolChars(i.value).length;
if (c) {
for (n.moveStart("character", -t.length); c--; ) t += "\n", o.end += 1;
n.text = t;
}
e.ieCachedRange && (o.scrollTop = e.ieCachedScrollTop), e.ieCachedRange = null,
this.setInputAreaSelection();
}
} else o.start = i.selectionStart, o.end = i.selectionEnd;
}, this.restore = function() {
void 0 != o.text && o.text != i.value && (i.value = o.text), this.setInputAreaSelection(),
i.scrollTop = o.scrollTop;
}, this.getChunks = function() {
var e = new n();
return e.before = l.fixEolChars(o.text.substring(0, o.start)), e.startTag = "",
e.selection = l.fixEolChars(o.text.substring(o.start, o.end)), e.endTag = "", e.after = l.fixEolChars(o.text.substring(o.end)),
e.scrollTop = o.scrollTop, e;
}, this.setChunks = function(n) {
n.before = n.before + n.startTag, n.after = n.endTag + n.after, this.start = n.before.length,
this.end = n.before.length + n.selection.length, this.text = n.before + n.selection + n.after,
this.scrollTop = n.scrollTop;
}, this.init();
}
function i(n, e, t, o) {
var i, r, a, s = 3e3, d = "delayed", u = function(n, e) {
l.addEvent(n, "input", e), n.onpaste = e, n.ondrop = e, l.addEvent(n, "keypress", e),
l.addEvent(n, "keydown", e);
}, f = function() {
var n = 0;
return window.innerHeight ? n = window.pageYOffset : p.documentElement && p.documentElement.scrollTop ? n = p.documentElement.scrollTop : p.body && (n = p.body.scrollTop),
n;
}, h = function() {
if (e.preview) {
var t = e.input.value;
if (!t || t != a) {
a = t;
var o = new Date().getTime();
t = n.makeHtml(t);
var i = new Date().getTime();
r = i - o, S(t);
}
}
};
void 0 !== o && (h = o(h));
var b = function() {
if (i && (clearTimeout(i), i = void 0), "manual" !== d) {
var n = 0;
"delayed" === d && (n = r), n > s && (n = s), i = setTimeout(h, n);
}
}, m = function(n) {
return n.scrollHeight <= n.clientHeight ? 1 : n.scrollTop / (n.scrollHeight - n.clientHeight);
}, v = function() {
e.preview && (e.preview.scrollTop = (e.preview.scrollHeight - e.preview.clientHeight) * m(e.preview));
};
this.refresh = function(n) {
n ? (a = "", h()) : b();
}, this.processingTime = function() {
return r;
};
var x, y = !0, w = function(n) {
var t = e.preview, o = t.parentNode, i = t.nextSibling;
o.removeChild(t), t.innerHTML = n, i ? o.insertBefore(t, i) : o.appendChild(t);
}, k = function(n) {
e.preview.innerHTML = n;
}, C = function(n) {
if (x) return x(n);
try {
k(n), x = k;
} catch (e) {
x = w, x(n);
}
}, S = function(n) {
var o = c.getTop(e.input) - f();
if (e.preview && (C(n), t()), v(), y) return y = !1, void 0;
var i = c.getTop(e.input) - f();
g.isIE ? setTimeout(function() {
window.scrollBy(0, i - o);
}, 0) : window.scrollBy(0, i - o);
}, T = function() {
u(e.input, b), e.preview && (e.preview.scrollTop = 0);
};
T();
}
function r(n, e, t, i, r, a, s) {
function c(n) {
m.focus();
var r = "wmd-link-button" == n.id || "wmd-image-button" == n.id;
if (n.textOp) {
t && !r && t.setCommandMode();
var a = new o(e);
if (!a) return;
var s = a.getChunks(), l = function() {
m.focus(), s && a.setChunks(s), a.restore(), i.refresh();
}, c = n.textOp(s, l);
c || (l(), r || m.dispatchEvent(new Event("input")));
}
n.execute && n.execute(t);
}
function d(n, t) {
var o = "0px", i = "-20px", r = "-40px", a = n.getElementsByTagName("span")[0];
t ? (a.style.backgroundPosition = n.XShift + " " + o, n.onmouseover = function() {
a.style.backgroundPosition = this.XShift + " " + r;
}, n.onmouseout = function() {
a.style.backgroundPosition = this.XShift + " " + o;
}, g.isIE && (n.onmousedown = function() {
p.activeElement && p.activeElement !== e.input || (e.ieCachedRange = document.selection.createRange(),
e.ieCachedScrollTop = e.input.scrollTop);
}), n.isHelp || (n.onclick = function() {
return this.onmouseout && this.onmouseout(), c(this), !1;
}), n.className = n.className.replace(/ disabled/g, "")) : (a.style.backgroundPosition = n.XShift + " " + i,
n.onmouseover = n.onmouseout = n.onclick = function() {}, n.className += " disabled");
}
function u(n) {
return "string" == typeof n && (n = r[n]), function() {
n.apply(r, arguments);
};
}
function h() {
var t = e.buttonBar, o = document.createElement("ul");
o.id = "wmd-button-row" + n, o.className = "wmd-button-row", o = t.appendChild(o);
var i = 0, r = function(e, t, r, a) {
var s = document.createElement("li");
s.className = "wmd-button", s.style.left = i + "px", i += 25;
var l = document.createElement("span");
return s.id = e + n, s.appendChild(l), s.title = t, s.XShift = r, a && (s.textOp = a),
d(s, !0), o.appendChild(s), s;
}, l = function(e) {
var t = document.createElement("li");
t.className = "wmd-spacer wmd-spacer" + e, t.id = "wmd-spacer" + e + n, o.appendChild(t),
i += 25;
};
v.bold = r("wmd-bold-button", s("bold"), "0px", u("doBold")), v.italic = r("wmd-italic-button", s("italic"), "-20px", u("doItalic")),
l(1), v.link = r("wmd-link-button", s("link"), "-40px", u(function(n, e) {
return this.doLinkOrImage(n, e, !1);
})), v.quote = r("wmd-quote-button", s("quote"), "-60px", u("doBlockquote")), v.code = r("wmd-code-button", s("code"), "-80px", u("doCode")),
v.image = r("wmd-image-button", s("image"), "-100px", u(function(n, e) {
return this.doLinkOrImage(n, e, !0);
})), l(2), v.olist = r("wmd-olist-button", s("olist"), "-120px", u(function(n, e) {
this.doList(n, e, !0);
})), v.ulist = r("wmd-ulist-button", s("ulist"), "-140px", u(function(n, e) {
this.doList(n, e, !1);
})), v.heading = r("wmd-heading-button", s("heading"), "-160px", u("doHeading")),
v.hr = r("wmd-hr-button", s("hr"), "-180px", u("doHorizontalRule")), l(3), v.undo = r("wmd-undo-button", s("undo"), "-200px", null),
v.undo.execute = function(n) {
n && n.undo();
};
var c = /win/.test(f.platform.toLowerCase()) ? s("redo") : s("redomac");
if (v.redo = r("wmd-redo-button", c, "-220px", null), v.redo.execute = function(n) {
n && n.redo();
}, a) {
var p = document.createElement("li"), h = document.createElement("span");
p.appendChild(h), p.className = "wmd-button wmd-help-button", p.id = "wmd-help-button" + n,
p.XShift = "-240px", p.isHelp = !0, p.style.right = "0px", p.title = s("help"),
p.onclick = a.handler, d(p, !0), o.appendChild(p), v.help = p;
}
b();
}
function b() {
t && (d(v.undo, t.canUndo()), d(v.redo, t.canRedo()));
}
var m = e.input, v = {};
h();
var x = "keydown";
g.isOpera && (x = "keypress"), l.addEvent(m, x, function(n) {
if ((n.ctrlKey || n.metaKey) && !n.altKey) {
var e = n.charCode || n.keyCode, o = String.fromCharCode(e).toLowerCase();
switch (o) {
case "b":
c(v.bold);
break;
case "i":
c(v.italic);
break;
case "l":
c(v.link);
break;
case "q":
c(v.quote);
break;
case "k":
c(v.code);
break;
case "g":
c(v.image);
break;
case "o":
c(v.olist);
break;
case "u":
c(v.ulist);
break;
case "h":
c(v.heading);
break;
case "r":
c(v.hr);
break;
case "y":
c(v.redo);
break;
case "z":
n.shiftKey ? c(v.redo) : c(v.undo);
break;
case "v":
return t.setMode("typing"), void 0;
case "x":
return t.setMode("deleting"), void 0;
default:
return;
}
n.preventDefault && n.preventDefault(), window.event && (window.event.returnValue = !1);
}
}), l.addEvent(m, "keyup", function(n) {
if (n.shiftKey && !n.ctrlKey && !n.metaKey) {
var e = n.charCode || n.keyCode;
if (13 === e) {
var t = {};
t.textOp = u("doAutoindent"), c(t);
}
}
}), g.isIE && l.addEvent(m, "keydown", function(n) {
var e = n.keyCode;
return 27 === e ? !1 : void 0;
}), this.setUndoRedoButtonStates = b, this.buttons = v, this.setButtonState = d;
}
function a(n, e) {
this.hooks = n, this.getString = e;
}
function s(n) {
return n.replace(/^\s*(.*?)(?:\s+"(.+)")?\s*$/, function(n, e, t) {
return e = e.replace(/\?.*$/, function(n) {
return n.replace(/\+/g, " ");
}), e = decodeURIComponent(e), e = encodeURI(e).replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29"),
e = e.replace(/\?.*$/, function(n) {
return n.replace(/\+/g, "%2b");
}), t && (t = t.trim ? t.trim() : t.replace(/^\s*/, "").replace(/\s*$/, ""), t = t.replace(/"/g, "quot;").replace(/\(/g, "&#40;").replace(/\)/g, "&#41;").replace(/</g, "&lt;").replace(/>/g, "&gt;")),
t ? e + ' "' + t + '"' : e;
});
}
var l = {}, c = {}, d = {}, p = window.document, u = window.RegExp, f = window.navigator, h = {
lineLength: 72
}, g = {
isIE: /msie/.test(f.userAgent.toLowerCase()),
isIE_5or6: /msie 6/.test(f.userAgent.toLowerCase()) || /msie 5/.test(f.userAgent.toLowerCase()),
isOpera: /opera/.test(f.userAgent.toLowerCase())
}, b = {
bold: "Strong <strong> Ctrl+B",
boldexample: "strong text",
italic: "Emphasis <em> Ctrl+I",
italicexample: "emphasized text",
link: "Hyperlink <a> Ctrl+L",
linkdescription: "enter link description here",
linkdialog: '<p><b>Insert Hyperlink</b></p><p>http://example.com/ "optional title"</p>',
quote: "Blockquote <blockquote> Ctrl+Q",
quoteexample: "Blockquote",
code: "Code Sample <pre><code> Ctrl+K",
codeexample: "enter code here",
image: "Image <img> Ctrl+G",
imagedescription: "enter image description here",
imagedialog: "<p><b>Insert Image</b></p><p>http://example.com/images/diagram.jpg \"optional title\"<br><br>Need <a href='http://www.google.com/search?q=free+image+hosting' target='_blank'>free image hosting?</a></p>",
olist: "Numbered List <ol> Ctrl+O",
ulist: "Bulleted List <ul> Ctrl+U",
litem: "List item",
heading: "Heading <h1>/<h2> Ctrl+H",
headingexample: "Heading",
hr: "Horizontal Rule <hr> Ctrl+R",
undo: "Undo - Ctrl+Z",
redo: "Redo - Ctrl+Y",
redomac: "Redo - Ctrl+Shift+Z",
help: "Markdown Editing Help"
}, m = "http://", v = "http://";
Markdown.Editor = function(n, o, s) {
s = s || {}, "function" == typeof s.handler && (s = {
helpButton: s
}), s.strings = s.strings || {}, s.helpButton && (s.strings.help = s.strings.help || s.helpButton.title);
var l = function(n) {
return s.strings[n] || b[n];
};
o = o || "";
var c = this.hooks = new Markdown.HookCollection();
c.addNoop("onPreviewRefresh"), c.addNoop("postBlockquoteCreation"), c.addFalse("insertImageDialog"),
c.addFalse("insertLinkDialog"), this.getConverter = function() {
return n;
};
var d, u, f = this;
this.run = function(h) {
if (!d) {
d = new e(o);
var g, b = new a(c, l), m = new i(n, d, function() {
c.onPreviewRefresh();
}, h);
/\?noundo/.test(p.location.href) || (u = new t(function() {
m.refresh(), g && g.setUndoRedoButtonStates();
}, d), this.textOperation = function(n) {
u.setCommandMode(), n(), f.refreshPreview();
}), g = new r(o, d, u, m, b, s.helpButton, l), g.setUndoRedoButtonStates(), f.refreshPreview = function() {
m.refresh(!0);
}, f.undoManager = u, f.uiManager = g;
}
};
}, n.prototype.findTags = function(n, e) {
var t, o = this;
n && (t = l.extendRegExp(n, "", "$"), this.before = this.before.replace(t, function(n) {
return o.startTag = o.startTag + n, "";
}), t = l.extendRegExp(n, "^", ""), this.selection = this.selection.replace(t, function(n) {
return o.startTag = o.startTag + n, "";
})), e && (t = l.extendRegExp(e, "", "$"), this.selection = this.selection.replace(t, function(n) {
return o.endTag = n + o.endTag, "";
}), t = l.extendRegExp(e, "^", ""), this.after = this.after.replace(t, function(n) {
return o.endTag = n + o.endTag, "";
}));
}, n.prototype.trimWhitespace = function(n) {
var e, t, o = this;
n ? e = t = "" : (e = function(n) {
return o.before += n, "";
}, t = function(n) {
return o.after = n + o.after, "";
}), this.selection = this.selection.replace(/^(\s*)/, e).replace(/(\s*)$/, t);
}, n.prototype.skipLines = function(n, e, t) {
void 0 === n && (n = 1), void 0 === e && (e = 1), n++, e++;
var o, i;
if (navigator.userAgent.match(/Chrome/) && "X".match(/()./), this.selection = this.selection.replace(/(^\n*)/, ""),
this.startTag = this.startTag + u.$1, this.selection = this.selection.replace(/(\n*$)/, ""),
this.endTag = this.endTag + u.$1, this.startTag = this.startTag.replace(/(^\n*)/, ""),
this.before = this.before + u.$1, this.endTag = this.endTag.replace(/(\n*$)/, ""),
this.after = this.after + u.$1, this.before) {
for (o = i = ""; n--; ) o += "\\n?", i += "\n";
t && (o = "\\n*"), this.before = this.before.replace(new u(o + "$", ""), i);
}
if (this.after) {
for (o = i = ""; e--; ) o += "\\n?", i += "\n";
t && (o = "\\n*"), this.after = this.after.replace(new u(o, ""), i);
}
}, l.isVisible = function(n) {
return window.getComputedStyle ? "none" !== window.getComputedStyle(n, null).getPropertyValue("display") : n.currentStyle ? "none" !== n.currentStyle.display : void 0;
}, l.addEvent = function(n, e, t) {
n.attachEvent ? n.attachEvent("on" + e, t) : n.addEventListener(e, t, !1);
}, l.removeEvent = function(n, e, t) {
n.detachEvent ? n.detachEvent("on" + e, t) : n.removeEventListener(e, t, !1);
}, l.fixEolChars = function(n) {
return n = n.replace(/\r\n/g, "\n"), n = n.replace(/\r/g, "\n");
}, l.extendRegExp = function(n, e, t) {
(null === e || void 0 === e) && (e = ""), (null === t || void 0 === t) && (t = "");
var o, i = n.toString();
return i = i.replace(/\/([gim]*)$/, function(n, e) {
return o = e, "";
}), i = i.replace(/(^\/|\/$)/g, ""), i = e + i + t, new u(i, o);
}, c.getTop = function(n, e) {
var t = n.offsetTop;
if (!e) for (;n = n.offsetParent; ) t += n.offsetTop;
return t;
}, c.getHeight = function(n) {
return n.offsetHeight || n.scrollHeight;
}, c.getWidth = function(n) {
return n.offsetWidth || n.scrollWidth;
}, c.getPageSize = function() {
var n, e, t, o;
self.innerHeight && self.scrollMaxY ? (n = p.body.scrollWidth, e = self.innerHeight + self.scrollMaxY) : p.body.scrollHeight > p.body.offsetHeight ? (n = p.body.scrollWidth,
e = p.body.scrollHeight) : (n = p.body.offsetWidth, e = p.body.offsetHeight), self.innerHeight ? (t = self.innerWidth,
o = self.innerHeight) : p.documentElement && p.documentElement.clientHeight ? (t = p.documentElement.clientWidth,
o = p.documentElement.clientHeight) : p.body && (t = p.body.clientWidth, o = p.body.clientHeight);
var i = Math.max(n, t), r = Math.max(e, o);
return [ i, r, t, o ];
}, d.createBackground = function() {
var n = p.createElement("div"), e = n.style;
n.className = "wmd-prompt-background", e.position = "absolute", e.top = "0", e.zIndex = "1000",
g.isIE ? e.filter = "alpha(opacity=50)" : e.opacity = "0.5";
var t = c.getPageSize();
return e.height = t[1] + "px", g.isIE ? (e.left = p.documentElement.scrollLeft,
e.width = p.documentElement.clientWidth) : (e.left = "0", e.width = "100%"), p.body.appendChild(n),
n;
}, d.prompt = function(n, e, t) {
var o, i;
void 0 === e && (e = "");
var r = function(n) {
var e = n.charCode || n.keyCode;
27 === e && a(!0);
}, a = function(n) {
l.removeEvent(p.body, "keydown", r);
var e = i.value;
return n ? e = null : (e = e.replace(/^http:\/\/(https?|ftp):\/\//, "$1://"), /^(?:https?|ftp):\/\//.test(e) || (e = "http://" + e)),
o.parentNode.removeChild(o), t(e), !1;
}, s = function() {
o = p.createElement("div"), o.className = "wmd-prompt-dialog", o.style.padding = "10px;",
o.style.position = "fixed", o.style.width = "400px", o.style.zIndex = "1001";
var t = p.createElement("div");
t.innerHTML = n, t.style.padding = "5px", o.appendChild(t);
var s = p.createElement("form"), d = s.style;
s.onsubmit = function() {
return a(!1);
}, d.padding = "0", d.margin = "0", d.cssFloat = "left", d.width = "100%", d.textAlign = "center",
d.position = "relative", o.appendChild(s), i = p.createElement("input"), i.type = "text",
i.value = e, d = i.style, d.display = "block", d.width = "80%", d.marginLeft = d.marginRight = "auto",
s.appendChild(i);
var u = p.createElement("input");
u.type = "button", u.onclick = function() {
return a(!1);
}, u.value = "OK", d = u.style, d.margin = "10px", d.display = "inline", d.width = "7em";
var f = p.createElement("input");
f.type = "button", f.onclick = function() {
return a(!0);
}, f.value = "Cancel", d = f.style, d.margin = "10px", d.display = "inline", d.width = "7em",
s.appendChild(u), s.appendChild(f), l.addEvent(p.body, "keydown", r), o.style.top = "50%",
o.style.left = "50%", o.style.display = "block", g.isIE_5or6 && (o.style.position = "absolute",
o.style.top = p.documentElement.scrollTop + 200 + "px", o.style.left = "50%"), p.body.appendChild(o),
o.style.marginTop = -(c.getHeight(o) / 2) + "px", o.style.marginLeft = -(c.getWidth(o) / 2) + "px";
};
setTimeout(function() {
s();
var n = e.length;
if (void 0 !== i.selectionStart) i.selectionStart = 0, i.selectionEnd = n; else if (i.createTextRange) {
var t = i.createTextRange();
t.collapse(!1), t.moveStart("character", -n), t.moveEnd("character", n), t.select();
}
i.focus();
}, 0);
};
var x = a.prototype;
x.prefixes = "(?:\\s{4,}|\\s*>|\\s*-\\s+|\\s*\\d+\\.|=|\\+|-|_|\\*|#|\\s*\\[[^\n]]+\\]:)",
x.unwrap = function(n) {
var e = new u("([^\\n])\\n(?!(\\n|" + this.prefixes + "))", "g");
n.selection = n.selection.replace(e, "$1 $2");
}, x.wrap = function(n, e) {
this.unwrap(n);
var t = new u("(.{1," + e + "})( +|$\\n?)", "gm"), o = this;
n.selection = n.selection.replace(t, function(n, e) {
return new u("^" + o.prefixes, "").test(n) ? n : e + "\n";
}), n.selection = n.selection.replace(/\s+$/, "");
}, x.doBold = function(n, e) {
return this.doBorI(n, e, 2, this.getString("boldexample"));
}, x.doItalic = function(n, e) {
return this.doBorI(n, e, 1, this.getString("italicexample"));
}, x.doBorI = function(n, e, t, o) {
n.trimWhitespace(), n.selection = n.selection.replace(/\n{2,}/g, "\n");
var i = /(\**$)/.exec(n.before)[0], r = /(^\**)/.exec(n.after)[0], a = Math.min(i.length, r.length);
if (a >= t && (2 != a || 1 != t)) n.before = n.before.replace(u("[*]{" + t + "}$", ""), ""),
n.after = n.after.replace(u("^[*]{" + t + "}", ""), ""); else if (!n.selection && r) {
n.after = n.after.replace(/^([*_]*)/, ""), n.before = n.before.replace(/(\s?)$/, "");
var s = u.$1;
n.before = n.before + r + s;
} else {
n.selection || r || (n.selection = o);
var l = 1 >= t ? "*" : "**";
n.before = n.before + l, n.after = l + n.after;
}
}, x.stripLinkDefs = function(n, e) {
return n = n.replace(/^[ ]{0,3}\[(\d+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|$)/gm, function(n, t, o, i, r) {
return e[t] = n.replace(/\s*$/, ""), i ? (e[t] = n.replace(/["(](.+?)[")]$/, ""),
i + r) : "";
});
}, x.addLinkDef = function(n, e) {
var t = 0, o = {};
n.before = this.stripLinkDefs(n.before, o), n.selection = this.stripLinkDefs(n.selection, o),
n.after = this.stripLinkDefs(n.after, o);
var i = "", r = /(\[)((?:\[[^\]]*\]|[^\[\]])*)(\][ ]?(?:\n[ ]*)?\[)(\d+)(\])/g, a = function(n) {
t++, n = n.replace(/^[ ]{0,3}\[(\d+)\]:/, " [" + t + "]:"), i += "\n" + n;
}, s = function(n, e, i, l, c, d) {
return i = i.replace(r, s), o[c] ? (a(o[c]), e + i + l + t + d) : n;
};
n.before = n.before.replace(r, s), e ? a(e) : n.selection = n.selection.replace(r, s);
var l = t;
return n.after = n.after.replace(r, s), n.after && (n.after = n.after.replace(/\n*$/, "")),
n.after || (n.selection = n.selection.replace(/\n*$/, "")), n.after += "\n\n" + i,
l;
}, x.doLinkOrImage = function(n, e, t) {
n.trimWhitespace(), n.findTags(/\s*!?\[/, /\][ ]?(?:\n[ ]*)?(\[.*?\])?/);
var o;
if (!(n.endTag.length > 1 && n.startTag.length > 0)) {
if (n.selection = n.startTag + n.selection + n.endTag, n.startTag = n.endTag = "",
/\n\n/.test(n.selection)) return this.addLinkDef(n, null), void 0;
var i = this, r = function(r) {
if (o.parentNode.removeChild(o), null !== r) {
n.selection = (" " + n.selection).replace(/([^\\](?:\\\\)*)(?=[[\]])/g, "$1\\").substr(1);
var a = " [999]: " + s(r), l = i.addLinkDef(n, a);
n.startTag = t ? "![" : "[", n.endTag = "][" + l + "]", n.selection || (n.selection = t ? i.getString("imagedescription") : i.getString("linkdescription"));
}
e();
};
return o = d.createBackground(), t ? this.hooks.insertImageDialog(r) || d.prompt(this.getString("imagedialog"), m, r) : this.hooks.insertLinkDialog(r) || d.prompt(this.getString("linkdialog"), v, r),
!0;
}
n.startTag = n.startTag.replace(/!?\[/, ""), n.endTag = "", this.addLinkDef(n, null);
}, x.doAutoindent = function(n) {
var e = this, t = !1;
n.before = n.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/, "\n\n"), n.before = n.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/, "\n\n"),
n.before = n.before.replace(/(\n|^)[ \t]+\n$/, "\n\n"), n.selection || /^[ \t]*(?:\n|$)/.test(n.after) || (n.after = n.after.replace(/^[^\n]*/, function(e) {
return n.selection = e, "";
}), t = !0), /(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]+.*\n$/.test(n.before) && e.doList && e.doList(n),
/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(n.before) && e.doBlockquote && e.doBlockquote(n),
/(\n|^)(\t|[ ]{4,}).*\n$/.test(n.before) && e.doCode && e.doCode(n), t && (n.after = n.selection + n.after,
n.selection = "");
}, x.doBlockquote = function(n) {
n.selection = n.selection.replace(/^(\n*)([^\r]+?)(\n*)$/, function(e, t, o, i) {
return n.before += t, n.after = i + n.after, o;
}), n.before = n.before.replace(/(>[ \t]*)$/, function(e, t) {
return n.selection = t + n.selection, "";
}), n.selection = n.selection.replace(/^(\s|>)+$/, ""), n.selection = n.selection || this.getString("quoteexample");
var e, t = "", o = "";
if (n.before) {
for (var i = n.before.replace(/\n$/, "").split("\n"), r = !1, a = 0; a < i.length; a++) {
var s = !1;
e = i[a], r = r && e.length > 0, /^>/.test(e) ? (s = !0, !r && e.length > 1 && (r = !0)) : s = /^[ \t]*$/.test(e) ? !0 : r,
s ? t += e + "\n" : (o += t + e, t = "\n");
}
/(^|\n)>/.test(t) || (o += t, t = "");
}
n.startTag = t, n.before = o, n.after && (n.after = n.after.replace(/^\n?/, "\n")),
n.after = n.after.replace(/^(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*)/, function(e) {
return n.endTag = e, "";
});
var l = function(e) {
var t = e ? "> " : "";
n.startTag && (n.startTag = n.startTag.replace(/\n((>|\s)*)\n$/, function(n, e) {
return "\n" + e.replace(/^[ ]{0,3}>?[ \t]*$/gm, t) + "\n";
})), n.endTag && (n.endTag = n.endTag.replace(/^\n((>|\s)*)\n/, function(n, e) {
return "\n" + e.replace(/^[ ]{0,3}>?[ \t]*$/gm, t) + "\n";
}));
};
/^(?![ ]{0,3}>)/m.test(n.selection) ? (this.wrap(n, h.lineLength - 2), n.selection = n.selection.replace(/^/gm, "> "),
l(!0), n.skipLines()) : (n.selection = n.selection.replace(/^[ ]{0,3}> ?/gm, ""),
this.unwrap(n), l(!1), !/^(\n|^)[ ]{0,3}>/.test(n.selection) && n.startTag && (n.startTag = n.startTag.replace(/\n{0,2}$/, "\n\n")),
!/(\n|^)[ ]{0,3}>.*$/.test(n.selection) && n.endTag && (n.endTag = n.endTag.replace(/^\n{0,2}/, "\n\n"))),
n.selection = this.hooks.postBlockquoteCreation(n.selection), /\n/.test(n.selection) || (n.selection = n.selection.replace(/^(> *)/, function(e, t) {
return n.startTag += t, "";
}));
}, x.doCode = function(n) {
var e = /\S[ ]*$/.test(n.before), t = /^[ ]*\S/.test(n.after);
if (!t && !e || /\n/.test(n.selection)) {
n.before = n.before.replace(/[ ]{4}$/, function(e) {
return n.selection = e + n.selection, "";
});
var o = 1, i = 1;
/(\n|^)(\t|[ ]{4,}).*\n$/.test(n.before) && (o = 0), /^\n(\t|[ ]{4,})/.test(n.after) && (i = 0),
n.skipLines(o, i), n.selection ? /^[ ]{0,3}\S/m.test(n.selection) ? /\n/.test(n.selection) ? n.selection = n.selection.replace(/^/gm, " ") : n.before += " " : n.selection = n.selection.replace(/^(?:[ ]{4}|[ ]{0,3}\t)/gm, "") : (n.startTag = " ",
n.selection = this.getString("codeexample"));
} else n.trimWhitespace(), n.findTags(/`/, /`/), n.startTag || n.endTag ? n.endTag && !n.startTag ? (n.before += n.endTag,
n.endTag = "") : n.startTag = n.endTag = "" : (n.startTag = n.endTag = "`", n.selection || (n.selection = this.getString("codeexample")));
}, x.doList = function(n, e, t) {
var o = /(\n|^)(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*$/, i = /^\n*(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/, r = "-", a = 1, s = function() {
var n;
return t ? (n = " " + a + ". ", a++) : n = " " + r + " ", n;
}, l = function(n) {
return void 0 === t && (t = /^\s*\d/.test(n)), n = n.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm, function() {
return s();
});
};
if (n.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/, null), !n.before || /\n$/.test(n.before) || /^\n/.test(n.startTag) || (n.before += n.startTag,
n.startTag = ""), n.startTag) {
var c = /\d+[.]/.test(n.startTag);
if (n.startTag = "", n.selection = n.selection.replace(/\n[ ]{4}/g, "\n"), this.unwrap(n),
n.skipLines(), c && (n.after = n.after.replace(i, l)), t == c) return;
}
var d = 1;
n.before = n.before.replace(o, function(n) {
return /^\s*([*+-])/.test(n) && (r = u.$1), d = /[^\n]\n\n[^\n]/.test(n) ? 1 : 0,
l(n);
}), n.selection || (n.selection = this.getString("litem"));
var p = s(), f = 1;
n.after = n.after.replace(i, function(n) {
return f = /[^\n]\n\n[^\n]/.test(n) ? 1 : 0, l(n);
}), n.trimWhitespace(!0), n.skipLines(d, f, !0), n.startTag = p;
var g = p.replace(/./g, " ");
this.wrap(n, h.lineLength - g.length), n.selection = n.selection.replace(/\n/g, "\n" + g);
}, x.doHeading = function(n) {
if (n.selection = n.selection.replace(/\s+/g, " "), n.selection = n.selection.replace(/(^\s+|\s+$)/g, ""),
!n.selection) return n.startTag = "## ", n.selection = this.getString("headingexample"),
n.endTag = " ##", void 0;
var e = 0;
n.findTags(/#+[ ]*/, /[ ]*#+/), /#+/.test(n.startTag) && (e = u.lastMatch.length),
n.startTag = n.endTag = "", n.findTags(null, /\s?(-+|=+)/), /=+/.test(n.endTag) && (e = 1),
/-+/.test(n.endTag) && (e = 2), n.startTag = n.endTag = "", n.skipLines(1, 1);
var t = 0 == e ? 2 : e - 1;
if (t > 0) {
var o = t >= 2 ? "-" : "=", i = n.selection.length;
for (i > h.lineLength && (i = h.lineLength), n.endTag = "\n"; i--; ) n.endTag += o;
}
}, x.doHorizontalRule = function(n) {
n.startTag = "----------\n", n.selection = "", n.skipLines(2, 1, !0);
};
}(), define("libs/Markdown.Editor", function() {}), define("core", [ "jquery", "underscore", "crel", "utils", "settings", "eventMgr", "mousetrap", "text!html/bodyIndex.html", "text!html/bodyViewer.html", "text!html/settingsTemplateTooltip.html", "text!html/settingsUserCustomExtensionTooltip.html", "storage", "config", "libs/layout", "libs/Markdown.Editor" ], function(n, e, t, o, i, r, a, s, l, c, d) {
function p() {
C = !0, S = !0;
var n = o.currentTime;
n > E + 1e3 && (E = n, r.onUserActive());
}
function u() {
return S === !0 && o.currentTime - E > USER_IDLE_THRESHOLD && (S = !1), S && T;
}
function f() {
if (C !== !1 && T !== !1) {
void 0 === _ && (_ = o.randomString(), localStorage.frontWindowId = _);
var e = localStorage.frontWindowId;
e != _ && (T = !1, void 0 !== k && clearInterval(k), n(".modal").modal("hide"),
n(".modal-non-unique").modal({
backdrop: "static",
keyboard: !1
}));
}
}
function h() {
z === !0 && (z = !1, r.onOfflineChanged(!1));
}
function g() {
z === !0 && navigator.onLine === !0 && I + CHECK_ONLINE_PERIOD < o.currentTime && (I = o.currentTime,
n.ajax({
url: "//www.google.com/jsapi",
timeout: AJAX_TIMEOUT,
dataType: "script"
}).done(function() {
h();
}));
}
function b() {
o.setInputRadio("radio-layout-orientation", i.layoutOrientation), o.setInputValue("#input-settings-theme", localStorage.theme || "default"),
o.setInputChecked("#input-settings-lazy-rendering", i.lazyRendering), o.setInputValue("#input-settings-editor-font-family", i.editorFontFamily),
o.setInputValue("#input-settings-editor-font-size", i.editorFontSize), o.setInputValue("#textarea-settings-default-content", i.defaultContent),
o.setInputValue("#input-settings-publish-commit-msg", i.commitMsg), o.setInputValue("#textarea-settings-publish-template", i.template),
o.setInputValue("#input-settings-ssh-proxy", i.sshProxy), r.onLoadSettings();
}
function m(e) {
var t = {};
t.layoutOrientation = o.getInputRadio("radio-layout-orientation");
var a = o.getInputValue("#input-settings-theme");
t.lazyRendering = o.getInputChecked("#input-settings-lazy-rendering"), t.editorFontFamily = o.getInputTextValue("#input-settings-editor-font-family", e),
t.editorFontSize = o.getInputIntValue("#input-settings-editor-font-size", e, 1, 99),
t.defaultContent = o.getInputValue("#textarea-settings-default-content"), t.commitMsg = o.getInputTextValue("#input-settings-publish-commit-msg", e),
t.template = o.getInputTextValue("#textarea-settings-publish-template", e), t.sshProxy = o.checkUrl(o.getInputTextValue("#input-settings-ssh-proxy", e), !0),
t.extensionSettings = {}, r.onSaveSettings(t.extensionSettings, e), e.isPropagationStopped() || (n.extend(i, t),
localStorage.settings = JSON.stringify(i), localStorage.theme = a);
}
function v(n) {
n === !0 || P.state.north.isClosed ? ($.hide(), N.hide()) : ($.show(), N.show());
}
function x(n) {
n === !0 || P.state.east.isClosed ? L.hide() : L.show();
}
function y() {
if (viewerMode !== !0) {
var e = {
closable: !0,
resizable: !1,
slidable: !1,
livePaneResizing: !0,
enableCursorHotkey: !1,
resizerDblClickToggle: !1,
north__spacing_open: 6,
north__spacing_closed: 6,
spacing_open: 35,
spacing_closed: 35,
togglerLength_open: 60,
togglerLength_closed: 60,
stateManagement__enabled: !1,
center__minWidth: 200,
center__minHeight: 200,
onopen: function() {
v(), x();
},
onclose_start: function(n) {
"north" == n ? v(!0) : "east" == n && x(!0);
}
};
r.onLayoutConfigure(e), "horizontal" == i.layoutOrientation ? (n(".ui-layout-south").remove(),
n(".preview-container").html('<div id="preview-contents"><div id="wmd-preview" class="preview-content"></div></div>'),
P = n("body").layout(n.extend(e, {
east__resizable: !0,
east__size: .5,
east__minSize: 250
}))) : "vertical" == i.layoutOrientation && (n(".ui-layout-east").remove(), n(".preview-container").html('<div id="preview-contents"><div id="wmd-preview" class="preview-content"></div></div>'),
P = n("body").layout(n.extend(e, {
south__resizable: !0,
south__size: .5,
south__minSize: 200
}))), n(".navbar").click(function() {
P.allowOverflow("north");
}), n(".ui-layout-toggler-south").addClass("btn btn-info").html('<i class="icon-none"></i>'),
n(".ui-layout-toggler-east").addClass("btn btn-info").html('<i class="icon-none"></i>');
var t = n(".ui-layout-toggler-north").addClass("btn btn-info").html('<i class="icon-none"></i>');
L = n('<div class="extension-preview-buttons">'), "horizontal" == i.layoutOrientation ? (n(".ui-layout-resizer-north").append(L),
n(".ui-layout-resizer-east").append(t)) : n(".ui-layout-resizer-south").append(L).append(t),
v(), x(), r.onLayoutCreated(P);
}
}
var w = {}, k = void 0, C = !1, S = !1, T = !0, E = 0, _ = void 0, z = !1, I = o.currentTime;
w.setOffline = function() {
I = o.currentTime, z === !1 && (z = !0, r.onOfflineChanged(!0));
};
var P = void 0, $ = void 0, N = void 0, L = void 0, R = void 0, M = void 0, A = void 0, j = void 0;
w.initEditor = function(t) {
function a() {
var n = j.val();
void 0 !== A && A != n && (M.content = n, r.onContentChanged(M)), A = n;
}
void 0 !== M && r.onFileClosed(M), M = t, A = void 0;
var s = M.content;
if (j.val(s), void 0 !== R) return R.undoManager.reinit(s, M.editorStart, M.editorEnd, M.editorScrollTop),
r.onFileOpen(M), R.refreshPreview(), void 0;
var l = n(".preview-container");
j.scroll(function() {
void 0 !== A && (M.editorScrollTop = n(this).scrollTop());
}), j.bind("keyup mouseup", function() {
void 0 !== A && (M.editorStart = this.selectionStart, M.editorEnd = this.selectionEnd);
}), l.scroll(function() {
void 0 !== A && (M.previewScrollTop = n(this).scrollTop());
});
var c = new Markdown.Converter();
c.hooks.chain("preConversion", function(n) {
r.previewStartTime = new Date();
var e = n + "\n\n", t = [], o = 0;
return e.replace(/^```.*\n[\s\S]*?\n```|(^.+[ \t]*\n=+[ \t]*\n+|^.+[ \t]*\n-+[ \t]*\n+|^\#{1,6}[ \t]*.+?[ \t]*\#*\n+)/gm, function(n, i, r) {
return i && (t.push(e.substring(o, r)), o = r), "";
}), t.push(e.substring(o, n.length)), r.onSectionsCreated(t), n;
}), R = new Markdown.Editor(c), R.hooks.set("insertLinkDialog", function(e) {
return w.insertLinkCallback = e, o.resetModalInputs(), n(".modal-insert-link").modal(),
!0;
}), R.hooks.set("insertImageDialog", function(e) {
return w.insertLinkCallback = e, w.catchModal ? !0 : (o.resetModalInputs(), n(".modal-insert-image").modal(),
!0);
});
var d;
d = i.lazyRendering === !0 ? function(n) {
var t = e.debounce(n, 500);
return function() {
void 0 === A ? (n(), j.scrollTop(M.editorScrollTop), l.scrollTop(M.previewScrollTop)) : t(),
a();
};
} : function(n) {
return function() {
n(), void 0 === A && l.scrollTop(M.previewScrollTop), a();
};
}, r.onEditorConfigure(R), R.hooks.chain("onPreviewRefresh", r.onAsyncPreview),
R.run(d), R.undoManager.reinit(s, M.editorStart, M.editorEnd, M.editorScrollTop),
n(".wmd-button-row li").addClass("btn btn-success").css("left", 0).find("span").hide();
var p = n(".wmd-button-group1");
n("#wmd-bold-button").append(n('<i class="icon-bold">')).appendTo(p), n("#wmd-italic-button").append(n('<i class="icon-italic">')).appendTo(p);
var p = n(".wmd-button-group2");
n("#wmd-link-button").append(n('<i class="icon-globe">')).appendTo(p), n("#wmd-quote-button").append(n('<i class="icon-indent-right">')).appendTo(p),
n("#wmd-code-button").append(n('<i class="icon-code">')).appendTo(p), n("#wmd-image-button").append(n('<i class="icon-picture">')).appendTo(p);
var p = n(".wmd-button-group3");
n("#wmd-olist-button").append(n('<i class="icon-list-numbered">')).appendTo(p),
n("#wmd-ulist-button").append(n('<i class="icon-list-bullet">')).appendTo(p), n("#wmd-heading-button").append(n('<i class="icon-text-height">')).appendTo(p),
n("#wmd-hr-button").append(n('<i class="icon-ellipsis">')).appendTo(p);
var p = n(".wmd-button-group4");
n("#wmd-undo-button").append(n('<i class="icon-reply">')).appendTo(p), n("#wmd-redo-button").append(n('<i class="icon-forward">')).appendTo(p),
r.onFileOpen(M);
};
var D = !1;
w.lockUI = function(e) {
D = e, j.prop("disabled", D), n(".navbar-inner .btn").toggleClass("blocked", D),
D ? n(".lock-ui").removeClass("hide") : n(".lock-ui").addClass("hide");
};
var O = !1, H = !1;
return w.onReady = function() {
viewerMode === !0 ? n("body").html(l) : n("body").html(s), n(window).on("offline", w.setOffline),
n(window).on("online", h), navigator.onLine === !1 && w.setOffline(), n(document).mousemove(p).keypress(p),
n(".dropdown-submenu > a").click(function(n) {
n.stopPropagation();
}), $ = n(".menu-panel").collapse({
toggle: !1
});
var e = void 0;
$.on("show.bs.collapse", function(n) {
n.target === $[0] ? (H = !0, e = o.createBackdrop("collapse", ".menu-panel"), $.addClass("move-to-front")) : $.find(".in").collapse("hide");
}).on("hide.bs.collapse", function(n) {
n.target === $[0] && (H = !1, e.remove(), $.removeClass("move-to-front"));
}).on("hidden.bs.collapse", function(n) {
n.target === $[0] && $.find(".in").collapse("hide");
}), N = n(".document-panel").collapse({
toggle: !1
});
var t = void 0;
N.on("show.bs.collapse", function(n) {
n.target === N[0] ? (O = !0, t = o.createBackdrop("collapse", ".document-panel"),
N.addClass("move-to-front")) : N.find(".in").collapse("hide");
}).on("hide.bs.collapse", function(n) {
n.target === N[0] && (O = !1, t.remove(), N.removeClass("move-to-front"));
}).on("hidden.bs.collapse", function(n) {
n.target === N[0] && N.find(".in").collapse("hide");
}), y(), j = n("#wmd-input"), n("#wmd-input, #md-section-helper").css({
"font-family": i.editorFontFamily,
"font-size": i.editorFontSize + "px",
"line-height": Math.round(i.editorFontSize * (20 / 14)) + "px"
}), j.keydown(function(e) {
if (9 === e.keyCode) {
var t = j.val(), o = this.selectionStart, i = this.selectionEnd;
n(this).val(t.substring(0, o) + " " + t.substring(i)), this.selectionStart = this.selectionEnd = o + 1,
e.preventDefault();
}
}), k = window.setInterval(function() {
o.updateCurrentTime(), f(), (u() === !0 || viewerMode === !0) && (r.onPeriodicRun(),
g());
}, 1e3), r.onReady();
}, r.addListener("onReady", function() {
var t = e.reduce(THEME_LIST, function(n, e, t) {
return n + '<option value="' + t + '">' + e + "</option>";
}, "");
document.getElementById("input-settings-theme").innerHTML = t;
var s = !1;
n(".modal").on("show.bs.modal", function() {
$.collapse("hide"), N.collapse("hide"), s = !0;
}).on("shown.bs.modal", function() {
e.defer(function(n) {
n.find("input:enabled:visible:first").focus();
}, n(this));
}).on("hidden.bs.modal", function() {
s = !1, j.focus();
}).keyup(function(e) {
13 != e.which || n(e.target).is("textarea") || n(this).find(".modal-footer a:last").click();
}), a.stopCallback = function(e, t) {
return D || H || O || s || n(t).is("input, select, textarea:not(#wmd-input)");
}, n(".action-insert-link").click(function(e) {
var t = o.getInputTextValue(n("#input-insert-link"), e);
void 0 !== t && (w.insertLinkCallback(t), w.insertLinkCallback = void 0);
}), n(".action-insert-image").click(function(e) {
var t = o.getInputTextValue(n("#input-insert-image"), e);
void 0 !== t && (w.insertLinkCallback(t), w.insertLinkCallback = void 0);
}), n(".modal-insert-link, .modal-insert-image").on("hidden.bs.modal", function() {
void 0 !== w.insertLinkCallback && (w.insertLinkCallback(null), w.insertLinkCallback = void 0);
}), n(".action-load-settings").click(function() {
b();
}), n(".action-apply-settings").click(function(n) {
m(n), n.isPropagationStopped() || window.location.reload();
}), n(".action-import-settings").click(function() {
n("#input-file-import-settings").click();
}), n("#input-file-import-settings").change(function(t) {
var o = (t.dataTransfer || t.target).files;
n(".modal-settings").modal("hide"), e.each(o, function(n) {
var e = new FileReader();
e.onload = function(n) {
return function(e) {
var t = e.target.result;
try {
JSON.parse(t);
} catch (e) {
return r.onError(n.name + " is not a valid JSON file."), void 0;
}
localStorage.settings = t, window.location.reload();
};
}(n);
var t = n.slice(0, IMPORT_FILE_MAX_CONTENT_SIZE);
e.readAsText(t);
});
}), n(".action-export-settings").click(function() {
o.saveAs(JSON.stringify(i), "StackEdit Settings.json");
}), n(".action-default-settings").click(function() {
localStorage.removeItem("settings"), localStorage.removeItem("theme"), window.location.reload();
}), n(".action-app-reset").click(function() {
localStorage.clear(), window.location.reload();
}), n(".action-reset-input").click(function() {
o.resetModalInputs();
}), n(".tooltip-lazy-rendering").tooltip({
container: ".modal-settings",
placement: "right",
trigger: "hover",
title: "Disable preview rendering while typing in order to offload CPU. Refresh preview after 500 ms of inactivity."
}), n(".tooltip-default-content").tooltip({
html: !0,
container: ".modal-settings",
placement: "right",
trigger: "hover",
title: "Thanks for supporting StackEdit by adding a backlink in your documents!"
}), n(".tooltip-usercustom-extension").tooltip({
html: !0,
container: ".modal-settings",
placement: "right",
trigger: "manual",
title: d
}).click(function(e) {
n(this).tooltip("show"), n(document).on("click.tooltip-usercustom-extension", function() {
n(".tooltip-usercustom-extension").tooltip("hide"), n(document).off("click.tooltip-usercustom-extension");
}), e.stopPropagation();
}), n(".tooltip-template").tooltip({
html: !0,
container: ".modal-settings",
placement: "right",
trigger: "manual",
title: c
}).click(function(e) {
n(this).tooltip("show"), n(document).on("click.tooltip-template", function() {
n(".tooltip-template").tooltip("hide"), n(document).off("click.tooltip-template");
}), e.stopPropagation();
}), n("div.dropdown-menu").click(function(n) {
n.stopPropagation();
});
}), w;
}), define("text!../WELCOME.md", [], function() {
return '\nWelcome to StackEdit! {#welcome}\n=====================\n\n\nHello, I am your first Markdown document within **StackEdit**[^stackedit]. Don\'t delete me, I can be helpful. I can be recovered anyway in the `Utils` tab of the <i class="icon-cog"></i> `Settings` dialog.\n\n----------\n\n\nDocuments\n---------\n\n**StackEdit** stores your documents in the browser local storage, which means all your documents are automatically saved locally and are accessible offline.\n\n#### <i class="icon-file"></i> Create a document\n\nYou can create a new document by clicking the <i class="icon-file"></i> button in the navigation bar. This will switch from the current document to the new one.\n\n#### <i class="icon-folder-open"></i> Switch to another document\n\nYou can list all your local documents and switch from one to another by clicking the <i class="icon-folder-open"></i> button in the navigation bar.\n\n#### <i class="icon-pencil"></i> Rename a document\n\nYou can rename the current document by clicking the document title in the navigation bar.\n\n#### <i class="icon-trash"></i> Delete a document\n\nYou can delete the current document by clicking the <i class="icon-trash"></i> button in the navigation bar.\n\n----------\n\n\nSynchronization\n---------------\n\n**StackEdit** can be combined with **Google Drive** and **Dropbox** to have your documents centralized in the *Cloud*. The synchronization mechanism will take care of uploading your modifications or downloading the latest version of your documents.\n\n#### <i class="icon-download"></i> Import a document\n\nYou can import a document from the *Cloud* by going to the <i class="icon-gdrive"></i> `Google Drive` or the <i class="icon-dropbox"></i> `Dropbox` sub-menu and by clicking `Import from...`. Once imported, your document will be automatically synchronized with the **Google Drive** / **Dropbox** file.\n\n#### <i class="icon-upload"></i> Export a document\n\nYou can export any document by going to the <i class="icon-gdrive"></i> `Google Drive` or the <i class="icon-dropbox"></i> `Dropbox` sub-menu and by clicking `Export to...`. Even if your document is already synchronized with **Google Drive** or **Dropbox**, you can export it to a another location. **StackEdit** can synchronize one document with multiple locations.\n\n#### <i class="icon-refresh"></i> Synchronize a document\n\nOnce your document is linked to a **Google Drive** or a **Dropbox** file, **StackEdit** will periodically (every 3 minutes) synchronize it by downloading/uploading any modification. Any conflict will be detected, and a local copy of your document will be created as a backup if necessary.\n\nIf you just have modified your document and you want to force the synchronization, click the <i class="icon-refresh"></i> button in the navigation bar.\n\n> **NOTE:** The <i class="icon-refresh"></i> button is disabled when:\n> \n> - you are offline,\n> - or the document is not synchronized with any location,\n> - or the document has not been modified since the last synchronization.\n\n#### <i class="icon-refresh"></i> Manage document synchronization\n\nSince one document can be synchronized with multiple locations, you can list and manage synchronized locations by clicking <i class="icon-refresh"></i> `Manage synchronization` in the <i class="icon-stackedit"></i> menu. This will open a dialog box allowing you to add or remove synchronization links that are associated to your document.\n\n> **NOTE:** If you delete the file from **Google Drive** or from **Dropbox**, the document will no longer be synchronized with that location.\n\n----------\n\n\nPublication\n-----------\n\nOnce you are happy with your document, you can publish it on different websites directly from **StackEdit**. As for now, **StackEdit** can publish on **Blogger**, **Dropbox**, **Gist**, **GitHub**, **Google Drive**, **Tumblr**, **WordPress** and on any SSH server.\n\n#### <i class="icon-share"></i> Publish a document\n\nYou can publish your document by going to the <i class="icon-share"></i> `Publish on` sub-menu and by choosing a website. In the dialog box, you can choose the publication format:\n\n- Markdown, to publish the Markdown text on a website that can interpret it (**GitHub** for instance),\n- HTML, to publish the document converted into HTML (on a blog for instance),\n- Template, to have a full control of the output.\n\n> **NOTE:** The default template is a simple webpage that wraps your document in HTML format. You can customize it in the `Publish` tab of the <i class="icon-cog"></i> `Settings` dialog.\n\n#### <i class="icon-share"></i> Update a publication\n\nAfter publishing, **StackEdit** will keep your document linked to that publish location so that you can update it easily. Once you have modified your document and you want to update your publication, click on the <i class="icon-share"></i> button in the navigation bar.\n\n> **NOTE:** The <i class="icon-share"></i> button is disabled when:\n> \n> - you are offline,\n> - or the document has not been published anywhere.\n\n#### <i class="icon-share"></i> Manage document publication\n\nSince one document can be published on multiple locations, you can list and manage publish locations by clicking <i class="icon-share"></i> `Manage publication` in the <i class="icon-stackedit"></i> menu. This will open a dialog box allowing you to remove publication links that are associated to your document.\n\n> **NOTE:** In some cases, if you remove the file from the website or the post from the blog, the document will no longer be published on that location.\n\n----------\n\n\nMarkdown Extra\n--------------\n\n**StackEdit** supports **Markdown Extra**, which extends **Markdown** syntax with some nice features.\n\n\n### Tables\n\n**Markdown Extra** has a special syntax for tables:\n\nItem | Value\n--------- | -----\nComputer | \\$1600\nPhone | \\$12\nPipe | \\$1\n\nYou can specify column alignment with one or two colons:\n\n| Item | Value | Qty |\n| :-------- | ------:| :--: |\n| Computer | \\$1600 | 5 |\n| Phone | \\$12 | 12 |\n| Pipe | \\$1 | 234 |\n\n\n### Definition Lists\n\n**Markdown Extra** has a special syntax for definition lists too:\n\nTerm 1\nTerm 2\n: Definition A\n: Definition B\n\nTerm 3\n\n: Definition C\n\n: Definition D\n\n > part of definition D\n\n\n### Fenced code blocks\n\n**GitHub**\'s fenced code blocks are also supported with **Prettify** syntax highlighting:\n\n```\n// Foo\nvar bar = 0;\n```\n\n> **NOTE:** To use **Highlight.js** instead of **Prettify**, just configure the `Markdown Extra` extension in the <i class="icon-cog"></i> `Settings` dialog.\n\n\n### Special Attributes\n\nWith **Markdown Extra**, you can specify `class` and `id` attributes on headers and fenced code blocks just like this:\n\n##### Header example {#my-header}\n\n``` {#my-id .my-class}\nvar foo = bar;\n```\n\nThen you can create cross-references like this: [beginning of the document](#welcome).\n\n\n### Footnotes\n\nYou can create footnotes like this[^footnote].\n\n [^footnote]: Here is the *text* of the **footnote**.\n\n\n### Table of contents\n\nYou can insert a table of contents using the marker `[TOC]`:\n\n[TOC]\n\n\n### MathJax\n \nYou can render *LaTeX* mathematical expressions using **MathJax**, as on [math.stackexchange.com][1]:\n\nThe *Gamma function* satisfying $\\Gamma(n) = (n-1)!\\quad\\forall\nn\\in\\mathbb N$ is via through the Euler integral\n\n$$\n\\Gamma(z) = \\int_0^\\infty t^{z-1}e^{-t}dt\\,.\n$$\n\n\n> **NOTE:** You can find more information:\n>\n> - about **Markdown** syntax [here][2],\n> - about **Markdown Extra** extension [here][3],\n> - about **Prettify** syntax highlighting [here][4].\n> - about **Highlight.js** syntax highlighting [here][5].\n\n [^stackedit]: StackEdit is a free, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites.\n\n\n [1]: http://math.stackexchange.com/\n [2]: http://daringfireball.net/projects/markdown/syntax "Markdown"\n [3]: https://github.com/jmcmanus/pagedown-extra "Pagedown Extra"\n [4]: https://code.google.com/p/google-code-prettify/\n [5]: http://softwaremaniacs.org/soft/highlight/en/';
}), define("fileMgr", [ "jquery", "underscore", "core", "utils", "settings", "eventMgr", "fileSystem", "classes/FileDescriptor", "text!../WELCOME.md" ], function(n, e, t, o, i, r, a, s, l) {
var c = {};
return c.currentFile = void 0, c.selectFile = function(o) {
if (o = o || c.currentFile, void 0 === o) {
var i = e.size(a);
o = 0 === i ? c.createFile(WELCOME_DOCUMENT_TITLE, l) : e.max(a, function(n) {
return n.selectTime || 0;
});
}
c.currentFile !== o && (c.currentFile = o, o.selectTime = new Date().getTime(),
r.onFileSelected(o), o.fileIndex == TEMPORARY_FILE_INDEX ? n(".action-edit-document").removeClass("hide") : n(".action-edit-document").addClass("hide")),
t.initEditor(o);
}, c.createFile = function(n, t, l, c) {
if (t = void 0 !== t ? t : i.defaultContent, !n) {
n = DEFAULT_FILE_TITLE;
for (var d = 2; e.some(a, function(e) {
return e.title == n;
}); ) n = DEFAULT_FILE_TITLE + d++;
}
var p = TEMPORARY_FILE_INDEX;
if (!c) do p = "file." + o.randomString(); while (e.has(a, p));
l = l || {};
var u = e.reduce(l, function(n, e) {
return o.storeAttributes(e), n + e.syncIndex + ";";
}, ";");
localStorage[p + ".title"] = n, localStorage[p + ".content"] = t, localStorage[p + ".sync"] = u,
localStorage[p + ".publish"] = ";";
var f = new s(p, n, l);
return c || (o.appendIndexToArray("file.list", p), a[p] = f, r.onFileCreated(f)),
f;
}, c.deleteFile = function(n) {
n = n || c.currentFile, o.removeIndexFromArray("file.list", n.fileIndex), delete a[n.fileIndex],
c.currentFile === n && (c.currentFile = void 0, c.selectFile()), e.each(n.syncLocations, function(n) {
localStorage.removeItem(n.syncIndex);
}), e.each(n.publishLocations, function(n) {
localStorage.removeItem(n.publishIndex);
}), localStorage.removeItem(n.fileIndex + ".title"), localStorage.removeItem(n.fileIndex + ".content"),
localStorage.removeItem(n.fileIndex + ".sync"), localStorage.removeItem(n.fileIndex + ".publish"),
localStorage.removeItem(n.fileIndex + ".selectTime"), localStorage.removeItem(n.fileIndex + ".editorStart"),
localStorage.removeItem(n.fileIndex + ".editorEnd"), localStorage.removeItem(n.fileIndex + ".editorScrollTop"),
localStorage.removeItem(n.fileIndex + ".previewScrollTop"), r.onFileDeleted(n);
}, c.getFileFromSyncIndex = function(n) {
return e.find(a, function(t) {
return e.has(t.syncLocations, n);
});
}, c.getSyncAttributes = function(n) {
var e = c.getFileFromSyncIndex(n);
return e && e.syncLocations[n];
}, c.getFileFromPublishIndex = function(n) {
return e.find(a, function(t) {
return e.has(t.publishLocations, n);
});
}, r.addListener("onReady", function() {
function t() {
a.addClass("hide"), i.removeClass("hide");
var e = n.trim(a.val()), t = c.currentFile;
e && e != t.title && (t.title = e, r.onTitleChanged(t)), a.val(t.title), o.focus();
}
var o = n("#wmd-input");
c.selectFile();
var i = n(".file-title-navbar"), a = n(".input-file-title");
n(".action-create-file").click(function() {
var n = c.createFile();
c.selectFile(n);
var e = o.focus().get(0);
e.setSelectionRange && e.setSelectionRange(0, 0), i.click();
}), n(".action-remove-file").click(function() {
c.deleteFile();
}), i.click(function() {
if (viewerMode !== !0) {
i.addClass("hide");
var n = a.removeClass("hide");
e.defer(function() {
n.focus().get(0).select();
});
}
}), a.blur(function() {
t();
}).keyup(function(n) {
13 == n.keyCode && t(), 27 == n.keyCode && (a.val(""), t());
}), n(".action-open-stackedit").click(function() {
window.location.href = ".";
}), n(".action-edit-document").click(function() {
var n = o.val(), e = c.currentFile.title, t = c.createFile(e, n);
c.selectFile(t), window.location.href = ".";
}), n(".action-welcome-file").click(function() {
var n = c.createFile(WELCOME_DOCUMENT_TITLE, l);
c.selectFile(n);
});
}), r.onFileMgrCreated(c), c;
}), define("classes/Provider", [], function() {
function n(n, e) {
this.providerId = n, this.providerName = e;
}
return n;
}), define("classes/AsyncTask", [ "underscore", "utils", "eventMgr", "config", "libs/stacktrace" ], function(n, e, t) {
function o() {
this.finished = !1, this.timeout = ASYNC_TASK_DEFAULT_TIMEOUT, this.retryCounter = 0,
this.runCallbacks = [], this.successCallbacks = [], this.errorCallbacks = [];
}
function i() {
p !== !1 && n.defer(function() {
if (c === !0) return d + l.timeout < e.currentTime && l.error(new Error("A timeout occurred.")),
void 0;
if (void 0 === l) {
if (0 === a.length) return;
l = a.shift(), d = e.currentTime, s === !1 && (s = !0, t.onAsyncRunning(!0));
}
d <= e.currentTime && (c = !0, l.chain());
});
}
function r(e, o, r) {
try {
n.each(o, function(n) {
n(r);
});
} finally {
e.finished = !0, l === e && (l = void 0, c = !1), 0 === a.length ? (s = !1, t.onAsyncRunning(!1)) : i();
}
}
var a = [];
o.prototype.onRun = function(n) {
this.runCallbacks.push(n);
}, o.prototype.onSuccess = function(n) {
this.successCallbacks.push(n);
}, o.prototype.onError = function(n) {
this.errorCallbacks.push(n);
}, o.prototype.chain = function(n) {
if (e.logStackTrace(), this.finished !== !0) {
if (void 0 === this.queue && (this.queue = this.runCallbacks.slice()), void 0 !== n) return n(),
void 0;
if (0 === this.queue.length) return r(this, this.successCallbacks), void 0;
var t = this.queue.shift();
t();
}
}, o.prototype.error = function(n) {
if (e.logStackTrace(), this.finished !== !0) throw n = n || new Error("Unknown error"),
n.message && t.onError(n), r(this, this.errorCallbacks, n), n;
}, o.prototype.retry = function(n, t) {
if (this.finished !== !0) {
if (t = t || 5, this.queue = void 0, this.retryCounter >= t) return this.error(n),
void 0;
var o = 1e3 * Math.pow(2, this.retryCounter++);
d = e.currentTime + o, c = !1, i();
}
}, o.prototype.enqueue = function() {
a.push(this), i();
};
var s = !1, l = void 0, c = !1, d = 0, p = !1;
return t.addListener("onUserActive", function() {
p = !0;
}), t.addListener("onPeriodicRun", i), o;
}), define("helpers/dropboxHelper", [ "jquery", "underscore", "core", "eventMgr", "classes/AsyncTask" ], function(n, e, t, o, i) {
function r(e) {
e.onRun(function() {
return u === !0 ? (c = void 0, e.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : void 0 !== c ? (e.chain(), void 0) : (n.ajax({
url: "lib/dropbox.min.js",
dataType: "script",
timeout: AJAX_TIMEOUT
}).done(function() {
c = new Dropbox.Client({
key: DROPBOX_APP_KEY,
secret: DROPBOX_APP_SECRET
}), c.authDriver(new Dropbox.Drivers.Popup({
receiverUrl: BASE_URL + "dropbox-oauth-receiver.html",
rememberUser: !0
})), e.chain();
}).fail(function(n) {
var t = {
status: n.status,
responseText: n.statusText
};
s(t, e);
}), void 0);
});
}
function a(n) {
n.onRun(function() {
function e() {
t === !1 && (o.onMessage("Please make sure the Dropbox authorization popup is not blocked by your browser."),
n.timeout = ASYNC_TASK_LONG_TIMEOUT), c.reset(), c.authenticate({
interactive: !t
}, function(o, i) {
return i.authState === Dropbox.Client.DONE ? (d = !0, n.chain(), void 0) : t === !0 ? (t = !1,
n.chain(e), void 0) : (n.error(new Error("Access to Dropbox account is not authorized.")),
void 0);
});
}
if (d === !0) return n.chain(), void 0;
var t = !0;
n.chain(e);
});
}
function s(n, o) {
var i = !0;
if (n) if (logger.error(n), "string" == typeof n) i = n; else {
if (i = "Dropbox error (" + n.status + ": " + n.responseText + ").", 401 === n.status || 403 === n.status) return d = !1,
i = "Access to Dropbox account is not authorized.", o.retry(new Error(i), 1), void 0;
if (400 === n.status && -1 !== n.responseText.indexOf("oauth_nonce")) return e.each(e.keys(localStorage), function(n) {
0 === n.indexOf("dropbox-auth") && localStorage.removeItem(n);
}), d = !1, o.retry(new Error(i), 1), void 0;
n.status <= 0 && (c = void 0, d = !1, t.setOffline(), i = "|stopPublish");
}
o.error(new Error(i));
}
function l(e) {
e.onRun(function() {
return f === !0 ? (e.chain(), void 0) : (n.ajax({
url: "https://www.dropbox.com/static/api/1/dropbox.js",
dataType: "script",
timeout: AJAX_TIMEOUT
}).done(function() {
f = !0, e.chain();
}).fail(function(n) {
var t = {
status: n.status,
responseText: n.statusText
};
s(t, e);
}), void 0);
});
}
var c = void 0, d = !1, p = {}, u = !1;
o.addListener("onOfflineChanged", function(n) {
u = n;
}), p.upload = function(n, e, t) {
var o = void 0, l = new i();
r(l), a(l), l.onRun(function() {
c.writeFile(n, e, function(e, t) {
return e ? (400 === e.status && (e = 'Could not upload document into path "' + n + '".'),
s(e, l), void 0) : (o = t, l.chain(), void 0);
});
}), l.onSuccess(function() {
t(void 0, o);
}), l.onError(function(n) {
t(n);
}), l.enqueue();
}, p.checkChanges = function(n, e) {
var t = [], o = n || 0, l = new i();
r(l), a(l), l.onRun(function() {
function n() {
c.pullChanges(o, function(e, i) {
return e ? (s(e, l), void 0) : (o = i.cursor(), void 0 !== i.changes && (t = t.concat(i.changes)),
i.shouldPullAgain ? l.chain(n) : l.chain(), void 0);
});
}
0 === o && (l.timeout = ASYNC_TASK_LONG_TIMEOUT), l.chain(n);
}), l.onSuccess(function() {
e(void 0, t, o);
}), l.onError(function(n) {
e(n);
}), l.enqueue();
}, p.downloadMetadata = function(n, e) {
var t = [], o = new i();
r(o), a(o), o.onRun(function() {
function e() {
if (0 === n.length) return o.chain(), void 0;
var i = n[0];
c.stat(i, function(i, r) {
return r ? (t.push(r), n.shift(), o.chain(e), void 0) : (s(i, o), void 0);
});
}
o.chain(e);
}), o.onSuccess(function() {
e(void 0, t);
}), o.onError(function(n) {
e(n);
}), o.enqueue();
}, p.downloadContent = function(n, e) {
var t = [], o = new i();
r(o), a(o), o.onRun(function() {
function e() {
if (0 === n.length) return o.chain(), void 0;
var i = n[0];
t.push(i);
var r = void 0;
return i.isFile === !0 ? r = i : void 0 !== i.wasRemoved && (r = i.stat), r ? (c.readFile(r.path, function(t, i) {
return i ? (r.content = i, n.shift(), o.chain(e), void 0) : (s(t, o), void 0);
}), void 0) : (n.shift(), o.chain(e), void 0);
}
o.chain(e);
}), o.onSuccess(function() {
e(void 0, t);
}), o.onError(function(n) {
e(n);
}), o.enqueue();
};
var f = !1;
return p.picker = function(n) {
var e = [], t = new i();
t.timeout = ASYNC_TASK_LONG_TIMEOUT, r(t), l(t), t.onRun(function() {
var n = {};
n.multiselect = !0, n.linkType = "direct", n.success = function(n) {
for (var o = 0; o < n.length; o++) {
var i = n[o].link;
i = i.replace(/.*\/view\/[^\/]*/, ""), e.push(decodeURI(i));
}
t.chain();
}, n.cancel = function() {
t.chain();
}, Dropbox.choose(n), o.onMessage("Please make sure the Dropbox chooser popup is not blocked by your browser.");
}), t.onSuccess(function() {
n(void 0, e);
}), t.onError(function(e) {
n(e);
}), t.enqueue();
}, p;
}), define("providers/dropboxProvider", [ "underscore", "utils", "classes/Provider", "eventMgr", "fileMgr", "helpers/dropboxHelper" ], function(n, e, t, o, i, r) {
function a(n) {
return void 0 === n ? void 0 : n.match(/^[^\\<>:"\|?\*]+$/) ? 0 !== n.indexOf("/") ? "/" + n : n : (o.onError('"' + n + '" contains invalid characters.'),
void 0);
}
function s(n) {
return "sync." + d + "." + encodeURIComponent(n.toLowerCase());
}
function l(n, t, o) {
var i = {};
return i.provider = p, i.path = n, i.version = t, i.contentCRC = e.crc32(o), i.syncIndex = s(n),
i;
}
function c(e) {
r.downloadMetadata(e, function(e, t) {
e || r.downloadContent(t, function(e, t) {
if (!e) {
var r = [];
n.each(t, function(n) {
var e = l(n.path, n.versionTag, n.content), t = {};
t[e.syncIndex] = e;
var o = i.createFile(n.name, n.content, t);
i.selectFile(o), r.push(o);
}), 0 !== r.length && o.onSyncImportSuccess(r, p);
}
});
});
}
var d = "dropbox", p = new t(d, "Dropbox");
return p.defaultPublishFormat = "template", p.importFiles = function() {
r.picker(function(e, t) {
if (!e && 0 !== t.length) {
var r = [];
n.each(t, function(n) {
var e = s(n), t = i.getFileFromSyncIndex(e);
return void 0 !== t ? (o.onError('"' + t.title + '" was already imported.'), void 0) : (r.push(n),
void 0);
}), c(r);
}
});
}, p.exportFile = function(n, t, c, d) {
var p = e.getInputTextValue("#input-sync-export-dropbox-path", n);
if (p = a(p), void 0 === p) return d(!0), void 0;
var u = s(p), f = i.getFileFromSyncIndex(u);
if (void 0 !== f) {
var h = f.title;
return o.onError('File path is already synchronized with "' + h + '".'), d(!0),
void 0;
}
r.upload(p, c, function(n, e) {
if (n) return d(n), void 0;
var t = l(e.path, e.versionTag, c);
d(void 0, t);
});
}, p.syncUp = function(n, e, t, o, i, a) {
var s = i.contentCRC;
return e == s ? (a(void 0, !1), void 0) : (r.upload(i.path, n, function(n, t) {
return n ? (a(n, !0), void 0) : (i.version = t.versionTag, i.contentCRC = e, a(void 0, !0),
void 0);
}), void 0);
}, p.syncDown = function(t) {
var a = localStorage[d + ".lastChangeId"];
r.checkChanges(a, function(a, l, c) {
if (a) return t(a), void 0;
var p = [];
n.each(l, function(n) {
var e = s(n.path), t = i.getSyncAttributes(e);
return void 0 !== t ? (n.syncAttributes = t, n.wasRemoved === !0 ? (p.push(n), void 0) : (t.version != n.stat.versionTag && p.push(n),
void 0)) : void 0;
}), r.downloadContent(p, function(r, a) {
return r ? (t(r), void 0) : (n.each(a, function(n) {
var t = n.syncAttributes, r = t.syncIndex, a = i.getFileFromSyncIndex(r);
if (void 0 !== a) {
var s = a.title;
if (n.wasRemoved === !0) return o.onError('"' + s + '" has been removed from Dropbox.'),
a.removeSyncLocation(t), o.onSyncRemoved(a, t), void 0;
var l = a.content, c = t.contentCRC != e.crc32(l), d = n.stat, p = e.crc32(d.content), u = t.contentCRC != p, f = l != d.content;
f === !0 && c === !0 && u === !0 && (i.createFile(s + " (backup)", l), o.onMessage('Conflict detected on "' + s + '". A backup has been created locally.')),
f && u === !0 && (a.content = d.content, o.onContentChanged(a), o.onMessage('"' + s + '" has been updated from Dropbox.'),
i.currentFile === a && i.selectFile()), t.version = d.versionTag, t.contentCRC = p,
e.storeAttributes(t);
}
}), localStorage[d + ".lastChangeId"] = c, t(), void 0);
});
});
}, p.publish = function(n, e, t, o) {
var i = a(n.path);
return void 0 === i ? (o(!0), void 0) : (r.upload(i, t, o), void 0);
}, p.newPublishAttributes = function(n) {
var t = {};
return t.path = e.getInputTextValue("#input-publish-dropbox-path", n), n.isPropagationStopped() ? void 0 : t;
}, p;
}), define("helpers/googleHelper", [ "jquery", "core", "utils", "eventMgr", "classes/AsyncTask" ], function(n, e, t, o, i) {
function r(e) {
e.onRun(function() {
return u === !0 ? (c = !1, e.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : c === !0 ? (e.chain(), void 0) : (delayedFunction = function() {
gapi.load("client,drive-realtime", function() {
c = !0, e.chain();
});
}, n.ajax({
url: "https://apis.google.com/js/api.js?onload=runDelayedFunction",
dataType: "script",
timeout: AJAX_TIMEOUT
}).fail(function(n) {
var t = {
code: n.status,
message: n.statusText
};
s(t, e);
}), void 0);
});
}
function a(n) {
n.onRun(function() {
function e() {
t === !1 && (o.onMessage("Please make sure the Google authorization popup is not blocked by your browser."),
n.timeout = ASYNC_TASK_LONG_TIMEOUT), gapi.auth.authorize({
client_id: GOOGLE_CLIENT_ID,
scope: GOOGLE_SCOPES,
immediate: t
}, function(o) {
gapi.client.load("drive", "v2", function() {
return !o || o.error ? c === !0 && t === !0 ? (t = !1, n.chain(e), void 0) : (n.error(new Error("Access to Google account is not authorized.")),
void 0) : (d = !0, n.chain(), void 0);
});
});
}
if (d === !0) return n.chain(), void 0;
var t = !0;
n.chain(e);
});
}
function s(n, t) {
var o = void 0;
if (n) if (logger.error(n), "string" == typeof n) o = n; else {
if (o = "Google error (" + n.code + ": " + n.message + ").", n.code >= 500 && n.code < 600) return t.retry(new Error(o)),
void 0;
if (401 === n.code || 403 === n.code || "token_refresh_required" == n.code) return d = !1,
o = "Access to Google account is not authorized.", t.retry(new Error(o), 1), void 0;
(0 === n.code || -1 === n.code) && (c = !1, d = !1, e.setOffline(), o = "|stopPublish");
}
t.error(new Error(o));
}
function l(e) {
e.onRun(function() {
return f === !0 ? (e.chain(), void 0) : (n.ajax({
url: "//www.google.com/jsapi",
data: {
key: GOOGLE_API_KEY
},
dataType: "script",
timeout: AJAX_TIMEOUT
}).done(function() {
google.load("picker", "1", {
callback: function() {
e.chain();
}
}), f = !0;
}).fail(function(n) {
var t = {
code: n.status,
message: n.statusText
};
s(t, e);
}), void 0);
});
}
var c = !1, d = !1, p = {}, u = !1;
o.addListener("onOfflineChanged", function(n) {
u = n;
}), p.forceAuthenticate = function() {
d = !1;
var n = new i();
r(n), a(n), n.enqueue();
}, p.upload = function(n, e, o, l, c, d) {
var p = void 0, u = new i();
r(u), a(u), u.onRun(function() {
var i = "-------314159265358979323846", r = "\r\n--" + i + "\r\n", a = "\r\n--" + i + "--", c = "text/x-markdown", d = {
title: o,
mimeType: c
};
e && (d.parents = [ {
kind: "drive#fileLink",
id: e
} ]);
var f = "/upload/drive/v2/files", h = "POST";
n && (f += "/" + n, h = "PUT");
var g = {
"Content-Type": 'multipart/mixed; boundary="' + i + '"'
}, b = t.encodeBase64(l), m = [ r, "Content-Type: application/json\r\n\r\n", JSON.stringify(d), r, "Content-Type: ", c, "\r\n", "Content-Transfer-Encoding: base64\r\n", "\r\n", b, a ].join(""), v = gapi.client.request({
path: f,
method: h,
params: {
uploadType: "multipart"
},
headers: g,
body: m
});
v.execute(function(e) {
if (e && e.id) return p = e, p.content = l, u.chain(), void 0;
var t = e.error;
void 0 !== t && void 0 !== n && (404 === t.code ? t = 'File ID "' + n + '" not found on Google Drive.|removePublish' : 412 === t.code && (localStorage.removeItem("gdrive.lastChangeId"),
t = 'Conflict on file ID "' + n + '". Please restart the synchronization.')), s(t, u);
});
}), u.onSuccess(function() {
d(void 0, p);
}), u.onError(function(n) {
d(n);
}), u.enqueue();
}, p.createRealtimeFile = function(n, e, t) {
var o = void 0, l = new i();
r(l), a(l), l.onRun(function() {
var t = {
title: e,
mimeType: "application/vnd.google-apps.drive-sdk"
};
void 0 !== n && (t.parents = [ {
kind: "drive#fileLink",
id: n
} ]);
var i = gapi.client.drive.files.insert({
resource: t
});
i.execute(function(n) {
return n && n.id ? (o = n, l.chain(), void 0) : (s(n.error, l), void 0);
});
}), l.onSuccess(function() {
t(void 0, o);
}), l.onError(function(n) {
t(n);
}), l.enqueue();
}, p.uploadImg = function(e, t, o, l) {
var c = void 0, d = new i();
r(d), a(d), d.onRun(function() {
var i = {
Slug: e
};
e.match(/.jpe?g$/) ? i["Content-Type"] = "image/jpeg" : e.match(/.png$/) ? i["Content-Type"] = "image/png" : e.match(/.gif$/) && (i["Content-Type"] = "image/gif");
var r = gapi.auth.getToken();
r && (i.Authorization = "Bearer " + r.access_token), n.ajax({
url: PICASA_PROXY_URL + "upload/" + o,
headers: i,
data: t,
processData: !1,
dataType: "xml",
timeout: AJAX_TIMEOUT,
type: "POST"
}).done(function(n) {
c = n, d.chain();
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
200 == e.code && (e.message = n.responseText), s(e, d);
});
}), d.onSuccess(function() {
l(void 0, c);
}), d.onError(function(n) {
l(n);
}), d.enqueue();
}, p.checkChanges = function(n, e) {
var t = [], o = n || 0, l = new i();
r(l), a(l), l.onRun(function() {
function n() {
var i = void 0;
i = void 0 === e ? gapi.client.drive.changes.list({
startChangeId: o + 1
}) : gapi.client.drive.changes.list({
pageToken: e
}), i.execute(function(i) {
return i && i.largestChangeId ? (o = i.largestChangeId, e = i.nextPageToken, void 0 !== i.items && (t = t.concat(i.items)),
void 0 !== e ? l.chain(n) : l.chain(), void 0) : (s(i.error, l), void 0);
});
}
var e = void 0;
0 === o && (l.timeout = ASYNC_TASK_LONG_TIMEOUT), l.chain(n);
}), l.onSuccess(function() {
e(void 0, t, o);
}), l.onError(function(n) {
e(n);
}), l.enqueue();
}, p.downloadMetadata = function(e, t, o) {
var l = [], c = new i();
r(c), o || a(c), c.onRun(function() {
function t() {
if (0 === e.length) return c.chain(), void 0;
var o = e[0], i = {}, r = gapi.auth.getToken();
r && (i.Authorization = "Bearer " + r.access_token), n.ajax({
url: "https://www.googleapis.com/drive/v2/files/" + o,
headers: i,
data: {
key: GOOGLE_API_KEY
},
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
l.push(n), e.shift(), c.chain(t);
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
404 === e.code && (e = 'File ID "' + o + '" not found on Google Drive.'), s(e, c);
});
}
c.chain(t);
}), c.onSuccess(function() {
t(void 0, l);
}), c.onError(function(n) {
t(n);
}), c.enqueue();
}, p.downloadContent = function(e, t, o) {
var l = [], c = new i();
c.timeout = ASYNC_TASK_LONG_TIMEOUT, r(c), o || a(c), c.onRun(function() {
function t() {
if (0 === e.length) return c.chain(), void 0;
var o = e[0];
l.push(o);
var i = void 0;
if ("drive#file" == o.kind ? i = o : "drive#change" == o.kind && (i = o.file), !i) return e.shift(),
c.chain(t), void 0;
if (0 === i.mimeType.indexOf("application/vnd.google-apps.drive-sdk")) return i.content = "",
i.isRealtime = !0, e.shift(), c.chain(t), void 0;
var r = {}, a = gapi.auth.getToken();
a && (r.Authorization = "Bearer " + a.access_token), n.ajax({
url: i.downloadUrl,
headers: r,
data: {
key: GOOGLE_API_KEY
},
dataType: "text",
timeout: AJAX_TIMEOUT
}).done(function(n) {
i.content = n, e.shift(), c.chain(t);
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
s(e, c);
});
}
c.chain(t);
}), c.onSuccess(function() {
t(void 0, l);
}), c.onError(function(n) {
t(n);
}), c.enqueue();
}, p.loadRealtime = function(n, e, t, o) {
var s = void 0, l = new i();
r(l), a(l), l.onRun(function() {
gapi.drive.realtime.load(n, function(n) {
s = n, l.chain();
}, function(n) {
var t = n.createString(e);
n.getRoot().set("content", t);
}, function(n) {
o(n), l.error(new Error(n.message));
});
}), l.onSuccess(function() {
t(void 0, s);
}), l.onError(function(n) {
t(n);
}), l.enqueue();
};
var f = !1;
return p.picker = function(e, o) {
function a() {
void 0 !== c && (c.setVisible(!1), n(".modal-backdrop, .picker").remove());
}
var s = [], c = void 0, d = new i();
r(d), l(d), d.onRun(function() {
var e = new google.picker.PickerBuilder();
if (e.setAppId(GOOGLE_DRIVE_APP_ID), o) e.addView(google.picker.ViewId.PHOTOS),
e.addView(google.picker.ViewId.PHOTO_UPLOAD); else {
var i = new google.picker.View(google.picker.ViewId.DOCS);
i.setMimeTypes([ "text/x-markdown", "text/plain", "application/octet-stream", "application/vnd.google-apps.drive-sdk." + GOOGLE_DRIVE_APP_ID ].join(",")),
e.enableFeature(google.picker.Feature.NAV_HIDDEN), e.enableFeature(google.picker.Feature.MULTISELECT_ENABLED),
e.addView(i);
}
e.setCallback(function(n) {
(n.action == google.picker.Action.PICKED || n.action == google.picker.Action.CANCEL) && (n.action == google.picker.Action.PICKED && (s = n.docs),
a(), d.chain());
}), c = e.build(), n(t.createBackdrop()).click(function() {
a(), d.chain();
}), c.setVisible(!0);
}), d.onSuccess(function() {
e(void 0, s);
}), d.onError(function(n) {
a(), e(n);
}), d.enqueue();
}, p.uploadBlogger = function(e, t, o, l, c, d, p) {
var u = new i();
r(u), a(u), u.onRun(function() {
function i() {
var e = "https://www.googleapis.com/blogger/v3/blogs/" + t + "/posts/", i = {
kind: "blogger#post",
blog: {
id: t
},
labels: l,
title: c,
content: d
}, r = "POST";
void 0 !== o && (e += o, i.id = o, r = "PUT"), n.ajax({
url: e,
data: JSON.stringify(i),
headers: a,
type: r,
contentType: "application/json",
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
o = n.id, u.chain();
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
404 === e.code && void 0 !== o && (e = "Post " + o + " not found on Blogger.|removePublish"),
s(e, u);
});
}
function r() {
return void 0 !== t ? (u.chain(i), void 0) : (n.ajax({
url: "https://www.googleapis.com/blogger/v3/blogs/byurl",
data: {
url: e
},
headers: a,
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
t = n.id, u.chain(i);
}).fail(function(n) {
var t = {
code: n.status,
message: n.statusText
};
404 === t.code && (t = 'Blog "' + e + '" not found on Blogger.|removePublish'),
s(t, u);
}), void 0);
}
var a = {}, p = gapi.auth.getToken();
p && (a.Authorization = "Bearer " + p.access_token), u.chain(r);
}), u.onSuccess(function() {
p(void 0, t, o);
}), u.onError(function(n) {
p(n);
}), u.enqueue();
}, p;
}), define("providers/gdriveProvider", [ "underscore", "utils", "classes/Provider", "settings", "eventMgr", "fileMgr", "helpers/googleHelper" ], function(n, e, t, o, i, r, a) {
function s(n) {
return "sync." + d + "." + n;
}
function l(n, t, o, i) {
var r = {};
return r.provider = p, r.id = n, r.etag = t, r.contentCRC = e.crc32(o), r.titleCRC = e.crc32(i),
r.syncIndex = s(n), r;
}
function c(e) {
a.downloadMetadata(e, function(e, t) {
e || a.downloadContent(t, function(e, t) {
if (!e) {
var o = [], a = void 0;
n.each(t, function(n) {
var e = l(n.id, n.etag, n.content, n.title);
e.isRealtime = n.isRealtime;
var t = {};
t[e.syncIndex] = e, a = r.createFile(n.title, n.content, t), o.push(a);
}), void 0 !== a && (i.onSyncImportSuccess(o, p), r.selectFile(a));
}
});
});
}
var d = "gdrive", p = new t(d, "Google Drive");
p.defaultPublishFormat = "template", p.exportPreferencesInputIds = [ "gdrive-parentid" ],
p.importFiles = function() {
a.picker(function(e, t) {
if (!e && 0 !== t.length) {
var o = [];
n.each(t, function(n) {
var e = s(n.id), t = r.getFileFromSyncIndex(e);
return void 0 !== t ? (i.onError('"' + t.title + '" was already imported.'), void 0) : (o.push(n.id),
void 0);
}), c(o);
}
});
}, p.exportFile = function(n, t, o, c) {
var d = e.getInputTextValue("#input-sync-export-gdrive-fileid");
if (d) {
var p = s(d), u = r.getFileFromSyncIndex(p);
if (void 0 !== u) return i.onError('File ID is already synchronized with "' + u.title + '".'),
c(!0), void 0;
}
var f = e.getInputTextValue("#input-sync-export-gdrive-parentid");
a.upload(d, f, t, o, void 0, function(n, e) {
if (n) return c(n), void 0;
var i = l(e.id, e.etag, o, t);
c(void 0, i);
});
}, p.exportRealtimeFile = function(n, t, o, i) {
var r = e.getInputTextValue("#input-sync-export-gdrive-parentid");
a.createRealtimeFile(r, t, function(n, e) {
if (n) return i(n), void 0;
var r = l(e.id, e.etag, o, t);
i(void 0, r);
});
}, p.syncUp = function(n, e, t, o, i, r) {
var s = i.contentCRC, l = i.titleCRC;
return e == s && o == l ? (r(void 0, !1), void 0) : (a.upload(i.id, void 0, t, n, i.etag, function(n, t) {
return n ? (r(n, !0), void 0) : (i.etag = t.etag, i.contentCRC = e, i.titleCRC = o,
r(void 0, !0), void 0);
}), void 0);
}, p.syncDown = function(t) {
var o = parseInt(localStorage[d + ".lastChangeId"]);
a.checkChanges(o, function(o, l, c) {
if (o) return t(o), void 0;
var u = [];
n.each(l, function(n) {
var e = s(n.fileId), t = r.getSyncAttributes(e);
return void 0 !== t ? (n.syncAttributes = t, n.deleted === !0 ? (u.push(n), void 0) : (t.etag != n.file.etag && u.push(n),
void 0)) : void 0;
}), a.downloadContent(u, function(o, a) {
return o ? (t(o), void 0) : (n.each(a, function(n) {
var t = n.syncAttributes, o = t.syncIndex, a = r.getFileFromSyncIndex(o);
if (void 0 !== a) {
var s = a.title;
if (n.deleted === !0) return i.onError('"' + s + '" has been removed from Google Drive.'),
a.removeSyncLocation(t), i.onSyncRemoved(a, t), t.isRealtime === !0 && r.currentFile === a && p.stopRealtimeSync(),
void 0;
var l = t.titleCRC != e.crc32(s), c = a.content, d = t.contentCRC != e.crc32(c), u = n.file, f = e.crc32(u.title), h = t.titleCRC != f, g = s != u.title, b = e.crc32(u.content), m = t.contentCRC != b, v = c != u.content;
(g === !0 && l === !0 && h === !0 || !t.isRealtime && v === !0 && d === !0 && m === !0) && (r.createFile(s + " (backup)", c),
i.onMessage('Conflict detected on "' + s + '". A backup has been created locally.')),
g && h === !0 && (a.title = u.title, i.onTitleChanged(a), i.onMessage('"' + s + '" has been renamed to "' + u.title + '" on Google Drive.')),
!t.isRealtime && v && m === !0 && (a.content = u.content, i.onContentChanged(a),
i.onMessage('"' + u.title + '" has been updated from Google Drive.'), r.currentFile === a && r.selectFile()),
t.etag = u.etag, t.isRealtime || (t.contentCRC = b), t.titleCRC = f, e.storeAttributes(t);
}
}), localStorage[d + ".lastChangeId"] = c, t(), void 0);
});
});
}, p.publish = function(n, e, t, o) {
a.upload(n.id, void 0, n.fileName || e, t, void 0, function(e, t) {
return e ? (o(e), void 0) : (n.id = t.id, o(), void 0);
});
}, p.newPublishAttributes = function(n) {
var t = {};
return t.id = e.getInputTextValue("#input-publish-gdrive-fileid"), t.fileName = e.getInputTextValue("#input-publish-gdrive-filename"),
n.isPropagationStopped() ? void 0 : t;
};
var u = void 0;
i.addListener("onEditorConfigure", function(n) {
u = n;
});
var f = void 0, h = void 0, g = void 0, b = void 0;
return p.startRealtimeSync = function(t, o) {
a.loadRealtime(o.id, t.content, function(a, s) {
function l() {
o.contentCRC = e.crc32(m.getText()), e.storeAttributes(o);
}
function c(n) {
n.isLocal === !1 && (logger.log("Google Drive realtime document updated from server"),
l(), v());
}
function d() {
u.uiManager.setButtonState(u.uiManager.buttons.undo, p.canUndo), u.uiManager.setButtonState(u.uiManager.buttons.redo, p.canRedo);
}
if (!a && s) {
if (r.currentFile !== t) return s.close(), void 0;
logger.log("Starting Google Drive realtime synchronization"), f = s;
var p = f.getModel(), m = p.getRoot().get("content"), v = n.debounce(u.refreshPreview, 100);
m.addEventListener(gapi.drive.realtime.EventType.TEXT_INSERTED, c), m.addEventListener(gapi.drive.realtime.EventType.TEXT_DELETED, c),
f.addEventListener(gapi.drive.realtime.EventType.DOCUMENT_SAVE_STATE_CHANGED, function(n) {
n.isPending === !1 && n.isSaving === !1 && (logger.log("Google Drive realtime document successfully saved on server"),
l());
});
var x = t.content, y = o.contentCRC != e.crc32(x), w = m.getText(), k = e.crc32(w), C = o.contentCRC != k, S = x != w;
S === !0 && y === !0 && (C === !0 ? (r.createFile(t.title + " (backup)", x), i.onMessage('Conflict detected on "' + t.title + '". A backup has been created locally.')) : m.setText(x)),
h = gapi.drive.realtime.databinding.bindString(m, $("#wmd-input")[0]), C === !0 && (logger.log("Google Drive realtime document updated from server"),
l(), v()), g = u.uiManager.buttons.undo.execute, b = u.uiManager.buttons.redo.execute,
u.uiManager.buttons.undo.execute = function() {
p.canUndo && p.undo();
}, u.uiManager.buttons.redo.execute = function() {
p.canRedo && p.redo();
}, p.addEventListener(gapi.drive.realtime.EventType.UNDO_REDO_STATE_CHANGED, d),
d();
}
}, function(n) {
console.error(n), "token_refresh_required" == n.type ? a.forceAuthenticate() : "not_found" == n.type ? (i.onError('"' + t.title + '" has been removed from Google Drive.'),
t.removeSyncLocation(o), i.onSyncRemoved(t, o), p.stopRealtimeSync()) : n.isFatal && (i.onError("An error has forced real time synchronization to stop."),
p.stopRealtimeSync());
});
}, p.stopRealtimeSync = function() {
logger.log("Stopping Google Drive realtime synchronization"), void 0 !== h && (h.unbind(),
h = void 0), void 0 !== f && (f.close(), f = void 0), u.uiManager.buttons.undo.execute = g,
u.uiManager.buttons.redo.execute = b, u.uiManager.setUndoRedoButtonStates();
}, i.addListener("onReady", function() {
var t = $("#input-sync-export-gdrive-realtime"), p = $("#input-sync-export-gdrive-fileid");
$("#input-sync-export-gdrive-realtime").change(function() {
p.prop("disabled", t.prop("checked"));
});
var u = e.retrieveIgnoreError(d + ".state");
if (void 0 !== u) if (localStorage.removeItem(d + ".state"), "create" == u.action) a.upload(void 0, u.folderId, GDRIVE_DEFAULT_FILE_TITLE, o.defaultContent, void 0, function(n, e) {
if (!n) {
var t = l(e.id, e.etag, e.content, e.title), o = {};
o[t.syncIndex] = t;
var a = r.createFile(e.title, e.content, o);
r.selectFile(a), i.onMessage('"' + e.title + '" created successfully on Google Drive.');
}
}); else if ("open" == u.action) {
var f = [];
n.each(u.ids, function(n) {
var e = s(n), t = r.getFileFromSyncIndex(e);
void 0 !== t ? r.selectFile(t) : f.push(n);
}), c(f);
}
}), p;
}), define("synchronizer", [ "jquery", "underscore", "utils", "eventMgr", "fileSystem", "fileMgr", "classes/Provider", "providers/dropboxProvider", "providers/gdriveProvider" ], function(n, e, t, o, i, r, a) {
function s(n) {
if (0 === v.length) return l(n), void 0;
var e = v.pop();
return e.isRealtime === !0 ? (s(n), void 0) : (e.provider.syncUp(x, y, w, k, e, function(o, i) {
return i === !0 && (S = !0), o ? (n(o), void 0) : (i && t.storeAttributes(e), s(n),
void 0);
}), void 0);
}
function l(n) {
if (0 === C.length) return c(n), void 0;
var o = C.pop();
return v = e.values(o.syncLocations), 0 === v.length ? (l(n), void 0) : (x = o.content,
y = t.crc32(x), w = o.title, k = t.crc32(w), s(n), void 0);
}
function c(n) {
S === !0 ? (S = !1, C = e.values(i), l(n)) : n();
}
function d(n) {
if (0 === T.length) return n(), void 0;
var e = T.pop();
return b.hasSync(e) ? (e.syncDown(function(e) {
return e ? (n(e), void 0) : (d(n), void 0);
}), void 0) : (d(n), void 0);
}
function p(n) {
T = e.values(m), d(n);
}
function u(n) {
z = e.some(n.syncLocations, function(n) {
return I = n, n.isRealtime;
}) ? n : void 0, h();
}
function f(n) {
n === !1 ? (P = !0, h()) : (b.tryStopRealtimeSync(), P = !1);
}
function h() {
void 0 !== z && P === !0 && I.provider.startRealtimeSync(z, I);
}
function g(o) {
t.resetModalInputs();
var i = t.retrieveIgnoreError(o.providerId + ".exportPreferences");
i && e.each(o.exportPreferencesInputIds, function(n) {
t.setInputValue("#input-sync-export-" + n, i[n]);
}), n(".modal-upload-" + o.providerId).modal();
}
var b = {}, m = e.chain(arguments).map(function(n) {
return n instanceof a && [ n.providerId, n ];
}).compact().object().value();
e.each(i, function(n) {
e.each(t.retrieveIndexArray(n.fileIndex + ".sync"), function(e) {
try {
var i = JSON.parse(localStorage[e]);
i.syncIndex = e;
var r = m[i.provider];
if (!r) throw new Error("Invalid provider ID: " + i.provider);
i.provider = r, n.syncLocations[e] = i;
} catch (a) {
o.onError(a), t.removeIndexFromArray(n.fileIndex + ".sync", e), localStorage.removeItem(e);
}
});
}), b.hasSync = function(n) {
return e.some(i, function(t) {
return e.some(t.syncLocations, function(e) {
return void 0 === n || e.provider === n;
});
});
};
var v = [], x = void 0, y = void 0, w = void 0, k = void 0, C = [], S = !1, T = [], E = !1;
o.addListener("onOfflineChanged", function(n) {
E = n;
});
var _ = !1;
b.sync = function() {
function n(n) {
return void 0 !== n ? (_ = !1, o.onSyncRunning(!1), !0) : !1;
}
return _ === !0 || E === !0 ? !1 : (_ = !0, o.onSyncRunning(!0), S = !0, p(function(e) {
n(e) || c(function(e) {
n(e) || (_ = !1, o.onSyncRunning(!1), o.onSyncSuccess());
});
}), !0);
};
var z = void 0, I = void 0, P = !0;
return b.tryStopRealtimeSync = function() {
void 0 !== z && P === !0 && I.provider.stopRealtimeSync();
}, viewerMode === !1 && (o.addListener("onFileOpen", u), o.addListener("onFileClosed", b.tryStopRealtimeSync),
o.addListener("onOfflineChanged", f)), o.addListener("onReady", function() {
e.each(m, function(i) {
n(".action-sync-import-" + i.providerId).click(function(n) {
i.importFiles(n);
}), n(".action-sync-export-dialog-" + i.providerId).click(function() {
g(i);
}), n(".action-sync-export-" + i.providerId).click(function(a) {
var s = t.getInputChecked("#input-sync-export-" + i.providerId + "-realtime"), l = r.currentFile;
if (s) {
if (e.size(l.syncLocations) > 0) return o.onError("Real time collaborative document can't be synchronized with multiple locations"),
void 0;
i.exportRealtimeFile(a, l.title, l.content, function(n, e) {
n || (e.isRealtime = !0, l.addSyncLocation(e), o.onSyncExportSuccess(l, e), z = l,
I = e, h());
});
} else {
if (e.size(l.syncLocations) > 0 && e.first(e.values(l.syncLocations)).isRealtime) return o.onError("Real time collaborative document can't be synchronized with multiple locations"),
void 0;
i.exportFile(a, l.title, l.content, function(n, e) {
n || (l.addSyncLocation(e), o.onSyncExportSuccess(l, e));
});
}
var c = {};
e.each(i.exportPreferencesInputIds, function(e) {
c[e] = n("#input-sync-export-" + e).val();
}), localStorage[i.providerId + ".exportPreferences"] = JSON.stringify(c);
});
});
}), o.onSynchronizerCreated(b), b;
}), define("providers/downloadProvider", [ "jquery", "classes/Provider", "classes/AsyncTask" ], function(n, e, t) {
var o = new e("download");
return o.sharingAttributes = [ "url" ], o.importPublic = function(e, o) {
var i = void 0, r = void 0, a = new t();
a.onRun(function() {
var t = e.url, o = t.lastIndexOf("/");
return -1 === o ? (a.error(new Error("Invalid URL parameter.")), void 0) : (i = t.substring(o + 1),
n.ajax({
url: DOWNLOAD_PROXY_URL + "download?url=" + t,
type: "GET",
dataType: "text",
timeout: AJAX_TIMEOUT
}).done(function(n) {
r = n, a.chain();
}).fail(function() {
a.error(new Error("Unable to access URL " + t));
}), void 0);
}), a.onSuccess(function() {
o(void 0, i, r);
}), a.onError(function(n) {
o(n);
}), a.enqueue();
}, o;
}), define("helpers/githubHelper", [ "jquery", "core", "utils", "eventMgr", "classes/AsyncTask" ], function(n, e, t, o, i) {
function r(e) {
e.onRun(function() {
return p === !0 ? (l = !1, e.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : l === !0 ? (e.chain(), void 0) : (n.ajax({
url: "lib/github.js",
dataType: "script",
timeout: AJAX_TIMEOUT
}).done(function() {
l = !0, e.chain();
}).fail(function(n) {
var t = {
error: n.status,
message: n.statusText
};
s(t, e);
}), void 0);
});
}
function a(e) {
var i = void 0, r = void 0;
e.onRun(function() {
function a() {
localStorage.removeItem("githubCode"), i = t.popupWindow("github-oauth-client.html?client_id=" + GITHUB_CLIENT_ID, "stackedit-github-oauth", 960, 600),
i.focus(), r = setInterval(function() {
if (i.closed === !0) {
if (clearInterval(r), i = void 0, r = void 0, p = localStorage.githubCode, void 0 === p) return e.error(new Error(d)),
void 0;
localStorage.removeItem("githubCode"), e.chain(s);
}
}, 500);
}
function s() {
n.getJSON(GATEKEEPER_URL + "authenticate/" + p, function(n) {
void 0 !== n.token ? (l = n.token, localStorage.githubToken = l, c = new Github({
token: l,
auth: "oauth"
}), e.chain()) : e.error(new Error(d));
});
}
if (void 0 !== c) return e.chain(), void 0;
var l = localStorage.githubToken;
if (void 0 !== l) return c = new Github({
token: l,
auth: "oauth"
}), e.chain(), void 0;
o.onMessage("Please make sure the Github authorization popup is not blocked by your browser.");
var d = "Failed to retrieve a token from GitHub.";
e.timeout = ASYNC_TASK_LONG_TIMEOUT;
var p = void 0;
e.chain(a);
}), e.onError(function() {
void 0 !== r && clearInterval(r), void 0 !== i && i.close();
});
}
function s(n, t) {
var o = void 0;
if (n) if (logger.error(n), "string" == typeof n) o = n; else {
if (o = "Could not publish on GitHub.", 401 === n.error || 403 === n.error) return c = void 0,
localStorage.removeItem("githubToken"), o = "Access to GitHub account is not authorized.",
t.retry(new Error(o), 1), void 0;
n.error <= 0 && (l = !1, c = void 0, e.setOffline(), o = "|stopPublish");
}
t.error(new Error(o));
}
var l = void 0, c = void 0, d = {}, p = !1;
return o.addListener("onOfflineChanged", function(n) {
p = n;
}), d.upload = function(n, e, t, o, l, d, p) {
var u = new i();
r(u), a(u), u.onRun(function() {
function i() {
var n = c.getUser();
n.show(void 0, function(n, t) {
return n ? (s(n, u), void 0) : (e = t.login, u.chain(r), void 0);
});
}
function r() {
var i = c.getRepo(e, n);
i.write(t, o, l, d, function(n) {
return n ? (s(n, u), void 0) : (u.chain(), void 0);
});
}
e ? u.chain(r) : u.chain(i);
}), u.onSuccess(function() {
p();
}), u.onError(function(n) {
p(n);
}), u.enqueue();
}, d.uploadGist = function(n, e, t, o, l, d) {
var p = new i();
r(p), a(p), p.onRun(function() {
var i = c.getGist(n), r = {};
r[e] = {
content: l
}, githubFunction = i.update, void 0 === n && (githubFunction = i.create), githubFunction({
description: o,
"public": t,
files: r
}, function(e, t) {
return e ? (404 === e.error && void 0 !== n && (e = "Gist " + n + " not found on GitHub.|removePublish"),
s(e, p), void 0) : (n = t.id, p.chain(), void 0);
});
}), p.onSuccess(function() {
d(void 0, n);
}), p.onError(function(n) {
d(n);
}), p.enqueue();
}, d.downloadGist = function(n, e, t) {
var o = new i();
r(o);
var a = void 0, s = void 0;
o.onRun(function() {
var t = new Github({}), i = t.getGist(n);
i.read(function(t, i) {
if (t) return o.error(new Error("Error trying to access Gist " + n + ".")), void 0;
a = i.description;
var r = i.files[e];
return void 0 === r ? (o.error(new Error("Gist " + n + ' does not contain "' + e + '".')),
void 0) : (s = r.content, o.chain(), void 0);
});
}), o.onSuccess(function() {
t(void 0, a, s);
}), o.onError(function(n) {
t(n);
}), o.enqueue();
}, d;
}), define("providers/gistProvider", [ "utils", "classes/Provider", "helpers/githubHelper" ], function(n, e, t) {
var o = new e("gist", "Gist");
return o.sharingAttributes = [ "gistId", "filename" ], o.publish = function(n, e, o, i) {
t.uploadGist(n.gistId, n.filename, n.isPublic, e, o, function(e, t) {
return e ? (i(e), void 0) : (n.gistId = t, i(), void 0);
});
}, o.newPublishAttributes = function(e) {
var t = {};
return t.gistId = n.getInputTextValue("#input-publish-gist-id"), t.filename = n.getInputTextValue("#input-publish-filename", e),
t.isPublic = n.getInputChecked("#input-publish-gist-public"), e.isPropagationStopped() ? void 0 : t;
}, o.importPublic = function(n, e) {
t.downloadGist(n.gistId, n.filename, e);
}, o;
}), define("sharing", [ "jquery", "underscore", "utils", "eventMgr", "fileMgr", "classes/AsyncTask", "classes/Provider", "providers/downloadProvider", "providers/gistProvider" ], function(n, e, t, o, i, r, a) {
var s = {}, l = e.chain(arguments).map(function(n) {
return n instanceof a && [ n.providerId, n ];
}).compact().object().value(), c = !1;
return o.addListener("onOfflineChanged", function(n) {
c = n;
}), s.createLink = function(t, i) {
function a() {
i();
}
var s = l[t.provider.providerId];
if (void 0 !== t.sharingLink || void 0 === s || "markdown" != t.format) return i(),
void 0;
var d = new r(), p = void 0;
d.onRun(function() {
if (c === !0) return d.chain(), void 0;
var i = [ MAIN_URL, "viewer.html?provider=", s.providerId ];
e.each(s.sharingAttributes, function(n) {
i.push("&"), i.push(n), i.push("="), i.push(encodeURIComponent(t[n]));
}), i = i.join(""), n.getJSON("https://api-ssl.bitly.com/v3/shorten", {
access_token: BITLY_ACCESS_TOKEN,
longUrl: i
}, function(n) {
n.data ? (p = n.data.url, t.sharingLink = p) : (o.onError("An error occured while creating sharing link."),
t.sharingLink = i), d.chain();
});
}), d.onSuccess(a), d.onError(a), d.enqueue();
}, o.addListener("onReady", function() {
if (viewerMode !== !1) {
var o = t.getURLParameter("provider");
void 0 === o && (o = "download");
var r = l[o];
if (void 0 !== r) {
var a = {};
e.each(r.sharingAttributes, function(n) {
var e = t.getURLParameter(n);
return e ? (a[n] = e, void 0) : (a = void 0, void 0);
}), void 0 !== a && (n("#preview-contents, #file-title").hide(), r.importPublic(a, function(e, t, o) {
if (n("#preview-contents, #file-title").show(), !e) {
var r = i.createFile(t, o, void 0, !0);
i.selectFile(r);
}
}));
}
}
}), s;
}), define("providers/bloggerProvider", [ "underscore", "utils", "classes/Provider", "helpers/googleHelper" ], function(n, e, t, o) {
var i = new t("blogger", "Blogger");
return i.defaultPublishFormat = "html", i.publishPreferencesInputIds = [ "blogger-url" ],
i.publish = function(n, e, t, i) {
o.uploadBlogger(n.blogUrl, n.blogId, n.postId, n.labelList, e, t, function(e, t, o) {
return e ? (i(e), void 0) : (n.blogId = t, n.postId = o, i(), void 0);
});
}, i.newPublishAttributes = function(t) {
var o = {}, i = e.getInputTextValue("#input-publish-blogger-url", t);
void 0 !== i && (o.blogUrl = e.checkUrl(i)), o.postId = e.getInputTextValue("#input-publish-postid"),
o.labelList = [];
var r = e.getInputTextValue("#input-publish-labels");
return void 0 !== r && (o.labelList = n.chain(r.split(",")).map(function(n) {
return e.trim(n);
}).compact().value()), t.isPropagationStopped() ? void 0 : o;
}, i;
}), define("providers/githubProvider", [ "utils", "classes/Provider", "settings", "helpers/githubHelper" ], function(n, e, t, o) {
var i = new e("github", "GitHub");
return i.publishPreferencesInputIds = [ "github-reponame", "github-username", "github-branch" ],
i.publish = function(n, e, i, r) {
var a = t.commitMsg;
o.upload(n.repository, n.username, n.branch, n.path, i, a, r);
}, i.newPublishAttributes = function(e) {
var t = {};
return t.repository = n.getInputTextValue("#input-publish-github-reponame", e),
t.username = n.getInputTextValue("#input-publish-github-username"), t.branch = n.getInputTextValue("#input-publish-github-branch", e),
t.path = n.getInputTextValue("#input-publish-file-path", e), e.isPropagationStopped() ? void 0 : t;
}, i;
}), define("helpers/sshHelper", [ "jquery", "core", "eventMgr", "settings", "classes/AsyncTask" ], function(n, e, t, o, i) {
function r(n) {
n.onRun(function() {
return l === !0 ? (n.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : (n.chain(), void 0);
});
}
function a(n, t) {
var o = void 0;
n && (logger.error(n), "string" == typeof n ? o = "SSH error: " + n + "." : (o = "Could not publish on SSH server.",
n.code <= 0 && (e.setOffline(), o = "|stopPublish"))), t.error(new Error(o));
}
var s = {}, l = !1;
return t.addListener("onOfflineChanged", function(n) {
l = n;
}), s.upload = function(e, t, s, l, c, d, p, u) {
var f = new i();
r(f), f.onRun(function() {
var i = o.sshProxy + "upload", r = {
host: e,
port: t,
username: s,
password: l,
path: c,
title: d,
content: p
};
n.ajax({
url: i,
data: r,
type: "POST",
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
return void 0 === n.error ? (f.chain(), void 0) : (a(n.error, f), void 0);
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
a(e, f);
});
}), f.onSuccess(function() {
u();
}), f.onError(function(n) {
u(n);
}), f.enqueue();
}, s;
}), define("providers/sshProvider", [ "utils", "classes/Provider", "helpers/sshHelper" ], function(n, e, t) {
var o = new e("ssh", "SSH server");
return o.publishPreferencesInputIds = [ "ssh-host", "ssh-port", "ssh-username", "ssh-password" ],
o.publish = function(n, e, o, i) {
t.upload(n.host, n.port, n.username, n.password, n.path, e, o, i);
}, o.newPublishAttributes = function(e) {
var t = {};
return t.host = n.getInputTextValue("#input-publish-ssh-host", e, /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/),
t.port = n.getInputIntValue("#input-publish-ssh-port", void 0, 0), t.username = n.getInputTextValue("#input-publish-ssh-username", e),
t.password = n.getInputTextValue("#input-publish-ssh-password", e), t.path = n.getInputTextValue("#input-publish-file-path", e),
e.isPropagationStopped() ? void 0 : t;
}, o;
}), define("helpers/tumblrHelper", [ "jquery", "core", "utils", "eventMgr", "classes/AsyncTask" ], function(n, e, t, o, i) {
function r(n) {
n.onRun(function() {
return d === !0 ? (n.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : (n.chain(), void 0);
});
}
function a(e) {
var i = void 0, r = void 0;
e.onRun(function() {
function a() {
n.getJSON(TUMBLR_PROXY_URL + "request_token", function(n) {
void 0 !== n.oauth_token ? (u = n, e.chain(s)) : e.error(new Error(p));
});
}
function s() {
localStorage.removeItem("tumblrVerifier"), i = t.popupWindow("tumblr-oauth-client.html?oauth_token=" + u.oauth_token, "stackedit-tumblr-oauth", 800, 600),
i.focus(), r = setInterval(function() {
if (i.closed === !0) {
if (clearInterval(r), i = void 0, r = void 0, u.oauth_verifier = localStorage.tumblrVerifier,
void 0 === u.oauth_verifier) return e.error(new Error(p)), void 0;
localStorage.removeItem("tumblrVerifier"), e.chain(c);
}
}, 500);
}
function c() {
n.getJSON(TUMBLR_PROXY_URL + "access_token", u, function(n) {
void 0 !== n.access_token && void 0 !== n.access_token_secret ? (localStorage.tumblrOauthParams = JSON.stringify(n),
l = n, e.chain()) : e.error(new Error(p));
});
}
if (void 0 !== l) return e.chain(), void 0;
var d = localStorage.tumblrOauthParams;
if (void 0 !== d) return l = JSON.parse(d), e.chain(), void 0;
o.onMessage("Please make sure the Tumblr authorization popup is not blocked by your browser.");
var p = "Failed to retrieve a token from Tumblr.";
e.timeout = ASYNC_TASK_LONG_TIMEOUT;
var u = void 0;
e.chain(a);
}), e.onError(function() {
void 0 !== r && clearInterval(r), void 0 !== i && i.close();
});
}
function s(n, t) {
var o = void 0;
if (n) if (logger.error(n), "string" == typeof n) o = n; else {
if (o = "Could not publish on Tumblr.", 401 === n.code || 403 === n.code) return l = void 0,
localStorage.removeItem("tumblrOauthParams"), o = "Access to Tumblr account is not authorized.",
t.retry(new Error(o), 1), void 0;
n.code <= 0 && (e.setOffline(), o = "|stopPublish");
}
t.error(new Error(o));
}
var l = void 0, c = {}, d = !1;
return o.addListener("onOfflineChanged", function(n) {
d = n;
}), c.upload = function(e, t, o, c, d, p, u) {
var f = new i();
r(f), a(f), f.onRun(function() {
var i = n.extend({
blog_hostname: e,
post_id: t,
tags: o,
format: c,
title: d,
content: p
}, l);
n.ajax({
url: TUMBLR_PROXY_URL + "post",
data: i,
type: "POST",
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
t = n.id, f.chain();
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
404 === e.code && void 0 !== t && (e = "Post " + t + " not found on Tumblr.|removePublish"),
s(e, f);
});
}), f.onSuccess(function() {
u(void 0, t);
}), f.onError(function(n) {
u(n);
}), f.enqueue();
}, c;
}), define("providers/tumblrProvider", [ "utils", "classes/Provider", "helpers/tumblrHelper" ], function(n, e, t) {
var o = new e("tumblr", "Tumblr");
return o.publishPreferencesInputIds = [ "tumblr-hostname" ], o.publish = function(n, e, o, i) {
t.upload(n.blogHostname, n.postId, n.tags, "markdown" == n.format ? "markdown" : "html", e, o, function(e, t) {
return e ? (i(e), void 0) : (n.postId = t, i(), void 0);
});
}, o.newPublishAttributes = function(e) {
var t = {};
return t.blogHostname = n.getInputTextValue("#input-publish-tumblr-hostname", e, /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/),
t.postId = n.getInputTextValue("#input-publish-postid"), t.tags = n.getInputTextValue("#input-publish-tags"),
e.isPropagationStopped() ? void 0 : t;
}, o;
}), define("helpers/wordpressHelper", [ "jquery", "core", "utils", "eventMgr", "classes/AsyncTask" ], function(n, e, t, o, i) {
function r(n) {
n.onRun(function() {
return d === !0 ? (n.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : (n.chain(), void 0);
});
}
function a(e) {
var i = void 0, r = void 0;
e.onRun(function() {
function a() {
localStorage.removeItem("wordpressCode"), i = t.popupWindow("wordpress-oauth-client.html?client_id=" + WORDPRESS_CLIENT_ID, "stackedit-wordpress-oauth", 960, 600),
i.focus(), r = setInterval(function() {
if (i.closed === !0) {
if (clearInterval(r), i = void 0, r = void 0, d = localStorage.wordpressCode, void 0 === d) return e.error(new Error(c)),
void 0;
localStorage.removeItem("wordpressCode"), e.chain(s);
}
}, 500);
}
function s() {
n.getJSON(WORDPRESS_PROXY_URL + "authenticate/" + d, function(n) {
void 0 !== n.token ? (l = n.token, localStorage.wordpressToken = l, e.chain()) : e.error(new Error(c));
});
}
if (l = localStorage.wordpressToken, void 0 !== l) return e.chain(), void 0;
o.onMessage("Please make sure the Wordpress authorization popup is not blocked by your browser.");
var c = "Failed to retrieve a token from Wordpress.";
e.timeout = ASYNC_TASK_LONG_TIMEOUT;
var d = void 0;
e.chain(a);
}), e.onError(function() {
void 0 !== r && clearInterval(r), void 0 !== i && i.close();
});
}
function s(n, t) {
var o = void 0;
if (n) if (logger.error(n), "string" == typeof n) o = n; else {
if (o = "Could not publish on WordPress.", 400 === n.code && "invalid_token" == n.message || 401 === n.code || 403 === n.code) return localStorage.removeItem("wordpressToken"),
o = "Access to WordPress account is not authorized.", t.retry(new Error(o), 1),
void 0;
n.code <= 0 && (e.setOffline(), o = "|stopPublish");
}
t.error(new Error(o));
}
var l = void 0, c = {}, d = !1;
return o.addListener("onOfflineChanged", function(n) {
d = n;
}), c.upload = function(e, t, o, c, d, p) {
var u = new i();
r(u), a(u), u.onRun(function() {
var i = WORDPRESS_PROXY_URL + "post", r = {
token: l,
site: e,
postId: t,
tags: o,
title: c,
content: d
};
n.ajax({
url: i,
data: r,
type: "POST",
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
if (n.body.ID) return t = n.body.ID, u.chain(), void 0;
var o = {
code: n.code,
message: n.body.error
};
404 === o.code && ("unknown_blog" == o.message ? o = 'Site "' + e + '" not found on WordPress.|removePublish' : "unknown_post" == o.message && (o = "Post " + t + " not found on WordPress.|removePublish")),
s(o, u);
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
s(e, u);
});
}), u.onSuccess(function() {
p(void 0, t);
}), u.onError(function(n) {
p(n);
}), u.enqueue();
}, c;
}), define("providers/wordpressProvider", [ "utils", "classes/Provider", "helpers/wordpressHelper" ], function(n, e, t) {
var o = new e("wordpress", "WordPress");
return o.defaultPublishFormat = "html", o.publishPreferencesInputIds = [ "wordpress-site" ],
o.publish = function(n, e, o, i) {
t.upload(n.site, n.postId, n.tags, e, o, function(e, t) {
return e ? (i(e), void 0) : (n.postId = t, i(), void 0);
});
}, o.newPublishAttributes = function(e) {
var t = {};
return t.site = n.getInputTextValue("#input-publish-wordpress-site", e, /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/),
t.postId = n.getInputTextValue("#input-publish-postid"), t.tags = n.getInputTextValue("#input-publish-tags"),
e.isPropagationStopped() ? void 0 : t;
}, o;
}), define("publisher", [ "jquery", "underscore", "utils", "settings", "eventMgr", "fileSystem", "fileMgr", "sharing", "classes/Provider", "providers/bloggerProvider", "providers/dropboxProvider", "providers/gistProvider", "providers/githubProvider", "providers/gdriveProvider", "providers/sshProvider", "providers/tumblrProvider", "providers/wordpressProvider" ], function(n, e, t, o, i, r, a, s, l) {
function c(e, t, o) {
return void 0 === t.format && (t.format = n("input:radio[name=radio-publish-format]:checked").prop("value")),
"markdown" == t.format ? e.content : "html" == t.format ? o : h.applyTemplate(e, t, o);
}
function d(n, e) {
if (0 === b.length) return n(e), void 0;
var t = b.pop(), o = c(m, t, v);
t.provider.publish(t, m.title, o, function(o) {
if (void 0 !== o) {
var r = o.toString();
if (-1 !== r.indexOf("|removePublish") && (m.removePublishLocation(t), i.onPublishRemoved(m, t)),
-1 !== r.indexOf("|stopPublish")) return n(o), void 0;
}
d(n, e || o);
});
}
function p(n, o) {
var r = void 0;
do r = "publish." + t.randomString(); while (e.has(localStorage, r));
o.publishIndex = r, n.addPublishLocation(o), i.onNewPublishSuccess(n, o);
}
function u(o) {
var i = o.defaultPublishFormat || "markdown";
k = o, n(".publish-provider-name").text(o.providerName), n('div[class*=" modal-publish-"]').hide().filter(".modal-publish-" + o.providerId).show(),
t.resetModalInputs(), n("input:radio[name=radio-publish-format][value=" + i + "]").prop("checked", !0);
var r = t.retrieveIgnoreError(o.providerId + ".publishPreferences");
r && (e.each(o.publishPreferencesInputIds, function(n) {
t.setInputValue("#input-publish-" + n, r[n]);
}), t.setInputRadio("radio-publish-format", r.format)), n(".modal-publish").modal();
}
function f(t) {
var o = k, i = o.newPublishAttributes(t);
if (void 0 !== i) {
var r = a.currentFile, l = x, d = c(r, i, l);
o.publish(i, r.title, d, function(n) {
void 0 === n && (i.provider = o, s.createLink(i, function() {
p(r, i);
}));
});
var u = {};
e.each(o.publishPreferencesInputIds, function(e) {
u[e] = n("#input-publish-" + e).val();
}), u.format = i.format, localStorage[o.providerId + ".publishPreferences"] = JSON.stringify(u);
}
}
var h = {}, g = e.chain(arguments).map(function(n) {
return n instanceof l && [ n.providerId, n ];
}).compact().object().value();
e.each(r, function(n) {
e.each(t.retrieveIndexArray(n.fileIndex + ".publish"), function(e) {
try {
var o = JSON.parse(localStorage[e]);
o.publishIndex = e;
var r = g[o.provider];
if (!r) throw new Error("Invalid provider ID: " + o.provider);
o.provider = r, n.publishLocations[e] = o;
} catch (a) {
i.onError(a), t.removeIndexFromArray(n.fileIndex + ".publish", e), localStorage.removeItem(e);
}
});
}), h.applyTemplate = function(n, t, r) {
try {
return e.template(o.template, {
documentTitle: n.title,
documentMarkdown: n.content,
documentHTML: r,
publishAttributes: t
});
} catch (a) {
return i.onError(a), a.message;
}
};
var b = [], m = void 0, v = void 0, x = void 0;
i.addListener("onPreviewFinished", function(n) {
x = n;
});
var y = !1;
i.addListener("onOfflineChanged", function(n) {
y = n;
});
var w = !1;
h.publish = function() {
w !== !0 && y !== !0 && (w = !0, i.onPublishRunning(!0), m = a.currentFile, v = x,
b = e.values(m.publishLocations), d(function(n) {
w = !1, i.onPublishRunning(!1), void 0 === n && i.onPublishSuccess(m);
}));
};
var k = void 0, C = [ "<li>", ' <a href="#"', ' class="action-init-publish-<%= provider.providerId %>">', ' <i class="icon-provider-<%= provider.providerId %>"></i> <%= provider.providerName %>', " </a>", "</li>" ].join("");
return i.addListener("onReady", function() {
var i = document.querySelector(".menu-panel .collapse-publish-on .nav"), r = e.reduce(g, function(n, t) {
return n + e.template(C, {
provider: t
});
}, "");
i.innerHTML = r, e.each(g, function(e) {
n(i.querySelector(".action-init-publish-" + e.providerId)).click(function() {
u(e);
}), n(".action-publish-" + e.providerId).click(function() {
u(e);
});
}), n(".action-process-publish").click(f), n(".action-download-md").click(function() {
var e = n("#wmd-input").val(), o = a.currentFile.title;
t.saveAs(e, o + ".md");
}), n(".action-download-html").click(function() {
var n = a.currentFile.title;
t.saveAs(x, n + ".html");
}), n(".action-download-template").click(function() {
var n = a.currentFile, e = h.applyTemplate(n, void 0, x);
t.saveAs(e, n.title + (-1 === o.template.indexOf("documentHTML") ? ".md" : ".html"));
});
}), i.onPublisherCreated(h), h;
}), define("providers/gplusProvider", [ "underscore", "utils", "classes/Provider", "eventMgr", "helpers/googleHelper" ], function(n, e, t, o, i) {
function r(e, t) {
var o = void 0;
return n.find(e.thumbnails, function(n) {
var e = !1;
return n.url.replace(/(.*\/s)\d.*?(\/[^\/]+)/, function(n, i, r) {
o = i + t + r, e = !0;
}), e;
}), o;
}
function a() {
return c.thumbnails ? (e.resetModalInputs(), $(".modal-import-image img").prop("src", r(c, 128)),
e.setInputValue("#input-import-image-title", c.name), d && e.setInputValue("#input-import-image-size", d.size),
$(".modal-import-image").modal(), void 0) : (o.onError("Image " + c.name + " is not accessible."),
callback(!0), void 0);
}
var s = "gplus", l = new t(s, "Google+"), c = void 0, d = e.retrieveIgnoreError(s + ".importImagePreferences"), p = void 0;
return l.importImage = function(n) {
p = n, i.picker(function(e, t) {
return e || 0 === t.length ? (n(e), void 0) : (c = t[0], a(), void 0);
}, !0);
}, l.uploadImage = function(n, e, t) {
p = t, i.uploadImg(n, e, "default", function(e, o) {
return e || !o ? (t(e), void 0) : (c = {
name: n,
thumbnails: []
}, $(o).find("thumbnail").each(function() {
c.thumbnails.push({
url: $(this).attr("url")
});
}), a(), void 0);
});
}, o.addListener("onReady", function() {
$(".action-import-image").click(function() {
var n = e.getInputIntValue("#input-import-image-size", void 0, 0) || 0, t = e.getInputTextValue("#input-import-image-title"), o = r(c, n);
t && (o += ' "' + t + '"'), p(void 0, o), d = {}, n && (d.size = n), localStorage[s + ".importImagePreferences"] = JSON.stringify(d);
});
}), l;
}), define("mediaImporter", [ "jquery", "underscore", "classes/Provider", "core", "eventMgr", "providers/gplusProvider" ], function(n, e, t, o, i) {
var r = {}, a = e.chain(arguments).map(function(n) {
return n instanceof t && [ n.providerId, n ];
}).compact().object().value();
return i.addListener("onReady", function() {
function t(t) {
var i = (t.dataTransfer || t.target).files, r = e.first(i);
if (r.name.match(/.(jpe?g|png|gif)$/)) {
t.stopPropagation(), t.preventDefault();
var s = new FileReader();
s.onload = function() {
return function(e) {
var t = new Uint8Array(e.target.result);
a.gplus.uploadImage(r.name, t, function(e, t) {
if (!e) {
o.catchModal = !0, n("#wmd-image-button").click(), o.catchModal = !1;
var i = o.insertLinkCallback;
o.insertLinkCallback = void 0, i(t || null);
}
});
};
}(r);
var l = r.slice(0, IMPORT_IMG_MAX_CONTENT_SIZE);
s.readAsArrayBuffer(l);
}
}
function i(n) {
n.stopPropagation(), n.preventDefault(), n.dataTransfer.dropEffect = "copy";
}
e.each(a, function(e) {
n(".action-import-image-" + e.providerId).click(function() {
var n = o.insertLinkCallback;
o.insertLinkCallback = void 0, e.importImage(function(e, t) {
return e ? (n(null), void 0) : (n(t || null), void 0);
});
});
}), n("#wmd-input").each(function() {
this.addEventListener("dragover", i, !1), this.addEventListener("drop", t, !1);
});
}), r;
}), define("css/normalize", [ "require", "module" ], function() {
function n(n, o, i) {
if (0 === n.indexOf("data:")) return n;
if (n = r(n), n.match(/^\//) || n.match(a)) return n;
var s = i.match(a), l = o.match(a);
return !l || s && s[1] == l[1] && s[2] == l[2] ? t(e(n, o), i) : e(n, o);
}
function e(n, e) {
"./" == n.substr(0, 2) && (n = n.substr(2));
var t = e.split("/"), o = n.split("/");
for (t.pop(); curPart = o.shift(); ) ".." == curPart ? t.pop() : t.push(curPart);
return t.join("/");
}
function t(n, e) {
var t = e.split("/");
for (t.pop(), e = t.join("/") + "/", i = 0; e.substr(i, 1) == n.substr(i, 1); ) i++;
for (;"/" != e.substr(i, 1); ) i--;
e = e.substr(i + 1), n = n.substr(i + 1), t = e.split("/");
var o = n.split("/");
for (out = ""; t.shift(); ) out += "../";
for (;curPart = o.shift(); ) out += curPart + "/";
return out.substr(0, out.length - 1);
}
var o = /([^:])\/+/g, r = function(n) {
return n.replace(o, "$1/");
}, a = /[^\:\/]*:\/\/([^\/])*/, s = function(e, t, o, i) {
t = r(t), o = r(o);
for (var a, s, e, l = /@import\s*("([^"]*)"|'([^']*)')|url\s*\(\s*(\s*"([^"]*)"|'([^']*)'|[^\)]*\s*)\s*\)/gi; a = l.exec(e); ) {
s = a[3] || a[2] || a[5] || a[6] || a[4];
var c;
c = i && "/" == s.substr(0, 1) ? i + s : n(s, t, o);
var d = a[5] || a[6] ? 1 : 0;
e = e.substr(0, l.lastIndex - s.length - d - 1) + c + e.substr(l.lastIndex - d - 1),
l.lastIndex = l.lastIndex + (c.length - s.length);
}
return e;
};
return s.convertURIBase = n, s;
}), define("css/css", [ "./normalize" ], function(n) {
function e(n, e) {
for (var t = 0, o = n.length; o > t; t++) if (n[t] === e) return t;
return -1;
}
if ("undefined" == typeof window) return {
load: function(n, e, t) {
t();
}
};
var t = !1, o = document.getElementsByTagName("head")[0], i = window.navigator.userAgent.match(/Trident\/([^ ;]*)|AppleWebKit\/([^ ;]*)|Opera\/([^ ;]*)|rv\:([^ ;]*)(.*?)Gecko\/([^ ;]*)|MSIE\s([^ ;]*)/), r = !1;
i && (i[1] || i[7] ? (r = parseInt(i[1]) < 6 || parseInt(i[7]) <= 9, i = "trident") : i[2] ? (r = !0,
i = "webkit") : i[3] || (i[4] ? (r = parseInt(i[4]) < 18, i = "gecko") : t && alert("Engine detection failed")));
var a = {}, s = /^\/|([^\:\/]*:)/;
a.pluginBuilder = "./css-builder";
var l = [], c = {}, d = [];
a.addBuffer = function(n) {
-1 == e(l, n) && -1 == e(d, n) && (l.push(n), d.push(n));
}, a.setBuffer = function(e, t) {
var o = window.location.pathname.split("/");
o.pop(), o = o.join("/") + "/";
var i = require.toUrl("base_url").split("/");
i.pop();
var r = i.join("/") + "/";
r = n.convertURIBase(r, o, "/"), r.match(s) || (r = "/" + r), "/" != r.substr(r.length - 1, 1) && (r += "/"),
a.inject(n(e, r, o));
for (var d = 0; d < l.length; d++) (t && ".less" == l[d].substr(l[d].length - 5, 5) || !t && ".css" == l[d].substr(l[d].length - 4, 4)) && (function(n) {
c[n] = c[n] || !0, setTimeout(function() {
"function" == typeof c[n] && c[n](), delete c[n];
}, 7);
}(l[d]), l.splice(d--, 1));
}, a.attachBuffer = function(n, t) {
for (var o = 0; o < l.length; o++) if (l[o] == n) return c[n] = t, !0;
return c[n] === !0 ? (c[n] = t, !0) : -1 != e(d, n) ? (t(), !0) : void 0;
};
var p = function(n, e) {
setTimeout(function() {
for (var t = 0; t < document.styleSheets.length; t++) {
var o = document.styleSheets[t];
if (o.href == n.href) return e();
}
p(n, e);
}, 10);
}, u = function(n, e) {
setTimeout(function() {
try {
return n.sheet.cssRules, e();
} catch (t) {}
u(n, e);
}, 10);
};
if ("trident" == i && r) var f = [], h = [], g = 0, b = function(n, e) {
var t;
h.push({
url: n,
cb: e
}), t = f.shift(), !t && g++ < 31 && (t = document.createElement("style"), o.appendChild(t)),
t && m(t);
}, m = function(n) {
var e = h.shift();
if (!e) return n.onload = x, f.push(n), void 0;
n.onload = function() {
e.cb(e.ss), m(n);
};
var t = n.styleSheet;
e.ss = t.imports[t.addImport(e.url)];
};
var v = function(n) {
var e = document.createElement("link");
return e.type = "text/css", e.rel = "stylesheet", e.href = n, e;
}, x = function() {};
a.linkLoad = function(n, e) {
var a = setTimeout(function() {
t && alert("timeout"), e();
}, 1e3 * z - 100), s = function() {
clearTimeout(a), l && (l.onload = x), setTimeout(e, 7);
};
if (r) if ("webkit" == i) {
var l = v(n);
p(l, s), o.appendChild(l);
} else if ("gecko" == i) {
var c = document.createElement("style");
c.textContent = '@import "' + n + '"', u(c, s), o.appendChild(c);
} else "trident" == i && b(n, s); else {
var l = v(n);
l.onload = s, o.appendChild(l);
}
};
var y, w = [ "Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0" ], k = {}, C = function(n, e, t) {
if (k[n]) return e(k[n]), void 0;
var o, i, r;
if ("undefined" != typeof XMLHttpRequest) o = new XMLHttpRequest(); else if ("undefined" != typeof ActiveXObject) for (i = 0; 3 > i; i += 1) {
r = w[i];
try {
o = new ActiveXObject(r);
} catch (a) {}
if (o) {
w = [ r ];
break;
}
}
o.open("GET", n, requirejs.inlineRequire ? !1 : !0), o.onreadystatechange = function() {
var i, r;
4 === o.readyState && (i = o.status, i > 399 && 600 > i ? (r = new Error(n + " HTTP status: " + i),
r.xhr = o, t(r)) : (k[n] = o.responseText, e(o.responseText)));
}, o.send(null);
}, S = 0;
a.inject = function(n) {
31 > S && (y = document.createElement("style"), y.type = "text/css", o.appendChild(y),
S++), y.styleSheet ? y.styleSheet.cssText += n : y.appendChild(document.createTextNode(n));
};
var T = /@import\s*(url)?\s*(('([^']*)'|"([^"]*)")|\(('([^']*)'|"([^"]*)"|([^\)]*))\))\s*;?/g, E = window.location.pathname.split("/");
E.pop(), E = E.join("/") + "/";
var _ = function(e, t, o) {
e.match(s) || (e = "/" + n.convertURIBase(e, E, "/")), C(e, function(i) {
i = n(i, e, E);
for (var r, a = [], s = [], l = []; r = T.exec(i); ) {
var c = r[4] || r[5] || r[7] || r[8] || r[9];
a.push(c), s.push(T.lastIndex - r[0].length), l.push(r[0].length);
}
for (var d = 0, p = 0; p < a.length; p++) (function(n) {
_(a[n], function(e) {
i = i.substr(0, s[n]) + e + i.substr(s[n] + l[n]);
for (var o = e.length - l[n], r = n + 1; r < a.length; r++) s[r] += o;
d++, d == a.length && t(i);
}, o);
})(p);
0 == a.length && t(i);
}, o);
};
a.normalize = function(n, e) {
return ".css" == n.substr(n.length - 4, 4) && (n = n.substr(0, n.length - 4)), e(n);
};
var z, I = !1;
return a.load = function(n, e, o, i, s) {
z = z || i.waitSeconds || 7;
var l = n + (s ? ".less" : ".css");
if (!a.attachBuffer(l, o)) {
var c = e.toUrl(l);
!I && t && (alert(r ? "hacking links" : "not hacking"), I = !0), s ? _(c, function(n) {
s && (n = s(n, function(n) {
a.inject(n), setTimeout(o, 7);
}));
}) : a.linkLoad(c, o);
}
}, t && (a.inspect = function() {
return stylesheet.styleSheet ? stylesheet.styleSheet.cssText : stylesheet.innerHTML ? stylesheet.innerHTML : void 0;
}), a;
}), define("css", [ "css/css" ], function(n) {
return n;
}), requirejs.config({
waitSeconds: 0,
packages: [ {
name: "css",
location: "libs/css",
main: "css"
}, {
name: "less",
location: "libs/less",
main: "less"
} ],
paths: {
jquery: "libs/jquery",
underscore: "libs/underscore",
crel: "libs/crel",
jgrowl: "libs/jgrowl",
mousetrap: "libs/mousetrap",
toMarkdown: "libs/to-markdown",
text: "libs/text",
"libs/MathJax": "../lib/MathJax/MathJax.js?config=TeX-AMS_HTML"
},
shim: {
underscore: {
exports: "_"
},
jgrowl: {
deps: [ "jquery" ],
exports: "jQuery.jGrowl"
},
mousetrap: {
exports: "Mousetrap"
},
toMarkdown: {
deps: [ "jquery" ],
exports: "toMarkdown"
},
"libs/jquery-ui": [ "jquery" ],
"libs/bootstrap/bootstrap": [ "jquery" ],
"libs/jquery.waitforimages": [ "jquery" ],
"libs/jquery.mousewheel": [ "jquery" ],
"libs/layout": [ "libs/jquery-ui" ],
"libs/Markdown.Extra": [ "libs/Markdown.Converter", "libs/prettify", "libs/highlight.pack" ],
"libs/Markdown.Editor": [ "libs/Markdown.Converter" ]
}
});
var logger = {
log: function() {},
info: function() {},
warn: function() {},
error: function() {}
};
location.search.match(/(\?|&)console/) && (logger = console);
var theme = localStorage.theme || "default";
require([ "jquery", "core", "synchronizer", "publisher", "mediaImporter", "css", "less!styles/" + theme + ".less" ], function(n, e) {
n(function() {
window.applicationCache && window.applicationCache.addEventListener("updateready", function() {
window.applicationCache.status === window.applicationCache.UPDATEREADY && (window.applicationCache.swapCache(),
window.location.reload());
}, !1), e.onReady();
});
}), define("main", function() {}), define("less/less", [ "css", "require" ], function(n, e) {
var t = {};
return t.pluginBuilder = "./less-builder", "undefined" == typeof window ? (t.load = function(n, e, t) {
t();
}, t) : (t.normalize = function(n, e) {
return ".less" == n.substr(n.length - 5, 5) && (n = n.substr(0, n.length - 5)),
n = e(n);
}, t.parse = function(n, t) {
window.less = window.less || {
env: "development"
}, e([ "./lessc" ], function(e) {
var o, i = new e.Parser();
i.parse(n, function(n, e) {
if (n) throw n;
try {
o = e.toCSS();
} catch (i) {
throw new Error("LESS parse error: " + i.type + ", " + i.message);
}
t(o);
});
});
}, t.load = function(e, o, i, r) {
n.load(e, o, i, r, t.parse);
}, t);
}), define("less", [ "less/less" ], function(n) {
return n;
}), requirejs.s.contexts._.nextTick = function(n) {
n();
}, require([ "css" ], function(n) {
n.addBuffer("styles/default.less");
}), requirejs.s.contexts._.nextTick = requirejs.nextTick, requirejs.s.contexts._.nextTick = function(n) {
n();
}, require([ "css" ], function(n) {
n.addBuffer("styles/night.less");
}), requirejs.s.contexts._.nextTick = requirejs.nextTick, requirejs.s.contexts._.nextTick = function(n) {
n();
}, require([ "css" ], function(n) {
n.setBuffer("/*!\n * Bootstrap v3.0.0\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world by @mdo and @fat.\n */\n/*! normalize.css v2.1.0 | MIT License | git.io/normalize */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nvideo {\n display: inline-block;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden] {\n display: none;\n}\nhtml {\n font-family: sans-serif;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\na:focus {\n outline: thin dotted;\n}\na:active,\na:hover {\n outline: 0;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nhr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, serif;\n font-size: 1em;\n}\npre {\n white-space: pre-wrap;\n}\nq {\n quotes: \"\\201C\" \"\\201D\" \"\\2018\" \"\\2019\";\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 0;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\nbutton,\ninput,\nselect,\ntextarea {\n font-family: inherit;\n font-size: 100%;\n margin: 0;\n}\nbutton,\ninput {\n line-height: normal;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n vertical-align: top;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n@media print {\n * {\n text-shadow: none !important;\n color: #000 !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n .ir a:after,\n a[href^=\"javascript:\"]:after,\n a[href^=\"#\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n @page {\n margin: 2cm .5cm;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n*,\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 62.5%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.428571429;\n color: #333333;\n background-color: #f5f5f5;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\nbutton,\ninput,\nselect[multiple],\ntextarea {\n background-image: none;\n}\na {\n color: #428bca;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #2a6496;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted #333;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #f5f5f5;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0 0 0 0);\n border: 0;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16.099999999999998px;\n font-weight: 200;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall {\n font-size: 85%;\n}\ncite {\n font-style: normal;\n}\n.text-muted {\n color: #999999;\n}\n.text-primary {\n color: #428bca;\n}\n.text-warning {\n color: #c09853;\n}\n.text-danger {\n color: #b94a48;\n}\n.text-success {\n color: #468847;\n}\n.text-info {\n color: #3a87ad;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-weight: 500;\n line-height: 1.1;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small {\n font-weight: normal;\n line-height: 1;\n color: #999999;\n}\nh1,\nh2,\nh3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh4,\nh5,\nh6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh1,\n.h1 {\n font-size: 38px;\n}\nh2,\n.h2 {\n font-size: 32px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\nh1 small,\n.h1 small {\n font-size: 24px;\n}\nh2 small,\n.h2 small {\n font-size: 18px;\n}\nh3 small,\n.h3 small,\nh4 small,\n.h4 small {\n font-size: 14px;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #f5f5f5;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.428571429;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n .dl-horizontal dd:before,\n .dl-horizontal dd:after {\n content: \" \";\n /* 1 */\n \n display: table;\n /* 2 */\n \n }\n .dl-horizontal dd:after {\n clear: both;\n }\n .dl-horizontal dd:before,\n .dl-horizontal dd:after {\n content: \" \";\n /* 1 */\n \n display: table;\n /* 2 */\n \n }\n .dl-horizontal dd:after {\n clear: both;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #999999;\n}\nabbr.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n border-left: 5px solid #f5f5f5;\n}\nblockquote p {\n font-size: 17.5px;\n font-weight: 300;\n line-height: 1.25;\n}\nblockquote p:last-child {\n margin-bottom: 0;\n}\nblockquote small {\n display: block;\n line-height: 1.428571429;\n color: #999999;\n}\nblockquote small:before {\n content: '\\2014 \\00A0';\n}\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #f5f5f5;\n border-left: 0;\n}\nblockquote.pull-right p,\nblockquote.pull-right small {\n text-align: right;\n}\nblockquote.pull-right small:before {\n content: '';\n}\nblockquote.pull-right small:after {\n content: '\\00A0 \\2014';\n}\nq:before,\nq:after,\nblockquote:before,\nblockquote:after {\n content: \"\";\n}\naddress {\n display: block;\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.428571429;\n}\ncode,\npre {\n font-family: Monaco, Menlo, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n white-space: nowrap;\n border-radius: 4px;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.428571429;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #dddddd;\n border-radius: 4px;\n}\npre.prettyprint {\n margin-bottom: 20px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.container:before,\n.container:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.container:after {\n clear: both;\n}\n.container:before,\n.container:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.container:after {\n clear: both;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.row:before,\n.row:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.row:after {\n clear: both;\n}\n.row:before,\n.row:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.row:after {\n clear: both;\n}\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11,\n.col-xs-12,\n.col-sm-1,\n.col-sm-2,\n.col-sm-3,\n.col-sm-4,\n.col-sm-5,\n.col-sm-6,\n.col-sm-7,\n.col-sm-8,\n.col-sm-9,\n.col-sm-10,\n.col-sm-11,\n.col-sm-12,\n.col-md-1,\n.col-md-2,\n.col-md-3,\n.col-md-4,\n.col-md-5,\n.col-md-6,\n.col-md-7,\n.col-md-8,\n.col-md-9,\n.col-md-10,\n.col-md-11,\n.col-md-12,\n.col-lg-1,\n.col-lg-2,\n.col-lg-3,\n.col-lg-4,\n.col-lg-5,\n.col-lg-6,\n.col-lg-7,\n.col-lg-8,\n.col-lg-9,\n.col-lg-10,\n.col-lg-11,\n.col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11 {\n float: left;\n}\n.col-xs-1 {\n width: 8.333333333333332%;\n}\n.col-xs-2 {\n width: 16.666666666666664%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-4 {\n width: 33.33333333333333%;\n}\n.col-xs-5 {\n width: 41.66666666666667%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-7 {\n width: 58.333333333333336%;\n}\n.col-xs-8 {\n width: 66.66666666666666%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-10 {\n width: 83.33333333333334%;\n}\n.col-xs-11 {\n width: 91.66666666666666%;\n}\n.col-xs-12 {\n width: 100%;\n}\n@media (min-width: 768px) {\n .container {\n max-width: 750px;\n }\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11 {\n float: left;\n }\n .col-sm-1 {\n width: 8.333333333333332%;\n }\n .col-sm-2 {\n width: 16.666666666666664%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-4 {\n width: 33.33333333333333%;\n }\n .col-sm-5 {\n width: 41.66666666666667%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-7 {\n width: 58.333333333333336%;\n }\n .col-sm-8 {\n width: 66.66666666666666%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-10 {\n width: 83.33333333333334%;\n }\n .col-sm-11 {\n width: 91.66666666666666%;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-push-1 {\n left: 8.333333333333332%;\n }\n .col-sm-push-2 {\n left: 16.666666666666664%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-4 {\n left: 33.33333333333333%;\n }\n .col-sm-push-5 {\n left: 41.66666666666667%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-7 {\n left: 58.333333333333336%;\n }\n .col-sm-push-8 {\n left: 66.66666666666666%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-10 {\n left: 83.33333333333334%;\n }\n .col-sm-push-11 {\n left: 91.66666666666666%;\n }\n .col-sm-pull-1 {\n right: 8.333333333333332%;\n }\n .col-sm-pull-2 {\n right: 16.666666666666664%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-4 {\n right: 33.33333333333333%;\n }\n .col-sm-pull-5 {\n right: 41.66666666666667%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-7 {\n right: 58.333333333333336%;\n }\n .col-sm-pull-8 {\n right: 66.66666666666666%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-10 {\n right: 83.33333333333334%;\n }\n .col-sm-pull-11 {\n right: 91.66666666666666%;\n }\n .col-sm-offset-1 {\n margin-left: 8.333333333333332%;\n }\n .col-sm-offset-2 {\n margin-left: 16.666666666666664%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333333333%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666666666667%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-7 {\n margin-left: 58.333333333333336%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666666666666%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333333334%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666666666666%;\n }\n}\n@media (min-width: 992px) {\n .container {\n max-width: 970px;\n }\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11 {\n float: left;\n }\n .col-md-1 {\n width: 8.333333333333332%;\n }\n .col-md-2 {\n width: 16.666666666666664%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-4 {\n width: 33.33333333333333%;\n }\n .col-md-5 {\n width: 41.66666666666667%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-7 {\n width: 58.333333333333336%;\n }\n .col-md-8 {\n width: 66.66666666666666%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-10 {\n width: 83.33333333333334%;\n }\n .col-md-11 {\n width: 91.66666666666666%;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-push-1 {\n left: 8.333333333333332%;\n }\n .col-md-push-2 {\n left: 16.666666666666664%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-4 {\n left: 33.33333333333333%;\n }\n .col-md-push-5 {\n left: 41.66666666666667%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-7 {\n left: 58.333333333333336%;\n }\n .col-md-push-8 {\n left: 66.66666666666666%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-10 {\n left: 83.33333333333334%;\n }\n .col-md-push-11 {\n left: 91.66666666666666%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-pull-1 {\n right: 8.333333333333332%;\n }\n .col-md-pull-2 {\n right: 16.666666666666664%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-4 {\n right: 33.33333333333333%;\n }\n .col-md-pull-5 {\n right: 41.66666666666667%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-7 {\n right: 58.333333333333336%;\n }\n .col-md-pull-8 {\n right: 66.66666666666666%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-10 {\n right: 83.33333333333334%;\n }\n .col-md-pull-11 {\n right: 91.66666666666666%;\n }\n .col-md-offset-0 {\n margin-left: 0;\n }\n .col-md-offset-1 {\n margin-left: 8.333333333333332%;\n }\n .col-md-offset-2 {\n margin-left: 16.666666666666664%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333333333%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666666666667%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-7 {\n margin-left: 58.333333333333336%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666666666666%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333333334%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666666666666%;\n }\n}\n@media (min-width: 1200px) {\n .container {\n max-width: 1170px;\n }\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11 {\n float: left;\n }\n .col-lg-1 {\n width: 8.333333333333332%;\n }\n .col-lg-2 {\n width: 16.666666666666664%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-4 {\n width: 33.33333333333333%;\n }\n .col-lg-5 {\n width: 41.66666666666667%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-7 {\n width: 58.333333333333336%;\n }\n .col-lg-8 {\n width: 66.66666666666666%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-10 {\n width: 83.33333333333334%;\n }\n .col-lg-11 {\n width: 91.66666666666666%;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-push-1 {\n left: 8.333333333333332%;\n }\n .col-lg-push-2 {\n left: 16.666666666666664%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-4 {\n left: 33.33333333333333%;\n }\n .col-lg-push-5 {\n left: 41.66666666666667%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-7 {\n left: 58.333333333333336%;\n }\n .col-lg-push-8 {\n left: 66.66666666666666%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-10 {\n left: 83.33333333333334%;\n }\n .col-lg-push-11 {\n left: 91.66666666666666%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-pull-1 {\n right: 8.333333333333332%;\n }\n .col-lg-pull-2 {\n right: 16.666666666666664%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-4 {\n right: 33.33333333333333%;\n }\n .col-lg-pull-5 {\n right: 41.66666666666667%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-7 {\n right: 58.333333333333336%;\n }\n .col-lg-pull-8 {\n right: 66.66666666666666%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-10 {\n right: 83.33333333333334%;\n }\n .col-lg-pull-11 {\n right: 91.66666666666666%;\n }\n .col-lg-offset-0 {\n margin-left: 0;\n }\n .col-lg-offset-1 {\n margin-left: 8.333333333333332%;\n }\n .col-lg-offset-2 {\n margin-left: 16.666666666666664%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333333333%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666666666667%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-7 {\n margin-left: 58.333333333333336%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666666666666%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333333334%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666666666666%;\n }\n}\ntable {\n max-width: 100%;\n background-color: transparent;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n margin-bottom: 20px;\n}\n.table thead > tr > th,\n.table tbody > tr > th,\n.table tfoot > tr > th,\n.table thead > tr > td,\n.table tbody > tr > td,\n.table tfoot > tr > td {\n padding: 8px;\n line-height: 1.428571429;\n vertical-align: top;\n border-top: 1px solid #dddddd;\n}\n.table thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #dddddd;\n}\n.table caption + thead tr:first-child th,\n.table colgroup + thead tr:first-child th,\n.table thead:first-child tr:first-child th,\n.table caption + thead tr:first-child td,\n.table colgroup + thead tr:first-child td,\n.table thead:first-child tr:first-child td {\n border-top: 0;\n}\n.table tbody + tbody {\n border-top: 2px solid #dddddd;\n}\n.table .table {\n background-color: #f5f5f5;\n}\n.table-condensed thead > tr > th,\n.table-condensed tbody > tr > th,\n.table-condensed tfoot > tr > th,\n.table-condensed thead > tr > td,\n.table-condensed tbody > tr > td,\n.table-condensed tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-child(odd) > td,\n.table-striped > tbody > tr:nth-child(odd) > th {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover > td,\n.table-hover > tbody > tr:hover > th {\n background-color: #f5f5f5;\n}\ntable col[class^=\"col-\"] {\n float: none;\n display: table-column;\n}\ntable td[class^=\"col-\"],\ntable th[class^=\"col-\"] {\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td {\n background-color: #d0e9c6;\n border-color: #c9e2b3;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n border-color: #eed3d7;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td {\n background-color: #ebcccc;\n border-color: #e6c1c7;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n border-color: #fbeed5;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td {\n background-color: #faf2cc;\n border-color: #f8e5be;\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n /* IE8-9 */\n\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\nselect optgroup {\n font-size: inherit;\n font-style: inherit;\n font-family: inherit;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: thin dotted #333;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\ninput[type=\"number\"]::-webkit-outer-spin-button,\ninput[type=\"number\"]::-webkit-inner-spin-button {\n height: auto;\n}\n.form-control:-moz-placeholder {\n color: #cccccc;\n}\n.form-control::-moz-placeholder {\n color: #cccccc;\n}\n.form-control:-ms-input-placeholder {\n color: #cccccc;\n}\n.form-control::-webkit-input-placeholder {\n color: #cccccc;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 38px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.428571429;\n color: #555555;\n vertical-align: middle;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n background-color: #f5f5f5;\n}\ntextarea.form-control {\n height: auto;\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n display: block;\n min-height: 20px;\n margin-top: 10px;\n margin-bottom: 10px;\n padding-left: 20px;\n vertical-align: middle;\n}\n.radio label,\n.checkbox label {\n display: inline;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n float: left;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\n.radio[disabled],\n.radio-inline[disabled],\n.checkbox[disabled],\n.checkbox-inline[disabled],\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"],\nfieldset[disabled] .radio,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm {\n height: auto;\n}\n.input-lg {\n height: 45px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 45px;\n line-height: 45px;\n}\ntextarea.input-lg {\n height: auto;\n}\n.has-warning .help-block,\n.has-warning .control-label {\n color: #c09853;\n}\n.has-warning .form-control {\n border-color: #c09853;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #a47e3c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n}\n.has-warning .input-group-addon {\n color: #c09853;\n border-color: #c09853;\n background-color: #fcf8e3;\n}\n.has-error .help-block,\n.has-error .control-label {\n color: #b94a48;\n}\n.has-error .form-control {\n border-color: #b94a48;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #953b39;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n}\n.has-error .input-group-addon {\n color: #b94a48;\n border-color: #b94a48;\n background-color: #f2dede;\n}\n.has-success .help-block,\n.has-success .control-label {\n color: #468847;\n}\n.has-success .form-control {\n border-color: #468847;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #356635;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n}\n.has-success .input-group-addon {\n color: #468847;\n border-color: #468847;\n background-color: #dff0d8;\n}\n.form-control-static {\n margin-bottom: 0;\n padding-top: 6px;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n float: none;\n margin-left: 0;\n }\n}\n.form-horizontal .control-label,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 6px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.form-horizontal .form-group:after {\n clear: both;\n}\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.form-horizontal .form-group:after {\n clear: both;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n }\n}\n.btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n font-size: 14px;\n font-weight: bold;\n line-height: 1.428571429;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n border: 1px solid transparent;\n border-radius: 4px;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n}\n.btn:focus {\n outline: thin dotted #333;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus {\n color: #333333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default {\n color: #333333;\n background-color: rgba(0, 0, 0, 0);\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-default:hover,\n.btn-default:focus,\n.btn-default:active,\n.btn-default.active,\n.open .dropdown-toggle.btn-default {\n color: #333333;\n background-color: rgba(0, 0, 0, 0);\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-default:active,\n.btn-default.active,\n.open .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: rgba(0, 0, 0, 0);\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-primary {\n color: #ffffff;\n background-color: #888888;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary:active,\n.btn-primary.active,\n.open .dropdown-toggle.btn-primary {\n color: #ffffff;\n background-color: #747474;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-primary:active,\n.btn-primary.active,\n.open .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #888888;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-warning {\n color: #ffffff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning:active,\n.btn-warning.active,\n.open .dropdown-toggle.btn-warning {\n color: #ffffff;\n background-color: #ed9c28;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-danger {\n color: #ffffff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger:active,\n.btn-danger.active,\n.open .dropdown-toggle.btn-danger {\n color: #ffffff;\n background-color: #d2322d;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-success {\n color: #555555;\n background-color: #dddddd;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-success:hover,\n.btn-success:focus,\n.btn-success:active,\n.btn-success.active,\n.open .dropdown-toggle.btn-success {\n color: #555555;\n background-color: #c9c9c9;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-success:active,\n.btn-success.active,\n.open .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #dddddd;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-info {\n color: #ffffff;\n background-color: #f5f5f5;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-info:hover,\n.btn-info:focus,\n.btn-info:active,\n.btn-info.active,\n.open .dropdown-toggle.btn-info {\n color: #ffffff;\n background-color: #e1e1e1;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-info:active,\n.btn-info.active,\n.open .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #f5f5f5;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-link {\n color: #428bca;\n font-weight: normal;\n cursor: pointer;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #2a6496;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #999999;\n text-decoration: none;\n}\n.btn-lg {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-xs {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs {\n padding: 1px 5px;\n}\n.btn-block {\n display: block;\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition: height 0.35s ease;\n transition: height 0.35s ease;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group.col {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n width: 100%;\n margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 45px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 45px;\n line-height: 45px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n text-align: center;\n background-color: #f5f5f5;\n border: 1px solid #dddddd;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -4px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px solid #000000;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n border-bottom: 0 dotted;\n content: \"\";\n}\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n background-color: #ffffff;\n border: 1px solid #cccccc;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.428571429;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #ffffff;\n background-color: #888888;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #ffffff;\n text-decoration: none;\n outline: 0;\n background-color: #428bca;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #999999;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.428571429;\n color: #999999;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0 dotted;\n border-bottom: 4px solid #000000;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 1px;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #ffffff;\n border: 1px solid rgba(0, 0, 0, 0);\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\na.list-group-item {\n color: #333333;\n}\na.list-group-item .list-group-item-heading {\n color: #333333;\n}\na.list-group-item:hover,\na.list-group-item:focus {\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #888888;\n border-color: #888888;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #eeeeee;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-body:before,\n.panel-body:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.panel-body:after {\n clear: both;\n}\n.panel-body:before,\n.panel-body:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.panel-body:after {\n clear: both;\n}\n.panel > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item {\n border-width: 1px 0;\n}\n.panel > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel > .list-group .list-group-item:last-child {\n border-bottom: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.panel-heading {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-bottom: 1px solid #dddddd;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n}\n.panel-title > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #dddddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n overflow: hidden;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse .panel-body {\n border-top: 1px solid #dddddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #dddddd;\n}\n.panel-primary {\n border-color: #428bca;\n}\n.panel-primary > .panel-heading {\n color: #ffffff;\n background-color: #428bca;\n border-color: #428bca;\n}\n.panel-primary > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #428bca;\n}\n.panel-primary > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #428bca;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #468847;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-warning {\n border-color: #fbeed5;\n}\n.panel-warning > .panel-heading {\n color: #c09853;\n background-color: #fcf8e3;\n border-color: #fbeed5;\n}\n.panel-warning > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #fbeed5;\n}\n.panel-warning > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #fbeed5;\n}\n.panel-danger {\n border-color: #eed3d7;\n}\n.panel-danger > .panel-heading {\n color: #b94a48;\n background-color: #f2dede;\n border-color: #eed3d7;\n}\n.panel-danger > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #eed3d7;\n}\n.panel-danger > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #eed3d7;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #3a87ad;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #bce8f1;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000000;\n text-shadow: 0 1px 0 #ffffff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav:before,\n.nav:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.nav:after {\n clear: both;\n}\n.nav:before,\n.nav:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.nav:after {\n clear: both;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.nav > li.disabled > a {\n color: #cccccc;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #bbbbbb;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #f5f5f5;\n border-color: #428bca;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid rgba(0, 0, 0, 0);\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.428571429;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #f5f5f5 #f5f5f5 rgba(0, 0, 0, 0);\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #f5f5f5;\n border: 1px solid #dddddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n}\n.nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #dddddd;\n margin-right: 0;\n}\n.nav-tabs.nav-justified > .active > a {\n border-bottom-color: #f5f5f5;\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 5px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #ffffff;\n background-color: #428bca;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n border-bottom: 1px solid #dddddd;\n margin-right: 0;\n}\n.nav-tabs-justified > .active > a {\n border-bottom-color: #f5f5f5;\n}\n.tabbable:before,\n.tabbable:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.tabbable:after {\n clear: both;\n}\n.tabbable:before,\n.tabbable:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.tabbable:after {\n clear: both;\n}\n.tab-content > .tab-pane,\n.pill-content > .pill-pane {\n display: none;\n}\n.tab-content > .active,\n.pill-content > .active {\n display: block;\n}\n.nav .caret {\n border-top-color: #428bca;\n border-bottom-color: #428bca;\n}\n.nav a:hover .caret {\n border-top-color: #2a6496;\n border-bottom-color: #2a6496;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n background-color: #dddddd;\n border: 1px solid rgba(0, 0, 0, 0);\n}\n.navbar:before,\n.navbar:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar:after {\n clear: both;\n}\n.navbar:before,\n.navbar:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar:after {\n clear: both;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n.navbar-header {\n padding-left: 15px;\n padding-right: 15px;\n}\n.navbar-header:before,\n.navbar-header:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar-header:after {\n clear: both;\n}\n.navbar-header:before,\n.navbar-header:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar-header:after {\n clear: both;\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n max-height: 340px;\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid #cbcbcb;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse:before,\n.navbar-collapse:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar-collapse:after {\n clear: both;\n}\n.navbar-collapse:before,\n.navbar-collapse:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar-collapse:after {\n clear: both;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n padding-right: 0;\n padding-left: 0;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n}\n.navbar-static-top {\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n}\n.navbar-brand {\n float: left;\n padding-top: 15px;\n padding-bottom: 15px;\n font-size: 18px;\n line-height: 20px;\n color: #777777;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n color: #5e5e5e;\n text-decoration: none;\n background-color: transparent;\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n border: 1px solid #dddddd;\n border-radius: 4px;\n}\n.navbar-toggle:hover,\n.navbar-toggle:focus {\n background-color: #dddddd;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n background-color: #cccccc;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n position: relative;\n top: auto;\n left: auto;\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n color: #777777;\n line-height: 20px;\n}\n.navbar-nav > li > a:hover,\n.navbar-nav > li > a:focus {\n color: #333333;\n background-color: transparent;\n}\n.navbar-nav > .active > a,\n.navbar-nav > .active > a:hover,\n.navbar-nav > .active > a:focus {\n color: #555555;\n background-color: #cccccc;\n}\n.navbar-nav > .disabled > a,\n.navbar-nav > .disabled > a:hover,\n.navbar-nav > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n color: #777777;\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333333;\n background-color: transparent;\n background-image: none;\n }\n .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555555;\n background-color: #cccccc;\n }\n .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n }\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid #cbcbcb;\n border-bottom: 1px solid #cbcbcb;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 6px;\n margin-bottom: 6px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n float: none;\n margin-left: 0;\n }\n}\n.navbar-form .col-lg-1 {\n width: 8.333333333333332%;\n}\n.navbar-form .col-lg-2 {\n width: 16.666666666666664%;\n}\n.navbar-form .col-lg-3 {\n width: 25%;\n}\n.navbar-form .col-lg-4 {\n width: 33.33333333333333%;\n}\n.navbar-form .col-lg-5 {\n width: 41.66666666666667%;\n}\n.navbar-form .col-lg-6 {\n width: 50%;\n}\n.navbar-form .col-lg-7 {\n width: 58.333333333333336%;\n}\n.navbar-form .col-lg-8 {\n width: 66.66666666666666%;\n}\n.navbar-form .col-lg-9 {\n width: 75%;\n}\n.navbar-form .col-lg-10 {\n width: 83.33333333333334%;\n}\n.navbar-form .col-lg-11 {\n width: 91.66666666666666%;\n}\n.navbar-form .col-lg-12 {\n width: 100%;\n}\n.navbar-form * {\n float: none;\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-nav > .dropdown > a:hover .caret,\n.navbar-nav > .dropdown > a:focus .caret {\n border-top-color: #333333;\n border-bottom-color: #333333;\n}\n.navbar-nav > .open > a,\n.navbar-nav > .open > a:hover,\n.navbar-nav > .open > a:focus {\n background-color: #cccccc;\n color: #555555;\n}\n.navbar-nav > .open > a .caret,\n.navbar-nav > .open > a:hover .caret,\n.navbar-nav > .open > a:focus .caret {\n border-top-color: #555555;\n border-bottom-color: #555555;\n}\n.navbar-nav > .dropdown > a .caret {\n border-top-color: #777777;\n border-bottom-color: #777777;\n}\n.navbar-nav.pull-right > li > .dropdown-menu,\n.navbar-nav > li > .dropdown-menu.pull-right {\n left: auto;\n right: 0;\n}\n.navbar-btn {\n margin-top: 6px;\n margin-bottom: 6px;\n}\n.navbar-text {\n float: left;\n color: #777777;\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n.navbar-link {\n color: #777777;\n}\n.navbar-link:hover {\n color: #333333;\n}\n.navbar-inverse {\n background-color: #222222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #999999;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #999999;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #999999;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #ffffff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #ffffff;\n}\n.navbar-inverse .navbar-nav > .dropdown > a:hover .caret {\n border-top-color: #ffffff;\n border-bottom-color: #ffffff;\n}\n.navbar-inverse .navbar-nav > .dropdown > a .caret {\n border-top-color: #999999;\n border-bottom-color: #999999;\n}\n.navbar-inverse .navbar-nav > .open > a .caret,\n.navbar-inverse .navbar-nav > .open > a:hover .caret,\n.navbar-inverse .navbar-nav > .open > a:focus .caret {\n border-top-color: #ffffff;\n border-bottom-color: #ffffff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #999999;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #999999;\n}\n.navbar-inverse .navbar-link:hover {\n color: #ffffff;\n}\n.btn-default .caret {\n border-top-color: #333333;\n}\n.btn-primary .caret,\n.btn-success .caret,\n.btn-warning .caret,\n.btn-danger .caret,\n.btn-info .caret {\n border-top-color: #fff;\n}\n.dropup .btn-default .caret {\n border-bottom-color: #333333;\n}\n.dropup .btn-primary .caret,\n.dropup .btn-success .caret,\n.dropup .btn-warning .caret,\n.dropup .btn-danger .caret,\n.dropup .btn-info .caret {\n border-bottom-color: #fff;\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus {\n outline: none;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar:before,\n.btn-toolbar:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.btn-toolbar:after {\n clear: both;\n}\n.btn-toolbar:before,\n.btn-toolbar:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.btn-toolbar:after {\n clear: both;\n}\n.btn-toolbar .btn-group {\n float: left;\n}\n.btn-toolbar > .btn + .btn,\n.btn-toolbar > .btn-group + .btn,\n.btn-toolbar > .btn + .btn-group,\n.btn-toolbar > .btn-group + .btn-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child > .btn:last-child,\n.btn-group > .btn-group:first-child > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group-xs > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n padding: 1px 5px;\n}\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33;\n border-radius: 6px;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px;\n}\n.dropup .btn-lg .caret {\n border-bottom-width: 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.btn-group-vertical > .btn-group:after {\n clear: both;\n}\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.btn-group-vertical > .btn-group:after {\n clear: both;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-bottom-left-radius: 4px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified .btn {\n float: none;\n display: table-cell;\n width: 1%;\n}\n[data-toggle=\"buttons\"] > .btn > input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn > input[type=\"checkbox\"] {\n display: none;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #cccccc;\n}\n.breadcrumb > .active {\n color: #999999;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.428571429;\n text-decoration: none;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n background-color: #f5f5f5;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #428bca;\n border-color: #428bca;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #999999;\n background-color: #ffffff;\n border-color: #dddddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager:before,\n.pager:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.pager:after {\n clear: both;\n}\n.pager:before,\n.pager:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.pager:after {\n clear: both;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #999999;\n background-color: #ffffff;\n cursor: not-allowed;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: auto;\n overflow-y: scroll;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-dialog {\n margin-left: auto;\n margin-right: auto;\n width: auto;\n padding: 10px;\n z-index: 1050;\n}\n.modal-content {\n position: relative;\n background-color: #ffffff;\n border: 1px solid #999999;\n border: 1px solid #e8e8e8;\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: none;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n background-color: #000000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e8e8e8;\n min-height: 16.428571429px;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.428571429;\n}\n.modal-body {\n position: relative;\n padding: 20px;\n}\n.modal-footer {\n margin-top: 15px;\n padding: 19px 20px 20px;\n text-align: right;\n border-top: 1px solid #e8e8e8;\n}\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.modal-footer:after {\n clear: both;\n}\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.modal-footer:after {\n clear: both;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n@media screen and (min-width: 768px) {\n .modal-dialog {\n left: 50%;\n right: auto;\n width: 600px;\n padding-top: 30px;\n padding-bottom: 30px;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1030;\n display: block;\n visibility: visible;\n font-size: 12px;\n line-height: 1.4;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 220px;\n padding: 3px 8px;\n color: #ffffff;\n text-align: center;\n text-decoration: none;\n background-color: #000000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n left: 5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n right: 5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n left: 5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n right: 5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1010;\n display: none;\n max-width: 276px;\n padding: 1px;\n text-align: left;\n background-color: #ffffff;\n background-clip: padding-box;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n white-space: normal;\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n font-weight: normal;\n line-height: 18px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover .arrow,\n.popover .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover .arrow {\n border-width: 11px;\n}\n.popover .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #ffffff;\n}\n.popover.right .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #ffffff;\n}\n.popover.bottom .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #ffffff;\n}\n.popover.left .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #ffffff;\n bottom: -10px;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n color: #c09853;\n background-color: #fcf8e3;\n border: 1px solid #fbeed5;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert hr {\n border-top-color: #f8e5be;\n}\n.alert .alert-link {\n font-weight: bold;\n color: #a47e3c;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable {\n padding-right: 35px;\n}\n.alert-dismissable .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #468847;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #356635;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #eed3d7;\n color: #b94a48;\n}\n.alert-danger hr {\n border-top-color: #e6c1c7;\n}\n.alert-danger .alert-link {\n color: #953b39;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #3a87ad;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #2d6987;\n}\n.thumbnail,\n.img-thumbnail {\n padding: 4px;\n line-height: 1.428571429;\n background-color: #f5f5f5;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n}\n.thumbnail {\n display: block;\n}\n.thumbnail > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-thumbnail {\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus {\n border-color: #428bca;\n}\n.thumbnail > img {\n margin-left: auto;\n margin-right: auto;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media,\n.media .media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media-object {\n display: block;\n}\n.media-heading {\n margin: 0 0 5px;\n}\n.media > .pull-left {\n margin-right: 10px;\n}\n.media > .pull-right {\n margin-left: 10px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.label {\n display: inline;\n padding: .25em .6em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #ffffff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\n.label[href]:hover,\n.label[href]:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.label-default {\n background-color: #999999;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #808080;\n}\n.label-primary {\n background-color: #428bca;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #3071a9;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #ffffff;\n line-height: 1;\n vertical-align: baseline;\n white-space: nowrap;\n text-align: center;\n background-color: #999999;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\na.badge:hover,\na.badge:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\na.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #428bca;\n background-color: #ffffff;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-moz-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-o-keyframes progress-bar-stripes {\n from {\n background-position: 0 0;\n }\n to {\n background-position: 40px 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n color: #ffffff;\n text-align: center;\n background-color: #428bca;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -moz-animation: progress-bar-stripes 2s linear infinite;\n -ms-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n line-height: 1;\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-control.left {\n background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));\n background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));\n background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));\n background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));\n background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #ffffff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 5;\n display: inline-block;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n margin-left: -10px;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #ffffff;\n border-radius: 10px;\n cursor: pointer;\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #ffffff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n font-size: 30px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.jumbotron {\n padding: 30px;\n margin-bottom: 30px;\n font-size: 21px;\n font-weight: 200;\n line-height: 2.1428571435;\n color: inherit;\n background-color: #f5f5f5;\n}\n.jumbotron h1 {\n line-height: 1;\n color: inherit;\n}\n.jumbotron p {\n line-height: 1.4;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding: 50px 60px;\n border-radius: 6px;\n }\n .jumbotron h1 {\n font-size: 63px;\n }\n}\n.clearfix:before,\n.clearfix:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.clearfix:after {\n clear: both;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n@media screen and (max-width: 400px) {\n @-ms-viewport {\n width: 320px;\n }\n}\n.hidden {\n display: none !important;\n visibility: hidden !important;\n}\n.visible-xs {\n display: block !important;\n}\ntr.visible-xs {\n display: table-row !important;\n}\nth.visible-xs,\ntd.visible-xs {\n display: table-cell !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-xs {\n display: none !important;\n }\n tr.visible-xs {\n display: none !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-xs {\n display: none !important;\n }\n tr.visible-xs {\n display: none !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-xs {\n display: none !important;\n }\n tr.visible-xs {\n display: none !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: none !important;\n }\n}\n.visible-sm {\n display: none !important;\n}\ntr.visible-sm {\n display: none !important;\n}\nth.visible-sm,\ntd.visible-sm {\n display: none !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-sm {\n display: none !important;\n }\n tr.visible-sm {\n display: none !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-sm {\n display: none !important;\n }\n tr.visible-sm {\n display: none !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: none !important;\n }\n}\n.visible-md {\n display: none !important;\n}\ntr.visible-md {\n display: none !important;\n}\nth.visible-md,\ntd.visible-md {\n display: none !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-md {\n display: none !important;\n }\n tr.visible-md {\n display: none !important;\n }\n th.visible-md,\n td.visible-md {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-md {\n display: none !important;\n }\n tr.visible-md {\n display: none !important;\n }\n th.visible-md,\n td.visible-md {\n display: none !important;\n }\n}\n.visible-lg {\n display: none !important;\n}\ntr.visible-lg {\n display: none !important;\n}\nth.visible-lg,\ntd.visible-lg {\n display: none !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-lg {\n display: none !important;\n }\n tr.visible-lg {\n display: none !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-lg {\n display: none !important;\n }\n tr.visible-lg {\n display: none !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n.hidden-xs {\n display: none !important;\n}\ntr.hidden-xs {\n display: none !important;\n}\nth.hidden-xs,\ntd.hidden-xs {\n display: none !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-xs {\n display: block !important;\n }\n tr.hidden-xs {\n display: table-row !important;\n }\n th.hidden-xs,\n td.hidden-xs {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-xs {\n display: block !important;\n }\n tr.hidden-xs {\n display: table-row !important;\n }\n th.hidden-xs,\n td.hidden-xs {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-xs {\n display: block !important;\n }\n tr.hidden-xs {\n display: table-row !important;\n }\n th.hidden-xs,\n td.hidden-xs {\n display: table-cell !important;\n }\n}\n.hidden-sm {\n display: block !important;\n}\ntr.hidden-sm {\n display: table-row !important;\n}\nth.hidden-sm,\ntd.hidden-sm {\n display: table-cell !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n tr.hidden-sm {\n display: none !important;\n }\n th.hidden-sm,\n td.hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-sm {\n display: block !important;\n }\n tr.hidden-sm {\n display: table-row !important;\n }\n th.hidden-sm,\n td.hidden-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-sm {\n display: block !important;\n }\n tr.hidden-sm {\n display: table-row !important;\n }\n th.hidden-sm,\n td.hidden-sm {\n display: table-cell !important;\n }\n}\n.hidden-md {\n display: block !important;\n}\ntr.hidden-md {\n display: table-row !important;\n}\nth.hidden-md,\ntd.hidden-md {\n display: table-cell !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-md {\n display: block !important;\n }\n tr.hidden-md {\n display: table-row !important;\n }\n th.hidden-md,\n td.hidden-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n tr.hidden-md {\n display: none !important;\n }\n th.hidden-md,\n td.hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-md {\n display: block !important;\n }\n tr.hidden-md {\n display: table-row !important;\n }\n th.hidden-md,\n td.hidden-md {\n display: table-cell !important;\n }\n}\n.hidden-lg {\n display: block !important;\n}\ntr.hidden-lg {\n display: table-row !important;\n}\nth.hidden-lg,\ntd.hidden-lg {\n display: table-cell !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-lg {\n display: block !important;\n }\n tr.hidden-lg {\n display: table-row !important;\n }\n th.hidden-lg,\n td.hidden-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-lg {\n display: block !important;\n }\n tr.hidden-lg {\n display: table-row !important;\n }\n th.hidden-lg,\n td.hidden-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n tr.hidden-lg {\n display: none !important;\n }\n th.hidden-lg,\n td.hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\ntr.visible-print {\n display: none !important;\n}\nth.visible-print,\ntd.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n .hidden-print {\n display: none !important;\n }\n tr.hidden-print {\n display: none !important;\n }\n th.hidden-print,\n td.hidden-print {\n display: none !important;\n }\n}\n@font-face {\n font-family: 'fontello';\n src: url('libs/fontello/font/fontello.eot?65226408');\n src: url('libs/fontello/font/fontello.eot?65226408#iefix') format('embedded-opentype'), url('libs/fontello/font/fontello.woff?65226408') format('woff'), url('libs/fontello/font/fontello.ttf?65226408') format('truetype'), url('libs/fontello/font/fontello.svg?65226408#fontello') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */\n/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */\n/*\n@media screen and (-webkit-min-device-pixel-ratio:0) {\n @font-face {\n font-family: 'fontello';\n src: url('libs/fontello/font/fontello.svg?65226408#fontello') format('svg');\n }\n}\n*/\n[class^=\"icon-\"]:before,\n[class*=\" icon-\"]:before {\n font-family: \"fontello\";\n font-style: normal;\n font-weight: normal;\n speak: none;\n display: inline-block;\n text-decoration: inherit;\n width: 1em;\n margin-right: .2em;\n text-align: center;\n /* opacity: .8; */\n\n /* For safety - reset parent styles, that can break glyph codes*/\n\n font-variant: normal;\n text-transform: none;\n /* fix buttons height, for twitter bootstrap */\n\n line-height: 1em;\n /* Animation center compensation - margins should be symmetric */\n\n /* remove if not needed */\n\n margin-left: .2em;\n /* you can be more comfortable with increased icons size */\n\n /* font-size: 120%; */\n\n /* Uncomment for 3D effect */\n\n /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */\n\n}\n.icon-plus:before {\n content: '\\e81f';\n}\n/* '' */\n.icon-minus:before {\n content: '\\e823';\n}\n/* '' */\n.icon-left-big:before {\n content: '\\e88a';\n}\n/* '' */\n.icon-up-big:before {\n content: '\\e88c';\n}\n/* '' */\n.icon-right-big:before {\n content: '\\e88b';\n}\n/* '' */\n.icon-down-big:before {\n content: '\\e889';\n}\n/* '' */\n.icon-home:before {\n content: '\\e93c';\n}\n/* '' */\n.icon-pause:before {\n content: '\\e800';\n}\n/* '' */\n.icon-fast-fw:before {\n content: '\\e8a4';\n}\n/* '' */\n.icon-fast-bw:before {\n content: '\\e8a5';\n}\n/* '' */\n.icon-to-end:before {\n content: '\\e8a0';\n}\n/* '' */\n.icon-to-start:before {\n content: '\\e8a2';\n}\n/* '' */\n.icon-stop:before {\n content: '\\e89e';\n}\n/* '' */\n.icon-up-dir:before {\n content: '\\e94e';\n}\n/* '' */\n.icon-play:before {\n content: '\\e89b';\n}\n/* '' */\n.icon-right-dir:before {\n content: '\\e950';\n}\n/* '' */\n.icon-down-dir:before {\n content: '\\e94d';\n}\n/* '' */\n.icon-left-dir:before {\n content: '\\e94f';\n}\n/* '' */\n.icon-cloud:before {\n content: '\\e8ad';\n}\n/* '' */\n.icon-umbrella:before {\n content: '\\e8b0';\n}\n/* '' */\n.icon-star:before {\n content: '\\e808';\n}\n/* '' */\n.icon-star-empty:before {\n content: '\\e809';\n}\n/* '' */\n.icon-check:before {\n content: '\\e8cf';\n}\n/* '' */\n.icon-left-hand:before {\n content: '\\e88e';\n}\n/* '' */\n.icon-up-hand:before {\n content: '\\e88f';\n}\n/* '' */\n.icon-right-hand:before {\n content: '\\e88d';\n}\n/* '' */\n.icon-down-hand:before {\n content: '\\e890';\n}\n/* '' */\n.icon-th-list:before {\n content: '\\e817';\n}\n/* '' */\n.icon-heart-empty:before {\n content: '\\e807';\n}\n/* '' */\n.icon-heart:before {\n content: '\\e806';\n}\n/* '' */\n.icon-music:before {\n content: '\\e802';\n}\n/* '' */\n.icon-th:before {\n content: '\\e816';\n}\n/* '' */\n.icon-flag:before {\n content: '\\e838';\n}\n/* '' */\n.icon-cog:before {\n content: '\\e862';\n}\n/* '' */\n.icon-attention:before {\n content: '\\e851';\n}\n/* '' */\n.icon-flash:before {\n content: '\\e8ae';\n}\n/* '' */\n.icon-cog-alt:before {\n content: '\\e863';\n}\n/* '' */\n.icon-scissors:before {\n content: '\\e8c5';\n}\n/* '' */\n.icon-flight:before {\n content: '\\e8b1';\n}\n/* '' */\n.icon-mail:before {\n content: '\\e804';\n}\n/* '' */\n.icon-edit:before {\n content: '\\e941';\n}\n/* '' */\n.icon-pencil:before {\n content: '\\e847';\n}\n/* '' */\n.icon-ok:before {\n content: '\\e818';\n}\n/* '' */\n.icon-ok-circled:before {\n content: '\\e819';\n}\n/* '' */\n.icon-cancel:before {\n content: '\\e81c';\n}\n/* '' */\n.icon-cancel-circled:before {\n content: '\\e81d';\n}\n/* '' */\n.icon-asterisk:before {\n content: '\\e8d3';\n}\n/* '' */\n.icon-attention-circled:before {\n content: '\\e852';\n}\n/* '' */\n.icon-plus-circled:before {\n content: '\\e820';\n}\n/* '' */\n.icon-minus-circled:before {\n content: '\\e824';\n}\n/* '' */\n.icon-forward:before {\n content: '\\e856';\n}\n/* '' */\n.icon-ccw:before {\n content: '\\e896';\n}\n/* '' */\n.icon-cw:before {\n content: '\\e895';\n}\n/* '' */\n.icon-resize-vertical:before {\n content: '\\e872';\n}\n/* '' */\n.icon-resize-horizontal:before {\n content: '\\e873';\n}\n/* '' */\n.icon-eject:before {\n content: '\\e8a6';\n}\n/* '' */\n.icon-trash:before {\n content: '\\e89f';\n}\n/* '' */\n.icon-folder:before {\n content: '\\e8d7';\n}\n/* '' */\n.icon-star-half:before {\n content: '\\e80a';\n}\n/* '' */\n.icon-ok-circled2:before {\n content: '\\e81a';\n}\n/* '' */\n.icon-cancel-circled2:before {\n content: '\\e86f';\n}\n/* '' */\n.icon-help-circled:before {\n content: '\\e939';\n}\n/* '' */\n.icon-info-circled:before {\n content: '\\e93a';\n}\n/* '' */\n.icon-th-large:before {\n content: '\\e815';\n}\n/* '' */\n.icon-eye:before {\n content: '\\e832';\n}\n/* '' */\n.icon-eye-off:before {\n content: '\\e833';\n}\n/* '' */\n.icon-tag:before {\n content: '\\e834';\n}\n/* '' */\n.icon-tags:before {\n content: '\\e835';\n}\n/* '' */\n.icon-camera-alt:before {\n content: '\\e814';\n}\n/* '' */\n.icon-code:before {\n content: '\\e844';\n}\n/* '' */\n.icon-print:before {\n content: '\\e942';\n}\n/* '' */\n.icon-retweet:before {\n content: '\\e943';\n}\n/* '' */\n.icon-comment:before {\n content: '\\e84a';\n}\n/* '' */\n.icon-chat:before {\n content: '\\e84b';\n}\n/* '' */\n.icon-location:before {\n content: '\\e853';\n}\n/* '' */\n.icon-archive:before {\n content: '\\e859';\n}\n/* '' */\n.icon-basket:before {\n content: '\\e865';\n}\n/* '' */\n.icon-login:before {\n content: '\\e868';\n}\n/* '' */\n.icon-logout:before {\n content: '\\e949';\n}\n/* '' */\n.icon-resize-full:before {\n content: '\\e90d';\n}\n/* '' */\n.icon-resize-small:before {\n content: '\\e871';\n}\n/* '' */\n.icon-zoom-in:before {\n content: '\\e875';\n}\n/* '' */\n.icon-zoom-out:before {\n content: '\\e876';\n}\n/* '' */\n.icon-down-circled2:before {\n content: '\\e877';\n}\n/* '' */\n.icon-up-circled2:before {\n content: '\\e878';\n}\n/* '' */\n.icon-down-open:before {\n content: '\\e879';\n}\n/* '' */\n.icon-left-open:before {\n content: '\\e87a';\n}\n/* '' */\n.icon-right-open:before {\n content: '\\e87b';\n}\n/* '' */\n.icon-up-open:before {\n content: '\\e87c';\n}\n/* '' */\n.icon-refresh:before {\n content: '\\e897';\n}\n/* '' */\n.icon-play-circled2:before {\n content: '\\e89d';\n}\n/* '' */\n.icon-to-end-alt:before {\n content: '\\e8a1';\n}\n/* '' */\n.icon-to-start-alt:before {\n content: '\\e8a3';\n}\n/* '' */\n.icon-inbox:before {\n content: '\\e8aa';\n}\n/* '' */\n.icon-font:before {\n content: '\\e8b6';\n}\n/* '' */\n.icon-bold:before {\n content: '\\e8b5';\n}\n/* '' */\n.icon-italic:before {\n content: '\\e8b4';\n}\n/* '' */\n.icon-text-height:before {\n content: '\\e8b7';\n}\n/* '' */\n.icon-text-width:before {\n content: '\\e8b8';\n}\n/* '' */\n.icon-align-left:before {\n content: '\\e95d';\n}\n/* '' */\n.icon-align-center:before {\n content: '\\e95e';\n}\n/* '' */\n.icon-align-right:before {\n content: '\\e95f';\n}\n/* '' */\n.icon-align-justify:before {\n content: '\\e960';\n}\n/* '' */\n.icon-list:before {\n content: '\\e8b9';\n}\n/* '' */\n.icon-indent-left:before {\n content: '\\e8ba';\n}\n/* '' */\n.icon-indent-right:before {\n content: '\\e8bb';\n}\n/* '' */\n.icon-off:before {\n content: '\\e963';\n}\n/* '' */\n.icon-road:before {\n content: '\\e964';\n}\n/* '' */\n.icon-list-alt:before {\n content: '\\e8c9';\n}\n/* '' */\n.icon-qrcode:before {\n content: '\\e8ca';\n}\n/* '' */\n.icon-barcode:before {\n content: '\\e8cb';\n}\n/* '' */\n.icon-ajust:before {\n content: '\\e8cd';\n}\n/* '' */\n.icon-tint:before {\n content: '\\e8ce';\n}\n/* '' */\n.icon-layers:before {\n content: '\\e829';\n}\n/* '' */\n.icon-magnet:before {\n content: '\\e8d6';\n}\n/* '' */\n.icon-move:before {\n content: '\\e874';\n}\n/* '' */\n.icon-link:before {\n content: '\\e83f';\n}\n/* '' */\n.icon-share:before {\n content: '\\e912';\n}\n/* '' */\n.icon-hdd:before {\n content: '\\e841';\n}\n/* '' */\n.icon-link-ext:before {\n content: '\\e82b';\n}\n/* '' */\n.icon-check-empty:before {\n content: '\\e8d0';\n}\n/* '' */\n.icon-bookmark-empty:before {\n content: '\\e837';\n}\n/* '' */\n.icon-phone-squared:before {\n content: '\\e860';\n}\n/* '' */\n.icon-rss:before {\n content: '\\e85d';\n}\n/* '' */\n.icon-certificate:before {\n content: '\\e8dd';\n}\n/* '' */\n.icon-left-circled:before {\n content: '\\e891';\n}\n/* '' */\n.icon-right-circled:before {\n content: '\\e892';\n}\n/* '' */\n.icon-up-circled:before {\n content: '\\e893';\n}\n/* '' */\n.icon-down-circled:before {\n content: '\\e894';\n}\n/* '' */\n.icon-tasks:before {\n content: '\\e8de';\n}\n/* '' */\n.icon-filter:before {\n content: '\\e8df';\n}\n/* '' */\n.icon-resize-full-alt:before {\n content: '\\e870';\n}\n/* '' */\n.icon-beaker:before {\n content: '\\e8e0';\n}\n/* '' */\n.icon-docs:before {\n content: '\\e858';\n}\n/* '' */\n.icon-menu:before {\n content: '\\e861';\n}\n/* '' */\n.icon-list-bullet:before {\n content: '\\e8bc';\n}\n/* '' */\n.icon-list-numbered:before {\n content: '\\e8bd';\n}\n/* '' */\n.icon-strike:before {\n content: '\\e8be';\n}\n/* '' */\n.icon-underline:before {\n content: '\\e8bf';\n}\n/* '' */\n.icon-table:before {\n content: '\\e8c2';\n}\n/* '' */\n.icon-magic:before {\n content: '\\e8e1';\n}\n/* '' */\n.icon-money:before {\n content: '\\e8e3';\n}\n/* '' */\n.icon-columns:before {\n content: '\\e8c3';\n}\n/* '' */\n.icon-sort:before {\n content: '\\e8ec';\n}\n/* '' */\n.icon-sort-down:before {\n content: '\\e8ed';\n}\n/* '' */\n.icon-sort-up:before {\n content: '\\e8ee';\n}\n/* '' */\n.icon-mail-alt:before {\n content: '\\e805';\n}\n/* '' */\n.icon-gauge:before {\n content: '\\e8f6';\n}\n/* '' */\n.icon-comment-empty:before {\n content: '\\e84c';\n}\n/* '' */\n.icon-chat-empty:before {\n content: '\\e84d';\n}\n/* '' */\n.icon-sitemap:before {\n content: '\\e8f7';\n}\n/* '' */\n.icon-paste:before {\n content: '\\e8c6';\n}\n/* '' */\n.icon-lightbulb:before {\n content: '\\e86d';\n}\n/* '' */\n.icon-exchange:before {\n content: '\\e957';\n}\n/* '' */\n.icon-download-cloud:before {\n content: '\\e83d';\n}\n/* '' */\n.icon-upload-cloud:before {\n content: '\\e83e';\n}\n/* '' */\n.icon-user-md:before {\n content: '\\e8fc';\n}\n/* '' */\n.icon-stethoscope:before {\n content: '\\e8fd';\n}\n/* '' */\n.icon-suitcase:before {\n content: '\\e8c8';\n}\n/* '' */\n.icon-bell-alt:before {\n content: '\\e84f';\n}\n/* '' */\n.icon-coffee:before {\n content: '\\e8f9';\n}\n/* '' */\n.icon-food:before {\n content: '\\e8fa';\n}\n/* '' */\n.icon-doc-text:before {\n content: '\\e945';\n}\n/* '' */\n.icon-building:before {\n content: '\\e902';\n}\n/* '' */\n.icon-hospital:before {\n content: '\\e901';\n}\n/* '' */\n.icon-ambulance:before {\n content: '\\e8fe';\n}\n/* '' */\n.icon-medkit:before {\n content: '\\e8ff';\n}\n/* '' */\n.icon-fighter-jet:before {\n content: '\\e8b2';\n}\n/* '' */\n.icon-beer:before {\n content: '\\e8fb';\n}\n/* '' */\n.icon-h-sigh:before {\n content: '\\e900';\n}\n/* '' */\n.icon-plus-squared:before {\n content: '\\e821';\n}\n/* '' */\n.icon-angle-double-left:before {\n content: '\\e885';\n}\n/* '' */\n.icon-angle-double-right:before {\n content: '\\e886';\n}\n/* '' */\n.icon-angle-double-up:before {\n content: '\\e887';\n}\n/* '' */\n.icon-angle-double-down:before {\n content: '\\e888';\n}\n/* '' */\n.icon-angle-left:before {\n content: '\\e87d';\n}\n/* '' */\n.icon-angle-right:before {\n content: '\\e87e';\n}\n/* '' */\n.icon-angle-up:before {\n content: '\\e87f';\n}\n/* '' */\n.icon-angle-down:before {\n content: '\\e880';\n}\n/* '' */\n.icon-desktop:before {\n content: '\\e95a';\n}\n/* '' */\n.icon-laptop:before {\n content: '\\e95b';\n}\n/* '' */\n.icon-tablet:before {\n content: '\\e95c';\n}\n/* '' */\n.icon-mobile:before {\n content: '\\e8a9';\n}\n/* '' */\n.icon-circle-empty:before {\n content: '\\e8d2';\n}\n/* '' */\n.icon-quote-left:before {\n content: '\\e842';\n}\n/* '' */\n.icon-quote-right:before {\n content: '\\e843';\n}\n/* '' */\n.icon-spinner:before {\n content: '\\e8f8';\n}\n/* '' */\n.icon-circle:before {\n content: '\\e8d1';\n}\n/* '' */\n.icon-reply:before {\n content: '\\e845';\n}\n/* '' */\n.icon-folder-empty:before {\n content: '\\e85a';\n}\n/* '' */\n.icon-folder-open-empty:before {\n content: '\\e85b';\n}\n/* '' */\n.icon-plus-squared-small:before {\n content: '\\e822';\n}\n/* '' */\n.icon-minus-squared-small:before {\n content: '\\e827';\n}\n/* '' */\n.icon-smile:before {\n content: '\\e903';\n}\n/* '' */\n.icon-frown:before {\n content: '\\e904';\n}\n/* '' */\n.icon-meh:before {\n content: '\\e905';\n}\n/* '' */\n.icon-gamepad:before {\n content: '\\e849';\n}\n/* '' */\n.icon-keyboard:before {\n content: '\\e944';\n}\n/* '' */\n.icon-flag-empty:before {\n content: '\\e93d';\n}\n/* '' */\n.icon-flag-checkered:before {\n content: '\\e93e';\n}\n/* '' */\n.icon-terminal:before {\n content: '\\e907';\n}\n/* '' */\n.icon-reply-all:before {\n content: '\\e840';\n}\n/* '' */\n.icon-star-half-alt:before {\n content: '\\e80b';\n}\n/* '' */\n.icon-direction:before {\n content: '\\e854';\n}\n/* '' */\n.icon-crop:before {\n content: '\\e8c4';\n}\n/* '' */\n.icon-fork:before {\n content: '\\e8da';\n}\n/* '' */\n.icon-unlink:before {\n content: '\\e82a';\n}\n/* '' */\n.icon-help:before {\n content: '\\e828';\n}\n/* '' */\n.icon-info:before {\n content: '\\e93b';\n}\n/* '' */\n.icon-attention-alt:before {\n content: '\\e850';\n}\n/* '' */\n.icon-superscript:before {\n content: '\\e8c0';\n}\n/* '' */\n.icon-subscript:before {\n content: '\\e8c1';\n}\n/* '' */\n.icon-eraser:before {\n content: '\\e908';\n}\n/* '' */\n.icon-puzzle:before {\n content: '\\e909';\n}\n/* '' */\n.icon-mic:before {\n content: '\\e94a';\n}\n/* '' */\n.icon-mute:before {\n content: '\\e94b';\n}\n/* '' */\n.icon-shield:before {\n content: '\\e90a';\n}\n/* '' */\n.icon-calendar-empty:before {\n content: '\\e867';\n}\n/* '' */\n.icon-extinguisher:before {\n content: '\\e90b';\n}\n/* '' */\n.icon-rocket:before {\n content: '\\e8db';\n}\n/* '' */\n.icon-angle-circled-left:before {\n content: '\\e881';\n}\n/* '' */\n.icon-angle-circled-right:before {\n content: '\\e882';\n}\n/* '' */\n.icon-angle-circled-up:before {\n content: '\\e883';\n}\n/* '' */\n.icon-angle-circled-down:before {\n content: '\\e884';\n}\n/* '' */\n.icon-anchor:before {\n content: '\\e906';\n}\n/* '' */\n.icon-lock-open-alt:before {\n content: '\\e830';\n}\n/* '' */\n.icon-bullseye:before {\n content: '\\e90c';\n}\n/* '' */\n.icon-ellipsis:before {\n content: '\\e961';\n}\n/* '' */\n.icon-ellipsis-vert:before {\n content: '\\e962';\n}\n/* '' */\n.icon-rss-squared:before {\n content: '\\e85e';\n}\n/* '' */\n.icon-play-circled:before {\n content: '\\e89c';\n}\n/* '' */\n.icon-ticket:before {\n content: '\\e8d8';\n}\n/* '' */\n.icon-minus-squared:before {\n content: '\\e825';\n}\n/* '' */\n.icon-minus-squared-alt:before {\n content: '\\e826';\n}\n/* '' */\n.icon-level-up:before {\n content: '\\e898';\n}\n/* '' */\n.icon-level-down:before {\n content: '\\e955';\n}\n/* '' */\n.icon-ok-squared:before {\n content: '\\e81b';\n}\n/* '' */\n.icon-pencil-squared:before {\n content: '\\e848';\n}\n/* '' */\n.icon-link-ext-alt:before {\n content: '\\e82c';\n}\n/* '' */\n.icon-export-alt:before {\n content: '\\e846';\n}\n/* '' */\n.icon-compass:before {\n content: '\\e855';\n}\n/* '' */\n.icon-collapse:before {\n content: '\\e958';\n}\n/* '' */\n.icon-collapse-top:before {\n content: '\\e899';\n}\n/* '' */\n.icon-expand:before {\n content: '\\e89a';\n}\n/* '' */\n.icon-euro:before {\n content: '\\e8e4';\n}\n/* '' */\n.icon-pound:before {\n content: '\\e8e5';\n}\n/* '' */\n.icon-dollar:before {\n content: '\\e8e6';\n}\n/* '' */\n.icon-rupee:before {\n content: '\\e8e7';\n}\n/* '' */\n.icon-yen:before {\n content: '\\e8e8';\n}\n/* '' */\n.icon-renminbi:before {\n content: '\\e8e9';\n}\n/* '' */\n.icon-won:before {\n content: '\\e8ea';\n}\n/* '' */\n.icon-bitcoin:before {\n content: '\\e8eb';\n}\n/* '' */\n.icon-file:before {\n content: '\\e946';\n}\n/* '' */\n.icon-doc-text-inv:before {\n content: '\\e947';\n}\n/* '' */\n.icon-sort-name-up:before {\n content: '\\e8f1';\n}\n/* '' */\n.icon-sort-name-down:before {\n content: '\\e8f2';\n}\n/* '' */\n.icon-sort-alt-up:before {\n content: '\\e8ef';\n}\n/* '' */\n.icon-sort-alt-down:before {\n content: '\\e8f0';\n}\n/* '' */\n.icon-sort-number-up:before {\n content: '\\e8f3';\n}\n/* '' */\n.icon-sort-number-down:before {\n content: '\\e8f4';\n}\n/* '' */\n.icon-thumbs-up-alt:before {\n content: '\\e839';\n}\n/* '' */\n.icon-thumbs-down-alt:before {\n content: '\\e83a';\n}\n/* '' */\n.icon-down:before {\n content: '\\e951';\n}\n/* '' */\n.icon-up:before {\n content: '\\e954';\n}\n/* '' */\n.icon-right:before {\n content: '\\e953';\n}\n/* '' */\n.icon-left:before {\n content: '\\e952';\n}\n/* '' */\n.icon-female:before {\n content: '\\e80f';\n}\n/* '' */\n.icon-male:before {\n content: '\\e80e';\n}\n/* '' */\n.icon-sun:before {\n content: '\\e8ac';\n}\n/* '' */\n.icon-moon:before {\n content: '\\e8af';\n}\n/* '' */\n.icon-box:before {\n content: '\\e85c';\n}\n/* '' */\n.icon-bug:before {\n content: '\\e8dc';\n}\n/* '' */\n.icon-picture:before {\n content: '\\e812';\n}\n/* '' */\n.icon-globe:before {\n content: '\\e8ab';\n}\n/* '' */\n.icon-leaf:before {\n content: '\\e8b3';\n}\n/* '' */\n.icon-glass:before {\n content: '\\e801';\n}\n/* '' */\n.icon-gift:before {\n content: '\\e8d4';\n}\n/* '' */\n.icon-videocam:before {\n content: '\\e811';\n}\n/* '' */\n.icon-headphones:before {\n content: '\\e86b';\n}\n/* '' */\n.icon-video:before {\n content: '\\e810';\n}\n/* '' */\n.icon-target:before {\n content: '\\e8a7';\n}\n/* '' */\n.icon-award:before {\n content: '\\e959';\n}\n/* '' */\n.icon-thumbs-up:before {\n content: '\\e93f';\n}\n/* '' */\n.icon-thumbs-down:before {\n content: '\\e940';\n}\n/* '' */\n.icon-user:before {\n content: '\\e80c';\n}\n/* '' */\n.icon-users:before {\n content: '\\e80d';\n}\n/* '' */\n.icon-credit-card:before {\n content: '\\e965';\n}\n/* '' */\n.icon-briefcase:before {\n content: '\\e8c7';\n}\n/* '' */\n.icon-floppy:before {\n content: '\\e966';\n}\n/* '' */\n.icon-folder-open:before {\n content: '\\e81e';\n}\n/* '' */\n.icon-doc:before {\n content: '\\e857';\n}\n/* '' */\n.icon-calendar:before {\n content: '\\e866';\n}\n/* '' */\n.icon-chart-bar:before {\n content: '\\e90f';\n}\n/* '' */\n.icon-pin:before {\n content: '\\e831';\n}\n/* '' */\n.icon-attach:before {\n content: '\\e82d';\n}\n/* '' */\n.icon-book:before {\n content: '\\e8cc';\n}\n/* '' */\n.icon-phone:before {\n content: '\\e85f';\n}\n/* '' */\n.icon-megaphone:before {\n content: '\\e967';\n}\n/* '' */\n.icon-upload:before {\n content: '\\e83c';\n}\n/* '' */\n.icon-download:before {\n content: '\\e83b';\n}\n/* '' */\n.icon-signal:before {\n content: '\\e8a8';\n}\n/* '' */\n.icon-camera:before {\n content: '\\e813';\n}\n/* '' */\n.icon-shuffle:before {\n content: '\\e956';\n}\n/* '' */\n.icon-volume-off:before {\n content: '\\e94c';\n}\n/* '' */\n.icon-volume-down:before {\n content: '\\e869';\n}\n/* '' */\n.icon-volume-up:before {\n content: '\\e86a';\n}\n/* '' */\n.icon-search:before {\n content: '\\e803';\n}\n/* '' */\n.icon-key:before {\n content: '\\e8d9';\n}\n/* '' */\n.icon-lock:before {\n content: '\\e82e';\n}\n/* '' */\n.icon-lock-open:before {\n content: '\\e82f';\n}\n/* '' */\n.icon-bell:before {\n content: '\\e84e';\n}\n/* '' */\n.icon-bookmark:before {\n content: '\\e836';\n}\n/* '' */\n.icon-fire:before {\n content: '\\e8d5';\n}\n/* '' */\n.icon-wrench:before {\n content: '\\e864';\n}\n/* '' */\n.icon-hammer:before {\n content: '\\e8f5';\n}\n/* '' */\n.icon-clock:before {\n content: '\\e86c';\n}\n/* '' */\n.icon-truck:before {\n content: '\\e8e2';\n}\n/* '' */\n.icon-block:before {\n content: '\\e86e';\n}\n/* '' */\ndiv.jGrowl {\n z-index: 1040;\n color: #fff;\n}\n/** Normal Style Positions **/\ndiv.jGrowl {\n position: absolute;\n}\nbody > div.jGrowl {\n position: fixed;\n}\ndiv.jGrowl.top-left {\n left: 0px;\n top: 0px;\n}\ndiv.jGrowl.top-right {\n right: 0px;\n top: 0px;\n}\ndiv.jGrowl.bottom-left {\n left: 0px;\n bottom: 0px;\n}\ndiv.jGrowl.bottom-right {\n right: 0px;\n bottom: 0px;\n}\ndiv.jGrowl.center {\n top: 0px;\n width: 50%;\n left: 25%;\n}\n/** Cross Browser Styling **/\ndiv.center div.jGrowl-notification,\ndiv.center div.jGrowl-closer {\n margin-left: auto;\n margin-right: auto;\n}\ndiv.jGrowl div.jGrowl-notification,\ndiv.jGrowl div.jGrowl-closer {\n background-color: #777;\n zoom: 1;\n width: 260px;\n padding: 15px 20px;\n margin-top: 5px;\n margin-bottom: 5px;\n text-align: left;\n display: none;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n border-radius: 5px;\n}\ndiv.jGrowl div.jGrowl-notification {\n min-height: 80px;\n}\ndiv.jGrowl div.jGrowl-notification,\ndiv.jGrowl div.jGrowl-closer {\n margin: 20px;\n}\ndiv.jGrowl div.jGrowl-notification div.jGrowl-header {\n font-weight: bold;\n font-size: .85em;\n}\ndiv.jGrowl div.jGrowl-notification div.jGrowl-close {\n z-index: 99;\n float: right;\n font-weight: bold;\n font-size: 1em;\n cursor: pointer;\n}\ndiv.jGrowl div.jGrowl-closer {\n padding-top: 4px;\n padding-bottom: 4px;\n cursor: pointer;\n font-size: .9em;\n font-weight: bold;\n text-align: center;\n}\n/** Hide jGrowl when printing **/\n@media print {\n div.jGrowl {\n display: none;\n }\n}\n/* Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n.pln {\n color: #000000;\n}\n/* plain text */\n@media screen {\n .str {\n color: #008800;\n }\n /* string content */\n .kwd {\n color: #000088;\n }\n /* a keyword */\n .com {\n color: #880000;\n }\n /* a comment */\n .typ {\n color: #660066;\n }\n /* a type name */\n .lit {\n color: #006666;\n }\n /* a literal value */\n /* punctuation, lisp open bracket, lisp close bracket */\n .pun,\n .opn,\n .clo {\n color: #666600;\n }\n .tag {\n color: #000088;\n }\n /* a markup tag name */\n .atn {\n color: #660066;\n }\n /* a markup attribute name */\n .atv {\n color: #008800;\n }\n /* a markup attribute value */\n .dec,\n .var {\n color: #660066;\n }\n /* a declaration; a variable name */\n .fun {\n color: #ff0000;\n }\n /* a function name */\n}\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n .str {\n color: #006600;\n }\n .kwd {\n color: #006;\n font-weight: bold;\n }\n .com {\n color: #600;\n font-style: italic;\n }\n .typ {\n color: #404;\n font-weight: bold;\n }\n .lit {\n color: #004444;\n }\n .pun,\n .opn,\n .clo {\n color: #444400;\n }\n .tag {\n color: #006;\n font-weight: bold;\n }\n .atn {\n color: #440044;\n }\n .atv {\n color: #006600;\n }\n}\n/* Put a border around prettyprinted code snippets. */\n/* pre.prettyprint { padding: 2px; border: 1px solid #888 } */\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums {\n margin-top: 0;\n margin-bottom: 0;\n}\n/* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L5,\nli.L6,\nli.L7,\nli.L8 {\n list-style-type: none;\n}\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 {\n background: #eeeeee;\n}\n/*\n\nOriginal style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>\n\npre code {\n display: block; padding: 0.5em;\n background: #F0F0F0;\n}\n*/\npre code,\npre .subst,\npre .tag .title,\npre .lisp .title,\npre .clojure .built_in,\npre .nginx .title {\n color: black;\n}\npre .string,\npre .title,\npre .constant,\npre .parent,\npre .tag .value,\npre .rules .value,\npre .rules .value .number,\npre .preprocessor,\npre .haml .symbol,\npre .ruby .symbol,\npre .ruby .symbol .string,\npre .aggregate,\npre .template_tag,\npre .django .variable,\npre .smalltalk .class,\npre .addition,\npre .flow,\npre .stream,\npre .bash .variable,\npre .apache .tag,\npre .apache .cbracket,\npre .tex .command,\npre .tex .special,\npre .erlang_repl .function_or_atom,\npre .asciidoc .header,\npre .markdown .header,\npre .coffeescript .attribute {\n color: #800;\n}\npre .comment,\npre .annotation,\npre .template_comment,\npre .diff .header,\npre .chunk,\npre .asciidoc .blockquote,\npre .markdown .blockquote {\n color: #888;\n}\npre .number,\npre .date,\npre .regexp,\npre .literal,\npre .hexcolor,\npre .smalltalk .symbol,\npre .smalltalk .char,\npre .go .constant,\npre .change,\npre .lasso .variable,\npre .asciidoc .bullet,\npre .markdown .bullet,\npre .asciidoc .link_url,\npre .markdown .link_url {\n color: #080;\n}\npre .label,\npre .javadoc,\npre .ruby .string,\npre .decorator,\npre .filter .argument,\npre .localvars,\npre .array,\npre .attr_selector,\npre .important,\npre .pseudo,\npre .pi,\npre .haml .bullet,\npre .doctype,\npre .deletion,\npre .envvar,\npre .shebang,\npre .apache .sqbracket,\npre .nginx .built_in,\npre .tex .formula,\npre .erlang_repl .reserved,\npre .prompt,\npre .asciidoc .link_label,\npre .markdown .link_label,\npre .vhdl .attribute,\npre .clojure .attribute,\npre .asciidoc .attribute,\npre .lasso .attribute,\npre .coffeescript .property {\n color: #8888ff;\n}\npre .keyword,\npre .id,\npre .title,\npre .built_in,\npre .aggregate,\npre .css .tag,\npre .javadoctag,\npre .phpdoc,\npre .yardoctag,\npre .smalltalk .class,\npre .winutils,\npre .bash .variable,\npre .apache .tag,\npre .go .typename,\npre .tex .command,\npre .asciidoc .strong,\npre .markdown .strong,\npre .request,\npre .status {\n font-weight: bold;\n}\npre .asciidoc .emphasis,\npre .markdown .emphasis {\n font-style: italic;\n}\npre .nginx .built_in {\n font-weight: normal;\n}\npre .coffeescript .javascript,\npre .javascript .xml,\npre .lasso .markup,\npre .tex .formula,\npre .xml .javascript,\npre .xml .vbscript,\npre .xml .css,\npre .xml .cdata {\n opacity: 0.5;\n}\n/* Bootstrap */\nbody {\n tab-size: 4;\n}\n#preview-contents {\n padding: 15px;\n margin-bottom: 50px;\n}\n.ui-layout-east #preview-contents {\n padding-left: 5px;\n}\n.working {\n cursor: progress;\n}\n.btn,\n.dropdown-menu {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n}\n.list-group .nav {\n border-left: 10px solid rgba(0, 0, 0, 0.05);\n margin-left: 10px;\n}\n.list-group-item {\n padding: 10px 15px;\n}\n.list-group .list-group-item {\n border-radius: 0;\n}\n.list-group-item.active:hover {\n background-color: #888888;\n}\n.move-to-front {\n z-index: 1050 !important;\n}\n/*******************\n * Buttons\n *******************/\n.btn {\n padding: 8px 11px;\n}\n.btn-default:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.btn-primary:hover {\n color: #ffffff;\n}\n.btn-success:hover {\n color: #555555;\n background-color: #f5f5f5 !important;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 11px;\n padding-left: 11px;\n}\n/********************\n * Input\n ********************/\n.form-inline .col-lg-1 {\n width: 8.333333333333332%;\n}\n.form-inline .col-lg-2 {\n width: 16.666666666666664%;\n}\n.form-inline .col-lg-3 {\n width: 25%;\n}\n.form-inline .col-lg-4 {\n width: 33.33333333333333%;\n}\n.form-inline .col-lg-5 {\n width: 41.66666666666667%;\n}\n.form-inline .col-lg-6 {\n width: 50%;\n}\n.form-inline .col-lg-7 {\n width: 58.333333333333336%;\n}\n.form-inline .col-lg-8 {\n width: 66.66666666666666%;\n}\n.form-inline .col-lg-9 {\n width: 75%;\n}\n.form-inline .col-lg-10 {\n width: 83.33333333333334%;\n}\n.form-inline .col-lg-11 {\n width: 91.66666666666666%;\n}\n.form-inline .col-lg-12 {\n width: 100%;\n}\n.form-inline * {\n float: none;\n}\n.form-control:focus {\n border-color: #dddddd;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(128, 128, 128, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(128, 128, 128, 0.6);\n}\n.help-block {\n font-size: 12px;\n}\n.modal textarea.error,\n.modal input.error {\n border-color: #ff8661;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(255, 134, 97, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(255, 134, 97, 0.6);\n}\n.input-group-addon {\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.input-group-btn .btn i {\n font-size: 120%;\n}\n.input-group-btn:first-child .btn {\n margin-right: 6px;\n}\n.input-group-btn:last-child .btn {\n margin-left: 6px;\n}\n/*******************\n * Modal\n *******************/\n.modal-backdrop {\n background-color: #999;\n}\n.modal-content {\n border-width: 5px;\n}\n/*******************\n * Navbar\n *******************/\n.navbar {\n position: static;\n padding: 0;\n}\n.navbar .left-space {\n width: 30px;\n height: 38px;\n}\n.navbar .right-space {\n width: 20px;\n height: 38px;\n}\n.navbar .nav {\n float: left;\n margin: 6px 10px 5px;\n}\n.navbar .nav > li {\n display: inline-block;\n}\n.navbar .nav.pull-right {\n float: right;\n}\n.navbar .nav.pull-right > li > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.navbar .nav.pull-right > li > .dropdown-menu .dropdown-menu {\n right: 100%;\n left: auto;\n margin-right: -1px;\n margin-left: 0;\n}\n.navbar .btn-group > .btn.disabled *,\n.navbar .btn-group > .btn.blocked *,\n.navbar .btn-group > .btn[disabled] * {\n color: rgba(85, 85, 85, 0.3);\n}\n.navbar .file-title-navbar {\n padding: 4px 15px;\n font-size: 20px;\n font-weight: 200;\n color: #666666;\n max-width: 400px;\n overflow: hidden;\n}\n.navbar .file-title-navbar i {\n margin-right: 6px;\n}\n.navbar .input-file-title {\n margin-right: 10px;\n}\n.navbar .working-indicator {\n background-image: none !important;\n width: 43px;\n height: 11px;\n background-position: 0 0;\n margin-top: 15px;\n}\n.navbar .working-indicator.show {\n background-image: url(\"../img/ajax-loader.gif\") !important;\n}\n/*********************\n * Menu/Document panels\n *********************/\n.menu-panel,\n.document-panel {\n display: block;\n position: absolute;\n height: 100%;\n z-index: 10;\n overflow: initial;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.menu-panel .collapse-button i,\n.document-panel .collapse-button i {\n color: #777;\n font-size: 19px;\n}\n.menu-panel .panel-content,\n.document-panel .panel-content {\n overflow: auto;\n padding-bottom: 30px;\n height: 100%;\n}\n.menu-panel .panel-content a > i,\n.document-panel .panel-content a > i {\n margin-right: 3px;\n color: inherit;\n}\n.menu-panel {\n background-color: #f5f5f5;\n width: 280px !important;\n margin-left: -312px;\n -webkit-transition: margin-left 0.35s ease;\n -moz-transition: margin-left 0.35s ease;\n -o-transition: margin-left 0.35s ease;\n transition: margin-left 0.35s ease;\n}\n.menu-panel .sub-menu {\n background-color: #ffffff;\n}\n.menu-panel.in {\n margin-left: 0;\n}\n.menu-panel.in .collapse-button {\n background-color: #f5f5f5;\n}\n.menu-panel .collapse-button {\n right: -80px;\n position: absolute;\n margin-top: 6px;\n padding: 2px 20px;\n z-index: -1;\n}\n.menu-panel .panel-content {\n padding-top: 6px;\n border-right: 5px solid #e8e8e8;\n}\n.document-panel {\n right: 0;\n width: 350px !important;\n margin-right: -382px;\n -webkit-transition: margin-right 0.35s ease;\n -moz-transition: margin-right 0.35s ease;\n -o-transition: margin-right 0.35s ease;\n transition: margin-right 0.35s ease;\n}\n.document-panel.in {\n margin-right: 0;\n}\n.document-panel.in .collapse-button {\n background-color: #f5f5f5;\n}\n.document-panel .collapse-button {\n left: -80px;\n position: absolute;\n margin-top: 6px;\n padding: 7px 18px;\n z-index: -1;\n}\n.document-panel .collapse-button i.icon-folder-open {\n font-size: 22px;\n}\n.document-panel .panel-content {\n background-color: #ffffff;\n padding-top: 80px;\n border-left: 5px solid #e8e8e8;\n}\n.document-panel .panel-content .icon-layers {\n font-size: 135%;\n}\n.document-panel .search-bar {\n position: absolute;\n background-color: #f5f5f5;\n margin: -10px 25px 0;\n padding: 20px 5px 10px 15px;\n z-index: 3;\n border: 1px solid #e8e8e8;\n border-top: 0;\n border-radius: 6px;\n}\n.document-panel .search-bar .form-control {\n padding: 8px 30px 8px 12px;\n}\n.document-panel .search-bar .close {\n position: absolute;\n line-height: 10px;\n margin-left: -30px;\n margin-top: 2px;\n padding: 0 8px 4px;\n font-weight: normal;\n height: 34px;\n}\n.document-panel .list-group-item {\n margin: 0;\n}\n.document-panel .folder {\n font-weight: bold;\n color: #555555;\n font-size: 15px;\n border-bottom-color: #eeeeee;\n}\n.document-panel .list-group {\n margin: 0;\n}\n.document-panel .list-group .nav {\n border: 0;\n margin: 0 20px 20px;\n}\n.dropdown-file-selector {\n top: 6px;\n right: 30px;\n left: auto;\n margin: 0;\n min-width: 280px;\n max-width: 400px;\n overflow-x: hidden;\n max-height: 400px;\n overflow-y: auto;\n}\n/**************************\n * Document manager\n **************************/\n.modal-document-manager .nav-pills {\n margin-bottom: 15px;\n}\n.modal-document-manager .list-group .nav {\n margin-left: 40px;\n margin-bottom: 30px;\n}\n.modal-document-manager .list-group-item {\n padding: 3px;\n margin: 0;\n}\n.modal-document-manager .list-group-item i {\n margin-right: 3px;\n}\n.modal-document-manager .list-group-item .btn {\n float: right;\n}\n.modal-document-manager .list-group-item .btn i {\n margin: 0;\n font-size: 105%;\n}\n.modal-document-manager .list-group-item .btn i.icon-pencil {\n font-size: 115%;\n}\n.modal-document-manager .file-list .list-group-item {\n padding: 0 3px;\n}\n.modal-document-manager .folder {\n font-weight: bold;\n color: #555555;\n font-size: 15px;\n border-bottom-color: #eeeeee;\n}\n.modal-document-manager .checkbox {\n float: right;\n margin: 0;\n padding: 0;\n cursor: pointer;\n}\n.modal-document-manager .checkbox input {\n cursor: pointer;\n margin: 0 16px;\n height: 38px;\n}\n.modal-document-manager .input-rename {\n width: 220px;\n}\n.modal-document-manager .name,\n.modal-document-manager .file-count {\n padding: 9px 20px 9px 15px;\n}\n/********************\n * Extensions buttons\n ********************/\n#extension-buttons .btn-group {\n margin: 0;\n}\n#extension-buttons .link-container {\n min-width: 280px;\n white-space: normal;\n}\n#extension-buttons .link-container .link-list {\n margin-top: 20px;\n margin-bottom: 20px;\n}\n#extension-buttons .link-container .link-list > * {\n margin-bottom: 10px;\n}\n#extension-buttons > .btn-group > .btn,\n.extension-preview-buttons > .btn-group > .btn {\n border-radius: 0;\n}\n#extension-buttons > .btn-group:first-child > .btn,\n.extension-preview-buttons > .btn-group:first-child > .btn {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n#extension-buttons > .btn-group:last-child > .btn,\n.extension-preview-buttons > .btn-group:last-child > .btn {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n/********************\n * Preview extensions buttons\n ********************/\n.extension-preview-buttons {\n position: absolute;\n right: 30px;\n z-index: 1;\n top: 6px;\n}\n.ui-layout-resizer-south-closed > .extension-preview-buttons {\n display: none !important;\n}\n.extension-preview-buttons .dropdown-menu {\n border: 0;\n margin-top: 1px;\n}\n.extension-preview-buttons .btn-group {\n margin: 0 0 0 1px;\n}\n.extension-preview-buttons .btn-group .btn {\n position: initial;\n}\n.extension-preview-buttons .btn-group.open .btn {\n background-color: #e8e8e8;\n}\n.extension-preview-buttons .btn-group.open .btn i {\n color: #555555;\n}\n.extension-preview-buttons .dropdown-menu {\n background-color: #e8e8e8;\n padding-bottom: 20px;\n}\n.extension-preview-buttons .markdown-syntax,\n.extension-preview-buttons .table-of-contents {\n overflow-y: auto;\n overflow-x: hidden;\n padding-right: 20px;\n margin-right: -20px;\n width: 320px;\n}\n.extension-preview-buttons .markdown-syntax {\n white-space: normal;\n max-height: 350px;\n}\n.extension-preview-buttons .table-of-contents {\n margin-left: -10px;\n max-height: 400px;\n}\n.extension-preview-buttons .table-of-contents ul {\n margin-left: 10px;\n padding-left: 10px;\n}\n/**************************\n * Settings dialog\n **************************/\n.modal-settings .modal-header {\n padding-bottom: 0;\n}\n.modal-settings textarea {\n max-width: 100%;\n min-height: 100px;\n}\n.modal-settings .panel {\n border: 0;\n border-radius: inherit;\n background: #ffffff;\n}\n.modal-settings .accordion-heading {\n padding: 12px 15px;\n}\n.modal-settings .accordion-heading .accordion-toggle {\n display: inline;\n padding: 0;\n font-weight: bold;\n cursor: pointer;\n}\n.modal-settings .accordion-heading .accordion-toggle:hover {\n text-decoration: underline;\n}\n.modal-settings .accordion-heading .checkbox {\n margin-top: 0;\n margin-bottom: 0;\n}\n.modal-settings .accordion-inner {\n border: 0;\n padding: 10px 40px 20px;\n}\n.modal-settings .accordion-inner .form-horizontal .control-label {\n text-align: left;\n}\n.modal-settings .accordion-inner .form-horizontal .form-inline .label-text {\n margin-left: 15px;\n}\n.modal-settings .tab-pane-button-container {\n width: 220px;\n margin: 10px auto 20px;\n}\n.modal-settings .tab-pane-button-container .btn {\n text-align: initial;\n padding-left: 15px;\n}\n.modal-settings .nav-tabs {\n margin: 15px 0 0;\n}\n.modal-settings .nav-tabs > li > a:hover,\n.modal-settings .nav-tabs > li > a:focus {\n background-color: #f2f2f2;\n}\n.modal-settings .nav-tabs > li.active > a,\n.modal-settings .nav-tabs > li.active > a:hover,\n.modal-settings .nav-tabs > li.active > a:focus {\n color: #ffffff;\n background-color: #888888;\n border-color: #888888;\n}\n/********************************\n * Publish/Sync dialogs\n ********************************/\n.modal-manage-sync .sync-list {\n margin-bottom: 20px;\n}\n.modal-manage-sync .sync-list .input-group {\n margin-bottom: 10px;\n}\n.modal-manage-publish .publish-list {\n margin-bottom: 20px;\n}\n.modal-manage-publish .publish-list .input-group {\n margin-bottom: 10px;\n}\n/*********************************\n * UI Layout\n *********************************/\n.ui-layout-resizer {\n overflow: visible !important;\n font-size: 14px !important;\n}\n.ui-layout-resizer .btn {\n background-color: rgba(221, 221, 221, 0.5);\n float: none;\n}\n.ui-layout-resizer .btn i {\n color: rgba(85, 85, 85, 0.3);\n}\n.ui-layout-resizer .btn:hover,\n.ui-layout-resizer .btn:focus,\n.ui-layout-resizer .btn:active,\n.ui-layout-resizer .btn.active {\n background-color: rgba(221, 221, 221, 0.5);\n}\n.ui-layout-resizer .btn:hover i,\n.ui-layout-resizer .btn:focus i,\n.ui-layout-resizer .btn:active i,\n.ui-layout-resizer .btn.active i {\n color: #555555;\n}\n.ui-layout-resizer .ui-layout-toggler {\n font-size: 21px !important;\n background-color: transparent;\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-east {\n line-height: 55px;\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-east.ui-layout-toggler-east-open i:before {\n content: '\\e950';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-east.ui-layout-toggler-east-closed i:before {\n content: '\\e94f';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-south.ui-layout-toggler-south-open i:before {\n content: '\\e94d';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-south.ui-layout-toggler-south-closed i:before {\n content: '\\e94e';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-north {\n left: 0 !important;\n line-height: 0;\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-north i {\n margin-top: -5px;\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-north.ui-layout-toggler-north-open i:before {\n content: '\\e94e';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-north.ui-layout-toggler-north-closed i:before {\n content: '\\e94d';\n}\n.ui-layout-resizer.ui-layout-resizer-east .ui-layout-toggler-north {\n width: 35px !important;\n height: 60px !important;\n}\n.ui-layout-resizer.ui-layout-resizer-south .ui-layout-toggler-north {\n height: 35px !important;\n}\n/*********************\n * Markdown\n *********************/\ncode {\n color: #333333;\n background-color: rgba(0, 0, 0, 0.05);\n}\na code {\n color: inherit;\n}\nh1 {\n margin: 30px 0 30px;\n}\n.toc ul {\n list-style-type: none;\n}\np,\npre,\nblockquote {\n margin: 0 0 20px;\n}\nhr {\n border-top: 1px solid #ddd;\n margin: 30px 0;\n}\n#wmd-input {\n -webkit-box-shadow: none !important;\n -moz-box-shadow: none !important;\n box-shadow: none !important;\n}\n#wmd-input,\n#md-section-helper {\n resize: none;\n border: none !important;\n}\n.preview-container {\n overflow: auto;\n}\n.wmd-button-row {\n padding: 0;\n}\n.wmd-spacer {\n display: none;\n}\n.wmd-spacer + .wmd-button {\n margin-left: 20px;\n}\n.wmd-prompt-background {\n display: none;\n}\ndiv.dropdown-menu {\n padding: 5px 20px;\n}\ndiv.dropdown-menu p,\ndiv.dropdown-menu blockquote {\n margin: 10px 0;\n}\ndiv.dropdown-menu .stat {\n margin-bottom: 10px;\n}\ndiv.dropdown-menu i {\n margin-right: 0;\n}\ndiv.dropdown-menu textarea {\n width: 250px;\n height: 150px;\n resize: none;\n}\n.footnote {\n vertical-align: top;\n position: relative;\n top: -0.5em;\n font-size: 0.8em;\n}\n/***********************\n * Icons\n ***********************/\n[class^=\"icon-\"],\n[class*=\" icon-\"] {\n display: inline-block;\n line-height: 14px;\n vertical-align: middle;\n background-repeat: no-repeat;\n}\n[class^=\"icon-\"].icon-white,\n[class*=\" icon-\"].icon-white {\n color: #fff;\n}\n.icon-code {\n font-size: 80%;\n margin-left: -1px;\n margin-right: 5px;\n}\n.icon-folder-open {\n font-size: 80%;\n margin-left: -1px;\n margin-right: 5px;\n}\n.icon-chart-bar {\n font-size: 90%;\n margin-right: 2px;\n}\n.icon-trash {\n font-size: 95%;\n}\n[class^=\"icon-provider-\"],\n[class*=\" icon-provider-\"] {\n background-image: url(\"libs/bootstrap/less/../../../../img/icons.png\");\n width: 18px;\n height: 16px;\n}\n@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {\n [class^=\"icon-provider-\"],\n [class*=\" icon-provider-\"] {\n background-image: url(\"libs/bootstrap/less/../../../../img/icons2x.png\");\n background-size: 256px 16px;\n }\n}\n.icon-provider-stackedit {\n background-position: 0 0;\n}\n.icon-provider-gdrive {\n background-position: -18px 0;\n}\n.icon-provider-gdrive.realtime {\n background-position: -162px 0;\n}\n.icon-provider-dropbox {\n background-position: -37px 0;\n}\n.icon-provider-github,\n.icon-provider-gist {\n background-position: -54px 0;\n}\n.icon-provider-blogger {\n background-position: -72px 0;\n}\n.icon-provider-tumblr {\n background-position: -90px 0;\n}\n.icon-provider-wordpress {\n background-position: -108px 0;\n}\n.icon-provider-ssh {\n background-position: -126px 0;\n}\n.icon-provider-gplus {\n background-position: -144px 0;\n}\n/* Google picker */\n.picker-dialog {\n z-index: 1050 !important;\n}\n.action-import-image-gplus {\n float: left;\n}\n/*\n.nav>li>a:hover,.nav>li>a:focus {\n background-color: @bg-light;\n}\n*/\n.tooltip-inner {\n text-align: left;\n}\n.tooltip li {\n line-height: 1.4;\n}\ncode,\npre {\n font-family: Menlo, Consolas, \"Courier New\", monospace;\n}\n/* Definition list */\ndt,\ndd {\n margin-top: 5px;\n margin-bottom: 5px;\n}\ndd {\n margin-left: 40px;\n}\n/* Table style */\ntable {\n margin-bottom: 20px;\n}\ntable th,\ntable td {\n padding: 8px;\n line-height: 20px;\n text-align: left;\n vertical-align: top;\n border-top: 1px solid #dddddd;\n}\ntable th {\n font-weight: bold;\n}\ntable thead th {\n vertical-align: bottom;\n}\ntable caption + thead tr:first-child th,\ntable caption + thead tr:first-child td,\ntable colgroup + thead tr:first-child th,\ntable colgroup + thead tr:first-child td,\ntable thead:first-child tr:first-child th,\ntable thead:first-child tr:first-child td {\n border-top: 0;\n}\ntable tbody + tbody {\n border-top: 2px solid #dddddd;\n}\nblockquote {\n border-left: 10px solid rgba(0, 0, 0, 0.05);\n}\nblockquote p {\n margin-bottom: 20px;\n font-size: 14px;\n font-weight: 300;\n line-height: 20px;\n}\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nul,\nol {\n margin-bottom: 20px;\n}\ninput[type=\"file\"] {\n line-height: inherit;\n height: inherit;\n border: none !important;\n}\n.drop-zone {\n border: 2px dashed #bbb;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n padding: 40px;\n text-align: center;\n font-size: 24px;\n color: #bbb;\n}\n.modal-import-harddrive-html textarea {\n width: 530px;\n max-width: 530px;\n height: 120px;\n}\n#md-section-helper {\n position: absolute;\n top: -100px;\n height: 1px;\n padding: 0 6px;\n overflow-y: scroll;\n z-index: -1;\n}\n.lock-ui {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n}\n.gecko #md-section-helper {\n /* Firefox doesn't show the scrollbar if height is less than 40px */\n\n height: 40px;\n}\n.opera #md-section-helper {\n /* Opera needs to have the textarea in the viewport to evaluate size correctly */\n\n top: 0;\n}\n/* Viewer */\n.viewer #navbar {\n position: fixed;\n}\n.viewer .navbar-inner {\n background-color: rgba(215, 215, 215, 0.75) !important;\n}\n.viewer #preview-contents {\n max-width: 1024px;\n margin: 50px auto;\n}\n.viewer .btn-group {\n margin-right: 0;\n margin-left: 0;\n}\n/*!\n * Bootstrap v3.0.0\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world by @mdo and @fat.\n */\n/*! normalize.css v2.1.0 | MIT License | git.io/normalize */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nvideo {\n display: inline-block;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden] {\n display: none;\n}\nhtml {\n font-family: sans-serif;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\na:focus {\n outline: thin dotted;\n}\na:active,\na:hover {\n outline: 0;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nhr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, serif;\n font-size: 1em;\n}\npre {\n white-space: pre-wrap;\n}\nq {\n quotes: \"\\201C\" \"\\201D\" \"\\2018\" \"\\2019\";\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 0;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\nbutton,\ninput,\nselect,\ntextarea {\n font-family: inherit;\n font-size: 100%;\n margin: 0;\n}\nbutton,\ninput {\n line-height: normal;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n vertical-align: top;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n@media print {\n * {\n text-shadow: none !important;\n color: #000 !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n .ir a:after,\n a[href^=\"javascript:\"]:after,\n a[href^=\"#\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n @page {\n margin: 2cm .5cm;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n*,\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 62.5%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.428571429;\n color: #ffffff;\n background-color: #222222;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\nbutton,\ninput,\nselect[multiple],\ntextarea {\n background-image: none;\n}\na {\n color: #ff7733;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #e54c00;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted #333;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #222222;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0 0 0 0);\n border: 0;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16.099999999999998px;\n font-weight: 200;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall {\n font-size: 85%;\n}\ncite {\n font-style: normal;\n}\n.text-muted {\n color: #999999;\n}\n.text-primary {\n color: #428bca;\n}\n.text-warning {\n color: #c09853;\n}\n.text-danger {\n color: #b94a48;\n}\n.text-success {\n color: #468847;\n}\n.text-info {\n color: #3a87ad;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-weight: 500;\n line-height: 1.1;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small {\n font-weight: normal;\n line-height: 1;\n color: #999999;\n}\nh1,\nh2,\nh3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh4,\nh5,\nh6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh1,\n.h1 {\n font-size: 38px;\n}\nh2,\n.h2 {\n font-size: 32px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\nh1 small,\n.h1 small {\n font-size: 24px;\n}\nh2 small,\n.h2 small {\n font-size: 18px;\n}\nh3 small,\n.h3 small,\nh4 small,\n.h4 small {\n font-size: 14px;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #222222;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.428571429;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n .dl-horizontal dd:before,\n .dl-horizontal dd:after {\n content: \" \";\n /* 1 */\n \n display: table;\n /* 2 */\n \n }\n .dl-horizontal dd:after {\n clear: both;\n }\n .dl-horizontal dd:before,\n .dl-horizontal dd:after {\n content: \" \";\n /* 1 */\n \n display: table;\n /* 2 */\n \n }\n .dl-horizontal dd:after {\n clear: both;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #999999;\n}\nabbr.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n border-left: 5px solid #222222;\n}\nblockquote p {\n font-size: 17.5px;\n font-weight: 300;\n line-height: 1.25;\n}\nblockquote p:last-child {\n margin-bottom: 0;\n}\nblockquote small {\n display: block;\n line-height: 1.428571429;\n color: #999999;\n}\nblockquote small:before {\n content: '\\2014 \\00A0';\n}\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #222222;\n border-left: 0;\n}\nblockquote.pull-right p,\nblockquote.pull-right small {\n text-align: right;\n}\nblockquote.pull-right small:before {\n content: '';\n}\nblockquote.pull-right small:after {\n content: '\\00A0 \\2014';\n}\nq:before,\nq:after,\nblockquote:before,\nblockquote:after {\n content: \"\";\n}\naddress {\n display: block;\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.428571429;\n}\ncode,\npre {\n font-family: Monaco, Menlo, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n white-space: nowrap;\n border-radius: 4px;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.428571429;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #dddddd;\n border-radius: 4px;\n}\npre.prettyprint {\n margin-bottom: 20px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.container:before,\n.container:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.container:after {\n clear: both;\n}\n.container:before,\n.container:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.container:after {\n clear: both;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.row:before,\n.row:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.row:after {\n clear: both;\n}\n.row:before,\n.row:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.row:after {\n clear: both;\n}\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11,\n.col-xs-12,\n.col-sm-1,\n.col-sm-2,\n.col-sm-3,\n.col-sm-4,\n.col-sm-5,\n.col-sm-6,\n.col-sm-7,\n.col-sm-8,\n.col-sm-9,\n.col-sm-10,\n.col-sm-11,\n.col-sm-12,\n.col-md-1,\n.col-md-2,\n.col-md-3,\n.col-md-4,\n.col-md-5,\n.col-md-6,\n.col-md-7,\n.col-md-8,\n.col-md-9,\n.col-md-10,\n.col-md-11,\n.col-md-12,\n.col-lg-1,\n.col-lg-2,\n.col-lg-3,\n.col-lg-4,\n.col-lg-5,\n.col-lg-6,\n.col-lg-7,\n.col-lg-8,\n.col-lg-9,\n.col-lg-10,\n.col-lg-11,\n.col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11 {\n float: left;\n}\n.col-xs-1 {\n width: 8.333333333333332%;\n}\n.col-xs-2 {\n width: 16.666666666666664%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-4 {\n width: 33.33333333333333%;\n}\n.col-xs-5 {\n width: 41.66666666666667%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-7 {\n width: 58.333333333333336%;\n}\n.col-xs-8 {\n width: 66.66666666666666%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-10 {\n width: 83.33333333333334%;\n}\n.col-xs-11 {\n width: 91.66666666666666%;\n}\n.col-xs-12 {\n width: 100%;\n}\n@media (min-width: 768px) {\n .container {\n max-width: 750px;\n }\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11 {\n float: left;\n }\n .col-sm-1 {\n width: 8.333333333333332%;\n }\n .col-sm-2 {\n width: 16.666666666666664%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-4 {\n width: 33.33333333333333%;\n }\n .col-sm-5 {\n width: 41.66666666666667%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-7 {\n width: 58.333333333333336%;\n }\n .col-sm-8 {\n width: 66.66666666666666%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-10 {\n width: 83.33333333333334%;\n }\n .col-sm-11 {\n width: 91.66666666666666%;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-push-1 {\n left: 8.333333333333332%;\n }\n .col-sm-push-2 {\n left: 16.666666666666664%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-4 {\n left: 33.33333333333333%;\n }\n .col-sm-push-5 {\n left: 41.66666666666667%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-7 {\n left: 58.333333333333336%;\n }\n .col-sm-push-8 {\n left: 66.66666666666666%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-10 {\n left: 83.33333333333334%;\n }\n .col-sm-push-11 {\n left: 91.66666666666666%;\n }\n .col-sm-pull-1 {\n right: 8.333333333333332%;\n }\n .col-sm-pull-2 {\n right: 16.666666666666664%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-4 {\n right: 33.33333333333333%;\n }\n .col-sm-pull-5 {\n right: 41.66666666666667%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-7 {\n right: 58.333333333333336%;\n }\n .col-sm-pull-8 {\n right: 66.66666666666666%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-10 {\n right: 83.33333333333334%;\n }\n .col-sm-pull-11 {\n right: 91.66666666666666%;\n }\n .col-sm-offset-1 {\n margin-left: 8.333333333333332%;\n }\n .col-sm-offset-2 {\n margin-left: 16.666666666666664%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333333333%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666666666667%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-7 {\n margin-left: 58.333333333333336%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666666666666%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333333334%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666666666666%;\n }\n}\n@media (min-width: 992px) {\n .container {\n max-width: 970px;\n }\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11 {\n float: left;\n }\n .col-md-1 {\n width: 8.333333333333332%;\n }\n .col-md-2 {\n width: 16.666666666666664%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-4 {\n width: 33.33333333333333%;\n }\n .col-md-5 {\n width: 41.66666666666667%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-7 {\n width: 58.333333333333336%;\n }\n .col-md-8 {\n width: 66.66666666666666%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-10 {\n width: 83.33333333333334%;\n }\n .col-md-11 {\n width: 91.66666666666666%;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-push-1 {\n left: 8.333333333333332%;\n }\n .col-md-push-2 {\n left: 16.666666666666664%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-4 {\n left: 33.33333333333333%;\n }\n .col-md-push-5 {\n left: 41.66666666666667%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-7 {\n left: 58.333333333333336%;\n }\n .col-md-push-8 {\n left: 66.66666666666666%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-10 {\n left: 83.33333333333334%;\n }\n .col-md-push-11 {\n left: 91.66666666666666%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-pull-1 {\n right: 8.333333333333332%;\n }\n .col-md-pull-2 {\n right: 16.666666666666664%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-4 {\n right: 33.33333333333333%;\n }\n .col-md-pull-5 {\n right: 41.66666666666667%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-7 {\n right: 58.333333333333336%;\n }\n .col-md-pull-8 {\n right: 66.66666666666666%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-10 {\n right: 83.33333333333334%;\n }\n .col-md-pull-11 {\n right: 91.66666666666666%;\n }\n .col-md-offset-0 {\n margin-left: 0;\n }\n .col-md-offset-1 {\n margin-left: 8.333333333333332%;\n }\n .col-md-offset-2 {\n margin-left: 16.666666666666664%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333333333%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666666666667%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-7 {\n margin-left: 58.333333333333336%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666666666666%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333333334%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666666666666%;\n }\n}\n@media (min-width: 1200px) {\n .container {\n max-width: 1170px;\n }\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11 {\n float: left;\n }\n .col-lg-1 {\n width: 8.333333333333332%;\n }\n .col-lg-2 {\n width: 16.666666666666664%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-4 {\n width: 33.33333333333333%;\n }\n .col-lg-5 {\n width: 41.66666666666667%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-7 {\n width: 58.333333333333336%;\n }\n .col-lg-8 {\n width: 66.66666666666666%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-10 {\n width: 83.33333333333334%;\n }\n .col-lg-11 {\n width: 91.66666666666666%;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-push-1 {\n left: 8.333333333333332%;\n }\n .col-lg-push-2 {\n left: 16.666666666666664%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-4 {\n left: 33.33333333333333%;\n }\n .col-lg-push-5 {\n left: 41.66666666666667%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-7 {\n left: 58.333333333333336%;\n }\n .col-lg-push-8 {\n left: 66.66666666666666%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-10 {\n left: 83.33333333333334%;\n }\n .col-lg-push-11 {\n left: 91.66666666666666%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-pull-1 {\n right: 8.333333333333332%;\n }\n .col-lg-pull-2 {\n right: 16.666666666666664%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-4 {\n right: 33.33333333333333%;\n }\n .col-lg-pull-5 {\n right: 41.66666666666667%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-7 {\n right: 58.333333333333336%;\n }\n .col-lg-pull-8 {\n right: 66.66666666666666%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-10 {\n right: 83.33333333333334%;\n }\n .col-lg-pull-11 {\n right: 91.66666666666666%;\n }\n .col-lg-offset-0 {\n margin-left: 0;\n }\n .col-lg-offset-1 {\n margin-left: 8.333333333333332%;\n }\n .col-lg-offset-2 {\n margin-left: 16.666666666666664%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333333333%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666666666667%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-7 {\n margin-left: 58.333333333333336%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666666666666%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333333334%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666666666666%;\n }\n}\ntable {\n max-width: 100%;\n background-color: transparent;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n margin-bottom: 20px;\n}\n.table thead > tr > th,\n.table tbody > tr > th,\n.table tfoot > tr > th,\n.table thead > tr > td,\n.table tbody > tr > td,\n.table tfoot > tr > td {\n padding: 8px;\n line-height: 1.428571429;\n vertical-align: top;\n border-top: 1px solid #dddddd;\n}\n.table thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #dddddd;\n}\n.table caption + thead tr:first-child th,\n.table colgroup + thead tr:first-child th,\n.table thead:first-child tr:first-child th,\n.table caption + thead tr:first-child td,\n.table colgroup + thead tr:first-child td,\n.table thead:first-child tr:first-child td {\n border-top: 0;\n}\n.table tbody + tbody {\n border-top: 2px solid #dddddd;\n}\n.table .table {\n background-color: #222222;\n}\n.table-condensed thead > tr > th,\n.table-condensed tbody > tr > th,\n.table-condensed tfoot > tr > th,\n.table-condensed thead > tr > td,\n.table-condensed tbody > tr > td,\n.table-condensed tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-child(odd) > td,\n.table-striped > tbody > tr:nth-child(odd) > th {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover > td,\n.table-hover > tbody > tr:hover > th {\n background-color: #f5f5f5;\n}\ntable col[class^=\"col-\"] {\n float: none;\n display: table-column;\n}\ntable td[class^=\"col-\"],\ntable th[class^=\"col-\"] {\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td {\n background-color: #d0e9c6;\n border-color: #c9e2b3;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n border-color: #eed3d7;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td {\n background-color: #ebcccc;\n border-color: #e6c1c7;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n border-color: #fbeed5;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td {\n background-color: #faf2cc;\n border-color: #f8e5be;\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n /* IE8-9 */\n\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\nselect optgroup {\n font-size: inherit;\n font-style: inherit;\n font-family: inherit;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: thin dotted #333;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\ninput[type=\"number\"]::-webkit-outer-spin-button,\ninput[type=\"number\"]::-webkit-inner-spin-button {\n height: auto;\n}\n.form-control:-moz-placeholder {\n color: #cccccc;\n}\n.form-control::-moz-placeholder {\n color: #cccccc;\n}\n.form-control:-ms-input-placeholder {\n color: #cccccc;\n}\n.form-control::-webkit-input-placeholder {\n color: #cccccc;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 38px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.428571429;\n color: #ffffff;\n vertical-align: middle;\n background-color: #111111;\n border: 1px solid #444444;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n background-color: #222222;\n}\ntextarea.form-control {\n height: auto;\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n display: block;\n min-height: 20px;\n margin-top: 10px;\n margin-bottom: 10px;\n padding-left: 20px;\n vertical-align: middle;\n}\n.radio label,\n.checkbox label {\n display: inline;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n float: left;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\n.radio[disabled],\n.radio-inline[disabled],\n.checkbox[disabled],\n.checkbox-inline[disabled],\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"],\nfieldset[disabled] .radio,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm {\n height: auto;\n}\n.input-lg {\n height: 45px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 45px;\n line-height: 45px;\n}\ntextarea.input-lg {\n height: auto;\n}\n.has-warning .help-block,\n.has-warning .control-label {\n color: #c09853;\n}\n.has-warning .form-control {\n border-color: #c09853;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #a47e3c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n}\n.has-warning .input-group-addon {\n color: #c09853;\n border-color: #c09853;\n background-color: #fcf8e3;\n}\n.has-error .help-block,\n.has-error .control-label {\n color: #b94a48;\n}\n.has-error .form-control {\n border-color: #b94a48;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #953b39;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n}\n.has-error .input-group-addon {\n color: #b94a48;\n border-color: #b94a48;\n background-color: #f2dede;\n}\n.has-success .help-block,\n.has-success .control-label {\n color: #468847;\n}\n.has-success .form-control {\n border-color: #468847;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #356635;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n}\n.has-success .input-group-addon {\n color: #468847;\n border-color: #468847;\n background-color: #dff0d8;\n}\n.form-control-static {\n margin-bottom: 0;\n padding-top: 6px;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #ffffff;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n float: none;\n margin-left: 0;\n }\n}\n.form-horizontal .control-label,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 6px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.form-horizontal .form-group:after {\n clear: both;\n}\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.form-horizontal .form-group:after {\n clear: both;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n }\n}\n.btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n font-size: 14px;\n font-weight: bold;\n line-height: 1.428571429;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n border: 1px solid transparent;\n border-radius: 4px;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n}\n.btn:focus {\n outline: thin dotted #333;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus {\n color: #333333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default {\n color: #333333;\n background-color: rgba(0, 0, 0, 0);\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-default:hover,\n.btn-default:focus,\n.btn-default:active,\n.btn-default.active,\n.open .dropdown-toggle.btn-default {\n color: #333333;\n background-color: rgba(0, 0, 0, 0);\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-default:active,\n.btn-default.active,\n.open .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: rgba(0, 0, 0, 0);\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-primary {\n color: #ffffff;\n background-color: #888888;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary:active,\n.btn-primary.active,\n.open .dropdown-toggle.btn-primary {\n color: #ffffff;\n background-color: #747474;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-primary:active,\n.btn-primary.active,\n.open .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #888888;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-warning {\n color: #ffffff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning:active,\n.btn-warning.active,\n.open .dropdown-toggle.btn-warning {\n color: #ffffff;\n background-color: #ed9c28;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-danger {\n color: #ffffff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger:active,\n.btn-danger.active,\n.open .dropdown-toggle.btn-danger {\n color: #ffffff;\n background-color: #d2322d;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-success {\n color: #bbbbbb;\n background-color: #444444;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-success:hover,\n.btn-success:focus,\n.btn-success:active,\n.btn-success.active,\n.open .dropdown-toggle.btn-success {\n color: #bbbbbb;\n background-color: #303030;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-success:active,\n.btn-success.active,\n.open .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #444444;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-info {\n color: #ffffff;\n background-color: #222222;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-info:hover,\n.btn-info:focus,\n.btn-info:active,\n.btn-info.active,\n.open .dropdown-toggle.btn-info {\n color: #ffffff;\n background-color: #0e0e0e;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-info:active,\n.btn-info.active,\n.open .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #222222;\n border-color: rgba(0, 0, 0, 0);\n}\n.btn-link {\n color: #ff7733;\n font-weight: normal;\n cursor: pointer;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #e54c00;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #999999;\n text-decoration: none;\n}\n.btn-lg {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-xs {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs {\n padding: 1px 5px;\n}\n.btn-block {\n display: block;\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition: height 0.35s ease;\n transition: height 0.35s ease;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group.col {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n width: 100%;\n margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 45px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 45px;\n line-height: 45px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n text-align: center;\n background-color: #222222;\n border: 1px solid #444444;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -4px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px solid #000000;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n border-bottom: 0 dotted;\n content: \"\";\n}\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n background-color: #ffffff;\n border: 1px solid #cccccc;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.428571429;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #ffffff;\n background-color: #888888;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #ffffff;\n text-decoration: none;\n outline: 0;\n background-color: #428bca;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #999999;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.428571429;\n color: #999999;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0 dotted;\n border-bottom: 4px solid #000000;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 1px;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #ffffff;\n border: 1px solid rgba(0, 0, 0, 0);\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\na.list-group-item {\n color: #333333;\n}\na.list-group-item .list-group-item-heading {\n color: #333333;\n}\na.list-group-item:hover,\na.list-group-item:focus {\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #888888;\n border-color: #888888;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #eeeeee;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #333333;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-body:before,\n.panel-body:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.panel-body:after {\n clear: both;\n}\n.panel-body:before,\n.panel-body:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.panel-body:after {\n clear: both;\n}\n.panel > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item {\n border-width: 1px 0;\n}\n.panel > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel > .list-group .list-group-item:last-child {\n border-bottom: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.panel-heading {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-bottom: 1px solid #dddddd;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n}\n.panel-title > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #dddddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n overflow: hidden;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse .panel-body {\n border-top: 1px solid #dddddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #dddddd;\n}\n.panel-primary {\n border-color: #428bca;\n}\n.panel-primary > .panel-heading {\n color: #ffffff;\n background-color: #428bca;\n border-color: #428bca;\n}\n.panel-primary > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #428bca;\n}\n.panel-primary > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #428bca;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #468847;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-warning {\n border-color: #fbeed5;\n}\n.panel-warning > .panel-heading {\n color: #c09853;\n background-color: #fcf8e3;\n border-color: #fbeed5;\n}\n.panel-warning > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #fbeed5;\n}\n.panel-warning > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #fbeed5;\n}\n.panel-danger {\n border-color: #eed3d7;\n}\n.panel-danger > .panel-heading {\n color: #b94a48;\n background-color: #f2dede;\n border-color: #eed3d7;\n}\n.panel-danger > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #eed3d7;\n}\n.panel-danger > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #eed3d7;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #3a87ad;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-footer + .panel-collapse .panel-body {\n border-bottom-color: #bce8f1;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000000;\n text-shadow: 0 1px 0 #ffffff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav:before,\n.nav:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.nav:after {\n clear: both;\n}\n.nav:before,\n.nav:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.nav:after {\n clear: both;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #222222;\n}\n.nav > li.disabled > a {\n color: #cccccc;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #bbbbbb;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #222222;\n border-color: #ff7733;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid rgba(0, 0, 0, 0);\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.428571429;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #222222 #222222 rgba(0, 0, 0, 0);\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #222222;\n border: 1px solid #dddddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n}\n.nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #dddddd;\n margin-right: 0;\n}\n.nav-tabs.nav-justified > .active > a {\n border-bottom-color: #222222;\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 5px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #ffffff;\n background-color: #428bca;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n border-bottom: 1px solid #dddddd;\n margin-right: 0;\n}\n.nav-tabs-justified > .active > a {\n border-bottom-color: #222222;\n}\n.tabbable:before,\n.tabbable:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.tabbable:after {\n clear: both;\n}\n.tabbable:before,\n.tabbable:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.tabbable:after {\n clear: both;\n}\n.tab-content > .tab-pane,\n.pill-content > .pill-pane {\n display: none;\n}\n.tab-content > .active,\n.pill-content > .active {\n display: block;\n}\n.nav .caret {\n border-top-color: #ff7733;\n border-bottom-color: #ff7733;\n}\n.nav a:hover .caret {\n border-top-color: #e54c00;\n border-bottom-color: #e54c00;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n background-color: #444444;\n border: 1px solid rgba(0, 0, 0, 0);\n}\n.navbar:before,\n.navbar:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar:after {\n clear: both;\n}\n.navbar:before,\n.navbar:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar:after {\n clear: both;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n.navbar-header {\n padding-left: 15px;\n padding-right: 15px;\n}\n.navbar-header:before,\n.navbar-header:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar-header:after {\n clear: both;\n}\n.navbar-header:before,\n.navbar-header:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar-header:after {\n clear: both;\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n max-height: 340px;\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid #323232;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse:before,\n.navbar-collapse:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar-collapse:after {\n clear: both;\n}\n.navbar-collapse:before,\n.navbar-collapse:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.navbar-collapse:after {\n clear: both;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n padding-right: 0;\n padding-left: 0;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n}\n.navbar-static-top {\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n}\n.navbar-brand {\n float: left;\n padding-top: 15px;\n padding-bottom: 15px;\n font-size: 18px;\n line-height: 20px;\n color: #777777;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n color: #5e5e5e;\n text-decoration: none;\n background-color: transparent;\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n border: 1px solid #dddddd;\n border-radius: 4px;\n}\n.navbar-toggle:hover,\n.navbar-toggle:focus {\n background-color: #dddddd;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n background-color: #cccccc;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n position: relative;\n top: auto;\n left: auto;\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n color: #777777;\n line-height: 20px;\n}\n.navbar-nav > li > a:hover,\n.navbar-nav > li > a:focus {\n color: #333333;\n background-color: transparent;\n}\n.navbar-nav > .active > a,\n.navbar-nav > .active > a:hover,\n.navbar-nav > .active > a:focus {\n color: #555555;\n background-color: #333333;\n}\n.navbar-nav > .disabled > a,\n.navbar-nav > .disabled > a:hover,\n.navbar-nav > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n color: #777777;\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333333;\n background-color: transparent;\n background-image: none;\n }\n .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555555;\n background-color: #333333;\n }\n .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n }\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid #323232;\n border-bottom: 1px solid #323232;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 6px;\n margin-bottom: 6px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n float: none;\n margin-left: 0;\n }\n}\n.navbar-form .col-lg-1 {\n width: 8.333333333333332%;\n}\n.navbar-form .col-lg-2 {\n width: 16.666666666666664%;\n}\n.navbar-form .col-lg-3 {\n width: 25%;\n}\n.navbar-form .col-lg-4 {\n width: 33.33333333333333%;\n}\n.navbar-form .col-lg-5 {\n width: 41.66666666666667%;\n}\n.navbar-form .col-lg-6 {\n width: 50%;\n}\n.navbar-form .col-lg-7 {\n width: 58.333333333333336%;\n}\n.navbar-form .col-lg-8 {\n width: 66.66666666666666%;\n}\n.navbar-form .col-lg-9 {\n width: 75%;\n}\n.navbar-form .col-lg-10 {\n width: 83.33333333333334%;\n}\n.navbar-form .col-lg-11 {\n width: 91.66666666666666%;\n}\n.navbar-form .col-lg-12 {\n width: 100%;\n}\n.navbar-form * {\n float: none;\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-nav > .dropdown > a:hover .caret,\n.navbar-nav > .dropdown > a:focus .caret {\n border-top-color: #333333;\n border-bottom-color: #333333;\n}\n.navbar-nav > .open > a,\n.navbar-nav > .open > a:hover,\n.navbar-nav > .open > a:focus {\n background-color: #333333;\n color: #555555;\n}\n.navbar-nav > .open > a .caret,\n.navbar-nav > .open > a:hover .caret,\n.navbar-nav > .open > a:focus .caret {\n border-top-color: #555555;\n border-bottom-color: #555555;\n}\n.navbar-nav > .dropdown > a .caret {\n border-top-color: #777777;\n border-bottom-color: #777777;\n}\n.navbar-nav.pull-right > li > .dropdown-menu,\n.navbar-nav > li > .dropdown-menu.pull-right {\n left: auto;\n right: 0;\n}\n.navbar-btn {\n margin-top: 6px;\n margin-bottom: 6px;\n}\n.navbar-text {\n float: left;\n color: #777777;\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n.navbar-link {\n color: #777777;\n}\n.navbar-link:hover {\n color: #333333;\n}\n.navbar-inverse {\n background-color: #222222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #999999;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #999999;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #999999;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #ffffff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #ffffff;\n}\n.navbar-inverse .navbar-nav > .dropdown > a:hover .caret {\n border-top-color: #ffffff;\n border-bottom-color: #ffffff;\n}\n.navbar-inverse .navbar-nav > .dropdown > a .caret {\n border-top-color: #999999;\n border-bottom-color: #999999;\n}\n.navbar-inverse .navbar-nav > .open > a .caret,\n.navbar-inverse .navbar-nav > .open > a:hover .caret,\n.navbar-inverse .navbar-nav > .open > a:focus .caret {\n border-top-color: #ffffff;\n border-bottom-color: #ffffff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #999999;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #999999;\n}\n.navbar-inverse .navbar-link:hover {\n color: #ffffff;\n}\n.btn-default .caret {\n border-top-color: #333333;\n}\n.btn-primary .caret,\n.btn-success .caret,\n.btn-warning .caret,\n.btn-danger .caret,\n.btn-info .caret {\n border-top-color: #fff;\n}\n.dropup .btn-default .caret {\n border-bottom-color: #333333;\n}\n.dropup .btn-primary .caret,\n.dropup .btn-success .caret,\n.dropup .btn-warning .caret,\n.dropup .btn-danger .caret,\n.dropup .btn-info .caret {\n border-bottom-color: #fff;\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus {\n outline: none;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar:before,\n.btn-toolbar:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.btn-toolbar:after {\n clear: both;\n}\n.btn-toolbar:before,\n.btn-toolbar:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.btn-toolbar:after {\n clear: both;\n}\n.btn-toolbar .btn-group {\n float: left;\n}\n.btn-toolbar > .btn + .btn,\n.btn-toolbar > .btn-group + .btn,\n.btn-toolbar > .btn + .btn-group,\n.btn-toolbar > .btn-group + .btn-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child > .btn:last-child,\n.btn-group > .btn-group:first-child > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group-xs > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n padding: 1px 5px;\n}\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33;\n border-radius: 6px;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px;\n}\n.dropup .btn-lg .caret {\n border-bottom-width: 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.btn-group-vertical > .btn-group:after {\n clear: both;\n}\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.btn-group-vertical > .btn-group:after {\n clear: both;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-bottom-left-radius: 4px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified .btn {\n float: none;\n display: table-cell;\n width: 1%;\n}\n[data-toggle=\"buttons\"] > .btn > input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn > input[type=\"checkbox\"] {\n display: none;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #cccccc;\n}\n.breadcrumb > .active {\n color: #999999;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.428571429;\n text-decoration: none;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n background-color: #222222;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #428bca;\n border-color: #428bca;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #999999;\n background-color: #ffffff;\n border-color: #dddddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager:before,\n.pager:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.pager:after {\n clear: both;\n}\n.pager:before,\n.pager:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.pager:after {\n clear: both;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #222222;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #999999;\n background-color: #ffffff;\n cursor: not-allowed;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: auto;\n overflow-y: scroll;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-dialog {\n margin-left: auto;\n margin-right: auto;\n width: auto;\n padding: 10px;\n z-index: 1050;\n}\n.modal-content {\n position: relative;\n background-color: #ffffff;\n border: 1px solid #999999;\n border: 1px solid #222222;\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: none;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n background-color: #000000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #222222;\n min-height: 16.428571429px;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.428571429;\n}\n.modal-body {\n position: relative;\n padding: 20px;\n}\n.modal-footer {\n margin-top: 15px;\n padding: 19px 20px 20px;\n text-align: right;\n border-top: 1px solid #222222;\n}\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.modal-footer:after {\n clear: both;\n}\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.modal-footer:after {\n clear: both;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n@media screen and (min-width: 768px) {\n .modal-dialog {\n left: 50%;\n right: auto;\n width: 600px;\n padding-top: 30px;\n padding-bottom: 30px;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1030;\n display: block;\n visibility: visible;\n font-size: 12px;\n line-height: 1.4;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 220px;\n padding: 3px 8px;\n color: #ffffff;\n text-align: center;\n text-decoration: none;\n background-color: #000000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n left: 5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n right: 5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n left: 5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n right: 5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1010;\n display: none;\n max-width: 276px;\n padding: 1px;\n text-align: left;\n background-color: #ffffff;\n background-clip: padding-box;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n white-space: normal;\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n font-weight: normal;\n line-height: 18px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover .arrow,\n.popover .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover .arrow {\n border-width: 11px;\n}\n.popover .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #ffffff;\n}\n.popover.right .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #ffffff;\n}\n.popover.bottom .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #ffffff;\n}\n.popover.left .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #ffffff;\n bottom: -10px;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n color: #c09853;\n background-color: #fcf8e3;\n border: 1px solid #fbeed5;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert hr {\n border-top-color: #f8e5be;\n}\n.alert .alert-link {\n font-weight: bold;\n color: #a47e3c;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable {\n padding-right: 35px;\n}\n.alert-dismissable .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #468847;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #356635;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #eed3d7;\n color: #b94a48;\n}\n.alert-danger hr {\n border-top-color: #e6c1c7;\n}\n.alert-danger .alert-link {\n color: #953b39;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #3a87ad;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #2d6987;\n}\n.thumbnail,\n.img-thumbnail {\n padding: 4px;\n line-height: 1.428571429;\n background-color: #222222;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n}\n.thumbnail {\n display: block;\n}\n.thumbnail > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-thumbnail {\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus {\n border-color: #ff7733;\n}\n.thumbnail > img {\n margin-left: auto;\n margin-right: auto;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #ffffff;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media,\n.media .media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media-object {\n display: block;\n}\n.media-heading {\n margin: 0 0 5px;\n}\n.media > .pull-left {\n margin-right: 10px;\n}\n.media > .pull-right {\n margin-left: 10px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.label {\n display: inline;\n padding: .25em .6em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #ffffff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\n.label[href]:hover,\n.label[href]:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.label-default {\n background-color: #999999;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #808080;\n}\n.label-primary {\n background-color: #428bca;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #3071a9;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #ffffff;\n line-height: 1;\n vertical-align: baseline;\n white-space: nowrap;\n text-align: center;\n background-color: #999999;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\na.badge:hover,\na.badge:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\na.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #ff7733;\n background-color: #ffffff;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-moz-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-o-keyframes progress-bar-stripes {\n from {\n background-position: 0 0;\n }\n to {\n background-position: 40px 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n color: #ffffff;\n text-align: center;\n background-color: #428bca;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -moz-animation: progress-bar-stripes 2s linear infinite;\n -ms-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n line-height: 1;\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-control.left {\n background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));\n background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));\n background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));\n background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));\n background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #ffffff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 5;\n display: inline-block;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n margin-left: -10px;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #ffffff;\n border-radius: 10px;\n cursor: pointer;\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #ffffff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n font-size: 30px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.jumbotron {\n padding: 30px;\n margin-bottom: 30px;\n font-size: 21px;\n font-weight: 200;\n line-height: 2.1428571435;\n color: inherit;\n background-color: #222222;\n}\n.jumbotron h1 {\n line-height: 1;\n color: inherit;\n}\n.jumbotron p {\n line-height: 1.4;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding: 50px 60px;\n border-radius: 6px;\n }\n .jumbotron h1 {\n font-size: 63px;\n }\n}\n.clearfix:before,\n.clearfix:after {\n content: \" \";\n /* 1 */\n\n display: table;\n /* 2 */\n\n}\n.clearfix:after {\n clear: both;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n@media screen and (max-width: 400px) {\n @-ms-viewport {\n width: 320px;\n }\n}\n.hidden {\n display: none !important;\n visibility: hidden !important;\n}\n.visible-xs {\n display: block !important;\n}\ntr.visible-xs {\n display: table-row !important;\n}\nth.visible-xs,\ntd.visible-xs {\n display: table-cell !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-xs {\n display: none !important;\n }\n tr.visible-xs {\n display: none !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-xs {\n display: none !important;\n }\n tr.visible-xs {\n display: none !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-xs {\n display: none !important;\n }\n tr.visible-xs {\n display: none !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: none !important;\n }\n}\n.visible-sm {\n display: none !important;\n}\ntr.visible-sm {\n display: none !important;\n}\nth.visible-sm,\ntd.visible-sm {\n display: none !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-sm {\n display: none !important;\n }\n tr.visible-sm {\n display: none !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-sm {\n display: none !important;\n }\n tr.visible-sm {\n display: none !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: none !important;\n }\n}\n.visible-md {\n display: none !important;\n}\ntr.visible-md {\n display: none !important;\n}\nth.visible-md,\ntd.visible-md {\n display: none !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-md {\n display: none !important;\n }\n tr.visible-md {\n display: none !important;\n }\n th.visible-md,\n td.visible-md {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-md {\n display: none !important;\n }\n tr.visible-md {\n display: none !important;\n }\n th.visible-md,\n td.visible-md {\n display: none !important;\n }\n}\n.visible-lg {\n display: none !important;\n}\ntr.visible-lg {\n display: none !important;\n}\nth.visible-lg,\ntd.visible-lg {\n display: none !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-lg {\n display: none !important;\n }\n tr.visible-lg {\n display: none !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-lg {\n display: none !important;\n }\n tr.visible-lg {\n display: none !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n.hidden-xs {\n display: none !important;\n}\ntr.hidden-xs {\n display: none !important;\n}\nth.hidden-xs,\ntd.hidden-xs {\n display: none !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-xs {\n display: block !important;\n }\n tr.hidden-xs {\n display: table-row !important;\n }\n th.hidden-xs,\n td.hidden-xs {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-xs {\n display: block !important;\n }\n tr.hidden-xs {\n display: table-row !important;\n }\n th.hidden-xs,\n td.hidden-xs {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-xs {\n display: block !important;\n }\n tr.hidden-xs {\n display: table-row !important;\n }\n th.hidden-xs,\n td.hidden-xs {\n display: table-cell !important;\n }\n}\n.hidden-sm {\n display: block !important;\n}\ntr.hidden-sm {\n display: table-row !important;\n}\nth.hidden-sm,\ntd.hidden-sm {\n display: table-cell !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n tr.hidden-sm {\n display: none !important;\n }\n th.hidden-sm,\n td.hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-sm {\n display: block !important;\n }\n tr.hidden-sm {\n display: table-row !important;\n }\n th.hidden-sm,\n td.hidden-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-sm {\n display: block !important;\n }\n tr.hidden-sm {\n display: table-row !important;\n }\n th.hidden-sm,\n td.hidden-sm {\n display: table-cell !important;\n }\n}\n.hidden-md {\n display: block !important;\n}\ntr.hidden-md {\n display: table-row !important;\n}\nth.hidden-md,\ntd.hidden-md {\n display: table-cell !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-md {\n display: block !important;\n }\n tr.hidden-md {\n display: table-row !important;\n }\n th.hidden-md,\n td.hidden-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n tr.hidden-md {\n display: none !important;\n }\n th.hidden-md,\n td.hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-md {\n display: block !important;\n }\n tr.hidden-md {\n display: table-row !important;\n }\n th.hidden-md,\n td.hidden-md {\n display: table-cell !important;\n }\n}\n.hidden-lg {\n display: block !important;\n}\ntr.hidden-lg {\n display: table-row !important;\n}\nth.hidden-lg,\ntd.hidden-lg {\n display: table-cell !important;\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-lg {\n display: block !important;\n }\n tr.hidden-lg {\n display: table-row !important;\n }\n th.hidden-lg,\n td.hidden-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-lg {\n display: block !important;\n }\n tr.hidden-lg {\n display: table-row !important;\n }\n th.hidden-lg,\n td.hidden-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n tr.hidden-lg {\n display: none !important;\n }\n th.hidden-lg,\n td.hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\ntr.visible-print {\n display: none !important;\n}\nth.visible-print,\ntd.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n .hidden-print {\n display: none !important;\n }\n tr.hidden-print {\n display: none !important;\n }\n th.hidden-print,\n td.hidden-print {\n display: none !important;\n }\n}\n@font-face {\n font-family: 'fontello';\n src: url('libs/fontello/font/fontello.eot?65226408');\n src: url('libs/fontello/font/fontello.eot?65226408#iefix') format('embedded-opentype'), url('libs/fontello/font/fontello.woff?65226408') format('woff'), url('libs/fontello/font/fontello.ttf?65226408') format('truetype'), url('libs/fontello/font/fontello.svg?65226408#fontello') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */\n/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */\n/*\n@media screen and (-webkit-min-device-pixel-ratio:0) {\n @font-face {\n font-family: 'fontello';\n src: url('libs/fontello/font/fontello.svg?65226408#fontello') format('svg');\n }\n}\n*/\n[class^=\"icon-\"]:before,\n[class*=\" icon-\"]:before {\n font-family: \"fontello\";\n font-style: normal;\n font-weight: normal;\n speak: none;\n display: inline-block;\n text-decoration: inherit;\n width: 1em;\n margin-right: .2em;\n text-align: center;\n /* opacity: .8; */\n\n /* For safety - reset parent styles, that can break glyph codes*/\n\n font-variant: normal;\n text-transform: none;\n /* fix buttons height, for twitter bootstrap */\n\n line-height: 1em;\n /* Animation center compensation - margins should be symmetric */\n\n /* remove if not needed */\n\n margin-left: .2em;\n /* you can be more comfortable with increased icons size */\n\n /* font-size: 120%; */\n\n /* Uncomment for 3D effect */\n\n /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */\n\n}\n.icon-plus:before {\n content: '\\e81f';\n}\n/* '' */\n.icon-minus:before {\n content: '\\e823';\n}\n/* '' */\n.icon-left-big:before {\n content: '\\e88a';\n}\n/* '' */\n.icon-up-big:before {\n content: '\\e88c';\n}\n/* '' */\n.icon-right-big:before {\n content: '\\e88b';\n}\n/* '' */\n.icon-down-big:before {\n content: '\\e889';\n}\n/* '' */\n.icon-home:before {\n content: '\\e93c';\n}\n/* '' */\n.icon-pause:before {\n content: '\\e800';\n}\n/* '' */\n.icon-fast-fw:before {\n content: '\\e8a4';\n}\n/* '' */\n.icon-fast-bw:before {\n content: '\\e8a5';\n}\n/* '' */\n.icon-to-end:before {\n content: '\\e8a0';\n}\n/* '' */\n.icon-to-start:before {\n content: '\\e8a2';\n}\n/* '' */\n.icon-stop:before {\n content: '\\e89e';\n}\n/* '' */\n.icon-up-dir:before {\n content: '\\e94e';\n}\n/* '' */\n.icon-play:before {\n content: '\\e89b';\n}\n/* '' */\n.icon-right-dir:before {\n content: '\\e950';\n}\n/* '' */\n.icon-down-dir:before {\n content: '\\e94d';\n}\n/* '' */\n.icon-left-dir:before {\n content: '\\e94f';\n}\n/* '' */\n.icon-cloud:before {\n content: '\\e8ad';\n}\n/* '' */\n.icon-umbrella:before {\n content: '\\e8b0';\n}\n/* '' */\n.icon-star:before {\n content: '\\e808';\n}\n/* '' */\n.icon-star-empty:before {\n content: '\\e809';\n}\n/* '' */\n.icon-check:before {\n content: '\\e8cf';\n}\n/* '' */\n.icon-left-hand:before {\n content: '\\e88e';\n}\n/* '' */\n.icon-up-hand:before {\n content: '\\e88f';\n}\n/* '' */\n.icon-right-hand:before {\n content: '\\e88d';\n}\n/* '' */\n.icon-down-hand:before {\n content: '\\e890';\n}\n/* '' */\n.icon-th-list:before {\n content: '\\e817';\n}\n/* '' */\n.icon-heart-empty:before {\n content: '\\e807';\n}\n/* '' */\n.icon-heart:before {\n content: '\\e806';\n}\n/* '' */\n.icon-music:before {\n content: '\\e802';\n}\n/* '' */\n.icon-th:before {\n content: '\\e816';\n}\n/* '' */\n.icon-flag:before {\n content: '\\e838';\n}\n/* '' */\n.icon-cog:before {\n content: '\\e862';\n}\n/* '' */\n.icon-attention:before {\n content: '\\e851';\n}\n/* '' */\n.icon-flash:before {\n content: '\\e8ae';\n}\n/* '' */\n.icon-cog-alt:before {\n content: '\\e863';\n}\n/* '' */\n.icon-scissors:before {\n content: '\\e8c5';\n}\n/* '' */\n.icon-flight:before {\n content: '\\e8b1';\n}\n/* '' */\n.icon-mail:before {\n content: '\\e804';\n}\n/* '' */\n.icon-edit:before {\n content: '\\e941';\n}\n/* '' */\n.icon-pencil:before {\n content: '\\e847';\n}\n/* '' */\n.icon-ok:before {\n content: '\\e818';\n}\n/* '' */\n.icon-ok-circled:before {\n content: '\\e819';\n}\n/* '' */\n.icon-cancel:before {\n content: '\\e81c';\n}\n/* '' */\n.icon-cancel-circled:before {\n content: '\\e81d';\n}\n/* '' */\n.icon-asterisk:before {\n content: '\\e8d3';\n}\n/* '' */\n.icon-attention-circled:before {\n content: '\\e852';\n}\n/* '' */\n.icon-plus-circled:before {\n content: '\\e820';\n}\n/* '' */\n.icon-minus-circled:before {\n content: '\\e824';\n}\n/* '' */\n.icon-forward:before {\n content: '\\e856';\n}\n/* '' */\n.icon-ccw:before {\n content: '\\e896';\n}\n/* '' */\n.icon-cw:before {\n content: '\\e895';\n}\n/* '' */\n.icon-resize-vertical:before {\n content: '\\e872';\n}\n/* '' */\n.icon-resize-horizontal:before {\n content: '\\e873';\n}\n/* '' */\n.icon-eject:before {\n content: '\\e8a6';\n}\n/* '' */\n.icon-trash:before {\n content: '\\e89f';\n}\n/* '' */\n.icon-folder:before {\n content: '\\e8d7';\n}\n/* '' */\n.icon-star-half:before {\n content: '\\e80a';\n}\n/* '' */\n.icon-ok-circled2:before {\n content: '\\e81a';\n}\n/* '' */\n.icon-cancel-circled2:before {\n content: '\\e86f';\n}\n/* '' */\n.icon-help-circled:before {\n content: '\\e939';\n}\n/* '' */\n.icon-info-circled:before {\n content: '\\e93a';\n}\n/* '' */\n.icon-th-large:before {\n content: '\\e815';\n}\n/* '' */\n.icon-eye:before {\n content: '\\e832';\n}\n/* '' */\n.icon-eye-off:before {\n content: '\\e833';\n}\n/* '' */\n.icon-tag:before {\n content: '\\e834';\n}\n/* '' */\n.icon-tags:before {\n content: '\\e835';\n}\n/* '' */\n.icon-camera-alt:before {\n content: '\\e814';\n}\n/* '' */\n.icon-code:before {\n content: '\\e844';\n}\n/* '' */\n.icon-print:before {\n content: '\\e942';\n}\n/* '' */\n.icon-retweet:before {\n content: '\\e943';\n}\n/* '' */\n.icon-comment:before {\n content: '\\e84a';\n}\n/* '' */\n.icon-chat:before {\n content: '\\e84b';\n}\n/* '' */\n.icon-location:before {\n content: '\\e853';\n}\n/* '' */\n.icon-archive:before {\n content: '\\e859';\n}\n/* '' */\n.icon-basket:before {\n content: '\\e865';\n}\n/* '' */\n.icon-login:before {\n content: '\\e868';\n}\n/* '' */\n.icon-logout:before {\n content: '\\e949';\n}\n/* '' */\n.icon-resize-full:before {\n content: '\\e90d';\n}\n/* '' */\n.icon-resize-small:before {\n content: '\\e871';\n}\n/* '' */\n.icon-zoom-in:before {\n content: '\\e875';\n}\n/* '' */\n.icon-zoom-out:before {\n content: '\\e876';\n}\n/* '' */\n.icon-down-circled2:before {\n content: '\\e877';\n}\n/* '' */\n.icon-up-circled2:before {\n content: '\\e878';\n}\n/* '' */\n.icon-down-open:before {\n content: '\\e879';\n}\n/* '' */\n.icon-left-open:before {\n content: '\\e87a';\n}\n/* '' */\n.icon-right-open:before {\n content: '\\e87b';\n}\n/* '' */\n.icon-up-open:before {\n content: '\\e87c';\n}\n/* '' */\n.icon-refresh:before {\n content: '\\e897';\n}\n/* '' */\n.icon-play-circled2:before {\n content: '\\e89d';\n}\n/* '' */\n.icon-to-end-alt:before {\n content: '\\e8a1';\n}\n/* '' */\n.icon-to-start-alt:before {\n content: '\\e8a3';\n}\n/* '' */\n.icon-inbox:before {\n content: '\\e8aa';\n}\n/* '' */\n.icon-font:before {\n content: '\\e8b6';\n}\n/* '' */\n.icon-bold:before {\n content: '\\e8b5';\n}\n/* '' */\n.icon-italic:before {\n content: '\\e8b4';\n}\n/* '' */\n.icon-text-height:before {\n content: '\\e8b7';\n}\n/* '' */\n.icon-text-width:before {\n content: '\\e8b8';\n}\n/* '' */\n.icon-align-left:before {\n content: '\\e95d';\n}\n/* '' */\n.icon-align-center:before {\n content: '\\e95e';\n}\n/* '' */\n.icon-align-right:before {\n content: '\\e95f';\n}\n/* '' */\n.icon-align-justify:before {\n content: '\\e960';\n}\n/* '' */\n.icon-list:before {\n content: '\\e8b9';\n}\n/* '' */\n.icon-indent-left:before {\n content: '\\e8ba';\n}\n/* '' */\n.icon-indent-right:before {\n content: '\\e8bb';\n}\n/* '' */\n.icon-off:before {\n content: '\\e963';\n}\n/* '' */\n.icon-road:before {\n content: '\\e964';\n}\n/* '' */\n.icon-list-alt:before {\n content: '\\e8c9';\n}\n/* '' */\n.icon-qrcode:before {\n content: '\\e8ca';\n}\n/* '' */\n.icon-barcode:before {\n content: '\\e8cb';\n}\n/* '' */\n.icon-ajust:before {\n content: '\\e8cd';\n}\n/* '' */\n.icon-tint:before {\n content: '\\e8ce';\n}\n/* '' */\n.icon-layers:before {\n content: '\\e829';\n}\n/* '' */\n.icon-magnet:before {\n content: '\\e8d6';\n}\n/* '' */\n.icon-move:before {\n content: '\\e874';\n}\n/* '' */\n.icon-link:before {\n content: '\\e83f';\n}\n/* '' */\n.icon-share:before {\n content: '\\e912';\n}\n/* '' */\n.icon-hdd:before {\n content: '\\e841';\n}\n/* '' */\n.icon-link-ext:before {\n content: '\\e82b';\n}\n/* '' */\n.icon-check-empty:before {\n content: '\\e8d0';\n}\n/* '' */\n.icon-bookmark-empty:before {\n content: '\\e837';\n}\n/* '' */\n.icon-phone-squared:before {\n content: '\\e860';\n}\n/* '' */\n.icon-rss:before {\n content: '\\e85d';\n}\n/* '' */\n.icon-certificate:before {\n content: '\\e8dd';\n}\n/* '' */\n.icon-left-circled:before {\n content: '\\e891';\n}\n/* '' */\n.icon-right-circled:before {\n content: '\\e892';\n}\n/* '' */\n.icon-up-circled:before {\n content: '\\e893';\n}\n/* '' */\n.icon-down-circled:before {\n content: '\\e894';\n}\n/* '' */\n.icon-tasks:before {\n content: '\\e8de';\n}\n/* '' */\n.icon-filter:before {\n content: '\\e8df';\n}\n/* '' */\n.icon-resize-full-alt:before {\n content: '\\e870';\n}\n/* '' */\n.icon-beaker:before {\n content: '\\e8e0';\n}\n/* '' */\n.icon-docs:before {\n content: '\\e858';\n}\n/* '' */\n.icon-menu:before {\n content: '\\e861';\n}\n/* '' */\n.icon-list-bullet:before {\n content: '\\e8bc';\n}\n/* '' */\n.icon-list-numbered:before {\n content: '\\e8bd';\n}\n/* '' */\n.icon-strike:before {\n content: '\\e8be';\n}\n/* '' */\n.icon-underline:before {\n content: '\\e8bf';\n}\n/* '' */\n.icon-table:before {\n content: '\\e8c2';\n}\n/* '' */\n.icon-magic:before {\n content: '\\e8e1';\n}\n/* '' */\n.icon-money:before {\n content: '\\e8e3';\n}\n/* '' */\n.icon-columns:before {\n content: '\\e8c3';\n}\n/* '' */\n.icon-sort:before {\n content: '\\e8ec';\n}\n/* '' */\n.icon-sort-down:before {\n content: '\\e8ed';\n}\n/* '' */\n.icon-sort-up:before {\n content: '\\e8ee';\n}\n/* '' */\n.icon-mail-alt:before {\n content: '\\e805';\n}\n/* '' */\n.icon-gauge:before {\n content: '\\e8f6';\n}\n/* '' */\n.icon-comment-empty:before {\n content: '\\e84c';\n}\n/* '' */\n.icon-chat-empty:before {\n content: '\\e84d';\n}\n/* '' */\n.icon-sitemap:before {\n content: '\\e8f7';\n}\n/* '' */\n.icon-paste:before {\n content: '\\e8c6';\n}\n/* '' */\n.icon-lightbulb:before {\n content: '\\e86d';\n}\n/* '' */\n.icon-exchange:before {\n content: '\\e957';\n}\n/* '' */\n.icon-download-cloud:before {\n content: '\\e83d';\n}\n/* '' */\n.icon-upload-cloud:before {\n content: '\\e83e';\n}\n/* '' */\n.icon-user-md:before {\n content: '\\e8fc';\n}\n/* '' */\n.icon-stethoscope:before {\n content: '\\e8fd';\n}\n/* '' */\n.icon-suitcase:before {\n content: '\\e8c8';\n}\n/* '' */\n.icon-bell-alt:before {\n content: '\\e84f';\n}\n/* '' */\n.icon-coffee:before {\n content: '\\e8f9';\n}\n/* '' */\n.icon-food:before {\n content: '\\e8fa';\n}\n/* '' */\n.icon-doc-text:before {\n content: '\\e945';\n}\n/* '' */\n.icon-building:before {\n content: '\\e902';\n}\n/* '' */\n.icon-hospital:before {\n content: '\\e901';\n}\n/* '' */\n.icon-ambulance:before {\n content: '\\e8fe';\n}\n/* '' */\n.icon-medkit:before {\n content: '\\e8ff';\n}\n/* '' */\n.icon-fighter-jet:before {\n content: '\\e8b2';\n}\n/* '' */\n.icon-beer:before {\n content: '\\e8fb';\n}\n/* '' */\n.icon-h-sigh:before {\n content: '\\e900';\n}\n/* '' */\n.icon-plus-squared:before {\n content: '\\e821';\n}\n/* '' */\n.icon-angle-double-left:before {\n content: '\\e885';\n}\n/* '' */\n.icon-angle-double-right:before {\n content: '\\e886';\n}\n/* '' */\n.icon-angle-double-up:before {\n content: '\\e887';\n}\n/* '' */\n.icon-angle-double-down:before {\n content: '\\e888';\n}\n/* '' */\n.icon-angle-left:before {\n content: '\\e87d';\n}\n/* '' */\n.icon-angle-right:before {\n content: '\\e87e';\n}\n/* '' */\n.icon-angle-up:before {\n content: '\\e87f';\n}\n/* '' */\n.icon-angle-down:before {\n content: '\\e880';\n}\n/* '' */\n.icon-desktop:before {\n content: '\\e95a';\n}\n/* '' */\n.icon-laptop:before {\n content: '\\e95b';\n}\n/* '' */\n.icon-tablet:before {\n content: '\\e95c';\n}\n/* '' */\n.icon-mobile:before {\n content: '\\e8a9';\n}\n/* '' */\n.icon-circle-empty:before {\n content: '\\e8d2';\n}\n/* '' */\n.icon-quote-left:before {\n content: '\\e842';\n}\n/* '' */\n.icon-quote-right:before {\n content: '\\e843';\n}\n/* '' */\n.icon-spinner:before {\n content: '\\e8f8';\n}\n/* '' */\n.icon-circle:before {\n content: '\\e8d1';\n}\n/* '' */\n.icon-reply:before {\n content: '\\e845';\n}\n/* '' */\n.icon-folder-empty:before {\n content: '\\e85a';\n}\n/* '' */\n.icon-folder-open-empty:before {\n content: '\\e85b';\n}\n/* '' */\n.icon-plus-squared-small:before {\n content: '\\e822';\n}\n/* '' */\n.icon-minus-squared-small:before {\n content: '\\e827';\n}\n/* '' */\n.icon-smile:before {\n content: '\\e903';\n}\n/* '' */\n.icon-frown:before {\n content: '\\e904';\n}\n/* '' */\n.icon-meh:before {\n content: '\\e905';\n}\n/* '' */\n.icon-gamepad:before {\n content: '\\e849';\n}\n/* '' */\n.icon-keyboard:before {\n content: '\\e944';\n}\n/* '' */\n.icon-flag-empty:before {\n content: '\\e93d';\n}\n/* '' */\n.icon-flag-checkered:before {\n content: '\\e93e';\n}\n/* '' */\n.icon-terminal:before {\n content: '\\e907';\n}\n/* '' */\n.icon-reply-all:before {\n content: '\\e840';\n}\n/* '' */\n.icon-star-half-alt:before {\n content: '\\e80b';\n}\n/* '' */\n.icon-direction:before {\n content: '\\e854';\n}\n/* '' */\n.icon-crop:before {\n content: '\\e8c4';\n}\n/* '' */\n.icon-fork:before {\n content: '\\e8da';\n}\n/* '' */\n.icon-unlink:before {\n content: '\\e82a';\n}\n/* '' */\n.icon-help:before {\n content: '\\e828';\n}\n/* '' */\n.icon-info:before {\n content: '\\e93b';\n}\n/* '' */\n.icon-attention-alt:before {\n content: '\\e850';\n}\n/* '' */\n.icon-superscript:before {\n content: '\\e8c0';\n}\n/* '' */\n.icon-subscript:before {\n content: '\\e8c1';\n}\n/* '' */\n.icon-eraser:before {\n content: '\\e908';\n}\n/* '' */\n.icon-puzzle:before {\n content: '\\e909';\n}\n/* '' */\n.icon-mic:before {\n content: '\\e94a';\n}\n/* '' */\n.icon-mute:before {\n content: '\\e94b';\n}\n/* '' */\n.icon-shield:before {\n content: '\\e90a';\n}\n/* '' */\n.icon-calendar-empty:before {\n content: '\\e867';\n}\n/* '' */\n.icon-extinguisher:before {\n content: '\\e90b';\n}\n/* '' */\n.icon-rocket:before {\n content: '\\e8db';\n}\n/* '' */\n.icon-angle-circled-left:before {\n content: '\\e881';\n}\n/* '' */\n.icon-angle-circled-right:before {\n content: '\\e882';\n}\n/* '' */\n.icon-angle-circled-up:before {\n content: '\\e883';\n}\n/* '' */\n.icon-angle-circled-down:before {\n content: '\\e884';\n}\n/* '' */\n.icon-anchor:before {\n content: '\\e906';\n}\n/* '' */\n.icon-lock-open-alt:before {\n content: '\\e830';\n}\n/* '' */\n.icon-bullseye:before {\n content: '\\e90c';\n}\n/* '' */\n.icon-ellipsis:before {\n content: '\\e961';\n}\n/* '' */\n.icon-ellipsis-vert:before {\n content: '\\e962';\n}\n/* '' */\n.icon-rss-squared:before {\n content: '\\e85e';\n}\n/* '' */\n.icon-play-circled:before {\n content: '\\e89c';\n}\n/* '' */\n.icon-ticket:before {\n content: '\\e8d8';\n}\n/* '' */\n.icon-minus-squared:before {\n content: '\\e825';\n}\n/* '' */\n.icon-minus-squared-alt:before {\n content: '\\e826';\n}\n/* '' */\n.icon-level-up:before {\n content: '\\e898';\n}\n/* '' */\n.icon-level-down:before {\n content: '\\e955';\n}\n/* '' */\n.icon-ok-squared:before {\n content: '\\e81b';\n}\n/* '' */\n.icon-pencil-squared:before {\n content: '\\e848';\n}\n/* '' */\n.icon-link-ext-alt:before {\n content: '\\e82c';\n}\n/* '' */\n.icon-export-alt:before {\n content: '\\e846';\n}\n/* '' */\n.icon-compass:before {\n content: '\\e855';\n}\n/* '' */\n.icon-collapse:before {\n content: '\\e958';\n}\n/* '' */\n.icon-collapse-top:before {\n content: '\\e899';\n}\n/* '' */\n.icon-expand:before {\n content: '\\e89a';\n}\n/* '' */\n.icon-euro:before {\n content: '\\e8e4';\n}\n/* '' */\n.icon-pound:before {\n content: '\\e8e5';\n}\n/* '' */\n.icon-dollar:before {\n content: '\\e8e6';\n}\n/* '' */\n.icon-rupee:before {\n content: '\\e8e7';\n}\n/* '' */\n.icon-yen:before {\n content: '\\e8e8';\n}\n/* '' */\n.icon-renminbi:before {\n content: '\\e8e9';\n}\n/* '' */\n.icon-won:before {\n content: '\\e8ea';\n}\n/* '' */\n.icon-bitcoin:before {\n content: '\\e8eb';\n}\n/* '' */\n.icon-file:before {\n content: '\\e946';\n}\n/* '' */\n.icon-doc-text-inv:before {\n content: '\\e947';\n}\n/* '' */\n.icon-sort-name-up:before {\n content: '\\e8f1';\n}\n/* '' */\n.icon-sort-name-down:before {\n content: '\\e8f2';\n}\n/* '' */\n.icon-sort-alt-up:before {\n content: '\\e8ef';\n}\n/* '' */\n.icon-sort-alt-down:before {\n content: '\\e8f0';\n}\n/* '' */\n.icon-sort-number-up:before {\n content: '\\e8f3';\n}\n/* '' */\n.icon-sort-number-down:before {\n content: '\\e8f4';\n}\n/* '' */\n.icon-thumbs-up-alt:before {\n content: '\\e839';\n}\n/* '' */\n.icon-thumbs-down-alt:before {\n content: '\\e83a';\n}\n/* '' */\n.icon-down:before {\n content: '\\e951';\n}\n/* '' */\n.icon-up:before {\n content: '\\e954';\n}\n/* '' */\n.icon-right:before {\n content: '\\e953';\n}\n/* '' */\n.icon-left:before {\n content: '\\e952';\n}\n/* '' */\n.icon-female:before {\n content: '\\e80f';\n}\n/* '' */\n.icon-male:before {\n content: '\\e80e';\n}\n/* '' */\n.icon-sun:before {\n content: '\\e8ac';\n}\n/* '' */\n.icon-moon:before {\n content: '\\e8af';\n}\n/* '' */\n.icon-box:before {\n content: '\\e85c';\n}\n/* '' */\n.icon-bug:before {\n content: '\\e8dc';\n}\n/* '' */\n.icon-picture:before {\n content: '\\e812';\n}\n/* '' */\n.icon-globe:before {\n content: '\\e8ab';\n}\n/* '' */\n.icon-leaf:before {\n content: '\\e8b3';\n}\n/* '' */\n.icon-glass:before {\n content: '\\e801';\n}\n/* '' */\n.icon-gift:before {\n content: '\\e8d4';\n}\n/* '' */\n.icon-videocam:before {\n content: '\\e811';\n}\n/* '' */\n.icon-headphones:before {\n content: '\\e86b';\n}\n/* '' */\n.icon-video:before {\n content: '\\e810';\n}\n/* '' */\n.icon-target:before {\n content: '\\e8a7';\n}\n/* '' */\n.icon-award:before {\n content: '\\e959';\n}\n/* '' */\n.icon-thumbs-up:before {\n content: '\\e93f';\n}\n/* '' */\n.icon-thumbs-down:before {\n content: '\\e940';\n}\n/* '' */\n.icon-user:before {\n content: '\\e80c';\n}\n/* '' */\n.icon-users:before {\n content: '\\e80d';\n}\n/* '' */\n.icon-credit-card:before {\n content: '\\e965';\n}\n/* '' */\n.icon-briefcase:before {\n content: '\\e8c7';\n}\n/* '' */\n.icon-floppy:before {\n content: '\\e966';\n}\n/* '' */\n.icon-folder-open:before {\n content: '\\e81e';\n}\n/* '' */\n.icon-doc:before {\n content: '\\e857';\n}\n/* '' */\n.icon-calendar:before {\n content: '\\e866';\n}\n/* '' */\n.icon-chart-bar:before {\n content: '\\e90f';\n}\n/* '' */\n.icon-pin:before {\n content: '\\e831';\n}\n/* '' */\n.icon-attach:before {\n content: '\\e82d';\n}\n/* '' */\n.icon-book:before {\n content: '\\e8cc';\n}\n/* '' */\n.icon-phone:before {\n content: '\\e85f';\n}\n/* '' */\n.icon-megaphone:before {\n content: '\\e967';\n}\n/* '' */\n.icon-upload:before {\n content: '\\e83c';\n}\n/* '' */\n.icon-download:before {\n content: '\\e83b';\n}\n/* '' */\n.icon-signal:before {\n content: '\\e8a8';\n}\n/* '' */\n.icon-camera:before {\n content: '\\e813';\n}\n/* '' */\n.icon-shuffle:before {\n content: '\\e956';\n}\n/* '' */\n.icon-volume-off:before {\n content: '\\e94c';\n}\n/* '' */\n.icon-volume-down:before {\n content: '\\e869';\n}\n/* '' */\n.icon-volume-up:before {\n content: '\\e86a';\n}\n/* '' */\n.icon-search:before {\n content: '\\e803';\n}\n/* '' */\n.icon-key:before {\n content: '\\e8d9';\n}\n/* '' */\n.icon-lock:before {\n content: '\\e82e';\n}\n/* '' */\n.icon-lock-open:before {\n content: '\\e82f';\n}\n/* '' */\n.icon-bell:before {\n content: '\\e84e';\n}\n/* '' */\n.icon-bookmark:before {\n content: '\\e836';\n}\n/* '' */\n.icon-fire:before {\n content: '\\e8d5';\n}\n/* '' */\n.icon-wrench:before {\n content: '\\e864';\n}\n/* '' */\n.icon-hammer:before {\n content: '\\e8f5';\n}\n/* '' */\n.icon-clock:before {\n content: '\\e86c';\n}\n/* '' */\n.icon-truck:before {\n content: '\\e8e2';\n}\n/* '' */\n.icon-block:before {\n content: '\\e86e';\n}\n/* '' */\ndiv.jGrowl {\n z-index: 1040;\n color: #fff;\n}\n/** Normal Style Positions **/\ndiv.jGrowl {\n position: absolute;\n}\nbody > div.jGrowl {\n position: fixed;\n}\ndiv.jGrowl.top-left {\n left: 0px;\n top: 0px;\n}\ndiv.jGrowl.top-right {\n right: 0px;\n top: 0px;\n}\ndiv.jGrowl.bottom-left {\n left: 0px;\n bottom: 0px;\n}\ndiv.jGrowl.bottom-right {\n right: 0px;\n bottom: 0px;\n}\ndiv.jGrowl.center {\n top: 0px;\n width: 50%;\n left: 25%;\n}\n/** Cross Browser Styling **/\ndiv.center div.jGrowl-notification,\ndiv.center div.jGrowl-closer {\n margin-left: auto;\n margin-right: auto;\n}\ndiv.jGrowl div.jGrowl-notification,\ndiv.jGrowl div.jGrowl-closer {\n background-color: #777;\n zoom: 1;\n width: 260px;\n padding: 15px 20px;\n margin-top: 5px;\n margin-bottom: 5px;\n text-align: left;\n display: none;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n border-radius: 5px;\n}\ndiv.jGrowl div.jGrowl-notification {\n min-height: 80px;\n}\ndiv.jGrowl div.jGrowl-notification,\ndiv.jGrowl div.jGrowl-closer {\n margin: 20px;\n}\ndiv.jGrowl div.jGrowl-notification div.jGrowl-header {\n font-weight: bold;\n font-size: .85em;\n}\ndiv.jGrowl div.jGrowl-notification div.jGrowl-close {\n z-index: 99;\n float: right;\n font-weight: bold;\n font-size: 1em;\n cursor: pointer;\n}\ndiv.jGrowl div.jGrowl-closer {\n padding-top: 4px;\n padding-bottom: 4px;\n cursor: pointer;\n font-size: .9em;\n font-weight: bold;\n text-align: center;\n}\n/** Hide jGrowl when printing **/\n@media print {\n div.jGrowl {\n display: none;\n }\n}\n/* Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n.pln {\n color: #000000;\n}\n/* plain text */\n@media screen {\n .str {\n color: #008800;\n }\n /* string content */\n .kwd {\n color: #000088;\n }\n /* a keyword */\n .com {\n color: #880000;\n }\n /* a comment */\n .typ {\n color: #660066;\n }\n /* a type name */\n .lit {\n color: #006666;\n }\n /* a literal value */\n /* punctuation, lisp open bracket, lisp close bracket */\n .pun,\n .opn,\n .clo {\n color: #666600;\n }\n .tag {\n color: #000088;\n }\n /* a markup tag name */\n .atn {\n color: #660066;\n }\n /* a markup attribute name */\n .atv {\n color: #008800;\n }\n /* a markup attribute value */\n .dec,\n .var {\n color: #660066;\n }\n /* a declaration; a variable name */\n .fun {\n color: #ff0000;\n }\n /* a function name */\n}\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n .str {\n color: #006600;\n }\n .kwd {\n color: #006;\n font-weight: bold;\n }\n .com {\n color: #600;\n font-style: italic;\n }\n .typ {\n color: #404;\n font-weight: bold;\n }\n .lit {\n color: #004444;\n }\n .pun,\n .opn,\n .clo {\n color: #444400;\n }\n .tag {\n color: #006;\n font-weight: bold;\n }\n .atn {\n color: #440044;\n }\n .atv {\n color: #006600;\n }\n}\n/* Put a border around prettyprinted code snippets. */\n/* pre.prettyprint { padding: 2px; border: 1px solid #888 } */\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums {\n margin-top: 0;\n margin-bottom: 0;\n}\n/* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L5,\nli.L6,\nli.L7,\nli.L8 {\n list-style-type: none;\n}\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 {\n background: #eeeeee;\n}\n/*\n\nOriginal style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>\n\npre code {\n display: block; padding: 0.5em;\n background: #F0F0F0;\n}\n*/\npre code,\npre .subst,\npre .tag .title,\npre .lisp .title,\npre .clojure .built_in,\npre .nginx .title {\n color: black;\n}\npre .string,\npre .title,\npre .constant,\npre .parent,\npre .tag .value,\npre .rules .value,\npre .rules .value .number,\npre .preprocessor,\npre .haml .symbol,\npre .ruby .symbol,\npre .ruby .symbol .string,\npre .aggregate,\npre .template_tag,\npre .django .variable,\npre .smalltalk .class,\npre .addition,\npre .flow,\npre .stream,\npre .bash .variable,\npre .apache .tag,\npre .apache .cbracket,\npre .tex .command,\npre .tex .special,\npre .erlang_repl .function_or_atom,\npre .asciidoc .header,\npre .markdown .header,\npre .coffeescript .attribute {\n color: #800;\n}\npre .comment,\npre .annotation,\npre .template_comment,\npre .diff .header,\npre .chunk,\npre .asciidoc .blockquote,\npre .markdown .blockquote {\n color: #888;\n}\npre .number,\npre .date,\npre .regexp,\npre .literal,\npre .hexcolor,\npre .smalltalk .symbol,\npre .smalltalk .char,\npre .go .constant,\npre .change,\npre .lasso .variable,\npre .asciidoc .bullet,\npre .markdown .bullet,\npre .asciidoc .link_url,\npre .markdown .link_url {\n color: #080;\n}\npre .label,\npre .javadoc,\npre .ruby .string,\npre .decorator,\npre .filter .argument,\npre .localvars,\npre .array,\npre .attr_selector,\npre .important,\npre .pseudo,\npre .pi,\npre .haml .bullet,\npre .doctype,\npre .deletion,\npre .envvar,\npre .shebang,\npre .apache .sqbracket,\npre .nginx .built_in,\npre .tex .formula,\npre .erlang_repl .reserved,\npre .prompt,\npre .asciidoc .link_label,\npre .markdown .link_label,\npre .vhdl .attribute,\npre .clojure .attribute,\npre .asciidoc .attribute,\npre .lasso .attribute,\npre .coffeescript .property {\n color: #8888ff;\n}\npre .keyword,\npre .id,\npre .title,\npre .built_in,\npre .aggregate,\npre .css .tag,\npre .javadoctag,\npre .phpdoc,\npre .yardoctag,\npre .smalltalk .class,\npre .winutils,\npre .bash .variable,\npre .apache .tag,\npre .go .typename,\npre .tex .command,\npre .asciidoc .strong,\npre .markdown .strong,\npre .request,\npre .status {\n font-weight: bold;\n}\npre .asciidoc .emphasis,\npre .markdown .emphasis {\n font-style: italic;\n}\npre .nginx .built_in {\n font-weight: normal;\n}\npre .coffeescript .javascript,\npre .javascript .xml,\npre .lasso .markup,\npre .tex .formula,\npre .xml .javascript,\npre .xml .vbscript,\npre .xml .css,\npre .xml .cdata {\n opacity: 0.5;\n}\n/* Bootstrap */\nbody {\n tab-size: 4;\n}\n#preview-contents {\n padding: 15px;\n margin-bottom: 50px;\n}\n.ui-layout-east #preview-contents {\n padding-left: 5px;\n}\n.working {\n cursor: progress;\n}\n.btn,\n.dropdown-menu {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n}\n.list-group .nav {\n border-left: 10px solid rgba(0, 0, 0, 0.05);\n margin-left: 10px;\n}\n.list-group-item {\n padding: 10px 15px;\n}\n.list-group .list-group-item {\n border-radius: 0;\n}\n.list-group-item.active:hover {\n background-color: #888888;\n}\n.move-to-front {\n z-index: 1050 !important;\n}\n/*******************\n * Buttons\n *******************/\n.btn {\n padding: 8px 11px;\n}\n.btn-default:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.btn-primary:hover {\n color: #ffffff;\n}\n.btn-success:hover {\n color: #bbbbbb;\n background-color: #333333 !important;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 11px;\n padding-left: 11px;\n}\n/********************\n * Input\n ********************/\n.form-inline .col-lg-1 {\n width: 8.333333333333332%;\n}\n.form-inline .col-lg-2 {\n width: 16.666666666666664%;\n}\n.form-inline .col-lg-3 {\n width: 25%;\n}\n.form-inline .col-lg-4 {\n width: 33.33333333333333%;\n}\n.form-inline .col-lg-5 {\n width: 41.66666666666667%;\n}\n.form-inline .col-lg-6 {\n width: 50%;\n}\n.form-inline .col-lg-7 {\n width: 58.333333333333336%;\n}\n.form-inline .col-lg-8 {\n width: 66.66666666666666%;\n}\n.form-inline .col-lg-9 {\n width: 75%;\n}\n.form-inline .col-lg-10 {\n width: 83.33333333333334%;\n}\n.form-inline .col-lg-11 {\n width: 91.66666666666666%;\n}\n.form-inline .col-lg-12 {\n width: 100%;\n}\n.form-inline * {\n float: none;\n}\n.form-control:focus {\n border-color: #444444;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(128, 128, 128, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(128, 128, 128, 0.6);\n}\n.help-block {\n font-size: 12px;\n}\n.modal textarea.error,\n.modal input.error {\n border-color: #ff8661;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(255, 134, 97, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(255, 134, 97, 0.6);\n}\n.input-group-addon {\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.input-group-btn .btn i {\n font-size: 120%;\n}\n.input-group-btn:first-child .btn {\n margin-right: 6px;\n}\n.input-group-btn:last-child .btn {\n margin-left: 6px;\n}\n/*******************\n * Modal\n *******************/\n.modal-backdrop {\n background-color: #999;\n}\n.modal-content {\n border-width: 5px;\n}\n/*******************\n * Navbar\n *******************/\n.navbar {\n position: static;\n padding: 0;\n}\n.navbar .left-space {\n width: 30px;\n height: 38px;\n}\n.navbar .right-space {\n width: 20px;\n height: 38px;\n}\n.navbar .nav {\n float: left;\n margin: 6px 10px 5px;\n}\n.navbar .nav > li {\n display: inline-block;\n}\n.navbar .nav.pull-right {\n float: right;\n}\n.navbar .nav.pull-right > li > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.navbar .nav.pull-right > li > .dropdown-menu .dropdown-menu {\n right: 100%;\n left: auto;\n margin-right: -1px;\n margin-left: 0;\n}\n.navbar .btn-group > .btn.disabled *,\n.navbar .btn-group > .btn.blocked *,\n.navbar .btn-group > .btn[disabled] * {\n color: rgba(187, 187, 187, 0.3);\n}\n.navbar .file-title-navbar {\n padding: 4px 15px;\n font-size: 20px;\n font-weight: 200;\n color: #999999;\n max-width: 400px;\n overflow: hidden;\n}\n.navbar .file-title-navbar i {\n margin-right: 6px;\n}\n.navbar .input-file-title {\n margin-right: 10px;\n}\n.navbar .working-indicator {\n background-image: none !important;\n width: 43px;\n height: 11px;\n background-position: 0 0;\n margin-top: 15px;\n}\n.navbar .working-indicator.show {\n background-image: url(\"../img/ajax-loader.gif\") !important;\n}\n/*********************\n * Menu/Document panels\n *********************/\n.menu-panel,\n.document-panel {\n display: block;\n position: absolute;\n height: 100%;\n z-index: 10;\n overflow: initial;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.menu-panel .collapse-button i,\n.document-panel .collapse-button i {\n color: #777;\n font-size: 19px;\n}\n.menu-panel .panel-content,\n.document-panel .panel-content {\n overflow: auto;\n padding-bottom: 30px;\n height: 100%;\n}\n.menu-panel .panel-content a > i,\n.document-panel .panel-content a > i {\n margin-right: 3px;\n color: inherit;\n}\n.menu-panel {\n background-color: #333333;\n width: 280px !important;\n margin-left: -312px;\n -webkit-transition: margin-left 0.35s ease;\n -moz-transition: margin-left 0.35s ease;\n -o-transition: margin-left 0.35s ease;\n transition: margin-left 0.35s ease;\n}\n.menu-panel .sub-menu {\n background-color: #ffffff;\n}\n.menu-panel.in {\n margin-left: 0;\n}\n.menu-panel.in .collapse-button {\n background-color: #333333;\n}\n.menu-panel .collapse-button {\n right: -80px;\n position: absolute;\n margin-top: 6px;\n padding: 2px 20px;\n z-index: -1;\n}\n.menu-panel .panel-content {\n padding-top: 6px;\n border-right: 5px solid #e8e8e8;\n}\n.document-panel {\n right: 0;\n width: 350px !important;\n margin-right: -382px;\n -webkit-transition: margin-right 0.35s ease;\n -moz-transition: margin-right 0.35s ease;\n -o-transition: margin-right 0.35s ease;\n transition: margin-right 0.35s ease;\n}\n.document-panel.in {\n margin-right: 0;\n}\n.document-panel.in .collapse-button {\n background-color: #333333;\n}\n.document-panel .collapse-button {\n left: -80px;\n position: absolute;\n margin-top: 6px;\n padding: 7px 18px;\n z-index: -1;\n}\n.document-panel .collapse-button i.icon-folder-open {\n font-size: 22px;\n}\n.document-panel .panel-content {\n background-color: #ffffff;\n padding-top: 80px;\n border-left: 5px solid #e8e8e8;\n}\n.document-panel .panel-content .icon-layers {\n font-size: 135%;\n}\n.document-panel .search-bar {\n position: absolute;\n background-color: #333333;\n margin: -10px 25px 0;\n padding: 20px 5px 10px 15px;\n z-index: 3;\n border: 1px solid #e8e8e8;\n border-top: 0;\n border-radius: 6px;\n}\n.document-panel .search-bar .form-control {\n padding: 8px 30px 8px 12px;\n}\n.document-panel .search-bar .close {\n position: absolute;\n line-height: 10px;\n margin-left: -30px;\n margin-top: 2px;\n padding: 0 8px 4px;\n font-weight: normal;\n height: 34px;\n}\n.document-panel .list-group-item {\n margin: 0;\n}\n.document-panel .folder {\n font-weight: bold;\n color: #555555;\n font-size: 15px;\n border-bottom-color: #111111;\n}\n.document-panel .list-group {\n margin: 0;\n}\n.document-panel .list-group .nav {\n border: 0;\n margin: 0 20px 20px;\n}\n.dropdown-file-selector {\n top: 6px;\n right: 30px;\n left: auto;\n margin: 0;\n min-width: 280px;\n max-width: 400px;\n overflow-x: hidden;\n max-height: 400px;\n overflow-y: auto;\n}\n/**************************\n * Document manager\n **************************/\n.modal-document-manager .nav-pills {\n margin-bottom: 15px;\n}\n.modal-document-manager .list-group .nav {\n margin-left: 40px;\n margin-bottom: 30px;\n}\n.modal-document-manager .list-group-item {\n padding: 3px;\n margin: 0;\n}\n.modal-document-manager .list-group-item i {\n margin-right: 3px;\n}\n.modal-document-manager .list-group-item .btn {\n float: right;\n}\n.modal-document-manager .list-group-item .btn i {\n margin: 0;\n font-size: 105%;\n}\n.modal-document-manager .list-group-item .btn i.icon-pencil {\n font-size: 115%;\n}\n.modal-document-manager .file-list .list-group-item {\n padding: 0 3px;\n}\n.modal-document-manager .folder {\n font-weight: bold;\n color: #555555;\n font-size: 15px;\n border-bottom-color: #111111;\n}\n.modal-document-manager .checkbox {\n float: right;\n margin: 0;\n padding: 0;\n cursor: pointer;\n}\n.modal-document-manager .checkbox input {\n cursor: pointer;\n margin: 0 16px;\n height: 38px;\n}\n.modal-document-manager .input-rename {\n width: 220px;\n}\n.modal-document-manager .name,\n.modal-document-manager .file-count {\n padding: 9px 20px 9px 15px;\n}\n/********************\n * Extensions buttons\n ********************/\n#extension-buttons .btn-group {\n margin: 0;\n}\n#extension-buttons .link-container {\n min-width: 280px;\n white-space: normal;\n}\n#extension-buttons .link-container .link-list {\n margin-top: 20px;\n margin-bottom: 20px;\n}\n#extension-buttons .link-container .link-list > * {\n margin-bottom: 10px;\n}\n#extension-buttons > .btn-group > .btn,\n.extension-preview-buttons > .btn-group > .btn {\n border-radius: 0;\n}\n#extension-buttons > .btn-group:first-child > .btn,\n.extension-preview-buttons > .btn-group:first-child > .btn {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n#extension-buttons > .btn-group:last-child > .btn,\n.extension-preview-buttons > .btn-group:last-child > .btn {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n/********************\n * Preview extensions buttons\n ********************/\n.extension-preview-buttons {\n position: absolute;\n right: 30px;\n z-index: 1;\n top: 6px;\n}\n.ui-layout-resizer-south-closed > .extension-preview-buttons {\n display: none !important;\n}\n.extension-preview-buttons .dropdown-menu {\n border: 0;\n margin-top: 1px;\n}\n.extension-preview-buttons .btn-group {\n margin: 0 0 0 1px;\n}\n.extension-preview-buttons .btn-group .btn {\n position: initial;\n}\n.extension-preview-buttons .btn-group.open .btn {\n background-color: #e8e8e8;\n}\n.extension-preview-buttons .btn-group.open .btn i {\n color: #bbbbbb;\n}\n.extension-preview-buttons .dropdown-menu {\n background-color: #e8e8e8;\n padding-bottom: 20px;\n}\n.extension-preview-buttons .markdown-syntax,\n.extension-preview-buttons .table-of-contents {\n overflow-y: auto;\n overflow-x: hidden;\n padding-right: 20px;\n margin-right: -20px;\n width: 320px;\n}\n.extension-preview-buttons .markdown-syntax {\n white-space: normal;\n max-height: 350px;\n}\n.extension-preview-buttons .table-of-contents {\n margin-left: -10px;\n max-height: 400px;\n}\n.extension-preview-buttons .table-of-contents ul {\n margin-left: 10px;\n padding-left: 10px;\n}\n/**************************\n * Settings dialog\n **************************/\n.modal-settings .modal-header {\n padding-bottom: 0;\n}\n.modal-settings textarea {\n max-width: 100%;\n min-height: 100px;\n}\n.modal-settings .panel {\n border: 0;\n border-radius: inherit;\n background: #ffffff;\n}\n.modal-settings .accordion-heading {\n padding: 12px 15px;\n}\n.modal-settings .accordion-heading .accordion-toggle {\n display: inline;\n padding: 0;\n font-weight: bold;\n cursor: pointer;\n}\n.modal-settings .accordion-heading .accordion-toggle:hover {\n text-decoration: underline;\n}\n.modal-settings .accordion-heading .checkbox {\n margin-top: 0;\n margin-bottom: 0;\n}\n.modal-settings .accordion-inner {\n border: 0;\n padding: 10px 40px 20px;\n}\n.modal-settings .accordion-inner .form-horizontal .control-label {\n text-align: left;\n}\n.modal-settings .accordion-inner .form-horizontal .form-inline .label-text {\n margin-left: 15px;\n}\n.modal-settings .tab-pane-button-container {\n width: 220px;\n margin: 10px auto 20px;\n}\n.modal-settings .tab-pane-button-container .btn {\n text-align: initial;\n padding-left: 15px;\n}\n.modal-settings .nav-tabs {\n margin: 15px 0 0;\n}\n.modal-settings .nav-tabs > li > a:hover,\n.modal-settings .nav-tabs > li > a:focus {\n background-color: #f2f2f2;\n}\n.modal-settings .nav-tabs > li.active > a,\n.modal-settings .nav-tabs > li.active > a:hover,\n.modal-settings .nav-tabs > li.active > a:focus {\n color: #ffffff;\n background-color: #888888;\n border-color: #888888;\n}\n/********************************\n * Publish/Sync dialogs\n ********************************/\n.modal-manage-sync .sync-list {\n margin-bottom: 20px;\n}\n.modal-manage-sync .sync-list .input-group {\n margin-bottom: 10px;\n}\n.modal-manage-publish .publish-list {\n margin-bottom: 20px;\n}\n.modal-manage-publish .publish-list .input-group {\n margin-bottom: 10px;\n}\n/*********************************\n * UI Layout\n *********************************/\n.ui-layout-resizer {\n overflow: visible !important;\n font-size: 14px !important;\n}\n.ui-layout-resizer .btn {\n background-color: rgba(68, 68, 68, 0.5);\n float: none;\n}\n.ui-layout-resizer .btn i {\n color: rgba(187, 187, 187, 0.3);\n}\n.ui-layout-resizer .btn:hover,\n.ui-layout-resizer .btn:focus,\n.ui-layout-resizer .btn:active,\n.ui-layout-resizer .btn.active {\n background-color: rgba(68, 68, 68, 0.5);\n}\n.ui-layout-resizer .btn:hover i,\n.ui-layout-resizer .btn:focus i,\n.ui-layout-resizer .btn:active i,\n.ui-layout-resizer .btn.active i {\n color: #bbbbbb;\n}\n.ui-layout-resizer .ui-layout-toggler {\n font-size: 21px !important;\n background-color: transparent;\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-east {\n line-height: 55px;\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-east.ui-layout-toggler-east-open i:before {\n content: '\\e950';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-east.ui-layout-toggler-east-closed i:before {\n content: '\\e94f';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-south.ui-layout-toggler-south-open i:before {\n content: '\\e94d';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-south.ui-layout-toggler-south-closed i:before {\n content: '\\e94e';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-north {\n left: 0 !important;\n line-height: 0;\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-north i {\n margin-top: -5px;\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-north.ui-layout-toggler-north-open i:before {\n content: '\\e94e';\n}\n.ui-layout-resizer .ui-layout-toggler.ui-layout-toggler-north.ui-layout-toggler-north-closed i:before {\n content: '\\e94d';\n}\n.ui-layout-resizer.ui-layout-resizer-east .ui-layout-toggler-north {\n width: 35px !important;\n height: 60px !important;\n}\n.ui-layout-resizer.ui-layout-resizer-south .ui-layout-toggler-north {\n height: 35px !important;\n}\n/*********************\n * Markdown\n *********************/\ncode {\n color: #333333;\n background-color: rgba(0, 0, 0, 0.05);\n}\na code {\n color: inherit;\n}\nh1 {\n margin: 30px 0 30px;\n}\n.toc ul {\n list-style-type: none;\n}\np,\npre,\nblockquote {\n margin: 0 0 20px;\n}\nhr {\n border-top: 1px solid #ddd;\n margin: 30px 0;\n}\n#wmd-input {\n -webkit-box-shadow: none !important;\n -moz-box-shadow: none !important;\n box-shadow: none !important;\n}\n#wmd-input,\n#md-section-helper {\n resize: none;\n border: none !important;\n}\n.preview-container {\n overflow: auto;\n}\n.wmd-button-row {\n padding: 0;\n}\n.wmd-spacer {\n display: none;\n}\n.wmd-spacer + .wmd-button {\n margin-left: 20px;\n}\n.wmd-prompt-background {\n display: none;\n}\ndiv.dropdown-menu {\n padding: 5px 20px;\n}\ndiv.dropdown-menu p,\ndiv.dropdown-menu blockquote {\n margin: 10px 0;\n}\ndiv.dropdown-menu .stat {\n margin-bottom: 10px;\n}\ndiv.dropdown-menu i {\n margin-right: 0;\n}\ndiv.dropdown-menu textarea {\n width: 250px;\n height: 150px;\n resize: none;\n}\n.footnote {\n vertical-align: top;\n position: relative;\n top: -0.5em;\n font-size: 0.8em;\n}\n/***********************\n * Icons\n ***********************/\n[class^=\"icon-\"],\n[class*=\" icon-\"] {\n display: inline-block;\n line-height: 14px;\n vertical-align: middle;\n background-repeat: no-repeat;\n}\n[class^=\"icon-\"].icon-white,\n[class*=\" icon-\"].icon-white {\n color: #fff;\n}\n.icon-code {\n font-size: 80%;\n margin-left: -1px;\n margin-right: 5px;\n}\n.icon-folder-open {\n font-size: 80%;\n margin-left: -1px;\n margin-right: 5px;\n}\n.icon-chart-bar {\n font-size: 90%;\n margin-right: 2px;\n}\n.icon-trash {\n font-size: 95%;\n}\n[class^=\"icon-provider-\"],\n[class*=\" icon-provider-\"] {\n background-image: url(\"libs/bootstrap/less/../../../../img/icons.png\");\n width: 18px;\n height: 16px;\n}\n@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {\n [class^=\"icon-provider-\"],\n [class*=\" icon-provider-\"] {\n background-image: url(\"libs/bootstrap/less/../../../../img/icons2x.png\");\n background-size: 256px 16px;\n }\n}\n.icon-provider-stackedit {\n background-position: 0 0;\n}\n.icon-provider-gdrive {\n background-position: -18px 0;\n}\n.icon-provider-gdrive.realtime {\n background-position: -162px 0;\n}\n.icon-provider-dropbox {\n background-position: -37px 0;\n}\n.icon-provider-github,\n.icon-provider-gist {\n background-position: -54px 0;\n}\n.icon-provider-blogger {\n background-position: -72px 0;\n}\n.icon-provider-tumblr {\n background-position: -90px 0;\n}\n.icon-provider-wordpress {\n background-position: -108px 0;\n}\n.icon-provider-ssh {\n background-position: -126px 0;\n}\n.icon-provider-gplus {\n background-position: -144px 0;\n}\n/* Google picker */\n.picker-dialog {\n z-index: 1050 !important;\n}\n.action-import-image-gplus {\n float: left;\n}\n/*\n.nav>li>a:hover,.nav>li>a:focus {\n background-color: @bg-light;\n}\n*/\n.tooltip-inner {\n text-align: left;\n}\n.tooltip li {\n line-height: 1.4;\n}\ncode,\npre {\n font-family: Menlo, Consolas, \"Courier New\", monospace;\n}\n/* Definition list */\ndt,\ndd {\n margin-top: 5px;\n margin-bottom: 5px;\n}\ndd {\n margin-left: 40px;\n}\n/* Table style */\ntable {\n margin-bottom: 20px;\n}\ntable th,\ntable td {\n padding: 8px;\n line-height: 20px;\n text-align: left;\n vertical-align: top;\n border-top: 1px solid #dddddd;\n}\ntable th {\n font-weight: bold;\n}\ntable thead th {\n vertical-align: bottom;\n}\ntable caption + thead tr:first-child th,\ntable caption + thead tr:first-child td,\ntable colgroup + thead tr:first-child th,\ntable colgroup + thead tr:first-child td,\ntable thead:first-child tr:first-child th,\ntable thead:first-child tr:first-child td {\n border-top: 0;\n}\ntable tbody + tbody {\n border-top: 2px solid #dddddd;\n}\nblockquote {\n border-left: 10px solid rgba(0, 0, 0, 0.05);\n}\nblockquote p {\n margin-bottom: 20px;\n font-size: 14px;\n font-weight: 300;\n line-height: 20px;\n}\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nul,\nol {\n margin-bottom: 20px;\n}\ninput[type=\"file\"] {\n line-height: inherit;\n height: inherit;\n border: none !important;\n}\n.drop-zone {\n border: 2px dashed #bbb;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n padding: 40px;\n text-align: center;\n font-size: 24px;\n color: #bbb;\n}\n.modal-import-harddrive-html textarea {\n width: 530px;\n max-width: 530px;\n height: 120px;\n}\n#md-section-helper {\n position: absolute;\n top: -100px;\n height: 1px;\n padding: 0 6px;\n overflow-y: scroll;\n z-index: -1;\n}\n.lock-ui {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n}\n.gecko #md-section-helper {\n /* Firefox doesn't show the scrollbar if height is less than 40px */\n\n height: 40px;\n}\n.opera #md-section-helper {\n /* Opera needs to have the textarea in the viewport to evaluate size correctly */\n\n top: 0;\n}\n/* Viewer */\n.viewer #navbar {\n position: fixed;\n}\n.viewer .navbar-inner {\n background-color: rgba(215, 215, 215, 0.75) !important;\n}\n.viewer #preview-contents {\n max-width: 1024px;\n margin: 50px auto;\n}\n.viewer .btn-group {\n margin-right: 0;\n margin-left: 0;\n}\n/* Bootstrap */\n/*\ninput[readonly], select[readonly], textarea[readonly] {\n background-color: #fff;\n}\n\nblockquote {\n border-color: #333;\n}\n\n#preview-contents {\n color: #ccc;\n}\n\n#preview-contents blockquote {\n border-color: #444;\n}\n\n.muted {\n color: #aaa;\n}\n\n[class^=\"icon-\"], [class*=\" icon-\"] {\n background-image: url(\"../img/glyphicons-halflings-white.png\");\n}\n\n.navbar-inner .btn,\n#extension-preview-buttons .btn {\n background-color: #444;\n}\n\n#extension-preview-buttons .btn-group:hover .btn {\n background-color: #333;\n}\n\n.navbar-inner .btn:hover,\n.navbar-inner .btn:focus,\n.navbar-inner .btn:active,\n.navbar-inner .btn.active,\n.btn-group.open .btn.dropdown-toggle,\n#extension-preview-buttons .dropdown-menu,\n#extension-preview-buttons .btn-group.open .btn,\n#extension-preview-buttons .btn-group.open:hover .btn {\n background-color: #444;\n}\n\n.btn:hover {\n background-color: #333;\n}\n\n.btn:hover, .btn:focus {\n color: #fff;\n}\n\n.btn-primary {\n background-color: #444;\n}\n\n.btn-primary:hover {\n background-color: #555;\n}\n\n.navbar-inner .btn.disabled,\n.navbar-inner .btn.blocked,\n.navbar-inner .btn[disabled] {\n background-color: #444;\n}\n\n.navbar .nav > li > a {\n color: #bbb;\n}\n\n.dropdown-menu {\n border-color: #333 !important;\n}\n\n.dropdown-menu > li > a {\n color: #aaa;\n}\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus,\n.dropdown-submenu:hover > a,\n.dropdown-submenu:focus > a,\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus,\ndiv.jGrowl div.jGrowl-notification {\n background-color: #444;\n}\n\n.dropdown-menu .divider {\n background-color: #111 !important;\n border-color: #111 !important;\n color: #555 !important;\n}\n\n.dropdown-menu:before {\n border-bottom-color: #333 !important;\n}\n\n.navbar .nav > li > .dropdown-menu:after {\n border-bottom-color: #111;\n}\n\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #444;\n}\n\n.modal textarea:focus,\ninput[type=\"text\"]:focus,\ninput[type=\"password\"]:focus,\ninput[type=\"datetime\"]:focus,\ninput[type=\"datetime-local\"]:focus,\ninput[type=\"date\"]:focus,\ninput[type=\"month\"]:focus,\ninput[type=\"time\"]:focus,\ninput[type=\"week\"]:focus,\ninput[type=\"number\"]:focus,\ninput[type=\"email\"]:focus,\ninput[type=\"url\"]:focus,\ninput[type=\"search\"]:focus,\ninput[type=\"tel\"]:focus,\ninput[type=\"color\"]:focus,\n.uneditable-input:focus\n{\n background-color: #eee !important;\n -webkit-box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0), 0 0 8px rgba(255, 255, 255, 1) !important;\n -moz-box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0), 0 0 8px rgba(255, 255, 255, 1) !important;\n box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0), 0 0 8px rgba(255, 255, 255, 1) !important;\n}\n\n.error {\n background-color: #ffbca8 !important;\n -webkit-box-shadow: inset 0 1px 1px rgba(255, 134, 97, 0), 0 0 8px rgba(255, 255, 255, 1) !important;\n -moz-box-shadow: inset 0 1px 1px rgba(255, 134, 97, 0), 0 0 8px rgba(255, 255, 255, 1) !important;\n box-shadow: inset 0 1px 1px rgba(255, 134, 97, 0), 0 0 8px rgba(255, 255, 255, 1) !important;\n}\n\n#modal-settings .accordion-group {\n border-bottom-color: #222;\n}\n\n.nav-tabs > .active > a, .nav-tabs > .active > a:hover, .nav-tabs > .active > a:focus {\n color: #fff;\n background-color: #333;\n border-color: #333;\n}\n\n.nav > li > a:hover,\n.nav > li > a:focus {\n background-color: #222;\n}\n\n.nav-tabs > li > a:hover,\n.nav-tabs > li > a:focus {\n border-color: #222 #222 #222;\n}\n\n.nav .dropdown-toggle .caret, .nav .dropdown-toggle:hover .caret, .nav .dropdown-toggle:focus .caret {\n border-top-color: #888;\n border-bottom-color: #888;\n}\n\n.working-indicator.show {\n background-image: url(\"styles/ajax-loader.gif\") !important;\n}\n\n.viewer .navbar-inner {\n background-color:rgba(80,80,80,0.75) !important;\n}\n\n*/", !0);
}), requirejs.s.contexts._.nextTick = requirejs.nextTick;