{"version":3,"file":"764.js","mappings":"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","sources":["webpack://WebComponents/./runestone/codelens/js/pytutor-embed.bundle.js"],"sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 87);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! jQuery v3.0.0 | (c) jQuery Foundation | jquery.org/license */\n!function(a,b){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(\"jQuery requires a window with a document\");return b(a)}:b(a)}(\"undefined\"!=typeof window?window:this,function(a,b){\"use strict\";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement(\"script\");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q=\"3.0.0\",r=function(a,b){return new r.fn.init(a,b)},s=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(\"boolean\"==typeof g&&(j=g,g=arguments[h]||{},h++),\"object\"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:\"jQuery\"+(q+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return\"function\"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return(\"number\"===b||\"string\"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return a&&\"[object Object]\"===k.call(a)?(b=e(a))?(c=l.call(b,\"constructor\")&&b.constructor,\"function\"==typeof c&&m.call(c)===n):!0:!1},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+\"\":\"object\"==typeof a||\"function\"==typeof a?j[k.call(a)]||\"object\":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,\"ms-\").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?\"\":(a+\"\").replace(s,\"\")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,\"string\"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;d>f;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;return\"string\"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a)?(d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e):void 0},now:Date.now,support:o}),\"function\"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(a,b){j[\"[object \"+b+\"]\"]=b.toLowerCase()});function w(a){var b=!!a&&\"length\"in a&&a.length,c=r.type(a);return\"function\"===c||r.isWindow(a)?!1:\"array\"===c||0===b||\"number\"==typeof b&&b>0&&b-1 in a}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=\"sizzle\"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},J=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",K=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",L=\"(?:\\\\\\\\.|[\\\\w-]|[^\\x00-\\\\xa0])+\",M=\"\\\\[\"+K+\"*(\"+L+\")(?:\"+K+\"*([*^$|!~]?=)\"+K+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+L+\"))|)\"+K+\"*\\\\]\",N=\":(\"+L+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+M+\")*)|.*)\\\\)|)\",O=new RegExp(K+\"+\",\"g\"),P=new RegExp(\"^\"+K+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+K+\"+$\",\"g\"),Q=new RegExp(\"^\"+K+\"*,\"+K+\"*\"),R=new RegExp(\"^\"+K+\"*([>+~]|\"+K+\")\"+K+\"*\"),S=new RegExp(\"=\"+K+\"*([^\\\\]'\\\"]*?)\"+K+\"*\\\\]\",\"g\"),T=new RegExp(N),U=new RegExp(\"^\"+L+\"$\"),V={ID:new RegExp(\"^#(\"+L+\")\"),CLASS:new RegExp(\"^\\\\.(\"+L+\")\"),TAG:new RegExp(\"^(\"+L+\"|[*])\"),ATTR:new RegExp(\"^\"+M),PSEUDO:new RegExp(\"^\"+N),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+K+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+K+\"*(?:([+-]|)\"+K+\"*(\\\\d+)|))\"+K+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+J+\")$\",\"i\"),needsContext:new RegExp(\"^\"+K+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+K+\"*((?:-\\\\d)?\\\\d*)\"+K+\"*\\\\)|)(?=[^-]|$)\",\"i\")},W=/^(?:input|select|textarea|button)$/i,X=/^h\\d$/i,Y=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,$=/[+~]/,_=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+K+\"?|(\"+K+\")|.)\",\"ig\"),aa=function(a,b,c){var d=\"0x\"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g,ca=function(a,b){return b?\"\\x00\"===a?\"\\ufffd\":a.slice(0,-1)+\"\\\\\"+a.charCodeAt(a.length-1).toString(16)+\" \":\"\\\\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:\"parentNode\",next:\"legend\"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],\"string\"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+\" \"]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if(\"object\"!==b.nodeName.toLowerCase()){(k=b.getAttribute(\"id\"))?k=k.replace(ba,ca):b.setAttribute(\"id\",k=u),o=g(a),h=o.length;while(h--)o[h]=\"#\"+k+\" \"+sa(o[h]);r=o.join(\",\"),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute(\"id\")}}}return i(a.replace(P,\"$1\"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+\" \")>d.cacheLength&&delete b[a.shift()],b[c+\" \"]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement(\"fieldset\");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split(\"|\"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return\"input\"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return(\"input\"===c||\"button\"===c)&&b.type===a}}function oa(a){return function(b){return\"label\"in b&&b.disabled===a||\"form\"in b&&b.disabled===a||\"form\"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&(\"label\"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&\"undefined\"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?\"HTML\"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener(\"unload\",da,!1):e.attachEvent&&e.attachEvent(\"onunload\",da)),c.attributes=ja(function(a){return a.className=\"i\",!a.getAttribute(\"className\")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment(\"\")),!a.getElementsByTagName(\"*\").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(\"undefined\"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute(\"id\")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c=\"undefined\"!=typeof a.getAttributeNode&&a.getAttributeNode(\"id\");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return\"undefined\"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(\"*\"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return\"undefined\"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=\"<a id='\"+u+\"'></a><select id='\"+u+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",a.querySelectorAll(\"[msallowcapture^='']\").length&&q.push(\"[*^$]=\"+K+\"*(?:''|\\\"\\\")\"),a.querySelectorAll(\"[selected]\").length||q.push(\"\\\\[\"+K+\"*(?:value|\"+J+\")\"),a.querySelectorAll(\"[id~=\"+u+\"-]\").length||q.push(\"~=\"),a.querySelectorAll(\":checked\").length||q.push(\":checked\"),a.querySelectorAll(\"a#\"+u+\"+*\").length||q.push(\".#.+[+~]\")}),ja(function(a){a.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var b=n.createElement(\"input\");b.setAttribute(\"type\",\"hidden\"),a.appendChild(b).setAttribute(\"name\",\"D\"),a.querySelectorAll(\"[name=d]\").length&&q.push(\"name\"+K+\"*[*^$|!~]?=\"),2!==a.querySelectorAll(\":enabled\").length&&q.push(\":enabled\",\":disabled\"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(\":disabled\").length&&q.push(\":enabled\",\":disabled\"),a.querySelectorAll(\"*,:x\"),q.push(\",.*:\")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,\"*\"),s.call(a,\"[s!='']:x\"),r.push(\"!=\",N)}),q=q.length&&new RegExp(q.join(\"|\")),r=r.length&&new RegExp(r.join(\"|\")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,\"='$1']\"),c.matchesSelector&&p&&!A[b+\" \"]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+\"\").replace(ba,ca)},ga.error=function(a){throw new Error(\"Syntax error, unrecognized expression: \"+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c=\"\",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if(\"string\"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||\"\").replace(_,aa),\"~=\"===a[2]&&(a[3]=\" \"+a[3]+\" \"),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),\"nth\"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(\"even\"===a[3]||\"odd\"===a[3])),a[5]=+(a[7]+a[8]||\"odd\"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||\"\":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(\")\",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return\"*\"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+\" \"];return b||(b=new RegExp(\"(^|\"+K+\")\"+a+\"(\"+K+\"|$)\"))&&y(a,function(a){return b.test(\"string\"==typeof a.className&&a.className||\"undefined\"!=typeof a.getAttribute&&a.getAttribute(\"class\")||\"\")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?\"!=\"===b:b?(e+=\"\",\"=\"===b?e===c:\"!=\"===b?e!==c:\"^=\"===b?c&&0===e.indexOf(c):\"*=\"===b?c&&e.indexOf(c)>-1:\"$=\"===b?c&&e.slice(-c.length)===c:\"~=\"===b?(\" \"+e.replace(O,\" \")+\" \").indexOf(c)>-1:\"|=\"===b?e===c||e.slice(0,c.length+1)===c+\"-\":!1):!0}},CHILD:function(a,b,c,d,e){var f=\"nth\"!==a.slice(0,3),g=\"last\"!==a.slice(-4),h=\"of-type\"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?\"nextSibling\":\"previousSibling\",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p=\"only\"===a&&!o&&\"nextSibling\"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error(\"unsupported pseudo: \"+a);return e[u]?e(b):e.length>1?(c=[a,a,\"\",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,\"$1\"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||\"\")||ga.error(\"unsupported lang: \"+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute(\"xml:lang\")||b.getAttribute(\"lang\"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+\"-\");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&!!a.checked||\"option\"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&\"button\"===a.type||\"button\"===b},text:function(a){var b;return\"input\"===a.nodeName.toLowerCase()&&\"text\"===a.type&&(null==(b=a.getAttribute(\"type\"))||\"text\"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[0>c?c+b:c]}),even:pa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+\" \"];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P,\" \")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d=\"\";c>b;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&\"parentNode\"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||\"*\",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[\" \"],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:\" \"===a[i-2].type?\"*\":\"\"})).replace(P,\"$1\"),c,e>i&&ya(a.slice(i,e)),f>e&&ya(a=a.slice(e)),f>e&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s=\"0\",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG(\"*\",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+\" \"];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n=\"function\"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&\"ID\"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split(\"\").sort(B).join(\"\")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement(\"fieldset\"))}),ja(function(a){return a.innerHTML=\"<a href='#'></a>\",\"#\"===a.firstChild.getAttribute(\"href\")})||ka(\"type|href|height|width\",function(a,b,c){return c?void 0:a.getAttribute(b,\"type\"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=\"<input/>\",a.firstChild.setAttribute(\"value\",\"\"),\"\"===a.firstChild.getAttribute(\"value\")})||ka(\"value\",function(a,b,c){return c||\"input\"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute(\"disabled\")})||ka(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[\":\"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i,C=/^.[^:#\\[\\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if(\"string\"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=\":not(\"+a+\")\"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if(\"string\"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;d>b;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;d>b;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,\"string\"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,\"string\"==typeof a){if(e=\"<\"===a[0]&&\">\"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g=\"string\"!=typeof a&&r(a);if(!A.test(a))for(;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?\"string\"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,\"parentNode\")},parentsUntil:function(a,b,c){return y(a,\"parentNode\",c)},next:function(a){return J(a,\"nextSibling\")},prev:function(a){return J(a,\"previousSibling\")},nextAll:function(a){return y(a,\"nextSibling\")},prevAll:function(a){return y(a,\"previousSibling\")},nextUntil:function(a,b,c){return y(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return y(a,\"previousSibling\",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return\"Until\"!==a.slice(-5)&&(d=c),d&&\"string\"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a=\"string\"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:\"\")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&\"string\"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c=\"\",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=\"\"),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[[\"notify\",\"progress\",r.Callbacks(\"memory\"),r.Callbacks(\"memory\"),2],[\"resolve\",\"done\",r.Callbacks(\"once memory\"),r.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",r.Callbacks(\"once memory\"),r.Callbacks(\"once memory\"),1,\"rejected\"]],d=\"pending\",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},\"catch\":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+\"With\"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(f>b)){if(a=d.apply(h,i),a===c.promise())throw new TypeError(\"Thenable self-resolution\");j=a&&(\"object\"==typeof a||\"function\"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+\"With\"](this===f?void 0:this,arguments),this},f[b[0]+\"With\"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(1>=b&&(O(a,g.done(h(c)).resolve,g.reject),\"pending\"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn(\"jQuery.Deferred exception: \"+b.message,b.stack,c)};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener(\"DOMContentLoaded\",R),a.removeEventListener(\"load\",R),r.ready()}\"complete\"===d.readyState||\"loading\"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener(\"DOMContentLoaded\",R),a.addEventListener(\"load\",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if(\"object\"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){\nreturn j.call(r(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if(\"string\"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&\"string\"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d=\"data-\"+b.replace(Y,\"-$&\").toLowerCase(),c=a.getAttribute(d),\"string\"==typeof c){try{c=\"true\"===c?!0:\"false\"===c?!1:\"null\"===c?null:+c+\"\"===c?+c:X.test(c)?JSON.parse(c):c}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,\"hasDataAttrs\"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf(\"data-\")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,\"hasDataAttrs\",!0)}return e}return\"object\"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;return a?(b=(b||\"fx\")+\"queue\",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||\"fx\";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};\"inprogress\"===e&&(e=c.shift(),d--),e&&(\"fx\"===b&&c.unshift(\"inprogress\"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+\"queueHooks\";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks(\"once memory\").add(function(){V.remove(a,[b+\"queue\",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return\"string\"!=typeof a&&(b=a,a=\"fx\",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),\"fx\"===a&&\"inprogress\"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||\"fx\",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};\"string\"!=typeof a&&(b=a,a=void 0),a=a||\"fx\";while(g--)c=V.get(f[g],a+\"queueHooks\"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var $=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,_=new RegExp(\"^(?:([+-])=|)(\"+$+\")([a-z%]*)$\",\"i\"),aa=[\"Top\",\"Right\",\"Bottom\",\"Left\"],ba=function(a,b){return a=b||a,\"none\"===a.style.display||\"\"===a.style.display&&r.contains(a.ownerDocument,a)&&\"none\"===r.css(a,\"display\")},ca=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function da(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,\"\")},i=h(),j=c&&c[3]||(r.cssNumber[b]?\"\":\"px\"),k=(r.cssNumber[b]||\"px\"!==j&&+i)&&_.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||\".5\",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ea={};function fa(a){var b,c=a.ownerDocument,d=a.nodeName,e=ea[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,\"display\"),b.parentNode.removeChild(b),\"none\"===e&&(e=\"block\"),ea[d]=e,e)}function ga(a,b){for(var c,d,e=[],f=0,g=a.length;g>f;f++)d=a[f],d.style&&(c=d.style.display,b?(\"none\"===c&&(e[f]=V.get(d,\"display\")||null,e[f]||(d.style.display=\"\")),\"\"===d.style.display&&ba(d)&&(e[f]=fa(d))):\"none\"!==c&&(e[f]=\"none\",V.set(d,\"display\",c)));for(f=0;g>f;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ga(this,!0)},hide:function(){return ga(this)},toggle:function(a){return\"boolean\"==typeof a?a?this.show():this.hide():this.each(function(){ba(this)?r(this).show():r(this).hide()})}});var ha=/^(?:checkbox|radio)$/i,ia=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i,ja=/^$|\\/(?:java|ecma)script/i,ka={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,\"\",\"\"]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c=\"undefined\"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||\"*\"):\"undefined\"!=typeof a.querySelectorAll?a.querySelectorAll(b||\"*\"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;d>c;c++)V.set(a[c],\"globalEval\",!b||V.get(b[c],\"globalEval\"))}var na=/<|&#?\\w+;/;function oa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;o>n;n++)if(f=a[n],f||0===f)if(\"object\"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(na.test(f)){g=g||l.appendChild(b.createElement(\"div\")),h=(ia.exec(f)||[\"\",\"\"])[1].toLowerCase(),i=ka[h]||ka._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=\"\"}else m.push(b.createTextNode(f));l.textContent=\"\",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),\"script\"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||\"\")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement(\"div\")),c=d.createElement(\"input\");c.setAttribute(\"type\",\"radio\"),c.setAttribute(\"checked\",\"checked\"),c.setAttribute(\"name\",\"t\"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML=\"<textarea>x</textarea>\",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if(\"object\"==typeof b){\"string\"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&(\"string\"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return\"undefined\"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||\"\").match(K)||[\"\"],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||\"\").split(\".\").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(\".\")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||\"\").match(K)||[\"\"],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||\"\").split(\".\").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp(\"(^|\\\\.)\"+o.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(\"**\"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,\"handle events\")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,\"events\")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(\"click\"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||\"click\"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+\" \",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){return this.originalEvent?b(this.originalEvent):void 0}:function(){return this.originalEvent?this.originalEvent[a]:void 0},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==va()&&this.focus?(this.focus(),!1):void 0},delegateType:\"focusin\"},blur:{trigger:function(){return this===va()&&this.blur?(this.blur(),!1):void 0},delegateType:\"focusout\"},click:{trigger:function(){return\"checkbox\"===this.type&&this.click&&r.nodeName(this,\"input\")?(this.click(),!1):void 0},_default:function(a){return r.nodeName(a.target,\"a\")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ta:ua,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:ua,isPropagationStopped:ua,isImmediatePropagationStopped:ua,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ta,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ta,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ta,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,\"char\":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&qa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ra.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return wa(this,a,b,c,d)},one:function(a,b,c,d){return wa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+\".\"+d.namespace:d.origType,d.selector,d.handler),this;if(\"object\"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&\"function\"!=typeof b||(c=b,b=void 0),c===!1&&(c=ua),this.each(function(){r.event.remove(this,a,c,b)})}});var xa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,ya=/<script|<style|<link/i,za=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Aa=/^true\\/(.*)/,Ba=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function Ca(a,b){return r.nodeName(a,\"table\")&&r.nodeName(11!==b.nodeType?b:b.firstChild,\"tr\")?a.getElementsByTagName(\"tbody\")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute(\"type\"))+\"/\"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute(\"type\"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ga(a,b){var c=b.nodeName.toLowerCase();\"input\"===c&&ha.test(a.type)?b.checked=a.checked:\"input\"!==c&&\"textarea\"!==c||(b.defaultValue=a.defaultValue)}function Ha(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&\"string\"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,\"script\"),Da),i=h.length;m>l;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,la(j,\"script\"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ea),l=0;i>l;l++)j=h[l],ja.test(j.type||\"\")&&!V.access(j,\"globalEval\")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ba,\"\"),k))}return a}function Ia(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(la(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&ma(la(d,\"script\")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(xa,\"<$1></$2>\")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;e>d;d++)Ga(f[d],g[d]);if(b)if(c)for(f=f||la(a),g=g||la(h),d=0,e=f.length;e>d;d++)Fa(f[d],g[d]);else Fa(a,h);return g=la(h,\"script\"),g.length>0&&ma(g,!i&&la(a,\"script\")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent=\"\");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if(\"string\"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(la(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(la(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ja=/^margin/,Ka=new RegExp(\"^(\"+$+\")(?!px)[a-z%]+$\",\"i\"),La=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText=\"box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%\",i.innerHTML=\"\",pa.appendChild(h);var b=a.getComputedStyle(i);c=\"1%\"!==b.top,g=\"2px\"===b.marginLeft,e=\"4px\"===b.width,i.style.marginRight=\"50%\",f=\"4px\"===b.marginRight,pa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement(\"div\"),i=d.createElement(\"div\");i.style&&(i.style.backgroundClip=\"content-box\",i.cloneNode(!0).style.backgroundClip=\"\",o.clearCloneStyle=\"content-box\"===i.style.backgroundClip,h.style.cssText=\"border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute\",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Ma(a,b,c){var d,e,f,g,h=a.style;return c=c||La(a),c&&(g=c.getPropertyValue(b)||c[b],\"\"!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ka.test(g)&&Ja.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+\"\":g}function Na(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Oa=/^(none|table(?!-c[ea]).+)/,Pa={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Qa={letterSpacing:\"0\",fontWeight:\"400\"},Ra=[\"Webkit\",\"Moz\",\"ms\"],Sa=d.createElement(\"div\").style;function Ta(a){if(a in Sa)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ra.length;while(c--)if(a=Ra[c]+b,a in Sa)return a}function Ua(a,b,c){var d=_.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||\"px\"):b}function Va(a,b,c,d,e){for(var f=c===(d?\"border\":\"content\")?4:\"width\"===b?1:0,g=0;4>f;f+=2)\"margin\"===c&&(g+=r.css(a,c+aa[f],!0,e)),d?(\"content\"===c&&(g-=r.css(a,\"padding\"+aa[f],!0,e)),\"margin\"!==c&&(g-=r.css(a,\"border\"+aa[f]+\"Width\",!0,e))):(g+=r.css(a,\"padding\"+aa[f],!0,e),\"padding\"!==c&&(g+=r.css(a,\"border\"+aa[f]+\"Width\",!0,e)));return g}function Wa(a,b,c){var d,e=!0,f=La(a),g=\"border-box\"===r.css(a,\"boxSizing\",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),0>=d||null==d){if(d=Ma(a,b,f),(0>d||null==d)&&(d=a.style[b]),Ka.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Va(a,b,c||(g?\"border\":\"content\"),e,f)+\"px\"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ma(a,\"opacity\");return\"\"===c?\"1\":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{\"float\":\"cssFloat\"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&\"get\"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,\"string\"===f&&(e=_.exec(c))&&e[1]&&(c=da(a,b,e),f=\"number\"),null!=c&&c===c&&(\"number\"===f&&(c+=e&&e[3]||(r.cssNumber[h]?\"\":\"px\")),o.clearCloneStyle||\"\"!==c||0!==b.indexOf(\"background\")||(i[b]=\"inherit\"),g&&\"set\"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&\"get\"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Ma(a,b,d)),\"normal\"===e&&b in Qa&&(e=Qa[b]),\"\"===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each([\"height\",\"width\"],function(a,b){r.cssHooks[b]={get:function(a,c,d){return c?!Oa.test(r.css(a,\"display\"))||a.getClientRects().length&&a.getBoundingClientRect().width?Wa(a,b,d):ca(a,Pa,function(){return Wa(a,b,d)}):void 0},set:function(a,c,d){var e,f=d&&La(a),g=d&&Va(a,b,d,\"border-box\"===r.css(a,\"boxSizing\",!1,f),f);return g&&(e=_.exec(c))&&\"px\"!==(e[3]||\"px\")&&(a.style[b]=c,c=r.css(a,b)),Ua(a,c,g)}}}),r.cssHooks.marginLeft=Na(o.reliableMarginLeft,function(a,b){return b?(parseFloat(Ma(a,\"marginLeft\"))||a.getBoundingClientRect().left-ca(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+\"px\":void 0}),r.each({margin:\"\",padding:\"\",border:\"Width\"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f=\"string\"==typeof c?c.split(\" \"):[c];4>d;d++)e[a+aa[d]+b]=f[d]||f[d-2]||f[0];return e}},Ja.test(a)||(r.cssHooks[a+b].set=Ua)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=La(a),e=b.length;e>g;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?\"\":\"px\")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,\"\"),b&&\"auto\"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:\"swing\"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=aa[d],e[\"margin\"+c]=e[\"padding\"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners[\"*\"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function eb(a,b,c){var d,e,f,g,h,i,j,k,l=\"width\"in b||\"height\"in b,m=this,n={},o=a.style,p=a.nodeType&&ba(a),q=V.get(a,\"fxshow\");c.queue||(g=r._queueHooks(a,\"fx\"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,\"fx\").length||g.empty.fire()})}));for(d in b)if(e=b[d],$a.test(e)){if(delete b[d],f=f||\"toggle\"===e,e===(p?\"hide\":\"show\")){if(\"show\"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,\"display\")),k=r.css(a,\"display\"),\"none\"===k&&(j?k=j:(ga([a],!0),j=a.style.display||j,k=r.css(a,\"display\"),ga([a]))),(\"inline\"===k||\"inline-block\"===k&&null!=j)&&\"none\"===r.css(a,\"float\")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j=\"none\"===k?\"\":k)),o.display=\"inline-block\")),c.overflow&&(o.overflow=\"hidden\",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?\"hidden\"in q&&(p=q.hidden):q=V.access(a,\"fxshow\",{display:j}),f&&(q.hidden=!p),p&&ga([a],!0),m.done(function(){p||ga([a]),V.remove(a,\"fxshow\");for(d in n)r.style(a,d,n[d])})),i=db(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function fb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&\"expand\"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function gb(a,b,c){var d,e,f=0,g=gb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||bb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ya||bb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(fb(k,j.opts.specialEasing);g>f;f++)if(d=gb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,db,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(gb,{tweeners:{\"*\":[function(a,b){var c=this.createTween(a,b);return da(c.elem,a,_.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=[\"*\"]):a=a.match(K);for(var c,d=0,e=a.length;e>d;d++)c=a[d],gb.tweeners[c]=gb.tweeners[c]||[],gb.tweeners[c].unshift(b)},prefilters:[eb],prefilter:function(a,b){b?gb.prefilters.unshift(a):gb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&\"object\"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:e.duration=\"number\"==typeof e.duration?e.duration:e.duration in r.fx.speeds?r.fx.speeds[e.duration]:r.fx.speeds._default,null!=e.queue&&e.queue!==!0||(e.queue=\"fx\"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ba).css(\"opacity\",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=gb(this,r.extend({},a),f);(e||V.get(this,\"finish\"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return\"string\"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||\"fx\",[]),this.each(function(){var b=!0,e=null!=a&&a+\"queueHooks\",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&_a.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||\"fx\"),this.each(function(){var b,c=V.get(this),d=c[a+\"queue\"],e=c[a+\"queueHooks\"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each([\"toggle\",\"show\",\"hide\"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||\"boolean\"==typeof a?c.apply(this,arguments):this.animate(cb(b,!0),a,d,e)}}),r.each({slideDown:cb(\"show\"),slideUp:cb(\"hide\"),slideToggle:cb(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Ya=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Ya=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){Za||(Za=a.requestAnimationFrame?a.requestAnimationFrame(ab):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(Za):a.clearInterval(Za),Za=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||\"fx\",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement(\"input\"),b=d.createElement(\"select\"),c=b.appendChild(d.createElement(\"option\"));a.type=\"checkbox\",o.checkOn=\"\"!==a.value,o.optSelected=c.selected,a=d.createElement(\"input\"),a.value=\"t\",a.type=\"radio\",o.radioValue=\"t\"===a.value}();var hb,ib=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return\"undefined\"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&\"set\"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+\"\"),c):e&&\"get\"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&\"radio\"===b&&r.nodeName(a,\"input\")){var c=a.value;return a.setAttribute(\"type\",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c);\n}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&\"set\"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&\"get\"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,\"tabindex\");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{\"for\":\"htmlFor\",\"class\":\"className\"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\\t\\r\\n\\f]/g;function mb(a){return a.getAttribute&&a.getAttribute(\"class\")||\"\"}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if(\"string\"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(\" \"+e+\" \").replace(lb,\" \")){g=0;while(f=b[g++])d.indexOf(\" \"+f+\" \")<0&&(d+=f+\" \");h=r.trim(d),e!==h&&c.setAttribute(\"class\",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if(\"string\"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(\" \"+e+\" \").replace(lb,\" \")){g=0;while(f=b[g++])while(d.indexOf(\" \"+f+\" \")>-1)d=d.replace(\" \"+f+\" \",\" \");h=r.trim(d),e!==h&&c.setAttribute(\"class\",h)}}return this},toggleClass:function(a,b){var c=typeof a;return\"boolean\"==typeof b&&\"string\"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if(\"string\"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&\"boolean\"!==c||(b=mb(this),b&&V.set(this,\"__className__\",b),this.setAttribute&&this.setAttribute(\"class\",b||a===!1?\"\":V.get(this,\"__className__\")||\"\"))})},hasClass:function(a){var b,c,d=0;b=\" \"+a+\" \";while(c=this[d++])if(1===c.nodeType&&(\" \"+mb(c)+\" \").replace(lb,\" \").indexOf(b)>-1)return!0;return!1}});var nb=/\\r/g,ob=/[\\x20\\t\\r\\n\\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e=\"\":\"number\"==typeof e?e+=\"\":r.isArray(e)&&(e=r.map(e,function(a){return null==a?\"\":a+\"\"})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&\"set\"in b&&void 0!==b.set(this,e,\"value\")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&\"get\"in b&&void 0!==(c=b.get(e,\"value\"))?c:(c=e.value,\"string\"==typeof c?c.replace(nb,\"\"):null==c?\"\":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,\"value\");return null!=b?b:r.trim(r.text(a)).replace(ob,\" \")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f=\"select-one\"===a.type,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,\"optgroup\"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each([\"radio\",\"checkbox\"],function(){r.valHooks[this]={set:function(a,b){return r.isArray(b)?a.checked=r.inArray(r(a).val(),b)>-1:void 0}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute(\"value\")?\"on\":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,\"type\")?b.type:b,q=l.call(b,\"namespace\")?b.namespace.split(\".\"):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(\".\")>-1&&(q=p.split(\".\"),p=q.shift(),q.sort()),k=p.indexOf(\":\")<0&&\"on\"+p,b=b[r.expando]?b:new r.Event(p,\"object\"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join(\".\"),b.rnamespace=b.namespace?new RegExp(\"(^|\\\\.)\"+q.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,\"events\")||{})[b.type]&&V.get(h,\"handle\"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?r.event.trigger(a,b,c,!0):void 0}}),r.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin=\"onfocusin\"in a,o.focusin||r.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\\?/;r.parseXML=function(b){var c;if(!b||\"string\"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,\"text/xml\")}catch(d){c=void 0}return c&&!c.getElementsByTagName(\"parsererror\").length||r.error(\"Invalid XML: \"+b),c};var tb=/\\[\\]$/,ub=/\\r?\\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+\"[\"+(\"object\"==typeof e&&null!=e?b:\"\")+\"]\",e,c,d)});else if(c||\"object\"!==r.type(b))d(a,b);else for(e in b)xb(a+\"[\"+e+\"]\",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+\"=\"+encodeURIComponent(null==c?\"\":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join(\"&\")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,\"elements\");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(\":disabled\")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,\"\\r\\n\")}}):{name:b.name,value:c.replace(ub,\"\\r\\n\")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\\/\\//,Fb={},Gb={},Hb=\"*/\".concat(\"*\"),Ib=d.createElement(\"a\");Ib.href=qb.href;function Jb(a){return function(b,c){\"string\"!=typeof b&&(c=b,b=\"*\");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])\"+\"===d[0]?(d=d.slice(1)||\"*\",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return\"string\"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e[\"*\"]&&g(\"*\")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while(\"*\"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader(\"Content-Type\"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+\" \"+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(\"*\"===f)f=i;else if(\"*\"!==i&&i!==f){if(g=j[i+\" \"+f]||j[\"* \"+f],!g)for(e in j)if(h=e.split(\" \"),h[1]===f&&(g=j[i+\" \"+h[0]]||j[\"* \"+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a[\"throws\"])b=g(b);else try{b=g(b)}catch(l){return{state:\"parsererror\",error:g?l:\"No conversion from \"+i+\" to \"+f}}}return{state:\"success\",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:\"GET\",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":Hb,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){\"object\"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks(\"once memory\"),u=o.statusCode||{},v={},w={},x=\"canceled\",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+\"\").replace(Eb,qb.protocol+\"//\"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||\"*\").toLowerCase().match(K)||[\"\"],null==o.crossDomain){j=d.createElement(\"a\");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+\"//\"+Ib.host!=j.protocol+\"//\"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&\"string\"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger(\"ajaxStart\"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,\"\"),o.hasContent?o.data&&o.processData&&0===(o.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(o.data=o.data.replace(yb,\"+\")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?\"&\":\"?\")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,\"\"),n=(sb.test(f)?\"&\":\"?\")+\"_=\"+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader(\"If-Modified-Since\",r.lastModified[f]),r.etag[f]&&y.setRequestHeader(\"If-None-Match\",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader(\"Content-Type\",o.contentType),y.setRequestHeader(\"Accept\",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+(\"*\"!==o.dataTypes[0]?\", \"+Hb+\"; q=0.01\":\"\"):o.accepts[\"*\"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x=\"abort\",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger(\"ajaxSend\",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort(\"timeout\")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,\"No Transport\");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||\"\",y.readyState=b>0?4:0,j=b>=200&&300>b||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader(\"Last-Modified\"),w&&(r.lastModified[f]=w),w=y.getResponseHeader(\"etag\"),w&&(r.etag[f]=w)),204===b||\"HEAD\"===o.type?x=\"nocontent\":304===b?x=\"notmodified\":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x=\"error\",0>b&&(b=0))),y.status=b,y.statusText=(c||x)+\"\",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?\"ajaxSuccess\":\"ajaxError\",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger(\"ajaxComplete\",[y,o]),--r.active||r.event.trigger(\"ajaxStop\")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,\"json\")},getScript:function(a,b){return r.get(a,void 0,b,\"script\")}}),r.each([\"get\",\"post\"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,\"throws\":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not(\"body\").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&\"withCredentials\"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;return o.cors||Pb&&!b.crossDomain?{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e[\"X-Requested-With\"]||(e[\"X-Requested-With\"]=\"XMLHttpRequest\");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,\"abort\"===a?h.abort():\"error\"===a?\"number\"!=typeof h.status?f(0,\"error\"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,\"text\"!==(h.responseType||\"text\")||\"string\"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c(\"error\"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c(\"abort\");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}:void 0}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter(\"script\",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type=\"GET\")}),r.ajaxTransport(\"script\",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(\"<script>\").prop({charset:a.scriptCharset,src:a.url}).on(\"load error\",c=function(a){b.remove(),c=null,a&&f(\"error\"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\\?(?=&|$)|\\?\\?/;r.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var a=Qb.pop()||r.expando+\"_\"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter(\"json jsonp\",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?\"url\":\"string\"==typeof b.data&&0===(b.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Rb.test(b.data)&&\"data\");return h||\"jsonp\"===b.dataTypes[0]?(e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,\"$1\"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?\"&\":\"?\")+b.jsonp+\"=\"+e),b.converters[\"script json\"]=function(){return g||r.error(e+\" was not called\"),g[0]},b.dataTypes[0]=\"json\",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),\"script\"):void 0}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument(\"\").body;return a.innerHTML=\"<form></form><form></form>\",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if(\"string\"!=typeof a)return[];\"boolean\"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(\"\"),e=b.createElement(\"base\"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=oa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(\" \");return h>-1&&(d=r.trim(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&\"object\"==typeof b&&(e=\"POST\"),g.length>0&&r.ajax({url:a,type:e||\"GET\",dataType:\"html\",data:b}).done(function(a){f=arguments,g.html(d?r(\"<div>\").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,\"position\"),l=r(a),m={};\"static\"===k&&(a.style.position=\"relative\"),h=l.offset(),f=r.css(a,\"top\"),i=r.css(a,\"left\"),j=(\"absolute\"===k||\"fixed\"===k)&&(f+i).indexOf(\"auto\")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),\"using\"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return\"fixed\"===r.css(c,\"position\")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],\"html\")||(d=a.offset()),d={top:d.top+r.css(a[0],\"borderTopWidth\",!0),left:d.left+r.css(a[0],\"borderLeftWidth\",!0)}),{top:b.top-d.top-r.css(c,\"marginTop\",!0),left:b.left-d.left-r.css(c,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&\"static\"===r.css(a,\"position\"))a=a.offsetParent;return a||pa})}}),r.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(a,b){var c=\"pageYOffset\"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each([\"top\",\"left\"],function(a,b){r.cssHooks[b]=Na(o.pixelPosition,function(a,c){return c?(c=Ma(a,b),Ka.test(c)?r(a).position()[b]+\"px\":c):void 0})}),r.each({Height:\"height\",Width:\"width\"},function(a,b){r.each({padding:\"inner\"+a,content:b,\"\":\"outer\"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||\"boolean\"!=typeof e),h=c||(e===!0||f===!0?\"margin\":\"border\");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf(\"outer\")?b[\"inner\"+a]:b.document.documentElement[\"client\"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body[\"scroll\"+a],f[\"scroll\"+a],b.body[\"offset\"+a],f[\"offset\"+a],f[\"client\"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,\"**\"):this.off(b,a||\"**\",c)}}),r.parseJSON=JSON.parse,\"function\"==\"function\"&&__webpack_require__(8)&&!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function(){return r}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r});\n\n\n/***/ }),\n/* 1 */,\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($, jQuery) {\n// Python Tutor: https://github.com/pgbovine/OnlinePythonTutor/\n// Copyright (C) Philip Guo (philip@pgbovine.net)\n// LICENSE: https://github.com/pgbovine/OnlinePythonTutor/blob/master/LICENSE.txt\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* TODO:\n\n- substitute in a non-live version of the live editor from opt-live.js\n in addition to the janky current version of the editor\n\n*/\n/* pytutor coding gotchas:\n\n- *NEVER* use raw $(__) or d3.select(__) statements to select DOM elements.\n\n *ALWAYS* use myViz.domRoot or myViz.domRootD3 for jQuery and D3, respectively.\n\n Otherwise things will break in weird ways when you have more than one\n visualization embedded within a webpage, due to multiple matches in\n the global namespace.\n\n By doing myViz.domRoot / .domRootD3, you're guaranteed to select DOM elements\n within the current ExecutionVisualizer object\n\n- always use generateID and generateHeapObjID to generate unique CSS\n IDs, or else things will break when multiple ExecutionVisualizer\n instances are on a webpage\n\n*/\n__webpack_require__(9);\n__webpack_require__(0);\n__webpack_require__(10); // DO NOT UPGRADE ABOVE 1.3.10 OR ELSE BREAKAGE WILL OCCUR\n__webpack_require__(11);\n__webpack_require__(12);\n__webpack_require__(28); // contains slight pgbovine modifications\n__webpack_require__(6); // for $.doTimeout\n__webpack_require__(29);\nvar footer_html_1 = __webpack_require__(5);\nexports.SVG_ARROW_POLYGON = '0,3 12,3 12,0 18,5 12,10 12,7 0,7';\nvar SVG_ARROW_HEIGHT = 10; // must match height of SVG_ARROW_POLYGON\n/* colors - see pytutor.css for more colors */\nexports.brightRed = '#e93f34';\nvar connectorBaseColor = '#005583';\nvar connectorHighlightColor = exports.brightRed;\nvar connectorInactiveColor = '#cccccc';\nvar errorColor = exports.brightRed;\nvar breakpointColor = exports.brightRed;\n// Unicode arrow types: '\\u21d2', '\\u21f0', '\\u2907'\nexports.darkArrowColor = exports.brightRed;\nexports.lightArrowColor = '#c9e6ca';\nvar heapPtrSrcRE = /__heap_pointer_src_/;\nvar rightwardNudgeHack = true; // suggested by John DeNero, toggle with global\n// returns a list of length a.length * b.length with elements from both\n// mixed. the elements of a and b should be primitives, but if the first element\n// is a list, it flattens it. e.g.,:\n// multiplyLists([1, 2, 3], [4, 5]) -> [[1,4], [1,5], [2,4], [2,5], [3,4], [3,5]]\nfunction multiplyLists(a, b) {\n var ret = [];\n for (var i = 0; i < a.length; i++) {\n for (var j = 0; j < b.length; j++) {\n var elt = a[i];\n // flatten list\n if ($.isArray(elt)) {\n ret.push(elt.concat(b[j]));\n }\n else {\n ret.push([elt, b[j]]);\n }\n }\n }\n return ret;\n}\n// BEGIN utilities for selectively hiding variables\n// use htmlspecialchars to escape contents before printing to HTML,\n// then UNDO -> ' ' since we want spaces to nicely line-wrap\n// instead of being non-breaking\nfunction varlistToHtml(lst) {\n return htmlspecialchars(lst.join(\", \")).replace(/ /g, ' ');\n}\n// take a string of something to hide, replace newlines with ','\n// so users can conveniently use newlines as delimiters, then split\n// by ',', filter out empty entries, and return trimmed ones:\nfunction processHideString(s) {\n return s.replace(/\\n/g, ',')\n .split(',')\n .filter(function (e) { return e.trim().length > 0; })\n .map(function (e) { return e.trim(); });\n}\n// END utilities for selectively hiding variables\nvar newlineAllRegex = new RegExp('\\n', 'g');\nvar doubleQuoteAllRegex = new RegExp('\\\"', 'g');\nvar tabAllRegex = new RegExp(\"\\t\", 'g');\n// the main event!\nvar ExecutionVisualizer = /** @class */ (function () {\n // Constructor with an ever-growing feature-crepped list of options :)\n // domRootID is the string ID of the root element where to render this instance\n //\n // dat is data returned by the Python Tutor backend consisting of two fields:\n // code - string of executed code\n // trace - a full execution trace\n //\n // params is an object containing optional parameters, such as:\n // jumpToEnd - if non-null, jump to the very end of execution if\n // there's no error, or if there's an error, jump to the\n // FIRST ENTRY with an error\n // startingInstruction - the (zero-indexed) execution point to display upon rendering\n // if this is set, then it *overrides* jumpToEnd\n // codeDivHeight - maximum height of #pyCodeOutputDiv (in integer pixels)\n // codeDivWidth - maximum width of #pyCodeOutputDiv (in integer pixels)\n // editCodeBaseURL - the base URL to visit when the user clicks 'Edit code' (if null, then 'Edit code' link hidden)\n // embeddedMode - shortcut for codeDivWidth=DEFAULT_EMBEDDED_CODE_DIV_WIDTH,\n // codeDivHeight=DEFAULT_EMBEDDED_CODE_DIV_HEIGHT\n // (and hide a bunch of other stuff & don't activate keyboard shortcuts!)\n // disableHeapNesting - if true, then render all heap objects at the top level (i.e., no nested objects)\n // alwaysNestTypes - if non-null, a list of type names to ALWAYS nest within heap objects\n // (supersedes disableHeapNesting, defaults to DEFAULT_ALWAYS_NEST_TYPES)\n // drawParentPointers - if true, then draw environment diagram parent pointers for all frames\n // WARNING: there are hard-to-debug MEMORY LEAKS associated with activating this option\n // textualMemoryLabels - render references using textual memory labels rather than as jsPlumb arrows.\n // this is good for slow browsers or when used with disableHeapNesting\n // to prevent \"arrow overload\"\n // updateOutputCallback - function to call (with 'this' as parameter)\n // whenever this.updateOutput() is called\n // (BEFORE rendering the output display)\n // heightChangeCallback - function to call (with 'this' as parameter)\n // whenever the HEIGHT of #dataViz changes\n // verticalStack - if true, then stack code display ON TOP of visualization\n // (else place side-by-side)\n // visualizerIdOverride - override visualizer ID instead of auto-assigning it\n // (BE CAREFUL ABOUT NOT HAVING DUPLICATE IDs ON THE SAME PAGE,\n // OR ELSE ARROWS AND OTHER STUFF WILL GO HAYWIRE!)\n // executeCodeWithRawInputFunc - function to call when you want to re-execute the given program\n // with some new user input (somewhat hacky!)\n // compactFuncLabels - render functions with a 'func' prefix and no type label\n // showAllFrameLabels - display frame and parent frame labels for all functions (default: false)\n // hideCode - hide the code display and show only the data structure viz\n // lang - to render labels in a style appropriate for other languages,\n // and to display the proper language in langDisplayDiv:\n // 'py2' for Python 2, 'py3' for Python 3, 'js' for JavaScript, 'java' for Java,\n // 'ts' for TypeScript, 'ruby' for Ruby, 'c' for C, 'cpp' for C++\n // 'py3anaconda' for Python 3 with Anaconda\n // [default is Python-style labels]\n function ExecutionVisualizer(domRootID, dat, params) {\n this.params = {};\n // an array of objects with the following fields:\n // 'text' - the text of the line of code\n // 'lineNumber' - one-indexed (always the array index + 1)\n // 'executionPoints' - an ordered array of zero-indexed execution points where this line was executed\n // 'breakpointHere' - has a breakpoint been set here?\n this.codeOutputLines = [];\n this.curInstr = 0;\n // API for adding a hook, created by David Pritchard\n // keys, hook names; values, list of functions\n this.pytutor_hooks = {};\n // true iff trace ended prematurely since maximum instruction limit has\n // been reached\n this.instrLimitReached = false;\n this.hasRendered = false;\n this.breakpoints = d3.map(); // set of execution points to set as breakpoints\n this.sortedBreakpointsList = []; // sorted and synced with breakpoints\n this.curInputCode = dat.code.rtrim(); // kill trailing spaces\n this.params = params;\n this.curTrace = dat.trace;\n // postprocess the trace\n if (this.curTrace.length > 0) {\n var lastEntry = this.curTrace[this.curTrace.length - 1];\n // if the final entry is raw_input or mouse_input, then trim it from the trace and\n // set a flag to prompt for user input when execution advances to the\n // end of the trace\n if (lastEntry.event === 'raw_input') {\n this.promptForUserInput = true;\n this.userInputPromptStr = htmlspecialchars(lastEntry.prompt);\n this.curTrace.pop(); // kill last entry so that it doesn't get displayed\n }\n else if (lastEntry.event === 'mouse_input') {\n this.promptForMouseInput = true;\n this.userInputPromptStr = htmlspecialchars(lastEntry.prompt);\n this.curTrace.pop(); // kill last entry so that it doesn't get displayed\n }\n else if (lastEntry.event === 'instruction_limit_reached') {\n this.instrLimitReached = true;\n this.instrLimitReachedWarningMsg = lastEntry.exception_msg;\n this.curTrace.pop(); // postprocess to kill last entry\n }\n }\n // if you have multiple ExecutionVisualizer on a page, their IDs\n // better be unique or else you'll run into rendering problems\n if (this.params.visualizerIdOverride) {\n this.visualizerID = this.params.visualizerIdOverride;\n }\n else {\n this.visualizerID = ExecutionVisualizer.curVisualizerID;\n assert(this.visualizerID > 0);\n ExecutionVisualizer.curVisualizerID++;\n }\n // sanitize to avoid nasty 'undefined' states\n this.params.disableHeapNesting = (this.params.disableHeapNesting === true);\n this.params.drawParentPointers = (this.params.drawParentPointers === true);\n this.params.textualMemoryLabels = (this.params.textualMemoryLabels === true);\n this.params.showAllFrameLabels = (this.params.showAllFrameLabels === true);\n if (this.params.alwaysNestTypes === undefined) {\n this.params.alwaysNestTypes = ExecutionVisualizer.DEFAULT_ALWAYS_NEST_TYPES;\n }\n assert($.isArray(this.params.alwaysNestTypes));\n // insert ExecutionVisualizer into domRootID in the DOM\n var tmpRoot = $('#' + domRootID);\n var tmpRootD3 = d3.select('#' + domRootID);\n tmpRoot.html('<div class=\"ExecutionVisualizer\"></div>');\n // the root elements for jQuery and D3 selections, respectively.\n // ALWAYS use these and never use raw $(__) or d3.select(__)\n this.domRoot = tmpRoot.find('div.ExecutionVisualizer');\n this.domRootD3 = tmpRootD3.select('div.ExecutionVisualizer');\n if (this.params.lang === 'java') {\n this.activateJavaFrontend(); // ohhhh yeah! do this before initializing codeOutputLines (ugh order dependency)\n }\n var lines = this.curInputCode.split('\\n');\n for (var i = 0; i < lines.length; i++) {\n var cod = lines[i];\n var n = {\n text: cod,\n lineNumber: i + 1,\n executionPoints: [],\n breakpointHere: false,\n };\n $.each(this.curTrace, function (j, elt) {\n if (elt.line === n.lineNumber) {\n n.executionPoints.push(j);\n }\n });\n // if there is a comment containing 'breakpoint' and this line was actually executed,\n // then set a breakpoint on this line\n var breakpointInComment = false;\n var toks = cod.split('#');\n for (var j = 1 /* start at index 1, not 0 */; j < toks.length; j++) {\n if (toks[j].indexOf('breakpoint') != -1) {\n breakpointInComment = true;\n }\n }\n if (breakpointInComment && n.executionPoints.length > 0) {\n n.breakpointHere = true;\n this.addToBreakpoints(n.executionPoints);\n }\n this.codeOutputLines.push(n);\n }\n this.try_hook(\"end_constructor\", { myViz: this });\n this.render(); // go for it!\n }\n ExecutionVisualizer.prototype.objInAlwaysNestTypes = function (obj) {\n if (!obj)\n return false;\n assert($.isArray(obj));\n if (this.params.alwaysNestTypes.indexOf(obj[0]) >= 0) {\n // is the type name in alwaysNestTypes?\n return true;\n }\n else if (obj.length >= 2 &&\n (obj[0] == 'INSTANCE' || obj[0] == 'INSTANCE_PPRINT') &&\n (this.params.alwaysNestTypes.indexOf(obj[1]) >= 0)) {\n // otherwise is this an INSTANCE with the type name (obj[1]) in alwaysNestTypes?\n return true;\n }\n else {\n return false;\n }\n };\n // should this object be nested within another one?\n ExecutionVisualizer.prototype.shouldNestObject = function (obj) {\n return (!this.params.disableHeapNesting || this.objInAlwaysNestTypes(obj));\n };\n /* API for adding a hook, created by David Pritchard\n https://github.com/daveagp\n \n [this documentation is a bit deprecated since Philip made try_hook a\n method of ExecutionVisualizer, but the general ideas remain]\n \n An external user should call\n add_pytutor_hook(\"hook_name_here\", function(args) {...})\n args will be a javascript object with several named properties;\n this is meant to be similar to Python's keyword arguments.\n \n The hooked function should return an array whose first element is a boolean:\n true if it completely handled the situation (no further hooks\n nor the base function should be called); false otherwise (wasn't handled).\n If the hook semantically represents a function that returns something,\n the second value of the returned array is that semantic return value.\n \n E.g. for the Java visualizer a simplified version of a hook we use is:\n \n add_pytutor_hook(\n \"isPrimitiveType\",\n function(args) {\n var obj = args.obj; // unpack\n if (obj instanceof Array && obj[0] == \"CHAR-LITERAL\")\n return [true, true]; // yes we handled it, yes it's primitive\n return [false]; // didn't handle it, let someone else\n });\n \n Hook callbacks can return false or undefined (i.e. no return\n value) in lieu of [false].\n \n NB: If multiple functions are added to a hook, the oldest goes first. */\n ExecutionVisualizer.prototype.add_pytutor_hook = function (hook_name, func) {\n if (this.pytutor_hooks[hook_name])\n this.pytutor_hooks[hook_name].push(func);\n else\n this.pytutor_hooks[hook_name] = [func];\n };\n /* [this documentation is a bit deprecated since Philip made try_hook a\n method of ExecutionVisualizer, but the general ideas remain]\n \n try_hook(hook_name, args): how the internal codebase invokes a hook.\n \n args will be a javascript object with several named properties;\n this is meant to be similar to Python's keyword arguments. E.g.,\n \n function isPrimitiveType(obj) {\n var hook_result = try_hook(\"isPrimitiveType\", {obj:obj});\n if (hook_result[0]) return hook_result[1];\n // go on as normal if the hook didn't handle it\n \n Although add_pytutor_hook allows the hooked function to\n return false or undefined, try_hook will always return\n something with the strict format [false], [true] or [true, ...]. */\n ExecutionVisualizer.prototype.try_hook = function (hook_name, args) {\n if (this.pytutor_hooks[hook_name]) {\n for (var i = 0; i < this.pytutor_hooks[hook_name].length; i++) {\n // apply w/o \"this\", and pack sole arg into array as required by apply\n var handled_and_result = this.pytutor_hooks[hook_name][i].apply(null, [args]);\n if (handled_and_result && handled_and_result[0])\n return handled_and_result;\n }\n }\n return [false];\n };\n // create a unique ID, which is often necessary so that jsPlumb doesn't get confused\n // due to multiple ExecutionVisualizer instances being displayed simultaneously\n ExecutionVisualizer.prototype.generateID = function (original_id) {\n // (it's safer to start names with a letter rather than a number)\n return 'v' + this.visualizerID + '__' + original_id;\n };\n ExecutionVisualizer.prototype.render = function () {\n var _this = this;\n if (this.hasRendered) {\n alert('ERROR: You should only call render() ONCE on an ExecutionVisualizer object.');\n return;\n }\n var myViz = this; // to prevent confusion of 'this' inside of nested functions\n if (this.params.verticalStack) {\n this.domRoot.html('<table border=\"0\" class=\"visualizer\">\\\n <tr><td class=\"vizLayoutTd\" id=\"vizLayoutTdFirst\"\"></td></tr>\\\n <tr><td class=\"vizLayoutTd\" id=\"vizLayoutTdSecond\"></td></tr>\\\n </table>');\n }\n else {\n this.domRoot.html('<table border=\"0\" class=\"visualizer\"><tr>\\\n <td class=\"vizLayoutTd\" id=\"vizLayoutTdFirst\"></td>\\\n <td class=\"vizLayoutTd\" id=\"vizLayoutTdSecond\"></td>\\\n </tr></table>');\n }\n // create a container for a resizable slider to encompass\n // both CodeDisplay and NavigationController\n this.domRoot.find('#vizLayoutTdFirst').append('<div id=\"codAndNav\" style=\"width: 550px;\"/>');\n var base = this.domRoot.find('#vizLayoutTdFirst #codAndNav');\n var baseD3 = this.domRootD3.select('#vizLayoutTdFirst #codAndNav');\n this.codDisplay = new CodeDisplay(this, base, baseD3, this.curInputCode, this.params.lang, this.params.editCodeBaseURL);\n this.navControls = new NavigationController(this, base, baseD3, this.curTrace.length);\n if (this.params.embeddedMode) {\n // don't override if they've already been set!\n if (this.params.codeDivWidth === undefined) {\n this.params.codeDivWidth = ExecutionVisualizer.DEFAULT_EMBEDDED_CODE_DIV_WIDTH;\n }\n if (this.params.codeDivHeight === undefined) {\n this.params.codeDivHeight = ExecutionVisualizer.DEFAULT_EMBEDDED_CODE_DIV_HEIGHT;\n }\n // add an extra label to link back to the main site, so that viewers\n // on the embedded page know that they're seeing an OPT visualization\n base.find('#creditsPane').html('<div style=\"font-size: 8pt; margin-top: 5px; margin-bottom: 5px;\"><a href=\"http://pythontutor.com/\" target=\"_blank\" style=\"color: #3D58A2;\">Python Tutor</a> by <a href=\"http://pgbovine.net/\" target=\"_blank\" style=\"color: #3D58A2;\">Philip Guo</a></div>');\n base.find('#codeFooterDocs').hide(); // cut out extraneous docs\n }\n else {\n }\n // not enough room for these extra buttons ...\n if (this.params.codeDivWidth &&\n this.params.codeDivWidth < 470) {\n this.domRoot.find('#jmpFirstInstr').hide();\n this.domRoot.find('#jmpLastInstr').hide();\n }\n if (this.params.codeDivWidth) {\n this.domRoot.find('#codAndNav').width(this.params.codeDivWidth);\n }\n if (this.params.codeDivHeight) {\n this.domRoot.find('#pyCodeOutputDiv')\n .css('max-height', this.params.codeDivHeight + 'px');\n }\n // enable left-right draggable pane resizer (originally from David Pritchard)\n base.resizable({\n handles: \"e\",\n minWidth: 100,\n resize: function (event, ui) {\n _this.domRoot.find(\"#codeDisplayDiv\").css(\"height\", \"auto\"); // redetermine height if necessary\n _this.navControls.renderSliderBreakpoints(_this.sortedBreakpointsList); // update breakpoint display accordingly on resize\n if (_this.params.updateOutputCallback) // report size change\n _this.params.updateOutputCallback(_this);\n }\n });\n this.outputBox = new ProgramOutputBox(this, this.domRoot.find('#vizLayoutTdSecond'), this.params.embeddedMode ? '45px' : null);\n this.dataViz = new DataVisualizer(this, this.domRoot.find('#vizLayoutTdSecond'), this.domRootD3.select('#vizLayoutTdSecond'));\n myViz.navControls.showError(this.instrLimitReachedWarningMsg);\n myViz.navControls.setupSlider(this.curTrace.length - 1);\n if (this.params.startingInstruction) {\n this.params.jumpToEnd = false; // override! make sure to handle FIRST\n // weird special case for something like:\n // e=raw_input(raw_input(\"Enter something:\"))\n if (this.params.startingInstruction == this.curTrace.length) {\n this.params.startingInstruction--;\n }\n // fail-soft with out-of-bounds startingInstruction values:\n if (this.params.startingInstruction < 0) {\n this.params.startingInstruction = 0;\n }\n if (this.params.startingInstruction >= this.curTrace.length) {\n this.params.startingInstruction = this.curTrace.length - 1;\n }\n assert(0 <= this.params.startingInstruction &&\n this.params.startingInstruction < this.curTrace.length);\n this.curInstr = this.params.startingInstruction;\n }\n if (this.params.jumpToEnd) {\n var firstErrorStep = -1;\n for (var i = 0; i < this.curTrace.length; i++) {\n var e = this.curTrace[i];\n if (e.event == 'exception' || e.event == 'uncaught_exception') {\n firstErrorStep = i;\n break;\n }\n }\n // set to first error step if relevant since that's more informative\n // than simply jumping to the very end\n if (firstErrorStep >= 0) {\n this.curInstr = firstErrorStep;\n }\n else {\n this.curInstr = this.curTrace.length - 1;\n }\n }\n if (this.params.hideCode) {\n this.domRoot.find('#vizLayoutTdFirst').hide(); // gigantic hack!\n }\n this.dataViz.precomputeCurTraceLayouts();\n if (!this.params.hideCode) {\n this.codDisplay.renderPyCodeOutput();\n }\n this.updateOutput();\n this.redrawConnectors(); // do this at the end\n this.hasRendered = true;\n this.try_hook(\"end_render\", { myViz: this });\n };\n ExecutionVisualizer.prototype._getSortedBreakpointsList = function () {\n var ret = [];\n this.breakpoints.forEach(function (k, v) {\n ret.push(Number(k)); // these should be NUMBERS, not strings\n });\n ret.sort(function (x, y) { return x - y; }); // WTF, javascript sort is lexicographic by default!\n return ret;\n };\n ExecutionVisualizer.prototype.addToBreakpoints = function (executionPoints) {\n var _this = this;\n $.each(executionPoints, function (i, ep) {\n _this.breakpoints.set(ep, 1);\n });\n this.sortedBreakpointsList = this._getSortedBreakpointsList(); // keep synced!\n };\n ExecutionVisualizer.prototype.removeFromBreakpoints = function (executionPoints) {\n var _this = this;\n $.each(executionPoints, function (i, ep) {\n _this.breakpoints.remove(ep);\n });\n this.sortedBreakpointsList = this._getSortedBreakpointsList(); // keep synced!\n };\n ExecutionVisualizer.prototype.setBreakpoint = function (d) {\n this.addToBreakpoints(d.executionPoints);\n this.navControls.renderSliderBreakpoints(this.sortedBreakpointsList);\n };\n ExecutionVisualizer.prototype.unsetBreakpoint = function (d) {\n this.removeFromBreakpoints(d.executionPoints);\n this.navControls.renderSliderBreakpoints(this.sortedBreakpointsList);\n };\n // find the previous/next breakpoint to c or return -1 if it doesn't exist\n ExecutionVisualizer.prototype.findPrevBreakpoint = function () {\n var c = this.curInstr;\n if (this.sortedBreakpointsList.length == 0) {\n return -1;\n }\n else {\n for (var i = 1; i < this.sortedBreakpointsList.length; i++) {\n var prev = this.sortedBreakpointsList[i - 1];\n var cur = this.sortedBreakpointsList[i];\n if (c <= prev)\n return -1;\n if (cur >= c)\n return prev;\n }\n // final edge case:\n var lastElt = this.sortedBreakpointsList[this.sortedBreakpointsList.length - 1];\n return (lastElt < c) ? lastElt : -1;\n }\n };\n ExecutionVisualizer.prototype.findNextBreakpoint = function () {\n var c = this.curInstr;\n if (this.sortedBreakpointsList.length == 0) {\n return -1;\n }\n // usability hack: if you're currently on a breakpoint, then\n // single-step forward to the next execution point, NOT the next\n // breakpoint. it's often useful to see what happens when the line\n // at a breakpoint executes.\n else if ($.inArray(c, this.sortedBreakpointsList) >= 0) {\n return c + 1;\n }\n else {\n for (var i = 0; i < this.sortedBreakpointsList.length - 1; i++) {\n var cur = this.sortedBreakpointsList[i];\n var next = this.sortedBreakpointsList[i + 1];\n if (c < cur)\n return cur;\n if (cur <= c && c < next) // subtle\n return next;\n }\n // final edge case:\n var lastElt = this.sortedBreakpointsList[this.sortedBreakpointsList.length - 1];\n return (lastElt > c) ? lastElt : -1;\n }\n };\n // returns true if action successfully taken\n ExecutionVisualizer.prototype.stepForward = function () {\n var myViz = this;\n if (myViz.curInstr < myViz.curTrace.length - 1) {\n // if there is a next breakpoint, then jump to it ...\n if (myViz.sortedBreakpointsList.length > 0) {\n var nextBreakpoint = myViz.findNextBreakpoint();\n if (nextBreakpoint != -1)\n myViz.curInstr = nextBreakpoint;\n else\n myViz.curInstr += 1; // prevent \"getting stuck\" on a solitary breakpoint\n }\n else {\n myViz.curInstr += 1;\n }\n myViz.updateOutput(true);\n return true;\n }\n return false;\n };\n // returns true if action successfully taken\n ExecutionVisualizer.prototype.stepBack = function () {\n var myViz = this;\n if (myViz.curInstr > 0) {\n // if there is a prev breakpoint, then jump to it ...\n if (myViz.sortedBreakpointsList.length > 0) {\n var prevBreakpoint = myViz.findPrevBreakpoint();\n if (prevBreakpoint != -1)\n myViz.curInstr = prevBreakpoint;\n else\n myViz.curInstr -= 1; // prevent \"getting stuck\" on a solitary breakpoint\n }\n else {\n myViz.curInstr -= 1;\n }\n myViz.updateOutput();\n return true;\n }\n return false;\n };\n // This function is called every time the display needs to be updated\n ExecutionVisualizer.prototype.updateOutput = function (smoothTransition) {\n if (smoothTransition === void 0) { smoothTransition = false; }\n if (this.params.hideCode) {\n this.updateOutputMini();\n }\n else {\n this.updateOutputFull(smoothTransition);\n }\n this.outputBox.renderOutput(this.curTrace[this.curInstr].stdout);\n this.try_hook(\"end_updateOutput\", { myViz: this });\n };\n // does a LOT of stuff, called by updateOutput\n ExecutionVisualizer.prototype.updateOutputFull = function (smoothTransition) {\n assert(this.curTrace);\n assert(!this.params.hideCode);\n var myViz = this; // to prevent confusion of 'this' inside of nested functions\n // there's no point in re-rendering if this pane isn't even visible in the first place!\n if (!myViz.domRoot.is(':visible')) {\n return;\n }\n myViz.updateLineAndExceptionInfo(); // very important to call this before rendering code (argh order dependency)\n var prevDataVizHeight = myViz.dataViz.height();\n this.codDisplay.updateCodOutput(smoothTransition);\n // call the callback if necessary (BEFORE rendering)\n if (this.params.updateOutputCallback) {\n this.params.updateOutputCallback(this);\n }\n var totalInstrs = this.curTrace.length;\n var isFirstInstr = (this.curInstr == 0);\n var isLastInstr = (this.curInstr == (totalInstrs - 1));\n var msg = \"Step \" + String(this.curInstr + 1) + \" of \" + String(totalInstrs - 1);\n if (isLastInstr) {\n if (this.promptForUserInput || this.promptForMouseInput) {\n msg = '<b><font color=\"' + exports.brightRed + '\">Enter user input:</font></b>';\n }\n else if (this.instrLimitReached) {\n msg = \"Step limit reached\";\n }\n else {\n msg = \"Done running (\" + String(totalInstrs - 1) + \" steps)\";\n }\n }\n this.navControls.setVcrControls(msg, isFirstInstr, isLastInstr);\n this.navControls.setSliderVal(this.curInstr);\n // render error (if applicable):\n if (myViz.curLineExceptionMsg) {\n if (myViz.curLineExceptionMsg === \"Unknown error\") {\n myViz.navControls.showError('Unknown error: ' + footer_html_1.unsupportedFeaturesStr);\n }\n else {\n myViz.navControls.showError(myViz.curLineExceptionMsg);\n }\n }\n else if (!this.instrLimitReached) { // ugly, I know :/\n myViz.navControls.showError(null);\n }\n // finally, render all of the data structures\n this.dataViz.renderDataStructures(this.curInstr);\n // call the callback if necessary (AFTER rendering)\n if (myViz.dataViz.height() != prevDataVizHeight) {\n if (this.params.heightChangeCallback) {\n this.params.heightChangeCallback(this);\n }\n }\n if (isLastInstr &&\n myViz.params.executeCodeWithRawInputFunc &&\n myViz.promptForUserInput) {\n this.navControls.showUserInputDiv();\n }\n else {\n this.navControls.hideUserInputDiv();\n }\n }; // end of updateOutputFull\n ExecutionVisualizer.prototype.updateOutputMini = function () {\n assert(this.params.hideCode);\n this.dataViz.renderDataStructures(this.curInstr);\n };\n ExecutionVisualizer.prototype.renderStep = function (step) {\n assert(0 <= step);\n assert(step < this.curTrace.length);\n // ignore redundant calls\n if (this.curInstr == step) {\n return;\n }\n this.curInstr = step;\n this.updateOutput();\n };\n ExecutionVisualizer.prototype.redrawConnectors = function () {\n this.dataViz.redrawConnectors();\n };\n // All of the Java frontend code in this function was written by David\n // Pritchard and Will Gwozdz, and integrated into pytutor.js by Philip Guo\n ExecutionVisualizer.prototype.activateJavaFrontend = function () {\n var prevLine = null;\n this.curTrace.forEach(function (e, i) {\n // ugh the Java backend doesn't attach line numbers to exception\n // events, so just take the previous line number as our best guess\n if (e.event === 'exception' && !e.line) {\n e.line = prevLine;\n }\n // super hack by Philip that reverses the direction of the stack so\n // that it grows DOWN and renders the same way as the Python and JS\n // visualizer stacks\n if (e.stack_to_render !== undefined) {\n e.stack_to_render.reverse();\n }\n prevLine = e.line;\n });\n this.add_pytutor_hook(\"renderPrimitiveObject\", function (args) {\n var obj = args.obj, d3DomElement = args.d3DomElement;\n var typ = typeof obj;\n if (obj instanceof Array && obj[0] == \"VOID\") {\n d3DomElement.append('<span class=\"voidObj\">void</span>');\n }\n else if (obj instanceof Array && obj[0] == \"NUMBER-LITERAL\") {\n // actually transmitted as a string\n d3DomElement.append('<span class=\"numberObj\">' + obj[1] + '</span>');\n }\n else if (obj instanceof Array && obj[0] == \"CHAR-LITERAL\") {\n var asc = obj[1].charCodeAt(0);\n var ch = obj[1];\n // default\n var show = asc.toString(16);\n while (show.length < 4)\n show = \"0\" + show;\n show = \"\\\\u\" + show;\n if (ch == \"\\n\")\n show = \"\\\\n\";\n else if (ch == \"\\r\")\n show = \"\\\\r\";\n else if (ch == \"\\t\")\n show = \"\\\\t\";\n else if (ch == \"\\b\")\n show = \"\\\\b\";\n else if (ch == \"\\f\")\n show = \"\\\\f\";\n else if (ch == \"\\'\")\n show = \"\\\\\\'\";\n else if (ch == \"\\\"\")\n show = \"\\\\\\\"\";\n else if (ch == \"\\\\\")\n show = \"\\\\\\\\\";\n else if (asc >= 32)\n show = ch;\n // stringObj to make monospace\n d3DomElement.append('<span class=\"stringObj\">\\'' + show + '\\'</span>');\n }\n else\n return [false]; // we didn't handle it\n return [true]; // we handled it\n });\n this.add_pytutor_hook(\"isPrimitiveType\", function (args) {\n var obj = args.obj;\n if ((obj instanceof Array && obj[0] == \"VOID\")\n || (obj instanceof Array && obj[0] == \"NUMBER-LITERAL\")\n || (obj instanceof Array && obj[0] == \"CHAR-LITERAL\")\n || (obj instanceof Array && obj[0] == \"ELIDE\"))\n return [true, true]; // we handled it, it's primitive\n return [false]; // didn't handle it\n });\n this.add_pytutor_hook(\"end_updateOutput\", function (args) {\n var myViz = args.myViz;\n var curEntry = myViz.curTrace[myViz.curInstr];\n if (myViz.params.stdin && myViz.params.stdin != \"\") {\n var stdinPosition = curEntry.stdinPosition || 0;\n var stdinContent = '<span style=\"color:lightgray;text-decoration: line-through\">' +\n escapeHtml(myViz.params.stdin.substr(0, stdinPosition)) +\n '</span>' +\n escapeHtml(myViz.params.stdin.substr(stdinPosition));\n myViz.domRoot.find('#stdinShow').html(stdinContent);\n }\n return [false];\n });\n this.add_pytutor_hook(\"end_render\", function (args) {\n var myViz = args.myViz;\n if (myViz.params.stdin && myViz.params.stdin != \"\") {\n var stdinHTML = '<div id=\"stdinWrap\">stdin:<pre id=\"stdinShow\" style=\"border:1px solid gray\"></pre></div>';\n myViz.domRoot.find('#dataViz').append(stdinHTML); // TODO: leaky abstraction with #dataViz\n }\n myViz.domRoot.find('#' + myViz.generateID('globals_header')).html(\"Static fields\");\n });\n this.add_pytutor_hook(\"isLinearObject\", function (args) {\n var heapObj = args.heapObj;\n if (heapObj[0] == 'STACK' || heapObj[0] == 'QUEUE')\n return ['true', 'true'];\n return ['false'];\n });\n this.add_pytutor_hook(\"renderCompoundObject\", function (args) {\n var objID = args.objID;\n var d3DomElement = args.d3DomElement;\n var obj = args.obj;\n var typeLabelPrefix = args.typeLabelPrefix;\n var myViz = args.myViz;\n var stepNum = args.stepNum;\n if (!(obj[0] == 'LIST' || obj[0] == 'QUEUE' || obj[0] == 'STACK'))\n return [false]; // didn't handle\n var label = obj[0].toLowerCase();\n var visibleLabel = { list: 'array', queue: 'queue', stack: 'stack' }[label];\n if (obj.length == 1) {\n d3DomElement.append('<div class=\"typeLabel\">' + typeLabelPrefix + 'empty ' + visibleLabel + '</div>');\n return [true]; //handled\n }\n d3DomElement.append('<div class=\"typeLabel\">' + typeLabelPrefix + visibleLabel + '</div>');\n d3DomElement.append('<table class=\"' + label + 'Tbl\"></table>');\n var tbl = d3DomElement.children('table');\n if (obj[0] == 'LIST') {\n tbl.append('<tr></tr><tr></tr>');\n var headerTr = tbl.find('tr:first');\n var contentTr = tbl.find('tr:last');\n // i: actual index in json object; ind: apparent index\n for (var i = 1, ind = 0; i < obj.length; i++) {\n var val = obj[i];\n var elide = val instanceof Array && val[0] == 'ELIDE';\n // add a new column and then pass in that newly-added column\n // as d3DomElement to the recursive call to child:\n headerTr.append('<td class=\"' + label + 'Header\"></td>');\n headerTr.find('td:last').append(elide ? \"…\" : ind);\n contentTr.append('<td class=\"' + label + 'Elt\"></td>');\n if (!elide) {\n myViz.renderNestedObject(val, stepNum, contentTr.find('td:last'));\n ind++;\n }\n else {\n contentTr.find('td:last').append(\"…\");\n ind += val[1]; // val[1] is the number of cells to skip\n }\n }\n } // end of LIST handling\n // Stack and Queue handling code by Will Gwozdz\n /* The table produced for stacks and queues is formed slightly differently than the others,\n missing the header row. Two rows made the dashed border not line up properly */\n if (obj[0] == 'STACK') {\n tbl.append('<tr></tr><tr></tr>');\n var contentTr = tbl.find('tr:last');\n contentTr.append('<td class=\"' + label + 'FElt\">' + '<span class=\"stringObj symbolic\">↔</span>' + '</td>');\n $.each(obj, function (ind, val) {\n if (ind < 1)\n return; // skip type tag and ID entry\n contentTr.append('<td class=\"' + label + 'Elt\"></td>');\n myViz.renderNestedObject(val, stepNum, contentTr.find('td:last'));\n });\n contentTr.append('<td class=\"' + label + 'LElt\">' + '</td>');\n }\n if (obj[0] == 'QUEUE') {\n tbl.append('<tr></tr><tr></tr>');\n var contentTr = tbl.find('tr:last');\n // Add arrows showing in/out direction\n contentTr.append('<td class=\"' + label + 'FElt\">' + '<span class=\"stringObj symbolic\">←</span></td>');\n $.each(obj, function (ind, val) {\n if (ind < 1)\n return; // skip type tag and ID entry\n contentTr.append('<td class=\"' + label + 'Elt\"></td>');\n myViz.renderNestedObject(val, stepNum, contentTr.find('td:last'));\n });\n contentTr.append('<td class=\"' + label + 'LElt\">' + '<span class=\"stringObj symbolic\">←</span></td>');\n }\n return [true]; // did handle\n });\n this.add_pytutor_hook(\"end_renderDataStructures\", function (args) {\n var myViz = args.myViz;\n myViz.domRoot.find(\"td.instKey:contains('___NO_LABEL!___')\").hide();\n myViz.domRoot.find(\".typeLabel:contains('dict')\").each(function (i) {\n if ($(this).html() == 'dict')\n $(this).html('symbol table');\n if ($(this).html() == 'empty dict')\n $(this).html('empty symbol table');\n });\n });\n // java synthetics cause things which javascript doesn't like in an id\n // VERY important to bind(this) so that when it's called, 'this' is this current object\n var old_generateID = ExecutionVisualizer.prototype.generateID.bind(this);\n this.generateID = function (original_id) {\n var sanitized = original_id.replace(/[^0-9a-zA-Z_]/g, function (match) { return '-' + match.charCodeAt(0) + '-'; });\n return old_generateID(sanitized);\n };\n // utility functions\n var entityMap = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': '"',\n \"'\": ''',\n \"/\": '/'\n };\n var escapeHtml = function (string) {\n return String(string).replace(/[&<>\"'\\/]/g, function (s) {\n return entityMap[s];\n });\n };\n };\n // update fields corresponding to the current and previously executed lines\n // in the trace so that they can be properly highlighted; must call before\n // rendering code output (NB: argh pesky ordering dependency)\n ExecutionVisualizer.prototype.updateLineAndExceptionInfo = function () {\n var myViz = this;\n var totalInstrs = myViz.curTrace.length;\n var isLastInstr = myViz.curInstr === (totalInstrs - 1);\n myViz.curLineNumber = undefined;\n myViz.prevLineNumber = undefined;\n myViz.curLineIsReturn = undefined;\n myViz.prevLineIsReturn = undefined;\n myViz.curLineExceptionMsg = undefined;\n /* if instrLimitReached, then treat like a normal non-terminating line */\n var isTerminated = (!myViz.instrLimitReached && isLastInstr);\n var curLineNumber = null;\n var prevLineNumber = null;\n var curEntry = myViz.curTrace[myViz.curInstr];\n var curIsReturn = (curEntry.event == 'return');\n var prevIsReturn = false;\n if (myViz.curInstr > 0) {\n prevLineNumber = myViz.curTrace[myViz.curInstr - 1].line;\n prevIsReturn = (myViz.curTrace[myViz.curInstr - 1].event == 'return');\n /* kinda nutsy hack: if the previous line is a return line, don't\n highlight it. instead, highlight the line in the enclosing\n function that called this one (i.e., the call site). e.g.,:\n \n 1. def foo(lst):\n 2. return len(lst)\n 3.\n 4. y = foo([1,2,3])\n 5. print y\n \n If prevLineNumber is 2 and prevIsReturn, then curLineNumber is\n 5, since that's the line that executes right after line 2\n finishes. However, this looks confusing to the user since what\n actually happened here was that the return value of foo was\n assigned to y on line 4. I want to have prevLineNumber be line\n 4 so that it gets highlighted. There's no ideal solution, but I\n think that looks more sensible, since line 4 was the previous\n line that executed *in this function's frame*.\n */\n if (prevIsReturn) {\n var idx = myViz.curInstr - 1;\n var retStack = myViz.curTrace[idx].stack_to_render;\n // retStack.length == 0 in rare cases such as inside of an\n // exec() statement. #weird\n if (retStack.length > 0) {\n var retFrameId = retStack[retStack.length - 1].frame_id;\n // now go backwards until we find a 'call' to this frame\n while (idx >= 0) {\n var entry = myViz.curTrace[idx];\n if (entry.event == 'call' && entry.stack_to_render) {\n var topFrame = entry.stack_to_render[entry.stack_to_render.length - 1];\n if (topFrame.frame_id == retFrameId) {\n break; // DONE, we found the call that corresponds to this return\n }\n }\n idx--;\n }\n // now idx is the index of the 'call' entry. we need to find the\n // entry before that, which is the instruction before the call.\n // THAT's the line of the call site.\n if (idx > 0) {\n var callingEntry = myViz.curTrace[idx - 1];\n prevLineNumber = callingEntry.line; // WOOHOO!!!\n prevIsReturn = false; // this is now a call site, not a return\n }\n }\n }\n }\n var hasError = false;\n if (curEntry.event === 'exception' || curEntry.event === 'uncaught_exception') {\n assert(curEntry.exception_msg);\n hasError = true;\n myViz.curLineExceptionMsg = curEntry.exception_msg;\n }\n curLineNumber = curEntry.line;\n // edge case for the final instruction :0\n if (isTerminated && !hasError) {\n // don't show redundant arrows on the same line when terminated ...\n if (prevLineNumber == curLineNumber) {\n curLineNumber = null;\n }\n }\n // add these fields to myViz, which is the point of this function!\n myViz.curLineNumber = curLineNumber;\n myViz.prevLineNumber = prevLineNumber;\n myViz.curLineIsReturn = curIsReturn;\n myViz.prevLineIsReturn = prevIsReturn;\n myViz.renderQuestionMaybe();\n };\n ExecutionVisualizer.prototype.isOutputLineVisibleForBubbles = function (lineDivID) {\n var pcod = this.domRoot.find('#pyCodeOutputDiv');\n var lineNoTd = $('#' + lineDivID);\n var LO = lineNoTd.offset().top;\n var PO = pcod.offset().top;\n var ST = pcod.scrollTop();\n var H = pcod.height();\n // add a few pixels of fudge factor on the bottom end due to bottom scrollbar\n return (PO <= LO) && (LO < (PO + H - 25));\n };\n ExecutionVisualizer.prototype.renderQuestionMaybe = function () {\n // bnm\n if (this.curInstr < 1)\n return;\n var curEntry = this.curTrace[this.curInstr - 1];\n if (curEntry.question) {\n var done = false;\n while (!done) {\n var ans = prompt(curEntry.question.text);\n var answer = curEntry.question.correct;\n var attrs = answer.split(\".\");\n var correctAns = this.curTrace[this.curInstr];\n for (var j in attrs) {\n correctAns = correctAns[attrs[j]];\n }\n if (ans.length > 0 && ans == correctAns) {\n alert('Correct');\n done = true;\n // Create a custom event so that we don't have to suck in all of runestone\n // codelens.js has code that binds to this event and generates the call to\n // record the answer.\n var e = new CustomEvent(\"codelens:answer\", { detail: { divid: $(this.domRoot).closest(\".pytutorVisualizer\")[0].id,\n correct: true,\n answer: ans\n } });\n document.dispatchEvent(e);\n }\n else {\n done = !confirm(curEntry.question.feedback + \"\\nClick OK to try again\");\n var e = new CustomEvent(\"codelens:answer\", { detail: { divid: $(this.domRoot).closest(\".pytutorVisualizer\")[0].id,\n correct: false,\n answer: ans\n } });\n document.dispatchEvent(e);\n }\n }\n }\n };\n ExecutionVisualizer.curVisualizerID = 1;\n ExecutionVisualizer.DEFAULT_EMBEDDED_CODE_DIV_WIDTH = 350;\n ExecutionVisualizer.DEFAULT_EMBEDDED_CODE_DIV_HEIGHT = 400;\n // always nest values of these types within objects to make the\n // visualization look cleaner:\n // - functions should be nested within heap objects since that's a more\n // intuitive rendering for methods (i.e., functions within objects)\n // - lots of special cases for function/property-like python types that we should inline\n ExecutionVisualizer.DEFAULT_ALWAYS_NEST_TYPES = ['FUNCTION', 'JS_FUNCTION',\n 'property', 'classmethod', 'staticmethod', 'builtin_function_or_method',\n 'member_descriptor', 'getset_descriptor', 'method_descriptor', 'wrapper_descriptor'];\n return ExecutionVisualizer;\n}()); // END class ExecutionVisualizer\nexports.ExecutionVisualizer = ExecutionVisualizer;\n// implements the data structure visualization for an entire trace\nvar DataVisualizer = /** @class */ (function () {\n function DataVisualizer(owner, domRoot, domRootD3) {\n this.owner = owner;\n this.params = this.owner.params;\n this.curTrace = this.owner.curTrace;\n this.domRoot = domRoot;\n this.domRootD3 = domRootD3;\n this.hideVarsSet = null;\n this.hideFieldsSet = null;\n this.draggedHeapObjectCSS = d3.map(); // see above for description\n var codeVizHTML = \"\\n <div id=\\\"selectiveHideStatus\\\"></div>\\n <div id=\\\"dataViz\\\">\\n <table id=\\\"stackHeapTable\\\">\\n <tr>\\n <td id=\\\"stack_td\\\">\\n <div id=\\\"globals_area\\\">\\n <div id=\\\"stackHeader\\\">\" + this.getRealLabel(\"Frames\") + \"</div>\\n </div>\\n <div id=\\\"stack\\\"></div>\\n </td>\\n <td id=\\\"heap_td\\\">\\n <div id=\\\"heap\\\">\\n <div id=\\\"heapHeader\\\">\" + this.getRealLabel(\"Objects\") + \"</div>\\n </div>\\n </td>\\n </tr>\\n </table>\\n </div>\";\n this.domRoot.append(codeVizHTML);\n // create a persistent globals frame\n // (note that we need to keep #globals_area separate from #stack for d3 to work its magic)\n this.domRoot.find(\"#globals_area\").append('<div class=\"stackFrame\" id=\"'\n + this.owner.generateID('globals') + '\"><div id=\"' + this.owner.generateID('globals_header')\n + '\" class=\"stackFrameHeader\">' + this.getRealLabel('Global frame') + '</div><table class=\"stackFrameVarTable\" id=\"'\n + this.owner.generateID('global_table') + '\"></table></div>');\n this.jsPlumbInstance = jsPlumb.getInstance({\n Endpoint: [\"Dot\", { radius: 3 }],\n EndpointStyles: [{ fillStyle: connectorBaseColor }, { fillstyle: null } /* make right endpoint invisible */],\n Anchors: [\"RightMiddle\", \"LeftMiddle\"],\n PaintStyle: { lineWidth: 1, strokeStyle: connectorBaseColor },\n // From: http://jsplumb.github.io/jsplumb/home.html#container\n // \"It is strongly recommended that you set a Container before you begin plumbing.\"\n // - if you don't do this, then jsplumb arrow elements will live next to\n // the elements that anchor them, which INTERACTS REALLY REALLY BADLY\n // with jQuery draggable in weird ways. so set this.domRoot as container\n Container: this.domRoot,\n // note that this documentation covers a newer version of jsPlumb, and\n // we're still on a super-old jsPlumb-1.3.10 in lib/\n // https://docs.jsplumbtoolkit.com/toolkit/current/articles/connectors.html\n Connector: [\"StateMachine\"],\n Overlays: [[\"Arrow\", { length: 10, width: 7, foldback: 0.55, location: 1 /* 1 = display at target */ }]],\n EndpointHoverStyles: [{ fillStyle: connectorHighlightColor }, { fillstyle: null } /* make right endpoint invisible */],\n HoverPaintStyle: { lineWidth: 1, strokeStyle: connectorHighlightColor },\n });\n }\n DataVisualizer.prototype.height = function () {\n return this.domRoot.find('#dataViz').height();\n };\n // create a unique CSS ID for a heap object, which should include both\n // its ID and the current step number. this is necessary if we want to\n // display the same heap object at multiple execution steps.\n //\n // 2020-02-05: why do we need stepNum in the ID? what happens if we\n // remove it? it may be more convenient if we remove it since we can\n // then track the state of the same object across multiple execution steps\n // such as its location (if the user dragged it to a custom location)\n // or whether it's hidden or not, since it will have the same CSS ID\n // when it's being rendered at different execution steps. what might go wrong?\n DataVisualizer.prototype.generateHeapObjID = function (objID, stepNum) {\n // 2020-02-05 - remove stepNum from returned CSS ID and see what happens:\n //return this.owner.generateID('heap_object_' + objID + '_s' + stepNum);\n return this.owner.generateID('heap_object_' + objID);\n };\n // customize labels for each language's preferred vocabulary\n DataVisualizer.prototype.getRealLabel = function (label) {\n if (this.params.lang === 'js' || this.params.lang === 'ts' || this.params.lang === 'ruby') {\n if (label === 'list') {\n return 'array';\n }\n else if (label === 'instance') {\n return 'object';\n }\n else if (label === 'True') {\n return 'true';\n }\n else if (label === 'False') {\n return 'false';\n }\n }\n if (this.params.lang === 'js') {\n if (label === 'dict') {\n return 'Map';\n }\n else if (label === 'set') {\n return 'Set';\n }\n }\n else if (this.params.lang === 'ruby') {\n if (label === 'dict') {\n return 'hash';\n }\n else if (label === 'set') {\n return 'Set'; // the Ruby Set class is capitalized\n }\n else if (label === 'function') {\n return 'method';\n }\n else if (label === 'None') {\n return 'nil';\n }\n else if (label === 'Global frame') {\n return 'Global Object';\n }\n }\n else if (this.params.lang === 'java') {\n if (label === 'None') {\n return 'null';\n }\n else if (label === 'True') {\n return 'true';\n }\n else if (label === 'False') {\n return 'false';\n }\n }\n else if (this.params.lang === 'c' || this.params.lang === 'cpp') {\n if (label === 'Global frame') {\n return 'Global variables';\n }\n else if (label === 'Frames') {\n return 'Stack';\n }\n else if (label === 'Objects') {\n return 'Heap';\n }\n }\n // default fallthrough case if no matches above\n return label;\n };\n // for managing state related to pesky jsPlumb connectors, need to reset\n // before every call to renderDataStructures, or else all hell breaks\n // loose. yeah, this is kludgy and stateful, but at least all of the\n // relevant state gets shoved into one unified place\n DataVisualizer.prototype.resetJsPlumbManager = function () {\n this.jsPlumbManager = {\n heap_pointer_src_id: 1,\n // Key: CSS ID of the div element representing the stack frame variable\n // (for stack->heap connections) or heap object (for heap->heap connections)\n // the format is: '<this.visualizerID>__heap_pointer_src_<src id>'\n // Value: CSS ID of the div element representing the value rendered in the heap\n // (the format is given by generateHeapObjID())\n //\n // The reason we need to prepend this.visualizerID is because jsPlumb needs\n // GLOBALLY UNIQUE IDs for use as connector endpoints.\n //\n // TODO: jsPlumb might be able to directly take DOM elements rather\n // than IDs, which makes the above point moot. But let's just stick\n // with this for now until I want to majorly refactor :)\n // the only elements in these sets are NEW elements to be rendered in this\n // particular call to renderDataStructures.\n connectionEndpointIDs: d3.map(),\n heapConnectionEndpointIDs: d3.map(),\n // analogous to connectionEndpointIDs, except for environment parent pointers\n parentPointerConnectionEndpointIDs: d3.map(),\n renderedHeapObjectIDs: d3.map(),\n };\n };\n // gets all global and local variable names used in this program\n // execution as indicated by this.curTrace\n DataVisualizer.prototype.getAllProgramVarnames = function () {\n var me = this;\n var allVarnames = [];\n $.each(this.curTrace, function (i, curEntry) {\n $.each(curEntry.ordered_globals, function (i, varname) {\n var encodedVarname = DataVisualizer.GLOBAL_PREFIX + ':' + varname;\n if (allVarnames.indexOf(encodedVarname) < 0) { // don't insert duplicates\n allVarnames.push(encodedVarname);\n }\n });\n $.each(curEntry.stack_to_render, function (i, frame) {\n // some functions are unnamed, so use a placeholder:\n var func_prefix = frame.func_name ? frame.func_name : DataVisualizer.UNNAMED_PREFIX;\n $.each(frame.ordered_varnames, function (xxx, varname) {\n var encodedVarname = func_prefix + ':' + varname;\n if (allVarnames.indexOf(encodedVarname) < 0) { // don't insert duplicates\n allVarnames.push(encodedVarname);\n }\n });\n });\n });\n return allVarnames;\n };\n // gets all field names of classes, objects, dicts, C structs, and anything\n // else that has attribute/field names, as indicated by this.curTrace\n DataVisualizer.prototype.getAllProgramObjectFieldNames = function () {\n var me = this;\n var allFieldnames = [];\n // copied from recurseIntoCStructArray ...\n // see inside comments for an optimization opportunity:\n function traverseCStructArray(val) {\n if (val[0] == 'C_STRUCT') {\n // grab all field names and add to allFieldnames\n var structName_1 = val[2] ? val[2] : DataVisualizer.UNNAMED_PREFIX;\n $.each(val, function (ind, kvPair) {\n if (ind < 3)\n return; // these have 3 header fields\n var fieldName = kvPair[0];\n var encodedFieldname = structName_1 + ':' + fieldName;\n if (allFieldnames.indexOf(encodedFieldname) < 0) { // don't insert duplicates\n allFieldnames.push(encodedFieldname);\n }\n });\n }\n // recurse inside if necessary ...\n //\n // TODO: if you really want to make this more efficient\n // (especially for huge arrays), you can simply traverse into the\n // *first element* of C_ARRAY or C_MULTIDIMENSIONAL_ARRAY since\n // they're supposedly homogeneous, so the type of the first element\n // should be identical to the type of all other elements :)\n // (just beware of the case of empty (zero-sized) arrays, though)\n if (val[0] === 'C_ARRAY') {\n $.each(val, function (ind, elt) {\n if (ind < 2)\n return; // these have 2 header fields\n traverseCStructArray(elt);\n });\n }\n else if (val[0] === 'C_MULTIDIMENSIONAL_ARRAY' || val[0] === 'C_STRUCT') {\n $.each(val, function (ind, kvPair) {\n if (ind < 3)\n return; // these have 3 header fields\n traverseCStructArray(kvPair[1]);\n });\n }\n }\n $.each(this.curTrace, function (i, curEntry) {\n //console.log(i, curEntry);\n // iterate through the heap looking for relevant objects with fields\n // expected format from ../pg_encoder.py\n // # * instance - ['INSTANCE', class name, [attr1, value1], [attr2, value2], ..., [attrN, valueN]]\n // # * instance with non-trivial __str__ defined - ['INSTANCE_PPRINT', class name, <__str__ value>, [attr1, value1], [attr2, value2], ..., [attrN, valueN]]\n // # * class - ['CLASS', class name, [list of superclass names], [attr1, value1], [attr2, value2], ..., [attrN, valueN]]\n //\n // also for javascript, JS_FUNCTION objects may have funcProperties\n //\n // [NB: we don't count DICT here since those don't technically contain\n // 'fields'; they contain dict keys, which don't necessarily need to be\n // strings, so it's confusing to try to ignore a non-string dict key]\n $.each(curEntry.heap, function (k, obj) {\n var typ = obj[0];\n if (typ == 'INSTANCE' || typ == 'INSTANCE_PPRINT' || typ == 'CLASS') {\n var _a = DataVisualizer.getClassInstanceMetadata(obj), className = _a[0], headerLength = _a[1];\n for (var i_1 = headerLength; i_1 < obj.length; i_1++) {\n var fieldName = obj[i_1][0];\n // className can possibly be null ...\n var encodedFieldname = className ? className + ':' + fieldName : fieldName;\n if (allFieldnames.indexOf(encodedFieldname) < 0) { // don't insert duplicates\n allFieldnames.push(encodedFieldname);\n }\n }\n }\n else if (typ == 'JS_FUNCTION') {\n var funcProperties = obj[3];\n if (funcProperties) {\n var funcName = obj[1];\n // special-case handling: prefix with function name if appropriate\n for (var i_2 = 0; i_2 < funcProperties.length; i_2++) {\n var fieldName = funcProperties[i_2][0];\n // funcName can possibly be empty ...\n var encodedFieldname = funcName ? funcName + ':' + fieldName : fieldName;\n if (allFieldnames.indexOf(encodedFieldname) < 0) { // don't insert duplicates\n allFieldnames.push(encodedFieldname);\n }\n }\n }\n }\n else if (typ == 'C_ARRAY' || typ == 'C_MULTIDIMENSIONAL_ARRAY' || typ == 'C_STRUCT') {\n traverseCStructArray(obj);\n }\n });\n // C and C++ objects can exist directly within the global frame or\n // stack frames (not just on the heap), so we need to traverse\n // through those as well\n if (me.isCppMode()) {\n $.each(curEntry.ordered_globals, function (i, varname) {\n var val = curEntry.globals[varname];\n traverseCStructArray(val);\n });\n // iterate thru all stack frames\n $.each(curEntry.stack_to_render, function (i, frame) {\n $.each(frame.ordered_varnames, function (xxx, varname) {\n var val = frame.encoded_locals[varname];\n traverseCStructArray(val);\n });\n });\n }\n });\n return allFieldnames;\n };\n // this method initializes curTraceLayouts\n //\n // Pre-compute the layout of top-level heap objects for ALL execution\n // points as soon as a trace is first loaded. The reason why we want to\n // do this is so that when the user steps through execution points, the\n // heap objects don't \"jiggle around\" (i.e., preserving positional\n // invariance). Also, if we set up the layout objects properly, then we\n // can take full advantage of d3 to perform rendering and transitions.\n //\n // (also call this function whenever the user chooses to selectively\n // hide/show variables/objects, since we want to get the latest layout)\n DataVisualizer.prototype.precomputeCurTraceLayouts = function () {\n //console.log('precomputeCurTraceLayouts');\n // curTraceLayouts is a list of top-level heap layout \"objects\" with the\n // same length as curTrace after it's been fully initialized. Each\n // element of curTraceLayouts is computed from the contents of its\n // immediate predecessor, thus ensuring that objects don't \"jiggle\n // around\" between consecutive execution points.\n //\n // Each top-level heap layout \"object\" is itself a LIST of LISTS of\n // object IDs, where each element of the outer list represents a row,\n // and each element of the inner list represents columns within a\n // particular row. Each row can have a different number of columns. Most\n // rows have exactly ONE column (representing ONE object ID), but rows\n // containing 1-D linked data structures have multiple columns. Each\n // inner list element looks something like ['row1', 3, 2, 1] where the\n // first element is a unique row ID tag, which is used as a key for d3 to\n // preserve \"object constancy\" for updates, transitions, etc. The row ID\n // is derived from the FIRST object ID inserted into the row. Since all\n // object IDs are unique, all row IDs will also be unique.\n /* This is a good, simple example to test whether objects \"jiggle\"\n \n x = [1, [2, [3, None]]]\n y = [4, [5, [6, None]]]\n \n x[1][1] = y[1]\n \n */\n this.curTraceLayouts = [];\n this.curTraceLayouts.push([]); // pre-seed with an empty sentinel to simplify the code\n var myViz = this; // to prevent confusion of 'this' inside of nested functions\n assert(this.curTrace && this.curTrace.length > 0);\n $.each(this.curTrace, function (i, curEntry) {\n var prevLayout = myViz.curTraceLayouts[myViz.curTraceLayouts.length - 1];\n // make a DEEP COPY of prevLayout to use as the basis for curLine\n var curLayout = $.extend(true /* deep copy */, [], prevLayout);\n // initialize with all IDs from curLayout\n var idsToRemove = d3.map();\n $.each(curLayout, function (i, row) {\n for (var j = 1 /* ignore row ID tag */; j < row.length; j++) {\n idsToRemove.set(row[j], 1);\n }\n });\n var idsAlreadyLaidOut = d3.map(); // to prevent infinite recursion\n function curLayoutIndexOf(id) {\n for (var i = 0; i < curLayout.length; i++) {\n var row = curLayout[i];\n var index = row.indexOf(id);\n if (index > 0) { // index of 0 is impossible since it's the row ID tag\n return { row: row, index: index };\n }\n }\n return null;\n }\n function isLinearObj(heapObj) {\n var hook_result = myViz.owner.try_hook(\"isLinearObj\", { heapObj: heapObj });\n if (hook_result[0])\n return hook_result[1];\n return heapObj[0] == 'LIST' || heapObj[0] == 'TUPLE' || heapObj[0] == 'SET';\n }\n function recurseIntoObject(id, curRow, newRow) {\n // heuristic for laying out 1-D linked data structures: check for enclosing elements\n // that are structurallyEquivalent() and then lay them out as siblings in the same \"row\"\n var heapObj = curEntry.heap[id];\n if (myViz.isCppMode()) {\n // soften this assumption since C-style pointers might not point\n // to the heap; they can point to any piece of data!\n if (!heapObj) {\n return;\n }\n }\n else {\n assert(heapObj);\n }\n if (isLinearObj(heapObj)) {\n $.each(heapObj, function (ind, child) {\n if (ind < 1)\n return; // skip type tag\n if (!myViz.isPrimitiveType(child)) {\n var childID = getRefID(child);\n if (myViz.structurallyEquivalent(heapObj, curEntry.heap[childID])) {\n updateCurLayout(childID, curRow, newRow);\n }\n else if (!myViz.owner.shouldNestObject(curEntry.heap[childID])) {\n updateCurLayout(childID, [], []);\n }\n }\n });\n }\n else if (heapObj[0] == 'DICT') {\n $.each(heapObj, function (ind, child) {\n if (ind < 1)\n return; // skip type tag\n var dictKey = child[0];\n if (!myViz.isPrimitiveType(dictKey)) {\n var keyChildID = getRefID(dictKey);\n if (!myViz.owner.shouldNestObject(curEntry.heap[keyChildID])) {\n updateCurLayout(keyChildID, [], []);\n }\n }\n var dictVal = child[1];\n if (!myViz.isPrimitiveType(dictVal)) {\n var childID = getRefID(dictVal);\n if (myViz.structurallyEquivalent(heapObj, curEntry.heap[childID])) {\n updateCurLayout(childID, curRow, newRow);\n }\n else if (!myViz.owner.shouldNestObject(curEntry.heap[childID])) {\n updateCurLayout(childID, [], []);\n }\n }\n });\n }\n else if (heapObj[0] == 'INSTANCE' || heapObj[0] == 'INSTANCE_PPRINT' || heapObj[0] == 'CLASS') {\n var _a = DataVisualizer.getClassInstanceMetadata(heapObj), className_1 = _a[0], headerLength_1 = _a[1];\n jQuery.each(heapObj, function (ind, child) {\n if (ind < headerLength_1)\n return;\n var instKey = child[0];\n if (myViz.inHideFieldsSet(className_1, instKey)) {\n //console.log('precompute HIDING', className, instKey);\n return; // get out!\n }\n if (!myViz.isPrimitiveType(instKey)) {\n var keyChildID = getRefID(instKey);\n if (!myViz.owner.shouldNestObject(curEntry.heap[keyChildID])) {\n updateCurLayout(keyChildID, [], []);\n }\n }\n var instVal = child[1];\n if (!myViz.isPrimitiveType(instVal)) {\n var childID = getRefID(instVal);\n if (myViz.structurallyEquivalent(heapObj, curEntry.heap[childID])) {\n updateCurLayout(childID, curRow, newRow);\n }\n else if (!myViz.owner.shouldNestObject(curEntry.heap[childID])) {\n updateCurLayout(childID, [], []);\n }\n }\n });\n }\n else if (heapObj[0] == 'FUNCTION' || heapObj[0] == 'JS_FUNCTION') {\n // a Python function object has an optional element at index=3\n // (zero-indexed) that represents default arg names/values\n //\n // a JavaScript function object has funcProperties that we should\n // recurse into in order to precompute their layouts\n var funcProperties = null;\n // traverse into default argument values to precompute their\n // layouts, if applicable\n if (heapObj[0] == 'FUNCTION' && heapObj.length > 3) {\n funcProperties = heapObj[3];\n }\n if (heapObj[0] == 'JS_FUNCTION') {\n assert(heapObj.length == 5);\n funcProperties = heapObj[3];\n }\n if (funcProperties) {\n assert(funcProperties.length > 0);\n var funcName_1 = heapObj[1];\n $.each(funcProperties, function (ind, kvPair) {\n // only check this for JS_FUNCTION! we're overloading\n // funcProperties to use for both FUNCTION and\n // JS_FUNCTION, which might be confusing ...\n if (heapObj[0] == 'JS_FUNCTION') {\n var instKey = kvPair[0];\n if (myViz.inHideFieldsSet(funcName_1, instKey)) {\n //console.log('precompute HIDING', funcName, instKey);\n return; // get out!\n }\n }\n // copy/paste from INSTANCE/CLASS code above\n var instVal = kvPair[1];\n if (!myViz.isPrimitiveType(instVal)) {\n var childID = getRefID(instVal);\n if (!myViz.owner.shouldNestObject(curEntry.heap[childID])) {\n updateCurLayout(childID, [], []);\n }\n }\n });\n }\n }\n else if ((heapObj[0] == 'C_ARRAY') || (heapObj[0] == 'C_MULTIDIMENSIONAL_ARRAY') || (heapObj[0] == 'C_STRUCT')) {\n updateCurLayoutAndRecurse(heapObj);\n }\n }\n // a krazy function!\n // id - the new object ID to be inserted somewhere in curLayout\n // (if it's not already in there)\n // curRow - a row within curLayout where new linked list\n // elements can be appended onto (might be null)\n // newRow - a new row that might be spliced into curRow or appended\n // as a new row in curLayout\n function updateCurLayout(id, curRow, newRow) {\n if (idsAlreadyLaidOut.has(id)) {\n return; // PUNT!\n }\n var curLayoutLoc = curLayoutIndexOf(id);\n var alreadyLaidOut = idsAlreadyLaidOut.has(id);\n idsAlreadyLaidOut.set(id, 1); // unconditionally set now\n // if id is already in curLayout ...\n if (curLayoutLoc) {\n var foundRow = curLayoutLoc.row;\n var foundIndex = curLayoutLoc.index;\n idsToRemove.remove(id); // this id is already accounted for!\n // very subtle ... if id hasn't already been handled in\n // this iteration, then splice newRow into foundRow. otherwise\n // (later) append newRow onto curLayout as a truly new row\n if (!alreadyLaidOut) {\n // splice the contents of newRow right BEFORE foundIndex.\n // (Think about when you're trying to insert in id=3 into ['row1', 2, 1]\n // to represent a linked list 3->2->1. You want to splice the 3\n // entry right before the 2 to form ['row1', 3, 2, 1])\n if (newRow.length > 1) {\n var args = [foundIndex, 0];\n for (var i = 1; i < newRow.length; i++) { // ignore row ID tag\n args.push(newRow[i]);\n idsToRemove.remove(newRow[i]);\n }\n foundRow.splice.apply(foundRow, args);\n // remove ALL elements from newRow since they've all been accounted for\n // (but don't reassign it away to an empty list, since the\n // CALLER checks its value. TODO: how to get rid of this gross hack?!?)\n newRow.splice(0, newRow.length);\n }\n }\n // recurse to find more top-level linked entries to append onto foundRow\n recurseIntoObject(id, foundRow, []);\n }\n else {\n // push id into newRow ...\n if (newRow.length == 0) {\n newRow.push('row' + id); // unique row ID (since IDs are unique)\n }\n newRow.push(id);\n // recurse to find more top-level linked entries ...\n recurseIntoObject(id, curRow, newRow);\n // if newRow hasn't been spliced into an existing row yet during\n // a child recursive call ...\n if (newRow.length > 0) {\n if (curRow && curRow.length > 0) {\n // append onto the END of curRow if it exists\n for (var i = 1; i < newRow.length; i++) { // ignore row ID tag\n curRow.push(newRow[i]);\n }\n }\n else {\n // otherwise push to curLayout as a new row\n //\n // TODO: this might not always look the best, since we might\n // sometimes want to splice newRow in the MIDDLE of\n // curLayout. Consider this example:\n //\n // x = [1,2,3]\n // y = [4,5,6]\n // x = [7,8,9]\n //\n // when the third line is executed, the arrows for x and y\n // will be crossed (ugly!) since the new row for the [7,8,9]\n // object is pushed to the end (bottom) of curLayout. The\n // proper behavior is to push it to the beginning of\n // curLayout where the old row for 'x' used to be.\n curLayout.push($.extend(true /* make a deep copy */, [], newRow));\n }\n // regardless, newRow is now accounted for, so clear it\n for (var i = 1; i < newRow.length; i++) { // ignore row ID tag\n idsToRemove.remove(newRow[i]);\n }\n newRow.splice(0, newRow.length); // kill it!\n }\n }\n }\n function updateCurLayoutAndRecurse(elt) {\n if (!elt)\n return; // early bail out\n if (isHeapRef(elt, curEntry.heap)) {\n var id = getRefID(elt);\n updateCurLayout(id, null, []);\n }\n recurseIntoCStructArray(elt);\n }\n // traverse inside of C structs and arrays to find whether they\n // (recursively) contain any references to heap objects within\n // themselves. be able to handle arbitrary nesting!\n function recurseIntoCStructArray(val) {\n if (val[0] === 'C_ARRAY') {\n $.each(val, function (ind, elt) {\n if (ind < 2)\n return; // these have 2 header fields\n updateCurLayoutAndRecurse(elt);\n });\n }\n else if (val[0] === 'C_MULTIDIMENSIONAL_ARRAY' || val[0] === 'C_STRUCT') {\n $.each(val, function (ind, kvPair) {\n if (ind < 3)\n return; // these have 3 header fields\n if (val[0] === 'C_STRUCT') {\n var structName = val[2] ? val[2] : DataVisualizer.UNNAMED_PREFIX;\n var fieldName = kvPair[0];\n if (myViz.inHideFieldsSet(structName, fieldName)) {\n //console.log('precompute HIDING', structName, fieldName);\n return; // get out!\n }\n }\n updateCurLayoutAndRecurse(kvPair[1]);\n });\n }\n }\n // iterate through all globals and ordered stack frames and call updateCurLayout\n $.each(curEntry.ordered_globals, function (i, varname) {\n if (myViz.inHideVarsSet(DataVisualizer.GLOBAL_PREFIX, varname)) {\n //console.log('precompute HIDING', DataVisualizer.GLOBAL_PREFIX, varname);\n return; // get out!\n }\n var val = curEntry.globals[varname];\n if (val !== undefined) { // might not be defined at this line, which is OKAY!\n // TODO: try to unify this behavior between C/C++ and other languages:\n if (myViz.isCppMode()) {\n updateCurLayoutAndRecurse(val);\n }\n else {\n if (!myViz.isPrimitiveType(val)) {\n var id = getRefID(val);\n updateCurLayout(id, null, []);\n }\n }\n }\n });\n $.each(curEntry.stack_to_render, function (i, frame) {\n // some functions are unnamed, so use a placeholder:\n var func_prefix = frame.func_name ? frame.func_name : DataVisualizer.UNNAMED_PREFIX;\n $.each(frame.ordered_varnames, function (xxx, varname) {\n if (myViz.inHideVarsSet(func_prefix, varname)) {\n //console.log('precompute HIDING', func_prefix, varname);\n return; // get out!\n }\n var val = frame.encoded_locals[varname];\n // TODO: try to unify this behavior between C/C++ and other languages:\n if (myViz.isCppMode()) {\n updateCurLayoutAndRecurse(val);\n }\n else {\n if (!myViz.isPrimitiveType(val)) {\n var id = getRefID(val);\n updateCurLayout(id, null, []);\n }\n }\n });\n });\n // iterate through remaining elements of idsToRemove and REMOVE them from curLayout\n idsToRemove.forEach(function (id, xxx) {\n var idInt = Number(id); // keys are stored as strings, so convert!!!\n $.each(curLayout, function (rownum, row) {\n var ind = row.indexOf(idInt);\n if (ind > 0) { // remember that index 0 of the row is the row ID tag\n row.splice(ind, 1);\n }\n });\n });\n // now remove empty rows (i.e., those with only a row ID tag) from curLayout\n curLayout = curLayout.filter(function (row) { return row.length > 1; });\n myViz.curTraceLayouts.push(curLayout);\n });\n this.curTraceLayouts.splice(0, 1); // remove seeded empty sentinel element\n assert(this.curTrace.length == this.curTraceLayouts.length);\n };\n // is this visualizer in C or C++ mode? the eventual goal is to remove\n // this special-case kludge check altogether and have the entire\n // codebase be unified. but for now, keep C/C++ separate because I don't\n // want to risk screwing up the visualizations for the other languages\n DataVisualizer.prototype.isCppMode = function () {\n return (this.params.lang === 'c' || this.params.lang === 'cpp');\n };\n // compare two JSON-encoded compound objects for structural equivalence:\n DataVisualizer.prototype.structurallyEquivalent = function (obj1, obj2) {\n // punt if either isn't a compound type\n if (this.isPrimitiveType(obj1) || this.isPrimitiveType(obj2)) {\n return false;\n }\n // must be the same compound type\n if (obj1[0] != obj2[0]) {\n return false;\n }\n // must have the same number of elements or fields\n if (obj1.length != obj2.length) {\n return false;\n }\n // for a list or tuple, same size (e.g., a cons cell is a list/tuple of size 2)\n if (obj1[0] == 'LIST' || obj1[0] == 'TUPLE') {\n return true;\n }\n else {\n var startingInd = -1;\n if (obj1[0] == 'DICT') {\n startingInd = 1;\n }\n else if (obj1[0] == 'INSTANCE') {\n startingInd = 2;\n }\n else if (obj1[0] == 'INSTANCE_PPRINT') {\n startingInd = 3;\n }\n else {\n return false; // punt on all other types\n }\n var obj1fields = d3.map();\n // for a dict or object instance, same names of fields (ordering doesn't matter)\n for (var i = startingInd; i < obj1.length; i++) {\n obj1fields.set(obj1[i][0], 1); // use as a set\n }\n for (var i = startingInd; i < obj2.length; i++) {\n if (!obj1fields.has(obj2[i][0])) {\n return false;\n }\n }\n return true;\n }\n };\n DataVisualizer.prototype.isPrimitiveType = function (obj) {\n var hook_result = this.owner.try_hook(\"isPrimitiveType\", { obj: obj });\n if (hook_result[0])\n return hook_result[1];\n // null is a primitive\n if (obj === null) {\n return true;\n }\n if (typeof obj == \"object\") {\n // kludgy\n return (obj[0] == 'IMPORTED_FAUX_PRIMITIVE' ||\n obj[0] == 'SPECIAL_FLOAT' || obj[0] == 'JS_SPECIAL_VAL' ||\n obj[0] == 'C_DATA' /* TODO: is this right?!? */);\n }\n else {\n // non-objects are primitives\n return true;\n }\n };\n // This is the main event right here!!!\n //\n // The \"4.0\" version of renderDataStructures was refactored to be much\n // less monolithic and more modular. It was made possible by first\n // creating a suite of frontend JS regression tests so that I felt more\n // comfortable mucking around with the super-brittle code in this\n // function. This version was created in April 2014. For reference,\n // before refactoring, this function was 1,030 lines of convoluted code!\n //\n // (Also added the rightward nudge hack to make tree-like structures\n // look more sane without any sophisticated graph rendering code. Thanks\n // to John DeNero for this suggestion all the way back in Fall 2012.)\n //\n // The \"3.0\" version of renderDataStructures renders variables in\n // a stack, values in a separate heap, and draws line connectors\n // to represent both stack->heap object references and, more importantly,\n // heap->heap references. This version was created in August 2012.\n //\n // The \"2.0\" version of renderDataStructures renders variables in\n // a stack and values in a separate heap, with data structure aliasing\n // explicitly represented via line connectors (thanks to jsPlumb lib).\n // This version was created in September 2011.\n //\n // The ORIGINAL \"1.0\" version of renderDataStructures\n // was created in January 2010 and rendered variables and values\n // INLINE within each stack frame without any explicit representation\n // of data structure aliasing. That is, aliased objects were rendered\n // multiple times, and a unique ID label was used to identify aliases.\n DataVisualizer.prototype.renderDataStructures = function (curInstr) {\n //console.log('renderDataStructures', curInstr);\n var myViz = this; // to prevent confusion of 'this' inside of nested functions\n var curEntry = this.curTrace[curInstr];\n var curToplevelLayout = this.curTraceLayouts[curInstr];\n myViz.resetJsPlumbManager(); // very important!!!\n // for simplicity (but sacrificing some performance), delete all\n // connectors and redraw them from scratch. doing so avoids mysterious\n // jsPlumb connector alignment issues when the visualizer's enclosing\n // div contains, say, a \"position: relative;\" CSS tag\n // (which happens in the IPython Notebook)\n var existingConnectionEndpointIDs = d3.map();\n myViz.jsPlumbInstance.select({ scope: 'varValuePointer' }).each(function (c) {\n // This is VERY crude, but to prevent multiple redundant HEAP->HEAP\n // connectors from being drawn with the same source and origin, we need to first\n // DELETE ALL existing HEAP->HEAP connections, and then re-render all of\n // them in each call to this function. The reason why we can't safely\n // hold onto them is because there's no way to guarantee that the\n // *__heap_pointer_src_<src id> IDs are consistent across execution points.\n //\n // thus, only add to existingConnectionEndpointIDs if this is NOT heap->heap\n if (!c.sourceId.match(heapPtrSrcRE)) {\n existingConnectionEndpointIDs.set(c.sourceId, c.targetId);\n }\n });\n var existingParentPointerConnectionEndpointIDs = d3.map();\n myViz.jsPlumbInstance.select({ scope: 'frameParentPointer' }).each(function (c) {\n existingParentPointerConnectionEndpointIDs.set(c.sourceId, c.targetId);\n });\n // what variables/fields were hidden in this call to renderDataStructures?\n // (make these fields and not locals so that we can access them in\n // other methods too, ergh)\n myViz.varsHidden = [];\n myViz.fieldsHidden = [];\n // Heap object rendering phase:\n // count everything in curToplevelLayout as already rendered since we will render them\n // in d3 .each() statements\n $.each(curToplevelLayout, function (xxx, row) {\n for (var i = 0; i < row.length; i++) {\n var objID = row[i];\n var heapObjID = myViz.generateHeapObjID(objID, curInstr);\n myViz.jsPlumbManager.renderedHeapObjectIDs.set(heapObjID, 1);\n }\n });\n // use d3 to render the heap by mapping curToplevelLayout into <table class=\"heapRow\">\n // and <td class=\"toplevelHeapObject\"> elements\n // before we clear the heap div below, record the custom positions\n // of any heapObjects that we've made as draggable *and* that's been\n // dragged somewhere different (as indicated by the jQuery\n // data('draggedCSS') attribute being set to the custom CSS of the\n // dragged object, which should contain its current custom position)\n myViz.domRoot.find('.heapObject').each(function (i, e) {\n var draggedCSS = $(e).data('draggedCSS');\n if (draggedCSS) {\n // save a mapping between the .heapObject id and its draggedCSS\n myViz.draggedHeapObjectCSS.set($(e).attr('id'), draggedCSS);\n }\n });\n // now it's safe to totally erase all .heapObject elements by\n // emptying '#heap' below ...\n // for simplicity, CLEAR this entire div every time, which totally\n // gets rid of the incremental benefits of using d3 for, say,\n // transitions or efficient updates. but it provides more\n // deterministic and predictable output for other functions. sigh, i'm\n // not really using d3 to the fullest, but oh wells!\n myViz.domRoot.find('#heap')\n .empty()\n .html(\"<div id=\\\"heapHeader\\\">\" + myViz.getRealLabel(\"Objects\") + \"</div>\");\n var heapRows = myViz.domRootD3.select('#heap')\n .selectAll('table.heapRow')\n .attr('id', function (d, i) { return 'heapRow' + i; }) // add unique ID\n .data(curToplevelLayout, function (objLst) {\n return objLst[0]; // return first element, which is the row ID tag\n });\n // insert new heap rows\n heapRows.enter().append('table')\n //.each(function(objLst, i) {console.log('NEW ROW:', objLst, i);})\n .attr('id', function (d, i) { return 'heapRow' + i; }) // add unique ID\n .attr('class', 'heapRow');\n // delete a heap row\n var hrExit = heapRows.exit();\n hrExit\n .each(function (d, idx) {\n //console.log('DEL ROW:', d, idx);\n $(this).empty(); // crucial for garbage collecting jsPlumb connectors!\n })\n .remove();\n // update an existing heap row\n var toplevelHeapObjects = heapRows\n //.each(function(objLst, i) { console.log('UPDATE ROW:', objLst, i); })\n .selectAll('td.toplevelHeapObject')\n .data(function (d, i) { return d.slice(1, d.length); }, /* map over each row, skipping row ID tag */ function (objID) { return objID; } /* each object ID is unique for constancy */);\n // insert a new toplevelHeapObject\n var tlhEnter = toplevelHeapObjects.enter().append('td')\n .attr('class', 'toplevelHeapObject')\n .attr('id', function (d, i) { return 'toplevel_heap_object_' + d; }); // TODO: is this CSS ID unique?\n // remember that the enter selection is added to the update\n // selection so that we can process it later ...\n // update a toplevelHeapObject\n toplevelHeapObjects\n .order() // VERY IMPORTANT to put in the order corresponding to data elements\n .each(function (objID, i) {\n //console.log('NEW/UPDATE ELT', objID);\n // TODO: add a smoother transition in the future\n // Right now, just delete the old element and render a new one in its place\n $(this).empty();\n if (myViz.isCppMode()) {\n // TODO: why might this be undefined?!? because the object\n // disappeared from the heap all of a sudden?!?\n if (curEntry.heap[objID] !== undefined) {\n myViz.renderCompoundObject(objID, curInstr, $(this), true);\n }\n }\n else {\n myViz.renderCompoundObject(objID, curInstr, $(this), true);\n }\n });\n // delete a toplevelHeapObject\n var tlhExit = toplevelHeapObjects.exit();\n tlhExit\n .each(function (d, idx) {\n $(this).empty(); // crucial for garbage collecting jsPlumb connectors!\n })\n .remove();\n // Render globals and then stack frames using d3:\n // TODO: this sometimes seems buggy on Safari, so nix it for now:\n function highlightAliasedConnectors(d, i) {\n // if this row contains a stack pointer, then highlight its arrow and\n // ALL aliases that also point to the same heap object\n var stackPtrId = $(this).find('div.stack_pointer').attr('id');\n if (stackPtrId) {\n var foundTargetId = null;\n myViz.jsPlumbInstance.select({ source: stackPtrId }).each(function (c) { foundTargetId = c.targetId; });\n // use foundTargetId to highlight ALL ALIASES\n myViz.jsPlumbInstance.select().each(function (c) {\n if (c.targetId == foundTargetId) {\n c.setHover(true);\n $(c.canvas).css(\"z-index\", 2000); // ... and move it to the VERY FRONT\n }\n else {\n c.setHover(false);\n }\n });\n }\n }\n function unhighlightAllConnectors(d, i) {\n myViz.jsPlumbInstance.select().each(function (c) {\n c.setHover(false);\n });\n }\n // TODO: coalesce code for rendering globals and stack frames,\n // since there's so much copy-and-paste grossness right now\n // render all global variables IN THE ORDER they were created by the program,\n // in order to ensure continuity:\n // Derive a list where each element contains varname\n // as long as value is NOT undefined.\n // (Sometimes entries in curEntry.ordered_globals are undefined,\n // so filter those out.)\n var realGlobalsLst = [];\n $.each(curEntry.ordered_globals, function (i, varname) {\n if (myViz.inHideVarsSet(DataVisualizer.GLOBAL_PREFIX, varname)) {\n console.log('render HIDING', DataVisualizer.GLOBAL_PREFIX, varname);\n myViz.varsHidden.push(DataVisualizer.GLOBAL_PREFIX + ':' + varname);\n return; // get out!\n }\n var val = curEntry.globals[varname];\n // (use '!==' to do an EXACT match against undefined)\n if (val !== undefined) { // might not be defined at this line, which is OKAY!\n realGlobalsLst.push(varname);\n }\n });\n var globalsID = myViz.owner.generateID('globals');\n var globalTblID = myViz.owner.generateID('global_table');\n var globalVarTable = myViz.domRootD3.select('#' + globalTblID)\n .selectAll('tr')\n .data(realGlobalsLst, function (d) { return d; } // use variable name as key\n );\n globalVarTable\n .enter()\n .append('tr')\n .attr('class', 'variableTr')\n .attr('id', function (d, i) {\n return myViz.owner.generateID(varnameToCssID('global__' + d + '_tr')); // make globally unique (within the page)\n });\n var globalVarTableCells = globalVarTable\n .selectAll('td.stackFrameVar,td.stackFrameValue')\n .data(function (d, i) { return [d, d]; }); /* map varname down both columns */\n globalVarTableCells.enter()\n .append('td')\n .attr('class', function (d, i) { return (i == 0) ? 'stackFrameVar' : 'stackFrameValue'; });\n // remember that the enter selection is added to the update\n // selection so that we can process it later ...\n // UPDATE\n globalVarTableCells\n .order() // VERY IMPORTANT to put in the order corresponding to data elements\n .each(function (varname, i) {\n if (i == 0) {\n $(this).html(varname);\n }\n else {\n // always delete and re-render the global var ...\n // NB: trying to cache and compare the old value using,\n // say -- $(this).attr('data-curvalue', valStringRepr) -- leads to\n // a mysterious and killer memory leak that I can't figure out yet\n $(this).empty();\n // make sure varname doesn't contain any weird\n // characters that are illegal for CSS ID's ...\n var varDivID = myViz.owner.generateID('global__' + varnameToCssID(varname));\n // need to get rid of the old connector in preparation for rendering a new one:\n existingConnectionEndpointIDs.remove(varDivID);\n var val = curEntry.globals[varname];\n if (myViz.isPrimitiveType(val)) {\n myViz.renderPrimitiveObject(val, curInstr, $(this));\n }\n else if (val[0] === 'C_STRUCT' || val[0] === 'C_ARRAY' || val[0] === 'C_MULTIDIMENSIONAL_ARRAY') {\n // C structs and arrays can be inlined in frames\n myViz.renderCStructArray(val, curInstr, $(this));\n }\n else {\n var heapObjID = myViz.generateHeapObjID(getRefID(val), curInstr);\n if (myViz.params.textualMemoryLabels) {\n var labelID = varDivID + '_text_label';\n $(this).append('<div class=\"objectIdLabel\" id=\"' + labelID + '\">id' + getRefID(val) + '</div>');\n $(this).find('div#' + labelID).hover(function () {\n myViz.jsPlumbInstance.connect({ source: labelID, target: heapObjID,\n scope: 'varValuePointer' });\n }, function () {\n myViz.jsPlumbInstance.select({ source: labelID }).detach();\n });\n }\n else {\n // add a stub so that we can connect it with a connector later.\n // IE needs this div to be NON-EMPTY in order to properly\n // render jsPlumb endpoints, so that's why we add an \" \"!\n $(this).append('<div class=\"stack_pointer\" id=\"' + varDivID + '\"> </div>');\n assert(!myViz.jsPlumbManager.connectionEndpointIDs.has(varDivID));\n myViz.jsPlumbManager.connectionEndpointIDs.set(varDivID, heapObjID);\n //console.log('STACK->HEAP', varDivID, heapObjID);\n }\n }\n }\n });\n globalVarTableCells.exit()\n .each(function (d, idx) {\n $(this).empty(); // crucial for garbage collecting jsPlumb connectors!\n })\n .remove();\n globalVarTable.exit()\n .each(function (d, i) {\n // detach all stack_pointer connectors for divs that are being removed\n $(this).find('.stack_pointer').each(function (i, sp) {\n existingConnectionEndpointIDs.remove($(sp).attr('id'));\n });\n $(this).empty(); // crucial for garbage collecting jsPlumb connectors!\n })\n .remove();\n // for aesthetics, hide globals if there aren't any globals to display\n if (curEntry.ordered_globals.length == 0) {\n this.domRoot.find('#' + globalsID).hide();\n }\n else {\n this.domRoot.find('#' + globalsID).show();\n }\n // holy cow, the d3 code for stack rendering is ABSOLUTELY NUTS!\n var stackDiv = myViz.domRootD3.select('#stack');\n // VERY IMPORTANT for selectAll selector to be SUPER specific here!\n var stackFrameDiv = stackDiv.selectAll('div.stackFrame,div.zombieStackFrame')\n .data(curEntry.stack_to_render, function (frame) {\n // VERY VERY VERY IMPORTANT for properly handling closures and nested functions\n // (see the backend code for more details)\n return frame.unique_hash;\n });\n var sfdEnter = stackFrameDiv.enter()\n .append('div')\n .attr('class', function (d, i) { return d.is_zombie ? 'zombieStackFrame' : 'stackFrame'; })\n .attr('id', function (d, i) {\n return d.is_zombie ? myViz.owner.generateID(\"zombie_stack\" + i)\n : myViz.owner.generateID(\"stack\" + i);\n })\n // HTML5 custom data attributes\n .attr('data-frame_id', function (frame, i) { return frame.frame_id; })\n .attr('data-parent_frame_id', function (frame, i) {\n return (frame.parent_frame_id_list.length > 0) ? frame.parent_frame_id_list[0] : null;\n })\n .each(function (frame, i) {\n if (!myViz.params.drawParentPointers) {\n return;\n }\n // only run if myViz.params.drawParentPointers is true ...\n var my_CSS_id = $(this).attr('id');\n //console.log(my_CSS_id, 'ENTER');\n // render a parent pointer whose SOURCE node is this frame\n // i.e., connect this frame to p, where this.parent_frame_id == p.frame_id\n // (if this.parent_frame_id is null, then p is the global frame)\n if (frame.parent_frame_id_list.length > 0) {\n var parent_frame_id = frame.parent_frame_id_list[0];\n // tricky turkey!\n // ok this hack just HAPPENS to work by luck ... usually there will only be ONE frame\n // that matches this selector, but sometimes multiple frames match, in which case the\n // FINAL frame wins out (since parentPointerConnectionEndpointIDs is a map where each\n // key can be mapped to only ONE value). it so happens that the final frame winning\n // out looks \"desirable\" for some of the closure test cases that I've tried. but\n // this code is quite brittle :(\n myViz.domRoot.find('div#stack [data-frame_id=' + parent_frame_id + ']').each(function (i, e) {\n var parent_CSS_id = $(this).attr('id');\n //console.log('connect', my_CSS_id, parent_CSS_id);\n myViz.jsPlumbManager.parentPointerConnectionEndpointIDs.set(my_CSS_id, parent_CSS_id);\n });\n }\n else {\n // render a parent pointer to the global frame\n //console.log('connect', my_CSS_id, globalsID);\n // only do this if there are actually some global variables to display ...\n if (curEntry.ordered_globals.length > 0) {\n myViz.jsPlumbManager.parentPointerConnectionEndpointIDs.set(my_CSS_id, globalsID);\n }\n }\n // tricky turkey: render parent pointers whose TARGET node is this frame.\n // i.e., for all frames f such that f.parent_frame_id == my_frame_id,\n // connect f to this frame.\n // (make sure not to confuse frame IDs with CSS IDs!!!)\n var my_frame_id = frame.frame_id;\n myViz.domRoot.find('div#stack [data-parent_frame_id=' + my_frame_id + ']').each(function (i, e) {\n var child_CSS_id = $(this).attr('id');\n //console.log('connect', child_CSS_id, my_CSS_id);\n myViz.jsPlumbManager.parentPointerConnectionEndpointIDs.set(child_CSS_id, my_CSS_id);\n });\n });\n sfdEnter\n .append('div')\n .attr('class', 'stackFrameHeader')\n .html(function (frame, i) {\n // pretty-print lambdas and display other weird characters\n // (might contain '<' or '>' for weird names like <genexpr>)\n var funcName = htmlspecialchars(frame.func_name).replace('<lambda>', '\\u03bb');\n var headerLabel = funcName;\n // only display if you're someone's parent (unless showAllFrameLabels)\n if (frame.is_parent || myViz.params.showAllFrameLabels) {\n headerLabel = 'f' + frame.frame_id + ': ' + headerLabel;\n }\n // optional (btw, this isn't a CSS id)\n if (frame.parent_frame_id_list.length > 0) {\n var parentFrameID = frame.parent_frame_id_list[0];\n headerLabel = headerLabel + ' [parent=f' + parentFrameID + ']';\n }\n else if (myViz.params.showAllFrameLabels) {\n headerLabel = headerLabel + ' [parent=Global]';\n }\n return headerLabel;\n });\n sfdEnter\n .append('table')\n .attr('class', 'stackFrameVarTable');\n var stackVarTable = stackFrameDiv\n .order() // VERY IMPORTANT to put in the order corresponding to data elements\n .select('table').selectAll('tr')\n .data(function (frame) {\n if (myViz.hideVarsSet) {\n // filter out everything in hideVarsSet\n var func_prefix_1 = frame.func_name ? frame.func_name : DataVisualizer.UNNAMED_PREFIX;\n // a bit inefficient since we call filter twice, but whateves :)\n var hiddenVarnamesLst = frame.ordered_varnames.filter(function (varname) { return myViz.inHideVarsSet(func_prefix_1, varname); });\n console.log('render HIDING', func_prefix_1, hiddenVarnamesLst);\n hiddenVarnamesLst.forEach(function (e) { myViz.varsHidden.push(func_prefix_1 + ':' + e); });\n return frame.ordered_varnames\n .filter(function (varname) { return !myViz.inHideVarsSet(func_prefix_1, varname); })\n .map(function (varname) { return { varname: varname, frame: frame }; });\n }\n else {\n // each list element contains a reference to the entire frame\n // object as well as the variable name\n // TODO: look into whether we can use d3 parent nodes to avoid\n // this hack ... http://bost.ocks.org/mike/nest/\n return frame.ordered_varnames.map(function (varname) { return { varname: varname, frame: frame }; });\n }\n }, function (d) {\n // TODO: why would d ever be null?!? weird\n if (d) {\n return d.varname; // use variable name as key\n }\n });\n stackVarTable\n .enter()\n .append('tr')\n .attr('class', 'variableTr')\n .attr('id', function (d, i) {\n return myViz.owner.generateID(varnameToCssID(d.frame.unique_hash + '__' + d.varname + '_tr')); // make globally unique (within the page)\n });\n var stackVarTableCells = stackVarTable\n .selectAll('td.stackFrameVar,td.stackFrameValue')\n .data(function (d, i) { return [d, d] /* map identical data down both columns */; });\n stackVarTableCells.enter()\n .append('td')\n .attr('class', function (d, i) { return (i == 0) ? 'stackFrameVar' : 'stackFrameValue'; });\n stackVarTableCells\n .order() // VERY IMPORTANT to put in the order corresponding to data elements\n .each(function (d, i) {\n var varname = d.varname;\n var frame = d.frame;\n if (i == 0) {\n if (varname == '__return__')\n $(this).html('<span class=\"retval\">Return<br/>value</span>');\n else\n $(this).html(varname);\n }\n else {\n // always delete and re-render the stack var ...\n // NB: trying to cache and compare the old value using,\n // say -- $(this).attr('data-curvalue', valStringRepr) -- leads to\n // a mysterious and killer memory leak that I can't figure out yet\n $(this).empty();\n // make sure varname and frame.unique_hash don't contain any weird\n // characters that are illegal for CSS ID's ...\n var varDivID = myViz.owner.generateID(varnameToCssID(frame.unique_hash + '__' + varname));\n // need to get rid of the old connector in preparation for rendering a new one:\n existingConnectionEndpointIDs.remove(varDivID);\n var val = frame.encoded_locals[varname];\n if (myViz.isPrimitiveType(val)) {\n myViz.renderPrimitiveObject(val, curInstr, $(this));\n }\n else if (val[0] === 'C_STRUCT' || val[0] === 'C_ARRAY' || val[0] === 'C_MULTIDIMENSIONAL_ARRAY') {\n // C structs and arrays can be inlined in frames\n myViz.renderCStructArray(val, curInstr, $(this));\n }\n else {\n var heapObjID = myViz.generateHeapObjID(getRefID(val), curInstr);\n if (myViz.params.textualMemoryLabels) {\n var labelID = varDivID + '_text_label';\n $(this).append('<div class=\"objectIdLabel\" id=\"' + labelID + '\">id' + getRefID(val) + '</div>');\n $(this).find('div#' + labelID).hover(function () {\n myViz.jsPlumbInstance.connect({ source: labelID, target: heapObjID,\n scope: 'varValuePointer' });\n }, function () {\n myViz.jsPlumbInstance.select({ source: labelID }).detach();\n });\n }\n else {\n // add a stub so that we can connect it with a connector later.\n // IE needs this div to be NON-EMPTY in order to properly\n // render jsPlumb endpoints, so that's why we add an \" \"!\n $(this).append('<div class=\"stack_pointer\" id=\"' + varDivID + '\"> </div>');\n assert(!myViz.jsPlumbManager.connectionEndpointIDs.has(varDivID));\n myViz.jsPlumbManager.connectionEndpointIDs.set(varDivID, heapObjID);\n //console.log('STACK->HEAP', varDivID, heapObjID);\n }\n }\n }\n });\n stackVarTableCells.exit()\n .each(function (d, idx) {\n $(this).empty(); // crucial for garbage collecting jsPlumb connectors!\n })\n .remove();\n stackVarTable.exit()\n .each(function (d, i) {\n $(this).find('.stack_pointer').each(function (i, sp) {\n // detach all stack_pointer connectors for divs that are being removed\n existingConnectionEndpointIDs.remove($(sp).attr('id'));\n });\n $(this).empty(); // crucial for garbage collecting jsPlumb connectors!\n })\n .remove();\n stackFrameDiv.exit()\n .each(function (frame, i) {\n $(this).find('.stack_pointer').each(function (i, sp) {\n // detach all stack_pointer connectors for divs that are being removed\n existingConnectionEndpointIDs.remove($(sp).attr('id'));\n });\n var my_CSS_id = $(this).attr('id');\n //console.log(my_CSS_id, 'EXIT');\n // Remove all pointers where either the source or destination end is my_CSS_id\n existingParentPointerConnectionEndpointIDs.forEach(function (k, v) {\n if (k == my_CSS_id || v == my_CSS_id) {\n //console.log('remove EPP', k, v);\n existingParentPointerConnectionEndpointIDs.remove(k);\n }\n });\n $(this).empty(); // crucial for garbage collecting jsPlumb connectors!\n })\n .remove();\n // Rightward nudge hack to make tree-like structures look more sane\n // without any sophisticated graph rendering code. Thanks to John\n // DeNero for this suggestion in Fall 2012.\n //\n // This hack tries to ensure that all pointers that span different\n // rows point RIGHTWARD (as much as possible), which makes tree-like\n // structures look decent. e.g.,:\n //\n // t = [[['a', 'b'], ['c', 'd']], [[1,2], [3,4]]]\n //\n // Do it here since all of the divs have been rendered by now, but no\n // jsPlumb arrows have been rendered yet.\n if (rightwardNudgeHack) {\n // Basic idea: keep a set of all nudged ROWS for each nudger row, so\n // that when you get nudged, you can, in turn, nudge all of the rows\n // that you've nudged. this algorithm nicely takes care of the fact\n // that there might not be cycles in objects that you've nudged, but\n // there are cycles in entire rows.\n //\n // Key: ID of .heapRow object that did the nudging\n // Value: set of .heapRow ID that were (transitively) nudged by this element\n // (represented as a d3.map)\n var nudger_to_nudged_rows = {};\n // VERY IMPORTANT to sort these connector IDs in ascending order,\n // since I think they're rendered left-to-right, top-to-bottom in ID\n // order, so we want to run the nudging algorithm in that same order.\n var srcHeapConnectorIDs = myViz.jsPlumbManager.heapConnectionEndpointIDs.keys();\n srcHeapConnectorIDs.sort();\n $.each(srcHeapConnectorIDs, function (i, srcID) {\n var dstID = myViz.jsPlumbManager.heapConnectionEndpointIDs.get(srcID);\n var srcAnchorObject = myViz.domRoot.find('#' + srcID);\n var srcHeapObject = srcAnchorObject.closest('.heapObject');\n var dstAnchorObject = myViz.domRoot.find('#' + dstID);\n var dstHeapObject = dstAnchorObject.closest('.heapObject');\n var srcHeapRow = srcHeapObject.closest('.heapRow');\n var dstHeapRow = dstHeapObject.closest('.heapRow');\n var srcRowID = srcHeapRow.attr('id');\n var dstRowID = dstHeapRow.attr('id');\n // only consider nudging if srcID and dstID are on different rows\n if (srcRowID != dstRowID) {\n var srcAnchorLeft = srcAnchorObject.offset().left;\n var srcHeapObjectLeft = srcHeapObject.offset().left;\n var dstHeapObjectLeft = dstHeapObject.offset().left;\n // if srcAnchorObject is to the RIGHT of dstHeapObject, then nudge\n // dstHeapObject to the right\n if (srcAnchorLeft > dstHeapObjectLeft) {\n // an extra nudge of 32px matches up pretty well with the\n // current CSS padding around .toplevelHeapObject\n var delta = (srcAnchorLeft - dstHeapObjectLeft) + 32;\n // set margin rather than padding so that arrows tips still end\n // at the left edge of the element.\n // whoa, set relative CSS using +=, nice!\n //\n // TODO: tried looking into setting 'left' directly instead of\n // 'margin-left', but somehow the results look different\n dstHeapObject.css('margin-left', '+=' + delta);\n //console.log(srcRowID, 'nudged', dstRowID, 'by', delta);\n var cur_nudgee_set = nudger_to_nudged_rows[srcRowID];\n if (cur_nudgee_set === undefined) {\n cur_nudgee_set = d3.map();\n nudger_to_nudged_rows[srcRowID] = cur_nudgee_set;\n }\n cur_nudgee_set.set(dstRowID, 1 /* useless value */);\n // now if dstRowID itself nudged some other nodes, then nudge\n // all of its nudgees by delta as well\n var dst_nudgee_set = nudger_to_nudged_rows[dstRowID];\n if (dst_nudgee_set) {\n dst_nudgee_set.forEach(function (k, v) {\n // don't nudge if it's yourself, to make cycles look\n // somewhat reasonable (although still not ideal). e.g.,:\n // x = [1,2]\n // y = [3,x]\n // x[1] = y\n if (k != srcRowID) {\n // nudge this entire ROW by delta as well\n // 2020-02-05: OK instead of nudging the .heapRow\n // object, we will traverse inside of it and nudge all\n // of its .heapObject children that reside directly\n // within .heapRow > .toplevelHeapObject > .heapObject\n //\n // why are we doing this? because we want it to\n // interact well with draggedHeapObjectCSS ... if an\n // element is dragged, we want to restore its\n // cached position from draggedHeapObjectCSS, which\n // will override all nudges. if we had nudged .heapRow\n // like we used to do, then .heapRow may itself be\n // nudged, which would kind of override\n // draggedHeapObjectCSS, which is applied to .heapObject\n //\n // old code: nudge .heapRow itself ...\n //myViz.domRoot.find('#' + k).css('margin-left', '+=' + delta);\n // new code: nudge all .heapObject children of .heapRow\n // (which is separated by an intermediary .toplevelHeapObject)\n myViz.domRoot.find('#' + k)\n .children('.toplevelHeapObject')\n .children('.heapObject')\n .css('margin-left', '+=' + delta);\n // NB: why don't we just use .find() to directly get\n // all .heapObject elements? because there are\n // sometimes .heapObject that are nested *within*\n // other .heapObject, and we don't want to unnecessarily\n // nudge those ... thus, we stick to .toplevelHeapObject\n // then transitively add to entry for srcRowID\n cur_nudgee_set.set(k, 1 /* useless value */);\n }\n });\n }\n }\n }\n });\n }\n // NB: ugh, I'm not very happy about this hack, but it seems necessary\n // for embedding within sophisticated webpages such as IPython Notebook\n // delete all connectors. do this AS LATE AS POSSIBLE so that\n // (presumably) the calls to $(this).empty() earlier in this function\n // will properly garbage collect the connectors\n //\n // WARNING: for environment parent pointers, garbage collection doesn't seem to\n // be working as intended :(\n //\n // I suspect that this is due to the fact that parent pointers are SIBLINGS\n // of stackFrame divs and not children, so when stackFrame divs get destroyed,\n // their associated parent pointers do NOT.)\n myViz.jsPlumbInstance.reset();\n // use jsPlumb scopes to keep the different kinds of pointers separated\n function renderVarValueConnector(varID, valueID) {\n // special-case handling for C/C++ pointers, just to keep from rocking\n // the boat on my existing (battle-tested) code\n if (myViz.isCppMode()) {\n if (myViz.domRoot.find('#' + valueID).length) {\n myViz.jsPlumbInstance.connect({ source: varID, target: valueID, scope: 'varValuePointer' });\n }\n else {\n // pointer isn't pointing to anything valid; put a poo emoji here\n myViz.domRoot.find('#' + varID).html('\\uD83D\\uDCA9' /* pile of poo emoji */);\n }\n }\n else {\n myViz.jsPlumbInstance.connect({ source: varID, target: valueID, scope: 'varValuePointer' });\n }\n }\n var totalParentPointersRendered = 0;\n function renderParentPointerConnector(srcID, dstID) {\n // SUPER-DUPER-ugly hack since I can't figure out a cleaner solution for now:\n // if either srcID or dstID no longer exists, then SKIP rendering ...\n if ((myViz.domRoot.find('#' + srcID).length == 0) ||\n (myViz.domRoot.find('#' + dstID).length == 0)) {\n return;\n }\n //console.log('renderParentPointerConnector:', srcID, dstID);\n myViz.jsPlumbInstance.connect({ source: srcID, target: dstID,\n anchors: [\"LeftMiddle\", \"LeftMiddle\"],\n // 'horizontally offset' the parent pointers up so that they don't look as ugly ...\n //connector: [\"Flowchart\", { stub: 9 + (6 * (totalParentPointersRendered + 1)) }],\n // actually let's try a bezier curve ...\n connector: [\"Bezier\", { curviness: 45 }],\n endpoint: [\"Dot\", { radius: 4 }],\n //hoverPaintStyle: {lineWidth: 1, strokeStyle: connectorInactiveColor}, // no hover colors\n scope: 'frameParentPointer' });\n totalParentPointersRendered++;\n }\n if (!myViz.params.textualMemoryLabels) {\n // re-render existing connectors and then ...\n //\n // NB: in C/C++ mode, to keep things simple, don't try to redraw\n // existingConnectionEndpointIDs since we want to redraw all arrows\n // each and every time.\n if (!myViz.isCppMode()) {\n existingConnectionEndpointIDs.forEach(renderVarValueConnector);\n }\n // add all the NEW connectors that have arisen in this call to renderDataStructures\n myViz.jsPlumbManager.connectionEndpointIDs.forEach(renderVarValueConnector);\n }\n // do the same for environment parent pointers\n if (myViz.params.drawParentPointers) {\n existingParentPointerConnectionEndpointIDs.forEach(renderParentPointerConnector);\n myViz.jsPlumbManager.parentPointerConnectionEndpointIDs.forEach(renderParentPointerConnector);\n }\n /*\n myViz.jsPlumbInstance.select().each(function(c) {\n console.log('CONN:', c.sourceId, c.targetId);\n });\n */\n //console.log('---', myViz.jsPlumbInstance.select().length, '---');\n function highlight_frame(frameID) {\n myViz.jsPlumbInstance.select().each(function (c) {\n // find the enclosing .stackFrame ...\n var stackFrameDiv = c.source.closest('.stackFrame');\n // if this connector starts in the selected stack frame ...\n if (stackFrameDiv.attr('id') == frameID) {\n // then HIGHLIGHT IT!\n c.setPaintStyle({ lineWidth: 1, strokeStyle: connectorBaseColor });\n c.endpoints[0].setPaintStyle({ fillStyle: connectorBaseColor });\n //c.endpoints[1].setVisible(false, true, true); // JUST set right endpoint to be invisible\n $(c.canvas).css(\"z-index\", 1000); // ... and move it to the VERY FRONT\n }\n // for heap->heap connectors\n else if (myViz.jsPlumbManager.heapConnectionEndpointIDs.has(c.endpoints[0].elementId)) {\n // NOP since it's already the color and style we set by default\n }\n // TODO: maybe this needs special consideration for C/C++ code? dunno\n else if (stackFrameDiv.length > 0) {\n // else unhighlight it\n // (only if c.source actually belongs to a stackFrameDiv (i.e.,\n // it originated from the stack). for instance, in C there are\n // heap pointers, but we doesn't use heapConnectionEndpointIDs\n // NB: 2020-02-04 - upgraded C/C++ to use heapConnectionEndpointIDs )\n c.setPaintStyle({ lineWidth: 1, strokeStyle: connectorInactiveColor });\n c.endpoints[0].setPaintStyle({ fillStyle: connectorInactiveColor });\n //c.endpoints[1].setVisible(false, true, true); // JUST set right endpoint to be invisible\n $(c.canvas).css(\"z-index\", 0);\n }\n });\n // clear everything, then just activate this one ...\n myViz.domRoot.find(\".stackFrame\").removeClass(\"highlightedStackFrame\");\n myViz.domRoot.find('#' + frameID).addClass(\"highlightedStackFrame\");\n }\n // highlight the top-most non-zombie stack frame or, if not available, globals\n var frame_already_highlighted = false;\n $.each(curEntry.stack_to_render, function (i, e) {\n if (e.is_highlighted) {\n highlight_frame(myViz.owner.generateID('stack' + i));\n frame_already_highlighted = true;\n }\n });\n if (!frame_already_highlighted) {\n highlight_frame(myViz.owner.generateID('globals'));\n }\n // if customizeVizOptionsShown ...\n // use jQueryUI's draggable to make all heap objects contained\n // within YOURSELF draggable (NB: use myViz.domRoot.find() and *not*\n // $() since the latter may select heap objects belonging to OTHER\n // ExecutionVisualizer objects on page!)\n var needToRedrawConnectors = false;\n myViz.domRoot.find('.heapObject').each(function (i, e) {\n // very subtle: if this is a .heapObject that's *nested* within\n // another one, then don't make it draggable, since it's weird to\n // be able to drag a nested object inside of its parent object; in\n // other words, we want to drag only .toplevelHeapObject, but it's\n // cleaner to make the .heapObject element draggable and not the\n // .toplevelHeapObject element\n //\n // note that this code may break if we're nesting an entire\n // ExecutionVisualizer instance inside the .heapObject of another\n // ExecutionVisualizer so that every .heapObject in the inner one is\n // actually in the outer one, but i don't see who would actually do that!\n if ($(e).parents('.heapObject').length) {\n return;\n }\n // set a custom position if one was found in draggedHeapObjectCSS ...\n // make sure to do this after applying rightwardNudgeHack so that\n // we override the positions of any nudged elements with ones from\n // draggedHeapObjectCSS\n var savedDraggedCSS = myViz.draggedHeapObjectCSS.get($(e).attr('id'));\n if (savedDraggedCSS) {\n $(e).attr('style', savedDraggedCSS);\n //console.log('GOT POSITION FROM CACHE!', $(e).attr('id'));\n needToRedrawConnectors = true;\n }\n // 2020-02-06: only make draggable() if customizeVizOptionsShown\n // (i.e., when the user has clicked \"Customize visualization\" so that\n // they purposely want to customize ... we do this to be conservative\n // so as not to rock the boat because i haven't tested draggable()\n // widely yet)\n if (myViz.owner.navControls.customizeVizOptionsShown) {\n $(e).css('cursor', 'pointer') // make the cursor a hand when you hover over it\n .draggable({\n drag: function () {\n // debounce to prevent excessive repaints, which can get super-slow\n $.doTimeout('heapObjectDrag', 10, function () {\n console.log('drag'); // to make sure we're not adding too many callbacks\n myViz.redrawConnectors(); // redraw all arrows whenever you drag!\n });\n },\n start: function () {\n },\n stop: function () {\n myViz.redrawConnectors(); // redraw all arrows when you drag stops\n // unset width and height fields since those don't seem\n // relevant and we don't want to save them in draggedCSS\n $(e).css('width', '').css('height', '');\n // save your current CSS, which has your custom position\n $(e).data('draggedCSS', $(e).attr('style'));\n },\n });\n }\n });\n // show which variables/fields were actually hidden during this call\n // to renderDataStructures:\n if (myViz.owner.navControls.customizeVizOptionsShown) {\n needToRedrawConnectors = true; // always redraw! TODO: will this get inefficient?!?\n var shs = this.domRoot.find('#selectiveHideStatus');\n shs.empty(); // ALWAYS start from scratch each time!\n if (myViz.varsHidden.length > 0 || myViz.fieldsHidden.length > 0) {\n // printing hidden vars/fields may move elements in the heap visualization\n if (myViz.varsHidden.length > 0) {\n // filter out duplicates:\n var varsHiddenNoDups_1 = [];\n myViz.varsHidden.forEach(function (e) {\n if (varsHiddenNoDups_1.indexOf(e) < 0) {\n varsHiddenNoDups_1.push(e);\n }\n });\n shs.append(\"Hidden variables: \" + varlistToHtml(varsHiddenNoDups_1));\n }\n if (myViz.fieldsHidden.length > 0) {\n // filter out duplicates:\n var fieldsHiddenNoDups_1 = [];\n myViz.fieldsHidden.forEach(function (e) {\n if (fieldsHiddenNoDups_1.indexOf(e) < 0) {\n fieldsHiddenNoDups_1.push(e);\n }\n });\n shs.append(\"<br/>Hidden object fields: \" + varlistToHtml(fieldsHiddenNoDups_1));\n }\n }\n }\n if (needToRedrawConnectors) {\n myViz.redrawConnectors();\n }\n myViz.owner.try_hook(\"end_renderDataStructures\", { myViz: myViz.owner /* tricky! use owner to be safe */ });\n };\n // rendering functions, which all take a d3 dom element to anchor the\n // new element to render\n DataVisualizer.prototype.renderPrimitiveObject = function (obj, stepNum, d3DomElement) {\n var myViz = this; // to prevent confusion of 'this' inside of nested functions\n if (this.owner.try_hook(\"renderPrimitiveObject\", { obj: obj, d3DomElement: d3DomElement })[0])\n return;\n var typ = typeof obj;\n if (obj == null) {\n d3DomElement.append('<span class=\"nullObj\">' + this.getRealLabel('None') + '</span>');\n }\n else if (typ == \"number\") {\n d3DomElement.append('<span class=\"numberObj\">' + obj + '</span>');\n }\n else if (typ == \"boolean\") {\n if (obj) {\n d3DomElement.append('<span class=\"boolObj\">' + this.getRealLabel('True') + '</span>');\n }\n else {\n d3DomElement.append('<span class=\"boolObj\">' + this.getRealLabel('False') + '</span>');\n }\n }\n else if (typ == \"string\") {\n // escape using htmlspecialchars to prevent HTML/script injection\n var literalStr = htmlspecialchars(obj);\n // print as a double-quoted string literal\n literalStr = literalStr.replace(doubleQuoteAllRegex, '\\\\\"'); // replace ALL\n literalStr = '\"' + literalStr + '\"';\n d3DomElement.append('<span class=\"stringObj\">' + literalStr + '</span>');\n }\n else if (typ == \"object\") {\n if (obj[0] == 'C_DATA') {\n var typeName = obj[2];\n // special cases for brevity:\n if (typeName === 'short int') {\n typeName = 'short';\n }\n else if (typeName === 'short unsigned int') {\n typeName = 'unsigned short';\n }\n else if (typeName === 'long int') {\n typeName = 'long';\n }\n else if (typeName === 'long long int') {\n typeName = 'long long';\n }\n else if (typeName === 'long unsigned int') {\n typeName = 'unsigned long';\n }\n else if (typeName === 'long long unsigned int') {\n typeName = 'unsigned long long int';\n }\n var isValidPtr = ((typeName === 'pointer') &&\n (obj[3] !== '<UNINITIALIZED>') &&\n (obj[3] !== '<UNALLOCATED>'));\n var addr = obj[1];\n var leader = '';\n // prefix with 'cdata_' so that we can distinguish this from a\n // top-level heap ID generated by generateHeapObjID\n var cdataId = myViz.generateHeapObjID('cdata_' + addr, stepNum);\n if (isValidPtr) {\n // for pointers, put cdataId in the header\n d3DomElement.append('<div id=\"' + cdataId + '\" class=\"cdataHeader\">' + leader + typeName + '</div>');\n var ptrVal = obj[3];\n // add a stub so that we can connect it with a connector later.\n // IE needs this div to be NON-EMPTY in order to properly\n // render jsPlumb endpoints, so that's why we add an \" \"!\n var ptrSrcId = myViz.generateHeapObjID('ptrSrc_' + addr, stepNum);\n var ptrTargetId = myViz.generateHeapObjID('cdata_' + ptrVal, stepNum); // don't forget cdata_ prefix!\n var debugInfo = '';\n // make it really narrow so that the div doesn't STRETCH too wide\n d3DomElement.append('<div style=\"width: 10px;\" id=\"' + ptrSrcId + '\" class=\"cdataElt\"> ' + debugInfo + '</div>');\n // special case: display 0x0 address as a NULL pointer value,\n // to distinguish it from all other pointers, since sometimes\n // C/C++ programmers *explicitly* set a pointer to null\n if (ptrVal === '0x0') {\n $('#' + ptrSrcId).html('<span class=\"cdataUninit\">NULL</span>');\n }\n else {\n //console.log(ptrSrcId, '->', ptrTargetId);\n assert(!myViz.jsPlumbManager.connectionEndpointIDs.has(ptrSrcId));\n myViz.jsPlumbManager.connectionEndpointIDs.set(ptrSrcId, ptrTargetId);\n // note that we can't tell whether ptrSrcId or ptrTargetId\n // are on the stack or heap (since the C trace allows pointer\n // objects to exist in both), so a hack to find out is to find\n // its DOM element, look upward in tree for closest heapObject,\n // and if we find it, then we assume it's on the heap\n var srcAnchorObject = myViz.domRoot.find('#' + ptrSrcId);\n var dstAnchorObject = myViz.domRoot.find('#' + ptrTargetId);\n var srcHeapObject = srcAnchorObject.closest('.heapObject');\n var dstHeapObject = dstAnchorObject.closest('.heapObject');\n // only do this if BOTH ptrSrcId and ptrTargetId are on the heap\n if (srcHeapObject.length > 0 && dstHeapObject.length > 0) {\n myViz.jsPlumbManager.heapConnectionEndpointIDs.set(ptrSrcId, ptrTargetId);\n }\n }\n }\n else {\n // for non-pointers, put cdataId on the element itself, so that\n // pointers can point directly at the element, not the header\n d3DomElement.append('<div class=\"cdataHeader\">' + leader + typeName + '</div>');\n var rep = '';\n if (typeof obj[3] === 'string') {\n var literalStr = obj[3];\n if (literalStr === '<UNINITIALIZED>') {\n rep = '<span class=\"cdataUninit\">?</span>';\n //rep = '\\uD83D\\uDCA9'; // pile of poo emoji\n }\n else if (literalStr == '<UNALLOCATED>') {\n rep = '\\uD83D\\uDC80'; // skull emoji\n }\n else {\n // a regular string\n literalStr = literalStr.replace(newlineAllRegex, '\\\\n'); // replace ALL\n literalStr = literalStr.replace(tabAllRegex, '\\\\t'); // replace ALL\n literalStr = literalStr.replace(doubleQuoteAllRegex, '\\\\\"'); // replace ALL\n // unprintable chars are denoted with '???', so show them as\n // a special unicode character:\n if (typeName === 'char' && literalStr === '???') {\n literalStr = '\\uFFFD'; // question mark in black diamond unicode character\n }\n else {\n // print as a SINGLE-quoted string literal (to emulate C-style chars)\n literalStr = \"'\" + literalStr + \"'\";\n }\n rep = htmlspecialchars(literalStr);\n }\n }\n else {\n rep = htmlspecialchars(obj[3]);\n }\n d3DomElement.append('<div id=\"' + cdataId + '\" class=\"cdataElt\">' + rep + '</div>');\n }\n }\n else if (obj[0] == 'IMPORTED_FAUX_PRIMITIVE') {\n // these represent objects that you've imported from external\n // libraries/modules, which should be displayed as 'primitives'\n // so that we don't clutter up the display by dedicating heap\n // space for them or trying to recurse into viewing their insides\n d3DomElement.append('<span class=\"importedObj\">' + obj[1] + '</span>');\n }\n else {\n assert(obj[0] == 'SPECIAL_FLOAT' || obj[0] == 'JS_SPECIAL_VAL');\n d3DomElement.append('<span class=\"numberObj\">' + obj[1] + '</span>');\n }\n }\n else {\n assert(false);\n }\n };\n DataVisualizer.prototype.renderNestedObject = function (obj, stepNum, d3DomElement) {\n if (this.isPrimitiveType(obj)) {\n this.renderPrimitiveObject(obj, stepNum, d3DomElement);\n }\n else {\n if (obj[0] === 'REF') {\n // obj is a [\"REF\", <int>] so dereference the 'pointer' to render that object\n this.renderCompoundObject(getRefID(obj), stepNum, d3DomElement, false);\n }\n else {\n assert(obj[0] === 'C_STRUCT' || obj[0] === 'C_ARRAY' || obj[0] === 'C_MULTIDIMENSIONAL_ARRAY');\n this.renderCStructArray(obj, stepNum, d3DomElement);\n }\n }\n };\n DataVisualizer.prototype.renderCompoundObject = function (objID, stepNum, d3DomElement, isTopLevel) {\n var myViz = this; // to prevent confusion of 'this' inside of nested functions\n var heapObjID = myViz.generateHeapObjID(objID, stepNum);\n if (!isTopLevel && myViz.jsPlumbManager.renderedHeapObjectIDs.has(heapObjID)) {\n var srcDivID = myViz.owner.generateID('heap_pointer_src_' + myViz.jsPlumbManager.heap_pointer_src_id);\n myViz.jsPlumbManager.heap_pointer_src_id++; // just make sure each source has a UNIQUE ID\n var dstDivID = heapObjID;\n if (myViz.params.textualMemoryLabels) {\n var labelID = srcDivID + '_text_label';\n d3DomElement.append('<div class=\"objectIdLabel\" id=\"' + labelID + '\">id' + objID + '</div>');\n myViz.domRoot.find('div#' + labelID).hover(function () {\n myViz.jsPlumbInstance.connect({ source: labelID, target: dstDivID,\n scope: 'varValuePointer' });\n }, function () {\n myViz.jsPlumbInstance.select({ source: labelID }).detach();\n });\n }\n else {\n // render jsPlumb arrow source since this heap object has already been rendered\n // (or will be rendered soon)\n // add a stub so that we can connect it with a connector later.\n // IE needs this div to be NON-EMPTY in order to properly\n // render jsPlumb endpoints, so that's why we add an \" \"!\n d3DomElement.append('<div id=\"' + srcDivID + '\"> </div>');\n assert(!myViz.jsPlumbManager.connectionEndpointIDs.has(srcDivID));\n myViz.jsPlumbManager.connectionEndpointIDs.set(srcDivID, dstDivID);\n //console.log('HEAP->HEAP', srcDivID, dstDivID);\n assert(!myViz.jsPlumbManager.heapConnectionEndpointIDs.has(srcDivID));\n myViz.jsPlumbManager.heapConnectionEndpointIDs.set(srcDivID, dstDivID);\n }\n return; // early return!\n }\n // wrap ALL compound objects in a heapObject div so that jsPlumb\n // connectors can point to it:\n // TODO: what about C/C++ objects on the stack that are the target of pointers?\n d3DomElement.append('<div class=\"heapObject\" id=\"' + heapObjID + '\"></div>');\n d3DomElement = myViz.domRoot.find('#' + heapObjID); // TODO: maybe inefficient\n myViz.jsPlumbManager.renderedHeapObjectIDs.set(heapObjID, 1);\n var curHeap = myViz.curTrace[stepNum].heap;\n var obj = curHeap[objID];\n assert($.isArray(obj));\n // prepend the type label with a memory address label\n var typeLabelPrefix = '';\n if (myViz.params.textualMemoryLabels) {\n typeLabelPrefix = 'id' + objID + ':';\n }\n var hook_result = myViz.owner.try_hook(\"renderCompoundObject\", { objID: objID, d3DomElement: d3DomElement,\n isTopLevel: isTopLevel, obj: obj,\n typeLabelPrefix: typeLabelPrefix,\n stepNum: stepNum,\n myViz: myViz });\n if (hook_result[0])\n return;\n if (obj[0] == 'LIST' || obj[0] == 'TUPLE' || obj[0] == 'SET' || obj[0] == 'DICT') {\n var label = obj[0].toLowerCase();\n assert(obj.length >= 1);\n if (obj.length == 1) {\n d3DomElement.append('<div class=\"typeLabel\">' + typeLabelPrefix + ' empty ' + myViz.getRealLabel(label) + '</div>');\n }\n else {\n d3DomElement.append('<div class=\"typeLabel\">' + typeLabelPrefix + myViz.getRealLabel(label) + '</div>');\n d3DomElement.append('<table class=\"' + label + 'Tbl\"></table>');\n var tbl = d3DomElement.children('table');\n if (obj[0] == 'LIST' || obj[0] == 'TUPLE') {\n tbl.append('<tr></tr><tr></tr>');\n var headerTr = tbl.find('tr:first');\n var contentTr = tbl.find('tr:last');\n $.each(obj, function (ind, val) {\n if (ind < 1)\n return; // skip type tag and ID entry\n // add a new column and then pass in that newly-added column\n // as d3DomElement to the recursive call to child:\n headerTr.append('<td class=\"' + label + 'Header\"></td>');\n headerTr.find('td:last').append(ind - 1);\n contentTr.append('<td class=\"' + label + 'Elt\"></td>');\n myViz.renderNestedObject(val, stepNum, contentTr.find('td:last'));\n });\n }\n else if (obj[0] == 'SET') {\n // create an R x C matrix:\n var numElts = obj.length - 1;\n // gives roughly a 3x5 rectangular ratio, square is too, err,\n // 'square' and boring\n var numRows = Math.round(Math.sqrt(numElts));\n if (numRows > 3) {\n numRows -= 1;\n }\n var numCols = Math.round(numElts / numRows);\n // round up if not a perfect multiple:\n if (numElts % numRows) {\n numCols += 1;\n }\n jQuery.each(obj, function (ind, val) {\n if (ind < 1)\n return; // skip 'SET' tag\n if (((ind - 1) % numCols) == 0) {\n tbl.append('<tr></tr>');\n }\n var curTr = tbl.find('tr:last');\n curTr.append('<td class=\"setElt\"></td>');\n myViz.renderNestedObject(val, stepNum, curTr.find('td:last'));\n });\n }\n else if (obj[0] == 'DICT') {\n $.each(obj, function (ind, kvPair) {\n if (ind < 1)\n return; // skip 'DICT' tag\n tbl.append('<tr class=\"dictEntry\"><td class=\"dictKey\"></td><td class=\"dictVal\"></td></tr>');\n var newRow = tbl.find('tr:last');\n var keyTd = newRow.find('td:first');\n var valTd = newRow.find('td:last');\n var key = kvPair[0];\n var val = kvPair[1];\n myViz.renderNestedObject(key, stepNum, keyTd);\n myViz.renderNestedObject(val, stepNum, valTd);\n });\n }\n }\n }\n else if (obj[0] == 'INSTANCE' || obj[0] == 'INSTANCE_PPRINT' || obj[0] == 'CLASS') {\n var isInstance = (obj[0] == 'INSTANCE');\n var isPprintInstance = (obj[0] == 'INSTANCE_PPRINT');\n var _a = DataVisualizer.getClassInstanceMetadata(obj), className_2 = _a[0], headerLength_2 = _a[1];\n assert(obj.length >= headerLength_2);\n if (isInstance) {\n d3DomElement.append('<div class=\"typeLabel\">' + typeLabelPrefix + obj[1] + ' ' + myViz.getRealLabel('instance') + '</div>');\n }\n else if (isPprintInstance) {\n d3DomElement.append('<div class=\"typeLabel\">' + typeLabelPrefix + obj[1] + ' ' + myViz.getRealLabel('instance') + '</div>');\n d3DomElement.append('<table class=\"customObjTbl\"><tr><td class=\"customObjElt\">' + htmlspecialchars(obj[2]) + '</td></tr></table>');\n }\n else {\n var superclassStr = '';\n if (obj[2].length > 0) {\n superclassStr += ('[extends ' + obj[2].join(', ') + '] ');\n }\n d3DomElement.append('<div class=\"typeLabel\">' + typeLabelPrefix + obj[1] + ' class ' + superclassStr + '</div>');\n }\n if (obj.length > headerLength_2) {\n var lab = isInstance ? 'inst' : 'class';\n d3DomElement.append('<table class=\"' + lab + 'Tbl\"></table>');\n var tbl = d3DomElement.children('table:last'); // tricky, there's more than 1 table if isPprintInstance is true\n $.each(obj, function (ind, kvPair) {\n if (ind < headerLength_2)\n return; // skip header tags\n if (myViz.inHideFieldsSet(className_2, kvPair[0])) {\n console.log('render HIDING', className_2, kvPair[0]);\n myViz.fieldsHidden.push((className_2 ? className_2 + ':' : '') + kvPair[0]);\n return; // get out!\n }\n tbl.append('<tr class=\"' + lab + 'Entry\"><td class=\"' + lab + 'Key\"></td><td class=\"' + lab + 'Val\"></td></tr>');\n var newRow = tbl.find('tr:last');\n var keyTd = newRow.find('td:first');\n var valTd = newRow.find('td:last');\n // the keys should always be strings, so render them directly (and without quotes):\n // (actually this isn't the case when strings are rendered on the heap)\n if (typeof kvPair[0] == \"string\") {\n // common case ...\n var attrnameStr = htmlspecialchars(kvPair[0]);\n keyTd.append('<span class=\"keyObj\">' + attrnameStr + '</span>');\n }\n else {\n // when strings are rendered as heap objects ...\n myViz.renderNestedObject(kvPair[0], stepNum, keyTd);\n }\n // values can be arbitrary objects, so recurse:\n myViz.renderNestedObject(kvPair[1], stepNum, valTd);\n });\n }\n }\n else if (obj[0] == 'FUNCTION') {\n assert(obj.length == 3 || obj.length == 4);\n // pretty-print lambdas and display other weird characters:\n var funcName = htmlspecialchars(obj[1]).replace('<lambda>', '\\u03bb');\n var parentFrameID = obj[2]; // optional\n if (!myViz.params.compactFuncLabels) {\n d3DomElement.append('<div class=\"typeLabel\">' + typeLabelPrefix + myViz.getRealLabel('function') + '</div>');\n }\n var funcPrefix = myViz.params.compactFuncLabels ? 'func' : '';\n if (parentFrameID) {\n d3DomElement.append('<div class=\"funcObj\">' + funcPrefix + ' ' + funcName + ' [parent=f' + parentFrameID + ']</div>');\n }\n else if (myViz.params.showAllFrameLabels) {\n d3DomElement.append('<div class=\"funcObj\">' + funcPrefix + ' ' + funcName + ' [parent=Global]</div>');\n }\n else {\n d3DomElement.append('<div class=\"funcObj\">' + funcPrefix + ' ' + funcName + '</div>');\n }\n // render default argument names/values (see ../pg_encoder.py)\n if (obj.length > 3) {\n var funcProperties = obj[3];\n assert(funcProperties.length > 0);\n d3DomElement.append('<div class=\"typeLabel\" style=\"margin-top: 3px;\">default arguments:</div>');\n d3DomElement.append('<table class=\"instTbl\"></table>');\n var tbl = d3DomElement.children('table');\n $.each(funcProperties, function (ind, kvPair) {\n tbl.append('<tr class=\"instEntry\"><td class=\"instKey\"></td><td class=\"instVal\"></td></tr>');\n var newRow = tbl.find('tr:last');\n var keyTd = newRow.find('td:first');\n var valTd = newRow.find('td:last');\n keyTd.append('<span class=\"keyObj\">' + htmlspecialchars(kvPair[0]) + '</span>');\n myViz.renderNestedObject(kvPair[1], stepNum, valTd);\n });\n }\n }\n else if (obj[0] == 'JS_FUNCTION') { /* TODO: refactor me */\n // JavaScript function\n assert(obj.length == 5);\n var funcName = htmlspecialchars(obj[1]);\n var funcCode = typeLabelPrefix + htmlspecialchars(obj[2]);\n var funcProperties = obj[3]; // either null or a non-empty list of key-value pairs\n var parentFrameID = obj[4];\n if (funcProperties || parentFrameID || myViz.params.showAllFrameLabels) {\n d3DomElement.append('<table class=\"classTbl\"></table>');\n var tbl = d3DomElement.children('table');\n tbl.append('<tr><td class=\"funcCod\" colspan=\"2\"><pre class=\"funcCode\">' + funcCode + '</pre>' + '</td></tr>');\n if (funcProperties) {\n assert(funcProperties.length > 0);\n var rawFuncName_1 = obj[1];\n $.each(funcProperties, function (ind, kvPair) {\n var instKey = kvPair[0];\n if (myViz.inHideFieldsSet(rawFuncName_1, kvPair[0])) {\n console.log('render HIDING', rawFuncName_1, kvPair[0]);\n myViz.fieldsHidden.push((rawFuncName_1 ? rawFuncName_1 + ':' : '') + kvPair[0]);\n return; // get out!\n }\n tbl.append('<tr class=\"classEntry\"><td class=\"classKey\"></td><td class=\"classVal\"></td></tr>');\n var newRow = tbl.find('tr:last');\n var keyTd = newRow.find('td:first');\n var valTd = newRow.find('td:last');\n keyTd.append('<span class=\"keyObj\">' + htmlspecialchars(kvPair[0]) + '</span>');\n myViz.renderNestedObject(kvPair[1], stepNum, valTd);\n });\n }\n if (parentFrameID) {\n tbl.append('<tr class=\"classEntry\"><td class=\"classKey\">parent</td><td class=\"classVal\">' + 'f' + parentFrameID + '</td></tr>');\n }\n else if (myViz.params.showAllFrameLabels) {\n tbl.append('<tr class=\"classEntry\"><td class=\"classKey\">parent</td><td class=\"classVal\">' + 'global' + '</td></tr>');\n }\n }\n else {\n // compact form:\n d3DomElement.append('<pre class=\"funcCode\">' + funcCode + '</pre>');\n }\n }\n else if (obj[0] == 'HEAP_PRIMITIVE') {\n assert(obj.length == 3);\n var typeName = obj[1];\n var primitiveVal = obj[2];\n // add a bit of padding to heap primitives, for aesthetics\n d3DomElement.append('<div class=\"heapPrimitive\"></div>');\n d3DomElement.find('div.heapPrimitive').append('<div class=\"typeLabel\">' + typeLabelPrefix + typeName + '</div>');\n myViz.renderPrimitiveObject(primitiveVal, stepNum, d3DomElement.find('div.heapPrimitive'));\n }\n else if (obj[0] == 'C_STRUCT' || obj[0] == 'C_ARRAY' || obj[0] === 'C_MULTIDIMENSIONAL_ARRAY') {\n myViz.renderCStructArray(obj, stepNum, d3DomElement);\n }\n else {\n // render custom data type\n assert(obj.length == 2);\n var typeName = obj[0];\n var strRepr = obj[1];\n strRepr = htmlspecialchars(strRepr); // escape strings!\n d3DomElement.append('<div class=\"typeLabel\">' + typeLabelPrefix + typeName + '</div>');\n d3DomElement.append('<table class=\"customObjTbl\"><tr><td class=\"customObjElt\">' + strRepr + '</td></tr></table>');\n }\n };\n // special-case kludge for C/C++\n DataVisualizer.prototype.renderCStructArray = function (obj, stepNum, d3DomElement) {\n var myViz = this; // to prevent confusion of 'this' inside of nested functions\n if (obj[0] == 'C_STRUCT') {\n assert(obj.length >= 3);\n var addr = obj[1];\n var typename = obj[2];\n var leader = '';\n if (myViz.params.lang === 'cpp') {\n // call it 'object' instead of 'struct'\n d3DomElement.append('<div class=\"typeLabel\">' + leader + 'object ' + typename + '</div>');\n }\n else {\n d3DomElement.append('<div class=\"typeLabel\">' + leader + 'struct ' + typename + '</div>');\n }\n if (obj.length > 3) {\n d3DomElement.append('<table class=\"instTbl\"></table>');\n var tbl = d3DomElement.children('table');\n var structName_2 = obj[2] ? obj[2] : DataVisualizer.UNNAMED_PREFIX;\n $.each(obj, function (ind, kvPair) {\n if (ind < 3)\n return; // skip header tags\n var fieldName = kvPair[0];\n if (myViz.inHideFieldsSet(structName_2, fieldName)) {\n console.log('render HIDING', structName_2, fieldName);\n myViz.fieldsHidden.push(structName_2 + ':' + fieldName);\n return; // get out!\n }\n tbl.append('<tr class=\"instEntry\"><td class=\"instKey\"></td><td class=\"instVal\"></td></tr>');\n var newRow = tbl.find('tr:last');\n var keyTd = newRow.find('td:first');\n var valTd = newRow.find('td:last');\n // the keys should always be strings, so render them directly (and without quotes):\n // (actually this isn't the case when strings are rendered on the heap)\n assert(typeof kvPair[0] == \"string\");\n // common case ...\n var attrnameStr = htmlspecialchars(kvPair[0]);\n keyTd.append('<span class=\"keyObj\">' + attrnameStr + '</span>');\n // values can be arbitrary objects, so recurse:\n myViz.renderNestedObject(kvPair[1], stepNum, valTd);\n });\n }\n }\n else if (obj[0] == 'C_MULTIDIMENSIONAL_ARRAY') {\n // since we can display only 2 dimensions sensibly, make the first\n // dimension into rows and flatten all other dimensions together into\n // columns. in the common case for a 2-D array, this will do the\n // perfect thing: first dimension is rows, second dimension is columns.\n // e.g., for a 4-D array, the first dimension is rows, and dimensions\n // 2, 3, and 4 are flattened together into columns. we can't do\n // any better than this since it doesn't make sense to display\n // more than 2 dimensions at once on screen\n assert(obj.length >= 3);\n var addr = obj[1];\n var dimensions = obj[2];\n assert(dimensions.length > 1); // make sure we're really multidimensional!\n var leader = '';\n d3DomElement.append('<div class=\"typeLabel\">' + leader + 'array</div>');\n d3DomElement.append('<table class=\"cArrayTbl\"></table>');\n var tbl = d3DomElement.children('table');\n // a list of array indices for each dimension\n var indicesByDimension = [];\n for (var d = 0; d < dimensions.length; d++) {\n indicesByDimension.push(d3.range(dimensions[d]));\n }\n // common case is 2-D:\n var allDimensions = multiplyLists(indicesByDimension[0], indicesByDimension[1]);\n // for all dimensions above the second one ...\n for (var d = 2; d < dimensions.length; d++) {\n allDimensions = multiplyLists(allDimensions, indicesByDimension[d]);\n }\n //console.log('allDimensions', JSON.stringify(allDimensions));\n // ignore dimensions[0], which is rows\n var numColumns = 1;\n for (var i = 1; i < dimensions.length; i++) {\n numColumns *= dimensions[i];\n }\n for (var row = 0; row < dimensions[0]; row++) {\n //console.log('row', row);\n // a pair of rows for header + content, respectively\n tbl.append('<tr></tr>');\n var headerTr = tbl.find('tr:last');\n tbl.append('<tr></tr>');\n var contentTr = tbl.find('tr:last');\n for (var col = 0; col < numColumns; col++) {\n var flattenedInd = (row * numColumns) + col; // the real index into the 1-D flattened array stored in obj[3:]\n var realInd = flattenedInd + 3; // skip 3 header fields to get to the real index in obj\n var val = obj[realInd];\n var indToDisplay = allDimensions[flattenedInd].join(',');\n //console.log(' col', col, '| flattenedInd:', flattenedInd, indToDisplay, 'contents:', val);\n // add a new column and then pass in that newly-added column\n // as d3DomElement to the recursive call to child:\n headerTr.append('<td class=\"cMultidimArrayHeader\"></td>');\n headerTr.find('td:last').append(indToDisplay);\n contentTr.append('<td class=\"cMultidimArrayElt\"></td>');\n myViz.renderNestedObject(val, stepNum, contentTr.find('td:last'));\n }\n }\n }\n else {\n assert(obj[0] == 'C_ARRAY');\n assert(obj.length >= 2);\n var addr = obj[1];\n var leader = '';\n d3DomElement.append('<div class=\"typeLabel\">' + leader + 'array</div>');\n d3DomElement.append('<table class=\"cArrayTbl\"></table>');\n var tbl = d3DomElement.children('table');\n tbl.append('<tr></tr><tr></tr>');\n var headerTr = tbl.find('tr:first');\n var contentTr = tbl.find('tr:last');\n $.each(obj, function (ind, val) {\n if (ind < 2)\n return; // skip 'C_ARRAY' and addr\n // add a new column and then pass in that newly-added column\n // as d3DomElement to the recursive call to child:\n headerTr.append('<td class=\"cArrayHeader\"></td>');\n headerTr.find('td:last').append(ind - 2 /* adjust */);\n contentTr.append('<td class=\"cArrayElt\"></td>');\n myViz.renderNestedObject(val, stepNum, contentTr.find('td:last'));\n });\n }\n };\n DataVisualizer.prototype.redrawConnectors = function () {\n this.jsPlumbInstance.repaintEverything();\n };\n // selectively hiding variables or fields\n //\n // note that C++ uses '::' in member function names, so for\n // the names in hideVarsLst and hideFieldsLst, we can't\n // reliably split on ':' to reconstruct its original function/class\n // name and its variable name. e.g., \"Computer::setspeed(int):p\"\n //\n // the more robust strategy is to keep this string intact and try to\n // reconstruct it when matching up with variables in the execution trace\n // ... but consider the case where there are NO COLONS in the string,\n // which indicates a variable/field name that should be matched\n // regardless of what function/object it belongs to\n DataVisualizer.prototype.selectivelyHideVarsAndFields = function (hideVarsLst, hideFieldsLst) {\n var _this = this;\n if (hideVarsLst.length > 0) {\n this.hideVarsSet = d3.map();\n hideVarsLst.forEach(function (e) { return _this.hideVarsSet.set(e, true); });\n }\n else {\n this.hideVarsSet = null; // reset\n }\n if (hideFieldsLst.length > 0) {\n this.hideFieldsSet = d3.map();\n hideFieldsLst.forEach(function (e) { return _this.hideFieldsSet.set(e, true); });\n }\n else {\n this.hideFieldsSet = null; // reset\n }\n // now that this.hideVarsSet and this.hideFieldsSet have been updated ...\n this.precomputeCurTraceLayouts(); // recompute layouts to account for hidden vars/objects\n this.renderDataStructures(this.owner.curInstr); // render current step again\n //this.owner.updateOutput(); // alternatively, try this\n };\n // precondition: obj[0] is in {'INSTANCE', 'INSTANCE_PPRINT', 'CLASS'}\n // returns: [class name, header length]\n DataVisualizer.getClassInstanceMetadata = function (obj) {\n var typ = obj[0];\n assert(typ == 'INSTANCE' || typ == 'INSTANCE_PPRINT' || typ == 'CLASS');\n var className = obj[1]; // might possibly be ''\n var headerLength = (typ == 'INSTANCE') ? 2 : 3;\n return [className, headerLength];\n };\n // returns true if funcname:varname is in this.hideVarsSet\n // OR if varname alone (without a funcname qualifier) is in this.hideVarsSet\n DataVisualizer.prototype.inHideVarsSet = function (funcname, varname) {\n return DataVisualizer._inHideSetHelper(this.hideVarsSet, funcname, varname);\n };\n // same as inHideVarsSet except for classname/fieldname in this.hideFieldsSet\n DataVisualizer.prototype.inHideFieldsSet = function (classname, fieldname) {\n return DataVisualizer._inHideSetHelper(this.hideFieldsSet, classname, fieldname);\n };\n DataVisualizer._inHideSetHelper = function (myMap, first, second) {\n if (!myMap) {\n return false;\n }\n else if (!first) { // only match on second, in that case\n return myMap.has(second);\n }\n else { // match on either first:second or second\n return myMap.has(first + ':' + second) || myMap.has(second);\n }\n };\n DataVisualizer.GLOBAL_PREFIX = 'global';\n DataVisualizer.UNNAMED_PREFIX = '<unnamed>';\n return DataVisualizer;\n}()); // END class DataVisualizer\nvar ProgramOutputBox = /** @class */ (function () {\n function ProgramOutputBox(owner, domRoot, heightOverride) {\n if (heightOverride === void 0) { heightOverride = null; }\n // how many *maximum* lines get printed to stdout in the entire trace?\n this.numStdoutLines = 0;\n this.owner = owner;\n this.domRoot = domRoot;\n var outputsHTML = '<div id=\"progOutputs\">\\\n <div id=\"printOutputDocs\">Print output (drag lower right corner to resize)</div>\\n\\\n <textarea id=\"pyStdout\" cols=\"40\" rows=\"5\" wrap=\"off\" readonly></textarea>\\\n </div>';\n this.domRoot.append(outputsHTML);\n // go backwards from the end ... sometimes the final entry doesn't\n // have an stdout\n var lastStdout;\n for (var i = this.owner.curTrace.length - 1; i >= 0; i--) {\n lastStdout = this.owner.curTrace[i].stdout;\n if (lastStdout) {\n break;\n }\n }\n if (lastStdout) {\n this.numStdoutLines = lastStdout.rtrim().split('\\n').length;\n }\n var stdoutHeight = '75px';\n // heuristic for code with really small outputs\n if (this.numStdoutLines <= 3) {\n stdoutHeight = (25 * this.numStdoutLines) + 'px';\n }\n if (heightOverride) {\n stdoutHeight = heightOverride;\n }\n // do this only after adding outputsHTML to the DOM\n this.domRoot.find('#pyStdout').width('350px')\n .height(stdoutHeight)\n .resizable();\n }\n ProgramOutputBox.prototype.renderOutput = function (stdoutStr) {\n if (!stdoutStr) {\n stdoutStr = '';\n }\n // if there isn't anything to display, don't even bother\n // displaying the pane (but this may cause jumpiness later)\n if (this.numStdoutLines > 0) {\n this.domRoot.find('#progOutputs').show();\n var pyStdout = this.domRoot.find(\"#pyStdout\");\n // keep original horizontal scroll level:\n var oldLeft = pyStdout.scrollLeft();\n pyStdout.val(stdoutStr.rtrim() /* trim trailing spaces */);\n pyStdout.scrollLeft(oldLeft);\n pyStdout.scrollTop(pyStdout[0].scrollHeight); // scroll to bottom, though\n }\n else {\n this.domRoot.find('#progOutputs').hide();\n }\n };\n return ProgramOutputBox;\n}()); // END class ProgramOutputBox\nvar CodeDisplay = /** @class */ (function () {\n function CodeDisplay(owner, domRoot, domRootD3, codToDisplay, lang, editCodeBaseURL) {\n this.leftGutterSvgInitialized = false;\n this.owner = owner;\n this.domRoot = domRoot;\n this.domRootD3 = domRootD3;\n this.codToDisplay = codToDisplay;\n // 2018-03-15 - removed \"Live programming\" link from\n // visualization mode to simplify the UI, even if it drives\n // fewer people to live programming mode; they can always click\n // the \"Live Programming Mode\" button in the code editor:\n //<span id=\"liveModeSpan\" style=\"display: none;\">| <a id=\"editLiveModeBtn\" href=\"#\">Live programming</a></a>\\\n //\n // also changed 'Edit code' link to 'Edit this code' to make\n // it more clear to users\n var codeDisplayHTML = '<div id=\"codeDisplayDiv\">\\\n <div id=\"langDisplayDiv\"></div>\\\n <div id=\"pyCodeOutputDiv\"/>\\\n <div id=\"editCodeLinkDiv\"><a id=\"editBtn\">Edit this code</a>\\\n </div>\\\n <div id=\"legendDiv\"/>\\\n <div id=\"codeFooterDocs\"></div>\\\n </div>';\n this.domRoot.append(codeDisplayHTML);\n if (this.owner.params.embeddedMode) {\n this.domRoot.find('#editCodeLinkDiv').css('font-size', '10pt');\n }\n this.domRoot.find('#legendDiv')\n .append('<svg id=\"prevLegendArrowSVG\"/> line that just executed')\n .append('<p style=\"margin-top: 4px\"><svg id=\"curLegendArrowSVG\"/> next line to execute</p>');\n this.domRootD3.select('svg#prevLegendArrowSVG')\n .append('polygon')\n .attr('points', exports.SVG_ARROW_POLYGON)\n .attr('fill', exports.lightArrowColor);\n this.domRootD3.select('svg#curLegendArrowSVG')\n .append('polygon')\n .attr('points', exports.SVG_ARROW_POLYGON)\n .attr('fill', exports.darkArrowColor);\n if (editCodeBaseURL) {\n // kinda kludgy\n var pyVer = '2'; // default\n if (lang === 'js') {\n pyVer = 'js';\n }\n else if (lang === 'ts') {\n pyVer = 'ts';\n }\n else if (lang === 'java') {\n pyVer = 'java';\n }\n else if (lang === 'py3') {\n pyVer = '3';\n }\n else if (lang === 'py3anaconda') {\n pyVer = 'py3anaconda';\n }\n else if (lang === 'c') {\n pyVer = 'c';\n }\n else if (lang === 'cpp') {\n pyVer = 'cpp';\n }\n var urlStr = $.param.fragment(editCodeBaseURL, { code: this.codToDisplay, py: pyVer }, 2);\n this.domRoot.find('#editBtn').attr('href', urlStr);\n }\n else {\n this.domRoot.find('#editCodeLinkDiv').hide(); // just hide for simplicity!\n this.domRoot.find('#editBtn').attr('href', \"#\");\n this.domRoot.find('#editBtn').click(function () { return false; }); // DISABLE the link!\n }\n if (lang !== undefined) {\n if (lang === 'js') {\n this.domRoot.find('#langDisplayDiv').html('JavaScript');\n }\n else if (lang === 'ts') {\n this.domRoot.find('#langDisplayDiv').html('TypeScript');\n }\n else if (lang === 'ruby') {\n this.domRoot.find('#langDisplayDiv').html('Ruby');\n }\n else if (lang === 'java') {\n this.domRoot.find('#langDisplayDiv').html('Java');\n }\n else if (lang === 'py2') {\n this.domRoot.find('#langDisplayDiv').html('Python 2.7');\n }\n else if (lang === 'py3') {\n this.domRoot.find('#langDisplayDiv').html('Python 3.6');\n }\n else if (lang === 'py3anaconda') {\n this.domRoot.find('#langDisplayDiv').html('Python 3.6 with <a target=\"_blank\" href=\"https://docs.anaconda.com/anaconda/\">Anaconda 5.2</a> <font color=\"#e93f34\">EXPERIMENTAL!</font><br/>(much slower than <a target=\"_blank\" href=\"visualize.html#py=3\">regular Python 3.6</a>, but lets you import more modules)');\n }\n else if (lang === 'c') {\n if (this.owner.params.embeddedMode) {\n this.domRoot.find('#langDisplayDiv').html('C (gcc 4.8, C11)');\n }\n else {\n this.domRoot.find('#langDisplayDiv').html('C (gcc 4.8, C11)<br/><font color=\"#e93f34\">EXPERIMENTAL!</font> <a href=\"https://github.com/pgbovine/OnlinePythonTutor/blob/master/unsupported-features.md#c-and-c-unsupported-features\" target=\"_blank\">known limitations</a>');\n }\n }\n else if (lang === 'cpp') {\n if (this.owner.params.embeddedMode) {\n this.domRoot.find('#langDisplayDiv').html('C++ (gcc 4.8, C++11)');\n }\n else {\n this.domRoot.find('#langDisplayDiv').html('C++ (gcc 4.8, C++11)<br/><font color=\"#e93f34\">EXPERIMENTAL!</font> <a href=\"https://github.com/pgbovine/OnlinePythonTutor/blob/master/unsupported-features.md#c-and-c-unsupported-features\" target=\"_blank\">known limitations</a>');\n }\n }\n else {\n this.domRoot.find('#langDisplayDiv').hide();\n }\n }\n }\n CodeDisplay.prototype.renderPyCodeOutput = function () {\n var _this = this;\n var myCodOutput = this; // capture\n this.domRoot.find('#pyCodeOutputDiv').empty();\n // maps codeOutputLines down both table columns\n // TODO: get rid of pesky owner dependency\n var codeOutputD3 = this.domRootD3.select('#pyCodeOutputDiv')\n .append('table')\n .attr('id', 'pyCodeOutput')\n .selectAll('tr')\n .data(this.owner.codeOutputLines)\n .enter().append('tr')\n .selectAll('td')\n .data(function (d, i) { return [d, d] /* map full data item down both columns */; })\n .enter().append('td')\n .attr('class', function (d, i) {\n // add the togetherjsCloneClick class on here so that we can\n // sync clicks via TogetherJS for setting breakpoints in shared\n // sessions (kinda leaky abstraction since pytutor.ts shouldn't\n // need to know about TogetherJS, but oh wells)\n if (i == 0) {\n return 'lineNo togetherjsCloneClick';\n }\n else {\n return 'cod togetherjsCloneClick';\n }\n })\n .attr('id', function (d, i) {\n if (i == 0) {\n return 'lineNo' + d.lineNumber;\n }\n else {\n return _this.owner.generateID('cod' + d.lineNumber); // make globally unique (within the page)\n }\n })\n .html(function (d, i) {\n if (i == 0) {\n return d.lineNumber;\n }\n else {\n return htmlspecialchars(d.text);\n }\n });\n // create a left-most gutter td that spans ALL rows ...\n // (NB: valign=\"top\" is CRUCIAL for this to work in IE)\n this.domRoot.find('#pyCodeOutput tr:first')\n .prepend('<td id=\"gutterTD\" valign=\"top\" rowspan=\"' + this.owner.codeOutputLines.length + '\"><svg id=\"leftCodeGutterSVG\"/></td>');\n // create prevLineArrow and curLineArrow\n this.domRootD3.select('svg#leftCodeGutterSVG')\n .append('polygon')\n .attr('id', 'prevLineArrow')\n .attr('points', exports.SVG_ARROW_POLYGON)\n .attr('fill', exports.lightArrowColor);\n this.domRootD3.select('svg#leftCodeGutterSVG')\n .append('polygon')\n .attr('id', 'curLineArrow')\n .attr('points', exports.SVG_ARROW_POLYGON)\n .attr('fill', exports.darkArrowColor);\n // 2012-09-05: Disable breakpoints for now to simplify UX\n // 2016-05-01: Revive breakpoint functionality\n codeOutputD3\n .style('cursor', function (d, i) {\n // don't do anything if exePts empty (i.e., this line was never executed)\n var exePts = d.executionPoints;\n if (!exePts || exePts.length == 0) {\n return;\n }\n else {\n return 'pointer';\n }\n })\n .on('click', function (d, i) {\n // don't do anything if exePts empty (i.e., this line was never executed)\n var exePts = d.executionPoints;\n if (!exePts || exePts.length == 0) {\n return;\n }\n d.breakpointHere = !d.breakpointHere; // toggle\n if (d.breakpointHere) {\n myCodOutput.owner.setBreakpoint(d);\n d3.select(this.parentNode).select('td.lineNo').style('color', breakpointColor);\n d3.select(this.parentNode).select('td.lineNo').style('font-weight', 'bold');\n d3.select(this.parentNode).select('td.cod').style('color', breakpointColor);\n }\n else {\n myCodOutput.owner.unsetBreakpoint(d);\n d3.select(this.parentNode).select('td.lineNo').style('color', '');\n d3.select(this.parentNode).select('td.lineNo').style('font-weight', '');\n d3.select(this.parentNode).select('td.cod').style('color', '');\n }\n });\n };\n CodeDisplay.prototype.updateCodOutput = function (smoothTransition) {\n var _this = this;\n if (smoothTransition === void 0) { smoothTransition = false; }\n var gutterSVG = this.domRoot.find('svg#leftCodeGutterSVG');\n // one-time initialization of the left gutter\n // (we often can't do this earlier since the entire pane\n // might be invisible and hence returns a height of zero or NaN\n // -- the exact format depends on browser)\n if (!this.leftGutterSvgInitialized) {\n // set the gutter's height to match that of its parent\n gutterSVG.height(gutterSVG.parent().height());\n var firstRowOffsetY = this.domRoot.find('table#pyCodeOutput tr:first').offset().top;\n // first take care of edge case when there's only one line ...\n this.codeRowHeight = this.domRoot.find('table#pyCodeOutput td.cod:first').height();\n // ... then handle the (much more common) multi-line case ...\n // this weird contortion is necessary to get the accurate row height on Internet Explorer\n // (simpler methods work on all other major browsers, erghhhhhh!!!)\n if (this.owner.codeOutputLines.length > 1) {\n var secondRowOffsetY = this.domRoot.find('table#pyCodeOutput tr:nth-child(2)').offset().top;\n this.codeRowHeight = secondRowOffsetY - firstRowOffsetY;\n }\n assert(this.codeRowHeight > 0);\n var gutterOffsetY = gutterSVG.offset().top;\n var teenyAdjustment = gutterOffsetY - firstRowOffsetY;\n // super-picky detail to adjust the vertical alignment of arrows so that they line up\n // well with the pointed-to code text ...\n // (if you want to manually adjust tableTop, then ~5 is a reasonable number)\n this.arrowOffsetY = Math.floor((this.codeRowHeight / 2) - (SVG_ARROW_HEIGHT / 2)) - teenyAdjustment;\n this.leftGutterSvgInitialized = true;\n }\n assert(this.arrowOffsetY !== undefined);\n assert(this.codeRowHeight !== undefined);\n assert(0 <= this.arrowOffsetY && this.arrowOffsetY <= this.codeRowHeight);\n // assumes that this.owner.updateLineAndExceptionInfo has already\n // been run, so line number info is up-to-date!\n // TODO: get rid of this pesky 'owner' dependency\n var myViz = this.owner;\n var isLastInstr = (myViz.curInstr === (myViz.curTrace.length - 1));\n var curEntry = myViz.curTrace[myViz.curInstr];\n var hasError = (curEntry.event === 'exception' || curEntry.event === 'uncaught_exception');\n var isTerminated = (!myViz.instrLimitReached && isLastInstr);\n var pcod = this.domRoot.find('#pyCodeOutputDiv');\n var prevVerticalNudge = myViz.prevLineIsReturn ? Math.floor(this.codeRowHeight / 3) : 0;\n var curVerticalNudge = myViz.curLineIsReturn ? Math.floor(this.codeRowHeight / 3) : 0;\n // ugly edge case for the final instruction :0\n if (isTerminated && !hasError) {\n if (myViz.prevLineNumber !== myViz.curLineNumber) {\n curVerticalNudge = curVerticalNudge - 2;\n }\n }\n if (myViz.prevLineNumber) {\n var pla = this.domRootD3.select('#prevLineArrow');\n var translatePrevCmd = 'translate(0, ' + (((myViz.prevLineNumber - 1) * this.codeRowHeight) + this.arrowOffsetY + prevVerticalNudge) + ')';\n if (smoothTransition) {\n pla\n .transition()\n .duration(200)\n .attr('fill', 'white')\n .each('end', function () {\n pla\n .attr('transform', translatePrevCmd)\n .attr('fill', exports.lightArrowColor);\n gutterSVG.find('#prevLineArrow').show(); // show at the end to avoid flickering\n });\n }\n else {\n pla.attr('transform', translatePrevCmd);\n gutterSVG.find('#prevLineArrow').show();\n }\n }\n else {\n gutterSVG.find('#prevLineArrow').hide();\n }\n if (myViz.curLineNumber) {\n var cla = this.domRootD3.select('#curLineArrow');\n var translateCurCmd = 'translate(0, ' + (((myViz.curLineNumber - 1) * this.codeRowHeight) + this.arrowOffsetY + curVerticalNudge) + ')';\n if (smoothTransition) {\n cla\n .transition()\n .delay(200)\n .duration(250)\n .attr('transform', translateCurCmd);\n }\n else {\n cla.attr('transform', translateCurCmd);\n }\n gutterSVG.find('#curLineArrow').show();\n }\n else {\n gutterSVG.find('#curLineArrow').hide();\n }\n this.domRootD3.selectAll('#pyCodeOutputDiv td.cod')\n .style('border-top', function (d) {\n if (hasError && (d.lineNumber == curEntry.line)) {\n return '1px solid ' + errorColor;\n }\n else {\n return '';\n }\n })\n .style('border-bottom', function (d) {\n // COPY AND PASTE ALERT!\n if (hasError && (d.lineNumber == curEntry.line)) {\n return '1px solid ' + errorColor;\n }\n else {\n return '';\n }\n });\n // returns True iff lineNo is visible in pyCodeOutputDiv\n var isOutputLineVisible = function (lineNo) {\n var lineNoTd = _this.domRoot.find('#lineNo' + lineNo);\n // if we can't even find this lineNo div, then punt!\n if (!lineNoTd || lineNoTd.length /* jQuery selector returns a list */ === 0) {\n return false;\n }\n var LO = lineNoTd.offset().top;\n var PO = pcod.offset().top;\n var ST = pcod.scrollTop();\n var H = pcod.height();\n // add a few pixels of fudge factor on the bottom end due to bottom scrollbar\n return (PO <= LO) && (LO < (PO + H - 30));\n };\n // smoothly scroll pyCodeOutputDiv so that the given line is at the center\n var scrollCodeOutputToLine = function (lineNo) {\n var lineNoTd = _this.domRoot.find('#lineNo' + lineNo);\n // if we can't even find this lineNo div, then punt!\n if (!lineNoTd || lineNoTd.length /* jQuery selector returns a list */ === 0) {\n return false;\n }\n var LO = lineNoTd.offset().top;\n var PO = pcod.offset().top;\n var ST = pcod.scrollTop();\n var H = pcod.height();\n pcod.stop(); // first stop all previously-queued animations\n pcod.animate({ scrollTop: (ST + (LO - PO - (Math.round(H / 2)))) }, 300);\n };\n // smoothly scroll code display\n if (!isOutputLineVisible(curEntry.line)) {\n scrollCodeOutputToLine(curEntry.line);\n }\n };\n return CodeDisplay;\n}()); // END class CodeDisplay\nvar NavigationController = /** @class */ (function () {\n function NavigationController(owner, domRoot, domRootD3, nSteps) {\n var _this = this;\n var myself = this;\n this.owner = owner;\n this.domRoot = domRoot;\n this.domRootD3 = domRootD3;\n this.nSteps = nSteps;\n this.customizeVizOptionsShown = false;\n var navHTML = '<div id=\"navControlsDiv\">\\\n <div id=\"executionSlider\"/>\\\n <div id=\"executionSliderFooter\"/>\\\n <div id=\"vcrControls\">\\\n <button id=\"jmpFirstInstr\", type=\"button\"><< First</button>\\\n <button id=\"jmpStepBack\", type=\"button\">< Prev</button>\\\n <button id=\"jmpStepFwd\", type=\"button\">Next ></button>\\\n <button id=\"jmpLastInstr\", type=\"button\">Last >></button>\\\n </div>\\\n <div id=\"curInstr\">Step ? of ?</div>\\\n <div id=\"rawUserInputDiv\">\\\n <span id=\"userInputPromptStr\"/>\\\n <input type=\"text\" id=\"raw_input_textbox\" size=\"30\"/>\\\n <button id=\"raw_input_submit_btn\">Submit</button>\\\n </div>\\\n <div id=\"errorOutput\"/>\\\n <div id=\"creditsPane\"></div>\\\n <div id=\"uiControlsPane\"><a id=\"customizeVizLink\" href=\"#\">Customize visualization</a> (<font color=\"#e93f34\">NEW!</font>)</div>\\\n </div>';\n this.domRoot.append(navHTML);\n this.domRoot.find(\"#jmpFirstInstr\").click(function () { _this.owner.renderStep(0); });\n this.domRoot.find(\"#jmpLastInstr\").click(function () { _this.owner.renderStep(_this.nSteps - 1); });\n this.domRoot.find(\"#jmpStepBack\").click(function () { _this.owner.stepBack(); });\n this.domRoot.find(\"#jmpStepFwd\").click(function () { _this.owner.stepForward(); });\n // disable controls initially ...\n this.domRoot.find(\"#vcrControls #jmpFirstInstr\").attr(\"disabled\", true);\n this.domRoot.find(\"#vcrControls #jmpStepBack\").attr(\"disabled\", true);\n this.domRoot.find(\"#vcrControls #jmpStepFwd\").attr(\"disabled\", true);\n this.domRoot.find(\"#vcrControls #jmpLastInstr\").attr(\"disabled\", true);\n var ruiDiv = this.domRoot.find('#rawUserInputDiv');\n ruiDiv.find('#userInputPromptStr').html(this.owner.userInputPromptStr);\n ruiDiv.find('#raw_input_submit_btn').click(function () {\n var userInput = ruiDiv.find('#raw_input_textbox').val();\n // advance instruction count by 1 to get to the NEXT instruction\n _this.owner.params.executeCodeWithRawInputFunc(userInput, _this.owner.curInstr + 1);\n });\n // create customize visualization UI\n var uiControlsPane = this.domRoot.find(\"#uiControlsPane\");\n // expose the customization UI\n uiControlsPane.find(\"#customizeVizLink\").click(function () {\n if (_this.customizeVizOptionsShown) {\n return;\n }\n // do this up top so that renderDataStructures is called,\n // customizeVizOptionsShown is on, so objects get made .draggable()\n _this.customizeVizOptionsShown = true;\n uiControlsPane.append(' \\\n <div style=\"margin-top: 8px;\"/>\\\n <font color=\"#e93f34\">Warning:</font> Reloading this page loses all changes;\\\n customizations <em>NOT</em> shared in URL or chat sessions\\\n <p/><b>Drag</b> any object around to move it. Customize its pointers:\\\n <div style=\"margin-top: 12px; margin-bottom: 5px;\">\\\n Line style:\\\n <select id=\"jsplumbConnectorType\">\\\n <option value=\"StateMachine\" selected>Default</option>\\\n <option value=\"Bezier\">Bezier</option>\\\n <option value=\"Straight\">Straight</option>\\\n <option value=\"Flowchart\">Flowchart</option>\\\n </select>\\\n </div>\\\n <div class=\"sliderWrapper\">Curve: <input type=\"range\" min=\"0\" max=\"100\" value=\"10\" class=\"jsplumbOptionSlider\" id=\"smCurviness\"><span class=\"sliderVal\">10</span></div>\\\n <div class=\"sliderWrapper\">Curve: <input type=\"range\" min=\"0\" max=\"500\" value=\"150\" class=\"jsplumbOptionSlider\" id=\"bezierCurviness\"><span class=\"sliderVal\">150</span></div>\\\n <div class=\"sliderWrapper\">Margin: <input type=\"range\" min=\"0\" max=\"20\" value=\"5\" class=\"jsplumbOptionSlider\" id=\"margin\"><span class=\"sliderVal\">5</span></div>\\\n <div class=\"sliderWrapper\">Stub: <input type=\"range\" min=\"0\" max=\"50\" value=\"0\" class=\"jsplumbOptionSlider\" id=\"stub\"><span class=\"sliderVal\">0</span></div>\\\n <div class=\"sliderWrapper\">Gap: <input type=\"range\" min=\"0\" max=\"50\" value=\"0\" class=\"jsplumbOptionSlider\" id=\"gap\"><span class=\"sliderVal\">0</span></div>\\\n <div class=\"sliderWrapper\">Midpoint: <input type=\"range\" min=\"0\" max=\"10\" value=\"0.5\" step=\"0.5\" class=\"jsplumbOptionSlider\" id=\"midpoint\"><span class=\"sliderVal\">0.5</span></div>\\\n <div class=\"sliderWrapper\">CornerRadius: <input type=\"range\" min=\"0\" max=\"10\" value=\"0\" class=\"jsplumbOptionSlider\" id=\"cornerRadius\"><span class=\"sliderVal\">0</span></div>\\\n <div class=\"sliderWrapper\">Arrow length: <input type=\"range\" min=\"1\" max=\"30\" value=\"10\" class=\"jsplumbOptionSlider\" id=\"arrowLength\"><span class=\"sliderVal\">10</span></div>\\\n <div class=\"sliderWrapper\">Arrow width: <input type=\"range\" min=\"1\" max=\"30\" value=\"7\" class=\"jsplumbOptionSlider\" id=\"arrowWidth\"><span class=\"sliderVal\">7</span></div>\\\n <div class=\"sliderWrapper\">Arrow fold: <input type=\"range\" min=\"0\" max=\"1\" value=\"0.55\" step=\"0.05\" class=\"jsplumbOptionSlider\" id=\"arrowFoldback\"><span class=\"sliderVal\">0.55</span></div>\\\n <div id=\"selectiveHideDiv\" style=\"margin-top: 15px; padding: 6px 6px 6px 6px; border: 1px solid #ccc;\">\\\n <b>Hide variables/fields</b> (elements may end up out of order, so reload page to reset)<br/>\\\n <button id=\"updateHideVarsBtn\" style=\"margin-top: 8px;\">Update visualization</button>\\\n <p/>All choices below; use part after colon to match all variables/fields with that name.<br/>\\\n <font color=\"#e93f34\">(Double-check your spelling!)</font>\\\n <p/>Hide these variables:<br/>\\\n <textarea id=\"hideVars\" rows=\"3\" cols=\"70\"/>\\\n <div id=\"hideVarsChoices\" style=\"width: 500px;\"></div>\\\n <p style=\"margin-top: 15px;\"/>Hide these object fields:<br/>\\\n <textarea id=\"hideFields\" rows=\"3\" cols=\"70\"/>\\\n <div id=\"hideFieldsChoices\" style=\"width: 500px;\"></div>\\\n </div>\\\n </div>\\\n ');\n // note that many of these options aren't present in the OLD OLD\n // OLD version of ./lib/jquery.jsPlumb-1.3.10-all-min.js that\n // we're using, so they might not do anything when they're\n // triggered. look at the inline comments/documentation in the source code\n // here for details: lib/jsplumb-1.3.10.zip\n function rerenderJsPlumbConnectors() {\n var connectorType = uiControlsPane.find('#jsplumbConnectorType').val();\n var connectorSpec = null;\n if (connectorType === \"StateMachine\") {\n var curviness = uiControlsPane.find('#smCurviness').val();\n connectorSpec = [connectorType, { curviness: curviness }]; // margin seems to have no effect\n }\n else if (connectorType === \"Bezier\") {\n var curviness = uiControlsPane.find('#bezierCurviness').val();\n connectorSpec = [connectorType, { curviness: curviness }];\n }\n else if (connectorType === \"Straight\") {\n connectorSpec = [connectorType]; // stub and gap seem to have no effect\n }\n else {\n assert(connectorType === \"Flowchart\");\n // stub, midpoint, and radius seem to have no effect (actually\n // stub causes crashes, ergh)\n var gap = uiControlsPane.find('#gap').val();\n connectorSpec = [connectorType, { gap: gap }];\n }\n if (connectorSpec) {\n myself.owner.dataViz.jsPlumbInstance.importDefaults({\n Connector: connectorSpec,\n Overlays: [[\"Arrow\", { length: uiControlsPane.find('#arrowLength').val(),\n width: uiControlsPane.find('#arrowWidth').val(),\n foldback: uiControlsPane.find('#arrowFoldback').val(),\n location: 1 // always 1, which means to display at target\n }\n ]],\n });\n myself.owner.dataViz.renderDataStructures(myself.owner.curInstr); // UGLY!\n }\n }\n // when any slider is moved, update its numeric display and then\n // redraw all jsPlumb connectors with new options\n uiControlsPane.find('.jsplumbOptionSlider').each(function (i, e) {\n e.oninput = function () {\n $(e).siblings('.sliderVal').html(this.value);\n rerenderJsPlumbConnectors();\n };\n });\n // show certain sliders depending on value of jsplumbConnectorType\n // use this as a reference:\n // https://community.jsplumbtoolkit.com/doc/connectors.html\n uiControlsPane.find('#jsplumbConnectorType').change(function () {\n var v = $(this).val();\n uiControlsPane.find('.sliderWrapper').hide();\n if (v === \"StateMachine\") {\n uiControlsPane.find('#smCurviness').parent('.sliderWrapper').show();\n /* margin seems to have no effect ...\n uiControlsPane.find('#margin').parent('.sliderWrapper').show();\n */\n }\n else if (v === \"Bezier\") {\n uiControlsPane.find('#bezierCurviness').parent('.sliderWrapper').show();\n }\n else if (v === \"Straight\") {\n /* neither stub nor gap seem to have any effect :/\n uiControlsPane.find('#stub').val(0).siblings('.sliderVal').html(0); // set default\n uiControlsPane.find('#stub').parent('.sliderWrapper').show();\n uiControlsPane.find('#gap').parent('.sliderWrapper').show();\n */\n }\n else {\n assert(v === \"Flowchart\");\n /* stub seems to be bogus and result in errors\n uiControlsPane.find('#stub').val(30).siblings('.sliderVal').html(30); // set default\n uiControlsPane.find('#stub').parent('.sliderWrapper').show();\n \n // midpoint and cornerRadius seem equally useless\n uiControlsPane.find('#midpoint').parent('.sliderWrapper').show();\n uiControlsPane.find('#cornerRadius').parent('.sliderWrapper').show();\n */\n uiControlsPane.find('#gap').parent('.sliderWrapper').show();\n }\n // always show arrow stuff\n uiControlsPane.find('#arrowLength,#arrowWidth,#arrowFoldback').parent('.sliderWrapper').show();\n rerenderJsPlumbConnectors(); // re-render based on new connector type choice\n }).val('StateMachine').change(); // <-- trigger a change event on this\n // initial setting to get the change\n // handler above to run\n // set up infrastructure for showing/hiding variables / object fields\n var allVarnames = _this.owner.dataViz.getAllProgramVarnames();\n var allFieldnames = _this.owner.dataViz.getAllProgramObjectFieldNames();\n var varnameChoices = varlistToHtml(allVarnames);\n var fieldnameChoices = varlistToHtml(allFieldnames);\n uiControlsPane.find('#hideVarsChoices').html('<b><em>Choices:</em></b> ' + varnameChoices);\n uiControlsPane.find('#hideFieldsChoices').html('<b><em>Choices:</em></b> ' + fieldnameChoices);\n uiControlsPane.find('#updateHideVarsBtn').click(function () {\n var hideVarsLst = processHideString(uiControlsPane.find('#hideVars').val());\n var hideFieldsLst = processHideString(uiControlsPane.find('#hideFields').val());\n _this.owner.dataViz.selectivelyHideVarsAndFields(hideVarsLst, hideFieldsLst);\n });\n return false; // don't follow the link and reload the page!\n });\n }\n NavigationController.prototype.hideUserInputDiv = function () {\n this.domRoot.find('#rawUserInputDiv').hide();\n };\n NavigationController.prototype.showUserInputDiv = function () {\n this.domRoot.find('#rawUserInputDiv').show();\n };\n NavigationController.prototype.setSliderVal = function (v) {\n // PROGRAMMATICALLY change the value, so evt.originalEvent should be undefined\n this.domRoot.find('#executionSlider').slider('value', v);\n };\n NavigationController.prototype.setVcrControls = function (msg, isFirstInstr, isLastInstr) {\n var vcrControls = this.domRoot.find(\"#vcrControls\");\n vcrControls.find(\"#jmpFirstInstr\").attr(\"disabled\", false);\n vcrControls.find(\"#jmpStepBack\").attr(\"disabled\", false);\n vcrControls.find(\"#jmpStepFwd\").attr(\"disabled\", false);\n vcrControls.find(\"#jmpLastInstr\").attr(\"disabled\", false);\n this.domRoot.find(\"#curInstr\").html(msg);\n if (isFirstInstr) {\n vcrControls.find(\"#jmpFirstInstr\").attr(\"disabled\", true);\n vcrControls.find(\"#jmpStepBack\").attr(\"disabled\", true);\n }\n if (isLastInstr) {\n vcrControls.find(\"#jmpLastInstr\").attr(\"disabled\", true);\n vcrControls.find(\"#jmpStepFwd\").attr(\"disabled\", true);\n }\n };\n NavigationController.prototype.setupSlider = function (maxSliderVal) {\n var _this = this;\n assert(maxSliderVal >= 0);\n var sliderDiv = this.domRoot.find('#executionSlider');\n sliderDiv.slider({ min: 0, max: maxSliderVal, step: 1 });\n // disable keyboard actions on the slider itself (to prevent double-firing\n // of events), and make skinnier and taller\n sliderDiv\n .find(\".ui-slider-handle\")\n .unbind('keydown')\n .css('width', '0.8em')\n .css('height', '1.4em');\n this.domRoot.find(\".ui-widget-content\").css('font-size', '0.9em');\n this.domRoot.find('#executionSlider').bind('slide', function (evt, ui) {\n // this is SUPER subtle. if this value was changed programmatically,\n // then evt.originalEvent will be undefined. however, if this value\n // was changed by a user-initiated event, then this code should be\n // executed ...\n if (evt.originalEvent) {\n _this.owner.renderStep(ui.value);\n }\n });\n };\n NavigationController.prototype.renderSliderBreakpoints = function (sortedBreakpointsList) {\n this.domRoot.find(\"#executionSliderFooter\").empty();\n var w = this.domRoot.find('#executionSlider').width();\n // I originally didn't want to delete and re-create this overlay every time,\n // but if I don't do so, there are weird flickering artifacts with clearing\n // the SVG container; so it's best to just delete and re-create the container each time\n var sliderOverlay = this.domRootD3.select('#executionSliderFooter')\n .append('svg')\n .attr('id', 'sliderOverlay')\n .attr('width', w)\n .attr('height', 12);\n var xrange = d3.scale.linear()\n .domain([0, this.nSteps - 1])\n .range([0, w]);\n sliderOverlay.selectAll('rect')\n .data(sortedBreakpointsList)\n .enter().append('rect')\n .attr('x', function (d, i) {\n // make edge case of 0 look decent:\n return (d === 0) ? 0 : xrange(d) - 1;\n })\n .attr('y', 0)\n .attr('width', 2)\n .attr('height', 12)\n .style('fill', function (d) {\n return breakpointColor;\n });\n };\n NavigationController.prototype.showError = function (msg) {\n if (msg) {\n this.domRoot.find(\"#errorOutput\").html(htmlspecialchars(msg) + (\"\\n <div style=\\\"font-size: 11pt; color: #666\\\">(\" + footer_html_1.unsupportedFeaturesStr + \")</div>\")).show();\n }\n else {\n this.domRoot.find(\"#errorOutput\").hide();\n }\n };\n return NavigationController;\n}()); // END class NavigationController\n// Utilities\nfunction assert(cond) {\n if (!cond) {\n console.trace();\n alert(\"Assertion Failure (see console log for backtrace)\");\n throw 'Assertion Failure';\n }\n}\nexports.assert = assert;\n// taken from http://www.toao.net/32-my-htmlspecialchars-function-for-javascript\nfunction htmlspecialchars(str) {\n if (typeof (str) == \"string\") {\n str = str.replace(/&/g, \"&\"); /* must do & first */\n // ignore these for now ...\n //str = str.replace(/\"/g, \""\");\n //str = str.replace(/'/g, \"'\");\n str = str.replace(/</g, \"<\");\n str = str.replace(/>/g, \">\");\n // replace spaces:\n str = str.replace(/ /g, \" \");\n // replace tab as four spaces:\n str = str.replace(/\\t/g, \" \");\n // replace newline as <br/>\n str = str.replace(newlineAllRegex, '<br/>');\n }\n return str;\n}\nexports.htmlspecialchars = htmlspecialchars;\n// same as htmlspecialchars except don't worry about expanding spaces or\n// tabs since we want proper word wrapping in divs.\nfunction htmlsanitize(str) {\n if (typeof (str) == \"string\") {\n str = str.replace(/&/g, \"&\"); /* must do & first */\n str = str.replace(/</g, \"<\");\n str = str.replace(/>/g, \">\");\n }\n return str;\n}\nString.prototype /* TS too strict */.rtrim = function () {\n return this.replace(/\\s*$/g, \"\");\n};\n// make sure varname doesn't contain any weird\n// characters that are illegal for CSS ID's ...\n//\n// I know for a fact that iterator tmp variables named '_[1]'\n// are NOT legal names for CSS ID's.\n// I also threw in '{', '}', '(', ')', '<', '>' as illegal characters.\n//\n// also some variable names are like '.0' (for generator expressions),\n// and '.' seems to be illegal.\n//\n// also '=', '!', and '?' are common in Ruby names, so escape those as well\n// '$' sometimes found in JavaScript names, so escape as well\n//\n// also spaces are illegal, so convert to '_'\n// TODO: what other characters are illegal???\nvar lbRE = new RegExp('\\\\[|{|\\\\(|<', 'g');\nvar rbRE = new RegExp('\\\\]|}|\\\\)|>', 'g');\nfunction varnameToCssID(varname) {\n // make sure to REPLACE ALL (using the 'g' option)\n // rather than just replacing the first entry\n return varname.replace(lbRE, 'LeftB_')\n .replace(rbRE, '_RightB')\n .replace(/[!]/g, '_BANG_')\n .replace(/[?]/g, '_QUES_')\n .replace(/[:]/g, '_COLON_')\n .replace(/[=]/g, '_EQ_')\n .replace(/[.]/g, '_DOT_')\n .replace(/[$]/g, '_DOLLAR_')\n .replace(/ /g, '_');\n}\nfunction isHeapRef(obj, heap) {\n // ordinary REF\n if (obj[0] === 'REF') {\n return (heap[obj[1]] !== undefined);\n }\n else if (obj[0] === 'C_DATA' && obj[2] === 'pointer') {\n // C-style pointer that has a valid value\n if (obj[3] != '<UNINITIALIZED>' && obj[3] != '<UNALLOCATED>') {\n return (heap[obj[3]] !== undefined);\n }\n }\n return false;\n}\nfunction getRefID(obj) {\n if (obj[0] == 'REF') {\n return obj[1];\n }\n else {\n assert(obj[0] === 'C_DATA' && obj[2] === 'pointer');\n assert(obj[3] != '<UNINITIALIZED>' && obj[3] != '<UNALLOCATED>');\n return obj[3]; // pointed-to address\n }\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(0)))\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.privacyAndEndingHTML = \"\\n\\n<p style=\\\"margin-top: 30px;\\\">Privacy Policy: By using Python Tutor, your\\nvisualized code, options, user interactions, text chats, and IP address\\nare logged on our server and may be analyzed for research purposes.\\nNearly all web services collect this basic information from users in\\ntheir server logs. However, Python Tutor does not collect any personally\\nidentifiable information from its users. It uses Google Analytics for\\nwebsite analytics.</p>\\n\\n<p>Terms of Service: The Python Tutor service is provided for free on an\\nas-is basis. Use this service at your own risk. Do not use it to share\\nconfidential information. The developers of Python Tutor are not\\nresponsible for the chat messages or behaviors of any of the users on\\nthis website. We are also not responsible for any damages caused by\\nusing this website. Finally, it is your responsibility to follow\\nappropriate academic integrity standards.</p>\\n\\n<p style=\\\"margin-top: 25px;\\\">\\nCopyright © <a href=\\\"http://www.pgbovine.net/\\\">Philip Guo</a>. All rights reserved.\\n</p>\";\nexports.footerHtml = \"\\n<p style=\\\"margin-top: 20px; margin-bottom: 30px;\\\"><a href=\\\"https://github.com/pgbovine/OnlinePythonTutor/blob/master/unsupported-features.md\\\" target=\\\"_blank\\\">unsupported features</a> |\\n<a href=\\\"https://www.youtube.com/watch?v=80ztTXP90Vs&list=PLzV58Zm8FuBL2WxxZKGZ6j1dH8NKb_HYI&index=5\\\" target=\\\"_blank\\\">setting breakpoints</a> |\\n<a href=\\\"https://www.youtube.com/watch?v=Mxt9HZWgwAM&list=PLzV58Zm8FuBL2WxxZKGZ6j1dH8NKb_HYI&index=6\\\" target=\\\"_blank\\\">hiding variables</a> |\\n<a href=\\\"https://www.youtube.com/watch?v=JjGt95Te0wo&index=3&list=PLzV58Zm8FuBL2WxxZKGZ6j1dH8NKb_HYI\\\" target=\\\"_blank\\\">live programming</a>\\n</p>\\n\\n<p>\\n <button id=\\\"genUrlBtn\\\" class=\\\"smallBtn\\\" type=\\\"button\\\">Generate permanent link</button> <input type=\\\"text\\\" id=\\\"urlOutput\\\" size=\\\"60\\\"/>\\n(<a href=\\\"https://www.youtube.com/watch?v=h4q3UKdEFKE\\\" target=\\\"_blank\\\">video demo</a>)\\n</p>\\n\\n<div id=\\\"embedLinkDiv\\\">\\n<p>\\n <button id=\\\"genEmbedBtn\\\" class=\\\"smallBtn\\\" type=\\\"button\\\">Generate embed code</button> <input type=\\\"text\\\" id=\\\"embedCodeOutput\\\" size=\\\"60\\\"/> (also supports https://)\\n</p>\\n</div>\\n\\n<p style=\\\"margin-top: 25px;\\\">\\n<a href=\\\"http://pythontutor.com/\\\">Python Tutor</a> (<a href=\\\"https://github.com/pgbovine/OnlinePythonTutor\\\">code on GitHub</a>) supports:\\n\\nPython <a href=\\\"https://docs.python.org/3.6/\\\">3.6</a> and <a\\nhref=\\\"https://docs.python.org/2.7/\\\">2.7</a> with limited imports\\n(__future__, abc, array, bisect, calendar,\\ncmath, collections, copy, datetime, decimal,\\ndoctest, fractions, functools, hashlib, heapq,\\nio, itertools, json, locale, math,\\noperator, pickle, pprint, random, re,\\nstring, time, types, unittest, StringIO (Python 2), typing (Python 3)),\\n\\nOracle Java 8 (implemented by <a href=\\\"https://github.com/daveagp\\\">David Pritchard</a> and Will Gwozdz,\\nsupports\\n<code><a href=\\\"http://introcs.cs.princeton.edu/java/stdlib/javadoc/StdIn.html\\\">StdIn</a></code>, \\n<code><a href=\\\"http://introcs.cs.princeton.edu/java/stdlib/javadoc/StdOut.html\\\">StdOut</a></code>, \\nmost other <a href=\\\"http://introcs.cs.princeton.edu/java/stdlib\\\"><tt>stdlib</tt> libraries</a>,\\n<a href=\\\"http://introcs.cs.princeton.edu/java/43stack/Stack.java.html\\\"><tt>Stack</tt></a>,\\n<a href=\\\"http://introcs.cs.princeton.edu/java/43stack/Queue.java.html\\\"><tt>Queue</tt></a>,\\nand <a href=\\\"http://introcs.cs.princeton.edu/java/44st/ST.java.html\\\"><tt>ST</tt></a>.\\nTo access built-in <tt>Stack</tt>/<tt>Queue</tt> classes, write:\\n<tt>import java.util.Stack;</tt> This won't work: <tt>import\\njava.util.*;</tt>),\\n\\nJavaScript ES6 and TypeScript 1.4.1 (Node.js v6.0.0), Ruby 2 (MRI 2.2.2), C and C++ (gcc 4.8, C11/C++11, Valgrind Memcheck)</p>\\n\\n\" + exports.privacyAndEndingHTML;\nexports.nullTraceErrorLst = [\n \"Unknown error: The server is OVERLOADED or your code has UNSUPPORTED FEATURES.\",\n \"Try again later. This site is free with NO available technical support. [#NullTrace]\"\n];\nexports.unsupportedFeaturesStr = 'see <a target=\"_blank\" href=\"https://github.com/pgbovine/OnlinePythonTutor/blob/master/unsupported-features.md\">UNSUPPORTED FEATURES</a>';\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {/*\n * jQuery doTimeout: Like setTimeout, but better! - v1.0 - 3/3/2010\n * http://benalman.com/projects/jquery-dotimeout-plugin/\n * \n * Copyright (c) 2010 \"Cowboy\" Ben Alman\n * Dual licensed under the MIT and GPL licenses.\n * http://benalman.com/about/license/\n */\n(function($){var a={},c=\"doTimeout\",d=Array.prototype.slice;$[c]=function(){return b.apply(window,[0].concat(d.call(arguments)))};$.fn[c]=function(){var f=d.call(arguments),e=b.apply(this,[c+f[0]].concat(f));return typeof f[0]===\"number\"||typeof f[1]===\"number\"?this:e};function b(l){var m=this,h,k={},g=l?$.fn:$,n=arguments,i=4,f=n[1],j=n[2],p=n[3];if(typeof f!==\"string\"){i--;f=l=0;j=n[1];p=n[2]}if(l){h=m.eq(0);h.data(l,k=h.data(l)||{})}else{if(f){k=a[f]||(a[f]={})}}k.id&&clearTimeout(k.id);delete k.id;function e(){if(l){h.removeData(l)}else{if(f){delete a[f]}}}function o(){k.id=setTimeout(function(){k.fn()},j)}if(p){k.fn=function(q){if(typeof p===\"string\"){p=g[p]}p.apply(m,d.call(n,i))===true&&!q?o():e()};o()}else{if(k.fn){j===undefined?e():k.fn(j===false);return true}else{e()}}}})(jQuery);\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n }\n\n return url;\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\r\nmodule.exports = __webpack_amd_options__;\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, {}))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n(function(){function d(a,b){try{for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}catch(d){a.prototype=b}}function f(a){var b=-1,c=a.length,d=[];while(++b<c)d.push(a[b]);return d}function g(a){return Array.prototype.slice.call(a)}function j(){}function m(a){return a}function n(){return this}function o(){return!0}function p(a){return typeof a==\"function\"?a:function(){return a}}function q(a,b,c){return function(){var d=c.apply(b,arguments);return arguments.length?a:d}}function r(a){return a!=null&&!isNaN(a)}function s(a){return a.length}function u(a){return a==null}function v(a){return a.replace(/^\\s+|\\s+$/g,\"\").replace(/\\s+/g,\" \")}function w(a){var b=1;while(a*b%1)b*=10;return b}function z(){}function A(a){function d(){var c=b,d=-1,e=c.length,f;while(++d<e)(f=c[d].on)&&f.apply(this,arguments);return a}var b=[],c=new j;return d.on=function(d,e){var f=c.get(d),g;return arguments.length<2?f&&f.on:(f&&(f.on=null,b=b.slice(0,g=b.indexOf(f)).concat(b.slice(g+1)),c.remove(d)),e&&b.push(c.set(d,{on:e})),a)},d}function D(a,b){return b-(a?1+Math.floor(Math.log(a+Math.pow(10,1+Math.floor(Math.log(a)/Math.LN10)-b))/Math.LN10):1)}function E(a){return a+\"\"}function F(a){var b=a.lastIndexOf(\".\"),c=b>=0?a.substring(b):(b=a.length,\"\"),d=[];while(b>0)d.push(a.substring(b-=3,b+3));return d.reverse().join(\",\")+c}function H(a,b){var c=Math.pow(10,Math.abs(8-b)*3);return{scale:b>8?function(a){return a/c}:function(a){return a*c},symbol:a}}function N(a){return function(b){return b<=0?0:b>=1?1:a(b)}}function O(a){return function(b){return 1-a(1-b)}}function P(a){return function(b){return.5*(b<.5?a(2*b):2-a(2-2*b))}}function Q(a){return a}function R(a){return function(b){return Math.pow(b,a)}}function S(a){return 1-Math.cos(a*Math.PI/2)}function T(a){return Math.pow(2,10*(a-1))}function U(a){return 1-Math.sqrt(1-a*a)}function V(a,b){var c;return arguments.length<2&&(b=.45),arguments.length<1?(a=1,c=b/4):c=b/(2*Math.PI)*Math.asin(1/a),function(d){return 1+a*Math.pow(2,10*-d)*Math.sin((d-c)*2*Math.PI/b)}}function W(a){return a||(a=1.70158),function(b){return b*b*((a+1)*b-a)}}function X(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}function Y(){d3.event.stopPropagation(),d3.event.preventDefault()}function Z(){var a=d3.event,b;while(b=a.sourceEvent)a=b;return a}function $(a){var b=new z,c=0,d=arguments.length;while(++c<d)b[arguments[c]]=A(b);return b.of=function(c,d){return function(e){try{var f=e.sourceEvent=d3.event;e.target=a,d3.event=e,b[e.type].apply(c,d)}finally{d3.event=f}}},b}function ba(a){return a==\"transform\"?d3.interpolateTransform:d3.interpolate}function bb(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return(c-a)*b}}function bc(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return Math.max(0,Math.min(1,(c-a)*b))}}function bd(a,b,c){return new be(a,b,c)}function be(a,b,c){this.r=a,this.g=b,this.b=c}function bf(a){return a<16?\"0\"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function bg(a,b,c){var d=0,e=0,f=0,g,h,i;g=/([a-z]+)\\((.*)\\)/i.exec(a);if(g){h=g[2].split(\",\");switch(g[1]){case\"hsl\":return c(parseFloat(h[0]),parseFloat(h[1])/100,parseFloat(h[2])/100);case\"rgb\":return b(bi(h[0]),bi(h[1]),bi(h[2]))}}return(i=bj.get(a))?b(i.r,i.g,i.b):(a!=null&&a.charAt(0)===\"#\"&&(a.length===4?(d=a.charAt(1),d+=d,e=a.charAt(2),e+=e,f=a.charAt(3),f+=f):a.length===7&&(d=a.substring(1,3),e=a.substring(3,5),f=a.substring(5,7)),d=parseInt(d,16),e=parseInt(e,16),f=parseInt(f,16)),b(d,e,f))}function bh(a,b,c){var d=Math.min(a/=255,b/=255,c/=255),e=Math.max(a,b,c),f=e-d,g,h,i=(e+d)/2;return f?(h=i<.5?f/(e+d):f/(2-e-d),a==e?g=(b-c)/f+(b<c?6:0):b==e?g=(c-a)/f+2:g=(a-b)/f+4,g*=60):h=g=0,bk(g,h,i)}function bi(a){var b=parseFloat(a);return a.charAt(a.length-1)===\"%\"?Math.round(b*2.55):b}function bk(a,b,c){return new bl(a,b,c)}function bl(a,b,c){this.h=a,this.s=b,this.l=c}function bm(a,b,c){function f(a){return a>360?a-=360:a<0&&(a+=360),a<60?d+(e-d)*a/60:a<180?e:a<240?d+(e-d)*(240-a)/60:d}function g(a){return Math.round(f(a)*255)}var d,e;return a%=360,a<0&&(a+=360),b=b<0?0:b>1?1:b,c=c<0?0:c>1?1:c,e=c<=.5?c*(1+b):c+b-c*b,d=2*c-e,bd(g(a+120),g(a),g(a-120))}function bn(a){return i(a,bt),a}function bu(a){return function(){return bo(a,this)}}function bv(a){return function(){return bp(a,this)}}function bw(a,b){function f(){if(b=this.classList)return b.add(a);var b=this.className,d=b.baseVal!=null,e=d?b.baseVal:b;c.lastIndex=0,c.test(e)||(e=v(e+\" \"+a),d?b.baseVal=e:this.className=e)}function g(){if(b=this.classList)return b.remove(a);var b=this.className,d=b.baseVal!=null,e=d?b.baseVal:b;e=v(e.replace(c,\" \")),d?b.baseVal=e:this.className=e}function h(){(b.apply(this,arguments)?f:g).call(this)}var c=new RegExp(\"(^|\\\\s+)\"+d3.requote(a)+\"(\\\\s+|$)\",\"g\");if(arguments.length<2){var d=this.node();if(e=d.classList)return e.contains(a);var e=d.className;return c.lastIndex=0,c.test(e.baseVal!=null?e.baseVal:e)}return this.each(typeof b==\"function\"?h:b?f:g)}function bx(a){return{__data__:a}}function by(a){return function(){return bs(this,a)}}function bz(a){return arguments.length||(a=d3.ascending),function(b,c){return a(b&&b.__data__,c&&c.__data__)}}function bA(a,b){for(var c=0,d=a.length;c<d;c++)for(var e=a[c],f=0,g=e.length,h;f<g;f++)(h=e[f])&&b(h,f,c);return a}function bC(a){return i(a,bD),a}function bE(a,b,c){i(a,bI);var d=new j,e=d3.dispatch(\"start\",\"end\"),f=bQ;return a.id=b,a.time=c,a.tween=function(b,c){return arguments.length<2?d.get(b):(c==null?d.remove(b):d.set(b,c),a)},a.ease=function(b){return arguments.length?(f=typeof b==\"function\"?b:d3.ease.apply(d3,arguments),a):f},a.each=function(b,c){return arguments.length<2?bR.call(a,b):(e.on(b,c),a)},d3.timer(function(g){return bA(a,function(a,h,i){function o(f){return m.active>b?q():(m.active=b,d.forEach(function(b,c){(c=c.call(a,n,h))&&j.push(c)}),e.start.call(a,n,h),p(f)||d3.timer(p,0,c),1)}function p(c){if(m.active!==b)return q();var d=(c-k)/l,g=f(d),i=j.length;while(i>0)j[--i].call(a,g);if(d>=1)return q(),bK=b,e.end.call(a,n,h),bK=0,1}function q(){return--m.count||delete a.__transition__,1}var j=[],k=a.delay,l=a.duration,m=(a=a.node).__transition__||(a.__transition__={active:0,count:0}),n=a.__data__;++m.count,k<=g?o(g):d3.timer(o,k,c)})},0,c),a}function bG(a,b,c){return c!=\"\"&&bF}function bH(a,b){function d(a,d,e){var f=b.call(this,a,d);return f==null?e!=\"\"&&bF:e!=f&&c(e,f)}function e(a,d,e){return e!=b&&c(e,b)}var c=ba(a);return typeof b==\"function\"?d:b==null?bG:(b+=\"\",e)}function bR(a){var b=bK,c=bQ,d=bO,e=bP;return bK=this.id,bQ=this.ease(),bA(this,function(b,c,d){bO=b.delay,bP=b.duration,a.call(b=b.node,b.__data__,c,d)}),bK=b,bQ=c,bO=d,bP=e,this}function bV(){var a,b=Date.now(),c=bS;while(c)a=b-c.then,a>=c.delay&&(c.flush=c.callback(a)),c=c.next;var d=bW()-b;d>24?(isFinite(d)&&(clearTimeout(bU),bU=setTimeout(bV,d)),bT=0):(bT=1,bX(bV))}function bW(){var a=null,b=bS,c=Infinity;while(b)b.flush?b=a?a.next=b.next:bS=b.next:(c=Math.min(c,b.then+b.delay),b=(a=b).next);return c}function bY(a){var b=[a.a,a.b],c=[a.c,a.d],d=b$(b),e=bZ(b,c),f=b$(b_(c,b,-e))||0;b[0]*c[1]<c[0]*b[1]&&(b[0]*=-1,b[1]*=-1,d*=-1,e*=-1),this.rotate=(d?Math.atan2(b[1],b[0]):Math.atan2(-c[0],c[1]))*ca,this.translate=[a.e,a.f],this.scale=[d,f],this.skew=f?Math.atan2(e,f)*ca:0}function bZ(a,b){return a[0]*b[0]+a[1]*b[1]}function b$(a){var b=Math.sqrt(bZ(a,a));return b&&(a[0]/=b,a[1]/=b),b}function b_(a,b,c){return a[0]+=c*b[0],a[1]+=c*b[1],a}function cc(a,b){var c=a.ownerSVGElement||a;if(c.createSVGPoint){var d=c.createSVGPoint();if(cb<0&&(window.scrollX||window.scrollY)){c=d3.select(document.body).append(\"svg\").style(\"position\",\"absolute\").style(\"top\",0).style(\"left\",0);var e=c[0][0].getScreenCTM();cb=!e.f&&!e.e,c.remove()}return cb?(d.x=b.pageX,d.y=b.pageY):(d.x=b.clientX,d.y=b.clientY),d=d.matrixTransform(a.getScreenCTM().inverse()),[d.x,d.y]}var f=a.getBoundingClientRect();return[b.clientX-f.left-a.clientLeft,b.clientY-f.top-a.clientTop]}function cd(){}function ce(a){var b=a[0],c=a[a.length-1];return b<c?[b,c]:[c,b]}function cf(a){return a.rangeExtent?a.rangeExtent():ce(a.range())}function cg(a,b){var c=0,d=a.length-1,e=a[c],f=a[d],g;f<e&&(g=c,c=d,d=g,g=e,e=f,f=g);if(g=f-e)b=b(g),a[c]=b.floor(e),a[d]=b.ceil(f);return a}function ch(){return Math}function ci(a,b,c,d){function g(){var g=Math.min(a.length,b.length)>2?cp:co,i=d?bc:bb;return e=g(a,b,i,c),f=g(b,a,i,d3.interpolate),h}function h(a){return e(a)}var e,f;return h.invert=function(a){return f(a)},h.domain=function(b){return arguments.length?(a=b.map(Number),g()):a},h.range=function(a){return arguments.length?(b=a,g()):b},h.rangeRound=function(a){return h.range(a).interpolate(d3.interpolateRound)},h.clamp=function(a){return arguments.length?(d=a,g()):d},h.interpolate=function(a){return arguments.length?(c=a,g()):c},h.ticks=function(b){return cm(a,b)},h.tickFormat=function(b){return cn(a,b)},h.nice=function(){return cg(a,ck),g()},h.copy=function(){return ci(a,b,c,d)},g()}function cj(a,b){return d3.rebind(a,b,\"range\",\"rangeRound\",\"interpolate\",\"clamp\")}function ck(a){return a=Math.pow(10,Math.round(Math.log(a)/Math.LN10)-1),{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}}function cl(a,b){var c=ce(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),f=b/d*e;return f<=.15?e*=10:f<=.35?e*=5:f<=.75&&(e*=2),c[0]=Math.ceil(c[0]/e)*e,c[1]=Math.floor(c[1]/e)*e+e*.5,c[2]=e,c}function cm(a,b){return d3.range.apply(d3,cl(a,b))}function cn(a,b){return d3.format(\",.\"+Math.max(0,-Math.floor(Math.log(cl(a,b)[2])/Math.LN10+.01))+\"f\")}function co(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function cp(a,b,c,d){var e=[],f=[],g=0,h=Math.min(a.length,b.length)-1;a[h]<a[0]&&(a=a.slice().reverse(),b=b.slice().reverse());while(++g<=h)e.push(c(a[g-1],a[g])),f.push(d(b[g-1],b[g]));return function(b){var c=d3.bisect(a,b,1,h)-1;return f[c](e[c](b))}}function cq(a,b){function d(c){return a(b(c))}var c=b.pow;return d.invert=function(b){return c(a.invert(b))},d.domain=function(e){return arguments.length?(b=e[0]<0?ct:cs,c=b.pow,a.domain(e.map(b)),d):a.domain().map(c)},d.nice=function(){return a.domain(cg(a.domain(),ch)),d},d.ticks=function(){var d=ce(a.domain()),e=[];if(d.every(isFinite)){var f=Math.floor(d[0]),g=Math.ceil(d[1]),h=c(d[0]),i=c(d[1]);if(b===ct){e.push(c(f));for(;f++<g;)for(var j=9;j>0;j--)e.push(c(f)*j)}else{for(;f<g;f++)for(var j=1;j<10;j++)e.push(c(f)*j);e.push(c(f))}for(f=0;e[f]<h;f++);for(g=e.length;e[g-1]>i;g--);e=e.slice(f,g)}return e},d.tickFormat=function(a,e){arguments.length<2&&(e=cr);if(arguments.length<1)return e;var f=Math.max(.1,a/d.ticks().length),g=b===ct?(h=-1e-12,Math.floor):(h=1e-12,Math.ceil),h;return function(a){return a/c(g(b(a)+h))<=f?e(a):\"\"}},d.copy=function(){return cq(a.copy(),b)},cj(d,a)}function cs(a){return Math.log(a<0?0:a)/Math.LN10}function ct(a){return-Math.log(a>0?0:-a)/Math.LN10}function cu(a,b){function e(b){return a(c(b))}var c=cv(b),d=cv(1/b);return e.invert=function(b){return d(a.invert(b))},e.domain=function(b){return arguments.length?(a.domain(b.map(c)),e):a.domain().map(d)},e.ticks=function(a){return cm(e.domain(),a)},e.tickFormat=function(a){return cn(e.domain(),a)},e.nice=function(){return e.domain(cg(e.domain(),ck))},e.exponent=function(a){if(!arguments.length)return b;var f=e.domain();return c=cv(b=a),d=cv(1/b),e.domain(f)},e.copy=function(){return cu(a.copy(),b)},cj(e,a)}function cv(a){return function(b){return b<0?-Math.pow(-b,a):Math.pow(b,a)}}function cw(a,b){function f(b){return d[((c.get(b)||c.set(b,a.push(b)))-1)%d.length]}function g(b,c){return d3.range(a.length).map(function(a){return b+c*a})}var c,d,e;return f.domain=function(d){if(!arguments.length)return a;a=[],c=new j;var e=-1,g=d.length,h;while(++e<g)c.has(h=d[e])||c.set(h,a.push(h));return f[b.t](b.x,b.p)},f.range=function(a){return arguments.length?(d=a,e=0,b={t:\"range\",x:a},f):d},f.rangePoints=function(c,h){arguments.length<2&&(h=0);var i=c[0],j=c[1],k=(j-i)/(a.length-1+h);return d=g(a.length<2?(i+j)/2:i+k*h/2,k),e=0,b={t:\"rangePoints\",x:c,p:h},f},f.rangeBands=function(c,h){arguments.length<2&&(h=0);var i=c[1]<c[0],j=c[i-0],k=c[1-i],l=(k-j)/(a.length+h);return d=g(j+l*h,l),i&&d.reverse(),e=l*(1-h),b={t:\"rangeBands\",x:c,p:h},f},f.rangeRoundBands=function(c,h){arguments.length<2&&(h=0);var i=c[1]<c[0],j=c[i-0],k=c[1-i],l=Math.floor((k-j)/(a.length+h)),m=k-j-(a.length-h)*l;return d=g(j+Math.round(m/2),l),i&&d.reverse(),e=Math.round(l*(1-h)),b={t:\"rangeRoundBands\",x:c,p:h},f},f.rangeBand=function(){return e},f.rangeExtent=function(){return ce(b.x)},f.copy=function(){return cw(a,b)},f.domain(a)}function cB(a,b){function d(){var d=0,f=a.length,g=b.length;c=[];while(++d<g)c[d-1]=d3.quantile(a,d/g);return e}function e(a){return isNaN(a=+a)?NaN:b[d3.bisect(c,a)]}var c;return e.domain=function(b){return arguments.length?(a=b.filter(function(a){return!isNaN(a)}).sort(d3.ascending),d()):a},e.range=function(a){return arguments.length?(b=a,d()):b},e.quantiles=function(){return c},e.copy=function(){return cB(a,b)},d()}function cC(a,b,c){function f(b){return c[Math.max(0,Math.min(e,Math.floor(d*(b-a))))]}function g(){return d=c.length/(b-a),e=c.length-1,f}var d,e;return f.domain=function(c){return arguments.length?(a=+c[0],b=+c[c.length-1],g()):[a,b]},f.range=function(a){return arguments.length?(c=a,g()):c},f.copy=function(){return cC(a,b,c)},g()}function cD(a){function b(a){return+a}return b.invert=b,b.domain=b.range=function(c){return arguments.length?(a=c.map(b),b):a},b.ticks=function(b){return cm(a,b)},b.tickFormat=function(b){return cn(a,b)},b.copy=function(){return cD(a)},b}function cG(a){return a.innerRadius}function cH(a){return a.outerRadius}function cI(a){return a.startAngle}function cJ(a){return a.endAngle}function cK(a){function h(e){function o(){h.push(\"M\",f(a(i),g))}var h=[],i=[],j=-1,k=e.length,l,m=p(b),n=p(c);while(++j<k)d.call(this,l=e[j],j)?i.push([+m.call(this,l,j),+n.call(this,l,j)]):i.length&&(o(),i=[]);return i.length&&o(),h.length?h.join(\"\"):null}var b=cL,c=cM,d=o,e=cN,f=cP,g=.7;return h.x=function(a){return arguments.length?(b=a,h):b},h.y=function(a){return arguments.length?(c=a,h):c},h.defined=function(a){return arguments.length?(d=a,h):d},h.interpolate=function(a){return arguments.length?(cO.has(a+=\"\")||(a=cN),f=cO.get(e=a),h):e},h.tension=function(a){return arguments.length?(g=a,h):g},h}function cL(a){return a[0]}function cM(a){return a[1]}function cP(a){var b=0,c=a.length,d=a[0],e=[d[0],\",\",d[1]];while(++b<c)e.push(\"L\",(d=a[b])[0],\",\",d[1]);return e.join(\"\")}function cQ(a){var b=0,c=a.length,d=a[0],e=[d[0],\",\",d[1]];while(++b<c)e.push(\"V\",(d=a[b])[1],\"H\",d[0]);return e.join(\"\")}function cR(a){var b=0,c=a.length,d=a[0],e=[d[0],\",\",d[1]];while(++b<c)e.push(\"H\",(d=a[b])[0],\"V\",d[1]);return e.join(\"\")}function cS(a,b){return a.length<4?cP(a):a[1]+cV(a.slice(1,a.length-1),cW(a,b))}function cT(a,b){return a.length<3?cP(a):a[0]+cV((a.push(a[0]),a),cW([a[a.length-2]].concat(a,[a[1]]),b))}function cU(a,b,c){return a.length<3?cP(a):a[0]+cV(a,cW(a,b))}function cV(a,b){if(b.length<1||a.length!=b.length&&a.length!=b.length+2)return cP(a);var c=a.length!=b.length,d=\"\",e=a[0],f=a[1],g=b[0],h=g,i=1;c&&(d+=\"Q\"+(f[0]-g[0]*2/3)+\",\"+(f[1]-g[1]*2/3)+\",\"+f[0]+\",\"+f[1],e=a[1],i=2);if(b.length>1){h=b[1],f=a[i],i++,d+=\"C\"+(e[0]+g[0])+\",\"+(e[1]+g[1])+\",\"+(f[0]-h[0])+\",\"+(f[1]-h[1])+\",\"+f[0]+\",\"+f[1];for(var j=2;j<b.length;j++,i++)f=a[i],h=b[j],d+=\"S\"+(f[0]-h[0])+\",\"+(f[1]-h[1])+\",\"+f[0]+\",\"+f[1]}if(c){var k=a[i];d+=\"Q\"+(f[0]+h[0]*2/3)+\",\"+(f[1]+h[1]*2/3)+\",\"+k[0]+\",\"+k[1]}return d}function cW(a,b){var c=[],d=(1-b)/2,e,f=a[0],g=a[1],h=1,i=a.length;while(++h<i)e=f,f=g,g=a[h],c.push([d*(g[0]-e[0]),d*(g[1]-e[1])]);return c}function cX(a){if(a.length<3)return cP(a);var b=1,c=a.length,d=a[0],e=d[0],f=d[1],g=[e,e,e,(d=a[1])[0]],h=[f,f,f,d[1]],i=[e,\",\",f];dd(i,g,h);while(++b<c)d=a[b],g.shift(),g.push(d[0]),h.shift(),h.push(d[1]),dd(i,g,h);b=-1;while(++b<2)g.shift(),g.push(d[0]),h.shift(),h.push(d[1]),dd(i,g,h);return i.join(\"\")}function cY(a){if(a.length<4)return cP(a);var b=[],c=-1,d=a.length,e,f=[0],g=[0];while(++c<3)e=a[c],f.push(e[0]),g.push(e[1]);b.push(c_(dc,f)+\",\"+c_(dc,g)),--c;while(++c<d)e=a[c],f.shift(),f.push(e[0]),g.shift(),g.push(e[1]),dd(b,f,g);return b.join(\"\")}function cZ(a){var b,c=-1,d=a.length,e=d+4,f,g=[],h=[];while(++c<4)f=a[c%d],g.push(f[0]),h.push(f[1]);b=[c_(dc,g),\",\",c_(dc,h)],--c;while(++c<e)f=a[c%d],g.shift(),g.push(f[0]),h.shift(),h.push(f[1]),dd(b,g,h);return b.join(\"\")}function c$(a,b){var c=a.length-1;if(c){var d=a[0][0],e=a[0][1],f=a[c][0]-d,g=a[c][1]-e,h=-1,i,j;while(++h<=c)i=a[h],j=h/c,i[0]=b*i[0]+(1-b)*(d+j*f),i[1]=b*i[1]+(1-b)*(e+j*g)}return cX(a)}function c_(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}function dd(a,b,c){a.push(\"C\",c_(da,b),\",\",c_(da,c),\",\",c_(db,b),\",\",c_(db,c),\",\",c_(dc,b),\",\",c_(dc,c))}function de(a,b){return(b[1]-a[1])/(b[0]-a[0])}function df(a){var b=0,c=a.length-1,d=[],e=a[0],f=a[1],g=d[0]=de(e,f);while(++b<c)d[b]=g+(g=de(e=f,f=a[b+1]));return d[b]=g,d}function dg(a){var b=[],c,d,e,f,g=df(a),h=-1,i=a.length-1;while(++h<i)c=de(a[h],a[h+1]),Math.abs(c)<1e-6?g[h]=g[h+1]=0:(d=g[h]/c,e=g[h+1]/c,f=d*d+e*e,f>9&&(f=c*3/Math.sqrt(f),g[h]=f*d,g[h+1]=f*e));h=-1;while(++h<=i)f=(a[Math.min(i,h+1)][0]-a[Math.max(0,h-1)][0])/(6*(1+g[h]*g[h])),b.push([f||0,g[h]*f||0]);return b}function dh(a){return a.length<3?cP(a):a[0]+cV(a,dg(a))}function di(a){var b,c=-1,d=a.length,e,f;while(++c<d)b=a[c],e=b[0],f=b[1]+cE,b[0]=e*Math.cos(f),b[1]=e*Math.sin(f);return a}function dj(a){function l(g){function y(){l.push(\"M\",h(a(n),k),j,i(a(m.reverse()),k),\"Z\")}var l=[],m=[],n=[],o=-1,q=g.length,r,s=p(b),t=p(d),u=b===c?function(){return w}:p(c),v=d===e?function(){return x}:p(e),w,x;while(++o<q)f.call(this,r=g[o],o)?(m.push([w=+s.call(this,r,o),x=+t.call(this,r,o)]),n.push([+u.call(this,r,o),+v.call(this,r,o)])):m.length&&(y(),m=[],n=[]);return m.length&&y(),l.length?l.join(\"\"):null}var b=cL,c=cL,d=0,e=cM,f=o,g=cN,h=cP,i=cP,j=\"L\",k=.7;return l.x=function(a){return arguments.length?(b=c=a,l):c},l.x0=function(a){return arguments.length?(b=a,l):b},l.x1=function(a){return arguments.length?(c=a,l):c},l.y=function(a){return arguments.length?(d=e=a,l):e},l.y0=function(a){return arguments.length?(d=a,l):d},l.y1=function(a){return arguments.length?(e=a,l):e},l.defined=function(a){return arguments.length?(f=a,l):f},l.interpolate=function(a){return arguments.length?(cO.has(a+=\"\")||(a=cN),h=cO.get(g=a),i=h.reverse||h,j=/-closed$/.test(a)?\"M\":\"L\",l):g},l.tension=function(a){return arguments.length?(k=a,l):k},l}function dk(a){return a.source}function dl(a){return a.target}function dm(a){return a.radius}function dn(a){return a.startAngle}function dp(a){return a.endAngle}function dq(a){return[a.x,a.y]}function dr(a){return function(){var b=a.apply(this,arguments),c=b[0],d=b[1]+cE;return[c*Math.cos(d),c*Math.sin(d)]}}function ds(){return 64}function dt(){return\"circle\"}function du(a){var b=Math.sqrt(a/Math.PI);return\"M0,\"+b+\"A\"+b+\",\"+b+\" 0 1,1 0,\"+ -b+\"A\"+b+\",\"+b+\" 0 1,1 0,\"+b+\"Z\"}function dy(a,b){a.attr(\"transform\",function(a){return\"translate(\"+b(a)+\",0)\"})}function dz(a,b){a.attr(\"transform\",function(a){return\"translate(0,\"+b(a)+\")\"})}function dA(a,b,c){e=[];if(c&&b.length>1){var d=ce(a.domain()),e,f=-1,g=b.length,h=(b[1]-b[0])/++c,i,j;while(++f<g)for(i=c;--i>0;)(j=+b[f]-i*h)>=d[0]&&e.push(j);for(--f,i=0;++i<c&&(j=+b[f]+i*h)<d[1];)e.push(j)}return e}function dF(){dD||(dD=d3.select(\"body\").append(\"div\").style(\"visibility\",\"hidden\").style(\"top\",0).style(\"height\",0).style(\"width\",0).style(\"overflow-y\",\"scroll\").append(\"div\").style(\"height\",\"2000px\").node().parentNode);var a=d3.event,b;try{dD.scrollTop=1e3,dD.dispatchEvent(a),b=1e3-dD.scrollTop}catch(c){b=a.wheelDelta||-a.detail*5}return b}function dG(a){var b=a.source,c=a.target,d=dI(b,c),e=[b];while(b!==d)b=b.parent,e.push(b);var f=e.length;while(c!==d)e.splice(f,0,c),c=c.parent;return e}function dH(a){var b=[],c=a.parent;while(c!=null)b.push(a),a=c,c=c.parent;return b.push(a),b}function dI(a,b){if(a===b)return a;var c=dH(a),d=dH(b),e=c.pop(),f=d.pop(),g=null;while(e===f)g=e,e=c.pop(),f=d.pop();return g}function dL(a){a.fixed|=2}function dM(a){a!==dK&&(a.fixed&=1)}function dN(){dK.fixed&=1,dJ=dK=null}function dO(){dK.px=d3.event.x,dK.py=d3.event.y,dJ.resume()}function dP(a,b,c){var d=0,e=0;a.charge=0;if(!a.leaf){var f=a.nodes,g=f.length,h=-1,i;while(++h<g){i=f[h];if(i==null)continue;dP(i,b,c),a.charge+=i.charge,d+=i.charge*i.cx,e+=i.charge*i.cy}}if(a.point){a.leaf||(a.point.x+=Math.random()-.5,a.point.y+=Math.random()-.5);var j=b*c[a.point.index];a.charge+=a.pointCharge=j,d+=j*a.point.x,e+=j*a.point.y}a.cx=d/a.charge,a.cy=e/a.charge}function dQ(a){return 20}function dR(a){return 1}function dT(a){return a.x}function dU(a){return a.y}function dV(a,b,c){a.y0=b,a.y=c}function dY(a){return d3.range(a.length)}function dZ(a){var b=-1,c=a[0].length,d=[];while(++b<c)d[b]=0;return d}function d$(a){var b=1,c=0,d=a[0][1],e,f=a.length;for(;b<f;++b)(e=a[b][1])>d&&(c=b,d=e);return c}function d_(a){return a.reduce(ea,0)}function ea(a,b){return a+b[1]}function eb(a,b){return ec(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function ec(a,b){var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];while(++c<=b)f[c]=e*c+d;return f}function ed(a){return[d3.min(a),d3.max(a)]}function ee(a,b){return d3.rebind(a,b,\"sort\",\"children\",\"value\"),a.links=ei,a.nodes=function(b){return ej=!0,(a.nodes=a)(b)},a}function ef(a){return a.children}function eg(a){return a.value}function eh(a,b){return b.value-a.value}function ei(a){return d3.merge(a.map(function(a){return(a.children||[]).map(function(b){return{source:a,target:b}})}))}function ek(a,b){return a.value-b.value}function el(a,b){var c=a._pack_next;a._pack_next=b,b._pack_prev=a,b._pack_next=c,c._pack_prev=b}function em(a,b){a._pack_next=b,b._pack_prev=a}function en(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return e*e-c*c-d*d>.001}function eo(a){function l(a){b=Math.min(a.x-a.r,b),c=Math.max(a.x+a.r,c),d=Math.min(a.y-a.r,d),e=Math.max(a.y+a.r,e)}var b=Infinity,c=-Infinity,d=Infinity,e=-Infinity,f=a.length,g,h,i,j,k;a.forEach(ep),g=a[0],g.x=-g.r,g.y=0,l(g);if(f>1){h=a[1],h.x=h.r,h.y=0,l(h);if(f>2){i=a[2],et(g,h,i),l(i),el(g,i),g._pack_prev=i,el(i,h),h=g._pack_next;for(var m=3;m<f;m++){et(g,h,i=a[m]);var n=0,o=1,p=1;for(j=h._pack_next;j!==h;j=j._pack_next,o++)if(en(j,i)){n=1;break}if(n==1)for(k=g._pack_prev;k!==j._pack_prev;k=k._pack_prev,p++)if(en(k,i))break;n?(o<p||o==p&&h.r<g.r?em(g,h=j):em(g=k,h),m--):(el(g,i),h=i,l(i))}}}var q=(b+c)/2,r=(d+e)/2,s=0;for(var m=0;m<f;m++){var t=a[m];t.x-=q,t.y-=r,s=Math.max(s,t.r+Math.sqrt(t.x*t.x+t.y*t.y))}return a.forEach(eq),s}function ep(a){a._pack_next=a._pack_prev=a}function eq(a){delete a._pack_next,delete a._pack_prev}function er(a){var b=a.children;b&&b.length?(b.forEach(er),a.r=eo(b)):a.r=Math.sqrt(a.value)}function es(a,b,c,d){var e=a.children;a.x=b+=d*a.x,a.y=c+=d*a.y,a.r*=d;if(e){var f=-1,g=e.length;while(++f<g)es(e[f],b,c,d)}}function et(a,b,c){var d=a.r+c.r,e=b.x-a.x,f=b.y-a.y;if(d&&(e||f)){var g=b.r+c.r,h=Math.sqrt(e*e+f*f),i=Math.max(-1,Math.min(1,(d*d+h*h-g*g)/(2*d*h))),j=Math.acos(i),k=i*(d/=h),l=Math.sin(j)*d;c.x=a.x+k*e+l*f,c.y=a.y+k*f-l*e}else c.x=a.x+d,c.y=a.y}function eu(a){return 1+d3.max(a,function(a){return a.y})}function ev(a){return a.reduce(function(a,b){return a+b.x},0)/a.length}function ew(a){var b=a.children;return b&&b.length?ew(b[0]):a}function ex(a){var b=a.children,c;return b&&(c=b.length)?ex(b[c-1]):a}function ey(a,b){return a.parent==b.parent?1:2}function ez(a){var b=a.children;return b&&b.length?b[0]:a._tree.thread}function eA(a){var b=a.children,c;return b&&(c=b.length)?b[c-1]:a._tree.thread}function eB(a,b){var c=a.children;if(c&&(e=c.length)){var d,e,f=-1;while(++f<e)b(d=eB(c[f],b),a)>0&&(a=d)}return a}function eC(a,b){return a.x-b.x}function eD(a,b){return b.x-a.x}function eE(a,b){return a.depth-b.depth}function eF(a,b){function c(a,d){var e=a.children;if(e&&(i=e.length)){var f,g=null,h=-1,i;while(++h<i)f=e[h],c(f,g),g=f}b(a,d)}c(a,null)}function eG(a){var b=0,c=0,d=a.children,e=d.length,f;while(--e>=0)f=d[e]._tree,f.prelim+=b,f.mod+=b,b+=f.shift+(c+=f.change)}function eH(a,b,c){a=a._tree,b=b._tree;var d=c/(b.number-a.number);a.change+=d,b.change-=d,b.shift+=c,b.prelim+=c,b.mod+=c}function eI(a,b,c){return a._tree.ancestor.parent==b.parent?a._tree.ancestor:c}function eJ(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function eK(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];return e<0&&(c+=e/2,e=0),f<0&&(d+=f/2,f=0),{x:c,y:d,dx:e,dy:f}}function eL(a){return a.map(eM).join(\",\")}function eM(a){return/[\",\\n]/.test(a)?'\"'+a.replace(/\\\"/g,'\"\"')+'\"':a}function eO(a,b){return function(c){return c&&a.hasOwnProperty(c.type)?a[c.type](c):b}}function eP(a){return\"m0,\"+a+\"a\"+a+\",\"+a+\" 0 1,1 0,\"+ -2*a+\"a\"+a+\",\"+a+\" 0 1,1 0,\"+2*a+\"z\"}function eQ(a,b){eR.hasOwnProperty(a.type)&&eR[a.type](a,b)}function eS(a,b){eQ(a.geometry,b)}function eT(a,b){for(var c=a.features,d=0,e=c.length;d<e;d++)eQ(c[d].geometry,b)}function eU(a,b){for(var c=a.geometries,d=0,e=c.length;d<e;d++)eQ(c[d],b)}function eV(a,b){for(var c=a.coordinates,d=0,e=c.length;d<e;d++)b.apply(null,c[d])}function eW(a,b){for(var c=a.coordinates,d=0,e=c.length;d<e;d++)for(var f=c[d],g=0,h=f.length;g<h;g++)b.apply(null,f[g])}function eX(a,b){for(var c=a.coordinates,d=0,e=c.length;d<e;d++)for(var f=c[d][0],g=0,h=f.length;g<h;g++)b.apply(null,f[g])}function eY(a,b){b.apply(null,a.coordinates)}function eZ(a,b){for(var c=a.coordinates[0],d=0,e=c.length;d<e;d++)b.apply(null,c[d])}function e$(a){return a.source}function e_(a){return a.target}function fa(){function o(a){var b=Math.sin(a*=m)*n,c=Math.sin(m-a)*n,g=c*e+b*k,h=c*f+b*l,i=c*d+b*j;return[Math.atan2(h,g)/eN,Math.atan2(i,Math.sqrt(g*g+h*h))/eN]}var a,b,c,d,e,f,g,h,i,j,k,l,m,n;return o.distance=function(){return m==null&&(n=1/Math.sin(m=Math.acos(Math.max(-1,Math.min(1,d*j+c*i*Math.cos(g-a)))))),m},o.source=function(g){var h=Math.cos(a=g[0]*eN),i=Math.sin(a);return c=Math.cos(b=g[1]*eN),d=Math.sin(b),e=c*h,f=c*i,m=null,o},o.target=function(a){var b=Math.cos(g=a[0]*eN),c=Math.sin(g);return i=Math.cos(h=a[1]*eN),j=Math.sin(h),k=i*b,l=i*c,m=null,o},o}function fb(a,b){var c=fa().source(a).target(b);return c.distance(),c}function fe(a){var b=0,c=0;for(;;){if(a(b,c))return[b,c];b===0?(b=c+1,c=0):(b-=1,c+=1)}}function ff(a,b,c,d){var e,f,g,h,i,j,k;return e=d[a],f=e[0],g=e[1],e=d[b],h=e[0],i=e[1],e=d[c],j=e[0],k=e[1],(k-g)*(h-f)-(i-g)*(j-f)>0}function fg(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function fh(a,b,c,d){var e=a[0],f=b[0],g=c[0],h=d[0],i=a[1],j=b[1],k=c[1],l=d[1],m=e-g,n=f-e,o=h-g,p=i-k,q=j-i,r=l-k,s=(o*p-r*m)/(r*n-o*q);return[e+s*n,i+s*q]}function fj(a,b){var c={list:a.map(function(a,b){return{index:b,x:a[0],y:a[1]}}).sort(function(a,b){return a.y<b.y?-1:a.y>b.y?1:a.x<b.x?-1:a.x>b.x?1:0}),bottomSite:null},d={list:[],leftEnd:null,rightEnd:null,init:function(){d.leftEnd=d.createHalfEdge(null,\"l\"),d.rightEnd=d.createHalfEdge(null,\"l\"),d.leftEnd.r=d.rightEnd,d.rightEnd.l=d.leftEnd,d.list.unshift(d.leftEnd,d.rightEnd)},createHalfEdge:function(a,b){return{edge:a,side:b,vertex:null,l:null,r:null}},insert:function(a,b){b.l=a,b.r=a.r,a.r.l=b,a.r=b},leftBound:function(a){var b=d.leftEnd;do b=b.r;while(b!=d.rightEnd&&e.rightOf(b,a));return b=b.l,b},del:function(a){a.l.r=a.r,a.r.l=a.l,a.edge=null},right:function(a){return a.r},left:function(a){return a.l},leftRegion:function(a){return a.edge==null?c.bottomSite:a.edge.region[a.side]},rightRegion:function(a){return a.edge==null?c.bottomSite:a.edge.region[fi[a.side]]}},e={bisect:function(a,b){var c={region:{l:a,r:b},ep:{l:null,r:null}},d=b.x-a.x,e=b.y-a.y,f=d>0?d:-d,g=e>0?e:-e;return c.c=a.x*d+a.y*e+(d*d+e*e)*.5,f>g?(c.a=1,c.b=e/d,c.c/=d):(c.b=1,c.a=d/e,c.c/=e),c},intersect:function(a,b){var c=a.edge,d=b.edge;if(!c||!d||c.region.r==d.region.r)return null;var e=c.a*d.b-c.b*d.a;if(Math.abs(e)<1e-10)return null;var f=(c.c*d.b-d.c*c.b)/e,g=(d.c*c.a-c.c*d.a)/e,h=c.region.r,i=d.region.r,j,k;h.y<i.y||h.y==i.y&&h.x<i.x?(j=a,k=c):(j=b,k=d);var l=f>=k.region.r.x;return l&&j.side===\"l\"||!l&&j.side===\"r\"?null:{x:f,y:g}},rightOf:function(a,b){var c=a.edge,d=c.region.r,e=b.x>d.x;if(e&&a.side===\"l\")return 1;if(!e&&a.side===\"r\")return 0;if(c.a===1){var f=b.y-d.y,g=b.x-d.x,h=0,i=0;!e&&c.b<0||e&&c.b>=0?i=h=f>=c.b*g:(i=b.x+b.y*c.b>c.c,c.b<0&&(i=!i),i||(h=1));if(!h){var j=d.x-c.region.l.x;i=c.b*(g*g-f*f)<j*f*(1+2*g/j+c.b*c.b),c.b<0&&(i=!i)}}else{var k=c.c-c.a*b.x,l=b.y-k,m=b.x-d.x,n=k-d.y;i=l*l>m*m+n*n}return a.side===\"l\"?i:!i},endPoint:function(a,c,d){a.ep[c]=d;if(!a.ep[fi[c]])return;b(a)},distance:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}},f={list:[],insert:function(a,b,c){a.vertex=b,a.ystar=b.y+c;for(var d=0,e=f.list,g=e.length;d<g;d++){var h=e[d];if(a.ystar>h.ystar||a.ystar==h.ystar&&b.x>h.vertex.x)continue;break}e.splice(d,0,a)},del:function(a){for(var b=0,c=f.list,d=c.length;b<d&&c[b]!=a;++b);c.splice(b,1)},empty:function(){return f.list.length===0},nextEvent:function(a){for(var b=0,c=f.list,d=c.length;b<d;++b)if(c[b]==a)return c[b+1];return null},min:function(){var a=f.list[0];return{x:a.vertex.x,y:a.ystar}},extractMin:function(){return f.list.shift()}};d.init(),c.bottomSite=c.list.shift();var g=c.list.shift(),h,i,j,k,l,m,n,o,p,q,r,s,t;for(;;){f.empty()||(h=f.min());if(g&&(f.empty()||g.y<h.y||g.y==h.y&&g.x<h.x))i=d.leftBound(g),j=d.right(i),n=d.rightRegion(i),s=e.bisect(n,g),m=d.createHalfEdge(s,\"l\"),d.insert(i,m),q=e.intersect(i,m),q&&(f.del(i),f.insert(i,q,e.distance(q,g))),i=m,m=d.createHalfEdge(s,\"r\"),d.insert(i,m),q=e.intersect(m,j),q&&f.insert(m,q,e.distance(q,g)),g=c.list.shift();else if(!f.empty())i=f.extractMin(),k=d.left(i),j=d.right(i),l=d.right(j),n=d.leftRegion(i),o=d.rightRegion(j),r=i.vertex,e.endPoint(i.edge,i.side,r),e.endPoint(j.edge,j.side,r),d.del(i),f.del(j),d.del(j),t=\"l\",n.y>o.y&&(p=n,n=o,o=p,t=\"r\"),s=e.bisect(n,o),m=d.createHalfEdge(s,t),d.insert(k,m),e.endPoint(s,fi[t],r),q=e.intersect(k,m),q&&(f.del(k),f.insert(k,q,e.distance(q,n))),q=e.intersect(m,l),q&&f.insert(m,q,e.distance(q,n));else break}for(i=d.right(d.leftEnd);i!=d.rightEnd;i=d.right(i))b(i.edge)}function fk(){return{leaf:!0,nodes:[],point:null}}function fl(a,b,c,d,e,f){if(!a(b,c,d,e,f)){var g=(c+e)*.5,h=(d+f)*.5,i=b.nodes;i[0]&&fl(a,i[0],c,d,g,h),i[1]&&fl(a,i[1],g,d,e,h),i[2]&&fl(a,i[2],c,h,g,f),i[3]&&fl(a,i[3],g,h,e,f)}}function fm(a){return{x:a[0],y:a[1]}}function fo(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function fq(a,b,c,d){var e,f,g=0,h=b.length,i=c.length;while(g<h){if(d>=i)return-1;e=b.charCodeAt(g++);if(e==37){f=fw[b.charAt(g++)];if(!f||(d=f(a,c,d))<0)return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function fx(a,b,c){return fz.test(b.substring(c,c+=3))?c:-1}function fy(a,b,c){fA.lastIndex=0;var d=fA.exec(b.substring(c,c+10));return d?c+=d[0].length:-1}function fC(a,b,c){var d=fD.get(b.substring(c,c+=3).toLowerCase());return d==null?-1:(a.m=d,c)}function fE(a,b,c){fF.lastIndex=0;var d=fF.exec(b.substring(c,c+12));return d?(a.m=fG.get(d[0].toLowerCase()),c+=d[0].length):-1}function fI(a,b,c){return fq(a,fv.c.toString(),b,c)}function fJ(a,b,c){return fq(a,fv.x.toString(),b,c)}function fK(a,b,c){return fq(a,fv.X.toString(),b,c)}function fL(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+4));return d?(a.y=+d[0],c+=d[0].length):-1}function fM(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.y=fN()+ +d[0],c+=d[0].length):-1}function fN(){return~~((new Date).getFullYear()/1e3)*1e3}function fO(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.m=d[0]-1,c+=d[0].length):-1}function fP(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.d=+d[0],c+=d[0].length):-1}function fQ(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.H=+d[0],c+=d[0].length):-1}function fR(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.M=+d[0],c+=d[0].length):-1}function fS(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.S=+d[0],c+=d[0].length):-1}function fT(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+3));return d?(a.L=+d[0],c+=d[0].length):-1}function fV(a,b,c){var d=fW.get(b.substring(c,c+=2).toLowerCase());return d==null?-1:(a.p=d,c)}function fX(a){var b=a.getTimezoneOffset(),c=b>0?\"-\":\"+\",d=~~(Math.abs(b)/60),e=Math.abs(b)%60;return c+fr(d)+fr(e)}function fZ(a){return a.toISOString()}function f$(a,b,c){function d(b){var c=a(b),d=f(c,1);return b-c<d-b?c:d}function e(c){return b(c=a(new fn(c-1)),1),c}function f(a,c){return b(a=new fn(+a),c),a}function g(a,d,f){var g=e(a),h=[];if(f>1)while(g<d)c(g)%f||h.push(new Date(+g)),b(g,1);else while(g<d)h.push(new Date(+g)),b(g,1);return h}function h(a,b,c){try{\nfn=fo;var d=new fo;return d._=a,g(d,b,c)}finally{fn=Date}}a.floor=a,a.round=d,a.ceil=e,a.offset=f,a.range=g;var i=a.utc=f_(a);return i.floor=i,i.round=f_(d),i.ceil=f_(e),i.offset=f_(f),i.range=h,a}function f_(a){return function(b,c){try{fn=fo;var d=new fo;return d._=b,a(d,c)._}finally{fn=Date}}}function ga(a,b,c){function d(b){return a(b)}return d.invert=function(b){return gc(a.invert(b))},d.domain=function(b){return arguments.length?(a.domain(b),d):a.domain().map(gc)},d.nice=function(a){var b=gb(d.domain());return d.domain([a.floor(b[0]),a.ceil(b[1])])},d.ticks=function(c,e){var f=gb(d.domain());if(typeof c!=\"function\"){var g=f[1]-f[0],h=g/c,i=d3.bisect(gg,h);if(i==gg.length)return b.year(f,c);if(!i)return a.ticks(c).map(gc);Math.log(h/gg[i-1])<Math.log(gg[i]/h)&&--i,c=b[i],e=c[1],c=c[0].range}return c(f[0],new Date(+f[1]+1),e)},d.tickFormat=function(){return c},d.copy=function(){return ga(a.copy(),b,c)},d3.rebind(d,a,\"range\",\"rangeRound\",\"interpolate\",\"clamp\")}function gb(a){var b=a[0],c=a[a.length-1];return b<c?[b,c]:[c,b]}function gc(a){return new Date(a)}function gd(a){return function(b){var c=a.length-1,d=a[c];while(!d[1](b))d=a[--c];return d[0](b)}}function ge(a){var b=new Date(a,0,1);return b.setFullYear(a),b}function gf(a){var b=a.getFullYear(),c=ge(b),d=ge(b+1);return b+(a-c)/(d-c)}function go(a){var b=new Date(Date.UTC(a,0,1));return b.setUTCFullYear(a),b}function gp(a){var b=a.getUTCFullYear(),c=go(b),d=go(b+1);return b+(a-c)/(d-c)}Date.now||(Date.now=function(){return+(new Date)});try{document.createElement(\"div\").style.setProperty(\"opacity\",0,\"\")}catch(a){var b=CSSStyleDeclaration.prototype,c=b.setProperty;b.setProperty=function(a,b,d){c.call(this,a,b+\"\",d)}}d3={version:\"2.9.6\"};var e=g;try{e(document.documentElement.childNodes)[0].nodeType}catch(h){e=f}var i=[].__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]};d3.map=function(a){var b=new j;for(var c in a)b.set(c,a[c]);return b},d(j,{has:function(a){return k+a in this},get:function(a){return this[k+a]},set:function(a,b){return this[k+a]=b},remove:function(a){return a=k+a,a in this&&delete this[a]},keys:function(){var a=[];return this.forEach(function(b){a.push(b)}),a},values:function(){var a=[];return this.forEach(function(b,c){a.push(c)}),a},entries:function(){var a=[];return this.forEach(function(b,c){a.push({key:b,value:c})}),a},forEach:function(a){for(var b in this)b.charCodeAt(0)===l&&a.call(this,b.substring(1),this[b])}});var k=\"\\0\",l=k.charCodeAt(0);d3.functor=p,d3.rebind=function(a,b){var c=1,d=arguments.length,e;while(++c<d)a[e=arguments[c]]=q(a,b,b[e]);return a},d3.ascending=function(a,b){return a<b?-1:a>b?1:a>=b?0:NaN},d3.descending=function(a,b){return b<a?-1:b>a?1:b>=a?0:NaN},d3.mean=function(a,b){var c=a.length,d,e=0,f=-1,g=0;if(arguments.length===1)while(++f<c)r(d=a[f])&&(e+=(d-e)/++g);else while(++f<c)r(d=b.call(a,a[f],f))&&(e+=(d-e)/++g);return g?e:undefined},d3.median=function(a,b){return arguments.length>1&&(a=a.map(b)),a=a.filter(r),a.length?d3.quantile(a.sort(d3.ascending),.5):undefined},d3.min=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++c<d&&((e=a[c])==null||e!=e))e=undefined;while(++c<d)(f=a[c])!=null&&e>f&&(e=f)}else{while(++c<d&&((e=b.call(a,a[c],c))==null||e!=e))e=undefined;while(++c<d)(f=b.call(a,a[c],c))!=null&&e>f&&(e=f)}return e},d3.max=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++c<d&&((e=a[c])==null||e!=e))e=undefined;while(++c<d)(f=a[c])!=null&&f>e&&(e=f)}else{while(++c<d&&((e=b.call(a,a[c],c))==null||e!=e))e=undefined;while(++c<d)(f=b.call(a,a[c],c))!=null&&f>e&&(e=f)}return e},d3.extent=function(a,b){var c=-1,d=a.length,e,f,g;if(arguments.length===1){while(++c<d&&((e=g=a[c])==null||e!=e))e=g=undefined;while(++c<d)(f=a[c])!=null&&(e>f&&(e=f),g<f&&(g=f))}else{while(++c<d&&((e=g=b.call(a,a[c],c))==null||e!=e))e=undefined;while(++c<d)(f=b.call(a,a[c],c))!=null&&(e>f&&(e=f),g<f&&(g=f))}return[e,g]},d3.random={normal:function(a,b){return arguments.length<2&&(b=1),arguments.length<1&&(a=0),function(){var c,d,e;do c=Math.random()*2-1,d=Math.random()*2-1,e=c*c+d*d;while(!e||e>1);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}}},d3.sum=function(a,b){var c=0,d=a.length,e,f=-1;if(arguments.length===1)while(++f<d)isNaN(e=+a[f])||(c+=e);else while(++f<d)isNaN(e=+b.call(a,a[f],f))||(c+=e);return c},d3.quantile=function(a,b){var c=(a.length-1)*b+1,d=Math.floor(c),e=a[d-1],f=c-d;return f?e+f*(a[d]-e):e},d3.transpose=function(a){return d3.zip.apply(d3,a)},d3.zip=function(){if(!(e=arguments.length))return[];for(var a=-1,b=d3.min(arguments,s),c=new Array(b);++a<b;)for(var d=-1,e,f=c[a]=new Array(e);++d<e;)f[d]=arguments[d][a];return c},d3.bisector=function(a){return{left:function(b,c,d,e){arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);while(d<e){var f=d+e>>1;a.call(b,b[f],f)<c?d=f+1:e=f}return d},right:function(b,c,d,e){arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);while(d<e){var f=d+e>>1;c<a.call(b,b[f],f)?e=f:d=f+1}return d}}};var t=d3.bisector(function(a){return a});d3.bisectLeft=t.left,d3.bisect=d3.bisectRight=t.right,d3.first=function(a,b){var c=0,d=a.length,e=a[0],f;arguments.length===1&&(b=d3.ascending);while(++c<d)b.call(a,e,f=a[c])>0&&(e=f);return e},d3.last=function(a,b){var c=0,d=a.length,e=a[0],f;arguments.length===1&&(b=d3.ascending);while(++c<d)b.call(a,e,f=a[c])<=0&&(e=f);return e},d3.nest=function(){function f(c,g){if(g>=b.length)return e?e.call(a,c):d?c.sort(d):c;var h=-1,i=c.length,k=b[g++],l,m,n=new j,o,p={};while(++h<i)(o=n.get(l=k(m=c[h])))?o.push(m):n.set(l,[m]);return n.forEach(function(a){p[a]=f(n.get(a),g)}),p}function g(a,d){if(d>=b.length)return a;var e=[],f=c[d++],h;for(h in a)e.push({key:h,values:g(a[h],d)});return f&&e.sort(function(a,b){return f(a.key,b.key)}),e}var a={},b=[],c=[],d,e;return a.map=function(a){return f(a,0)},a.entries=function(a){return g(f(a,0),0)},a.key=function(c){return b.push(c),a},a.sortKeys=function(d){return c[b.length-1]=d,a},a.sortValues=function(b){return d=b,a},a.rollup=function(b){return e=b,a},a},d3.keys=function(a){var b=[];for(var c in a)b.push(c);return b},d3.values=function(a){var b=[];for(var c in a)b.push(a[c]);return b},d3.entries=function(a){var b=[];for(var c in a)b.push({key:c,value:a[c]});return b},d3.permute=function(a,b){var c=[],d=-1,e=b.length;while(++d<e)c[d]=a[b[d]];return c},d3.merge=function(a){return Array.prototype.concat.apply([],a)},d3.split=function(a,b){var c=[],d=[],e,f=-1,g=a.length;arguments.length<2&&(b=u);while(++f<g)b.call(d,e=a[f],f)?d=[]:(d.length||c.push(d),d.push(e));return c},d3.range=function(a,b,c){arguments.length<3&&(c=1,arguments.length<2&&(b=a,a=0));if((b-a)/c===Infinity)throw new Error(\"infinite range\");var d=[],e=w(Math.abs(c)),f=-1,g;a*=e,b*=e,c*=e;if(c<0)while((g=a+c*++f)>b)d.push(g/e);else while((g=a+c*++f)<b)d.push(g/e);return d},d3.requote=function(a){return a.replace(x,\"\\\\$&\")};var x=/[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;d3.round=function(a,b){return b?Math.round(a*(b=Math.pow(10,b)))/b:Math.round(a)},d3.xhr=function(a,b,c){var d=new XMLHttpRequest;arguments.length<3?(c=b,b=null):b&&d.overrideMimeType&&d.overrideMimeType(b),d.open(\"GET\",a,!0),b&&d.setRequestHeader(\"Accept\",b),d.onreadystatechange=function(){if(d.readyState===4){var a=d.status;c(!a&&d.response||a>=200&&a<300||a===304?d:null)}},d.send(null)},d3.text=function(a,b,c){function d(a){c(a&&a.responseText)}arguments.length<3&&(c=b,b=null),d3.xhr(a,b,d)},d3.json=function(a,b){d3.text(a,\"application/json\",function(a){b(a?JSON.parse(a):null)})},d3.html=function(a,b){d3.text(a,\"text/html\",function(a){if(a!=null){var c=document.createRange();c.selectNode(document.body),a=c.createContextualFragment(a)}b(a)})},d3.xml=function(a,b,c){function d(a){c(a&&a.responseXML)}arguments.length<3&&(c=b,b=null),d3.xhr(a,b,d)};var y={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"};d3.ns={prefix:y,qualify:function(a){var b=a.indexOf(\":\"),c=a;return b>=0&&(c=a.substring(0,b),a=a.substring(b+1)),y.hasOwnProperty(c)?{space:y[c],local:a}:a}},d3.dispatch=function(){var a=new z,b=-1,c=arguments.length;while(++b<c)a[arguments[b]]=A(a);return a},z.prototype.on=function(a,b){var c=a.indexOf(\".\"),d=\"\";return c>0&&(d=a.substring(c+1),a=a.substring(0,c)),arguments.length<2?this[a].on(d):this[a].on(d,b)},d3.format=function(a){var b=B.exec(a),c=b[1]||\" \",d=b[3]||\"\",e=b[5],f=+b[6],g=b[7],h=b[8],i=b[9],j=1,k=\"\",l=!1;h&&(h=+h.substring(1)),e&&(c=\"0\",g&&(f-=Math.floor((f-1)/4)));switch(i){case\"n\":g=!0,i=\"g\";break;case\"%\":j=100,k=\"%\",i=\"f\";break;case\"p\":j=100,k=\"%\",i=\"r\";break;case\"d\":l=!0,h=0;break;case\"s\":j=-1,i=\"r\"}return i==\"r\"&&!h&&(i=\"g\"),i=C.get(i)||E,function(a){if(l&&a%1)return\"\";var b=a<0&&(a=-a)?\"−\":d;if(j<0){var m=d3.formatPrefix(a,h);a=m.scale(a),k=m.symbol}else a*=j;a=i(a,h);if(e){var n=a.length+b.length;n<f&&(a=(new Array(f-n+1)).join(c)+a),g&&(a=F(a)),a=b+a}else{g&&(a=F(a)),a=b+a;var n=a.length;n<f&&(a=(new Array(f-n+1)).join(c)+a)}return a+k}};var B=/(?:([^{])?([<>=^]))?([+\\- ])?(#)?(0)?([0-9]+)?(,)?(\\.[0-9]+)?([a-zA-Z%])?/,C=d3.map({g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return d3.round(a,b=D(a,b)).toFixed(Math.max(0,Math.min(20,b)))}}),G=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"μ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"].map(H);d3.formatPrefix=function(a,b){var c=0;return a&&(a<0&&(a*=-1),b&&(a=d3.round(a,D(a,b))),c=1+Math.floor(1e-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,Math.floor((c<=0?c+1:c-1)/3)*3))),G[8+c/3]};var I=R(2),J=R(3),K=function(){return Q},L=d3.map({linear:K,poly:R,quad:function(){return I},cubic:function(){return J},sin:function(){return S},exp:function(){return T},circle:function(){return U},elastic:V,back:W,bounce:function(){return X}}),M=d3.map({\"in\":Q,out:O,\"in-out\":P,\"out-in\":function(a){return P(O(a))}});d3.ease=function(a){var b=a.indexOf(\"-\"),c=b>=0?a.substring(0,b):a,d=b>=0?a.substring(b+1):\"in\";return c=L.get(c)||K,d=M.get(d)||Q,N(d(c.apply(null,Array.prototype.slice.call(arguments,1))))},d3.event=null,d3.interpolate=function(a,b){var c=d3.interpolators.length,d;while(--c>=0&&!(d=d3.interpolators[c](a,b)));return d},d3.interpolateNumber=function(a,b){return b-=a,function(c){return a+b*c}},d3.interpolateRound=function(a,b){return b-=a,function(c){return Math.round(a+b*c)}},d3.interpolateString=function(a,b){var c,d,e,f=0,g=0,h=[],i=[],j,k;_.lastIndex=0;for(d=0;c=_.exec(b);++d)c.index&&h.push(b.substring(f,g=c.index)),i.push({i:h.length,x:c[0]}),h.push(null),f=_.lastIndex;f<b.length&&h.push(b.substring(f));for(d=0,j=i.length;(c=_.exec(a))&&d<j;++d){k=i[d];if(k.x==c[0]){if(k.i)if(h[k.i+1]==null){h[k.i-1]+=k.x,h.splice(k.i,1);for(e=d+1;e<j;++e)i[e].i--}else{h[k.i-1]+=k.x+h[k.i+1],h.splice(k.i,2);for(e=d+1;e<j;++e)i[e].i-=2}else if(h[k.i+1]==null)h[k.i]=k.x;else{h[k.i]=k.x+h[k.i+1],h.splice(k.i+1,1);for(e=d+1;e<j;++e)i[e].i--}i.splice(d,1),j--,d--}else k.x=d3.interpolateNumber(parseFloat(c[0]),parseFloat(k.x))}while(d<j)k=i.pop(),h[k.i+1]==null?h[k.i]=k.x:(h[k.i]=k.x+h[k.i+1],h.splice(k.i+1,1)),j--;return h.length===1?h[0]==null?i[0].x:function(){return b}:function(a){for(d=0;d<j;++d)h[(k=i[d]).i]=k.x(a);return h.join(\"\")}},d3.interpolateTransform=function(a,b){var c=[],d=[],e,f=d3.transform(a),g=d3.transform(b),h=f.translate,i=g.translate,j=f.rotate,k=g.rotate,l=f.skew,m=g.skew,n=f.scale,o=g.scale;return h[0]!=i[0]||h[1]!=i[1]?(c.push(\"translate(\",null,\",\",null,\")\"),d.push({i:1,x:d3.interpolateNumber(h[0],i[0])},{i:3,x:d3.interpolateNumber(h[1],i[1])})):i[0]||i[1]?c.push(\"translate(\"+i+\")\"):c.push(\"\"),j!=k?(j-k>180?k+=360:k-j>180&&(j+=360),d.push({i:c.push(c.pop()+\"rotate(\",null,\")\")-2,x:d3.interpolateNumber(j,k)})):k&&c.push(c.pop()+\"rotate(\"+k+\")\"),l!=m?d.push({i:c.push(c.pop()+\"skewX(\",null,\")\")-2,x:d3.interpolateNumber(l,m)}):m&&c.push(c.pop()+\"skewX(\"+m+\")\"),n[0]!=o[0]||n[1]!=o[1]?(e=c.push(c.pop()+\"scale(\",null,\",\",null,\")\"),d.push({i:e-4,x:d3.interpolateNumber(n[0],o[0])},{i:e-2,x:d3.interpolateNumber(n[1],o[1])})):(o[0]!=1||o[1]!=1)&&c.push(c.pop()+\"scale(\"+o+\")\"),e=d.length,function(a){var b=-1,f;while(++b<e)c[(f=d[b]).i]=f.x(a);return c.join(\"\")}},d3.interpolateRgb=function(a,b){a=d3.rgb(a),b=d3.rgb(b);var c=a.r,d=a.g,e=a.b,f=b.r-c,g=b.g-d,h=b.b-e;return function(a){return\"#\"+bf(Math.round(c+f*a))+bf(Math.round(d+g*a))+bf(Math.round(e+h*a))}},d3.interpolateHsl=function(a,b){a=d3.hsl(a),b=d3.hsl(b);var c=a.h,d=a.s,e=a.l,f=b.h-c,g=b.s-d,h=b.l-e;return f>180?f-=360:f<-180&&(f+=360),function(a){return bm(c+f*a,d+g*a,e+h*a).toString()}},d3.interpolateArray=function(a,b){var c=[],d=[],e=a.length,f=b.length,g=Math.min(a.length,b.length),h;for(h=0;h<g;++h)c.push(d3.interpolate(a[h],b[h]));for(;h<e;++h)d[h]=a[h];for(;h<f;++h)d[h]=b[h];return function(a){for(h=0;h<g;++h)d[h]=c[h](a);return d}},d3.interpolateObject=function(a,b){var c={},d={},e;for(e in a)e in b?c[e]=ba(e)(a[e],b[e]):d[e]=a[e];for(e in b)e in a||(d[e]=b[e]);return function(a){for(e in c)d[e]=c[e](a);return d}};var _=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;d3.interpolators=[d3.interpolateObject,function(a,b){return b instanceof Array&&d3.interpolateArray(a,b)},function(a,b){return(typeof a==\"string\"||typeof b==\"string\")&&d3.interpolateString(a+\"\",b+\"\")},function(a,b){return(typeof b==\"string\"?bj.has(b)||/^(#|rgb\\(|hsl\\()/.test(b):b instanceof be||b instanceof bl)&&d3.interpolateRgb(a,b)},function(a,b){return!isNaN(a=+a)&&!isNaN(b=+b)&&d3.interpolateNumber(a,b)}],d3.rgb=function(a,b,c){return arguments.length===1?a instanceof be?bd(a.r,a.g,a.b):bg(\"\"+a,bd,bm):bd(~~a,~~b,~~c)},be.prototype.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b,e=30;return!b&&!c&&!d?bd(e,e,e):(b&&b<e&&(b=e),c&&c<e&&(c=e),d&&d<e&&(d=e),bd(Math.min(255,Math.floor(b/a)),Math.min(255,Math.floor(c/a)),Math.min(255,Math.floor(d/a))))},be.prototype.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),bd(Math.floor(a*this.r),Math.floor(a*this.g),Math.floor(a*this.b))},be.prototype.hsl=function(){return bh(this.r,this.g,this.b)},be.prototype.toString=function(){return\"#\"+bf(this.r)+bf(this.g)+bf(this.b)};var bj=d3.map({aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"});bj.forEach(function(a,b){bj.set(a,bg(b,bd,bm))}),d3.hsl=function(a,b,c){return arguments.length===1?a instanceof bl?bk(a.h,a.s,a.l):bg(\"\"+a,bh,bk):bk(+a,+b,+c)},bl.prototype.brighter=function(a){return a=Math.pow(.7,arguments.length?a:1),bk(this.h,this.s,this.l/a)},bl.prototype.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),bk(this.h,this.s,a*this.l)},bl.prototype.rgb=function(){return bm(this.h,this.s,this.l)},bl.prototype.toString=function(){return this.rgb().toString()};var bo=function(a,b){return b.querySelector(a)},bp=function(a,b){return b.querySelectorAll(a)},bq=document.documentElement,br=bq.matchesSelector||bq.webkitMatchesSelector||bq.mozMatchesSelector||bq.msMatchesSelector||bq.oMatchesSelector,bs=function(a,b){return br.call(a,b)};typeof Sizzle==\"function\"&&(bo=function(a,b){return Sizzle(a,b)[0]||null},bp=function(a,b){return Sizzle.uniqueSort(Sizzle(a,b))},bs=Sizzle.matchesSelector);var bt=[];d3.selection=function(){return bB},d3.selection.prototype=bt,bt.select=function(a){var b=[],c,d,e,f;typeof a!=\"function\"&&(a=bu(a));for(var g=-1,h=this.length;++g<h;){b.push(c=[]),c.parentNode=(e=this[g]).parentNode;for(var i=-1,j=e.length;++i<j;)(f=e[i])?(c.push(d=a.call(f,f.__data__,i)),d&&\"__data__\"in f&&(d.__data__=f.__data__)):c.push(null)}return bn(b)},bt.selectAll=function(a){var b=[],c,d;typeof a!=\"function\"&&(a=bv(a));for(var f=-1,g=this.length;++f<g;)for(var h=this[f],i=-1,j=h.length;++i<j;)if(d=h[i])b.push(c=e(a.call(d,d.__data__,i))),c.parentNode=d;return bn(b)},bt.attr=function(a,b){function d(){this.removeAttribute(a)}function e(){this.removeAttributeNS(a.space,a.local)}function f(){this.setAttribute(a,b)}function g(){this.setAttributeNS(a.space,a.local,b)}function h(){var c=b.apply(this,arguments);c==null?this.removeAttribute(a):this.setAttribute(a,c)}function i(){var c=b.apply(this,arguments);c==null?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}a=d3.ns.qualify(a);if(arguments.length<2){var c=this.node();return a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}return this.each(b==null?a.local?e:d:typeof b==\"function\"?a.local?i:h:a.local?g:f)},bt.classed=function(a,b){var c=v(a).split(\" \"),d=c.length,e=-1;if(arguments.length>1){while(++e<d)bw.call(this,c[e],b);return this}while(++e<d)if(!bw.call(this,c[e]))return!1;return!0},bt.style=function(a,b,c){function d(){this.style.removeProperty(a)}function e(){this.style.setProperty(a,b,c)}function f(){var d=b.apply(this,arguments);d==null?this.style.removeProperty(a):this.style.setProperty(a,d,c)}return arguments.length<3&&(c=\"\"),arguments.length<2?window.getComputedStyle(this.node(),null).getPropertyValue(a):this.each(b==null?d:typeof b==\"function\"?f:e)},bt.property=function(a,b){function c(){delete this[a]}function d(){this[a]=b}function e(){var c=b.apply(this,arguments);c==null?delete this[a]:this[a]=c}return arguments.length<2?this.node()[a]:this.each(b==null?c:typeof b==\"function\"?e:d)},bt.text=function(a){return arguments.length<1?this.node().textContent:this.each(typeof a==\"function\"?function(){var b=a.apply(this,arguments);this.textContent=b==null?\"\":b}:a==null?function(){this.textContent=\"\"}:function(){this.textContent=a})},bt.html=function(a){return arguments.length<1?this.node().innerHTML:this.each(typeof a==\"function\"?function(){var b=a.apply(this,arguments);this.innerHTML=b==null?\"\":b}:a==null?function(){this.innerHTML=\"\"}:function(){this.innerHTML=a})},bt.append=function(a){function b(){return this.appendChild(document.createElementNS(this.namespaceURI,a))}function c(){return this.appendChild(document.createElementNS(a.space,a.local))}return a=d3.ns.qualify(a),this.select(a.local?c:b)},bt.insert=function(a,b){function c(){return this.insertBefore(document.createElementNS(this.namespaceURI,a),bo(b,this))}function d(){return this.insertBefore(document.createElementNS(a.space,a.local),bo(b,this))}return a=d3.ns.qualify(a),this.select(a.local?d:c)},bt.remove=function(){return this.each(function(){var a=this.parentNode;a&&a.removeChild(this)})},bt.data=function(a,b){function g(a,c){var d,e=a.length,f=c.length,g=Math.min(e,f),l=Math.max(e,f),m=[],n=[],o=[],p,q;if(b){var r=new j,s=[],t,u=c.length;for(d=-1;++d<e;)t=b.call(p=a[d],p.__data__,d),r.has(t)?o[u++]=p:r.set(t,p),s.push(t);for(d=-1;++d<f;)t=b.call(c,q=c[d],d),r.has(t)?(m[d]=p=r.get(t),p.__data__=q,n[d]=o[d]=null):(n[d]=bx(q),m[d]=o[d]=null),r.remove(t);for(d=-1;++d<e;)r.has(s[d])&&(o[d]=a[d])}else{for(d=-1;++d<g;)p=a[d],q=c[d],p?(p.__data__=q,m[d]=p,n[d]=o[d]=null):(n[d]=bx(q),m[d]=o[d]=null);for(;d<f;++d)n[d]=bx(c[d]),m[d]=o[d]=null;for(;d<l;++d)o[d]=a[d],n[d]=m[d]=null}n.update=m,n.parentNode=m.parentNode=o.parentNode=a.parentNode,h.push(n),i.push(m),k.push(o)}var c=-1,d=this.length,e,f;if(!arguments.length){a=new Array(d=(e=this[0]).length);while(++c<d)if(f=e[c])a[c]=f.__data__;return a}var h=bC([]),i=bn([]),k=bn([]);if(typeof a==\"function\")while(++c<d)g(e=this[c],a.call(e,e.parentNode.__data__,c));else while(++c<d)g(e=this[c],a);return i.enter=function(){return h},i.exit=function(){return k},i},bt.datum=bt.map=function(a){return arguments.length<1?this.property(\"__data__\"):this.property(\"__data__\",a)},bt.filter=function(a){var b=[],c,d,e;typeof a!=\"function\"&&(a=by(a));for(var f=0,g=this.length;f<g;f++){b.push(c=[]),c.parentNode=(d=this[f]).parentNode;for(var h=0,i=d.length;h<i;h++)(e=d[h])&&a.call(e,e.__data__,h)&&c.push(e)}return bn(b)},bt.order=function(){for(var a=-1,b=this.length;++a<b;)for(var c=this[a],d=c.length-1,e=c[d],f;--d>=0;)if(f=c[d])e&&e!==f.nextSibling&&e.parentNode.insertBefore(f,e),e=f;return this},bt.sort=function(a){a=bz.apply(this,arguments);for(var b=-1,c=this.length;++b<c;)this[b].sort(a);return this.order()},bt.on=function(a,b,c){arguments.length<3&&(c=!1);var d=\"__on\"+a,e=a.indexOf(\".\");return e>0&&(a=a.substring(0,e)),arguments.length<2?(e=this.node()[d])&&e._:this.each(function(e,f){function i(a){var c=d3.event;d3.event=a;try{b.call(g,g.__data__,f)}finally{d3.event=c}}var g=this,h=g[d];h&&(g.removeEventListener(a,h,h.$),delete g[d]),b&&(g.addEventListener(a,g[d]=i,i.$=c),i._=b)})},bt.each=function(a){return bA(this,function(b,c,d){a.call(b,b.__data__,c,d)})},bt.call=function(a){return a.apply(this,(arguments[0]=this,arguments)),this},bt.empty=function(){return!this.node()},bt.node=function(a){for(var b=0,c=this.length;b<c;b++)for(var d=this[b],e=0,f=d.length;e<f;e++){var g=d[e];if(g)return g}return null},bt.transition=function(){var a=[],b,c;for(var d=-1,e=this.length;++d<e;){a.push(b=[]);for(var f=this[d],g=-1,h=f.length;++g<h;)b.push((c=f[g])?{node:c,delay:bO,duration:bP}:null)}return bE(a,bK||++bJ,Date.now())};var bB=bn([[document]]);bB[0].parentNode=bq,d3.select=function(a){return typeof a==\"string\"?bB.select(a):bn([[a]])},d3.selectAll=function(a){return typeof a==\"string\"?bB.selectAll(a):bn([e(a)])};var bD=[];d3.selection.enter=bC,d3.selection.enter.prototype=bD,bD.append=bt.append,bD.insert=bt.insert,bD.empty=bt.empty,bD.node=bt.node,bD.select=function(a){var b=[],c,d,e,f,g;for(var h=-1,i=this.length;++h<i;){e=(f=this[h]).update,b.push(c=[]),c.parentNode=f.parentNode;for(var j=-1,k=f.length;++j<k;)(g=f[j])?(c.push(e[j]=d=a.call(f.parentNode,g.__data__,j)),d.__data__=g.__data__):c.push(null)}return bn(b)};var bF={},bI=[],bJ=0,bK=0,bL=0,bM=250,bN=d3.ease(\"cubic-in-out\"),bO=bL,bP=bM,bQ=bN;bI.call=bt.call,d3.transition=function(a){return arguments.length?bK?a.transition():a:bB.transition()},d3.transition.prototype=bI,bI.select=function(a){var b=[],c,d,e;typeof a!=\"function\"&&(a=bu(a));for(var f=-1,g=this.length;++f<g;){b.push(c=[]);for(var h=this[f],i=-1,j=h.length;++i<j;)(e=h[i])&&(d=a.call(e.node,e.node.__data__,i))?(\"__data__\"in e.node&&(d.__data__=e.node.__data__),c.push({node:d,delay:e.delay,duration:e.duration})):c.push(null)}return bE(b,this.id,this.time).ease(this.ease())},bI.selectAll=function(a){var b=[],c,d,e;typeof a!=\"function\"&&(a=bv(a));for(var f=-1,g=this.length;++f<g;)for(var h=this[f],i=-1,j=h.length;++i<j;)if(e=h[i]){d=a.call(e.node,e.node.__data__,i),b.push(c=[]);for(var k=-1,l=d.length;++k<l;)c.push({node:d[k],delay:e.delay,duration:e.duration})}return bE(b,this.id,this.time).ease(this.ease())},bI.attr=function(a,b){return this.attrTween(a,bH(a,b))},bI.attrTween=function(a,b){function d(a,d){var e=b.call(this,a,d,this.getAttribute(c));return e===bF?(this.removeAttribute(c),null):e&&function(a){this.setAttribute(c,e(a))}}function e(a,d){var e=b.call(this,a,d,this.getAttributeNS(c.space,c.local));return e===bF?(this.removeAttributeNS(c.space,c.local),null):e&&function(a){this.setAttributeNS(c.space,c.local,e(a))}}var c=d3.ns.qualify(a);return this.tween(\"attr.\"+a,c.local?e:d)},bI.style=function(a,b,c){return arguments.length<3&&(c=\"\"),this.styleTween(a,bH(a,b),c)},bI.styleTween=function(a,b,c){return arguments.length<3&&(c=\"\"),this.tween(\"style.\"+a,function(d,e){var f=b.call(this,d,e,window.getComputedStyle(this,null).getPropertyValue(a));return f===bF?(this.style.removeProperty(a),null):f&&function(b){this.style.setProperty(a,f(b),c)}})},bI.text=function(a){return this.tween(\"text\",function(b,c){this.textContent=typeof a==\"function\"?a.call(this,b,c):a})},bI.remove=function(){return this.each(\"end.transition\",function(){var a;!this.__transition__&&(a=this.parentNode)&&a.removeChild(this)})},bI.delay=function(a){return bA(this,typeof a==\"function\"?function(b,c,d){b.delay=a.call(b=b.node,b.__data__,c,d)|0}:(a|=0,function(b){b.delay=a}))},bI.duration=function(a){return bA(this,typeof a==\"function\"?function(b,c,d){b.duration=Math.max(1,a.call(b=b.node,b.__data__,c,d)|0)}:(a=Math.max(1,a|0),function(b){b.duration=a}))},bI.transition=function(){return this.select(n)};var bS=null,bT,bU;d3.timer=function(a,b,c){var d=!1,e,f=bS;if(arguments.length<3){if(arguments.length<2)b=0;else if(!isFinite(b))return;c=Date.now()}while(f){if(f.callback===a){f.then=c,f.delay=b,d=!0;break}e=f,f=f.next}d||(bS={callback:a,then:c,delay:b,next:bS}),bT||(bU=clearTimeout(bU),bT=1,bX(bV))},d3.timer.flush=function(){var a,b=Date.now(),c=bS;while(c)a=b-c.then,c.delay||(c.flush=c.callback(a)),c=c.next;bW()};var bX=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){setTimeout(a,17)};d3.transform=function(a){var b=document.createElementNS(d3.ns.prefix.svg,\"g\"),c={a:1,b:0,c:0,d:1,e:0,f:0};return(d3.transform=function(a){b.setAttribute(\"transform\",a);var d=b.transform.baseVal.consolidate();return new bY(d?d.matrix:c)})(a)},bY.prototype.toString=function(){return\"translate(\"+this.translate+\")rotate(\"+this.rotate+\")skewX(\"+this.skew+\")scale(\"+this.scale+\")\"};var ca=180/Math.PI;d3.mouse=function(a){return cc(a,Z())};var cb=/WebKit/.test(navigator.userAgent)?-1:0;d3.touches=function(a,b){return arguments.length<2&&(b=Z().touches),b?e(b).map(function(b){var c=cc(a,b);return c.identifier=b.identifier,c}):[]},d3.scale={},d3.scale.linear=function(){return ci([0,1],[0,1],d3.interpolate,!1)},d3.scale.log=function(){return cq(d3.scale.linear(),cs)};var cr=d3.format(\".0e\");cs.pow=function(a){return Math.pow(10,a)},ct.pow=function(a){return-Math.pow(10,-a)},d3.scale.pow=function(){return cu(d3.scale.linear(),1)},d3.scale.sqrt=function(){return d3.scale.pow().exponent(.5)},d3.scale.ordinal=function(){return cw([],{t:\"range\",x:[]})},d3.scale.category10=function(){return d3.scale.ordinal().range(cx)},d3.scale.category20=function(){return d3.scale.ordinal().range(cy)},d3.scale.category20b=function(){return d3.scale.ordinal().range(cz)},d3.scale.category20c=function(){return d3.scale.ordinal().range(cA)};var cx=[\"#1f77b4\",\"#ff7f0e\",\"#2ca02c\",\"#d62728\",\"#9467bd\",\"#8c564b\",\"#e377c2\",\"#7f7f7f\",\"#bcbd22\",\"#17becf\"],cy=[\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#ffbb78\",\"#2ca02c\",\"#98df8a\",\"#d62728\",\"#ff9896\",\"#9467bd\",\"#c5b0d5\",\"#8c564b\",\"#c49c94\",\"#e377c2\",\"#f7b6d2\",\"#7f7f7f\",\"#c7c7c7\",\"#bcbd22\",\"#dbdb8d\",\"#17becf\",\"#9edae5\"],cz=[\"#393b79\",\"#5254a3\",\"#6b6ecf\",\"#9c9ede\",\"#637939\",\"#8ca252\",\"#b5cf6b\",\"#cedb9c\",\"#8c6d31\",\"#bd9e39\",\"#e7ba52\",\"#e7cb94\",\"#843c39\",\"#ad494a\",\"#d6616b\",\"#e7969c\",\"#7b4173\",\"#a55194\",\"#ce6dbd\",\"#de9ed6\"],cA=[\"#3182bd\",\"#6baed6\",\"#9ecae1\",\"#c6dbef\",\"#e6550d\",\"#fd8d3c\",\"#fdae6b\",\"#fdd0a2\",\"#31a354\",\"#74c476\",\"#a1d99b\",\"#c7e9c0\",\"#756bb1\",\"#9e9ac8\",\"#bcbddc\",\"#dadaeb\",\"#636363\",\"#969696\",\"#bdbdbd\",\"#d9d9d9\"];d3.scale.quantile=function(){return cB([],[])},d3.scale.quantize=function(){return cC(0,1,[0,1])},d3.scale.identity=function(){return cD([0,1])},d3.svg={},d3.svg.arc=function(){function e(){var e=a.apply(this,arguments),f=b.apply(this,arguments),g=c.apply(this,arguments)+cE,h=d.apply(this,arguments)+cE,i=(h<g&&(i=g,g=h,h=i),h-g),j=i<Math.PI?\"0\":\"1\",k=Math.cos(g),l=Math.sin(g),m=Math.cos(h),n=Math.sin(h);return i>=cF?e?\"M0,\"+f+\"A\"+f+\",\"+f+\" 0 1,1 0,\"+ -f+\"A\"+f+\",\"+f+\" 0 1,1 0,\"+f+\"M0,\"+e+\"A\"+e+\",\"+e+\" 0 1,0 0,\"+ -e+\"A\"+e+\",\"+e+\" 0 1,0 0,\"+e+\"Z\":\"M0,\"+f+\"A\"+f+\",\"+f+\" 0 1,1 0,\"+ -f+\"A\"+f+\",\"+f+\" 0 1,1 0,\"+f+\"Z\":e?\"M\"+f*k+\",\"+f*l+\"A\"+f+\",\"+f+\" 0 \"+j+\",1 \"+f*m+\",\"+f*n+\"L\"+e*m+\",\"+e*n+\"A\"+e+\",\"+e+\" 0 \"+j+\",0 \"+e*k+\",\"+e*l+\"Z\":\"M\"+f*k+\",\"+f*l+\"A\"+f+\",\"+f+\" 0 \"+j+\",1 \"+f*m+\",\"+f*n+\"L0,0\"+\"Z\"}var a=cG,b=cH,c=cI,d=cJ;return e.innerRadius=function(b){return arguments.length?(a=p(b),e):a},e.outerRadius=function(a){return arguments.length?(b=p(a),e):b},e.startAngle=function(a){return arguments.length?(c=p(a),e):c},e.endAngle=function(a){return arguments.length?(d=p(a),e):d},e.centroid=function(){var e=(a.apply(this,arguments)+b.apply(this,arguments))/2,f=(c.apply(this,arguments)+d.apply(this,arguments))/2+cE;return[Math.cos(f)*e,Math.sin(f)*e]},e};var cE=-Math.PI/2,cF=2*Math.PI-1e-6;d3.svg.line=function(){return cK(m)};var cN=\"linear\",cO=d3.map({linear:cP,\"step-before\":cQ,\"step-after\":cR,basis:cX,\"basis-open\":cY,\"basis-closed\":cZ,bundle:c$,cardinal:cU,\"cardinal-open\":cS,\"cardinal-closed\":cT,monotone:dh}),da=[0,2/3,1/3,0],db=[0,1/3,2/3,0],dc=[0,1/6,2/3,1/6];d3.svg.line.radial=function(){var a=cK(di);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a},cQ.reverse=cR,cR.reverse=cQ,d3.svg.area=function(){return dj(Object)},d3.svg.area.radial=function(){var a=dj(di);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a},d3.svg.chord=function(){function f(c,d){var e=g(this,a,c,d),f=g(this,b,c,d);return\"M\"+e.p0+i(e.r,e.p1,e.a1-e.a0)+(h(e,f)?j(e.r,e.p1,e.r,e.p0):j(e.r,e.p1,f.r,f.p0)+i(f.r,f.p1,f.a1-f.a0)+j(f.r,f.p1,e.r,e.p0))+\"Z\"}function g(a,b,f,g){var h=b.call(a,f,g),i=c.call(a,h,g),j=d.call(a,h,g)+cE,k=e.call(a,h,g)+cE;return{r:i,a0:j,a1:k,p0:[i*Math.cos(j),i*Math.sin(j)],p1:[i*Math.cos(k),i*Math.sin(k)]}}function h(a,b){return a.a0==b.a0&&a.a1==b.a1}function i(a,b,c){return\"A\"+a+\",\"+a+\" 0 \"+ +(c>Math.PI)+\",1 \"+b}function j(a,b,c,d){return\"Q 0,0 \"+d}var a=dk,b=dl,c=dm,d=cI,e=cJ;return f.radius=function(a){return arguments.length?(c=p(a),f):c},f.source=function(b){return arguments.length?(a=p(b),f):a},f.target=function(a){return arguments.length?(b=p(a),f):b},f.startAngle=function(a){return arguments.length?(d=p(a),f):d},f.endAngle=function(a){return arguments.length?(e=p(a),f):e},f},d3.svg.diagonal=function(){function d(d,e){var f=a.call(this,d,e),g=b.call(this,d,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];return i=i.map(c),\"M\"+i[0]+\"C\"+i[1]+\" \"+i[2]+\" \"+i[3]}var a=dk,b=dl,c=dq;return d.source=function(b){return arguments.length?(a=p(b),d):a},d.target=function(a){return arguments.length?(b=p(a),d):b},d.projection=function(a){return arguments.length?(c=a,d):c},d},d3.svg.diagonal\n.radial=function(){var a=d3.svg.diagonal(),b=dq,c=a.projection;return a.projection=function(a){return arguments.length?c(dr(b=a)):b},a},d3.svg.mouse=d3.mouse,d3.svg.touches=d3.touches,d3.svg.symbol=function(){function c(c,d){return(dv.get(a.call(this,c,d))||du)(b.call(this,c,d))}var a=dt,b=ds;return c.type=function(b){return arguments.length?(a=p(b),c):a},c.size=function(a){return arguments.length?(b=p(a),c):b},c};var dv=d3.map({circle:du,cross:function(a){var b=Math.sqrt(a/5)/2;return\"M\"+ -3*b+\",\"+ -b+\"H\"+ -b+\"V\"+ -3*b+\"H\"+b+\"V\"+ -b+\"H\"+3*b+\"V\"+b+\"H\"+b+\"V\"+3*b+\"H\"+ -b+\"V\"+b+\"H\"+ -3*b+\"Z\"},diamond:function(a){var b=Math.sqrt(a/(2*dx)),c=b*dx;return\"M0,\"+ -b+\"L\"+c+\",0\"+\" 0,\"+b+\" \"+ -c+\",0\"+\"Z\"},square:function(a){var b=Math.sqrt(a)/2;return\"M\"+ -b+\",\"+ -b+\"L\"+b+\",\"+ -b+\" \"+b+\",\"+b+\" \"+ -b+\",\"+b+\"Z\"},\"triangle-down\":function(a){var b=Math.sqrt(a/dw),c=b*dw/2;return\"M0,\"+c+\"L\"+b+\",\"+ -c+\" \"+ -b+\",\"+ -c+\"Z\"},\"triangle-up\":function(a){var b=Math.sqrt(a/dw),c=b*dw/2;return\"M0,\"+ -c+\"L\"+b+\",\"+c+\" \"+ -b+\",\"+c+\"Z\"}});d3.svg.symbolTypes=dv.keys();var dw=Math.sqrt(3),dx=Math.tan(30*Math.PI/180);d3.svg.axis=function(){function k(k){k.each(function(){var k=d3.select(this),l=h==null?a.ticks?a.ticks.apply(a,g):a.domain():h,m=i==null?a.tickFormat?a.tickFormat.apply(a,g):String:i,n=dA(a,l,j),o=k.selectAll(\".minor\").data(n,String),p=o.enter().insert(\"line\",\"g\").attr(\"class\",\"tick minor\").style(\"opacity\",1e-6),q=d3.transition(o.exit()).style(\"opacity\",1e-6).remove(),r=d3.transition(o).style(\"opacity\",1),s=k.selectAll(\"g\").data(l,String),t=s.enter().insert(\"g\",\"path\").style(\"opacity\",1e-6),u=d3.transition(s.exit()).style(\"opacity\",1e-6).remove(),v=d3.transition(s).style(\"opacity\",1),w,x=cf(a),y=k.selectAll(\".domain\").data([0]),z=y.enter().append(\"path\").attr(\"class\",\"domain\"),A=d3.transition(y),B=a.copy(),C=this.__chart__||B;this.__chart__=B,t.append(\"line\").attr(\"class\",\"tick\"),t.append(\"text\");var D=t.select(\"line\"),E=v.select(\"line\"),F=s.select(\"text\").text(m),G=t.select(\"text\"),H=v.select(\"text\");switch(b){case\"bottom\":w=dy,p.attr(\"y2\",d),r.attr(\"x2\",0).attr(\"y2\",d),D.attr(\"y2\",c),G.attr(\"y\",Math.max(c,0)+f),E.attr(\"x2\",0).attr(\"y2\",c),H.attr(\"x\",0).attr(\"y\",Math.max(c,0)+f),F.attr(\"dy\",\".71em\").attr(\"text-anchor\",\"middle\"),A.attr(\"d\",\"M\"+x[0]+\",\"+e+\"V0H\"+x[1]+\"V\"+e);break;case\"top\":w=dy,p.attr(\"y2\",-d),r.attr(\"x2\",0).attr(\"y2\",-d),D.attr(\"y2\",-c),G.attr(\"y\",-(Math.max(c,0)+f)),E.attr(\"x2\",0).attr(\"y2\",-c),H.attr(\"x\",0).attr(\"y\",-(Math.max(c,0)+f)),F.attr(\"dy\",\"0em\").attr(\"text-anchor\",\"middle\"),A.attr(\"d\",\"M\"+x[0]+\",\"+ -e+\"V0H\"+x[1]+\"V\"+ -e);break;case\"left\":w=dz,p.attr(\"x2\",-d),r.attr(\"x2\",-d).attr(\"y2\",0),D.attr(\"x2\",-c),G.attr(\"x\",-(Math.max(c,0)+f)),E.attr(\"x2\",-c).attr(\"y2\",0),H.attr(\"x\",-(Math.max(c,0)+f)).attr(\"y\",0),F.attr(\"dy\",\".32em\").attr(\"text-anchor\",\"end\"),A.attr(\"d\",\"M\"+ -e+\",\"+x[0]+\"H0V\"+x[1]+\"H\"+ -e);break;case\"right\":w=dz,p.attr(\"x2\",d),r.attr(\"x2\",d).attr(\"y2\",0),D.attr(\"x2\",c),G.attr(\"x\",Math.max(c,0)+f),E.attr(\"x2\",c).attr(\"y2\",0),H.attr(\"x\",Math.max(c,0)+f).attr(\"y\",0),F.attr(\"dy\",\".32em\").attr(\"text-anchor\",\"start\"),A.attr(\"d\",\"M\"+e+\",\"+x[0]+\"H0V\"+x[1]+\"H\"+e)}if(a.ticks)t.call(w,C),v.call(w,B),u.call(w,B),p.call(w,C),r.call(w,B),q.call(w,B);else{var I=B.rangeBand()/2,J=function(a){return B(a)+I};t.call(w,J),v.call(w,J)}})}var a=d3.scale.linear(),b=\"bottom\",c=6,d=6,e=6,f=3,g=[10],h=null,i,j=0;return k.scale=function(b){return arguments.length?(a=b,k):a},k.orient=function(a){return arguments.length?(b=a,k):b},k.ticks=function(){return arguments.length?(g=arguments,k):g},k.tickValues=function(a){return arguments.length?(h=a,k):h},k.tickFormat=function(a){return arguments.length?(i=a,k):i},k.tickSize=function(a,b,f){if(!arguments.length)return c;var g=arguments.length-1;return c=+a,d=g>1?+b:c,e=g>0?+arguments[g]:c,k},k.tickPadding=function(a){return arguments.length?(f=+a,k):f},k.tickSubdivide=function(a){return arguments.length?(j=+a,k):j},k},d3.svg.brush=function(){function g(a){a.each(function(){var a=d3.select(this),e=a.selectAll(\".background\").data([0]),f=a.selectAll(\".extent\").data([0]),l=a.selectAll(\".resize\").data(d,String),m;a.style(\"pointer-events\",\"all\").on(\"mousedown.brush\",k).on(\"touchstart.brush\",k),e.enter().append(\"rect\").attr(\"class\",\"background\").style(\"visibility\",\"hidden\").style(\"cursor\",\"crosshair\"),f.enter().append(\"rect\").attr(\"class\",\"extent\").style(\"cursor\",\"move\"),l.enter().append(\"g\").attr(\"class\",function(a){return\"resize \"+a}).style(\"cursor\",function(a){return dB[a]}).append(\"rect\").attr(\"x\",function(a){return/[ew]$/.test(a)?-3:null}).attr(\"y\",function(a){return/^[ns]/.test(a)?-3:null}).attr(\"width\",6).attr(\"height\",6).style(\"visibility\",\"hidden\"),l.style(\"display\",g.empty()?\"none\":null),l.exit().remove(),b&&(m=cf(b),e.attr(\"x\",m[0]).attr(\"width\",m[1]-m[0]),i(a)),c&&(m=cf(c),e.attr(\"y\",m[0]).attr(\"height\",m[1]-m[0]),j(a)),h(a)})}function h(a){a.selectAll(\".resize\").attr(\"transform\",function(a){return\"translate(\"+e[+/e$/.test(a)][0]+\",\"+e[+/^s/.test(a)][1]+\")\"})}function i(a){a.select(\".extent\").attr(\"x\",e[0][0]),a.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\",e[1][0]-e[0][0])}function j(a){a.select(\".extent\").attr(\"y\",e[0][1]),a.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\",e[1][1]-e[0][1])}function k(){function x(){var a=d3.event.changedTouches;return a?d3.touches(d,a)[0]:d3.mouse(d)}function y(){d3.event.keyCode==32&&(q||(r=null,s[0]-=e[1][0],s[1]-=e[1][1],q=2),Y())}function z(){d3.event.keyCode==32&&q==2&&(s[0]+=e[1][0],s[1]+=e[1][1],q=0,Y())}function A(){var a=x(),d=!1;t&&(a[0]+=t[0],a[1]+=t[1]),q||(d3.event.altKey?(r||(r=[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]),s[0]=e[+(a[0]<r[0])][0],s[1]=e[+(a[1]<r[1])][1]):r=null),o&&B(a,b,0)&&(i(m),d=!0),p&&B(a,c,1)&&(j(m),d=!0),d&&(h(m),l({type:\"brush\",mode:q?\"move\":\"resize\"}))}function B(a,b,c){var d=cf(b),g=d[0],h=d[1],i=s[c],j=e[1][c]-e[0][c],k,l;q&&(g-=i,h-=j+i),k=Math.max(g,Math.min(h,a[c])),q?l=(k+=i)+j:(r&&(i=Math.max(g,Math.min(h,2*r[c]-k))),i<k?(l=k,k=i):l=i);if(e[0][c]!==k||e[1][c]!==l)return f=null,e[0][c]=k,e[1][c]=l,!0}function C(){A(),m.style(\"pointer-events\",\"all\").selectAll(\".resize\").style(\"display\",g.empty()?\"none\":null),d3.select(\"body\").style(\"cursor\",null),u.on(\"mousemove.brush\",null).on(\"mouseup.brush\",null).on(\"touchmove.brush\",null).on(\"touchend.brush\",null).on(\"keydown.brush\",null).on(\"keyup.brush\",null),l({type:\"brushend\"}),Y()}var d=this,k=d3.select(d3.event.target),l=a.of(d,arguments),m=d3.select(d),n=k.datum(),o=!/^(n|s)$/.test(n)&&b,p=!/^(e|w)$/.test(n)&&c,q=k.classed(\"extent\"),r,s=x(),t,u=d3.select(window).on(\"mousemove.brush\",A).on(\"mouseup.brush\",C).on(\"touchmove.brush\",A).on(\"touchend.brush\",C).on(\"keydown.brush\",y).on(\"keyup.brush\",z);if(q)s[0]=e[0][0]-s[0],s[1]=e[0][1]-s[1];else if(n){var v=+/w$/.test(n),w=+/^n/.test(n);t=[e[1-v][0]-s[0],e[1-w][1]-s[1]],s[0]=e[v][0],s[1]=e[w][1]}else d3.event.altKey&&(r=s.slice());m.style(\"pointer-events\",\"none\").selectAll(\".resize\").style(\"display\",null),d3.select(\"body\").style(\"cursor\",k.style(\"cursor\")),l({type:\"brushstart\"}),A(),Y()}var a=$(g,\"brushstart\",\"brush\",\"brushend\"),b=null,c=null,d=dC[0],e=[[0,0],[0,0]],f;return g.x=function(a){return arguments.length?(b=a,d=dC[!b<<1|!c],g):b},g.y=function(a){return arguments.length?(c=a,d=dC[!b<<1|!c],g):c},g.extent=function(a){var d,h,i,j,k;return arguments.length?(f=[[0,0],[0,0]],b&&(d=a[0],h=a[1],c&&(d=d[0],h=h[0]),f[0][0]=d,f[1][0]=h,b.invert&&(d=b(d),h=b(h)),h<d&&(k=d,d=h,h=k),e[0][0]=d|0,e[1][0]=h|0),c&&(i=a[0],j=a[1],b&&(i=i[1],j=j[1]),f[0][1]=i,f[1][1]=j,c.invert&&(i=c(i),j=c(j)),j<i&&(k=i,i=j,j=k),e[0][1]=i|0,e[1][1]=j|0),g):(a=f||e,b&&(d=a[0][0],h=a[1][0],f||(d=e[0][0],h=e[1][0],b.invert&&(d=b.invert(d),h=b.invert(h)),h<d&&(k=d,d=h,h=k))),c&&(i=a[0][1],j=a[1][1],f||(i=e[0][1],j=e[1][1],c.invert&&(i=c.invert(i),j=c.invert(j)),j<i&&(k=i,i=j,j=k))),b&&c?[[d,i],[h,j]]:b?[d,h]:c&&[i,j])},g.clear=function(){return f=null,e[0][0]=e[0][1]=e[1][0]=e[1][1]=0,g},g.empty=function(){return b&&e[0][0]===e[1][0]||c&&e[0][1]===e[1][1]},d3.rebind(g,a,\"on\")};var dB={n:\"ns-resize\",e:\"ew-resize\",s:\"ns-resize\",w:\"ew-resize\",nw:\"nwse-resize\",ne:\"nesw-resize\",se:\"nwse-resize\",sw:\"nesw-resize\"},dC=[[\"n\",\"e\",\"s\",\"w\",\"nw\",\"ne\",\"se\",\"sw\"],[\"e\",\"w\"],[\"n\",\"s\"],[]];d3.behavior={},d3.behavior.drag=function(){function c(){this.on(\"mousedown.drag\",d).on(\"touchstart.drag\",d)}function d(){function j(){var a=c.parentNode,b=d3.event.changedTouches;return b?d3.touches(a,b)[0]:d3.mouse(a)}function k(){if(!c.parentNode)return l();var a=j(),b=a[0]-g[0],e=a[1]-g[1];h|=b|e,g=a,Y(),d({type:\"drag\",x:a[0]+f[0],y:a[1]+f[1],dx:b,dy:e})}function l(){d({type:\"dragend\"}),h&&(Y(),d3.event.target===e&&i.on(\"click.drag\",m,!0)),i.on(\"mousemove.drag\",null).on(\"touchmove.drag\",null).on(\"mouseup.drag\",null).on(\"touchend.drag\",null)}function m(){Y(),i.on(\"click.drag\",null)}var c=this,d=a.of(c,arguments),e=d3.event.target,f,g=j(),h=0,i=d3.select(window).on(\"mousemove.drag\",k).on(\"touchmove.drag\",k).on(\"mouseup.drag\",l,!0).on(\"touchend.drag\",l,!0);b?(f=b.apply(c,arguments),f=[f.x-g[0],f.y-g[1]]):f=[0,0],Y(),d({type:\"dragstart\"})}var a=$(c,\"drag\",\"dragstart\",\"dragend\"),b=null;return c.origin=function(a){return arguments.length?(b=a,c):b},d3.rebind(c,a,\"on\")},d3.behavior.zoom=function(){function l(){this.on(\"mousedown.zoom\",r).on(\"mousewheel.zoom\",s).on(\"mousemove.zoom\",t).on(\"DOMMouseScroll.zoom\",s).on(\"dblclick.zoom\",u).on(\"touchstart.zoom\",v).on(\"touchmove.zoom\",w).on(\"touchend.zoom\",v)}function m(b){return[(b[0]-a[0])/c,(b[1]-a[1])/c]}function n(b){return[b[0]*c+a[0],b[1]*c+a[1]]}function o(a){c=Math.max(e[0],Math.min(e[1],a))}function p(b,c){c=n(c),a[0]+=b[0]-c[0],a[1]+=b[1]-c[1]}function q(b){h&&h.domain(g.range().map(function(b){return(b-a[0])/c}).map(g.invert)),j&&j.domain(i.range().map(function(b){return(b-a[1])/c}).map(i.invert)),d3.event.preventDefault(),b({type:\"zoom\",scale:c,translate:a})}function r(){function h(){d=1,p(d3.mouse(a),g),q(b)}function i(){d&&Y(),e.on(\"mousemove.zoom\",null).on(\"mouseup.zoom\",null),d&&d3.event.target===c&&e.on(\"click.zoom\",j,!0)}function j(){Y(),e.on(\"click.zoom\",null)}var a=this,b=f.of(a,arguments),c=d3.event.target,d=0,e=d3.select(window).on(\"mousemove.zoom\",h).on(\"mouseup.zoom\",i),g=m(d3.mouse(a));window.focus(),Y()}function s(){b||(b=m(d3.mouse(this))),o(Math.pow(2,dF()*.002)*c),p(d3.mouse(this),b),q(f.of(this,arguments))}function t(){b=null}function u(){var a=d3.mouse(this),b=m(a);o(d3.event.shiftKey?c/2:c*2),p(a,b),q(f.of(this,arguments))}function v(){var a=d3.touches(this),e=Date.now();d=c,b={},a.forEach(function(a){b[a.identifier]=m(a)}),Y();if(a.length===1&&e-k<500){var g=a[0],h=m(a[0]);o(c*2),p(g,h),q(f.of(this,arguments))}k=e}function w(){var a=d3.touches(this),c=a[0],e=b[c.identifier];if(g=a[1]){var g,h=b[g.identifier];c=[(c[0]+g[0])/2,(c[1]+g[1])/2],e=[(e[0]+h[0])/2,(e[1]+h[1])/2],o(d3.event.scale*d)}p(c,e),q(f.of(this,arguments))}var a=[0,0],b,c=1,d,e=dE,f=$(l,\"zoom\"),g,h,i,j,k;return l.translate=function(b){return arguments.length?(a=b.map(Number),l):a},l.scale=function(a){return arguments.length?(c=+a,l):c},l.scaleExtent=function(a){return arguments.length?(e=a==null?dE:a.map(Number),l):e},l.x=function(a){return arguments.length?(h=a,g=a.copy(),l):h},l.y=function(a){return arguments.length?(j=a,i=a.copy(),l):j},d3.rebind(l,f,\"on\")};var dD,dE=[0,Infinity];d3.layout={},d3.layout.bundle=function(){return function(a){var b=[],c=-1,d=a.length;while(++c<d)b.push(dG(a[c]));return b}},d3.layout.chord=function(){function j(){var a={},j=[],l=d3.range(e),m=[],n,o,p,q,r;b=[],c=[],n=0,q=-1;while(++q<e){o=0,r=-1;while(++r<e)o+=d[q][r];j.push(o),m.push(d3.range(e)),n+=o}g&&l.sort(function(a,b){return g(j[a],j[b])}),h&&m.forEach(function(a,b){a.sort(function(a,c){return h(d[b][a],d[b][c])})}),n=(2*Math.PI-f*e)/n,o=0,q=-1;while(++q<e){p=o,r=-1;while(++r<e){var s=l[q],t=m[s][r],u=d[s][t],v=o,w=o+=u*n;a[s+\"-\"+t]={index:s,subindex:t,startAngle:v,endAngle:w,value:u}}c[s]={index:s,startAngle:p,endAngle:o,value:(o-p)/n},o+=f}q=-1;while(++q<e){r=q-1;while(++r<e){var x=a[q+\"-\"+r],y=a[r+\"-\"+q];(x.value||y.value)&&b.push(x.value<y.value?{source:y,target:x}:{source:x,target:y})}}i&&k()}function k(){b.sort(function(a,b){return i((a.source.value+a.target.value)/2,(b.source.value+b.target.value)/2)})}var a={},b,c,d,e,f=0,g,h,i;return a.matrix=function(f){return arguments.length?(e=(d=f)&&d.length,b=c=null,a):d},a.padding=function(d){return arguments.length?(f=d,b=c=null,a):f},a.sortGroups=function(d){return arguments.length?(g=d,b=c=null,a):g},a.sortSubgroups=function(c){return arguments.length?(h=c,b=null,a):h},a.sortChords=function(c){return arguments.length?(i=c,b&&k(),a):i},a.chords=function(){return b||j(),b},a.groups=function(){return c||j(),c},a},d3.layout.force=function(){function t(a){return function(b,c,d,e,f){if(b.point!==a){var g=b.cx-a.x,h=b.cy-a.y,i=1/Math.sqrt(g*g+h*h);if((e-c)*i<k){var j=b.charge*i*i;return a.px-=g*j,a.py-=h*j,!0}if(b.point&&isFinite(i)){var j=b.pointCharge*i*i;a.px-=g*j,a.py-=h*j}}return!b.charge}}function u(b){dL(dK=b),dJ=a}var a={},b=d3.dispatch(\"start\",\"tick\",\"end\"),c=[1,1],d,e,f=.9,g=dQ,h=dR,i=-30,j=.1,k=.8,l,n=[],o=[],q,r,s;return a.tick=function(){if((e*=.99)<.005)return b.end({type:\"end\",alpha:e=0}),!0;var a=n.length,d=o.length,g,h,k,l,m,p,u,v,w;for(h=0;h<d;++h){k=o[h],l=k.source,m=k.target,v=m.x-l.x,w=m.y-l.y;if(p=v*v+w*w)p=e*r[h]*((p=Math.sqrt(p))-q[h])/p,v*=p,w*=p,m.x-=v*(u=l.weight/(m.weight+l.weight)),m.y-=w*u,l.x+=v*(u=1-u),l.y+=w*u}if(u=e*j){v=c[0]/2,w=c[1]/2,h=-1;if(u)while(++h<a)k=n[h],k.x+=(v-k.x)*u,k.y+=(w-k.y)*u}if(i){dP(g=d3.geom.quadtree(n),e,s),h=-1;while(++h<a)(k=n[h]).fixed||g.visit(t(k))}h=-1;while(++h<a)k=n[h],k.fixed?(k.x=k.px,k.y=k.py):(k.x-=(k.px-(k.px=k.x))*f,k.y-=(k.py-(k.py=k.y))*f);b.tick({type:\"tick\",alpha:e})},a.nodes=function(b){return arguments.length?(n=b,a):n},a.links=function(b){return arguments.length?(o=b,a):o},a.size=function(b){return arguments.length?(c=b,a):c},a.linkDistance=function(b){return arguments.length?(g=p(b),a):g},a.distance=a.linkDistance,a.linkStrength=function(b){return arguments.length?(h=p(b),a):h},a.friction=function(b){return arguments.length?(f=b,a):f},a.charge=function(b){return arguments.length?(i=typeof b==\"function\"?b:+b,a):i},a.gravity=function(b){return arguments.length?(j=b,a):j},a.theta=function(b){return arguments.length?(k=b,a):k},a.alpha=function(c){return arguments.length?(e?c>0?e=c:e=0:c>0&&(b.start({type:\"start\",alpha:e=c}),d3.timer(a.tick)),a):e},a.start=function(){function p(a,c){var d=t(b),e=-1,f=d.length,g;while(++e<f)if(!isNaN(g=d[e][a]))return g;return Math.random()*c}function t(){if(!l){l=[];for(d=0;d<e;++d)l[d]=[];for(d=0;d<f;++d){var a=o[d];l[a.source.index].push(a.target),l[a.target.index].push(a.source)}}return l[b]}var b,d,e=n.length,f=o.length,j=c[0],k=c[1],l,m;for(b=0;b<e;++b)(m=n[b]).index=b,m.weight=0;q=[],r=[];for(b=0;b<f;++b)m=o[b],typeof m.source==\"number\"&&(m.source=n[m.source]),typeof m.target==\"number\"&&(m.target=n[m.target]),q[b]=g.call(this,m,b),r[b]=h.call(this,m,b),++m.source.weight,++m.target.weight;for(b=0;b<e;++b)m=n[b],isNaN(m.x)&&(m.x=p(\"x\",j)),isNaN(m.y)&&(m.y=p(\"y\",k)),isNaN(m.px)&&(m.px=m.x),isNaN(m.py)&&(m.py=m.y);s=[];if(typeof i==\"function\")for(b=0;b<e;++b)s[b]=+i.call(this,n[b],b);else for(b=0;b<e;++b)s[b]=i;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){d||(d=d3.behavior.drag().origin(m).on(\"dragstart\",u).on(\"drag\",dO).on(\"dragend\",dN)),this.on(\"mouseover.force\",dL).on(\"mouseout.force\",dM).call(d)},d3.rebind(a,b,\"on\")};var dJ,dK;d3.layout.partition=function(){function c(a,b,d,e){var f=a.children;a.x=b,a.y=a.depth*e,a.dx=d,a.dy=e;if(f&&(h=f.length)){var g=-1,h,i,j;d=a.value?d/a.value:0;while(++g<h)c(i=f[g],b,j=i.value*d,e),b+=j}}function d(a){var b=a.children,c=0;if(b&&(f=b.length)){var e=-1,f;while(++e<f)c=Math.max(c,d(b[e]))}return 1+c}function e(e,f){var g=a.call(this,e,f);return c(g[0],0,b[0],b[1]/d(g[0])),g}var a=d3.layout.hierarchy(),b=[1,1];return e.size=function(a){return arguments.length?(b=a,e):b},ee(e,a)},d3.layout.pie=function(){function e(f,g){var h=f.map(function(b,c){return+a.call(e,b,c)}),i=+(typeof c==\"function\"?c.apply(this,arguments):c),j=((typeof d==\"function\"?d.apply(this,arguments):d)-c)/d3.sum(h),k=d3.range(f.length);b!=null&&k.sort(b===dS?function(a,b){return h[b]-h[a]}:function(a,c){return b(f[a],f[c])});var l=[];return k.forEach(function(a){var b;l[a]={data:f[a],value:b=h[a],startAngle:i,endAngle:i+=b*j}}),l}var a=Number,b=dS,c=0,d=2*Math.PI;return e.value=function(b){return arguments.length?(a=b,e):a},e.sort=function(a){return arguments.length?(b=a,e):b},e.startAngle=function(a){return arguments.length?(c=a,e):c},e.endAngle=function(a){return arguments.length?(d=a,e):d},e};var dS={};d3.layout.stack=function(){function g(h,i){var j=h.map(function(b,c){return a.call(g,b,c)}),k=j.map(function(a,b){return a.map(function(a,b){return[e.call(g,a,b),f.call(g,a,b)]})}),l=b.call(g,k,i);j=d3.permute(j,l),k=d3.permute(k,l);var m=c.call(g,k,i),n=j.length,o=j[0].length,p,q,r;for(q=0;q<o;++q){d.call(g,j[0][q],r=m[q],k[0][q][1]);for(p=1;p<n;++p)d.call(g,j[p][q],r+=k[p-1][q][1],k[p][q][1])}return h}var a=m,b=dY,c=dZ,d=dV,e=dT,f=dU;return g.values=function(b){return arguments.length?(a=b,g):a},g.order=function(a){return arguments.length?(b=typeof a==\"function\"?a:dW.get(a)||dY,g):b},g.offset=function(a){return arguments.length?(c=typeof a==\"function\"?a:dX.get(a)||dZ,g):c},g.x=function(a){return arguments.length?(e=a,g):e},g.y=function(a){return arguments.length?(f=a,g):f},g.out=function(a){return arguments.length?(d=a,g):d},g};var dW=d3.map({\"inside-out\":function(a){var b=a.length,c,d,e=a.map(d$),f=a.map(d_),g=d3.range(b).sort(function(a,b){return e[a]-e[b]}),h=0,i=0,j=[],k=[];for(c=0;c<b;++c)d=g[c],h<i?(h+=f[d],j.push(d)):(i+=f[d],k.push(d));return k.reverse().concat(j)},reverse:function(a){return d3.range(a.length).reverse()},\"default\":dY}),dX=d3.map({silhouette:function(a){var b=a.length,c=a[0].length,d=[],e=0,f,g,h,i=[];for(g=0;g<c;++g){for(f=0,h=0;f<b;f++)h+=a[f][g][1];h>e&&(e=h),d.push(h)}for(g=0;g<c;++g)i[g]=(e-d[g])/2;return i},wiggle:function(a){var b=a.length,c=a[0],d=c.length,e=0,f,g,h,i,j,k,l,m,n,o=[];o[0]=m=n=0;for(g=1;g<d;++g){for(f=0,i=0;f<b;++f)i+=a[f][g][1];for(f=0,j=0,l=c[g][0]-c[g-1][0];f<b;++f){for(h=0,k=(a[f][g][1]-a[f][g-1][1])/(2*l);h<f;++h)k+=(a[h][g][1]-a[h][g-1][1])/l;j+=k*a[f][g][1]}o[g]=m-=i?j/i*l:0,m<n&&(n=m)}for(g=0;g<d;++g)o[g]-=n;return o},expand:function(a){var b=a.length,c=a[0].length,d=1/b,e,f,g,h=[];for(f=0;f<c;++f){for(e=0,g=0;e<b;e++)g+=a[e][f][1];if(g)for(e=0;e<b;e++)a[e][f][1]/=g;else for(e=0;e<b;e++)a[e][f][1]=d}for(f=0;f<c;++f)h[f]=0;return h},zero:dZ});d3.layout.histogram=function(){function e(e,f){var g=[],h=e.map(b,this),i=c.call(this,h,f),j=d.call(this,i,h,f),k,f=-1,l=h.length,m=j.length-1,n=a?1:1/l,o;while(++f<m)k=g[f]=[],k.dx=j[f+1]-(k.x=j[f]),k.y=0;if(m>0){f=-1;while(++f<l)o=h[f],o>=i[0]&&o<=i[1]&&(k=g[d3.bisect(j,o,1,m)-1],k.y+=n,k.push(e[f]))}return g}var a=!0,b=Number,c=ed,d=eb;return e.value=function(a){return arguments.length?(b=a,e):b},e.range=function(a){return arguments.length?(c=p(a),e):c},e.bins=function(a){return arguments.length?(d=typeof a==\"number\"?function(b){return ec(b,a)}:p(a),e):d},e.frequency=function(b){return arguments.length?(a=!!b,e):a},e},d3.layout.hierarchy=function(){function d(e,g,h){var i=b.call(f,e,g),j=ej?e:{data:e};j.depth=g,h.push(j);if(i&&(l=i.length)){var k=-1,l,m=j.children=[],n=0,o=g+1,p;while(++k<l)p=d(i[k],o,h),p.parent=j,m.push(p),n+=p.value;a&&m.sort(a),c&&(j.value=n)}else c&&(j.value=+c.call(f,e,g)||0);return j}function e(a,b){var d=a.children,g=0;if(d&&(i=d.length)){var h=-1,i,j=b+1;while(++h<i)g+=e(d[h],j)}else c&&(g=+c.call(f,ej?a:a.data,b)||0);return c&&(a.value=g),g}function f(a){var b=[];return d(a,0,b),b}var a=eh,b=ef,c=eg;return f.sort=function(b){return arguments.length?(a=b,f):a},f.children=function(a){return arguments.length?(b=a,f):b},f.value=function(a){return arguments.length?(c=a,f):c},f.revalue=function(a){return e(a,0),a},f};var ej=!1;d3.layout.pack=function(){function c(c,d){var e=a.call(this,c,d),f=e[0];f.x=0,f.y=0,er(f);var g=b[0],h=b[1],i=1/Math.max(2*f.r/g,2*f.r/h);return es(f,g/2,h/2,i),e}var a=d3.layout.hierarchy().sort(ek),b=[1,1];return c.size=function(a){return arguments.length?(b=a,c):b},ee(c,a)},d3.layout.cluster=function(){function d(d,e){var f=a.call(this,d,e),g=f[0],h,i=0,j,k;eF(g,function(a){var c=a.children;c&&c.length?(a.x=ev(c),a.y=eu(c)):(a.x=h?i+=b(a,h):0,a.y=0,h=a)});var l=ew(g),m=ex(g),n=l.x-b(l,m)/2,o=m.x+b(m,l)/2;return eF(g,function(a){a.x=(a.x-n)/(o-n)*c[0],a.y=(1-(g.y?a.y/g.y:1))*c[1]}),f}var a=d3.layout.hierarchy().sort(null).value(null),b=ey,c=[1,1];return d.separation=function(a){return arguments.length?(b=a,d):b},d.size=function(a){return arguments.length?(c=a,d):c},ee(d,a)},d3.layout.tree=function(){function d(d,e){function h(a,c){var d=a.children,e=a._tree;if(d&&(f=d.length)){var f,g=d[0],i,k=g,l,m=-1;while(++m<f)l=d[m],h(l,i),k=j(l,i,k),i=l;eG(a);var n=.5*(g._tree.prelim+l._tree.prelim);c?(e.prelim=c._tree.prelim+b(a,c),e.mod=e.prelim-n):e.prelim=n}else c&&(e.prelim=c._tree.prelim+b(a,c))}function i(a,b){a.x=a._tree.prelim+b;var c=a.children;if(c&&(e=c.length)){var d=-1,e;b+=a._tree.mod;while(++d<e)i(c[d],b)}}function j(a,c,d){if(c){var e=a,f=a,g=c,h=a.parent.children[0],i=e._tree.mod,j=f._tree.mod,k=g._tree.mod,l=h._tree.mod,m;while(g=eA(g),e=ez(e),g&&e)h=ez(h),f=eA(f),f._tree.ancestor=a,m=g._tree.prelim+k-e._tree.prelim-i+b(g,e),m>0&&(eH(eI(g,a,d),a,m),i+=m,j+=m),k+=g._tree.mod,i+=e._tree.mod,l+=h._tree.mod,j+=f._tree.mod;g&&!eA(f)&&(f._tree.thread=g,f._tree.mod+=k-j),e&&!ez(h)&&(h._tree.thread=e,h._tree.mod+=i-l,d=a)}return d}var f=a.call(this,d,e),g=f[0];eF(g,function(a,b){a._tree={ancestor:a,prelim:0,mod:0,change:0,shift:0,number:b?b._tree.number+1:0}}),h(g),i(g,-g._tree.prelim);var k=eB(g,eD),l=eB(g,eC),m=eB(g,eE),n=k.x-b(k,l)/2,o=l.x+b(l,k)/2,p=m.depth||1;return eF(g,function(a){a.x=(a.x-n)/(o-n)*c[0],a.y=a.depth/p*c[1],delete a._tree}),f}var a=d3.layout.hierarchy().sort(null).value(null),b=ey,c=[1,1];return d.separation=function(a){return arguments.length?(b=a,d):b},d.size=function(a){return arguments.length?(c=a,d):c},ee(d,a)},d3.layout.treemap=function(){function i(a,b){var c=-1,d=a.length,e,f;while(++c<d)f=(e=a[c]).value*(b<0?0:b),e.area=isNaN(f)||f<=0?0:f}function j(a){var b=a.children;if(b&&b.length){var c=e(a),d=[],f=b.slice(),g,h=Infinity,k,n=Math.min(c.dx,c.dy),o;i(f,c.dx*c.dy/a.value),d.area=0;while((o=f.length)>0)d.push(g=f[o-1]),d.area+=g.area,(k=l(d,n))<=h?(f.pop(),h=k):(d.area-=d.pop().area,m(d,n,c,!1),n=Math.min(c.dx,c.dy),d.length=d.area=0,h=Infinity);d.length&&(m(d,n,c,!0),d.length=d.area=0),b.forEach(j)}}function k(a){var b=a.children;if(b&&b.length){var c=e(a),d=b.slice(),f,g=[];i(d,c.dx*c.dy/a.value),g.area=0;while(f=d.pop())g.push(f),g.area+=f.area,f.z!=null&&(m(g,f.z?c.dx:c.dy,c,!d.length),g.length=g.area=0);b.forEach(k)}}function l(a,b){var c=a.area,d,e=0,f=Infinity,g=-1,i=a.length;while(++g<i){if(!(d=a[g].area))continue;d<f&&(f=d),d>e&&(e=d)}return c*=c,b*=b,c?Math.max(b*e*h/c,c/(b*f*h)):Infinity}function m(a,c,d,e){var f=-1,g=a.length,h=d.x,i=d.y,j=c?b(a.area/c):0,k;if(c==d.dx){if(e||j>d.dy)j=d.dy;while(++f<g)k=a[f],k.x=h,k.y=i,k.dy=j,h+=k.dx=Math.min(d.x+d.dx-h,j?b(k.area/j):0);k.z=!0,k.dx+=d.x+d.dx-h,d.y+=j,d.dy-=j}else{if(e||j>d.dx)j=d.dx;while(++f<g)k=a[f],k.x=h,k.y=i,k.dx=j,i+=k.dy=Math.min(d.y+d.dy-i,j?b(k.area/j):0);k.z=!1,k.dy+=d.y+d.dy-i,d.x+=j,d.dx-=j}}function n(b){var d=g||a(b),e=d[0];return e.x=0,e.y=0,e.dx=c[0],e.dy=c[1],g&&a.revalue(e),i([e],e.dx*e.dy/e.value),(g?k:j)(e),f&&(g=d),d}var a=d3.layout.hierarchy(),b=Math.round,c=[1,1],d=null,e=eJ,f=!1,g,h=.5*(1+Math.sqrt(5));return n.size=function(a){return arguments.length?(c=a,n):c},n.padding=function(a){function b(b){var c=a.call(n,b,b.depth);return c==null?eJ(b):eK(b,typeof c==\"number\"?[c,c,c,c]:c)}function c(b){return eK(b,a)}if(!arguments.length)return d;var f;return e=(d=a)==null?eJ:(f=typeof a)===\"function\"?b:f===\"number\"?(a=[a,a,a,a],c):c,n},n.round=function(a){return arguments.length?(b=a?Math.round:Number,n):b!=Number},n.sticky=function(a){return arguments.length?(f=a,g=null,n):f},n.ratio=function(a){return arguments.length?(h=a,n):h},ee(n,a)},d3.csv=function(a,b){d3.text(a,\"text/csv\",function(a){b(a&&d3.csv.parse(a))})},d3.csv.parse=function(a){var b;return d3.csv.parseRows(a,function(a,c){if(c){var d={},e=-1,f=b.length;while(++e<f)d[b[e]]=a[e];return d}return b=a,null})},d3.csv.parseRows=function(a,b){function j(){if(f.lastIndex>=a.length)return d;if(i)return i=!1,c;var b=f.lastIndex;if(a.charCodeAt(b)===34){var e=b;while(e++<a.length)if(a.charCodeAt(e)===34){if(a.charCodeAt(e+1)!==34)break;e++}f.lastIndex=e+2;var g=a.charCodeAt(e+1);return g===13?(i=!0,a.charCodeAt(e+2)===10&&f.lastIndex++):g===10&&(i=!0),a.substring(b+1,e).replace(/\"\"/g,'\"')}var h=f.exec(a);return h?(i=h[0].charCodeAt(0)!==44,a.substring(b,h.index)):(f.lastIndex=a.length,a.substring(b))}var c={},d={},e=[],f=/\\r\\n|[,\\r\\n]/g,g=0,h,i;f.lastIndex=0;while((h=j())!==d){var k=[];while(h!==c&&h!==d)k.push(h),h=j();if(b&&!(k=b(k,g++)))continue;e.push(k)}return e},d3.csv.format=function(a){return a.map(eL).join(\"\\n\")},d3.geo={};var eN=Math.PI/180;d3.geo.azimuthal=function(){function i(b){var f=b[0]*eN-e,i=b[1]*eN,j=Math.cos(f),k=Math.sin(f),l=Math.cos(i),m=Math.sin(i),n=a!==\"orthographic\"?h*m+g*l*j:null,o,p=a===\"stereographic\"?1/(1+n):a===\"gnomonic\"?1/n:a===\"equidistant\"?(o=Math.acos(n),o?o/Math.sin(o):0):a===\"equalarea\"?Math.sqrt(2/(1+n)):1,q=p*l*k,r=p*(h*l*j-g*m);return[c*q+d[0],c*r+d[1]]}var a=\"orthographic\",b,c=200,d=[480,250],e,f,g,h;return i.invert=function(b){var f=(b[0]-d[0])/c,i=(b[1]-d[1])/c,j=Math.sqrt(f*f+i*i),k=a===\"stereographic\"?2*Math.atan(j):a===\"gnomonic\"?Math.atan(j):a===\"equidistant\"?j:a===\"equalarea\"?2*Math.asin(.5*j):Math.asin(j),l=Math.sin(k),m=Math.cos(k);return[(e+Math.atan2(f*l,j*g*m+i*h*l))/eN,Math.asin(m*h-(j?i*l*g/j:0))/eN]},i.mode=function(b){return arguments.length?(a=b+\"\",i):a},i.origin=function(a){return arguments.length?(b=a,e=b[0]*eN,f=b[1]*eN,g=Math.cos(f),h=Math.sin(f),i):b},i.scale=function(a){return arguments.length?(c=+a,i):c},i.translate=function(a){return arguments.length?(d=[+a[0],+a[1]],i):d},i.origin([0,0])},d3.geo.albers=function(){function i(a){var b=f*(eN*a[0]-e),i=Math.sqrt(g-2*f*Math.sin(eN*a[1]))/f;return[c*i*Math.sin(b)+d[0],c*(i*Math.cos(b)-h)+d[1]]}function j(){var c=eN*b[0],d=eN*b[1],j=eN*a[1],k=Math.sin(c),l=Math.cos(c);return e=eN*a[0],f=.5*(k+Math.sin(d)),g=l*l+2*f*k,h=Math.sqrt(g-2*f*Math.sin(j))/f,i}var a=[-98,38],b=[29.5,45.5],c=1e3,d=[480,250],e,f,g,h;return i.invert=function(a){var b=(a[0]-d[0])/c,i=(a[1]-d[1])/c,j=h+i,k=Math.atan2(b,j),l=Math.sqrt(b*b+j*j);return[(e+k/f)/eN,Math.asin((g-l*l*f*f)/(2*f))/eN]},i.origin=function(b){return arguments.length?(a=[+b[0],+b[1]],j()):a},i.parallels=function(a){return arguments.length?(b=[+a[0],+a[1]],j()):b},i.scale=function(a){return arguments.length?(c=+a,i):c},i.translate=function(a){return arguments.length?(d=[+a[0],+a[1]],i):d},j()},d3.geo.albersUsa=function(){function e(e){var f=e[0],g=e[1];return(g>50?b:f<-140?c:g<21?d:a)(e)}var a=d3.geo.albers(),b=d3.geo.albers().origin([-160,60]).parallels([55,65]),c=d3.geo.albers().origin([-160,20]).parallels([8,18]),d=d3.geo.albers().origin([-60,10]).parallels([8,18]);return e.scale=function(f){return arguments.length?(a.scale(f),b.scale(f*.6),c.scale(f),d.scale(f*1.5),e.translate(a.translate())):a.scale()},e.translate=function(f){if(!arguments.length)return a.translate();var g=a.scale()/1e3,h=f[0],i=f[1];return a.translate(f),b.translate([h-400*g,i+170*g]),c.translate([h-190*g,i+200*g]),d.translate([h+580*g,i+430*g]),e},e.scale(a.scale())},d3.geo.bonne=function(){function g(g){var h=g[0]*eN-c,i=g[1]*eN-d;if(e){var j=f+e-i,k=h*Math.cos(i)/j;h=j*Math.sin(k),i=j*Math.cos(k)-f}else h*=Math.cos(i),i*=-1;return[a*h+b[0],a*i+b[1]]}var a=200,b=[480,250],c,d,e,f;return g.invert=function(d){var g=(d[0]-b[0])/a,h=(d[1]-b[1])/a;if(e){var i=f+h,j=Math.sqrt(g*g+i*i);h=f+e-j,g=c+j*Math.atan2(g,i)/Math.cos(h)}else h*=-1,g/=Math.cos(h);return[g/eN,h/eN]},g.parallel=function(a){return arguments.length?(f=1/Math.tan(e=a*eN),g):e/eN},g.origin=function(a){return arguments.length?(c=a[0]*eN,d=a[1]*eN,g):[c/eN,d/eN]},g.scale=function(b){return arguments.length?(a=+b,g):a},g.translate=function(a){return arguments.length?(b=[+a[0],+a[1]],g):b},g.origin([0,0]).parallel(45)},d3.geo.equirectangular=function(){function c(c){var d=c[0]/360,e=-c[1]/360;return[a*d+b[0],a*e+b[1]]}var a=500,b=[480,250];return c.invert=function(c){var d=(c[0]-b[0])/a,e=(c[1]-b[1])/a;return[360*d,-360*e]},c.scale=function(b){return arguments.length?(a=+b,c):a},c.translate=function(a){return arguments.length?(b=[+a[0],+a[1]],c):b},c},d3.geo.mercator=function(){function c(c){var d=c[0]/360,e=-(Math.log(Math.tan(Math.PI/4+c[1]*eN/2))/eN)/360;return[a*d+b[0],a*Math.max(-0.5,Math.min(.5,e))+b[1]]}var a=500,b=[480,250];return c.invert=function(c){var d=(c[0]-b[0])/a,e=(c[1]-b[1])/a;return[360*d,2*Math.atan(Math.exp(-360*e*eN))/eN-90]},c.scale=function(b){return arguments.length?(a=+b,c):a},c.translate=function(a){return arguments.length?(b=[+a[0],+a[1]],c):b},c},d3.geo.path=function(){function e(c,e){typeof a==\"function\"&&(b=eP(a.apply(this,arguments))),g(c);var f=d.length?d.join(\"\"):null;return d=[],f}function f(a){return c(a).join(\",\")}function i(a){var b=l(a[0]),c=0,d=a.length;while(++c<d)b-=l(a[c]);return b}function j(a){var b=d3.geom.polygon(a[0].map(c)),d=b.area(),e=b.centroid(d<0?(d*=-1,1):-1),f=e[0],g=e[1],h=d,i=0,j=a.length;while(++i<j)b=d3.geom.polygon(a[i].map(c)),d=b.area(),e=b.centroid(d<0?(d*=-1,1):-1),f-=e[0],g-=e[1],h-=d;return[f,g,6*h]}function l(a){return Math.abs(d3.geom.polygon(a.map(c)).area())}var a=4.5,b=eP(a),c=d3.geo.albersUsa(),d=[],g=eO({FeatureCollection:function(a){var b=a.features,c=-1,e=b.length;while(++c<e)d.push(g(b[c].geometry))},Feature:function(a){g(a.geometry)},Point:function(a){d.push(\"M\",f(a.coordinates),b)},MultiPoint:function(a){var c=a.coordinates,e=-1,g=c.length;while(++e<g)d.push(\"M\",f(c[e]),b)},LineString:function(a){var b=a.coordinates,c=-1,e=b.length;d.push(\"M\");while(++c<e)d.push(f(b[c]),\"L\");d.pop()},MultiLineString:function(a){var b=a.coordinates,c=-1,e=b.length,g,h,i;while(++c<e){g=b[c],h=-1,i=g.length,d.push(\"M\");while(++h<i)d.push(f(g[h]),\"L\");d.pop()}},Polygon:function(a){var b=a.coordinates,c=-1,e=b.length,g,h,i;while(++c<e){g=b[c],h=-1;if((i=g.length-1)>0){d.push(\"M\");while(++h<i)d.push(f(g[h]),\"L\");d[d.length-1]=\"Z\"}}},MultiPolygon:function(a){var b=a.coordinates,c=-1,e=b.length,g,h,i,j,k,l;while(++c<e){g=b[c],h=-1,i=g.length;while(++h<i){j=g[h],k=-1;if((l=j.length-1)>0){d.push(\"M\");while(++k<l)d.push(f(j[k]),\"L\");d[d.length-1]=\"Z\"}}}},GeometryCollection:function(a){var b=a.geometries,c=-1,e=b.length;while(++c<e)d.push(g(b[c]))}}),h=e.area=eO({FeatureCollection:function(a){var b=0,c=a.features,d=-1,e=c.length;while(++d<e)b+=h(c[d]);return b},Feature:function(a){return h(a.geometry)},Polygon:function(a){return i(a.coordinates)},MultiPolygon:function(a){var b=0,c=a.coordinates,d=-1,e=c.length;while(++d<e)b+=i(c[d]);return b},GeometryCollection:function(a){var b=0,c=a.geometries,d=-1,e=c.length;while(++d<e)b+=h(c[d]);return b}},0),k=e.centroid=eO({Feature:function(a){return k(a.geometry)},Polygon:function(a){var b=j(a.coordinates);return[b[0]/b[2],b[1]/b[2]]},MultiPolygon:function(a){var b=0,c=a.coordinates,d,e=0,f=0,g=0,h=-1,i=c.length;while(++h<i)d=j(c[h]),e+=d[0],f+=d[1],g+=d[2];return[e/g,f/g]}});return e.projection=function(a){return c=a,e},e.pointRadius=function(c){return typeof c==\"function\"?a=c:(a=+c,b=eP(a)),e},e},d3.geo.bounds=function(a){var b=Infinity,c=Infinity,d=-Infinity,e=-Infinity;return eQ(a,function(a,f){a<b&&(b=a),a>d&&(d=a),f<c&&(c=f),f>e&&(e=f)}),[[b,c],[d,e]]};var eR={Feature:eS,FeatureCollection:eT,GeometryCollection:eU,LineString:eV,MultiLineString:eW,MultiPoint:eV,MultiPolygon:eX,Point:eY,Polygon:eZ};d3.geo.circle=function(){function e(){}function f(a){return d.distance(a)<c}function h(a){var b=-1,e=a.length,f=[],g,h,j,k,l;while(++b<e)l=d.distance(j=a[b]),l<c?(h&&f.push(fb(h,j)((k-c)/(k-l))),f.push(j),g=h=null):(h=j,!g&&f.length&&(f.push(fb(f[f.length-1],h)((c-k)/(l-k))),g=h)),k=l;return g=a[0],h=f[0],h&&j[0]===g[0]&&j[1]===g[1]&&(j[0]!==h[0]||j[1]!==h[1])&&f.push(h),i(f)}function i(a){var b=0,c=a.length,e,f,g=c?[a[0]]:a,h,i=d.source();while(++b<c){h=d.source(a[b-1])(a[b]).coordinates;for(e=0,f=h.length;++e<f;)g.push(h[e])}return d.source(i),g}var a=[0,0],b=89.99,c=b*eN,d=d3.geo.greatArc().source(a).target(m);e.clip=function(b){return typeof a==\"function\"&&d.source(a.apply(this,arguments)),g(b)||null};var g=eO({FeatureCollection:function(a){var b=a.features.map(g)\n.filter(m);return b&&(a=Object.create(a),a.features=b,a)},Feature:function(a){var b=g(a.geometry);return b&&(a=Object.create(a),a.geometry=b,a)},Point:function(a){return f(a.coordinates)&&a},MultiPoint:function(a){var b=a.coordinates.filter(f);return b.length&&{type:a.type,coordinates:b}},LineString:function(a){var b=h(a.coordinates);return b.length&&(a=Object.create(a),a.coordinates=b,a)},MultiLineString:function(a){var b=a.coordinates.map(h).filter(function(a){return a.length});return b.length&&(a=Object.create(a),a.coordinates=b,a)},Polygon:function(a){var b=a.coordinates.map(h);return b[0].length&&(a=Object.create(a),a.coordinates=b,a)},MultiPolygon:function(a){var b=a.coordinates.map(function(a){return a.map(h)}).filter(function(a){return a[0].length});return b.length&&(a=Object.create(a),a.coordinates=b,a)},GeometryCollection:function(a){var b=a.geometries.map(g).filter(m);return b.length&&(a=Object.create(a),a.geometries=b,a)}});return e.origin=function(b){return arguments.length?(a=b,typeof a!=\"function\"&&d.source(a),e):a},e.angle=function(a){return arguments.length?(c=(b=+a)*eN,e):b},d3.rebind(e,d,\"precision\")},d3.geo.greatArc=function(){function g(){var a=g.distance.apply(this,arguments),c=0,h=e/a,i=[b];while((c+=h)<1)i.push(f(c));return i.push(d),{type:\"LineString\",coordinates:i}}var a=e$,b,c=e_,d,e=6*eN,f=fa();return g.distance=function(){return typeof a==\"function\"&&f.source(b=a.apply(this,arguments)),typeof c==\"function\"&&f.target(d=c.apply(this,arguments)),f.distance()},g.source=function(c){return arguments.length?(a=c,typeof a!=\"function\"&&f.source(b=a),g):a},g.target=function(a){return arguments.length?(c=a,typeof c!=\"function\"&&f.target(d=c),g):c},g.precision=function(a){return arguments.length?(e=a*eN,g):e/eN},g},d3.geo.greatCircle=d3.geo.circle,d3.geom={},d3.geom.contour=function(a,b){var c=b||fe(a),d=[],e=c[0],f=c[1],g=0,h=0,i=NaN,j=NaN,k=0;do k=0,a(e-1,f-1)&&(k+=1),a(e,f-1)&&(k+=2),a(e-1,f)&&(k+=4),a(e,f)&&(k+=8),k===6?(g=j===-1?-1:1,h=0):k===9?(g=0,h=i===1?-1:1):(g=fc[k],h=fd[k]),g!=i&&h!=j&&(d.push([e,f]),i=g,j=h),e+=g,f+=h;while(c[0]!=e||c[1]!=f);return d};var fc=[1,0,1,1,-1,0,-1,1,0,0,0,0,-1,0,-1,NaN],fd=[0,-1,0,0,0,-1,0,0,1,-1,1,1,0,-1,0,NaN];d3.geom.hull=function(a){if(a.length<3)return[];var b=a.length,c=b-1,d=[],e=[],f,g,h=0,i,j,k,l,m,n,o,p;for(f=1;f<b;++f)a[f][1]<a[h][1]?h=f:a[f][1]==a[h][1]&&(h=a[f][0]<a[h][0]?f:h);for(f=0;f<b;++f){if(f===h)continue;j=a[f][1]-a[h][1],i=a[f][0]-a[h][0],d.push({angle:Math.atan2(j,i),index:f})}d.sort(function(a,b){return a.angle-b.angle}),o=d[0].angle,n=d[0].index,m=0;for(f=1;f<c;++f)g=d[f].index,o==d[f].angle?(i=a[n][0]-a[h][0],j=a[n][1]-a[h][1],k=a[g][0]-a[h][0],l=a[g][1]-a[h][1],i*i+j*j>=k*k+l*l?d[f].index=-1:(d[m].index=-1,o=d[f].angle,m=f,n=g)):(o=d[f].angle,m=f,n=g);e.push(h);for(f=0,g=0;f<2;++g)d[g].index!==-1&&(e.push(d[g].index),f++);p=e.length;for(;g<c;++g){if(d[g].index===-1)continue;while(!ff(e[p-2],e[p-1],d[g].index,a))--p;e[p++]=d[g].index}var q=[];for(f=0;f<p;++f)q.push(a[e[f]]);return q},d3.geom.polygon=function(a){return a.area=function(){var b=0,c=a.length,d=a[c-1][0]*a[0][1],e=a[c-1][1]*a[0][0];while(++b<c)d+=a[b-1][0]*a[b][1],e+=a[b-1][1]*a[b][0];return(e-d)*.5},a.centroid=function(b){var c=-1,d=a.length,e=0,f=0,g,h=a[d-1],i;arguments.length||(b=-1/(6*a.area()));while(++c<d)g=h,h=a[c],i=g[0]*h[1]-h[0]*g[1],e+=(g[0]+h[0])*i,f+=(g[1]+h[1])*i;return[e*b,f*b]},a.clip=function(b){var c,d=-1,e=a.length,f,g,h=a[e-1],i,j,k;while(++d<e){c=b.slice(),b.length=0,i=a[d],j=c[(g=c.length)-1],f=-1;while(++f<g)k=c[f],fg(k,h,i)?(fg(j,h,i)||b.push(fh(j,k,h,i)),b.push(k)):fg(j,h,i)&&b.push(fh(j,k,h,i)),j=k;h=i}return b},a},d3.geom.voronoi=function(a){var b=a.map(function(){return[]});return fj(a,function(a){var c,d,e,f,g,h;a.a===1&&a.b>=0?(c=a.ep.r,d=a.ep.l):(c=a.ep.l,d=a.ep.r),a.a===1?(g=c?c.y:-1e6,e=a.c-a.b*g,h=d?d.y:1e6,f=a.c-a.b*h):(e=c?c.x:-1e6,g=a.c-a.a*e,f=d?d.x:1e6,h=a.c-a.a*f);var i=[e,g],j=[f,h];b[a.region.l.index].push(i,j),b[a.region.r.index].push(i,j)}),b.map(function(b,c){var d=a[c][0],e=a[c][1];return b.forEach(function(a){a.angle=Math.atan2(a[0]-d,a[1]-e)}),b.sort(function(a,b){return a.angle-b.angle}).filter(function(a,c){return!c||a.angle-b[c-1].angle>1e-10})})};var fi={l:\"r\",r:\"l\"};d3.geom.delaunay=function(a){var b=a.map(function(){return[]}),c=[];return fj(a,function(c){b[c.region.l.index].push(a[c.region.r.index])}),b.forEach(function(b,d){var e=a[d],f=e[0],g=e[1];b.forEach(function(a){a.angle=Math.atan2(a[0]-f,a[1]-g)}),b.sort(function(a,b){return a.angle-b.angle});for(var h=0,i=b.length-1;h<i;h++)c.push([e,b[h],b[h+1]])}),c},d3.geom.quadtree=function(a,b,c,d,e){function k(a,b,c,d,e,f){if(isNaN(b.x)||isNaN(b.y))return;if(a.leaf){var g=a.point;g?Math.abs(g.x-b.x)+Math.abs(g.y-b.y)<.01?l(a,b,c,d,e,f):(a.point=null,l(a,g,c,d,e,f),l(a,b,c,d,e,f)):a.point=b}else l(a,b,c,d,e,f)}function l(a,b,c,d,e,f){var g=(c+e)*.5,h=(d+f)*.5,i=b.x>=g,j=b.y>=h,l=(j<<1)+i;a.leaf=!1,a=a.nodes[l]||(a.nodes[l]=fk()),i?c=g:e=g,j?d=h:f=h,k(a,b,c,d,e,f)}var f,g=-1,h=a.length;h&&isNaN(a[0].x)&&(a=a.map(fm));if(arguments.length<5)if(arguments.length===3)e=d=c,c=b;else{b=c=Infinity,d=e=-Infinity;while(++g<h)f=a[g],f.x<b&&(b=f.x),f.y<c&&(c=f.y),f.x>d&&(d=f.x),f.y>e&&(e=f.y);var i=d-b,j=e-c;i>j?e=c+i:d=b+j}var m=fk();return m.add=function(a){k(m,a,b,c,d,e)},m.visit=function(a){fl(a,m,b,c,d,e)},a.forEach(m.add),m},d3.time={};var fn=Date;fo.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){fp.setUTCDate.apply(this._,arguments)},setDay:function(){fp.setUTCDay.apply(this._,arguments)},setFullYear:function(){fp.setUTCFullYear.apply(this._,arguments)},setHours:function(){fp.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){fp.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){fp.setUTCMinutes.apply(this._,arguments)},setMonth:function(){fp.setUTCMonth.apply(this._,arguments)},setSeconds:function(){fp.setUTCSeconds.apply(this._,arguments)},setTime:function(){fp.setTime.apply(this._,arguments)}};var fp=Date.prototype;d3.time.format=function(a){function c(c){var d=[],e=-1,f=0,g,h;while(++e<b)a.charCodeAt(e)==37&&(d.push(a.substring(f,e),(h=fv[g=a.charAt(++e)])?h(c):g),f=e+1);return d.push(a.substring(f,e)),d.join(\"\")}var b=a.length;return c.parse=function(b){var c={y:1900,m:0,d:1,H:0,M:0,S:0,L:0},d=fq(c,a,b,0);if(d!=b.length)return null;\"p\"in c&&(c.H=c.H%12+c.p*12);var e=new fn;return e.setFullYear(c.y,c.m,c.d),e.setHours(c.H,c.M,c.S,c.L),e},c.toString=function(){return a},c};var fr=d3.format(\"02d\"),fs=d3.format(\"03d\"),ft=d3.format(\"04d\"),fu=d3.format(\"2d\"),fv={a:function(a){return fB[a.getDay()].substring(0,3)},A:function(a){return fB[a.getDay()]},b:function(a){return fH[a.getMonth()].substring(0,3)},B:function(a){return fH[a.getMonth()]},c:d3.time.format(\"%a %b %e %H:%M:%S %Y\"),d:function(a){return fr(a.getDate())},e:function(a){return fu(a.getDate())},H:function(a){return fr(a.getHours())},I:function(a){return fr(a.getHours()%12||12)},j:function(a){return fs(1+d3.time.dayOfYear(a))},L:function(a){return fs(a.getMilliseconds())},m:function(a){return fr(a.getMonth()+1)},M:function(a){return fr(a.getMinutes())},p:function(a){return a.getHours()>=12?\"PM\":\"AM\"},S:function(a){return fr(a.getSeconds())},U:function(a){return fr(d3.time.sundayOfYear(a))},w:function(a){return a.getDay()},W:function(a){return fr(d3.time.mondayOfYear(a))},x:d3.time.format(\"%m/%d/%y\"),X:d3.time.format(\"%H:%M:%S\"),y:function(a){return fr(a.getFullYear()%100)},Y:function(a){return ft(a.getFullYear()%1e4)},Z:fX,\"%\":function(a){return\"%\"}},fw={a:fx,A:fy,b:fC,B:fE,c:fI,d:fP,e:fP,H:fQ,I:fQ,L:fT,m:fO,M:fR,p:fV,S:fS,x:fJ,X:fK,y:fM,Y:fL},fz=/^(?:sun|mon|tue|wed|thu|fri|sat)/i,fA=/^(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)/i,fB=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],fD=d3.map({jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11}),fF=/^(?:January|February|March|April|May|June|July|August|September|October|November|December)/ig,fG=d3.map({january:0,february:1,march:2,april:3,may:4,june:5,july:6,august:7,september:8,october:9,november:10,december:11}),fH=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],fU=/\\s*\\d+/,fW=d3.map({am:0,pm:1});d3.time.format.utc=function(a){function c(a){try{fn=fo;var c=new fn;return c._=a,b(c)}finally{fn=Date}}var b=d3.time.format(a);return c.parse=function(a){try{fn=fo;var c=b.parse(a);return c&&c._}finally{fn=Date}},c.toString=b.toString,c};var fY=d3.time.format.utc(\"%Y-%m-%dT%H:%M:%S.%LZ\");d3.time.format.iso=Date.prototype.toISOString?fZ:fY,fZ.parse=function(a){var b=new Date(a);return isNaN(b)?null:b},fZ.toString=fY.toString,d3.time.second=f$(function(a){return new fn(Math.floor(a/1e3)*1e3)},function(a,b){a.setTime(a.getTime()+Math.floor(b)*1e3)},function(a){return a.getSeconds()}),d3.time.seconds=d3.time.second.range,d3.time.seconds.utc=d3.time.second.utc.range,d3.time.minute=f$(function(a){return new fn(Math.floor(a/6e4)*6e4)},function(a,b){a.setTime(a.getTime()+Math.floor(b)*6e4)},function(a){return a.getMinutes()}),d3.time.minutes=d3.time.minute.range,d3.time.minutes.utc=d3.time.minute.utc.range,d3.time.hour=f$(function(a){var b=a.getTimezoneOffset()/60;return new fn((Math.floor(a/36e5-b)+b)*36e5)},function(a,b){a.setTime(a.getTime()+Math.floor(b)*36e5)},function(a){return a.getHours()}),d3.time.hours=d3.time.hour.range,d3.time.hours.utc=d3.time.hour.utc.range,d3.time.day=f$(function(a){return new fn(a.getFullYear(),a.getMonth(),a.getDate())},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1}),d3.time.days=d3.time.day.range,d3.time.days.utc=d3.time.day.utc.range,d3.time.dayOfYear=function(a){var b=d3.time.year(a);return Math.floor((a-b)/864e5-(a.getTimezoneOffset()-b.getTimezoneOffset())/1440)},fB.forEach(function(a,b){a=a.toLowerCase(),b=7-b;var c=d3.time[a]=f$(function(a){return(a=d3.time.day(a)).setDate(a.getDate()-(a.getDay()+b)%7),a},function(a,b){a.setDate(a.getDate()+Math.floor(b)*7)},function(a){var c=d3.time.year(a).getDay();return Math.floor((d3.time.dayOfYear(a)+(c+b)%7)/7)-(c!==b)});d3.time[a+\"s\"]=c.range,d3.time[a+\"s\"].utc=c.utc.range,d3.time[a+\"OfYear\"]=function(a){var c=d3.time.year(a).getDay();return Math.floor((d3.time.dayOfYear(a)+(c+b)%7)/7)}}),d3.time.week=d3.time.sunday,d3.time.weeks=d3.time.sunday.range,d3.time.weeks.utc=d3.time.sunday.utc.range,d3.time.weekOfYear=d3.time.sundayOfYear,d3.time.month=f$(function(a){return new fn(a.getFullYear(),a.getMonth(),1)},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()}),d3.time.months=d3.time.month.range,d3.time.months.utc=d3.time.month.utc.range,d3.time.year=f$(function(a){return new fn(a.getFullYear(),0,1)},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()}),d3.time.years=d3.time.year.range,d3.time.years.utc=d3.time.year.utc.range;var gg=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],gh=[[d3.time.second,1],[d3.time.second,5],[d3.time.second,15],[d3.time.second,30],[d3.time.minute,1],[d3.time.minute,5],[d3.time.minute,15],[d3.time.minute,30],[d3.time.hour,1],[d3.time.hour,3],[d3.time.hour,6],[d3.time.hour,12],[d3.time.day,1],[d3.time.day,2],[d3.time.week,1],[d3.time.month,1],[d3.time.month,3],[d3.time.year,1]],gi=[[d3.time.format(\"%Y\"),function(a){return!0}],[d3.time.format(\"%B\"),function(a){return a.getMonth()}],[d3.time.format(\"%b %d\"),function(a){return a.getDate()!=1}],[d3.time.format(\"%a %d\"),function(a){return a.getDay()&&a.getDate()!=1}],[d3.time.format(\"%I %p\"),function(a){return a.getHours()}],[d3.time.format(\"%I:%M\"),function(a){return a.getMinutes()}],[d3.time.format(\":%S\"),function(a){return a.getSeconds()}],[d3.time.format(\".%L\"),function(a){return a.getMilliseconds()}]],gj=d3.scale.linear(),gk=gd(gi);gh.year=function(a,b){return gj.domain(a.map(gf)).ticks(b).map(ge)},d3.time.scale=function(){return ga(d3.scale.linear(),gh,gk)};var gl=gh.map(function(a){return[a[0].utc,a[1]]}),gm=[[d3.time.format.utc(\"%Y\"),function(a){return!0}],[d3.time.format.utc(\"%B\"),function(a){return a.getUTCMonth()}],[d3.time.format.utc(\"%b %d\"),function(a){return a.getUTCDate()!=1}],[d3.time.format.utc(\"%a %d\"),function(a){return a.getUTCDay()&&a.getUTCDate()!=1}],[d3.time.format.utc(\"%I %p\"),function(a){return a.getUTCHours()}],[d3.time.format.utc(\"%I:%M\"),function(a){return a.getUTCMinutes()}],[d3.time.format.utc(\":%S\"),function(a){return a.getUTCSeconds()}],[d3.time.format.utc(\".%L\"),function(a){return a.getUTCMilliseconds()}]],gn=gd(gm);gl.year=function(a,b){return gj.domain(a.map(gp)).ticks(b).map(go)},d3.time.scale.utc=function(){return ga(d3.scale.linear(),gl,gn)}})();\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {jsPlumbUtil={isArray:function(b){return Object.prototype.toString.call(b)===\"[object Array]\"},isString:function(a){return typeof a===\"string\"},isObject:function(a){return Object.prototype.toString.call(a)===\"[object Object]\"},convertStyle:function(b,a){if(\"transparent\"===b){return b}var g=b,f=function(h){return h.length==1?\"0\"+h:h},c=function(h){return f(Number(h).toString(16))},d=/(rgb[a]?\\()(.*)(\\))/;if(b.match(d)){var e=b.match(d)[2].split(\",\");g=\"#\"+c(e[0])+c(e[1])+c(e[2]);if(!a&&e.length==4){g=g+c(e[3])}}return g},gradient:function(b,a){b=jsPlumbUtil.isArray(b)?b:[b.x,b.y];a=jsPlumbUtil.isArray(a)?a:[a.x,a.y];return(a[1]-b[1])/(a[0]-b[0])},normal:function(b,a){return -1/jsPlumbUtil.gradient(b,a)},lineLength:function(b,a){b=jsPlumbUtil.isArray(b)?b:[b.x,b.y];a=jsPlumbUtil.isArray(a)?a:[a.x,a.y];return Math.sqrt(Math.pow(a[1]-b[1],2)+Math.pow(a[0]-b[0],2))},segment:function(b,a){b=jsPlumbUtil.isArray(b)?b:[b.x,b.y];a=jsPlumbUtil.isArray(a)?a:[a.x,a.y];if(a[0]>b[0]){return(a[1]>b[1])?2:1}else{return(a[1]>b[1])?3:4}},intersects:function(f,e){var c=f.x,a=f.x+f.w,k=f.y,h=f.y+f.h,d=e.x,b=e.x+e.w,i=e.y,g=e.y+e.h;return((c<=d&&d<=a)&&(k<=i&&i<=h))||((c<=b&&b<=a)&&(k<=i&&i<=h))||((c<=d&&d<=a)&&(k<=g&&g<=h))||((c<=b&&d<=a)&&(k<=g&&g<=h))||((d<=c&&c<=b)&&(i<=k&&k<=g))||((d<=a&&a<=b)&&(i<=k&&k<=g))||((d<=c&&c<=b)&&(i<=h&&h<=g))||((d<=a&&c<=b)&&(i<=h&&h<=g))},segmentMultipliers:[null,[1,-1],[1,1],[-1,1],[-1,-1]],inverseSegmentMultipliers:[null,[-1,-1],[-1,1],[1,1],[1,-1]],pointOnLine:function(a,e,b){var d=jsPlumbUtil.gradient(a,e),i=jsPlumbUtil.segment(a,e),h=b>0?jsPlumbUtil.segmentMultipliers[i]:jsPlumbUtil.inverseSegmentMultipliers[i],c=Math.atan(d),f=Math.abs(b*Math.sin(c))*h[1],g=Math.abs(b*Math.cos(c))*h[0];return{x:a.x+g,y:a.y+f}},perpendicularLineTo:function(c,d,e){var b=jsPlumbUtil.gradient(c,d),f=Math.atan(-1/b),g=e/2*Math.sin(f),a=e/2*Math.cos(f);return[{x:d.x+a,y:d.y+g},{x:d.x-a,y:d.y-g}]},findWithFunction:function(b,d){if(b){for(var c=0;c<b.length;c++){if(d(b[c])){return c}}}return -1},indexOf:function(a,b){return jsPlumbUtil.findWithFunction(a,function(c){return c==b})},removeWithFunction:function(c,d){var b=jsPlumbUtil.findWithFunction(c,d);if(b>-1){c.splice(b,1)}return b!=-1},remove:function(b,c){var a=jsPlumbUtil.indexOf(b,c);if(a>-1){b.splice(a,1)}return a!=-1},addWithFunction:function(c,b,a){if(jsPlumbUtil.findWithFunction(c,a)==-1){c.push(b)}},addToList:function(d,b,c){var a=d[b];if(a==null){a=[],d[b]=a}a.push(c);return a},EventGenerator:function(){var c={},b=this;var a=[\"ready\"];this.bind=function(d,e){jsPlumbUtil.addToList(c,d,e);return b};this.fire=function(g,h,d){if(c[g]){for(var f=0;f<c[g].length;f++){if(jsPlumbUtil.findWithFunction(a,function(i){return i===g})!=-1){c[g][f](h,d)}else{try{c[g][f](h,d)}catch(k){jsPlumbUtil.log(\"jsPlumb: fire failed for event \"+g+\" : \"+k)}}}}return b};this.unbind=function(d){if(d){delete c[d]}else{delete c;c={}}return b};this.getListener=function(d){return c[d]}},logEnabled:true,log:function(){if(jsPlumbUtil.logEnabled&&typeof console!=\"undefined\"){try{var b=arguments[arguments.length-1];console.log(b)}catch(a){}}},group:function(a){if(jsPlumbUtil.logEnabled&&typeof console!=\"undefined\"){console.group(a)}},groupEnd:function(a){if(jsPlumbUtil.logEnabled&&typeof console!=\"undefined\"){console.groupEnd(a)}},time:function(a){if(jsPlumbUtil.logEnabled&&typeof console!=\"undefined\"){console.time(a)}},timeEnd:function(a){if(jsPlumbUtil.logEnabled&&typeof console!=\"undefined\"){console.timeEnd(a)}}};(function(){var A=!!document.createElement(\"canvas\").getContext,e=!!window.SVGAngle||document.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\",\"1.1\"),b=function(){if(b.vml==undefined){var L=document.body.appendChild(document.createElement(\"div\"));L.innerHTML='<v:shape id=\"vml_flag1\" adj=\"1\" />';var K=L.firstChild;K.style.behavior=\"url(#default#VML)\";b.vml=K?typeof K.adj==\"object\":true;L.parentNode.removeChild(L)}return b.vml};var i=jsPlumbUtil.findWithFunction,J=jsPlumbUtil.indexOf,D=jsPlumbUtil.removeWithFunction,m=jsPlumbUtil.remove,u=jsPlumbUtil.addWithFunction,l=jsPlumbUtil.addToList,n=jsPlumbUtil.isArray,C=jsPlumbUtil.isString,w=jsPlumbUtil.isObject;if(!window.console){window.console={time:function(){},timeEnd:function(){},group:function(){},groupEnd:function(){},log:function(){}}}var x=null,d=function(K,L){return p.CurrentLibrary.getAttribute(F(K),L)},f=function(L,M,K){p.CurrentLibrary.setAttribute(F(L),M,K)},B=function(L,K){p.CurrentLibrary.addClass(F(L),K)},k=function(L,K){return p.CurrentLibrary.hasClass(F(L),K)},o=function(L,K){p.CurrentLibrary.removeClass(F(L),K)},F=function(K){return p.CurrentLibrary.getElementObject(K)},t=function(K){return p.CurrentLibrary.getOffset(F(K))},a=function(K){return p.CurrentLibrary.getSize(F(K))},q=jsPlumbUtil.log,I=jsPlumbUtil.group,h=jsPlumbUtil.groupEnd,H=jsPlumbUtil.time,v=jsPlumbUtil.timeEnd,r=function(){return\"\"+(new Date()).getTime()},E=function(Z){var U=this,aa=arguments,R=false,O=Z.parameters||{},M=U.idPrefix,W=M+(new Date()).getTime(),V=null,ab=null;U._jsPlumb=Z._jsPlumb;U.getId=function(){return W};U.tooltip=Z.tooltip;U.hoverClass=Z.hoverClass||U._jsPlumb.Defaults.HoverClass||p.Defaults.HoverClass;jsPlumbUtil.EventGenerator.apply(this);this.clone=function(){var ac=new Object();U.constructor.apply(ac,aa);return ac};this.getParameter=function(ac){return O[ac]},this.getParameters=function(){return O},this.setParameter=function(ac,ad){O[ac]=ad},this.setParameters=function(ac){O=ac},this.overlayPlacements=[];var N=Z.beforeDetach;this.isDetachAllowed=function(ac){var ad=U._jsPlumb.checkCondition(\"beforeDetach\",ac);if(N){try{ad=N(ac)}catch(ae){q(\"jsPlumb: beforeDetach callback failed\",ae)}}return ad};var Q=Z.beforeDrop;this.isDropAllowed=function(ah,ae,af,ac,ad){var ag=U._jsPlumb.checkCondition(\"beforeDrop\",{sourceId:ah,targetId:ae,scope:af,connection:ac,dropEndpoint:ad});if(Q){try{ag=Q({sourceId:ah,targetId:ae,scope:af,connection:ac,dropEndpoint:ad})}catch(ai){q(\"jsPlumb: beforeDrop callback failed\",ai)}}return ag};var X=function(){if(V&&ab){var ac={};p.extend(ac,V);p.extend(ac,ab);delete U.hoverPaintStyle;if(ac.gradient&&V.fillStyle){delete ac.gradient}ab=ac}};this.setPaintStyle=function(ac,ad){V=ac;U.paintStyleInUse=V;X();if(!ad){U.repaint()}};this.getPaintStyle=function(){return V};this.setHoverPaintStyle=function(ac,ad){ab=ac;X();if(!ad){U.repaint()}};this.getHoverPaintStyle=function(){return ab};this.setHover=function(ac,ae,ad){if(!U._jsPlumb.currentlyDragging&&!U._jsPlumb.isHoverSuspended()){R=ac;if(U.hoverClass!=null&&U.canvas!=null){if(ac){L.addClass(U.canvas,U.hoverClass)}else{L.removeClass(U.canvas,U.hoverClass)}}if(ab!=null){U.paintStyleInUse=ac?ab:V;ad=ad||r();U.repaint({timestamp:ad,recalc:false})}if(U.getAttachedElements&&!ae){Y(ac,r(),U)}}};this.isHover=function(){return R};var L=p.CurrentLibrary,K=[\"click\",\"dblclick\",\"mouseenter\",\"mouseout\",\"mousemove\",\"mousedown\",\"mouseup\",\"contextmenu\"],T={mouseout:\"mouseexit\"},P=function(ae,af,ad){var ac=T[ad]||ad;L.bind(ae,ad,function(ag){af.fire(ac,af,ag)})},S=function(ae,ad){var ac=T[ad]||ad;L.unbind(ae,ad)};this.attachListeners=function(ad,ae){for(var ac=0;ac<K.length;ac++){P(ad,ae,K[ac])}};var Y=function(ag,af,ac){var ae=U.getAttachedElements();if(ae){for(var ad=0;ad<ae.length;ad++){if(!ac||ac!=ae[ad]){ae[ad].setHover(ag,true,af)}}}};this.reattachListenersForElement=function(ad){if(arguments.length>1){for(var ac=0;ac<K.length;ac++){S(ad,K[ac])}for(var ac=1;ac<arguments.length;ac++){U.attachListeners(ad,arguments[ac])}}}},z=function(P){E.apply(this,arguments);var U=this;this.overlays=[];var N=function(Z){var X=null;if(n(Z)){var W=Z[0],Y=p.extend({component:U,_jsPlumb:U._jsPlumb},Z[1]);if(Z.length==3){p.extend(Y,Z[2])}X=new p.Overlays[U._jsPlumb.getRenderMode()][W](Y);if(Y.events){for(var V in Y.events){X.bind(V,Y.events[V])}}}else{if(Z.constructor==String){X=new p.Overlays[U._jsPlumb.getRenderMode()][Z]({component:U,_jsPlumb:U._jsPlumb})}else{X=Z}}U.overlays.push(X)},O=function(Z){var V=U.defaultOverlayKeys||[],Y=Z.overlays,W=function(aa){return U._jsPlumb.Defaults[aa]||p.Defaults[aa]||[]};if(!Y){Y=[]}for(var X=0;X<V.length;X++){Y.unshift.apply(Y,W(V[X]))}return Y};var L=O(P);if(L){for(var Q=0;Q<L.length;Q++){N(L[Q])}}var K=function(X){var V=-1;for(var W=0;W<U.overlays.length;W++){if(X===U.overlays[W].id){V=W;break}}return V};this.addOverlay=function(V){N(V);U.repaint()};this.getOverlay=function(W){var V=K(W);return V>=0?U.overlays[V]:null};this.getOverlays=function(){return U.overlays};this.hideOverlay=function(W){var V=U.getOverlay(W);if(V){V.hide()}};this.hideOverlays=function(){for(var V=0;V<U.overlays.length;V++){U.overlays[V].hide()}};this.showOverlay=function(W){var V=U.getOverlay(W);if(V){V.show()}};this.showOverlays=function(){for(var V=0;V<U.overlays.length;V++){U.overlays[V].show()}};this.removeAllOverlays=function(){for(var V in U.overlays){U.overlays[V].cleanup()}U.overlays.splice(0,U.overlays.length);U.repaint()};this.removeOverlay=function(W){var V=K(W);if(V!=-1){var X=U.overlays[V];X.cleanup();U.overlays.splice(V,1)}};this.removeOverlays=function(){for(var V=0;V<arguments.length;V++){U.removeOverlay(arguments[V])}};var M=\"__label\",T=function(X){var V={cssClass:X.cssClass,labelStyle:this.labelStyle,id:M,component:U,_jsPlumb:U._jsPlumb},W=p.extend(V,X);return new p.Overlays[U._jsPlumb.getRenderMode()].Label(W)};if(P.label){var R=P.labelLocation||U.defaultLabelLocation||0.5,S=P.labelStyle||U._jsPlumb.Defaults.LabelStyle||p.Defaults.LabelStyle;this.overlays.push(T({label:P.label,location:R,labelStyle:S}))}this.setLabel=function(V){var W=U.getOverlay(M);if(!W){var X=V.constructor==String||V.constructor==Function?{label:V}:V;W=T(X);this.overlays.push(W)}else{if(V.constructor==String||V.constructor==Function){W.setLabel(V)}else{if(V.label){W.setLabel(V.label)}if(V.location){W.setLocation(V.location)}}}U.repaint()};this.getLabel=function(){var V=U.getOverlay(M);return V!=null?V.getLabel():null};this.getLabelOverlay=function(){return U.getOverlay(M)}},G=function(M,K,L){M.bind(\"click\",function(N,O){K.fire(\"click\",K,O)});M.bind(\"dblclick\",function(N,O){K.fire(\"dblclick\",K,O)});M.bind(\"contextmenu\",function(N,O){K.fire(\"contextmenu\",K,O)});M.bind(\"mouseenter\",function(N,O){if(!K.isHover()){L(true);K.fire(\"mouseenter\",K,O)}});M.bind(\"mouseexit\",function(N,O){if(K.isHover()){L(false);K.fire(\"mouseexit\",K,O)}})};var g=0,c=function(){var K=g+1;g++;return K};var y=function(L){this.Defaults={Anchor:\"BottomCenter\",Anchors:[null,null],ConnectionsDetachable:true,ConnectionOverlays:[],Connector:\"Bezier\",Container:null,DragOptions:{},DropOptions:{},Endpoint:\"Dot\",EndpointOverlays:[],Endpoints:[null,null],EndpointStyle:{fillStyle:\"#456\"},EndpointStyles:[null,null],EndpointHoverStyle:null,EndpointHoverStyles:[null,null],HoverPaintStyle:null,LabelStyle:{color:\"black\"},LogEnabled:false,Overlays:[],MaxConnections:1,PaintStyle:{lineWidth:8,strokeStyle:\"#456\"},RenderMode:\"svg\",Scope:\"jsPlumb_DefaultScope\"};if(L){p.extend(this.Defaults,L)}this.logEnabled=this.Defaults.LogEnabled;jsPlumbUtil.EventGenerator.apply(this);var bn=this,aL=c(),aO=bn.bind,aC={};for(var aB in this.Defaults){aC[aB]=this.Defaults[aB]}this.bind=function(bw,bv){if(\"ready\"===bw&&M){bv()}else{aO.apply(bn,[bw,bv])}};bn.importDefaults=function(bw){for(var bv in bw){bn.Defaults[bv]=bw[bv]}};bn.restoreDefaults=function(){bn.Defaults=p.extend({},aC)};var P=null,ar=function(){p.repaintEverything()},bp=true,aP=function(){if(bp){ar()}},be=null,M=false,aY={},aT={},aU={},ah={},br={},bf={},bm={},bu=[],ae=[],Q=this.Defaults.Scope,X=null,V=function(by,bw,bx){var bv=by[bw];if(bv==null){bv=[];by[bw]=bv}bv.push(bx);return bv},aW=function(bw,bv){if(bn.Defaults.Container){p.CurrentLibrary.appendElement(bw,bn.Defaults.Container)}else{if(!bv){document.body.appendChild(bw)}else{p.CurrentLibrary.appendElement(bw,bv)}}},aD=1,ak=function(){return\"\"+aD++},aI=function(bv){return bv._nodes?bv._nodes:bv},a6=false,bg=function(bw,bv){a6=bw;if(bv){bn.repaintEverything()}},ba=function(bx,bz,by){if(!a6){var bA=d(bx,\"id\"),bv=bn.dragManager.getElementsForDraggable(bA);if(by==null){by=r()}bn.anchorManager.redraw(bA,bz,by);if(bv){for(var bw in bv){bn.anchorManager.redraw(bv[bw].id,bz,by,bv[bw].offset)}}}},aG=function(bw,by){var bz=null;if(n(bw)){bz=[];for(var bv=0;bv<bw.length;bv++){var bx=F(bw[bv]),bA=d(bx,\"id\");bz.push(by(bx,bA))}}else{var bx=F(bw),bA=d(bx,\"id\");bz=by(bx,bA)}return bz},av=function(bv){return aU[bv]},bb=function(bz,bv,bC){var bE=bv==null?false:bv,bA=p.CurrentLibrary;if(bE){if(bA.isDragSupported(bz)&&!bA.isAlreadyDraggable(bz)){var bD=bC||bn.Defaults.DragOptions||p.Defaults.DragOptions;bD=p.extend({},bD);var bB=bA.dragEvents.drag,bw=bA.dragEvents.stop,by=bA.dragEvents.start;bD[by]=am(bD[by],function(){bn.setHoverSuspended(true)});bD[bB]=am(bD[bB],function(){var bF=bA.getUIPosition(arguments);ba(bz,bF);B(bz,\"jsPlumb_dragged\")});bD[bw]=am(bD[bw],function(){var bF=bA.getUIPosition(arguments);ba(bz,bF);o(bz,\"jsPlumb_dragged\");bn.setHoverSuspended(false)});var bx=K(bz);bm[bx]=true;var bE=bm[bx];bD.disabled=bE==null?false:!bE;bA.initDraggable(bz,bD,false);bn.dragManager.register(bz)}}},aA=function(bB,bw){var bv=p.extend({},bB);if(bw){p.extend(bv,bw)}if(bv.source&&bv.source.endpoint){bv.sourceEndpoint=bv.source}if(bv.source&&bv.target.endpoint){bv.targetEndpoint=bv.target}if(bB.uuids){bv.sourceEndpoint=av(bB.uuids[0]);bv.targetEndpoint=av(bB.uuids[1])}if(bv.sourceEndpoint&&bv.sourceEndpoint.isFull()){q(bn,\"could not add connection; source endpoint is full\");return}if(bv.targetEndpoint&&bv.targetEndpoint.isFull()){q(bn,\"could not add connection; target endpoint is full\");return}if(bv.sourceEndpoint&&bv.sourceEndpoint.connectorOverlays){bv.overlays=bv.overlays||[];for(var bz=0;bz<bv.sourceEndpoint.connectorOverlays.length;bz++){bv.overlays.push(bv.sourceEndpoint.connectorOverlays[bz])}}bv.tooltip=bB.tooltip;if(!bv.tooltip&&bv.sourceEndpoint&&bv.sourceEndpoint.connectorTooltip){bv.tooltip=bv.sourceEndpoint.connectorTooltip}if(bv.target&&!bv.target.endpoint&&!bv.targetEndpoint&&!bv.newConnection){var bA=K(bv.target),bC=aZ[bA],bx=aH[bA];if(bC){if(!aj[bA]){return}var by=bx!=null?bx:bn.addEndpoint(bv.target,bC);if(bh[bA]){aH[bA]=by}bv.targetEndpoint=by;by._makeTargetCreator=true}}if(bv.source&&!bv.source.endpoint&&!bv.sourceEndpoint&&!bv.newConnection){var bA=K(bv.source),bC=az[bA],bx=a5[bA];if(bC){if(!ac[bA]){return}var by=bx!=null?bx:bn.addEndpoint(bv.source,bC);if(a9[bA]){a5[bA]=by}bv.sourceEndpoint=by}}return bv},ad=function(bz){var by=bn.Defaults.ConnectionType||bn.getDefaultConnectionType(),bx=bn.Defaults.EndpointType||af,bw=p.CurrentLibrary.getParent;if(bz.container){bz.parent=bz.container}else{if(bz.sourceEndpoint){bz.parent=bz.sourceEndpoint.parent}else{if(bz.source.constructor==bx){bz.parent=bz.source.parent}else{bz.parent=bw(bz.source)}}}bz._jsPlumb=bn;var bv=new by(bz);bv.id=\"con_\"+ak();bs(\"click\",\"click\",bv);bs(\"dblclick\",\"dblclick\",bv);bs(\"contextmenu\",\"contextmenu\",bv);return bv},bt=function(bw,bx,bv){bx=bx||{};if(!bw.suspendedEndpoint){V(aY,bw.scope,bw)}if(!bx.doNotFireConnectionEvent&&bx.fireEvent!==false){bn.fire(\"jsPlumbConnection\",{connection:bw,source:bw.source,target:bw.target,sourceId:bw.sourceId,targetId:bw.targetId,sourceEndpoint:bw.endpoints[0],targetEndpoint:bw.endpoints[1]},bv)}bn.anchorManager.newConnection(bw);ba(bw.source)},bs=function(bv,bw,bx){bx.bind(bv,function(bz,by){bn.fire(bw,bx,by)})},aw=function(bx){if(bx.container){return bx.container}else{var bv=p.CurrentLibrary.getTagName(bx.source),bw=p.CurrentLibrary.getParent(bx.source);if(bv&&bv.toLowerCase()===\"td\"){return p.CurrentLibrary.getParent(bw)}else{return bw}}},aF=function(bx){var bw=bn.Defaults.EndpointType||af;bx.parent=aw(bx);bx._jsPlumb=bn;var bv=new bw(bx);bv.id=\"ep_\"+ak();bs(\"click\",\"endpointClick\",bv);bs(\"dblclick\",\"endpointDblClick\",bv);bs(\"contextmenu\",\"contextmenu\",bv);return bv},U=function(bx,bA,bz){var bv=aT[bx];if(bv&&bv.length){for(var by=0;by<bv.length;by++){for(var bw=0;bw<bv[by].connections.length;bw++){var bB=bA(bv[by].connections[bw]);if(bB){return}}if(bz){bz(bv[by])}}}},Y=function(bw){for(var bv in aT){U(bv,bw)}},au=function(bv,bw){if(bv!=null&&bv.parentNode!=null){bv.parentNode.removeChild(bv)}},aX=function(bx,bw){for(var bv=0;bv<bx.length;bv++){au(bx[bv],bw)}},bk=function(bw,bv){return aG(bw,function(bx,by){bm[by]=bv;if(p.CurrentLibrary.isDragSupported(bx)){p.CurrentLibrary.setDraggable(bx,bv)}})},a3=function(bx,by,bv){by=by===\"block\";var bw=null;if(bv){if(by){bw=function(bA){bA.setVisible(true,true,true)}}else{bw=function(bA){bA.setVisible(false,true,true)}}}var bz=d(bx,\"id\");U(bz,function(bB){if(by&&bv){var bA=bB.sourceId===bz?1:0;if(bB.endpoints[bA].isVisible()){bB.setVisible(true)}}else{bB.setVisible(by)}},bw)},bi=function(bv){return aG(bv,function(bx,bw){var by=bm[bw]==null?false:bm[bw];by=!by;bm[bw]=by;p.CurrentLibrary.setDraggable(bx,by);return by})},aQ=function(bv,bx){var bw=null;if(bx){bw=function(by){var bz=by.isVisible();by.setVisible(!bz)}}U(bv,function(bz){var by=bz.isVisible();bz.setVisible(!by)},bw)},W=function(bA){var by=bA.timestamp,bv=bA.recalc,bz=bA.offset,bw=bA.elId;if(!bv){if(by&&by===br[bw]){return ah[bw]}}if(bv||!bz){var bx=F(bw);if(bx!=null){ae[bw]=a(bx);ah[bw]=t(bx);br[bw]=by}}else{ah[bw]=bz;if(ae[bw]==null){var bx=F(bw);if(bx!=null){ae[bw]=a(bx)}}}if(ah[bw]&&!ah[bw].right){ah[bw].right=ah[bw].left+ae[bw][0];ah[bw].bottom=ah[bw].top+ae[bw][1];ah[bw].width=ae[bw][0];ah[bw].height=ae[bw][1];ah[bw].centerx=ah[bw].left+(ah[bw].width/2);ah[bw].centery=ah[bw].top+(ah[bw].height/2)}return ah[bw]},aN=function(bv){var bw=ah[bv];if(!bw){bw=W({elId:bv})}return{o:bw,s:ae[bv]}},K=function(bv,bw,by){var bx=F(bv);var bz=d(bx,\"id\");if(!bz||bz==\"undefined\"){if(arguments.length==2&&arguments[1]!=undefined){bz=bw}else{if(arguments.length==1||(arguments.length==3&&!arguments[2])){bz=\"jsPlumb_\"+aL+\"_\"+ak()}}f(bx,\"id\",bz)}return bz},am=function(bx,bv,bw){bx=bx||function(){};bv=bv||function(){};return function(){var by=null;try{by=bv.apply(this,arguments)}catch(bz){q(bn,\"jsPlumb function failed : \"+bz)}if(bw==null||(by!==bw)){try{bx.apply(this,arguments)}catch(bz){q(bn,\"wrapped function failed : \"+bz)}}return by}};this.connectorClass=\"_jsPlumb_connector\";this.endpointClass=\"_jsPlumb_endpoint\";this.overlayClass=\"_jsPlumb_overlay\";this.Anchors={};this.Connectors={canvas:{},svg:{},vml:{}};this.Endpoints={canvas:{},svg:{},vml:{}};this.Overlays={canvas:{},svg:{},vml:{}};this.addClass=function(bw,bv){return p.CurrentLibrary.addClass(bw,bv)};this.removeClass=function(bw,bv){return p.CurrentLibrary.removeClass(bw,bv)};this.hasClass=function(bw,bv){return p.CurrentLibrary.hasClass(bw,bv)};this.addEndpoint=function(bx,by,bH){bH=bH||{};var bw=p.extend({},bH);p.extend(bw,by);bw.endpoint=bw.endpoint||bn.Defaults.Endpoint||p.Defaults.Endpoint;bw.paintStyle=bw.paintStyle||bn.Defaults.EndpointStyle||p.Defaults.EndpointStyle;bx=aI(bx);var bz=[],bC=bx.length&&bx.constructor!=String?bx:[bx];for(var bA=0;bA<bC.length;bA++){var bF=F(bC[bA]),bv=K(bF);bw.source=bF;W({elId:bv});var bE=aF(bw);if(bw.parentAnchor){bE.parentAnchor=bw.parentAnchor}V(aT,bv,bE);var bD=ah[bv],bB=ae[bv];var bG=bE.anchor.compute({xy:[bD.left,bD.top],wh:bB,element:bE});bE.paint({anchorLoc:bG});bz.push(bE);bn.dragManager.endpointAdded(bF)}return bz.length==1?bz[0]:bz};this.addEndpoints=function(bz,bw,bv){var by=[];for(var bx=0;bx<bw.length;bx++){var bA=bn.addEndpoint(bz,bw[bx],bv);if(n(bA)){Array.prototype.push.apply(by,bA)}else{by.push(bA)}}return by};this.animate=function(bx,bw,bv){var by=F(bx),bB=d(bx,\"id\");bv=bv||{};var bA=p.CurrentLibrary.dragEvents.step;var bz=p.CurrentLibrary.dragEvents.complete;bv[bA]=am(bv[bA],function(){bn.repaint(bB)});bv[bz]=am(bv[bz],function(){bn.repaint(bB)});p.CurrentLibrary.animate(by,bw,bv)};this.checkCondition=function(bx,bz){var bv=bn.getListener(bx);var by=true;if(bv&&bv.length>0){try{for(var bw=0;bw<bv.length;bw++){by=by&&bv[bw](bz)}}catch(bA){q(bn,\"cannot check condition [\"+bx+\"]\"+bA)}}return by};this.connect=function(by,bw){var bv=aA(by,bw);if(bv){if(bv.deleteEndpointsOnDetach==null){bv.deleteEndpointsOnDetach=true}var bx=ad(bv);bt(bx,bv);return bx}};this.deleteEndpoint=function(bw){var bB=(typeof bw==\"string\")?aU[bw]:bw;if(bB){var by=bB.getUuid();if(by){aU[by]=null}bB.detachAll();aX(bB.endpoint.getDisplayElements());bn.anchorManager.deleteEndpoint(bB);for(var bA in aT){var bv=aT[bA];if(bv){var bz=[];for(var bx=0;bx<bv.length;bx++){if(bv[bx]!=bB){bz.push(bv[bx])}}aT[bA]=bz}}bn.dragManager.endpointDeleted(bB)}};this.deleteEveryEndpoint=function(){for(var bx in aT){var bv=aT[bx];if(bv&&bv.length){for(var bw=0;bw<bv.length;bw++){bn.deleteEndpoint(bv[bw])}}}delete aT;aT={};delete aU;aU={}};var a7=function(by,bA,bv){var bx=bn.Defaults.ConnectionType||bn.getDefaultConnectionType(),bw=by.constructor==bx,bz=bw?{connection:by,source:by.source,target:by.target,sourceId:by.sourceId,targetId:by.targetId,sourceEndpoint:by.endpoints[0],targetEndpoint:by.endpoints[1]}:by;if(bA){bn.fire(\"jsPlumbConnectionDetached\",bz,bv)}bn.anchorManager.connectionDetached(bz)},a4=function(bv){bn.fire(\"connectionDrag\",bv)},aR=function(bv){bn.fire(\"connectionDragStop\",bv)};this.detach=function(){if(arguments.length==0){return}var bz=bn.Defaults.ConnectionType||bn.getDefaultConnectionType(),bA=arguments[0].constructor==bz,by=arguments.length==2?bA?(arguments[1]||{}):arguments[0]:arguments[0],bD=(by.fireEvent!==false),bx=by.forceDetach,bw=bA?arguments[0]:by.connection;if(bw){if(bx||(bw.isDetachAllowed(bw)&&bw.endpoints[0].isDetachAllowed(bw)&&bw.endpoints[1].isDetachAllowed(bw))){if(bx||bn.checkCondition(\"beforeDetach\",bw)){bw.endpoints[0].detach(bw,false,true,bD)}}}else{var bv=p.extend({},by);if(bv.uuids){av(bv.uuids[0]).detachFrom(av(bv.uuids[1]),bD)}else{if(bv.sourceEndpoint&&bv.targetEndpoint){bv.sourceEndpoint.detachFrom(bv.targetEndpoint)}else{var bC=K(bv.source),bB=K(bv.target);U(bC,function(bE){if((bE.sourceId==bC&&bE.targetId==bB)||(bE.targetId==bC&&bE.sourceId==bB)){if(bn.checkCondition(\"beforeDetach\",bE)){bE.endpoints[0].detach(bE,false,true,bD)}}})}}}};this.detachAllConnections=function(bx,by){by=by||{};bx=F(bx);var bz=d(bx,\"id\"),bv=aT[bz];if(bv&&bv.length){for(var bw=0;bw<bv.length;bw++){bv[bw].detachAll(by.fireEvent)}}};this.detachEveryConnection=function(bx){bx=bx||{};for(var by in aT){var bv=aT[by];if(bv&&bv.length){for(var bw=0;bw<bv.length;bw++){bv[bw].detachAll(bx.fireEvent)}}}delete aY;aY={}};this.draggable=function(bx,bv){if(typeof bx==\"object\"&&bx.length){for(var bw=0;bw<bx.length;bw++){var by=F(bx[bw]);if(by){bb(by,true,bv)}}}else{if(bx._nodes){for(var bw=0;bw<bx._nodes.length;bw++){var by=F(bx._nodes[bw]);if(by){bb(by,true,bv)}}}else{var by=F(bx);if(by){bb(by,true,bv)}}}};this.extend=function(bw,bv){return p.CurrentLibrary.extend(bw,bv)};this.getDefaultEndpointType=function(){return af};this.getDefaultConnectionType=function(){return ax};var bq=function(bz,by,bw,bv){for(var bx=0;bx<bz.length;bx++){bz[bx][by].apply(bz[bx],bw)}return bv(bz)},S=function(bz,by,bw){var bv=[];for(var bx=0;bx<bz.length;bx++){bv.push([bz[bx][by].apply(bz[bx],bw),bz[bx]])}return bv},an=function(bx,bw,bv){return function(){return bq(bx,bw,arguments,bv)}},ay=function(bw,bv){return function(){return S(bw,bv,arguments)}};this.getConnections=function(bH,bw){if(!bH){bH={}}else{if(bH.constructor==String){bH={scope:bH}}}var bE=function(bI){var bJ=[];if(bI){if(typeof bI==\"string\"){if(bI===\"*\"){return bI}bJ.push(bI)}else{bJ=bI}}return bJ},bF=bH.scope||bn.getDefaultScope(),bD=bE(bF),bv=bE(bH.source),bB=bE(bH.target),bx=function(bJ,bI){if(bJ===\"*\"){return true}return bJ.length>0?J(bJ,bI)!=-1:true},bA=(!bw&&bD.length>1)?{}:[],bG=function(bJ,bK){if(!bw&&bD.length>1){var bI=bA[bJ];if(bI==null){bI=[];bA[bJ]=bI}bI.push(bK)}else{bA.push(bK)}};for(var bz in aY){if(bx(bD,bz)){for(var by=0;by<aY[bz].length;by++){var bC=aY[bz][by];if(bx(bv,bC.sourceId)&&bx(bB,bC.targetId)){bG(bz,bC)}}}}return bA};var aK=function(bv){return{setHover:an(bv,\"setHover\",aK),removeAllOverlays:an(bv,\"removeAllOverlays\",aK),setLabel:an(bv,\"setLabel\",aK),addOverlay:an(bv,\"addOverlay\",aK),removeOverlay:an(bv,\"removeOverlay\",aK),removeOverlays:an(bv,\"removeOverlays\",aK),showOverlay:an(bv,\"showOverlay\",aK),hideOverlay:an(bv,\"hideOverlay\",aK),showOverlays:an(bv,\"showOverlays\",aK),hideOverlays:an(bv,\"hideOverlays\",aK),setPaintStyle:an(bv,\"setPaintStyle\",aK),setHoverPaintStyle:an(bv,\"setHoverPaintStyle\",aK),setDetachable:an(bv,\"setDetachable\",aK),setConnector:an(bv,\"setConnector\",aK),setParameter:an(bv,\"setParameter\",aK),setParameters:an(bv,\"setParameters\",aK),detach:function(){for(var bw=0;bw<bv.length;bw++){bn.detach(bv[bw])}},getLabel:ay(bv,\"getLabel\"),getOverlay:ay(bv,\"getOverlay\"),isHover:ay(bv,\"isHover\"),isDetachable:ay(bv,\"isDetachable\"),getParameter:ay(bv,\"getParameter\"),getParameters:ay(bv,\"getParameters\"),getPaintStyle:ay(bv,\"getPaintStyle\"),getHoverPaintStyle:ay(bv,\"getHoverPaintStyle\"),length:bv.length,each:function(bx){for(var bw=0;bw<bv.length;bw++){bx(bv[bw])}return aK(bv)},get:function(bw){return bv[bw]}}};this.select=function(bv){bv=bv||{};bv.scope=bv.scope||\"*\";var bw=bn.getConnections(bv,true);return aK(bw)};this.getAllConnections=function(){return aY};this.getDefaultScope=function(){return Q};this.getEndpoint=av;this.getEndpoints=function(bv){return aT[K(bv)]};this.getId=K;this.getOffset=function(bw){var bv=ah[bw];return W({elId:bw})};this.getSelector=function(bv){return p.CurrentLibrary.getSelector(bv)};this.getSize=function(bw){var bv=ae[bw];if(!bv){W({elId:bw})}return ae[bw]};this.appendElement=aW;var aS=false;this.isHoverSuspended=function(){return aS};this.setHoverSuspended=function(bv){aS=bv};this.isCanvasAvailable=function(){return A};this.isSVGAvailable=function(){return e};this.isVMLAvailable=b;this.hide=function(bv,bw){a3(bv,\"none\",bw)};this.idstamp=ak;this.init=function(){if(!M){bn.setRenderMode(bn.Defaults.RenderMode);var bv=function(bw){p.CurrentLibrary.bind(document,bw,function(bC){if(!bn.currentlyDragging&&X==p.CANVAS){for(var bB in aY){var bD=aY[bB];for(var bz=0;bz<bD.length;bz++){var by=bD[bz].connector[bw](bC);if(by){return}}}for(var bA in aT){var bx=aT[bA];for(var bz=0;bz<bx.length;bz++){if(bx[bz].endpoint[bw](bC)){return}}}}})};bv(\"click\");bv(\"dblclick\");bv(\"mousemove\");bv(\"mousedown\");bv(\"mouseup\");bv(\"contextmenu\");M=true;bn.fire(\"ready\")}};this.log=P;this.jsPlumbUIComponent=E;this.makeAnchor=function(){if(arguments.length==0){return null}var bA=arguments[0],bx=arguments[1],bw=arguments[2],by=null;if(bA.compute&&bA.getOrientation){return bA}else{if(typeof bA==\"string\"){by=p.Anchors[arguments[0]]({elementId:bx,jsPlumbInstance:bn})}else{if(n(bA)){if(n(bA[0])||C(bA[0])){if(bA.length==2&&C(bA[0])&&w(bA[1])){var bv=p.extend({elementId:bx,jsPlumbInstance:bn},bA[1]);by=p.Anchors[bA[0]](bv)}else{by=new aq(bA,null,bx)}}else{var bz={x:bA[0],y:bA[1],orientation:(bA.length>=4)?[bA[2],bA[3]]:[0,0],offsets:(bA.length==6)?[bA[4],bA[5]]:[0,0],elementId:bx};by=new aa(bz);by.clone=function(){return new aa(bz)}}}}}if(!by.id){by.id=\"anchor_\"+ak()}return by};this.makeAnchors=function(by,bw,bv){var bz=[];for(var bx=0;bx<by.length;bx++){if(typeof by[bx]==\"string\"){bz.push(p.Anchors[by[bx]]({elementId:bw,jsPlumbInstance:bv}))}else{if(n(by[bx])){bz.push(bn.makeAnchor(by[bx],bw,bv))}}}return bz};this.makeDynamicAnchor=function(bv,bw){return new aq(bv,bw)};var aZ={},aH={},bh={},ap={},ab=function(bv,bw){bv.paintStyle=bv.paintStyle||bn.Defaults.EndpointStyles[bw]||bn.Defaults.EndpointStyle||p.Defaults.EndpointStyles[bw]||p.Defaults.EndpointStyle;bv.hoverPaintStyle=bv.hoverPaintStyle||bn.Defaults.EndpointHoverStyles[bw]||bn.Defaults.EndpointHoverStyle||p.Defaults.EndpointHoverStyles[bw]||p.Defaults.EndpointHoverStyle;bv.anchor=bv.anchor||bn.Defaults.Anchors[bw]||bn.Defaults.Anchor||p.Defaults.Anchors[bw]||p.Defaults.Anchor;bv.endpoint=bv.endpoint||bn.Defaults.Endpoints[bw]||bn.Defaults.Endpoint||p.Defaults.Endpoints[bw]||p.Defaults.Endpoint};this.makeTarget=function(by,bz,bF){var bw=p.extend({_jsPlumb:bn},bF);p.extend(bw,bz);ab(bw,1);var bD=p.CurrentLibrary,bE=bw.scope||bn.Defaults.Scope,bA=!(bw.deleteEndpointsOnDetach===false),bx=bw.maxConnections||-1,bv=function(bK){var bI=K(bK);aZ[bI]=bw;bh[bI]=bw.uniqueEndpoint,ap[bI]=bx,aj[bI]=true,proxyComponent=new E(bw);var bH=p.extend({},bw.dropOptions||{}),bG=function(){var bN=p.CurrentLibrary.getDropEvent(arguments),bP=bn.select({target:bI}).length;if(!aj[bI]||ap[bI]>0&&bP>=ap[bI]){console.log(\"target element \"+bI+\" is full.\");return false}bn.currentlyDragging=false;var bZ=F(bD.getDragObject(arguments)),bO=d(bZ,\"dragId\"),bX=d(bZ,\"originalScope\"),bU=bf[bO],bM=bU.endpoints[0],bL=bw.endpoint?p.extend({},bw.endpoint):{};bM.anchor.locked=false;if(bX){bD.setDragScope(bZ,bX)}var bS=proxyComponent.isDropAllowed(bU.sourceId,K(bK),bU.scope,bU,null);if(bU.endpointsToDeleteOnDetach){if(bM===bU.endpointsToDeleteOnDetach[0]){bU.endpointsToDeleteOnDetach[0]=null}else{if(bM===bU.endpointsToDeleteOnDetach[1]){bU.endpointsToDeleteOnDetach[1]=null}}}if(bU.suspendedEndpoint){bU.targetId=bU.suspendedEndpoint.elementId;bU.target=bD.getElementObject(bU.suspendedEndpoint.elementId);bU.endpoints[1]=bU.suspendedEndpoint}if(bS){bM.detach(bU,false,true,false);var bY=aH[bI]||bn.addEndpoint(bK,bw);if(bw.uniqueEndpoint){aH[bI]=bY}bY._makeTargetCreator=true;if(bY.anchor.positionFinder!=null){var bV=bD.getUIPosition(arguments),bR=bD.getOffset(bK),bW=bD.getSize(bK),bQ=bY.anchor.positionFinder(bV,bR,bW,bY.anchor.constructorParams);bY.anchor.x=bQ[0];bY.anchor.y=bQ[1]}var bT=bn.connect({source:bM,target:bY,scope:bX,previousConnection:bU,container:bU.parent,deleteEndpointsOnDetach:bA,doNotFireConnectionEvent:bM.endpointWillMoveAfterConnection});if(bU.endpoints[1]._makeTargetCreator&&bU.endpoints[1].connections.length<2){bn.deleteEndpoint(bU.endpoints[1])}if(bA){bT.endpointsToDeleteOnDetach=[bM,bY]}bT.repaint()}else{if(bU.suspendedEndpoint){if(bM.isReattach){bU.setHover(false);bU.floatingAnchorIndex=null;bU.suspendedEndpoint.addConnection(bU);bn.repaint(bM.elementId)}else{bM.detach(bU,false,true,true,bN)}}}};var bJ=bD.dragEvents.drop;bH.scope=bH.scope||bE;bH[bJ]=am(bH[bJ],bG);bD.initDroppable(bK,bH,true)};by=aI(by);var bC=by.length&&by.constructor!=String?by:[by];for(var bB=0;bB<bC.length;bB++){bv(F(bC[bB]))}return bn};this.unmakeTarget=function(bw,bx){bw=p.CurrentLibrary.getElementObject(bw);var bv=K(bw);if(!bx){delete aZ[bv];delete bh[bv];delete ap[bv];delete aj[bv]}return bn};this.makeTargets=function(bx,by,bv){for(var bw=0;bw<bx.length;bw++){bn.makeTarget(bx[bw],by,bv)}};var az={},a5={},a9={},ac={},N={},aj={};this.makeSource=function(bz,bC,bv){var bA=p.extend({},bv);p.extend(bA,bC);ab(bA,0);var by=p.CurrentLibrary,bB=function(bK){var bE=K(bK),bL=bA.parent,bD=bL!=null?bn.getId(by.getElementObject(bL)):bE;az[bD]=bA;a9[bD]=bA.uniqueEndpoint;ac[bD]=true;var bF=by.dragEvents.stop,bJ=by.dragEvents.drag,bM=p.extend({},bA.dragOptions||{}),bH=bM.drag,bN=bM.stop,bO=null,bI=false;bM.scope=bM.scope||bA.scope;bM[bJ]=am(bM[bJ],function(){if(bH){bH.apply(this,arguments)}bI=false});bM[bF]=am(bM[bF],function(){if(bN){bN.apply(this,arguments)}bn.currentlyDragging=false;if(bO.connections.length==0){bn.deleteEndpoint(bO)}else{by.unbind(bO.canvas,\"mousedown\");var bQ=bA.anchor||bn.Defaults.Anchor,bR=bO.anchor,bT=bO.connections[0];bO.anchor=bn.makeAnchor(bQ,bE,bn);if(bA.parent){var bS=by.getElementObject(bA.parent);if(bS){var bP=bO.elementId;var bU=bA.container||bn.Defaults.Container||p.Defaults.Container;bO.setElement(bS,bU);bO.endpointWillMoveAfterConnection=false;bn.anchorManager.rehomeEndpoint(bP,bS);bT.previousConnection=null;D(aY[bT.scope],function(bV){return bV.id===bT.id});bn.anchorManager.connectionDetached({sourceId:bT.sourceId,targetId:bT.targetId,connection:bT});bt(bT)}}bO.repaint();bn.repaint(bO.elementId);bn.repaint(bT.targetId)}});var bG=function(bS){if(!ac[bD]){return}if(bC.filter){var bP=bC.filter(by.getOriginalEvent(bS),bK);if(bP===false){return}}var bW=W({elId:bE});var bV=((bS.pageX||bS.page.x)-bW.left)/bW.width,bU=((bS.pageY||bS.page.y)-bW.top)/bW.height,b0=bV,bZ=bU;if(bA.parent){var bT=by.getElementObject(bA.parent),bR=K(bT);bW=W({elId:bR});b0=((bS.pageX||bS.page.x)-bW.left)/bW.width,bZ=((bS.pageY||bS.page.y)-bW.top)/bW.height}var bY={};p.extend(bY,bA);bY.isSource=true;bY.anchor=[bV,bU,0,0];bY.parentAnchor=[b0,bZ,0,0];bY.dragOptions=bM;if(bA.parent){var bQ=bY.container||bn.Defaults.Container||p.Defaults.Container;if(bQ){bY.container=bQ}else{bY.container=p.CurrentLibrary.getParent(bA.parent)}}bO=bn.addEndpoint(bE,bY);bI=true;bO.endpointWillMoveAfterConnection=bA.parent!=null;bO.endpointWillMoveTo=bA.parent?by.getElementObject(bA.parent):null;var bX=function(){if(bI){bn.deleteEndpoint(bO)}};bn.registerListener(bO.canvas,\"mouseup\",bX);bn.registerListener(bK,\"mouseup\",bX);by.trigger(bO.canvas,\"mousedown\",bS)};bn.registerListener(bK,\"mousedown\",bG);N[bE]=bG};bz=aI(bz);var bw=bz.length&&bz.constructor!=String?bz:[bz];for(var bx=0;bx<bw.length;bx++){bB(F(bw[bx]))}return bn};this.unmakeSource=function(bw,bx){bw=p.CurrentLibrary.getElementObject(bw);var by=K(bw),bv=N[by];if(bv){bn.unregisterListener(_el,\"mousedown\",bv)}if(!bx){delete az[by];delete a9[by];delete ac[by];delete N[by]}return bn};this.unmakeEverySource=function(){for(var bv in ac){bn.unmakeSource(bv,true)}az={};a9={};ac={};N={}};this.unmakeEveryTarget=function(){for(var bv in aj){bn.unmakeTarget(bv,true)}aZ={};bh={};ap={};aj={};return bn};this.makeSources=function(bx,by,bv){for(var bw=0;bw<bx.length;bw++){bn.makeSource(bx[bw],by,bv)}return bn};var aM=function(bz,by,bA,bv){var bw=bz==\"source\"?ac:aj;if(C(by)){bw[by]=bv?!bw[by]:bA}else{if(by.length){by=aI(by);for(var bx=0;bx<by.length;bx++){var bB=_el=p.CurrentLibrary.getElementObject(by[bx]),bB=K(_el);bw[bB]=bv?!bw[bB]:bA}}}return bn};this.setSourceEnabled=function(bv,bw){return aM(\"source\",bv,bw)};this.toggleSourceEnabled=function(bv){aM(\"source\",bv,null,true);return bn.isSourceEnabled(bv)};this.isSource=function(bv){bv=p.CurrentLibrary.getElementObject(bv);return ac[K(bv)]!=null};this.isSourceEnabled=function(bv){bv=p.CurrentLibrary.getElementObject(bv);return ac[K(bv)]===true};this.setTargetEnabled=function(bv,bw){return aM(\"target\",bv,bw)};this.toggleTargetEnabled=function(bv){return aM(\"target\",bv,null,true);return bn.isTargetEnabled(bv)};this.isTarget=function(bv){bv=p.CurrentLibrary.getElementObject(bv);return aj[K(bv)]!=null};this.isTargetEnabled=function(bv){bv=p.CurrentLibrary.getElementObject(bv);return aj[K(bv)]===true};this.ready=function(bv){bn.bind(\"ready\",bv)},this.repaint=function(bw){var bx=function(by){ba(F(by))};if(typeof bw==\"object\"){for(var bv=0;bv<bw.length;bv++){bx(bw[bv])}}else{bx(bw)}};this.repaintEverything=function(){for(var bv in aT){ba(F(bv),null,null)}};this.removeAllEndpoints=function(bx){var bv=d(bx,\"id\"),by=aT[bv];if(by){for(var bw=0;bw<by.length;bw++){bn.deleteEndpoint(by[bw])}}aT[bv]=[]};this.removeEveryEndpoint=this.deleteEveryEndpoint;this.removeEndpoint=function(bv,bw){bn.deleteEndpoint(bw)};var ag={},bd=function(){for(var bw in ag){for(var bv=0;bv<ag[bw].length;bv++){var bx=ag[bw][bv];p.CurrentLibrary.unbind(bx.el,bx.event,bx.listener)}}ag={}};this.registerListener=function(bw,bv,bx){p.CurrentLibrary.bind(bw,bv,bx);V(ag,bv,{el:bw,event:bv,listener:bx})};this.unregisterListener=function(bw,bv,bx){p.CurrentLibrary.unbind(bw,bv,bx);D(ag,function(by){return by.type==bv&&by.listener==bx})};this.reset=function(){bn.deleteEveryEndpoint();bn.unbind();aZ={};aH={};bh={};ap={};az={};a5={};a9={};bd();bn.anchorManager.reset();bn.dragManager.reset()};this.setDefaultScope=function(bv){Q=bv};this.setDraggable=bk;this.setId=function(bz,bv,bB){var bC=bz.constructor==String?bz:bn.getId(bz),by=bn.getConnections({source:bC,scope:\"*\"},true),bx=bn.getConnections({target:bC,scope:\"*\"},true);bv=\"\"+bv;if(!bB){bz=p.CurrentLibrary.getElementObject(bC);p.CurrentLibrary.setAttribute(bz,\"id\",bv)}bz=p.CurrentLibrary.getElementObject(bv);aT[bv]=aT[bC]||[];for(var bw=0;bw<aT[bv].length;bw++){aT[bv][bw].elementId=bv;aT[bv][bw].element=bz;aT[bv][bw].anchor.elementId=bv}delete aT[bC];bn.anchorManager.changeId(bC,bv);var bA=function(bG,bD,bF){for(var bE=0;bE<bG.length;bE++){bG[bE].endpoints[bD].elementId=bv;bG[bE].endpoints[bD].element=bz;bG[bE][bF+\"Id\"]=bv;bG[bE][bF]=bz}};bA(by,0,\"source\");bA(bx,1,\"target\")};this.setIdChanged=function(bw,bv){bn.setId(bw,bv,true)};this.setDebugLog=function(bv){P=bv};this.setRepaintFunction=function(bv){ar=bv};this.setSuspendDrawing=bg;this.CANVAS=\"canvas\";this.SVG=\"svg\";this.VML=\"vml\";this.setRenderMode=function(bv){if(bv){bv=bv.toLowerCase()}else{return}if(bv!==p.CANVAS&&bv!==p.SVG&&bv!==p.VML){throw new Error(\"render mode must be one of jsPlumb.CANVAS, jsPlumb.SVG or jsPlumb.VML\")}if(bv===p.SVG){if(e){X=p.SVG}else{if(A){X=p.CANVAS}else{if(b()){X=p.VML}}}}else{if(bv===p.CANVAS&&A){X=p.CANVAS}else{if(b()){X=p.VML}}}return X};this.getRenderMode=function(){return X};this.show=function(bv,bw){a3(bv,\"block\",bw)};this.sizeCanvas=function(bx,bv,bz,bw,by){if(bx){bx.style.height=by+\"px\";bx.height=by;bx.style.width=bw+\"px\";bx.width=bw;bx.style.left=bv+\"px\";bx.style.top=bz+\"px\"}};this.getTestHarness=function(){return{endpointsByElement:aT,endpointCount:function(bv){var bw=aT[bv];return bw?bw.length:0},connectionCount:function(bv){bv=bv||Q;var bw=aY[bv];return bw?bw.length:0},getId:K,makeAnchor:self.makeAnchor,makeDynamicAnchor:self.makeDynamicAnchor}};this.toggle=aQ;this.toggleVisible=aQ;this.toggleDraggable=bi;this.unload=function(){};this.wrap=am;this.addListener=this.bind;var bo=function(bA,bx){var by=null,bv=bA;if(bx.tagName.toLowerCase()===\"svg\"&&bx.parentNode){by=bx.parentNode}else{if(bx.offsetParent){by=bx.offsetParent}}if(by!=null){var bw=by.tagName.toLowerCase()===\"body\"?{left:0,top:0}:t(by),bz=by.tagName.toLowerCase()===\"body\"?{left:0,top:0}:{left:by.scrollLeft,top:by.scrollTop};bv[0]=bA[0]-bw.left+bz.left;bv[1]=bA[1]-bw.top+bz.top}return bv};var aa=function(bz){var bx=this;this.x=bz.x||0;this.y=bz.y||0;this.elementId=bz.elementId;var bw=bz.orientation||[0,0];var by=null,bv=null;this.offsets=bz.offsets||[0,0];bx.timestamp=null;this.compute=function(bE){var bD=bE.xy,bA=bE.wh,bB=bE.element,bC=bE.timestamp;if(bC&&bC===bx.timestamp){return bv}bv=[bD[0]+(bx.x*bA[0])+bx.offsets[0],bD[1]+(bx.y*bA[1])+bx.offsets[1]];bv=bo(bv,bB.canvas);bx.timestamp=bC;return bv};this.getOrientation=function(bA){return bw};this.equals=function(bA){if(!bA){return false}var bB=bA.getOrientation();var bC=this.getOrientation();return this.x==bA.x&&this.y==bA.y&&this.offsets[0]==bA.offsets[0]&&this.offsets[1]==bA.offsets[1]&&bC[0]==bB[0]&&bC[1]==bB[1]};this.getCurrentLocation=function(){return bv}};var a1=function(bB){var bz=bB.reference,bA=bB.referenceCanvas,bx=a(F(bA)),bw=0,bC=0,bv=null,by=null;this.x=0;this.y=0;this.isFloating=true;this.compute=function(bG){var bF=bG.xy,bE=bG.element,bD=[bF[0]+(bx[0]/2),bF[1]+(bx[1]/2)];bD=bo(bD,bE.canvas);by=bD;return bD};this.getOrientation=function(bE){if(bv){return bv}else{var bD=bz.getOrientation(bE);return[Math.abs(bD[0])*bw*-1,Math.abs(bD[1])*bC*-1]}};this.over=function(bD){bv=bD.getOrientation()};this.out=function(){bv=null};this.getCurrentLocation=function(){return by}};var aq=function(bx,bw,bC){this.isSelective=true;this.isDynamic=true;var bF=[],bE=this,bD=function(bG){return bG.constructor==aa?bG:bn.makeAnchor(bG,bC,bn)};for(var bB=0;bB<bx.length;bB++){bF[bB]=bD(bx[bB])}this.addAnchor=function(bG){bF.push(bD(bG))};this.getAnchors=function(){return bF};this.locked=false;var by=bF.length>0?bF[0]:null,bA=bF.length>0?0:-1,bE=this,bz=function(bI,bG,bM,bL,bH){var bK=bL[0]+(bI.x*bH[0]),bJ=bL[1]+(bI.y*bH[1]);return Math.sqrt(Math.pow(bG-bK,2)+Math.pow(bM-bJ,2))},bv=bw||function(bQ,bH,bI,bJ,bG){var bL=bI[0]+(bJ[0]/2),bK=bI[1]+(bJ[1]/2);var bN=-1,bP=Infinity;for(var bM=0;bM<bG.length;bM++){var bO=bz(bG[bM],bL,bK,bQ,bH);if(bO<bP){bN=bM+0;bP=bO}}return bG[bN]};this.compute=function(bK){var bJ=bK.xy,bG=bK.wh,bI=bK.timestamp,bH=bK.txy,bL=bK.twh;if(bE.locked||bH==null||bL==null){return by.compute(bK)}else{bK.timestamp=null}by=bv(bJ,bG,bH,bL,bF);bE.x=by.x;bE.y=by.y;return by.compute(bK)};this.getCurrentLocation=function(){return by!=null?by.getCurrentLocation():null};this.getOrientation=function(bG){return by!=null?by.getOrientation(bG):[0,0]};this.over=function(bG){if(by!=null){by.over(bG)}};this.out=function(){if(by!=null){by.out()}}};var bj={},ai={},aJ={},T={HORIZONTAL:\"horizontal\",VERTICAL:\"vertical\",DIAGONAL:\"diagonal\",IDENTITY:\"identity\"},bl=function(bE,bF,bB,by){if(bE===bF){return{orientation:T.IDENTITY,a:[\"top\",\"top\"]}}var bw=Math.atan2((by.centery-bB.centery),(by.centerx-bB.centerx)),bz=Math.atan2((bB.centery-by.centery),(bB.centerx-by.centerx)),bA=((bB.left<=by.left&&bB.right>=by.left)||(bB.left<=by.right&&bB.right>=by.right)||(bB.left<=by.left&&bB.right>=by.right)||(by.left<=bB.left&&by.right>=bB.right)),bG=((bB.top<=by.top&&bB.bottom>=by.top)||(bB.top<=by.bottom&&bB.bottom>=by.bottom)||(bB.top<=by.top&&bB.bottom>=by.bottom)||(by.top<=bB.top&&by.bottom>=bB.bottom));if(!(bA||bG)){var bD=null,bx=false,bv=false,bC=null;if(by.left>bB.left&&by.top>bB.top){bD=[\"right\",\"top\"]}else{if(by.left>bB.left&&bB.top>by.top){bD=[\"top\",\"left\"]}else{if(by.left<bB.left&&by.top<bB.top){bD=[\"top\",\"right\"]}else{if(by.left<bB.left&&by.top>bB.top){bD=[\"left\",\"top\"]}}}}return{orientation:T.DIAGONAL,a:bD,theta:bw,theta2:bz}}else{if(bA){return{orientation:T.HORIZONTAL,a:bB.top<by.top?[\"bottom\",\"top\"]:[\"top\",\"bottom\"],theta:bw,theta2:bz}}else{return{orientation:T.VERTICAL,a:bB.left<by.left?[\"right\",\"left\"]:[\"left\",\"right\"],theta:bw,theta2:bz}}}},a2=function(bJ,bF,bD,bE,bK,bG,bx){var bL=[],bw=bF[bK?0:1]/(bE.length+1);for(var bH=0;bH<bE.length;bH++){var bM=(bH+1)*bw,bv=bG*bF[bK?1:0];if(bx){bM=bF[bK?0:1]-bM}var bC=(bK?bM:bv),bz=bD[0]+bC,bB=bC/bF[0],bA=(bK?bv:bM),by=bD[1]+bA,bI=bA/bF[1];bL.push([bz,by,bB,bI,bE[bH][1],bE[bH][2]])}return bL},a8=function(bw,bv){return bw[0]>bv[0]?1:-1},Z=function(bv){return function(bx,bw){var by=true;if(bv){if(bx[0][0]<bw[0][0]){by=true}else{by=bx[0][1]>bw[0][1]}}else{if(bx[0][0]>bw[0][0]){by=true}else{by=bx[0][1]>bw[0][1]}}return by===false?-1:1}},O=function(bw,bv){var by=bw[0][0]<0?-Math.PI-bw[0][0]:Math.PI-bw[0][0],bx=bv[0][0]<0?-Math.PI-bv[0][0]:Math.PI-bv[0][0];if(by>bx){return 1}else{return bw[0][1]>bv[0][1]?1:-1}},a0={top:a8,right:Z(true),bottom:Z(true),left:O},ao=function(bv,bw){return bv.sort(bw)},al=function(bw,bv){var by=ae[bw],bz=ah[bw],bx=function(bG,bN,bC,bF,bL,bK,bB){if(bF.length>0){var bJ=ao(bF,a0[bG]),bH=bG===\"right\"||bG===\"top\",bA=a2(bG,bN,bC,bJ,bL,bK,bH);var bO=function(bR,bQ){var bP=bo([bQ[0],bQ[1]],bR.canvas);ai[bR.id]=[bP[0],bP[1],bQ[2],bQ[3]];aJ[bR.id]=bB};for(var bD=0;bD<bA.length;bD++){var bI=bA[bD][4],bM=bI.endpoints[0].elementId===bw,bE=bI.endpoints[1].elementId===bw;if(bM){bO(bI.endpoints[0],bA[bD])}else{if(bE){bO(bI.endpoints[1],bA[bD])}}}}};bx(\"bottom\",by,[bz.left,bz.top],bv.bottom,true,1,[0,1]);bx(\"top\",by,[bz.left,bz.top],bv.top,true,0,[0,-1]);bx(\"left\",by,[bz.left,bz.top],bv.left,false,0,[-1,0]);bx(\"right\",by,[bz.left,bz.top],bv.right,false,1,[1,0])},aE=function(){var bv={},bz={},bw=this,by={};this.reset=function(){bv={};bz={};by={}};this.newConnection=function(bD){var bF=bD.sourceId,bC=bD.targetId,bA=bD.endpoints,bE=true,bB=function(bG,bH,bJ,bI,bK){if((bF==bC)&&bJ.isContinuous){p.CurrentLibrary.removeElement(bA[1].canvas);bE=false}V(bz,bI,[bK,bH,bJ.constructor==aq])};bB(0,bA[0],bA[0].anchor,bC,bD);if(bE){bB(1,bA[1],bA[1].anchor,bF,bD)}};this.connectionDetached=function(bA){var bB=bA.connection||bA;var bG=bB.sourceId,bH=bB.targetId,bK=bB.endpoints,bF=function(bL,bM,bO,bN,bP){if(bO.constructor==a1){}else{D(bz[bN],function(bQ){return bQ[0].id==bP.id})}};bF(1,bK[1],bK[1].anchor,bG,bB);bF(0,bK[0],bK[0].anchor,bH,bB);var bC=bB.sourceId,bD=bB.targetId,bJ=bB.endpoints[0].id,bE=bB.endpoints[1].id,bI=function(bN,bL){if(bN){var bM=function(bO){return bO[4]==bL};D(bN.top,bM);D(bN.left,bM);D(bN.bottom,bM);D(bN.right,bM)}};bI(by[bC],bJ);bI(by[bD],bE);bw.redraw(bC);bw.redraw(bD)};this.add=function(bB,bA){V(bv,bA,bB)};this.changeId=function(bB,bA){bz[bA]=bz[bB];bv[bA]=bv[bB];delete bz[bB];delete bv[bB]};this.getConnectionsFor=function(bA){return bz[bA]||[]};this.getEndpointsFor=function(bA){return bv[bA]||[]};this.deleteEndpoint=function(bA){D(bv[bA.elementId],function(bB){return bB.id==bA.id})};this.clearFor=function(bA){delete bv[bA];bv[bA]=[]};var bx=function(bU,bH,bP,bE,bK,bL,bN,bJ,bW,bM,bD,bT){var bR=-1,bC=-1,bF=bE.endpoints[bN],bO=bF.id,bI=[1,0][bN],bA=[[bH,bP],bE,bK,bL,bO],bB=bU[bW],bV=bF._continuousAnchorEdge?bU[bF._continuousAnchorEdge]:null;if(bV){var bS=i(bV,function(bX){return bX[4]==bO});if(bS!=-1){bV.splice(bS,1);for(var bQ=0;bQ<bV.length;bQ++){u(bD,bV[bQ][1],function(bX){return bX.id==bV[bQ][1].id});u(bT,bV[bQ][1].endpoints[bN],function(bX){return bX.id==bV[bQ][1].endpoints[bN].id})}}}for(var bQ=0;bQ<bB.length;bQ++){if(bN==1&&bB[bQ][3]===bL&&bC==-1){bC=bQ}u(bD,bB[bQ][1],function(bX){return bX.id==bB[bQ][1].id});u(bT,bB[bQ][1].endpoints[bN],function(bX){return bX.id==bB[bQ][1].endpoints[bN].id})}if(bR!=-1){bB[bR]=bA}else{var bG=bJ?bC!=-1?bC:0:bB.length;bB.splice(bG,0,bA)}bF._continuousAnchorEdge=bW};this.redraw=function(bP,bR,bC,bF){var b0=bv[bP]||[],bZ=bz[bP]||[],bB=[],bY=[],bD=[];bC=bC||r();bF=bF||{left:0,top:0};if(bR){bR={left:bR.left+bF.left,top:bR.top+bF.top}}W({elId:bP,offset:bR,recalc:false,timestamp:bC});var bK=ah[bP],bG=ae[bP],bM={};for(var bW=0;bW<bZ.length;bW++){var bH=bZ[bW][0],bJ=bH.sourceId,bE=bH.targetId,bI=bH.endpoints[0].anchor.isContinuous,bO=bH.endpoints[1].anchor.isContinuous;if(bI||bO){var bX=bJ+\"_\"+bE,bU=bE+\"_\"+bJ,bT=bM[bX],bN=bH.sourceId==bP?1:0;if(bI&&!by[bJ]){by[bJ]={top:[],right:[],bottom:[],left:[]}}if(bO&&!by[bE]){by[bE]={top:[],right:[],bottom:[],left:[]}}if(bP!=bE){W({elId:bE,timestamp:bC})}if(bP!=bJ){W({elId:bJ,timestamp:bC})}var bL=aN(bE),bA=aN(bJ);if(bE==bJ&&(bI||bO)){bx(by[bJ],-Math.PI/2,0,bH,false,bE,0,false,\"top\",bJ,bB,bY)}else{if(!bT){bT=bl(bJ,bE,bA.o,bL.o);bM[bX]=bT}if(bI){bx(by[bJ],bT.theta,0,bH,false,bE,0,false,bT.a[0],bJ,bB,bY)}if(bO){bx(by[bE],bT.theta2,-1,bH,true,bJ,1,true,bT.a[1],bE,bB,bY)}}if(bI){u(bD,bJ,function(b1){return b1===bJ})}if(bO){u(bD,bE,function(b1){return b1===bE})}u(bB,bH,function(b1){return b1.id==bH.id});if((bI&&bN==0)||(bO&&bN==1)){u(bY,bH.endpoints[bN],function(b1){return b1.id==bH.endpoints[bN].id})}}}for(var bW=0;bW<bD.length;bW++){al(bD[bW],by[bD[bW]])}for(var bW=0;bW<b0.length;bW++){b0[bW].paint({timestamp:bC,offset:bK,dimensions:bG})}for(var bW=0;bW<bY.length;bW++){bY[bW].paint({timestamp:bC,offset:bK,dimensions:bG})}for(var bW=0;bW<bZ.length;bW++){var bQ=bZ[bW][1];if(bQ.anchor.constructor==aq){bQ.paint({elementWithPrecedence:bP});u(bB,bZ[bW][0],function(b1){return b1.id==bZ[bW][0].id});for(var bV=0;bV<bQ.connections.length;bV++){if(bQ.connections[bV]!==bZ[bW][0]){u(bB,bQ.connections[bV],function(b1){return b1.id==bQ.connections[bV].id})}}}else{if(bQ.anchor.constructor==aa){u(bB,bZ[bW][0],function(b1){return b1.id==bZ[bW][0].id})}}}var bS=bf[bP];if(bS){bS.paint({timestamp:bC,recalc:false,elId:bP})}for(var bW=0;bW<bB.length;bW++){bB[bW].paint({elId:bP,timestamp:bC,recalc:false})}};this.rehomeEndpoint=function(bA,bE){var bB=bv[bA]||[],bC=bn.getId(bE);for(var bD=0;bD<bB.length;bD++){bw.add(bB[bD],bC)}bB.splice(0,bB.length)}};bn.anchorManager=new aE();bn.continuousAnchorFactory={get:function(bw){var bv=bj[bw.elementId];if(!bv){bv={type:\"Continuous\",compute:function(bx){return ai[bx.element.id]||[0,0]},getCurrentLocation:function(bx){return ai[bx.id]||[0,0]},getOrientation:function(bx){return aJ[bx.id]||[0,0]},isDynamic:true,isContinuous:true};bj[bw.elementId]=bv}return bv}};var aV=function(){var by={},bx=[],bw={},bv={};this.register=function(bB){var bA=p.CurrentLibrary;bB=bA.getElementObject(bB);var bD=bn.getId(bB),bz=bA.getDOMElement(bB);if(!by[bD]){by[bD]=bB;bx.push(bB);bw[bD]={}}var bC=function(bH){var bK=bA.getElementObject(bH),bJ=bA.getOffset(bK);for(var bE=0;bE<bH.childNodes.length;bE++){if(bH.childNodes[bE].nodeType!=3){var bG=bA.getElementObject(bH.childNodes[bE]),bI=bn.getId(bG,null,true);if(bI&&bv[bI]&&bv[bI]>0){var bF=bA.getOffset(bG);bw[bD][bI]={id:bI,offset:{left:bF.left-bJ.left,top:bF.top-bJ.top}}}}}};bC(bz)};this.endpointAdded=function(bB){var bF=p.CurrentLibrary,bI=document.body,bz=bn.getId(bB),bH=bF.getDOMElement(bB),bA=bH.parentNode,bD=bA==bI;bv[bz]=bv[bz]?bv[bz]+1:1;while(bA!=bI){var bE=bn.getId(bA);if(by[bE]){var bK=-1,bG=bF.getElementObject(bA),bC=bF.getOffset(bG);if(bw[bE][bz]==null){var bJ=p.CurrentLibrary.getOffset(bB);bw[bE][bz]={id:bz,offset:{left:bJ.left-bC.left,top:bJ.top-bC.top}}}break}bA=bA.parentNode}};this.endpointDeleted=function(bA){if(bv[bA.elementId]){bv[bA.elementId]--;if(bv[bA.elementId]<=0){for(var bz in bw){delete bw[bz][bA.elementId]}}}};this.getElementsForDraggable=function(bz){return bw[bz]};this.reset=function(){by={};bx=[];bw={};bv={}}};bn.dragManager=new aV();var ax=function(bN){var bG=this,bx=true;bG.idPrefix=\"_jsplumb_c_\";bG.defaultLabelLocation=0.5;bG.defaultOverlayKeys=[\"Overlays\",\"ConnectionOverlays\"];this.parent=bN.parent;z.apply(this,arguments);this.isVisible=function(){return bx};this.setVisible=function(bP){bx=bP;bG[bP?\"showOverlays\":\"hideOverlays\"]();if(bG.connector&&bG.connector.canvas){bG.connector.canvas.style.display=bP?\"block\":\"none\"}};this.source=F(bN.source);this.target=F(bN.target);if(bN.sourceEndpoint){this.source=bN.sourceEndpoint.endpointWillMoveTo||bN.sourceEndpoint.getElement()}if(bN.targetEndpoint){this.target=bN.targetEndpoint.getElement()}bG.previousConnection=bN.previousConnection;var bD=bN.cost;bG.getCost=function(){return bD};bG.setCost=function(bP){bD=bP};var bB=bN.bidirectional===false?false:true;bG.isBidirectional=function(){return bB};this.sourceId=d(this.source,\"id\");this.targetId=d(this.target,\"id\");this.getAttachedElements=function(){return bG.endpoints};this.scope=bN.scope;this.endpoints=[];this.endpointStyles=[];var bM=function(bQ,bP){if(bQ){return bn.makeAnchor(bQ,bP,bn)}},bK=function(bP,bV,bQ,bS,bT,bR,bU){if(bP){bG.endpoints[bV]=bP;bP.addConnection(bG)}else{if(!bQ.endpoints){bQ.endpoints=[null,null]}var b1=bQ.endpoints[bV]||bQ.endpoint||bn.Defaults.Endpoints[bV]||p.Defaults.Endpoints[bV]||bn.Defaults.Endpoint||p.Defaults.Endpoint;if(!bQ.endpointStyles){bQ.endpointStyles=[null,null]}if(!bQ.endpointHoverStyles){bQ.endpointHoverStyles=[null,null]}var bZ=bQ.endpointStyles[bV]||bQ.endpointStyle||bn.Defaults.EndpointStyles[bV]||p.Defaults.EndpointStyles[bV]||bn.Defaults.EndpointStyle||p.Defaults.EndpointStyle;if(bZ.fillStyle==null&&bR!=null){bZ.fillStyle=bR.strokeStyle}if(bZ.outlineColor==null&&bR!=null){bZ.outlineColor=bR.outlineColor}if(bZ.outlineWidth==null&&bR!=null){bZ.outlineWidth=bR.outlineWidth}var bY=bQ.endpointHoverStyles[bV]||bQ.endpointHoverStyle||bn.Defaults.EndpointHoverStyles[bV]||p.Defaults.EndpointHoverStyles[bV]||bn.Defaults.EndpointHoverStyle||p.Defaults.EndpointHoverStyle;if(bU!=null){if(bY==null){bY={}}if(bY.fillStyle==null){bY.fillStyle=bU.strokeStyle}}var bX=bQ.anchors?bQ.anchors[bV]:bQ.anchor?bQ.anchor:bM(bn.Defaults.Anchors[bV],bT)||bM(p.Defaults.Anchors[bV],bT)||bM(bn.Defaults.Anchor,bT)||bM(p.Defaults.Anchor,bT),b0=bQ.uuids?bQ.uuids[bV]:null,bW=aF({paintStyle:bZ,hoverPaintStyle:bY,endpoint:b1,connections:[bG],uuid:b0,anchor:bX,source:bS,scope:bQ.scope,container:bQ.container,reattach:bQ.reattach,detachable:bQ.detachable});bG.endpoints[bV]=bW;if(bQ.drawEndpoints===false){bW.setVisible(false,true,true)}return bW}};var bI=bK(bN.sourceEndpoint,0,bN,bG.source,bG.sourceId,bN.paintStyle,bN.hoverPaintStyle);if(bI){V(aT,this.sourceId,bI)}var by=((bG.sourceId==bG.targetId)&&bN.targetEndpoint==null)?bI:bN.targetEndpoint,bH=bK(by,1,bN,bG.target,bG.targetId,bN.paintStyle,bN.hoverPaintStyle);if(bH){V(aT,this.targetId,bH)}if(!this.scope){this.scope=this.endpoints[0].scope}if(bN.deleteEndpointsOnDetach){bG.endpointsToDeleteOnDetach=[bI,bH]}var bw=bn.Defaults.ConnectionsDetachable;if(bN.detachable===false){bw=false}if(bG.endpoints[0].connectionsDetachable===false){bw=false}if(bG.endpoints[1].connectionsDetachable===false){bw=false}if(bD==null){bD=bG.endpoints[0].getConnectionCost()}if(bN.bidirectional==null){bB=bG.endpoints[0].areConnectionsBidirectional()}this.isDetachable=function(){return bw===true};this.setDetachable=function(bP){bw=bP===true};var bO=p.extend({},this.endpoints[0].getParameters());p.extend(bO,this.endpoints[1].getParameters());p.extend(bO,bG.getParameters());bG.setParameters(bO);var bE=bG.setHover;bG.setHover=function(bP){bG.connector.setHover.apply(bG.connector,arguments);bE.apply(bG,arguments)};var bL=function(bP){if(x==null){bG.setHover(bP,false)}};this.setConnector=function(bP,bQ){if(bG.connector!=null){aX(bG.connector.getDisplayElements(),bG.parent)}var bR={_jsPlumb:bG._jsPlumb,parent:bN.parent,cssClass:bN.cssClass,container:bN.container,tooltip:bG.tooltip};if(C(bP)){this.connector=new p.Connectors[X][bP](bR)}else{if(n(bP)){this.connector=new p.Connectors[X][bP[0]](p.extend(bP[1],bR))}}bG.canvas=bG.connector.canvas;G(bG.connector,bG,bL);if(!bQ){bG.repaint()}};bG.setConnector(this.endpoints[0].connector||this.endpoints[1].connector||bN.connector||bn.Defaults.Connector||p.Defaults.Connector,true);this.setPaintStyle(this.endpoints[0].connectorStyle||this.endpoints[1].connectorStyle||bN.paintStyle||bn.Defaults.PaintStyle||p.Defaults.PaintStyle,true);this.setHoverPaintStyle(this.endpoints[0].connectorHoverStyle||this.endpoints[1].connectorHoverStyle||bN.hoverPaintStyle||bn.Defaults.HoverPaintStyle||p.Defaults.HoverPaintStyle,true);this.paintStyleInUse=this.getPaintStyle();this.moveParent=function(bS){var bR=p.CurrentLibrary,bQ=bR.getParent(bG.connector.canvas);if(bG.connector.bgCanvas){bR.removeElement(bG.connector.bgCanvas,bQ);bR.appendElement(bG.connector.bgCanvas,bS)}bR.removeElement(bG.connector.canvas,bQ);bR.appendElement(bG.connector.canvas,bS);for(var bP=0;bP<bG.overlays.length;bP++){if(bG.overlays[bP].isAppendedAtTopLevel){bR.removeElement(bG.overlays[bP].canvas,bQ);bR.appendElement(bG.overlays[bP].canvas,bS);if(bG.overlays[bP].reattachListeners){bG.overlays[bP].reattachListeners(bG.connector)}}}if(bG.connector.reattachListeners){bG.connector.reattachListeners()}};W({elId:this.sourceId});W({elId:this.targetId});var bA=ah[this.sourceId],bz=ae[this.sourceId],bv=ah[this.targetId],bC=ae[this.targetId],bF=r(),bJ=this.endpoints[0].anchor.compute({xy:[bA.left,bA.top],wh:bz,element:this.endpoints[0],elementId:this.endpoints[0].elementId,txy:[bv.left,bv.top],twh:bC,tElement:this.endpoints[1],timestamp:bF});this.endpoints[0].paint({anchorLoc:bJ,timestamp:bF});bJ=this.endpoints[1].anchor.compute({xy:[bv.left,bv.top],wh:bC,element:this.endpoints[1],elementId:this.endpoints[1].elementId,txy:[bA.left,bA.top],twh:bz,tElement:this.endpoints[0],timestamp:bF});this.endpoints[1].paint({anchorLoc:bJ,timestamp:bF});this.paint=function(b6){b6=b6||{};var bX=b6.elId,bY=b6.ui,bV=b6.recalc,bQ=b6.timestamp,bZ=false,b5=bZ?this.sourceId:this.targetId,bU=bZ?this.targetId:this.sourceId,bR=bZ?0:1,b7=bZ?1:0;var b8=W({elId:bX,offset:bY,recalc:bV,timestamp:bQ}),bW=W({elId:b5,timestamp:bQ});var b1=this.endpoints[b7],bP=this.endpoints[bR],bT=b1.anchor.getCurrentLocation(b1),b4=bP.anchor.getCurrentLocation(bP);var bS=0;for(var b3=0;b3<bG.overlays.length;b3++){var b0=bG.overlays[b3];if(b0.isVisible()){bS=Math.max(bS,b0.computeMaxSize(bG.connector))}}var b2=this.connector.compute(bT,b4,this.endpoints[b7],this.endpoints[bR],this.endpoints[b7].anchor,this.endpoints[bR].anchor,bG.paintStyleInUse.lineWidth,bS,b8,bW);bG.connector.paint(b2,bG.paintStyleInUse);for(var b3=0;b3<bG.overlays.length;b3++){var b0=bG.overlays[b3];if(b0.isVisible){bG.overlayPlacements[b3]=b0.draw(bG.connector,bG.paintStyleInUse,b2)}}};this.repaint=function(bQ){bQ=bQ||{};var bP=!(bQ.recalc===false);this.paint({elId:this.sourceId,recalc:bP,timestamp:bQ.timestamp})}};var bc=function(bw){var bv=false;return{drag:function(){if(bv){bv=false;return true}var bx=p.CurrentLibrary.getUIPosition(arguments),by=bw.element;if(by){p.CurrentLibrary.setOffset(by,bx);ba(F(by),bx)}},stopDrag:function(){bv=true}}};var at=function(bz,by,bA,bx,bv){var bw=new a1({reference:by,referenceCanvas:bx});return aF({paintStyle:bz,endpoint:bA,anchor:bw,source:bv,scope:\"__floating\"})};var R=function(bx,bv){var bz=document.createElement(\"div\");bz.style.position=\"absolute\";var bw=F(bz);aW(bz,bv);var by=K(bw);W({elId:by});bx.id=by;bx.element=bw};var af=function(b0){var bO=this;bO.idPrefix=\"_jsplumb_e_\";bO.defaultLabelLocation=[0.5,0.5];bO.defaultOverlayKeys=[\"Overlays\",\"EndpointOverlays\"];this.parent=b0.parent;z.apply(this,arguments);b0=b0||{};var bA=true,by=!(b0.enabled===false);this.isVisible=function(){return bA};this.setVisible=function(b3,b6,b2){bA=b3;if(bO.canvas){bO.canvas.style.display=b3?\"block\":\"none\"}bO[b3?\"showOverlays\":\"hideOverlays\"]();if(!b6){for(var b5=0;b5<bO.connections.length;b5++){bO.connections[b5].setVisible(b3);if(!b2){var b4=bO===bO.connections[b5].endpoints[0]?1:0;if(bO.connections[b5].endpoints[b4].connections.length==1){bO.connections[b5].endpoints[b4].setVisible(b3,true,true)}}}}};this.isEnabled=function(){return by};this.setEnabled=function(b2){by=b2};var bN=b0.source,bH=b0.uuid,bY=null,bC=null;if(bH){aU[bH]=bO}var bF=d(bN,\"id\");this.elementId=bF;this.element=bN;var bx=b0.connectionCost;this.getConnectionCost=function(){return bx};this.setConnectionCost=function(b2){bx=b2};var bX=b0.connectionsBidirectional===false?false:true;this.areConnectionsBidirectional=function(){return bX};this.setConnectionsBidirectional=function(b2){bX=b2};bO.anchor=b0.anchor?bn.makeAnchor(b0.anchor,bF,bn):b0.anchors?bn.makeAnchor(b0.anchors,bF,bn):bn.makeAnchor(\"TopCenter\",bF,bn);if(!b0._transient){bn.anchorManager.add(bO,bF)}var bL=null,bQ=null;this.setEndpoint=function(b2){var b3={_jsPlumb:bO._jsPlumb,parent:b0.parent,container:b0.container,tooltip:b0.tooltip,connectorTooltip:b0.connectorTooltip,endpoint:bO};if(C(b2)){bL=new p.Endpoints[X][b2](b3)}else{if(n(b2)){b3=p.extend(b2[1],b3);bL=new p.Endpoints[X][b2[0]](b3)}else{bL=b2.clone()}}var b4=p.extend({},b3);bL.clone=function(){var b5=new Object();bL.constructor.apply(b5,[b4]);return b5};bO.endpoint=bL;bO.type=bO.endpoint.type};this.setEndpoint(b0.endpoint||bn.Defaults.Endpoint||p.Defaults.Endpoint||\"Dot\");bQ=bL;var bM=bO.setHover;bO.setHover=function(){bO.endpoint.setHover.apply(bO.endpoint,arguments);bM.apply(bO,arguments)};var b1=function(b2){if(bO.connections.length>0){bO.connections[0].setHover(b2,false)}else{bO.setHover(b2)}};G(bO.endpoint,bO,b1);this.setPaintStyle(b0.paintStyle||b0.style||bn.Defaults.EndpointStyle||p.Defaults.EndpointStyle,true);this.setHoverPaintStyle(b0.hoverPaintStyle||bn.Defaults.EndpointHoverStyle||p.Defaults.EndpointHoverStyle,true);this.paintStyleInUse=this.getPaintStyle();var bJ=this.getPaintStyle();this.connectorStyle=b0.connectorStyle;this.connectorHoverStyle=b0.connectorHoverStyle;this.connectorOverlays=b0.connectorOverlays;this.connector=b0.connector;this.connectorTooltip=b0.connectorTooltip;this.isSource=b0.isSource||false;this.isTarget=b0.isTarget||false;var bU=b0.maxConnections||bn.Defaults.MaxConnections;this.getAttachedElements=function(){return bO.connections};this.canvas=this.endpoint.canvas;this.connections=b0.connections||[];this.scope=b0.scope||Q;this.timestamp=null;bO.isReattach=b0.reattach||false;bO.connectionsDetachable=bn.Defaults.ConnectionsDetachable;if(b0.connectionsDetachable===false||b0.detachable===false){bO.connectionsDetachable=false}var bI=b0.dragAllowedWhenFull||true;this.computeAnchor=function(b2){return bO.anchor.compute(b2)};this.addConnection=function(b2){bO.connections.push(b2)};this.detach=function(b3,b8,b4,cb,b2){var ca=i(bO.connections,function(cd){return cd.id==b3.id}),b9=false;cb=(cb!==false);if(ca>=0){if(b4||b3._forceDetach||b3.isDetachable()||b3.isDetachAllowed(b3)){var cc=b3.endpoints[0]==bO?b3.endpoints[1]:b3.endpoints[0];if(b4||b3._forceDetach||(bO.isDetachAllowed(b3))){bO.connections.splice(ca,1);if(!b8){cc.detach(b3,true,b4);if(b3.endpointsToDeleteOnDetach){for(var b7=0;b7<b3.endpointsToDeleteOnDetach.length;b7++){var b5=b3.endpointsToDeleteOnDetach[b7];if(b5&&b5.connections.length==0){bn.deleteEndpoint(b5)}}}}aX(b3.connector.getDisplayElements(),b3.parent);D(aY[b3.scope],function(cd){return cd.id==b3.id});b9=true;var b6=(!b8&&cb);a7(b3,b6,b2)}}}return b9};this.detachAll=function(b3,b2){while(bO.connections.length>0){bO.detach(bO.connections[0],false,true,b3,b2)}};this.detachFrom=function(b5,b4,b2){var b6=[];for(var b3=0;b3<bO.connections.length;b3++){if(bO.connections[b3].endpoints[1]==b5||bO.connections[b3].endpoints[0]==b5){b6.push(bO.connections[b3])}}for(var b3=0;b3<b6.length;b3++){if(bO.detach(b6[b3],false,true,b4,b2)){b6[b3].setHover(false,false)}}};this.detachFromConnection=function(b3){var b2=i(bO.connections,function(b4){return b4.id==b3.id});if(b2>=0){bO.connections.splice(b2,1)}};this.getElement=function(){return bN};this.setElement=function(b5,b2){var b7=K(b5);D(aT[bO.elementId],function(b8){return b8.id==bO.id});bN=F(b5);bF=K(bN);bO.elementId=bF;var b6=aw({source:b7,container:b2}),b4=bz.getParent(bO.canvas);bz.removeElement(bO.canvas,b4);bz.appendElement(bO.canvas,b6);for(var b3=0;b3<bO.connections.length;b3++){bO.connections[b3].moveParent(b6);bO.connections[b3].sourceId=bF;bO.connections[b3].source=bN}V(aT,b7,bO)};this.getUuid=function(){return bH};this.makeInPlaceCopy=function(){var b4=bO.anchor.getCurrentLocation(bO),b3=bO.anchor.getOrientation(bO),b2={compute:function(){return[b4[0],b4[1]]},getCurrentLocation:function(){return[b4[0],b4[1]]},getOrientation:function(){return b3}};return aF({anchor:b2,source:bN,paintStyle:this.getPaintStyle(),endpoint:bL,_transient:true,scope:bO.scope})};this.isConnectedTo=function(b4){var b3=false;if(b4){for(var b2=0;b2<bO.connections.length;b2++){if(bO.connections[b2].endpoints[1]==b4){b3=true;break}}}return b3};this.isFloating=function(){return bY!=null};this.connectorSelector=function(){var b2=bO.connections[0];if(bO.isTarget&&b2){return b2}else{return(bO.connections.length<bU)||bU==-1?null:b2}};this.isFull=function(){return !(bO.isFloating()||bU<1||bO.connections.length<bU)};this.setDragAllowedWhenFull=function(b2){bI=b2};this.setStyle=bO.setPaintStyle;this.equals=function(b2){return this.anchor.equals(b2.anchor)};var bK=function(b3){var b2=0;if(b3!=null){for(var b4=0;b4<bO.connections.length;b4++){if(bO.connections[b4].sourceId==b3||bO.connections[b4].targetId==b3){b2=b4;break}}}return bO.connections[b2]};this.paint=function(b5){b5=b5||{};var cb=b5.timestamp,ca=!(b5.recalc===false);if(!cb||bO.timestamp!==cb){W({elId:bF,timestamp:cb,recalc:ca});var ch=b5.offset||ah[bF];if(ch){var b8=b5.anchorPoint,b6=b5.connectorPaintStyle;if(b8==null){var b2=b5.dimensions||ae[bF];if(ch==null||b2==null){W({elId:bF,timestamp:cb});ch=ah[bF];b2=ae[bF]}var b4={xy:[ch.left,ch.top],wh:b2,element:bO,timestamp:cb};if(ca&&bO.anchor.isDynamic&&bO.connections.length>0){var ce=bK(b5.elementWithPrecedence),cg=ce.endpoints[0]==bO?1:0,b7=cg==0?ce.sourceId:ce.targetId,cd=ah[b7],cf=ae[b7];b4.txy=[cd.left,cd.top];b4.twh=cf;b4.tElement=ce.endpoints[cg]}b8=bO.anchor.compute(b4)}var cc=bL.compute(b8,bO.anchor.getOrientation(bO),bO.paintStyleInUse,b6||bO.paintStyleInUse);bL.paint(cc,bO.paintStyleInUse,bO.anchor);bO.timestamp=cb;for(var b9=0;b9<bO.overlays.length;b9++){var b3=bO.overlays[b9];if(b3.isVisible){bO.overlayPlacements[b9]=b3.draw(bO.endpoint,bO.paintStyleInUse,cc)}}}}};this.repaint=this.paint;this.removeConnection=this.detach;if(p.CurrentLibrary.isDragSupported(bN)){var bT={id:null,element:null},bS=null,bw=false,bB=null,bv=bc(bT);var bD=function(){bS=bO.connectorSelector();var b2=true;if(!bO.isEnabled()){b2=false}if(bS==null&&!b0.isSource){b2=false}if(b0.isSource&&bO.isFull()&&!bI){b2=false}if(bS!=null&&!bS.isDetachable()){b2=false}if(b2===false){if(p.CurrentLibrary.stopDrag){p.CurrentLibrary.stopDrag()}bv.stopDrag();return false}if(bS&&!bO.isFull()&&b0.isSource){bS=null}W({elId:bF});bC=bO.makeInPlaceCopy();bC.paint();R(bT,bO.parent);var b8=F(bC.canvas),b6=p.CurrentLibrary.getOffset(b8),b3=bo([b6.left,b6.top],bC.canvas);p.CurrentLibrary.setOffset(bT.element,{left:b3[0],top:b3[1]});if(bO.parentAnchor){bO.anchor=bn.makeAnchor(bO.parentAnchor,bO.elementId,bn)}f(F(bO.canvas),\"dragId\",bT.id);f(F(bO.canvas),\"elId\",bF);if(b0.proxy){bO.setPaintStyle(b0.proxy.paintStyle)}bY=at(bO.getPaintStyle(),bO.anchor,bL,bO.canvas,bT.element);if(bS==null){bO.anchor.locked=true;bO.setHover(false,false);bS=ad({sourceEndpoint:bO,targetEndpoint:bY,source:bO.endpointWillMoveTo||F(bN),target:bT.element,anchors:[bO.anchor,bY.anchor],paintStyle:b0.connectorStyle,hoverPaintStyle:b0.connectorHoverStyle,connector:b0.connector,overlays:b0.connectorOverlays})}else{bw=true;bS.connector.setHover(false,false);bE(F(bC.canvas),false,true);var b5=bS.endpoints[0].id==bO.id?0:1;bS.floatingAnchorIndex=b5;bO.detachFromConnection(bS);var b9=F(bO.canvas),b7=p.CurrentLibrary.getDragScope(b9);f(b9,\"originalScope\",b7);var b4=p.CurrentLibrary.getDropScope(b9);p.CurrentLibrary.setDragScope(b9,b4);if(b5==0){bB=[bS.source,bS.sourceId,bW,b7];bS.source=bT.element;bS.sourceId=bT.id}else{bB=[bS.target,bS.targetId,bW,b7];bS.target=bT.element;bS.targetId=bT.id}bS.endpoints[b5==0?1:0].anchor.locked=true;bS.suspendedEndpoint=bS.endpoints[b5];bS.suspendedEndpoint.setHover(false);bS.endpoints[b5]=bY;a4(bS)}bf[bT.id]=bS;bY.addConnection(bS);V(aT,bT.id,bY);bn.currentlyDragging=true};var bz=p.CurrentLibrary,bV=b0.dragOptions||{},bP=p.extend({},bz.defaultDragOptions),bR=bz.dragEvents.start,bZ=bz.dragEvents.stop,bG=bz.dragEvents.drag;bV=p.extend(bP,bV);bV.scope=bV.scope||bO.scope;bV[bR]=am(bV[bR],bD);bV[bG]=am(bV[bG],bv.drag);bV[bZ]=am(bV[bZ],function(){var b3=bz.getDropEvent(arguments);bn.currentlyDragging=false;D(aT[bT.id],function(b4){return b4.id==bY.id});aX([bT.element[0],bY.canvas],bN);au(bC.canvas,bN);bn.anchorManager.clearFor(bT.id);var b2=bS.floatingAnchorIndex==null?1:bS.floatingAnchorIndex;bS.endpoints[b2==0?1:0].anchor.locked=false;bO.setPaintStyle(bJ);if(bS.endpoints[b2]==bY){if(bw&&bS.suspendedEndpoint){if(b2==0){bS.source=bB[0];bS.sourceId=bB[1]}else{bS.target=bB[0];bS.targetId=bB[1]}p.CurrentLibrary.setDragScope(bB[2],bB[3]);bS.endpoints[b2]=bS.suspendedEndpoint;if(bO.isReattach||bS._forceDetach||!bS.endpoints[b2==0?1:0].detach(bS,false,false,true,b3)){bS.setHover(false);bS.floatingAnchorIndex=null;bS.suspendedEndpoint.addConnection(bS);bn.repaint(bB[1])}bS._forceDetach=null}else{aX(bS.connector.getDisplayElements(),bO.parent);bO.detachFromConnection(bS)}}bO.anchor.locked=false;bO.paint({recalc:false});bS.setHover(false,false);aR(bS);bS=null;bC=null;delete aT[bY.elementId];bY.anchor=null;bY=null;bn.currentlyDragging=false});var bW=F(bO.canvas);p.CurrentLibrary.initDraggable(bW,bV,true)}var bE=function(b4,b9,b7,ca){if((b0.isTarget||b9)&&p.CurrentLibrary.isDropSupported(bN)){var b5=b0.dropOptions||bn.Defaults.DropOptions||p.Defaults.DropOptions;b5=p.extend({},b5);b5.scope=b5.scope||bO.scope;var b3=p.CurrentLibrary.dragEvents.drop,b8=p.CurrentLibrary.dragEvents.over,b2=p.CurrentLibrary.dragEvents.out,b6=function(){var cb=p.CurrentLibrary.getDropEvent(arguments),co=F(p.CurrentLibrary.getDragObject(arguments)),cc=d(co,\"dragId\"),cf=d(co,\"elId\"),cn=d(co,\"originalScope\"),ci=bf[cc];if(ci!=null){var ck=ci.floatingAnchorIndex==null?1:ci.floatingAnchorIndex,cl=ck==0?1:0;if(cn){p.CurrentLibrary.setDragScope(co,cn)}var cm=ca!=null?ca.isEnabled():true;if(!bO.isFull()&&!(ck==0&&!bO.isSource)&&!(ck==1&&!bO.isTarget)&&cm){var cg=true;if(ci.suspendedEndpoint&&ci.suspendedEndpoint.id!=bO.id){if(ck==0){ci.source=ci.suspendedEndpoint.element;ci.sourceId=ci.suspendedEndpoint.elementId}else{ci.target=ci.suspendedEndpoint.element;ci.targetId=ci.suspendedEndpoint.elementId}if(!ci.isDetachAllowed(ci)||!ci.endpoints[ck].isDetachAllowed(ci)||!ci.suspendedEndpoint.isDetachAllowed(ci)||!bn.checkCondition(\"beforeDetach\",ci)){cg=false}}if(ck==0){ci.source=bO.element;ci.sourceId=bO.elementId}else{ci.target=bO.element;ci.targetId=bO.elementId}cg=cg&&bO.isDropAllowed(ci.sourceId,ci.targetId,ci.scope,ci,bO);if(cg){ci.endpoints[ck].detachFromConnection(ci);if(ci.suspendedEndpoint){ci.suspendedEndpoint.detachFromConnection(ci)}ci.endpoints[ck]=bO;bO.addConnection(ci);var ce=bO.getParameters();for(var cj in ce){ci.setParameter(cj,ce[cj])}if(!ci.suspendedEndpoint){if(ce.draggable){p.CurrentLibrary.initDraggable(bO.element,bV,true)}}else{var ch=ci.suspendedEndpoint.getElement(),cd=ci.suspendedEndpoint.elementId;a7({source:ck==0?ch:ci.source,target:ck==1?ch:ci.target,sourceId:ck==0?cd:ci.sourceId,targetId:ck==1?cd:ci.targetId,sourceEndpoint:ck==0?ci.suspendedEndpoint:ci.endpoints[0],targetEndpoint:ck==1?ci.suspendedEndpoint:ci.endpoints[1],connection:ci},true,cb)}bt(ci,null,cb)}else{if(ci.suspendedEndpoint){ci.endpoints[ck]=ci.suspendedEndpoint;ci.setHover(false);ci._forceDetach=true;if(ck==0){ci.source=ci.suspendedEndpoint.element;ci.sourceId=ci.suspendedEndpoint.elementId}else{ci.target=ci.suspendedEndpoint.element;ci.targetId=ci.suspendedEndpoint.elementId}ci.suspendedEndpoint.addConnection(ci);ci.endpoints[0].repaint();ci.repaint();bn.repaint(ci.source.elementId);ci._forceDetach=false}}ci.floatingAnchorIndex=null}bn.currentlyDragging=false;delete bf[cc]}};b5[b3]=am(b5[b3],b6);b5[b8]=am(b5[b8],function(){if(bO.isTarget){var cc=p.CurrentLibrary.getDragObject(arguments),ce=d(F(cc),\"dragId\"),cd=bf[ce];if(cd!=null){var cb=cd.floatingAnchorIndex==null?1:cd.floatingAnchorIndex;cd.endpoints[cb].anchor.over(bO.anchor)}}});b5[b2]=am(b5[b2],function(){if(bO.isTarget){var cc=p.CurrentLibrary.getDragObject(arguments),ce=d(F(cc),\"dragId\"),cd=bf[ce];if(cd!=null){var cb=cd.floatingAnchorIndex==null?1:cd.floatingAnchorIndex;cd.endpoints[cb].anchor.out()}}});p.CurrentLibrary.initDroppable(b4,b5,true,b7)}};bE(F(bO.canvas),true,!(b0._transient||bO.anchor.isFloating),bO);return bO}};var p=window.jsPlumb=new y();p.getInstance=function(L){var K=new y(L);K.init();return K};var s=function(K,P,M,L,O,N){return function(R){R=R||{};var Q=R.jsPlumbInstance.makeAnchor([K,P,M,L,0,0],R.elementId,R.jsPlumbInstance);Q.type=O;if(N){N(Q,R)}return Q}};p.Anchors.TopCenter=s(0.5,0,0,-1,\"TopCenter\");p.Anchors.BottomCenter=s(0.5,1,0,1,\"BottomCenter\");p.Anchors.LeftMiddle=s(0,0.5,-1,0,\"LeftMiddle\");p.Anchors.RightMiddle=s(1,0.5,1,0,\"RightMiddle\");p.Anchors.Center=s(0.5,0.5,0,0,\"Center\");p.Anchors.TopRight=s(1,0,0,-1,\"TopRight\");p.Anchors.BottomRight=s(1,1,0,1,\"BottomRight\");p.Anchors.TopLeft=s(0,0,0,-1,\"TopLeft\");p.Anchors.BottomLeft=s(0,1,0,1,\"BottomLeft\");p.Defaults.DynamicAnchors=function(K){return K.jsPlumbInstance.makeAnchors([\"TopCenter\",\"RightMiddle\",\"BottomCenter\",\"LeftMiddle\"],K.elementId,K.jsPlumbInstance)};p.Anchors.AutoDefault=function(L){var K=L.jsPlumbInstance.makeDynamicAnchor(p.Defaults.DynamicAnchors(L));K.type=\"AutoDefault\";return K};p.Anchors.Assign=s(0,0,0,0,\"Assign\",function(L,M){var K=M.position||\"Fixed\";L.positionFinder=K.constructor==String?M.jsPlumbInstance.AnchorPositionFinders[K]:K;L.constructorParams=M});p.Anchors.Continuous=function(K){return K.jsPlumbInstance.continuousAnchorFactory.get(K)};p.AnchorPositionFinders={Fixed:function(N,K,M,L){return[(N.left-K.left)/M[0],(N.top-K.top)/M[1]]},Grid:function(K,T,O,L){var S=K.left-T.left,R=K.top-T.top,Q=O[0]/(L.grid[0]),P=O[1]/(L.grid[1]),N=Math.floor(S/Q),M=Math.floor(R/P);return[((N*Q)+(Q/2))/O[0],((M*P)+(P/2))/O[1]]}}})();(function(){jsPlumb.DOMElementComponent=function(c){jsPlumb.jsPlumbUIComponent.apply(this,arguments);this.mousemove=this.dblclick=this.click=this.mousedown=this.mouseup=function(d){}};jsPlumb.Connectors.Straight=function(){this.type=\"Straight\";var r=this,i=null,e,k,p,n,l,f,q,h,g,d,c,o,m;this.compute=function(A,J,s,z,F,t,D,v){var I=Math.abs(A[0]-J[0]),C=Math.abs(A[1]-J[1]),B=0.45*I,u=0.45*C;I*=1.9;C*=1.9;var G=Math.min(A[0],J[0])-B;var E=Math.min(A[1],J[1])-u;var H=Math.max(2*D,v);if(I<H){I=H;G=A[0]+((J[0]-A[0])/2)-(H/2);B=(I-Math.abs(A[0]-J[0]))/2}if(C<H){C=H;E=A[1]+((J[1]-A[1])/2)-(H/2);u=(C-Math.abs(A[1]-J[1]))/2}h=A[0]<J[0]?B:I-B;g=A[1]<J[1]?u:C-u;d=A[0]<J[0]?I-B:B;c=A[1]<J[1]?C-u:u;i=[G,E,I,C,h,g,d,c];n=d-h,l=c-g;e=jsPlumbUtil.gradient({x:h,y:g},{x:d,y:c}),k=-1/e;p=-1*((e*h)-g);f=Math.atan(e);q=Math.atan(k);m=Math.sqrt((n*n)+(l*l));return i};this.pointOnPath=function(t,u){if(t==0&&!u){return{x:h,y:g}}else{if(t==1&&!u){return{x:d,y:c}}else{var s=u?t>0?t:m+t:t*m;return jsPlumbUtil.pointOnLine({x:h,y:g},{x:d,y:c},s)}}};this.gradientAtPoint=function(s){return e};this.pointAlongPathFrom=function(s,w,v){var u=r.pointOnPath(s,v),t=s==1?{x:h+((d-h)*10),y:g+((g-c)*10)}:{x:d,y:c};return jsPlumbUtil.pointOnLine(u,t,w)}};jsPlumb.Connectors.Bezier=function(v){var p=this;v=v||{};this.majorAnchor=v.curviness||150;this.minorAnchor=10;var t=null;this.type=\"Bezier\";this._findControlPoint=function(H,w,C,x,A,F,y){var E=F.getOrientation(x),G=y.getOrientation(A),B=E[0]!=G[0]||E[1]==G[1],z=[],I=p.majorAnchor,D=p.minorAnchor;if(!B){if(E[0]==0){z.push(w[0]<C[0]?H[0]+D:H[0]-D)}else{z.push(H[0]-(I*E[0]))}if(E[1]==0){z.push(w[1]<C[1]?H[1]+D:H[1]-D)}else{z.push(H[1]+(I*G[1]))}}else{if(G[0]==0){z.push(C[0]<w[0]?H[0]+D:H[0]-D)}else{z.push(H[0]+(I*G[0]))}if(G[1]==0){z.push(C[1]<w[1]?H[1]+D:H[1]-D)}else{z.push(H[1]+(I*E[1]))}}return z};var q,l,f,o,n,f,e,s,r,u,d,h,g,k,i;this.compute=function(S,z,M,A,Q,x,w,L){w=w||0;u=Math.abs(S[0]-z[0])+w;d=Math.abs(S[1]-z[1])+w;s=Math.min(S[0],z[0])-(w/2);r=Math.min(S[1],z[1])-(w/2);f=S[0]<z[0]?u-(w/2):(w/2);e=S[1]<z[1]?d-(w/2):(w/2);o=S[0]<z[0]?(w/2):u-(w/2);n=S[1]<z[1]?(w/2):d-(w/2);q=p._findControlPoint([f,e],S,z,M,A,Q,x);l=p._findControlPoint([o,n],z,S,A,M,x,Q);var K=Math.min(f,o),J=Math.min(q[0],l[0]),F=Math.min(K,J),R=Math.max(f,o),O=Math.max(q[0],l[0]),C=Math.max(R,O);if(C>u){u=C}if(F<0){s+=F;var H=Math.abs(F);u+=H;q[0]+=H;f+=H;o+=H;l[0]+=H}var P=Math.min(e,n),N=Math.min(q[1],l[1]),B=Math.min(P,N),G=Math.max(e,n),E=Math.max(q[1],l[1]),y=Math.max(G,E);if(y>d){d=y}if(B<0){r+=B;var D=Math.abs(B);d+=D;q[1]+=D;e+=D;n+=D;l[1]+=D}if(L&&u<L){var I=(L-u)/2;u=L;s-=I;f=f+I;o=o+I;q[0]=q[0]+I;l[0]=l[0]+I}if(L&&d<L){var I=(L-d)/2;d=L;r-=I;e=e+I;n=n+I;q[1]=q[1]+I;l[1]=l[1]+I}t=[s,r,u,d,f,e,o,n,q[0],q[1],l[0],l[1]];return t};var c=function(){return[{x:f,y:e},{x:q[0],y:q[1]},{x:l[0],y:l[1]},{x:o,y:n}]};var m=function(x,w,y){if(y){w=jsBezier.locationAlongCurveFrom(x,w>0?0:1,w)}return w};this.pointOnPath=function(w,y){var x=c();w=m(x,w,y);return jsBezier.pointOnCurve(x,w)};this.gradientAtPoint=function(w,y){var x=c();w=m(x,w,y);return jsBezier.gradientAtPoint(x,w)};this.pointAlongPathFrom=function(w,z,y){var x=c();w=m(x,w,y);return jsBezier.pointAlongCurveFrom(x,w,z)}};jsPlumb.Connectors.Flowchart=function(v){this.type=\"Flowchart\";v=v||{};var n=this,c=v.stub||v.minStubLength||30,f=jsPlumbUtil.isArray(c)?c[0]:c,k=jsPlumbUtil.isArray(c)?c[1]:c,p=v.gap||0,q=[],i=0,d=[],m=[],r=[],o,l,u=-Infinity,s=-Infinity,w=Infinity,t=Infinity,x=function(z,y,D,C){var B=0;for(var A=0;A<q.length;A++){m[A]=q[A][5]/i;d[A]=[B,(B+=(q[A][5]/i))]}},h=function(){r.push(q.length);for(var y=0;y<q.length;y++){r.push(q[y][0]);r.push(q[y][1])}},g=function(I,F,H,G,E,D){var A=q.length==0?H:q[q.length-1][0],z=q.length==0?G:q[q.length-1][1],B=I==A?Infinity:0,C=Math.abs(I==A?F-z:I-A);q.push([I,F,A,z,B,C]);i+=C;u=Math.max(u,I);s=Math.max(s,F);w=Math.min(w,I);t=Math.min(t,F)},e=function(A,C){if(C){A=A>0?A/i:(i+A)/i}var y=d.length-1,z=1;for(var B=0;B<d.length;B++){if(d[B][1]>=A){y=B;z=(A-d[B][0])/m[B];break}}return{segment:q[y],proportion:z,index:y}};this.compute=function(W,ak,z,Q,av,K,U,P,ap,am){q=[];d=[];i=0;m=[];u=s=-Infinity;w=t=Infinity;o=ak[0]<W[0];l=ak[1]<W[1];var aa=U||1,E=(aa/2)+(f+k),B=(aa/2)+(k+f),D=(aa/2)+(f+k),A=(aa/2)+(k+f),N=av.orientation||av.getOrientation(z),aw=K.orientation||K.getOrientation(Q),aj=o?ak[0]:W[0],ai=l?ak[1]:W[1],al=Math.abs(ak[0]-W[0])+E+B,au=Math.abs(ak[1]-W[1])+D+A;if(N[0]==0&&N[1]==0||aw[0]==0&&aw[1]==0){var ac=al>au?0:1,ae=[1,0][ac];N=[];aw=[];N[ac]=W[ac]>ak[ac]?-1:1;aw[ac]=W[ac]>ak[ac]?1:-1;N[ae]=0;aw[ae]=0}if(al<P){E+=(P-al)/2;al=P}if(au<P){D+=(P-au)/2;au=P}var I=o?(al-B)+(p*N[0]):E+(p*N[0]),H=l?(au-A)+(p*N[1]):D+(p*N[1]),ar=o?E+(p*aw[0]):(al-B)+(p*aw[0]),aq=l?D+(p*aw[1]):(au-A)+(p*aw[1]),Z=I+(N[0]*f),Y=H+(N[1]*f),L=ar+(aw[0]*k),J=aq+(aw[1]*k),V=Math.abs(I-ar)>(f+k),X=Math.abs(H-aq)>(f+k),ah=Z+((L-Z)/2),af=Y+((J-Y)/2),O=((N[0]*aw[0])+(N[1]*aw[1])),ab=O==-1,ad=O==0,C=O==1;aj-=E;ai-=D;r=[aj,ai,al,au,I,H,ar,aq];var ao=[];var S=N[0]==0?\"y\":\"x\",M=ab?\"opposite\":C?\"orthogonal\":\"perpendicular\",F=jsPlumbUtil.segment([I,H],[ar,aq]),ag=N[S==\"x\"?0:1]==-1,R={x:[null,4,3,2,1],y:[null,2,1,4,3]};if(ag){F=R[S][F]}g(Z,Y,I,H,ar,aq);var T=function(az,ay,y,ax){return az+(ay*((1-y)*ax)+Math.max(f,k))},G={oppositex:function(){if(z.elementId==Q.elementId){var y=Y+((1-av.y)*ap.height)+Math.max(f,k);return[[Z,y],[L,y]]}else{if(V&&(F==1||F==2)){return[[ah,H],[ah,aq]]}else{return[[Z,af],[L,af]]}}},orthogonalx:function(){if(F==1||F==2){return[[L,Y]]}else{return[[Z,J]]}},perpendicularx:function(){var y=(aq+H)/2;if((F==1&&aw[1]==1)||(F==2&&aw[1]==-1)){if(Math.abs(ar-I)>Math.max(f,k)){return[[L,Y]]}else{return[[Z,Y],[Z,y],[L,y]]}}else{if((F==3&&aw[1]==-1)||(F==4&&aw[1]==1)){return[[Z,y],[L,y]]}else{if((F==3&&aw[1]==1)||(F==4&&aw[1]==-1)){return[[Z,J]]}else{if((F==1&&aw[1]==-1)||(F==2&&aw[1]==1)){if(Math.abs(ar-I)>Math.max(f,k)){return[[ah,Y],[ah,J]]}else{return[[Z,J]]}}}}}},oppositey:function(){if(z.elementId==Q.elementId){var y=Z+((1-av.x)*ap.width)+Math.max(f,k);return[[y,Y],[y,J]]}else{if(X&&(F==2||F==3)){return[[I,af],[ar,af]]}else{return[[ah,Y],[ah,J]]}}},orthogonaly:function(){if(F==2||F==3){return[[Z,J]]}else{return[[L,Y]]}},perpendiculary:function(){var y=(ar+I)/2;if((F==2&&aw[0]==-1)||(F==3&&aw[0]==1)){if(Math.abs(ar-I)>Math.max(f,k)){return[[Z,J]]}else{return[[Z,af],[L,af]]}}else{if((F==1&&aw[0]==-1)||(F==4&&aw[0]==1)){var y=(ar+I)/2;return[[y,Y],[y,J]]}else{if((F==1&&aw[0]==1)||(F==4&&aw[0]==-1)){return[[L,Y]]}else{if((F==2&&aw[0]==1)||(F==3&&aw[0]==-1)){if(Math.abs(aq-H)>Math.max(f,k)){return[[Z,af],[L,af]]}else{return[[L,Y]]}}}}}}};var an=G[M+S]();if(an){for(var at=0;at<an.length;at++){g(an[at][0],an[at][1],I,H,ar,aq)}}g(L,J,I,H,ar,aq);g(ar,aq,I,H,ar,aq);h();x(I,H,ar,aq);if(s>r[3]){r[3]=s+(U*2)}if(u>r[2]){r[2]=u+(U*2)}return r};this.pointOnPath=function(y,z){return n.pointAlongPathFrom(y,0,z)};this.gradientAtPoint=function(y,z){return q[e(y,z)[\"index\"]][4]};this.pointAlongPathFrom=function(F,y,E){var G=e(F,E),C=G.segment,z=G.proportion,B=q[G.index][5],A=q[G.index][4];var D={x:A==Infinity?C[2]:C[2]>C[0]?C[0]+((1-z)*B)-y:C[2]+(z*B)+y,y:A==0?C[3]:C[3]>C[1]?C[1]+((1-z)*B)-y:C[3]+(z*B)+y,segmentInfo:G};return D}};jsPlumb.Endpoints.Dot=function(d){this.type=\"Dot\";var c=this;d=d||{};this.radius=d.radius||10;this.defaultOffset=0.5*this.radius;this.defaultInnerRadius=this.radius/3;this.compute=function(i,f,l,h){var g=l.radius||c.radius,e=i[0]-g,k=i[1]-g;return[e,k,g*2,g*2,g]}};jsPlumb.Endpoints.Rectangle=function(d){this.type=\"Rectangle\";var c=this;d=d||{};this.width=d.width||20;this.height=d.height||20;this.compute=function(k,g,m,i){var h=m.width||c.width,f=m.height||c.height,e=k[0]-(h/2),l=k[1]-(f/2);return[e,l,h,f]}};var a=function(e){jsPlumb.DOMElementComponent.apply(this,arguments);var c=this;var d=[];this.getDisplayElements=function(){return d};this.appendDisplayElement=function(f){d.push(f)}};jsPlumb.Endpoints.Image=function(g){this.type=\"Image\";a.apply(this,arguments);var l=this,f=false,e=g.width,d=g.height,i=null,c=g.endpoint;this.img=new Image();l.ready=false;this.img.onload=function(){l.ready=true;e=e||l.img.width;d=d||l.img.height;if(i){i(l)}};c.setImage=function(m,o){var n=m.constructor==String?m:m.src;i=o;l.img.src=m;if(l.canvas!=null){l.canvas.setAttribute(\"src\",m)}};c.setImage(g.src||g.url,g.onload);this.compute=function(o,m,p,n){l.anchorPoint=o;if(l.ready){return[o[0]-e/2,o[1]-d/2,e,d]}else{return[0,0,0,0]}};l.canvas=document.createElement(\"img\"),f=false;l.canvas.style.margin=0;l.canvas.style.padding=0;l.canvas.style.outline=0;l.canvas.style.position=\"absolute\";var h=g.cssClass?\" \"+g.cssClass:\"\";l.canvas.className=jsPlumb.endpointClass+h;if(e){l.canvas.setAttribute(\"width\",e)}if(d){l.canvas.setAttribute(\"height\",d)}jsPlumb.appendElement(l.canvas,g.parent);l.attachListeners(l.canvas,l);var k=function(p,o,n){if(!f){l.canvas.setAttribute(\"src\",l.img.src);l.appendDisplayElement(l.canvas);f=true}var m=l.anchorPoint[0]-(e/2),q=l.anchorPoint[1]-(d/2);jsPlumb.sizeCanvas(l.canvas,m,q,e,d)};this.paint=function(o,n,m){if(l.ready){k(o,n,m)}else{window.setTimeout(function(){l.paint(o,n,m)},200)}}};jsPlumb.Endpoints.Blank=function(d){var c=this;this.type=\"Blank\";a.apply(this,arguments);this.compute=function(g,e,h,f){return[g[0],g[1],10,0]};c.canvas=document.createElement(\"div\");c.canvas.style.display=\"block\";c.canvas.style.width=\"1px\";c.canvas.style.height=\"1px\";c.canvas.style.background=\"transparent\";c.canvas.style.position=\"absolute\";c.canvas.className=c._jsPlumb.endpointClass;jsPlumb.appendElement(c.canvas,d.parent);this.paint=function(g,f,e){jsPlumb.sizeCanvas(c.canvas,g[0],g[1],g[2],g[3])}};jsPlumb.Endpoints.Triangle=function(c){this.type=\"Triangle\";c=c||{};c.width=c.width||55;c.height=c.height||55;this.width=c.width;this.height=c.height;this.compute=function(i,f,l,h){var g=l.width||self.width,e=l.height||self.height,d=i[0]-(g/2),k=i[1]-(e/2);return[d,k,g,e]}};var b=function(e){var d=true,c=this;this.isAppendedAtTopLevel=true;this.component=e.component;this.loc=e.location==null?0.5:e.location;this.endpointLoc=e.endpointLocation==null?[0.5,0.5]:e.endpointLocation;this.setVisible=function(f){d=f;c.component.repaint()};this.isVisible=function(){return d};this.hide=function(){c.setVisible(false)};this.show=function(){c.setVisible(true)};this.incrementLocation=function(f){c.loc+=f;c.component.repaint()};this.setLocation=function(f){c.loc=f;c.component.repaint()};this.getLocation=function(){return c.loc}};jsPlumb.Overlays.Arrow=function(g){this.type=\"Arrow\";b.apply(this,arguments);this.isAppendedAtTopLevel=false;g=g||{};var d=this;this.length=g.length||20;this.width=g.width||20;this.id=g.id;var f=(g.direction||1)<0?-1:1,e=g.paintStyle||{lineWidth:1},c=g.foldback||0.623;this.computeMaxSize=function(){return d.width*1.5};this.cleanup=function(){};this.draw=function(k,z,u){var o,v,h,p,n;if(k.pointAlongPathFrom){if(jsPlumbUtil.isString(d.loc)||d.loc>1||d.loc<0){var i=parseInt(d.loc);o=k.pointAlongPathFrom(i,f*d.length/2,true),v=k.pointOnPath(i,true),h=jsPlumbUtil.pointOnLine(o,v,d.length)}else{if(d.loc==1){o=k.pointOnPath(d.loc);v=k.pointAlongPathFrom(d.loc,-1);h=jsPlumbUtil.pointOnLine(o,v,d.length)}else{if(d.loc==0){h=k.pointOnPath(d.loc);v=k.pointAlongPathFrom(d.loc,1);o=jsPlumbUtil.pointOnLine(h,v,d.length)}else{o=k.pointAlongPathFrom(d.loc,f*d.length/2),v=k.pointOnPath(d.loc),h=jsPlumbUtil.pointOnLine(o,v,d.length)}}}p=jsPlumbUtil.perpendicularLineTo(o,h,d.width);n=jsPlumbUtil.pointOnLine(o,h,c*d.length);var y=Math.min(o.x,p[0].x,p[1].x),s=Math.max(o.x,p[0].x,p[1].x),x=Math.min(o.y,p[0].y,p[1].y),r=Math.max(o.y,p[0].y,p[1].y);var q={hxy:o,tail:p,cxy:n},t=e.strokeStyle||z.strokeStyle,w=e.fillStyle||z.strokeStyle,m=e.lineWidth||z.lineWidth;d.paint(k,q,m,t,w,u);return[y,s,x,r]}else{return[0,0,0,0]}}};jsPlumb.Overlays.PlainArrow=function(d){d=d||{};var c=jsPlumb.extend(d,{foldback:1});jsPlumb.Overlays.Arrow.call(this,c);this.type=\"PlainArrow\"};jsPlumb.Overlays.Diamond=function(e){e=e||{};var c=e.length||40,d=jsPlumb.extend(e,{length:c/2,foldback:2});jsPlumb.Overlays.Arrow.call(this,d);this.type=\"Diamond\"};jsPlumb.Overlays.Label=function(i){this.type=\"Label\";jsPlumb.DOMElementComponent.apply(this,arguments);b.apply(this,arguments);this.labelStyle=i.labelStyle||jsPlumb.Defaults.LabelStyle;this.id=i.id;this.cachedDimensions=null;var e=i.label||\"\",c=this,f=false,k=document.createElement(\"div\"),g=null;k.style.position=\"absolute\";var d=i._jsPlumb.overlayClass+\" \"+(c.labelStyle.cssClass?c.labelStyle.cssClass:i.cssClass?i.cssClass:\"\");k.className=d;jsPlumb.appendElement(k,i.component.parent);jsPlumb.getId(k);c.attachListeners(k,c);c.canvas=k;var h=c.setVisible;c.setVisible=function(l){h(l);k.style.display=l?\"block\":\"none\"};this.getElement=function(){return k};this.cleanup=function(){if(k!=null){jsPlumb.CurrentLibrary.removeElement(k)}};this.setLabel=function(m){e=m;g=null;c.component.repaint()};this.getLabel=function(){return e};this.paint=function(l,n,m){if(!f){l.appendDisplayElement(k);c.attachListeners(k,l);f=true}k.style.left=(m[0]+n.minx)+\"px\";k.style.top=(m[1]+n.miny)+\"px\"};this.getTextDimensions=function(){if(typeof e==\"function\"){var l=e(c);k.innerHTML=l.replace(/\\r\\n/g,\"<br/>\")}else{if(g==null){g=e;k.innerHTML=g.replace(/\\r\\n/g,\"<br/>\")}}var n=jsPlumb.CurrentLibrary.getElementObject(k),m=jsPlumb.CurrentLibrary.getSize(n);return{width:m[0],height:m[1]}};this.computeMaxSize=function(l){var m=c.getTextDimensions(l);return m.width?Math.max(m.width,m.height)*1.5:0};this.draw=function(m,n,o){var s=c.getTextDimensions(m);if(s.width!=null){var p={x:0,y:0};if(m.pointOnPath){var q=c.loc,r=false;if(jsPlumbUtil.isString(c.loc)||c.loc<0||c.loc>1){q=parseInt(c.loc);r=true}p=m.pointOnPath(q,r)}else{var l=c.loc.constructor==Array?c.loc:c.endpointLoc;p={x:l[0]*o[2],y:l[1]*o[3]}}minx=p.x-(s.width/2),miny=p.y-(s.height/2);c.paint(m,{minx:minx,miny:miny,td:s,cxy:p},o);return[minx,minx+s.width,miny,miny+s.height]}else{return[0,0,0,0]}};this.reattachListeners=function(l){if(k){c.reattachListenersForElement(k,c,l)}}};jsPlumb.Overlays.GuideLines=function(){var c=this;c.length=50;c.lineWidth=5;this.type=\"GuideLines\";b.apply(this,arguments);jsPlumb.jsPlumbUIComponent.apply(this,arguments);this.draw=function(e,l,k){var i=e.pointAlongPathFrom(c.loc,c.length/2),h=e.pointOnPath(c.loc),g=jsPlumbUtil.pointOnLine(i,h,c.length),f=jsPlumbUtil.perpendicularLineTo(i,g,40),d=jsPlumbUtil.perpendicularLineTo(g,i,20);c.paint(e,[i,g,f,d],c.lineWidth,\"red\",null,k);return[Math.min(i.x,g.x),Math.min(i.y,g.y),Math.max(i.x,g.x),Math.max(i.y,g.y)]};this.computeMaxSize=function(){return 50};this.cleanup=function(){}}})();(function(){var c=function(e,g,d,f){this.m=(f-g)/(d-e);this.b=-1*((this.m*e)-g);this.rectIntersect=function(q,p,s,o){var n=[];var k=(p-this.b)/this.m;if(k>=q&&k<=(q+s)){n.push([k,(this.m*k)+this.b])}var t=(this.m*(q+s))+this.b;if(t>=p&&t<=(p+o)){n.push([(t-this.b)/this.m,t])}var k=((p+o)-this.b)/this.m;if(k>=q&&k<=(q+s)){n.push([k,(this.m*k)+this.b])}var t=(this.m*q)+this.b;if(t>=p&&t<=(p+o)){n.push([(t-this.b)/this.m,t])}if(n.length==2){var m=(n[0][0]+n[1][0])/2,l=(n[0][1]+n[1][1])/2;n.push([m,l]);var i=m<=q+(s/2)?-1:1,r=l<=p+(o/2)?-1:1;n.push([i,r]);return n}return null}},a=function(e,g,d,f){if(e<=d&&f<=g){return 1}else{if(e<=d&&g<=f){return 2}else{if(d<=e&&f>=g){return 3}}}return 4},b=function(g,f,i,e,h,m,l,d,k){if(d<=k){return[g,f]}if(i==1){if(e[3]<=0&&h[3]>=1){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]>=1&&h[2]<=0){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(-1*m),f+(-1*l)]}}}else{if(i==2){if(e[3]>=1&&h[3]<=0){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]>=1&&h[2]<=0){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(1*m),f+(-1*l)]}}}else{if(i==3){if(e[3]>=1&&h[3]<=0){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]<=0&&h[2]>=1){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(-1*m),f+(-1*l)]}}}else{if(i==4){if(e[3]<=0&&h[3]>=1){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]<=0&&h[2]>=1){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(1*m),f+(-1*l)]}}}}}}};jsPlumb.Connectors.StateMachine=function(l){var u=this,n=null,o,m,g,e,p=[],d=l.curviness||10,k=l.margin||5,q=l.proximityLimit||80,f=l.orientation&&l.orientation==\"clockwise\",i=l.loopbackRadius||25,h=false,t=l.showLoopback!==false;this.type=\"StateMachine\";l=l||{};this.compute=function(ad,H,W,I,ac,z,v,U){var Q=Math.abs(ad[0]-H[0]),Y=Math.abs(ad[1]-H[1]),S=0.45*Q,ab=0.45*Y;Q*=1.9;Y*=1.9;v=v||1;var O=Math.min(ad[0],H[0])-S,M=Math.min(ad[1],H[1])-ab;if(!t||(W.elementId!=I.elementId)){h=false;o=ad[0]<H[0]?S:Q-S;m=ad[1]<H[1]?ab:Y-ab;g=ad[0]<H[0]?Q-S:S;e=ad[1]<H[1]?Y-ab:ab;if(ad[2]==0){o-=k}if(ad[2]==1){o+=k}if(ad[3]==0){m-=k}if(ad[3]==1){m+=k}if(H[2]==0){g-=k}if(H[2]==1){g+=k}if(H[3]==0){e-=k}if(H[3]==1){e+=k}var N=(o+g)/2,L=(m+e)/2,A=(-1*N)/L,V=Math.atan(A),P=(A==Infinity||A==-Infinity)?0:Math.abs(d/2*Math.sin(V)),R=(A==Infinity||A==-Infinity)?0:Math.abs(d/2*Math.cos(V)),B=a(o,m,g,e),J=Math.sqrt(Math.pow(g-o,2)+Math.pow(e-m,2));p=b(N,L,B,ad,H,d,d,J,q);var G=Math.max(Math.abs(p[0]-o)*3,Math.abs(p[0]-g)*3,Math.abs(g-o),2*v,U),K=Math.max(Math.abs(p[1]-m)*3,Math.abs(p[1]-e)*3,Math.abs(e-m),2*v,U);if(Q<G){var T=G-Q;O-=(T/2);o+=(T/2);g+=(T/2);Q=G;p[0]+=(T/2)}if(Y<K){var aa=K-Y;M-=(aa/2);m+=(aa/2);e+=(aa/2);Y=K;p[1]+=(aa/2)}n=[O,M,Q,Y,o,m,g,e,p[0],p[1]]}else{h=true;var Z=ad[0],X=ad[0],F=ad[1]-k,D=ad[1]-k,E=Z,C=F-i;Q=((2*v)+(4*i)),Y=((2*v)+(4*i));O=E-i-v-i,M=C-i-v-i;n=[O,M,Q,Y,E-O,C-M,i,f,Z-O,F-M,X-O,D-M]}return n};var r=function(){return[{x:g,y:e},{x:p[0],y:p[1]},{x:p[0]+1,y:p[1]+1},{x:o,y:m}]};var s=function(w,v,x){if(x){v=jsBezier.locationAlongCurveFrom(w,v>0?0:1,v)}return v};this.pointOnPath=function(x,B){if(h){if(B){var y=Math.PI*2*i;x=x/y}if(x>0&&x<1){x=1-x}var z=(x*2*Math.PI)+(Math.PI/2),w=n[4]+(n[6]*Math.cos(z)),v=n[5]+(n[6]*Math.sin(z));return{x:w,y:v}}else{var A=r();x=s(A,x,B);return jsBezier.pointOnCurve(A,x)}};this.gradientAtPoint=function(v,y){if(h){if(y){var w=Math.PI*2*i;v=v/w}return Math.atan(v*2*Math.PI)}else{var x=r();v=s(x,v,y);return jsBezier.gradientAtPoint(x,v)}};this.pointAlongPathFrom=function(D,v,C){if(h){if(C){var B=Math.PI*2*i;D=D/B}if(D>0&&D<1){D=1-D}var B=2*Math.PI*n[6],w=v/B*2*Math.PI,z=(D*2*Math.PI)-w+(Math.PI/2),y=n[4]+(n[6]*Math.cos(z)),x=n[5]+(n[6]*Math.sin(z));return{x:y,y:x}}else{var A=r();D=s(A,D,C);return jsBezier.pointAlongCurveFrom(A,D,v)}}};jsPlumb.Connectors.canvas.StateMachine=function(f){f=f||{};var d=this,g=f.drawGuideline||true,e=f.avoidSelector;jsPlumb.Connectors.StateMachine.apply(this,arguments);jsPlumb.CanvasConnector.apply(this,arguments);this._paint=function(l){if(l.length==10){d.ctx.beginPath();d.ctx.moveTo(l[4],l[5]);d.ctx.bezierCurveTo(l[8],l[9],l[8],l[9],l[6],l[7]);d.ctx.stroke()}else{d.ctx.save();d.ctx.beginPath();var k=0,i=2*Math.PI,h=l[7];d.ctx.arc(l[4],l[5],l[6],0,i,h);d.ctx.stroke();d.ctx.closePath();d.ctx.restore()}};this.createGradient=function(i,h){return h.createLinearGradient(i[4],i[5],i[6],i[7])}};jsPlumb.Connectors.svg.StateMachine=function(){var d=this;jsPlumb.Connectors.StateMachine.apply(this,arguments);jsPlumb.SvgConnector.apply(this,arguments);this.getPath=function(e){if(e.length==10){return\"M \"+e[4]+\" \"+e[5]+\" C \"+e[8]+\" \"+e[9]+\" \"+e[8]+\" \"+e[9]+\" \"+e[6]+\" \"+e[7]}else{return\"M\"+(e[8]+4)+\" \"+e[9]+\" A \"+e[6]+\" \"+e[6]+\" 0 1,0 \"+(e[8]-4)+\" \"+e[9]}}};jsPlumb.Connectors.vml.StateMachine=function(){jsPlumb.Connectors.StateMachine.apply(this,arguments);jsPlumb.VmlConnector.apply(this,arguments);var d=jsPlumb.vml.convertValue;this.getPath=function(k){if(k.length==10){return\"m\"+d(k[4])+\",\"+d(k[5])+\" c\"+d(k[8])+\",\"+d(k[9])+\",\"+d(k[8])+\",\"+d(k[9])+\",\"+d(k[6])+\",\"+d(k[7])+\" e\"}else{var h=d(k[8]-k[6]),g=d(k[9]-(2*k[6])),f=h+d(2*k[6]),e=g+d(2*k[6]),l=h+\",\"+g+\",\"+f+\",\"+e;var i=\"ar \"+l+\",\"+d(k[8])+\",\"+d(k[9])+\",\"+d(k[8])+\",\"+d(k[9])+\" e\";return i}}}})();(function(){var h={\"stroke-linejoin\":\"joinstyle\",joinstyle:\"joinstyle\",endcap:\"endcap\",miterlimit:\"miterlimit\"},c=null;if(document.createStyleSheet&&document.namespaces){var m=[\".jsplumb_vml\",\"jsplumb\\\\:textbox\",\"jsplumb\\\\:oval\",\"jsplumb\\\\:rect\",\"jsplumb\\\\:stroke\",\"jsplumb\\\\:shape\",\"jsplumb\\\\:group\"],g=\"behavior:url(#default#VML);position:absolute;\";c=document.createStyleSheet();for(var r=0;r<m.length;r++){c.addRule(m[r],g)}document.namespaces.add(\"jsplumb\",\"urn:schemas-microsoft-com:vml\")}jsPlumb.vml={};var t=1000,s={},a=function(u,i){var w=jsPlumb.getId(u),v=s[w];if(!v){v=f(\"group\",[0,0,t,t],{\"class\":i});v.style.backgroundColor=\"red\";s[w]=v;jsPlumb.appendElement(v,u)}return v},e=function(v,w){for(var u in w){v[u]=w[u]}},f=function(u,x,y,v,i){y=y||{};var w=document.createElement(\"jsplumb:\"+u);i.appendElement(w,v);w.className=(y[\"class\"]?y[\"class\"]+\" \":\"\")+\"jsplumb_vml\";k(w,x);e(w,y);return w},k=function(u,i){u.style.left=i[0]+\"px\";u.style.top=i[1]+\"px\";u.style.width=i[2]+\"px\";u.style.height=i[3]+\"px\";u.style.position=\"absolute\"},p=jsPlumb.vml.convertValue=function(i){return Math.floor(i*t)},b=function(w,u,v,i){if(\"transparent\"===u){i.setOpacity(v,\"0.0\")}else{i.setOpacity(v,\"1.0\")}},q=function(y,u,B,C){var x={};if(u.strokeStyle){x.stroked=\"true\";var D=jsPlumbUtil.convertStyle(u.strokeStyle,true);x.strokecolor=D;b(x,D,\"stroke\",B);x.strokeweight=u.lineWidth+\"px\"}else{x.stroked=\"false\"}if(u.fillStyle){x.filled=\"true\";var v=jsPlumbUtil.convertStyle(u.fillStyle,true);x.fillcolor=v;b(x,v,\"fill\",B)}else{x.filled=\"false\"}if(u.dashstyle){if(B.strokeNode==null){B.strokeNode=f(\"stroke\",[0,0,0,0],{dashstyle:u.dashstyle},y,C)}else{B.strokeNode.dashstyle=u.dashstyle}}else{if(u[\"stroke-dasharray\"]&&u.lineWidth){var E=u[\"stroke-dasharray\"].indexOf(\",\")==-1?\" \":\",\",z=u[\"stroke-dasharray\"].split(E),w=\"\";for(var A=0;A<z.length;A++){w+=(Math.floor(z[A]/u.lineWidth)+E)}if(B.strokeNode==null){B.strokeNode=f(\"stroke\",[0,0,0,0],{dashstyle:w},y,C)}else{B.strokeNode.dashstyle=w}}}e(y,x)},n=function(){var i=this;jsPlumb.jsPlumbUIComponent.apply(this,arguments);this.opacityNodes={stroke:null,fill:null};this.initOpacityNodes=function(v){i.opacityNodes.stroke=f(\"stroke\",[0,0,1,1],{opacity:\"0.0\"},v,i._jsPlumb);i.opacityNodes.fill=f(\"fill\",[0,0,1,1],{opacity:\"0.0\"},v,i._jsPlumb)};this.setOpacity=function(v,x){var w=i.opacityNodes[v];if(w){w.opacity=\"\"+x}};var u=[];this.getDisplayElements=function(){return u};this.appendDisplayElement=function(w,v){if(!v){i.canvas.parentNode.appendChild(w)}u.push(w)}},d=jsPlumb.VmlConnector=function(v){var i=this;i.strokeNode=null;i.canvas=null;n.apply(this,arguments);var u=i._jsPlumb.connectorClass+(v.cssClass?(\" \"+v.cssClass):\"\");this.paint=function(A,x,z){if(x!=null){var E=i.getPath(A),y={path:E};if(x.outlineColor){var C=x.outlineWidth||1,D=x.lineWidth+(2*C),B={strokeStyle:jsPlumbUtil.convertStyle(x.outlineColor),lineWidth:D};for(var w in h){B[w]=x[w]}if(i.bgCanvas==null){y[\"class\"]=u;y.coordsize=(A[2]*t)+\",\"+(A[3]*t);i.bgCanvas=f(\"shape\",A,y,v.parent,i._jsPlumb);k(i.bgCanvas,A);i.appendDisplayElement(i.bgCanvas,true);i.attachListeners(i.bgCanvas,i);i.initOpacityNodes(i.bgCanvas,[\"stroke\"])}else{y.coordsize=(A[2]*t)+\",\"+(A[3]*t);k(i.bgCanvas,A);e(i.bgCanvas,y)}q(i.bgCanvas,B,i)}if(i.canvas==null){y[\"class\"]=u;y.coordsize=(A[2]*t)+\",\"+(A[3]*t);if(i.tooltip){y.label=i.tooltip}i.canvas=f(\"shape\",A,y,v.parent,i._jsPlumb);i.appendDisplayElement(i.canvas,true);i.attachListeners(i.canvas,i);i.initOpacityNodes(i.canvas,[\"stroke\"])}else{y.coordsize=(A[2]*t)+\",\"+(A[3]*t);k(i.canvas,A);e(i.canvas,y)}q(i.canvas,x,i,i._jsPlumb)}};this.reattachListeners=function(){if(i.canvas){i.reattachListenersForElement(i.canvas,i)}}},l=window.VmlEndpoint=function(y){n.apply(this,arguments);var i=null,v=this,u=null,x=null;v.canvas=document.createElement(\"div\");v.canvas.style.position=\"absolute\";var w=v._jsPlumb.endpointClass+(y.cssClass?(\" \"+y.cssClass):\"\");y._jsPlumb.appendElement(v.canvas,y.parent);if(v.tooltip){v.canvas.setAttribute(\"label\",v.tooltip)}this.paint=function(C,A,z){var B={};jsPlumb.sizeCanvas(v.canvas,C[0],C[1],C[2],C[3]);if(i==null){B[\"class\"]=w;i=v.getVml([0,0,C[2],C[3]],B,z,v.canvas,v._jsPlumb);v.attachListeners(i,v);v.appendDisplayElement(i,true);v.appendDisplayElement(v.canvas,true);v.initOpacityNodes(i,[\"fill\"])}else{k(i,[0,0,C[2],C[3]]);e(i,B)}q(i,A,v)};this.reattachListeners=function(){if(i){v.reattachListenersForElement(i,v)}}};jsPlumb.Connectors.vml.Bezier=function(){jsPlumb.Connectors.Bezier.apply(this,arguments);d.apply(this,arguments);this.getPath=function(i){return\"m\"+p(i[4])+\",\"+p(i[5])+\" c\"+p(i[8])+\",\"+p(i[9])+\",\"+p(i[10])+\",\"+p(i[11])+\",\"+p(i[6])+\",\"+p(i[7])+\" e\"}};jsPlumb.Connectors.vml.Straight=function(){jsPlumb.Connectors.Straight.apply(this,arguments);d.apply(this,arguments);this.getPath=function(i){return\"m\"+p(i[4])+\",\"+p(i[5])+\" l\"+p(i[6])+\",\"+p(i[7])+\" e\"}};jsPlumb.Connectors.vml.Flowchart=function(){jsPlumb.Connectors.Flowchart.apply(this,arguments);d.apply(this,arguments);this.getPath=function(v){var w=\"m \"+p(v[4])+\",\"+p(v[5])+\" l\";for(var u=0;u<v[8];u++){w=w+\" \"+p(v[9+(u*2)])+\",\"+p(v[10+(u*2)])}w=w+\" \"+p(v[6])+\",\"+p(v[7])+\" e\";return w}};jsPlumb.Endpoints.vml.Dot=function(){jsPlumb.Endpoints.Dot.apply(this,arguments);l.apply(this,arguments);this.getVml=function(w,x,u,v,i){return f(\"oval\",w,x,v,i)}};jsPlumb.Endpoints.vml.Rectangle=function(){jsPlumb.Endpoints.Rectangle.apply(this,arguments);l.apply(this,arguments);this.getVml=function(w,x,u,v,i){return f(\"rect\",w,x,v,i)}};jsPlumb.Endpoints.vml.Image=jsPlumb.Endpoints.Image;jsPlumb.Endpoints.vml.Blank=jsPlumb.Endpoints.Blank;jsPlumb.Overlays.vml.Label=jsPlumb.Overlays.Label;var o=function(x,v){x.apply(this,v);n.apply(this,v);var u=this,w=null;u.canvas=null;u.isAppendedAtTopLevel=true;var i=function(z,y){return\"m \"+p(z.hxy.x)+\",\"+p(z.hxy.y)+\" l \"+p(z.tail[0].x)+\",\"+p(z.tail[0].y)+\" \"+p(z.cxy.x)+\",\"+p(z.cxy.y)+\" \"+p(z.tail[1].x)+\",\"+p(z.tail[1].y)+\" x e\"};this.paint=function(B,G,F,H,L,K){var z={};if(H){z.stroked=\"true\";z.strokecolor=jsPlumbUtil.convertStyle(H,true)}if(F){z.strokeweight=F+\"px\"}if(L){z.filled=\"true\";z.fillcolor=L}var y=Math.min(G.hxy.x,G.tail[0].x,G.tail[1].x,G.cxy.x),J=Math.min(G.hxy.y,G.tail[0].y,G.tail[1].y,G.cxy.y),C=Math.max(G.hxy.x,G.tail[0].x,G.tail[1].x,G.cxy.x),A=Math.max(G.hxy.y,G.tail[0].y,G.tail[1].y,G.cxy.y),I=Math.abs(C-y),E=Math.abs(A-J),D=[y,J,I,E];z.path=i(G,K);z.coordsize=(K[2]*t)+\",\"+(K[3]*t);D[0]=K[0];D[1]=K[1];D[2]=K[2];D[3]=K[3];if(u.canvas==null){u.canvas=f(\"shape\",D,z,B.canvas.parentNode,B._jsPlumb);B.appendDisplayElement(u.canvas,true);u.attachListeners(u.canvas,B);u.attachListeners(u.canvas,u)}else{k(u.canvas,D);e(u.canvas,z)}};this.reattachListeners=function(){if(u.canvas){u.reattachListenersForElement(u.canvas,u)}};this.cleanup=function(){if(u.canvas!=null){jsPlumb.CurrentLibrary.removeElement(u.canvas)}}};jsPlumb.Overlays.vml.Arrow=function(){o.apply(this,[jsPlumb.Overlays.Arrow,arguments])};jsPlumb.Overlays.vml.PlainArrow=function(){o.apply(this,[jsPlumb.Overlays.PlainArrow,arguments])};jsPlumb.Overlays.vml.Diamond=function(){o.apply(this,[jsPlumb.Overlays.Diamond,arguments])}})();(function(){var l={joinstyle:\"stroke-linejoin\",\"stroke-linejoin\":\"stroke-linejoin\",\"stroke-dashoffset\":\"stroke-dashoffset\",\"stroke-linecap\":\"stroke-linecap\"},w=\"stroke-dasharray\",A=\"dashstyle\",e=\"linearGradient\",b=\"radialGradient\",c=\"fill\",a=\"stop\",z=\"stroke\",q=\"stroke-width\",h=\"style\",m=\"none\",t=\"jsplumb_gradient_\",o=\"lineWidth\",C={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\"},g=function(F,D){for(var E in D){F.setAttribute(E,\"\"+D[E])}},f=function(E,D){var F=document.createElementNS(C.svg,E);D=D||{};D.version=\"1.1\";D.xmlns=C.xhtml;g(F,D);return F},n=function(D){return\"position:absolute;left:\"+D[0]+\"px;top:\"+D[1]+\"px\"},i=function(E){for(var D=0;D<E.childNodes.length;D++){if(E.childNodes[D].tagName==e||E.childNodes[D].tagName==b){E.removeChild(E.childNodes[D])}}},v=function(N,I,F,D,J){var G=t+J._jsPlumb.idstamp();i(N);if(!F.gradient.offset){var L=f(e,{id:G,gradientUnits:\"userSpaceOnUse\"});N.appendChild(L)}else{var L=f(b,{id:G});N.appendChild(L)}for(var K=0;K<F.gradient.stops.length;K++){var H=K;if(D.length==8){H=D[4]<D[6]?K:F.gradient.stops.length-1-K}else{H=D[4]<D[6]?F.gradient.stops.length-1-K:K}var M=jsPlumbUtil.convertStyle(F.gradient.stops[H][1],true);var O=f(a,{offset:Math.floor(F.gradient.stops[K][0]*100)+\"%\",\"stop-color\":M});L.appendChild(O)}var E=F.strokeStyle?z:c;I.setAttribute(h,E+\":url(#\"+G+\")\")},x=function(K,G,E,D,H){if(E.gradient){v(K,G,E,D,H)}else{i(K);G.setAttribute(h,\"\")}G.setAttribute(c,E.fillStyle?jsPlumbUtil.convertStyle(E.fillStyle,true):m);G.setAttribute(z,E.strokeStyle?jsPlumbUtil.convertStyle(E.strokeStyle,true):m);if(E.lineWidth){G.setAttribute(q,E.lineWidth)}if(E[A]&&E[o]&&!E[w]){var L=E[A].indexOf(\",\")==-1?\" \":\",\",I=E[A].split(L),F=\"\";I.forEach(function(M){F+=(Math.floor(M*E.lineWidth)+L)});G.setAttribute(w,F)}else{if(E[w]){G.setAttribute(w,E[w])}}for(var J in l){if(E[J]){G.setAttribute(l[J],E[J])}}},B=function(F){var D=/([0-9].)(p[xt])\\s(.*)/;var E=F.match(D);return{size:E[1]+E[2],font:E[3]}},r=function(I,J,E){var K=E.split(\" \"),H=I.className,G=H.baseVal.split(\" \");for(var F=0;F<K.length;F++){if(J){if(G.indexOf(K[F])==-1){G.push(K[F])}}else{var D=G.indexOf(K[F]);if(D!=-1){G.splice(D,1)}}}I.className.baseVal=G.join(\" \")},u=function(E,D){r(E,true,D)},k=function(E,D){r(E,false,D)};jsPlumbUtil.svg={addClass:u,removeClass:k,node:f,attr:g,pos:n};var s=function(H){var D=this,G=H.pointerEventsSpec||\"all\";jsPlumb.jsPlumbUIComponent.apply(this,H.originalArgs);D.canvas=null,D.path=null,D.svg=null;var F=H.cssClass+\" \"+(H.originalArgs[0].cssClass||\"\"),I={style:\"\",width:0,height:0,\"pointer-events\":G,position:\"absolute\"};if(D.tooltip){I.title=D.tooltip}D.svg=f(\"svg\",I);if(H.useDivWrapper){D.canvas=document.createElement(\"div\");D.canvas.style.position=\"absolute\";jsPlumb.sizeCanvas(D.canvas,0,0,1,1);D.canvas.className=F;if(D.tooltip){D.canvas.setAttribute(\"title\",D.tooltip)}}else{g(D.svg,{\"class\":F});D.canvas=D.svg}H._jsPlumb.appendElement(D.canvas,H.originalArgs[0][\"parent\"]);if(H.useDivWrapper){D.canvas.appendChild(D.svg)}var E=[D.canvas];this.getDisplayElements=function(){return E};this.appendDisplayElement=function(J){E.push(J)};this.paint=function(M,L,K){if(L!=null){var J=M[0],N=M[1];if(H.useDivWrapper){jsPlumb.sizeCanvas(D.canvas,M[0],M[1],M[2],M[3]);J=0,N=0}g(D.svg,{style:n([J,N,M[2],M[3]]),width:M[2],height:M[3]});D._paint.apply(this,arguments)}}};var d=jsPlumb.SvgConnector=function(E){var D=this;s.apply(this,[{cssClass:E._jsPlumb.connectorClass,originalArgs:arguments,pointerEventsSpec:\"none\",tooltip:E.tooltip,_jsPlumb:E._jsPlumb}]);this._paint=function(L,H){var K=D.getPath(L),F={d:K},J=null;F[\"pointer-events\"]=\"all\";if(H.outlineColor){var I=H.outlineWidth||1,G=H.lineWidth+(2*I),J=jsPlumb.CurrentLibrary.extend({},H);J.strokeStyle=jsPlumbUtil.convertStyle(H.outlineColor);J.lineWidth=G;if(D.bgPath==null){D.bgPath=f(\"path\",F);D.svg.appendChild(D.bgPath);D.attachListeners(D.bgPath,D)}else{g(D.bgPath,F)}x(D.svg,D.bgPath,J,L,D)}if(D.path==null){D.path=f(\"path\",F);D.svg.appendChild(D.path);D.attachListeners(D.path,D)}else{g(D.path,F)}x(D.svg,D.path,H,L,D)};this.reattachListeners=function(){if(D.bgPath){D.reattachListenersForElement(D.bgPath,D)}if(D.path){D.reattachListenersForElement(D.path,D)}}};jsPlumb.Connectors.svg.Bezier=function(D){jsPlumb.Connectors.Bezier.apply(this,arguments);d.apply(this,arguments);this.getPath=function(F){var E=\"M \"+F[4]+\" \"+F[5];E+=(\" C \"+F[8]+\" \"+F[9]+\" \"+F[10]+\" \"+F[11]+\" \"+F[6]+\" \"+F[7]);return E}};jsPlumb.Connectors.svg.Straight=function(D){jsPlumb.Connectors.Straight.apply(this,arguments);d.apply(this,arguments);this.getPath=function(E){return\"M \"+E[4]+\" \"+E[5]+\" L \"+E[6]+\" \"+E[7]}};jsPlumb.Connectors.svg.Flowchart=function(){var D=this;jsPlumb.Connectors.Flowchart.apply(this,arguments);d.apply(this,arguments);this.getPath=function(F){var G=\"M \"+F[4]+\",\"+F[5];for(var E=0;E<F[8];E++){G=G+\" L \"+F[9+(E*2)]+\" \"+F[10+(E*2)]}G=G+\" \"+F[6]+\",\"+F[7];return G}};var y=window.SvgEndpoint=function(E){var D=this;s.apply(this,[{cssClass:E._jsPlumb.endpointClass,originalArgs:arguments,pointerEventsSpec:\"all\",useDivWrapper:true,_jsPlumb:E._jsPlumb}]);this._paint=function(H,G){var F=jsPlumb.extend({},G);if(F.outlineColor){F.strokeWidth=F.outlineWidth;F.strokeStyle=jsPlumbUtil.convertStyle(F.outlineColor,true)}if(D.node==null){D.node=D.makeNode(H,F);D.svg.appendChild(D.node);D.attachListeners(D.node,D)}x(D.svg,D.node,F,H,D);n(D.node,H)};this.reattachListeners=function(){if(D.node){D.reattachListenersForElement(D.node,D)}}};jsPlumb.Endpoints.svg.Dot=function(){jsPlumb.Endpoints.Dot.apply(this,arguments);y.apply(this,arguments);this.makeNode=function(E,D){return f(\"circle\",{cx:E[2]/2,cy:E[3]/2,r:E[2]/2})}};jsPlumb.Endpoints.svg.Rectangle=function(){jsPlumb.Endpoints.Rectangle.apply(this,arguments);y.apply(this,arguments);this.makeNode=function(E,D){return f(\"rect\",{width:E[2],height:E[3]})}};jsPlumb.Endpoints.svg.Image=jsPlumb.Endpoints.Image;jsPlumb.Endpoints.svg.Blank=jsPlumb.Endpoints.Blank;jsPlumb.Overlays.svg.Label=jsPlumb.Overlays.Label;var p=function(H,F){H.apply(this,F);jsPlumb.jsPlumbUIComponent.apply(this,F);this.isAppendedAtTopLevel=false;var D=this,G=null;this.paint=function(J,M,I,N,K){if(G==null){G=f(\"path\",{\"pointer-events\":\"all\"});J.svg.appendChild(G);D.attachListeners(G,J);D.attachListeners(G,D)}var L=F&&(F.length==1)?(F[0].cssClass||\"\"):\"\";g(G,{d:E(M),\"class\":L,stroke:N?N:null,fill:K?K:null})};var E=function(I){return\"M\"+I.hxy.x+\",\"+I.hxy.y+\" L\"+I.tail[0].x+\",\"+I.tail[0].y+\" L\"+I.cxy.x+\",\"+I.cxy.y+\" L\"+I.tail[1].x+\",\"+I.tail[1].y+\" L\"+I.hxy.x+\",\"+I.hxy.y};this.reattachListeners=function(){if(G){D.reattachListenersForElement(G,D)}};this.cleanup=function(){if(G!=null){jsPlumb.CurrentLibrary.removeElement(G)}}};jsPlumb.Overlays.svg.Arrow=function(){p.apply(this,[jsPlumb.Overlays.Arrow,arguments])};jsPlumb.Overlays.svg.PlainArrow=function(){p.apply(this,[jsPlumb.Overlays.PlainArrow,arguments])};jsPlumb.Overlays.svg.Diamond=function(){p.apply(this,[jsPlumb.Overlays.Diamond,arguments])};jsPlumb.Overlays.svg.GuideLines=function(){var I=null,D=this,H=null,G,F;jsPlumb.Overlays.GuideLines.apply(this,arguments);this.paint=function(K,M,J,N,L){if(I==null){I=f(\"path\");K.svg.appendChild(I);D.attachListeners(I,K);D.attachListeners(I,D);G=f(\"path\");K.svg.appendChild(G);D.attachListeners(G,K);D.attachListeners(G,D);F=f(\"path\");K.svg.appendChild(F);D.attachListeners(F,K);D.attachListeners(F,D)}g(I,{d:E(M[0],M[1]),stroke:\"red\",fill:null});g(G,{d:E(M[2][0],M[2][1]),stroke:\"blue\",fill:null});g(F,{d:E(M[3][0],M[3][1]),stroke:\"green\",fill:null})};var E=function(K,J){return\"M \"+K.x+\",\"+K.y+\" L\"+J.x+\",\"+J.y}}})();(function(){var d=null,i=function(p,o){return jsPlumb.CurrentLibrary.hasClass(a(p),o)},a=function(o){return jsPlumb.CurrentLibrary.getElementObject(o)},m=function(o){return jsPlumb.CurrentLibrary.getOffset(a(o))},n=function(o){return jsPlumb.CurrentLibrary.getPageXY(o)},f=function(o){return jsPlumb.CurrentLibrary.getClientXY(o)};var k=function(){var q=this;q.overlayPlacements=[];jsPlumb.jsPlumbUIComponent.apply(this,arguments);jsPlumbUtil.EventGenerator.apply(this,arguments);this._over=function(z){var B=m(a(q.canvas)),D=n(z),u=D[0]-B.left,C=D[1]-B.top;if(u>0&&C>0&&u<q.canvas.width&&C<q.canvas.height){for(var v=0;v<q.overlayPlacements.length;v++){var w=q.overlayPlacements[v];if(w&&(w[0]<=u&&w[1]>=u&&w[2]<=C&&w[3]>=C)){return true}}var A=q.canvas.getContext(\"2d\").getImageData(parseInt(u),parseInt(C),1,1);return A.data[0]!=0||A.data[1]!=0||A.data[2]!=0||A.data[3]!=0}return false};var p=false,o=false,t=null,s=false,r=function(v,u){return v!=null&&i(v,u)};this.mousemove=function(x){var z=n(x),w=f(x),v=document.elementFromPoint(w[0],w[1]),y=r(v,\"_jsPlumb_overlay\");var u=d==null&&(r(v,\"_jsPlumb_endpoint\")||r(v,\"_jsPlumb_connector\"));if(!p&&u&&q._over(x)){p=true;q.fire(\"mouseenter\",q,x);return true}else{if(p&&(!q._over(x)||!u)&&!y){p=false;q.fire(\"mouseexit\",q,x)}}q.fire(\"mousemove\",q,x)};this.click=function(u){if(p&&q._over(u)&&!s){q.fire(\"click\",q,u)}s=false};this.dblclick=function(u){if(p&&q._over(u)&&!s){q.fire(\"dblclick\",q,u)}s=false};this.mousedown=function(u){if(q._over(u)&&!o){o=true;t=m(a(q.canvas));q.fire(\"mousedown\",q,u)}};this.mouseup=function(u){o=false;q.fire(\"mouseup\",q,u)};this.contextmenu=function(u){if(p&&q._over(u)&&!s){q.fire(\"contextmenu\",q,u)}s=false}};var c=function(p){var o=document.createElement(\"canvas\");p._jsPlumb.appendElement(o,p.parent);o.style.position=\"absolute\";if(p[\"class\"]){o.className=p[\"class\"]}p._jsPlumb.getId(o,p.uuid);if(p.tooltip){o.setAttribute(\"title\",p.tooltip)}return o};var l=function(p){k.apply(this,arguments);var o=[];this.getDisplayElements=function(){return o};this.appendDisplayElement=function(q){o.push(q)}};var h=jsPlumb.CanvasConnector=function(r){l.apply(this,arguments);var o=function(v,t){p.ctx.save();jsPlumb.extend(p.ctx,t);if(t.gradient){var u=p.createGradient(v,p.ctx);for(var s=0;s<t.gradient.stops.length;s++){u.addColorStop(t.gradient.stops[s][0],t.gradient.stops[s][1])}p.ctx.strokeStyle=u}p._paint(v,t);p.ctx.restore()};var p=this,q=p._jsPlumb.connectorClass+\" \"+(r.cssClass||\"\");p.canvas=c({\"class\":q,_jsPlumb:p._jsPlumb,parent:r.parent,tooltip:r.tooltip});p.ctx=p.canvas.getContext(\"2d\");p.appendDisplayElement(p.canvas);p.paint=function(w,t){if(t!=null){jsPlumb.sizeCanvas(p.canvas,w[0],w[1],w[2],w[3]);if(t.outlineColor!=null){var v=t.outlineWidth||1,s=t.lineWidth+(2*v),u={strokeStyle:t.outlineColor,lineWidth:s};o(w,u)}o(w,t)}}};var b=function(r){var p=this;l.apply(this,arguments);var q=p._jsPlumb.endpointClass+\" \"+(r.cssClass||\"\"),o={\"class\":q,_jsPlumb:p._jsPlumb,parent:r.parent,tooltip:p.tooltip};p.canvas=c(o);p.ctx=p.canvas.getContext(\"2d\");p.appendDisplayElement(p.canvas);this.paint=function(x,u,s){jsPlumb.sizeCanvas(p.canvas,x[0],x[1],x[2],x[3]);if(u.outlineColor!=null){var w=u.outlineWidth||1,t=u.lineWidth+(2*w);var v={strokeStyle:u.outlineColor,lineWidth:t}}p._paint.apply(this,arguments)}};jsPlumb.Endpoints.canvas.Dot=function(r){jsPlumb.Endpoints.Dot.apply(this,arguments);b.apply(this,arguments);var q=this,p=function(s){try{return parseInt(s)}catch(t){if(s.substring(s.length-1)==\"%\"){return parseInt(s.substring(0,s-1))}}},o=function(u){var s=q.defaultOffset,t=q.defaultInnerRadius;u.offset&&(s=p(u.offset));u.innerRadius&&(t=p(u.innerRadius));return[s,t]};this._paint=function(A,t,x){if(t!=null){var B=q.canvas.getContext(\"2d\"),u=x.getOrientation(q);jsPlumb.extend(B,t);if(t.gradient){var v=o(t.gradient),y=u[1]==1?v[0]*-1:v[0],s=u[0]==1?v[0]*-1:v[0],z=B.createRadialGradient(A[4],A[4],A[4],A[4]+s,A[4]+y,v[1]);for(var w=0;w<t.gradient.stops.length;w++){z.addColorStop(t.gradient.stops[w][0],t.gradient.stops[w][1])}B.fillStyle=z}B.beginPath();B.arc(A[4],A[4],A[4],0,Math.PI*2,true);B.closePath();if(t.fillStyle||t.gradient){B.fill()}if(t.strokeStyle){B.stroke()}}}};jsPlumb.Endpoints.canvas.Rectangle=function(p){var o=this;jsPlumb.Endpoints.Rectangle.apply(this,arguments);b.apply(this,arguments);this._paint=function(x,r,v){var A=o.canvas.getContext(\"2d\"),t=v.getOrientation(o);jsPlumb.extend(A,r);if(r.gradient){var z=t[1]==1?x[3]:t[1]==0?x[3]/2:0;var y=t[1]==-1?x[3]:t[1]==0?x[3]/2:0;var s=t[0]==1?x[2]:t[0]==0?x[2]/2:0;var q=t[0]==-1?x[2]:t[0]==0?x[2]/2:0;var w=A.createLinearGradient(s,z,q,y);for(var u=0;u<r.gradient.stops.length;u++){w.addColorStop(r.gradient.stops[u][0],r.gradient.stops[u][1])}A.fillStyle=w}A.beginPath();A.rect(0,0,x[2],x[3]);A.closePath();if(r.fillStyle||r.gradient){A.fill()}if(r.strokeStyle){A.stroke()}}};jsPlumb.Endpoints.canvas.Triangle=function(p){var o=this;jsPlumb.Endpoints.Triangle.apply(this,arguments);b.apply(this,arguments);this._paint=function(z,q,v){var s=z[2],C=z[3],B=z[0],A=z[1],D=o.canvas.getContext(\"2d\"),w=0,u=0,t=0,r=v.getOrientation(o);if(r[0]==1){w=s;u=C;t=180}if(r[1]==-1){w=s;t=90}if(r[1]==1){u=C;t=-90}D.fillStyle=q.fillStyle;D.translate(w,u);D.rotate(t*Math.PI/180);D.beginPath();D.moveTo(0,0);D.lineTo(s/2,C/2);D.lineTo(0,C);D.closePath();if(q.fillStyle||q.gradient){D.fill()}if(q.strokeStyle){D.stroke()}}};jsPlumb.Endpoints.canvas.Image=jsPlumb.Endpoints.Image;jsPlumb.Endpoints.canvas.Blank=jsPlumb.Endpoints.Blank;jsPlumb.Connectors.canvas.Bezier=function(){var o=this;jsPlumb.Connectors.Bezier.apply(this,arguments);h.apply(this,arguments);this._paint=function(q,p){o.ctx.beginPath();o.ctx.moveTo(q[4],q[5]);o.ctx.bezierCurveTo(q[8],q[9],q[10],q[11],q[6],q[7]);o.ctx.stroke()};this.createGradient=function(r,p,q){return o.ctx.createLinearGradient(r[6],r[7],r[4],r[5])}};jsPlumb.Connectors.canvas.Straight=function(){var p=this,o=[null,[1,-1],[1,1],[-1,1],[-1,-1]];jsPlumb.Connectors.Straight.apply(this,arguments);h.apply(this,arguments);this._paint=function(r,t){p.ctx.beginPath();if(t.dashstyle&&t.dashstyle.split(\" \").length==2){var v=t.dashstyle.split(\" \");if(v.length!=2){v=[2,2]}var C=[v[0]*t.lineWidth,v[1]*t.lineWidth],y=(r[6]-r[4])/(r[7]-r[5]),G=jsPlumbUtil.segment([r[4],r[5]],[r[6],r[7]]),x=o[G],u=Math.atan(y),z=Math.sqrt(Math.pow(r[6]-r[4],2)+Math.pow(r[7]-r[5],2)),B=Math.floor(z/(C[0]+C[1])),w=[r[4],r[5]];for(var A=0;A<B;A++){p.ctx.moveTo(w[0],w[1]);var q=w[0]+(Math.abs(Math.sin(u)*C[0])*x[0]),F=w[1]+(Math.abs(Math.cos(u)*C[0])*x[1]),E=w[0]+(Math.abs(Math.sin(u)*(C[0]+C[1]))*x[0]),D=w[1]+(Math.abs(Math.cos(u)*(C[0]+C[1]))*x[1]);p.ctx.lineTo(q,F);w=[E,D]}p.ctx.moveTo(w[0],w[1]);p.ctx.lineTo(r[6],r[7])}else{p.ctx.moveTo(r[4],r[5]);p.ctx.lineTo(r[6],r[7])}p.ctx.stroke()};this.createGradient=function(r,q){return q.createLinearGradient(r[4],r[5],r[6],r[7])}};jsPlumb.Connectors.canvas.Flowchart=function(){var o=this;jsPlumb.Connectors.Flowchart.apply(this,arguments);h.apply(this,arguments);this._paint=function(r,q){o.ctx.beginPath();o.ctx.moveTo(r[4],r[5]);for(var p=0;p<r[8];p++){o.ctx.lineTo(r[9+(p*2)],r[10+(p*2)])}o.ctx.lineTo(r[6],r[7]);o.ctx.stroke()};this.createGradient=function(q,p){return p.createLinearGradient(q[4],q[5],q[6],q[7])}};jsPlumb.Overlays.canvas.Label=jsPlumb.Overlays.Label;var g=function(){jsPlumb.jsPlumbUIComponent.apply(this,arguments)};var e=function(p,o){p.apply(this,o);g.apply(this,o);this.paint=function(s,u,q,v,t){var r=s.ctx;r.lineWidth=q;r.beginPath();r.moveTo(u.hxy.x,u.hxy.y);r.lineTo(u.tail[0].x,u.tail[0].y);r.lineTo(u.cxy.x,u.cxy.y);r.lineTo(u.tail[1].x,u.tail[1].y);r.lineTo(u.hxy.x,u.hxy.y);r.closePath();if(v){r.strokeStyle=v;r.stroke()}if(t){r.fillStyle=t;r.fill()}}};jsPlumb.Overlays.canvas.Arrow=function(){e.apply(this,[jsPlumb.Overlays.Arrow,arguments])};jsPlumb.Overlays.canvas.PlainArrow=function(){e.apply(this,[jsPlumb.Overlays.PlainArrow,arguments])};jsPlumb.Overlays.canvas.Diamond=function(){e.apply(this,[jsPlumb.Overlays.Diamond,arguments])}})();(function(a){jsPlumb.CurrentLibrary={addClass:function(c,b){c=jsPlumb.CurrentLibrary.getElementObject(c);try{if(c[0].className.constructor==SVGAnimatedString){jsPlumb.util.svg.addClass(c[0],b)}}catch(d){}c.addClass(b)},animate:function(d,c,b){d.animate(c,b)},appendElement:function(c,b){jsPlumb.CurrentLibrary.getElementObject(b).append(c)},ajax:function(b){b=b||{};b.type=b.type||\"get\";a.ajax(b)},bind:function(b,c,d){b=jsPlumb.CurrentLibrary.getElementObject(b);b.bind(c,d)},dragEvents:{start:\"start\",stop:\"stop\",drag:\"drag\",step:\"step\",over:\"over\",out:\"out\",drop:\"drop\",complete:\"complete\"},extend:function(c,b){return a.extend(c,b)},getAttribute:function(b,c){return b.attr(c)},getClientXY:function(b){return[b.clientX,b.clientY]},getDocumentElement:function(){return document},getDragObject:function(b){return b[1].draggable},getDragScope:function(b){return b.draggable(\"option\",\"scope\")},getDropEvent:function(b){return b[0]},getDropScope:function(b){return b.droppable(\"option\",\"scope\")},getDOMElement:function(b){if(typeof(b)==\"string\"){return document.getElementById(b)}else{if(b.context){return b[0]}else{return b}}},getElementObject:function(b){return typeof(b)==\"string\"?a(\"#\"+b):a(b)},getOffset:function(b){return b.offset()},getOriginalEvent:function(b){return b.originalEvent},getPageXY:function(b){return[b.pageX,b.pageY]},getParent:function(b){return jsPlumb.CurrentLibrary.getElementObject(b).parent()},getScrollLeft:function(b){return b.scrollLeft()},getScrollTop:function(b){return b.scrollTop()},getSelector:function(b){return a(b)},getSize:function(b){return[b.outerWidth(),b.outerHeight()]},getTagName:function(b){var c=jsPlumb.CurrentLibrary.getElementObject(b);return c.length>0?c[0].tagName:null},getUIPosition:function(c){if(c.length==1){ret={left:c[0].pageX,top:c[0].pageY}}else{var d=c[1],b=d.offset;ret=b||d.absolutePosition}return ret},hasClass:function(c,b){return c.hasClass(b)},initDraggable:function(c,b,d){b=b||{};b.helper=null;if(d){b.scope=b.scope||jsPlumb.Defaults.Scope}c.draggable(b)},initDroppable:function(c,b){b.scope=b.scope||jsPlumb.Defaults.Scope;c.droppable(b)},isAlreadyDraggable:function(b){b=jsPlumb.CurrentLibrary.getElementObject(b);return b.hasClass(\"ui-draggable\")},isDragSupported:function(c,b){return c.draggable},isDropSupported:function(c,b){return c.droppable},removeClass:function(c,b){c=jsPlumb.CurrentLibrary.getElementObject(c);try{if(c[0].className.constructor==SVGAnimatedString){jsPlumb.util.svg.removeClass(c[0],b)}}catch(d){}c.removeClass(b)},removeElement:function(b,c){jsPlumb.CurrentLibrary.getElementObject(b).remove()},setAttribute:function(c,d,b){c.attr(d,b)},setDraggable:function(c,b){c.draggable(\"option\",\"disabled\",!b)},setDragScope:function(c,b){c.draggable(\"option\",\"scope\",b)},setOffset:function(b,c){jsPlumb.CurrentLibrary.getElementObject(b).offset(c)},trigger:function(d,e,b){var c=jQuery._data(jsPlumb.CurrentLibrary.getElementObject(d)[0],\"handle\");c(b)},unbind:function(b,c,d){b=jsPlumb.CurrentLibrary.getElementObject(b);b.unbind(c,d)}};a(document).ready(jsPlumb.init)})(jQuery);(function(){\"undefined\"==typeof Math.sgn&&(Math.sgn=function(l){return 0==l?0:0<l?1:-1});var d={subtract:function(m,l){return{x:m.x-l.x,y:m.y-l.y}},dotProduct:function(m,l){return m.x*l.x+m.y*l.y},square:function(l){return Math.sqrt(l.x*l.x+l.y*l.y)},scale:function(m,l){return{x:m.x*l,y:m.y*l}}},f=Math.pow(2,-65),h=function(y,x){for(var t=[],v=x.length-1,r=2*v-1,s=[],w=[],p=[],q=[],o=[[1,0.6,0.3,0.1],[0.4,0.6,0.6,0.4],[0.1,0.3,0.6,1]],u=0;u<=v;u++){s[u]=d.subtract(x[u],y)}for(u=0;u<=v-1;u++){w[u]=d.subtract(x[u+1],x[u]);w[u]=d.scale(w[u],3)}for(u=0;u<=v-1;u++){for(var m=0;m<=v;m++){p[u]||(p[u]=[]);p[u][m]=d.dotProduct(w[u],s[m])}}for(u=0;u<=r;u++){q[u]||(q[u]=[]);q[u].y=0;q[u].x=parseFloat(u)/r}r=v-1;for(s=0;s<=v+r;s++){u=Math.max(0,s-r);for(w=Math.min(s,v);u<=w;u++){j=s-u;q[u+j].y=q[u+j].y+p[j][u]*o[j][u]}}v=x.length-1;q=a(q,2*v-1,t,0);r=d.subtract(y,x[0]);p=d.square(r);for(u=o=0;u<q;u++){r=d.subtract(y,k(x,v,t[u],null,null));r=d.square(r);if(r<p){p=r;o=t[u]}}r=d.subtract(y,x[v]);r=d.square(r);if(r<p){p=r;o=1}return{location:o,distance:p}},a=function(C,B,x,z){var v=[],w=[],A=[],t=[],u=0,s,y;y=Math.sgn(C[0].y);for(var q=1;q<=B;q++){s=Math.sgn(C[q].y);s!=y&&u++;y=s}switch(u){case 0:return 0;case 1:if(z>=64){x[0]=(C[0].x+C[B].x)/2;return 1}var p,u=C[0].y-C[B].y;y=C[B].x-C[0].x;q=C[0].x*C[B].y-C[B].x*C[0].y;s=max_distance_below=0;for(p=1;p<B;p++){var r=u*C[p].x+y*C[p].y+q;r>s?s=r:r<max_distance_below&&(max_distance_below=r)}p=y;s=(1*(q-s)-p*0)*(1/(0*p-u*1));p=y;y=q-max_distance_below;u=(1*y-p*0)*(1/(0*p-u*1));y=Math.min(s,u);if(Math.max(s,u)-y<f){A=C[B].x-C[0].x;t=C[B].y-C[0].y;x[0]=0+1*(A*(C[0].y-0)-t*(C[0].x-0))*(1/(A*0-t*1));return 1}}k(C,B,0.5,v,w);C=a(v,B,A,z+1);B=a(w,B,t,z+1);for(z=0;z<C;z++){x[z]=A[z]}for(z=0;z<B;z++){x[z+C]=t[z]}return C+B},k=function(m,l,p,q,n){for(var o=[[]],r=0;r<=l;r++){o[0][r]=m[r]}for(m=1;m<=l;m++){for(r=0;r<=l-m;r++){o[m]||(o[m]=[]);o[m][r]||(o[m][r]={});o[m][r].x=(1-p)*o[m-1][r].x+p*o[m-1][r+1].x;o[m][r].y=(1-p)*o[m-1][r].y+p*o[m-1][r+1].y}}if(q!=null){for(r=0;r<=l;r++){q[r]=o[r][0]}}if(n!=null){for(r=0;r<=l;r++){n[r]=o[l-r][r]}}return o[l][0]},g={},e=function(t){var s=g[t];if(!s){var s=[],p=function(u){return function(){return u}},q=function(){return function(u){return u}},n=function(){return function(u){return 1-u}},o=function(u){return function(v){for(var x=1,w=0;w<u.length;w++){x=x*u[w](v)}return x}};s.push(new function(){return function(u){return Math.pow(u,t)}});for(var r=1;r<t;r++){for(var l=[new p(t)],m=0;m<t-r;m++){l.push(new q)}for(m=0;m<r;m++){l.push(new n)}s.push(new o(l))}s.push(new function(){return function(u){return Math.pow(1-u,t)}});g[t]=s}return s},c=function(m,l){for(var p=e(m.length-1),q=0,n=0,o=0;o<m.length;o++){q=q+m[o].x*p[o](l);n=n+m[o].y*p[o](l)}return{x:q,y:n}},b=function(m,l,p){for(var q=c(m,l),n=0,o=p>0?1:-1,r=null;n<Math.abs(p);){l=l+0.005*o;r=c(m,l);n=n+Math.sqrt(Math.pow(r.x-q.x,2)+Math.pow(r.y-q.y,2));q=r}return{point:r,location:l}},i=function(m,l){var o=c(m,l),p=c(m.slice(0,m.length-1),l),n=p.y-o.y,o=p.x-o.x;return n==0?Infinity:Math.atan(n/o)};window.jsBezier={distanceFromCurve:h,gradientAtPoint:i,gradientAtPointAlongCurveFrom:function(m,l,n){l=b(m,l,n);if(l.location>1){l.location=1}if(l.location<0){l.location=0}return i(m,l.location)},nearestPointOnCurve:function(m,l){var n=h(m,l);return{point:k(l,l.length-1,n.location,null,null),location:n.location}},pointOnCurve:c,pointAlongCurveFrom:function(m,l,n){return b(m,l,n).point},perpendicularToCurveAt:function(m,l,n,o){l=b(m,l,o==null?0:o);m=i(m,l.location);o=Math.atan(-1/m);m=n/2*Math.sin(o);n=n/2*Math.cos(o);return[{x:l.point.x+n,y:l.point.y+m},{x:l.point.x-n,y:l.point.y-m}]},locationAlongCurveFrom:function(m,l,n){return b(m,l,n).location}}})();\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! jQuery UI - v1.11.4 - 2015-03-11\n* http://jqueryui.com\n* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js\n* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */\n\n(function( factory ) {\n\tif ( true ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n/*!\n * jQuery UI Core 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\n\n// $.ui might exist from components with no dependencies, e.g., $.ui.position\n$.ui = $.ui || {};\n\n$.extend( $.ui, {\n\tversion: \"1.11.4\",\n\n\tkeyCode: {\n\t\tBACKSPACE: 8,\n\t\tCOMMA: 188,\n\t\tDELETE: 46,\n\t\tDOWN: 40,\n\t\tEND: 35,\n\t\tENTER: 13,\n\t\tESCAPE: 27,\n\t\tHOME: 36,\n\t\tLEFT: 37,\n\t\tPAGE_DOWN: 34,\n\t\tPAGE_UP: 33,\n\t\tPERIOD: 190,\n\t\tRIGHT: 39,\n\t\tSPACE: 32,\n\t\tTAB: 9,\n\t\tUP: 38\n\t}\n});\n\n// plugins\n$.fn.extend({\n\tscrollParent: function( includeHidden ) {\n\t\tvar position = this.css( \"position\" ),\n\t\t\texcludeStaticParent = position === \"absolute\",\n\t\t\toverflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\n\t\t\tscrollParent = this.parents().filter( function() {\n\t\t\t\tvar parent = $( this );\n\t\t\t\tif ( excludeStaticParent && parent.css( \"position\" ) === \"static\" ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn overflowRegex.test( parent.css( \"overflow\" ) + parent.css( \"overflow-y\" ) + parent.css( \"overflow-x\" ) );\n\t\t\t}).eq( 0 );\n\n\t\treturn position === \"fixed\" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;\n\t},\n\n\tuniqueId: (function() {\n\t\tvar uuid = 0;\n\n\t\treturn function() {\n\t\t\treturn this.each(function() {\n\t\t\t\tif ( !this.id ) {\n\t\t\t\t\tthis.id = \"ui-id-\" + ( ++uuid );\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t})(),\n\n\tremoveUniqueId: function() {\n\t\treturn this.each(function() {\n\t\t\tif ( /^ui-id-\\d+$/.test( this.id ) ) {\n\t\t\t\t$( this ).removeAttr( \"id\" );\n\t\t\t}\n\t\t});\n\t}\n});\n\n// selectors\nfunction focusable( element, isTabIndexNotNaN ) {\n\tvar map, mapName, img,\n\t\tnodeName = element.nodeName.toLowerCase();\n\tif ( \"area\" === nodeName ) {\n\t\tmap = element.parentNode;\n\t\tmapName = map.name;\n\t\tif ( !element.href || !mapName || map.nodeName.toLowerCase() !== \"map\" ) {\n\t\t\treturn false;\n\t\t}\n\t\timg = $( \"img[usemap='#\" + mapName + \"']\" )[ 0 ];\n\t\treturn !!img && visible( img );\n\t}\n\treturn ( /^(input|select|textarea|button|object)$/.test( nodeName ) ?\n\t\t!element.disabled :\n\t\t\"a\" === nodeName ?\n\t\t\telement.href || isTabIndexNotNaN :\n\t\t\tisTabIndexNotNaN) &&\n\t\t// the element and all of its ancestors must be visible\n\t\tvisible( element );\n}\n\nfunction visible( element ) {\n\treturn $.expr.filters.visible( element ) &&\n\t\t!$( element ).parents().addBack().filter(function() {\n\t\t\treturn $.css( this, \"visibility\" ) === \"hidden\";\n\t\t}).length;\n}\n\n$.extend( $.expr[ \":\" ], {\n\tdata: $.expr.createPseudo ?\n\t\t$.expr.createPseudo(function( dataName ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn !!$.data( elem, dataName );\n\t\t\t};\n\t\t}) :\n\t\t// support: jQuery <1.8\n\t\tfunction( elem, i, match ) {\n\t\t\treturn !!$.data( elem, match[ 3 ] );\n\t\t},\n\n\tfocusable: function( element ) {\n\t\treturn focusable( element, !isNaN( $.attr( element, \"tabindex\" ) ) );\n\t},\n\n\ttabbable: function( element ) {\n\t\tvar tabIndex = $.attr( element, \"tabindex\" ),\n\t\t\tisTabIndexNaN = isNaN( tabIndex );\n\t\treturn ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );\n\t}\n});\n\n// support: jQuery <1.8\nif ( !$( \"<a>\" ).outerWidth( 1 ).jquery ) {\n\t$.each( [ \"Width\", \"Height\" ], function( i, name ) {\n\t\tvar side = name === \"Width\" ? [ \"Left\", \"Right\" ] : [ \"Top\", \"Bottom\" ],\n\t\t\ttype = name.toLowerCase(),\n\t\t\torig = {\n\t\t\t\tinnerWidth: $.fn.innerWidth,\n\t\t\t\tinnerHeight: $.fn.innerHeight,\n\t\t\t\touterWidth: $.fn.outerWidth,\n\t\t\t\touterHeight: $.fn.outerHeight\n\t\t\t};\n\n\t\tfunction reduce( elem, size, border, margin ) {\n\t\t\t$.each( side, function() {\n\t\t\t\tsize -= parseFloat( $.css( elem, \"padding\" + this ) ) || 0;\n\t\t\t\tif ( border ) {\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"border\" + this + \"Width\" ) ) || 0;\n\t\t\t\t}\n\t\t\t\tif ( margin ) {\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"margin\" + this ) ) || 0;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn size;\n\t\t}\n\n\t\t$.fn[ \"inner\" + name ] = function( size ) {\n\t\t\tif ( size === undefined ) {\n\t\t\t\treturn orig[ \"inner\" + name ].call( this );\n\t\t\t}\n\n\t\t\treturn this.each(function() {\n\t\t\t\t$( this ).css( type, reduce( this, size ) + \"px\" );\n\t\t\t});\n\t\t};\n\n\t\t$.fn[ \"outer\" + name] = function( size, margin ) {\n\t\t\tif ( typeof size !== \"number\" ) {\n\t\t\t\treturn orig[ \"outer\" + name ].call( this, size );\n\t\t\t}\n\n\t\t\treturn this.each(function() {\n\t\t\t\t$( this).css( type, reduce( this, size, true, margin ) + \"px\" );\n\t\t\t});\n\t\t};\n\t});\n}\n\n// support: jQuery <1.8\nif ( !$.fn.addBack ) {\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)\nif ( $( \"<a>\" ).data( \"a-b\", \"a\" ).removeData( \"a-b\" ).data( \"a-b\" ) ) {\n\t$.fn.removeData = (function( removeData ) {\n\t\treturn function( key ) {\n\t\t\tif ( arguments.length ) {\n\t\t\t\treturn removeData.call( this, $.camelCase( key ) );\n\t\t\t} else {\n\t\t\t\treturn removeData.call( this );\n\t\t\t}\n\t\t};\n\t})( $.fn.removeData );\n}\n\n// deprecated\n$.ui.ie = !!/msie [\\w.]+/.exec( navigator.userAgent.toLowerCase() );\n\n$.fn.extend({\n\tfocus: (function( orig ) {\n\t\treturn function( delay, fn ) {\n\t\t\treturn typeof delay === \"number\" ?\n\t\t\t\tthis.each(function() {\n\t\t\t\t\tvar elem = this;\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t$( elem ).focus();\n\t\t\t\t\t\tif ( fn ) {\n\t\t\t\t\t\t\tfn.call( elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay );\n\t\t\t\t}) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t})( $.fn.focus ),\n\n\tdisableSelection: (function() {\n\t\tvar eventType = \"onselectstart\" in document.createElement( \"div\" ) ?\n\t\t\t\"selectstart\" :\n\t\t\t\"mousedown\";\n\n\t\treturn function() {\n\t\t\treturn this.bind( eventType + \".ui-disableSelection\", function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t});\n\t\t};\n\t})(),\n\n\tenableSelection: function() {\n\t\treturn this.unbind( \".ui-disableSelection\" );\n\t},\n\n\tzIndex: function( zIndex ) {\n\t\tif ( zIndex !== undefined ) {\n\t\t\treturn this.css( \"zIndex\", zIndex );\n\t\t}\n\n\t\tif ( this.length ) {\n\t\t\tvar elem = $( this[ 0 ] ), position, value;\n\t\t\twhile ( elem.length && elem[ 0 ] !== document ) {\n\t\t\t\t// Ignore z-index if position is set to a value where z-index is ignored by the browser\n\t\t\t\t// This makes behavior of this function consistent across browsers\n\t\t\t\t// WebKit always returns auto if the element is positioned\n\t\t\t\tposition = elem.css( \"position\" );\n\t\t\t\tif ( position === \"absolute\" || position === \"relative\" || position === \"fixed\" ) {\n\t\t\t\t\t// IE returns 0 when zIndex is not specified\n\t\t\t\t\t// other browsers return a string\n\t\t\t\t\t// we ignore the case of nested elements with an explicit value of 0\n\t\t\t\t\t// <div style=\"z-index: -10;\"><div style=\"z-index: 0;\"></div></div>\n\t\t\t\t\tvalue = parseInt( elem.css( \"zIndex\" ), 10 );\n\t\t\t\t\tif ( !isNaN( value ) && value !== 0 ) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telem = elem.parent();\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n});\n\n// $.ui.plugin is deprecated. Use $.widget() extensions instead.\n$.ui.plugin = {\n\tadd: function( module, option, set ) {\n\t\tvar i,\n\t\t\tproto = $.ui[ module ].prototype;\n\t\tfor ( i in set ) {\n\t\t\tproto.plugins[ i ] = proto.plugins[ i ] || [];\n\t\t\tproto.plugins[ i ].push( [ option, set[ i ] ] );\n\t\t}\n\t},\n\tcall: function( instance, name, args, allowDisconnected ) {\n\t\tvar i,\n\t\t\tset = instance.plugins[ name ];\n\n\t\tif ( !set ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( i = 0; i < set.length; i++ ) {\n\t\t\tif ( instance.options[ set[ i ][ 0 ] ] ) {\n\t\t\t\tset[ i ][ 1 ].apply( instance.element, args );\n\t\t\t}\n\t\t}\n\t}\n};\n\n\n/*!\n * jQuery UI Widget 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/jQuery.widget/\n */\n\n\nvar widget_uuid = 0,\n\twidget_slice = Array.prototype.slice;\n\n$.cleanData = (function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; (elem = elems[i]) != null; i++ ) {\n\t\t\ttry {\n\n\t\t\t\t// Only trigger remove when necessary to save time\n\t\t\t\tevents = $._data( elem, \"events\" );\n\t\t\t\tif ( events && events.remove ) {\n\t\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t\t}\n\n\t\t\t// http://bugs.jquery.com/ticket/8235\n\t\t\t} catch ( e ) {}\n\t\t}\n\t\torig( elems );\n\t};\n})( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar fullName, existingConstructor, constructor, basePrototype,\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\n\t\tproxiedPrototype = {},\n\t\tnamespace = name.split( \".\" )[ 0 ];\n\n\tname = name.split( \".\" )[ 1 ];\n\tfullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\t// create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\t\t// allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\t// extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\t\t// copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\t\t// track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t});\n\n\tbasePrototype = new base();\n\t// we need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = (function() {\n\t\t\tvar _super = function() {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t\t},\n\t\t\t\t_superApply = function( args ) {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t\t};\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super,\n\t\t\t\t\t__superApply = this._superApply,\n\t\t\t\t\treturnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t})();\n\t});\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t});\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\n\t\t});\n\t\t// remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widget_slice.call( arguments, 1 ),\n\t\tinputIndex = 0,\n\t\tinputLength = input.length,\n\t\tkey,\n\t\tvalue;\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\",\n\t\t\targs = widget_slice.call( arguments, 1 ),\n\t\t\treturnValue = this;\n\n\t\tif ( isMethodCall ) {\n\t\t\tthis.each(function() {\n\t\t\t\tvar methodValue,\n\t\t\t\t\tinstance = $.data( this, fullName );\n\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\treturnValue = instance;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif ( !instance ) {\n\t\t\t\t\treturn $.error( \"cannot call methods on \" + name + \" prior to initialization; \" +\n\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t}\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\n\t\t\t\t}\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\tmethodValue;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat(args) );\n\t\t\t}\n\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"<div>\",\n\toptions: {\n\t\tdisabled: false,\n\n\t\t// callbacks\n\t\tcreate: null\n\t},\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widget_uuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.document = $( element.style ?\n\t\t\t\t// element within the document\n\t\t\t\telement.ownerDocument :\n\t\t\t\t// element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\t_getCreateOptions: $.noop,\n\t_getCreateEventData: $.noop,\n\t_create: $.noop,\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tthis._destroy();\n\t\t// we can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName )\n\t\t\t// support: jquery <1.6.3\n\t\t\t// http://bugs.jquery.com/ticket/9413\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\n\t\tthis.widget()\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeClass(\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\n\t\t\t\t\"ui-state-disabled\" );\n\n\t\t// clean up events and states\n\t\tthis.bindings.unbind( this.eventNamespace );\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t},\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key,\n\t\t\tparts,\n\t\t\tcurOption,\n\t\t\ti;\n\n\t\tif ( arguments.length === 0 ) {\n\t\t\t// don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\t_setOption: function( key, value ) {\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget()\n\t\t\t\t.toggleClass( this.widgetFullName + \"-disabled\", !!value );\n\n\t\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\t\tif ( value ) {\n\t\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions({ disabled: false });\n\t},\n\tdisable: function() {\n\t\treturn this._setOptions({ disabled: true });\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement,\n\t\t\tinstance = this;\n\n\t\t// no suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// no element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\t\t\t\t// allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ ),\n\t\t\t\teventName = match[1] + instance.eventNamespace,\n\t\t\t\tselector = match[2];\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.bind( eventName, handlerProxy );\n\t\t\t}\n\t\t});\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.unbind( eventName ).undelegate( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig,\n\t\t\tcallback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\t\t// the original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\t\tvar hasOptions,\n\t\t\teffectName = !options ?\n\t\t\t\tmethod :\n\t\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\t\tdefaultEffect :\n\t\t\t\t\toptions.effect || defaultEffect;\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue(function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t});\n\t\t}\n\t};\n});\n\nvar widget = $.widget;\n\n\n/*!\n * jQuery UI Mouse 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/mouse/\n */\n\n\nvar mouseHandled = false;\n$( document ).mouseup( function() {\n\tmouseHandled = false;\n});\n\nvar mouse = $.widget(\"ui.mouse\", {\n\tversion: \"1.11.4\",\n\toptions: {\n\t\tcancel: \"input,textarea,button,select,option\",\n\t\tdistance: 1,\n\t\tdelay: 0\n\t},\n\t_mouseInit: function() {\n\t\tvar that = this;\n\n\t\tthis.element\n\t\t\t.bind(\"mousedown.\" + this.widgetName, function(event) {\n\t\t\t\treturn that._mouseDown(event);\n\t\t\t})\n\t\t\t.bind(\"click.\" + this.widgetName, function(event) {\n\t\t\t\tif (true === $.data(event.target, that.widgetName + \".preventClickEvent\")) {\n\t\t\t\t\t$.removeData(event.target, that.widgetName + \".preventClickEvent\");\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis.started = false;\n\t},\n\n\t// TODO: make sure destroying one instance of mouse doesn't mess with\n\t// other instances of mouse\n\t_mouseDestroy: function() {\n\t\tthis.element.unbind(\".\" + this.widgetName);\n\t\tif ( this._mouseMoveDelegate ) {\n\t\t\tthis.document\n\t\t\t\t.unbind(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate)\n\t\t\t\t.unbind(\"mouseup.\" + this.widgetName, this._mouseUpDelegate);\n\t\t}\n\t},\n\n\t_mouseDown: function(event) {\n\t\t// don't let more than one widget handle mouseStart\n\t\tif ( mouseHandled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._mouseMoved = false;\n\n\t\t// we may have missed mouseup (out of window)\n\t\t(this._mouseStarted && this._mouseUp(event));\n\n\t\tthis._mouseDownEvent = event;\n\n\t\tvar that = this,\n\t\t\tbtnIsLeft = (event.which === 1),\n\t\t\t// event.target.nodeName works around a bug in IE 8 with\n\t\t\t// disabled inputs (#7620)\n\t\t\telIsCancel = (typeof this.options.cancel === \"string\" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);\n\t\tif (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.mouseDelayMet = !this.options.delay;\n\t\tif (!this.mouseDelayMet) {\n\t\t\tthis._mouseDelayTimer = setTimeout(function() {\n\t\t\t\tthat.mouseDelayMet = true;\n\t\t\t}, this.options.delay);\n\t\t}\n\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\n\t\t\tthis._mouseStarted = (this._mouseStart(event) !== false);\n\t\t\tif (!this._mouseStarted) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Click event may never have fired (Gecko & Opera)\n\t\tif (true === $.data(event.target, this.widgetName + \".preventClickEvent\")) {\n\t\t\t$.removeData(event.target, this.widgetName + \".preventClickEvent\");\n\t\t}\n\n\t\t// these delegates are required to keep context\n\t\tthis._mouseMoveDelegate = function(event) {\n\t\t\treturn that._mouseMove(event);\n\t\t};\n\t\tthis._mouseUpDelegate = function(event) {\n\t\t\treturn that._mouseUp(event);\n\t\t};\n\n\t\tthis.document\n\t\t\t.bind( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.bind( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\n\t\tevent.preventDefault();\n\n\t\tmouseHandled = true;\n\t\treturn true;\n\t},\n\n\t_mouseMove: function(event) {\n\t\t// Only check for mouseups outside the document if you've moved inside the document\n\t\t// at least once. This prevents the firing of mouseup in the case of IE<9, which will\n\t\t// fire a mousemove event if content is placed under the cursor. See #7778\n\t\t// Support: IE <9\n\t\tif ( this._mouseMoved ) {\n\t\t\t// IE mouseup check - mouseup happened when mouse was out of window\n\t\t\tif ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {\n\t\t\t\treturn this._mouseUp(event);\n\n\t\t\t// Iframe mouseup check - mouseup occurred in another document\n\t\t\t} else if ( !event.which ) {\n\t\t\t\treturn this._mouseUp( event );\n\t\t\t}\n\t\t}\n\n\t\tif ( event.which || event.button ) {\n\t\t\tthis._mouseMoved = true;\n\t\t}\n\n\t\tif (this._mouseStarted) {\n\t\t\tthis._mouseDrag(event);\n\t\t\treturn event.preventDefault();\n\t\t}\n\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\n\t\t\tthis._mouseStarted =\n\t\t\t\t(this._mouseStart(this._mouseDownEvent, event) !== false);\n\t\t\t(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));\n\t\t}\n\n\t\treturn !this._mouseStarted;\n\t},\n\n\t_mouseUp: function(event) {\n\t\tthis.document\n\t\t\t.unbind( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.unbind( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\n\t\tif (this._mouseStarted) {\n\t\t\tthis._mouseStarted = false;\n\n\t\t\tif (event.target === this._mouseDownEvent.target) {\n\t\t\t\t$.data(event.target, this.widgetName + \".preventClickEvent\", true);\n\t\t\t}\n\n\t\t\tthis._mouseStop(event);\n\t\t}\n\n\t\tmouseHandled = false;\n\t\treturn false;\n\t},\n\n\t_mouseDistanceMet: function(event) {\n\t\treturn (Math.max(\n\t\t\t\tMath.abs(this._mouseDownEvent.pageX - event.pageX),\n\t\t\t\tMath.abs(this._mouseDownEvent.pageY - event.pageY)\n\t\t\t) >= this.options.distance\n\t\t);\n\t},\n\n\t_mouseDelayMet: function(/* event */) {\n\t\treturn this.mouseDelayMet;\n\t},\n\n\t// These are placeholder methods, to be overriden by extending plugin\n\t_mouseStart: function(/* event */) {},\n\t_mouseDrag: function(/* event */) {},\n\t_mouseStop: function(/* event */) {},\n\t_mouseCapture: function(/* event */) { return true; }\n});\n\n\n/*!\n * jQuery UI Position 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/position/\n */\n\n(function() {\n\n$.ui = $.ui || {};\n\nvar cachedScrollbarWidth, supportsOffsetFractions,\n\tmax = Math.max,\n\tabs = Math.abs,\n\tround = Math.round,\n\trhorizontal = /left|center|right/,\n\trvertical = /top|center|bottom/,\n\troffset = /[\\+\\-]\\d+(\\.[\\d]+)?%?/,\n\trposition = /^\\w+/,\n\trpercent = /%$/,\n\t_position = $.fn.position;\n\nfunction getOffsets( offsets, width, height ) {\n\treturn [\n\t\tparseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),\n\t\tparseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )\n\t];\n}\n\nfunction parseCss( element, property ) {\n\treturn parseInt( $.css( element, property ), 10 ) || 0;\n}\n\nfunction getDimensions( elem ) {\n\tvar raw = elem[0];\n\tif ( raw.nodeType === 9 ) {\n\t\treturn {\n\t\t\twidth: elem.width(),\n\t\t\theight: elem.height(),\n\t\t\toffset: { top: 0, left: 0 }\n\t\t};\n\t}\n\tif ( $.isWindow( raw ) ) {\n\t\treturn {\n\t\t\twidth: elem.width(),\n\t\t\theight: elem.height(),\n\t\t\toffset: { top: elem.scrollTop(), left: elem.scrollLeft() }\n\t\t};\n\t}\n\tif ( raw.preventDefault ) {\n\t\treturn {\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\toffset: { top: raw.pageY, left: raw.pageX }\n\t\t};\n\t}\n\treturn {\n\t\twidth: elem.outerWidth(),\n\t\theight: elem.outerHeight(),\n\t\toffset: elem.offset()\n\t};\n}\n\n$.position = {\n\tscrollbarWidth: function() {\n\t\tif ( cachedScrollbarWidth !== undefined ) {\n\t\t\treturn cachedScrollbarWidth;\n\t\t}\n\t\tvar w1, w2,\n\t\t\tdiv = $( \"<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>\" ),\n\t\t\tinnerDiv = div.children()[0];\n\n\t\t$( \"body\" ).append( div );\n\t\tw1 = innerDiv.offsetWidth;\n\t\tdiv.css( \"overflow\", \"scroll\" );\n\n\t\tw2 = innerDiv.offsetWidth;\n\n\t\tif ( w1 === w2 ) {\n\t\t\tw2 = div[0].clientWidth;\n\t\t}\n\n\t\tdiv.remove();\n\n\t\treturn (cachedScrollbarWidth = w1 - w2);\n\t},\n\tgetScrollInfo: function( within ) {\n\t\tvar overflowX = within.isWindow || within.isDocument ? \"\" :\n\t\t\t\twithin.element.css( \"overflow-x\" ),\n\t\t\toverflowY = within.isWindow || within.isDocument ? \"\" :\n\t\t\t\twithin.element.css( \"overflow-y\" ),\n\t\t\thasOverflowX = overflowX === \"scroll\" ||\n\t\t\t\t( overflowX === \"auto\" && within.width < within.element[0].scrollWidth ),\n\t\t\thasOverflowY = overflowY === \"scroll\" ||\n\t\t\t\t( overflowY === \"auto\" && within.height < within.element[0].scrollHeight );\n\t\treturn {\n\t\t\twidth: hasOverflowY ? $.position.scrollbarWidth() : 0,\n\t\t\theight: hasOverflowX ? $.position.scrollbarWidth() : 0\n\t\t};\n\t},\n\tgetWithinInfo: function( element ) {\n\t\tvar withinElement = $( element || window ),\n\t\t\tisWindow = $.isWindow( withinElement[0] ),\n\t\t\tisDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;\n\t\treturn {\n\t\t\telement: withinElement,\n\t\t\tisWindow: isWindow,\n\t\t\tisDocument: isDocument,\n\t\t\toffset: withinElement.offset() || { left: 0, top: 0 },\n\t\t\tscrollLeft: withinElement.scrollLeft(),\n\t\t\tscrollTop: withinElement.scrollTop(),\n\n\t\t\t// support: jQuery 1.6.x\n\t\t\t// jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows\n\t\t\twidth: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(),\n\t\t\theight: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight()\n\t\t};\n\t}\n};\n\n$.fn.position = function( options ) {\n\tif ( !options || !options.of ) {\n\t\treturn _position.apply( this, arguments );\n\t}\n\n\t// make a copy, we don't want to modify arguments\n\toptions = $.extend( {}, options );\n\n\tvar atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,\n\t\ttarget = $( options.of ),\n\t\twithin = $.position.getWithinInfo( options.within ),\n\t\tscrollInfo = $.position.getScrollInfo( within ),\n\t\tcollision = ( options.collision || \"flip\" ).split( \" \" ),\n\t\toffsets = {};\n\n\tdimensions = getDimensions( target );\n\tif ( target[0].preventDefault ) {\n\t\t// force left top to allow flipping\n\t\toptions.at = \"left top\";\n\t}\n\ttargetWidth = dimensions.width;\n\ttargetHeight = dimensions.height;\n\ttargetOffset = dimensions.offset;\n\t// clone to reuse original targetOffset later\n\tbasePosition = $.extend( {}, targetOffset );\n\n\t// force my and at to have valid horizontal and vertical positions\n\t// if a value is missing or invalid, it will be converted to center\n\t$.each( [ \"my\", \"at\" ], function() {\n\t\tvar pos = ( options[ this ] || \"\" ).split( \" \" ),\n\t\t\thorizontalOffset,\n\t\t\tverticalOffset;\n\n\t\tif ( pos.length === 1) {\n\t\t\tpos = rhorizontal.test( pos[ 0 ] ) ?\n\t\t\t\tpos.concat( [ \"center\" ] ) :\n\t\t\t\trvertical.test( pos[ 0 ] ) ?\n\t\t\t\t\t[ \"center\" ].concat( pos ) :\n\t\t\t\t\t[ \"center\", \"center\" ];\n\t\t}\n\t\tpos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : \"center\";\n\t\tpos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : \"center\";\n\n\t\t// calculate offsets\n\t\thorizontalOffset = roffset.exec( pos[ 0 ] );\n\t\tverticalOffset = roffset.exec( pos[ 1 ] );\n\t\toffsets[ this ] = [\n\t\t\thorizontalOffset ? horizontalOffset[ 0 ] : 0,\n\t\t\tverticalOffset ? verticalOffset[ 0 ] : 0\n\t\t];\n\n\t\t// reduce to just the positions without the offsets\n\t\toptions[ this ] = [\n\t\t\trposition.exec( pos[ 0 ] )[ 0 ],\n\t\t\trposition.exec( pos[ 1 ] )[ 0 ]\n\t\t];\n\t});\n\n\t// normalize collision option\n\tif ( collision.length === 1 ) {\n\t\tcollision[ 1 ] = collision[ 0 ];\n\t}\n\n\tif ( options.at[ 0 ] === \"right\" ) {\n\t\tbasePosition.left += targetWidth;\n\t} else if ( options.at[ 0 ] === \"center\" ) {\n\t\tbasePosition.left += targetWidth / 2;\n\t}\n\n\tif ( options.at[ 1 ] === \"bottom\" ) {\n\t\tbasePosition.top += targetHeight;\n\t} else if ( options.at[ 1 ] === \"center\" ) {\n\t\tbasePosition.top += targetHeight / 2;\n\t}\n\n\tatOffset = getOffsets( offsets.at, targetWidth, targetHeight );\n\tbasePosition.left += atOffset[ 0 ];\n\tbasePosition.top += atOffset[ 1 ];\n\n\treturn this.each(function() {\n\t\tvar collisionPosition, using,\n\t\t\telem = $( this ),\n\t\t\telemWidth = elem.outerWidth(),\n\t\t\telemHeight = elem.outerHeight(),\n\t\t\tmarginLeft = parseCss( this, \"marginLeft\" ),\n\t\t\tmarginTop = parseCss( this, \"marginTop\" ),\n\t\t\tcollisionWidth = elemWidth + marginLeft + parseCss( this, \"marginRight\" ) + scrollInfo.width,\n\t\t\tcollisionHeight = elemHeight + marginTop + parseCss( this, \"marginBottom\" ) + scrollInfo.height,\n\t\t\tposition = $.extend( {}, basePosition ),\n\t\t\tmyOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );\n\n\t\tif ( options.my[ 0 ] === \"right\" ) {\n\t\t\tposition.left -= elemWidth;\n\t\t} else if ( options.my[ 0 ] === \"center\" ) {\n\t\t\tposition.left -= elemWidth / 2;\n\t\t}\n\n\t\tif ( options.my[ 1 ] === \"bottom\" ) {\n\t\t\tposition.top -= elemHeight;\n\t\t} else if ( options.my[ 1 ] === \"center\" ) {\n\t\t\tposition.top -= elemHeight / 2;\n\t\t}\n\n\t\tposition.left += myOffset[ 0 ];\n\t\tposition.top += myOffset[ 1 ];\n\n\t\t// if the browser doesn't support fractions, then round for consistent results\n\t\tif ( !supportsOffsetFractions ) {\n\t\t\tposition.left = round( position.left );\n\t\t\tposition.top = round( position.top );\n\t\t}\n\n\t\tcollisionPosition = {\n\t\t\tmarginLeft: marginLeft,\n\t\t\tmarginTop: marginTop\n\t\t};\n\n\t\t$.each( [ \"left\", \"top\" ], function( i, dir ) {\n\t\t\tif ( $.ui.position[ collision[ i ] ] ) {\n\t\t\t\t$.ui.position[ collision[ i ] ][ dir ]( position, {\n\t\t\t\t\ttargetWidth: targetWidth,\n\t\t\t\t\ttargetHeight: targetHeight,\n\t\t\t\t\telemWidth: elemWidth,\n\t\t\t\t\telemHeight: elemHeight,\n\t\t\t\t\tcollisionPosition: collisionPosition,\n\t\t\t\t\tcollisionWidth: collisionWidth,\n\t\t\t\t\tcollisionHeight: collisionHeight,\n\t\t\t\t\toffset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],\n\t\t\t\t\tmy: options.my,\n\t\t\t\t\tat: options.at,\n\t\t\t\t\twithin: within,\n\t\t\t\t\telem: elem\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tif ( options.using ) {\n\t\t\t// adds feedback as second argument to using callback, if present\n\t\t\tusing = function( props ) {\n\t\t\t\tvar left = targetOffset.left - position.left,\n\t\t\t\t\tright = left + targetWidth - elemWidth,\n\t\t\t\t\ttop = targetOffset.top - position.top,\n\t\t\t\t\tbottom = top + targetHeight - elemHeight,\n\t\t\t\t\tfeedback = {\n\t\t\t\t\t\ttarget: {\n\t\t\t\t\t\t\telement: target,\n\t\t\t\t\t\t\tleft: targetOffset.left,\n\t\t\t\t\t\t\ttop: targetOffset.top,\n\t\t\t\t\t\t\twidth: targetWidth,\n\t\t\t\t\t\t\theight: targetHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\telement: {\n\t\t\t\t\t\t\telement: elem,\n\t\t\t\t\t\t\tleft: position.left,\n\t\t\t\t\t\t\ttop: position.top,\n\t\t\t\t\t\t\twidth: elemWidth,\n\t\t\t\t\t\t\theight: elemHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\thorizontal: right < 0 ? \"left\" : left > 0 ? \"right\" : \"center\",\n\t\t\t\t\t\tvertical: bottom < 0 ? \"top\" : top > 0 ? \"bottom\" : \"middle\"\n\t\t\t\t\t};\n\t\t\t\tif ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {\n\t\t\t\t\tfeedback.horizontal = \"center\";\n\t\t\t\t}\n\t\t\t\tif ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {\n\t\t\t\t\tfeedback.vertical = \"middle\";\n\t\t\t\t}\n\t\t\t\tif ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {\n\t\t\t\t\tfeedback.important = \"horizontal\";\n\t\t\t\t} else {\n\t\t\t\t\tfeedback.important = \"vertical\";\n\t\t\t\t}\n\t\t\t\toptions.using.call( this, props, feedback );\n\t\t\t};\n\t\t}\n\n\t\telem.offset( $.extend( position, { using: using } ) );\n\t});\n};\n\n$.ui.position = {\n\tfit: {\n\t\tleft: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\touterWidth = within.width,\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\toverLeft = withinOffset - collisionPosLeft,\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,\n\t\t\t\tnewOverRight;\n\n\t\t\t// element is wider than within\n\t\t\tif ( data.collisionWidth > outerWidth ) {\n\t\t\t\t// element is initially over the left side of within\n\t\t\t\tif ( overLeft > 0 && overRight <= 0 ) {\n\t\t\t\t\tnewOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;\n\t\t\t\t\tposition.left += overLeft - newOverRight;\n\t\t\t\t// element is initially over right side of within\n\t\t\t\t} else if ( overRight > 0 && overLeft <= 0 ) {\n\t\t\t\t\tposition.left = withinOffset;\n\t\t\t\t// element is initially over both left and right sides of within\n\t\t\t\t} else {\n\t\t\t\t\tif ( overLeft > overRight ) {\n\t\t\t\t\t\tposition.left = withinOffset + outerWidth - data.collisionWidth;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.left = withinOffset;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t// too far left -> align with left edge\n\t\t\t} else if ( overLeft > 0 ) {\n\t\t\t\tposition.left += overLeft;\n\t\t\t// too far right -> align with right edge\n\t\t\t} else if ( overRight > 0 ) {\n\t\t\t\tposition.left -= overRight;\n\t\t\t// adjust based on position and margin\n\t\t\t} else {\n\t\t\t\tposition.left = max( position.left - collisionPosLeft, position.left );\n\t\t\t}\n\t\t},\n\t\ttop: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\touterHeight = data.within.height,\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\toverTop = withinOffset - collisionPosTop,\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,\n\t\t\t\tnewOverBottom;\n\n\t\t\t// element is taller than within\n\t\t\tif ( data.collisionHeight > outerHeight ) {\n\t\t\t\t// element is initially over the top of within\n\t\t\t\tif ( overTop > 0 && overBottom <= 0 ) {\n\t\t\t\t\tnewOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;\n\t\t\t\t\tposition.top += overTop - newOverBottom;\n\t\t\t\t// element is initially over bottom of within\n\t\t\t\t} else if ( overBottom > 0 && overTop <= 0 ) {\n\t\t\t\t\tposition.top = withinOffset;\n\t\t\t\t// element is initially over both top and bottom of within\n\t\t\t\t} else {\n\t\t\t\t\tif ( overTop > overBottom ) {\n\t\t\t\t\t\tposition.top = withinOffset + outerHeight - data.collisionHeight;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.top = withinOffset;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t// too far up -> align with top\n\t\t\t} else if ( overTop > 0 ) {\n\t\t\t\tposition.top += overTop;\n\t\t\t// too far down -> align with bottom edge\n\t\t\t} else if ( overBottom > 0 ) {\n\t\t\t\tposition.top -= overBottom;\n\t\t\t// adjust based on position and margin\n\t\t\t} else {\n\t\t\t\tposition.top = max( position.top - collisionPosTop, position.top );\n\t\t\t}\n\t\t}\n\t},\n\tflip: {\n\t\tleft: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.offset.left + within.scrollLeft,\n\t\t\t\touterWidth = within.width,\n\t\t\t\toffsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\toverLeft = collisionPosLeft - offsetLeft,\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,\n\t\t\t\tmyOffset = data.my[ 0 ] === \"left\" ?\n\t\t\t\t\t-data.elemWidth :\n\t\t\t\t\tdata.my[ 0 ] === \"right\" ?\n\t\t\t\t\t\tdata.elemWidth :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[ 0 ] === \"left\" ?\n\t\t\t\t\tdata.targetWidth :\n\t\t\t\t\tdata.at[ 0 ] === \"right\" ?\n\t\t\t\t\t\t-data.targetWidth :\n\t\t\t\t\t\t0,\n\t\t\t\toffset = -2 * data.offset[ 0 ],\n\t\t\t\tnewOverRight,\n\t\t\t\tnewOverLeft;\n\n\t\t\tif ( overLeft < 0 ) {\n\t\t\t\tnewOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;\n\t\t\t\tif ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t} else if ( overRight > 0 ) {\n\t\t\t\tnewOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;\n\t\t\t\tif ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttop: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.offset.top + within.scrollTop,\n\t\t\t\touterHeight = within.height,\n\t\t\t\toffsetTop = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\toverTop = collisionPosTop - offsetTop,\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,\n\t\t\t\ttop = data.my[ 1 ] === \"top\",\n\t\t\t\tmyOffset = top ?\n\t\t\t\t\t-data.elemHeight :\n\t\t\t\t\tdata.my[ 1 ] === \"bottom\" ?\n\t\t\t\t\t\tdata.elemHeight :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[ 1 ] === \"top\" ?\n\t\t\t\t\tdata.targetHeight :\n\t\t\t\t\tdata.at[ 1 ] === \"bottom\" ?\n\t\t\t\t\t\t-data.targetHeight :\n\t\t\t\t\t\t0,\n\t\t\t\toffset = -2 * data.offset[ 1 ],\n\t\t\t\tnewOverTop,\n\t\t\t\tnewOverBottom;\n\t\t\tif ( overTop < 0 ) {\n\t\t\t\tnewOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;\n\t\t\t\tif ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t} else if ( overBottom > 0 ) {\n\t\t\t\tnewOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;\n\t\t\t\tif ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tflipfit: {\n\t\tleft: function() {\n\t\t\t$.ui.position.flip.left.apply( this, arguments );\n\t\t\t$.ui.position.fit.left.apply( this, arguments );\n\t\t},\n\t\ttop: function() {\n\t\t\t$.ui.position.flip.top.apply( this, arguments );\n\t\t\t$.ui.position.fit.top.apply( this, arguments );\n\t\t}\n\t}\n};\n\n// fraction support test\n(function() {\n\tvar testElement, testElementParent, testElementStyle, offsetLeft, i,\n\t\tbody = document.getElementsByTagName( \"body\" )[ 0 ],\n\t\tdiv = document.createElement( \"div\" );\n\n\t//Create a \"fake body\" for testing based on method used in jQuery.support\n\ttestElement = document.createElement( body ? \"div\" : \"body\" );\n\ttestElementStyle = {\n\t\tvisibility: \"hidden\",\n\t\twidth: 0,\n\t\theight: 0,\n\t\tborder: 0,\n\t\tmargin: 0,\n\t\tbackground: \"none\"\n\t};\n\tif ( body ) {\n\t\t$.extend( testElementStyle, {\n\t\t\tposition: \"absolute\",\n\t\t\tleft: \"-1000px\",\n\t\t\ttop: \"-1000px\"\n\t\t});\n\t}\n\tfor ( i in testElementStyle ) {\n\t\ttestElement.style[ i ] = testElementStyle[ i ];\n\t}\n\ttestElement.appendChild( div );\n\ttestElementParent = body || document.documentElement;\n\ttestElementParent.insertBefore( testElement, testElementParent.firstChild );\n\n\tdiv.style.cssText = \"position: absolute; left: 10.7432222px;\";\n\n\toffsetLeft = $( div ).offset().left;\n\tsupportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11;\n\n\ttestElement.innerHTML = \"\";\n\ttestElementParent.removeChild( testElement );\n})();\n\n})();\n\nvar position = $.ui.position;\n\n\n/*!\n * jQuery UI Accordion 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/accordion/\n */\n\n\nvar accordion = $.widget( \"ui.accordion\", {\n\tversion: \"1.11.4\",\n\toptions: {\n\t\tactive: 0,\n\t\tanimate: {},\n\t\tcollapsible: false,\n\t\tevent: \"click\",\n\t\theader: \"> li > :first-child,> :not(li):even\",\n\t\theightStyle: \"auto\",\n\t\ticons: {\n\t\t\tactiveHeader: \"ui-icon-triangle-1-s\",\n\t\t\theader: \"ui-icon-triangle-1-e\"\n\t\t},\n\n\t\t// callbacks\n\t\tactivate: null,\n\t\tbeforeActivate: null\n\t},\n\n\thideProps: {\n\t\tborderTopWidth: \"hide\",\n\t\tborderBottomWidth: \"hide\",\n\t\tpaddingTop: \"hide\",\n\t\tpaddingBottom: \"hide\",\n\t\theight: \"hide\"\n\t},\n\n\tshowProps: {\n\t\tborderTopWidth: \"show\",\n\t\tborderBottomWidth: \"show\",\n\t\tpaddingTop: \"show\",\n\t\tpaddingBottom: \"show\",\n\t\theight: \"show\"\n\t},\n\n\t_create: function() {\n\t\tvar options = this.options;\n\t\tthis.prevShow = this.prevHide = $();\n\t\tthis.element.addClass( \"ui-accordion ui-widget ui-helper-reset\" )\n\t\t\t// ARIA\n\t\t\t.attr( \"role\", \"tablist\" );\n\n\t\t// don't allow collapsible: false and active: false / null\n\t\tif ( !options.collapsible && (options.active === false || options.active == null) ) {\n\t\t\toptions.active = 0;\n\t\t}\n\n\t\tthis._processPanels();\n\t\t// handle negative values\n\t\tif ( options.active < 0 ) {\n\t\t\toptions.active += this.headers.length;\n\t\t}\n\t\tthis._refresh();\n\t},\n\n\t_getCreateEventData: function() {\n\t\treturn {\n\t\t\theader: this.active,\n\t\t\tpanel: !this.active.length ? $() : this.active.next()\n\t\t};\n\t},\n\n\t_createIcons: function() {\n\t\tvar icons = this.options.icons;\n\t\tif ( icons ) {\n\t\t\t$( \"<span>\" )\n\t\t\t\t.addClass( \"ui-accordion-header-icon ui-icon \" + icons.header )\n\t\t\t\t.prependTo( this.headers );\n\t\t\tthis.active.children( \".ui-accordion-header-icon\" )\n\t\t\t\t.removeClass( icons.header )\n\t\t\t\t.addClass( icons.activeHeader );\n\t\t\tthis.headers.addClass( \"ui-accordion-icons\" );\n\t\t}\n\t},\n\n\t_destroyIcons: function() {\n\t\tthis.headers\n\t\t\t.removeClass( \"ui-accordion-icons\" )\n\t\t\t.children( \".ui-accordion-header-icon\" )\n\t\t\t\t.remove();\n\t},\n\n\t_destroy: function() {\n\t\tvar contents;\n\n\t\t// clean up main element\n\t\tthis.element\n\t\t\t.removeClass( \"ui-accordion ui-widget ui-helper-reset\" )\n\t\t\t.removeAttr( \"role\" );\n\n\t\t// clean up headers\n\t\tthis.headers\n\t\t\t.removeClass( \"ui-accordion-header ui-accordion-header-active ui-state-default \" +\n\t\t\t\t\"ui-corner-all ui-state-active ui-state-disabled ui-corner-top\" )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"aria-expanded\" )\n\t\t\t.removeAttr( \"aria-selected\" )\n\t\t\t.removeAttr( \"aria-controls\" )\n\t\t\t.removeAttr( \"tabIndex\" )\n\t\t\t.removeUniqueId();\n\n\t\tthis._destroyIcons();\n\n\t\t// clean up content panels\n\t\tcontents = this.headers.next()\n\t\t\t.removeClass( \"ui-helper-reset ui-widget-content ui-corner-bottom \" +\n\t\t\t\t\"ui-accordion-content ui-accordion-content-active ui-state-disabled\" )\n\t\t\t.css( \"display\", \"\" )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"aria-hidden\" )\n\t\t\t.removeAttr( \"aria-labelledby\" )\n\t\t\t.removeUniqueId();\n\n\t\tif ( this.options.heightStyle !== \"content\" ) {\n\t\t\tcontents.css( \"height\", \"\" );\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"active\" ) {\n\t\t\t// _activate() will handle invalid values and update this.options\n\t\t\tthis._activate( value );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === \"event\" ) {\n\t\t\tif ( this.options.event ) {\n\t\t\t\tthis._off( this.headers, this.options.event );\n\t\t\t}\n\t\t\tthis._setupEvents( value );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\t// setting collapsible: false while collapsed; open first panel\n\t\tif ( key === \"collapsible\" && !value && this.options.active === false ) {\n\t\t\tthis._activate( 0 );\n\t\t}\n\n\t\tif ( key === \"icons\" ) {\n\t\t\tthis._destroyIcons();\n\t\t\tif ( value ) {\n\t\t\t\tthis._createIcons();\n\t\t\t}\n\t\t}\n\n\t\t// #5332 - opacity doesn't cascade to positioned elements in IE\n\t\t// so we need to add the disabled class to the headers and panels\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.element\n\t\t\t\t.toggleClass( \"ui-state-disabled\", !!value )\n\t\t\t\t.attr( \"aria-disabled\", value );\n\t\t\tthis.headers.add( this.headers.next() )\n\t\t\t\t.toggleClass( \"ui-state-disabled\", !!value );\n\t\t}\n\t},\n\n\t_keydown: function( event ) {\n\t\tif ( event.altKey || event.ctrlKey ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar keyCode = $.ui.keyCode,\n\t\t\tlength = this.headers.length,\n\t\t\tcurrentIndex = this.headers.index( event.target ),\n\t\t\ttoFocus = false;\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase keyCode.RIGHT:\n\t\t\tcase keyCode.DOWN:\n\t\t\t\ttoFocus = this.headers[ ( currentIndex + 1 ) % length ];\n\t\t\t\tbreak;\n\t\t\tcase keyCode.LEFT:\n\t\t\tcase keyCode.UP:\n\t\t\t\ttoFocus = this.headers[ ( currentIndex - 1 + length ) % length ];\n\t\t\t\tbreak;\n\t\t\tcase keyCode.SPACE:\n\t\t\tcase keyCode.ENTER:\n\t\t\t\tthis._eventHandler( event );\n\t\t\t\tbreak;\n\t\t\tcase keyCode.HOME:\n\t\t\t\ttoFocus = this.headers[ 0 ];\n\t\t\t\tbreak;\n\t\t\tcase keyCode.END:\n\t\t\t\ttoFocus = this.headers[ length - 1 ];\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( toFocus ) {\n\t\t\t$( event.target ).attr( \"tabIndex\", -1 );\n\t\t\t$( toFocus ).attr( \"tabIndex\", 0 );\n\t\t\ttoFocus.focus();\n\t\t\tevent.preventDefault();\n\t\t}\n\t},\n\n\t_panelKeyDown: function( event ) {\n\t\tif ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {\n\t\t\t$( event.currentTarget ).prev().focus();\n\t\t}\n\t},\n\n\trefresh: function() {\n\t\tvar options = this.options;\n\t\tthis._processPanels();\n\n\t\t// was collapsed or no panel\n\t\tif ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) {\n\t\t\toptions.active = false;\n\t\t\tthis.active = $();\n\t\t// active false only when collapsible is true\n\t\t} else if ( options.active === false ) {\n\t\t\tthis._activate( 0 );\n\t\t// was active, but active panel is gone\n\t\t} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\n\t\t\t// all remaining panel are disabled\n\t\t\tif ( this.headers.length === this.headers.find(\".ui-state-disabled\").length ) {\n\t\t\t\toptions.active = false;\n\t\t\t\tthis.active = $();\n\t\t\t// activate previous panel\n\t\t\t} else {\n\t\t\t\tthis._activate( Math.max( 0, options.active - 1 ) );\n\t\t\t}\n\t\t// was active, active panel still exists\n\t\t} else {\n\t\t\t// make sure active index is correct\n\t\t\toptions.active = this.headers.index( this.active );\n\t\t}\n\n\t\tthis._destroyIcons();\n\n\t\tthis._refresh();\n\t},\n\n\t_processPanels: function() {\n\t\tvar prevHeaders = this.headers,\n\t\t\tprevPanels = this.panels;\n\n\t\tthis.headers = this.element.find( this.options.header )\n\t\t\t.addClass( \"ui-accordion-header ui-state-default ui-corner-all\" );\n\n\t\tthis.panels = this.headers.next()\n\t\t\t.addClass( \"ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom\" )\n\t\t\t.filter( \":not(.ui-accordion-content-active)\" )\n\t\t\t.hide();\n\n\t\t// Avoid memory leaks (#10056)\n\t\tif ( prevPanels ) {\n\t\t\tthis._off( prevHeaders.not( this.headers ) );\n\t\t\tthis._off( prevPanels.not( this.panels ) );\n\t\t}\n\t},\n\n\t_refresh: function() {\n\t\tvar maxHeight,\n\t\t\toptions = this.options,\n\t\t\theightStyle = options.heightStyle,\n\t\t\tparent = this.element.parent();\n\n\t\tthis.active = this._findActive( options.active )\n\t\t\t.addClass( \"ui-accordion-header-active ui-state-active ui-corner-top\" )\n\t\t\t.removeClass( \"ui-corner-all\" );\n\t\tthis.active.next()\n\t\t\t.addClass( \"ui-accordion-content-active\" )\n\t\t\t.show();\n\n\t\tthis.headers\n\t\t\t.attr( \"role\", \"tab\" )\n\t\t\t.each(function() {\n\t\t\t\tvar header = $( this ),\n\t\t\t\t\theaderId = header.uniqueId().attr( \"id\" ),\n\t\t\t\t\tpanel = header.next(),\n\t\t\t\t\tpanelId = panel.uniqueId().attr( \"id\" );\n\t\t\t\theader.attr( \"aria-controls\", panelId );\n\t\t\t\tpanel.attr( \"aria-labelledby\", headerId );\n\t\t\t})\n\t\t\t.next()\n\t\t\t\t.attr( \"role\", \"tabpanel\" );\n\n\t\tthis.headers\n\t\t\t.not( this.active )\n\t\t\t.attr({\n\t\t\t\t\"aria-selected\": \"false\",\n\t\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\ttabIndex: -1\n\t\t\t})\n\t\t\t.next()\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t\t})\n\t\t\t\t.hide();\n\n\t\t// make sure at least one header is in the tab order\n\t\tif ( !this.active.length ) {\n\t\t\tthis.headers.eq( 0 ).attr( \"tabIndex\", 0 );\n\t\t} else {\n\t\t\tthis.active.attr({\n\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\ttabIndex: 0\n\t\t\t})\n\t\t\t.next()\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t\t});\n\t\t}\n\n\t\tthis._createIcons();\n\n\t\tthis._setupEvents( options.event );\n\n\t\tif ( heightStyle === \"fill\" ) {\n\t\t\tmaxHeight = parent.height();\n\t\t\tthis.element.siblings( \":visible\" ).each(function() {\n\t\t\t\tvar elem = $( this ),\n\t\t\t\t\tposition = elem.css( \"position\" );\n\n\t\t\t\tif ( position === \"absolute\" || position === \"fixed\" ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmaxHeight -= elem.outerHeight( true );\n\t\t\t});\n\n\t\t\tthis.headers.each(function() {\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\n\t\t\t});\n\n\t\t\tthis.headers.next()\n\t\t\t\t.each(function() {\n\t\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\n\t\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\n\t\t\t\t})\n\t\t\t\t.css( \"overflow\", \"auto\" );\n\t\t} else if ( heightStyle === \"auto\" ) {\n\t\t\tmaxHeight = 0;\n\t\t\tthis.headers.next()\n\t\t\t\t.each(function() {\n\t\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).css( \"height\", \"\" ).height() );\n\t\t\t\t})\n\t\t\t\t.height( maxHeight );\n\t\t}\n\t},\n\n\t_activate: function( index ) {\n\t\tvar active = this._findActive( index )[ 0 ];\n\n\t\t// trying to activate the already active panel\n\t\tif ( active === this.active[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// trying to collapse, simulate a click on the currently active header\n\t\tactive = active || this.active[ 0 ];\n\n\t\tthis._eventHandler({\n\t\t\ttarget: active,\n\t\t\tcurrentTarget: active,\n\t\t\tpreventDefault: $.noop\n\t\t});\n\t},\n\n\t_findActive: function( selector ) {\n\t\treturn typeof selector === \"number\" ? this.headers.eq( selector ) : $();\n\t},\n\n\t_setupEvents: function( event ) {\n\t\tvar events = {\n\t\t\tkeydown: \"_keydown\"\n\t\t};\n\t\tif ( event ) {\n\t\t\t$.each( event.split( \" \" ), function( index, eventName ) {\n\t\t\t\tevents[ eventName ] = \"_eventHandler\";\n\t\t\t});\n\t\t}\n\n\t\tthis._off( this.headers.add( this.headers.next() ) );\n\t\tthis._on( this.headers, events );\n\t\tthis._on( this.headers.next(), { keydown: \"_panelKeyDown\" });\n\t\tthis._hoverable( this.headers );\n\t\tthis._focusable( this.headers );\n\t},\n\n\t_eventHandler: function( event ) {\n\t\tvar options = this.options,\n\t\t\tactive = this.active,\n\t\t\tclicked = $( event.currentTarget ),\n\t\t\tclickedIsActive = clicked[ 0 ] === active[ 0 ],\n\t\t\tcollapsing = clickedIsActive && options.collapsible,\n\t\t\ttoShow = collapsing ? $() : clicked.next(),\n\t\t\ttoHide = active.next(),\n\t\t\teventData = {\n\t\t\t\toldHeader: active,\n\t\t\t\toldPanel: toHide,\n\t\t\t\tnewHeader: collapsing ? $() : clicked,\n\t\t\t\tnewPanel: toShow\n\t\t\t};\n\n\t\tevent.preventDefault();\n\n\t\tif (\n\t\t\t\t// click on active header, but not collapsible\n\t\t\t\t( clickedIsActive && !options.collapsible ) ||\n\t\t\t\t// allow canceling activation\n\t\t\t\t( this._trigger( \"beforeActivate\", event, eventData ) === false ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\toptions.active = collapsing ? false : this.headers.index( clicked );\n\n\t\t// when the call to ._toggle() comes after the class changes\n\t\t// it causes a very odd bug in IE 8 (see #6720)\n\t\tthis.active = clickedIsActive ? $() : clicked;\n\t\tthis._toggle( eventData );\n\n\t\t// switch classes\n\t\t// corner classes on the previously active header stay after the animation\n\t\tactive.removeClass( \"ui-accordion-header-active ui-state-active\" );\n\t\tif ( options.icons ) {\n\t\t\tactive.children( \".ui-accordion-header-icon\" )\n\t\t\t\t.removeClass( options.icons.activeHeader )\n\t\t\t\t.addClass( options.icons.header );\n\t\t}\n\n\t\tif ( !clickedIsActive ) {\n\t\t\tclicked\n\t\t\t\t.removeClass( \"ui-corner-all\" )\n\t\t\t\t.addClass( \"ui-accordion-header-active ui-state-active ui-corner-top\" );\n\t\t\tif ( options.icons ) {\n\t\t\t\tclicked.children( \".ui-accordion-header-icon\" )\n\t\t\t\t\t.removeClass( options.icons.header )\n\t\t\t\t\t.addClass( options.icons.activeHeader );\n\t\t\t}\n\n\t\t\tclicked\n\t\t\t\t.next()\n\t\t\t\t.addClass( \"ui-accordion-content-active\" );\n\t\t}\n\t},\n\n\t_toggle: function( data ) {\n\t\tvar toShow = data.newPanel,\n\t\t\ttoHide = this.prevShow.length ? this.prevShow : data.oldPanel;\n\n\t\t// handle activating a panel during the animation for another activation\n\t\tthis.prevShow.add( this.prevHide ).stop( true, true );\n\t\tthis.prevShow = toShow;\n\t\tthis.prevHide = toHide;\n\n\t\tif ( this.options.animate ) {\n\t\t\tthis._animate( toShow, toHide, data );\n\t\t} else {\n\t\t\ttoHide.hide();\n\t\t\ttoShow.show();\n\t\t\tthis._toggleComplete( data );\n\t\t}\n\n\t\ttoHide.attr({\n\t\t\t\"aria-hidden\": \"true\"\n\t\t});\n\t\ttoHide.prev().attr({\n\t\t\t\"aria-selected\": \"false\",\n\t\t\t\"aria-expanded\": \"false\"\n\t\t});\n\t\t// if we're switching panels, remove the old header from the tab order\n\t\t// if we're opening from collapsed state, remove the previous header from the tab order\n\t\t// if we're collapsing, then keep the collapsing header in the tab order\n\t\tif ( toShow.length && toHide.length ) {\n\t\t\ttoHide.prev().attr({\n\t\t\t\t\"tabIndex\": -1,\n\t\t\t\t\"aria-expanded\": \"false\"\n\t\t\t});\n\t\t} else if ( toShow.length ) {\n\t\t\tthis.headers.filter(function() {\n\t\t\t\treturn parseInt( $( this ).attr( \"tabIndex\" ), 10 ) === 0;\n\t\t\t})\n\t\t\t.attr( \"tabIndex\", -1 );\n\t\t}\n\n\t\ttoShow\n\t\t\t.attr( \"aria-hidden\", \"false\" )\n\t\t\t.prev()\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t});\n\t},\n\n\t_animate: function( toShow, toHide, data ) {\n\t\tvar total, easing, duration,\n\t\t\tthat = this,\n\t\t\tadjust = 0,\n\t\t\tboxSizing = toShow.css( \"box-sizing\" ),\n\t\t\tdown = toShow.length &&\n\t\t\t\t( !toHide.length || ( toShow.index() < toHide.index() ) ),\n\t\t\tanimate = this.options.animate || {},\n\t\t\toptions = down && animate.down || animate,\n\t\t\tcomplete = function() {\n\t\t\t\tthat._toggleComplete( data );\n\t\t\t};\n\n\t\tif ( typeof options === \"number\" ) {\n\t\t\tduration = options;\n\t\t}\n\t\tif ( typeof options === \"string\" ) {\n\t\t\teasing = options;\n\t\t}\n\t\t// fall back from options to animation in case of partial down settings\n\t\teasing = easing || options.easing || animate.easing;\n\t\tduration = duration || options.duration || animate.duration;\n\n\t\tif ( !toHide.length ) {\n\t\t\treturn toShow.animate( this.showProps, duration, easing, complete );\n\t\t}\n\t\tif ( !toShow.length ) {\n\t\t\treturn toHide.animate( this.hideProps, duration, easing, complete );\n\t\t}\n\n\t\ttotal = toShow.show().outerHeight();\n\t\ttoHide.animate( this.hideProps, {\n\t\t\tduration: duration,\n\t\t\teasing: easing,\n\t\t\tstep: function( now, fx ) {\n\t\t\t\tfx.now = Math.round( now );\n\t\t\t}\n\t\t});\n\t\ttoShow\n\t\t\t.hide()\n\t\t\t.animate( this.showProps, {\n\t\t\t\tduration: duration,\n\t\t\t\teasing: easing,\n\t\t\t\tcomplete: complete,\n\t\t\t\tstep: function( now, fx ) {\n\t\t\t\t\tfx.now = Math.round( now );\n\t\t\t\t\tif ( fx.prop !== \"height\" ) {\n\t\t\t\t\t\tif ( boxSizing === \"content-box\" ) {\n\t\t\t\t\t\t\tadjust += fx.now;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( that.options.heightStyle !== \"content\" ) {\n\t\t\t\t\t\tfx.now = Math.round( total - toHide.outerHeight() - adjust );\n\t\t\t\t\t\tadjust = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t},\n\n\t_toggleComplete: function( data ) {\n\t\tvar toHide = data.oldPanel;\n\n\t\ttoHide\n\t\t\t.removeClass( \"ui-accordion-content-active\" )\n\t\t\t.prev()\n\t\t\t\t.removeClass( \"ui-corner-top\" )\n\t\t\t\t.addClass( \"ui-corner-all\" );\n\n\t\t// Work around for rendering bug in IE (#5421)\n\t\tif ( toHide.length ) {\n\t\t\ttoHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;\n\t\t}\n\t\tthis._trigger( \"activate\", null, data );\n\t}\n});\n\n\n/*!\n * jQuery UI Menu 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/menu/\n */\n\n\nvar menu = $.widget( \"ui.menu\", {\n\tversion: \"1.11.4\",\n\tdefaultElement: \"<ul>\",\n\tdelay: 300,\n\toptions: {\n\t\ticons: {\n\t\t\tsubmenu: \"ui-icon-carat-1-e\"\n\t\t},\n\t\titems: \"> *\",\n\t\tmenus: \"ul\",\n\t\tposition: {\n\t\t\tmy: \"left-1 top\",\n\t\t\tat: \"right top\"\n\t\t},\n\t\trole: \"menu\",\n\n\t\t// callbacks\n\t\tblur: null,\n\t\tfocus: null,\n\t\tselect: null\n\t},\n\n\t_create: function() {\n\t\tthis.activeMenu = this.element;\n\n\t\t// Flag used to prevent firing of the click handler\n\t\t// as the event bubbles up through nested menus\n\t\tthis.mouseHandled = false;\n\t\tthis.element\n\t\t\t.uniqueId()\n\t\t\t.addClass( \"ui-menu ui-widget ui-widget-content\" )\n\t\t\t.toggleClass( \"ui-menu-icons\", !!this.element.find( \".ui-icon\" ).length )\n\t\t\t.attr({\n\t\t\t\trole: this.options.role,\n\t\t\t\ttabIndex: 0\n\t\t\t});\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis.element\n\t\t\t\t.addClass( \"ui-state-disabled\" )\n\t\t\t\t.attr( \"aria-disabled\", \"true\" );\n\t\t}\n\n\t\tthis._on({\n\t\t\t// Prevent focus from sticking to links inside menu after clicking\n\t\t\t// them (focus should always stay on UL during navigation).\n\t\t\t\"mousedown .ui-menu-item\": function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t},\n\t\t\t\"click .ui-menu-item\": function( event ) {\n\t\t\t\tvar target = $( event.target );\n\t\t\t\tif ( !this.mouseHandled && target.not( \".ui-state-disabled\" ).length ) {\n\t\t\t\t\tthis.select( event );\n\n\t\t\t\t\t// Only set the mouseHandled flag if the event will bubble, see #9469.\n\t\t\t\t\tif ( !event.isPropagationStopped() ) {\n\t\t\t\t\t\tthis.mouseHandled = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Open submenu on click\n\t\t\t\t\tif ( target.has( \".ui-menu\" ).length ) {\n\t\t\t\t\t\tthis.expand( event );\n\t\t\t\t\t} else if ( !this.element.is( \":focus\" ) && $( this.document[ 0 ].activeElement ).closest( \".ui-menu\" ).length ) {\n\n\t\t\t\t\t\t// Redirect focus to the menu\n\t\t\t\t\t\tthis.element.trigger( \"focus\", [ true ] );\n\n\t\t\t\t\t\t// If the active item is on the top level, let it stay active.\n\t\t\t\t\t\t// Otherwise, blur the active item since it is no longer visible.\n\t\t\t\t\t\tif ( this.active && this.active.parents( \".ui-menu\" ).length === 1 ) {\n\t\t\t\t\t\t\tclearTimeout( this.timer );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"mouseenter .ui-menu-item\": function( event ) {\n\t\t\t\t// Ignore mouse events while typeahead is active, see #10458.\n\t\t\t\t// Prevents focusing the wrong item when typeahead causes a scroll while the mouse\n\t\t\t\t// is over an item in the menu\n\t\t\t\tif ( this.previousFilter ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar target = $( event.currentTarget );\n\t\t\t\t// Remove ui-state-active class from siblings of the newly focused menu item\n\t\t\t\t// to avoid a jump caused by adjacent elements both having a class with a border\n\t\t\t\ttarget.siblings( \".ui-state-active\" ).removeClass( \"ui-state-active\" );\n\t\t\t\tthis.focus( event, target );\n\t\t\t},\n\t\t\tmouseleave: \"collapseAll\",\n\t\t\t\"mouseleave .ui-menu\": \"collapseAll\",\n\t\t\tfocus: function( event, keepActiveItem ) {\n\t\t\t\t// If there's already an active item, keep it active\n\t\t\t\t// If not, activate the first item\n\t\t\t\tvar item = this.active || this.element.find( this.options.items ).eq( 0 );\n\n\t\t\t\tif ( !keepActiveItem ) {\n\t\t\t\t\tthis.focus( event, item );\n\t\t\t\t}\n\t\t\t},\n\t\t\tblur: function( event ) {\n\t\t\t\tthis._delay(function() {\n\t\t\t\t\tif ( !$.contains( this.element[0], this.document[0].activeElement ) ) {\n\t\t\t\t\t\tthis.collapseAll( event );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\tkeydown: \"_keydown\"\n\t\t});\n\n\t\tthis.refresh();\n\n\t\t// Clicks outside of a menu collapse any open menus\n\t\tthis._on( this.document, {\n\t\t\tclick: function( event ) {\n\t\t\t\tif ( this._closeOnDocumentClick( event ) ) {\n\t\t\t\t\tthis.collapseAll( event );\n\t\t\t\t}\n\n\t\t\t\t// Reset the mouseHandled flag\n\t\t\t\tthis.mouseHandled = false;\n\t\t\t}\n\t\t});\n\t},\n\n\t_destroy: function() {\n\t\t// Destroy (sub)menus\n\t\tthis.element\n\t\t\t.removeAttr( \"aria-activedescendant\" )\n\t\t\t.find( \".ui-menu\" ).addBack()\n\t\t\t\t.removeClass( \"ui-menu ui-widget ui-widget-content ui-menu-icons ui-front\" )\n\t\t\t\t.removeAttr( \"role\" )\n\t\t\t\t.removeAttr( \"tabIndex\" )\n\t\t\t\t.removeAttr( \"aria-labelledby\" )\n\t\t\t\t.removeAttr( \"aria-expanded\" )\n\t\t\t\t.removeAttr( \"aria-hidden\" )\n\t\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t\t.removeUniqueId()\n\t\t\t\t.show();\n\n\t\t// Destroy menu items\n\t\tthis.element.find( \".ui-menu-item\" )\n\t\t\t.removeClass( \"ui-menu-item\" )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeUniqueId()\n\t\t\t.removeClass( \"ui-state-hover\" )\n\t\t\t.removeAttr( \"tabIndex\" )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"aria-haspopup\" )\n\t\t\t.children().each( function() {\n\t\t\t\tvar elem = $( this );\n\t\t\t\tif ( elem.data( \"ui-menu-submenu-carat\" ) ) {\n\t\t\t\t\telem.remove();\n\t\t\t\t}\n\t\t\t});\n\n\t\t// Destroy menu dividers\n\t\tthis.element.find( \".ui-menu-divider\" ).removeClass( \"ui-menu-divider ui-widget-content\" );\n\t},\n\n\t_keydown: function( event ) {\n\t\tvar match, prev, character, skip,\n\t\t\tpreventDefault = true;\n\n\t\tswitch ( event.keyCode ) {\n\t\tcase $.ui.keyCode.PAGE_UP:\n\t\t\tthis.previousPage( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.PAGE_DOWN:\n\t\t\tthis.nextPage( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.HOME:\n\t\t\tthis._move( \"first\", \"first\", event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.END:\n\t\t\tthis._move( \"last\", \"last\", event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.UP:\n\t\t\tthis.previous( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.DOWN:\n\t\t\tthis.next( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.LEFT:\n\t\t\tthis.collapse( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.RIGHT:\n\t\t\tif ( this.active && !this.active.is( \".ui-state-disabled\" ) ) {\n\t\t\t\tthis.expand( event );\n\t\t\t}\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.ENTER:\n\t\tcase $.ui.keyCode.SPACE:\n\t\t\tthis._activate( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.ESCAPE:\n\t\t\tthis.collapse( event );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tpreventDefault = false;\n\t\t\tprev = this.previousFilter || \"\";\n\t\t\tcharacter = String.fromCharCode( event.keyCode );\n\t\t\tskip = false;\n\n\t\t\tclearTimeout( this.filterTimer );\n\n\t\t\tif ( character === prev ) {\n\t\t\t\tskip = true;\n\t\t\t} else {\n\t\t\t\tcharacter = prev + character;\n\t\t\t}\n\n\t\t\tmatch = this._filterMenuItems( character );\n\t\t\tmatch = skip && match.index( this.active.next() ) !== -1 ?\n\t\t\t\tthis.active.nextAll( \".ui-menu-item\" ) :\n\t\t\t\tmatch;\n\n\t\t\t// If no matches on the current filter, reset to the last character pressed\n\t\t\t// to move down the menu to the first item that starts with that character\n\t\t\tif ( !match.length ) {\n\t\t\t\tcharacter = String.fromCharCode( event.keyCode );\n\t\t\t\tmatch = this._filterMenuItems( character );\n\t\t\t}\n\n\t\t\tif ( match.length ) {\n\t\t\t\tthis.focus( event, match );\n\t\t\t\tthis.previousFilter = character;\n\t\t\t\tthis.filterTimer = this._delay(function() {\n\t\t\t\t\tdelete this.previousFilter;\n\t\t\t\t}, 1000 );\n\t\t\t} else {\n\t\t\t\tdelete this.previousFilter;\n\t\t\t}\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t},\n\n\t_activate: function( event ) {\n\t\tif ( !this.active.is( \".ui-state-disabled\" ) ) {\n\t\t\tif ( this.active.is( \"[aria-haspopup='true']\" ) ) {\n\t\t\t\tthis.expand( event );\n\t\t\t} else {\n\t\t\t\tthis.select( event );\n\t\t\t}\n\t\t}\n\t},\n\n\trefresh: function() {\n\t\tvar menus, items,\n\t\t\tthat = this,\n\t\t\ticon = this.options.icons.submenu,\n\t\t\tsubmenus = this.element.find( this.options.menus );\n\n\t\tthis.element.toggleClass( \"ui-menu-icons\", !!this.element.find( \".ui-icon\" ).length );\n\n\t\t// Initialize nested menus\n\t\tsubmenus.filter( \":not(.ui-menu)\" )\n\t\t\t.addClass( \"ui-menu ui-widget ui-widget-content ui-front\" )\n\t\t\t.hide()\n\t\t\t.attr({\n\t\t\t\trole: this.options.role,\n\t\t\t\t\"aria-hidden\": \"true\",\n\t\t\t\t\"aria-expanded\": \"false\"\n\t\t\t})\n\t\t\t.each(function() {\n\t\t\t\tvar menu = $( this ),\n\t\t\t\t\titem = menu.parent(),\n\t\t\t\t\tsubmenuCarat = $( \"<span>\" )\n\t\t\t\t\t\t.addClass( \"ui-menu-icon ui-icon \" + icon )\n\t\t\t\t\t\t.data( \"ui-menu-submenu-carat\", true );\n\n\t\t\t\titem\n\t\t\t\t\t.attr( \"aria-haspopup\", \"true\" )\n\t\t\t\t\t.prepend( submenuCarat );\n\t\t\t\tmenu.attr( \"aria-labelledby\", item.attr( \"id\" ) );\n\t\t\t});\n\n\t\tmenus = submenus.add( this.element );\n\t\titems = menus.find( this.options.items );\n\n\t\t// Initialize menu-items containing spaces and/or dashes only as dividers\n\t\titems.not( \".ui-menu-item\" ).each(function() {\n\t\t\tvar item = $( this );\n\t\t\tif ( that._isDivider( item ) ) {\n\t\t\t\titem.addClass( \"ui-widget-content ui-menu-divider\" );\n\t\t\t}\n\t\t});\n\n\t\t// Don't refresh list items that are already adapted\n\t\titems.not( \".ui-menu-item, .ui-menu-divider\" )\n\t\t\t.addClass( \"ui-menu-item\" )\n\t\t\t.uniqueId()\n\t\t\t.attr({\n\t\t\t\ttabIndex: -1,\n\t\t\t\trole: this._itemRole()\n\t\t\t});\n\n\t\t// Add aria-disabled attribute to any disabled menu item\n\t\titems.filter( \".ui-state-disabled\" ).attr( \"aria-disabled\", \"true\" );\n\n\t\t// If the active item has been removed, blur the menu\n\t\tif ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\n\t\t\tthis.blur();\n\t\t}\n\t},\n\n\t_itemRole: function() {\n\t\treturn {\n\t\t\tmenu: \"menuitem\",\n\t\t\tlistbox: \"option\"\n\t\t}[ this.options.role ];\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"icons\" ) {\n\t\t\tthis.element.find( \".ui-menu-icon\" )\n\t\t\t\t.removeClass( this.options.icons.submenu )\n\t\t\t\t.addClass( value.submenu );\n\t\t}\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.element\n\t\t\t\t.toggleClass( \"ui-state-disabled\", !!value )\n\t\t\t\t.attr( \"aria-disabled\", value );\n\t\t}\n\t\tthis._super( key, value );\n\t},\n\n\tfocus: function( event, item ) {\n\t\tvar nested, focused;\n\t\tthis.blur( event, event && event.type === \"focus\" );\n\n\t\tthis._scrollIntoView( item );\n\n\t\tthis.active = item.first();\n\t\tfocused = this.active.addClass( \"ui-state-focus\" ).removeClass( \"ui-state-active\" );\n\t\t// Only update aria-activedescendant if there's a role\n\t\t// otherwise we assume focus is managed elsewhere\n\t\tif ( this.options.role ) {\n\t\t\tthis.element.attr( \"aria-activedescendant\", focused.attr( \"id\" ) );\n\t\t}\n\n\t\t// Highlight active parent menu item, if any\n\t\tthis.active\n\t\t\t.parent()\n\t\t\t.closest( \".ui-menu-item\" )\n\t\t\t.addClass( \"ui-state-active\" );\n\n\t\tif ( event && event.type === \"keydown\" ) {\n\t\t\tthis._close();\n\t\t} else {\n\t\t\tthis.timer = this._delay(function() {\n\t\t\t\tthis._close();\n\t\t\t}, this.delay );\n\t\t}\n\n\t\tnested = item.children( \".ui-menu\" );\n\t\tif ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {\n\t\t\tthis._startOpening(nested);\n\t\t}\n\t\tthis.activeMenu = item.parent();\n\n\t\tthis._trigger( \"focus\", event, { item: item } );\n\t},\n\n\t_scrollIntoView: function( item ) {\n\t\tvar borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;\n\t\tif ( this._hasScroll() ) {\n\t\t\tborderTop = parseFloat( $.css( this.activeMenu[0], \"borderTopWidth\" ) ) || 0;\n\t\t\tpaddingTop = parseFloat( $.css( this.activeMenu[0], \"paddingTop\" ) ) || 0;\n\t\t\toffset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;\n\t\t\tscroll = this.activeMenu.scrollTop();\n\t\t\telementHeight = this.activeMenu.height();\n\t\t\titemHeight = item.outerHeight();\n\n\t\t\tif ( offset < 0 ) {\n\t\t\t\tthis.activeMenu.scrollTop( scroll + offset );\n\t\t\t} else if ( offset + itemHeight > elementHeight ) {\n\t\t\t\tthis.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );\n\t\t\t}\n\t\t}\n\t},\n\n\tblur: function( event, fromFocus ) {\n\t\tif ( !fromFocus ) {\n\t\t\tclearTimeout( this.timer );\n\t\t}\n\n\t\tif ( !this.active ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.active.removeClass( \"ui-state-focus\" );\n\t\tthis.active = null;\n\n\t\tthis._trigger( \"blur\", event, { item: this.active } );\n\t},\n\n\t_startOpening: function( submenu ) {\n\t\tclearTimeout( this.timer );\n\n\t\t// Don't open if already open fixes a Firefox bug that caused a .5 pixel\n\t\t// shift in the submenu position when mousing over the carat icon\n\t\tif ( submenu.attr( \"aria-hidden\" ) !== \"true\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.timer = this._delay(function() {\n\t\t\tthis._close();\n\t\t\tthis._open( submenu );\n\t\t}, this.delay );\n\t},\n\n\t_open: function( submenu ) {\n\t\tvar position = $.extend({\n\t\t\tof: this.active\n\t\t}, this.options.position );\n\n\t\tclearTimeout( this.timer );\n\t\tthis.element.find( \".ui-menu\" ).not( submenu.parents( \".ui-menu\" ) )\n\t\t\t.hide()\n\t\t\t.attr( \"aria-hidden\", \"true\" );\n\n\t\tsubmenu\n\t\t\t.show()\n\t\t\t.removeAttr( \"aria-hidden\" )\n\t\t\t.attr( \"aria-expanded\", \"true\" )\n\t\t\t.position( position );\n\t},\n\n\tcollapseAll: function( event, all ) {\n\t\tclearTimeout( this.timer );\n\t\tthis.timer = this._delay(function() {\n\t\t\t// If we were passed an event, look for the submenu that contains the event\n\t\t\tvar currentMenu = all ? this.element :\n\t\t\t\t$( event && event.target ).closest( this.element.find( \".ui-menu\" ) );\n\n\t\t\t// If we found no valid submenu ancestor, use the main menu to close all sub menus anyway\n\t\t\tif ( !currentMenu.length ) {\n\t\t\t\tcurrentMenu = this.element;\n\t\t\t}\n\n\t\t\tthis._close( currentMenu );\n\n\t\t\tthis.blur( event );\n\t\t\tthis.activeMenu = currentMenu;\n\t\t}, this.delay );\n\t},\n\n\t// With no arguments, closes the currently active menu - if nothing is active\n\t// it closes all menus. If passed an argument, it will search for menus BELOW\n\t_close: function( startMenu ) {\n\t\tif ( !startMenu ) {\n\t\t\tstartMenu = this.active ? this.active.parent() : this.element;\n\t\t}\n\n\t\tstartMenu\n\t\t\t.find( \".ui-menu\" )\n\t\t\t\t.hide()\n\t\t\t\t.attr( \"aria-hidden\", \"true\" )\n\t\t\t\t.attr( \"aria-expanded\", \"false\" )\n\t\t\t.end()\n\t\t\t.find( \".ui-state-active\" ).not( \".ui-state-focus\" )\n\t\t\t\t.removeClass( \"ui-state-active\" );\n\t},\n\n\t_closeOnDocumentClick: function( event ) {\n\t\treturn !$( event.target ).closest( \".ui-menu\" ).length;\n\t},\n\n\t_isDivider: function( item ) {\n\n\t\t// Match hyphen, em dash, en dash\n\t\treturn !/[^\\-\\u2014\\u2013\\s]/.test( item.text() );\n\t},\n\n\tcollapse: function( event ) {\n\t\tvar newItem = this.active &&\n\t\t\tthis.active.parent().closest( \".ui-menu-item\", this.element );\n\t\tif ( newItem && newItem.length ) {\n\t\t\tthis._close();\n\t\t\tthis.focus( event, newItem );\n\t\t}\n\t},\n\n\texpand: function( event ) {\n\t\tvar newItem = this.active &&\n\t\t\tthis.active\n\t\t\t\t.children( \".ui-menu \" )\n\t\t\t\t.find( this.options.items )\n\t\t\t\t.first();\n\n\t\tif ( newItem && newItem.length ) {\n\t\t\tthis._open( newItem.parent() );\n\n\t\t\t// Delay so Firefox will not hide activedescendant change in expanding submenu from AT\n\t\t\tthis._delay(function() {\n\t\t\t\tthis.focus( event, newItem );\n\t\t\t});\n\t\t}\n\t},\n\n\tnext: function( event ) {\n\t\tthis._move( \"next\", \"first\", event );\n\t},\n\n\tprevious: function( event ) {\n\t\tthis._move( \"prev\", \"last\", event );\n\t},\n\n\tisFirstItem: function() {\n\t\treturn this.active && !this.active.prevAll( \".ui-menu-item\" ).length;\n\t},\n\n\tisLastItem: function() {\n\t\treturn this.active && !this.active.nextAll( \".ui-menu-item\" ).length;\n\t},\n\n\t_move: function( direction, filter, event ) {\n\t\tvar next;\n\t\tif ( this.active ) {\n\t\t\tif ( direction === \"first\" || direction === \"last\" ) {\n\t\t\t\tnext = this.active\n\t\t\t\t\t[ direction === \"first\" ? \"prevAll\" : \"nextAll\" ]( \".ui-menu-item\" )\n\t\t\t\t\t.eq( -1 );\n\t\t\t} else {\n\t\t\t\tnext = this.active\n\t\t\t\t\t[ direction + \"All\" ]( \".ui-menu-item\" )\n\t\t\t\t\t.eq( 0 );\n\t\t\t}\n\t\t}\n\t\tif ( !next || !next.length || !this.active ) {\n\t\t\tnext = this.activeMenu.find( this.options.items )[ filter ]();\n\t\t}\n\n\t\tthis.focus( event, next );\n\t},\n\n\tnextPage: function( event ) {\n\t\tvar item, base, height;\n\n\t\tif ( !this.active ) {\n\t\t\tthis.next( event );\n\t\t\treturn;\n\t\t}\n\t\tif ( this.isLastItem() ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( this._hasScroll() ) {\n\t\t\tbase = this.active.offset().top;\n\t\t\theight = this.element.height();\n\t\t\tthis.active.nextAll( \".ui-menu-item\" ).each(function() {\n\t\t\t\titem = $( this );\n\t\t\t\treturn item.offset().top - base - height < 0;\n\t\t\t});\n\n\t\t\tthis.focus( event, item );\n\t\t} else {\n\t\t\tthis.focus( event, this.activeMenu.find( this.options.items )\n\t\t\t\t[ !this.active ? \"first\" : \"last\" ]() );\n\t\t}\n\t},\n\n\tpreviousPage: function( event ) {\n\t\tvar item, base, height;\n\t\tif ( !this.active ) {\n\t\t\tthis.next( event );\n\t\t\treturn;\n\t\t}\n\t\tif ( this.isFirstItem() ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( this._hasScroll() ) {\n\t\t\tbase = this.active.offset().top;\n\t\t\theight = this.element.height();\n\t\t\tthis.active.prevAll( \".ui-menu-item\" ).each(function() {\n\t\t\t\titem = $( this );\n\t\t\t\treturn item.offset().top - base + height > 0;\n\t\t\t});\n\n\t\t\tthis.focus( event, item );\n\t\t} else {\n\t\t\tthis.focus( event, this.activeMenu.find( this.options.items ).first() );\n\t\t}\n\t},\n\n\t_hasScroll: function() {\n\t\treturn this.element.outerHeight() < this.element.prop( \"scrollHeight\" );\n\t},\n\n\tselect: function( event ) {\n\t\t// TODO: It should never be possible to not have an active item at this\n\t\t// point, but the tests don't trigger mouseenter before click.\n\t\tthis.active = this.active || $( event.target ).closest( \".ui-menu-item\" );\n\t\tvar ui = { item: this.active };\n\t\tif ( !this.active.has( \".ui-menu\" ).length ) {\n\t\t\tthis.collapseAll( event, true );\n\t\t}\n\t\tthis._trigger( \"select\", event, ui );\n\t},\n\n\t_filterMenuItems: function(character) {\n\t\tvar escapedCharacter = character.replace( /[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\" ),\n\t\t\tregex = new RegExp( \"^\" + escapedCharacter, \"i\" );\n\n\t\treturn this.activeMenu\n\t\t\t.find( this.options.items )\n\n\t\t\t// Only match on items, not dividers or other content (#10571)\n\t\t\t.filter( \".ui-menu-item\" )\n\t\t\t.filter(function() {\n\t\t\t\treturn regex.test( $.trim( $( this ).text() ) );\n\t\t\t});\n\t}\n});\n\n\n/*!\n * jQuery UI Autocomplete 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/autocomplete/\n */\n\n\n$.widget( \"ui.autocomplete\", {\n\tversion: \"1.11.4\",\n\tdefaultElement: \"<input>\",\n\toptions: {\n\t\tappendTo: null,\n\t\tautoFocus: false,\n\t\tdelay: 300,\n\t\tminLength: 1,\n\t\tposition: {\n\t\t\tmy: \"left top\",\n\t\t\tat: \"left bottom\",\n\t\t\tcollision: \"none\"\n\t\t},\n\t\tsource: null,\n\n\t\t// callbacks\n\t\tchange: null,\n\t\tclose: null,\n\t\tfocus: null,\n\t\topen: null,\n\t\tresponse: null,\n\t\tsearch: null,\n\t\tselect: null\n\t},\n\n\trequestIndex: 0,\n\tpending: 0,\n\n\t_create: function() {\n\t\t// Some browsers only repeat keydown events, not keypress events,\n\t\t// so we use the suppressKeyPress flag to determine if we've already\n\t\t// handled the keydown event. #7269\n\t\t// Unfortunately the code for & in keypress is the same as the up arrow,\n\t\t// so we use the suppressKeyPressRepeat flag to avoid handling keypress\n\t\t// events when we know the keydown event was used to modify the\n\t\t// search term. #7799\n\t\tvar suppressKeyPress, suppressKeyPressRepeat, suppressInput,\n\t\t\tnodeName = this.element[ 0 ].nodeName.toLowerCase(),\n\t\t\tisTextarea = nodeName === \"textarea\",\n\t\t\tisInput = nodeName === \"input\";\n\n\t\tthis.isMultiLine =\n\t\t\t// Textareas are always multi-line\n\t\t\tisTextarea ? true :\n\t\t\t// Inputs are always single-line, even if inside a contentEditable element\n\t\t\t// IE also treats inputs as contentEditable\n\t\t\tisInput ? false :\n\t\t\t// All other element types are determined by whether or not they're contentEditable\n\t\t\tthis.element.prop( \"isContentEditable\" );\n\n\t\tthis.valueMethod = this.element[ isTextarea || isInput ? \"val\" : \"text\" ];\n\t\tthis.isNewMenu = true;\n\n\t\tthis.element\n\t\t\t.addClass( \"ui-autocomplete-input\" )\n\t\t\t.attr( \"autocomplete\", \"off\" );\n\n\t\tthis._on( this.element, {\n\t\t\tkeydown: function( event ) {\n\t\t\t\tif ( this.element.prop( \"readOnly\" ) ) {\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tsuppressInput = true;\n\t\t\t\t\tsuppressKeyPressRepeat = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsuppressKeyPress = false;\n\t\t\t\tsuppressInput = false;\n\t\t\t\tsuppressKeyPressRepeat = false;\n\t\t\t\tvar keyCode = $.ui.keyCode;\n\t\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase keyCode.PAGE_UP:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._move( \"previousPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.PAGE_DOWN:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._move( \"nextPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.UP:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._keyEvent( \"previous\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.DOWN:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._keyEvent( \"next\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.ENTER:\n\t\t\t\t\t// when menu is open and has focus\n\t\t\t\t\tif ( this.menu.active ) {\n\t\t\t\t\t\t// #6055 - Opera still allows the keypress to occur\n\t\t\t\t\t\t// which causes forms to submit\n\t\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis.menu.select( event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.TAB:\n\t\t\t\t\tif ( this.menu.active ) {\n\t\t\t\t\t\tthis.menu.select( event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.ESCAPE:\n\t\t\t\t\tif ( this.menu.element.is( \":visible\" ) ) {\n\t\t\t\t\t\tif ( !this.isMultiLine ) {\n\t\t\t\t\t\t\tthis._value( this.term );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.close( event );\n\t\t\t\t\t\t// Different browsers have different default behavior for escape\n\t\t\t\t\t\t// Single press can mean undo or clear\n\t\t\t\t\t\t// Double press in IE means clear the whole form\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tsuppressKeyPressRepeat = true;\n\t\t\t\t\t// search timeout should be triggered before the input value is changed\n\t\t\t\t\tthis._searchTimeout( event );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tkeypress: function( event ) {\n\t\t\t\tif ( suppressKeyPress ) {\n\t\t\t\t\tsuppressKeyPress = false;\n\t\t\t\t\tif ( !this.isMultiLine || this.menu.element.is( \":visible\" ) ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( suppressKeyPressRepeat ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// replicate some key handlers to allow them to repeat in Firefox and Opera\n\t\t\t\tvar keyCode = $.ui.keyCode;\n\t\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase keyCode.PAGE_UP:\n\t\t\t\t\tthis._move( \"previousPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.PAGE_DOWN:\n\t\t\t\t\tthis._move( \"nextPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.UP:\n\t\t\t\t\tthis._keyEvent( \"previous\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.DOWN:\n\t\t\t\t\tthis._keyEvent( \"next\", event );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tinput: function( event ) {\n\t\t\t\tif ( suppressInput ) {\n\t\t\t\t\tsuppressInput = false;\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._searchTimeout( event );\n\t\t\t},\n\t\t\tfocus: function() {\n\t\t\t\tthis.selectedItem = null;\n\t\t\t\tthis.previous = this._value();\n\t\t\t},\n\t\t\tblur: function( event ) {\n\t\t\t\tif ( this.cancelBlur ) {\n\t\t\t\t\tdelete this.cancelBlur;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tclearTimeout( this.searching );\n\t\t\t\tthis.close( event );\n\t\t\t\tthis._change( event );\n\t\t\t}\n\t\t});\n\n\t\tthis._initSource();\n\t\tthis.menu = $( \"<ul>\" )\n\t\t\t.addClass( \"ui-autocomplete ui-front\" )\n\t\t\t.appendTo( this._appendTo() )\n\t\t\t.menu({\n\t\t\t\t// disable ARIA support, the live region takes care of that\n\t\t\t\trole: null\n\t\t\t})\n\t\t\t.hide()\n\t\t\t.menu( \"instance\" );\n\n\t\tthis._on( this.menu.element, {\n\t\t\tmousedown: function( event ) {\n\t\t\t\t// prevent moving focus out of the text field\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// IE doesn't prevent moving focus even with event.preventDefault()\n\t\t\t\t// so we set a flag to know when we should ignore the blur event\n\t\t\t\tthis.cancelBlur = true;\n\t\t\t\tthis._delay(function() {\n\t\t\t\t\tdelete this.cancelBlur;\n\t\t\t\t});\n\n\t\t\t\t// clicking on the scrollbar causes focus to shift to the body\n\t\t\t\t// but we can't detect a mouseup or a click immediately afterward\n\t\t\t\t// so we have to track the next mousedown and close the menu if\n\t\t\t\t// the user clicks somewhere outside of the autocomplete\n\t\t\t\tvar menuElement = this.menu.element[ 0 ];\n\t\t\t\tif ( !$( event.target ).closest( \".ui-menu-item\" ).length ) {\n\t\t\t\t\tthis._delay(function() {\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tthis.document.one( \"mousedown\", function( event ) {\n\t\t\t\t\t\t\tif ( event.target !== that.element[ 0 ] &&\n\t\t\t\t\t\t\t\t\tevent.target !== menuElement &&\n\t\t\t\t\t\t\t\t\t!$.contains( menuElement, event.target ) ) {\n\t\t\t\t\t\t\t\tthat.close();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenufocus: function( event, ui ) {\n\t\t\t\tvar label, item;\n\t\t\t\t// support: Firefox\n\t\t\t\t// Prevent accidental activation of menu items in Firefox (#7024 #9118)\n\t\t\t\tif ( this.isNewMenu ) {\n\t\t\t\t\tthis.isNewMenu = false;\n\t\t\t\t\tif ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {\n\t\t\t\t\t\tthis.menu.blur();\n\n\t\t\t\t\t\tthis.document.one( \"mousemove\", function() {\n\t\t\t\t\t\t\t$( event.target ).trigger( event.originalEvent );\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\titem = ui.item.data( \"ui-autocomplete-item\" );\n\t\t\t\tif ( false !== this._trigger( \"focus\", event, { item: item } ) ) {\n\t\t\t\t\t// use value to match what will end up in the input, if it was a key event\n\t\t\t\t\tif ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {\n\t\t\t\t\t\tthis._value( item.value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Announce the value in the liveRegion\n\t\t\t\tlabel = ui.item.attr( \"aria-label\" ) || item.value;\n\t\t\t\tif ( label && $.trim( label ).length ) {\n\t\t\t\t\tthis.liveRegion.children().hide();\n\t\t\t\t\t$( \"<div>\" ).text( label ).appendTo( this.liveRegion );\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuselect: function( event, ui ) {\n\t\t\t\tvar item = ui.item.data( \"ui-autocomplete-item\" ),\n\t\t\t\t\tprevious = this.previous;\n\n\t\t\t\t// only trigger when focus was lost (click on menu)\n\t\t\t\tif ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) {\n\t\t\t\t\tthis.element.focus();\n\t\t\t\t\tthis.previous = previous;\n\t\t\t\t\t// #6109 - IE triggers two focus events and the second\n\t\t\t\t\t// is asynchronous, so we need to reset the previous\n\t\t\t\t\t// term synchronously and asynchronously :-(\n\t\t\t\t\tthis._delay(function() {\n\t\t\t\t\t\tthis.previous = previous;\n\t\t\t\t\t\tthis.selectedItem = item;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif ( false !== this._trigger( \"select\", event, { item: item } ) ) {\n\t\t\t\t\tthis._value( item.value );\n\t\t\t\t}\n\t\t\t\t// reset the term after the select event\n\t\t\t\t// this allows custom select handling to work properly\n\t\t\t\tthis.term = this._value();\n\n\t\t\t\tthis.close( event );\n\t\t\t\tthis.selectedItem = item;\n\t\t\t}\n\t\t});\n\n\t\tthis.liveRegion = $( \"<span>\", {\n\t\t\t\trole: \"status\",\n\t\t\t\t\"aria-live\": \"assertive\",\n\t\t\t\t\"aria-relevant\": \"additions\"\n\t\t\t})\n\t\t\t.addClass( \"ui-helper-hidden-accessible\" )\n\t\t\t.appendTo( this.document[ 0 ].body );\n\n\t\t// turning off autocomplete prevents the browser from remembering the\n\t\t// value when navigating through history, so we re-enable autocomplete\n\t\t// if the page is unloaded before the widget is destroyed. #7790\n\t\tthis._on( this.window, {\n\t\t\tbeforeunload: function() {\n\t\t\t\tthis.element.removeAttr( \"autocomplete\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_destroy: function() {\n\t\tclearTimeout( this.searching );\n\t\tthis.element\n\t\t\t.removeClass( \"ui-autocomplete-input\" )\n\t\t\t.removeAttr( \"autocomplete\" );\n\t\tthis.menu.element.remove();\n\t\tthis.liveRegion.remove();\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\t\tif ( key === \"source\" ) {\n\t\t\tthis._initSource();\n\t\t}\n\t\tif ( key === \"appendTo\" ) {\n\t\t\tthis.menu.element.appendTo( this._appendTo() );\n\t\t}\n\t\tif ( key === \"disabled\" && value && this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\t},\n\n\t_appendTo: function() {\n\t\tvar element = this.options.appendTo;\n\n\t\tif ( element ) {\n\t\t\telement = element.jquery || element.nodeType ?\n\t\t\t\t$( element ) :\n\t\t\t\tthis.document.find( element ).eq( 0 );\n\t\t}\n\n\t\tif ( !element || !element[ 0 ] ) {\n\t\t\telement = this.element.closest( \".ui-front\" );\n\t\t}\n\n\t\tif ( !element.length ) {\n\t\t\telement = this.document[ 0 ].body;\n\t\t}\n\n\t\treturn element;\n\t},\n\n\t_initSource: function() {\n\t\tvar array, url,\n\t\t\tthat = this;\n\t\tif ( $.isArray( this.options.source ) ) {\n\t\t\tarray = this.options.source;\n\t\t\tthis.source = function( request, response ) {\n\t\t\t\tresponse( $.ui.autocomplete.filter( array, request.term ) );\n\t\t\t};\n\t\t} else if ( typeof this.options.source === \"string\" ) {\n\t\t\turl = this.options.source;\n\t\t\tthis.source = function( request, response ) {\n\t\t\t\tif ( that.xhr ) {\n\t\t\t\t\tthat.xhr.abort();\n\t\t\t\t}\n\t\t\t\tthat.xhr = $.ajax({\n\t\t\t\t\turl: url,\n\t\t\t\t\tdata: request,\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\tsuccess: function( data ) {\n\t\t\t\t\t\tresponse( data );\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tresponse([]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t} else {\n\t\t\tthis.source = this.options.source;\n\t\t}\n\t},\n\n\t_searchTimeout: function( event ) {\n\t\tclearTimeout( this.searching );\n\t\tthis.searching = this._delay(function() {\n\n\t\t\t// Search if the value has changed, or if the user retypes the same value (see #7434)\n\t\t\tvar equalValues = this.term === this._value(),\n\t\t\t\tmenuVisible = this.menu.element.is( \":visible\" ),\n\t\t\t\tmodifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n\n\t\t\tif ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {\n\t\t\t\tthis.selectedItem = null;\n\t\t\t\tthis.search( null, event );\n\t\t\t}\n\t\t}, this.options.delay );\n\t},\n\n\tsearch: function( value, event ) {\n\t\tvalue = value != null ? value : this._value();\n\n\t\t// always save the actual value, not the one passed as an argument\n\t\tthis.term = this._value();\n\n\t\tif ( value.length < this.options.minLength ) {\n\t\t\treturn this.close( event );\n\t\t}\n\n\t\tif ( this._trigger( \"search\", event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this._search( value );\n\t},\n\n\t_search: function( value ) {\n\t\tthis.pending++;\n\t\tthis.element.addClass( \"ui-autocomplete-loading\" );\n\t\tthis.cancelSearch = false;\n\n\t\tthis.source( { term: value }, this._response() );\n\t},\n\n\t_response: function() {\n\t\tvar index = ++this.requestIndex;\n\n\t\treturn $.proxy(function( content ) {\n\t\t\tif ( index === this.requestIndex ) {\n\t\t\t\tthis.__response( content );\n\t\t\t}\n\n\t\t\tthis.pending--;\n\t\t\tif ( !this.pending ) {\n\t\t\t\tthis.element.removeClass( \"ui-autocomplete-loading\" );\n\t\t\t}\n\t\t}, this );\n\t},\n\n\t__response: function( content ) {\n\t\tif ( content ) {\n\t\t\tcontent = this._normalize( content );\n\t\t}\n\t\tthis._trigger( \"response\", null, { content: content } );\n\t\tif ( !this.options.disabled && content && content.length && !this.cancelSearch ) {\n\t\t\tthis._suggest( content );\n\t\t\tthis._trigger( \"open\" );\n\t\t} else {\n\t\t\t// use ._close() instead of .close() so we don't cancel future searches\n\t\t\tthis._close();\n\t\t}\n\t},\n\n\tclose: function( event ) {\n\t\tthis.cancelSearch = true;\n\t\tthis._close( event );\n\t},\n\n\t_close: function( event ) {\n\t\tif ( this.menu.element.is( \":visible\" ) ) {\n\t\t\tthis.menu.element.hide();\n\t\t\tthis.menu.blur();\n\t\t\tthis.isNewMenu = true;\n\t\t\tthis._trigger( \"close\", event );\n\t\t}\n\t},\n\n\t_change: function( event ) {\n\t\tif ( this.previous !== this._value() ) {\n\t\t\tthis._trigger( \"change\", event, { item: this.selectedItem } );\n\t\t}\n\t},\n\n\t_normalize: function( items ) {\n\t\t// assume all items have the right format when the first item is complete\n\t\tif ( items.length && items[ 0 ].label && items[ 0 ].value ) {\n\t\t\treturn items;\n\t\t}\n\t\treturn $.map( items, function( item ) {\n\t\t\tif ( typeof item === \"string\" ) {\n\t\t\t\treturn {\n\t\t\t\t\tlabel: item,\n\t\t\t\t\tvalue: item\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn $.extend( {}, item, {\n\t\t\t\tlabel: item.label || item.value,\n\t\t\t\tvalue: item.value || item.label\n\t\t\t});\n\t\t});\n\t},\n\n\t_suggest: function( items ) {\n\t\tvar ul = this.menu.element.empty();\n\t\tthis._renderMenu( ul, items );\n\t\tthis.isNewMenu = true;\n\t\tthis.menu.refresh();\n\n\t\t// size and position menu\n\t\tul.show();\n\t\tthis._resizeMenu();\n\t\tul.position( $.extend({\n\t\t\tof: this.element\n\t\t}, this.options.position ) );\n\n\t\tif ( this.options.autoFocus ) {\n\t\t\tthis.menu.next();\n\t\t}\n\t},\n\n\t_resizeMenu: function() {\n\t\tvar ul = this.menu.element;\n\t\tul.outerWidth( Math.max(\n\t\t\t// Firefox wraps long text (possibly a rounding bug)\n\t\t\t// so we add 1px to avoid the wrapping (#7513)\n\t\t\tul.width( \"\" ).outerWidth() + 1,\n\t\t\tthis.element.outerWidth()\n\t\t) );\n\t},\n\n\t_renderMenu: function( ul, items ) {\n\t\tvar that = this;\n\t\t$.each( items, function( index, item ) {\n\t\t\tthat._renderItemData( ul, item );\n\t\t});\n\t},\n\n\t_renderItemData: function( ul, item ) {\n\t\treturn this._renderItem( ul, item ).data( \"ui-autocomplete-item\", item );\n\t},\n\n\t_renderItem: function( ul, item ) {\n\t\treturn $( \"<li>\" ).text( item.label ).appendTo( ul );\n\t},\n\n\t_move: function( direction, event ) {\n\t\tif ( !this.menu.element.is( \":visible\" ) ) {\n\t\t\tthis.search( null, event );\n\t\t\treturn;\n\t\t}\n\t\tif ( this.menu.isFirstItem() && /^previous/.test( direction ) ||\n\t\t\t\tthis.menu.isLastItem() && /^next/.test( direction ) ) {\n\n\t\t\tif ( !this.isMultiLine ) {\n\t\t\t\tthis._value( this.term );\n\t\t\t}\n\n\t\t\tthis.menu.blur();\n\t\t\treturn;\n\t\t}\n\t\tthis.menu[ direction ]( event );\n\t},\n\n\twidget: function() {\n\t\treturn this.menu.element;\n\t},\n\n\t_value: function() {\n\t\treturn this.valueMethod.apply( this.element, arguments );\n\t},\n\n\t_keyEvent: function( keyEvent, event ) {\n\t\tif ( !this.isMultiLine || this.menu.element.is( \":visible\" ) ) {\n\t\t\tthis._move( keyEvent, event );\n\n\t\t\t// prevents moving cursor to beginning/end of the text field in some browsers\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n});\n\n$.extend( $.ui.autocomplete, {\n\tescapeRegex: function( value ) {\n\t\treturn value.replace( /[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\" );\n\t},\n\tfilter: function( array, term ) {\n\t\tvar matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), \"i\" );\n\t\treturn $.grep( array, function( value ) {\n\t\t\treturn matcher.test( value.label || value.value || value );\n\t\t});\n\t}\n});\n\n// live region extension, adding a `messages` option\n// NOTE: This is an experimental API. We are still investigating\n// a full solution for string manipulation and internationalization.\n$.widget( \"ui.autocomplete\", $.ui.autocomplete, {\n\toptions: {\n\t\tmessages: {\n\t\t\tnoResults: \"No search results.\",\n\t\t\tresults: function( amount ) {\n\t\t\t\treturn amount + ( amount > 1 ? \" results are\" : \" result is\" ) +\n\t\t\t\t\t\" available, use up and down arrow keys to navigate.\";\n\t\t\t}\n\t\t}\n\t},\n\n\t__response: function( content ) {\n\t\tvar message;\n\t\tthis._superApply( arguments );\n\t\tif ( this.options.disabled || this.cancelSearch ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( content && content.length ) {\n\t\t\tmessage = this.options.messages.results( content.length );\n\t\t} else {\n\t\t\tmessage = this.options.messages.noResults;\n\t\t}\n\t\tthis.liveRegion.children().hide();\n\t\t$( \"<div>\" ).text( message ).appendTo( this.liveRegion );\n\t}\n});\n\nvar autocomplete = $.ui.autocomplete;\n\n\n/*!\n * jQuery UI Button 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/button/\n */\n\n\nvar lastActive,\n\tbaseClasses = \"ui-button ui-widget ui-state-default ui-corner-all\",\n\ttypeClasses = \"ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only\",\n\tformResetHandler = function() {\n\t\tvar form = $( this );\n\t\tsetTimeout(function() {\n\t\t\tform.find( \":ui-button\" ).button( \"refresh\" );\n\t\t}, 1 );\n\t},\n\tradioGroup = function( radio ) {\n\t\tvar name = radio.name,\n\t\t\tform = radio.form,\n\t\t\tradios = $( [] );\n\t\tif ( name ) {\n\t\t\tname = name.replace( /'/g, \"\\\\'\" );\n\t\t\tif ( form ) {\n\t\t\t\tradios = $( form ).find( \"[name='\" + name + \"'][type=radio]\" );\n\t\t\t} else {\n\t\t\t\tradios = $( \"[name='\" + name + \"'][type=radio]\", radio.ownerDocument )\n\t\t\t\t\t.filter(function() {\n\t\t\t\t\t\treturn !this.form;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn radios;\n\t};\n\n$.widget( \"ui.button\", {\n\tversion: \"1.11.4\",\n\tdefaultElement: \"<button>\",\n\toptions: {\n\t\tdisabled: null,\n\t\ttext: true,\n\t\tlabel: null,\n\t\ticons: {\n\t\t\tprimary: null,\n\t\t\tsecondary: null\n\t\t}\n\t},\n\t_create: function() {\n\t\tthis.element.closest( \"form\" )\n\t\t\t.unbind( \"reset\" + this.eventNamespace )\n\t\t\t.bind( \"reset\" + this.eventNamespace, formResetHandler );\n\n\t\tif ( typeof this.options.disabled !== \"boolean\" ) {\n\t\t\tthis.options.disabled = !!this.element.prop( \"disabled\" );\n\t\t} else {\n\t\t\tthis.element.prop( \"disabled\", this.options.disabled );\n\t\t}\n\n\t\tthis._determineButtonType();\n\t\tthis.hasTitle = !!this.buttonElement.attr( \"title\" );\n\n\t\tvar that = this,\n\t\t\toptions = this.options,\n\t\t\ttoggleButton = this.type === \"checkbox\" || this.type === \"radio\",\n\t\t\tactiveClass = !toggleButton ? \"ui-state-active\" : \"\";\n\n\t\tif ( options.label === null ) {\n\t\t\toptions.label = (this.type === \"input\" ? this.buttonElement.val() : this.buttonElement.html());\n\t\t}\n\n\t\tthis._hoverable( this.buttonElement );\n\n\t\tthis.buttonElement\n\t\t\t.addClass( baseClasses )\n\t\t\t.attr( \"role\", \"button\" )\n\t\t\t.bind( \"mouseenter\" + this.eventNamespace, function() {\n\t\t\t\tif ( options.disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( this === lastActive ) {\n\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\n\t\t\t\t}\n\t\t\t})\n\t\t\t.bind( \"mouseleave\" + this.eventNamespace, function() {\n\t\t\t\tif ( options.disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t$( this ).removeClass( activeClass );\n\t\t\t})\n\t\t\t.bind( \"click\" + this.eventNamespace, function( event ) {\n\t\t\t\tif ( options.disabled ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t}\n\t\t\t});\n\n\t\t// Can't use _focusable() because the element that receives focus\n\t\t// and the element that gets the ui-state-focus class are different\n\t\tthis._on({\n\t\t\tfocus: function() {\n\t\t\t\tthis.buttonElement.addClass( \"ui-state-focus\" );\n\t\t\t},\n\t\t\tblur: function() {\n\t\t\t\tthis.buttonElement.removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t});\n\n\t\tif ( toggleButton ) {\n\t\t\tthis.element.bind( \"change\" + this.eventNamespace, function() {\n\t\t\t\tthat.refresh();\n\t\t\t});\n\t\t}\n\n\t\tif ( this.type === \"checkbox\" ) {\n\t\t\tthis.buttonElement.bind( \"click\" + this.eventNamespace, function() {\n\t\t\t\tif ( options.disabled ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else if ( this.type === \"radio\" ) {\n\t\t\tthis.buttonElement.bind( \"click\" + this.eventNamespace, function() {\n\t\t\t\tif ( options.disabled ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t$( this ).addClass( \"ui-state-active\" );\n\t\t\t\tthat.buttonElement.attr( \"aria-pressed\", \"true\" );\n\n\t\t\t\tvar radio = that.element[ 0 ];\n\t\t\t\tradioGroup( radio )\n\t\t\t\t\t.not( radio )\n\t\t\t\t\t.map(function() {\n\t\t\t\t\t\treturn $( this ).button( \"widget\" )[ 0 ];\n\t\t\t\t\t})\n\t\t\t\t\t.removeClass( \"ui-state-active\" )\n\t\t\t\t\t.attr( \"aria-pressed\", \"false\" );\n\t\t\t});\n\t\t} else {\n\t\t\tthis.buttonElement\n\t\t\t\t.bind( \"mousedown\" + this.eventNamespace, function() {\n\t\t\t\t\tif ( options.disabled ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\n\t\t\t\t\tlastActive = this;\n\t\t\t\t\tthat.document.one( \"mouseup\", function() {\n\t\t\t\t\t\tlastActive = null;\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.bind( \"mouseup\" + this.eventNamespace, function() {\n\t\t\t\t\tif ( options.disabled ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\t$( this ).removeClass( \"ui-state-active\" );\n\t\t\t\t})\n\t\t\t\t.bind( \"keydown\" + this.eventNamespace, function(event) {\n\t\t\t\t\tif ( options.disabled ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif ( event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER ) {\n\t\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t// see #8559, we bind to blur here in case the button element loses\n\t\t\t\t// focus between keydown and keyup, it would be left in an \"active\" state\n\t\t\t\t.bind( \"keyup\" + this.eventNamespace + \" blur\" + this.eventNamespace, function() {\n\t\t\t\t\t$( this ).removeClass( \"ui-state-active\" );\n\t\t\t\t});\n\n\t\t\tif ( this.buttonElement.is(\"a\") ) {\n\t\t\t\tthis.buttonElement.keyup(function(event) {\n\t\t\t\t\tif ( event.keyCode === $.ui.keyCode.SPACE ) {\n\t\t\t\t\t\t// TODO pass through original event correctly (just as 2nd argument doesn't work)\n\t\t\t\t\t\t$( this ).click();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis._setOption( \"disabled\", options.disabled );\n\t\tthis._resetButton();\n\t},\n\n\t_determineButtonType: function() {\n\t\tvar ancestor, labelSelector, checked;\n\n\t\tif ( this.element.is(\"[type=checkbox]\") ) {\n\t\t\tthis.type = \"checkbox\";\n\t\t} else if ( this.element.is(\"[type=radio]\") ) {\n\t\t\tthis.type = \"radio\";\n\t\t} else if ( this.element.is(\"input\") ) {\n\t\t\tthis.type = \"input\";\n\t\t} else {\n\t\t\tthis.type = \"button\";\n\t\t}\n\n\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t// we don't search against the document in case the element\n\t\t\t// is disconnected from the DOM\n\t\t\tancestor = this.element.parents().last();\n\t\t\tlabelSelector = \"label[for='\" + this.element.attr(\"id\") + \"']\";\n\t\t\tthis.buttonElement = ancestor.find( labelSelector );\n\t\t\tif ( !this.buttonElement.length ) {\n\t\t\t\tancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();\n\t\t\t\tthis.buttonElement = ancestor.filter( labelSelector );\n\t\t\t\tif ( !this.buttonElement.length ) {\n\t\t\t\t\tthis.buttonElement = ancestor.find( labelSelector );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.element.addClass( \"ui-helper-hidden-accessible\" );\n\n\t\t\tchecked = this.element.is( \":checked\" );\n\t\t\tif ( checked ) {\n\t\t\t\tthis.buttonElement.addClass( \"ui-state-active\" );\n\t\t\t}\n\t\t\tthis.buttonElement.prop( \"aria-pressed\", checked );\n\t\t} else {\n\t\t\tthis.buttonElement = this.element;\n\t\t}\n\t},\n\n\twidget: function() {\n\t\treturn this.buttonElement;\n\t},\n\n\t_destroy: function() {\n\t\tthis.element\n\t\t\t.removeClass( \"ui-helper-hidden-accessible\" );\n\t\tthis.buttonElement\n\t\t\t.removeClass( baseClasses + \" ui-state-active \" + typeClasses )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"aria-pressed\" )\n\t\t\t.html( this.buttonElement.find(\".ui-button-text\").html() );\n\n\t\tif ( !this.hasTitle ) {\n\t\t\tthis.buttonElement.removeAttr( \"title\" );\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget().toggleClass( \"ui-state-disabled\", !!value );\n\t\t\tthis.element.prop( \"disabled\", !!value );\n\t\t\tif ( value ) {\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tthis.buttonElement.removeClass( \"ui-state-focus\" );\n\t\t\t\t} else {\n\t\t\t\t\tthis.buttonElement.removeClass( \"ui-state-focus ui-state-active\" );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tthis._resetButton();\n\t},\n\n\trefresh: function() {\n\t\t//See #8237 & #8828\n\t\tvar isDisabled = this.element.is( \"input, button\" ) ? this.element.is( \":disabled\" ) : this.element.hasClass( \"ui-button-disabled\" );\n\n\t\tif ( isDisabled !== this.options.disabled ) {\n\t\t\tthis._setOption( \"disabled\", isDisabled );\n\t\t}\n\t\tif ( this.type === \"radio\" ) {\n\t\t\tradioGroup( this.element[0] ).each(function() {\n\t\t\t\tif ( $( this ).is( \":checked\" ) ) {\n\t\t\t\t\t$( this ).button( \"widget\" )\n\t\t\t\t\t\t.addClass( \"ui-state-active\" )\n\t\t\t\t\t\t.attr( \"aria-pressed\", \"true\" );\n\t\t\t\t} else {\n\t\t\t\t\t$( this ).button( \"widget\" )\n\t\t\t\t\t\t.removeClass( \"ui-state-active\" )\n\t\t\t\t\t\t.attr( \"aria-pressed\", \"false\" );\n\t\t\t\t}\n\t\t\t});\n\t\t} else if ( this.type === \"checkbox\" ) {\n\t\t\tif ( this.element.is( \":checked\" ) ) {\n\t\t\t\tthis.buttonElement\n\t\t\t\t\t.addClass( \"ui-state-active\" )\n\t\t\t\t\t.attr( \"aria-pressed\", \"true\" );\n\t\t\t} else {\n\t\t\t\tthis.buttonElement\n\t\t\t\t\t.removeClass( \"ui-state-active\" )\n\t\t\t\t\t.attr( \"aria-pressed\", \"false\" );\n\t\t\t}\n\t\t}\n\t},\n\n\t_resetButton: function() {\n\t\tif ( this.type === \"input\" ) {\n\t\t\tif ( this.options.label ) {\n\t\t\t\tthis.element.val( this.options.label );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tvar buttonElement = this.buttonElement.removeClass( typeClasses ),\n\t\t\tbuttonText = $( \"<span></span>\", this.document[0] )\n\t\t\t\t.addClass( \"ui-button-text\" )\n\t\t\t\t.html( this.options.label )\n\t\t\t\t.appendTo( buttonElement.empty() )\n\t\t\t\t.text(),\n\t\t\ticons = this.options.icons,\n\t\t\tmultipleIcons = icons.primary && icons.secondary,\n\t\t\tbuttonClasses = [];\n\n\t\tif ( icons.primary || icons.secondary ) {\n\t\t\tif ( this.options.text ) {\n\t\t\t\tbuttonClasses.push( \"ui-button-text-icon\" + ( multipleIcons ? \"s\" : ( icons.primary ? \"-primary\" : \"-secondary\" ) ) );\n\t\t\t}\n\n\t\t\tif ( icons.primary ) {\n\t\t\t\tbuttonElement.prepend( \"<span class='ui-button-icon-primary ui-icon \" + icons.primary + \"'></span>\" );\n\t\t\t}\n\n\t\t\tif ( icons.secondary ) {\n\t\t\t\tbuttonElement.append( \"<span class='ui-button-icon-secondary ui-icon \" + icons.secondary + \"'></span>\" );\n\t\t\t}\n\n\t\t\tif ( !this.options.text ) {\n\t\t\t\tbuttonClasses.push( multipleIcons ? \"ui-button-icons-only\" : \"ui-button-icon-only\" );\n\n\t\t\t\tif ( !this.hasTitle ) {\n\t\t\t\t\tbuttonElement.attr( \"title\", $.trim( buttonText ) );\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tbuttonClasses.push( \"ui-button-text-only\" );\n\t\t}\n\t\tbuttonElement.addClass( buttonClasses.join( \" \" ) );\n\t}\n});\n\n$.widget( \"ui.buttonset\", {\n\tversion: \"1.11.4\",\n\toptions: {\n\t\titems: \"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)\"\n\t},\n\n\t_create: function() {\n\t\tthis.element.addClass( \"ui-buttonset\" );\n\t},\n\n\t_init: function() {\n\t\tthis.refresh();\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.buttons.button( \"option\", key, value );\n\t\t}\n\n\t\tthis._super( key, value );\n\t},\n\n\trefresh: function() {\n\t\tvar rtl = this.element.css( \"direction\" ) === \"rtl\",\n\t\t\tallButtons = this.element.find( this.options.items ),\n\t\t\texistingButtons = allButtons.filter( \":ui-button\" );\n\n\t\t// Initialize new buttons\n\t\tallButtons.not( \":ui-button\" ).button();\n\n\t\t// Refresh existing buttons\n\t\texistingButtons.button( \"refresh\" );\n\n\t\tthis.buttons = allButtons\n\t\t\t.map(function() {\n\t\t\t\treturn $( this ).button( \"widget\" )[ 0 ];\n\t\t\t})\n\t\t\t\t.removeClass( \"ui-corner-all ui-corner-left ui-corner-right\" )\n\t\t\t\t.filter( \":first\" )\n\t\t\t\t\t.addClass( rtl ? \"ui-corner-right\" : \"ui-corner-left\" )\n\t\t\t\t.end()\n\t\t\t\t.filter( \":last\" )\n\t\t\t\t\t.addClass( rtl ? \"ui-corner-left\" : \"ui-corner-right\" )\n\t\t\t\t.end()\n\t\t\t.end();\n\t},\n\n\t_destroy: function() {\n\t\tthis.element.removeClass( \"ui-buttonset\" );\n\t\tthis.buttons\n\t\t\t.map(function() {\n\t\t\t\treturn $( this ).button( \"widget\" )[ 0 ];\n\t\t\t})\n\t\t\t\t.removeClass( \"ui-corner-left ui-corner-right\" )\n\t\t\t.end()\n\t\t\t.button( \"destroy\" );\n\t}\n});\n\nvar button = $.ui.button;\n\n\n/*!\n * jQuery UI Datepicker 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/datepicker/\n */\n\n\n$.extend($.ui, { datepicker: { version: \"1.11.4\" } });\n\nvar datepicker_instActive;\n\nfunction datepicker_getZindex( elem ) {\n\tvar position, value;\n\twhile ( elem.length && elem[ 0 ] !== document ) {\n\t\t// Ignore z-index if position is set to a value where z-index is ignored by the browser\n\t\t// This makes behavior of this function consistent across browsers\n\t\t// WebKit always returns auto if the element is positioned\n\t\tposition = elem.css( \"position\" );\n\t\tif ( position === \"absolute\" || position === \"relative\" || position === \"fixed\" ) {\n\t\t\t// IE returns 0 when zIndex is not specified\n\t\t\t// other browsers return a string\n\t\t\t// we ignore the case of nested elements with an explicit value of 0\n\t\t\t// <div style=\"z-index: -10;\"><div style=\"z-index: 0;\"></div></div>\n\t\t\tvalue = parseInt( elem.css( \"zIndex\" ), 10 );\n\t\t\tif ( !isNaN( value ) && value !== 0 ) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t\telem = elem.parent();\n\t}\n\n\treturn 0;\n}\n/* Date picker manager.\n Use the singleton instance of this class, $.datepicker, to interact with the date picker.\n Settings for (groups of) date pickers are maintained in an instance object,\n allowing multiple different settings on the same page. */\n\nfunction Datepicker() {\n\tthis._curInst = null; // The current instance in use\n\tthis._keyEvent = false; // If the last event was a key event\n\tthis._disabledInputs = []; // List of date picker inputs that have been disabled\n\tthis._datepickerShowing = false; // True if the popup picker is showing , false if not\n\tthis._inDialog = false; // True if showing within a \"dialog\", false if not\n\tthis._mainDivId = \"ui-datepicker-div\"; // The ID of the main datepicker division\n\tthis._inlineClass = \"ui-datepicker-inline\"; // The name of the inline marker class\n\tthis._appendClass = \"ui-datepicker-append\"; // The name of the append marker class\n\tthis._triggerClass = \"ui-datepicker-trigger\"; // The name of the trigger marker class\n\tthis._dialogClass = \"ui-datepicker-dialog\"; // The name of the dialog marker class\n\tthis._disableClass = \"ui-datepicker-disabled\"; // The name of the disabled covering marker class\n\tthis._unselectableClass = \"ui-datepicker-unselectable\"; // The name of the unselectable cell marker class\n\tthis._currentClass = \"ui-datepicker-current-day\"; // The name of the current day marker class\n\tthis._dayOverClass = \"ui-datepicker-days-cell-over\"; // The name of the day hover marker class\n\tthis.regional = []; // Available regional settings, indexed by language code\n\tthis.regional[\"\"] = { // Default regional settings\n\t\tcloseText: \"Done\", // Display text for close link\n\t\tprevText: \"Prev\", // Display text for previous month link\n\t\tnextText: \"Next\", // Display text for next month link\n\t\tcurrentText: \"Today\", // Display text for current month link\n\t\tmonthNames: [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\n\t\t\t\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"], // Names of months for drop-down and formatting\n\t\tmonthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"], // For formatting\n\t\tdayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"], // For formatting\n\t\tdayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"], // For formatting\n\t\tdayNamesMin: [\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"], // Column headings for days starting at Sunday\n\t\tweekHeader: \"Wk\", // Column header for week of the year\n\t\tdateFormat: \"mm/dd/yy\", // See format options on parseDate\n\t\tfirstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...\n\t\tisRTL: false, // True if right-to-left language, false if left-to-right\n\t\tshowMonthAfterYear: false, // True if the year select precedes month, false for month then year\n\t\tyearSuffix: \"\" // Additional text to append to the year in the month headers\n\t};\n\tthis._defaults = { // Global defaults for all the date picker instances\n\t\tshowOn: \"focus\", // \"focus\" for popup on focus,\n\t\t\t// \"button\" for trigger button, or \"both\" for either\n\t\tshowAnim: \"fadeIn\", // Name of jQuery animation for popup\n\t\tshowOptions: {}, // Options for enhanced animations\n\t\tdefaultDate: null, // Used when field is blank: actual date,\n\t\t\t// +/-number for offset from today, null for today\n\t\tappendText: \"\", // Display text following the input box, e.g. showing the format\n\t\tbuttonText: \"...\", // Text for trigger button\n\t\tbuttonImage: \"\", // URL for trigger button image\n\t\tbuttonImageOnly: false, // True if the image appears alone, false if it appears on a button\n\t\thideIfNoPrevNext: false, // True to hide next/previous month links\n\t\t\t// if not applicable, false to just disable them\n\t\tnavigationAsDateFormat: false, // True if date formatting applied to prev/today/next links\n\t\tgotoCurrent: false, // True if today link goes back to current selection instead\n\t\tchangeMonth: false, // True if month can be selected directly, false if only prev/next\n\t\tchangeYear: false, // True if year can be selected directly, false if only prev/next\n\t\tyearRange: \"c-10:c+10\", // Range of years to display in drop-down,\n\t\t\t// either relative to today's year (-nn:+nn), relative to currently displayed year\n\t\t\t// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)\n\t\tshowOtherMonths: false, // True to show dates in other months, false to leave blank\n\t\tselectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable\n\t\tshowWeek: false, // True to show week of the year, false to not show it\n\t\tcalculateWeek: this.iso8601Week, // How to calculate the week of the year,\n\t\t\t// takes a Date and returns the number of the week for it\n\t\tshortYearCutoff: \"+10\", // Short year values < this are in the current century,\n\t\t\t// > this are in the previous century,\n\t\t\t// string value starting with \"+\" for current year + value\n\t\tminDate: null, // The earliest selectable date, or null for no limit\n\t\tmaxDate: null, // The latest selectable date, or null for no limit\n\t\tduration: \"fast\", // Duration of display/closure\n\t\tbeforeShowDay: null, // Function that takes a date and returns an array with\n\t\t\t// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or \"\",\n\t\t\t// [2] = cell title (optional), e.g. $.datepicker.noWeekends\n\t\tbeforeShow: null, // Function that takes an input field and\n\t\t\t// returns a set of custom settings for the date picker\n\t\tonSelect: null, // Define a callback function when a date is selected\n\t\tonChangeMonthYear: null, // Define a callback function when the month or year is changed\n\t\tonClose: null, // Define a callback function when the datepicker is closed\n\t\tnumberOfMonths: 1, // Number of months to show at a time\n\t\tshowCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)\n\t\tstepMonths: 1, // Number of months to step back/forward\n\t\tstepBigMonths: 12, // Number of months to step back/forward for the big links\n\t\taltField: \"\", // Selector for an alternate field to store selected dates into\n\t\taltFormat: \"\", // The date format to use for the alternate field\n\t\tconstrainInput: true, // The input is constrained by the current date format\n\t\tshowButtonPanel: false, // True to show button panel, false to not show it\n\t\tautoSize: false, // True to size the input for the date format, false to leave as is\n\t\tdisabled: false // The initial disabled state\n\t};\n\t$.extend(this._defaults, this.regional[\"\"]);\n\tthis.regional.en = $.extend( true, {}, this.regional[ \"\" ]);\n\tthis.regional[ \"en-US\" ] = $.extend( true, {}, this.regional.en );\n\tthis.dpDiv = datepicker_bindHover($(\"<div id='\" + this._mainDivId + \"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\"));\n}\n\n$.extend(Datepicker.prototype, {\n\t/* Class name added to elements to indicate already configured with a date picker. */\n\tmarkerClassName: \"hasDatepicker\",\n\n\t//Keep track of the maximum number of rows displayed (see #7043)\n\tmaxRows: 4,\n\n\t// TODO rename to \"widget\" when switching to widget factory\n\t_widgetDatepicker: function() {\n\t\treturn this.dpDiv;\n\t},\n\n\t/* Override the default settings for all instances of the date picker.\n\t * @param settings object - the new settings to use as defaults (anonymous object)\n\t * @return the manager object\n\t */\n\tsetDefaults: function(settings) {\n\t\tdatepicker_extendRemove(this._defaults, settings || {});\n\t\treturn this;\n\t},\n\n\t/* Attach the date picker to a jQuery selection.\n\t * @param target\telement - the target input field or division or span\n\t * @param settings object - the new settings to use for this date picker instance (anonymous)\n\t */\n\t_attachDatepicker: function(target, settings) {\n\t\tvar nodeName, inline, inst;\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tinline = (nodeName === \"div\" || nodeName === \"span\");\n\t\tif (!target.id) {\n\t\t\tthis.uuid += 1;\n\t\t\ttarget.id = \"dp\" + this.uuid;\n\t\t}\n\t\tinst = this._newInst($(target), inline);\n\t\tinst.settings = $.extend({}, settings || {});\n\t\tif (nodeName === \"input\") {\n\t\t\tthis._connectDatepicker(target, inst);\n\t\t} else if (inline) {\n\t\t\tthis._inlineDatepicker(target, inst);\n\t\t}\n\t},\n\n\t/* Create a new instance object. */\n\t_newInst: function(target, inline) {\n\t\tvar id = target[0].id.replace(/([^A-Za-z0-9_\\-])/g, \"\\\\\\\\$1\"); // escape jQuery meta chars\n\t\treturn {id: id, input: target, // associated target\n\t\t\tselectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection\n\t\t\tdrawMonth: 0, drawYear: 0, // month being drawn\n\t\t\tinline: inline, // is datepicker inline or not\n\t\t\tdpDiv: (!inline ? this.dpDiv : // presentation div\n\t\t\tdatepicker_bindHover($(\"<div class='\" + this._inlineClass + \" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\")))};\n\t},\n\n\t/* Attach the date picker to an input field. */\n\t_connectDatepicker: function(target, inst) {\n\t\tvar input = $(target);\n\t\tinst.append = $([]);\n\t\tinst.trigger = $([]);\n\t\tif (input.hasClass(this.markerClassName)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._attachments(input, inst);\n\t\tinput.addClass(this.markerClassName).keydown(this._doKeyDown).\n\t\t\tkeypress(this._doKeyPress).keyup(this._doKeyUp);\n\t\tthis._autoSize(inst);\n\t\t$.data(target, \"datepicker\", inst);\n\t\t//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)\n\t\tif( inst.settings.disabled ) {\n\t\t\tthis._disableDatepicker( target );\n\t\t}\n\t},\n\n\t/* Make attachments based on settings. */\n\t_attachments: function(input, inst) {\n\t\tvar showOn, buttonText, buttonImage,\n\t\t\tappendText = this._get(inst, \"appendText\"),\n\t\t\tisRTL = this._get(inst, \"isRTL\");\n\n\t\tif (inst.append) {\n\t\t\tinst.append.remove();\n\t\t}\n\t\tif (appendText) {\n\t\t\tinst.append = $(\"<span class='\" + this._appendClass + \"'>\" + appendText + \"</span>\");\n\t\t\tinput[isRTL ? \"before\" : \"after\"](inst.append);\n\t\t}\n\n\t\tinput.unbind(\"focus\", this._showDatepicker);\n\n\t\tif (inst.trigger) {\n\t\t\tinst.trigger.remove();\n\t\t}\n\n\t\tshowOn = this._get(inst, \"showOn\");\n\t\tif (showOn === \"focus\" || showOn === \"both\") { // pop-up date picker when in the marked field\n\t\t\tinput.focus(this._showDatepicker);\n\t\t}\n\t\tif (showOn === \"button\" || showOn === \"both\") { // pop-up date picker when button clicked\n\t\t\tbuttonText = this._get(inst, \"buttonText\");\n\t\t\tbuttonImage = this._get(inst, \"buttonImage\");\n\t\t\tinst.trigger = $(this._get(inst, \"buttonImageOnly\") ?\n\t\t\t\t$(\"<img/>\").addClass(this._triggerClass).\n\t\t\t\t\tattr({ src: buttonImage, alt: buttonText, title: buttonText }) :\n\t\t\t\t$(\"<button type='button'></button>\").addClass(this._triggerClass).\n\t\t\t\t\thtml(!buttonImage ? buttonText : $(\"<img/>\").attr(\n\t\t\t\t\t{ src:buttonImage, alt:buttonText, title:buttonText })));\n\t\t\tinput[isRTL ? \"before\" : \"after\"](inst.trigger);\n\t\t\tinst.trigger.click(function() {\n\t\t\t\tif ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t} else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t\t$.datepicker._showDatepicker(input[0]);\n\t\t\t\t} else {\n\t\t\t\t\t$.datepicker._showDatepicker(input[0]);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}\n\t},\n\n\t/* Apply the maximum length for the date format. */\n\t_autoSize: function(inst) {\n\t\tif (this._get(inst, \"autoSize\") && !inst.inline) {\n\t\t\tvar findMax, max, maxI, i,\n\t\t\t\tdate = new Date(2009, 12 - 1, 20), // Ensure double digits\n\t\t\t\tdateFormat = this._get(inst, \"dateFormat\");\n\n\t\t\tif (dateFormat.match(/[DM]/)) {\n\t\t\t\tfindMax = function(names) {\n\t\t\t\t\tmax = 0;\n\t\t\t\t\tmaxI = 0;\n\t\t\t\t\tfor (i = 0; i < names.length; i++) {\n\t\t\t\t\t\tif (names[i].length > max) {\n\t\t\t\t\t\t\tmax = names[i].length;\n\t\t\t\t\t\t\tmaxI = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn maxI;\n\t\t\t\t};\n\t\t\t\tdate.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?\n\t\t\t\t\t\"monthNames\" : \"monthNamesShort\"))));\n\t\t\t\tdate.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?\n\t\t\t\t\t\"dayNames\" : \"dayNamesShort\"))) + 20 - date.getDay());\n\t\t\t}\n\t\t\tinst.input.attr(\"size\", this._formatDate(inst, date).length);\n\t\t}\n\t},\n\n\t/* Attach an inline date picker to a div. */\n\t_inlineDatepicker: function(target, inst) {\n\t\tvar divSpan = $(target);\n\t\tif (divSpan.hasClass(this.markerClassName)) {\n\t\t\treturn;\n\t\t}\n\t\tdivSpan.addClass(this.markerClassName).append(inst.dpDiv);\n\t\t$.data(target, \"datepicker\", inst);\n\t\tthis._setDate(inst, this._getDefaultDate(inst), true);\n\t\tthis._updateDatepicker(inst);\n\t\tthis._updateAlternate(inst);\n\t\t//If disabled option is true, disable the datepicker before showing it (see ticket #5665)\n\t\tif( inst.settings.disabled ) {\n\t\t\tthis._disableDatepicker( target );\n\t\t}\n\t\t// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements\n\t\t// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height\n\t\tinst.dpDiv.css( \"display\", \"block\" );\n\t},\n\n\t/* Pop-up the date picker in a \"dialog\" box.\n\t * @param input element - ignored\n\t * @param date\tstring or Date - the initial date to display\n\t * @param onSelect function - the function to call when a date is selected\n\t * @param settings object - update the dialog date picker instance's settings (anonymous object)\n\t * @param pos int[2] - coordinates for the dialog's position within the screen or\n\t *\t\t\t\t\tevent - with x/y coordinates or\n\t *\t\t\t\t\tleave empty for default (screen centre)\n\t * @return the manager object\n\t */\n\t_dialogDatepicker: function(input, date, onSelect, settings, pos) {\n\t\tvar id, browserWidth, browserHeight, scrollX, scrollY,\n\t\t\tinst = this._dialogInst; // internal instance\n\n\t\tif (!inst) {\n\t\t\tthis.uuid += 1;\n\t\t\tid = \"dp\" + this.uuid;\n\t\t\tthis._dialogInput = $(\"<input type='text' id='\" + id +\n\t\t\t\t\"' style='position: absolute; top: -100px; width: 0px;'/>\");\n\t\t\tthis._dialogInput.keydown(this._doKeyDown);\n\t\t\t$(\"body\").append(this._dialogInput);\n\t\t\tinst = this._dialogInst = this._newInst(this._dialogInput, false);\n\t\t\tinst.settings = {};\n\t\t\t$.data(this._dialogInput[0], \"datepicker\", inst);\n\t\t}\n\t\tdatepicker_extendRemove(inst.settings, settings || {});\n\t\tdate = (date && date.constructor === Date ? this._formatDate(inst, date) : date);\n\t\tthis._dialogInput.val(date);\n\n\t\tthis._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);\n\t\tif (!this._pos) {\n\t\t\tbrowserWidth = document.documentElement.clientWidth;\n\t\t\tbrowserHeight = document.documentElement.clientHeight;\n\t\t\tscrollX = document.documentElement.scrollLeft || document.body.scrollLeft;\n\t\t\tscrollY = document.documentElement.scrollTop || document.body.scrollTop;\n\t\t\tthis._pos = // should use actual width/height below\n\t\t\t\t[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];\n\t\t}\n\n\t\t// move input on screen for focus, but hidden behind dialog\n\t\tthis._dialogInput.css(\"left\", (this._pos[0] + 20) + \"px\").css(\"top\", this._pos[1] + \"px\");\n\t\tinst.settings.onSelect = onSelect;\n\t\tthis._inDialog = true;\n\t\tthis.dpDiv.addClass(this._dialogClass);\n\t\tthis._showDatepicker(this._dialogInput[0]);\n\t\tif ($.blockUI) {\n\t\t\t$.blockUI(this.dpDiv);\n\t\t}\n\t\t$.data(this._dialogInput[0], \"datepicker\", inst);\n\t\treturn this;\n\t},\n\n\t/* Detach a datepicker from its control.\n\t * @param target\telement - the target input field or division or span\n\t */\n\t_destroyDatepicker: function(target) {\n\t\tvar nodeName,\n\t\t\t$target = $(target),\n\t\t\tinst = $.data(target, \"datepicker\");\n\n\t\tif (!$target.hasClass(this.markerClassName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\t$.removeData(target, \"datepicker\");\n\t\tif (nodeName === \"input\") {\n\t\t\tinst.append.remove();\n\t\t\tinst.trigger.remove();\n\t\t\t$target.removeClass(this.markerClassName).\n\t\t\t\tunbind(\"focus\", this._showDatepicker).\n\t\t\t\tunbind(\"keydown\", this._doKeyDown).\n\t\t\t\tunbind(\"keypress\", this._doKeyPress).\n\t\t\t\tunbind(\"keyup\", this._doKeyUp);\n\t\t} else if (nodeName === \"div\" || nodeName === \"span\") {\n\t\t\t$target.removeClass(this.markerClassName).empty();\n\t\t}\n\n\t\tif ( datepicker_instActive === inst ) {\n\t\t\tdatepicker_instActive = null;\n\t\t}\n\t},\n\n\t/* Enable the date picker to a jQuery selection.\n\t * @param target\telement - the target input field or division or span\n\t */\n\t_enableDatepicker: function(target) {\n\t\tvar nodeName, inline,\n\t\t\t$target = $(target),\n\t\t\tinst = $.data(target, \"datepicker\");\n\n\t\tif (!$target.hasClass(this.markerClassName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tif (nodeName === \"input\") {\n\t\t\ttarget.disabled = false;\n\t\t\tinst.trigger.filter(\"button\").\n\t\t\t\teach(function() { this.disabled = false; }).end().\n\t\t\t\tfilter(\"img\").css({opacity: \"1.0\", cursor: \"\"});\n\t\t} else if (nodeName === \"div\" || nodeName === \"span\") {\n\t\t\tinline = $target.children(\".\" + this._inlineClass);\n\t\t\tinline.children().removeClass(\"ui-state-disabled\");\n\t\t\tinline.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").\n\t\t\t\tprop(\"disabled\", false);\n\t\t}\n\t\tthis._disabledInputs = $.map(this._disabledInputs,\n\t\t\tfunction(value) { return (value === target ? null : value); }); // delete entry\n\t},\n\n\t/* Disable the date picker to a jQuery selection.\n\t * @param target\telement - the target input field or division or span\n\t */\n\t_disableDatepicker: function(target) {\n\t\tvar nodeName, inline,\n\t\t\t$target = $(target),\n\t\t\tinst = $.data(target, \"datepicker\");\n\n\t\tif (!$target.hasClass(this.markerClassName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tif (nodeName === \"input\") {\n\t\t\ttarget.disabled = true;\n\t\t\tinst.trigger.filter(\"button\").\n\t\t\t\teach(function() { this.disabled = true; }).end().\n\t\t\t\tfilter(\"img\").css({opacity: \"0.5\", cursor: \"default\"});\n\t\t} else if (nodeName === \"div\" || nodeName === \"span\") {\n\t\t\tinline = $target.children(\".\" + this._inlineClass);\n\t\t\tinline.children().addClass(\"ui-state-disabled\");\n\t\t\tinline.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").\n\t\t\t\tprop(\"disabled\", true);\n\t\t}\n\t\tthis._disabledInputs = $.map(this._disabledInputs,\n\t\t\tfunction(value) { return (value === target ? null : value); }); // delete entry\n\t\tthis._disabledInputs[this._disabledInputs.length] = target;\n\t},\n\n\t/* Is the first field in a jQuery collection disabled as a datepicker?\n\t * @param target\telement - the target input field or division or span\n\t * @return boolean - true if disabled, false if enabled\n\t */\n\t_isDisabledDatepicker: function(target) {\n\t\tif (!target) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (var i = 0; i < this._disabledInputs.length; i++) {\n\t\t\tif (this._disabledInputs[i] === target) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\n\t/* Retrieve the instance data for the target control.\n\t * @param target element - the target input field or division or span\n\t * @return object - the associated instance data\n\t * @throws error if a jQuery problem getting data\n\t */\n\t_getInst: function(target) {\n\t\ttry {\n\t\t\treturn $.data(target, \"datepicker\");\n\t\t}\n\t\tcatch (err) {\n\t\t\tthrow \"Missing instance data for this datepicker\";\n\t\t}\n\t},\n\n\t/* Update or retrieve the settings for a date picker attached to an input field or division.\n\t * @param target element - the target input field or division or span\n\t * @param name\tobject - the new settings to update or\n\t *\t\t\t\tstring - the name of the setting to change or retrieve,\n\t *\t\t\t\twhen retrieving also \"all\" for all instance settings or\n\t *\t\t\t\t\"defaults\" for all global defaults\n\t * @param value any - the new value for the setting\n\t *\t\t\t\t(omit if above is an object or to retrieve a value)\n\t */\n\t_optionDatepicker: function(target, name, value) {\n\t\tvar settings, date, minDate, maxDate,\n\t\t\tinst = this._getInst(target);\n\n\t\tif (arguments.length === 2 && typeof name === \"string\") {\n\t\t\treturn (name === \"defaults\" ? $.extend({}, $.datepicker._defaults) :\n\t\t\t\t(inst ? (name === \"all\" ? $.extend({}, inst.settings) :\n\t\t\t\tthis._get(inst, name)) : null));\n\t\t}\n\n\t\tsettings = name || {};\n\t\tif (typeof name === \"string\") {\n\t\t\tsettings = {};\n\t\t\tsettings[name] = value;\n\t\t}\n\n\t\tif (inst) {\n\t\t\tif (this._curInst === inst) {\n\t\t\t\tthis._hideDatepicker();\n\t\t\t}\n\n\t\t\tdate = this._getDateDatepicker(target, true);\n\t\t\tminDate = this._getMinMaxDate(inst, \"min\");\n\t\t\tmaxDate = this._getMinMaxDate(inst, \"max\");\n\t\t\tdatepicker_extendRemove(inst.settings, settings);\n\t\t\t// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided\n\t\t\tif (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) {\n\t\t\t\tinst.settings.minDate = this._formatDate(inst, minDate);\n\t\t\t}\n\t\t\tif (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) {\n\t\t\t\tinst.settings.maxDate = this._formatDate(inst, maxDate);\n\t\t\t}\n\t\t\tif ( \"disabled\" in settings ) {\n\t\t\t\tif ( settings.disabled ) {\n\t\t\t\t\tthis._disableDatepicker(target);\n\t\t\t\t} else {\n\t\t\t\t\tthis._enableDatepicker(target);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._attachments($(target), inst);\n\t\t\tthis._autoSize(inst);\n\t\t\tthis._setDate(inst, date);\n\t\t\tthis._updateAlternate(inst);\n\t\t\tthis._updateDatepicker(inst);\n\t\t}\n\t},\n\n\t// change method deprecated\n\t_changeDatepicker: function(target, name, value) {\n\t\tthis._optionDatepicker(target, name, value);\n\t},\n\n\t/* Redraw the date picker attached to an input field or division.\n\t * @param target element - the target input field or division or span\n\t */\n\t_refreshDatepicker: function(target) {\n\t\tvar inst = this._getInst(target);\n\t\tif (inst) {\n\t\t\tthis._updateDatepicker(inst);\n\t\t}\n\t},\n\n\t/* Set the dates for a jQuery selection.\n\t * @param target element - the target input field or division or span\n\t * @param date\tDate - the new date\n\t */\n\t_setDateDatepicker: function(target, date) {\n\t\tvar inst = this._getInst(target);\n\t\tif (inst) {\n\t\t\tthis._setDate(inst, date);\n\t\t\tthis._updateDatepicker(inst);\n\t\t\tthis._updateAlternate(inst);\n\t\t}\n\t},\n\n\t/* Get the date(s) for the first entry in a jQuery selection.\n\t * @param target element - the target input field or division or span\n\t * @param noDefault boolean - true if no default date is to be used\n\t * @return Date - the current date\n\t */\n\t_getDateDatepicker: function(target, noDefault) {\n\t\tvar inst = this._getInst(target);\n\t\tif (inst && !inst.inline) {\n\t\t\tthis._setDateFromField(inst, noDefault);\n\t\t}\n\t\treturn (inst ? this._getDate(inst) : null);\n\t},\n\n\t/* Handle keystrokes. */\n\t_doKeyDown: function(event) {\n\t\tvar onSelect, dateStr, sel,\n\t\t\tinst = $.datepicker._getInst(event.target),\n\t\t\thandled = true,\n\t\t\tisRTL = inst.dpDiv.is(\".ui-datepicker-rtl\");\n\n\t\tinst._keyEvent = true;\n\t\tif ($.datepicker._datepickerShowing) {\n\t\t\tswitch (event.keyCode) {\n\t\t\t\tcase 9: $.datepicker._hideDatepicker();\n\t\t\t\t\t\thandled = false;\n\t\t\t\t\t\tbreak; // hide on tab out\n\t\t\t\tcase 13: sel = $(\"td.\" + $.datepicker._dayOverClass + \":not(.\" +\n\t\t\t\t\t\t\t\t\t$.datepicker._currentClass + \")\", inst.dpDiv);\n\t\t\t\t\t\tif (sel[0]) {\n\t\t\t\t\t\t\t$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonSelect = $.datepicker._get(inst, \"onSelect\");\n\t\t\t\t\t\tif (onSelect) {\n\t\t\t\t\t\t\tdateStr = $.datepicker._formatDate(inst);\n\n\t\t\t\t\t\t\t// trigger custom callback\n\t\t\t\t\t\t\tonSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn false; // don't submit the form\n\t\t\t\tcase 27: $.datepicker._hideDatepicker();\n\t\t\t\t\t\tbreak; // hide on escape\n\t\t\t\tcase 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?\n\t\t\t\t\t\t\t-$.datepicker._get(inst, \"stepBigMonths\") :\n\t\t\t\t\t\t\t-$.datepicker._get(inst, \"stepMonths\")), \"M\");\n\t\t\t\t\t\tbreak; // previous month/year on page up/+ ctrl\n\t\t\t\tcase 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?\n\t\t\t\t\t\t\t+$.datepicker._get(inst, \"stepBigMonths\") :\n\t\t\t\t\t\t\t+$.datepicker._get(inst, \"stepMonths\")), \"M\");\n\t\t\t\t\t\tbreak; // next month/year on page down/+ ctrl\n\t\t\t\tcase 35: if (event.ctrlKey || event.metaKey) {\n\t\t\t\t\t\t\t$.datepicker._clearDate(event.target);\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // clear on ctrl or command +end\n\t\t\t\tcase 36: if (event.ctrlKey || event.metaKey) {\n\t\t\t\t\t\t\t$.datepicker._gotoToday(event.target);\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // current on ctrl or command +home\n\t\t\t\tcase 37: if (event.ctrlKey || event.metaKey) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), \"D\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\t// -1 day on ctrl or command +left\n\t\t\t\t\t\tif (event.originalEvent.altKey) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate(event.target, (event.ctrlKey ?\n\t\t\t\t\t\t\t\t-$.datepicker._get(inst, \"stepBigMonths\") :\n\t\t\t\t\t\t\t\t-$.datepicker._get(inst, \"stepMonths\")), \"M\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// next month/year on alt +left on Mac\n\t\t\t\t\t\tbreak;\n\t\t\t\tcase 38: if (event.ctrlKey || event.metaKey) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate(event.target, -7, \"D\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // -1 week on ctrl or command +up\n\t\t\t\tcase 39: if (event.ctrlKey || event.metaKey) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), \"D\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\t// +1 day on ctrl or command +right\n\t\t\t\t\t\tif (event.originalEvent.altKey) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate(event.target, (event.ctrlKey ?\n\t\t\t\t\t\t\t\t+$.datepicker._get(inst, \"stepBigMonths\") :\n\t\t\t\t\t\t\t\t+$.datepicker._get(inst, \"stepMonths\")), \"M\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// next month/year on alt +right\n\t\t\t\t\t\tbreak;\n\t\t\t\tcase 40: if (event.ctrlKey || event.metaKey) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate(event.target, +7, \"D\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // +1 week on ctrl or command +down\n\t\t\t\tdefault: handled = false;\n\t\t\t}\n\t\t} else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home\n\t\t\t$.datepicker._showDatepicker(this);\n\t\t} else {\n\t\t\thandled = false;\n\t\t}\n\n\t\tif (handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t},\n\n\t/* Filter entered characters - based on date format. */\n\t_doKeyPress: function(event) {\n\t\tvar chars, chr,\n\t\t\tinst = $.datepicker._getInst(event.target);\n\n\t\tif ($.datepicker._get(inst, \"constrainInput\")) {\n\t\t\tchars = $.datepicker._possibleChars($.datepicker._get(inst, \"dateFormat\"));\n\t\t\tchr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode);\n\t\t\treturn event.ctrlKey || event.metaKey || (chr < \" \" || !chars || chars.indexOf(chr) > -1);\n\t\t}\n\t},\n\n\t/* Synchronise manual entry and field/alternate field. */\n\t_doKeyUp: function(event) {\n\t\tvar date,\n\t\t\tinst = $.datepicker._getInst(event.target);\n\n\t\tif (inst.input.val() !== inst.lastVal) {\n\t\t\ttry {\n\t\t\t\tdate = $.datepicker.parseDate($.datepicker._get(inst, \"dateFormat\"),\n\t\t\t\t\t(inst.input ? inst.input.val() : null),\n\t\t\t\t\t$.datepicker._getFormatConfig(inst));\n\n\t\t\t\tif (date) { // only if valid\n\t\t\t\t\t$.datepicker._setDateFromField(inst);\n\t\t\t\t\t$.datepicker._updateAlternate(inst);\n\t\t\t\t\t$.datepicker._updateDatepicker(inst);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t},\n\n\t/* Pop-up the date picker for a given input field.\n\t * If false returned from beforeShow event handler do not show.\n\t * @param input element - the input field attached to the date picker or\n\t *\t\t\t\t\tevent - if triggered by focus\n\t */\n\t_showDatepicker: function(input) {\n\t\tinput = input.target || input;\n\t\tif (input.nodeName.toLowerCase() !== \"input\") { // find from button/image trigger\n\t\t\tinput = $(\"input\", input.parentNode)[0];\n\t\t}\n\n\t\tif ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here\n\t\t\treturn;\n\t\t}\n\n\t\tvar inst, beforeShow, beforeShowSettings, isFixed,\n\t\t\toffset, showAnim, duration;\n\n\t\tinst = $.datepicker._getInst(input);\n\t\tif ($.datepicker._curInst && $.datepicker._curInst !== inst) {\n\t\t\t$.datepicker._curInst.dpDiv.stop(true, true);\n\t\t\tif ( inst && $.datepicker._datepickerShowing ) {\n\t\t\t\t$.datepicker._hideDatepicker( $.datepicker._curInst.input[0] );\n\t\t\t}\n\t\t}\n\n\t\tbeforeShow = $.datepicker._get(inst, \"beforeShow\");\n\t\tbeforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};\n\t\tif(beforeShowSettings === false){\n\t\t\treturn;\n\t\t}\n\t\tdatepicker_extendRemove(inst.settings, beforeShowSettings);\n\n\t\tinst.lastVal = null;\n\t\t$.datepicker._lastInput = input;\n\t\t$.datepicker._setDateFromField(inst);\n\n\t\tif ($.datepicker._inDialog) { // hide cursor\n\t\t\tinput.value = \"\";\n\t\t}\n\t\tif (!$.datepicker._pos) { // position below input\n\t\t\t$.datepicker._pos = $.datepicker._findPos(input);\n\t\t\t$.datepicker._pos[1] += input.offsetHeight; // add the height\n\t\t}\n\n\t\tisFixed = false;\n\t\t$(input).parents().each(function() {\n\t\t\tisFixed |= $(this).css(\"position\") === \"fixed\";\n\t\t\treturn !isFixed;\n\t\t});\n\n\t\toffset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};\n\t\t$.datepicker._pos = null;\n\t\t//to avoid flashes on Firefox\n\t\tinst.dpDiv.empty();\n\t\t// determine sizing offscreen\n\t\tinst.dpDiv.css({position: \"absolute\", display: \"block\", top: \"-1000px\"});\n\t\t$.datepicker._updateDatepicker(inst);\n\t\t// fix width for dynamic number of date pickers\n\t\t// and adjust position before showing\n\t\toffset = $.datepicker._checkOffset(inst, offset, isFixed);\n\t\tinst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?\n\t\t\t\"static\" : (isFixed ? \"fixed\" : \"absolute\")), display: \"none\",\n\t\t\tleft: offset.left + \"px\", top: offset.top + \"px\"});\n\n\t\tif (!inst.inline) {\n\t\t\tshowAnim = $.datepicker._get(inst, \"showAnim\");\n\t\t\tduration = $.datepicker._get(inst, \"duration\");\n\t\t\tinst.dpDiv.css( \"z-index\", datepicker_getZindex( $( input ) ) + 1 );\n\t\t\t$.datepicker._datepickerShowing = true;\n\n\t\t\tif ( $.effects && $.effects.effect[ showAnim ] ) {\n\t\t\t\tinst.dpDiv.show(showAnim, $.datepicker._get(inst, \"showOptions\"), duration);\n\t\t\t} else {\n\t\t\t\tinst.dpDiv[showAnim || \"show\"](showAnim ? duration : null);\n\t\t\t}\n\n\t\t\tif ( $.datepicker._shouldFocusInput( inst ) ) {\n\t\t\t\tinst.input.focus();\n\t\t\t}\n\n\t\t\t$.datepicker._curInst = inst;\n\t\t}\n\t},\n\n\t/* Generate the date picker content. */\n\t_updateDatepicker: function(inst) {\n\t\tthis.maxRows = 4; //Reset the max number of rows being displayed (see #7043)\n\t\tdatepicker_instActive = inst; // for delegate hover events\n\t\tinst.dpDiv.empty().append(this._generateHTML(inst));\n\t\tthis._attachHandlers(inst);\n\n\t\tvar origyearshtml,\n\t\t\tnumMonths = this._getNumberOfMonths(inst),\n\t\t\tcols = numMonths[1],\n\t\t\twidth = 17,\n\t\t\tactiveCell = inst.dpDiv.find( \".\" + this._dayOverClass + \" a\" );\n\n\t\tif ( activeCell.length > 0 ) {\n\t\t\tdatepicker_handleMouseover.apply( activeCell.get( 0 ) );\n\t\t}\n\n\t\tinst.dpDiv.removeClass(\"ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4\").width(\"\");\n\t\tif (cols > 1) {\n\t\t\tinst.dpDiv.addClass(\"ui-datepicker-multi-\" + cols).css(\"width\", (width * cols) + \"em\");\n\t\t}\n\t\tinst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? \"add\" : \"remove\") +\n\t\t\t\"Class\"](\"ui-datepicker-multi\");\n\t\tinst.dpDiv[(this._get(inst, \"isRTL\") ? \"add\" : \"remove\") +\n\t\t\t\"Class\"](\"ui-datepicker-rtl\");\n\n\t\tif (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {\n\t\t\tinst.input.focus();\n\t\t}\n\n\t\t// deffered render of the years select (to avoid flashes on Firefox)\n\t\tif( inst.yearshtml ){\n\t\t\torigyearshtml = inst.yearshtml;\n\t\t\tsetTimeout(function(){\n\t\t\t\t//assure that inst.yearshtml didn't change.\n\t\t\t\tif( origyearshtml === inst.yearshtml && inst.yearshtml ){\n\t\t\t\t\tinst.dpDiv.find(\"select.ui-datepicker-year:first\").replaceWith(inst.yearshtml);\n\t\t\t\t}\n\t\t\t\torigyearshtml = inst.yearshtml = null;\n\t\t\t}, 0);\n\t\t}\n\t},\n\n\t// #6694 - don't focus the input if it's already focused\n\t// this breaks the change event in IE\n\t// Support: IE and jQuery <1.9\n\t_shouldFocusInput: function( inst ) {\n\t\treturn inst.input && inst.input.is( \":visible\" ) && !inst.input.is( \":disabled\" ) && !inst.input.is( \":focus\" );\n\t},\n\n\t/* Check positioning to remain on screen. */\n\t_checkOffset: function(inst, offset, isFixed) {\n\t\tvar dpWidth = inst.dpDiv.outerWidth(),\n\t\t\tdpHeight = inst.dpDiv.outerHeight(),\n\t\t\tinputWidth = inst.input ? inst.input.outerWidth() : 0,\n\t\t\tinputHeight = inst.input ? inst.input.outerHeight() : 0,\n\t\t\tviewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()),\n\t\t\tviewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop());\n\n\t\toffset.left -= (this._get(inst, \"isRTL\") ? (dpWidth - inputWidth) : 0);\n\t\toffset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0;\n\t\toffset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;\n\n\t\t// now check if datepicker is showing outside window viewport - move to a better place if so.\n\t\toffset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?\n\t\t\tMath.abs(offset.left + dpWidth - viewWidth) : 0);\n\t\toffset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?\n\t\t\tMath.abs(dpHeight + inputHeight) : 0);\n\n\t\treturn offset;\n\t},\n\n\t/* Find an object's position on the screen. */\n\t_findPos: function(obj) {\n\t\tvar position,\n\t\t\tinst = this._getInst(obj),\n\t\t\tisRTL = this._get(inst, \"isRTL\");\n\n\t\twhile (obj && (obj.type === \"hidden\" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) {\n\t\t\tobj = obj[isRTL ? \"previousSibling\" : \"nextSibling\"];\n\t\t}\n\n\t\tposition = $(obj).offset();\n\t\treturn [position.left, position.top];\n\t},\n\n\t/* Hide the date picker from view.\n\t * @param input element - the input field attached to the date picker\n\t */\n\t_hideDatepicker: function(input) {\n\t\tvar showAnim, duration, postProcess, onClose,\n\t\t\tinst = this._curInst;\n\n\t\tif (!inst || (input && inst !== $.data(input, \"datepicker\"))) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._datepickerShowing) {\n\t\t\tshowAnim = this._get(inst, \"showAnim\");\n\t\t\tduration = this._get(inst, \"duration\");\n\t\t\tpostProcess = function() {\n\t\t\t\t$.datepicker._tidyDialog(inst);\n\t\t\t};\n\n\t\t\t// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed\n\t\t\tif ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {\n\t\t\t\tinst.dpDiv.hide(showAnim, $.datepicker._get(inst, \"showOptions\"), duration, postProcess);\n\t\t\t} else {\n\t\t\t\tinst.dpDiv[(showAnim === \"slideDown\" ? \"slideUp\" :\n\t\t\t\t\t(showAnim === \"fadeIn\" ? \"fadeOut\" : \"hide\"))]((showAnim ? duration : null), postProcess);\n\t\t\t}\n\n\t\t\tif (!showAnim) {\n\t\t\t\tpostProcess();\n\t\t\t}\n\t\t\tthis._datepickerShowing = false;\n\n\t\t\tonClose = this._get(inst, \"onClose\");\n\t\t\tif (onClose) {\n\t\t\t\tonClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : \"\"), inst]);\n\t\t\t}\n\n\t\t\tthis._lastInput = null;\n\t\t\tif (this._inDialog) {\n\t\t\t\tthis._dialogInput.css({ position: \"absolute\", left: \"0\", top: \"-100px\" });\n\t\t\t\tif ($.blockUI) {\n\t\t\t\t\t$.unblockUI();\n\t\t\t\t\t$(\"body\").append(this.dpDiv);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._inDialog = false;\n\t\t}\n\t},\n\n\t/* Tidy up after a dialog display. */\n\t_tidyDialog: function(inst) {\n\t\tinst.dpDiv.removeClass(this._dialogClass).unbind(\".ui-datepicker-calendar\");\n\t},\n\n\t/* Close date picker if clicked elsewhere. */\n\t_checkExternalClick: function(event) {\n\t\tif (!$.datepicker._curInst) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $target = $(event.target),\n\t\t\tinst = $.datepicker._getInst($target[0]);\n\n\t\tif ( ( ( $target[0].id !== $.datepicker._mainDivId &&\n\t\t\t\t$target.parents(\"#\" + $.datepicker._mainDivId).length === 0 &&\n\t\t\t\t!$target.hasClass($.datepicker.markerClassName) &&\n\t\t\t\t!$target.closest(\".\" + $.datepicker._triggerClass).length &&\n\t\t\t\t$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) ||\n\t\t\t( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) {\n\t\t\t\t$.datepicker._hideDatepicker();\n\t\t}\n\t},\n\n\t/* Adjust one of the date sub-fields. */\n\t_adjustDate: function(id, offset, period) {\n\t\tvar target = $(id),\n\t\t\tinst = this._getInst(target[0]);\n\n\t\tif (this._isDisabledDatepicker(target[0])) {\n\t\t\treturn;\n\t\t}\n\t\tthis._adjustInstDate(inst, offset +\n\t\t\t(period === \"M\" ? this._get(inst, \"showCurrentAtPos\") : 0), // undo positioning\n\t\t\tperiod);\n\t\tthis._updateDatepicker(inst);\n\t},\n\n\t/* Action for current link. */\n\t_gotoToday: function(id) {\n\t\tvar date,\n\t\t\ttarget = $(id),\n\t\t\tinst = this._getInst(target[0]);\n\n\t\tif (this._get(inst, \"gotoCurrent\") && inst.currentDay) {\n\t\t\tinst.selectedDay = inst.currentDay;\n\t\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth;\n\t\t\tinst.drawYear = inst.selectedYear = inst.currentYear;\n\t\t} else {\n\t\t\tdate = new Date();\n\t\t\tinst.selectedDay = date.getDate();\n\t\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\t}\n\t\tthis._notifyChange(inst);\n\t\tthis._adjustDate(target);\n\t},\n\n\t/* Action for selecting a new month/year. */\n\t_selectMonthYear: function(id, select, period) {\n\t\tvar target = $(id),\n\t\t\tinst = this._getInst(target[0]);\n\n\t\tinst[\"selected\" + (period === \"M\" ? \"Month\" : \"Year\")] =\n\t\tinst[\"draw\" + (period === \"M\" ? \"Month\" : \"Year\")] =\n\t\t\tparseInt(select.options[select.selectedIndex].value,10);\n\n\t\tthis._notifyChange(inst);\n\t\tthis._adjustDate(target);\n\t},\n\n\t/* Action for selecting a day. */\n\t_selectDay: function(id, month, year, td) {\n\t\tvar inst,\n\t\t\ttarget = $(id);\n\n\t\tif ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {\n\t\t\treturn;\n\t\t}\n\n\t\tinst = this._getInst(target[0]);\n\t\tinst.selectedDay = inst.currentDay = $(\"a\", td).html();\n\t\tinst.selectedMonth = inst.currentMonth = month;\n\t\tinst.selectedYear = inst.currentYear = year;\n\t\tthis._selectDate(id, this._formatDate(inst,\n\t\t\tinst.currentDay, inst.currentMonth, inst.currentYear));\n\t},\n\n\t/* Erase the input field and hide the date picker. */\n\t_clearDate: function(id) {\n\t\tvar target = $(id);\n\t\tthis._selectDate(target, \"\");\n\t},\n\n\t/* Update the input field with the selected date. */\n\t_selectDate: function(id, dateStr) {\n\t\tvar onSelect,\n\t\t\ttarget = $(id),\n\t\t\tinst = this._getInst(target[0]);\n\n\t\tdateStr = (dateStr != null ? dateStr : this._formatDate(inst));\n\t\tif (inst.input) {\n\t\t\tinst.input.val(dateStr);\n\t\t}\n\t\tthis._updateAlternate(inst);\n\n\t\tonSelect = this._get(inst, \"onSelect\");\n\t\tif (onSelect) {\n\t\t\tonSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback\n\t\t} else if (inst.input) {\n\t\t\tinst.input.trigger(\"change\"); // fire the change event\n\t\t}\n\n\t\tif (inst.inline){\n\t\t\tthis._updateDatepicker(inst);\n\t\t} else {\n\t\t\tthis._hideDatepicker();\n\t\t\tthis._lastInput = inst.input[0];\n\t\t\tif (typeof(inst.input[0]) !== \"object\") {\n\t\t\t\tinst.input.focus(); // restore focus\n\t\t\t}\n\t\t\tthis._lastInput = null;\n\t\t}\n\t},\n\n\t/* Update any alternate field to synchronise with the main field. */\n\t_updateAlternate: function(inst) {\n\t\tvar altFormat, date, dateStr,\n\t\t\taltField = this._get(inst, \"altField\");\n\n\t\tif (altField) { // update alternate field too\n\t\t\taltFormat = this._get(inst, \"altFormat\") || this._get(inst, \"dateFormat\");\n\t\t\tdate = this._getDate(inst);\n\t\t\tdateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));\n\t\t\t$(altField).each(function() { $(this).val(dateStr); });\n\t\t}\n\t},\n\n\t/* Set as beforeShowDay function to prevent selection of weekends.\n\t * @param date Date - the date to customise\n\t * @return [boolean, string] - is this date selectable?, what is its CSS class?\n\t */\n\tnoWeekends: function(date) {\n\t\tvar day = date.getDay();\n\t\treturn [(day > 0 && day < 6), \"\"];\n\t},\n\n\t/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.\n\t * @param date Date - the date to get the week for\n\t * @return number - the number of the week within the year that contains this date\n\t */\n\tiso8601Week: function(date) {\n\t\tvar time,\n\t\t\tcheckDate = new Date(date.getTime());\n\n\t\t// Find Thursday of this week starting on Monday\n\t\tcheckDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\n\n\t\ttime = checkDate.getTime();\n\t\tcheckDate.setMonth(0); // Compare with Jan 1\n\t\tcheckDate.setDate(1);\n\t\treturn Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;\n\t},\n\n\t/* Parse a string value into a date object.\n\t * See formatDate below for the possible formats.\n\t *\n\t * @param format string - the expected format of the date\n\t * @param value string - the date in the above format\n\t * @param settings Object - attributes include:\n\t *\t\t\t\t\tshortYearCutoff number - the cutoff year for determining the century (optional)\n\t *\t\t\t\t\tdayNamesShort\tstring[7] - abbreviated names of the days from Sunday (optional)\n\t *\t\t\t\t\tdayNames\t\tstring[7] - names of the days from Sunday (optional)\n\t *\t\t\t\t\tmonthNamesShort string[12] - abbreviated names of the months (optional)\n\t *\t\t\t\t\tmonthNames\t\tstring[12] - names of the months (optional)\n\t * @return Date - the extracted date value or null if value is blank\n\t */\n\tparseDate: function (format, value, settings) {\n\t\tif (format == null || value == null) {\n\t\t\tthrow \"Invalid arguments\";\n\t\t}\n\n\t\tvalue = (typeof value === \"object\" ? value.toString() : value + \"\");\n\t\tif (value === \"\") {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar iFormat, dim, extra,\n\t\t\tiValue = 0,\n\t\t\tshortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff,\n\t\t\tshortYearCutoff = (typeof shortYearCutoffTemp !== \"string\" ? shortYearCutoffTemp :\n\t\t\t\tnew Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)),\n\t\t\tdayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort,\n\t\t\tdayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames,\n\t\t\tmonthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort,\n\t\t\tmonthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames,\n\t\t\tyear = -1,\n\t\t\tmonth = -1,\n\t\t\tday = -1,\n\t\t\tdoy = -1,\n\t\t\tliteral = false,\n\t\t\tdate,\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function(match) {\n\t\t\t\tvar matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);\n\t\t\t\tif (matches) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t},\n\t\t\t// Extract a number from the string value\n\t\t\tgetNumber = function(match) {\n\t\t\t\tvar isDoubled = lookAhead(match),\n\t\t\t\t\tsize = (match === \"@\" ? 14 : (match === \"!\" ? 20 :\n\t\t\t\t\t(match === \"y\" && isDoubled ? 4 : (match === \"o\" ? 3 : 2)))),\n\t\t\t\t\tminSize = (match === \"y\" ? size : 1),\n\t\t\t\t\tdigits = new RegExp(\"^\\\\d{\" + minSize + \",\" + size + \"}\"),\n\t\t\t\t\tnum = value.substring(iValue).match(digits);\n\t\t\t\tif (!num) {\n\t\t\t\t\tthrow \"Missing number at position \" + iValue;\n\t\t\t\t}\n\t\t\t\tiValue += num[0].length;\n\t\t\t\treturn parseInt(num[0], 10);\n\t\t\t},\n\t\t\t// Extract a name from the string value and convert to an index\n\t\t\tgetName = function(match, shortNames, longNames) {\n\t\t\t\tvar index = -1,\n\t\t\t\t\tnames = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {\n\t\t\t\t\t\treturn [ [k, v] ];\n\t\t\t\t\t}).sort(function (a, b) {\n\t\t\t\t\t\treturn -(a[1].length - b[1].length);\n\t\t\t\t\t});\n\n\t\t\t\t$.each(names, function (i, pair) {\n\t\t\t\t\tvar name = pair[1];\n\t\t\t\t\tif (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {\n\t\t\t\t\t\tindex = pair[0];\n\t\t\t\t\t\tiValue += name.length;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t} else {\n\t\t\t\t\tthrow \"Unknown name at position \" + iValue;\n\t\t\t\t}\n\t\t\t},\n\t\t\t// Confirm that a literal character matches the string value\n\t\t\tcheckLiteral = function() {\n\t\t\t\tif (value.charAt(iValue) !== format.charAt(iFormat)) {\n\t\t\t\t\tthrow \"Unexpected literal at position \" + iValue;\n\t\t\t\t}\n\t\t\t\tiValue++;\n\t\t\t};\n\n\t\tfor (iFormat = 0; iFormat < format.length; iFormat++) {\n\t\t\tif (literal) {\n\t\t\t\tif (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n\t\t\t\t\tliteral = false;\n\t\t\t\t} else {\n\t\t\t\t\tcheckLiteral();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (format.charAt(iFormat)) {\n\t\t\t\t\tcase \"d\":\n\t\t\t\t\t\tday = getNumber(\"d\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"D\":\n\t\t\t\t\t\tgetName(\"D\", dayNamesShort, dayNames);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"o\":\n\t\t\t\t\t\tdoy = getNumber(\"o\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"m\":\n\t\t\t\t\t\tmonth = getNumber(\"m\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"M\":\n\t\t\t\t\t\tmonth = getName(\"M\", monthNamesShort, monthNames);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"y\":\n\t\t\t\t\t\tyear = getNumber(\"y\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"@\":\n\t\t\t\t\t\tdate = new Date(getNumber(\"@\"));\n\t\t\t\t\t\tyear = date.getFullYear();\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\n\t\t\t\t\t\tday = date.getDate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"!\":\n\t\t\t\t\t\tdate = new Date((getNumber(\"!\") - this._ticksTo1970) / 10000);\n\t\t\t\t\t\tyear = date.getFullYear();\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\n\t\t\t\t\t\tday = date.getDate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\tif (lookAhead(\"'\")){\n\t\t\t\t\t\t\tcheckLiteral();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcheckLiteral();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (iValue < value.length){\n\t\t\textra = value.substr(iValue);\n\t\t\tif (!/^\\s+/.test(extra)) {\n\t\t\t\tthrow \"Extra/unparsed characters found in date: \" + extra;\n\t\t\t}\n\t\t}\n\n\t\tif (year === -1) {\n\t\t\tyear = new Date().getFullYear();\n\t\t} else if (year < 100) {\n\t\t\tyear += new Date().getFullYear() - new Date().getFullYear() % 100 +\n\t\t\t\t(year <= shortYearCutoff ? 0 : -100);\n\t\t}\n\n\t\tif (doy > -1) {\n\t\t\tmonth = 1;\n\t\t\tday = doy;\n\t\t\tdo {\n\t\t\t\tdim = this._getDaysInMonth(year, month - 1);\n\t\t\t\tif (day <= dim) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmonth++;\n\t\t\t\tday -= dim;\n\t\t\t} while (true);\n\t\t}\n\n\t\tdate = this._daylightSavingAdjust(new Date(year, month - 1, day));\n\t\tif (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {\n\t\t\tthrow \"Invalid date\"; // E.g. 31/02/00\n\t\t}\n\t\treturn date;\n\t},\n\n\t/* Standard date formats. */\n\tATOM: \"yy-mm-dd\", // RFC 3339 (ISO 8601)\n\tCOOKIE: \"D, dd M yy\",\n\tISO_8601: \"yy-mm-dd\",\n\tRFC_822: \"D, d M y\",\n\tRFC_850: \"DD, dd-M-y\",\n\tRFC_1036: \"D, d M y\",\n\tRFC_1123: \"D, d M yy\",\n\tRFC_2822: \"D, d M yy\",\n\tRSS: \"D, d M y\", // RFC 822\n\tTICKS: \"!\",\n\tTIMESTAMP: \"@\",\n\tW3C: \"yy-mm-dd\", // ISO 8601\n\n\t_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +\n\t\tMath.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),\n\n\t/* Format a date object into a string value.\n\t * The format can be combinations of the following:\n\t * d - day of month (no leading zero)\n\t * dd - day of month (two digit)\n\t * o - day of year (no leading zeros)\n\t * oo - day of year (three digit)\n\t * D - day name short\n\t * DD - day name long\n\t * m - month of year (no leading zero)\n\t * mm - month of year (two digit)\n\t * M - month name short\n\t * MM - month name long\n\t * y - year (two digit)\n\t * yy - year (four digit)\n\t * @ - Unix timestamp (ms since 01/01/1970)\n\t * ! - Windows ticks (100ns since 01/01/0001)\n\t * \"...\" - literal text\n\t * '' - single quote\n\t *\n\t * @param format string - the desired format of the date\n\t * @param date Date - the date value to format\n\t * @param settings Object - attributes include:\n\t *\t\t\t\t\tdayNamesShort\tstring[7] - abbreviated names of the days from Sunday (optional)\n\t *\t\t\t\t\tdayNames\t\tstring[7] - names of the days from Sunday (optional)\n\t *\t\t\t\t\tmonthNamesShort string[12] - abbreviated names of the months (optional)\n\t *\t\t\t\t\tmonthNames\t\tstring[12] - names of the months (optional)\n\t * @return string - the date in the above format\n\t */\n\tformatDate: function (format, date, settings) {\n\t\tif (!date) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tvar iFormat,\n\t\t\tdayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort,\n\t\t\tdayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames,\n\t\t\tmonthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort,\n\t\t\tmonthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames,\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function(match) {\n\t\t\t\tvar matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);\n\t\t\t\tif (matches) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t},\n\t\t\t// Format a number, with leading zero if necessary\n\t\t\tformatNumber = function(match, value, len) {\n\t\t\t\tvar num = \"\" + value;\n\t\t\t\tif (lookAhead(match)) {\n\t\t\t\t\twhile (num.length < len) {\n\t\t\t\t\t\tnum = \"0\" + num;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn num;\n\t\t\t},\n\t\t\t// Format a name, short or long as requested\n\t\t\tformatName = function(match, value, shortNames, longNames) {\n\t\t\t\treturn (lookAhead(match) ? longNames[value] : shortNames[value]);\n\t\t\t},\n\t\t\toutput = \"\",\n\t\t\tliteral = false;\n\n\t\tif (date) {\n\t\t\tfor (iFormat = 0; iFormat < format.length; iFormat++) {\n\t\t\t\tif (literal) {\n\t\t\t\t\tif (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n\t\t\t\t\t\tliteral = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toutput += format.charAt(iFormat);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tswitch (format.charAt(iFormat)) {\n\t\t\t\t\t\tcase \"d\":\n\t\t\t\t\t\t\toutput += formatNumber(\"d\", date.getDate(), 2);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"D\":\n\t\t\t\t\t\t\toutput += formatName(\"D\", date.getDay(), dayNamesShort, dayNames);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"o\":\n\t\t\t\t\t\t\toutput += formatNumber(\"o\",\n\t\t\t\t\t\t\t\tMath.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"m\":\n\t\t\t\t\t\t\toutput += formatNumber(\"m\", date.getMonth() + 1, 2);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"M\":\n\t\t\t\t\t\t\toutput += formatName(\"M\", date.getMonth(), monthNamesShort, monthNames);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"y\":\n\t\t\t\t\t\t\toutput += (lookAhead(\"y\") ? date.getFullYear() :\n\t\t\t\t\t\t\t\t(date.getYear() % 100 < 10 ? \"0\" : \"\") + date.getYear() % 100);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"@\":\n\t\t\t\t\t\t\toutput += date.getTime();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"!\":\n\t\t\t\t\t\t\toutput += date.getTime() * 10000 + this._ticksTo1970;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\t\tif (lookAhead(\"'\")) {\n\t\t\t\t\t\t\t\toutput += \"'\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\toutput += format.charAt(iFormat);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t},\n\n\t/* Extract all possible characters from the date format. */\n\t_possibleChars: function (format) {\n\t\tvar iFormat,\n\t\t\tchars = \"\",\n\t\t\tliteral = false,\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function(match) {\n\t\t\t\tvar matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);\n\t\t\t\tif (matches) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t};\n\n\t\tfor (iFormat = 0; iFormat < format.length; iFormat++) {\n\t\t\tif (literal) {\n\t\t\t\tif (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n\t\t\t\t\tliteral = false;\n\t\t\t\t} else {\n\t\t\t\t\tchars += format.charAt(iFormat);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (format.charAt(iFormat)) {\n\t\t\t\t\tcase \"d\": case \"m\": case \"y\": case \"@\":\n\t\t\t\t\t\tchars += \"0123456789\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"D\": case \"M\":\n\t\t\t\t\t\treturn null; // Accept anything\n\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\tif (lookAhead(\"'\")) {\n\t\t\t\t\t\t\tchars += \"'\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tchars += format.charAt(iFormat);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn chars;\n\t},\n\n\t/* Get a setting value, defaulting if necessary. */\n\t_get: function(inst, name) {\n\t\treturn inst.settings[name] !== undefined ?\n\t\t\tinst.settings[name] : this._defaults[name];\n\t},\n\n\t/* Parse existing date and initialise date picker. */\n\t_setDateFromField: function(inst, noDefault) {\n\t\tif (inst.input.val() === inst.lastVal) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar dateFormat = this._get(inst, \"dateFormat\"),\n\t\t\tdates = inst.lastVal = inst.input ? inst.input.val() : null,\n\t\t\tdefaultDate = this._getDefaultDate(inst),\n\t\t\tdate = defaultDate,\n\t\t\tsettings = this._getFormatConfig(inst);\n\n\t\ttry {\n\t\t\tdate = this.parseDate(dateFormat, dates, settings) || defaultDate;\n\t\t} catch (event) {\n\t\t\tdates = (noDefault ? \"\" : dates);\n\t\t}\n\t\tinst.selectedDay = date.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\tinst.currentDay = (dates ? date.getDate() : 0);\n\t\tinst.currentMonth = (dates ? date.getMonth() : 0);\n\t\tinst.currentYear = (dates ? date.getFullYear() : 0);\n\t\tthis._adjustInstDate(inst);\n\t},\n\n\t/* Retrieve the default date shown on opening. */\n\t_getDefaultDate: function(inst) {\n\t\treturn this._restrictMinMax(inst,\n\t\t\tthis._determineDate(inst, this._get(inst, \"defaultDate\"), new Date()));\n\t},\n\n\t/* A date may be specified as an exact value or a relative one. */\n\t_determineDate: function(inst, date, defaultDate) {\n\t\tvar offsetNumeric = function(offset) {\n\t\t\t\tvar date = new Date();\n\t\t\t\tdate.setDate(date.getDate() + offset);\n\t\t\t\treturn date;\n\t\t\t},\n\t\t\toffsetString = function(offset) {\n\t\t\t\ttry {\n\t\t\t\t\treturn $.datepicker.parseDate($.datepicker._get(inst, \"dateFormat\"),\n\t\t\t\t\t\toffset, $.datepicker._getFormatConfig(inst));\n\t\t\t\t}\n\t\t\t\tcatch (e) {\n\t\t\t\t\t// Ignore\n\t\t\t\t}\n\n\t\t\t\tvar date = (offset.toLowerCase().match(/^c/) ?\n\t\t\t\t\t$.datepicker._getDate(inst) : null) || new Date(),\n\t\t\t\t\tyear = date.getFullYear(),\n\t\t\t\t\tmonth = date.getMonth(),\n\t\t\t\t\tday = date.getDate(),\n\t\t\t\t\tpattern = /([+\\-]?[0-9]+)\\s*(d|D|w|W|m|M|y|Y)?/g,\n\t\t\t\t\tmatches = pattern.exec(offset);\n\n\t\t\t\twhile (matches) {\n\t\t\t\t\tswitch (matches[2] || \"d\") {\n\t\t\t\t\t\tcase \"d\" : case \"D\" :\n\t\t\t\t\t\t\tday += parseInt(matches[1],10); break;\n\t\t\t\t\t\tcase \"w\" : case \"W\" :\n\t\t\t\t\t\t\tday += parseInt(matches[1],10) * 7; break;\n\t\t\t\t\t\tcase \"m\" : case \"M\" :\n\t\t\t\t\t\t\tmonth += parseInt(matches[1],10);\n\t\t\t\t\t\t\tday = Math.min(day, $.datepicker._getDaysInMonth(year, month));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"y\": case \"Y\" :\n\t\t\t\t\t\t\tyear += parseInt(matches[1],10);\n\t\t\t\t\t\t\tday = Math.min(day, $.datepicker._getDaysInMonth(year, month));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmatches = pattern.exec(offset);\n\t\t\t\t}\n\t\t\t\treturn new Date(year, month, day);\n\t\t\t},\n\t\t\tnewDate = (date == null || date === \"\" ? defaultDate : (typeof date === \"string\" ? offsetString(date) :\n\t\t\t\t(typeof date === \"number\" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));\n\n\t\tnewDate = (newDate && newDate.toString() === \"Invalid Date\" ? defaultDate : newDate);\n\t\tif (newDate) {\n\t\t\tnewDate.setHours(0);\n\t\t\tnewDate.setMinutes(0);\n\t\t\tnewDate.setSeconds(0);\n\t\t\tnewDate.setMilliseconds(0);\n\t\t}\n\t\treturn this._daylightSavingAdjust(newDate);\n\t},\n\n\t/* Handle switch to/from daylight saving.\n\t * Hours may be non-zero on daylight saving cut-over:\n\t * > 12 when midnight changeover, but then cannot generate\n\t * midnight datetime, so jump to 1AM, otherwise reset.\n\t * @param date (Date) the date to check\n\t * @return (Date) the corrected date\n\t */\n\t_daylightSavingAdjust: function(date) {\n\t\tif (!date) {\n\t\t\treturn null;\n\t\t}\n\t\tdate.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n\t\treturn date;\n\t},\n\n\t/* Set the date(s) directly. */\n\t_setDate: function(inst, date, noChange) {\n\t\tvar clear = !date,\n\t\t\torigMonth = inst.selectedMonth,\n\t\t\torigYear = inst.selectedYear,\n\t\t\tnewDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));\n\n\t\tinst.selectedDay = inst.currentDay = newDate.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();\n\t\tinst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();\n\t\tif ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) {\n\t\t\tthis._notifyChange(inst);\n\t\t}\n\t\tthis._adjustInstDate(inst);\n\t\tif (inst.input) {\n\t\t\tinst.input.val(clear ? \"\" : this._formatDate(inst));\n\t\t}\n\t},\n\n\t/* Retrieve the date(s) directly. */\n\t_getDate: function(inst) {\n\t\tvar startDate = (!inst.currentYear || (inst.input && inst.input.val() === \"\") ? null :\n\t\t\tthis._daylightSavingAdjust(new Date(\n\t\t\tinst.currentYear, inst.currentMonth, inst.currentDay)));\n\t\t\treturn startDate;\n\t},\n\n\t/* Attach the onxxx handlers. These are declared statically so\n\t * they work with static code transformers like Caja.\n\t */\n\t_attachHandlers: function(inst) {\n\t\tvar stepMonths = this._get(inst, \"stepMonths\"),\n\t\t\tid = \"#\" + inst.id.replace( /\\\\\\\\/g, \"\\\\\" );\n\t\tinst.dpDiv.find(\"[data-handler]\").map(function () {\n\t\t\tvar handler = {\n\t\t\t\tprev: function () {\n\t\t\t\t\t$.datepicker._adjustDate(id, -stepMonths, \"M\");\n\t\t\t\t},\n\t\t\t\tnext: function () {\n\t\t\t\t\t$.datepicker._adjustDate(id, +stepMonths, \"M\");\n\t\t\t\t},\n\t\t\t\thide: function () {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t},\n\t\t\t\ttoday: function () {\n\t\t\t\t\t$.datepicker._gotoToday(id);\n\t\t\t\t},\n\t\t\t\tselectDay: function () {\n\t\t\t\t\t$.datepicker._selectDay(id, +this.getAttribute(\"data-month\"), +this.getAttribute(\"data-year\"), this);\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t\tselectMonth: function () {\n\t\t\t\t\t$.datepicker._selectMonthYear(id, this, \"M\");\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t\tselectYear: function () {\n\t\t\t\t\t$.datepicker._selectMonthYear(id, this, \"Y\");\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t};\n\t\t\t$(this).bind(this.getAttribute(\"data-event\"), handler[this.getAttribute(\"data-handler\")]);\n\t\t});\n\t},\n\n\t/* Generate the HTML for the current state of the date picker. */\n\t_generateHTML: function(inst) {\n\t\tvar maxDraw, prevText, prev, nextText, next, currentText, gotoDate,\n\t\t\tcontrols, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,\n\t\t\tmonthNames, monthNamesShort, beforeShowDay, showOtherMonths,\n\t\t\tselectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,\n\t\t\tcornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,\n\t\t\tprintDate, dRow, tbody, daySettings, otherMonth, unselectable,\n\t\t\ttempDate = new Date(),\n\t\t\ttoday = this._daylightSavingAdjust(\n\t\t\t\tnew Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time\n\t\t\tisRTL = this._get(inst, \"isRTL\"),\n\t\t\tshowButtonPanel = this._get(inst, \"showButtonPanel\"),\n\t\t\thideIfNoPrevNext = this._get(inst, \"hideIfNoPrevNext\"),\n\t\t\tnavigationAsDateFormat = this._get(inst, \"navigationAsDateFormat\"),\n\t\t\tnumMonths = this._getNumberOfMonths(inst),\n\t\t\tshowCurrentAtPos = this._get(inst, \"showCurrentAtPos\"),\n\t\t\tstepMonths = this._get(inst, \"stepMonths\"),\n\t\t\tisMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1),\n\t\t\tcurrentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :\n\t\t\t\tnew Date(inst.currentYear, inst.currentMonth, inst.currentDay))),\n\t\t\tminDate = this._getMinMaxDate(inst, \"min\"),\n\t\t\tmaxDate = this._getMinMaxDate(inst, \"max\"),\n\t\t\tdrawMonth = inst.drawMonth - showCurrentAtPos,\n\t\t\tdrawYear = inst.drawYear;\n\n\t\tif (drawMonth < 0) {\n\t\t\tdrawMonth += 12;\n\t\t\tdrawYear--;\n\t\t}\n\t\tif (maxDate) {\n\t\t\tmaxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),\n\t\t\t\tmaxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));\n\t\t\tmaxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);\n\t\t\twhile (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {\n\t\t\t\tdrawMonth--;\n\t\t\t\tif (drawMonth < 0) {\n\t\t\t\t\tdrawMonth = 11;\n\t\t\t\t\tdrawYear--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tinst.drawMonth = drawMonth;\n\t\tinst.drawYear = drawYear;\n\n\t\tprevText = this._get(inst, \"prevText\");\n\t\tprevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,\n\t\t\tthis._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),\n\t\t\tthis._getFormatConfig(inst)));\n\n\t\tprev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?\n\t\t\t\"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'\" +\n\t\t\t\" title='\" + prevText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"e\" : \"w\") + \"'>\" + prevText + \"</span></a>\" :\n\t\t\t(hideIfNoPrevNext ? \"\" : \"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='\"+ prevText +\"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"e\" : \"w\") + \"'>\" + prevText + \"</span></a>\"));\n\n\t\tnextText = this._get(inst, \"nextText\");\n\t\tnextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,\n\t\t\tthis._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),\n\t\t\tthis._getFormatConfig(inst)));\n\n\t\tnext = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?\n\t\t\t\"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'\" +\n\t\t\t\" title='\" + nextText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"w\" : \"e\") + \"'>\" + nextText + \"</span></a>\" :\n\t\t\t(hideIfNoPrevNext ? \"\" : \"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='\"+ nextText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"w\" : \"e\") + \"'>\" + nextText + \"</span></a>\"));\n\n\t\tcurrentText = this._get(inst, \"currentText\");\n\t\tgotoDate = (this._get(inst, \"gotoCurrent\") && inst.currentDay ? currentDate : today);\n\t\tcurrentText = (!navigationAsDateFormat ? currentText :\n\t\t\tthis.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));\n\n\t\tcontrols = (!inst.inline ? \"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>\" +\n\t\t\tthis._get(inst, \"closeText\") + \"</button>\" : \"\");\n\n\t\tbuttonPanel = (showButtonPanel) ? \"<div class='ui-datepicker-buttonpane ui-widget-content'>\" + (isRTL ? controls : \"\") +\n\t\t\t(this._isInRange(inst, gotoDate) ? \"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'\" +\n\t\t\t\">\" + currentText + \"</button>\" : \"\") + (isRTL ? \"\" : controls) + \"</div>\" : \"\";\n\n\t\tfirstDay = parseInt(this._get(inst, \"firstDay\"),10);\n\t\tfirstDay = (isNaN(firstDay) ? 0 : firstDay);\n\n\t\tshowWeek = this._get(inst, \"showWeek\");\n\t\tdayNames = this._get(inst, \"dayNames\");\n\t\tdayNamesMin = this._get(inst, \"dayNamesMin\");\n\t\tmonthNames = this._get(inst, \"monthNames\");\n\t\tmonthNamesShort = this._get(inst, \"monthNamesShort\");\n\t\tbeforeShowDay = this._get(inst, \"beforeShowDay\");\n\t\tshowOtherMonths = this._get(inst, \"showOtherMonths\");\n\t\tselectOtherMonths = this._get(inst, \"selectOtherMonths\");\n\t\tdefaultDate = this._getDefaultDate(inst);\n\t\thtml = \"\";\n\t\tdow;\n\t\tfor (row = 0; row < numMonths[0]; row++) {\n\t\t\tgroup = \"\";\n\t\t\tthis.maxRows = 4;\n\t\t\tfor (col = 0; col < numMonths[1]; col++) {\n\t\t\t\tselectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));\n\t\t\t\tcornerClass = \" ui-corner-all\";\n\t\t\t\tcalender = \"\";\n\t\t\t\tif (isMultiMonth) {\n\t\t\t\t\tcalender += \"<div class='ui-datepicker-group\";\n\t\t\t\t\tif (numMonths[1] > 1) {\n\t\t\t\t\t\tswitch (col) {\n\t\t\t\t\t\t\tcase 0: calender += \" ui-datepicker-group-first\";\n\t\t\t\t\t\t\t\tcornerClass = \" ui-corner-\" + (isRTL ? \"right\" : \"left\"); break;\n\t\t\t\t\t\t\tcase numMonths[1]-1: calender += \" ui-datepicker-group-last\";\n\t\t\t\t\t\t\t\tcornerClass = \" ui-corner-\" + (isRTL ? \"left\" : \"right\"); break;\n\t\t\t\t\t\t\tdefault: calender += \" ui-datepicker-group-middle\"; cornerClass = \"\"; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcalender += \"'>\";\n\t\t\t\t}\n\t\t\t\tcalender += \"<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix\" + cornerClass + \"'>\" +\n\t\t\t\t\t(/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : \"\") +\n\t\t\t\t\t(/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : \"\") +\n\t\t\t\t\tthis._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,\n\t\t\t\t\trow > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers\n\t\t\t\t\t\"</div><table class='ui-datepicker-calendar'><thead>\" +\n\t\t\t\t\t\"<tr>\";\n\t\t\t\tthead = (showWeek ? \"<th class='ui-datepicker-week-col'>\" + this._get(inst, \"weekHeader\") + \"</th>\" : \"\");\n\t\t\t\tfor (dow = 0; dow < 7; dow++) { // days of the week\n\t\t\t\t\tday = (dow + firstDay) % 7;\n\t\t\t\t\tthead += \"<th scope='col'\" + ((dow + firstDay + 6) % 7 >= 5 ? \" class='ui-datepicker-week-end'\" : \"\") + \">\" +\n\t\t\t\t\t\t\"<span title='\" + dayNames[day] + \"'>\" + dayNamesMin[day] + \"</span></th>\";\n\t\t\t\t}\n\t\t\t\tcalender += thead + \"</tr></thead><tbody>\";\n\t\t\t\tdaysInMonth = this._getDaysInMonth(drawYear, drawMonth);\n\t\t\t\tif (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) {\n\t\t\t\t\tinst.selectedDay = Math.min(inst.selectedDay, daysInMonth);\n\t\t\t\t}\n\t\t\t\tleadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;\n\t\t\t\tcurRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate\n\t\t\t\tnumRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)\n\t\t\t\tthis.maxRows = numRows;\n\t\t\t\tprintDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));\n\t\t\t\tfor (dRow = 0; dRow < numRows; dRow++) { // create date picker rows\n\t\t\t\t\tcalender += \"<tr>\";\n\t\t\t\t\ttbody = (!showWeek ? \"\" : \"<td class='ui-datepicker-week-col'>\" +\n\t\t\t\t\t\tthis._get(inst, \"calculateWeek\")(printDate) + \"</td>\");\n\t\t\t\t\tfor (dow = 0; dow < 7; dow++) { // create date picker days\n\t\t\t\t\t\tdaySettings = (beforeShowDay ?\n\t\t\t\t\t\t\tbeforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, \"\"]);\n\t\t\t\t\t\totherMonth = (printDate.getMonth() !== drawMonth);\n\t\t\t\t\t\tunselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||\n\t\t\t\t\t\t\t(minDate && printDate < minDate) || (maxDate && printDate > maxDate);\n\t\t\t\t\t\ttbody += \"<td class='\" +\n\t\t\t\t\t\t\t((dow + firstDay + 6) % 7 >= 5 ? \" ui-datepicker-week-end\" : \"\") + // highlight weekends\n\t\t\t\t\t\t\t(otherMonth ? \" ui-datepicker-other-month\" : \"\") + // highlight days from other months\n\t\t\t\t\t\t\t((printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent) || // user pressed key\n\t\t\t\t\t\t\t(defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime()) ?\n\t\t\t\t\t\t\t// or defaultDate is current printedDate and defaultDate is selectedDate\n\t\t\t\t\t\t\t\" \" + this._dayOverClass : \"\") + // highlight selected day\n\t\t\t\t\t\t\t(unselectable ? \" \" + this._unselectableClass + \" ui-state-disabled\": \"\") + // highlight unselectable days\n\t\t\t\t\t\t\t(otherMonth && !showOtherMonths ? \"\" : \" \" + daySettings[1] + // highlight custom dates\n\t\t\t\t\t\t\t(printDate.getTime() === currentDate.getTime() ? \" \" + this._currentClass : \"\") + // highlight selected day\n\t\t\t\t\t\t\t(printDate.getTime() === today.getTime() ? \" ui-datepicker-today\" : \"\")) + \"'\" + // highlight today (if different)\n\t\t\t\t\t\t\t((!otherMonth || showOtherMonths) && daySettings[2] ? \" title='\" + daySettings[2].replace(/'/g, \"'\") + \"'\" : \"\") + // cell title\n\t\t\t\t\t\t\t(unselectable ? \"\" : \" data-handler='selectDay' data-event='click' data-month='\" + printDate.getMonth() + \"' data-year='\" + printDate.getFullYear() + \"'\") + \">\" + // actions\n\t\t\t\t\t\t\t(otherMonth && !showOtherMonths ? \" \" : // display for other months\n\t\t\t\t\t\t\t(unselectable ? \"<span class='ui-state-default'>\" + printDate.getDate() + \"</span>\" : \"<a class='ui-state-default\" +\n\t\t\t\t\t\t\t(printDate.getTime() === today.getTime() ? \" ui-state-highlight\" : \"\") +\n\t\t\t\t\t\t\t(printDate.getTime() === currentDate.getTime() ? \" ui-state-active\" : \"\") + // highlight selected day\n\t\t\t\t\t\t\t(otherMonth ? \" ui-priority-secondary\" : \"\") + // distinguish dates from other months\n\t\t\t\t\t\t\t\"' href='#'>\" + printDate.getDate() + \"</a>\")) + \"</td>\"; // display selectable date\n\t\t\t\t\t\tprintDate.setDate(printDate.getDate() + 1);\n\t\t\t\t\t\tprintDate = this._daylightSavingAdjust(printDate);\n\t\t\t\t\t}\n\t\t\t\t\tcalender += tbody + \"</tr>\";\n\t\t\t\t}\n\t\t\t\tdrawMonth++;\n\t\t\t\tif (drawMonth > 11) {\n\t\t\t\t\tdrawMonth = 0;\n\t\t\t\t\tdrawYear++;\n\t\t\t\t}\n\t\t\t\tcalender += \"</tbody></table>\" + (isMultiMonth ? \"</div>\" +\n\t\t\t\t\t\t\t((numMonths[0] > 0 && col === numMonths[1]-1) ? \"<div class='ui-datepicker-row-break'></div>\" : \"\") : \"\");\n\t\t\t\tgroup += calender;\n\t\t\t}\n\t\t\thtml += group;\n\t\t}\n\t\thtml += buttonPanel;\n\t\tinst._keyEvent = false;\n\t\treturn html;\n\t},\n\n\t/* Generate the month and year header. */\n\t_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,\n\t\t\tsecondary, monthNames, monthNamesShort) {\n\n\t\tvar inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,\n\t\t\tchangeMonth = this._get(inst, \"changeMonth\"),\n\t\t\tchangeYear = this._get(inst, \"changeYear\"),\n\t\t\tshowMonthAfterYear = this._get(inst, \"showMonthAfterYear\"),\n\t\t\thtml = \"<div class='ui-datepicker-title'>\",\n\t\t\tmonthHtml = \"\";\n\n\t\t// month selection\n\t\tif (secondary || !changeMonth) {\n\t\t\tmonthHtml += \"<span class='ui-datepicker-month'>\" + monthNames[drawMonth] + \"</span>\";\n\t\t} else {\n\t\t\tinMinYear = (minDate && minDate.getFullYear() === drawYear);\n\t\t\tinMaxYear = (maxDate && maxDate.getFullYear() === drawYear);\n\t\t\tmonthHtml += \"<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>\";\n\t\t\tfor ( month = 0; month < 12; month++) {\n\t\t\t\tif ((!inMinYear || month >= minDate.getMonth()) && (!inMaxYear || month <= maxDate.getMonth())) {\n\t\t\t\t\tmonthHtml += \"<option value='\" + month + \"'\" +\n\t\t\t\t\t\t(month === drawMonth ? \" selected='selected'\" : \"\") +\n\t\t\t\t\t\t\">\" + monthNamesShort[month] + \"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tmonthHtml += \"</select>\";\n\t\t}\n\n\t\tif (!showMonthAfterYear) {\n\t\t\thtml += monthHtml + (secondary || !(changeMonth && changeYear) ? \" \" : \"\");\n\t\t}\n\n\t\t// year selection\n\t\tif ( !inst.yearshtml ) {\n\t\t\tinst.yearshtml = \"\";\n\t\t\tif (secondary || !changeYear) {\n\t\t\t\thtml += \"<span class='ui-datepicker-year'>\" + drawYear + \"</span>\";\n\t\t\t} else {\n\t\t\t\t// determine range of years to display\n\t\t\t\tyears = this._get(inst, \"yearRange\").split(\":\");\n\t\t\t\tthisYear = new Date().getFullYear();\n\t\t\t\tdetermineYear = function(value) {\n\t\t\t\t\tvar year = (value.match(/c[+\\-].*/) ? drawYear + parseInt(value.substring(1), 10) :\n\t\t\t\t\t\t(value.match(/[+\\-].*/) ? thisYear + parseInt(value, 10) :\n\t\t\t\t\t\tparseInt(value, 10)));\n\t\t\t\t\treturn (isNaN(year) ? thisYear : year);\n\t\t\t\t};\n\t\t\t\tyear = determineYear(years[0]);\n\t\t\t\tendYear = Math.max(year, determineYear(years[1] || \"\"));\n\t\t\t\tyear = (minDate ? Math.max(year, minDate.getFullYear()) : year);\n\t\t\t\tendYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);\n\t\t\t\tinst.yearshtml += \"<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>\";\n\t\t\t\tfor (; year <= endYear; year++) {\n\t\t\t\t\tinst.yearshtml += \"<option value='\" + year + \"'\" +\n\t\t\t\t\t\t(year === drawYear ? \" selected='selected'\" : \"\") +\n\t\t\t\t\t\t\">\" + year + \"</option>\";\n\t\t\t\t}\n\t\t\t\tinst.yearshtml += \"</select>\";\n\n\t\t\t\thtml += inst.yearshtml;\n\t\t\t\tinst.yearshtml = null;\n\t\t\t}\n\t\t}\n\n\t\thtml += this._get(inst, \"yearSuffix\");\n\t\tif (showMonthAfterYear) {\n\t\t\thtml += (secondary || !(changeMonth && changeYear) ? \" \" : \"\") + monthHtml;\n\t\t}\n\t\thtml += \"</div>\"; // Close datepicker_header\n\t\treturn html;\n\t},\n\n\t/* Adjust one of the date sub-fields. */\n\t_adjustInstDate: function(inst, offset, period) {\n\t\tvar year = inst.drawYear + (period === \"Y\" ? offset : 0),\n\t\t\tmonth = inst.drawMonth + (period === \"M\" ? offset : 0),\n\t\t\tday = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === \"D\" ? offset : 0),\n\t\t\tdate = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day)));\n\n\t\tinst.selectedDay = date.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\tif (period === \"M\" || period === \"Y\") {\n\t\t\tthis._notifyChange(inst);\n\t\t}\n\t},\n\n\t/* Ensure a date is within any min/max bounds. */\n\t_restrictMinMax: function(inst, date) {\n\t\tvar minDate = this._getMinMaxDate(inst, \"min\"),\n\t\t\tmaxDate = this._getMinMaxDate(inst, \"max\"),\n\t\t\tnewDate = (minDate && date < minDate ? minDate : date);\n\t\treturn (maxDate && newDate > maxDate ? maxDate : newDate);\n\t},\n\n\t/* Notify change of month/year. */\n\t_notifyChange: function(inst) {\n\t\tvar onChange = this._get(inst, \"onChangeMonthYear\");\n\t\tif (onChange) {\n\t\t\tonChange.apply((inst.input ? inst.input[0] : null),\n\t\t\t\t[inst.selectedYear, inst.selectedMonth + 1, inst]);\n\t\t}\n\t},\n\n\t/* Determine the number of months to show. */\n\t_getNumberOfMonths: function(inst) {\n\t\tvar numMonths = this._get(inst, \"numberOfMonths\");\n\t\treturn (numMonths == null ? [1, 1] : (typeof numMonths === \"number\" ? [1, numMonths] : numMonths));\n\t},\n\n\t/* Determine the current maximum date - ensure no time components are set. */\n\t_getMinMaxDate: function(inst, minMax) {\n\t\treturn this._determineDate(inst, this._get(inst, minMax + \"Date\"), null);\n\t},\n\n\t/* Find the number of days in a given month. */\n\t_getDaysInMonth: function(year, month) {\n\t\treturn 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();\n\t},\n\n\t/* Find the day of the week of the first of a month. */\n\t_getFirstDayOfMonth: function(year, month) {\n\t\treturn new Date(year, month, 1).getDay();\n\t},\n\n\t/* Determines if we should allow a \"next/prev\" month display change. */\n\t_canAdjustMonth: function(inst, offset, curYear, curMonth) {\n\t\tvar numMonths = this._getNumberOfMonths(inst),\n\t\t\tdate = this._daylightSavingAdjust(new Date(curYear,\n\t\t\tcurMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));\n\n\t\tif (offset < 0) {\n\t\t\tdate.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));\n\t\t}\n\t\treturn this._isInRange(inst, date);\n\t},\n\n\t/* Is the given date in the accepted range? */\n\t_isInRange: function(inst, date) {\n\t\tvar yearSplit, currentYear,\n\t\t\tminDate = this._getMinMaxDate(inst, \"min\"),\n\t\t\tmaxDate = this._getMinMaxDate(inst, \"max\"),\n\t\t\tminYear = null,\n\t\t\tmaxYear = null,\n\t\t\tyears = this._get(inst, \"yearRange\");\n\t\t\tif (years){\n\t\t\t\tyearSplit = years.split(\":\");\n\t\t\t\tcurrentYear = new Date().getFullYear();\n\t\t\t\tminYear = parseInt(yearSplit[0], 10);\n\t\t\t\tmaxYear = parseInt(yearSplit[1], 10);\n\t\t\t\tif ( yearSplit[0].match(/[+\\-].*/) ) {\n\t\t\t\t\tminYear += currentYear;\n\t\t\t\t}\n\t\t\t\tif ( yearSplit[1].match(/[+\\-].*/) ) {\n\t\t\t\t\tmaxYear += currentYear;\n\t\t\t\t}\n\t\t\t}\n\n\t\treturn ((!minDate || date.getTime() >= minDate.getTime()) &&\n\t\t\t(!maxDate || date.getTime() <= maxDate.getTime()) &&\n\t\t\t(!minYear || date.getFullYear() >= minYear) &&\n\t\t\t(!maxYear || date.getFullYear() <= maxYear));\n\t},\n\n\t/* Provide the configuration settings for formatting/parsing. */\n\t_getFormatConfig: function(inst) {\n\t\tvar shortYearCutoff = this._get(inst, \"shortYearCutoff\");\n\t\tshortYearCutoff = (typeof shortYearCutoff !== \"string\" ? shortYearCutoff :\n\t\t\tnew Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));\n\t\treturn {shortYearCutoff: shortYearCutoff,\n\t\t\tdayNamesShort: this._get(inst, \"dayNamesShort\"), dayNames: this._get(inst, \"dayNames\"),\n\t\t\tmonthNamesShort: this._get(inst, \"monthNamesShort\"), monthNames: this._get(inst, \"monthNames\")};\n\t},\n\n\t/* Format the given date for display. */\n\t_formatDate: function(inst, day, month, year) {\n\t\tif (!day) {\n\t\t\tinst.currentDay = inst.selectedDay;\n\t\t\tinst.currentMonth = inst.selectedMonth;\n\t\t\tinst.currentYear = inst.selectedYear;\n\t\t}\n\t\tvar date = (day ? (typeof day === \"object\" ? day :\n\t\t\tthis._daylightSavingAdjust(new Date(year, month, day))) :\n\t\t\tthis._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));\n\t\treturn this.formatDate(this._get(inst, \"dateFormat\"), date, this._getFormatConfig(inst));\n\t}\n});\n\n/*\n * Bind hover events for datepicker elements.\n * Done via delegate so the binding only occurs once in the lifetime of the parent div.\n * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.\n */\nfunction datepicker_bindHover(dpDiv) {\n\tvar selector = \"button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a\";\n\treturn dpDiv.delegate(selector, \"mouseout\", function() {\n\t\t\t$(this).removeClass(\"ui-state-hover\");\n\t\t\tif (this.className.indexOf(\"ui-datepicker-prev\") !== -1) {\n\t\t\t\t$(this).removeClass(\"ui-datepicker-prev-hover\");\n\t\t\t}\n\t\t\tif (this.className.indexOf(\"ui-datepicker-next\") !== -1) {\n\t\t\t\t$(this).removeClass(\"ui-datepicker-next-hover\");\n\t\t\t}\n\t\t})\n\t\t.delegate( selector, \"mouseover\", datepicker_handleMouseover );\n}\n\nfunction datepicker_handleMouseover() {\n\tif (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) {\n\t\t$(this).parents(\".ui-datepicker-calendar\").find(\"a\").removeClass(\"ui-state-hover\");\n\t\t$(this).addClass(\"ui-state-hover\");\n\t\tif (this.className.indexOf(\"ui-datepicker-prev\") !== -1) {\n\t\t\t$(this).addClass(\"ui-datepicker-prev-hover\");\n\t\t}\n\t\tif (this.className.indexOf(\"ui-datepicker-next\") !== -1) {\n\t\t\t$(this).addClass(\"ui-datepicker-next-hover\");\n\t\t}\n\t}\n}\n\n/* jQuery extend now ignores nulls! */\nfunction datepicker_extendRemove(target, props) {\n\t$.extend(target, props);\n\tfor (var name in props) {\n\t\tif (props[name] == null) {\n\t\t\ttarget[name] = props[name];\n\t\t}\n\t}\n\treturn target;\n}\n\n/* Invoke the datepicker functionality.\n @param options string - a command, optionally followed by additional parameters or\n\t\t\t\t\tObject - settings for attaching new datepicker functionality\n @return jQuery object */\n$.fn.datepicker = function(options){\n\n\t/* Verify an empty collection wasn't passed - Fixes #6976 */\n\tif ( !this.length ) {\n\t\treturn this;\n\t}\n\n\t/* Initialise the date picker. */\n\tif (!$.datepicker.initialized) {\n\t\t$(document).mousedown($.datepicker._checkExternalClick);\n\t\t$.datepicker.initialized = true;\n\t}\n\n\t/* Append datepicker main container to body if not exist. */\n\tif ($(\"#\"+$.datepicker._mainDivId).length === 0) {\n\t\t$(\"body\").append($.datepicker.dpDiv);\n\t}\n\n\tvar otherArgs = Array.prototype.slice.call(arguments, 1);\n\tif (typeof options === \"string\" && (options === \"isDisabled\" || options === \"getDate\" || options === \"widget\")) {\n\t\treturn $.datepicker[\"_\" + options + \"Datepicker\"].\n\t\t\tapply($.datepicker, [this[0]].concat(otherArgs));\n\t}\n\tif (options === \"option\" && arguments.length === 2 && typeof arguments[1] === \"string\") {\n\t\treturn $.datepicker[\"_\" + options + \"Datepicker\"].\n\t\t\tapply($.datepicker, [this[0]].concat(otherArgs));\n\t}\n\treturn this.each(function() {\n\t\ttypeof options === \"string\" ?\n\t\t\t$.datepicker[\"_\" + options + \"Datepicker\"].\n\t\t\t\tapply($.datepicker, [this].concat(otherArgs)) :\n\t\t\t$.datepicker._attachDatepicker(this, options);\n\t});\n};\n\n$.datepicker = new Datepicker(); // singleton instance\n$.datepicker.initialized = false;\n$.datepicker.uuid = new Date().getTime();\n$.datepicker.version = \"1.11.4\";\n\nvar datepicker = $.datepicker;\n\n\n/*!\n * jQuery UI Draggable 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/draggable/\n */\n\n\n$.widget(\"ui.draggable\", $.ui.mouse, {\n\tversion: \"1.11.4\",\n\twidgetEventPrefix: \"drag\",\n\toptions: {\n\t\taddClasses: true,\n\t\tappendTo: \"parent\",\n\t\taxis: false,\n\t\tconnectToSortable: false,\n\t\tcontainment: false,\n\t\tcursor: \"auto\",\n\t\tcursorAt: false,\n\t\tgrid: false,\n\t\thandle: false,\n\t\thelper: \"original\",\n\t\tiframeFix: false,\n\t\topacity: false,\n\t\trefreshPositions: false,\n\t\trevert: false,\n\t\trevertDuration: 500,\n\t\tscope: \"default\",\n\t\tscroll: true,\n\t\tscrollSensitivity: 20,\n\t\tscrollSpeed: 20,\n\t\tsnap: false,\n\t\tsnapMode: \"both\",\n\t\tsnapTolerance: 20,\n\t\tstack: false,\n\t\tzIndex: false,\n\n\t\t// callbacks\n\t\tdrag: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\t_create: function() {\n\n\t\tif ( this.options.helper === \"original\" ) {\n\t\t\tthis._setPositionRelative();\n\t\t}\n\t\tif (this.options.addClasses){\n\t\t\tthis.element.addClass(\"ui-draggable\");\n\t\t}\n\t\tif (this.options.disabled){\n\t\t\tthis.element.addClass(\"ui-draggable-disabled\");\n\t\t}\n\t\tthis._setHandleClassName();\n\n\t\tthis._mouseInit();\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\t\tif ( key === \"handle\" ) {\n\t\t\tthis._removeHandleClassName();\n\t\t\tthis._setHandleClassName();\n\t\t}\n\t},\n\n\t_destroy: function() {\n\t\tif ( ( this.helper || this.element ).is( \".ui-draggable-dragging\" ) ) {\n\t\t\tthis.destroyOnClear = true;\n\t\t\treturn;\n\t\t}\n\t\tthis.element.removeClass( \"ui-draggable ui-draggable-dragging ui-draggable-disabled\" );\n\t\tthis._removeHandleClassName();\n\t\tthis._mouseDestroy();\n\t},\n\n\t_mouseCapture: function(event) {\n\t\tvar o = this.options;\n\n\t\tthis._blurActiveElement( event );\n\n\t\t// among others, prevent a drag on a resizable-handle\n\t\tif (this.helper || o.disabled || $(event.target).closest(\".ui-resizable-handle\").length > 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t//Quit if we're not on a valid handle\n\t\tthis.handle = this._getHandle(event);\n\t\tif (!this.handle) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis._blockFrames( o.iframeFix === true ? \"iframe\" : o.iframeFix );\n\n\t\treturn true;\n\n\t},\n\n\t_blockFrames: function( selector ) {\n\t\tthis.iframeBlocks = this.document.find( selector ).map(function() {\n\t\t\tvar iframe = $( this );\n\n\t\t\treturn $( \"<div>\" )\n\t\t\t\t.css( \"position\", \"absolute\" )\n\t\t\t\t.appendTo( iframe.parent() )\n\t\t\t\t.outerWidth( iframe.outerWidth() )\n\t\t\t\t.outerHeight( iframe.outerHeight() )\n\t\t\t\t.offset( iframe.offset() )[ 0 ];\n\t\t});\n\t},\n\n\t_unblockFrames: function() {\n\t\tif ( this.iframeBlocks ) {\n\t\t\tthis.iframeBlocks.remove();\n\t\t\tdelete this.iframeBlocks;\n\t\t}\n\t},\n\n\t_blurActiveElement: function( event ) {\n\t\tvar document = this.document[ 0 ];\n\n\t\t// Only need to blur if the event occurred on the draggable itself, see #10527\n\t\tif ( !this.handleElement.is( event.target ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// support: IE9\n\t\t// IE9 throws an \"Unspecified error\" accessing document.activeElement from an <iframe>\n\t\ttry {\n\n\t\t\t// Support: IE9, IE10\n\t\t\t// If the <body> is blurred, IE will switch windows, see #9520\n\t\t\tif ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== \"body\" ) {\n\n\t\t\t\t// Blur any element that currently has focus, see #4261\n\t\t\t\t$( document.activeElement ).blur();\n\t\t\t}\n\t\t} catch ( error ) {}\n\t},\n\n\t_mouseStart: function(event) {\n\n\t\tvar o = this.options;\n\n\t\t//Create and append the visible helper\n\t\tthis.helper = this._createHelper(event);\n\n\t\tthis.helper.addClass(\"ui-draggable-dragging\");\n\n\t\t//Cache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t//If ddmanager is used for droppables, set the global draggable\n\t\tif ($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\t/*\n\t\t * - Position generation -\n\t\t * This block generates everything position related - it's the core of draggables.\n\t\t */\n\n\t\t//Cache the margins of the original element\n\t\tthis._cacheMargins();\n\n\t\t//Store the helper's css position\n\t\tthis.cssPosition = this.helper.css( \"position\" );\n\t\tthis.scrollParent = this.helper.scrollParent( true );\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tthis.hasFixedAncestor = this.helper.parents().filter(function() {\n\t\t\t\treturn $( this ).css( \"position\" ) === \"fixed\";\n\t\t\t}).length > 0;\n\n\t\t//The element's absolute position on the page minus margins\n\t\tthis.positionAbs = this.element.offset();\n\t\tthis._refreshOffsets( event );\n\n\t\t//Generate the original position\n\t\tthis.originalPosition = this.position = this._generatePosition( event, false );\n\t\tthis.originalPageX = event.pageX;\n\t\tthis.originalPageY = event.pageY;\n\n\t\t//Adjust the mouse offset relative to the helper if \"cursorAt\" is supplied\n\t\t(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));\n\n\t\t//Set a containment if given in the options\n\t\tthis._setContainment();\n\n\t\t//Trigger event + callbacks\n\t\tif (this._trigger(\"start\", event) === false) {\n\t\t\tthis._clear();\n\t\t\treturn false;\n\t\t}\n\n\t\t//Recache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t//Prepare the droppable offsets\n\t\tif ($.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\n\t\t}\n\n\t\t// Reset helper's right/bottom css if they're set and set explicit width/height instead\n\t\t// as this prevents resizing of elements with right/bottom set (see #7772)\n\t\tthis._normalizeRightBottom();\n\n\t\tthis._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position\n\n\t\t//If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.dragStart(this, event);\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t_refreshOffsets: function( event ) {\n\t\tthis.offset = {\n\t\t\ttop: this.positionAbs.top - this.margins.top,\n\t\t\tleft: this.positionAbs.left - this.margins.left,\n\t\t\tscroll: false,\n\t\t\tparent: this._getParentOffset(),\n\t\t\trelative: this._getRelativeOffset()\n\t\t};\n\n\t\tthis.offset.click = {\n\t\t\tleft: event.pageX - this.offset.left,\n\t\t\ttop: event.pageY - this.offset.top\n\t\t};\n\t},\n\n\t_mouseDrag: function(event, noPropagation) {\n\t\t// reset any necessary cached properties (see #5009)\n\t\tif ( this.hasFixedAncestor ) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition( event, true );\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\n\n\t\t//Call plugins and callbacks and use the resulting position if something is returned\n\t\tif (!noPropagation) {\n\t\t\tvar ui = this._uiHash();\n\t\t\tif (this._trigger(\"drag\", event, ui) === false) {\n\t\t\t\tthis._mouseUp({});\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.position = ui.position;\n\t\t}\n\n\t\tthis.helper[ 0 ].style.left = this.position.left + \"px\";\n\t\tthis.helper[ 0 ].style.top = this.position.top + \"px\";\n\n\t\tif ($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.drag(this, event);\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function(event) {\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tvar that = this,\n\t\t\tdropped = false;\n\t\tif ($.ui.ddmanager && !this.options.dropBehaviour) {\n\t\t\tdropped = $.ui.ddmanager.drop(this, event);\n\t\t}\n\n\t\t//if a drop comes from outside (a sortable)\n\t\tif (this.dropped) {\n\t\t\tdropped = this.dropped;\n\t\t\tthis.dropped = false;\n\t\t}\n\n\t\tif ((this.options.revert === \"invalid\" && !dropped) || (this.options.revert === \"valid\" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {\n\t\t\t$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {\n\t\t\t\tif (that._trigger(\"stop\", event) !== false) {\n\t\t\t\t\tthat._clear();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif (this._trigger(\"stop\", event) !== false) {\n\t\t\t\tthis._clear();\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseUp: function( event ) {\n\t\tthis._unblockFrames();\n\n\t\t//If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.dragStop(this, event);\n\t\t}\n\n\t\t// Only need to focus if the event occurred on the draggable itself, see #10527\n\t\tif ( this.handleElement.is( event.target ) ) {\n\t\t\t// The interaction is over; whether or not the click resulted in a drag, focus the element\n\t\t\tthis.element.focus();\n\t\t}\n\n\t\treturn $.ui.mouse.prototype._mouseUp.call(this, event);\n\t},\n\n\tcancel: function() {\n\n\t\tif (this.helper.is(\".ui-draggable-dragging\")) {\n\t\t\tthis._mouseUp({});\n\t\t} else {\n\t\t\tthis._clear();\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\t_getHandle: function(event) {\n\t\treturn this.options.handle ?\n\t\t\t!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :\n\t\t\ttrue;\n\t},\n\n\t_setHandleClassName: function() {\n\t\tthis.handleElement = this.options.handle ?\n\t\t\tthis.element.find( this.options.handle ) : this.element;\n\t\tthis.handleElement.addClass( \"ui-draggable-handle\" );\n\t},\n\n\t_removeHandleClassName: function() {\n\t\tthis.handleElement.removeClass( \"ui-draggable-handle\" );\n\t},\n\n\t_createHelper: function(event) {\n\n\t\tvar o = this.options,\n\t\t\thelperIsFunction = $.isFunction( o.helper ),\n\t\t\thelper = helperIsFunction ?\n\t\t\t\t$( o.helper.apply( this.element[ 0 ], [ event ] ) ) :\n\t\t\t\t( o.helper === \"clone\" ?\n\t\t\t\t\tthis.element.clone().removeAttr( \"id\" ) :\n\t\t\t\t\tthis.element );\n\n\t\tif (!helper.parents(\"body\").length) {\n\t\t\thelper.appendTo((o.appendTo === \"parent\" ? this.element[0].parentNode : o.appendTo));\n\t\t}\n\n\t\t// http://bugs.jqueryui.com/ticket/9446\n\t\t// a helper function can return the original element\n\t\t// which wouldn't have been set to relative in _create\n\t\tif ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) {\n\t\t\tthis._setPositionRelative();\n\t\t}\n\n\t\tif (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css(\"position\"))) {\n\t\t\thelper.css(\"position\", \"absolute\");\n\t\t}\n\n\t\treturn helper;\n\n\t},\n\n\t_setPositionRelative: function() {\n\t\tif ( !( /^(?:r|a|f)/ ).test( this.element.css( \"position\" ) ) ) {\n\t\t\tthis.element[ 0 ].style.position = \"relative\";\n\t\t}\n\t},\n\n\t_adjustOffsetFromHelper: function(obj) {\n\t\tif (typeof obj === \"string\") {\n\t\t\tobj = obj.split(\" \");\n\t\t}\n\t\tif ($.isArray(obj)) {\n\t\t\tobj = { left: +obj[0], top: +obj[1] || 0 };\n\t\t}\n\t\tif (\"left\" in obj) {\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\n\t\t}\n\t\tif (\"right\" in obj) {\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\n\t\t}\n\t\tif (\"top\" in obj) {\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\n\t\t}\n\t\tif (\"bottom\" in obj) {\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\n\t\t}\n\t},\n\n\t_isRootNode: function( element ) {\n\t\treturn ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];\n\t},\n\n\t_getParentOffset: function() {\n\n\t\t//Get the offsetParent and cache its position\n\t\tvar po = this.offsetParent.offset(),\n\t\t\tdocument = this.document[ 0 ];\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that\n\t\t// the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag\n\t\tif (this.cssPosition === \"absolute\" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {\n\t\t\tpo.left += this.scrollParent.scrollLeft();\n\t\t\tpo.top += this.scrollParent.scrollTop();\n\t\t}\n\n\t\tif ( this._isRootNode( this.offsetParent[ 0 ] ) ) {\n\t\t\tpo = { top: 0, left: 0 };\n\t\t}\n\n\t\treturn {\n\t\t\ttop: po.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"), 10) || 0),\n\t\t\tleft: po.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"), 10) || 0)\n\t\t};\n\n\t},\n\n\t_getRelativeOffset: function() {\n\t\tif ( this.cssPosition !== \"relative\" ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\tvar p = this.element.position(),\n\t\t\tscrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );\n\n\t\treturn {\n\t\t\ttop: p.top - ( parseInt(this.helper.css( \"top\" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),\n\t\t\tleft: p.left - ( parseInt(this.helper.css( \"left\" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )\n\t\t};\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: (parseInt(this.element.css(\"marginLeft\"), 10) || 0),\n\t\t\ttop: (parseInt(this.element.css(\"marginTop\"), 10) || 0),\n\t\t\tright: (parseInt(this.element.css(\"marginRight\"), 10) || 0),\n\t\t\tbottom: (parseInt(this.element.css(\"marginBottom\"), 10) || 0)\n\t\t};\n\t},\n\n\t_cacheHelperProportions: function() {\n\t\tthis.helperProportions = {\n\t\t\twidth: this.helper.outerWidth(),\n\t\t\theight: this.helper.outerHeight()\n\t\t};\n\t},\n\n\t_setContainment: function() {\n\n\t\tvar isUserScrollable, c, ce,\n\t\t\to = this.options,\n\t\t\tdocument = this.document[ 0 ];\n\n\t\tthis.relativeContainer = null;\n\n\t\tif ( !o.containment ) {\n\t\t\tthis.containment = null;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"window\" ) {\n\t\t\tthis.containment = [\n\t\t\t\t$( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t$( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\t$( window ).scrollLeft() + $( window ).width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t$( window ).scrollTop() + ( $( window ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"document\") {\n\t\t\tthis.containment = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t$( document ).width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t( $( document ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment.constructor === Array ) {\n\t\t\tthis.containment = o.containment;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"parent\" ) {\n\t\t\to.containment = this.helper[ 0 ].parentNode;\n\t\t}\n\n\t\tc = $( o.containment );\n\t\tce = c[ 0 ];\n\n\t\tif ( !ce ) {\n\t\t\treturn;\n\t\t}\n\n\t\tisUserScrollable = /(scroll|auto)/.test( c.css( \"overflow\" ) );\n\n\t\tthis.containment = [\n\t\t\t( parseInt( c.css( \"borderLeftWidth\" ), 10 ) || 0 ) + ( parseInt( c.css( \"paddingLeft\" ), 10 ) || 0 ),\n\t\t\t( parseInt( c.css( \"borderTopWidth\" ), 10 ) || 0 ) + ( parseInt( c.css( \"paddingTop\" ), 10 ) || 0 ),\n\t\t\t( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -\n\t\t\t\t( parseInt( c.css( \"borderRightWidth\" ), 10 ) || 0 ) -\n\t\t\t\t( parseInt( c.css( \"paddingRight\" ), 10 ) || 0 ) -\n\t\t\t\tthis.helperProportions.width -\n\t\t\t\tthis.margins.left -\n\t\t\t\tthis.margins.right,\n\t\t\t( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -\n\t\t\t\t( parseInt( c.css( \"borderBottomWidth\" ), 10 ) || 0 ) -\n\t\t\t\t( parseInt( c.css( \"paddingBottom\" ), 10 ) || 0 ) -\n\t\t\t\tthis.helperProportions.height -\n\t\t\t\tthis.margins.top -\n\t\t\t\tthis.margins.bottom\n\t\t];\n\t\tthis.relativeContainer = c;\n\t},\n\n\t_convertPositionTo: function(d, pos) {\n\n\t\tif (!pos) {\n\t\t\tpos = this.position;\n\t\t}\n\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpos.top\t+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.top * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top * mod -\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod)\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpos.left +\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.left * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left * mod\t-\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod)\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function( event, constrainPosition ) {\n\n\t\tvar containment, co, top, left,\n\t\t\to = this.options,\n\t\t\tscrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY;\n\n\t\t// Cache the scroll\n\t\tif ( !scrollIsRootNode || !this.offset.scroll ) {\n\t\t\tthis.offset.scroll = {\n\t\t\t\ttop: this.scrollParent.scrollTop(),\n\t\t\t\tleft: this.scrollParent.scrollLeft()\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * - Position constraining -\n\t\t * Constrain the position to a mix of grid, containment.\n\t\t */\n\n\t\t// If we are not dragging yet, we won't check for options\n\t\tif ( constrainPosition ) {\n\t\t\tif ( this.containment ) {\n\t\t\t\tif ( this.relativeContainer ){\n\t\t\t\t\tco = this.relativeContainer.offset();\n\t\t\t\t\tcontainment = [\n\t\t\t\t\t\tthis.containment[ 0 ] + co.left,\n\t\t\t\t\t\tthis.containment[ 1 ] + co.top,\n\t\t\t\t\t\tthis.containment[ 2 ] + co.left,\n\t\t\t\t\t\tthis.containment[ 3 ] + co.top\n\t\t\t\t\t];\n\t\t\t\t} else {\n\t\t\t\t\tcontainment = this.containment;\n\t\t\t\t}\n\n\t\t\t\tif (event.pageX - this.offset.click.left < containment[0]) {\n\t\t\t\t\tpageX = containment[0] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif (event.pageY - this.offset.click.top < containment[1]) {\n\t\t\t\t\tpageY = containment[1] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif (event.pageX - this.offset.click.left > containment[2]) {\n\t\t\t\t\tpageX = containment[2] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif (event.pageY - this.offset.click.top > containment[3]) {\n\t\t\t\t\tpageY = containment[3] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (o.grid) {\n\t\t\t\t//Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)\n\t\t\t\ttop = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;\n\t\t\t\tpageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;\n\n\t\t\t\tleft = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;\n\t\t\t\tpageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;\n\t\t\t}\n\n\t\t\tif ( o.axis === \"y\" ) {\n\t\t\t\tpageX = this.originalPageX;\n\t\t\t}\n\n\t\t\tif ( o.axis === \"x\" ) {\n\t\t\t\tpageY = this.originalPageY;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpageY -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.top\t-\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.top -\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( this.cssPosition === \"fixed\" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) )\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpageX -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.left -\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.left -\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( this.cssPosition === \"fixed\" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_clear: function() {\n\t\tthis.helper.removeClass(\"ui-draggable-dragging\");\n\t\tif (this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {\n\t\t\tthis.helper.remove();\n\t\t}\n\t\tthis.helper = null;\n\t\tthis.cancelHelperRemoval = false;\n\t\tif ( this.destroyOnClear ) {\n\t\t\tthis.destroy();\n\t\t}\n\t},\n\n\t_normalizeRightBottom: function() {\n\t\tif ( this.options.axis !== \"y\" && this.helper.css( \"right\" ) !== \"auto\" ) {\n\t\t\tthis.helper.width( this.helper.width() );\n\t\t\tthis.helper.css( \"right\", \"auto\" );\n\t\t}\n\t\tif ( this.options.axis !== \"x\" && this.helper.css( \"bottom\" ) !== \"auto\" ) {\n\t\t\tthis.helper.height( this.helper.height() );\n\t\t\tthis.helper.css( \"bottom\", \"auto\" );\n\t\t}\n\t},\n\n\t// From now on bulk stuff - mainly helpers\n\n\t_trigger: function( type, event, ui ) {\n\t\tui = ui || this._uiHash();\n\t\t$.ui.plugin.call( this, type, [ event, ui, this ], true );\n\n\t\t// Absolute position and offset (see #6884 ) have to be recalculated after plugins\n\t\tif ( /^(drag|start|stop)/.test( type ) ) {\n\t\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\t\t\tui.offset = this.positionAbs;\n\t\t}\n\t\treturn $.Widget.prototype._trigger.call( this, type, event, ui );\n\t},\n\n\tplugins: {},\n\n\t_uiHash: function() {\n\t\treturn {\n\t\t\thelper: this.helper,\n\t\t\tposition: this.position,\n\t\t\toriginalPosition: this.originalPosition,\n\t\t\toffset: this.positionAbs\n\t\t};\n\t}\n\n});\n\n$.ui.plugin.add( \"draggable\", \"connectToSortable\", {\n\tstart: function( event, ui, draggable ) {\n\t\tvar uiSortable = $.extend( {}, ui, {\n\t\t\titem: draggable.element\n\t\t});\n\n\t\tdraggable.sortables = [];\n\t\t$( draggable.options.connectToSortable ).each(function() {\n\t\t\tvar sortable = $( this ).sortable( \"instance\" );\n\n\t\t\tif ( sortable && !sortable.options.disabled ) {\n\t\t\t\tdraggable.sortables.push( sortable );\n\n\t\t\t\t// refreshPositions is called at drag start to refresh the containerCache\n\t\t\t\t// which is used in drag. This ensures it's initialized and synchronized\n\t\t\t\t// with any changes that might have happened on the page since initialization.\n\t\t\t\tsortable.refreshPositions();\n\t\t\t\tsortable._trigger(\"activate\", event, uiSortable);\n\t\t\t}\n\t\t});\n\t},\n\tstop: function( event, ui, draggable ) {\n\t\tvar uiSortable = $.extend( {}, ui, {\n\t\t\titem: draggable.element\n\t\t});\n\n\t\tdraggable.cancelHelperRemoval = false;\n\n\t\t$.each( draggable.sortables, function() {\n\t\t\tvar sortable = this;\n\n\t\t\tif ( sortable.isOver ) {\n\t\t\t\tsortable.isOver = 0;\n\n\t\t\t\t// Allow this sortable to handle removing the helper\n\t\t\t\tdraggable.cancelHelperRemoval = true;\n\t\t\t\tsortable.cancelHelperRemoval = false;\n\n\t\t\t\t// Use _storedCSS To restore properties in the sortable,\n\t\t\t\t// as this also handles revert (#9675) since the draggable\n\t\t\t\t// may have modified them in unexpected ways (#8809)\n\t\t\t\tsortable._storedCSS = {\n\t\t\t\t\tposition: sortable.placeholder.css( \"position\" ),\n\t\t\t\t\ttop: sortable.placeholder.css( \"top\" ),\n\t\t\t\t\tleft: sortable.placeholder.css( \"left\" )\n\t\t\t\t};\n\n\t\t\t\tsortable._mouseStop(event);\n\n\t\t\t\t// Once drag has ended, the sortable should return to using\n\t\t\t\t// its original helper, not the shared helper from draggable\n\t\t\t\tsortable.options.helper = sortable.options._helper;\n\t\t\t} else {\n\t\t\t\t// Prevent this Sortable from removing the helper.\n\t\t\t\t// However, don't set the draggable to remove the helper\n\t\t\t\t// either as another connected Sortable may yet handle the removal.\n\t\t\t\tsortable.cancelHelperRemoval = true;\n\n\t\t\t\tsortable._trigger( \"deactivate\", event, uiSortable );\n\t\t\t}\n\t\t});\n\t},\n\tdrag: function( event, ui, draggable ) {\n\t\t$.each( draggable.sortables, function() {\n\t\t\tvar innermostIntersecting = false,\n\t\t\t\tsortable = this;\n\n\t\t\t// Copy over variables that sortable's _intersectsWith uses\n\t\t\tsortable.positionAbs = draggable.positionAbs;\n\t\t\tsortable.helperProportions = draggable.helperProportions;\n\t\t\tsortable.offset.click = draggable.offset.click;\n\n\t\t\tif ( sortable._intersectsWith( sortable.containerCache ) ) {\n\t\t\t\tinnermostIntersecting = true;\n\n\t\t\t\t$.each( draggable.sortables, function() {\n\t\t\t\t\t// Copy over variables that sortable's _intersectsWith uses\n\t\t\t\t\tthis.positionAbs = draggable.positionAbs;\n\t\t\t\t\tthis.helperProportions = draggable.helperProportions;\n\t\t\t\t\tthis.offset.click = draggable.offset.click;\n\n\t\t\t\t\tif ( this !== sortable &&\n\t\t\t\t\t\t\tthis._intersectsWith( this.containerCache ) &&\n\t\t\t\t\t\t\t$.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) {\n\t\t\t\t\t\tinnermostIntersecting = false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn innermostIntersecting;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif ( innermostIntersecting ) {\n\t\t\t\t// If it intersects, we use a little isOver variable and set it once,\n\t\t\t\t// so that the move-in stuff gets fired only once.\n\t\t\t\tif ( !sortable.isOver ) {\n\t\t\t\t\tsortable.isOver = 1;\n\n\t\t\t\t\t// Store draggable's parent in case we need to reappend to it later.\n\t\t\t\t\tdraggable._parent = ui.helper.parent();\n\n\t\t\t\t\tsortable.currentItem = ui.helper\n\t\t\t\t\t\t.appendTo( sortable.element )\n\t\t\t\t\t\t.data( \"ui-sortable-item\", true );\n\n\t\t\t\t\t// Store helper option to later restore it\n\t\t\t\t\tsortable.options._helper = sortable.options.helper;\n\n\t\t\t\t\tsortable.options.helper = function() {\n\t\t\t\t\t\treturn ui.helper[ 0 ];\n\t\t\t\t\t};\n\n\t\t\t\t\t// Fire the start events of the sortable with our passed browser event,\n\t\t\t\t\t// and our own helper (so it doesn't create a new one)\n\t\t\t\t\tevent.target = sortable.currentItem[ 0 ];\n\t\t\t\t\tsortable._mouseCapture( event, true );\n\t\t\t\t\tsortable._mouseStart( event, true, true );\n\n\t\t\t\t\t// Because the browser event is way off the new appended portlet,\n\t\t\t\t\t// modify necessary variables to reflect the changes\n\t\t\t\t\tsortable.offset.click.top = draggable.offset.click.top;\n\t\t\t\t\tsortable.offset.click.left = draggable.offset.click.left;\n\t\t\t\t\tsortable.offset.parent.left -= draggable.offset.parent.left -\n\t\t\t\t\t\tsortable.offset.parent.left;\n\t\t\t\t\tsortable.offset.parent.top -= draggable.offset.parent.top -\n\t\t\t\t\t\tsortable.offset.parent.top;\n\n\t\t\t\t\tdraggable._trigger( \"toSortable\", event );\n\n\t\t\t\t\t// Inform draggable that the helper is in a valid drop zone,\n\t\t\t\t\t// used solely in the revert option to handle \"valid/invalid\".\n\t\t\t\t\tdraggable.dropped = sortable.element;\n\n\t\t\t\t\t// Need to refreshPositions of all sortables in the case that\n\t\t\t\t\t// adding to one sortable changes the location of the other sortables (#9675)\n\t\t\t\t\t$.each( draggable.sortables, function() {\n\t\t\t\t\t\tthis.refreshPositions();\n\t\t\t\t\t});\n\n\t\t\t\t\t// hack so receive/update callbacks work (mostly)\n\t\t\t\t\tdraggable.currentItem = draggable.element;\n\t\t\t\t\tsortable.fromOutside = draggable;\n\t\t\t\t}\n\n\t\t\t\tif ( sortable.currentItem ) {\n\t\t\t\t\tsortable._mouseDrag( event );\n\t\t\t\t\t// Copy the sortable's position because the draggable's can potentially reflect\n\t\t\t\t\t// a relative position, while sortable is always absolute, which the dragged\n\t\t\t\t\t// element has now become. (#8809)\n\t\t\t\t\tui.position = sortable.position;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If it doesn't intersect with the sortable, and it intersected before,\n\t\t\t\t// we fake the drag stop of the sortable, but make sure it doesn't remove\n\t\t\t\t// the helper by using cancelHelperRemoval.\n\t\t\t\tif ( sortable.isOver ) {\n\n\t\t\t\t\tsortable.isOver = 0;\n\t\t\t\t\tsortable.cancelHelperRemoval = true;\n\n\t\t\t\t\t// Calling sortable's mouseStop would trigger a revert,\n\t\t\t\t\t// so revert must be temporarily false until after mouseStop is called.\n\t\t\t\t\tsortable.options._revert = sortable.options.revert;\n\t\t\t\t\tsortable.options.revert = false;\n\n\t\t\t\t\tsortable._trigger( \"out\", event, sortable._uiHash( sortable ) );\n\t\t\t\t\tsortable._mouseStop( event, true );\n\n\t\t\t\t\t// restore sortable behaviors that were modfied\n\t\t\t\t\t// when the draggable entered the sortable area (#9481)\n\t\t\t\t\tsortable.options.revert = sortable.options._revert;\n\t\t\t\t\tsortable.options.helper = sortable.options._helper;\n\n\t\t\t\t\tif ( sortable.placeholder ) {\n\t\t\t\t\t\tsortable.placeholder.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Restore and recalculate the draggable's offset considering the sortable\n\t\t\t\t\t// may have modified them in unexpected ways. (#8809, #10669)\n\t\t\t\t\tui.helper.appendTo( draggable._parent );\n\t\t\t\t\tdraggable._refreshOffsets( event );\n\t\t\t\t\tui.position = draggable._generatePosition( event, true );\n\n\t\t\t\t\tdraggable._trigger( \"fromSortable\", event );\n\n\t\t\t\t\t// Inform draggable that the helper is no longer in a valid drop zone\n\t\t\t\t\tdraggable.dropped = false;\n\n\t\t\t\t\t// Need to refreshPositions of all sortables just in case removing\n\t\t\t\t\t// from one sortable changes the location of other sortables (#9675)\n\t\t\t\t\t$.each( draggable.sortables, function() {\n\t\t\t\t\t\tthis.refreshPositions();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"cursor\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar t = $( \"body\" ),\n\t\t\to = instance.options;\n\n\t\tif (t.css(\"cursor\")) {\n\t\t\to._cursor = t.css(\"cursor\");\n\t\t}\n\t\tt.css(\"cursor\", o.cursor);\n\t},\n\tstop: function( event, ui, instance ) {\n\t\tvar o = instance.options;\n\t\tif (o._cursor) {\n\t\t\t$(\"body\").css(\"cursor\", o._cursor);\n\t\t}\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"opacity\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar t = $( ui.helper ),\n\t\t\to = instance.options;\n\t\tif (t.css(\"opacity\")) {\n\t\t\to._opacity = t.css(\"opacity\");\n\t\t}\n\t\tt.css(\"opacity\", o.opacity);\n\t},\n\tstop: function( event, ui, instance ) {\n\t\tvar o = instance.options;\n\t\tif (o._opacity) {\n\t\t\t$(ui.helper).css(\"opacity\", o._opacity);\n\t\t}\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"scroll\", {\n\tstart: function( event, ui, i ) {\n\t\tif ( !i.scrollParentNotHidden ) {\n\t\t\ti.scrollParentNotHidden = i.helper.scrollParent( false );\n\t\t}\n\n\t\tif ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && i.scrollParentNotHidden[ 0 ].tagName !== \"HTML\" ) {\n\t\t\ti.overflowOffset = i.scrollParentNotHidden.offset();\n\t\t}\n\t},\n\tdrag: function( event, ui, i ) {\n\n\t\tvar o = i.options,\n\t\t\tscrolled = false,\n\t\t\tscrollParent = i.scrollParentNotHidden[ 0 ],\n\t\t\tdocument = i.document[ 0 ];\n\n\t\tif ( scrollParent !== document && scrollParent.tagName !== \"HTML\" ) {\n\t\t\tif ( !o.axis || o.axis !== \"x\" ) {\n\t\t\t\tif ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( !o.axis || o.axis !== \"y\" ) {\n\t\t\t\tif ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif (!o.axis || o.axis !== \"x\") {\n\t\t\t\tif (event.pageY - $(document).scrollTop() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);\n\t\t\t\t} else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!o.axis || o.axis !== \"y\") {\n\t\t\t\tif (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);\n\t\t\t\t} else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t$.ui.ddmanager.prepareOffsets(i, event);\n\t\t}\n\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"snap\", {\n\tstart: function( event, ui, i ) {\n\n\t\tvar o = i.options;\n\n\t\ti.snapElements = [];\n\n\t\t$(o.snap.constructor !== String ? ( o.snap.items || \":data(ui-draggable)\" ) : o.snap).each(function() {\n\t\t\tvar $t = $(this),\n\t\t\t\t$o = $t.offset();\n\t\t\tif (this !== i.element[0]) {\n\t\t\t\ti.snapElements.push({\n\t\t\t\t\titem: this,\n\t\t\t\t\twidth: $t.outerWidth(), height: $t.outerHeight(),\n\t\t\t\t\ttop: $o.top, left: $o.left\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t},\n\tdrag: function( event, ui, inst ) {\n\n\t\tvar ts, bs, ls, rs, l, r, t, b, i, first,\n\t\t\to = inst.options,\n\t\t\td = o.snapTolerance,\n\t\t\tx1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,\n\t\t\ty1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;\n\n\t\tfor (i = inst.snapElements.length - 1; i >= 0; i--){\n\n\t\t\tl = inst.snapElements[i].left - inst.margins.left;\n\t\t\tr = l + inst.snapElements[i].width;\n\t\t\tt = inst.snapElements[i].top - inst.margins.top;\n\t\t\tb = t + inst.snapElements[i].height;\n\n\t\t\tif ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) {\n\t\t\t\tif (inst.snapElements[i].snapping) {\n\t\t\t\t\t(inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));\n\t\t\t\t}\n\t\t\t\tinst.snapElements[i].snapping = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (o.snapMode !== \"inner\") {\n\t\t\t\tts = Math.abs(t - y2) <= d;\n\t\t\t\tbs = Math.abs(b - y1) <= d;\n\t\t\t\tls = Math.abs(l - x2) <= d;\n\t\t\t\trs = Math.abs(r - x1) <= d;\n\t\t\t\tif (ts) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: t - inst.helperProportions.height, left: 0 }).top;\n\t\t\t\t}\n\t\t\t\tif (bs) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: b, left: 0 }).top;\n\t\t\t\t}\n\t\t\t\tif (ls) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: l - inst.helperProportions.width }).left;\n\t\t\t\t}\n\t\t\t\tif (rs) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: r }).left;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfirst = (ts || bs || ls || rs);\n\n\t\t\tif (o.snapMode !== \"outer\") {\n\t\t\t\tts = Math.abs(t - y1) <= d;\n\t\t\t\tbs = Math.abs(b - y2) <= d;\n\t\t\t\tls = Math.abs(l - x1) <= d;\n\t\t\t\trs = Math.abs(r - x2) <= d;\n\t\t\t\tif (ts) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: t, left: 0 }).top;\n\t\t\t\t}\n\t\t\t\tif (bs) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: b - inst.helperProportions.height, left: 0 }).top;\n\t\t\t\t}\n\t\t\t\tif (ls) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: l }).left;\n\t\t\t\t}\n\t\t\t\tif (rs) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: r - inst.helperProportions.width }).left;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {\n\t\t\t\t(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));\n\t\t\t}\n\t\t\tinst.snapElements[i].snapping = (ts || bs || ls || rs || first);\n\n\t\t}\n\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"stack\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar min,\n\t\t\to = instance.options,\n\t\t\tgroup = $.makeArray($(o.stack)).sort(function(a, b) {\n\t\t\t\treturn (parseInt($(a).css(\"zIndex\"), 10) || 0) - (parseInt($(b).css(\"zIndex\"), 10) || 0);\n\t\t\t});\n\n\t\tif (!group.length) { return; }\n\n\t\tmin = parseInt($(group[0]).css(\"zIndex\"), 10) || 0;\n\t\t$(group).each(function(i) {\n\t\t\t$(this).css(\"zIndex\", min + i);\n\t\t});\n\t\tthis.css(\"zIndex\", (min + group.length));\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"zIndex\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar t = $( ui.helper ),\n\t\t\to = instance.options;\n\n\t\tif (t.css(\"zIndex\")) {\n\t\t\to._zIndex = t.css(\"zIndex\");\n\t\t}\n\t\tt.css(\"zIndex\", o.zIndex);\n\t},\n\tstop: function( event, ui, instance ) {\n\t\tvar o = instance.options;\n\n\t\tif (o._zIndex) {\n\t\t\t$(ui.helper).css(\"zIndex\", o._zIndex);\n\t\t}\n\t}\n});\n\nvar draggable = $.ui.draggable;\n\n\n/*!\n * jQuery UI Resizable 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/resizable/\n */\n\n\n$.widget(\"ui.resizable\", $.ui.mouse, {\n\tversion: \"1.11.4\",\n\twidgetEventPrefix: \"resize\",\n\toptions: {\n\t\talsoResize: false,\n\t\tanimate: false,\n\t\tanimateDuration: \"slow\",\n\t\tanimateEasing: \"swing\",\n\t\taspectRatio: false,\n\t\tautoHide: false,\n\t\tcontainment: false,\n\t\tghost: false,\n\t\tgrid: false,\n\t\thandles: \"e,s,se\",\n\t\thelper: false,\n\t\tmaxHeight: null,\n\t\tmaxWidth: null,\n\t\tminHeight: 10,\n\t\tminWidth: 10,\n\t\t// See #7960\n\t\tzIndex: 90,\n\n\t\t// callbacks\n\t\tresize: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\n\t_num: function( value ) {\n\t\treturn parseInt( value, 10 ) || 0;\n\t},\n\n\t_isNumber: function( value ) {\n\t\treturn !isNaN( parseInt( value, 10 ) );\n\t},\n\n\t_hasScroll: function( el, a ) {\n\n\t\tif ( $( el ).css( \"overflow\" ) === \"hidden\") {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar scroll = ( a && a === \"left\" ) ? \"scrollLeft\" : \"scrollTop\",\n\t\t\thas = false;\n\n\t\tif ( el[ scroll ] > 0 ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// TODO: determine which cases actually cause this to happen\n\t\t// if the element doesn't have the scroll set, see if it's possible to\n\t\t// set the scroll\n\t\tel[ scroll ] = 1;\n\t\thas = ( el[ scroll ] > 0 );\n\t\tel[ scroll ] = 0;\n\t\treturn has;\n\t},\n\n\t_create: function() {\n\n\t\tvar n, i, handle, axis, hname,\n\t\t\tthat = this,\n\t\t\to = this.options;\n\t\tthis.element.addClass(\"ui-resizable\");\n\n\t\t$.extend(this, {\n\t\t\t_aspectRatio: !!(o.aspectRatio),\n\t\t\taspectRatio: o.aspectRatio,\n\t\t\toriginalElement: this.element,\n\t\t\t_proportionallyResizeElements: [],\n\t\t\t_helper: o.helper || o.ghost || o.animate ? o.helper || \"ui-resizable-helper\" : null\n\t\t});\n\n\t\t// Wrap the element if it cannot hold child nodes\n\t\tif (this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)) {\n\n\t\t\tthis.element.wrap(\n\t\t\t\t$(\"<div class='ui-wrapper' style='overflow: hidden;'></div>\").css({\n\t\t\t\t\tposition: this.element.css(\"position\"),\n\t\t\t\t\twidth: this.element.outerWidth(),\n\t\t\t\t\theight: this.element.outerHeight(),\n\t\t\t\t\ttop: this.element.css(\"top\"),\n\t\t\t\t\tleft: this.element.css(\"left\")\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tthis.element = this.element.parent().data(\n\t\t\t\t\"ui-resizable\", this.element.resizable( \"instance\" )\n\t\t\t);\n\n\t\t\tthis.elementIsWrapper = true;\n\n\t\t\tthis.element.css({\n\t\t\t\tmarginLeft: this.originalElement.css(\"marginLeft\"),\n\t\t\t\tmarginTop: this.originalElement.css(\"marginTop\"),\n\t\t\t\tmarginRight: this.originalElement.css(\"marginRight\"),\n\t\t\t\tmarginBottom: this.originalElement.css(\"marginBottom\")\n\t\t\t});\n\t\t\tthis.originalElement.css({\n\t\t\t\tmarginLeft: 0,\n\t\t\t\tmarginTop: 0,\n\t\t\t\tmarginRight: 0,\n\t\t\t\tmarginBottom: 0\n\t\t\t});\n\t\t\t// support: Safari\n\t\t\t// Prevent Safari textarea resize\n\t\t\tthis.originalResizeStyle = this.originalElement.css(\"resize\");\n\t\t\tthis.originalElement.css(\"resize\", \"none\");\n\n\t\t\tthis._proportionallyResizeElements.push( this.originalElement.css({\n\t\t\t\tposition: \"static\",\n\t\t\t\tzoom: 1,\n\t\t\t\tdisplay: \"block\"\n\t\t\t}) );\n\n\t\t\t// support: IE9\n\t\t\t// avoid IE jump (hard set the margin)\n\t\t\tthis.originalElement.css({ margin: this.originalElement.css(\"margin\") });\n\n\t\t\tthis._proportionallyResize();\n\t\t}\n\n\t\tthis.handles = o.handles ||\n\t\t\t( !$(\".ui-resizable-handle\", this.element).length ?\n\t\t\t\t\"e,s,se\" : {\n\t\t\t\t\tn: \".ui-resizable-n\",\n\t\t\t\t\te: \".ui-resizable-e\",\n\t\t\t\t\ts: \".ui-resizable-s\",\n\t\t\t\t\tw: \".ui-resizable-w\",\n\t\t\t\t\tse: \".ui-resizable-se\",\n\t\t\t\t\tsw: \".ui-resizable-sw\",\n\t\t\t\t\tne: \".ui-resizable-ne\",\n\t\t\t\t\tnw: \".ui-resizable-nw\"\n\t\t\t\t} );\n\n\t\tthis._handles = $();\n\t\tif ( this.handles.constructor === String ) {\n\n\t\t\tif ( this.handles === \"all\") {\n\t\t\t\tthis.handles = \"n,e,s,w,se,sw,ne,nw\";\n\t\t\t}\n\n\t\t\tn = this.handles.split(\",\");\n\t\t\tthis.handles = {};\n\n\t\t\tfor (i = 0; i < n.length; i++) {\n\n\t\t\t\thandle = $.trim(n[i]);\n\t\t\t\thname = \"ui-resizable-\" + handle;\n\t\t\t\taxis = $(\"<div class='ui-resizable-handle \" + hname + \"'></div>\");\n\n\t\t\t\taxis.css({ zIndex: o.zIndex });\n\n\t\t\t\t// TODO : What's going on here?\n\t\t\t\tif (\"se\" === handle) {\n\t\t\t\t\taxis.addClass(\"ui-icon ui-icon-gripsmall-diagonal-se\");\n\t\t\t\t}\n\n\t\t\t\tthis.handles[handle] = \".ui-resizable-\" + handle;\n\t\t\t\tthis.element.append(axis);\n\t\t\t}\n\n\t\t}\n\n\t\tthis._renderAxis = function(target) {\n\n\t\t\tvar i, axis, padPos, padWrapper;\n\n\t\t\ttarget = target || this.element;\n\n\t\t\tfor (i in this.handles) {\n\n\t\t\t\tif (this.handles[i].constructor === String) {\n\t\t\t\t\tthis.handles[i] = this.element.children( this.handles[ i ] ).first().show();\n\t\t\t\t} else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {\n\t\t\t\t\tthis.handles[ i ] = $( this.handles[ i ] );\n\t\t\t\t\tthis._on( this.handles[ i ], { \"mousedown\": that._mouseDown });\n\t\t\t\t}\n\n\t\t\t\tif (this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)) {\n\n\t\t\t\t\taxis = $(this.handles[i], this.element);\n\n\t\t\t\t\tpadWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();\n\n\t\t\t\t\tpadPos = [ \"padding\",\n\t\t\t\t\t\t/ne|nw|n/.test(i) ? \"Top\" :\n\t\t\t\t\t\t/se|sw|s/.test(i) ? \"Bottom\" :\n\t\t\t\t\t\t/^e$/.test(i) ? \"Right\" : \"Left\" ].join(\"\");\n\n\t\t\t\t\ttarget.css(padPos, padWrapper);\n\n\t\t\t\t\tthis._proportionallyResize();\n\t\t\t\t}\n\n\t\t\t\tthis._handles = this._handles.add( this.handles[ i ] );\n\t\t\t}\n\t\t};\n\n\t\t// TODO: make renderAxis a prototype function\n\t\tthis._renderAxis(this.element);\n\n\t\tthis._handles = this._handles.add( this.element.find( \".ui-resizable-handle\" ) );\n\t\tthis._handles.disableSelection();\n\n\t\tthis._handles.mouseover(function() {\n\t\t\tif (!that.resizing) {\n\t\t\t\tif (this.className) {\n\t\t\t\t\taxis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);\n\t\t\t\t}\n\t\t\t\tthat.axis = axis && axis[1] ? axis[1] : \"se\";\n\t\t\t}\n\t\t});\n\n\t\tif (o.autoHide) {\n\t\t\tthis._handles.hide();\n\t\t\t$(this.element)\n\t\t\t\t.addClass(\"ui-resizable-autohide\")\n\t\t\t\t.mouseenter(function() {\n\t\t\t\t\tif (o.disabled) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t$(this).removeClass(\"ui-resizable-autohide\");\n\t\t\t\t\tthat._handles.show();\n\t\t\t\t})\n\t\t\t\t.mouseleave(function() {\n\t\t\t\t\tif (o.disabled) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (!that.resizing) {\n\t\t\t\t\t\t$(this).addClass(\"ui-resizable-autohide\");\n\t\t\t\t\t\tthat._handles.hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tthis._mouseInit();\n\t},\n\n\t_destroy: function() {\n\n\t\tthis._mouseDestroy();\n\n\t\tvar wrapper,\n\t\t\t_destroy = function(exp) {\n\t\t\t\t$(exp)\n\t\t\t\t\t.removeClass(\"ui-resizable ui-resizable-disabled ui-resizable-resizing\")\n\t\t\t\t\t.removeData(\"resizable\")\n\t\t\t\t\t.removeData(\"ui-resizable\")\n\t\t\t\t\t.unbind(\".resizable\")\n\t\t\t\t\t.find(\".ui-resizable-handle\")\n\t\t\t\t\t\t.remove();\n\t\t\t};\n\n\t\t// TODO: Unwrap at same DOM position\n\t\tif (this.elementIsWrapper) {\n\t\t\t_destroy(this.element);\n\t\t\twrapper = this.element;\n\t\t\tthis.originalElement.css({\n\t\t\t\tposition: wrapper.css(\"position\"),\n\t\t\t\twidth: wrapper.outerWidth(),\n\t\t\t\theight: wrapper.outerHeight(),\n\t\t\t\ttop: wrapper.css(\"top\"),\n\t\t\t\tleft: wrapper.css(\"left\")\n\t\t\t}).insertAfter( wrapper );\n\t\t\twrapper.remove();\n\t\t}\n\n\t\tthis.originalElement.css(\"resize\", this.originalResizeStyle);\n\t\t_destroy(this.originalElement);\n\n\t\treturn this;\n\t},\n\n\t_mouseCapture: function(event) {\n\t\tvar i, handle,\n\t\t\tcapture = false;\n\n\t\tfor (i in this.handles) {\n\t\t\thandle = $(this.handles[i])[0];\n\t\t\tif (handle === event.target || $.contains(handle, event.target)) {\n\t\t\t\tcapture = true;\n\t\t\t}\n\t\t}\n\n\t\treturn !this.options.disabled && capture;\n\t},\n\n\t_mouseStart: function(event) {\n\n\t\tvar curleft, curtop, cursor,\n\t\t\to = this.options,\n\t\t\tel = this.element;\n\n\t\tthis.resizing = true;\n\n\t\tthis._renderProxy();\n\n\t\tcurleft = this._num(this.helper.css(\"left\"));\n\t\tcurtop = this._num(this.helper.css(\"top\"));\n\n\t\tif (o.containment) {\n\t\t\tcurleft += $(o.containment).scrollLeft() || 0;\n\t\t\tcurtop += $(o.containment).scrollTop() || 0;\n\t\t}\n\n\t\tthis.offset = this.helper.offset();\n\t\tthis.position = { left: curleft, top: curtop };\n\n\t\tthis.size = this._helper ? {\n\t\t\t\twidth: this.helper.width(),\n\t\t\t\theight: this.helper.height()\n\t\t\t} : {\n\t\t\t\twidth: el.width(),\n\t\t\t\theight: el.height()\n\t\t\t};\n\n\t\tthis.originalSize = this._helper ? {\n\t\t\t\twidth: el.outerWidth(),\n\t\t\t\theight: el.outerHeight()\n\t\t\t} : {\n\t\t\t\twidth: el.width(),\n\t\t\t\theight: el.height()\n\t\t\t};\n\n\t\tthis.sizeDiff = {\n\t\t\twidth: el.outerWidth() - el.width(),\n\t\t\theight: el.outerHeight() - el.height()\n\t\t};\n\n\t\tthis.originalPosition = { left: curleft, top: curtop };\n\t\tthis.originalMousePosition = { left: event.pageX, top: event.pageY };\n\n\t\tthis.aspectRatio = (typeof o.aspectRatio === \"number\") ?\n\t\t\to.aspectRatio :\n\t\t\t((this.originalSize.width / this.originalSize.height) || 1);\n\n\t\tcursor = $(\".ui-resizable-\" + this.axis).css(\"cursor\");\n\t\t$(\"body\").css(\"cursor\", cursor === \"auto\" ? this.axis + \"-resize\" : cursor);\n\n\t\tel.addClass(\"ui-resizable-resizing\");\n\t\tthis._propagate(\"start\", event);\n\t\treturn true;\n\t},\n\n\t_mouseDrag: function(event) {\n\n\t\tvar data, props,\n\t\t\tsmp = this.originalMousePosition,\n\t\t\ta = this.axis,\n\t\t\tdx = (event.pageX - smp.left) || 0,\n\t\t\tdy = (event.pageY - smp.top) || 0,\n\t\t\ttrigger = this._change[a];\n\n\t\tthis._updatePrevProperties();\n\n\t\tif (!trigger) {\n\t\t\treturn false;\n\t\t}\n\n\t\tdata = trigger.apply(this, [ event, dx, dy ]);\n\n\t\tthis._updateVirtualBoundaries(event.shiftKey);\n\t\tif (this._aspectRatio || event.shiftKey) {\n\t\t\tdata = this._updateRatio(data, event);\n\t\t}\n\n\t\tdata = this._respectSize(data, event);\n\n\t\tthis._updateCache(data);\n\n\t\tthis._propagate(\"resize\", event);\n\n\t\tprops = this._applyChanges();\n\n\t\tif ( !this._helper && this._proportionallyResizeElements.length ) {\n\t\t\tthis._proportionallyResize();\n\t\t}\n\n\t\tif ( !$.isEmptyObject( props ) ) {\n\t\t\tthis._updatePrevProperties();\n\t\t\tthis._trigger( \"resize\", event, this.ui() );\n\t\t\tthis._applyChanges();\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function(event) {\n\n\t\tthis.resizing = false;\n\t\tvar pr, ista, soffseth, soffsetw, s, left, top,\n\t\t\to = this.options, that = this;\n\n\t\tif (this._helper) {\n\n\t\t\tpr = this._proportionallyResizeElements;\n\t\t\tista = pr.length && (/textarea/i).test(pr[0].nodeName);\n\t\t\tsoffseth = ista && this._hasScroll(pr[0], \"left\") ? 0 : that.sizeDiff.height;\n\t\t\tsoffsetw = ista ? 0 : that.sizeDiff.width;\n\n\t\t\ts = {\n\t\t\t\twidth: (that.helper.width() - soffsetw),\n\t\t\t\theight: (that.helper.height() - soffseth)\n\t\t\t};\n\t\t\tleft = (parseInt(that.element.css(\"left\"), 10) +\n\t\t\t\t(that.position.left - that.originalPosition.left)) || null;\n\t\t\ttop = (parseInt(that.element.css(\"top\"), 10) +\n\t\t\t\t(that.position.top - that.originalPosition.top)) || null;\n\n\t\t\tif (!o.animate) {\n\t\t\t\tthis.element.css($.extend(s, { top: top, left: left }));\n\t\t\t}\n\n\t\t\tthat.helper.height(that.size.height);\n\t\t\tthat.helper.width(that.size.width);\n\n\t\t\tif (this._helper && !o.animate) {\n\t\t\t\tthis._proportionallyResize();\n\t\t\t}\n\t\t}\n\n\t\t$(\"body\").css(\"cursor\", \"auto\");\n\n\t\tthis.element.removeClass(\"ui-resizable-resizing\");\n\n\t\tthis._propagate(\"stop\", event);\n\n\t\tif (this._helper) {\n\t\t\tthis.helper.remove();\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\t_updatePrevProperties: function() {\n\t\tthis.prevPosition = {\n\t\t\ttop: this.position.top,\n\t\t\tleft: this.position.left\n\t\t};\n\t\tthis.prevSize = {\n\t\t\twidth: this.size.width,\n\t\t\theight: this.size.height\n\t\t};\n\t},\n\n\t_applyChanges: function() {\n\t\tvar props = {};\n\n\t\tif ( this.position.top !== this.prevPosition.top ) {\n\t\t\tprops.top = this.position.top + \"px\";\n\t\t}\n\t\tif ( this.position.left !== this.prevPosition.left ) {\n\t\t\tprops.left = this.position.left + \"px\";\n\t\t}\n\t\tif ( this.size.width !== this.prevSize.width ) {\n\t\t\tprops.width = this.size.width + \"px\";\n\t\t}\n\t\tif ( this.size.height !== this.prevSize.height ) {\n\t\t\tprops.height = this.size.height + \"px\";\n\t\t}\n\n\t\tthis.helper.css( props );\n\n\t\treturn props;\n\t},\n\n\t_updateVirtualBoundaries: function(forceAspectRatio) {\n\t\tvar pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,\n\t\t\to = this.options;\n\n\t\tb = {\n\t\t\tminWidth: this._isNumber(o.minWidth) ? o.minWidth : 0,\n\t\t\tmaxWidth: this._isNumber(o.maxWidth) ? o.maxWidth : Infinity,\n\t\t\tminHeight: this._isNumber(o.minHeight) ? o.minHeight : 0,\n\t\t\tmaxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : Infinity\n\t\t};\n\n\t\tif (this._aspectRatio || forceAspectRatio) {\n\t\t\tpMinWidth = b.minHeight * this.aspectRatio;\n\t\t\tpMinHeight = b.minWidth / this.aspectRatio;\n\t\t\tpMaxWidth = b.maxHeight * this.aspectRatio;\n\t\t\tpMaxHeight = b.maxWidth / this.aspectRatio;\n\n\t\t\tif (pMinWidth > b.minWidth) {\n\t\t\t\tb.minWidth = pMinWidth;\n\t\t\t}\n\t\t\tif (pMinHeight > b.minHeight) {\n\t\t\t\tb.minHeight = pMinHeight;\n\t\t\t}\n\t\t\tif (pMaxWidth < b.maxWidth) {\n\t\t\t\tb.maxWidth = pMaxWidth;\n\t\t\t}\n\t\t\tif (pMaxHeight < b.maxHeight) {\n\t\t\t\tb.maxHeight = pMaxHeight;\n\t\t\t}\n\t\t}\n\t\tthis._vBoundaries = b;\n\t},\n\n\t_updateCache: function(data) {\n\t\tthis.offset = this.helper.offset();\n\t\tif (this._isNumber(data.left)) {\n\t\t\tthis.position.left = data.left;\n\t\t}\n\t\tif (this._isNumber(data.top)) {\n\t\t\tthis.position.top = data.top;\n\t\t}\n\t\tif (this._isNumber(data.height)) {\n\t\t\tthis.size.height = data.height;\n\t\t}\n\t\tif (this._isNumber(data.width)) {\n\t\t\tthis.size.width = data.width;\n\t\t}\n\t},\n\n\t_updateRatio: function( data ) {\n\n\t\tvar cpos = this.position,\n\t\t\tcsize = this.size,\n\t\t\ta = this.axis;\n\n\t\tif (this._isNumber(data.height)) {\n\t\t\tdata.width = (data.height * this.aspectRatio);\n\t\t} else if (this._isNumber(data.width)) {\n\t\t\tdata.height = (data.width / this.aspectRatio);\n\t\t}\n\n\t\tif (a === \"sw\") {\n\t\t\tdata.left = cpos.left + (csize.width - data.width);\n\t\t\tdata.top = null;\n\t\t}\n\t\tif (a === \"nw\") {\n\t\t\tdata.top = cpos.top + (csize.height - data.height);\n\t\t\tdata.left = cpos.left + (csize.width - data.width);\n\t\t}\n\n\t\treturn data;\n\t},\n\n\t_respectSize: function( data ) {\n\n\t\tvar o = this._vBoundaries,\n\t\t\ta = this.axis,\n\t\t\tismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width),\n\t\t\tismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),\n\t\t\tisminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width),\n\t\t\tisminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height),\n\t\t\tdw = this.originalPosition.left + this.originalSize.width,\n\t\t\tdh = this.position.top + this.size.height,\n\t\t\tcw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);\n\t\tif (isminw) {\n\t\t\tdata.width = o.minWidth;\n\t\t}\n\t\tif (isminh) {\n\t\t\tdata.height = o.minHeight;\n\t\t}\n\t\tif (ismaxw) {\n\t\t\tdata.width = o.maxWidth;\n\t\t}\n\t\tif (ismaxh) {\n\t\t\tdata.height = o.maxHeight;\n\t\t}\n\n\t\tif (isminw && cw) {\n\t\t\tdata.left = dw - o.minWidth;\n\t\t}\n\t\tif (ismaxw && cw) {\n\t\t\tdata.left = dw - o.maxWidth;\n\t\t}\n\t\tif (isminh && ch) {\n\t\t\tdata.top = dh - o.minHeight;\n\t\t}\n\t\tif (ismaxh && ch) {\n\t\t\tdata.top = dh - o.maxHeight;\n\t\t}\n\n\t\t// Fixing jump error on top/left - bug #2330\n\t\tif (!data.width && !data.height && !data.left && data.top) {\n\t\t\tdata.top = null;\n\t\t} else if (!data.width && !data.height && !data.top && data.left) {\n\t\t\tdata.left = null;\n\t\t}\n\n\t\treturn data;\n\t},\n\n\t_getPaddingPlusBorderDimensions: function( element ) {\n\t\tvar i = 0,\n\t\t\twidths = [],\n\t\t\tborders = [\n\t\t\t\telement.css( \"borderTopWidth\" ),\n\t\t\t\telement.css( \"borderRightWidth\" ),\n\t\t\t\telement.css( \"borderBottomWidth\" ),\n\t\t\t\telement.css( \"borderLeftWidth\" )\n\t\t\t],\n\t\t\tpaddings = [\n\t\t\t\telement.css( \"paddingTop\" ),\n\t\t\t\telement.css( \"paddingRight\" ),\n\t\t\t\telement.css( \"paddingBottom\" ),\n\t\t\t\telement.css( \"paddingLeft\" )\n\t\t\t];\n\n\t\tfor ( ; i < 4; i++ ) {\n\t\t\twidths[ i ] = ( parseInt( borders[ i ], 10 ) || 0 );\n\t\t\twidths[ i ] += ( parseInt( paddings[ i ], 10 ) || 0 );\n\t\t}\n\n\t\treturn {\n\t\t\theight: widths[ 0 ] + widths[ 2 ],\n\t\t\twidth: widths[ 1 ] + widths[ 3 ]\n\t\t};\n\t},\n\n\t_proportionallyResize: function() {\n\n\t\tif (!this._proportionallyResizeElements.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar prel,\n\t\t\ti = 0,\n\t\t\telement = this.helper || this.element;\n\n\t\tfor ( ; i < this._proportionallyResizeElements.length; i++) {\n\n\t\t\tprel = this._proportionallyResizeElements[i];\n\n\t\t\t// TODO: Seems like a bug to cache this.outerDimensions\n\t\t\t// considering that we are in a loop.\n\t\t\tif (!this.outerDimensions) {\n\t\t\t\tthis.outerDimensions = this._getPaddingPlusBorderDimensions( prel );\n\t\t\t}\n\n\t\t\tprel.css({\n\t\t\t\theight: (element.height() - this.outerDimensions.height) || 0,\n\t\t\t\twidth: (element.width() - this.outerDimensions.width) || 0\n\t\t\t});\n\n\t\t}\n\n\t},\n\n\t_renderProxy: function() {\n\n\t\tvar el = this.element, o = this.options;\n\t\tthis.elementOffset = el.offset();\n\n\t\tif (this._helper) {\n\n\t\t\tthis.helper = this.helper || $(\"<div style='overflow:hidden;'></div>\");\n\n\t\t\tthis.helper.addClass(this._helper).css({\n\t\t\t\twidth: this.element.outerWidth() - 1,\n\t\t\t\theight: this.element.outerHeight() - 1,\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tleft: this.elementOffset.left + \"px\",\n\t\t\t\ttop: this.elementOffset.top + \"px\",\n\t\t\t\tzIndex: ++o.zIndex //TODO: Don't modify option\n\t\t\t});\n\n\t\t\tthis.helper\n\t\t\t\t.appendTo(\"body\")\n\t\t\t\t.disableSelection();\n\n\t\t} else {\n\t\t\tthis.helper = this.element;\n\t\t}\n\n\t},\n\n\t_change: {\n\t\te: function(event, dx) {\n\t\t\treturn { width: this.originalSize.width + dx };\n\t\t},\n\t\tw: function(event, dx) {\n\t\t\tvar cs = this.originalSize, sp = this.originalPosition;\n\t\t\treturn { left: sp.left + dx, width: cs.width - dx };\n\t\t},\n\t\tn: function(event, dx, dy) {\n\t\t\tvar cs = this.originalSize, sp = this.originalPosition;\n\t\t\treturn { top: sp.top + dy, height: cs.height - dy };\n\t\t},\n\t\ts: function(event, dx, dy) {\n\t\t\treturn { height: this.originalSize.height + dy };\n\t\t},\n\t\tse: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.s.apply(this, arguments),\n\t\t\t\tthis._change.e.apply(this, [ event, dx, dy ]));\n\t\t},\n\t\tsw: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.s.apply(this, arguments),\n\t\t\t\tthis._change.w.apply(this, [ event, dx, dy ]));\n\t\t},\n\t\tne: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.n.apply(this, arguments),\n\t\t\t\tthis._change.e.apply(this, [ event, dx, dy ]));\n\t\t},\n\t\tnw: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.n.apply(this, arguments),\n\t\t\t\tthis._change.w.apply(this, [ event, dx, dy ]));\n\t\t}\n\t},\n\n\t_propagate: function(n, event) {\n\t\t$.ui.plugin.call(this, n, [ event, this.ui() ]);\n\t\t(n !== \"resize\" && this._trigger(n, event, this.ui()));\n\t},\n\n\tplugins: {},\n\n\tui: function() {\n\t\treturn {\n\t\t\toriginalElement: this.originalElement,\n\t\t\telement: this.element,\n\t\t\thelper: this.helper,\n\t\t\tposition: this.position,\n\t\t\tsize: this.size,\n\t\t\toriginalSize: this.originalSize,\n\t\t\toriginalPosition: this.originalPosition\n\t\t};\n\t}\n\n});\n\n/*\n * Resizable Extensions\n */\n\n$.ui.plugin.add(\"resizable\", \"animate\", {\n\n\tstop: function( event ) {\n\t\tvar that = $(this).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tpr = that._proportionallyResizeElements,\n\t\t\tista = pr.length && (/textarea/i).test(pr[0].nodeName),\n\t\t\tsoffseth = ista && that._hasScroll(pr[0], \"left\") ? 0 : that.sizeDiff.height,\n\t\t\tsoffsetw = ista ? 0 : that.sizeDiff.width,\n\t\t\tstyle = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) },\n\t\t\tleft = (parseInt(that.element.css(\"left\"), 10) +\n\t\t\t\t(that.position.left - that.originalPosition.left)) || null,\n\t\t\ttop = (parseInt(that.element.css(\"top\"), 10) +\n\t\t\t\t(that.position.top - that.originalPosition.top)) || null;\n\n\t\tthat.element.animate(\n\t\t\t$.extend(style, top && left ? { top: top, left: left } : {}), {\n\t\t\t\tduration: o.animateDuration,\n\t\t\t\teasing: o.animateEasing,\n\t\t\t\tstep: function() {\n\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\twidth: parseInt(that.element.css(\"width\"), 10),\n\t\t\t\t\t\theight: parseInt(that.element.css(\"height\"), 10),\n\t\t\t\t\t\ttop: parseInt(that.element.css(\"top\"), 10),\n\t\t\t\t\t\tleft: parseInt(that.element.css(\"left\"), 10)\n\t\t\t\t\t};\n\n\t\t\t\t\tif (pr && pr.length) {\n\t\t\t\t\t\t$(pr[0]).css({ width: data.width, height: data.height });\n\t\t\t\t\t}\n\n\t\t\t\t\t// propagating resize, and updating values for each animation step\n\t\t\t\t\tthat._updateCache(data);\n\t\t\t\t\tthat._propagate(\"resize\", event);\n\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n});\n\n$.ui.plugin.add( \"resizable\", \"containment\", {\n\n\tstart: function() {\n\t\tvar element, p, co, ch, cw, width, height,\n\t\t\tthat = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tel = that.element,\n\t\t\toc = o.containment,\n\t\t\tce = ( oc instanceof $ ) ? oc.get( 0 ) : ( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;\n\n\t\tif ( !ce ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthat.containerElement = $( ce );\n\n\t\tif ( /document/.test( oc ) || oc === document ) {\n\t\t\tthat.containerOffset = {\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0\n\t\t\t};\n\t\t\tthat.containerPosition = {\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0\n\t\t\t};\n\n\t\t\tthat.parentData = {\n\t\t\t\telement: $( document ),\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0,\n\t\t\t\twidth: $( document ).width(),\n\t\t\t\theight: $( document ).height() || document.body.parentNode.scrollHeight\n\t\t\t};\n\t\t} else {\n\t\t\telement = $( ce );\n\t\t\tp = [];\n\t\t\t$([ \"Top\", \"Right\", \"Left\", \"Bottom\" ]).each(function( i, name ) {\n\t\t\t\tp[ i ] = that._num( element.css( \"padding\" + name ) );\n\t\t\t});\n\n\t\t\tthat.containerOffset = element.offset();\n\t\t\tthat.containerPosition = element.position();\n\t\t\tthat.containerSize = {\n\t\t\t\theight: ( element.innerHeight() - p[ 3 ] ),\n\t\t\t\twidth: ( element.innerWidth() - p[ 1 ] )\n\t\t\t};\n\n\t\t\tco = that.containerOffset;\n\t\t\tch = that.containerSize.height;\n\t\t\tcw = that.containerSize.width;\n\t\t\twidth = ( that._hasScroll ( ce, \"left\" ) ? ce.scrollWidth : cw );\n\t\t\theight = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;\n\n\t\t\tthat.parentData = {\n\t\t\t\telement: ce,\n\t\t\t\tleft: co.left,\n\t\t\t\ttop: co.top,\n\t\t\t\twidth: width,\n\t\t\t\theight: height\n\t\t\t};\n\t\t}\n\t},\n\n\tresize: function( event ) {\n\t\tvar woset, hoset, isParent, isOffsetRelative,\n\t\t\tthat = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tco = that.containerOffset,\n\t\t\tcp = that.position,\n\t\t\tpRatio = that._aspectRatio || event.shiftKey,\n\t\t\tcop = {\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0\n\t\t\t},\n\t\t\tce = that.containerElement,\n\t\t\tcontinueResize = true;\n\n\t\tif ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( \"position\" ) ) ) {\n\t\t\tcop = co;\n\t\t}\n\n\t\tif ( cp.left < ( that._helper ? co.left : 0 ) ) {\n\t\t\tthat.size.width = that.size.width +\n\t\t\t\t( that._helper ?\n\t\t\t\t\t( that.position.left - co.left ) :\n\t\t\t\t\t( that.position.left - cop.left ) );\n\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.height = that.size.width / that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t\tthat.position.left = o.helper ? co.left : 0;\n\t\t}\n\n\t\tif ( cp.top < ( that._helper ? co.top : 0 ) ) {\n\t\t\tthat.size.height = that.size.height +\n\t\t\t\t( that._helper ?\n\t\t\t\t\t( that.position.top - co.top ) :\n\t\t\t\t\tthat.position.top );\n\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.width = that.size.height * that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t\tthat.position.top = that._helper ? co.top : 0;\n\t\t}\n\n\t\tisParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );\n\t\tisOffsetRelative = /relative|absolute/.test( that.containerElement.css( \"position\" ) );\n\n\t\tif ( isParent && isOffsetRelative ) {\n\t\t\tthat.offset.left = that.parentData.left + that.position.left;\n\t\t\tthat.offset.top = that.parentData.top + that.position.top;\n\t\t} else {\n\t\t\tthat.offset.left = that.element.offset().left;\n\t\t\tthat.offset.top = that.element.offset().top;\n\t\t}\n\n\t\twoset = Math.abs( that.sizeDiff.width +\n\t\t\t(that._helper ?\n\t\t\t\tthat.offset.left - cop.left :\n\t\t\t\t(that.offset.left - co.left)) );\n\n\t\thoset = Math.abs( that.sizeDiff.height +\n\t\t\t(that._helper ?\n\t\t\t\tthat.offset.top - cop.top :\n\t\t\t\t(that.offset.top - co.top)) );\n\n\t\tif ( woset + that.size.width >= that.parentData.width ) {\n\t\t\tthat.size.width = that.parentData.width - woset;\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.height = that.size.width / that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t}\n\n\t\tif ( hoset + that.size.height >= that.parentData.height ) {\n\t\t\tthat.size.height = that.parentData.height - hoset;\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.width = that.size.height * that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t}\n\n\t\tif ( !continueResize ) {\n\t\t\tthat.position.left = that.prevPosition.left;\n\t\t\tthat.position.top = that.prevPosition.top;\n\t\t\tthat.size.width = that.prevSize.width;\n\t\t\tthat.size.height = that.prevSize.height;\n\t\t}\n\t},\n\n\tstop: function() {\n\t\tvar that = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tco = that.containerOffset,\n\t\t\tcop = that.containerPosition,\n\t\t\tce = that.containerElement,\n\t\t\thelper = $( that.helper ),\n\t\t\tho = helper.offset(),\n\t\t\tw = helper.outerWidth() - that.sizeDiff.width,\n\t\t\th = helper.outerHeight() - that.sizeDiff.height;\n\n\t\tif ( that._helper && !o.animate && ( /relative/ ).test( ce.css( \"position\" ) ) ) {\n\t\t\t$( this ).css({\n\t\t\t\tleft: ho.left - cop.left - co.left,\n\t\t\t\twidth: w,\n\t\t\t\theight: h\n\t\t\t});\n\t\t}\n\n\t\tif ( that._helper && !o.animate && ( /static/ ).test( ce.css( \"position\" ) ) ) {\n\t\t\t$( this ).css({\n\t\t\t\tleft: ho.left - cop.left - co.left,\n\t\t\t\twidth: w,\n\t\t\t\theight: h\n\t\t\t});\n\t\t}\n\t}\n});\n\n$.ui.plugin.add(\"resizable\", \"alsoResize\", {\n\n\tstart: function() {\n\t\tvar that = $(this).resizable( \"instance\" ),\n\t\t\to = that.options;\n\n\t\t$(o.alsoResize).each(function() {\n\t\t\tvar el = $(this);\n\t\t\tel.data(\"ui-resizable-alsoresize\", {\n\t\t\t\twidth: parseInt(el.width(), 10), height: parseInt(el.height(), 10),\n\t\t\t\tleft: parseInt(el.css(\"left\"), 10), top: parseInt(el.css(\"top\"), 10)\n\t\t\t});\n\t\t});\n\t},\n\n\tresize: function(event, ui) {\n\t\tvar that = $(this).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tos = that.originalSize,\n\t\t\top = that.originalPosition,\n\t\t\tdelta = {\n\t\t\t\theight: (that.size.height - os.height) || 0,\n\t\t\t\twidth: (that.size.width - os.width) || 0,\n\t\t\t\ttop: (that.position.top - op.top) || 0,\n\t\t\t\tleft: (that.position.left - op.left) || 0\n\t\t\t};\n\n\t\t\t$(o.alsoResize).each(function() {\n\t\t\t\tvar el = $(this), start = $(this).data(\"ui-resizable-alsoresize\"), style = {},\n\t\t\t\t\tcss = el.parents(ui.originalElement[0]).length ?\n\t\t\t\t\t\t\t[ \"width\", \"height\" ] :\n\t\t\t\t\t\t\t[ \"width\", \"height\", \"top\", \"left\" ];\n\n\t\t\t\t$.each(css, function(i, prop) {\n\t\t\t\t\tvar sum = (start[prop] || 0) + (delta[prop] || 0);\n\t\t\t\t\tif (sum && sum >= 0) {\n\t\t\t\t\t\tstyle[prop] = sum || null;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tel.css(style);\n\t\t\t});\n\t},\n\n\tstop: function() {\n\t\t$(this).removeData(\"resizable-alsoresize\");\n\t}\n});\n\n$.ui.plugin.add(\"resizable\", \"ghost\", {\n\n\tstart: function() {\n\n\t\tvar that = $(this).resizable( \"instance\" ), o = that.options, cs = that.size;\n\n\t\tthat.ghost = that.originalElement.clone();\n\t\tthat.ghost\n\t\t\t.css({\n\t\t\t\topacity: 0.25,\n\t\t\t\tdisplay: \"block\",\n\t\t\t\tposition: \"relative\",\n\t\t\t\theight: cs.height,\n\t\t\t\twidth: cs.width,\n\t\t\t\tmargin: 0,\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0\n\t\t\t})\n\t\t\t.addClass(\"ui-resizable-ghost\")\n\t\t\t.addClass(typeof o.ghost === \"string\" ? o.ghost : \"\");\n\n\t\tthat.ghost.appendTo(that.helper);\n\n\t},\n\n\tresize: function() {\n\t\tvar that = $(this).resizable( \"instance\" );\n\t\tif (that.ghost) {\n\t\t\tthat.ghost.css({\n\t\t\t\tposition: \"relative\",\n\t\t\t\theight: that.size.height,\n\t\t\t\twidth: that.size.width\n\t\t\t});\n\t\t}\n\t},\n\n\tstop: function() {\n\t\tvar that = $(this).resizable( \"instance\" );\n\t\tif (that.ghost && that.helper) {\n\t\t\tthat.helper.get(0).removeChild(that.ghost.get(0));\n\t\t}\n\t}\n\n});\n\n$.ui.plugin.add(\"resizable\", \"grid\", {\n\n\tresize: function() {\n\t\tvar outerDimensions,\n\t\t\tthat = $(this).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tcs = that.size,\n\t\t\tos = that.originalSize,\n\t\t\top = that.originalPosition,\n\t\t\ta = that.axis,\n\t\t\tgrid = typeof o.grid === \"number\" ? [ o.grid, o.grid ] : o.grid,\n\t\t\tgridX = (grid[0] || 1),\n\t\t\tgridY = (grid[1] || 1),\n\t\t\tox = Math.round((cs.width - os.width) / gridX) * gridX,\n\t\t\toy = Math.round((cs.height - os.height) / gridY) * gridY,\n\t\t\tnewWidth = os.width + ox,\n\t\t\tnewHeight = os.height + oy,\n\t\t\tisMaxWidth = o.maxWidth && (o.maxWidth < newWidth),\n\t\t\tisMaxHeight = o.maxHeight && (o.maxHeight < newHeight),\n\t\t\tisMinWidth = o.minWidth && (o.minWidth > newWidth),\n\t\t\tisMinHeight = o.minHeight && (o.minHeight > newHeight);\n\n\t\to.grid = grid;\n\n\t\tif (isMinWidth) {\n\t\t\tnewWidth += gridX;\n\t\t}\n\t\tif (isMinHeight) {\n\t\t\tnewHeight += gridY;\n\t\t}\n\t\tif (isMaxWidth) {\n\t\t\tnewWidth -= gridX;\n\t\t}\n\t\tif (isMaxHeight) {\n\t\t\tnewHeight -= gridY;\n\t\t}\n\n\t\tif (/^(se|s|e)$/.test(a)) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t} else if (/^(ne)$/.test(a)) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t\tthat.position.top = op.top - oy;\n\t\t} else if (/^(sw)$/.test(a)) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t\tthat.position.left = op.left - ox;\n\t\t} else {\n\t\t\tif ( newHeight - gridY <= 0 || newWidth - gridX <= 0) {\n\t\t\t\touterDimensions = that._getPaddingPlusBorderDimensions( this );\n\t\t\t}\n\n\t\t\tif ( newHeight - gridY > 0 ) {\n\t\t\t\tthat.size.height = newHeight;\n\t\t\t\tthat.position.top = op.top - oy;\n\t\t\t} else {\n\t\t\t\tnewHeight = gridY - outerDimensions.height;\n\t\t\t\tthat.size.height = newHeight;\n\t\t\t\tthat.position.top = op.top + os.height - newHeight;\n\t\t\t}\n\t\t\tif ( newWidth - gridX > 0 ) {\n\t\t\t\tthat.size.width = newWidth;\n\t\t\t\tthat.position.left = op.left - ox;\n\t\t\t} else {\n\t\t\t\tnewWidth = gridX - outerDimensions.width;\n\t\t\t\tthat.size.width = newWidth;\n\t\t\t\tthat.position.left = op.left + os.width - newWidth;\n\t\t\t}\n\t\t}\n\t}\n\n});\n\nvar resizable = $.ui.resizable;\n\n\n/*!\n * jQuery UI Dialog 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/dialog/\n */\n\n\nvar dialog = $.widget( \"ui.dialog\", {\n\tversion: \"1.11.4\",\n\toptions: {\n\t\tappendTo: \"body\",\n\t\tautoOpen: true,\n\t\tbuttons: [],\n\t\tcloseOnEscape: true,\n\t\tcloseText: \"Close\",\n\t\tdialogClass: \"\",\n\t\tdraggable: true,\n\t\thide: null,\n\t\theight: \"auto\",\n\t\tmaxHeight: null,\n\t\tmaxWidth: null,\n\t\tminHeight: 150,\n\t\tminWidth: 150,\n\t\tmodal: false,\n\t\tposition: {\n\t\t\tmy: \"center\",\n\t\t\tat: \"center\",\n\t\t\tof: window,\n\t\t\tcollision: \"fit\",\n\t\t\t// Ensure the titlebar is always visible\n\t\t\tusing: function( pos ) {\n\t\t\t\tvar topOffset = $( this ).css( pos ).offset().top;\n\t\t\t\tif ( topOffset < 0 ) {\n\t\t\t\t\t$( this ).css( \"top\", pos.top - topOffset );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tresizable: true,\n\t\tshow: null,\n\t\ttitle: null,\n\t\twidth: 300,\n\n\t\t// callbacks\n\t\tbeforeClose: null,\n\t\tclose: null,\n\t\tdrag: null,\n\t\tdragStart: null,\n\t\tdragStop: null,\n\t\tfocus: null,\n\t\topen: null,\n\t\tresize: null,\n\t\tresizeStart: null,\n\t\tresizeStop: null\n\t},\n\n\tsizeRelatedOptions: {\n\t\tbuttons: true,\n\t\theight: true,\n\t\tmaxHeight: true,\n\t\tmaxWidth: true,\n\t\tminHeight: true,\n\t\tminWidth: true,\n\t\twidth: true\n\t},\n\n\tresizableRelatedOptions: {\n\t\tmaxHeight: true,\n\t\tmaxWidth: true,\n\t\tminHeight: true,\n\t\tminWidth: true\n\t},\n\n\t_create: function() {\n\t\tthis.originalCss = {\n\t\t\tdisplay: this.element[ 0 ].style.display,\n\t\t\twidth: this.element[ 0 ].style.width,\n\t\t\tminHeight: this.element[ 0 ].style.minHeight,\n\t\t\tmaxHeight: this.element[ 0 ].style.maxHeight,\n\t\t\theight: this.element[ 0 ].style.height\n\t\t};\n\t\tthis.originalPosition = {\n\t\t\tparent: this.element.parent(),\n\t\t\tindex: this.element.parent().children().index( this.element )\n\t\t};\n\t\tthis.originalTitle = this.element.attr( \"title\" );\n\t\tthis.options.title = this.options.title || this.originalTitle;\n\n\t\tthis._createWrapper();\n\n\t\tthis.element\n\t\t\t.show()\n\t\t\t.removeAttr( \"title\" )\n\t\t\t.addClass( \"ui-dialog-content ui-widget-content\" )\n\t\t\t.appendTo( this.uiDialog );\n\n\t\tthis._createTitlebar();\n\t\tthis._createButtonPane();\n\n\t\tif ( this.options.draggable && $.fn.draggable ) {\n\t\t\tthis._makeDraggable();\n\t\t}\n\t\tif ( this.options.resizable && $.fn.resizable ) {\n\t\t\tthis._makeResizable();\n\t\t}\n\n\t\tthis._isOpen = false;\n\n\t\tthis._trackFocus();\n\t},\n\n\t_init: function() {\n\t\tif ( this.options.autoOpen ) {\n\t\t\tthis.open();\n\t\t}\n\t},\n\n\t_appendTo: function() {\n\t\tvar element = this.options.appendTo;\n\t\tif ( element && (element.jquery || element.nodeType) ) {\n\t\t\treturn $( element );\n\t\t}\n\t\treturn this.document.find( element || \"body\" ).eq( 0 );\n\t},\n\n\t_destroy: function() {\n\t\tvar next,\n\t\t\toriginalPosition = this.originalPosition;\n\n\t\tthis._untrackInstance();\n\t\tthis._destroyOverlay();\n\n\t\tthis.element\n\t\t\t.removeUniqueId()\n\t\t\t.removeClass( \"ui-dialog-content ui-widget-content\" )\n\t\t\t.css( this.originalCss )\n\t\t\t// Without detaching first, the following becomes really slow\n\t\t\t.detach();\n\n\t\tthis.uiDialog.stop( true, true ).remove();\n\n\t\tif ( this.originalTitle ) {\n\t\t\tthis.element.attr( \"title\", this.originalTitle );\n\t\t}\n\n\t\tnext = originalPosition.parent.children().eq( originalPosition.index );\n\t\t// Don't try to place the dialog next to itself (#8613)\n\t\tif ( next.length && next[ 0 ] !== this.element[ 0 ] ) {\n\t\t\tnext.before( this.element );\n\t\t} else {\n\t\t\toriginalPosition.parent.append( this.element );\n\t\t}\n\t},\n\n\twidget: function() {\n\t\treturn this.uiDialog;\n\t},\n\n\tdisable: $.noop,\n\tenable: $.noop,\n\n\tclose: function( event ) {\n\t\tvar activeElement,\n\t\t\tthat = this;\n\n\t\tif ( !this._isOpen || this._trigger( \"beforeClose\", event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isOpen = false;\n\t\tthis._focusedElement = null;\n\t\tthis._destroyOverlay();\n\t\tthis._untrackInstance();\n\n\t\tif ( !this.opener.filter( \":focusable\" ).focus().length ) {\n\n\t\t\t// support: IE9\n\t\t\t// IE9 throws an \"Unspecified error\" accessing document.activeElement from an <iframe>\n\t\t\ttry {\n\t\t\t\tactiveElement = this.document[ 0 ].activeElement;\n\n\t\t\t\t// Support: IE9, IE10\n\t\t\t\t// If the <body> is blurred, IE will switch windows, see #4520\n\t\t\t\tif ( activeElement && activeElement.nodeName.toLowerCase() !== \"body\" ) {\n\n\t\t\t\t\t// Hiding a focused element doesn't trigger blur in WebKit\n\t\t\t\t\t// so in case we have nothing to focus on, explicitly blur the active element\n\t\t\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=47182\n\t\t\t\t\t$( activeElement ).blur();\n\t\t\t\t}\n\t\t\t} catch ( error ) {}\n\t\t}\n\n\t\tthis._hide( this.uiDialog, this.options.hide, function() {\n\t\t\tthat._trigger( \"close\", event );\n\t\t});\n\t},\n\n\tisOpen: function() {\n\t\treturn this._isOpen;\n\t},\n\n\tmoveToTop: function() {\n\t\tthis._moveToTop();\n\t},\n\n\t_moveToTop: function( event, silent ) {\n\t\tvar moved = false,\n\t\t\tzIndices = this.uiDialog.siblings( \".ui-front:visible\" ).map(function() {\n\t\t\t\treturn +$( this ).css( \"z-index\" );\n\t\t\t}).get(),\n\t\t\tzIndexMax = Math.max.apply( null, zIndices );\n\n\t\tif ( zIndexMax >= +this.uiDialog.css( \"z-index\" ) ) {\n\t\t\tthis.uiDialog.css( \"z-index\", zIndexMax + 1 );\n\t\t\tmoved = true;\n\t\t}\n\n\t\tif ( moved && !silent ) {\n\t\t\tthis._trigger( \"focus\", event );\n\t\t}\n\t\treturn moved;\n\t},\n\n\topen: function() {\n\t\tvar that = this;\n\t\tif ( this._isOpen ) {\n\t\t\tif ( this._moveToTop() ) {\n\t\t\t\tthis._focusTabbable();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isOpen = true;\n\t\tthis.opener = $( this.document[ 0 ].activeElement );\n\n\t\tthis._size();\n\t\tthis._position();\n\t\tthis._createOverlay();\n\t\tthis._moveToTop( null, true );\n\n\t\t// Ensure the overlay is moved to the top with the dialog, but only when\n\t\t// opening. The overlay shouldn't move after the dialog is open so that\n\t\t// modeless dialogs opened after the modal dialog stack properly.\n\t\tif ( this.overlay ) {\n\t\t\tthis.overlay.css( \"z-index\", this.uiDialog.css( \"z-index\" ) - 1 );\n\t\t}\n\n\t\tthis._show( this.uiDialog, this.options.show, function() {\n\t\t\tthat._focusTabbable();\n\t\t\tthat._trigger( \"focus\" );\n\t\t});\n\n\t\t// Track the dialog immediately upon openening in case a focus event\n\t\t// somehow occurs outside of the dialog before an element inside the\n\t\t// dialog is focused (#10152)\n\t\tthis._makeFocusTarget();\n\n\t\tthis._trigger( \"open\" );\n\t},\n\n\t_focusTabbable: function() {\n\t\t// Set focus to the first match:\n\t\t// 1. An element that was focused previously\n\t\t// 2. First element inside the dialog matching [autofocus]\n\t\t// 3. Tabbable element inside the content element\n\t\t// 4. Tabbable element inside the buttonpane\n\t\t// 5. The close button\n\t\t// 6. The dialog itself\n\t\tvar hasFocus = this._focusedElement;\n\t\tif ( !hasFocus ) {\n\t\t\thasFocus = this.element.find( \"[autofocus]\" );\n\t\t}\n\t\tif ( !hasFocus.length ) {\n\t\t\thasFocus = this.element.find( \":tabbable\" );\n\t\t}\n\t\tif ( !hasFocus.length ) {\n\t\t\thasFocus = this.uiDialogButtonPane.find( \":tabbable\" );\n\t\t}\n\t\tif ( !hasFocus.length ) {\n\t\t\thasFocus = this.uiDialogTitlebarClose.filter( \":tabbable\" );\n\t\t}\n\t\tif ( !hasFocus.length ) {\n\t\t\thasFocus = this.uiDialog;\n\t\t}\n\t\thasFocus.eq( 0 ).focus();\n\t},\n\n\t_keepFocus: function( event ) {\n\t\tfunction checkFocus() {\n\t\t\tvar activeElement = this.document[0].activeElement,\n\t\t\t\tisActive = this.uiDialog[0] === activeElement ||\n\t\t\t\t\t$.contains( this.uiDialog[0], activeElement );\n\t\t\tif ( !isActive ) {\n\t\t\t\tthis._focusTabbable();\n\t\t\t}\n\t\t}\n\t\tevent.preventDefault();\n\t\tcheckFocus.call( this );\n\t\t// support: IE\n\t\t// IE <= 8 doesn't prevent moving focus even with event.preventDefault()\n\t\t// so we check again later\n\t\tthis._delay( checkFocus );\n\t},\n\n\t_createWrapper: function() {\n\t\tthis.uiDialog = $(\"<div>\")\n\t\t\t.addClass( \"ui-dialog ui-widget ui-widget-content ui-corner-all ui-front \" +\n\t\t\t\tthis.options.dialogClass )\n\t\t\t.hide()\n\t\t\t.attr({\n\t\t\t\t// Setting tabIndex makes the div focusable\n\t\t\t\ttabIndex: -1,\n\t\t\t\trole: \"dialog\"\n\t\t\t})\n\t\t\t.appendTo( this._appendTo() );\n\n\t\tthis._on( this.uiDialog, {\n\t\t\tkeydown: function( event ) {\n\t\t\t\tif ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&\n\t\t\t\t\t\tevent.keyCode === $.ui.keyCode.ESCAPE ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.close( event );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// prevent tabbing out of dialogs\n\t\t\t\tif ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar tabbables = this.uiDialog.find( \":tabbable\" ),\n\t\t\t\t\tfirst = tabbables.filter( \":first\" ),\n\t\t\t\t\tlast = tabbables.filter( \":last\" );\n\n\t\t\t\tif ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) {\n\t\t\t\t\tthis._delay(function() {\n\t\t\t\t\t\tfirst.focus();\n\t\t\t\t\t});\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) {\n\t\t\t\t\tthis._delay(function() {\n\t\t\t\t\t\tlast.focus();\n\t\t\t\t\t});\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t},\n\t\t\tmousedown: function( event ) {\n\t\t\t\tif ( this._moveToTop( event ) ) {\n\t\t\t\t\tthis._focusTabbable();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// We assume that any existing aria-describedby attribute means\n\t\t// that the dialog content is marked up properly\n\t\t// otherwise we brute force the content as the description\n\t\tif ( !this.element.find( \"[aria-describedby]\" ).length ) {\n\t\t\tthis.uiDialog.attr({\n\t\t\t\t\"aria-describedby\": this.element.uniqueId().attr( \"id\" )\n\t\t\t});\n\t\t}\n\t},\n\n\t_createTitlebar: function() {\n\t\tvar uiDialogTitle;\n\n\t\tthis.uiDialogTitlebar = $( \"<div>\" )\n\t\t\t.addClass( \"ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix\" )\n\t\t\t.prependTo( this.uiDialog );\n\t\tthis._on( this.uiDialogTitlebar, {\n\t\t\tmousedown: function( event ) {\n\t\t\t\t// Don't prevent click on close button (#8838)\n\t\t\t\t// Focusing a dialog that is partially scrolled out of view\n\t\t\t\t// causes the browser to scroll it into view, preventing the click event\n\t\t\t\tif ( !$( event.target ).closest( \".ui-dialog-titlebar-close\" ) ) {\n\t\t\t\t\t// Dialog isn't getting focus when dragging (#8063)\n\t\t\t\t\tthis.uiDialog.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// support: IE\n\t\t// Use type=\"button\" to prevent enter keypresses in textboxes from closing the\n\t\t// dialog in IE (#9312)\n\t\tthis.uiDialogTitlebarClose = $( \"<button type='button'></button>\" )\n\t\t\t.button({\n\t\t\t\tlabel: this.options.closeText,\n\t\t\t\ticons: {\n\t\t\t\t\tprimary: \"ui-icon-closethick\"\n\t\t\t\t},\n\t\t\t\ttext: false\n\t\t\t})\n\t\t\t.addClass( \"ui-dialog-titlebar-close\" )\n\t\t\t.appendTo( this.uiDialogTitlebar );\n\t\tthis._on( this.uiDialogTitlebarClose, {\n\t\t\tclick: function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.close( event );\n\t\t\t}\n\t\t});\n\n\t\tuiDialogTitle = $( \"<span>\" )\n\t\t\t.uniqueId()\n\t\t\t.addClass( \"ui-dialog-title\" )\n\t\t\t.prependTo( this.uiDialogTitlebar );\n\t\tthis._title( uiDialogTitle );\n\n\t\tthis.uiDialog.attr({\n\t\t\t\"aria-labelledby\": uiDialogTitle.attr( \"id\" )\n\t\t});\n\t},\n\n\t_title: function( title ) {\n\t\tif ( !this.options.title ) {\n\t\t\ttitle.html( \" \" );\n\t\t}\n\t\ttitle.text( this.options.title );\n\t},\n\n\t_createButtonPane: function() {\n\t\tthis.uiDialogButtonPane = $( \"<div>\" )\n\t\t\t.addClass( \"ui-dialog-buttonpane ui-widget-content ui-helper-clearfix\" );\n\n\t\tthis.uiButtonSet = $( \"<div>\" )\n\t\t\t.addClass( \"ui-dialog-buttonset\" )\n\t\t\t.appendTo( this.uiDialogButtonPane );\n\n\t\tthis._createButtons();\n\t},\n\n\t_createButtons: function() {\n\t\tvar that = this,\n\t\t\tbuttons = this.options.buttons;\n\n\t\t// if we already have a button pane, remove it\n\t\tthis.uiDialogButtonPane.remove();\n\t\tthis.uiButtonSet.empty();\n\n\t\tif ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) {\n\t\t\tthis.uiDialog.removeClass( \"ui-dialog-buttons\" );\n\t\t\treturn;\n\t\t}\n\n\t\t$.each( buttons, function( name, props ) {\n\t\t\tvar click, buttonOptions;\n\t\t\tprops = $.isFunction( props ) ?\n\t\t\t\t{ click: props, text: name } :\n\t\t\t\tprops;\n\t\t\t// Default to a non-submitting button\n\t\t\tprops = $.extend( { type: \"button\" }, props );\n\t\t\t// Change the context for the click callback to be the main element\n\t\t\tclick = props.click;\n\t\t\tprops.click = function() {\n\t\t\t\tclick.apply( that.element[ 0 ], arguments );\n\t\t\t};\n\t\t\tbuttonOptions = {\n\t\t\t\ticons: props.icons,\n\t\t\t\ttext: props.showText\n\t\t\t};\n\t\t\tdelete props.icons;\n\t\t\tdelete props.showText;\n\t\t\t$( \"<button></button>\", props )\n\t\t\t\t.button( buttonOptions )\n\t\t\t\t.appendTo( that.uiButtonSet );\n\t\t});\n\t\tthis.uiDialog.addClass( \"ui-dialog-buttons\" );\n\t\tthis.uiDialogButtonPane.appendTo( this.uiDialog );\n\t},\n\n\t_makeDraggable: function() {\n\t\tvar that = this,\n\t\t\toptions = this.options;\n\n\t\tfunction filteredUi( ui ) {\n\t\t\treturn {\n\t\t\t\tposition: ui.position,\n\t\t\t\toffset: ui.offset\n\t\t\t};\n\t\t}\n\n\t\tthis.uiDialog.draggable({\n\t\t\tcancel: \".ui-dialog-content, .ui-dialog-titlebar-close\",\n\t\t\thandle: \".ui-dialog-titlebar\",\n\t\t\tcontainment: \"document\",\n\t\t\tstart: function( event, ui ) {\n\t\t\t\t$( this ).addClass( \"ui-dialog-dragging\" );\n\t\t\t\tthat._blockFrames();\n\t\t\t\tthat._trigger( \"dragStart\", event, filteredUi( ui ) );\n\t\t\t},\n\t\t\tdrag: function( event, ui ) {\n\t\t\t\tthat._trigger( \"drag\", event, filteredUi( ui ) );\n\t\t\t},\n\t\t\tstop: function( event, ui ) {\n\t\t\t\tvar left = ui.offset.left - that.document.scrollLeft(),\n\t\t\t\t\ttop = ui.offset.top - that.document.scrollTop();\n\n\t\t\t\toptions.position = {\n\t\t\t\t\tmy: \"left top\",\n\t\t\t\t\tat: \"left\" + (left >= 0 ? \"+\" : \"\") + left + \" \" +\n\t\t\t\t\t\t\"top\" + (top >= 0 ? \"+\" : \"\") + top,\n\t\t\t\t\tof: that.window\n\t\t\t\t};\n\t\t\t\t$( this ).removeClass( \"ui-dialog-dragging\" );\n\t\t\t\tthat._unblockFrames();\n\t\t\t\tthat._trigger( \"dragStop\", event, filteredUi( ui ) );\n\t\t\t}\n\t\t});\n\t},\n\n\t_makeResizable: function() {\n\t\tvar that = this,\n\t\t\toptions = this.options,\n\t\t\thandles = options.resizable,\n\t\t\t// .ui-resizable has position: relative defined in the stylesheet\n\t\t\t// but dialogs have to use absolute or fixed positioning\n\t\t\tposition = this.uiDialog.css(\"position\"),\n\t\t\tresizeHandles = typeof handles === \"string\" ?\n\t\t\t\thandles\t:\n\t\t\t\t\"n,e,s,w,se,sw,ne,nw\";\n\n\t\tfunction filteredUi( ui ) {\n\t\t\treturn {\n\t\t\t\toriginalPosition: ui.originalPosition,\n\t\t\t\toriginalSize: ui.originalSize,\n\t\t\t\tposition: ui.position,\n\t\t\t\tsize: ui.size\n\t\t\t};\n\t\t}\n\n\t\tthis.uiDialog.resizable({\n\t\t\tcancel: \".ui-dialog-content\",\n\t\t\tcontainment: \"document\",\n\t\t\talsoResize: this.element,\n\t\t\tmaxWidth: options.maxWidth,\n\t\t\tmaxHeight: options.maxHeight,\n\t\t\tminWidth: options.minWidth,\n\t\t\tminHeight: this._minHeight(),\n\t\t\thandles: resizeHandles,\n\t\t\tstart: function( event, ui ) {\n\t\t\t\t$( this ).addClass( \"ui-dialog-resizing\" );\n\t\t\t\tthat._blockFrames();\n\t\t\t\tthat._trigger( \"resizeStart\", event, filteredUi( ui ) );\n\t\t\t},\n\t\t\tresize: function( event, ui ) {\n\t\t\t\tthat._trigger( \"resize\", event, filteredUi( ui ) );\n\t\t\t},\n\t\t\tstop: function( event, ui ) {\n\t\t\t\tvar offset = that.uiDialog.offset(),\n\t\t\t\t\tleft = offset.left - that.document.scrollLeft(),\n\t\t\t\t\ttop = offset.top - that.document.scrollTop();\n\n\t\t\t\toptions.height = that.uiDialog.height();\n\t\t\t\toptions.width = that.uiDialog.width();\n\t\t\t\toptions.position = {\n\t\t\t\t\tmy: \"left top\",\n\t\t\t\t\tat: \"left\" + (left >= 0 ? \"+\" : \"\") + left + \" \" +\n\t\t\t\t\t\t\"top\" + (top >= 0 ? \"+\" : \"\") + top,\n\t\t\t\t\tof: that.window\n\t\t\t\t};\n\t\t\t\t$( this ).removeClass( \"ui-dialog-resizing\" );\n\t\t\t\tthat._unblockFrames();\n\t\t\t\tthat._trigger( \"resizeStop\", event, filteredUi( ui ) );\n\t\t\t}\n\t\t})\n\t\t.css( \"position\", position );\n\t},\n\n\t_trackFocus: function() {\n\t\tthis._on( this.widget(), {\n\t\t\tfocusin: function( event ) {\n\t\t\t\tthis._makeFocusTarget();\n\t\t\t\tthis._focusedElement = $( event.target );\n\t\t\t}\n\t\t});\n\t},\n\n\t_makeFocusTarget: function() {\n\t\tthis._untrackInstance();\n\t\tthis._trackingInstances().unshift( this );\n\t},\n\n\t_untrackInstance: function() {\n\t\tvar instances = this._trackingInstances(),\n\t\t\texists = $.inArray( this, instances );\n\t\tif ( exists !== -1 ) {\n\t\t\tinstances.splice( exists, 1 );\n\t\t}\n\t},\n\n\t_trackingInstances: function() {\n\t\tvar instances = this.document.data( \"ui-dialog-instances\" );\n\t\tif ( !instances ) {\n\t\t\tinstances = [];\n\t\t\tthis.document.data( \"ui-dialog-instances\", instances );\n\t\t}\n\t\treturn instances;\n\t},\n\n\t_minHeight: function() {\n\t\tvar options = this.options;\n\n\t\treturn options.height === \"auto\" ?\n\t\t\toptions.minHeight :\n\t\t\tMath.min( options.minHeight, options.height );\n\t},\n\n\t_position: function() {\n\t\t// Need to show the dialog to get the actual offset in the position plugin\n\t\tvar isVisible = this.uiDialog.is( \":visible\" );\n\t\tif ( !isVisible ) {\n\t\t\tthis.uiDialog.show();\n\t\t}\n\t\tthis.uiDialog.position( this.options.position );\n\t\tif ( !isVisible ) {\n\t\t\tthis.uiDialog.hide();\n\t\t}\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar that = this,\n\t\t\tresize = false,\n\t\t\tresizableOptions = {};\n\n\t\t$.each( options, function( key, value ) {\n\t\t\tthat._setOption( key, value );\n\n\t\t\tif ( key in that.sizeRelatedOptions ) {\n\t\t\t\tresize = true;\n\t\t\t}\n\t\t\tif ( key in that.resizableRelatedOptions ) {\n\t\t\t\tresizableOptions[ key ] = value;\n\t\t\t}\n\t\t});\n\n\t\tif ( resize ) {\n\t\t\tthis._size();\n\t\t\tthis._position();\n\t\t}\n\t\tif ( this.uiDialog.is( \":data(ui-resizable)\" ) ) {\n\t\t\tthis.uiDialog.resizable( \"option\", resizableOptions );\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tvar isDraggable, isResizable,\n\t\t\tuiDialog = this.uiDialog;\n\n\t\tif ( key === \"dialogClass\" ) {\n\t\t\tuiDialog\n\t\t\t\t.removeClass( this.options.dialogClass )\n\t\t\t\t.addClass( value );\n\t\t}\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"appendTo\" ) {\n\t\t\tthis.uiDialog.appendTo( this._appendTo() );\n\t\t}\n\n\t\tif ( key === \"buttons\" ) {\n\t\t\tthis._createButtons();\n\t\t}\n\n\t\tif ( key === \"closeText\" ) {\n\t\t\tthis.uiDialogTitlebarClose.button({\n\t\t\t\t// Ensure that we always pass a string\n\t\t\t\tlabel: \"\" + value\n\t\t\t});\n\t\t}\n\n\t\tif ( key === \"draggable\" ) {\n\t\t\tisDraggable = uiDialog.is( \":data(ui-draggable)\" );\n\t\t\tif ( isDraggable && !value ) {\n\t\t\t\tuiDialog.draggable( \"destroy\" );\n\t\t\t}\n\n\t\t\tif ( !isDraggable && value ) {\n\t\t\t\tthis._makeDraggable();\n\t\t\t}\n\t\t}\n\n\t\tif ( key === \"position\" ) {\n\t\t\tthis._position();\n\t\t}\n\n\t\tif ( key === \"resizable\" ) {\n\t\t\t// currently resizable, becoming non-resizable\n\t\t\tisResizable = uiDialog.is( \":data(ui-resizable)\" );\n\t\t\tif ( isResizable && !value ) {\n\t\t\t\tuiDialog.resizable( \"destroy\" );\n\t\t\t}\n\n\t\t\t// currently resizable, changing handles\n\t\t\tif ( isResizable && typeof value === \"string\" ) {\n\t\t\t\tuiDialog.resizable( \"option\", \"handles\", value );\n\t\t\t}\n\n\t\t\t// currently non-resizable, becoming resizable\n\t\t\tif ( !isResizable && value !== false ) {\n\t\t\t\tthis._makeResizable();\n\t\t\t}\n\t\t}\n\n\t\tif ( key === \"title\" ) {\n\t\t\tthis._title( this.uiDialogTitlebar.find( \".ui-dialog-title\" ) );\n\t\t}\n\t},\n\n\t_size: function() {\n\t\t// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content\n\t\t// divs will both have width and height set, so we need to reset them\n\t\tvar nonContentHeight, minContentHeight, maxContentHeight,\n\t\t\toptions = this.options;\n\n\t\t// Reset content sizing\n\t\tthis.element.show().css({\n\t\t\twidth: \"auto\",\n\t\t\tminHeight: 0,\n\t\t\tmaxHeight: \"none\",\n\t\t\theight: 0\n\t\t});\n\n\t\tif ( options.minWidth > options.width ) {\n\t\t\toptions.width = options.minWidth;\n\t\t}\n\n\t\t// reset wrapper sizing\n\t\t// determine the height of all the non-content elements\n\t\tnonContentHeight = this.uiDialog.css({\n\t\t\t\theight: \"auto\",\n\t\t\t\twidth: options.width\n\t\t\t})\n\t\t\t.outerHeight();\n\t\tminContentHeight = Math.max( 0, options.minHeight - nonContentHeight );\n\t\tmaxContentHeight = typeof options.maxHeight === \"number\" ?\n\t\t\tMath.max( 0, options.maxHeight - nonContentHeight ) :\n\t\t\t\"none\";\n\n\t\tif ( options.height === \"auto\" ) {\n\t\t\tthis.element.css({\n\t\t\t\tminHeight: minContentHeight,\n\t\t\t\tmaxHeight: maxContentHeight,\n\t\t\t\theight: \"auto\"\n\t\t\t});\n\t\t} else {\n\t\t\tthis.element.height( Math.max( 0, options.height - nonContentHeight ) );\n\t\t}\n\n\t\tif ( this.uiDialog.is( \":data(ui-resizable)\" ) ) {\n\t\t\tthis.uiDialog.resizable( \"option\", \"minHeight\", this._minHeight() );\n\t\t}\n\t},\n\n\t_blockFrames: function() {\n\t\tthis.iframeBlocks = this.document.find( \"iframe\" ).map(function() {\n\t\t\tvar iframe = $( this );\n\n\t\t\treturn $( \"<div>\" )\n\t\t\t\t.css({\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\twidth: iframe.outerWidth(),\n\t\t\t\t\theight: iframe.outerHeight()\n\t\t\t\t})\n\t\t\t\t.appendTo( iframe.parent() )\n\t\t\t\t.offset( iframe.offset() )[0];\n\t\t});\n\t},\n\n\t_unblockFrames: function() {\n\t\tif ( this.iframeBlocks ) {\n\t\t\tthis.iframeBlocks.remove();\n\t\t\tdelete this.iframeBlocks;\n\t\t}\n\t},\n\n\t_allowInteraction: function( event ) {\n\t\tif ( $( event.target ).closest( \".ui-dialog\" ).length ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// TODO: Remove hack when datepicker implements\n\t\t// the .ui-front logic (#8989)\n\t\treturn !!$( event.target ).closest( \".ui-datepicker\" ).length;\n\t},\n\n\t_createOverlay: function() {\n\t\tif ( !this.options.modal ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We use a delay in case the overlay is created from an\n\t\t// event that we're going to be cancelling (#2804)\n\t\tvar isOpening = true;\n\t\tthis._delay(function() {\n\t\t\tisOpening = false;\n\t\t});\n\n\t\tif ( !this.document.data( \"ui-dialog-overlays\" ) ) {\n\n\t\t\t// Prevent use of anchors and inputs\n\t\t\t// Using _on() for an event handler shared across many instances is\n\t\t\t// safe because the dialogs stack and must be closed in reverse order\n\t\t\tthis._on( this.document, {\n\t\t\t\tfocusin: function( event ) {\n\t\t\t\t\tif ( isOpening ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !this._allowInteraction( event ) ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis._trackingInstances()[ 0 ]._focusTabbable();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.overlay = $( \"<div>\" )\n\t\t\t.addClass( \"ui-widget-overlay ui-front\" )\n\t\t\t.appendTo( this._appendTo() );\n\t\tthis._on( this.overlay, {\n\t\t\tmousedown: \"_keepFocus\"\n\t\t});\n\t\tthis.document.data( \"ui-dialog-overlays\",\n\t\t\t(this.document.data( \"ui-dialog-overlays\" ) || 0) + 1 );\n\t},\n\n\t_destroyOverlay: function() {\n\t\tif ( !this.options.modal ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.overlay ) {\n\t\t\tvar overlays = this.document.data( \"ui-dialog-overlays\" ) - 1;\n\n\t\t\tif ( !overlays ) {\n\t\t\t\tthis.document\n\t\t\t\t\t.unbind( \"focusin\" )\n\t\t\t\t\t.removeData( \"ui-dialog-overlays\" );\n\t\t\t} else {\n\t\t\t\tthis.document.data( \"ui-dialog-overlays\", overlays );\n\t\t\t}\n\n\t\t\tthis.overlay.remove();\n\t\t\tthis.overlay = null;\n\t\t}\n\t}\n});\n\n\n/*!\n * jQuery UI Droppable 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/droppable/\n */\n\n\n$.widget( \"ui.droppable\", {\n\tversion: \"1.11.4\",\n\twidgetEventPrefix: \"drop\",\n\toptions: {\n\t\taccept: \"*\",\n\t\tactiveClass: false,\n\t\taddClasses: true,\n\t\tgreedy: false,\n\t\thoverClass: false,\n\t\tscope: \"default\",\n\t\ttolerance: \"intersect\",\n\n\t\t// callbacks\n\t\tactivate: null,\n\t\tdeactivate: null,\n\t\tdrop: null,\n\t\tout: null,\n\t\tover: null\n\t},\n\t_create: function() {\n\n\t\tvar proportions,\n\t\t\to = this.options,\n\t\t\taccept = o.accept;\n\n\t\tthis.isover = false;\n\t\tthis.isout = true;\n\n\t\tthis.accept = $.isFunction( accept ) ? accept : function( d ) {\n\t\t\treturn d.is( accept );\n\t\t};\n\n\t\tthis.proportions = function( /* valueToWrite */ ) {\n\t\t\tif ( arguments.length ) {\n\t\t\t\t// Store the droppable's proportions\n\t\t\t\tproportions = arguments[ 0 ];\n\t\t\t} else {\n\t\t\t\t// Retrieve or derive the droppable's proportions\n\t\t\t\treturn proportions ?\n\t\t\t\t\tproportions :\n\t\t\t\t\tproportions = {\n\t\t\t\t\t\twidth: this.element[ 0 ].offsetWidth,\n\t\t\t\t\t\theight: this.element[ 0 ].offsetHeight\n\t\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\tthis._addToManager( o.scope );\n\n\t\to.addClasses && this.element.addClass( \"ui-droppable\" );\n\n\t},\n\n\t_addToManager: function( scope ) {\n\t\t// Add the reference and positions to the manager\n\t\t$.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || [];\n\t\t$.ui.ddmanager.droppables[ scope ].push( this );\n\t},\n\n\t_splice: function( drop ) {\n\t\tvar i = 0;\n\t\tfor ( ; i < drop.length; i++ ) {\n\t\t\tif ( drop[ i ] === this ) {\n\t\t\t\tdrop.splice( i, 1 );\n\t\t\t}\n\t\t}\n\t},\n\n\t_destroy: function() {\n\t\tvar drop = $.ui.ddmanager.droppables[ this.options.scope ];\n\n\t\tthis._splice( drop );\n\n\t\tthis.element.removeClass( \"ui-droppable ui-droppable-disabled\" );\n\t},\n\n\t_setOption: function( key, value ) {\n\n\t\tif ( key === \"accept\" ) {\n\t\t\tthis.accept = $.isFunction( value ) ? value : function( d ) {\n\t\t\t\treturn d.is( value );\n\t\t\t};\n\t\t} else if ( key === \"scope\" ) {\n\t\t\tvar drop = $.ui.ddmanager.droppables[ this.options.scope ];\n\n\t\t\tthis._splice( drop );\n\t\t\tthis._addToManager( value );\n\t\t}\n\n\t\tthis._super( key, value );\n\t},\n\n\t_activate: function( event ) {\n\t\tvar draggable = $.ui.ddmanager.current;\n\t\tif ( this.options.activeClass ) {\n\t\t\tthis.element.addClass( this.options.activeClass );\n\t\t}\n\t\tif ( draggable ){\n\t\t\tthis._trigger( \"activate\", event, this.ui( draggable ) );\n\t\t}\n\t},\n\n\t_deactivate: function( event ) {\n\t\tvar draggable = $.ui.ddmanager.current;\n\t\tif ( this.options.activeClass ) {\n\t\t\tthis.element.removeClass( this.options.activeClass );\n\t\t}\n\t\tif ( draggable ){\n\t\t\tthis._trigger( \"deactivate\", event, this.ui( draggable ) );\n\t\t}\n\t},\n\n\t_over: function( event ) {\n\n\t\tvar draggable = $.ui.ddmanager.current;\n\n\t\t// Bail if draggable and droppable are same element\n\t\tif ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {\n\t\t\tif ( this.options.hoverClass ) {\n\t\t\t\tthis.element.addClass( this.options.hoverClass );\n\t\t\t}\n\t\t\tthis._trigger( \"over\", event, this.ui( draggable ) );\n\t\t}\n\n\t},\n\n\t_out: function( event ) {\n\n\t\tvar draggable = $.ui.ddmanager.current;\n\n\t\t// Bail if draggable and droppable are same element\n\t\tif ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {\n\t\t\tif ( this.options.hoverClass ) {\n\t\t\t\tthis.element.removeClass( this.options.hoverClass );\n\t\t\t}\n\t\t\tthis._trigger( \"out\", event, this.ui( draggable ) );\n\t\t}\n\n\t},\n\n\t_drop: function( event, custom ) {\n\n\t\tvar draggable = custom || $.ui.ddmanager.current,\n\t\t\tchildrenIntersection = false;\n\n\t\t// Bail if draggable and droppable are same element\n\t\tif ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.element.find( \":data(ui-droppable)\" ).not( \".ui-draggable-dragging\" ).each(function() {\n\t\t\tvar inst = $( this ).droppable( \"instance\" );\n\t\t\tif (\n\t\t\t\tinst.options.greedy &&\n\t\t\t\t!inst.options.disabled &&\n\t\t\t\tinst.options.scope === draggable.options.scope &&\n\t\t\t\tinst.accept.call( inst.element[ 0 ], ( draggable.currentItem || draggable.element ) ) &&\n\t\t\t\t$.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance, event )\n\t\t\t) { childrenIntersection = true; return false; }\n\t\t});\n\t\tif ( childrenIntersection ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {\n\t\t\tif ( this.options.activeClass ) {\n\t\t\t\tthis.element.removeClass( this.options.activeClass );\n\t\t\t}\n\t\t\tif ( this.options.hoverClass ) {\n\t\t\t\tthis.element.removeClass( this.options.hoverClass );\n\t\t\t}\n\t\t\tthis._trigger( \"drop\", event, this.ui( draggable ) );\n\t\t\treturn this.element;\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tui: function( c ) {\n\t\treturn {\n\t\t\tdraggable: ( c.currentItem || c.element ),\n\t\t\thelper: c.helper,\n\t\t\tposition: c.position,\n\t\t\toffset: c.positionAbs\n\t\t};\n\t}\n\n});\n\n$.ui.intersect = (function() {\n\tfunction isOverAxis( x, reference, size ) {\n\t\treturn ( x >= reference ) && ( x < ( reference + size ) );\n\t}\n\n\treturn function( draggable, droppable, toleranceMode, event ) {\n\n\t\tif ( !droppable.offset ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar x1 = ( draggable.positionAbs || draggable.position.absolute ).left + draggable.margins.left,\n\t\t\ty1 = ( draggable.positionAbs || draggable.position.absolute ).top + draggable.margins.top,\n\t\t\tx2 = x1 + draggable.helperProportions.width,\n\t\t\ty2 = y1 + draggable.helperProportions.height,\n\t\t\tl = droppable.offset.left,\n\t\t\tt = droppable.offset.top,\n\t\t\tr = l + droppable.proportions().width,\n\t\t\tb = t + droppable.proportions().height;\n\n\t\tswitch ( toleranceMode ) {\n\t\tcase \"fit\":\n\t\t\treturn ( l <= x1 && x2 <= r && t <= y1 && y2 <= b );\n\t\tcase \"intersect\":\n\t\t\treturn ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half\n\t\t\t\tx2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half\n\t\t\t\tt < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half\n\t\t\t\ty2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half\n\t\tcase \"pointer\":\n\t\t\treturn isOverAxis( event.pageY, t, droppable.proportions().height ) && isOverAxis( event.pageX, l, droppable.proportions().width );\n\t\tcase \"touch\":\n\t\t\treturn (\n\t\t\t\t( y1 >= t && y1 <= b ) || // Top edge touching\n\t\t\t\t( y2 >= t && y2 <= b ) || // Bottom edge touching\n\t\t\t\t( y1 < t && y2 > b ) // Surrounded vertically\n\t\t\t) && (\n\t\t\t\t( x1 >= l && x1 <= r ) || // Left edge touching\n\t\t\t\t( x2 >= l && x2 <= r ) || // Right edge touching\n\t\t\t\t( x1 < l && x2 > r ) // Surrounded horizontally\n\t\t\t);\n\t\tdefault:\n\t\t\treturn false;\n\t\t}\n\t};\n})();\n\n/*\n\tThis manager tracks offsets of draggables and droppables\n*/\n$.ui.ddmanager = {\n\tcurrent: null,\n\tdroppables: { \"default\": [] },\n\tprepareOffsets: function( t, event ) {\n\n\t\tvar i, j,\n\t\t\tm = $.ui.ddmanager.droppables[ t.options.scope ] || [],\n\t\t\ttype = event ? event.type : null, // workaround for #2317\n\t\t\tlist = ( t.currentItem || t.element ).find( \":data(ui-droppable)\" ).addBack();\n\n\t\tdroppablesLoop: for ( i = 0; i < m.length; i++ ) {\n\n\t\t\t// No disabled and non-accepted\n\t\t\tif ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ], ( t.currentItem || t.element ) ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Filter out elements in the current dragged item\n\t\t\tfor ( j = 0; j < list.length; j++ ) {\n\t\t\t\tif ( list[ j ] === m[ i ].element[ 0 ] ) {\n\t\t\t\t\tm[ i ].proportions().height = 0;\n\t\t\t\t\tcontinue droppablesLoop;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tm[ i ].visible = m[ i ].element.css( \"display\" ) !== \"none\";\n\t\t\tif ( !m[ i ].visible ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Activate the droppable if used directly from draggables\n\t\t\tif ( type === \"mousedown\" ) {\n\t\t\t\tm[ i ]._activate.call( m[ i ], event );\n\t\t\t}\n\n\t\t\tm[ i ].offset = m[ i ].element.offset();\n\t\t\tm[ i ].proportions({ width: m[ i ].element[ 0 ].offsetWidth, height: m[ i ].element[ 0 ].offsetHeight });\n\n\t\t}\n\n\t},\n\tdrop: function( draggable, event ) {\n\n\t\tvar dropped = false;\n\t\t// Create a copy of the droppables in case the list changes during the drop (#9116)\n\t\t$.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() {\n\n\t\t\tif ( !this.options ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance, event ) ) {\n\t\t\t\tdropped = this._drop.call( this, event ) || dropped;\n\t\t\t}\n\n\t\t\tif ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {\n\t\t\t\tthis.isout = true;\n\t\t\t\tthis.isover = false;\n\t\t\t\tthis._deactivate.call( this, event );\n\t\t\t}\n\n\t\t});\n\t\treturn dropped;\n\n\t},\n\tdragStart: function( draggable, event ) {\n\t\t// Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)\n\t\tdraggable.element.parentsUntil( \"body\" ).bind( \"scroll.droppable\", function() {\n\t\t\tif ( !draggable.options.refreshPositions ) {\n\t\t\t\t$.ui.ddmanager.prepareOffsets( draggable, event );\n\t\t\t}\n\t\t});\n\t},\n\tdrag: function( draggable, event ) {\n\n\t\t// If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.\n\t\tif ( draggable.options.refreshPositions ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( draggable, event );\n\t\t}\n\n\t\t// Run through all droppables and check their positions based on specific tolerance options\n\t\t$.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() {\n\n\t\t\tif ( this.options.disabled || this.greedyChild || !this.visible ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar parentInstance, scope, parent,\n\t\t\t\tintersects = $.ui.intersect( draggable, this, this.options.tolerance, event ),\n\t\t\t\tc = !intersects && this.isover ? \"isout\" : ( intersects && !this.isover ? \"isover\" : null );\n\t\t\tif ( !c ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.options.greedy ) {\n\t\t\t\t// find droppable parents with same scope\n\t\t\t\tscope = this.options.scope;\n\t\t\t\tparent = this.element.parents( \":data(ui-droppable)\" ).filter(function() {\n\t\t\t\t\treturn $( this ).droppable( \"instance\" ).options.scope === scope;\n\t\t\t\t});\n\n\t\t\t\tif ( parent.length ) {\n\t\t\t\t\tparentInstance = $( parent[ 0 ] ).droppable( \"instance\" );\n\t\t\t\t\tparentInstance.greedyChild = ( c === \"isover\" );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// we just moved into a greedy child\n\t\t\tif ( parentInstance && c === \"isover\" ) {\n\t\t\t\tparentInstance.isover = false;\n\t\t\t\tparentInstance.isout = true;\n\t\t\t\tparentInstance._out.call( parentInstance, event );\n\t\t\t}\n\n\t\t\tthis[ c ] = true;\n\t\t\tthis[c === \"isout\" ? \"isover\" : \"isout\"] = false;\n\t\t\tthis[c === \"isover\" ? \"_over\" : \"_out\"].call( this, event );\n\n\t\t\t// we just moved out of a greedy child\n\t\t\tif ( parentInstance && c === \"isout\" ) {\n\t\t\t\tparentInstance.isout = false;\n\t\t\t\tparentInstance.isover = true;\n\t\t\t\tparentInstance._over.call( parentInstance, event );\n\t\t\t}\n\t\t});\n\n\t},\n\tdragStop: function( draggable, event ) {\n\t\tdraggable.element.parentsUntil( \"body\" ).unbind( \"scroll.droppable\" );\n\t\t// Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)\n\t\tif ( !draggable.options.refreshPositions ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( draggable, event );\n\t\t}\n\t}\n};\n\nvar droppable = $.ui.droppable;\n\n\n/*!\n * jQuery UI Effects 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/effects-core/\n */\n\n\nvar dataSpace = \"ui-effects-\",\n\n\t// Create a local jQuery because jQuery Color relies on it and the\n\t// global may not exist with AMD and a custom build (#10199)\n\tjQuery = $;\n\n$.effects = {\n\teffect: {}\n};\n\n/*!\n * jQuery Color Animations v2.1.2\n * https://github.com/jquery/jquery-color\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * Date: Wed Jan 16 08:47:09 2013 -0600\n */\n(function( jQuery, undefined ) {\n\n\tvar stepHooks = \"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\",\n\n\t// plusequals test for += 100 -= 100\n\trplusequals = /^([\\-+])=\\s*(\\d+\\.?\\d*)/,\n\t// a set of RE's that can match strings and generate color tuples.\n\tstringParsers = [ {\n\t\t\tre: /rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ],\n\t\t\t\t\texecResult[ 3 ],\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ] * 2.55,\n\t\t\t\t\texecResult[ 2 ] * 2.55,\n\t\t\t\t\texecResult[ 3 ] * 2.55,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\t// this regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ], 16 )\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\t// this regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9])([a-f0-9])([a-f0-9])/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ] + execResult[ 3 ], 16 )\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tspace: \"hsla\",\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ] / 100,\n\t\t\t\t\texecResult[ 3 ] / 100,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t} ],\n\n\t// jQuery.Color( )\n\tcolor = jQuery.Color = function( color, green, blue, alpha ) {\n\t\treturn new jQuery.Color.fn.parse( color, green, blue, alpha );\n\t},\n\tspaces = {\n\t\trgba: {\n\t\t\tprops: {\n\t\t\t\tred: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tgreen: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tblue: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thsla: {\n\t\t\tprops: {\n\t\t\t\thue: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"degrees\"\n\t\t\t\t},\n\t\t\t\tsaturation: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t},\n\t\t\t\tlightness: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tpropTypes = {\n\t\t\"byte\": {\n\t\t\tfloor: true,\n\t\t\tmax: 255\n\t\t},\n\t\t\"percent\": {\n\t\t\tmax: 1\n\t\t},\n\t\t\"degrees\": {\n\t\t\tmod: 360,\n\t\t\tfloor: true\n\t\t}\n\t},\n\tsupport = color.support = {},\n\n\t// element for support tests\n\tsupportElem = jQuery( \"<p>\" )[ 0 ],\n\n\t// colors = jQuery.Color.names\n\tcolors,\n\n\t// local aliases of functions called often\n\teach = jQuery.each;\n\n// determine rgba support immediately\nsupportElem.style.cssText = \"background-color:rgba(1,1,1,.5)\";\nsupport.rgba = supportElem.style.backgroundColor.indexOf( \"rgba\" ) > -1;\n\n// define cache name and alpha properties\n// for rgba and hsla spaces\neach( spaces, function( spaceName, space ) {\n\tspace.cache = \"_\" + spaceName;\n\tspace.props.alpha = {\n\t\tidx: 3,\n\t\ttype: \"percent\",\n\t\tdef: 1\n\t};\n});\n\nfunction clamp( value, prop, allowEmpty ) {\n\tvar type = propTypes[ prop.type ] || {};\n\n\tif ( value == null ) {\n\t\treturn (allowEmpty || !prop.def) ? null : prop.def;\n\t}\n\n\t// ~~ is an short way of doing floor for positive numbers\n\tvalue = type.floor ? ~~value : parseFloat( value );\n\n\t// IE will pass in empty strings as value for alpha,\n\t// which will hit this case\n\tif ( isNaN( value ) ) {\n\t\treturn prop.def;\n\t}\n\n\tif ( type.mod ) {\n\t\t// we add mod before modding to make sure that negatives values\n\t\t// get converted properly: -10 -> 350\n\t\treturn (value + type.mod) % type.mod;\n\t}\n\n\t// for now all property types without mod have min and max\n\treturn 0 > value ? 0 : type.max < value ? type.max : value;\n}\n\nfunction stringParse( string ) {\n\tvar inst = color(),\n\t\trgba = inst._rgba = [];\n\n\tstring = string.toLowerCase();\n\n\teach( stringParsers, function( i, parser ) {\n\t\tvar parsed,\n\t\t\tmatch = parser.re.exec( string ),\n\t\t\tvalues = match && parser.parse( match ),\n\t\t\tspaceName = parser.space || \"rgba\";\n\n\t\tif ( values ) {\n\t\t\tparsed = inst[ spaceName ]( values );\n\n\t\t\t// if this was an rgba parse the assignment might happen twice\n\t\t\t// oh well....\n\t\t\tinst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];\n\t\t\trgba = inst._rgba = parsed._rgba;\n\n\t\t\t// exit each( stringParsers ) here because we matched\n\t\t\treturn false;\n\t\t}\n\t});\n\n\t// Found a stringParser that handled it\n\tif ( rgba.length ) {\n\n\t\t// if this came from a parsed string, force \"transparent\" when alpha is 0\n\t\t// chrome, (and maybe others) return \"transparent\" as rgba(0,0,0,0)\n\t\tif ( rgba.join() === \"0,0,0,0\" ) {\n\t\t\tjQuery.extend( rgba, colors.transparent );\n\t\t}\n\t\treturn inst;\n\t}\n\n\t// named colors\n\treturn colors[ string ];\n}\n\ncolor.fn = jQuery.extend( color.prototype, {\n\tparse: function( red, green, blue, alpha ) {\n\t\tif ( red === undefined ) {\n\t\t\tthis._rgba = [ null, null, null, null ];\n\t\t\treturn this;\n\t\t}\n\t\tif ( red.jquery || red.nodeType ) {\n\t\t\tred = jQuery( red ).css( green );\n\t\t\tgreen = undefined;\n\t\t}\n\n\t\tvar inst = this,\n\t\t\ttype = jQuery.type( red ),\n\t\t\trgba = this._rgba = [];\n\n\t\t// more than 1 argument specified - assume ( red, green, blue, alpha )\n\t\tif ( green !== undefined ) {\n\t\t\tred = [ red, green, blue, alpha ];\n\t\t\ttype = \"array\";\n\t\t}\n\n\t\tif ( type === \"string\" ) {\n\t\t\treturn this.parse( stringParse( red ) || colors._default );\n\t\t}\n\n\t\tif ( type === \"array\" ) {\n\t\t\teach( spaces.rgba.props, function( key, prop ) {\n\t\t\t\trgba[ prop.idx ] = clamp( red[ prop.idx ], prop );\n\t\t\t});\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( type === \"object\" ) {\n\t\t\tif ( red instanceof color ) {\n\t\t\t\teach( spaces, function( spaceName, space ) {\n\t\t\t\t\tif ( red[ space.cache ] ) {\n\t\t\t\t\t\tinst[ space.cache ] = red[ space.cache ].slice();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\teach( spaces, function( spaceName, space ) {\n\t\t\t\t\tvar cache = space.cache;\n\t\t\t\t\teach( space.props, function( key, prop ) {\n\n\t\t\t\t\t\t// if the cache doesn't exist, and we know how to convert\n\t\t\t\t\t\tif ( !inst[ cache ] && space.to ) {\n\n\t\t\t\t\t\t\t// if the value was null, we don't need to copy it\n\t\t\t\t\t\t\t// if the key was alpha, we don't need to copy it either\n\t\t\t\t\t\t\tif ( key === \"alpha\" || red[ key ] == null ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinst[ cache ] = space.to( inst._rgba );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// this is the only case where we allow nulls for ALL properties.\n\t\t\t\t\t\t// call clamp with alwaysAllowEmpty\n\t\t\t\t\t\tinst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );\n\t\t\t\t\t});\n\n\t\t\t\t\t// everything defined but alpha?\n\t\t\t\t\tif ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {\n\t\t\t\t\t\t// use the default of 1\n\t\t\t\t\t\tinst[ cache ][ 3 ] = 1;\n\t\t\t\t\t\tif ( space.from ) {\n\t\t\t\t\t\t\tinst._rgba = space.from( inst[ cache ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t},\n\tis: function( compare ) {\n\t\tvar is = color( compare ),\n\t\t\tsame = true,\n\t\t\tinst = this;\n\n\t\teach( spaces, function( _, space ) {\n\t\t\tvar localCache,\n\t\t\t\tisCache = is[ space.cache ];\n\t\t\tif (isCache) {\n\t\t\t\tlocalCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];\n\t\t\t\teach( space.props, function( _, prop ) {\n\t\t\t\t\tif ( isCache[ prop.idx ] != null ) {\n\t\t\t\t\t\tsame = ( isCache[ prop.idx ] === localCache[ prop.idx ] );\n\t\t\t\t\t\treturn same;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn same;\n\t\t});\n\t\treturn same;\n\t},\n\t_space: function() {\n\t\tvar used = [],\n\t\t\tinst = this;\n\t\teach( spaces, function( spaceName, space ) {\n\t\t\tif ( inst[ space.cache ] ) {\n\t\t\t\tused.push( spaceName );\n\t\t\t}\n\t\t});\n\t\treturn used.pop();\n\t},\n\ttransition: function( other, distance ) {\n\t\tvar end = color( other ),\n\t\t\tspaceName = end._space(),\n\t\t\tspace = spaces[ spaceName ],\n\t\t\tstartColor = this.alpha() === 0 ? color( \"transparent\" ) : this,\n\t\t\tstart = startColor[ space.cache ] || space.to( startColor._rgba ),\n\t\t\tresult = start.slice();\n\n\t\tend = end[ space.cache ];\n\t\teach( space.props, function( key, prop ) {\n\t\t\tvar index = prop.idx,\n\t\t\t\tstartValue = start[ index ],\n\t\t\t\tendValue = end[ index ],\n\t\t\t\ttype = propTypes[ prop.type ] || {};\n\n\t\t\t// if null, don't override start value\n\t\t\tif ( endValue === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// if null - use end\n\t\t\tif ( startValue === null ) {\n\t\t\t\tresult[ index ] = endValue;\n\t\t\t} else {\n\t\t\t\tif ( type.mod ) {\n\t\t\t\t\tif ( endValue - startValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue += type.mod;\n\t\t\t\t\t} else if ( startValue - endValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue -= type.mod;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );\n\t\t\t}\n\t\t});\n\t\treturn this[ spaceName ]( result );\n\t},\n\tblend: function( opaque ) {\n\t\t// if we are already opaque - return ourself\n\t\tif ( this._rgba[ 3 ] === 1 ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tvar rgb = this._rgba.slice(),\n\t\t\ta = rgb.pop(),\n\t\t\tblend = color( opaque )._rgba;\n\n\t\treturn color( jQuery.map( rgb, function( v, i ) {\n\t\t\treturn ( 1 - a ) * blend[ i ] + a * v;\n\t\t}));\n\t},\n\ttoRgbaString: function() {\n\t\tvar prefix = \"rgba(\",\n\t\t\trgba = jQuery.map( this._rgba, function( v, i ) {\n\t\t\t\treturn v == null ? ( i > 2 ? 1 : 0 ) : v;\n\t\t\t});\n\n\t\tif ( rgba[ 3 ] === 1 ) {\n\t\t\trgba.pop();\n\t\t\tprefix = \"rgb(\";\n\t\t}\n\n\t\treturn prefix + rgba.join() + \")\";\n\t},\n\ttoHslaString: function() {\n\t\tvar prefix = \"hsla(\",\n\t\t\thsla = jQuery.map( this.hsla(), function( v, i ) {\n\t\t\t\tif ( v == null ) {\n\t\t\t\t\tv = i > 2 ? 1 : 0;\n\t\t\t\t}\n\n\t\t\t\t// catch 1 and 2\n\t\t\t\tif ( i && i < 3 ) {\n\t\t\t\t\tv = Math.round( v * 100 ) + \"%\";\n\t\t\t\t}\n\t\t\t\treturn v;\n\t\t\t});\n\n\t\tif ( hsla[ 3 ] === 1 ) {\n\t\t\thsla.pop();\n\t\t\tprefix = \"hsl(\";\n\t\t}\n\t\treturn prefix + hsla.join() + \")\";\n\t},\n\ttoHexString: function( includeAlpha ) {\n\t\tvar rgba = this._rgba.slice(),\n\t\t\talpha = rgba.pop();\n\n\t\tif ( includeAlpha ) {\n\t\t\trgba.push( ~~( alpha * 255 ) );\n\t\t}\n\n\t\treturn \"#\" + jQuery.map( rgba, function( v ) {\n\n\t\t\t// default to 0 when nulls exist\n\t\t\tv = ( v || 0 ).toString( 16 );\n\t\t\treturn v.length === 1 ? \"0\" + v : v;\n\t\t}).join(\"\");\n\t},\n\ttoString: function() {\n\t\treturn this._rgba[ 3 ] === 0 ? \"transparent\" : this.toRgbaString();\n\t}\n});\ncolor.fn.parse.prototype = color.fn;\n\n// hsla conversions adapted from:\n// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021\n\nfunction hue2rgb( p, q, h ) {\n\th = ( h + 1 ) % 1;\n\tif ( h * 6 < 1 ) {\n\t\treturn p + ( q - p ) * h * 6;\n\t}\n\tif ( h * 2 < 1) {\n\t\treturn q;\n\t}\n\tif ( h * 3 < 2 ) {\n\t\treturn p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;\n\t}\n\treturn p;\n}\n\nspaces.hsla.to = function( rgba ) {\n\tif ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {\n\t\treturn [ null, null, null, rgba[ 3 ] ];\n\t}\n\tvar r = rgba[ 0 ] / 255,\n\t\tg = rgba[ 1 ] / 255,\n\t\tb = rgba[ 2 ] / 255,\n\t\ta = rgba[ 3 ],\n\t\tmax = Math.max( r, g, b ),\n\t\tmin = Math.min( r, g, b ),\n\t\tdiff = max - min,\n\t\tadd = max + min,\n\t\tl = add * 0.5,\n\t\th, s;\n\n\tif ( min === max ) {\n\t\th = 0;\n\t} else if ( r === max ) {\n\t\th = ( 60 * ( g - b ) / diff ) + 360;\n\t} else if ( g === max ) {\n\t\th = ( 60 * ( b - r ) / diff ) + 120;\n\t} else {\n\t\th = ( 60 * ( r - g ) / diff ) + 240;\n\t}\n\n\t// chroma (diff) == 0 means greyscale which, by definition, saturation = 0%\n\t// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)\n\tif ( diff === 0 ) {\n\t\ts = 0;\n\t} else if ( l <= 0.5 ) {\n\t\ts = diff / add;\n\t} else {\n\t\ts = diff / ( 2 - add );\n\t}\n\treturn [ Math.round(h) % 360, s, l, a == null ? 1 : a ];\n};\n\nspaces.hsla.from = function( hsla ) {\n\tif ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {\n\t\treturn [ null, null, null, hsla[ 3 ] ];\n\t}\n\tvar h = hsla[ 0 ] / 360,\n\t\ts = hsla[ 1 ],\n\t\tl = hsla[ 2 ],\n\t\ta = hsla[ 3 ],\n\t\tq = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,\n\t\tp = 2 * l - q;\n\n\treturn [\n\t\tMath.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),\n\t\ta\n\t];\n};\n\neach( spaces, function( spaceName, space ) {\n\tvar props = space.props,\n\t\tcache = space.cache,\n\t\tto = space.to,\n\t\tfrom = space.from;\n\n\t// makes rgba() and hsla()\n\tcolor.fn[ spaceName ] = function( value ) {\n\n\t\t// generate a cache for this space if it doesn't exist\n\t\tif ( to && !this[ cache ] ) {\n\t\t\tthis[ cache ] = to( this._rgba );\n\t\t}\n\t\tif ( value === undefined ) {\n\t\t\treturn this[ cache ].slice();\n\t\t}\n\n\t\tvar ret,\n\t\t\ttype = jQuery.type( value ),\n\t\t\tarr = ( type === \"array\" || type === \"object\" ) ? value : arguments,\n\t\t\tlocal = this[ cache ].slice();\n\n\t\teach( props, function( key, prop ) {\n\t\t\tvar val = arr[ type === \"object\" ? key : prop.idx ];\n\t\t\tif ( val == null ) {\n\t\t\t\tval = local[ prop.idx ];\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = clamp( val, prop );\n\t\t});\n\n\t\tif ( from ) {\n\t\t\tret = color( from( local ) );\n\t\t\tret[ cache ] = local;\n\t\t\treturn ret;\n\t\t} else {\n\t\t\treturn color( local );\n\t\t}\n\t};\n\n\t// makes red() green() blue() alpha() hue() saturation() lightness()\n\teach( props, function( key, prop ) {\n\t\t// alpha is included in more than one space\n\t\tif ( color.fn[ key ] ) {\n\t\t\treturn;\n\t\t}\n\t\tcolor.fn[ key ] = function( value ) {\n\t\t\tvar vtype = jQuery.type( value ),\n\t\t\t\tfn = ( key === \"alpha\" ? ( this._hsla ? \"hsla\" : \"rgba\" ) : spaceName ),\n\t\t\t\tlocal = this[ fn ](),\n\t\t\t\tcur = local[ prop.idx ],\n\t\t\t\tmatch;\n\n\t\t\tif ( vtype === \"undefined\" ) {\n\t\t\t\treturn cur;\n\t\t\t}\n\n\t\t\tif ( vtype === \"function\" ) {\n\t\t\t\tvalue = value.call( this, cur );\n\t\t\t\tvtype = jQuery.type( value );\n\t\t\t}\n\t\t\tif ( value == null && prop.empty ) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif ( vtype === \"string\" ) {\n\t\t\t\tmatch = rplusequals.exec( value );\n\t\t\t\tif ( match ) {\n\t\t\t\t\tvalue = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === \"+\" ? 1 : -1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = value;\n\t\t\treturn this[ fn ]( local );\n\t\t};\n\t});\n});\n\n// add cssHook and .fx.step function for each named hook.\n// accept a space separated string of properties\ncolor.hook = function( hook ) {\n\tvar hooks = hook.split( \" \" );\n\teach( hooks, function( i, hook ) {\n\t\tjQuery.cssHooks[ hook ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar parsed, curElem,\n\t\t\t\t\tbackgroundColor = \"\";\n\n\t\t\t\tif ( value !== \"transparent\" && ( jQuery.type( value ) !== \"string\" || ( parsed = stringParse( value ) ) ) ) {\n\t\t\t\t\tvalue = color( parsed || value );\n\t\t\t\t\tif ( !support.rgba && value._rgba[ 3 ] !== 1 ) {\n\t\t\t\t\t\tcurElem = hook === \"backgroundColor\" ? elem.parentNode : elem;\n\t\t\t\t\t\twhile (\n\t\t\t\t\t\t\t(backgroundColor === \"\" || backgroundColor === \"transparent\") &&\n\t\t\t\t\t\t\tcurElem && curElem.style\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tbackgroundColor = jQuery.css( curElem, \"backgroundColor\" );\n\t\t\t\t\t\t\t\tcurElem = curElem.parentNode;\n\t\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalue = value.blend( backgroundColor && backgroundColor !== \"transparent\" ?\n\t\t\t\t\t\t\tbackgroundColor :\n\t\t\t\t\t\t\t\"_default\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue = value.toRgbaString();\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\telem.style[ hook ] = value;\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\t// wrapped to prevent IE from throwing errors on \"invalid\" values like 'auto' or 'inherit'\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tjQuery.fx.step[ hook ] = function( fx ) {\n\t\t\tif ( !fx.colorInit ) {\n\t\t\t\tfx.start = color( fx.elem, hook );\n\t\t\t\tfx.end = color( fx.end );\n\t\t\t\tfx.colorInit = true;\n\t\t\t}\n\t\t\tjQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );\n\t\t};\n\t});\n\n};\n\ncolor.hook( stepHooks );\n\njQuery.cssHooks.borderColor = {\n\texpand: function( value ) {\n\t\tvar expanded = {};\n\n\t\teach( [ \"Top\", \"Right\", \"Bottom\", \"Left\" ], function( i, part ) {\n\t\t\texpanded[ \"border\" + part + \"Color\" ] = value;\n\t\t});\n\t\treturn expanded;\n\t}\n};\n\n// Basic color names only.\n// Usage of any of the other color names requires adding yourself or including\n// jquery.color.svg-names.js.\ncolors = jQuery.Color.names = {\n\t// 4.1. Basic color keywords\n\taqua: \"#00ffff\",\n\tblack: \"#000000\",\n\tblue: \"#0000ff\",\n\tfuchsia: \"#ff00ff\",\n\tgray: \"#808080\",\n\tgreen: \"#008000\",\n\tlime: \"#00ff00\",\n\tmaroon: \"#800000\",\n\tnavy: \"#000080\",\n\tolive: \"#808000\",\n\tpurple: \"#800080\",\n\tred: \"#ff0000\",\n\tsilver: \"#c0c0c0\",\n\tteal: \"#008080\",\n\twhite: \"#ffffff\",\n\tyellow: \"#ffff00\",\n\n\t// 4.2.3. \"transparent\" color keyword\n\ttransparent: [ null, null, null, 0 ],\n\n\t_default: \"#ffffff\"\n};\n\n})( jQuery );\n\n/******************************************************************************/\n/****************************** CLASS ANIMATIONS ******************************/\n/******************************************************************************/\n(function() {\n\nvar classAnimationActions = [ \"add\", \"remove\", \"toggle\" ],\n\tshorthandStyles = {\n\t\tborder: 1,\n\t\tborderBottom: 1,\n\t\tborderColor: 1,\n\t\tborderLeft: 1,\n\t\tborderRight: 1,\n\t\tborderTop: 1,\n\t\tborderWidth: 1,\n\t\tmargin: 1,\n\t\tpadding: 1\n\t};\n\n$.each([ \"borderLeftStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderTopStyle\" ], function( _, prop ) {\n\t$.fx.step[ prop ] = function( fx ) {\n\t\tif ( fx.end !== \"none\" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {\n\t\t\tjQuery.style( fx.elem, prop, fx.end );\n\t\t\tfx.setAttr = true;\n\t\t}\n\t};\n});\n\nfunction getElementStyles( elem ) {\n\tvar key, len,\n\t\tstyle = elem.ownerDocument.defaultView ?\n\t\t\telem.ownerDocument.defaultView.getComputedStyle( elem, null ) :\n\t\t\telem.currentStyle,\n\t\tstyles = {};\n\n\tif ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {\n\t\tlen = style.length;\n\t\twhile ( len-- ) {\n\t\t\tkey = style[ len ];\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ $.camelCase( key ) ] = style[ key ];\n\t\t\t}\n\t\t}\n\t// support: Opera, IE <9\n\t} else {\n\t\tfor ( key in style ) {\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ key ] = style[ key ];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn styles;\n}\n\nfunction styleDifference( oldStyle, newStyle ) {\n\tvar diff = {},\n\t\tname, value;\n\n\tfor ( name in newStyle ) {\n\t\tvalue = newStyle[ name ];\n\t\tif ( oldStyle[ name ] !== value ) {\n\t\t\tif ( !shorthandStyles[ name ] ) {\n\t\t\t\tif ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {\n\t\t\t\t\tdiff[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn diff;\n}\n\n// support: jQuery <1.8\nif ( !$.fn.addBack ) {\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n$.effects.animateClass = function( value, duration, easing, callback ) {\n\tvar o = $.speed( duration, easing, callback );\n\n\treturn this.queue( function() {\n\t\tvar animated = $( this ),\n\t\t\tbaseClass = animated.attr( \"class\" ) || \"\",\n\t\t\tapplyClassChange,\n\t\t\tallAnimations = o.children ? animated.find( \"*\" ).addBack() : animated;\n\n\t\t// map the animated objects to store the original styles.\n\t\tallAnimations = allAnimations.map(function() {\n\t\t\tvar el = $( this );\n\t\t\treturn {\n\t\t\t\tel: el,\n\t\t\t\tstart: getElementStyles( this )\n\t\t\t};\n\t\t});\n\n\t\t// apply class change\n\t\tapplyClassChange = function() {\n\t\t\t$.each( classAnimationActions, function(i, action) {\n\t\t\t\tif ( value[ action ] ) {\n\t\t\t\t\tanimated[ action + \"Class\" ]( value[ action ] );\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tapplyClassChange();\n\n\t\t// map all animated objects again - calculate new styles and diff\n\t\tallAnimations = allAnimations.map(function() {\n\t\t\tthis.end = getElementStyles( this.el[ 0 ] );\n\t\t\tthis.diff = styleDifference( this.start, this.end );\n\t\t\treturn this;\n\t\t});\n\n\t\t// apply original class\n\t\tanimated.attr( \"class\", baseClass );\n\n\t\t// map all animated objects again - this time collecting a promise\n\t\tallAnimations = allAnimations.map(function() {\n\t\t\tvar styleInfo = this,\n\t\t\t\tdfd = $.Deferred(),\n\t\t\t\topts = $.extend({}, o, {\n\t\t\t\t\tqueue: false,\n\t\t\t\t\tcomplete: function() {\n\t\t\t\t\t\tdfd.resolve( styleInfo );\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tthis.el.animate( this.diff, opts );\n\t\t\treturn dfd.promise();\n\t\t});\n\n\t\t// once all animations have completed:\n\t\t$.when.apply( $, allAnimations.get() ).done(function() {\n\n\t\t\t// set the final class\n\t\t\tapplyClassChange();\n\n\t\t\t// for each animated element,\n\t\t\t// clear all css properties that were animated\n\t\t\t$.each( arguments, function() {\n\t\t\t\tvar el = this.el;\n\t\t\t\t$.each( this.diff, function(key) {\n\t\t\t\t\tel.css( key, \"\" );\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// this is guarnteed to be there if you use jQuery.speed()\n\t\t\t// it also handles dequeuing the next anim...\n\t\t\to.complete.call( animated[ 0 ] );\n\t\t});\n\t});\n};\n\n$.fn.extend({\n\taddClass: (function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn speed ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ add: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t})( $.fn.addClass ),\n\n\tremoveClass: (function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn arguments.length > 1 ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ remove: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t})( $.fn.removeClass ),\n\n\ttoggleClass: (function( orig ) {\n\t\treturn function( classNames, force, speed, easing, callback ) {\n\t\t\tif ( typeof force === \"boolean\" || force === undefined ) {\n\t\t\t\tif ( !speed ) {\n\t\t\t\t\t// without speed parameter\n\t\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t\t} else {\n\t\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t\t(force ? { add: classNames } : { remove: classNames }),\n\t\t\t\t\t\tspeed, easing, callback );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// without force parameter\n\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t{ toggle: classNames }, force, speed, easing );\n\t\t\t}\n\t\t};\n\t})( $.fn.toggleClass ),\n\n\tswitchClass: function( remove, add, speed, easing, callback) {\n\t\treturn $.effects.animateClass.call( this, {\n\t\t\tadd: add,\n\t\t\tremove: remove\n\t\t}, speed, easing, callback );\n\t}\n});\n\n})();\n\n/******************************************************************************/\n/*********************************** EFFECTS **********************************/\n/******************************************************************************/\n\n(function() {\n\n$.extend( $.effects, {\n\tversion: \"1.11.4\",\n\n\t// Saves a set of properties in a data storage\n\tsave: function( element, set ) {\n\t\tfor ( var i = 0; i < set.length; i++ ) {\n\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\telement.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Restores a set of previously saved properties from a data storage\n\trestore: function( element, set ) {\n\t\tvar val, i;\n\t\tfor ( i = 0; i < set.length; i++ ) {\n\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\tval = element.data( dataSpace + set[ i ] );\n\t\t\t\t// support: jQuery 1.6.2\n\t\t\t\t// http://bugs.jquery.com/ticket/9917\n\t\t\t\t// jQuery 1.6.2 incorrectly returns undefined for any falsy value.\n\t\t\t\t// We can't differentiate between \"\" and 0 here, so we just assume\n\t\t\t\t// empty string since it's likely to be a more common value...\n\t\t\t\tif ( val === undefined ) {\n\t\t\t\t\tval = \"\";\n\t\t\t\t}\n\t\t\t\telement.css( set[ i ], val );\n\t\t\t}\n\t\t}\n\t},\n\n\tsetMode: function( el, mode ) {\n\t\tif (mode === \"toggle\") {\n\t\t\tmode = el.is( \":hidden\" ) ? \"show\" : \"hide\";\n\t\t}\n\t\treturn mode;\n\t},\n\n\t// Translates a [top,left] array into a baseline value\n\t// this should be a little more flexible in the future to handle a string & hash\n\tgetBaseline: function( origin, original ) {\n\t\tvar y, x;\n\t\tswitch ( origin[ 0 ] ) {\n\t\t\tcase \"top\": y = 0; break;\n\t\t\tcase \"middle\": y = 0.5; break;\n\t\t\tcase \"bottom\": y = 1; break;\n\t\t\tdefault: y = origin[ 0 ] / original.height;\n\t\t}\n\t\tswitch ( origin[ 1 ] ) {\n\t\t\tcase \"left\": x = 0; break;\n\t\t\tcase \"center\": x = 0.5; break;\n\t\t\tcase \"right\": x = 1; break;\n\t\t\tdefault: x = origin[ 1 ] / original.width;\n\t\t}\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t},\n\n\t// Wraps the element around a wrapper that copies position properties\n\tcreateWrapper: function( element ) {\n\n\t\t// if the element is already wrapped, return it\n\t\tif ( element.parent().is( \".ui-effects-wrapper\" )) {\n\t\t\treturn element.parent();\n\t\t}\n\n\t\t// wrap the element\n\t\tvar props = {\n\t\t\t\twidth: element.outerWidth(true),\n\t\t\t\theight: element.outerHeight(true),\n\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t},\n\t\t\twrapper = $( \"<div></div>\" )\n\t\t\t\t.addClass( \"ui-effects-wrapper\" )\n\t\t\t\t.css({\n\t\t\t\t\tfontSize: \"100%\",\n\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\tborder: \"none\",\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\tpadding: 0\n\t\t\t\t}),\n\t\t\t// Store the size in case width/height are defined in % - Fixes #5245\n\t\t\tsize = {\n\t\t\t\twidth: element.width(),\n\t\t\t\theight: element.height()\n\t\t\t},\n\t\t\tactive = document.activeElement;\n\n\t\t// support: Firefox\n\t\t// Firefox incorrectly exposes anonymous content\n\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=561664\n\t\ttry {\n\t\t\tactive.id;\n\t\t} catch ( e ) {\n\t\t\tactive = document.body;\n\t\t}\n\n\t\telement.wrap( wrapper );\n\n\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t$( active ).focus();\n\t\t}\n\n\t\twrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element\n\n\t\t// transfer positioning properties to the wrapper\n\t\tif ( element.css( \"position\" ) === \"static\" ) {\n\t\t\twrapper.css({ position: \"relative\" });\n\t\t\telement.css({ position: \"relative\" });\n\t\t} else {\n\t\t\t$.extend( props, {\n\t\t\t\tposition: element.css( \"position\" ),\n\t\t\t\tzIndex: element.css( \"z-index\" )\n\t\t\t});\n\t\t\t$.each([ \"top\", \"left\", \"bottom\", \"right\" ], function(i, pos) {\n\t\t\t\tprops[ pos ] = element.css( pos );\n\t\t\t\tif ( isNaN( parseInt( props[ pos ], 10 ) ) ) {\n\t\t\t\t\tprops[ pos ] = \"auto\";\n\t\t\t\t}\n\t\t\t});\n\t\t\telement.css({\n\t\t\t\tposition: \"relative\",\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: \"auto\",\n\t\t\t\tbottom: \"auto\"\n\t\t\t});\n\t\t}\n\t\telement.css(size);\n\n\t\treturn wrapper.css( props ).show();\n\t},\n\n\tremoveWrapper: function( element ) {\n\t\tvar active = document.activeElement;\n\n\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\telement.parent().replaceWith( element );\n\n\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t$( active ).focus();\n\t\t\t}\n\t\t}\n\n\t\treturn element;\n\t},\n\n\tsetTransition: function( element, list, factor, value ) {\n\t\tvalue = value || {};\n\t\t$.each( list, function( i, x ) {\n\t\t\tvar unit = element.cssUnit( x );\n\t\t\tif ( unit[ 0 ] > 0 ) {\n\t\t\t\tvalue[ x ] = unit[ 0 ] * factor + unit[ 1 ];\n\t\t\t}\n\t\t});\n\t\treturn value;\n\t}\n});\n\n// return an effect options object for the given parameters:\nfunction _normalizeArguments( effect, options, speed, callback ) {\n\n\t// allow passing all options as the first parameter\n\tif ( $.isPlainObject( effect ) ) {\n\t\toptions = effect;\n\t\teffect = effect.effect;\n\t}\n\n\t// convert to an object\n\teffect = { effect: effect };\n\n\t// catch (effect, null, ...)\n\tif ( options == null ) {\n\t\toptions = {};\n\t}\n\n\t// catch (effect, callback)\n\tif ( $.isFunction( options ) ) {\n\t\tcallback = options;\n\t\tspeed = null;\n\t\toptions = {};\n\t}\n\n\t// catch (effect, speed, ?)\n\tif ( typeof options === \"number\" || $.fx.speeds[ options ] ) {\n\t\tcallback = speed;\n\t\tspeed = options;\n\t\toptions = {};\n\t}\n\n\t// catch (effect, options, callback)\n\tif ( $.isFunction( speed ) ) {\n\t\tcallback = speed;\n\t\tspeed = null;\n\t}\n\n\t// add options to effect\n\tif ( options ) {\n\t\t$.extend( effect, options );\n\t}\n\n\tspeed = speed || options.duration;\n\teffect.duration = $.fx.off ? 0 :\n\t\ttypeof speed === \"number\" ? speed :\n\t\tspeed in $.fx.speeds ? $.fx.speeds[ speed ] :\n\t\t$.fx.speeds._default;\n\n\teffect.complete = callback || options.complete;\n\n\treturn effect;\n}\n\nfunction standardAnimationOption( option ) {\n\t// Valid standard speeds (nothing, number, named speed)\n\tif ( !option || typeof option === \"number\" || $.fx.speeds[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Invalid strings - treat as \"normal\" speed\n\tif ( typeof option === \"string\" && !$.effects.effect[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Complete callback\n\tif ( $.isFunction( option ) ) {\n\t\treturn true;\n\t}\n\n\t// Options hash (but not naming an effect)\n\tif ( typeof option === \"object\" && !option.effect ) {\n\t\treturn true;\n\t}\n\n\t// Didn't match any standard API\n\treturn false;\n}\n\n$.fn.extend({\n\teffect: function( /* effect, options, speed, callback */ ) {\n\t\tvar args = _normalizeArguments.apply( this, arguments ),\n\t\t\tmode = args.mode,\n\t\t\tqueue = args.queue,\n\t\t\teffectMethod = $.effects.effect[ args.effect ];\n\n\t\tif ( $.fx.off || !effectMethod ) {\n\t\t\t// delegate to the original method (e.g., .show()) if possible\n\t\t\tif ( mode ) {\n\t\t\t\treturn this[ mode ]( args.duration, args.complete );\n\t\t\t} else {\n\t\t\t\treturn this.each( function() {\n\t\t\t\t\tif ( args.complete ) {\n\t\t\t\t\t\targs.complete.call( this );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction run( next ) {\n\t\t\tvar elem = $( this ),\n\t\t\t\tcomplete = args.complete,\n\t\t\t\tmode = args.mode;\n\n\t\t\tfunction done() {\n\t\t\t\tif ( $.isFunction( complete ) ) {\n\t\t\t\t\tcomplete.call( elem[0] );\n\t\t\t\t}\n\t\t\t\tif ( $.isFunction( next ) ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If the element already has the correct final state, delegate to\n\t\t\t// the core methods so the internal tracking of \"olddisplay\" works.\n\t\t\tif ( elem.is( \":hidden\" ) ? mode === \"hide\" : mode === \"show\" ) {\n\t\t\t\telem[ mode ]();\n\t\t\t\tdone();\n\t\t\t} else {\n\t\t\t\teffectMethod.call( elem[0], args, done );\n\t\t\t}\n\t\t}\n\n\t\treturn queue === false ? this.each( run ) : this.queue( queue || \"fx\", run );\n\t},\n\n\tshow: (function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"show\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t})( $.fn.show ),\n\n\thide: (function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"hide\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t})( $.fn.hide ),\n\n\ttoggle: (function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) || typeof option === \"boolean\" ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"toggle\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t})( $.fn.toggle ),\n\n\t// helper functions\n\tcssUnit: function(key) {\n\t\tvar style = this.css( key ),\n\t\t\tval = [];\n\n\t\t$.each( [ \"em\", \"px\", \"%\", \"pt\" ], function( i, unit ) {\n\t\t\tif ( style.indexOf( unit ) > 0 ) {\n\t\t\t\tval = [ parseFloat( style ), unit ];\n\t\t\t}\n\t\t});\n\t\treturn val;\n\t}\n});\n\n})();\n\n/******************************************************************************/\n/*********************************** EASING ***********************************/\n/******************************************************************************/\n\n(function() {\n\n// based on easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\nvar baseEasings = {};\n\n$.each( [ \"Quad\", \"Cubic\", \"Quart\", \"Quint\", \"Expo\" ], function( i, name ) {\n\tbaseEasings[ name ] = function( p ) {\n\t\treturn Math.pow( p, i + 2 );\n\t};\n});\n\n$.extend( baseEasings, {\n\tSine: function( p ) {\n\t\treturn 1 - Math.cos( p * Math.PI / 2 );\n\t},\n\tCirc: function( p ) {\n\t\treturn 1 - Math.sqrt( 1 - p * p );\n\t},\n\tElastic: function( p ) {\n\t\treturn p === 0 || p === 1 ? p :\n\t\t\t-Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 );\n\t},\n\tBack: function( p ) {\n\t\treturn p * p * ( 3 * p - 2 );\n\t},\n\tBounce: function( p ) {\n\t\tvar pow2,\n\t\t\tbounce = 4;\n\n\t\twhile ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}\n\t\treturn 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );\n\t}\n});\n\n$.each( baseEasings, function( name, easeIn ) {\n\t$.easing[ \"easeIn\" + name ] = easeIn;\n\t$.easing[ \"easeOut\" + name ] = function( p ) {\n\t\treturn 1 - easeIn( 1 - p );\n\t};\n\t$.easing[ \"easeInOut\" + name ] = function( p ) {\n\t\treturn p < 0.5 ?\n\t\t\teaseIn( p * 2 ) / 2 :\n\t\t\t1 - easeIn( p * -2 + 2 ) / 2;\n\t};\n});\n\n})();\n\nvar effect = $.effects;\n\n\n/*!\n * jQuery UI Effects Blind 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/blind-effect/\n */\n\n\nvar effectBlind = $.effects.effect.blind = function( o, done ) {\n\t// Create element\n\tvar el = $( this ),\n\t\trvertical = /up|down|vertical/,\n\t\trpositivemotion = /up|left|vertical|horizontal/,\n\t\tprops = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"height\", \"width\" ],\n\t\tmode = $.effects.setMode( el, o.mode || \"hide\" ),\n\t\tdirection = o.direction || \"up\",\n\t\tvertical = rvertical.test( direction ),\n\t\tref = vertical ? \"height\" : \"width\",\n\t\tref2 = vertical ? \"top\" : \"left\",\n\t\tmotion = rpositivemotion.test( direction ),\n\t\tanimation = {},\n\t\tshow = mode === \"show\",\n\t\twrapper, distance, margin;\n\n\t// if already wrapped, the wrapper's properties are my property. #6245\n\tif ( el.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t$.effects.save( el.parent(), props );\n\t} else {\n\t\t$.effects.save( el, props );\n\t}\n\tel.show();\n\twrapper = $.effects.createWrapper( el ).css({\n\t\toverflow: \"hidden\"\n\t});\n\n\tdistance = wrapper[ ref ]();\n\tmargin = parseFloat( wrapper.css( ref2 ) ) || 0;\n\n\tanimation[ ref ] = show ? distance : 0;\n\tif ( !motion ) {\n\t\tel\n\t\t\t.css( vertical ? \"bottom\" : \"right\", 0 )\n\t\t\t.css( vertical ? \"top\" : \"left\", \"auto\" )\n\t\t\t.css({ position: \"absolute\" });\n\n\t\tanimation[ ref2 ] = show ? margin : distance + margin;\n\t}\n\n\t// start at 0 if we are showing\n\tif ( show ) {\n\t\twrapper.css( ref, 0 );\n\t\tif ( !motion ) {\n\t\t\twrapper.css( ref2, margin + distance );\n\t\t}\n\t}\n\n\t// Animate\n\twrapper.animate( animation, {\n\t\tduration: o.duration,\n\t\teasing: o.easing,\n\t\tqueue: false,\n\t\tcomplete: function() {\n\t\t\tif ( mode === \"hide\" ) {\n\t\t\t\tel.hide();\n\t\t\t}\n\t\t\t$.effects.restore( el, props );\n\t\t\t$.effects.removeWrapper( el );\n\t\t\tdone();\n\t\t}\n\t});\n};\n\n\n/*!\n * jQuery UI Effects Bounce 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/bounce-effect/\n */\n\n\nvar effectBounce = $.effects.effect.bounce = function( o, done ) {\n\tvar el = $( this ),\n\t\tprops = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"height\", \"width\" ],\n\n\t\t// defaults:\n\t\tmode = $.effects.setMode( el, o.mode || \"effect\" ),\n\t\thide = mode === \"hide\",\n\t\tshow = mode === \"show\",\n\t\tdirection = o.direction || \"up\",\n\t\tdistance = o.distance,\n\t\ttimes = o.times || 5,\n\n\t\t// number of internal animations\n\t\tanims = times * 2 + ( show || hide ? 1 : 0 ),\n\t\tspeed = o.duration / anims,\n\t\teasing = o.easing,\n\n\t\t// utility:\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tmotion = ( direction === \"up\" || direction === \"left\" ),\n\t\ti,\n\t\tupAnim,\n\t\tdownAnim,\n\n\t\t// we will need to re-assemble the queue to stack our animations in place\n\t\tqueue = el.queue(),\n\t\tqueuelen = queue.length;\n\n\t// Avoid touching opacity to prevent clearType and PNG issues in IE\n\tif ( show || hide ) {\n\t\tprops.push( \"opacity\" );\n\t}\n\n\t$.effects.save( el, props );\n\tel.show();\n\t$.effects.createWrapper( el ); // Create Wrapper\n\n\t// default distance for the BIGGEST bounce is the outer Distance / 3\n\tif ( !distance ) {\n\t\tdistance = el[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]() / 3;\n\t}\n\n\tif ( show ) {\n\t\tdownAnim = { opacity: 1 };\n\t\tdownAnim[ ref ] = 0;\n\n\t\t// if we are showing, force opacity 0 and set the initial position\n\t\t// then do the \"first\" animation\n\t\tel.css( \"opacity\", 0 )\n\t\t\t.css( ref, motion ? -distance * 2 : distance * 2 )\n\t\t\t.animate( downAnim, speed, easing );\n\t}\n\n\t// start at the smallest distance if we are hiding\n\tif ( hide ) {\n\t\tdistance = distance / Math.pow( 2, times - 1 );\n\t}\n\n\tdownAnim = {};\n\tdownAnim[ ref ] = 0;\n\t// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here\n\tfor ( i = 0; i < times; i++ ) {\n\t\tupAnim = {};\n\t\tupAnim[ ref ] = ( motion ? \"-=\" : \"+=\" ) + distance;\n\n\t\tel.animate( upAnim, speed, easing )\n\t\t\t.animate( downAnim, speed, easing );\n\n\t\tdistance = hide ? distance * 2 : distance / 2;\n\t}\n\n\t// Last Bounce when Hiding\n\tif ( hide ) {\n\t\tupAnim = { opacity: 0 };\n\t\tupAnim[ ref ] = ( motion ? \"-=\" : \"+=\" ) + distance;\n\n\t\tel.animate( upAnim, speed, easing );\n\t}\n\n\tel.queue(function() {\n\t\tif ( hide ) {\n\t\t\tel.hide();\n\t\t}\n\t\t$.effects.restore( el, props );\n\t\t$.effects.removeWrapper( el );\n\t\tdone();\n\t});\n\n\t// inject all the animations we just queued to be first in line (after \"inprogress\")\n\tif ( queuelen > 1) {\n\t\tqueue.splice.apply( queue,\n\t\t\t[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );\n\t}\n\tel.dequeue();\n\n};\n\n\n/*!\n * jQuery UI Effects Clip 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/clip-effect/\n */\n\n\nvar effectClip = $.effects.effect.clip = function( o, done ) {\n\t// Create element\n\tvar el = $( this ),\n\t\tprops = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"height\", \"width\" ],\n\t\tmode = $.effects.setMode( el, o.mode || \"hide\" ),\n\t\tshow = mode === \"show\",\n\t\tdirection = o.direction || \"vertical\",\n\t\tvert = direction === \"vertical\",\n\t\tsize = vert ? \"height\" : \"width\",\n\t\tposition = vert ? \"top\" : \"left\",\n\t\tanimation = {},\n\t\twrapper, animate, distance;\n\n\t// Save & Show\n\t$.effects.save( el, props );\n\tel.show();\n\n\t// Create Wrapper\n\twrapper = $.effects.createWrapper( el ).css({\n\t\toverflow: \"hidden\"\n\t});\n\tanimate = ( el[0].tagName === \"IMG\" ) ? wrapper : el;\n\tdistance = animate[ size ]();\n\n\t// Shift\n\tif ( show ) {\n\t\tanimate.css( size, 0 );\n\t\tanimate.css( position, distance / 2 );\n\t}\n\n\t// Create Animation Object:\n\tanimation[ size ] = show ? distance : 0;\n\tanimation[ position ] = show ? 0 : distance / 2;\n\n\t// Animate\n\tanimate.animate( animation, {\n\t\tqueue: false,\n\t\tduration: o.duration,\n\t\teasing: o.easing,\n\t\tcomplete: function() {\n\t\t\tif ( !show ) {\n\t\t\t\tel.hide();\n\t\t\t}\n\t\t\t$.effects.restore( el, props );\n\t\t\t$.effects.removeWrapper( el );\n\t\t\tdone();\n\t\t}\n\t});\n\n};\n\n\n/*!\n * jQuery UI Effects Drop 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/drop-effect/\n */\n\n\nvar effectDrop = $.effects.effect.drop = function( o, done ) {\n\n\tvar el = $( this ),\n\t\tprops = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"opacity\", \"height\", \"width\" ],\n\t\tmode = $.effects.setMode( el, o.mode || \"hide\" ),\n\t\tshow = mode === \"show\",\n\t\tdirection = o.direction || \"left\",\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tmotion = ( direction === \"up\" || direction === \"left\" ) ? \"pos\" : \"neg\",\n\t\tanimation = {\n\t\t\topacity: show ? 1 : 0\n\t\t},\n\t\tdistance;\n\n\t// Adjust\n\t$.effects.save( el, props );\n\tel.show();\n\t$.effects.createWrapper( el );\n\n\tdistance = o.distance || el[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]( true ) / 2;\n\n\tif ( show ) {\n\t\tel\n\t\t\t.css( \"opacity\", 0 )\n\t\t\t.css( ref, motion === \"pos\" ? -distance : distance );\n\t}\n\n\t// Animation\n\tanimation[ ref ] = ( show ?\n\t\t( motion === \"pos\" ? \"+=\" : \"-=\" ) :\n\t\t( motion === \"pos\" ? \"-=\" : \"+=\" ) ) +\n\t\tdistance;\n\n\t// Animate\n\tel.animate( animation, {\n\t\tqueue: false,\n\t\tduration: o.duration,\n\t\teasing: o.easing,\n\t\tcomplete: function() {\n\t\t\tif ( mode === \"hide\" ) {\n\t\t\t\tel.hide();\n\t\t\t}\n\t\t\t$.effects.restore( el, props );\n\t\t\t$.effects.removeWrapper( el );\n\t\t\tdone();\n\t\t}\n\t});\n};\n\n\n/*!\n * jQuery UI Effects Explode 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/explode-effect/\n */\n\n\nvar effectExplode = $.effects.effect.explode = function( o, done ) {\n\n\tvar rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3,\n\t\tcells = rows,\n\t\tel = $( this ),\n\t\tmode = $.effects.setMode( el, o.mode || \"hide\" ),\n\t\tshow = mode === \"show\",\n\n\t\t// show and then visibility:hidden the element before calculating offset\n\t\toffset = el.show().css( \"visibility\", \"hidden\" ).offset(),\n\n\t\t// width and height of a piece\n\t\twidth = Math.ceil( el.outerWidth() / cells ),\n\t\theight = Math.ceil( el.outerHeight() / rows ),\n\t\tpieces = [],\n\n\t\t// loop\n\t\ti, j, left, top, mx, my;\n\n\t// children animate complete:\n\tfunction childComplete() {\n\t\tpieces.push( this );\n\t\tif ( pieces.length === rows * cells ) {\n\t\t\tanimComplete();\n\t\t}\n\t}\n\n\t// clone the element for each row and cell.\n\tfor ( i = 0; i < rows ; i++ ) { // ===>\n\t\ttop = offset.top + i * height;\n\t\tmy = i - ( rows - 1 ) / 2 ;\n\n\t\tfor ( j = 0; j < cells ; j++ ) { // |||\n\t\t\tleft = offset.left + j * width;\n\t\t\tmx = j - ( cells - 1 ) / 2 ;\n\n\t\t\t// Create a clone of the now hidden main element that will be absolute positioned\n\t\t\t// within a wrapper div off the -left and -top equal to size of our pieces\n\t\t\tel\n\t\t\t\t.clone()\n\t\t\t\t.appendTo( \"body\" )\n\t\t\t\t.wrap( \"<div></div>\" )\n\t\t\t\t.css({\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\tvisibility: \"visible\",\n\t\t\t\t\tleft: -j * width,\n\t\t\t\t\ttop: -i * height\n\t\t\t\t})\n\n\t\t\t// select the wrapper - make it overflow: hidden and absolute positioned based on\n\t\t\t// where the original was located +left and +top equal to the size of pieces\n\t\t\t\t.parent()\n\t\t\t\t.addClass( \"ui-effects-explode\" )\n\t\t\t\t.css({\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\twidth: width,\n\t\t\t\t\theight: height,\n\t\t\t\t\tleft: left + ( show ? mx * width : 0 ),\n\t\t\t\t\ttop: top + ( show ? my * height : 0 ),\n\t\t\t\t\topacity: show ? 0 : 1\n\t\t\t\t}).animate({\n\t\t\t\t\tleft: left + ( show ? 0 : mx * width ),\n\t\t\t\t\ttop: top + ( show ? 0 : my * height ),\n\t\t\t\t\topacity: show ? 1 : 0\n\t\t\t\t}, o.duration || 500, o.easing, childComplete );\n\t\t}\n\t}\n\n\tfunction animComplete() {\n\t\tel.css({\n\t\t\tvisibility: \"visible\"\n\t\t});\n\t\t$( pieces ).remove();\n\t\tif ( !show ) {\n\t\t\tel.hide();\n\t\t}\n\t\tdone();\n\t}\n};\n\n\n/*!\n * jQuery UI Effects Fade 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/fade-effect/\n */\n\n\nvar effectFade = $.effects.effect.fade = function( o, done ) {\n\tvar el = $( this ),\n\t\tmode = $.effects.setMode( el, o.mode || \"toggle\" );\n\n\tel.animate({\n\t\topacity: mode\n\t}, {\n\t\tqueue: false,\n\t\tduration: o.duration,\n\t\teasing: o.easing,\n\t\tcomplete: done\n\t});\n};\n\n\n/*!\n * jQuery UI Effects Fold 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/fold-effect/\n */\n\n\nvar effectFold = $.effects.effect.fold = function( o, done ) {\n\n\t// Create element\n\tvar el = $( this ),\n\t\tprops = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"height\", \"width\" ],\n\t\tmode = $.effects.setMode( el, o.mode || \"hide\" ),\n\t\tshow = mode === \"show\",\n\t\thide = mode === \"hide\",\n\t\tsize = o.size || 15,\n\t\tpercent = /([0-9]+)%/.exec( size ),\n\t\thorizFirst = !!o.horizFirst,\n\t\twidthFirst = show !== horizFirst,\n\t\tref = widthFirst ? [ \"width\", \"height\" ] : [ \"height\", \"width\" ],\n\t\tduration = o.duration / 2,\n\t\twrapper, distance,\n\t\tanimation1 = {},\n\t\tanimation2 = {};\n\n\t$.effects.save( el, props );\n\tel.show();\n\n\t// Create Wrapper\n\twrapper = $.effects.createWrapper( el ).css({\n\t\toverflow: \"hidden\"\n\t});\n\tdistance = widthFirst ?\n\t\t[ wrapper.width(), wrapper.height() ] :\n\t\t[ wrapper.height(), wrapper.width() ];\n\n\tif ( percent ) {\n\t\tsize = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];\n\t}\n\tif ( show ) {\n\t\twrapper.css( horizFirst ? {\n\t\t\theight: 0,\n\t\t\twidth: size\n\t\t} : {\n\t\t\theight: size,\n\t\t\twidth: 0\n\t\t});\n\t}\n\n\t// Animation\n\tanimation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size;\n\tanimation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0;\n\n\t// Animate\n\twrapper\n\t\t.animate( animation1, duration, o.easing )\n\t\t.animate( animation2, duration, o.easing, function() {\n\t\t\tif ( hide ) {\n\t\t\t\tel.hide();\n\t\t\t}\n\t\t\t$.effects.restore( el, props );\n\t\t\t$.effects.removeWrapper( el );\n\t\t\tdone();\n\t\t});\n\n};\n\n\n/*!\n * jQuery UI Effects Highlight 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/highlight-effect/\n */\n\n\nvar effectHighlight = $.effects.effect.highlight = function( o, done ) {\n\tvar elem = $( this ),\n\t\tprops = [ \"backgroundImage\", \"backgroundColor\", \"opacity\" ],\n\t\tmode = $.effects.setMode( elem, o.mode || \"show\" ),\n\t\tanimation = {\n\t\t\tbackgroundColor: elem.css( \"backgroundColor\" )\n\t\t};\n\n\tif (mode === \"hide\") {\n\t\tanimation.opacity = 0;\n\t}\n\n\t$.effects.save( elem, props );\n\n\telem\n\t\t.show()\n\t\t.css({\n\t\t\tbackgroundImage: \"none\",\n\t\t\tbackgroundColor: o.color || \"#ffff99\"\n\t\t})\n\t\t.animate( animation, {\n\t\t\tqueue: false,\n\t\t\tduration: o.duration,\n\t\t\teasing: o.easing,\n\t\t\tcomplete: function() {\n\t\t\t\tif ( mode === \"hide\" ) {\n\t\t\t\t\telem.hide();\n\t\t\t\t}\n\t\t\t\t$.effects.restore( elem, props );\n\t\t\t\tdone();\n\t\t\t}\n\t\t});\n};\n\n\n/*!\n * jQuery UI Effects Size 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/size-effect/\n */\n\n\nvar effectSize = $.effects.effect.size = function( o, done ) {\n\n\t// Create element\n\tvar original, baseline, factor,\n\t\tel = $( this ),\n\t\tprops0 = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"width\", \"height\", \"overflow\", \"opacity\" ],\n\n\t\t// Always restore\n\t\tprops1 = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"overflow\", \"opacity\" ],\n\n\t\t// Copy for children\n\t\tprops2 = [ \"width\", \"height\", \"overflow\" ],\n\t\tcProps = [ \"fontSize\" ],\n\t\tvProps = [ \"borderTopWidth\", \"borderBottomWidth\", \"paddingTop\", \"paddingBottom\" ],\n\t\thProps = [ \"borderLeftWidth\", \"borderRightWidth\", \"paddingLeft\", \"paddingRight\" ],\n\n\t\t// Set options\n\t\tmode = $.effects.setMode( el, o.mode || \"effect\" ),\n\t\trestore = o.restore || mode !== \"effect\",\n\t\tscale = o.scale || \"both\",\n\t\torigin = o.origin || [ \"middle\", \"center\" ],\n\t\tposition = el.css( \"position\" ),\n\t\tprops = restore ? props0 : props1,\n\t\tzero = {\n\t\t\theight: 0,\n\t\t\twidth: 0,\n\t\t\touterHeight: 0,\n\t\t\touterWidth: 0\n\t\t};\n\n\tif ( mode === \"show\" ) {\n\t\tel.show();\n\t}\n\toriginal = {\n\t\theight: el.height(),\n\t\twidth: el.width(),\n\t\touterHeight: el.outerHeight(),\n\t\touterWidth: el.outerWidth()\n\t};\n\n\tif ( o.mode === \"toggle\" && mode === \"show\" ) {\n\t\tel.from = o.to || zero;\n\t\tel.to = o.from || original;\n\t} else {\n\t\tel.from = o.from || ( mode === \"show\" ? zero : original );\n\t\tel.to = o.to || ( mode === \"hide\" ? zero : original );\n\t}\n\n\t// Set scaling factor\n\tfactor = {\n\t\tfrom: {\n\t\t\ty: el.from.height / original.height,\n\t\t\tx: el.from.width / original.width\n\t\t},\n\t\tto: {\n\t\t\ty: el.to.height / original.height,\n\t\t\tx: el.to.width / original.width\n\t\t}\n\t};\n\n\t// Scale the css box\n\tif ( scale === \"box\" || scale === \"both\" ) {\n\n\t\t// Vertical props scaling\n\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\tprops = props.concat( vProps );\n\t\t\tel.from = $.effects.setTransition( el, vProps, factor.from.y, el.from );\n\t\t\tel.to = $.effects.setTransition( el, vProps, factor.to.y, el.to );\n\t\t}\n\n\t\t// Horizontal props scaling\n\t\tif ( factor.from.x !== factor.to.x ) {\n\t\t\tprops = props.concat( hProps );\n\t\t\tel.from = $.effects.setTransition( el, hProps, factor.from.x, el.from );\n\t\t\tel.to = $.effects.setTransition( el, hProps, factor.to.x, el.to );\n\t\t}\n\t}\n\n\t// Scale the content\n\tif ( scale === \"content\" || scale === \"both\" ) {\n\n\t\t// Vertical props scaling\n\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\tprops = props.concat( cProps ).concat( props2 );\n\t\t\tel.from = $.effects.setTransition( el, cProps, factor.from.y, el.from );\n\t\t\tel.to = $.effects.setTransition( el, cProps, factor.to.y, el.to );\n\t\t}\n\t}\n\n\t$.effects.save( el, props );\n\tel.show();\n\t$.effects.createWrapper( el );\n\tel.css( \"overflow\", \"hidden\" ).css( el.from );\n\n\t// Adjust\n\tif (origin) { // Calculate baseline shifts\n\t\tbaseline = $.effects.getBaseline( origin, original );\n\t\tel.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y;\n\t\tel.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x;\n\t\tel.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y;\n\t\tel.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x;\n\t}\n\tel.css( el.from ); // set top & left\n\n\t// Animate\n\tif ( scale === \"content\" || scale === \"both\" ) { // Scale the children\n\n\t\t// Add margins/font-size\n\t\tvProps = vProps.concat([ \"marginTop\", \"marginBottom\" ]).concat(cProps);\n\t\thProps = hProps.concat([ \"marginLeft\", \"marginRight\" ]);\n\t\tprops2 = props0.concat(vProps).concat(hProps);\n\n\t\tel.find( \"*[width]\" ).each( function() {\n\t\t\tvar child = $( this ),\n\t\t\t\tc_original = {\n\t\t\t\t\theight: child.height(),\n\t\t\t\t\twidth: child.width(),\n\t\t\t\t\touterHeight: child.outerHeight(),\n\t\t\t\t\touterWidth: child.outerWidth()\n\t\t\t\t};\n\t\t\tif (restore) {\n\t\t\t\t$.effects.save(child, props2);\n\t\t\t}\n\n\t\t\tchild.from = {\n\t\t\t\theight: c_original.height * factor.from.y,\n\t\t\t\twidth: c_original.width * factor.from.x,\n\t\t\t\touterHeight: c_original.outerHeight * factor.from.y,\n\t\t\t\touterWidth: c_original.outerWidth * factor.from.x\n\t\t\t};\n\t\t\tchild.to = {\n\t\t\t\theight: c_original.height * factor.to.y,\n\t\t\t\twidth: c_original.width * factor.to.x,\n\t\t\t\touterHeight: c_original.height * factor.to.y,\n\t\t\t\touterWidth: c_original.width * factor.to.x\n\t\t\t};\n\n\t\t\t// Vertical props scaling\n\t\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\t\tchild.from = $.effects.setTransition( child, vProps, factor.from.y, child.from );\n\t\t\t\tchild.to = $.effects.setTransition( child, vProps, factor.to.y, child.to );\n\t\t\t}\n\n\t\t\t// Horizontal props scaling\n\t\t\tif ( factor.from.x !== factor.to.x ) {\n\t\t\t\tchild.from = $.effects.setTransition( child, hProps, factor.from.x, child.from );\n\t\t\t\tchild.to = $.effects.setTransition( child, hProps, factor.to.x, child.to );\n\t\t\t}\n\n\t\t\t// Animate children\n\t\t\tchild.css( child.from );\n\t\t\tchild.animate( child.to, o.duration, o.easing, function() {\n\n\t\t\t\t// Restore children\n\t\t\t\tif ( restore ) {\n\t\t\t\t\t$.effects.restore( child, props2 );\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t// Animate\n\tel.animate( el.to, {\n\t\tqueue: false,\n\t\tduration: o.duration,\n\t\teasing: o.easing,\n\t\tcomplete: function() {\n\t\t\tif ( el.to.opacity === 0 ) {\n\t\t\t\tel.css( \"opacity\", el.from.opacity );\n\t\t\t}\n\t\t\tif ( mode === \"hide\" ) {\n\t\t\t\tel.hide();\n\t\t\t}\n\t\t\t$.effects.restore( el, props );\n\t\t\tif ( !restore ) {\n\n\t\t\t\t// we need to calculate our new positioning based on the scaling\n\t\t\t\tif ( position === \"static\" ) {\n\t\t\t\t\tel.css({\n\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\ttop: el.to.top,\n\t\t\t\t\t\tleft: el.to.left\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.each([ \"top\", \"left\" ], function( idx, pos ) {\n\t\t\t\t\t\tel.css( pos, function( _, str ) {\n\t\t\t\t\t\t\tvar val = parseInt( str, 10 ),\n\t\t\t\t\t\t\t\ttoRef = idx ? el.to.left : el.to.top;\n\n\t\t\t\t\t\t\t// if original was \"auto\", recalculate the new value from wrapper\n\t\t\t\t\t\t\tif ( str === \"auto\" ) {\n\t\t\t\t\t\t\t\treturn toRef + \"px\";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn val + toRef + \"px\";\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$.effects.removeWrapper( el );\n\t\t\tdone();\n\t\t}\n\t});\n\n};\n\n\n/*!\n * jQuery UI Effects Scale 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/scale-effect/\n */\n\n\nvar effectScale = $.effects.effect.scale = function( o, done ) {\n\n\t// Create element\n\tvar el = $( this ),\n\t\toptions = $.extend( true, {}, o ),\n\t\tmode = $.effects.setMode( el, o.mode || \"effect\" ),\n\t\tpercent = parseInt( o.percent, 10 ) ||\n\t\t\t( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === \"hide\" ? 0 : 100 ) ),\n\t\tdirection = o.direction || \"both\",\n\t\torigin = o.origin,\n\t\toriginal = {\n\t\t\theight: el.height(),\n\t\t\twidth: el.width(),\n\t\t\touterHeight: el.outerHeight(),\n\t\t\touterWidth: el.outerWidth()\n\t\t},\n\t\tfactor = {\n\t\t\ty: direction !== \"horizontal\" ? (percent / 100) : 1,\n\t\t\tx: direction !== \"vertical\" ? (percent / 100) : 1\n\t\t};\n\n\t// We are going to pass this effect to the size effect:\n\toptions.effect = \"size\";\n\toptions.queue = false;\n\toptions.complete = done;\n\n\t// Set default origin and restore for show/hide\n\tif ( mode !== \"effect\" ) {\n\t\toptions.origin = origin || [ \"middle\", \"center\" ];\n\t\toptions.restore = true;\n\t}\n\n\toptions.from = o.from || ( mode === \"show\" ? {\n\t\theight: 0,\n\t\twidth: 0,\n\t\touterHeight: 0,\n\t\touterWidth: 0\n\t} : original );\n\toptions.to = {\n\t\theight: original.height * factor.y,\n\t\twidth: original.width * factor.x,\n\t\touterHeight: original.outerHeight * factor.y,\n\t\touterWidth: original.outerWidth * factor.x\n\t};\n\n\t// Fade option to support puff\n\tif ( options.fade ) {\n\t\tif ( mode === \"show\" ) {\n\t\t\toptions.from.opacity = 0;\n\t\t\toptions.to.opacity = 1;\n\t\t}\n\t\tif ( mode === \"hide\" ) {\n\t\t\toptions.from.opacity = 1;\n\t\t\toptions.to.opacity = 0;\n\t\t}\n\t}\n\n\t// Animate\n\tel.effect( options );\n\n};\n\n\n/*!\n * jQuery UI Effects Puff 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/puff-effect/\n */\n\n\nvar effectPuff = $.effects.effect.puff = function( o, done ) {\n\tvar elem = $( this ),\n\t\tmode = $.effects.setMode( elem, o.mode || \"hide\" ),\n\t\thide = mode === \"hide\",\n\t\tpercent = parseInt( o.percent, 10 ) || 150,\n\t\tfactor = percent / 100,\n\t\toriginal = {\n\t\t\theight: elem.height(),\n\t\t\twidth: elem.width(),\n\t\t\touterHeight: elem.outerHeight(),\n\t\t\touterWidth: elem.outerWidth()\n\t\t};\n\n\t$.extend( o, {\n\t\teffect: \"scale\",\n\t\tqueue: false,\n\t\tfade: true,\n\t\tmode: mode,\n\t\tcomplete: done,\n\t\tpercent: hide ? percent : 100,\n\t\tfrom: hide ?\n\t\t\toriginal :\n\t\t\t{\n\t\t\t\theight: original.height * factor,\n\t\t\t\twidth: original.width * factor,\n\t\t\t\touterHeight: original.outerHeight * factor,\n\t\t\t\touterWidth: original.outerWidth * factor\n\t\t\t}\n\t});\n\n\telem.effect( o );\n};\n\n\n/*!\n * jQuery UI Effects Pulsate 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/pulsate-effect/\n */\n\n\nvar effectPulsate = $.effects.effect.pulsate = function( o, done ) {\n\tvar elem = $( this ),\n\t\tmode = $.effects.setMode( elem, o.mode || \"show\" ),\n\t\tshow = mode === \"show\",\n\t\thide = mode === \"hide\",\n\t\tshowhide = ( show || mode === \"hide\" ),\n\n\t\t// showing or hiding leaves of the \"last\" animation\n\t\tanims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),\n\t\tduration = o.duration / anims,\n\t\tanimateTo = 0,\n\t\tqueue = elem.queue(),\n\t\tqueuelen = queue.length,\n\t\ti;\n\n\tif ( show || !elem.is(\":visible\")) {\n\t\telem.css( \"opacity\", 0 ).show();\n\t\tanimateTo = 1;\n\t}\n\n\t// anims - 1 opacity \"toggles\"\n\tfor ( i = 1; i < anims; i++ ) {\n\t\telem.animate({\n\t\t\topacity: animateTo\n\t\t}, duration, o.easing );\n\t\tanimateTo = 1 - animateTo;\n\t}\n\n\telem.animate({\n\t\topacity: animateTo\n\t}, duration, o.easing);\n\n\telem.queue(function() {\n\t\tif ( hide ) {\n\t\t\telem.hide();\n\t\t}\n\t\tdone();\n\t});\n\n\t// We just queued up \"anims\" animations, we need to put them next in the queue\n\tif ( queuelen > 1 ) {\n\t\tqueue.splice.apply( queue,\n\t\t\t[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );\n\t}\n\telem.dequeue();\n};\n\n\n/*!\n * jQuery UI Effects Shake 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/shake-effect/\n */\n\n\nvar effectShake = $.effects.effect.shake = function( o, done ) {\n\n\tvar el = $( this ),\n\t\tprops = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"height\", \"width\" ],\n\t\tmode = $.effects.setMode( el, o.mode || \"effect\" ),\n\t\tdirection = o.direction || \"left\",\n\t\tdistance = o.distance || 20,\n\t\ttimes = o.times || 3,\n\t\tanims = times * 2 + 1,\n\t\tspeed = Math.round( o.duration / anims ),\n\t\tref = (direction === \"up\" || direction === \"down\") ? \"top\" : \"left\",\n\t\tpositiveMotion = (direction === \"up\" || direction === \"left\"),\n\t\tanimation = {},\n\t\tanimation1 = {},\n\t\tanimation2 = {},\n\t\ti,\n\n\t\t// we will need to re-assemble the queue to stack our animations in place\n\t\tqueue = el.queue(),\n\t\tqueuelen = queue.length;\n\n\t$.effects.save( el, props );\n\tel.show();\n\t$.effects.createWrapper( el );\n\n\t// Animation\n\tanimation[ ref ] = ( positiveMotion ? \"-=\" : \"+=\" ) + distance;\n\tanimation1[ ref ] = ( positiveMotion ? \"+=\" : \"-=\" ) + distance * 2;\n\tanimation2[ ref ] = ( positiveMotion ? \"-=\" : \"+=\" ) + distance * 2;\n\n\t// Animate\n\tel.animate( animation, speed, o.easing );\n\n\t// Shakes\n\tfor ( i = 1; i < times; i++ ) {\n\t\tel.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing );\n\t}\n\tel\n\t\t.animate( animation1, speed, o.easing )\n\t\t.animate( animation, speed / 2, o.easing )\n\t\t.queue(function() {\n\t\t\tif ( mode === \"hide\" ) {\n\t\t\t\tel.hide();\n\t\t\t}\n\t\t\t$.effects.restore( el, props );\n\t\t\t$.effects.removeWrapper( el );\n\t\t\tdone();\n\t\t});\n\n\t// inject all the animations we just queued to be first in line (after \"inprogress\")\n\tif ( queuelen > 1) {\n\t\tqueue.splice.apply( queue,\n\t\t\t[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );\n\t}\n\tel.dequeue();\n\n};\n\n\n/*!\n * jQuery UI Effects Slide 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/slide-effect/\n */\n\n\nvar effectSlide = $.effects.effect.slide = function( o, done ) {\n\n\t// Create element\n\tvar el = $( this ),\n\t\tprops = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"width\", \"height\" ],\n\t\tmode = $.effects.setMode( el, o.mode || \"show\" ),\n\t\tshow = mode === \"show\",\n\t\tdirection = o.direction || \"left\",\n\t\tref = (direction === \"up\" || direction === \"down\") ? \"top\" : \"left\",\n\t\tpositiveMotion = (direction === \"up\" || direction === \"left\"),\n\t\tdistance,\n\t\tanimation = {};\n\n\t// Adjust\n\t$.effects.save( el, props );\n\tel.show();\n\tdistance = o.distance || el[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]( true );\n\n\t$.effects.createWrapper( el ).css({\n\t\toverflow: \"hidden\"\n\t});\n\n\tif ( show ) {\n\t\tel.css( ref, positiveMotion ? (isNaN(distance) ? \"-\" + distance : -distance) : distance );\n\t}\n\n\t// Animation\n\tanimation[ ref ] = ( show ?\n\t\t( positiveMotion ? \"+=\" : \"-=\") :\n\t\t( positiveMotion ? \"-=\" : \"+=\")) +\n\t\tdistance;\n\n\t// Animate\n\tel.animate( animation, {\n\t\tqueue: false,\n\t\tduration: o.duration,\n\t\teasing: o.easing,\n\t\tcomplete: function() {\n\t\t\tif ( mode === \"hide\" ) {\n\t\t\t\tel.hide();\n\t\t\t}\n\t\t\t$.effects.restore( el, props );\n\t\t\t$.effects.removeWrapper( el );\n\t\t\tdone();\n\t\t}\n\t});\n};\n\n\n/*!\n * jQuery UI Effects Transfer 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/transfer-effect/\n */\n\n\nvar effectTransfer = $.effects.effect.transfer = function( o, done ) {\n\tvar elem = $( this ),\n\t\ttarget = $( o.to ),\n\t\ttargetFixed = target.css( \"position\" ) === \"fixed\",\n\t\tbody = $(\"body\"),\n\t\tfixTop = targetFixed ? body.scrollTop() : 0,\n\t\tfixLeft = targetFixed ? body.scrollLeft() : 0,\n\t\tendPosition = target.offset(),\n\t\tanimation = {\n\t\t\ttop: endPosition.top - fixTop,\n\t\t\tleft: endPosition.left - fixLeft,\n\t\t\theight: target.innerHeight(),\n\t\t\twidth: target.innerWidth()\n\t\t},\n\t\tstartPosition = elem.offset(),\n\t\ttransfer = $( \"<div class='ui-effects-transfer'></div>\" )\n\t\t\t.appendTo( document.body )\n\t\t\t.addClass( o.className )\n\t\t\t.css({\n\t\t\t\ttop: startPosition.top - fixTop,\n\t\t\t\tleft: startPosition.left - fixLeft,\n\t\t\t\theight: elem.innerHeight(),\n\t\t\t\twidth: elem.innerWidth(),\n\t\t\t\tposition: targetFixed ? \"fixed\" : \"absolute\"\n\t\t\t})\n\t\t\t.animate( animation, o.duration, o.easing, function() {\n\t\t\t\ttransfer.remove();\n\t\t\t\tdone();\n\t\t\t});\n};\n\n\n/*!\n * jQuery UI Progressbar 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/progressbar/\n */\n\n\nvar progressbar = $.widget( \"ui.progressbar\", {\n\tversion: \"1.11.4\",\n\toptions: {\n\t\tmax: 100,\n\t\tvalue: 0,\n\n\t\tchange: null,\n\t\tcomplete: null\n\t},\n\n\tmin: 0,\n\n\t_create: function() {\n\t\t// Constrain initial value\n\t\tthis.oldValue = this.options.value = this._constrainedValue();\n\n\t\tthis.element\n\t\t\t.addClass( \"ui-progressbar ui-widget ui-widget-content ui-corner-all\" )\n\t\t\t.attr({\n\t\t\t\t// Only set static values, aria-valuenow and aria-valuemax are\n\t\t\t\t// set inside _refreshValue()\n\t\t\t\trole: \"progressbar\",\n\t\t\t\t\"aria-valuemin\": this.min\n\t\t\t});\n\n\t\tthis.valueDiv = $( \"<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>\" )\n\t\t\t.appendTo( this.element );\n\n\t\tthis._refreshValue();\n\t},\n\n\t_destroy: function() {\n\t\tthis.element\n\t\t\t.removeClass( \"ui-progressbar ui-widget ui-widget-content ui-corner-all\" )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"aria-valuemin\" )\n\t\t\t.removeAttr( \"aria-valuemax\" )\n\t\t\t.removeAttr( \"aria-valuenow\" );\n\n\t\tthis.valueDiv.remove();\n\t},\n\n\tvalue: function( newValue ) {\n\t\tif ( newValue === undefined ) {\n\t\t\treturn this.options.value;\n\t\t}\n\n\t\tthis.options.value = this._constrainedValue( newValue );\n\t\tthis._refreshValue();\n\t},\n\n\t_constrainedValue: function( newValue ) {\n\t\tif ( newValue === undefined ) {\n\t\t\tnewValue = this.options.value;\n\t\t}\n\n\t\tthis.indeterminate = newValue === false;\n\n\t\t// sanitize value\n\t\tif ( typeof newValue !== \"number\" ) {\n\t\t\tnewValue = 0;\n\t\t}\n\n\t\treturn this.indeterminate ? false :\n\t\t\tMath.min( this.options.max, Math.max( this.min, newValue ) );\n\t},\n\n\t_setOptions: function( options ) {\n\t\t// Ensure \"value\" option is set after other values (like max)\n\t\tvar value = options.value;\n\t\tdelete options.value;\n\n\t\tthis._super( options );\n\n\t\tthis.options.value = this._constrainedValue( value );\n\t\tthis._refreshValue();\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"max\" ) {\n\t\t\t// Don't allow a max less than min\n\t\t\tvalue = Math.max( this.min, value );\n\t\t}\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.element\n\t\t\t\t.toggleClass( \"ui-state-disabled\", !!value )\n\t\t\t\t.attr( \"aria-disabled\", value );\n\t\t}\n\t\tthis._super( key, value );\n\t},\n\n\t_percentage: function() {\n\t\treturn this.indeterminate ? 100 : 100 * ( this.options.value - this.min ) / ( this.options.max - this.min );\n\t},\n\n\t_refreshValue: function() {\n\t\tvar value = this.options.value,\n\t\t\tpercentage = this._percentage();\n\n\t\tthis.valueDiv\n\t\t\t.toggle( this.indeterminate || value > this.min )\n\t\t\t.toggleClass( \"ui-corner-right\", value === this.options.max )\n\t\t\t.width( percentage.toFixed(0) + \"%\" );\n\n\t\tthis.element.toggleClass( \"ui-progressbar-indeterminate\", this.indeterminate );\n\n\t\tif ( this.indeterminate ) {\n\t\t\tthis.element.removeAttr( \"aria-valuenow\" );\n\t\t\tif ( !this.overlayDiv ) {\n\t\t\t\tthis.overlayDiv = $( \"<div class='ui-progressbar-overlay'></div>\" ).appendTo( this.valueDiv );\n\t\t\t}\n\t\t} else {\n\t\t\tthis.element.attr({\n\t\t\t\t\"aria-valuemax\": this.options.max,\n\t\t\t\t\"aria-valuenow\": value\n\t\t\t});\n\t\t\tif ( this.overlayDiv ) {\n\t\t\t\tthis.overlayDiv.remove();\n\t\t\t\tthis.overlayDiv = null;\n\t\t\t}\n\t\t}\n\n\t\tif ( this.oldValue !== value ) {\n\t\t\tthis.oldValue = value;\n\t\t\tthis._trigger( \"change\" );\n\t\t}\n\t\tif ( value === this.options.max ) {\n\t\t\tthis._trigger( \"complete\" );\n\t\t}\n\t}\n});\n\n\n/*!\n * jQuery UI Selectable 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/selectable/\n */\n\n\nvar selectable = $.widget(\"ui.selectable\", $.ui.mouse, {\n\tversion: \"1.11.4\",\n\toptions: {\n\t\tappendTo: \"body\",\n\t\tautoRefresh: true,\n\t\tdistance: 0,\n\t\tfilter: \"*\",\n\t\ttolerance: \"touch\",\n\n\t\t// callbacks\n\t\tselected: null,\n\t\tselecting: null,\n\t\tstart: null,\n\t\tstop: null,\n\t\tunselected: null,\n\t\tunselecting: null\n\t},\n\t_create: function() {\n\t\tvar selectees,\n\t\t\tthat = this;\n\n\t\tthis.element.addClass(\"ui-selectable\");\n\n\t\tthis.dragged = false;\n\n\t\t// cache selectee children based on filter\n\t\tthis.refresh = function() {\n\t\t\tselectees = $(that.options.filter, that.element[0]);\n\t\t\tselectees.addClass(\"ui-selectee\");\n\t\t\tselectees.each(function() {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\tpos = $this.offset();\n\t\t\t\t$.data(this, \"selectable-item\", {\n\t\t\t\t\telement: this,\n\t\t\t\t\t$element: $this,\n\t\t\t\t\tleft: pos.left,\n\t\t\t\t\ttop: pos.top,\n\t\t\t\t\tright: pos.left + $this.outerWidth(),\n\t\t\t\t\tbottom: pos.top + $this.outerHeight(),\n\t\t\t\t\tstartselected: false,\n\t\t\t\t\tselected: $this.hasClass(\"ui-selected\"),\n\t\t\t\t\tselecting: $this.hasClass(\"ui-selecting\"),\n\t\t\t\t\tunselecting: $this.hasClass(\"ui-unselecting\")\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\tthis.refresh();\n\n\t\tthis.selectees = selectees.addClass(\"ui-selectee\");\n\n\t\tthis._mouseInit();\n\n\t\tthis.helper = $(\"<div class='ui-selectable-helper'></div>\");\n\t},\n\n\t_destroy: function() {\n\t\tthis.selectees\n\t\t\t.removeClass(\"ui-selectee\")\n\t\t\t.removeData(\"selectable-item\");\n\t\tthis.element\n\t\t\t.removeClass(\"ui-selectable ui-selectable-disabled\");\n\t\tthis._mouseDestroy();\n\t},\n\n\t_mouseStart: function(event) {\n\t\tvar that = this,\n\t\t\toptions = this.options;\n\n\t\tthis.opos = [ event.pageX, event.pageY ];\n\n\t\tif (this.options.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectees = $(options.filter, this.element[0]);\n\n\t\tthis._trigger(\"start\", event);\n\n\t\t$(options.appendTo).append(this.helper);\n\t\t// position helper (lasso)\n\t\tthis.helper.css({\n\t\t\t\"left\": event.pageX,\n\t\t\t\"top\": event.pageY,\n\t\t\t\"width\": 0,\n\t\t\t\"height\": 0\n\t\t});\n\n\t\tif (options.autoRefresh) {\n\t\t\tthis.refresh();\n\t\t}\n\n\t\tthis.selectees.filter(\".ui-selected\").each(function() {\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\n\t\t\tselectee.startselected = true;\n\t\t\tif (!event.metaKey && !event.ctrlKey) {\n\t\t\t\tselectee.$element.removeClass(\"ui-selected\");\n\t\t\t\tselectee.selected = false;\n\t\t\t\tselectee.$element.addClass(\"ui-unselecting\");\n\t\t\t\tselectee.unselecting = true;\n\t\t\t\t// selectable UNSELECTING callback\n\t\t\t\tthat._trigger(\"unselecting\", event, {\n\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t$(event.target).parents().addBack().each(function() {\n\t\t\tvar doSelect,\n\t\t\t\tselectee = $.data(this, \"selectable-item\");\n\t\t\tif (selectee) {\n\t\t\t\tdoSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass(\"ui-selected\");\n\t\t\t\tselectee.$element\n\t\t\t\t\t.removeClass(doSelect ? \"ui-unselecting\" : \"ui-selected\")\n\t\t\t\t\t.addClass(doSelect ? \"ui-selecting\" : \"ui-unselecting\");\n\t\t\t\tselectee.unselecting = !doSelect;\n\t\t\t\tselectee.selecting = doSelect;\n\t\t\t\tselectee.selected = doSelect;\n\t\t\t\t// selectable (UN)SELECTING callback\n\t\t\t\tif (doSelect) {\n\t\t\t\t\tthat._trigger(\"selecting\", event, {\n\t\t\t\t\t\tselecting: selectee.element\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthat._trigger(\"unselecting\", event, {\n\t\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\n\t},\n\n\t_mouseDrag: function(event) {\n\n\t\tthis.dragged = true;\n\n\t\tif (this.options.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tmp,\n\t\t\tthat = this,\n\t\t\toptions = this.options,\n\t\t\tx1 = this.opos[0],\n\t\t\ty1 = this.opos[1],\n\t\t\tx2 = event.pageX,\n\t\t\ty2 = event.pageY;\n\n\t\tif (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; }\n\t\tif (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; }\n\t\tthis.helper.css({ left: x1, top: y1, width: x2 - x1, height: y2 - y1 });\n\n\t\tthis.selectees.each(function() {\n\t\t\tvar selectee = $.data(this, \"selectable-item\"),\n\t\t\t\thit = false;\n\n\t\t\t//prevent helper from being selected if appendTo: selectable\n\t\t\tif (!selectee || selectee.element === that.element[0]) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (options.tolerance === \"touch\") {\n\t\t\t\thit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );\n\t\t\t} else if (options.tolerance === \"fit\") {\n\t\t\t\thit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);\n\t\t\t}\n\n\t\t\tif (hit) {\n\t\t\t\t// SELECT\n\t\t\t\tif (selectee.selected) {\n\t\t\t\t\tselectee.$element.removeClass(\"ui-selected\");\n\t\t\t\t\tselectee.selected = false;\n\t\t\t\t}\n\t\t\t\tif (selectee.unselecting) {\n\t\t\t\t\tselectee.$element.removeClass(\"ui-unselecting\");\n\t\t\t\t\tselectee.unselecting = false;\n\t\t\t\t}\n\t\t\t\tif (!selectee.selecting) {\n\t\t\t\t\tselectee.$element.addClass(\"ui-selecting\");\n\t\t\t\t\tselectee.selecting = true;\n\t\t\t\t\t// selectable SELECTING callback\n\t\t\t\t\tthat._trigger(\"selecting\", event, {\n\t\t\t\t\t\tselecting: selectee.element\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// UNSELECT\n\t\t\t\tif (selectee.selecting) {\n\t\t\t\t\tif ((event.metaKey || event.ctrlKey) && selectee.startselected) {\n\t\t\t\t\t\tselectee.$element.removeClass(\"ui-selecting\");\n\t\t\t\t\t\tselectee.selecting = false;\n\t\t\t\t\t\tselectee.$element.addClass(\"ui-selected\");\n\t\t\t\t\t\tselectee.selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselectee.$element.removeClass(\"ui-selecting\");\n\t\t\t\t\t\tselectee.selecting = false;\n\t\t\t\t\t\tif (selectee.startselected) {\n\t\t\t\t\t\t\tselectee.$element.addClass(\"ui-unselecting\");\n\t\t\t\t\t\t\tselectee.unselecting = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// selectable UNSELECTING callback\n\t\t\t\t\t\tthat._trigger(\"unselecting\", event, {\n\t\t\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (selectee.selected) {\n\t\t\t\t\tif (!event.metaKey && !event.ctrlKey && !selectee.startselected) {\n\t\t\t\t\t\tselectee.$element.removeClass(\"ui-selected\");\n\t\t\t\t\t\tselectee.selected = false;\n\n\t\t\t\t\t\tselectee.$element.addClass(\"ui-unselecting\");\n\t\t\t\t\t\tselectee.unselecting = true;\n\t\t\t\t\t\t// selectable UNSELECTING callback\n\t\t\t\t\t\tthat._trigger(\"unselecting\", event, {\n\t\t\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function(event) {\n\t\tvar that = this;\n\n\t\tthis.dragged = false;\n\n\t\t$(\".ui-unselecting\", this.element[0]).each(function() {\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\n\t\t\tselectee.$element.removeClass(\"ui-unselecting\");\n\t\t\tselectee.unselecting = false;\n\t\t\tselectee.startselected = false;\n\t\t\tthat._trigger(\"unselected\", event, {\n\t\t\t\tunselected: selectee.element\n\t\t\t});\n\t\t});\n\t\t$(\".ui-selecting\", this.element[0]).each(function() {\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\n\t\t\tselectee.$element.removeClass(\"ui-selecting\").addClass(\"ui-selected\");\n\t\t\tselectee.selecting = false;\n\t\t\tselectee.selected = true;\n\t\t\tselectee.startselected = true;\n\t\t\tthat._trigger(\"selected\", event, {\n\t\t\t\tselected: selectee.element\n\t\t\t});\n\t\t});\n\t\tthis._trigger(\"stop\", event);\n\n\t\tthis.helper.remove();\n\n\t\treturn false;\n\t}\n\n});\n\n\n/*!\n * jQuery UI Selectmenu 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/selectmenu\n */\n\n\nvar selectmenu = $.widget( \"ui.selectmenu\", {\n\tversion: \"1.11.4\",\n\tdefaultElement: \"<select>\",\n\toptions: {\n\t\tappendTo: null,\n\t\tdisabled: null,\n\t\ticons: {\n\t\t\tbutton: \"ui-icon-triangle-1-s\"\n\t\t},\n\t\tposition: {\n\t\t\tmy: \"left top\",\n\t\t\tat: \"left bottom\",\n\t\t\tcollision: \"none\"\n\t\t},\n\t\twidth: null,\n\n\t\t// callbacks\n\t\tchange: null,\n\t\tclose: null,\n\t\tfocus: null,\n\t\topen: null,\n\t\tselect: null\n\t},\n\n\t_create: function() {\n\t\tvar selectmenuId = this.element.uniqueId().attr( \"id\" );\n\t\tthis.ids = {\n\t\t\telement: selectmenuId,\n\t\t\tbutton: selectmenuId + \"-button\",\n\t\t\tmenu: selectmenuId + \"-menu\"\n\t\t};\n\n\t\tthis._drawButton();\n\t\tthis._drawMenu();\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis.disable();\n\t\t}\n\t},\n\n\t_drawButton: function() {\n\t\tvar that = this;\n\n\t\t// Associate existing label with the new button\n\t\tthis.label = $( \"label[for='\" + this.ids.element + \"']\" ).attr( \"for\", this.ids.button );\n\t\tthis._on( this.label, {\n\t\t\tclick: function( event ) {\n\t\t\t\tthis.button.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t});\n\n\t\t// Hide original select element\n\t\tthis.element.hide();\n\n\t\t// Create button\n\t\tthis.button = $( \"<span>\", {\n\t\t\t\"class\": \"ui-selectmenu-button ui-widget ui-state-default ui-corner-all\",\n\t\t\ttabindex: this.options.disabled ? -1 : 0,\n\t\t\tid: this.ids.button,\n\t\t\trole: \"combobox\",\n\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\"aria-autocomplete\": \"list\",\n\t\t\t\"aria-owns\": this.ids.menu,\n\t\t\t\"aria-haspopup\": \"true\"\n\t\t})\n\t\t\t.insertAfter( this.element );\n\n\t\t$( \"<span>\", {\n\t\t\t\"class\": \"ui-icon \" + this.options.icons.button\n\t\t})\n\t\t\t.prependTo( this.button );\n\n\t\tthis.buttonText = $( \"<span>\", {\n\t\t\t\"class\": \"ui-selectmenu-text\"\n\t\t})\n\t\t\t.appendTo( this.button );\n\n\t\tthis._setText( this.buttonText, this.element.find( \"option:selected\" ).text() );\n\t\tthis._resizeButton();\n\n\t\tthis._on( this.button, this._buttonEvents );\n\t\tthis.button.one( \"focusin\", function() {\n\n\t\t\t// Delay rendering the menu items until the button receives focus.\n\t\t\t// The menu may have already been rendered via a programmatic open.\n\t\t\tif ( !that.menuItems ) {\n\t\t\t\tthat._refreshMenu();\n\t\t\t}\n\t\t});\n\t\tthis._hoverable( this.button );\n\t\tthis._focusable( this.button );\n\t},\n\n\t_drawMenu: function() {\n\t\tvar that = this;\n\n\t\t// Create menu\n\t\tthis.menu = $( \"<ul>\", {\n\t\t\t\"aria-hidden\": \"true\",\n\t\t\t\"aria-labelledby\": this.ids.button,\n\t\t\tid: this.ids.menu\n\t\t});\n\n\t\t// Wrap menu\n\t\tthis.menuWrap = $( \"<div>\", {\n\t\t\t\"class\": \"ui-selectmenu-menu ui-front\"\n\t\t})\n\t\t\t.append( this.menu )\n\t\t\t.appendTo( this._appendTo() );\n\n\t\t// Initialize menu widget\n\t\tthis.menuInstance = this.menu\n\t\t\t.menu({\n\t\t\t\trole: \"listbox\",\n\t\t\t\tselect: function( event, ui ) {\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// support: IE8\n\t\t\t\t\t// If the item was selected via a click, the text selection\n\t\t\t\t\t// will be destroyed in IE\n\t\t\t\t\tthat._setSelection();\n\n\t\t\t\t\tthat._select( ui.item.data( \"ui-selectmenu-item\" ), event );\n\t\t\t\t},\n\t\t\t\tfocus: function( event, ui ) {\n\t\t\t\t\tvar item = ui.item.data( \"ui-selectmenu-item\" );\n\n\t\t\t\t\t// Prevent inital focus from firing and check if its a newly focused item\n\t\t\t\t\tif ( that.focusIndex != null && item.index !== that.focusIndex ) {\n\t\t\t\t\t\tthat._trigger( \"focus\", event, { item: item } );\n\t\t\t\t\t\tif ( !that.isOpen ) {\n\t\t\t\t\t\t\tthat._select( item, event );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthat.focusIndex = item.index;\n\n\t\t\t\t\tthat.button.attr( \"aria-activedescendant\",\n\t\t\t\t\t\tthat.menuItems.eq( item.index ).attr( \"id\" ) );\n\t\t\t\t}\n\t\t\t})\n\t\t\t.menu( \"instance\" );\n\n\t\t// Adjust menu styles to dropdown\n\t\tthis.menu\n\t\t\t.addClass( \"ui-corner-bottom\" )\n\t\t\t.removeClass( \"ui-corner-all\" );\n\n\t\t// Don't close the menu on mouseleave\n\t\tthis.menuInstance._off( this.menu, \"mouseleave\" );\n\n\t\t// Cancel the menu's collapseAll on document click\n\t\tthis.menuInstance._closeOnDocumentClick = function() {\n\t\t\treturn false;\n\t\t};\n\n\t\t// Selects often contain empty items, but never contain dividers\n\t\tthis.menuInstance._isDivider = function() {\n\t\t\treturn false;\n\t\t};\n\t},\n\n\trefresh: function() {\n\t\tthis._refreshMenu();\n\t\tthis._setText( this.buttonText, this._getSelectedItem().text() );\n\t\tif ( !this.options.width ) {\n\t\t\tthis._resizeButton();\n\t\t}\n\t},\n\n\t_refreshMenu: function() {\n\t\tthis.menu.empty();\n\n\t\tvar item,\n\t\t\toptions = this.element.find( \"option\" );\n\n\t\tif ( !options.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._parseOptions( options );\n\t\tthis._renderMenu( this.menu, this.items );\n\n\t\tthis.menuInstance.refresh();\n\t\tthis.menuItems = this.menu.find( \"li\" ).not( \".ui-selectmenu-optgroup\" );\n\n\t\titem = this._getSelectedItem();\n\n\t\t// Update the menu to have the correct item focused\n\t\tthis.menuInstance.focus( null, item );\n\t\tthis._setAria( item.data( \"ui-selectmenu-item\" ) );\n\n\t\t// Set disabled state\n\t\tthis._setOption( \"disabled\", this.element.prop( \"disabled\" ) );\n\t},\n\n\topen: function( event ) {\n\t\tif ( this.options.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If this is the first time the menu is being opened, render the items\n\t\tif ( !this.menuItems ) {\n\t\t\tthis._refreshMenu();\n\t\t} else {\n\n\t\t\t// Menu clears focus on close, reset focus to selected item\n\t\t\tthis.menu.find( \".ui-state-focus\" ).removeClass( \"ui-state-focus\" );\n\t\t\tthis.menuInstance.focus( null, this._getSelectedItem() );\n\t\t}\n\n\t\tthis.isOpen = true;\n\t\tthis._toggleAttr();\n\t\tthis._resizeMenu();\n\t\tthis._position();\n\n\t\tthis._on( this.document, this._documentClick );\n\n\t\tthis._trigger( \"open\", event );\n\t},\n\n\t_position: function() {\n\t\tthis.menuWrap.position( $.extend( { of: this.button }, this.options.position ) );\n\t},\n\n\tclose: function( event ) {\n\t\tif ( !this.isOpen ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isOpen = false;\n\t\tthis._toggleAttr();\n\n\t\tthis.range = null;\n\t\tthis._off( this.document );\n\n\t\tthis._trigger( \"close\", event );\n\t},\n\n\twidget: function() {\n\t\treturn this.button;\n\t},\n\n\tmenuWidget: function() {\n\t\treturn this.menu;\n\t},\n\n\t_renderMenu: function( ul, items ) {\n\t\tvar that = this,\n\t\t\tcurrentOptgroup = \"\";\n\n\t\t$.each( items, function( index, item ) {\n\t\t\tif ( item.optgroup !== currentOptgroup ) {\n\t\t\t\t$( \"<li>\", {\n\t\t\t\t\t\"class\": \"ui-selectmenu-optgroup ui-menu-divider\" +\n\t\t\t\t\t\t( item.element.parent( \"optgroup\" ).prop( \"disabled\" ) ?\n\t\t\t\t\t\t\t\" ui-state-disabled\" :\n\t\t\t\t\t\t\t\"\" ),\n\t\t\t\t\ttext: item.optgroup\n\t\t\t\t})\n\t\t\t\t\t.appendTo( ul );\n\n\t\t\t\tcurrentOptgroup = item.optgroup;\n\t\t\t}\n\n\t\t\tthat._renderItemData( ul, item );\n\t\t});\n\t},\n\n\t_renderItemData: function( ul, item ) {\n\t\treturn this._renderItem( ul, item ).data( \"ui-selectmenu-item\", item );\n\t},\n\n\t_renderItem: function( ul, item ) {\n\t\tvar li = $( \"<li>\" );\n\n\t\tif ( item.disabled ) {\n\t\t\tli.addClass( \"ui-state-disabled\" );\n\t\t}\n\t\tthis._setText( li, item.label );\n\n\t\treturn li.appendTo( ul );\n\t},\n\n\t_setText: function( element, value ) {\n\t\tif ( value ) {\n\t\t\telement.text( value );\n\t\t} else {\n\t\t\telement.html( \" \" );\n\t\t}\n\t},\n\n\t_move: function( direction, event ) {\n\t\tvar item, next,\n\t\t\tfilter = \".ui-menu-item\";\n\n\t\tif ( this.isOpen ) {\n\t\t\titem = this.menuItems.eq( this.focusIndex );\n\t\t} else {\n\t\t\titem = this.menuItems.eq( this.element[ 0 ].selectedIndex );\n\t\t\tfilter += \":not(.ui-state-disabled)\";\n\t\t}\n\n\t\tif ( direction === \"first\" || direction === \"last\" ) {\n\t\t\tnext = item[ direction === \"first\" ? \"prevAll\" : \"nextAll\" ]( filter ).eq( -1 );\n\t\t} else {\n\t\t\tnext = item[ direction + \"All\" ]( filter ).eq( 0 );\n\t\t}\n\n\t\tif ( next.length ) {\n\t\t\tthis.menuInstance.focus( event, next );\n\t\t}\n\t},\n\n\t_getSelectedItem: function() {\n\t\treturn this.menuItems.eq( this.element[ 0 ].selectedIndex );\n\t},\n\n\t_toggle: function( event ) {\n\t\tthis[ this.isOpen ? \"close\" : \"open\" ]( event );\n\t},\n\n\t_setSelection: function() {\n\t\tvar selection;\n\n\t\tif ( !this.range ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( window.getSelection ) {\n\t\t\tselection = window.getSelection();\n\t\t\tselection.removeAllRanges();\n\t\t\tselection.addRange( this.range );\n\n\t\t// support: IE8\n\t\t} else {\n\t\t\tthis.range.select();\n\t\t}\n\n\t\t// support: IE\n\t\t// Setting the text selection kills the button focus in IE, but\n\t\t// restoring the focus doesn't kill the selection.\n\t\tthis.button.focus();\n\t},\n\n\t_documentClick: {\n\t\tmousedown: function( event ) {\n\t\t\tif ( !this.isOpen ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( !$( event.target ).closest( \".ui-selectmenu-menu, #\" + this.ids.button ).length ) {\n\t\t\t\tthis.close( event );\n\t\t\t}\n\t\t}\n\t},\n\n\t_buttonEvents: {\n\n\t\t// Prevent text selection from being reset when interacting with the selectmenu (#10144)\n\t\tmousedown: function() {\n\t\t\tvar selection;\n\n\t\t\tif ( window.getSelection ) {\n\t\t\t\tselection = window.getSelection();\n\t\t\t\tif ( selection.rangeCount ) {\n\t\t\t\t\tthis.range = selection.getRangeAt( 0 );\n\t\t\t\t}\n\n\t\t\t// support: IE8\n\t\t\t} else {\n\t\t\t\tthis.range = document.selection.createRange();\n\t\t\t}\n\t\t},\n\n\t\tclick: function( event ) {\n\t\t\tthis._setSelection();\n\t\t\tthis._toggle( event );\n\t\t},\n\n\t\tkeydown: function( event ) {\n\t\t\tvar preventDefault = true;\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase $.ui.keyCode.TAB:\n\t\t\t\tcase $.ui.keyCode.ESCAPE:\n\t\t\t\t\tthis.close( event );\n\t\t\t\t\tpreventDefault = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.ENTER:\n\t\t\t\t\tif ( this.isOpen ) {\n\t\t\t\t\t\tthis._selectFocusedItem( event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.UP:\n\t\t\t\t\tif ( event.altKey ) {\n\t\t\t\t\t\tthis._toggle( event );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._move( \"prev\", event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.DOWN:\n\t\t\t\t\tif ( event.altKey ) {\n\t\t\t\t\t\tthis._toggle( event );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._move( \"next\", event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.SPACE:\n\t\t\t\t\tif ( this.isOpen ) {\n\t\t\t\t\t\tthis._selectFocusedItem( event );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._toggle( event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.LEFT:\n\t\t\t\t\tthis._move( \"prev\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.RIGHT:\n\t\t\t\t\tthis._move( \"next\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.HOME:\n\t\t\t\tcase $.ui.keyCode.PAGE_UP:\n\t\t\t\t\tthis._move( \"first\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.END:\n\t\t\t\tcase $.ui.keyCode.PAGE_DOWN:\n\t\t\t\t\tthis._move( \"last\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.menu.trigger( event );\n\t\t\t\t\tpreventDefault = false;\n\t\t\t}\n\n\t\t\tif ( preventDefault ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t},\n\n\t_selectFocusedItem: function( event ) {\n\t\tvar item = this.menuItems.eq( this.focusIndex );\n\t\tif ( !item.hasClass( \"ui-state-disabled\" ) ) {\n\t\t\tthis._select( item.data( \"ui-selectmenu-item\" ), event );\n\t\t}\n\t},\n\n\t_select: function( item, event ) {\n\t\tvar oldIndex = this.element[ 0 ].selectedIndex;\n\n\t\t// Change native select element\n\t\tthis.element[ 0 ].selectedIndex = item.index;\n\t\tthis._setText( this.buttonText, item.label );\n\t\tthis._setAria( item );\n\t\tthis._trigger( \"select\", event, { item: item } );\n\n\t\tif ( item.index !== oldIndex ) {\n\t\t\tthis._trigger( \"change\", event, { item: item } );\n\t\t}\n\n\t\tthis.close( event );\n\t},\n\n\t_setAria: function( item ) {\n\t\tvar id = this.menuItems.eq( item.index ).attr( \"id\" );\n\n\t\tthis.button.attr({\n\t\t\t\"aria-labelledby\": id,\n\t\t\t\"aria-activedescendant\": id\n\t\t});\n\t\tthis.menu.attr( \"aria-activedescendant\", id );\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"icons\" ) {\n\t\t\tthis.button.find( \"span.ui-icon\" )\n\t\t\t\t.removeClass( this.options.icons.button )\n\t\t\t\t.addClass( value.button );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"appendTo\" ) {\n\t\t\tthis.menuWrap.appendTo( this._appendTo() );\n\t\t}\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.menuInstance.option( \"disabled\", value );\n\t\t\tthis.button\n\t\t\t\t.toggleClass( \"ui-state-disabled\", value )\n\t\t\t\t.attr( \"aria-disabled\", value );\n\n\t\t\tthis.element.prop( \"disabled\", value );\n\t\t\tif ( value ) {\n\t\t\t\tthis.button.attr( \"tabindex\", -1 );\n\t\t\t\tthis.close();\n\t\t\t} else {\n\t\t\t\tthis.button.attr( \"tabindex\", 0 );\n\t\t\t}\n\t\t}\n\n\t\tif ( key === \"width\" ) {\n\t\t\tthis._resizeButton();\n\t\t}\n\t},\n\n\t_appendTo: function() {\n\t\tvar element = this.options.appendTo;\n\n\t\tif ( element ) {\n\t\t\telement = element.jquery || element.nodeType ?\n\t\t\t\t$( element ) :\n\t\t\t\tthis.document.find( element ).eq( 0 );\n\t\t}\n\n\t\tif ( !element || !element[ 0 ] ) {\n\t\t\telement = this.element.closest( \".ui-front\" );\n\t\t}\n\n\t\tif ( !element.length ) {\n\t\t\telement = this.document[ 0 ].body;\n\t\t}\n\n\t\treturn element;\n\t},\n\n\t_toggleAttr: function() {\n\t\tthis.button\n\t\t\t.toggleClass( \"ui-corner-top\", this.isOpen )\n\t\t\t.toggleClass( \"ui-corner-all\", !this.isOpen )\n\t\t\t.attr( \"aria-expanded\", this.isOpen );\n\t\tthis.menuWrap.toggleClass( \"ui-selectmenu-open\", this.isOpen );\n\t\tthis.menu.attr( \"aria-hidden\", !this.isOpen );\n\t},\n\n\t_resizeButton: function() {\n\t\tvar width = this.options.width;\n\n\t\tif ( !width ) {\n\t\t\twidth = this.element.show().outerWidth();\n\t\t\tthis.element.hide();\n\t\t}\n\n\t\tthis.button.outerWidth( width );\n\t},\n\n\t_resizeMenu: function() {\n\t\tthis.menu.outerWidth( Math.max(\n\t\t\tthis.button.outerWidth(),\n\n\t\t\t// support: IE10\n\t\t\t// IE10 wraps long text (possibly a rounding bug)\n\t\t\t// so we add 1px to avoid the wrapping\n\t\t\tthis.menu.width( \"\" ).outerWidth() + 1\n\t\t) );\n\t},\n\n\t_getCreateOptions: function() {\n\t\treturn { disabled: this.element.prop( \"disabled\" ) };\n\t},\n\n\t_parseOptions: function( options ) {\n\t\tvar data = [];\n\t\toptions.each(function( index, item ) {\n\t\t\tvar option = $( item ),\n\t\t\t\toptgroup = option.parent( \"optgroup\" );\n\t\t\tdata.push({\n\t\t\t\telement: option,\n\t\t\t\tindex: index,\n\t\t\t\tvalue: option.val(),\n\t\t\t\tlabel: option.text(),\n\t\t\t\toptgroup: optgroup.attr( \"label\" ) || \"\",\n\t\t\t\tdisabled: optgroup.prop( \"disabled\" ) || option.prop( \"disabled\" )\n\t\t\t});\n\t\t});\n\t\tthis.items = data;\n\t},\n\n\t_destroy: function() {\n\t\tthis.menuWrap.remove();\n\t\tthis.button.remove();\n\t\tthis.element.show();\n\t\tthis.element.removeUniqueId();\n\t\tthis.label.attr( \"for\", this.ids.element );\n\t}\n});\n\n\n/*!\n * jQuery UI Slider 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/slider/\n */\n\n\nvar slider = $.widget( \"ui.slider\", $.ui.mouse, {\n\tversion: \"1.11.4\",\n\twidgetEventPrefix: \"slide\",\n\n\toptions: {\n\t\tanimate: false,\n\t\tdistance: 0,\n\t\tmax: 100,\n\t\tmin: 0,\n\t\torientation: \"horizontal\",\n\t\trange: false,\n\t\tstep: 1,\n\t\tvalue: 0,\n\t\tvalues: null,\n\n\t\t// callbacks\n\t\tchange: null,\n\t\tslide: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\n\t// number of pages in a slider\n\t// (how many times can you page up/down to go through the whole range)\n\tnumPages: 5,\n\n\t_create: function() {\n\t\tthis._keySliding = false;\n\t\tthis._mouseSliding = false;\n\t\tthis._animateOff = true;\n\t\tthis._handleIndex = null;\n\t\tthis._detectOrientation();\n\t\tthis._mouseInit();\n\t\tthis._calculateNewMax();\n\n\t\tthis.element\n\t\t\t.addClass( \"ui-slider\" +\n\t\t\t\t\" ui-slider-\" + this.orientation +\n\t\t\t\t\" ui-widget\" +\n\t\t\t\t\" ui-widget-content\" +\n\t\t\t\t\" ui-corner-all\");\n\n\t\tthis._refresh();\n\t\tthis._setOption( \"disabled\", this.options.disabled );\n\n\t\tthis._animateOff = false;\n\t},\n\n\t_refresh: function() {\n\t\tthis._createRange();\n\t\tthis._createHandles();\n\t\tthis._setupEvents();\n\t\tthis._refreshValue();\n\t},\n\n\t_createHandles: function() {\n\t\tvar i, handleCount,\n\t\t\toptions = this.options,\n\t\t\texistingHandles = this.element.find( \".ui-slider-handle\" ).addClass( \"ui-state-default ui-corner-all\" ),\n\t\t\thandle = \"<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>\",\n\t\t\thandles = [];\n\n\t\thandleCount = ( options.values && options.values.length ) || 1;\n\n\t\tif ( existingHandles.length > handleCount ) {\n\t\t\texistingHandles.slice( handleCount ).remove();\n\t\t\texistingHandles = existingHandles.slice( 0, handleCount );\n\t\t}\n\n\t\tfor ( i = existingHandles.length; i < handleCount; i++ ) {\n\t\t\thandles.push( handle );\n\t\t}\n\n\t\tthis.handles = existingHandles.add( $( handles.join( \"\" ) ).appendTo( this.element ) );\n\n\t\tthis.handle = this.handles.eq( 0 );\n\n\t\tthis.handles.each(function( i ) {\n\t\t\t$( this ).data( \"ui-slider-handle-index\", i );\n\t\t});\n\t},\n\n\t_createRange: function() {\n\t\tvar options = this.options,\n\t\t\tclasses = \"\";\n\n\t\tif ( options.range ) {\n\t\t\tif ( options.range === true ) {\n\t\t\t\tif ( !options.values ) {\n\t\t\t\t\toptions.values = [ this._valueMin(), this._valueMin() ];\n\t\t\t\t} else if ( options.values.length && options.values.length !== 2 ) {\n\t\t\t\t\toptions.values = [ options.values[0], options.values[0] ];\n\t\t\t\t} else if ( $.isArray( options.values ) ) {\n\t\t\t\t\toptions.values = options.values.slice(0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( !this.range || !this.range.length ) {\n\t\t\t\tthis.range = $( \"<div></div>\" )\n\t\t\t\t\t.appendTo( this.element );\n\n\t\t\t\tclasses = \"ui-slider-range\" +\n\t\t\t\t// note: this isn't the most fittingly semantic framework class for this element,\n\t\t\t\t// but worked best visually with a variety of themes\n\t\t\t\t\" ui-widget-header ui-corner-all\";\n\t\t\t} else {\n\t\t\t\tthis.range.removeClass( \"ui-slider-range-min ui-slider-range-max\" )\n\t\t\t\t\t// Handle range switching from true to min/max\n\t\t\t\t\t.css({\n\t\t\t\t\t\t\"left\": \"\",\n\t\t\t\t\t\t\"bottom\": \"\"\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.range.addClass( classes +\n\t\t\t\t( ( options.range === \"min\" || options.range === \"max\" ) ? \" ui-slider-range-\" + options.range : \"\" ) );\n\t\t} else {\n\t\t\tif ( this.range ) {\n\t\t\t\tthis.range.remove();\n\t\t\t}\n\t\t\tthis.range = null;\n\t\t}\n\t},\n\n\t_setupEvents: function() {\n\t\tthis._off( this.handles );\n\t\tthis._on( this.handles, this._handleEvents );\n\t\tthis._hoverable( this.handles );\n\t\tthis._focusable( this.handles );\n\t},\n\n\t_destroy: function() {\n\t\tthis.handles.remove();\n\t\tif ( this.range ) {\n\t\t\tthis.range.remove();\n\t\t}\n\n\t\tthis.element\n\t\t\t.removeClass( \"ui-slider\" +\n\t\t\t\t\" ui-slider-horizontal\" +\n\t\t\t\t\" ui-slider-vertical\" +\n\t\t\t\t\" ui-widget\" +\n\t\t\t\t\" ui-widget-content\" +\n\t\t\t\t\" ui-corner-all\" );\n\n\t\tthis._mouseDestroy();\n\t},\n\n\t_mouseCapture: function( event ) {\n\t\tvar position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,\n\t\t\tthat = this,\n\t\t\to = this.options;\n\n\t\tif ( o.disabled ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.elementSize = {\n\t\t\twidth: this.element.outerWidth(),\n\t\t\theight: this.element.outerHeight()\n\t\t};\n\t\tthis.elementOffset = this.element.offset();\n\n\t\tposition = { x: event.pageX, y: event.pageY };\n\t\tnormValue = this._normValueFromMouse( position );\n\t\tdistance = this._valueMax() - this._valueMin() + 1;\n\t\tthis.handles.each(function( i ) {\n\t\t\tvar thisDistance = Math.abs( normValue - that.values(i) );\n\t\t\tif (( distance > thisDistance ) ||\n\t\t\t\t( distance === thisDistance &&\n\t\t\t\t\t(i === that._lastChangedValue || that.values(i) === o.min ))) {\n\t\t\t\tdistance = thisDistance;\n\t\t\t\tclosestHandle = $( this );\n\t\t\t\tindex = i;\n\t\t\t}\n\t\t});\n\n\t\tallowed = this._start( event, index );\n\t\tif ( allowed === false ) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._mouseSliding = true;\n\n\t\tthis._handleIndex = index;\n\n\t\tclosestHandle\n\t\t\t.addClass( \"ui-state-active\" )\n\t\t\t.focus();\n\n\t\toffset = closestHandle.offset();\n\t\tmouseOverHandle = !$( event.target ).parents().addBack().is( \".ui-slider-handle\" );\n\t\tthis._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {\n\t\t\tleft: event.pageX - offset.left - ( closestHandle.width() / 2 ),\n\t\t\ttop: event.pageY - offset.top -\n\t\t\t\t( closestHandle.height() / 2 ) -\n\t\t\t\t( parseInt( closestHandle.css(\"borderTopWidth\"), 10 ) || 0 ) -\n\t\t\t\t( parseInt( closestHandle.css(\"borderBottomWidth\"), 10 ) || 0) +\n\t\t\t\t( parseInt( closestHandle.css(\"marginTop\"), 10 ) || 0)\n\t\t};\n\n\t\tif ( !this.handles.hasClass( \"ui-state-hover\" ) ) {\n\t\t\tthis._slide( event, index, normValue );\n\t\t}\n\t\tthis._animateOff = true;\n\t\treturn true;\n\t},\n\n\t_mouseStart: function() {\n\t\treturn true;\n\t},\n\n\t_mouseDrag: function( event ) {\n\t\tvar position = { x: event.pageX, y: event.pageY },\n\t\t\tnormValue = this._normValueFromMouse( position );\n\n\t\tthis._slide( event, this._handleIndex, normValue );\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function( event ) {\n\t\tthis.handles.removeClass( \"ui-state-active\" );\n\t\tthis._mouseSliding = false;\n\n\t\tthis._stop( event, this._handleIndex );\n\t\tthis._change( event, this._handleIndex );\n\n\t\tthis._handleIndex = null;\n\t\tthis._clickOffset = null;\n\t\tthis._animateOff = false;\n\n\t\treturn false;\n\t},\n\n\t_detectOrientation: function() {\n\t\tthis.orientation = ( this.options.orientation === \"vertical\" ) ? \"vertical\" : \"horizontal\";\n\t},\n\n\t_normValueFromMouse: function( position ) {\n\t\tvar pixelTotal,\n\t\t\tpixelMouse,\n\t\t\tpercentMouse,\n\t\t\tvalueTotal,\n\t\t\tvalueMouse;\n\n\t\tif ( this.orientation === \"horizontal\" ) {\n\t\t\tpixelTotal = this.elementSize.width;\n\t\t\tpixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );\n\t\t} else {\n\t\t\tpixelTotal = this.elementSize.height;\n\t\t\tpixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );\n\t\t}\n\n\t\tpercentMouse = ( pixelMouse / pixelTotal );\n\t\tif ( percentMouse > 1 ) {\n\t\t\tpercentMouse = 1;\n\t\t}\n\t\tif ( percentMouse < 0 ) {\n\t\t\tpercentMouse = 0;\n\t\t}\n\t\tif ( this.orientation === \"vertical\" ) {\n\t\t\tpercentMouse = 1 - percentMouse;\n\t\t}\n\n\t\tvalueTotal = this._valueMax() - this._valueMin();\n\t\tvalueMouse = this._valueMin() + percentMouse * valueTotal;\n\n\t\treturn this._trimAlignValue( valueMouse );\n\t},\n\n\t_start: function( event, index ) {\n\t\tvar uiHash = {\n\t\t\thandle: this.handles[ index ],\n\t\t\tvalue: this.value()\n\t\t};\n\t\tif ( this.options.values && this.options.values.length ) {\n\t\t\tuiHash.value = this.values( index );\n\t\t\tuiHash.values = this.values();\n\t\t}\n\t\treturn this._trigger( \"start\", event, uiHash );\n\t},\n\n\t_slide: function( event, index, newVal ) {\n\t\tvar otherVal,\n\t\t\tnewValues,\n\t\t\tallowed;\n\n\t\tif ( this.options.values && this.options.values.length ) {\n\t\t\totherVal = this.values( index ? 0 : 1 );\n\n\t\t\tif ( ( this.options.values.length === 2 && this.options.range === true ) &&\n\t\t\t\t\t( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )\n\t\t\t\t) {\n\t\t\t\tnewVal = otherVal;\n\t\t\t}\n\n\t\t\tif ( newVal !== this.values( index ) ) {\n\t\t\t\tnewValues = this.values();\n\t\t\t\tnewValues[ index ] = newVal;\n\t\t\t\t// A slide can be canceled by returning false from the slide callback\n\t\t\t\tallowed = this._trigger( \"slide\", event, {\n\t\t\t\t\thandle: this.handles[ index ],\n\t\t\t\t\tvalue: newVal,\n\t\t\t\t\tvalues: newValues\n\t\t\t\t} );\n\t\t\t\totherVal = this.values( index ? 0 : 1 );\n\t\t\t\tif ( allowed !== false ) {\n\t\t\t\t\tthis.values( index, newVal );\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif ( newVal !== this.value() ) {\n\t\t\t\t// A slide can be canceled by returning false from the slide callback\n\t\t\t\tallowed = this._trigger( \"slide\", event, {\n\t\t\t\t\thandle: this.handles[ index ],\n\t\t\t\t\tvalue: newVal\n\t\t\t\t} );\n\t\t\t\tif ( allowed !== false ) {\n\t\t\t\t\tthis.value( newVal );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t_stop: function( event, index ) {\n\t\tvar uiHash = {\n\t\t\thandle: this.handles[ index ],\n\t\t\tvalue: this.value()\n\t\t};\n\t\tif ( this.options.values && this.options.values.length ) {\n\t\t\tuiHash.value = this.values( index );\n\t\t\tuiHash.values = this.values();\n\t\t}\n\n\t\tthis._trigger( \"stop\", event, uiHash );\n\t},\n\n\t_change: function( event, index ) {\n\t\tif ( !this._keySliding && !this._mouseSliding ) {\n\t\t\tvar uiHash = {\n\t\t\t\thandle: this.handles[ index ],\n\t\t\t\tvalue: this.value()\n\t\t\t};\n\t\t\tif ( this.options.values && this.options.values.length ) {\n\t\t\t\tuiHash.value = this.values( index );\n\t\t\t\tuiHash.values = this.values();\n\t\t\t}\n\n\t\t\t//store the last changed value index for reference when handles overlap\n\t\t\tthis._lastChangedValue = index;\n\n\t\t\tthis._trigger( \"change\", event, uiHash );\n\t\t}\n\t},\n\n\tvalue: function( newValue ) {\n\t\tif ( arguments.length ) {\n\t\t\tthis.options.value = this._trimAlignValue( newValue );\n\t\t\tthis._refreshValue();\n\t\t\tthis._change( null, 0 );\n\t\t\treturn;\n\t\t}\n\n\t\treturn this._value();\n\t},\n\n\tvalues: function( index, newValue ) {\n\t\tvar vals,\n\t\t\tnewValues,\n\t\t\ti;\n\n\t\tif ( arguments.length > 1 ) {\n\t\t\tthis.options.values[ index ] = this._trimAlignValue( newValue );\n\t\t\tthis._refreshValue();\n\t\t\tthis._change( null, index );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( arguments.length ) {\n\t\t\tif ( $.isArray( arguments[ 0 ] ) ) {\n\t\t\t\tvals = this.options.values;\n\t\t\t\tnewValues = arguments[ 0 ];\n\t\t\t\tfor ( i = 0; i < vals.length; i += 1 ) {\n\t\t\t\t\tvals[ i ] = this._trimAlignValue( newValues[ i ] );\n\t\t\t\t\tthis._change( null, i );\n\t\t\t\t}\n\t\t\t\tthis._refreshValue();\n\t\t\t} else {\n\t\t\t\tif ( this.options.values && this.options.values.length ) {\n\t\t\t\t\treturn this._values( index );\n\t\t\t\t} else {\n\t\t\t\t\treturn this.value();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._values();\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tvar i,\n\t\t\tvalsLength = 0;\n\n\t\tif ( key === \"range\" && this.options.range === true ) {\n\t\t\tif ( value === \"min\" ) {\n\t\t\t\tthis.options.value = this._values( 0 );\n\t\t\t\tthis.options.values = null;\n\t\t\t} else if ( value === \"max\" ) {\n\t\t\t\tthis.options.value = this._values( this.options.values.length - 1 );\n\t\t\t\tthis.options.values = null;\n\t\t\t}\n\t\t}\n\n\t\tif ( $.isArray( this.options.values ) ) {\n\t\t\tvalsLength = this.options.values.length;\n\t\t}\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.element.toggleClass( \"ui-state-disabled\", !!value );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tswitch ( key ) {\n\t\t\tcase \"orientation\":\n\t\t\t\tthis._detectOrientation();\n\t\t\t\tthis.element\n\t\t\t\t\t.removeClass( \"ui-slider-horizontal ui-slider-vertical\" )\n\t\t\t\t\t.addClass( \"ui-slider-\" + this.orientation );\n\t\t\t\tthis._refreshValue();\n\n\t\t\t\t// Reset positioning from previous orientation\n\t\t\t\tthis.handles.css( value === \"horizontal\" ? \"bottom\" : \"left\", \"\" );\n\t\t\t\tbreak;\n\t\t\tcase \"value\":\n\t\t\t\tthis._animateOff = true;\n\t\t\t\tthis._refreshValue();\n\t\t\t\tthis._change( null, 0 );\n\t\t\t\tthis._animateOff = false;\n\t\t\t\tbreak;\n\t\t\tcase \"values\":\n\t\t\t\tthis._animateOff = true;\n\t\t\t\tthis._refreshValue();\n\t\t\t\tfor ( i = 0; i < valsLength; i += 1 ) {\n\t\t\t\t\tthis._change( null, i );\n\t\t\t\t}\n\t\t\t\tthis._animateOff = false;\n\t\t\t\tbreak;\n\t\t\tcase \"step\":\n\t\t\tcase \"min\":\n\t\t\tcase \"max\":\n\t\t\t\tthis._animateOff = true;\n\t\t\t\tthis._calculateNewMax();\n\t\t\t\tthis._refreshValue();\n\t\t\t\tthis._animateOff = false;\n\t\t\t\tbreak;\n\t\t\tcase \"range\":\n\t\t\t\tthis._animateOff = true;\n\t\t\t\tthis._refresh();\n\t\t\t\tthis._animateOff = false;\n\t\t\t\tbreak;\n\t\t}\n\t},\n\n\t//internal value getter\n\t// _value() returns value trimmed by min and max, aligned by step\n\t_value: function() {\n\t\tvar val = this.options.value;\n\t\tval = this._trimAlignValue( val );\n\n\t\treturn val;\n\t},\n\n\t//internal values getter\n\t// _values() returns array of values trimmed by min and max, aligned by step\n\t// _values( index ) returns single value trimmed by min and max, aligned by step\n\t_values: function( index ) {\n\t\tvar val,\n\t\t\tvals,\n\t\t\ti;\n\n\t\tif ( arguments.length ) {\n\t\t\tval = this.options.values[ index ];\n\t\t\tval = this._trimAlignValue( val );\n\n\t\t\treturn val;\n\t\t} else if ( this.options.values && this.options.values.length ) {\n\t\t\t// .slice() creates a copy of the array\n\t\t\t// this copy gets trimmed by min and max and then returned\n\t\t\tvals = this.options.values.slice();\n\t\t\tfor ( i = 0; i < vals.length; i += 1) {\n\t\t\t\tvals[ i ] = this._trimAlignValue( vals[ i ] );\n\t\t\t}\n\n\t\t\treturn vals;\n\t\t} else {\n\t\t\treturn [];\n\t\t}\n\t},\n\n\t// returns the step-aligned value that val is closest to, between (inclusive) min and max\n\t_trimAlignValue: function( val ) {\n\t\tif ( val <= this._valueMin() ) {\n\t\t\treturn this._valueMin();\n\t\t}\n\t\tif ( val >= this._valueMax() ) {\n\t\t\treturn this._valueMax();\n\t\t}\n\t\tvar step = ( this.options.step > 0 ) ? this.options.step : 1,\n\t\t\tvalModStep = (val - this._valueMin()) % step,\n\t\t\talignValue = val - valModStep;\n\n\t\tif ( Math.abs(valModStep) * 2 >= step ) {\n\t\t\talignValue += ( valModStep > 0 ) ? step : ( -step );\n\t\t}\n\n\t\t// Since JavaScript has problems with large floats, round\n\t\t// the final value to 5 digits after the decimal point (see #4124)\n\t\treturn parseFloat( alignValue.toFixed(5) );\n\t},\n\n\t_calculateNewMax: function() {\n\t\tvar max = this.options.max,\n\t\t\tmin = this._valueMin(),\n\t\t\tstep = this.options.step,\n\t\t\taboveMin = Math.floor( ( +( max - min ).toFixed( this._precision() ) ) / step ) * step;\n\t\tmax = aboveMin + min;\n\t\tthis.max = parseFloat( max.toFixed( this._precision() ) );\n\t},\n\n\t_precision: function() {\n\t\tvar precision = this._precisionOf( this.options.step );\n\t\tif ( this.options.min !== null ) {\n\t\t\tprecision = Math.max( precision, this._precisionOf( this.options.min ) );\n\t\t}\n\t\treturn precision;\n\t},\n\n\t_precisionOf: function( num ) {\n\t\tvar str = num.toString(),\n\t\t\tdecimal = str.indexOf( \".\" );\n\t\treturn decimal === -1 ? 0 : str.length - decimal - 1;\n\t},\n\n\t_valueMin: function() {\n\t\treturn this.options.min;\n\t},\n\n\t_valueMax: function() {\n\t\treturn this.max;\n\t},\n\n\t_refreshValue: function() {\n\t\tvar lastValPercent, valPercent, value, valueMin, valueMax,\n\t\t\toRange = this.options.range,\n\t\t\to = this.options,\n\t\t\tthat = this,\n\t\t\tanimate = ( !this._animateOff ) ? o.animate : false,\n\t\t\t_set = {};\n\n\t\tif ( this.options.values && this.options.values.length ) {\n\t\t\tthis.handles.each(function( i ) {\n\t\t\t\tvalPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100;\n\t\t\t\t_set[ that.orientation === \"horizontal\" ? \"left\" : \"bottom\" ] = valPercent + \"%\";\n\t\t\t\t$( this ).stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( _set, o.animate );\n\t\t\t\tif ( that.options.range === true ) {\n\t\t\t\t\tif ( that.orientation === \"horizontal\" ) {\n\t\t\t\t\t\tif ( i === 0 ) {\n\t\t\t\t\t\t\tthat.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( { left: valPercent + \"%\" }, o.animate );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( i === 1 ) {\n\t\t\t\t\t\t\tthat.range[ animate ? \"animate\" : \"css\" ]( { width: ( valPercent - lastValPercent ) + \"%\" }, { queue: false, duration: o.animate } );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ( i === 0 ) {\n\t\t\t\t\t\t\tthat.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( { bottom: ( valPercent ) + \"%\" }, o.animate );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( i === 1 ) {\n\t\t\t\t\t\t\tthat.range[ animate ? \"animate\" : \"css\" ]( { height: ( valPercent - lastValPercent ) + \"%\" }, { queue: false, duration: o.animate } );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlastValPercent = valPercent;\n\t\t\t});\n\t\t} else {\n\t\t\tvalue = this.value();\n\t\t\tvalueMin = this._valueMin();\n\t\t\tvalueMax = this._valueMax();\n\t\t\tvalPercent = ( valueMax !== valueMin ) ?\n\t\t\t\t\t( value - valueMin ) / ( valueMax - valueMin ) * 100 :\n\t\t\t\t\t0;\n\t\t\t_set[ this.orientation === \"horizontal\" ? \"left\" : \"bottom\" ] = valPercent + \"%\";\n\t\t\tthis.handle.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( _set, o.animate );\n\n\t\t\tif ( oRange === \"min\" && this.orientation === \"horizontal\" ) {\n\t\t\t\tthis.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( { width: valPercent + \"%\" }, o.animate );\n\t\t\t}\n\t\t\tif ( oRange === \"max\" && this.orientation === \"horizontal\" ) {\n\t\t\t\tthis.range[ animate ? \"animate\" : \"css\" ]( { width: ( 100 - valPercent ) + \"%\" }, { queue: false, duration: o.animate } );\n\t\t\t}\n\t\t\tif ( oRange === \"min\" && this.orientation === \"vertical\" ) {\n\t\t\t\tthis.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( { height: valPercent + \"%\" }, o.animate );\n\t\t\t}\n\t\t\tif ( oRange === \"max\" && this.orientation === \"vertical\" ) {\n\t\t\t\tthis.range[ animate ? \"animate\" : \"css\" ]( { height: ( 100 - valPercent ) + \"%\" }, { queue: false, duration: o.animate } );\n\t\t\t}\n\t\t}\n\t},\n\n\t_handleEvents: {\n\t\tkeydown: function( event ) {\n\t\t\tvar allowed, curVal, newVal, step,\n\t\t\t\tindex = $( event.target ).data( \"ui-slider-handle-index\" );\n\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase $.ui.keyCode.HOME:\n\t\t\t\tcase $.ui.keyCode.END:\n\t\t\t\tcase $.ui.keyCode.PAGE_UP:\n\t\t\t\tcase $.ui.keyCode.PAGE_DOWN:\n\t\t\t\tcase $.ui.keyCode.UP:\n\t\t\t\tcase $.ui.keyCode.RIGHT:\n\t\t\t\tcase $.ui.keyCode.DOWN:\n\t\t\t\tcase $.ui.keyCode.LEFT:\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( !this._keySliding ) {\n\t\t\t\t\t\tthis._keySliding = true;\n\t\t\t\t\t\t$( event.target ).addClass( \"ui-state-active\" );\n\t\t\t\t\t\tallowed = this._start( event, index );\n\t\t\t\t\t\tif ( allowed === false ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tstep = this.options.step;\n\t\t\tif ( this.options.values && this.options.values.length ) {\n\t\t\t\tcurVal = newVal = this.values( index );\n\t\t\t} else {\n\t\t\t\tcurVal = newVal = this.value();\n\t\t\t}\n\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase $.ui.keyCode.HOME:\n\t\t\t\t\tnewVal = this._valueMin();\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.END:\n\t\t\t\t\tnewVal = this._valueMax();\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.PAGE_UP:\n\t\t\t\t\tnewVal = this._trimAlignValue(\n\t\t\t\t\t\tcurVal + ( ( this._valueMax() - this._valueMin() ) / this.numPages )\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.PAGE_DOWN:\n\t\t\t\t\tnewVal = this._trimAlignValue(\n\t\t\t\t\t\tcurVal - ( (this._valueMax() - this._valueMin()) / this.numPages ) );\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.UP:\n\t\t\t\tcase $.ui.keyCode.RIGHT:\n\t\t\t\t\tif ( curVal === this._valueMax() ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tnewVal = this._trimAlignValue( curVal + step );\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.DOWN:\n\t\t\t\tcase $.ui.keyCode.LEFT:\n\t\t\t\t\tif ( curVal === this._valueMin() ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tnewVal = this._trimAlignValue( curVal - step );\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tthis._slide( event, index, newVal );\n\t\t},\n\t\tkeyup: function( event ) {\n\t\t\tvar index = $( event.target ).data( \"ui-slider-handle-index\" );\n\n\t\t\tif ( this._keySliding ) {\n\t\t\t\tthis._keySliding = false;\n\t\t\t\tthis._stop( event, index );\n\t\t\t\tthis._change( event, index );\n\t\t\t\t$( event.target ).removeClass( \"ui-state-active\" );\n\t\t\t}\n\t\t}\n\t}\n});\n\n\n/*!\n * jQuery UI Sortable 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/sortable/\n */\n\n\nvar sortable = $.widget(\"ui.sortable\", $.ui.mouse, {\n\tversion: \"1.11.4\",\n\twidgetEventPrefix: \"sort\",\n\tready: false,\n\toptions: {\n\t\tappendTo: \"parent\",\n\t\taxis: false,\n\t\tconnectWith: false,\n\t\tcontainment: false,\n\t\tcursor: \"auto\",\n\t\tcursorAt: false,\n\t\tdropOnEmpty: true,\n\t\tforcePlaceholderSize: false,\n\t\tforceHelperSize: false,\n\t\tgrid: false,\n\t\thandle: false,\n\t\thelper: \"original\",\n\t\titems: \"> *\",\n\t\topacity: false,\n\t\tplaceholder: false,\n\t\trevert: false,\n\t\tscroll: true,\n\t\tscrollSensitivity: 20,\n\t\tscrollSpeed: 20,\n\t\tscope: \"default\",\n\t\ttolerance: \"intersect\",\n\t\tzIndex: 1000,\n\n\t\t// callbacks\n\t\tactivate: null,\n\t\tbeforeStop: null,\n\t\tchange: null,\n\t\tdeactivate: null,\n\t\tout: null,\n\t\tover: null,\n\t\treceive: null,\n\t\tremove: null,\n\t\tsort: null,\n\t\tstart: null,\n\t\tstop: null,\n\t\tupdate: null\n\t},\n\n\t_isOverAxis: function( x, reference, size ) {\n\t\treturn ( x >= reference ) && ( x < ( reference + size ) );\n\t},\n\n\t_isFloating: function( item ) {\n\t\treturn (/left|right/).test(item.css(\"float\")) || (/inline|table-cell/).test(item.css(\"display\"));\n\t},\n\n\t_create: function() {\n\t\tthis.containerCache = {};\n\t\tthis.element.addClass(\"ui-sortable\");\n\n\t\t//Get the items\n\t\tthis.refresh();\n\n\t\t//Let's determine the parent's offset\n\t\tthis.offset = this.element.offset();\n\n\t\t//Initialize mouse events for interaction\n\t\tthis._mouseInit();\n\n\t\tthis._setHandleClassName();\n\n\t\t//We're ready to go\n\t\tthis.ready = true;\n\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"handle\" ) {\n\t\t\tthis._setHandleClassName();\n\t\t}\n\t},\n\n\t_setHandleClassName: function() {\n\t\tthis.element.find( \".ui-sortable-handle\" ).removeClass( \"ui-sortable-handle\" );\n\t\t$.each( this.items, function() {\n\t\t\t( this.instance.options.handle ?\n\t\t\t\tthis.item.find( this.instance.options.handle ) : this.item )\n\t\t\t\t.addClass( \"ui-sortable-handle\" );\n\t\t});\n\t},\n\n\t_destroy: function() {\n\t\tthis.element\n\t\t\t.removeClass( \"ui-sortable ui-sortable-disabled\" )\n\t\t\t.find( \".ui-sortable-handle\" )\n\t\t\t\t.removeClass( \"ui-sortable-handle\" );\n\t\tthis._mouseDestroy();\n\n\t\tfor ( var i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\tthis.items[i].item.removeData(this.widgetName + \"-item\");\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_mouseCapture: function(event, overrideHandle) {\n\t\tvar currentItem = null,\n\t\t\tvalidHandle = false,\n\t\t\tthat = this;\n\n\t\tif (this.reverting) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif(this.options.disabled || this.options.type === \"static\") {\n\t\t\treturn false;\n\t\t}\n\n\t\t//We have to refresh the items data once first\n\t\tthis._refreshItems(event);\n\n\t\t//Find out if the clicked node (or one of its parents) is a actual item in this.items\n\t\t$(event.target).parents().each(function() {\n\t\t\tif($.data(this, that.widgetName + \"-item\") === that) {\n\t\t\t\tcurrentItem = $(this);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif($.data(event.target, that.widgetName + \"-item\") === that) {\n\t\t\tcurrentItem = $(event.target);\n\t\t}\n\n\t\tif(!currentItem) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.options.handle && !overrideHandle) {\n\t\t\t$(this.options.handle, currentItem).find(\"*\").addBack().each(function() {\n\t\t\t\tif(this === event.target) {\n\t\t\t\t\tvalidHandle = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!validHandle) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tthis.currentItem = currentItem;\n\t\tthis._removeCurrentsFromItems();\n\t\treturn true;\n\n\t},\n\n\t_mouseStart: function(event, overrideHandle, noActivation) {\n\n\t\tvar i, body,\n\t\t\to = this.options;\n\n\t\tthis.currentContainer = this;\n\n\t\t//We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture\n\t\tthis.refreshPositions();\n\n\t\t//Create and append the visible helper\n\t\tthis.helper = this._createHelper(event);\n\n\t\t//Cache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t/*\n\t\t * - Position generation -\n\t\t * This block generates everything position related - it's the core of draggables.\n\t\t */\n\n\t\t//Cache the margins of the original element\n\t\tthis._cacheMargins();\n\n\t\t//Get the next scrolling parent\n\t\tthis.scrollParent = this.helper.scrollParent();\n\n\t\t//The element's absolute position on the page minus margins\n\t\tthis.offset = this.currentItem.offset();\n\t\tthis.offset = {\n\t\t\ttop: this.offset.top - this.margins.top,\n\t\t\tleft: this.offset.left - this.margins.left\n\t\t};\n\n\t\t$.extend(this.offset, {\n\t\t\tclick: { //Where the click happened, relative to the element\n\t\t\t\tleft: event.pageX - this.offset.left,\n\t\t\t\ttop: event.pageY - this.offset.top\n\t\t\t},\n\t\t\tparent: this._getParentOffset(),\n\t\t\trelative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper\n\t\t});\n\n\t\t// Only after we got the offset, we can change the helper's position to absolute\n\t\t// TODO: Still need to figure out a way to make relative sorting possible\n\t\tthis.helper.css(\"position\", \"absolute\");\n\t\tthis.cssPosition = this.helper.css(\"position\");\n\n\t\t//Generate the original position\n\t\tthis.originalPosition = this._generatePosition(event);\n\t\tthis.originalPageX = event.pageX;\n\t\tthis.originalPageY = event.pageY;\n\n\t\t//Adjust the mouse offset relative to the helper if \"cursorAt\" is supplied\n\t\t(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));\n\n\t\t//Cache the former DOM position\n\t\tthis.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };\n\n\t\t//If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way\n\t\tif(this.helper[0] !== this.currentItem[0]) {\n\t\t\tthis.currentItem.hide();\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthis._createPlaceholder();\n\n\t\t//Set a containment if given in the options\n\t\tif(o.containment) {\n\t\t\tthis._setContainment();\n\t\t}\n\n\t\tif( o.cursor && o.cursor !== \"auto\" ) { // cursor option\n\t\t\tbody = this.document.find( \"body\" );\n\n\t\t\t// support: IE\n\t\t\tthis.storedCursor = body.css( \"cursor\" );\n\t\t\tbody.css( \"cursor\", o.cursor );\n\n\t\t\tthis.storedStylesheet = $( \"<style>*{ cursor: \"+o.cursor+\" !important; }</style>\" ).appendTo( body );\n\t\t}\n\n\t\tif(o.opacity) { // opacity option\n\t\t\tif (this.helper.css(\"opacity\")) {\n\t\t\t\tthis._storedOpacity = this.helper.css(\"opacity\");\n\t\t\t}\n\t\t\tthis.helper.css(\"opacity\", o.opacity);\n\t\t}\n\n\t\tif(o.zIndex) { // zIndex option\n\t\t\tif (this.helper.css(\"zIndex\")) {\n\t\t\t\tthis._storedZIndex = this.helper.css(\"zIndex\");\n\t\t\t}\n\t\t\tthis.helper.css(\"zIndex\", o.zIndex);\n\t\t}\n\n\t\t//Prepare scrolling\n\t\tif(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== \"HTML\") {\n\t\t\tthis.overflowOffset = this.scrollParent.offset();\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger(\"start\", event, this._uiHash());\n\n\t\t//Recache the helper size\n\t\tif(!this._preserveHelperProportions) {\n\t\t\tthis._cacheHelperProportions();\n\t\t}\n\n\n\t\t//Post \"activate\" events to possible containers\n\t\tif( !noActivation ) {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"activate\", event, this._uiHash( this ) );\n\t\t\t}\n\t\t}\n\n\t\t//Prepare possible droppables\n\t\tif($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\tif ($.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\n\t\t}\n\n\t\tthis.dragging = true;\n\n\t\tthis.helper.addClass(\"ui-sortable-helper\");\n\t\tthis._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position\n\t\treturn true;\n\n\t},\n\n\t_mouseDrag: function(event) {\n\t\tvar i, item, itemElement, intersection,\n\t\t\to = this.options,\n\t\t\tscrolled = false;\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition(event);\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\n\n\t\tif (!this.lastPositionAbs) {\n\t\t\tthis.lastPositionAbs = this.positionAbs;\n\t\t}\n\n\t\t//Do scrolling\n\t\tif(this.options.scroll) {\n\t\t\tif(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== \"HTML\") {\n\n\t\t\t\tif((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {\n\t\t\t\t\tthis.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;\n\t\t\t\t} else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) {\n\t\t\t\t\tthis.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;\n\t\t\t\t}\n\n\t\t\t\tif((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {\n\t\t\t\t\tthis.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;\n\t\t\t\t} else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) {\n\t\t\t\t\tthis.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif(event.pageY - this.document.scrollTop() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed);\n\t\t\t\t} else if(this.window.height() - (event.pageY - this.document.scrollTop()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed);\n\t\t\t\t}\n\n\t\t\t\tif(event.pageX - this.document.scrollLeft() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed);\n\t\t\t\t} else if(this.window.width() - (event.pageX - this.document.scrollLeft()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\n\t\t\t}\n\t\t}\n\n\t\t//Regenerate the absolute position used for position checks\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\n\n\t\t//Set the helper position\n\t\tif(!this.options.axis || this.options.axis !== \"y\") {\n\t\t\tthis.helper[0].style.left = this.position.left+\"px\";\n\t\t}\n\t\tif(!this.options.axis || this.options.axis !== \"x\") {\n\t\t\tthis.helper[0].style.top = this.position.top+\"px\";\n\t\t}\n\n\t\t//Rearrange\n\t\tfor (i = this.items.length - 1; i >= 0; i--) {\n\n\t\t\t//Cache variables and intersection, continue if no intersection\n\t\t\titem = this.items[i];\n\t\t\titemElement = item.item[0];\n\t\t\tintersection = this._intersectsWithPointer(item);\n\t\t\tif (!intersection) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Only put the placeholder inside the current Container, skip all\n\t\t\t// items from other containers. This works because when moving\n\t\t\t// an item from one container to another the\n\t\t\t// currentContainer is switched before the placeholder is moved.\n\t\t\t//\n\t\t\t// Without this, moving items in \"sub-sortables\" can cause\n\t\t\t// the placeholder to jitter between the outer and inner container.\n\t\t\tif (item.instance !== this.currentContainer) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// cannot intersect with itself\n\t\t\t// no useless actions that have been done before\n\t\t\t// no action if the item moved is the parent of the item checked\n\t\t\tif (itemElement !== this.currentItem[0] &&\n\t\t\t\tthis.placeholder[intersection === 1 ? \"next\" : \"prev\"]()[0] !== itemElement &&\n\t\t\t\t!$.contains(this.placeholder[0], itemElement) &&\n\t\t\t\t(this.options.type === \"semi-dynamic\" ? !$.contains(this.element[0], itemElement) : true)\n\t\t\t) {\n\n\t\t\t\tthis.direction = intersection === 1 ? \"down\" : \"up\";\n\n\t\t\t\tif (this.options.tolerance === \"pointer\" || this._intersectsWithSides(item)) {\n\t\t\t\t\tthis._rearrange(event, item);\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tthis._trigger(\"change\", event, this._uiHash());\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tthis._contactContainers(event);\n\n\t\t//Interconnect with droppables\n\t\tif($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.drag(this, event);\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger(\"sort\", event, this._uiHash());\n\n\t\tthis.lastPositionAbs = this.positionAbs;\n\t\treturn false;\n\n\t},\n\n\t_mouseStop: function(event, noPropagation) {\n\n\t\tif(!event) {\n\t\t\treturn;\n\t\t}\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tif ($.ui.ddmanager && !this.options.dropBehaviour) {\n\t\t\t$.ui.ddmanager.drop(this, event);\n\t\t}\n\n\t\tif(this.options.revert) {\n\t\t\tvar that = this,\n\t\t\t\tcur = this.placeholder.offset(),\n\t\t\t\taxis = this.options.axis,\n\t\t\t\tanimation = {};\n\n\t\t\tif ( !axis || axis === \"x\" ) {\n\t\t\t\tanimation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft);\n\t\t\t}\n\t\t\tif ( !axis || axis === \"y\" ) {\n\t\t\t\tanimation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop);\n\t\t\t}\n\t\t\tthis.reverting = true;\n\t\t\t$(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() {\n\t\t\t\tthat._clear(event);\n\t\t\t});\n\t\t} else {\n\t\t\tthis._clear(event, noPropagation);\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tcancel: function() {\n\n\t\tif(this.dragging) {\n\n\t\t\tthis._mouseUp({ target: null });\n\n\t\t\tif(this.options.helper === \"original\") {\n\t\t\t\tthis.currentItem.css(this._storedCSS).removeClass(\"ui-sortable-helper\");\n\t\t\t} else {\n\t\t\t\tthis.currentItem.show();\n\t\t\t}\n\n\t\t\t//Post deactivating events to containers\n\t\t\tfor (var i = this.containers.length - 1; i >= 0; i--){\n\t\t\t\tthis.containers[i]._trigger(\"deactivate\", null, this._uiHash(this));\n\t\t\t\tif(this.containers[i].containerCache.over) {\n\t\t\t\t\tthis.containers[i]._trigger(\"out\", null, this._uiHash(this));\n\t\t\t\t\tthis.containers[i].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif (this.placeholder) {\n\t\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!\n\t\t\tif(this.placeholder[0].parentNode) {\n\t\t\t\tthis.placeholder[0].parentNode.removeChild(this.placeholder[0]);\n\t\t\t}\n\t\t\tif(this.options.helper !== \"original\" && this.helper && this.helper[0].parentNode) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\n\t\t\t$.extend(this, {\n\t\t\t\thelper: null,\n\t\t\t\tdragging: false,\n\t\t\t\treverting: false,\n\t\t\t\t_noFinalSort: null\n\t\t\t});\n\n\t\t\tif(this.domPosition.prev) {\n\t\t\t\t$(this.domPosition.prev).after(this.currentItem);\n\t\t\t} else {\n\t\t\t\t$(this.domPosition.parent).prepend(this.currentItem);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tserialize: function(o) {\n\n\t\tvar items = this._getItemsAsjQuery(o && o.connected),\n\t\t\tstr = [];\n\t\to = o || {};\n\n\t\t$(items).each(function() {\n\t\t\tvar res = ($(o.item || this).attr(o.attribute || \"id\") || \"\").match(o.expression || (/(.+)[\\-=_](.+)/));\n\t\t\tif (res) {\n\t\t\t\tstr.push((o.key || res[1]+\"[]\")+\"=\"+(o.key && o.expression ? res[1] : res[2]));\n\t\t\t}\n\t\t});\n\n\t\tif(!str.length && o.key) {\n\t\t\tstr.push(o.key + \"=\");\n\t\t}\n\n\t\treturn str.join(\"&\");\n\n\t},\n\n\ttoArray: function(o) {\n\n\t\tvar items = this._getItemsAsjQuery(o && o.connected),\n\t\t\tret = [];\n\n\t\to = o || {};\n\n\t\titems.each(function() { ret.push($(o.item || this).attr(o.attribute || \"id\") || \"\"); });\n\t\treturn ret;\n\n\t},\n\n\t/* Be careful with the following core functions */\n\t_intersectsWith: function(item) {\n\n\t\tvar x1 = this.positionAbs.left,\n\t\t\tx2 = x1 + this.helperProportions.width,\n\t\t\ty1 = this.positionAbs.top,\n\t\t\ty2 = y1 + this.helperProportions.height,\n\t\t\tl = item.left,\n\t\t\tr = l + item.width,\n\t\t\tt = item.top,\n\t\t\tb = t + item.height,\n\t\t\tdyClick = this.offset.click.top,\n\t\t\tdxClick = this.offset.click.left,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) || ( ( y1 + dyClick ) > t && ( y1 + dyClick ) < b ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) || ( ( x1 + dxClick ) > l && ( x1 + dxClick ) < r ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( this.options.tolerance === \"pointer\" ||\n\t\t\tthis.options.forcePointerForContainers ||\n\t\t\t(this.options.tolerance !== \"pointer\" && this.helperProportions[this.floating ? \"width\" : \"height\"] > item[this.floating ? \"width\" : \"height\"])\n\t\t) {\n\t\t\treturn isOverElement;\n\t\t} else {\n\n\t\t\treturn (l < x1 + (this.helperProportions.width / 2) && // Right Half\n\t\t\t\tx2 - (this.helperProportions.width / 2) < r && // Left Half\n\t\t\t\tt < y1 + (this.helperProportions.height / 2) && // Bottom Half\n\t\t\t\ty2 - (this.helperProportions.height / 2) < b ); // Top Half\n\n\t\t}\n\t},\n\n\t_intersectsWithPointer: function(item) {\n\n\t\tvar isOverElementHeight = (this.options.axis === \"x\") || this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),\n\t\t\tisOverElementWidth = (this.options.axis === \"y\") || this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth,\n\t\t\tverticalDirection = this._getDragVerticalDirection(),\n\t\t\thorizontalDirection = this._getDragHorizontalDirection();\n\n\t\tif (!isOverElement) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.floating ?\n\t\t\t( ((horizontalDirection && horizontalDirection === \"right\") || verticalDirection === \"down\") ? 2 : 1 )\n\t\t\t: ( verticalDirection && (verticalDirection === \"down\" ? 2 : 1) );\n\n\t},\n\n\t_intersectsWithSides: function(item) {\n\n\t\tvar isOverBottomHalf = this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),\n\t\t\tisOverRightHalf = this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),\n\t\t\tverticalDirection = this._getDragVerticalDirection(),\n\t\t\thorizontalDirection = this._getDragHorizontalDirection();\n\n\t\tif (this.floating && horizontalDirection) {\n\t\t\treturn ((horizontalDirection === \"right\" && isOverRightHalf) || (horizontalDirection === \"left\" && !isOverRightHalf));\n\t\t} else {\n\t\t\treturn verticalDirection && ((verticalDirection === \"down\" && isOverBottomHalf) || (verticalDirection === \"up\" && !isOverBottomHalf));\n\t\t}\n\n\t},\n\n\t_getDragVerticalDirection: function() {\n\t\tvar delta = this.positionAbs.top - this.lastPositionAbs.top;\n\t\treturn delta !== 0 && (delta > 0 ? \"down\" : \"up\");\n\t},\n\n\t_getDragHorizontalDirection: function() {\n\t\tvar delta = this.positionAbs.left - this.lastPositionAbs.left;\n\t\treturn delta !== 0 && (delta > 0 ? \"right\" : \"left\");\n\t},\n\n\trefresh: function(event) {\n\t\tthis._refreshItems(event);\n\t\tthis._setHandleClassName();\n\t\tthis.refreshPositions();\n\t\treturn this;\n\t},\n\n\t_connectWith: function() {\n\t\tvar options = this.options;\n\t\treturn options.connectWith.constructor === String ? [options.connectWith] : options.connectWith;\n\t},\n\n\t_getItemsAsjQuery: function(connected) {\n\n\t\tvar i, j, cur, inst,\n\t\t\titems = [],\n\t\t\tqueries = [],\n\t\t\tconnectWith = this._connectWith();\n\n\t\tif(connectWith && connected) {\n\t\t\tfor (i = connectWith.length - 1; i >= 0; i--){\n\t\t\t\tcur = $(connectWith[i], this.document[0]);\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j--){\n\t\t\t\t\tinst = $.data(cur[j], this.widgetFullName);\n\t\t\t\t\tif(inst && inst !== this && !inst.options.disabled) {\n\t\t\t\t\t\tqueries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"), inst]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tqueries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"), this]);\n\n\t\tfunction addItems() {\n\t\t\titems.push( this );\n\t\t}\n\t\tfor (i = queries.length - 1; i >= 0; i--){\n\t\t\tqueries[i][0].each( addItems );\n\t\t}\n\n\t\treturn $(items);\n\n\t},\n\n\t_removeCurrentsFromItems: function() {\n\n\t\tvar list = this.currentItem.find(\":data(\" + this.widgetName + \"-item)\");\n\n\t\tthis.items = $.grep(this.items, function (item) {\n\t\t\tfor (var j=0; j < list.length; j++) {\n\t\t\t\tif(list[j] === item.item[0]) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t},\n\n\t_refreshItems: function(event) {\n\n\t\tthis.items = [];\n\t\tthis.containers = [this];\n\n\t\tvar i, j, cur, inst, targetData, _queries, item, queriesLength,\n\t\t\titems = this.items,\n\t\t\tqueries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]],\n\t\t\tconnectWith = this._connectWith();\n\n\t\tif(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down\n\t\t\tfor (i = connectWith.length - 1; i >= 0; i--){\n\t\t\t\tcur = $(connectWith[i], this.document[0]);\n\t\t\t\tfor (j = cur.length - 1; j >= 0; j--){\n\t\t\t\t\tinst = $.data(cur[j], this.widgetFullName);\n\t\t\t\t\tif(inst && inst !== this && !inst.options.disabled) {\n\t\t\t\t\t\tqueries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);\n\t\t\t\t\t\tthis.containers.push(inst);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i = queries.length - 1; i >= 0; i--) {\n\t\t\ttargetData = queries[i][1];\n\t\t\t_queries = queries[i][0];\n\n\t\t\tfor (j=0, queriesLength = _queries.length; j < queriesLength; j++) {\n\t\t\t\titem = $(_queries[j]);\n\n\t\t\t\titem.data(this.widgetName + \"-item\", targetData); // Data for target checking (mouse manager)\n\n\t\t\t\titems.push({\n\t\t\t\t\titem: item,\n\t\t\t\t\tinstance: targetData,\n\t\t\t\t\twidth: 0, height: 0,\n\t\t\t\t\tleft: 0, top: 0\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t},\n\n\trefreshPositions: function(fast) {\n\n\t\t// Determine whether items are being displayed horizontally\n\t\tthis.floating = this.items.length ?\n\t\t\tthis.options.axis === \"x\" || this._isFloating( this.items[ 0 ].item ) :\n\t\t\tfalse;\n\n\t\t//This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change\n\t\tif(this.offsetParent && this.helper) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\tvar i, item, t, p;\n\n\t\tfor (i = this.items.length - 1; i >= 0; i--){\n\t\t\titem = this.items[i];\n\n\t\t\t//We ignore calculating positions of all connected containers when we're not over them\n\t\t\tif(item.instance !== this.currentContainer && this.currentContainer && item.item[0] !== this.currentItem[0]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tt = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;\n\n\t\t\tif (!fast) {\n\t\t\t\titem.width = t.outerWidth();\n\t\t\t\titem.height = t.outerHeight();\n\t\t\t}\n\n\t\t\tp = t.offset();\n\t\t\titem.left = p.left;\n\t\t\titem.top = p.top;\n\t\t}\n\n\t\tif(this.options.custom && this.options.custom.refreshContainers) {\n\t\t\tthis.options.custom.refreshContainers.call(this);\n\t\t} else {\n\t\t\tfor (i = this.containers.length - 1; i >= 0; i--){\n\t\t\t\tp = this.containers[i].element.offset();\n\t\t\t\tthis.containers[i].containerCache.left = p.left;\n\t\t\t\tthis.containers[i].containerCache.top = p.top;\n\t\t\t\tthis.containers[i].containerCache.width = this.containers[i].element.outerWidth();\n\t\t\t\tthis.containers[i].containerCache.height = this.containers[i].element.outerHeight();\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_createPlaceholder: function(that) {\n\t\tthat = that || this;\n\t\tvar className,\n\t\t\to = that.options;\n\n\t\tif(!o.placeholder || o.placeholder.constructor === String) {\n\t\t\tclassName = o.placeholder;\n\t\t\to.placeholder = {\n\t\t\t\telement: function() {\n\n\t\t\t\t\tvar nodeName = that.currentItem[0].nodeName.toLowerCase(),\n\t\t\t\t\t\telement = $( \"<\" + nodeName + \">\", that.document[0] )\n\t\t\t\t\t\t\t.addClass(className || that.currentItem[0].className+\" ui-sortable-placeholder\")\n\t\t\t\t\t\t\t.removeClass(\"ui-sortable-helper\");\n\n\t\t\t\t\tif ( nodeName === \"tbody\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder(\n\t\t\t\t\t\t\tthat.currentItem.find( \"tr\" ).eq( 0 ),\n\t\t\t\t\t\t\t$( \"<tr>\", that.document[ 0 ] ).appendTo( element )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( nodeName === \"tr\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder( that.currentItem, element );\n\t\t\t\t\t} else if ( nodeName === \"img\" ) {\n\t\t\t\t\t\telement.attr( \"src\", that.currentItem.attr( \"src\" ) );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !className ) {\n\t\t\t\t\t\telement.css( \"visibility\", \"hidden\" );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn element;\n\t\t\t\t},\n\t\t\t\tupdate: function(container, p) {\n\n\t\t\t\t\t// 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that\n\t\t\t\t\t// 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified\n\t\t\t\t\tif(className && !o.forcePlaceholderSize) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t//If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item\n\t\t\t\t\tif(!p.height()) { p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css(\"paddingTop\")||0, 10) - parseInt(that.currentItem.css(\"paddingBottom\")||0, 10)); }\n\t\t\t\t\tif(!p.width()) { p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css(\"paddingLeft\")||0, 10) - parseInt(that.currentItem.css(\"paddingRight\")||0, 10)); }\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthat.placeholder = $(o.placeholder.element.call(that.element, that.currentItem));\n\n\t\t//Append it after the actual current item\n\t\tthat.currentItem.after(that.placeholder);\n\n\t\t//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)\n\t\to.placeholder.update(that, that.placeholder);\n\n\t},\n\n\t_createTrPlaceholder: function( sourceTr, targetTr ) {\n\t\tvar that = this;\n\n\t\tsourceTr.children().each(function() {\n\t\t\t$( \"<td> </td>\", that.document[ 0 ] )\n\t\t\t\t.attr( \"colspan\", $( this ).attr( \"colspan\" ) || 1 )\n\t\t\t\t.appendTo( targetTr );\n\t\t});\n\t},\n\n\t_contactContainers: function(event) {\n\t\tvar i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom, floating, axis,\n\t\t\tinnermostContainer = null,\n\t\t\tinnermostIndex = null;\n\n\t\t// get innermost container that intersects with item\n\t\tfor (i = this.containers.length - 1; i >= 0; i--) {\n\n\t\t\t// never consider a container that's located within the item itself\n\t\t\tif($.contains(this.currentItem[0], this.containers[i].element[0])) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif(this._intersectsWith(this.containers[i].containerCache)) {\n\n\t\t\t\t// if we've already found a container and it's more \"inner\" than this, then continue\n\t\t\t\tif(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tinnermostContainer = this.containers[i];\n\t\t\t\tinnermostIndex = i;\n\n\t\t\t} else {\n\t\t\t\t// container doesn't intersect. trigger \"out\" event if necessary\n\t\t\t\tif(this.containers[i].containerCache.over) {\n\t\t\t\t\tthis.containers[i]._trigger(\"out\", event, this._uiHash(this));\n\t\t\t\t\tthis.containers[i].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t// if no intersecting containers found, return\n\t\tif(!innermostContainer) {\n\t\t\treturn;\n\t\t}\n\n\t\t// move the item into the container if it's not there already\n\t\tif(this.containers.length === 1) {\n\t\t\tif (!this.containers[innermostIndex].containerCache.over) {\n\t\t\t\tthis.containers[innermostIndex]._trigger(\"over\", event, this._uiHash(this));\n\t\t\t\tthis.containers[innermostIndex].containerCache.over = 1;\n\t\t\t}\n\t\t} else {\n\n\t\t\t//When entering a new container, we will find the item with the least distance and append our item near it\n\t\t\tdist = 10000;\n\t\t\titemWithLeastDistance = null;\n\t\t\tfloating = innermostContainer.floating || this._isFloating(this.currentItem);\n\t\t\tposProperty = floating ? \"left\" : \"top\";\n\t\t\tsizeProperty = floating ? \"width\" : \"height\";\n\t\t\taxis = floating ? \"clientX\" : \"clientY\";\n\n\t\t\tfor (j = this.items.length - 1; j >= 0; j--) {\n\t\t\t\tif(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif(this.items[j].item[0] === this.currentItem[0]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcur = this.items[j].item.offset()[posProperty];\n\t\t\t\tnearBottom = false;\n\t\t\t\tif ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {\n\t\t\t\t\tnearBottom = true;\n\t\t\t\t}\n\n\t\t\t\tif ( Math.abs( event[ axis ] - cur ) < dist ) {\n\t\t\t\t\tdist = Math.abs( event[ axis ] - cur );\n\t\t\t\t\titemWithLeastDistance = this.items[ j ];\n\t\t\t\t\tthis.direction = nearBottom ? \"up\": \"down\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//Check if dropOnEmpty is enabled\n\t\t\tif(!itemWithLeastDistance && !this.options.dropOnEmpty) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(this.currentContainer === this.containers[innermostIndex]) {\n\t\t\t\tif ( !this.currentContainer.containerCache.over ) {\n\t\t\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash() );\n\t\t\t\t\tthis.currentContainer.containerCache.over = 1;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);\n\t\t\tthis._trigger(\"change\", event, this._uiHash());\n\t\t\tthis.containers[innermostIndex]._trigger(\"change\", event, this._uiHash(this));\n\t\t\tthis.currentContainer = this.containers[innermostIndex];\n\n\t\t\t//Update the placeholder\n\t\t\tthis.options.placeholder.update(this.currentContainer, this.placeholder);\n\n\t\t\tthis.containers[innermostIndex]._trigger(\"over\", event, this._uiHash(this));\n\t\t\tthis.containers[innermostIndex].containerCache.over = 1;\n\t\t}\n\n\n\t},\n\n\t_createHelper: function(event) {\n\n\t\tvar o = this.options,\n\t\t\thelper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper === \"clone\" ? this.currentItem.clone() : this.currentItem);\n\n\t\t//Add the helper to the DOM if that didn't happen already\n\t\tif(!helper.parents(\"body\").length) {\n\t\t\t$(o.appendTo !== \"parent\" ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);\n\t\t}\n\n\t\tif(helper[0] === this.currentItem[0]) {\n\t\t\tthis._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css(\"position\"), top: this.currentItem.css(\"top\"), left: this.currentItem.css(\"left\") };\n\t\t}\n\n\t\tif(!helper[0].style.width || o.forceHelperSize) {\n\t\t\thelper.width(this.currentItem.width());\n\t\t}\n\t\tif(!helper[0].style.height || o.forceHelperSize) {\n\t\t\thelper.height(this.currentItem.height());\n\t\t}\n\n\t\treturn helper;\n\n\t},\n\n\t_adjustOffsetFromHelper: function(obj) {\n\t\tif (typeof obj === \"string\") {\n\t\t\tobj = obj.split(\" \");\n\t\t}\n\t\tif ($.isArray(obj)) {\n\t\t\tobj = {left: +obj[0], top: +obj[1] || 0};\n\t\t}\n\t\tif (\"left\" in obj) {\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\n\t\t}\n\t\tif (\"right\" in obj) {\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\n\t\t}\n\t\tif (\"top\" in obj) {\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\n\t\t}\n\t\tif (\"bottom\" in obj) {\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\n\t\t}\n\t},\n\n\t_getParentOffset: function() {\n\n\n\t\t//Get the offsetParent and cache its position\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tvar po = this.offsetParent.offset();\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that\n\t\t// the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag\n\t\tif(this.cssPosition === \"absolute\" && this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) {\n\t\t\tpo.left += this.scrollParent.scrollLeft();\n\t\t\tpo.top += this.scrollParent.scrollTop();\n\t\t}\n\n\t\t// This needs to be actually done for all browsers, since pageX/pageY includes this information\n\t\t// with an ugly IE fix\n\t\tif( this.offsetParent[0] === this.document[0].body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === \"html\" && $.ui.ie)) {\n\t\t\tpo = { top: 0, left: 0 };\n\t\t}\n\n\t\treturn {\n\t\t\ttop: po.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"),10) || 0),\n\t\t\tleft: po.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"),10) || 0)\n\t\t};\n\n\t},\n\n\t_getRelativeOffset: function() {\n\n\t\tif(this.cssPosition === \"relative\") {\n\t\t\tvar p = this.currentItem.position();\n\t\t\treturn {\n\t\t\t\ttop: p.top - (parseInt(this.helper.css(\"top\"),10) || 0) + this.scrollParent.scrollTop(),\n\t\t\t\tleft: p.left - (parseInt(this.helper.css(\"left\"),10) || 0) + this.scrollParent.scrollLeft()\n\t\t\t};\n\t\t} else {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: (parseInt(this.currentItem.css(\"marginLeft\"),10) || 0),\n\t\t\ttop: (parseInt(this.currentItem.css(\"marginTop\"),10) || 0)\n\t\t};\n\t},\n\n\t_cacheHelperProportions: function() {\n\t\tthis.helperProportions = {\n\t\t\twidth: this.helper.outerWidth(),\n\t\t\theight: this.helper.outerHeight()\n\t\t};\n\t},\n\n\t_setContainment: function() {\n\n\t\tvar ce, co, over,\n\t\t\to = this.options;\n\t\tif(o.containment === \"parent\") {\n\t\t\to.containment = this.helper[0].parentNode;\n\t\t}\n\t\tif(o.containment === \"document\" || o.containment === \"window\") {\n\t\t\tthis.containment = [\n\t\t\t\t0 - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t0 - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\to.containment === \"document\" ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t(o.containment === \"document\" ? this.document.width() : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t\tif(!(/^(document|window|parent)$/).test(o.containment)) {\n\t\t\tce = $(o.containment)[0];\n\t\t\tco = $(o.containment).offset();\n\t\t\tover = ($(ce).css(\"overflow\") !== \"hidden\");\n\n\t\t\tthis.containment = [\n\t\t\t\tco.left + (parseInt($(ce).css(\"borderLeftWidth\"),10) || 0) + (parseInt($(ce).css(\"paddingLeft\"),10) || 0) - this.margins.left,\n\t\t\t\tco.top + (parseInt($(ce).css(\"borderTopWidth\"),10) || 0) + (parseInt($(ce).css(\"paddingTop\"),10) || 0) - this.margins.top,\n\t\t\t\tco.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css(\"borderLeftWidth\"),10) || 0) - (parseInt($(ce).css(\"paddingRight\"),10) || 0) - this.helperProportions.width - this.margins.left,\n\t\t\t\tco.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css(\"borderTopWidth\"),10) || 0) - (parseInt($(ce).css(\"paddingBottom\"),10) || 0) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t},\n\n\t_convertPositionTo: function(d, pos) {\n\n\t\tif(!pos) {\n\t\t\tpos = this.position;\n\t\t}\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscroll = this.cssPosition === \"absolute\" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,\n\t\t\tscrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpos.top\t+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.top * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top * mod -\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpos.left +\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.left * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left * mod\t-\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function(event) {\n\n\t\tvar top, left,\n\t\t\to = this.options,\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY,\n\t\t\tscroll = this.cssPosition === \"absolute\" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);\n\n\t\t// This is another very weird special case that only happens for relative elements:\n\t\t// 1. If the css position is relative\n\t\t// 2. and the scroll parent is the document or similar to the offset parent\n\t\t// we have to refresh the relative offset during the scroll so there are no jumps\n\t\tif(this.cssPosition === \"relative\" && !(this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0])) {\n\t\t\tthis.offset.relative = this._getRelativeOffset();\n\t\t}\n\n\t\t/*\n\t\t * - Position constraining -\n\t\t * Constrain the position to a mix of grid, containment.\n\t\t */\n\n\t\tif(this.originalPosition) { //If we are not dragging yet, we won't check for options\n\n\t\t\tif(this.containment) {\n\t\t\t\tif(event.pageX - this.offset.click.left < this.containment[0]) {\n\t\t\t\t\tpageX = this.containment[0] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif(event.pageY - this.offset.click.top < this.containment[1]) {\n\t\t\t\t\tpageY = this.containment[1] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif(event.pageX - this.offset.click.left > this.containment[2]) {\n\t\t\t\t\tpageX = this.containment[2] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif(event.pageY - this.offset.click.top > this.containment[3]) {\n\t\t\t\t\tpageY = this.containment[3] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(o.grid) {\n\t\t\t\ttop = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];\n\t\t\t\tpageY = this.containment ? ( (top - this.offset.click.top >= this.containment[1] && top - this.offset.click.top <= this.containment[3]) ? top : ((top - this.offset.click.top >= this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;\n\n\t\t\t\tleft = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];\n\t\t\t\tpageX = this.containment ? ( (left - this.offset.click.left >= this.containment[0] && left - this.offset.click.left <= this.containment[2]) ? left : ((left - this.offset.click.left >= this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpageY -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.top -\t\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.top\t-\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpageX -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.left -\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.left\t-\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_rearrange: function(event, i, a, hardRefresh) {\n\n\t\ta ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction === \"down\" ? i.item[0] : i.item[0].nextSibling));\n\n\t\t//Various things done here to improve the performance:\n\t\t// 1. we create a setTimeout, that calls refreshPositions\n\t\t// 2. on the instance, we have a counter variable, that get's higher after every append\n\t\t// 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same\n\t\t// 4. this lets only the last addition to the timeout stack through\n\t\tthis.counter = this.counter ? ++this.counter : 1;\n\t\tvar counter = this.counter;\n\n\t\tthis._delay(function() {\n\t\t\tif(counter === this.counter) {\n\t\t\t\tthis.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove\n\t\t\t}\n\t\t});\n\n\t},\n\n\t_clear: function(event, noPropagation) {\n\n\t\tthis.reverting = false;\n\t\t// We delay all events that have to be triggered to after the point where the placeholder has been removed and\n\t\t// everything else normalized again\n\t\tvar i,\n\t\t\tdelayedTriggers = [];\n\n\t\t// We first have to update the dom position of the actual currentItem\n\t\t// Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)\n\t\tif(!this._noFinalSort && this.currentItem.parent().length) {\n\t\t\tthis.placeholder.before(this.currentItem);\n\t\t}\n\t\tthis._noFinalSort = null;\n\n\t\tif(this.helper[0] === this.currentItem[0]) {\n\t\t\tfor(i in this._storedCSS) {\n\t\t\t\tif(this._storedCSS[i] === \"auto\" || this._storedCSS[i] === \"static\") {\n\t\t\t\t\tthis._storedCSS[i] = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentItem.css(this._storedCSS).removeClass(\"ui-sortable-helper\");\n\t\t} else {\n\t\t\tthis.currentItem.show();\n\t\t}\n\n\t\tif(this.fromOutside && !noPropagation) {\n\t\t\tdelayedTriggers.push(function(event) { this._trigger(\"receive\", event, this._uiHash(this.fromOutside)); });\n\t\t}\n\t\tif((this.fromOutside || this.domPosition.prev !== this.currentItem.prev().not(\".ui-sortable-helper\")[0] || this.domPosition.parent !== this.currentItem.parent()[0]) && !noPropagation) {\n\t\t\tdelayedTriggers.push(function(event) { this._trigger(\"update\", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed\n\t\t}\n\n\t\t// Check if the items Container has Changed and trigger appropriate\n\t\t// events.\n\t\tif (this !== this.currentContainer) {\n\t\t\tif(!noPropagation) {\n\t\t\t\tdelayedTriggers.push(function(event) { this._trigger(\"remove\", event, this._uiHash()); });\n\t\t\t\tdelayedTriggers.push((function(c) { return function(event) { c._trigger(\"receive\", event, this._uiHash(this)); }; }).call(this, this.currentContainer));\n\t\t\t\tdelayedTriggers.push((function(c) { return function(event) { c._trigger(\"update\", event, this._uiHash(this)); }; }).call(this, this.currentContainer));\n\t\t\t}\n\t\t}\n\n\n\t\t//Post events to containers\n\t\tfunction delayEvent( type, instance, container ) {\n\t\t\treturn function( event ) {\n\t\t\t\tcontainer._trigger( type, event, instance._uiHash( instance ) );\n\t\t\t};\n\t\t}\n\t\tfor (i = this.containers.length - 1; i >= 0; i--){\n\t\t\tif (!noPropagation) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"deactivate\", this, this.containers[ i ] ) );\n\t\t\t}\n\t\t\tif(this.containers[i].containerCache.over) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"out\", this, this.containers[ i ] ) );\n\t\t\t\tthis.containers[i].containerCache.over = 0;\n\t\t\t}\n\t\t}\n\n\t\t//Do what was originally in plugins\n\t\tif ( this.storedCursor ) {\n\t\t\tthis.document.find( \"body\" ).css( \"cursor\", this.storedCursor );\n\t\t\tthis.storedStylesheet.remove();\n\t\t}\n\t\tif(this._storedOpacity) {\n\t\t\tthis.helper.css(\"opacity\", this._storedOpacity);\n\t\t}\n\t\tif(this._storedZIndex) {\n\t\t\tthis.helper.css(\"zIndex\", this._storedZIndex === \"auto\" ? \"\" : this._storedZIndex);\n\t\t}\n\n\t\tthis.dragging = false;\n\n\t\tif(!noPropagation) {\n\t\t\tthis._trigger(\"beforeStop\", event, this._uiHash());\n\t\t}\n\n\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!\n\t\tthis.placeholder[0].parentNode.removeChild(this.placeholder[0]);\n\n\t\tif ( !this.cancelHelperRemoval ) {\n\t\t\tif ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\t\t\tthis.helper = null;\n\t\t}\n\n\t\tif(!noPropagation) {\n\t\t\tfor (i=0; i < delayedTriggers.length; i++) {\n\t\t\t\tdelayedTriggers[i].call(this, event);\n\t\t\t} //Trigger all delayed events\n\t\t\tthis._trigger(\"stop\", event, this._uiHash());\n\t\t}\n\n\t\tthis.fromOutside = false;\n\t\treturn !this.cancelHelperRemoval;\n\n\t},\n\n\t_trigger: function() {\n\t\tif ($.Widget.prototype._trigger.apply(this, arguments) === false) {\n\t\t\tthis.cancel();\n\t\t}\n\t},\n\n\t_uiHash: function(_inst) {\n\t\tvar inst = _inst || this;\n\t\treturn {\n\t\t\thelper: inst.helper,\n\t\t\tplaceholder: inst.placeholder || $([]),\n\t\t\tposition: inst.position,\n\t\t\toriginalPosition: inst.originalPosition,\n\t\t\toffset: inst.positionAbs,\n\t\t\titem: inst.currentItem,\n\t\t\tsender: _inst ? _inst.element : null\n\t\t};\n\t}\n\n});\n\n\n/*!\n * jQuery UI Spinner 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/spinner/\n */\n\n\nfunction spinner_modifier( fn ) {\n\treturn function() {\n\t\tvar previous = this.element.val();\n\t\tfn.apply( this, arguments );\n\t\tthis._refresh();\n\t\tif ( previous !== this.element.val() ) {\n\t\t\tthis._trigger( \"change\" );\n\t\t}\n\t};\n}\n\nvar spinner = $.widget( \"ui.spinner\", {\n\tversion: \"1.11.4\",\n\tdefaultElement: \"<input>\",\n\twidgetEventPrefix: \"spin\",\n\toptions: {\n\t\tculture: null,\n\t\ticons: {\n\t\t\tdown: \"ui-icon-triangle-1-s\",\n\t\t\tup: \"ui-icon-triangle-1-n\"\n\t\t},\n\t\tincremental: true,\n\t\tmax: null,\n\t\tmin: null,\n\t\tnumberFormat: null,\n\t\tpage: 10,\n\t\tstep: 1,\n\n\t\tchange: null,\n\t\tspin: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\n\t_create: function() {\n\t\t// handle string values that need to be parsed\n\t\tthis._setOption( \"max\", this.options.max );\n\t\tthis._setOption( \"min\", this.options.min );\n\t\tthis._setOption( \"step\", this.options.step );\n\n\t\t// Only format if there is a value, prevents the field from being marked\n\t\t// as invalid in Firefox, see #9573.\n\t\tif ( this.value() !== \"\" ) {\n\t\t\t// Format the value, but don't constrain.\n\t\t\tthis._value( this.element.val(), true );\n\t\t}\n\n\t\tthis._draw();\n\t\tthis._on( this._events );\n\t\tthis._refresh();\n\n\t\t// turning off autocomplete prevents the browser from remembering the\n\t\t// value when navigating through history, so we re-enable autocomplete\n\t\t// if the page is unloaded before the widget is destroyed. #7790\n\t\tthis._on( this.window, {\n\t\t\tbeforeunload: function() {\n\t\t\t\tthis.element.removeAttr( \"autocomplete\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_getCreateOptions: function() {\n\t\tvar options = {},\n\t\t\telement = this.element;\n\n\t\t$.each( [ \"min\", \"max\", \"step\" ], function( i, option ) {\n\t\t\tvar value = element.attr( option );\n\t\t\tif ( value !== undefined && value.length ) {\n\t\t\t\toptions[ option ] = value;\n\t\t\t}\n\t\t});\n\n\t\treturn options;\n\t},\n\n\t_events: {\n\t\tkeydown: function( event ) {\n\t\t\tif ( this._start( event ) && this._keydown( event ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\tkeyup: \"_stop\",\n\t\tfocus: function() {\n\t\t\tthis.previous = this.element.val();\n\t\t},\n\t\tblur: function( event ) {\n\t\t\tif ( this.cancelBlur ) {\n\t\t\t\tdelete this.cancelBlur;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._stop();\n\t\t\tthis._refresh();\n\t\t\tif ( this.previous !== this.element.val() ) {\n\t\t\t\tthis._trigger( \"change\", event );\n\t\t\t}\n\t\t},\n\t\tmousewheel: function( event, delta ) {\n\t\t\tif ( !delta ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( !this.spinning && !this._start( event ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis._spin( (delta > 0 ? 1 : -1) * this.options.step, event );\n\t\t\tclearTimeout( this.mousewheelTimer );\n\t\t\tthis.mousewheelTimer = this._delay(function() {\n\t\t\t\tif ( this.spinning ) {\n\t\t\t\t\tthis._stop( event );\n\t\t\t\t}\n\t\t\t}, 100 );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t\"mousedown .ui-spinner-button\": function( event ) {\n\t\t\tvar previous;\n\n\t\t\t// We never want the buttons to have focus; whenever the user is\n\t\t\t// interacting with the spinner, the focus should be on the input.\n\t\t\t// If the input is focused then this.previous is properly set from\n\t\t\t// when the input first received focus. If the input is not focused\n\t\t\t// then we need to set this.previous based on the value before spinning.\n\t\t\tprevious = this.element[0] === this.document[0].activeElement ?\n\t\t\t\tthis.previous : this.element.val();\n\t\t\tfunction checkFocus() {\n\t\t\t\tvar isActive = this.element[0] === this.document[0].activeElement;\n\t\t\t\tif ( !isActive ) {\n\t\t\t\t\tthis.element.focus();\n\t\t\t\t\tthis.previous = previous;\n\t\t\t\t\t// support: IE\n\t\t\t\t\t// IE sets focus asynchronously, so we need to check if focus\n\t\t\t\t\t// moved off of the input because the user clicked on the button.\n\t\t\t\t\tthis._delay(function() {\n\t\t\t\t\t\tthis.previous = previous;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// ensure focus is on (or stays on) the text field\n\t\t\tevent.preventDefault();\n\t\t\tcheckFocus.call( this );\n\n\t\t\t// support: IE\n\t\t\t// IE doesn't prevent moving focus even with event.preventDefault()\n\t\t\t// so we set a flag to know when we should ignore the blur event\n\t\t\t// and check (again) if focus moved off of the input.\n\t\t\tthis.cancelBlur = true;\n\t\t\tthis._delay(function() {\n\t\t\t\tdelete this.cancelBlur;\n\t\t\t\tcheckFocus.call( this );\n\t\t\t});\n\n\t\t\tif ( this._start( event ) === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._repeat( null, $( event.currentTarget ).hasClass( \"ui-spinner-up\" ) ? 1 : -1, event );\n\t\t},\n\t\t\"mouseup .ui-spinner-button\": \"_stop\",\n\t\t\"mouseenter .ui-spinner-button\": function( event ) {\n\t\t\t// button will add ui-state-active if mouse was down while mouseleave and kept down\n\t\t\tif ( !$( event.currentTarget ).hasClass( \"ui-state-active\" ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this._start( event ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis._repeat( null, $( event.currentTarget ).hasClass( \"ui-spinner-up\" ) ? 1 : -1, event );\n\t\t},\n\t\t// TODO: do we really want to consider this a stop?\n\t\t// shouldn't we just stop the repeater and wait until mouseup before\n\t\t// we trigger the stop event?\n\t\t\"mouseleave .ui-spinner-button\": \"_stop\"\n\t},\n\n\t_draw: function() {\n\t\tvar uiSpinner = this.uiSpinner = this.element\n\t\t\t.addClass( \"ui-spinner-input\" )\n\t\t\t.attr( \"autocomplete\", \"off\" )\n\t\t\t.wrap( this._uiSpinnerHtml() )\n\t\t\t.parent()\n\t\t\t\t// add buttons\n\t\t\t\t.append( this._buttonHtml() );\n\n\t\tthis.element.attr( \"role\", \"spinbutton\" );\n\n\t\t// button bindings\n\t\tthis.buttons = uiSpinner.find( \".ui-spinner-button\" )\n\t\t\t.attr( \"tabIndex\", -1 )\n\t\t\t.button()\n\t\t\t.removeClass( \"ui-corner-all\" );\n\n\t\t// IE 6 doesn't understand height: 50% for the buttons\n\t\t// unless the wrapper has an explicit height\n\t\tif ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) &&\n\t\t\t\tuiSpinner.height() > 0 ) {\n\t\t\tuiSpinner.height( uiSpinner.height() );\n\t\t}\n\n\t\t// disable spinner if element was already disabled\n\t\tif ( this.options.disabled ) {\n\t\t\tthis.disable();\n\t\t}\n\t},\n\n\t_keydown: function( event ) {\n\t\tvar options = this.options,\n\t\t\tkeyCode = $.ui.keyCode;\n\n\t\tswitch ( event.keyCode ) {\n\t\tcase keyCode.UP:\n\t\t\tthis._repeat( null, 1, event );\n\t\t\treturn true;\n\t\tcase keyCode.DOWN:\n\t\t\tthis._repeat( null, -1, event );\n\t\t\treturn true;\n\t\tcase keyCode.PAGE_UP:\n\t\t\tthis._repeat( null, options.page, event );\n\t\t\treturn true;\n\t\tcase keyCode.PAGE_DOWN:\n\t\t\tthis._repeat( null, -options.page, event );\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_uiSpinnerHtml: function() {\n\t\treturn \"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>\";\n\t},\n\n\t_buttonHtml: function() {\n\t\treturn \"\" +\n\t\t\t\"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'>\" +\n\t\t\t\t\"<span class='ui-icon \" + this.options.icons.up + \"'>▲</span>\" +\n\t\t\t\"</a>\" +\n\t\t\t\"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>\" +\n\t\t\t\t\"<span class='ui-icon \" + this.options.icons.down + \"'>▼</span>\" +\n\t\t\t\"</a>\";\n\t},\n\n\t_start: function( event ) {\n\t\tif ( !this.spinning && this._trigger( \"start\", event ) === false ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !this.counter ) {\n\t\t\tthis.counter = 1;\n\t\t}\n\t\tthis.spinning = true;\n\t\treturn true;\n\t},\n\n\t_repeat: function( i, steps, event ) {\n\t\ti = i || 500;\n\n\t\tclearTimeout( this.timer );\n\t\tthis.timer = this._delay(function() {\n\t\t\tthis._repeat( 40, steps, event );\n\t\t}, i );\n\n\t\tthis._spin( steps * this.options.step, event );\n\t},\n\n\t_spin: function( step, event ) {\n\t\tvar value = this.value() || 0;\n\n\t\tif ( !this.counter ) {\n\t\t\tthis.counter = 1;\n\t\t}\n\n\t\tvalue = this._adjustValue( value + step * this._increment( this.counter ) );\n\n\t\tif ( !this.spinning || this._trigger( \"spin\", event, { value: value } ) !== false) {\n\t\t\tthis._value( value );\n\t\t\tthis.counter++;\n\t\t}\n\t},\n\n\t_increment: function( i ) {\n\t\tvar incremental = this.options.incremental;\n\n\t\tif ( incremental ) {\n\t\t\treturn $.isFunction( incremental ) ?\n\t\t\t\tincremental( i ) :\n\t\t\t\tMath.floor( i * i * i / 50000 - i * i / 500 + 17 * i / 200 + 1 );\n\t\t}\n\n\t\treturn 1;\n\t},\n\n\t_precision: function() {\n\t\tvar precision = this._precisionOf( this.options.step );\n\t\tif ( this.options.min !== null ) {\n\t\t\tprecision = Math.max( precision, this._precisionOf( this.options.min ) );\n\t\t}\n\t\treturn precision;\n\t},\n\n\t_precisionOf: function( num ) {\n\t\tvar str = num.toString(),\n\t\t\tdecimal = str.indexOf( \".\" );\n\t\treturn decimal === -1 ? 0 : str.length - decimal - 1;\n\t},\n\n\t_adjustValue: function( value ) {\n\t\tvar base, aboveMin,\n\t\t\toptions = this.options;\n\n\t\t// make sure we're at a valid step\n\t\t// - find out where we are relative to the base (min or 0)\n\t\tbase = options.min !== null ? options.min : 0;\n\t\taboveMin = value - base;\n\t\t// - round to the nearest step\n\t\taboveMin = Math.round(aboveMin / options.step) * options.step;\n\t\t// - rounding is based on 0, so adjust back to our base\n\t\tvalue = base + aboveMin;\n\n\t\t// fix precision from bad JS floating point math\n\t\tvalue = parseFloat( value.toFixed( this._precision() ) );\n\n\t\t// clamp the value\n\t\tif ( options.max !== null && value > options.max) {\n\t\t\treturn options.max;\n\t\t}\n\t\tif ( options.min !== null && value < options.min ) {\n\t\t\treturn options.min;\n\t\t}\n\n\t\treturn value;\n\t},\n\n\t_stop: function( event ) {\n\t\tif ( !this.spinning ) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout( this.timer );\n\t\tclearTimeout( this.mousewheelTimer );\n\t\tthis.counter = 0;\n\t\tthis.spinning = false;\n\t\tthis._trigger( \"stop\", event );\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"culture\" || key === \"numberFormat\" ) {\n\t\t\tvar prevValue = this._parse( this.element.val() );\n\t\t\tthis.options[ key ] = value;\n\t\t\tthis.element.val( this._format( prevValue ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === \"max\" || key === \"min\" || key === \"step\" ) {\n\t\t\tif ( typeof value === \"string\" ) {\n\t\t\t\tvalue = this._parse( value );\n\t\t\t}\n\t\t}\n\t\tif ( key === \"icons\" ) {\n\t\t\tthis.buttons.first().find( \".ui-icon\" )\n\t\t\t\t.removeClass( this.options.icons.up )\n\t\t\t\t.addClass( value.up );\n\t\t\tthis.buttons.last().find( \".ui-icon\" )\n\t\t\t\t.removeClass( this.options.icons.down )\n\t\t\t\t.addClass( value.down );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget().toggleClass( \"ui-state-disabled\", !!value );\n\t\t\tthis.element.prop( \"disabled\", !!value );\n\t\t\tthis.buttons.button( value ? \"disable\" : \"enable\" );\n\t\t}\n\t},\n\n\t_setOptions: spinner_modifier(function( options ) {\n\t\tthis._super( options );\n\t}),\n\n\t_parse: function( val ) {\n\t\tif ( typeof val === \"string\" && val !== \"\" ) {\n\t\t\tval = window.Globalize && this.options.numberFormat ?\n\t\t\t\tGlobalize.parseFloat( val, 10, this.options.culture ) : +val;\n\t\t}\n\t\treturn val === \"\" || isNaN( val ) ? null : val;\n\t},\n\n\t_format: function( value ) {\n\t\tif ( value === \"\" ) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn window.Globalize && this.options.numberFormat ?\n\t\t\tGlobalize.format( value, this.options.numberFormat, this.options.culture ) :\n\t\t\tvalue;\n\t},\n\n\t_refresh: function() {\n\t\tthis.element.attr({\n\t\t\t\"aria-valuemin\": this.options.min,\n\t\t\t\"aria-valuemax\": this.options.max,\n\t\t\t// TODO: what should we do with values that can't be parsed?\n\t\t\t\"aria-valuenow\": this._parse( this.element.val() )\n\t\t});\n\t},\n\n\tisValid: function() {\n\t\tvar value = this.value();\n\n\t\t// null is invalid\n\t\tif ( value === null ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// if value gets adjusted, it's invalid\n\t\treturn value === this._adjustValue( value );\n\t},\n\n\t// update the value without triggering change\n\t_value: function( value, allowAny ) {\n\t\tvar parsed;\n\t\tif ( value !== \"\" ) {\n\t\t\tparsed = this._parse( value );\n\t\t\tif ( parsed !== null ) {\n\t\t\t\tif ( !allowAny ) {\n\t\t\t\t\tparsed = this._adjustValue( parsed );\n\t\t\t\t}\n\t\t\t\tvalue = this._format( parsed );\n\t\t\t}\n\t\t}\n\t\tthis.element.val( value );\n\t\tthis._refresh();\n\t},\n\n\t_destroy: function() {\n\t\tthis.element\n\t\t\t.removeClass( \"ui-spinner-input\" )\n\t\t\t.prop( \"disabled\", false )\n\t\t\t.removeAttr( \"autocomplete\" )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"aria-valuemin\" )\n\t\t\t.removeAttr( \"aria-valuemax\" )\n\t\t\t.removeAttr( \"aria-valuenow\" );\n\t\tthis.uiSpinner.replaceWith( this.element );\n\t},\n\n\tstepUp: spinner_modifier(function( steps ) {\n\t\tthis._stepUp( steps );\n\t}),\n\t_stepUp: function( steps ) {\n\t\tif ( this._start() ) {\n\t\t\tthis._spin( (steps || 1) * this.options.step );\n\t\t\tthis._stop();\n\t\t}\n\t},\n\n\tstepDown: spinner_modifier(function( steps ) {\n\t\tthis._stepDown( steps );\n\t}),\n\t_stepDown: function( steps ) {\n\t\tif ( this._start() ) {\n\t\t\tthis._spin( (steps || 1) * -this.options.step );\n\t\t\tthis._stop();\n\t\t}\n\t},\n\n\tpageUp: spinner_modifier(function( pages ) {\n\t\tthis._stepUp( (pages || 1) * this.options.page );\n\t}),\n\n\tpageDown: spinner_modifier(function( pages ) {\n\t\tthis._stepDown( (pages || 1) * this.options.page );\n\t}),\n\n\tvalue: function( newVal ) {\n\t\tif ( !arguments.length ) {\n\t\t\treturn this._parse( this.element.val() );\n\t\t}\n\t\tspinner_modifier( this._value ).call( this, newVal );\n\t},\n\n\twidget: function() {\n\t\treturn this.uiSpinner;\n\t}\n});\n\n\n/*!\n * jQuery UI Tabs 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/tabs/\n */\n\n\nvar tabs = $.widget( \"ui.tabs\", {\n\tversion: \"1.11.4\",\n\tdelay: 300,\n\toptions: {\n\t\tactive: null,\n\t\tcollapsible: false,\n\t\tevent: \"click\",\n\t\theightStyle: \"content\",\n\t\thide: null,\n\t\tshow: null,\n\n\t\t// callbacks\n\t\tactivate: null,\n\t\tbeforeActivate: null,\n\t\tbeforeLoad: null,\n\t\tload: null\n\t},\n\n\t_isLocal: (function() {\n\t\tvar rhash = /#.*$/;\n\n\t\treturn function( anchor ) {\n\t\t\tvar anchorUrl, locationUrl;\n\n\t\t\t// support: IE7\n\t\t\t// IE7 doesn't normalize the href property when set via script (#9317)\n\t\t\tanchor = anchor.cloneNode( false );\n\n\t\t\tanchorUrl = anchor.href.replace( rhash, \"\" );\n\t\t\tlocationUrl = location.href.replace( rhash, \"\" );\n\n\t\t\t// decoding may throw an error if the URL isn't UTF-8 (#9518)\n\t\t\ttry {\n\t\t\t\tanchorUrl = decodeURIComponent( anchorUrl );\n\t\t\t} catch ( error ) {}\n\t\t\ttry {\n\t\t\t\tlocationUrl = decodeURIComponent( locationUrl );\n\t\t\t} catch ( error ) {}\n\n\t\t\treturn anchor.hash.length > 1 && anchorUrl === locationUrl;\n\t\t};\n\t})(),\n\n\t_create: function() {\n\t\tvar that = this,\n\t\t\toptions = this.options;\n\n\t\tthis.running = false;\n\n\t\tthis.element\n\t\t\t.addClass( \"ui-tabs ui-widget ui-widget-content ui-corner-all\" )\n\t\t\t.toggleClass( \"ui-tabs-collapsible\", options.collapsible );\n\n\t\tthis._processTabs();\n\t\toptions.active = this._initialActive();\n\n\t\t// Take disabling tabs via class attribute from HTML\n\t\t// into account and update option properly.\n\t\tif ( $.isArray( options.disabled ) ) {\n\t\t\toptions.disabled = $.unique( options.disabled.concat(\n\t\t\t\t$.map( this.tabs.filter( \".ui-state-disabled\" ), function( li ) {\n\t\t\t\t\treturn that.tabs.index( li );\n\t\t\t\t})\n\t\t\t) ).sort();\n\t\t}\n\n\t\t// check for length avoids error when initializing empty list\n\t\tif ( this.options.active !== false && this.anchors.length ) {\n\t\t\tthis.active = this._findActive( options.active );\n\t\t} else {\n\t\t\tthis.active = $();\n\t\t}\n\n\t\tthis._refresh();\n\n\t\tif ( this.active.length ) {\n\t\t\tthis.load( options.active );\n\t\t}\n\t},\n\n\t_initialActive: function() {\n\t\tvar active = this.options.active,\n\t\t\tcollapsible = this.options.collapsible,\n\t\t\tlocationHash = location.hash.substring( 1 );\n\n\t\tif ( active === null ) {\n\t\t\t// check the fragment identifier in the URL\n\t\t\tif ( locationHash ) {\n\t\t\t\tthis.tabs.each(function( i, tab ) {\n\t\t\t\t\tif ( $( tab ).attr( \"aria-controls\" ) === locationHash ) {\n\t\t\t\t\t\tactive = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// check for a tab marked active via a class\n\t\t\tif ( active === null ) {\n\t\t\t\tactive = this.tabs.index( this.tabs.filter( \".ui-tabs-active\" ) );\n\t\t\t}\n\n\t\t\t// no active tab, set to false\n\t\t\tif ( active === null || active === -1 ) {\n\t\t\t\tactive = this.tabs.length ? 0 : false;\n\t\t\t}\n\t\t}\n\n\t\t// handle numbers: negative, out of range\n\t\tif ( active !== false ) {\n\t\t\tactive = this.tabs.index( this.tabs.eq( active ) );\n\t\t\tif ( active === -1 ) {\n\t\t\t\tactive = collapsible ? false : 0;\n\t\t\t}\n\t\t}\n\n\t\t// don't allow collapsible: false and active: false\n\t\tif ( !collapsible && active === false && this.anchors.length ) {\n\t\t\tactive = 0;\n\t\t}\n\n\t\treturn active;\n\t},\n\n\t_getCreateEventData: function() {\n\t\treturn {\n\t\t\ttab: this.active,\n\t\t\tpanel: !this.active.length ? $() : this._getPanelForTab( this.active )\n\t\t};\n\t},\n\n\t_tabKeydown: function( event ) {\n\t\tvar focusedTab = $( this.document[0].activeElement ).closest( \"li\" ),\n\t\t\tselectedIndex = this.tabs.index( focusedTab ),\n\t\t\tgoingForward = true;\n\n\t\tif ( this._handlePageNav( event ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase $.ui.keyCode.RIGHT:\n\t\t\tcase $.ui.keyCode.DOWN:\n\t\t\t\tselectedIndex++;\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.UP:\n\t\t\tcase $.ui.keyCode.LEFT:\n\t\t\t\tgoingForward = false;\n\t\t\t\tselectedIndex--;\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.END:\n\t\t\t\tselectedIndex = this.anchors.length - 1;\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.HOME:\n\t\t\t\tselectedIndex = 0;\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.SPACE:\n\t\t\t\t// Activate only, no collapsing\n\t\t\t\tevent.preventDefault();\n\t\t\t\tclearTimeout( this.activating );\n\t\t\t\tthis._activate( selectedIndex );\n\t\t\t\treturn;\n\t\t\tcase $.ui.keyCode.ENTER:\n\t\t\t\t// Toggle (cancel delayed activation, allow collapsing)\n\t\t\t\tevent.preventDefault();\n\t\t\t\tclearTimeout( this.activating );\n\t\t\t\t// Determine if we should collapse or activate\n\t\t\t\tthis._activate( selectedIndex === this.options.active ? false : selectedIndex );\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\t// Focus the appropriate tab, based on which key was pressed\n\t\tevent.preventDefault();\n\t\tclearTimeout( this.activating );\n\t\tselectedIndex = this._focusNextTab( selectedIndex, goingForward );\n\n\t\t// Navigating with control/command key will prevent automatic activation\n\t\tif ( !event.ctrlKey && !event.metaKey ) {\n\n\t\t\t// Update aria-selected immediately so that AT think the tab is already selected.\n\t\t\t// Otherwise AT may confuse the user by stating that they need to activate the tab,\n\t\t\t// but the tab will already be activated by the time the announcement finishes.\n\t\t\tfocusedTab.attr( \"aria-selected\", \"false\" );\n\t\t\tthis.tabs.eq( selectedIndex ).attr( \"aria-selected\", \"true\" );\n\n\t\t\tthis.activating = this._delay(function() {\n\t\t\t\tthis.option( \"active\", selectedIndex );\n\t\t\t}, this.delay );\n\t\t}\n\t},\n\n\t_panelKeydown: function( event ) {\n\t\tif ( this._handlePageNav( event ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ctrl+up moves focus to the current tab\n\t\tif ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.active.focus();\n\t\t}\n\t},\n\n\t// Alt+page up/down moves focus to the previous/next tab (and activates)\n\t_handlePageNav: function( event ) {\n\t\tif ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {\n\t\t\tthis._activate( this._focusNextTab( this.options.active - 1, false ) );\n\t\t\treturn true;\n\t\t}\n\t\tif ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {\n\t\t\tthis._activate( this._focusNextTab( this.options.active + 1, true ) );\n\t\t\treturn true;\n\t\t}\n\t},\n\n\t_findNextTab: function( index, goingForward ) {\n\t\tvar lastTabIndex = this.tabs.length - 1;\n\n\t\tfunction constrain() {\n\t\t\tif ( index > lastTabIndex ) {\n\t\t\t\tindex = 0;\n\t\t\t}\n\t\t\tif ( index < 0 ) {\n\t\t\t\tindex = lastTabIndex;\n\t\t\t}\n\t\t\treturn index;\n\t\t}\n\n\t\twhile ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {\n\t\t\tindex = goingForward ? index + 1 : index - 1;\n\t\t}\n\n\t\treturn index;\n\t},\n\n\t_focusNextTab: function( index, goingForward ) {\n\t\tindex = this._findNextTab( index, goingForward );\n\t\tthis.tabs.eq( index ).focus();\n\t\treturn index;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"active\" ) {\n\t\t\t// _activate() will handle invalid values and update this.options\n\t\t\tthis._activate( value );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\t// don't use the widget factory's disabled handling\n\t\t\tthis._setupDisabled( value );\n\t\t\treturn;\n\t\t}\n\n\t\tthis._super( key, value);\n\n\t\tif ( key === \"collapsible\" ) {\n\t\t\tthis.element.toggleClass( \"ui-tabs-collapsible\", value );\n\t\t\t// Setting collapsible: false while collapsed; open first panel\n\t\t\tif ( !value && this.options.active === false ) {\n\t\t\t\tthis._activate( 0 );\n\t\t\t}\n\t\t}\n\n\t\tif ( key === \"event\" ) {\n\t\t\tthis._setupEvents( value );\n\t\t}\n\n\t\tif ( key === \"heightStyle\" ) {\n\t\t\tthis._setupHeightStyle( value );\n\t\t}\n\t},\n\n\t_sanitizeSelector: function( hash ) {\n\t\treturn hash ? hash.replace( /[!\"$%&'()*+,.\\/:;<=>?@\\[\\]\\^`{|}~]/g, \"\\\\$&\" ) : \"\";\n\t},\n\n\trefresh: function() {\n\t\tvar options = this.options,\n\t\t\tlis = this.tablist.children( \":has(a[href])\" );\n\n\t\t// get disabled tabs from class attribute from HTML\n\t\t// this will get converted to a boolean if needed in _refresh()\n\t\toptions.disabled = $.map( lis.filter( \".ui-state-disabled\" ), function( tab ) {\n\t\t\treturn lis.index( tab );\n\t\t});\n\n\t\tthis._processTabs();\n\n\t\t// was collapsed or no tabs\n\t\tif ( options.active === false || !this.anchors.length ) {\n\t\t\toptions.active = false;\n\t\t\tthis.active = $();\n\t\t// was active, but active tab is gone\n\t\t} else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {\n\t\t\t// all remaining tabs are disabled\n\t\t\tif ( this.tabs.length === options.disabled.length ) {\n\t\t\t\toptions.active = false;\n\t\t\t\tthis.active = $();\n\t\t\t// activate previous tab\n\t\t\t} else {\n\t\t\t\tthis._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );\n\t\t\t}\n\t\t// was active, active tab still exists\n\t\t} else {\n\t\t\t// make sure active index is correct\n\t\t\toptions.active = this.tabs.index( this.active );\n\t\t}\n\n\t\tthis._refresh();\n\t},\n\n\t_refresh: function() {\n\t\tthis._setupDisabled( this.options.disabled );\n\t\tthis._setupEvents( this.options.event );\n\t\tthis._setupHeightStyle( this.options.heightStyle );\n\n\t\tthis.tabs.not( this.active ).attr({\n\t\t\t\"aria-selected\": \"false\",\n\t\t\t\"aria-expanded\": \"false\",\n\t\t\ttabIndex: -1\n\t\t});\n\t\tthis.panels.not( this._getPanelForTab( this.active ) )\n\t\t\t.hide()\n\t\t\t.attr({\n\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t});\n\n\t\t// Make sure one tab is in the tab order\n\t\tif ( !this.active.length ) {\n\t\t\tthis.tabs.eq( 0 ).attr( \"tabIndex\", 0 );\n\t\t} else {\n\t\t\tthis.active\n\t\t\t\t.addClass( \"ui-tabs-active ui-state-active\" )\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t});\n\t\t\tthis._getPanelForTab( this.active )\n\t\t\t\t.show()\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t\t});\n\t\t}\n\t},\n\n\t_processTabs: function() {\n\t\tvar that = this,\n\t\t\tprevTabs = this.tabs,\n\t\t\tprevAnchors = this.anchors,\n\t\t\tprevPanels = this.panels;\n\n\t\tthis.tablist = this._getList()\n\t\t\t.addClass( \"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all\" )\n\t\t\t.attr( \"role\", \"tablist\" )\n\n\t\t\t// Prevent users from focusing disabled tabs via click\n\t\t\t.delegate( \"> li\", \"mousedown\" + this.eventNamespace, function( event ) {\n\t\t\t\tif ( $( this ).is( \".ui-state-disabled\" ) ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// support: IE <9\n\t\t\t// Preventing the default action in mousedown doesn't prevent IE\n\t\t\t// from focusing the element, so if the anchor gets focused, blur.\n\t\t\t// We don't have to worry about focusing the previously focused\n\t\t\t// element since clicking on a non-focusable element should focus\n\t\t\t// the body anyway.\n\t\t\t.delegate( \".ui-tabs-anchor\", \"focus\" + this.eventNamespace, function() {\n\t\t\t\tif ( $( this ).closest( \"li\" ).is( \".ui-state-disabled\" ) ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis.tabs = this.tablist.find( \"> li:has(a[href])\" )\n\t\t\t.addClass( \"ui-state-default ui-corner-top\" )\n\t\t\t.attr({\n\t\t\t\trole: \"tab\",\n\t\t\t\ttabIndex: -1\n\t\t\t});\n\n\t\tthis.anchors = this.tabs.map(function() {\n\t\t\t\treturn $( \"a\", this )[ 0 ];\n\t\t\t})\n\t\t\t.addClass( \"ui-tabs-anchor\" )\n\t\t\t.attr({\n\t\t\t\trole: \"presentation\",\n\t\t\t\ttabIndex: -1\n\t\t\t});\n\n\t\tthis.panels = $();\n\n\t\tthis.anchors.each(function( i, anchor ) {\n\t\t\tvar selector, panel, panelId,\n\t\t\t\tanchorId = $( anchor ).uniqueId().attr( \"id\" ),\n\t\t\t\ttab = $( anchor ).closest( \"li\" ),\n\t\t\t\toriginalAriaControls = tab.attr( \"aria-controls\" );\n\n\t\t\t// inline tab\n\t\t\tif ( that._isLocal( anchor ) ) {\n\t\t\t\tselector = anchor.hash;\n\t\t\t\tpanelId = selector.substring( 1 );\n\t\t\t\tpanel = that.element.find( that._sanitizeSelector( selector ) );\n\t\t\t// remote tab\n\t\t\t} else {\n\t\t\t\t// If the tab doesn't already have aria-controls,\n\t\t\t\t// generate an id by using a throw-away element\n\t\t\t\tpanelId = tab.attr( \"aria-controls\" ) || $( {} ).uniqueId()[ 0 ].id;\n\t\t\t\tselector = \"#\" + panelId;\n\t\t\t\tpanel = that.element.find( selector );\n\t\t\t\tif ( !panel.length ) {\n\t\t\t\t\tpanel = that._createPanel( panelId );\n\t\t\t\t\tpanel.insertAfter( that.panels[ i - 1 ] || that.tablist );\n\t\t\t\t}\n\t\t\t\tpanel.attr( \"aria-live\", \"polite\" );\n\t\t\t}\n\n\t\t\tif ( panel.length) {\n\t\t\t\tthat.panels = that.panels.add( panel );\n\t\t\t}\n\t\t\tif ( originalAriaControls ) {\n\t\t\t\ttab.data( \"ui-tabs-aria-controls\", originalAriaControls );\n\t\t\t}\n\t\t\ttab.attr({\n\t\t\t\t\"aria-controls\": panelId,\n\t\t\t\t\"aria-labelledby\": anchorId\n\t\t\t});\n\t\t\tpanel.attr( \"aria-labelledby\", anchorId );\n\t\t});\n\n\t\tthis.panels\n\t\t\t.addClass( \"ui-tabs-panel ui-widget-content ui-corner-bottom\" )\n\t\t\t.attr( \"role\", \"tabpanel\" );\n\n\t\t// Avoid memory leaks (#10056)\n\t\tif ( prevTabs ) {\n\t\t\tthis._off( prevTabs.not( this.tabs ) );\n\t\t\tthis._off( prevAnchors.not( this.anchors ) );\n\t\t\tthis._off( prevPanels.not( this.panels ) );\n\t\t}\n\t},\n\n\t// allow overriding how to find the list for rare usage scenarios (#7715)\n\t_getList: function() {\n\t\treturn this.tablist || this.element.find( \"ol,ul\" ).eq( 0 );\n\t},\n\n\t_createPanel: function( id ) {\n\t\treturn $( \"<div>\" )\n\t\t\t.attr( \"id\", id )\n\t\t\t.addClass( \"ui-tabs-panel ui-widget-content ui-corner-bottom\" )\n\t\t\t.data( \"ui-tabs-destroy\", true );\n\t},\n\n\t_setupDisabled: function( disabled ) {\n\t\tif ( $.isArray( disabled ) ) {\n\t\t\tif ( !disabled.length ) {\n\t\t\t\tdisabled = false;\n\t\t\t} else if ( disabled.length === this.anchors.length ) {\n\t\t\t\tdisabled = true;\n\t\t\t}\n\t\t}\n\n\t\t// disable tabs\n\t\tfor ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) {\n\t\t\tif ( disabled === true || $.inArray( i, disabled ) !== -1 ) {\n\t\t\t\t$( li )\n\t\t\t\t\t.addClass( \"ui-state-disabled\" )\n\t\t\t\t\t.attr( \"aria-disabled\", \"true\" );\n\t\t\t} else {\n\t\t\t\t$( li )\n\t\t\t\t\t.removeClass( \"ui-state-disabled\" )\n\t\t\t\t\t.removeAttr( \"aria-disabled\" );\n\t\t\t}\n\t\t}\n\n\t\tthis.options.disabled = disabled;\n\t},\n\n\t_setupEvents: function( event ) {\n\t\tvar events = {};\n\t\tif ( event ) {\n\t\t\t$.each( event.split(\" \"), function( index, eventName ) {\n\t\t\t\tevents[ eventName ] = \"_eventHandler\";\n\t\t\t});\n\t\t}\n\n\t\tthis._off( this.anchors.add( this.tabs ).add( this.panels ) );\n\t\t// Always prevent the default action, even when disabled\n\t\tthis._on( true, this.anchors, {\n\t\t\tclick: function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t});\n\t\tthis._on( this.anchors, events );\n\t\tthis._on( this.tabs, { keydown: \"_tabKeydown\" } );\n\t\tthis._on( this.panels, { keydown: \"_panelKeydown\" } );\n\n\t\tthis._focusable( this.tabs );\n\t\tthis._hoverable( this.tabs );\n\t},\n\n\t_setupHeightStyle: function( heightStyle ) {\n\t\tvar maxHeight,\n\t\t\tparent = this.element.parent();\n\n\t\tif ( heightStyle === \"fill\" ) {\n\t\t\tmaxHeight = parent.height();\n\t\t\tmaxHeight -= this.element.outerHeight() - this.element.height();\n\n\t\t\tthis.element.siblings( \":visible\" ).each(function() {\n\t\t\t\tvar elem = $( this ),\n\t\t\t\t\tposition = elem.css( \"position\" );\n\n\t\t\t\tif ( position === \"absolute\" || position === \"fixed\" ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmaxHeight -= elem.outerHeight( true );\n\t\t\t});\n\n\t\t\tthis.element.children().not( this.panels ).each(function() {\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\n\t\t\t});\n\n\t\t\tthis.panels.each(function() {\n\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\n\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\n\t\t\t})\n\t\t\t.css( \"overflow\", \"auto\" );\n\t\t} else if ( heightStyle === \"auto\" ) {\n\t\t\tmaxHeight = 0;\n\t\t\tthis.panels.each(function() {\n\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).height( \"\" ).height() );\n\t\t\t}).height( maxHeight );\n\t\t}\n\t},\n\n\t_eventHandler: function( event ) {\n\t\tvar options = this.options,\n\t\t\tactive = this.active,\n\t\t\tanchor = $( event.currentTarget ),\n\t\t\ttab = anchor.closest( \"li\" ),\n\t\t\tclickedIsActive = tab[ 0 ] === active[ 0 ],\n\t\t\tcollapsing = clickedIsActive && options.collapsible,\n\t\t\ttoShow = collapsing ? $() : this._getPanelForTab( tab ),\n\t\t\ttoHide = !active.length ? $() : this._getPanelForTab( active ),\n\t\t\teventData = {\n\t\t\t\toldTab: active,\n\t\t\t\toldPanel: toHide,\n\t\t\t\tnewTab: collapsing ? $() : tab,\n\t\t\t\tnewPanel: toShow\n\t\t\t};\n\n\t\tevent.preventDefault();\n\n\t\tif ( tab.hasClass( \"ui-state-disabled\" ) ||\n\t\t\t\t// tab is already loading\n\t\t\t\ttab.hasClass( \"ui-tabs-loading\" ) ||\n\t\t\t\t// can't switch durning an animation\n\t\t\t\tthis.running ||\n\t\t\t\t// click on active header, but not collapsible\n\t\t\t\t( clickedIsActive && !options.collapsible ) ||\n\t\t\t\t// allow canceling activation\n\t\t\t\t( this._trigger( \"beforeActivate\", event, eventData ) === false ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\toptions.active = collapsing ? false : this.tabs.index( tab );\n\n\t\tthis.active = clickedIsActive ? $() : tab;\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\n\t\tif ( !toHide.length && !toShow.length ) {\n\t\t\t$.error( \"jQuery UI Tabs: Mismatching fragment identifier.\" );\n\t\t}\n\n\t\tif ( toShow.length ) {\n\t\t\tthis.load( this.tabs.index( tab ), event );\n\t\t}\n\t\tthis._toggle( event, eventData );\n\t},\n\n\t// handles show/hide for selecting tabs\n\t_toggle: function( event, eventData ) {\n\t\tvar that = this,\n\t\t\ttoShow = eventData.newPanel,\n\t\t\ttoHide = eventData.oldPanel;\n\n\t\tthis.running = true;\n\n\t\tfunction complete() {\n\t\t\tthat.running = false;\n\t\t\tthat._trigger( \"activate\", event, eventData );\n\t\t}\n\n\t\tfunction show() {\n\t\t\teventData.newTab.closest( \"li\" ).addClass( \"ui-tabs-active ui-state-active\" );\n\n\t\t\tif ( toShow.length && that.options.show ) {\n\t\t\t\tthat._show( toShow, that.options.show, complete );\n\t\t\t} else {\n\t\t\t\ttoShow.show();\n\t\t\t\tcomplete();\n\t\t\t}\n\t\t}\n\n\t\t// start out by hiding, then showing, then completing\n\t\tif ( toHide.length && this.options.hide ) {\n\t\t\tthis._hide( toHide, this.options.hide, function() {\n\t\t\t\teventData.oldTab.closest( \"li\" ).removeClass( \"ui-tabs-active ui-state-active\" );\n\t\t\t\tshow();\n\t\t\t});\n\t\t} else {\n\t\t\teventData.oldTab.closest( \"li\" ).removeClass( \"ui-tabs-active ui-state-active\" );\n\t\t\ttoHide.hide();\n\t\t\tshow();\n\t\t}\n\n\t\ttoHide.attr( \"aria-hidden\", \"true\" );\n\t\teventData.oldTab.attr({\n\t\t\t\"aria-selected\": \"false\",\n\t\t\t\"aria-expanded\": \"false\"\n\t\t});\n\t\t// If we're switching tabs, remove the old tab from the tab order.\n\t\t// If we're opening from collapsed state, remove the previous tab from the tab order.\n\t\t// If we're collapsing, then keep the collapsing tab in the tab order.\n\t\tif ( toShow.length && toHide.length ) {\n\t\t\teventData.oldTab.attr( \"tabIndex\", -1 );\n\t\t} else if ( toShow.length ) {\n\t\t\tthis.tabs.filter(function() {\n\t\t\t\treturn $( this ).attr( \"tabIndex\" ) === 0;\n\t\t\t})\n\t\t\t.attr( \"tabIndex\", -1 );\n\t\t}\n\n\t\ttoShow.attr( \"aria-hidden\", \"false\" );\n\t\teventData.newTab.attr({\n\t\t\t\"aria-selected\": \"true\",\n\t\t\t\"aria-expanded\": \"true\",\n\t\t\ttabIndex: 0\n\t\t});\n\t},\n\n\t_activate: function( index ) {\n\t\tvar anchor,\n\t\t\tactive = this._findActive( index );\n\n\t\t// trying to activate the already active panel\n\t\tif ( active[ 0 ] === this.active[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// trying to collapse, simulate a click on the current active header\n\t\tif ( !active.length ) {\n\t\t\tactive = this.active;\n\t\t}\n\n\t\tanchor = active.find( \".ui-tabs-anchor\" )[ 0 ];\n\t\tthis._eventHandler({\n\t\t\ttarget: anchor,\n\t\t\tcurrentTarget: anchor,\n\t\t\tpreventDefault: $.noop\n\t\t});\n\t},\n\n\t_findActive: function( index ) {\n\t\treturn index === false ? $() : this.tabs.eq( index );\n\t},\n\n\t_getIndex: function( index ) {\n\t\t// meta-function to give users option to provide a href string instead of a numerical index.\n\t\tif ( typeof index === \"string\" ) {\n\t\t\tindex = this.anchors.index( this.anchors.filter( \"[href$='\" + index + \"']\" ) );\n\t\t}\n\n\t\treturn index;\n\t},\n\n\t_destroy: function() {\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\n\t\tthis.element.removeClass( \"ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible\" );\n\n\t\tthis.tablist\n\t\t\t.removeClass( \"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all\" )\n\t\t\t.removeAttr( \"role\" );\n\n\t\tthis.anchors\n\t\t\t.removeClass( \"ui-tabs-anchor\" )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"tabIndex\" )\n\t\t\t.removeUniqueId();\n\n\t\tthis.tablist.unbind( this.eventNamespace );\n\n\t\tthis.tabs.add( this.panels ).each(function() {\n\t\t\tif ( $.data( this, \"ui-tabs-destroy\" ) ) {\n\t\t\t\t$( this ).remove();\n\t\t\t} else {\n\t\t\t\t$( this )\n\t\t\t\t\t.removeClass( \"ui-state-default ui-state-active ui-state-disabled \" +\n\t\t\t\t\t\t\"ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel\" )\n\t\t\t\t\t.removeAttr( \"tabIndex\" )\n\t\t\t\t\t.removeAttr( \"aria-live\" )\n\t\t\t\t\t.removeAttr( \"aria-busy\" )\n\t\t\t\t\t.removeAttr( \"aria-selected\" )\n\t\t\t\t\t.removeAttr( \"aria-labelledby\" )\n\t\t\t\t\t.removeAttr( \"aria-hidden\" )\n\t\t\t\t\t.removeAttr( \"aria-expanded\" )\n\t\t\t\t\t.removeAttr( \"role\" );\n\t\t\t}\n\t\t});\n\n\t\tthis.tabs.each(function() {\n\t\t\tvar li = $( this ),\n\t\t\t\tprev = li.data( \"ui-tabs-aria-controls\" );\n\t\t\tif ( prev ) {\n\t\t\t\tli\n\t\t\t\t\t.attr( \"aria-controls\", prev )\n\t\t\t\t\t.removeData( \"ui-tabs-aria-controls\" );\n\t\t\t} else {\n\t\t\t\tli.removeAttr( \"aria-controls\" );\n\t\t\t}\n\t\t});\n\n\t\tthis.panels.show();\n\n\t\tif ( this.options.heightStyle !== \"content\" ) {\n\t\t\tthis.panels.css( \"height\", \"\" );\n\t\t}\n\t},\n\n\tenable: function( index ) {\n\t\tvar disabled = this.options.disabled;\n\t\tif ( disabled === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( index === undefined ) {\n\t\t\tdisabled = false;\n\t\t} else {\n\t\t\tindex = this._getIndex( index );\n\t\t\tif ( $.isArray( disabled ) ) {\n\t\t\t\tdisabled = $.map( disabled, function( num ) {\n\t\t\t\t\treturn num !== index ? num : null;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdisabled = $.map( this.tabs, function( li, num ) {\n\t\t\t\t\treturn num !== index ? num : null;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis._setupDisabled( disabled );\n\t},\n\n\tdisable: function( index ) {\n\t\tvar disabled = this.options.disabled;\n\t\tif ( disabled === true ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( index === undefined ) {\n\t\t\tdisabled = true;\n\t\t} else {\n\t\t\tindex = this._getIndex( index );\n\t\t\tif ( $.inArray( index, disabled ) !== -1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( $.isArray( disabled ) ) {\n\t\t\t\tdisabled = $.merge( [ index ], disabled ).sort();\n\t\t\t} else {\n\t\t\t\tdisabled = [ index ];\n\t\t\t}\n\t\t}\n\t\tthis._setupDisabled( disabled );\n\t},\n\n\tload: function( index, event ) {\n\t\tindex = this._getIndex( index );\n\t\tvar that = this,\n\t\t\ttab = this.tabs.eq( index ),\n\t\t\tanchor = tab.find( \".ui-tabs-anchor\" ),\n\t\t\tpanel = this._getPanelForTab( tab ),\n\t\t\teventData = {\n\t\t\t\ttab: tab,\n\t\t\t\tpanel: panel\n\t\t\t},\n\t\t\tcomplete = function( jqXHR, status ) {\n\t\t\t\tif ( status === \"abort\" ) {\n\t\t\t\t\tthat.panels.stop( false, true );\n\t\t\t\t}\n\n\t\t\t\ttab.removeClass( \"ui-tabs-loading\" );\n\t\t\t\tpanel.removeAttr( \"aria-busy\" );\n\n\t\t\t\tif ( jqXHR === that.xhr ) {\n\t\t\t\t\tdelete that.xhr;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// not remote\n\t\tif ( this._isLocal( anchor[ 0 ] ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );\n\n\t\t// support: jQuery <1.8\n\t\t// jQuery <1.8 returns false if the request is canceled in beforeSend,\n\t\t// but as of 1.8, $.ajax() always returns a jqXHR object.\n\t\tif ( this.xhr && this.xhr.statusText !== \"canceled\" ) {\n\t\t\ttab.addClass( \"ui-tabs-loading\" );\n\t\t\tpanel.attr( \"aria-busy\", \"true\" );\n\n\t\t\tthis.xhr\n\t\t\t\t.done(function( response, status, jqXHR ) {\n\t\t\t\t\t// support: jQuery <1.8\n\t\t\t\t\t// http://bugs.jquery.com/ticket/11778\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpanel.html( response );\n\t\t\t\t\t\tthat._trigger( \"load\", event, eventData );\n\n\t\t\t\t\t\tcomplete( jqXHR, status );\n\t\t\t\t\t}, 1 );\n\t\t\t\t})\n\t\t\t\t.fail(function( jqXHR, status ) {\n\t\t\t\t\t// support: jQuery <1.8\n\t\t\t\t\t// http://bugs.jquery.com/ticket/11778\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tcomplete( jqXHR, status );\n\t\t\t\t\t}, 1 );\n\t\t\t\t});\n\t\t}\n\t},\n\n\t_ajaxSettings: function( anchor, event, eventData ) {\n\t\tvar that = this;\n\t\treturn {\n\t\t\turl: anchor.attr( \"href\" ),\n\t\t\tbeforeSend: function( jqXHR, settings ) {\n\t\t\t\treturn that._trigger( \"beforeLoad\", event,\n\t\t\t\t\t$.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );\n\t\t\t}\n\t\t};\n\t},\n\n\t_getPanelForTab: function( tab ) {\n\t\tvar id = $( tab ).attr( \"aria-controls\" );\n\t\treturn this.element.find( this._sanitizeSelector( \"#\" + id ) );\n\t}\n});\n\n\n/*!\n * jQuery UI Tooltip 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/tooltip/\n */\n\n\nvar tooltip = $.widget( \"ui.tooltip\", {\n\tversion: \"1.11.4\",\n\toptions: {\n\t\tcontent: function() {\n\t\t\t// support: IE<9, Opera in jQuery <1.7\n\t\t\t// .text() can't accept undefined, so coerce to a string\n\t\t\tvar title = $( this ).attr( \"title\" ) || \"\";\n\t\t\t// Escape title, since we're going from an attribute to raw HTML\n\t\t\treturn $( \"<a>\" ).text( title ).html();\n\t\t},\n\t\thide: true,\n\t\t// Disabled elements have inconsistent behavior across browsers (#8661)\n\t\titems: \"[title]:not([disabled])\",\n\t\tposition: {\n\t\t\tmy: \"left top+15\",\n\t\t\tat: \"left bottom\",\n\t\t\tcollision: \"flipfit flip\"\n\t\t},\n\t\tshow: true,\n\t\ttooltipClass: null,\n\t\ttrack: false,\n\n\t\t// callbacks\n\t\tclose: null,\n\t\topen: null\n\t},\n\n\t_addDescribedBy: function( elem, id ) {\n\t\tvar describedby = (elem.attr( \"aria-describedby\" ) || \"\").split( /\\s+/ );\n\t\tdescribedby.push( id );\n\t\telem\n\t\t\t.data( \"ui-tooltip-id\", id )\n\t\t\t.attr( \"aria-describedby\", $.trim( describedby.join( \" \" ) ) );\n\t},\n\n\t_removeDescribedBy: function( elem ) {\n\t\tvar id = elem.data( \"ui-tooltip-id\" ),\n\t\t\tdescribedby = (elem.attr( \"aria-describedby\" ) || \"\").split( /\\s+/ ),\n\t\t\tindex = $.inArray( id, describedby );\n\n\t\tif ( index !== -1 ) {\n\t\t\tdescribedby.splice( index, 1 );\n\t\t}\n\n\t\telem.removeData( \"ui-tooltip-id\" );\n\t\tdescribedby = $.trim( describedby.join( \" \" ) );\n\t\tif ( describedby ) {\n\t\t\telem.attr( \"aria-describedby\", describedby );\n\t\t} else {\n\t\t\telem.removeAttr( \"aria-describedby\" );\n\t\t}\n\t},\n\n\t_create: function() {\n\t\tthis._on({\n\t\t\tmouseover: \"open\",\n\t\t\tfocusin: \"open\"\n\t\t});\n\n\t\t// IDs of generated tooltips, needed for destroy\n\t\tthis.tooltips = {};\n\n\t\t// IDs of parent tooltips where we removed the title attribute\n\t\tthis.parents = {};\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis._disable();\n\t\t}\n\n\t\t// Append the aria-live region so tooltips announce correctly\n\t\tthis.liveRegion = $( \"<div>\" )\n\t\t\t.attr({\n\t\t\t\trole: \"log\",\n\t\t\t\t\"aria-live\": \"assertive\",\n\t\t\t\t\"aria-relevant\": \"additions\"\n\t\t\t})\n\t\t\t.addClass( \"ui-helper-hidden-accessible\" )\n\t\t\t.appendTo( this.document[ 0 ].body );\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tvar that = this;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis[ value ? \"_disable\" : \"_enable\" ]();\n\t\t\tthis.options[ key ] = value;\n\t\t\t// disable element style changes\n\t\t\treturn;\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"content\" ) {\n\t\t\t$.each( this.tooltips, function( id, tooltipData ) {\n\t\t\t\tthat._updateContent( tooltipData.element );\n\t\t\t});\n\t\t}\n\t},\n\n\t_disable: function() {\n\t\tvar that = this;\n\n\t\t// close open tooltips\n\t\t$.each( this.tooltips, function( id, tooltipData ) {\n\t\t\tvar event = $.Event( \"blur\" );\n\t\t\tevent.target = event.currentTarget = tooltipData.element[ 0 ];\n\t\t\tthat.close( event, true );\n\t\t});\n\n\t\t// remove title attributes to prevent native tooltips\n\t\tthis.element.find( this.options.items ).addBack().each(function() {\n\t\t\tvar element = $( this );\n\t\t\tif ( element.is( \"[title]\" ) ) {\n\t\t\t\telement\n\t\t\t\t\t.data( \"ui-tooltip-title\", element.attr( \"title\" ) )\n\t\t\t\t\t.removeAttr( \"title\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_enable: function() {\n\t\t// restore title attributes\n\t\tthis.element.find( this.options.items ).addBack().each(function() {\n\t\t\tvar element = $( this );\n\t\t\tif ( element.data( \"ui-tooltip-title\" ) ) {\n\t\t\t\telement.attr( \"title\", element.data( \"ui-tooltip-title\" ) );\n\t\t\t}\n\t\t});\n\t},\n\n\topen: function( event ) {\n\t\tvar that = this,\n\t\t\ttarget = $( event ? event.target : this.element )\n\t\t\t\t// we need closest here due to mouseover bubbling,\n\t\t\t\t// but always pointing at the same event target\n\t\t\t\t.closest( this.options.items );\n\n\t\t// No element to show a tooltip for or the tooltip is already open\n\t\tif ( !target.length || target.data( \"ui-tooltip-id\" ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( target.attr( \"title\" ) ) {\n\t\t\ttarget.data( \"ui-tooltip-title\", target.attr( \"title\" ) );\n\t\t}\n\n\t\ttarget.data( \"ui-tooltip-open\", true );\n\n\t\t// kill parent tooltips, custom or native, for hover\n\t\tif ( event && event.type === \"mouseover\" ) {\n\t\t\ttarget.parents().each(function() {\n\t\t\t\tvar parent = $( this ),\n\t\t\t\t\tblurEvent;\n\t\t\t\tif ( parent.data( \"ui-tooltip-open\" ) ) {\n\t\t\t\t\tblurEvent = $.Event( \"blur\" );\n\t\t\t\t\tblurEvent.target = blurEvent.currentTarget = this;\n\t\t\t\t\tthat.close( blurEvent, true );\n\t\t\t\t}\n\t\t\t\tif ( parent.attr( \"title\" ) ) {\n\t\t\t\t\tparent.uniqueId();\n\t\t\t\t\tthat.parents[ this.id ] = {\n\t\t\t\t\t\telement: this,\n\t\t\t\t\t\ttitle: parent.attr( \"title\" )\n\t\t\t\t\t};\n\t\t\t\t\tparent.attr( \"title\", \"\" );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._registerCloseHandlers( event, target );\n\t\tthis._updateContent( target, event );\n\t},\n\n\t_updateContent: function( target, event ) {\n\t\tvar content,\n\t\t\tcontentOption = this.options.content,\n\t\t\tthat = this,\n\t\t\teventType = event ? event.type : null;\n\n\t\tif ( typeof contentOption === \"string\" ) {\n\t\t\treturn this._open( event, target, contentOption );\n\t\t}\n\n\t\tcontent = contentOption.call( target[0], function( response ) {\n\n\t\t\t// IE may instantly serve a cached response for ajax requests\n\t\t\t// delay this call to _open so the other call to _open runs first\n\t\t\tthat._delay(function() {\n\n\t\t\t\t// Ignore async response if tooltip was closed already\n\t\t\t\tif ( !target.data( \"ui-tooltip-open\" ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// jQuery creates a special event for focusin when it doesn't\n\t\t\t\t// exist natively. To improve performance, the native event\n\t\t\t\t// object is reused and the type is changed. Therefore, we can't\n\t\t\t\t// rely on the type being correct after the event finished\n\t\t\t\t// bubbling, so we set it back to the previous value. (#8740)\n\t\t\t\tif ( event ) {\n\t\t\t\t\tevent.type = eventType;\n\t\t\t\t}\n\t\t\t\tthis._open( event, target, response );\n\t\t\t});\n\t\t});\n\t\tif ( content ) {\n\t\t\tthis._open( event, target, content );\n\t\t}\n\t},\n\n\t_open: function( event, target, content ) {\n\t\tvar tooltipData, tooltip, delayedShow, a11yContent,\n\t\t\tpositionOption = $.extend( {}, this.options.position );\n\n\t\tif ( !content ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Content can be updated multiple times. If the tooltip already\n\t\t// exists, then just update the content and bail.\n\t\ttooltipData = this._find( target );\n\t\tif ( tooltipData ) {\n\t\t\ttooltipData.tooltip.find( \".ui-tooltip-content\" ).html( content );\n\t\t\treturn;\n\t\t}\n\n\t\t// if we have a title, clear it to prevent the native tooltip\n\t\t// we have to check first to avoid defining a title if none exists\n\t\t// (we don't want to cause an element to start matching [title])\n\t\t//\n\t\t// We use removeAttr only for key events, to allow IE to export the correct\n\t\t// accessible attributes. For mouse events, set to empty string to avoid\n\t\t// native tooltip showing up (happens only when removing inside mouseover).\n\t\tif ( target.is( \"[title]\" ) ) {\n\t\t\tif ( event && event.type === \"mouseover\" ) {\n\t\t\t\ttarget.attr( \"title\", \"\" );\n\t\t\t} else {\n\t\t\t\ttarget.removeAttr( \"title\" );\n\t\t\t}\n\t\t}\n\n\t\ttooltipData = this._tooltip( target );\n\t\ttooltip = tooltipData.tooltip;\n\t\tthis._addDescribedBy( target, tooltip.attr( \"id\" ) );\n\t\ttooltip.find( \".ui-tooltip-content\" ).html( content );\n\n\t\t// Support: Voiceover on OS X, JAWS on IE <= 9\n\t\t// JAWS announces deletions even when aria-relevant=\"additions\"\n\t\t// Voiceover will sometimes re-read the entire log region's contents from the beginning\n\t\tthis.liveRegion.children().hide();\n\t\tif ( content.clone ) {\n\t\t\ta11yContent = content.clone();\n\t\t\ta11yContent.removeAttr( \"id\" ).find( \"[id]\" ).removeAttr( \"id\" );\n\t\t} else {\n\t\t\ta11yContent = content;\n\t\t}\n\t\t$( \"<div>\" ).html( a11yContent ).appendTo( this.liveRegion );\n\n\t\tfunction position( event ) {\n\t\t\tpositionOption.of = event;\n\t\t\tif ( tooltip.is( \":hidden\" ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttooltip.position( positionOption );\n\t\t}\n\t\tif ( this.options.track && event && /^mouse/.test( event.type ) ) {\n\t\t\tthis._on( this.document, {\n\t\t\t\tmousemove: position\n\t\t\t});\n\t\t\t// trigger once to override element-relative positioning\n\t\t\tposition( event );\n\t\t} else {\n\t\t\ttooltip.position( $.extend({\n\t\t\t\tof: target\n\t\t\t}, this.options.position ) );\n\t\t}\n\n\t\ttooltip.hide();\n\n\t\tthis._show( tooltip, this.options.show );\n\t\t// Handle tracking tooltips that are shown with a delay (#8644). As soon\n\t\t// as the tooltip is visible, position the tooltip using the most recent\n\t\t// event.\n\t\tif ( this.options.show && this.options.show.delay ) {\n\t\t\tdelayedShow = this.delayedShow = setInterval(function() {\n\t\t\t\tif ( tooltip.is( \":visible\" ) ) {\n\t\t\t\t\tposition( positionOption.of );\n\t\t\t\t\tclearInterval( delayedShow );\n\t\t\t\t}\n\t\t\t}, $.fx.interval );\n\t\t}\n\n\t\tthis._trigger( \"open\", event, { tooltip: tooltip } );\n\t},\n\n\t_registerCloseHandlers: function( event, target ) {\n\t\tvar events = {\n\t\t\tkeyup: function( event ) {\n\t\t\t\tif ( event.keyCode === $.ui.keyCode.ESCAPE ) {\n\t\t\t\t\tvar fakeEvent = $.Event(event);\n\t\t\t\t\tfakeEvent.currentTarget = target[0];\n\t\t\t\t\tthis.close( fakeEvent, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Only bind remove handler for delegated targets. Non-delegated\n\t\t// tooltips will handle this in destroy.\n\t\tif ( target[ 0 ] !== this.element[ 0 ] ) {\n\t\t\tevents.remove = function() {\n\t\t\t\tthis._removeTooltip( this._find( target ).tooltip );\n\t\t\t};\n\t\t}\n\n\t\tif ( !event || event.type === \"mouseover\" ) {\n\t\t\tevents.mouseleave = \"close\";\n\t\t}\n\t\tif ( !event || event.type === \"focusin\" ) {\n\t\t\tevents.focusout = \"close\";\n\t\t}\n\t\tthis._on( true, target, events );\n\t},\n\n\tclose: function( event ) {\n\t\tvar tooltip,\n\t\t\tthat = this,\n\t\t\ttarget = $( event ? event.currentTarget : this.element ),\n\t\t\ttooltipData = this._find( target );\n\n\t\t// The tooltip may already be closed\n\t\tif ( !tooltipData ) {\n\n\t\t\t// We set ui-tooltip-open immediately upon open (in open()), but only set the\n\t\t\t// additional data once there's actually content to show (in _open()). So even if the\n\t\t\t// tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in\n\t\t\t// the period between open() and _open().\n\t\t\ttarget.removeData( \"ui-tooltip-open\" );\n\t\t\treturn;\n\t\t}\n\n\t\ttooltip = tooltipData.tooltip;\n\n\t\t// disabling closes the tooltip, so we need to track when we're closing\n\t\t// to avoid an infinite loop in case the tooltip becomes disabled on close\n\t\tif ( tooltipData.closing ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clear the interval for delayed tracking tooltips\n\t\tclearInterval( this.delayedShow );\n\n\t\t// only set title if we had one before (see comment in _open())\n\t\t// If the title attribute has changed since open(), don't restore\n\t\tif ( target.data( \"ui-tooltip-title\" ) && !target.attr( \"title\" ) ) {\n\t\t\ttarget.attr( \"title\", target.data( \"ui-tooltip-title\" ) );\n\t\t}\n\n\t\tthis._removeDescribedBy( target );\n\n\t\ttooltipData.hiding = true;\n\t\ttooltip.stop( true );\n\t\tthis._hide( tooltip, this.options.hide, function() {\n\t\t\tthat._removeTooltip( $( this ) );\n\t\t});\n\n\t\ttarget.removeData( \"ui-tooltip-open\" );\n\t\tthis._off( target, \"mouseleave focusout keyup\" );\n\n\t\t// Remove 'remove' binding only on delegated targets\n\t\tif ( target[ 0 ] !== this.element[ 0 ] ) {\n\t\t\tthis._off( target, \"remove\" );\n\t\t}\n\t\tthis._off( this.document, \"mousemove\" );\n\n\t\tif ( event && event.type === \"mouseleave\" ) {\n\t\t\t$.each( this.parents, function( id, parent ) {\n\t\t\t\t$( parent.element ).attr( \"title\", parent.title );\n\t\t\t\tdelete that.parents[ id ];\n\t\t\t});\n\t\t}\n\n\t\ttooltipData.closing = true;\n\t\tthis._trigger( \"close\", event, { tooltip: tooltip } );\n\t\tif ( !tooltipData.hiding ) {\n\t\t\ttooltipData.closing = false;\n\t\t}\n\t},\n\n\t_tooltip: function( element ) {\n\t\tvar tooltip = $( \"<div>\" )\n\t\t\t\t.attr( \"role\", \"tooltip\" )\n\t\t\t\t.addClass( \"ui-tooltip ui-widget ui-corner-all ui-widget-content \" +\n\t\t\t\t\t( this.options.tooltipClass || \"\" ) ),\n\t\t\tid = tooltip.uniqueId().attr( \"id\" );\n\n\t\t$( \"<div>\" )\n\t\t\t.addClass( \"ui-tooltip-content\" )\n\t\t\t.appendTo( tooltip );\n\n\t\ttooltip.appendTo( this.document[0].body );\n\n\t\treturn this.tooltips[ id ] = {\n\t\t\telement: element,\n\t\t\ttooltip: tooltip\n\t\t};\n\t},\n\n\t_find: function( target ) {\n\t\tvar id = target.data( \"ui-tooltip-id\" );\n\t\treturn id ? this.tooltips[ id ] : null;\n\t},\n\n\t_removeTooltip: function( tooltip ) {\n\t\ttooltip.remove();\n\t\tdelete this.tooltips[ tooltip.attr( \"id\" ) ];\n\t},\n\n\t_destroy: function() {\n\t\tvar that = this;\n\n\t\t// close open tooltips\n\t\t$.each( this.tooltips, function( id, tooltipData ) {\n\t\t\t// Delegate to close method to handle common cleanup\n\t\t\tvar event = $.Event( \"blur\" ),\n\t\t\t\telement = tooltipData.element;\n\t\t\tevent.target = event.currentTarget = element[ 0 ];\n\t\t\tthat.close( event, true );\n\n\t\t\t// Remove immediately; destroying an open tooltip doesn't use the\n\t\t\t// hide animation\n\t\t\t$( \"#\" + id ).remove();\n\n\t\t\t// Restore the title\n\t\t\tif ( element.data( \"ui-tooltip-title\" ) ) {\n\t\t\t\t// If the title attribute has changed since open(), don't restore\n\t\t\t\tif ( !element.attr( \"title\" ) ) {\n\t\t\t\t\telement.attr( \"title\", element.data( \"ui-tooltip-title\" ) );\n\t\t\t\t}\n\t\t\t\telement.removeData( \"ui-tooltip-title\" );\n\t\t\t}\n\t\t});\n\t\tthis.liveRegion.remove();\n\t}\n});\n\n\n\n}));\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar api = __webpack_require__(2);\n var content = __webpack_require__(13);\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.i, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);\nvar ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(7);\nvar ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(14);\nvar ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(15);\nvar ___CSS_LOADER_URL_IMPORT_2___ = __webpack_require__(16);\nvar ___CSS_LOADER_URL_IMPORT_3___ = __webpack_require__(17);\nvar ___CSS_LOADER_URL_IMPORT_4___ = __webpack_require__(18);\nvar ___CSS_LOADER_URL_IMPORT_5___ = __webpack_require__(19);\nvar ___CSS_LOADER_URL_IMPORT_6___ = __webpack_require__(20);\nvar ___CSS_LOADER_URL_IMPORT_7___ = __webpack_require__(21);\nvar ___CSS_LOADER_URL_IMPORT_8___ = __webpack_require__(22);\nvar ___CSS_LOADER_URL_IMPORT_9___ = __webpack_require__(23);\nvar ___CSS_LOADER_URL_IMPORT_10___ = __webpack_require__(24);\nvar ___CSS_LOADER_URL_IMPORT_11___ = __webpack_require__(25);\nvar ___CSS_LOADER_URL_IMPORT_12___ = __webpack_require__(26);\nvar ___CSS_LOADER_URL_IMPORT_13___ = __webpack_require__(27);\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\n// Module\nexports.push([module.i, \"/*! jQuery UI - v1.11.4 - 2015-03-11\\n* http://jqueryui.com\\n* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css\\n* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px\\n* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */\\n\\n/* Layout helpers\\n----------------------------------*/\\n.ui-helper-hidden {\\n\\tdisplay: none;\\n}\\n.ui-helper-hidden-accessible {\\n\\tborder: 0;\\n\\tclip: rect(0 0 0 0);\\n\\theight: 1px;\\n\\tmargin: -1px;\\n\\toverflow: hidden;\\n\\tpadding: 0;\\n\\tposition: absolute;\\n\\twidth: 1px;\\n}\\n.ui-helper-reset {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tborder: 0;\\n\\toutline: 0;\\n\\tline-height: 1.3;\\n\\ttext-decoration: none;\\n\\tfont-size: 100%;\\n\\tlist-style: none;\\n}\\n.ui-helper-clearfix:before,\\n.ui-helper-clearfix:after {\\n\\tcontent: \\\"\\\";\\n\\tdisplay: table;\\n\\tborder-collapse: collapse;\\n}\\n.ui-helper-clearfix:after {\\n\\tclear: both;\\n}\\n.ui-helper-clearfix {\\n\\tmin-height: 0; /* support: IE7 */\\n}\\n.ui-helper-zfix {\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tposition: absolute;\\n\\topacity: 0;\\n\\tfilter:Alpha(Opacity=0); /* support: IE8 */\\n}\\n\\n.ui-front {\\n\\tz-index: 100;\\n}\\n\\n\\n/* Interaction Cues\\n----------------------------------*/\\n.ui-state-disabled {\\n\\tcursor: default !important;\\n}\\n\\n\\n/* Icons\\n----------------------------------*/\\n\\n/* states and images */\\n.ui-icon {\\n\\tdisplay: block;\\n\\ttext-indent: -99999px;\\n\\toverflow: hidden;\\n\\tbackground-repeat: no-repeat;\\n}\\n\\n\\n/* Misc visuals\\n----------------------------------*/\\n\\n/* Overlays */\\n.ui-widget-overlay {\\n\\tposition: fixed;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n.ui-accordion .ui-accordion-header {\\n\\tdisplay: block;\\n\\tcursor: pointer;\\n\\tposition: relative;\\n\\tmargin: 2px 0 0 0;\\n\\tpadding: .5em .5em .5em .7em;\\n\\tmin-height: 0; /* support: IE7 */\\n\\tfont-size: 100%;\\n}\\n.ui-accordion .ui-accordion-icons {\\n\\tpadding-left: 2.2em;\\n}\\n.ui-accordion .ui-accordion-icons .ui-accordion-icons {\\n\\tpadding-left: 2.2em;\\n}\\n.ui-accordion .ui-accordion-header .ui-accordion-header-icon {\\n\\tposition: absolute;\\n\\tleft: .5em;\\n\\ttop: 50%;\\n\\tmargin-top: -8px;\\n}\\n.ui-accordion .ui-accordion-content {\\n\\tpadding: 1em 2.2em;\\n\\tborder-top: 0;\\n\\toverflow: auto;\\n}\\n.ui-autocomplete {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tcursor: default;\\n}\\n.ui-button {\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\tpadding: 0;\\n\\tline-height: normal;\\n\\tmargin-right: .1em;\\n\\tcursor: pointer;\\n\\tvertical-align: middle;\\n\\ttext-align: center;\\n\\toverflow: visible; /* removes extra width in IE */\\n}\\n.ui-button,\\n.ui-button:link,\\n.ui-button:visited,\\n.ui-button:hover,\\n.ui-button:active {\\n\\ttext-decoration: none;\\n}\\n/* to make room for the icon, a width needs to be set here */\\n.ui-button-icon-only {\\n\\twidth: 2.2em;\\n}\\n/* button elements seem to need a little more width */\\nbutton.ui-button-icon-only {\\n\\twidth: 2.4em;\\n}\\n.ui-button-icons-only {\\n\\twidth: 3.4em;\\n}\\nbutton.ui-button-icons-only {\\n\\twidth: 3.7em;\\n}\\n\\n/* button text element */\\n.ui-button .ui-button-text {\\n\\tdisplay: block;\\n\\tline-height: normal;\\n}\\n.ui-button-text-only .ui-button-text {\\n\\tpadding: .4em 1em;\\n}\\n.ui-button-icon-only .ui-button-text,\\n.ui-button-icons-only .ui-button-text {\\n\\tpadding: .4em;\\n\\ttext-indent: -9999999px;\\n}\\n.ui-button-text-icon-primary .ui-button-text,\\n.ui-button-text-icons .ui-button-text {\\n\\tpadding: .4em 1em .4em 2.1em;\\n}\\n.ui-button-text-icon-secondary .ui-button-text,\\n.ui-button-text-icons .ui-button-text {\\n\\tpadding: .4em 2.1em .4em 1em;\\n}\\n.ui-button-text-icons .ui-button-text {\\n\\tpadding-left: 2.1em;\\n\\tpadding-right: 2.1em;\\n}\\n/* no icon support for input elements, provide padding by default */\\ninput.ui-button {\\n\\tpadding: .4em 1em;\\n}\\n\\n/* button icon element(s) */\\n.ui-button-icon-only .ui-icon,\\n.ui-button-text-icon-primary .ui-icon,\\n.ui-button-text-icon-secondary .ui-icon,\\n.ui-button-text-icons .ui-icon,\\n.ui-button-icons-only .ui-icon {\\n\\tposition: absolute;\\n\\ttop: 50%;\\n\\tmargin-top: -8px;\\n}\\n.ui-button-icon-only .ui-icon {\\n\\tleft: 50%;\\n\\tmargin-left: -8px;\\n}\\n.ui-button-text-icon-primary .ui-button-icon-primary,\\n.ui-button-text-icons .ui-button-icon-primary,\\n.ui-button-icons-only .ui-button-icon-primary {\\n\\tleft: .5em;\\n}\\n.ui-button-text-icon-secondary .ui-button-icon-secondary,\\n.ui-button-text-icons .ui-button-icon-secondary,\\n.ui-button-icons-only .ui-button-icon-secondary {\\n\\tright: .5em;\\n}\\n\\n/* button sets */\\n.ui-buttonset {\\n\\tmargin-right: 7px;\\n}\\n.ui-buttonset .ui-button {\\n\\tmargin-left: 0;\\n\\tmargin-right: -.3em;\\n}\\n\\n/* workarounds */\\n/* reset extra padding in Firefox, see h5bp.com/l */\\ninput.ui-button::-moz-focus-inner,\\nbutton.ui-button::-moz-focus-inner {\\n\\tborder: 0;\\n\\tpadding: 0;\\n}\\n.ui-datepicker {\\n\\twidth: 17em;\\n\\tpadding: .2em .2em 0;\\n\\tdisplay: none;\\n}\\n.ui-datepicker .ui-datepicker-header {\\n\\tposition: relative;\\n\\tpadding: .2em 0;\\n}\\n.ui-datepicker .ui-datepicker-prev,\\n.ui-datepicker .ui-datepicker-next {\\n\\tposition: absolute;\\n\\ttop: 2px;\\n\\twidth: 1.8em;\\n\\theight: 1.8em;\\n}\\n.ui-datepicker .ui-datepicker-prev-hover,\\n.ui-datepicker .ui-datepicker-next-hover {\\n\\ttop: 1px;\\n}\\n.ui-datepicker .ui-datepicker-prev {\\n\\tleft: 2px;\\n}\\n.ui-datepicker .ui-datepicker-next {\\n\\tright: 2px;\\n}\\n.ui-datepicker .ui-datepicker-prev-hover {\\n\\tleft: 1px;\\n}\\n.ui-datepicker .ui-datepicker-next-hover {\\n\\tright: 1px;\\n}\\n.ui-datepicker .ui-datepicker-prev span,\\n.ui-datepicker .ui-datepicker-next span {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\tleft: 50%;\\n\\tmargin-left: -8px;\\n\\ttop: 50%;\\n\\tmargin-top: -8px;\\n}\\n.ui-datepicker .ui-datepicker-title {\\n\\tmargin: 0 2.3em;\\n\\tline-height: 1.8em;\\n\\ttext-align: center;\\n}\\n.ui-datepicker .ui-datepicker-title select {\\n\\tfont-size: 1em;\\n\\tmargin: 1px 0;\\n}\\n.ui-datepicker select.ui-datepicker-month,\\n.ui-datepicker select.ui-datepicker-year {\\n\\twidth: 45%;\\n}\\n.ui-datepicker table {\\n\\twidth: 100%;\\n\\tfont-size: .9em;\\n\\tborder-collapse: collapse;\\n\\tmargin: 0 0 .4em;\\n}\\n.ui-datepicker th {\\n\\tpadding: .7em .3em;\\n\\ttext-align: center;\\n\\tfont-weight: bold;\\n\\tborder: 0;\\n}\\n.ui-datepicker td {\\n\\tborder: 0;\\n\\tpadding: 1px;\\n}\\n.ui-datepicker td span,\\n.ui-datepicker td a {\\n\\tdisplay: block;\\n\\tpadding: .2em;\\n\\ttext-align: right;\\n\\ttext-decoration: none;\\n}\\n.ui-datepicker .ui-datepicker-buttonpane {\\n\\tbackground-image: none;\\n\\tmargin: .7em 0 0 0;\\n\\tpadding: 0 .2em;\\n\\tborder-left: 0;\\n\\tborder-right: 0;\\n\\tborder-bottom: 0;\\n}\\n.ui-datepicker .ui-datepicker-buttonpane button {\\n\\tfloat: right;\\n\\tmargin: .5em .2em .4em;\\n\\tcursor: pointer;\\n\\tpadding: .2em .6em .3em .6em;\\n\\twidth: auto;\\n\\toverflow: visible;\\n}\\n.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {\\n\\tfloat: left;\\n}\\n\\n/* with multiple calendars */\\n.ui-datepicker.ui-datepicker-multi {\\n\\twidth: auto;\\n}\\n.ui-datepicker-multi .ui-datepicker-group {\\n\\tfloat: left;\\n}\\n.ui-datepicker-multi .ui-datepicker-group table {\\n\\twidth: 95%;\\n\\tmargin: 0 auto .4em;\\n}\\n.ui-datepicker-multi-2 .ui-datepicker-group {\\n\\twidth: 50%;\\n}\\n.ui-datepicker-multi-3 .ui-datepicker-group {\\n\\twidth: 33.3%;\\n}\\n.ui-datepicker-multi-4 .ui-datepicker-group {\\n\\twidth: 25%;\\n}\\n.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,\\n.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {\\n\\tborder-left-width: 0;\\n}\\n.ui-datepicker-multi .ui-datepicker-buttonpane {\\n\\tclear: left;\\n}\\n.ui-datepicker-row-break {\\n\\tclear: both;\\n\\twidth: 100%;\\n\\tfont-size: 0;\\n}\\n\\n/* RTL support */\\n.ui-datepicker-rtl {\\n\\tdirection: rtl;\\n}\\n.ui-datepicker-rtl .ui-datepicker-prev {\\n\\tright: 2px;\\n\\tleft: auto;\\n}\\n.ui-datepicker-rtl .ui-datepicker-next {\\n\\tleft: 2px;\\n\\tright: auto;\\n}\\n.ui-datepicker-rtl .ui-datepicker-prev:hover {\\n\\tright: 1px;\\n\\tleft: auto;\\n}\\n.ui-datepicker-rtl .ui-datepicker-next:hover {\\n\\tleft: 1px;\\n\\tright: auto;\\n}\\n.ui-datepicker-rtl .ui-datepicker-buttonpane {\\n\\tclear: right;\\n}\\n.ui-datepicker-rtl .ui-datepicker-buttonpane button {\\n\\tfloat: left;\\n}\\n.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,\\n.ui-datepicker-rtl .ui-datepicker-group {\\n\\tfloat: right;\\n}\\n.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,\\n.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {\\n\\tborder-right-width: 0;\\n\\tborder-left-width: 1px;\\n}\\n.ui-dialog {\\n\\toverflow: hidden;\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tpadding: .2em;\\n\\toutline: 0;\\n}\\n.ui-dialog .ui-dialog-titlebar {\\n\\tpadding: .4em 1em;\\n\\tposition: relative;\\n}\\n.ui-dialog .ui-dialog-title {\\n\\tfloat: left;\\n\\tmargin: .1em 0;\\n\\twhite-space: nowrap;\\n\\twidth: 90%;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n}\\n.ui-dialog .ui-dialog-titlebar-close {\\n\\tposition: absolute;\\n\\tright: .3em;\\n\\ttop: 50%;\\n\\twidth: 20px;\\n\\tmargin: -10px 0 0 0;\\n\\tpadding: 1px;\\n\\theight: 20px;\\n}\\n.ui-dialog .ui-dialog-content {\\n\\tposition: relative;\\n\\tborder: 0;\\n\\tpadding: .5em 1em;\\n\\tbackground: none;\\n\\toverflow: auto;\\n}\\n.ui-dialog .ui-dialog-buttonpane {\\n\\ttext-align: left;\\n\\tborder-width: 1px 0 0 0;\\n\\tbackground-image: none;\\n\\tmargin-top: .5em;\\n\\tpadding: .3em 1em .5em .4em;\\n}\\n.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {\\n\\tfloat: right;\\n}\\n.ui-dialog .ui-dialog-buttonpane button {\\n\\tmargin: .5em .4em .5em 0;\\n\\tcursor: pointer;\\n}\\n.ui-dialog .ui-resizable-se {\\n\\twidth: 12px;\\n\\theight: 12px;\\n\\tright: -5px;\\n\\tbottom: -5px;\\n\\tbackground-position: 16px 16px;\\n}\\n.ui-draggable .ui-dialog-titlebar {\\n\\tcursor: move;\\n}\\n.ui-draggable-handle {\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-menu {\\n\\tlist-style: none;\\n\\tpadding: 0;\\n\\tmargin: 0;\\n\\tdisplay: block;\\n\\toutline: none;\\n}\\n.ui-menu .ui-menu {\\n\\tposition: absolute;\\n}\\n.ui-menu .ui-menu-item {\\n\\tposition: relative;\\n\\tmargin: 0;\\n\\tpadding: 3px 1em 3px .4em;\\n\\tcursor: pointer;\\n\\tmin-height: 0; /* support: IE7 */\\n\\t/* support: IE10, see #8844 */\\n\\tlist-style-image: url(\\\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\\\");\\n}\\n.ui-menu .ui-menu-divider {\\n\\tmargin: 5px 0;\\n\\theight: 0;\\n\\tfont-size: 0;\\n\\tline-height: 0;\\n\\tborder-width: 1px 0 0 0;\\n}\\n.ui-menu .ui-state-focus,\\n.ui-menu .ui-state-active {\\n\\tmargin: -1px;\\n}\\n\\n/* icon support */\\n.ui-menu-icons {\\n\\tposition: relative;\\n}\\n.ui-menu-icons .ui-menu-item {\\n\\tpadding-left: 2em;\\n}\\n\\n/* left-aligned */\\n.ui-menu .ui-icon {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tbottom: 0;\\n\\tleft: .2em;\\n\\tmargin: auto 0;\\n}\\n\\n/* right-aligned */\\n.ui-menu .ui-menu-icon {\\n\\tleft: auto;\\n\\tright: 0;\\n}\\n.ui-progressbar {\\n\\theight: 2em;\\n\\ttext-align: left;\\n\\toverflow: hidden;\\n}\\n.ui-progressbar .ui-progressbar-value {\\n\\tmargin: -1px;\\n\\theight: 100%;\\n}\\n.ui-progressbar .ui-progressbar-overlay {\\n\\tbackground: url(\\\"data:image/gif;base64,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\\\");\\n\\theight: 100%;\\n\\tfilter: alpha(opacity=25); /* support: IE8 */\\n\\topacity: 0.25;\\n}\\n.ui-progressbar-indeterminate .ui-progressbar-value {\\n\\tbackground-image: none;\\n}\\n.ui-resizable {\\n\\tposition: relative;\\n}\\n.ui-resizable-handle {\\n\\tposition: absolute;\\n\\tfont-size: 0.1px;\\n\\tdisplay: block;\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-resizable-disabled .ui-resizable-handle,\\n.ui-resizable-autohide .ui-resizable-handle {\\n\\tdisplay: none;\\n}\\n.ui-resizable-n {\\n\\tcursor: n-resize;\\n\\theight: 7px;\\n\\twidth: 100%;\\n\\ttop: -5px;\\n\\tleft: 0;\\n}\\n.ui-resizable-s {\\n\\tcursor: s-resize;\\n\\theight: 7px;\\n\\twidth: 100%;\\n\\tbottom: -5px;\\n\\tleft: 0;\\n}\\n.ui-resizable-e {\\n\\tcursor: e-resize;\\n\\twidth: 7px;\\n\\tright: -5px;\\n\\ttop: 0;\\n\\theight: 100%;\\n}\\n.ui-resizable-w {\\n\\tcursor: w-resize;\\n\\twidth: 7px;\\n\\tleft: -5px;\\n\\ttop: 0;\\n\\theight: 100%;\\n}\\n.ui-resizable-se {\\n\\tcursor: se-resize;\\n\\twidth: 12px;\\n\\theight: 12px;\\n\\tright: 1px;\\n\\tbottom: 1px;\\n}\\n.ui-resizable-sw {\\n\\tcursor: sw-resize;\\n\\twidth: 9px;\\n\\theight: 9px;\\n\\tleft: -5px;\\n\\tbottom: -5px;\\n}\\n.ui-resizable-nw {\\n\\tcursor: nw-resize;\\n\\twidth: 9px;\\n\\theight: 9px;\\n\\tleft: -5px;\\n\\ttop: -5px;\\n}\\n.ui-resizable-ne {\\n\\tcursor: ne-resize;\\n\\twidth: 9px;\\n\\theight: 9px;\\n\\tright: -5px;\\n\\ttop: -5px;\\n}\\n.ui-selectable {\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-selectable-helper {\\n\\tposition: absolute;\\n\\tz-index: 100;\\n\\tborder: 1px dotted black;\\n}\\n.ui-selectmenu-menu {\\n\\tpadding: 0;\\n\\tmargin: 0;\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tdisplay: none;\\n}\\n.ui-selectmenu-menu .ui-menu {\\n\\toverflow: auto;\\n\\t/* Support: IE7 */\\n\\toverflow-x: hidden;\\n\\tpadding-bottom: 1px;\\n}\\n.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {\\n\\tfont-size: 1em;\\n\\tfont-weight: bold;\\n\\tline-height: 1.5;\\n\\tpadding: 2px 0.4em;\\n\\tmargin: 0.5em 0 0 0;\\n\\theight: auto;\\n\\tborder: 0;\\n}\\n.ui-selectmenu-open {\\n\\tdisplay: block;\\n}\\n.ui-selectmenu-button {\\n\\tdisplay: inline-block;\\n\\toverflow: hidden;\\n\\tposition: relative;\\n\\ttext-decoration: none;\\n\\tcursor: pointer;\\n}\\n.ui-selectmenu-button span.ui-icon {\\n\\tright: 0.5em;\\n\\tleft: auto;\\n\\tmargin-top: -8px;\\n\\tposition: absolute;\\n\\ttop: 50%;\\n}\\n.ui-selectmenu-button span.ui-selectmenu-text {\\n\\ttext-align: left;\\n\\tpadding: 0.4em 2.1em 0.4em 1em;\\n\\tdisplay: block;\\n\\tline-height: 1.4;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\twhite-space: nowrap;\\n}\\n.ui-slider {\\n\\tposition: relative;\\n\\ttext-align: left;\\n}\\n.ui-slider .ui-slider-handle {\\n\\tposition: absolute;\\n\\tz-index: 2;\\n\\twidth: 1.2em;\\n\\theight: 1.2em;\\n\\tcursor: default;\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-slider .ui-slider-range {\\n\\tposition: absolute;\\n\\tz-index: 1;\\n\\tfont-size: .7em;\\n\\tdisplay: block;\\n\\tborder: 0;\\n\\tbackground-position: 0 0;\\n}\\n\\n/* support: IE8 - See #6727 */\\n.ui-slider.ui-state-disabled .ui-slider-handle,\\n.ui-slider.ui-state-disabled .ui-slider-range {\\n\\tfilter: inherit;\\n}\\n\\n.ui-slider-horizontal {\\n\\theight: .8em;\\n}\\n.ui-slider-horizontal .ui-slider-handle {\\n\\ttop: -.3em;\\n\\tmargin-left: -.6em;\\n}\\n.ui-slider-horizontal .ui-slider-range {\\n\\ttop: 0;\\n\\theight: 100%;\\n}\\n.ui-slider-horizontal .ui-slider-range-min {\\n\\tleft: 0;\\n}\\n.ui-slider-horizontal .ui-slider-range-max {\\n\\tright: 0;\\n}\\n\\n.ui-slider-vertical {\\n\\twidth: .8em;\\n\\theight: 100px;\\n}\\n.ui-slider-vertical .ui-slider-handle {\\n\\tleft: -.3em;\\n\\tmargin-left: 0;\\n\\tmargin-bottom: -.6em;\\n}\\n.ui-slider-vertical .ui-slider-range {\\n\\tleft: 0;\\n\\twidth: 100%;\\n}\\n.ui-slider-vertical .ui-slider-range-min {\\n\\tbottom: 0;\\n}\\n.ui-slider-vertical .ui-slider-range-max {\\n\\ttop: 0;\\n}\\n.ui-sortable-handle {\\n\\t-ms-touch-action: none;\\n\\ttouch-action: none;\\n}\\n.ui-spinner {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\toverflow: hidden;\\n\\tpadding: 0;\\n\\tvertical-align: middle;\\n}\\n.ui-spinner-input {\\n\\tborder: none;\\n\\tbackground: none;\\n\\tcolor: inherit;\\n\\tpadding: 0;\\n\\tmargin: .2em 0;\\n\\tvertical-align: middle;\\n\\tmargin-left: .4em;\\n\\tmargin-right: 22px;\\n}\\n.ui-spinner-button {\\n\\twidth: 16px;\\n\\theight: 50%;\\n\\tfont-size: .5em;\\n\\tpadding: 0;\\n\\tmargin: 0;\\n\\ttext-align: center;\\n\\tposition: absolute;\\n\\tcursor: default;\\n\\tdisplay: block;\\n\\toverflow: hidden;\\n\\tright: 0;\\n}\\n/* more specificity required here to override default borders */\\n.ui-spinner a.ui-spinner-button {\\n\\tborder-top: none;\\n\\tborder-bottom: none;\\n\\tborder-right: none;\\n}\\n/* vertically center icon */\\n.ui-spinner .ui-icon {\\n\\tposition: absolute;\\n\\tmargin-top: -8px;\\n\\ttop: 50%;\\n\\tleft: 0;\\n}\\n.ui-spinner-up {\\n\\ttop: 0;\\n}\\n.ui-spinner-down {\\n\\tbottom: 0;\\n}\\n\\n/* TR overrides */\\n.ui-spinner .ui-icon-triangle-1-s {\\n\\t/* need to fix icons sprite */\\n\\tbackground-position: -65px -16px;\\n}\\n.ui-tabs {\\n\\tposition: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as \\\"fixed\\\") */\\n\\tpadding: .2em;\\n}\\n.ui-tabs .ui-tabs-nav {\\n\\tmargin: 0;\\n\\tpadding: .2em .2em 0;\\n}\\n.ui-tabs .ui-tabs-nav li {\\n\\tlist-style: none;\\n\\tfloat: left;\\n\\tposition: relative;\\n\\ttop: 0;\\n\\tmargin: 1px .2em 0 0;\\n\\tborder-bottom-width: 0;\\n\\tpadding: 0;\\n\\twhite-space: nowrap;\\n}\\n.ui-tabs .ui-tabs-nav .ui-tabs-anchor {\\n\\tfloat: left;\\n\\tpadding: .5em 1em;\\n\\ttext-decoration: none;\\n}\\n.ui-tabs .ui-tabs-nav li.ui-tabs-active {\\n\\tmargin-bottom: -1px;\\n\\tpadding-bottom: 1px;\\n}\\n.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,\\n.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,\\n.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {\\n\\tcursor: text;\\n}\\n.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {\\n\\tcursor: pointer;\\n}\\n.ui-tabs .ui-tabs-panel {\\n\\tdisplay: block;\\n\\tborder-width: 0;\\n\\tpadding: 1em 1.4em;\\n\\tbackground: none;\\n}\\n.ui-tooltip {\\n\\tpadding: 8px;\\n\\tposition: absolute;\\n\\tz-index: 9999;\\n\\tmax-width: 300px;\\n\\t-webkit-box-shadow: 0 0 5px #aaa;\\n\\tbox-shadow: 0 0 5px #aaa;\\n}\\nbody .ui-tooltip {\\n\\tborder-width: 2px;\\n}\\n\\n/* Component containers\\n----------------------------------*/\\n.ui-widget {\\n\\tfont-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;\\n\\tfont-size: 1.1em;\\n}\\n.ui-widget .ui-widget {\\n\\tfont-size: 1em;\\n}\\n.ui-widget input,\\n.ui-widget select,\\n.ui-widget textarea,\\n.ui-widget button {\\n\\tfont-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;\\n\\tfont-size: 1em;\\n}\\n.ui-widget-content {\\n\\tborder: 1px solid #dddddd;\\n\\tbackground: #eeeeee url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") 50% top repeat-x;\\n\\tcolor: #333333;\\n}\\n.ui-widget-content a {\\n\\tcolor: #333333;\\n}\\n.ui-widget-header {\\n\\tborder: 1px solid #e78f08;\\n\\tbackground: #f6a828 url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") 50% 50% repeat-x;\\n\\tcolor: #ffffff;\\n\\tfont-weight: bold;\\n}\\n.ui-widget-header a {\\n\\tcolor: #ffffff;\\n}\\n\\n/* Interaction states\\n----------------------------------*/\\n.ui-state-default,\\n.ui-widget-content .ui-state-default,\\n.ui-widget-header .ui-state-default {\\n\\tborder: 1px solid #cccccc;\\n\\tbackground: #f6f6f6 url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") 50% 50% repeat-x;\\n\\tfont-weight: bold;\\n\\tcolor: #1c94c4;\\n}\\n.ui-state-default a,\\n.ui-state-default a:link,\\n.ui-state-default a:visited {\\n\\tcolor: #1c94c4;\\n\\ttext-decoration: none;\\n}\\n.ui-state-hover,\\n.ui-widget-content .ui-state-hover,\\n.ui-widget-header .ui-state-hover,\\n.ui-state-focus,\\n.ui-widget-content .ui-state-focus,\\n.ui-widget-header .ui-state-focus {\\n\\tborder: 1px solid #fbcb09;\\n\\tbackground: #fdf5ce url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") 50% 50% repeat-x;\\n\\tfont-weight: bold;\\n\\tcolor: #c77405;\\n}\\n.ui-state-hover a,\\n.ui-state-hover a:hover,\\n.ui-state-hover a:link,\\n.ui-state-hover a:visited,\\n.ui-state-focus a,\\n.ui-state-focus a:hover,\\n.ui-state-focus a:link,\\n.ui-state-focus a:visited {\\n\\tcolor: #c77405;\\n\\ttext-decoration: none;\\n}\\n.ui-state-active,\\n.ui-widget-content .ui-state-active,\\n.ui-widget-header .ui-state-active {\\n\\tborder: 1px solid #fbd850;\\n\\tbackground: #ffffff url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \") 50% 50% repeat-x;\\n\\tfont-weight: bold;\\n\\tcolor: #eb8f00;\\n}\\n.ui-state-active a,\\n.ui-state-active a:link,\\n.ui-state-active a:visited {\\n\\tcolor: #eb8f00;\\n\\ttext-decoration: none;\\n}\\n\\n/* Interaction Cues\\n----------------------------------*/\\n.ui-state-highlight,\\n.ui-widget-content .ui-state-highlight,\\n.ui-widget-header .ui-state-highlight {\\n\\tborder: 1px solid #fed22f;\\n\\tbackground: #ffe45c url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") 50% top repeat-x;\\n\\tcolor: #363636;\\n}\\n.ui-state-highlight a,\\n.ui-widget-content .ui-state-highlight a,\\n.ui-widget-header .ui-state-highlight a {\\n\\tcolor: #363636;\\n}\\n.ui-state-error,\\n.ui-widget-content .ui-state-error,\\n.ui-widget-header .ui-state-error {\\n\\tborder: 1px solid #cd0a0a;\\n\\tbackground: #b81900 url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \") 50% 50% repeat;\\n\\tcolor: #ffffff;\\n}\\n.ui-state-error a,\\n.ui-widget-content .ui-state-error a,\\n.ui-widget-header .ui-state-error a {\\n\\tcolor: #ffffff;\\n}\\n.ui-state-error-text,\\n.ui-widget-content .ui-state-error-text,\\n.ui-widget-header .ui-state-error-text {\\n\\tcolor: #ffffff;\\n}\\n.ui-priority-primary,\\n.ui-widget-content .ui-priority-primary,\\n.ui-widget-header .ui-priority-primary {\\n\\tfont-weight: bold;\\n}\\n.ui-priority-secondary,\\n.ui-widget-content .ui-priority-secondary,\\n.ui-widget-header .ui-priority-secondary {\\n\\topacity: .7;\\n\\tfilter:Alpha(Opacity=70); /* support: IE8 */\\n\\tfont-weight: normal;\\n}\\n.ui-state-disabled,\\n.ui-widget-content .ui-state-disabled,\\n.ui-widget-header .ui-state-disabled {\\n\\topacity: .35;\\n\\tfilter:Alpha(Opacity=35); /* support: IE8 */\\n\\tbackground-image: none;\\n}\\n.ui-state-disabled .ui-icon {\\n\\tfilter:Alpha(Opacity=35); /* support: IE8 - See #6059 */\\n}\\n\\n/* Icons\\n----------------------------------*/\\n\\n/* states and images */\\n.ui-icon {\\n\\twidth: 16px;\\n\\theight: 16px;\\n}\\n.ui-icon,\\n.ui-widget-content .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \");\\n}\\n.ui-widget-header .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \");\\n}\\n.ui-state-default .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \");\\n}\\n.ui-state-hover .ui-icon,\\n.ui-state-focus .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \");\\n}\\n.ui-state-active .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \");\\n}\\n.ui-state-highlight .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \");\\n}\\n.ui-state-error .ui-icon,\\n.ui-state-error-text .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \");\\n}\\n\\n/* positioning */\\n.ui-icon-blank { background-position: 16px 16px; }\\n.ui-icon-carat-1-n { background-position: 0 0; }\\n.ui-icon-carat-1-ne { background-position: -16px 0; }\\n.ui-icon-carat-1-e { background-position: -32px 0; }\\n.ui-icon-carat-1-se { background-position: -48px 0; }\\n.ui-icon-carat-1-s { background-position: -64px 0; }\\n.ui-icon-carat-1-sw { background-position: -80px 0; }\\n.ui-icon-carat-1-w { background-position: -96px 0; }\\n.ui-icon-carat-1-nw { background-position: -112px 0; }\\n.ui-icon-carat-2-n-s { background-position: -128px 0; }\\n.ui-icon-carat-2-e-w { background-position: -144px 0; }\\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\\n.ui-icon-triangle-1-s { background-position: -64px -16px; }\\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\\n.ui-icon-arrow-1-s { background-position: -64px -32px; }\\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\\n.ui-icon-arrowthick-1-n { background-position: 0 -48px; }\\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\\n.ui-icon-arrow-4 { background-position: 0 -80px; }\\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\\n.ui-icon-extlink { background-position: -32px -80px; }\\n.ui-icon-newwin { background-position: -48px -80px; }\\n.ui-icon-refresh { background-position: -64px -80px; }\\n.ui-icon-shuffle { background-position: -80px -80px; }\\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\\n.ui-icon-folder-open { background-position: -16px -96px; }\\n.ui-icon-document { background-position: -32px -96px; }\\n.ui-icon-document-b { background-position: -48px -96px; }\\n.ui-icon-note { background-position: -64px -96px; }\\n.ui-icon-mail-closed { background-position: -80px -96px; }\\n.ui-icon-mail-open { background-position: -96px -96px; }\\n.ui-icon-suitcase { background-position: -112px -96px; }\\n.ui-icon-comment { background-position: -128px -96px; }\\n.ui-icon-person { background-position: -144px -96px; }\\n.ui-icon-print { background-position: -160px -96px; }\\n.ui-icon-trash { background-position: -176px -96px; }\\n.ui-icon-locked { background-position: -192px -96px; }\\n.ui-icon-unlocked { background-position: -208px -96px; }\\n.ui-icon-bookmark { background-position: -224px -96px; }\\n.ui-icon-tag { background-position: -240px -96px; }\\n.ui-icon-home { background-position: 0 -112px; }\\n.ui-icon-flag { background-position: -16px -112px; }\\n.ui-icon-calendar { background-position: -32px -112px; }\\n.ui-icon-cart { background-position: -48px -112px; }\\n.ui-icon-pencil { background-position: -64px -112px; }\\n.ui-icon-clock { background-position: -80px -112px; }\\n.ui-icon-disk { background-position: -96px -112px; }\\n.ui-icon-calculator { background-position: -112px -112px; }\\n.ui-icon-zoomin { background-position: -128px -112px; }\\n.ui-icon-zoomout { background-position: -144px -112px; }\\n.ui-icon-search { background-position: -160px -112px; }\\n.ui-icon-wrench { background-position: -176px -112px; }\\n.ui-icon-gear { background-position: -192px -112px; }\\n.ui-icon-heart { background-position: -208px -112px; }\\n.ui-icon-star { background-position: -224px -112px; }\\n.ui-icon-link { background-position: -240px -112px; }\\n.ui-icon-cancel { background-position: 0 -128px; }\\n.ui-icon-plus { background-position: -16px -128px; }\\n.ui-icon-plusthick { background-position: -32px -128px; }\\n.ui-icon-minus { background-position: -48px -128px; }\\n.ui-icon-minusthick { background-position: -64px -128px; }\\n.ui-icon-close { background-position: -80px -128px; }\\n.ui-icon-closethick { background-position: -96px -128px; }\\n.ui-icon-key { background-position: -112px -128px; }\\n.ui-icon-lightbulb { background-position: -128px -128px; }\\n.ui-icon-scissors { background-position: -144px -128px; }\\n.ui-icon-clipboard { background-position: -160px -128px; }\\n.ui-icon-copy { background-position: -176px -128px; }\\n.ui-icon-contact { background-position: -192px -128px; }\\n.ui-icon-image { background-position: -208px -128px; }\\n.ui-icon-video { background-position: -224px -128px; }\\n.ui-icon-script { background-position: -240px -128px; }\\n.ui-icon-alert { background-position: 0 -144px; }\\n.ui-icon-info { background-position: -16px -144px; }\\n.ui-icon-notice { background-position: -32px -144px; }\\n.ui-icon-help { background-position: -48px -144px; }\\n.ui-icon-check { background-position: -64px -144px; }\\n.ui-icon-bullet { background-position: -80px -144px; }\\n.ui-icon-radio-on { background-position: -96px -144px; }\\n.ui-icon-radio-off { background-position: -112px -144px; }\\n.ui-icon-pin-w { background-position: -128px -144px; }\\n.ui-icon-pin-s { background-position: -144px -144px; }\\n.ui-icon-play { background-position: 0 -160px; }\\n.ui-icon-pause { background-position: -16px -160px; }\\n.ui-icon-seek-next { background-position: -32px -160px; }\\n.ui-icon-seek-prev { background-position: -48px -160px; }\\n.ui-icon-seek-end { background-position: -64px -160px; }\\n.ui-icon-seek-start { background-position: -80px -160px; }\\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\\n.ui-icon-seek-first { background-position: -80px -160px; }\\n.ui-icon-stop { background-position: -96px -160px; }\\n.ui-icon-eject { background-position: -112px -160px; }\\n.ui-icon-volume-off { background-position: -128px -160px; }\\n.ui-icon-volume-on { background-position: -144px -160px; }\\n.ui-icon-power { background-position: 0 -176px; }\\n.ui-icon-signal-diag { background-position: -16px -176px; }\\n.ui-icon-signal { background-position: -32px -176px; }\\n.ui-icon-battery-0 { background-position: -48px -176px; }\\n.ui-icon-battery-1 { background-position: -64px -176px; }\\n.ui-icon-battery-2 { background-position: -80px -176px; }\\n.ui-icon-battery-3 { background-position: -96px -176px; }\\n.ui-icon-circle-plus { background-position: 0 -192px; }\\n.ui-icon-circle-minus { background-position: -16px -192px; }\\n.ui-icon-circle-close { background-position: -32px -192px; }\\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\\n.ui-icon-circle-check { background-position: -208px -192px; }\\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\\n\\n\\n/* Misc visuals\\n----------------------------------*/\\n\\n/* Corner radius */\\n.ui-corner-all,\\n.ui-corner-top,\\n.ui-corner-left,\\n.ui-corner-tl {\\n\\tborder-top-left-radius: 4px;\\n}\\n.ui-corner-all,\\n.ui-corner-top,\\n.ui-corner-right,\\n.ui-corner-tr {\\n\\tborder-top-right-radius: 4px;\\n}\\n.ui-corner-all,\\n.ui-corner-bottom,\\n.ui-corner-left,\\n.ui-corner-bl {\\n\\tborder-bottom-left-radius: 4px;\\n}\\n.ui-corner-all,\\n.ui-corner-bottom,\\n.ui-corner-right,\\n.ui-corner-br {\\n\\tborder-bottom-right-radius: 4px;\\n}\\n\\n/* Overlays */\\n.ui-widget-overlay {\\n\\tbackground: #666666 url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \") 50% 50% repeat;\\n\\topacity: .5;\\n\\tfilter: Alpha(Opacity=50); /* support: IE8 */\\n}\\n.ui-widget-shadow {\\n\\tmargin: -5px 0 0 -5px;\\n\\tpadding: 5px;\\n\\tbackground: #000000 url(\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \") 50% 50% repeat-x;\\n\\topacity: .2;\\n\\tfilter: Alpha(Opacity=20); /* support: IE8 */\\n\\tborder-radius: 5px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkEAAAAAAy19n/AAAAAmJLR0T//xSrMc0AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABYSURBVBjTxcK9DUBAAIDRjxk0dBQaE4gR7KFVM4rEDBIjEKVV7s79OZ0teHk8FR/NCAehJ6TcK3eD3/EtbsPV2AVbYmZMgh7RMdfAFaEmVIE8kR0yR4gfv1IulNTJHsTLAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTAzLTExVDA4OjQ5OjM0LTA3OjAwnOkHBQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wMy0xMVQwODo0OTozNC0wNzowMO20v7kAAAAASUVORK5CYII=\");\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,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\");\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQEAAAAAAao4lEAAAAAmJLR0T//xSrMc0AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABISURBVDjLY/g1mWEUjSKqo2/fGL5LMXzPYfh+nOGHFsOPBQw/xRh+TmX4JcLwq4vhNwPD71yG3xcZ/igx/Ilk+JM0ikYRMQgA8pJH3iOhTlAAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDMtMTFUMDg6NDk6MzQtMDc6MDCc6QcFAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAzLTExVDA4OjQ5OjM0LTA3OjAw7bS/uQAAAABJRU5ErkJggg==\");\n\n/***/ }),\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQEAIAAACwqkHPAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAmklEQVRIx+3PPwsBARgH4N/7s0gmXZSuKMvNdl/AV2A1X1ltzBaf5UazEp3RpKujFMV0uT/dy6cQwzs98wPdZVk8IwAAhmEYxrdBWSZJGFKq4smGaGDENeFgwgfREp8d6Ph1OEZEWxaVOXSVRieHcGXJALrNnvEQes6nlz20yO9Xl9IUn128e0VwS4k6BvQIoob+X6QNwzB+yAca/jJVRVy4gQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMy0xMVQwODo0OTozNS0wNzowMDqeDLEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDMtMTFUMDg6NDk6MzUtMDc6MDBLw7QNAAAAAElFTkSuQmCC\");\n\n/***/ }),\n/* 18 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQAQAAAABHIzd2AAAAAmJLR0QAAd2KE6QAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAARSURBVCjPY2hgGIWjcBTigACVaMgB0zSxaQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMy0xMVQwODo0OTozNC0wNzowMJzpBwUAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDMtMTFUMDg6NDk6MzQtMDc6MDDttL+5AAAAAElFTkSuQmCC\");\n\n/***/ }),\n/* 19 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkEAIAAACY3hF0AAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAhklEQVQoz+WQMQrCUBBEH1NaCzaxTc7iHcwhcoiktP6kS8BK8BIWHkYQrM1mLD5Bb6Bg9Xg7syws9mNztADgj3CjFbifk4A+0od1UWDfr2kloJkGgZsYBdRTKfB+qgTOtgzrqHJWCtg9T++9pdnEIHAb22yjwPk6XRQCzvNa4IsP3//ST+MF5uU/iXGyfBoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDMtMTFUMDg6NDk6MzUtMDc6MDA6ngyxAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAzLTExVDA4OjQ5OjM1LTA3OjAwS8O0DQAAAABJRU5ErkJggg==\");\n\n/***/ }),\n/* 20 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoEAIAAABTDPN5AAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAA4ElEQVRo3u3YMQoCMRBG4c02XkCQLcXKwsN5Eq+znScRa8FasLP4q0DGZASLecmr0mSHr9tMuh5Pr91+MnpfnofHfXK2OW9v9jdb+t/cuR+qCaZSC2A2NQP3QFVpXZfFfy0iVc3eC3GpmusAR6fq3ARmUJvAJGoFzKOaYCq1AGZTM3APVJW+v5ZIVOX+8YhL1dwfwRGpOrvBcalucHSqA8ygNoFJ1AqYRzXBVGoBzKZm4B6oauy0uNSx06JTm8AkagXMo5pgKrUAZlMzcA9UNXZaXOrYadGpbnB0qgPMoKoPsn/eaLRwj54AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDMtMTFUMDg6NDk6MzUtMDc6MDA6ngyxAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAzLTExVDA4OjQ5OjM1LTA3OjAwS8O0DQAAAABJRU5ErkJggg==\");\n\n/***/ }),\n/* 21 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,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\");\n\n/***/ }),\n/* 22 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,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\");\n\n/***/ }),\n/* 23 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,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\");\n\n/***/ }),\n/* 24 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAABDlBMVEUijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEijvEzfqCuAAAAWXRSTlMAGRAzBAhQv4KZLyJVcUBmYBoTMswNITwWQkhLIB5aIycxUyyFNIeAw2rIz8Y4RRy8uL58q7WljKqorR+yKf0BnlEk7woGAgOPomKUSqCvbd+cR2M/b3+RaPlAXvEAAAABYktHRACIBR1IAAAACXBIWXMAAABIAAAASABGyWs+AAAPZElEQVR42u1dC2PbthEGyUiq6ZiSXblLE6ex1mTO5iXZq+u6ro3abG26pOkSd13v//+RAXzhcIeHWMoUbeOTLesIEMB9PIB3ACgLERERMQIkkOy6CTvWH0bOQO/mJeDXP8EMqMzDEkIsEBRMAmh7jHSVmuAjAKwC8FRAzi8/DmoS1AI5AQltj5FOryAjgJ7OK2CZkwEZYO23q+BJ5wwKkttfui1z4s20VTAL5k2kF5hbiPcKcwvwNGB4C7CTwproI4CdDcxEPKUTExx+DNiAj0u9C9AuNPxdYOe46Y5QRERERERExIhx6Z7gjv2ghEVrQJ33hJ5BsxsBfsIq8M0HsAkhWfqglFgawAhgGWh2M1xMWAWUAE90qUofMhhi7be32JNsmVFJPKeLwBQglAQMNh3ALVjYbNaI1jaYD0jM0nw9atcWYEXiaXH/+QDeQ3Y6BoRx3e8CERERERERERG7Qz/HP+iaBsvvHXj0LAD4cip0yN27fXw7AGtQoDTwH+HqkWTgWczTwZVmr8DbAEuqv35bCT6CWDorjGnAqwOSCI7EhlFWHjkBXIkb1M/DZQgRwCeAwK9B+HRPFlPBOjeZ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\");\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,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\");\n\n/***/ }),\n/* 26 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoEAAAAAD5BTvyAAAAAmJLR0T//xSrMc0AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB6SURBVEjH7dXLEYAgDEVRqk0HNmpFMgxi+Lnw3Z0hSzJnmZuO8x6b3vPn530vsVwDKa6CHFdAkssgyy1AjTNLLDeAOteBBOdAhmsgxVWQ4wpIchlkuQ34nXPni+EWoMZNoMoNoM51IMFFU3QumqJz0RSdi6bo3C+bcgHap6IryOSd+AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0wMy0xMVQwODo0OTozNS0wNzowMDqeDLEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMDMtMTFUMDg6NDk6MzUtMDc6MDBLw7QNAAAAAElFTkSuQmCC\");\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkAQAAAADcH0/XAAAAAmJLR0QAAd2KE6QAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAPSURBVCjPY2AYBaOA+gAAAlgAAXU2hncAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDMtMTFUMDg6NDk6MzUtMDc6MDA6ngyxAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAzLTExVDA4OjQ5OjM1LTA3OjAwS8O0DQAAAABJRU5ErkJggg==\");\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {/*!\n * jQuery BBQ: Back Button & Query Library - v1.3pre - 8/26/2010\n * http://benalman.com/projects/jquery-bbq-plugin/\n * \n * Copyright (c) 2010 \"Cowboy\" Ben Alman\n * Dual licensed under the MIT and GPL licenses.\n * http://benalman.com/about/license/\n */\n\n// Script: jQuery BBQ: Back Button & Query Library\n//\n// *Version: 1.3pre, Last updated: 8/26/2010*\n// \n// Project Home - http://benalman.com/projects/jquery-bbq-plugin/\n// GitHub - http://github.com/cowboy/jquery-bbq/\n// Source - http://github.com/cowboy/jquery-bbq/raw/master/jquery.ba-bbq.js\n// (Minified) - http://github.com/cowboy/jquery-bbq/raw/master/jquery.ba-bbq.min.js (2.2kb gzipped)\n// \n// About: License\n// \n// Copyright (c) 2010 \"Cowboy\" Ben Alman,\n// Dual licensed under the MIT and GPL licenses.\n// http://benalman.com/about/license/\n// \n// About: Examples\n// \n// These working examples, complete with fully commented code, illustrate a few\n// ways in which this plugin can be used.\n// \n// Basic AJAX - http://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/\n// Advanced AJAX - http://benalman.com/code/projects/jquery-bbq/examples/fragment-advanced/\n// jQuery UI Tabs - http://benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs/\n// Deparam - http://benalman.com/code/projects/jquery-bbq/examples/deparam/\n// \n// About: Support and Testing\n// \n// Information about what version or versions of jQuery this plugin has been\n// tested with, what browsers it has been tested in, and where the unit tests\n// reside (so you can test it yourself).\n// \n// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2\n// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5,\n// Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5.\n// Unit Tests - http://benalman.com/code/projects/jquery-bbq/unit/\n// \n// About: Release History\n// \n// 1.3pre - (8/26/2010) Integrated <jQuery hashchange event> v1.3, which adds\n// document.title and document.domain support in IE6/7, BlackBerry\n// support, better Iframe hiding for accessibility reasons, and the new\n// <jQuery.fn.hashchange> \"shortcut\" method. Added the\n// <jQuery.param.sorted> method which reduces the possibility of\n// extraneous hashchange event triggering. Added the\n// <jQuery.param.fragment.ajaxCrawlable> method which can be used to\n// enable Google \"AJAX Crawlable mode.\"\n// 1.2.1 - (2/17/2010) Actually fixed the stale window.location Safari bug from\n// <jQuery hashchange event> in BBQ, which was the main reason for the\n// previous release!\n// 1.2 - (2/16/2010) Integrated <jQuery hashchange event> v1.2, which fixes a\n// Safari bug, the event can now be bound before DOM ready, and IE6/7\n// page should no longer scroll when the event is first bound. Also\n// added the <jQuery.param.fragment.noEscape> method, and reworked the\n// <hashchange event (BBQ)> internal \"add\" method to be compatible with\n// changes made to the jQuery 1.4.2 special events API.\n// 1.1.1 - (1/22/2010) Integrated <jQuery hashchange event> v1.1, which fixes an\n// obscure IE8 EmulateIE7 meta tag compatibility mode bug.\n// 1.1 - (1/9/2010) Broke out the jQuery BBQ event.special <hashchange event>\n// functionality into a separate plugin for users who want just the\n// basic event & back button support, without all the extra awesomeness\n// that BBQ provides. This plugin will be included as part of jQuery BBQ,\n// but also be available separately. See <jQuery hashchange event>\n// plugin for more information. Also added the <jQuery.bbq.removeState>\n// method and added additional <jQuery.deparam> examples.\n// 1.0.3 - (12/2/2009) Fixed an issue in IE 6 where location.search and\n// location.hash would report incorrectly if the hash contained the ?\n// character. Also <jQuery.param.querystring> and <jQuery.param.fragment>\n// will no longer parse params out of a URL that doesn't contain ? or #,\n// respectively.\n// 1.0.2 - (10/10/2009) Fixed an issue in IE 6/7 where the hidden IFRAME caused\n// a \"This page contains both secure and nonsecure items.\" warning when\n// used on an https:// page.\n// 1.0.1 - (10/7/2009) Fixed an issue in IE 8. Since both \"IE7\" and \"IE8\n// Compatibility View\" modes erroneously report that the browser\n// supports the native window.onhashchange event, a slightly more\n// robust test needed to be added.\n// 1.0 - (10/2/2009) Initial release\n\n(function($,window){\n '$:nomunge'; // Used by YUI compressor.\n \n // Some convenient shortcuts.\n var undefined,\n aps = Array.prototype.slice,\n decode = decodeURIComponent,\n \n // Method / object references.\n jq_param = $.param,\n jq_param_sorted,\n jq_param_fragment,\n jq_deparam,\n jq_deparam_fragment,\n jq_bbq = $.bbq = $.bbq || {},\n jq_bbq_pushState,\n jq_bbq_getState,\n jq_elemUrlAttr,\n special = $.event.special,\n \n // Reused strings.\n str_hashchange = 'hashchange',\n str_querystring = 'querystring',\n str_fragment = 'fragment',\n str_elemUrlAttr = 'elemUrlAttr',\n str_href = 'href',\n str_src = 'src',\n \n // Reused RegExp.\n re_params_querystring = /^.*\\?|#.*$/g,\n re_params_fragment,\n re_fragment,\n re_no_escape,\n \n ajax_crawlable,\n fragment_prefix,\n \n // Used by jQuery.elemUrlAttr.\n elemUrlAttr_cache = {};\n \n // A few commonly used bits, broken out to help reduce minified file size.\n \n function is_string( arg ) {\n return typeof arg === 'string';\n };\n \n // Why write the same function twice? Let's curry! Mmmm, curry..\n \n function curry( func ) {\n var args = aps.call( arguments, 1 );\n \n return function() {\n return func.apply( this, args.concat( aps.call( arguments ) ) );\n };\n };\n \n // Get location.hash (or what you'd expect location.hash to be) sans any\n // leading #. Thanks for making this necessary, Firefox!\n function get_fragment( url ) {\n return url.replace( re_fragment, '$2' );\n };\n \n // Get location.search (or what you'd expect location.search to be) sans any\n // leading #. Thanks for making this necessary, IE6!\n function get_querystring( url ) {\n return url.replace( /(?:^[^?#]*\\?([^#]*).*$)?.*/, '$1' );\n };\n \n // Section: Param (to string)\n // \n // Method: jQuery.param.querystring\n // \n // Retrieve the query string from a URL or if no arguments are passed, the\n // current window.location.href.\n // \n // Usage:\n // \n // > jQuery.param.querystring( [ url ] );\n // \n // Arguments:\n // \n // url - (String) A URL containing query string params to be parsed. If url\n // is not passed, the current window.location.href is used.\n // \n // Returns:\n // \n // (String) The parsed query string, with any leading \"?\" removed.\n //\n \n // Method: jQuery.param.querystring (build url)\n // \n // Merge a URL, with or without pre-existing query string params, plus any\n // object, params string or URL containing query string params into a new URL.\n // \n // Usage:\n // \n // > jQuery.param.querystring( url, params [, merge_mode ] );\n // \n // Arguments:\n // \n // url - (String) A valid URL for params to be merged into. This URL may\n // contain a query string and/or fragment (hash).\n // params - (String) A params string or URL containing query string params to\n // be merged into url.\n // params - (Object) A params object to be merged into url.\n // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not\n // specified, and is as-follows:\n // \n // * 0: params in the params argument will override any query string\n // params in url.\n // * 1: any query string params in url will override params in the params\n // argument.\n // * 2: params argument will completely replace any query string in url.\n // \n // Returns:\n // \n // (String) A URL with a urlencoded query string in the format '?a=b&c=d&e=f'.\n \n // Method: jQuery.param.fragment\n // \n // Retrieve the fragment (hash) from a URL or if no arguments are passed, the\n // current window.location.href.\n // \n // Usage:\n // \n // > jQuery.param.fragment( [ url ] );\n // \n // Arguments:\n // \n // url - (String) A URL containing fragment (hash) params to be parsed. If\n // url is not passed, the current window.location.href is used.\n // \n // Returns:\n // \n // (String) The parsed fragment (hash) string, with any leading \"#\" removed.\n \n // Method: jQuery.param.fragment (build url)\n // \n // Merge a URL, with or without pre-existing fragment (hash) params, plus any\n // object, params string or URL containing fragment (hash) params into a new\n // URL.\n // \n // Usage:\n // \n // > jQuery.param.fragment( url, params [, merge_mode ] );\n // \n // Arguments:\n // \n // url - (String) A valid URL for params to be merged into. This URL may\n // contain a query string and/or fragment (hash).\n // params - (String) A params string or URL containing fragment (hash) params\n // to be merged into url.\n // params - (Object) A params object to be merged into url.\n // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not\n // specified, and is as-follows:\n // \n // * 0: params in the params argument will override any fragment (hash)\n // params in url.\n // * 1: any fragment (hash) params in url will override params in the\n // params argument.\n // * 2: params argument will completely replace any query string in url.\n // \n // Returns:\n // \n // (String) A URL with a urlencoded fragment (hash) in the format '#a=b&c=d&e=f'.\n \n function jq_param_sub( is_fragment, get_func, url, params, merge_mode ) {\n var result,\n qs,\n matches,\n url_params,\n hash;\n \n if ( params !== undefined ) {\n // Build URL by merging params into url string.\n \n // matches[1] = url part that precedes params, not including trailing ?/#\n // matches[2] = params, not including leading ?/#\n // matches[3] = if in 'querystring' mode, hash including leading #, otherwise ''\n matches = url.match( is_fragment ? re_fragment : /^([^#?]*)\\??([^#]*)(#?.*)/ );\n \n // Get the hash if in 'querystring' mode, and it exists.\n hash = matches[3] || '';\n \n if ( merge_mode === 2 && is_string( params ) ) {\n // If merge_mode is 2 and params is a string, merge the fragment / query\n // string into the URL wholesale, without converting it into an object.\n qs = params.replace( is_fragment ? re_params_fragment : re_params_querystring, '' );\n \n } else {\n // Convert relevant params in url to object.\n url_params = jq_deparam( matches[2] );\n \n params = is_string( params )\n \n // Convert passed params string into object.\n ? jq_deparam[ is_fragment ? str_fragment : str_querystring ]( params )\n \n // Passed params object.\n : params;\n \n qs = merge_mode === 2 ? params // passed params replace url params\n : merge_mode === 1 ? $.extend( {}, params, url_params ) // url params override passed params\n : $.extend( {}, url_params, params ); // passed params override url params\n \n // Convert params object into a sorted params string.\n qs = jq_param_sorted( qs );\n \n // Unescape characters specified via $.param.noEscape. Since only hash-\n // history users have requested this feature, it's only enabled for\n // fragment-related params strings.\n if ( is_fragment ) {\n qs = qs.replace( re_no_escape, decode );\n }\n }\n \n // Build URL from the base url, querystring and hash. In 'querystring'\n // mode, ? is only added if a query string exists. In 'fragment' mode, #\n // is always added.\n result = matches[1] + ( is_fragment ? fragment_prefix : qs || !matches[1] ? '?' : '' ) + qs + hash;\n \n } else {\n // If URL was passed in, parse params from URL string, otherwise parse\n // params from window.location.href.\n result = get_func( url !== undefined ? url : location.href );\n }\n \n return result;\n };\n \n jq_param[ str_querystring ] = curry( jq_param_sub, 0, get_querystring );\n jq_param[ str_fragment ] = jq_param_fragment = curry( jq_param_sub, 1, get_fragment );\n \n // Method: jQuery.param.sorted\n // \n // Returns a params string equivalent to that returned by the internal\n // jQuery.param method, but sorted, which makes it suitable for use as a\n // cache key.\n // \n // For example, in most browsers jQuery.param({z:1,a:2}) returns \"z=1&a=2\"\n // and jQuery.param({a:2,z:1}) returns \"a=2&z=1\". Even though both the\n // objects being serialized and the resulting params strings are equivalent,\n // if these params strings were set into the location.hash fragment\n // sequentially, the hashchange event would be triggered unnecessarily, since\n // the strings are different (even though the data described by them is the\n // same). By sorting the params string, unecessary hashchange event triggering\n // can be avoided.\n // \n // Usage:\n // \n // > jQuery.param.sorted( obj [, traditional ] );\n // \n // Arguments:\n // \n // obj - (Object) An object to be serialized.\n // traditional - (Boolean) Params deep/shallow serialization mode. See the\n // documentation at http://api.jquery.com/jQuery.param/ for more detail.\n // \n // Returns:\n // \n // (String) A sorted params string.\n \n jq_param.sorted = jq_param_sorted = function( a, traditional ) {\n var arr = [],\n obj = {};\n \n $.each( jq_param( a, traditional ).split( '&' ), function(i,v){\n var key = v.replace( /(?:%5B|=).*$/, '' ),\n key_obj = obj[ key ];\n \n if ( !key_obj ) {\n key_obj = obj[ key ] = [];\n arr.push( key );\n }\n \n key_obj.push( v );\n });\n \n return $.map( arr.sort(), function(v){\n return obj[ v ];\n }).join( '&' );\n };\n \n // Method: jQuery.param.fragment.noEscape\n // \n // Specify characters that will be left unescaped when fragments are created\n // or merged using <jQuery.param.fragment>, or when the fragment is modified\n // using <jQuery.bbq.pushState>. This option only applies to serialized data\n // object fragments, and not set-as-string fragments. Does not affect the\n // query string. Defaults to \",/\" (comma, forward slash).\n // \n // Note that this is considered a purely aesthetic option, and will help to\n // create URLs that \"look pretty\" in the address bar or bookmarks, without\n // affecting functionality in any way. That being said, be careful to not\n // unescape characters that are used as delimiters or serve a special\n // purpose, such as the \"#?&=+\" (octothorpe, question mark, ampersand,\n // equals, plus) characters.\n // \n // Usage:\n // \n // > jQuery.param.fragment.noEscape( [ chars ] );\n // \n // Arguments:\n // \n // chars - (String) The characters to not escape in the fragment. If\n // unspecified, defaults to empty string (escape all characters).\n // \n // Returns:\n // \n // Nothing.\n \n jq_param_fragment.noEscape = function( chars ) {\n chars = chars || '';\n var arr = $.map( chars.split(''), encodeURIComponent );\n re_no_escape = new RegExp( arr.join('|'), 'g' );\n };\n \n // A sensible default. These are the characters people seem to complain about\n // \"uglifying up the URL\" the most.\n jq_param_fragment.noEscape( ',/' );\n \n // Method: jQuery.param.fragment.ajaxCrawlable\n // \n // TODO: DESCRIBE\n // \n // Usage:\n // \n // > jQuery.param.fragment.ajaxCrawlable( [ state ] );\n // \n // Arguments:\n // \n // state - (Boolean) TODO: DESCRIBE\n // \n // Returns:\n // \n // (Boolean) The current ajaxCrawlable state.\n \n jq_param_fragment.ajaxCrawlable = function( state ) {\n if ( state !== undefined ) {\n if ( state ) {\n re_params_fragment = /^.*(?:#!|#)/;\n re_fragment = /^([^#]*)(?:#!|#)?(.*)$/;\n fragment_prefix = '#!';\n } else {\n re_params_fragment = /^.*#/;\n re_fragment = /^([^#]*)#?(.*)$/;\n fragment_prefix = '#';\n }\n ajax_crawlable = !!state;\n }\n \n return ajax_crawlable;\n };\n \n jq_param_fragment.ajaxCrawlable( 0 );\n \n // Section: Deparam (from string)\n // \n // Method: jQuery.deparam\n // \n // Deserialize a params string into an object, optionally coercing numbers,\n // booleans, null and undefined values; this method is the counterpart to the\n // internal jQuery.param method.\n // \n // Usage:\n // \n // > jQuery.deparam( params [, coerce ] );\n // \n // Arguments:\n // \n // params - (String) A params string to be parsed.\n // coerce - (Boolean) If true, coerces any numbers or true, false, null, and\n // undefined to their actual value. Defaults to false if omitted.\n // \n // Returns:\n // \n // (Object) An object representing the deserialized params string.\n \n $.deparam = jq_deparam = function( params, coerce ) {\n var obj = {},\n coerce_types = { 'true': !0, 'false': !1, 'null': null };\n \n // Iterate over all name=value pairs.\n $.each( params.replace( /\\+/g, ' ' ).split( '&' ), function(j,v){\n var param = v.split( '=' ),\n key = decode( param[0] ),\n val,\n cur = obj,\n i = 0,\n \n // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it\n // into its component parts.\n keys = key.split( '][' ),\n keys_last = keys.length - 1;\n \n // If the first keys part contains [ and the last ends with ], then []\n // are correctly balanced.\n if ( /\\[/.test( keys[0] ) && /\\]$/.test( keys[ keys_last ] ) ) {\n // Remove the trailing ] from the last keys part.\n keys[ keys_last ] = keys[ keys_last ].replace( /\\]$/, '' );\n \n // Split first keys part into two parts on the [ and add them back onto\n // the beginning of the keys array.\n keys = keys.shift().split('[').concat( keys );\n \n keys_last = keys.length - 1;\n } else {\n // Basic 'foo' style key.\n keys_last = 0;\n }\n \n // Are we dealing with a name=value pair, or just a name?\n if ( param.length === 2 ) {\n val = decode( param[1] );\n \n // Coerce values.\n if ( coerce ) {\n val = val && !isNaN(val) ? +val // number\n : val === 'undefined' ? undefined // undefined\n : coerce_types[val] !== undefined ? coerce_types[val] // true, false, null\n : val; // string\n }\n \n if ( keys_last ) {\n // Complex key, build deep object structure based on a few rules:\n // * The 'cur' pointer starts at the object top-level.\n // * [] = array push (n is set to array length), [n] = array if n is \n // numeric, otherwise object.\n // * If at the last keys part, set the value.\n // * For each keys part, if the current level is undefined create an\n // object or array based on the type of the next keys part.\n // * Move the 'cur' pointer to the next level.\n // * Rinse & repeat.\n for ( ; i <= keys_last; i++ ) {\n key = keys[i] === '' ? cur.length : keys[i];\n cur = cur[key] = i < keys_last\n ? cur[key] || ( keys[i+1] && isNaN( keys[i+1] ) ? {} : [] )\n : val;\n }\n \n } else {\n // Simple key, even simpler rules, since only scalars and shallow\n // arrays are allowed.\n \n if ( $.isArray( obj[key] ) ) {\n // val is already an array, so push on the next value.\n obj[key].push( val );\n \n } else if ( obj[key] !== undefined ) {\n // val isn't an array, but since a second value has been specified,\n // convert val into an array.\n obj[key] = [ obj[key], val ];\n \n } else {\n // val is a scalar.\n obj[key] = val;\n }\n }\n \n } else if ( key ) {\n // No value was defined, so set something meaningful.\n obj[key] = coerce\n ? undefined\n : '';\n }\n });\n \n return obj;\n };\n \n // Method: jQuery.deparam.querystring\n // \n // Parse the query string from a URL or the current window.location.href,\n // deserializing it into an object, optionally coercing numbers, booleans,\n // null and undefined values.\n // \n // Usage:\n // \n // > jQuery.deparam.querystring( [ url ] [, coerce ] );\n // \n // Arguments:\n // \n // url - (String) An optional params string or URL containing query string\n // params to be parsed. If url is omitted, the current\n // window.location.href is used.\n // coerce - (Boolean) If true, coerces any numbers or true, false, null, and\n // undefined to their actual value. Defaults to false if omitted.\n // \n // Returns:\n // \n // (Object) An object representing the deserialized params string.\n \n // Method: jQuery.deparam.fragment\n // \n // Parse the fragment (hash) from a URL or the current window.location.href,\n // deserializing it into an object, optionally coercing numbers, booleans,\n // null and undefined values.\n // \n // Usage:\n // \n // > jQuery.deparam.fragment( [ url ] [, coerce ] );\n // \n // Arguments:\n // \n // url - (String) An optional params string or URL containing fragment (hash)\n // params to be parsed. If url is omitted, the current window.location.href\n // is used.\n // coerce - (Boolean) If true, coerces any numbers or true, false, null, and\n // undefined to their actual value. Defaults to false if omitted.\n // \n // Returns:\n // \n // (Object) An object representing the deserialized params string.\n \n function jq_deparam_sub( is_fragment, url_or_params, coerce ) {\n if ( url_or_params === undefined || typeof url_or_params === 'boolean' ) {\n // url_or_params not specified.\n coerce = url_or_params;\n url_or_params = jq_param[ is_fragment ? str_fragment : str_querystring ]();\n } else {\n url_or_params = is_string( url_or_params )\n ? url_or_params.replace( is_fragment ? re_params_fragment : re_params_querystring, '' )\n : url_or_params;\n }\n \n return jq_deparam( url_or_params, coerce );\n };\n \n jq_deparam[ str_querystring ] = curry( jq_deparam_sub, 0 );\n jq_deparam[ str_fragment ] = jq_deparam_fragment = curry( jq_deparam_sub, 1 );\n \n // Section: Element manipulation\n // \n // Method: jQuery.elemUrlAttr\n // \n // Get the internal \"Default URL attribute per tag\" list, or augment the list\n // with additional tag-attribute pairs, in case the defaults are insufficient.\n // \n // In the <jQuery.fn.querystring> and <jQuery.fn.fragment> methods, this list\n // is used to determine which attribute contains the URL to be modified, if\n // an \"attr\" param is not specified.\n // \n // Default Tag-Attribute List:\n // \n // a - href\n // base - href\n // iframe - src\n // img - src\n // input - src\n // form - action\n // link - href\n // script - src\n // \n // Usage:\n // \n // > jQuery.elemUrlAttr( [ tag_attr ] );\n // \n // Arguments:\n // \n // tag_attr - (Object) An object containing a list of tag names and their\n // associated default attribute names in the format { tag: 'attr', ... } to\n // be merged into the internal tag-attribute list.\n // \n // Returns:\n // \n // (Object) An object containing all stored tag-attribute values.\n \n // Only define function and set defaults if function doesn't already exist, as\n // the urlInternal plugin will provide this method as well.\n $[ str_elemUrlAttr ] || ($[ str_elemUrlAttr ] = function( obj ) {\n return $.extend( elemUrlAttr_cache, obj );\n })({\n a: str_href,\n base: str_href,\n iframe: str_src,\n img: str_src,\n input: str_src,\n form: 'action',\n link: str_href,\n script: str_src\n });\n \n jq_elemUrlAttr = $[ str_elemUrlAttr ];\n \n // Method: jQuery.fn.querystring\n // \n // Update URL attribute in one or more elements, merging the current URL (with\n // or without pre-existing query string params) plus any params object or\n // string into a new URL, which is then set into that attribute. Like\n // <jQuery.param.querystring (build url)>, but for all elements in a jQuery\n // collection.\n // \n // Usage:\n // \n // > jQuery('selector').querystring( [ attr, ] params [, merge_mode ] );\n // \n // Arguments:\n // \n // attr - (String) Optional name of an attribute that will contain a URL to\n // merge params or url into. See <jQuery.elemUrlAttr> for a list of default\n // attributes.\n // params - (Object) A params object to be merged into the URL attribute.\n // params - (String) A URL containing query string params, or params string\n // to be merged into the URL attribute.\n // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not\n // specified, and is as-follows:\n // \n // * 0: params in the params argument will override any params in attr URL.\n // * 1: any params in attr URL will override params in the params argument.\n // * 2: params argument will completely replace any query string in attr\n // URL.\n // \n // Returns:\n // \n // (jQuery) The initial jQuery collection of elements, but with modified URL\n // attribute values.\n \n // Method: jQuery.fn.fragment\n // \n // Update URL attribute in one or more elements, merging the current URL (with\n // or without pre-existing fragment/hash params) plus any params object or\n // string into a new URL, which is then set into that attribute. Like\n // <jQuery.param.fragment (build url)>, but for all elements in a jQuery\n // collection.\n // \n // Usage:\n // \n // > jQuery('selector').fragment( [ attr, ] params [, merge_mode ] );\n // \n // Arguments:\n // \n // attr - (String) Optional name of an attribute that will contain a URL to\n // merge params into. See <jQuery.elemUrlAttr> for a list of default\n // attributes.\n // params - (Object) A params object to be merged into the URL attribute.\n // params - (String) A URL containing fragment (hash) params, or params\n // string to be merged into the URL attribute.\n // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not\n // specified, and is as-follows:\n // \n // * 0: params in the params argument will override any params in attr URL.\n // * 1: any params in attr URL will override params in the params argument.\n // * 2: params argument will completely replace any fragment (hash) in attr\n // URL.\n // \n // Returns:\n // \n // (jQuery) The initial jQuery collection of elements, but with modified URL\n // attribute values.\n \n function jq_fn_sub( mode, force_attr, params, merge_mode ) {\n if ( !is_string( params ) && typeof params !== 'object' ) {\n // force_attr not specified.\n merge_mode = params;\n params = force_attr;\n force_attr = undefined;\n }\n \n return this.each(function(){\n var that = $(this),\n \n // Get attribute specified, or default specified via $.elemUrlAttr.\n attr = force_attr || jq_elemUrlAttr()[ ( this.nodeName || '' ).toLowerCase() ] || '',\n \n // Get URL value.\n url = attr && that.attr( attr ) || '';\n \n // Update attribute with new URL.\n that.attr( attr, jq_param[ mode ]( url, params, merge_mode ) );\n });\n \n };\n \n $.fn[ str_querystring ] = curry( jq_fn_sub, str_querystring );\n $.fn[ str_fragment ] = curry( jq_fn_sub, str_fragment );\n \n // Section: History, hashchange event\n // \n // Method: jQuery.bbq.pushState\n // \n // Adds a 'state' into the browser history at the current position, setting\n // location.hash and triggering any bound <hashchange event> callbacks\n // (provided the new state is different than the previous state).\n // \n // If no arguments are passed, an empty state is created, which is just a\n // shortcut for jQuery.bbq.pushState( {}, 2 ).\n // \n // Usage:\n // \n // > jQuery.bbq.pushState( [ params [, merge_mode ] ] );\n // \n // Arguments:\n // \n // params - (String) A serialized params string or a hash string beginning\n // with # to merge into location.hash.\n // params - (Object) A params object to merge into location.hash.\n // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not\n // specified (unless a hash string beginning with # is specified, in which\n // case merge behavior defaults to 2), and is as-follows:\n // \n // * 0: params in the params argument will override any params in the\n // current state.\n // * 1: any params in the current state will override params in the params\n // argument.\n // * 2: params argument will completely replace current state.\n // \n // Returns:\n // \n // Nothing.\n // \n // Additional Notes:\n // \n // * Setting an empty state may cause the browser to scroll.\n // * Unlike the fragment and querystring methods, if a hash string beginning\n // with # is specified as the params agrument, merge_mode defaults to 2.\n \n jq_bbq.pushState = jq_bbq_pushState = function( params, merge_mode ) {\n if ( is_string( params ) && /^#/.test( params ) && merge_mode === undefined ) {\n // Params string begins with # and merge_mode not specified, so completely\n // overwrite window.location.hash.\n merge_mode = 2;\n }\n \n var has_args = params !== undefined,\n // Merge params into window.location using $.param.fragment.\n url = jq_param_fragment( location.href,\n has_args ? params : {}, has_args ? merge_mode : 2 );\n \n // Set new window.location.href. Note that Safari 3 & Chrome barf on\n // location.hash = '#' so the entire URL is set.\n location.href = url;\n };\n \n // Method: jQuery.bbq.getState\n // \n // Retrieves the current 'state' from the browser history, parsing\n // location.hash for a specific key or returning an object containing the\n // entire state, optionally coercing numbers, booleans, null and undefined\n // values.\n // \n // Usage:\n // \n // > jQuery.bbq.getState( [ key ] [, coerce ] );\n // \n // Arguments:\n // \n // key - (String) An optional state key for which to return a value.\n // coerce - (Boolean) If true, coerces any numbers or true, false, null, and\n // undefined to their actual value. Defaults to false.\n // \n // Returns:\n // \n // (Anything) If key is passed, returns the value corresponding with that key\n // in the location.hash 'state', or undefined. If not, an object\n // representing the entire 'state' is returned.\n \n jq_bbq.getState = jq_bbq_getState = function( key, coerce ) {\n return key === undefined || typeof key === 'boolean'\n ? jq_deparam_fragment( key ) // 'key' really means 'coerce' here\n : jq_deparam_fragment( coerce )[ key ];\n };\n \n // Method: jQuery.bbq.removeState\n // \n // Remove one or more keys from the current browser history 'state', creating\n // a new state, setting location.hash and triggering any bound\n // <hashchange event> callbacks (provided the new state is different than\n // the previous state).\n // \n // If no arguments are passed, an empty state is created, which is just a\n // shortcut for jQuery.bbq.pushState( {}, 2 ).\n // \n // Usage:\n // \n // > jQuery.bbq.removeState( [ key [, key ... ] ] );\n // \n // Arguments:\n // \n // key - (String) One or more key values to remove from the current state,\n // passed as individual arguments.\n // key - (Array) A single array argument that contains a list of key values\n // to remove from the current state.\n // \n // Returns:\n // \n // Nothing.\n // \n // Additional Notes:\n // \n // * Setting an empty state may cause the browser to scroll.\n \n jq_bbq.removeState = function( arr ) {\n var state = {};\n \n // If one or more arguments is passed..\n if ( arr !== undefined ) {\n \n // Get the current state.\n state = jq_bbq_getState();\n \n // For each passed key, delete the corresponding property from the current\n // state.\n $.each( $.isArray( arr ) ? arr : arguments, function(i,v){\n delete state[ v ];\n });\n }\n \n // Set the state, completely overriding any existing state.\n jq_bbq_pushState( state, 2 );\n };\n \n // Event: hashchange event (BBQ)\n // \n // Usage in jQuery 1.4 and newer:\n // \n // In jQuery 1.4 and newer, the event object passed into any hashchange event\n // callback is augmented with a copy of the location.hash fragment at the time\n // the event was triggered as its event.fragment property. In addition, the\n // event.getState method operates on this property (instead of location.hash)\n // which allows this fragment-as-a-state to be referenced later, even after\n // window.location may have changed.\n // \n // Note that event.fragment and event.getState are not defined according to\n // W3C (or any other) specification, but will still be available whether or\n // not the hashchange event exists natively in the browser, because of the\n // utility they provide.\n // \n // The event.fragment property contains the output of <jQuery.param.fragment>\n // and the event.getState method is equivalent to the <jQuery.bbq.getState>\n // method.\n // \n // > $(window).bind( 'hashchange', function( event ) {\n // > var hash_str = event.fragment,\n // > param_obj = event.getState(),\n // > param_val = event.getState( 'param_name' ),\n // > param_val_coerced = event.getState( 'param_name', true );\n // > ...\n // > });\n // \n // Usage in jQuery 1.3.2:\n // \n // In jQuery 1.3.2, the event object cannot to be augmented as in jQuery 1.4+,\n // so the fragment state isn't bound to the event object and must instead be\n // parsed using the <jQuery.param.fragment> and <jQuery.bbq.getState> methods.\n // \n // > $(window).bind( 'hashchange', function( event ) {\n // > var hash_str = $.param.fragment(),\n // > param_obj = $.bbq.getState(),\n // > param_val = $.bbq.getState( 'param_name' ),\n // > param_val_coerced = $.bbq.getState( 'param_name', true );\n // > ...\n // > });\n // \n // Additional Notes:\n // \n // * Due to changes in the special events API, jQuery BBQ v1.2 or newer is\n // required to enable the augmented event object in jQuery 1.4.2 and newer.\n // * See <jQuery hashchange event> for more detailed information.\n \n special[ str_hashchange ] = $.extend( special[ str_hashchange ], {\n \n // Augmenting the event object with the .fragment property and .getState\n // method requires jQuery 1.4 or newer. Note: with 1.3.2, everything will\n // work, but the event won't be augmented)\n add: function( handleObj ) {\n var old_handler;\n \n function new_handler(e) {\n // e.fragment is set to the value of location.hash (with any leading #\n // removed) at the time the event is triggered.\n var hash = e[ str_fragment ] = jq_param_fragment();\n \n // e.getState() works just like $.bbq.getState(), but uses the\n // e.fragment property stored on the event object.\n e.getState = function( key, coerce ) {\n return key === undefined || typeof key === 'boolean'\n ? jq_deparam( hash, key ) // 'key' really means 'coerce' here\n : jq_deparam( hash, coerce )[ key ];\n };\n \n old_handler.apply( this, arguments );\n };\n \n // This may seem a little complicated, but it normalizes the special event\n // .add method between jQuery 1.4/1.4.1 and 1.4.2+\n if ( $.isFunction( handleObj ) ) {\n // 1.4, 1.4.1\n old_handler = handleObj;\n return new_handler;\n } else {\n // 1.4.2+\n old_handler = handleObj.handler;\n handleObj.handler = new_handler;\n }\n }\n \n });\n \n})(jQuery,this);\n\n/*!\n * jQuery hashchange event - v1.3 - 7/21/2010\n * http://benalman.com/projects/jquery-hashchange-plugin/\n * \n * Copyright (c) 2010 \"Cowboy\" Ben Alman\n * Dual licensed under the MIT and GPL licenses.\n * http://benalman.com/about/license/\n */\n\n// Script: jQuery hashchange event\n//\n// *Version: 1.3, Last updated: 7/21/2010*\n// \n// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/\n// GitHub - http://github.com/cowboy/jquery-hashchange/\n// Source - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js\n// (Minified) - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (0.8kb gzipped)\n// \n// About: License\n// \n// Copyright (c) 2010 \"Cowboy\" Ben Alman,\n// Dual licensed under the MIT and GPL licenses.\n// http://benalman.com/about/license/\n// \n// About: Examples\n// \n// These working examples, complete with fully commented code, illustrate a few\n// ways in which this plugin can be used.\n// \n// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/\n// document.domain - http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/\n// \n// About: Support and Testing\n// \n// Information about what version or versions of jQuery this plugin has been\n// tested with, what browsers it has been tested in, and where the unit tests\n// reside (so you can test it yourself).\n// \n// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2\n// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5,\n// Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5.\n// Unit Tests - http://benalman.com/code/projects/jquery-hashchange/unit/\n// \n// About: Known issues\n// \n// While this jQuery hashchange event implementation is quite stable and\n// robust, there are a few unfortunate browser bugs surrounding expected\n// hashchange event-based behaviors, independent of any JavaScript\n// window.onhashchange abstraction. See the following examples for more\n// information:\n// \n// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/\n// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/\n// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/\n// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/\n// \n// Also note that should a browser natively support the window.onhashchange \n// event, but not report that it does, the fallback polling loop will be used.\n// \n// About: Release History\n// \n// 1.3 - (7/21/2010) Reorganized IE6/7 Iframe code to make it more\n// \"removable\" for mobile-only development. Added IE6/7 document.title\n// support. Attempted to make Iframe as hidden as possible by using\n// techniques from http://www.paciellogroup.com/blog/?p=604. Added \n// support for the \"shortcut\" format $(window).hashchange( fn ) and\n// $(window).hashchange() like jQuery provides for built-in events.\n// Renamed jQuery.hashchangeDelay to <jQuery.fn.hashchange.delay> and\n// lowered its default value to 50. Added <jQuery.fn.hashchange.domain>\n// and <jQuery.fn.hashchange.src> properties plus document-domain.html\n// file to address access denied issues when setting document.domain in\n// IE6/7.\n// 1.2 - (2/11/2010) Fixed a bug where coming back to a page using this plugin\n// from a page on another domain would cause an error in Safari 4. Also,\n// IE6/7 Iframe is now inserted after the body (this actually works),\n// which prevents the page from scrolling when the event is first bound.\n// Event can also now be bound before DOM ready, but it won't be usable\n// before then in IE6/7.\n// 1.1 - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug\n// where browser version is incorrectly reported as 8.0, despite\n// inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag.\n// 1.0 - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special\n// window.onhashchange functionality into a separate plugin for users\n// who want just the basic event & back button support, without all the\n// extra awesomeness that BBQ provides. This plugin will be included as\n// part of jQuery BBQ, but also be available separately.\n\n(function($,window,undefined){\n '$:nomunge'; // Used by YUI compressor.\n \n // Reused string.\n var str_hashchange = 'hashchange',\n \n // Method / object references.\n doc = document,\n fake_onhashchange,\n special = $.event.special,\n \n // Does the browser support window.onhashchange? Note that IE8 running in\n // IE7 compatibility mode reports true for 'onhashchange' in window, even\n // though the event isn't supported, so also test document.documentMode.\n doc_mode = doc.documentMode,\n supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 );\n \n // Get location.hash (or what you'd expect location.hash to be) sans any\n // leading #. Thanks for making this necessary, Firefox!\n function get_fragment( url ) {\n url = url || location.href;\n return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' );\n };\n \n // Method: jQuery.fn.hashchange\n // \n // Bind a handler to the window.onhashchange event or trigger all bound\n // window.onhashchange event handlers. This behavior is consistent with\n // jQuery's built-in event handlers.\n // \n // Usage:\n // \n // > jQuery(window).hashchange( [ handler ] );\n // \n // Arguments:\n // \n // handler - (Function) Optional handler to be bound to the hashchange\n // event. This is a \"shortcut\" for the more verbose form:\n // jQuery(window).bind( 'hashchange', handler ). If handler is omitted,\n // all bound window.onhashchange event handlers will be triggered. This\n // is a shortcut for the more verbose\n // jQuery(window).trigger( 'hashchange' ). These forms are described in\n // the <hashchange event> section.\n // \n // Returns:\n // \n // (jQuery) The initial jQuery collection of elements.\n \n // Allow the \"shortcut\" format $(elem).hashchange( fn ) for binding and\n // $(elem).hashchange() for triggering, like jQuery does for built-in events.\n $.fn[ str_hashchange ] = function( fn ) {\n return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange );\n };\n \n // Property: jQuery.fn.hashchange.delay\n // \n // The numeric interval (in milliseconds) at which the <hashchange event>\n // polling loop executes. Defaults to 50.\n \n // Property: jQuery.fn.hashchange.domain\n // \n // If you're setting document.domain in your JavaScript, and you want hash\n // history to work in IE6/7, not only must this property be set, but you must\n // also set document.domain BEFORE jQuery is loaded into the page. This\n // property is only applicable if you are supporting IE6/7 (or IE8 operating\n // in \"IE7 compatibility\" mode).\n // \n // In addition, the <jQuery.fn.hashchange.src> property must be set to the\n // path of the included \"document-domain.html\" file, which can be renamed or\n // modified if necessary (note that the document.domain specified must be the\n // same in both your main JavaScript as well as in this file).\n // \n // Usage:\n // \n // jQuery.fn.hashchange.domain = document.domain;\n \n // Property: jQuery.fn.hashchange.src\n // \n // If, for some reason, you need to specify an Iframe src file (for example,\n // when setting document.domain as in <jQuery.fn.hashchange.domain>), you can\n // do so using this property. Note that when using this property, history\n // won't be recorded in IE6/7 until the Iframe src file loads. This property\n // is only applicable if you are supporting IE6/7 (or IE8 operating in \"IE7\n // compatibility\" mode).\n // \n // Usage:\n // \n // jQuery.fn.hashchange.src = 'path/to/file.html';\n \n $.fn[ str_hashchange ].delay = 50;\n /*\n $.fn[ str_hashchange ].domain = null;\n $.fn[ str_hashchange ].src = null;\n */\n \n // Event: hashchange event\n // \n // Fired when location.hash changes. In browsers that support it, the native\n // HTML5 window.onhashchange event is used, otherwise a polling loop is\n // initialized, running every <jQuery.fn.hashchange.delay> milliseconds to\n // see if the hash has changed. In IE6/7 (and IE8 operating in \"IE7\n // compatibility\" mode), a hidden Iframe is created to allow the back button\n // and hash-based history to work.\n // \n // Usage as described in <jQuery.fn.hashchange>:\n // \n // > // Bind an event handler.\n // > jQuery(window).hashchange( function(e) {\n // > var hash = location.hash;\n // > ...\n // > });\n // > \n // > // Manually trigger the event handler.\n // > jQuery(window).hashchange();\n // \n // A more verbose usage that allows for event namespacing:\n // \n // > // Bind an event handler.\n // > jQuery(window).bind( 'hashchange', function(e) {\n // > var hash = location.hash;\n // > ...\n // > });\n // > \n // > // Manually trigger the event handler.\n // > jQuery(window).trigger( 'hashchange' );\n // \n // Additional Notes:\n // \n // * The polling loop and Iframe are not created until at least one handler\n // is actually bound to the 'hashchange' event.\n // * If you need the bound handler(s) to execute immediately, in cases where\n // a location.hash exists on page load, via bookmark or page refresh for\n // example, use jQuery(window).hashchange() or the more verbose \n // jQuery(window).trigger( 'hashchange' ).\n // * The event can be bound before DOM ready, but since it won't be usable\n // before then in IE6/7 (due to the necessary Iframe), recommended usage is\n // to bind it inside a DOM ready handler.\n \n // Override existing $.event.special.hashchange methods (allowing this plugin\n // to be defined after jQuery BBQ in BBQ's source code).\n special[ str_hashchange ] = $.extend( special[ str_hashchange ], {\n \n // Called only when the first 'hashchange' event is bound to window.\n setup: function() {\n // If window.onhashchange is supported natively, there's nothing to do..\n if ( supports_onhashchange ) { return false; }\n \n // Otherwise, we need to create our own. And we don't want to call this\n // until the user binds to the event, just in case they never do, since it\n // will create a polling loop and possibly even a hidden Iframe.\n $( fake_onhashchange.start );\n },\n \n // Called only when the last 'hashchange' event is unbound from window.\n teardown: function() {\n // If window.onhashchange is supported natively, there's nothing to do..\n if ( supports_onhashchange ) { return false; }\n \n // Otherwise, we need to stop ours (if possible).\n $( fake_onhashchange.stop );\n }\n \n });\n \n // fake_onhashchange does all the work of triggering the window.onhashchange\n // event for browsers that don't natively support it, including creating a\n // polling loop to watch for hash changes and in IE 6/7 creating a hidden\n // Iframe to enable back and forward.\n fake_onhashchange = (function(){\n var self = {},\n timeout_id,\n \n // Remember the initial hash so it doesn't get triggered immediately.\n last_hash = get_fragment(),\n \n fn_retval = function(val){ return val; },\n history_set = fn_retval,\n history_get = fn_retval;\n \n // Start the polling loop.\n self.start = function() {\n timeout_id || poll();\n };\n \n // Stop the polling loop.\n self.stop = function() {\n timeout_id && clearTimeout( timeout_id );\n timeout_id = undefined;\n };\n \n // This polling loop checks every $.fn.hashchange.delay milliseconds to see\n // if location.hash has changed, and triggers the 'hashchange' event on\n // window when necessary.\n function poll() {\n var hash = get_fragment(),\n history_hash = history_get( last_hash );\n \n if ( hash !== last_hash ) {\n history_set( last_hash = hash, history_hash );\n \n $(window).trigger( str_hashchange );\n \n } else if ( history_hash !== last_hash ) {\n location.href = location.href.replace( /#.*/, '' ) + history_hash;\n }\n \n timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay );\n };\n \n // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n // vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv\n // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n\n // snippet removed by pgbovine\n\n // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n // ^^^^^^^^^^^^^^^^^^^ REMOVE IF NOT SUPPORTING IE6/7/8 ^^^^^^^^^^^^^^^^^^^\n // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n \n return self;\n })();\n \n})(jQuery,this);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar api = __webpack_require__(2);\n var content = __webpack_require__(30);\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.i, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"/*\\n\\nOnline Python Tutor\\nhttps://github.com/pgbovine/OnlinePythonTutor/\\n\\nCopyright (C) Philip J. Guo (philip@pgbovine.net)\\n\\nPermission is hereby granted, free of charge, to any person obtaining a\\ncopy of this software and associated documentation files (the\\n\\\"Software\\\"), to deal in the Software without restriction, including\\nwithout limitation the rights to use, copy, modify, merge, publish,\\ndistribute, sublicense, and/or sell copies of the Software, and to\\npermit persons to whom the Software is furnished to do so, subject to\\nthe following conditions:\\n\\nThe above copyright notice and this permission notice shall be included\\nin all copies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\n*/\\n\\n/* Most recent color scheme redesign on 2012-08-19 */\\n\\n/* To prevent CSS namespace clashes, prefix all rules with:\\n div.ExecutionVisualizer\\n*/\\n\\n\\n/* reset some styles to nullify effects of existing stylesheets\\n e.g., http://meyerweb.com/eric/tools/css/reset/\\n*/\\ndiv.ExecutionVisualizer {\\n /* none for now */\\n}\\n\\ndiv.ExecutionVisualizer table.visualizer {\\n font-family: verdana, arial, helvetica, sans-serif;\\n font-size: 10pt;\\n margin-bottom: 10px;\\n}\\n\\ndiv.ExecutionVisualizer table.visualizer td.vizLayoutTd {\\n vertical-align: top;\\n}\\n\\ndiv.ExecutionVisualizer td#stack_td,\\ndiv.ExecutionVisualizer td#heap_td {\\n vertical-align:top;\\n font-size: 10pt; /* don't make fonts in the heap so big! */\\n}\\n\\ndiv.ExecutionVisualizer #dataViz {\\n /*margin-left: 25px;*/\\n}\\n\\ndiv.ExecutionVisualizer #selectiveHideStatus {\\n /*margin-left: 25px;*/\\n font-size: 9pt;\\n margin-bottom: 15px;\\n margin-left: 13px;\\n}\\n\\n/*\\ndiv.ExecutionVisualizer div#codeDisplayDiv {\\n width: 550px;\\n}\\n*/\\n\\ndiv.ExecutionVisualizer div#pyCodeOutputDiv {\\n /*max-width: 550px;*/\\n max-height: 460px;\\n /*max-height: 620px;*/\\n overflow: auto;\\n /*margin-bottom: 4px;*/\\n\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\ndiv.ExecutionVisualizer table#pyCodeOutput {\\n font-family: Andale mono, monospace;\\n /*font-size:12pt;*/\\n font-size:11pt;\\n line-height:1.1em;\\n\\n border-collapse: separate; /* some crazy CSS voodoo that needs to be\\n there so that SVG arrows to the left\\n of the code line up vertically in Chrome */\\n border-spacing: 0px;\\n border-top: 1px solid #bbb;\\n padding-top: 3px;\\n border-bottom: 1px solid #bbb;\\n /*margin-top: 6px;*/\\n margin: 6px auto; /* Center code in its pane */\\n}\\n\\n/* don't wrap lines within code output ... FORCE scrollbars to appear */\\ndiv.ExecutionVisualizer table#pyCodeOutput td {\\n white-space: nowrap;\\n vertical-align: middle; /* explicitly force, to override external CSS conflicts */\\n}\\n\\ndiv.ExecutionVisualizer #leftCodeGutterSVG {\\n width: 18px;\\n min-width: 18px; /* make sure it doesn't squash too thin */\\n height: 0px; /* programmatically set this later ... IE needs this to\\n be 0 or it defaults to something arbitrary and gross */\\n}\\n\\ndiv.ExecutionVisualizer #prevLegendArrowSVG,\\ndiv.ExecutionVisualizer #curLegendArrowSVG {\\n width: 18px;\\n height: 10px;\\n}\\n\\ndiv.ExecutionVisualizer .arrow {\\n font-size: 16pt;\\n}\\n\\ndiv.ExecutionVisualizer table#pyCodeOutput .lineNo {\\n color: #aaa;\\n padding: 0.2em;\\n padding-left: 0.3em;\\n padding-right: 0.5em;\\n text-align: right;\\n}\\n\\ndiv.ExecutionVisualizer table#pyCodeOutput .cod {\\n /*font-weight: bold;*/\\n margin-left: 3px;\\n padding-left: 7px;\\n text-align: left; /* necessary or else doesn't work properly in IE */\\n}\\n\\ndiv.ExecutionVisualizer div#progOutputs {\\n margin-left: 13px; /* line up with heap visualizations */\\n margin-bottom: 3px;\\n}\\n\\ndiv.ExecutionVisualizer div#legendDiv {\\n padding: 0px;\\n text-align: left;\\n color: #666;\\n font-size: 9pt;\\n}\\n\\ndiv.ExecutionVisualizer div#editCodeLinkDiv {\\n text-align: center;\\n /*\\n margin-top: 12px;\\n margin-bottom: 4px;\\n */\\n margin: 8px auto;\\n font-size: 11pt;\\n}\\n\\ndiv.ExecutionVisualizer div#annotateLinkDiv {\\n /*text-align: left;*/\\n margin-top: 0px;\\n margin-bottom: 12px;\\n /*\\n margin-left: auto;\\n margin-right: auto;\\n */\\n}\\n\\ndiv.ExecutionVisualizer div#stepAnnotationDiv {\\n margin-bottom: 12px;\\n}\\n\\ndiv.ExecutionVisualizer textarea#stepAnnotationEditor,\\ndiv.ExecutionVisualizer textarea#vizTitleEditor,\\ndiv.ExecutionVisualizer textarea#vizDescriptionEditor {\\n border: 1px solid #999999;\\n padding: 4px;\\n\\n overflow: auto; /* to look pretty on IE */\\n /* make sure textarea doesn't grow and stretch */\\n resize: none;\\n}\\n\\n\\ndiv.ExecutionVisualizer #errorOutput {\\n color: #e93f34; /* should match brightRed JavaScript variable */\\n font-size: 11pt;\\n padding-top: 2px;\\n line-height: 1.5em;\\n margin-bottom: 4px;\\n}\\n\\n/* VCR control buttons for stepping through execution */\\n\\ndiv.ExecutionVisualizer #vcrControls {\\n margin-top: 15px;\\n margin-bottom: 6px;\\n /*width: 100%;*/\\n text-align: center;\\n}\\n\\ndiv.ExecutionVisualizer #vcrControls button {\\n margin-left: 2px;\\n margin-right: 2px;\\n}\\n\\ndiv.ExecutionVisualizer #curInstr {\\n text-align: center;\\n}\\n\\ndiv.ExecutionVisualizer #pyStdout {\\n border: 1px solid #999999;\\n font-size: 10pt;\\n padding: 3px;\\n font-family: Andale mono, monospace;\\n\\n overflow: auto; /* to look pretty on IE */\\n /* make sure textarea doesn't grow and stretch */\\n resize: none;\\n}\\n\\n\\ndiv.ExecutionVisualizer .vizFrame {\\n margin-bottom: 20px;\\n padding-left: 8px;\\n border-left: 2px solid #cccccc;\\n}\\n\\n\\n/* Rendering of primitive types */\\n\\ndiv.ExecutionVisualizer .importedObj {\\n font-size: 8pt;\\n}\\n\\ndiv.ExecutionVisualizer .nullObj {\\n/* font-size: 8pt; */\\n}\\n\\ndiv.ExecutionVisualizer .stringObj,\\ndiv.ExecutionVisualizer .customObj,\\ndiv.ExecutionVisualizer .funcObj {\\n font-family: Andale mono, monospace;\\n white-space: nowrap;\\n}\\n\\ndiv.ExecutionVisualizer .funcCode {\\n font-size: 8pt;\\n}\\n\\ndiv.ExecutionVisualizer .retval {\\n font-size: 9pt;\\n}\\n\\ndiv.ExecutionVisualizer .stackFrame .retval {\\n color: #e93f34; /* highlight non-zombie stack frame return values -\\n should match brightRed JavaScript variable */\\n}\\n\\n/* Rendering of basic compound types */\\n\\ndiv.ExecutionVisualizer table.listTbl,\\ndiv.ExecutionVisualizer table.tupleTbl,\\ndiv.ExecutionVisualizer table.setTbl {\\n background-color: #ffffc6;\\n}\\n\\n\\ndiv.ExecutionVisualizer table.listTbl {\\n border: 0px solid black;\\n border-spacing: 0px;\\n}\\n\\ndiv.ExecutionVisualizer table.listTbl td.listHeader,\\ndiv.ExecutionVisualizer table.tupleTbl td.tupleHeader {\\n padding-left: 4px;\\n padding-top: 2px;\\n padding-bottom: 3px;\\n font-size: 8pt;\\n color: #777;\\n text-align: left;\\n border-left: 1px solid #555555;\\n}\\n\\ndiv.ExecutionVisualizer table.tupleTbl {\\n border-spacing: 0px;\\n color: black;\\n\\n border-bottom: 1px solid #555555; /* must match td.tupleHeader border */\\n border-top: 1px solid #555555; /* must match td.tupleHeader border */\\n border-right: 1px solid #555555; /* must match td.tupleHeader border */\\n}\\n\\n\\ndiv.ExecutionVisualizer table.listTbl td.listElt {\\n border-bottom: 1px solid #555555; /* must match td.listHeader border */\\n border-left: 1px solid #555555; /* must match td.listHeader border */\\n}\\n\\n\\n/* for C and C++ visualizations */\\n\\n/* make this slightly more compact than listTbl since arrays can be\\n rendered on the stack so we want to kinda conserve space */\\ndiv.ExecutionVisualizer table.cArrayTbl {\\n background-color: #ffffc6;\\n padding-left: 0px;\\n padding-top: 0px;\\n padding-bottom: 0px;\\n font-size: 8pt;\\n color: #777;\\n text-align: left;\\n border: 0px solid black;\\n border-spacing: 0px;\\n}\\n\\ndiv.ExecutionVisualizer table.cArrayTbl td.cArrayHeader {\\n padding-left: 5px;\\n padding-top: 0px;\\n padding-bottom: 2px;\\n font-size: 6pt;\\n color: #777;\\n text-align: left;\\n border-bottom: 0px solid black; /* override whatever we're nested in */\\n}\\n\\ndiv.ExecutionVisualizer table.cArrayTbl td.cArrayElt {\\n border-bottom: 1px solid #888;\\n border-left: 1px solid #888;\\n border-top: 0px solid black;\\n color: black;\\n\\n padding-top: 2px;\\n padding-bottom: 4px;\\n padding-left: 5px;\\n padding-right: 4px;\\n vertical-align: bottom;\\n}\\n\\ndiv.ExecutionVisualizer table.cArrayTbl td.cMultidimArrayHeader {\\n padding-left: 5px;\\n padding-right: 5px;\\n padding-top: 1px;\\n padding-bottom: 3px;\\n font-size: 6pt;\\n color: #777;\\n text-align: left;\\n border-top: 1px solid #888;\\n border-left: 1px solid #888;\\n border-bottom: 0px solid black; /* override whatever we're nested in */\\n}\\n\\ndiv.ExecutionVisualizer table.cArrayTbl td.cMultidimArrayElt {\\n border-left: 1px solid #888;\\n color: black;\\n padding-top: 1px;\\n padding-bottom: 4px;\\n padding-left: 5px;\\n padding-right: 5px;\\n vertical-align: bottom;\\n}\\n\\n\\ndiv.ExecutionVisualizer .cdataHeader {\\n font-size: 6pt;\\n color: #555;\\n padding-bottom: 2px;\\n}\\n\\ndiv.ExecutionVisualizer .cdataElt {\\n font-size: 10pt;\\n}\\n\\ndiv.ExecutionVisualizer .cdataUninit {\\n color: #888;\\n}\\n\\n\\ndiv.ExecutionVisualizer table.tupleTbl td.tupleElt {\\n border-left: 1px solid #555555; /* must match td.tupleHeader border */\\n}\\n\\ndiv.ExecutionVisualizer table.customObjTbl {\\n background-color: white;\\n color: black;\\n border: 1px solid black;\\n}\\n\\ndiv.ExecutionVisualizer table.customObjTbl td.customObjElt {\\n padding: 5px;\\n font-size: 9pt; /* make this smaller */\\n}\\n\\ndiv.ExecutionVisualizer table.listTbl td.listElt,\\ndiv.ExecutionVisualizer table.tupleTbl td.tupleElt {\\n padding-top: 0px;\\n padding-bottom: 8px;\\n padding-left: 10px;\\n padding-right: 10px;\\n vertical-align: bottom;\\n}\\n\\ndiv.ExecutionVisualizer table.setTbl {\\n border: 1px solid #555555;\\n border-spacing: 0px;\\n text-align: center;\\n}\\n\\ndiv.ExecutionVisualizer table.setTbl td.setElt {\\n padding: 8px;\\n}\\n\\n\\ndiv.ExecutionVisualizer table.dictTbl,\\ndiv.ExecutionVisualizer table.instTbl,\\ndiv.ExecutionVisualizer table.classTbl {\\n border-spacing: 1px;\\n}\\n\\ndiv.ExecutionVisualizer table.dictTbl td.dictKey,\\ndiv.ExecutionVisualizer table.instTbl td.instKey,\\ndiv.ExecutionVisualizer table.classTbl td.classKey {\\n background-color: #faebbf;\\n}\\n\\ndiv.ExecutionVisualizer table.dictTbl td.dictVal,\\ndiv.ExecutionVisualizer table.instTbl td.instVal,\\ndiv.ExecutionVisualizer table.classTbl td.classVal,\\ndiv.ExecutionVisualizer td.funcCod {\\n background-color: #ffffc6;\\n}\\n\\n\\ndiv.ExecutionVisualizer table.dictTbl td.dictKey,\\ndiv.ExecutionVisualizer table.instTbl td.instKey,\\ndiv.ExecutionVisualizer table.classTbl td.classKey {\\n padding-top: 6px /*15px*/;\\n padding-bottom: 6px;\\n padding-left: 10px;\\n padding-right: 4px;\\n\\n text-align: right;\\n}\\n\\ndiv.ExecutionVisualizer table.dictTbl td.dictVal,\\ndiv.ExecutionVisualizer table.instTbl td.instVal,\\ndiv.ExecutionVisualizer table.classTbl td.classVal {\\n padding-top: 6px; /*15px*/;\\n padding-bottom: 6px;\\n padding-right: 10px;\\n padding-left: 4px;\\n}\\n\\ndiv.ExecutionVisualizer td.funcCod {\\n padding-left: 4px;\\n}\\n\\ndiv.ExecutionVisualizer table.classTbl td,\\ndiv.ExecutionVisualizer table.instTbl td {\\n border-bottom: 1px #888 solid;\\n}\\n\\ndiv.ExecutionVisualizer table.classTbl td.classVal,\\ndiv.ExecutionVisualizer table.instTbl td.instVal {\\n border-left: 1px #888 solid;\\n}\\n\\ndiv.ExecutionVisualizer table.classTbl,\\ndiv.ExecutionVisualizer table.funcTbl {\\n border-collapse: collapse;\\n border: 1px #888 solid;\\n}\\n\\n/* only add a border to dicts if they're embedded within another object */\\ndiv.ExecutionVisualizer td.listElt table.dictTbl,\\ndiv.ExecutionVisualizer td.tupleElt table.dictTbl,\\ndiv.ExecutionVisualizer td.dictVal table.dictTbl,\\ndiv.ExecutionVisualizer td.instVal table.dictTbl,\\ndiv.ExecutionVisualizer td.classVal table.dictTbl {\\n border: 1px #888 solid;\\n}\\n\\ndiv.ExecutionVisualizer .objectIdLabel {\\n font-size: 8pt;\\n color: #444;\\n margin-bottom: 2px;\\n}\\n\\ndiv.ExecutionVisualizer .typeLabel {\\n font-size: 8pt;\\n color: #555;\\n margin-bottom: 2px;\\n}\\n\\ndiv.ExecutionVisualizer div#stack,\\ndiv.ExecutionVisualizer div#globals_area {\\n padding-left: 10px;\\n padding-right: 30px;\\n\\n /* no longer necessary ... */\\n /*float: left;*/\\n /* border-right: 1px dashed #bbbbbb; */\\n}\\n\\ndiv.ExecutionVisualizer div.stackFrame,\\ndiv.ExecutionVisualizer div.zombieStackFrame {\\n background-color: #ffffff;\\n margin-bottom: 15px;\\n padding: 2px;\\n padding-left: 6px;\\n padding-right: 6px;\\n padding-bottom: 4px;\\n font-size: 10pt;\\n}\\n\\ndiv.ExecutionVisualizer div.zombieStackFrame {\\n border-left: 1px dotted #aaa;\\n /*color: #c0c0c0;*/\\n color: #a0a0a0;\\n}\\n\\ndiv.ExecutionVisualizer div.highlightedStackFrame {\\n background-color: #e2ebf6;\\n /*background-color: #d7e7fb;*/\\n\\n /*background-color: #c0daf8;*/\\n /*background-color: #9eeaff #c5dfea;*/\\n}\\n\\ndiv.ExecutionVisualizer div.stackFrame,\\ndiv.ExecutionVisualizer div.highlightedStackFrame {\\n border-left: 1px solid #a6b3b6;\\n}\\n\\n\\ndiv.ExecutionVisualizer div.stackFrameHeader {\\n font-family: Andale mono, monospace;\\n font-size: 10pt;\\n margin-top: 4px;\\n margin-bottom: 3px;\\n white-space: nowrap;\\n}\\n\\ndiv.ExecutionVisualizer td.stackFrameVar {\\n text-align: right;\\n padding-right: 8px;\\n padding-top: 3px;\\n padding-bottom: 3px;\\n}\\n\\ndiv.ExecutionVisualizer td.stackFrameValue {\\n text-align: left;\\n border-bottom: 1px solid #aaaaaa;\\n border-left: 1px solid #aaaaaa;\\n\\n vertical-align: middle;\\n\\n padding-top: 3px;\\n padding-left: 3px;\\n padding-bottom: 3px;\\n}\\n\\ndiv.ExecutionVisualizer .stackFrameVarTable tr {\\n\\n}\\n\\ndiv.ExecutionVisualizer .stackFrameVarTable {\\n text-align: right;\\n padding-top: 3px;\\n\\n /* right-align the table */\\n margin-left: auto;\\n margin-right: 0px;\\n\\n /* hack to counteract possible nasty CSS reset styles from parent divs */\\n border-collapse: separate;\\n border-spacing: 2px;\\n}\\n\\ndiv.ExecutionVisualizer div#heap {\\n float: left;\\n padding-left: 30px;\\n}\\n\\ndiv.ExecutionVisualizer td.toplevelHeapObject {\\n /* needed for d3 to do transitions */\\n padding-left: 8px;\\n padding-right: 8px;\\n padding-top: 4px;\\n padding-bottom: 4px;\\n /*\\n border: 2px dotted white;\\n border-color: white;\\n */\\n}\\n\\ndiv.ExecutionVisualizer table.heapRow {\\n margin-bottom: 10px;\\n}\\n\\ndiv.ExecutionVisualizer div.heapObject {\\n padding-left: 2px; /* leave a TINY amount of room for connector endpoints */\\n}\\n\\ndiv.ExecutionVisualizer div.heapPrimitive {\\n padding-left: 4px; /* leave some more room for connector endpoints */\\n}\\n\\ndiv.ExecutionVisualizer div#stackHeader {\\n margin-bottom: 15px;\\n text-align: right;\\n}\\n\\ndiv.ExecutionVisualizer div#heapHeader {\\n /*margin-top: 2px;\\n margin-bottom: 13px;*/\\n margin-bottom: 15px;\\n}\\n\\ndiv.ExecutionVisualizer div#langDisplayDiv {\\n text-align: center;\\n margin-top: 2pt;\\n margin-bottom: 3pt;\\n}\\n\\ndiv.ExecutionVisualizer div#langDisplayDiv,\\ndiv.ExecutionVisualizer div#stackHeader,\\ndiv.ExecutionVisualizer div#heapHeader {\\n color: #333333;\\n font-size: 10pt;\\n}\\n\\ndiv.ExecutionVisualizer #executionSlider {\\n /* if you set 'width', then it looks ugly when you dynamically resize */\\n margin-top: 15px;\\n margin-bottom: 5px;\\n\\n /* DON'T center this, since we need breakpoints in executionSliderFooter to be well aligned */\\n width: 98%;\\n}\\n\\ndiv.ExecutionVisualizer #executionSliderCaption {\\n font-size: 8pt;\\n color: #666666;\\n margin-top: 15px;\\n}\\n\\ndiv.ExecutionVisualizer #executionSliderFooter {\\n margin-top: -7px; /* make it butt up against #executionSlider */\\n}\\n\\ndiv.ExecutionVisualizer #codeFooterDocs,\\ndiv.ExecutionVisualizer #printOutputDocs {\\n margin-bottom: 3px;\\n font-size: 8pt;\\n color: #666;\\n}\\n\\ndiv.ExecutionVisualizer #codeFooterDocs {\\n margin-top: 5px;\\n margin-bottom: 12px;\\n width: 95%;\\n}\\n\\n/* darken slider handle a bit */\\ndiv.ExecutionVisualizer .ui-slider .ui-slider-handle {\\n border: 1px solid #999;\\n}\\n\\n\\n/* for annotation bubbles */\\n\\n/* For styling tricks, see: http://css-tricks.com/textarea-tricks/ */\\ntextarea.bubbleInputText {\\n border: 1px solid #ccc;\\n outline: none;\\n overflow: auto; /* to look pretty on IE */\\n\\n /* make sure textarea doesn't grow and stretch the enclosing bubble */\\n resize: none;\\n width: 225px;\\n max-width: 225px;\\n height: 35px;\\n max-height: 35px;\\n}\\n\\ndiv.ExecutionVisualizer .annotationText,\\ndiv.ExecutionVisualizer .vizDescriptionText {\\n font-family: verdana, arial, helvetica, sans-serif;\\n font-size: 11pt;\\n line-height: 1.5em;\\n}\\n\\ndiv.ExecutionVisualizer .vizTitleText {\\n font-family: verdana, arial, helvetica, sans-serif;\\n font-size: 16pt;\\n margin-bottom: 12pt;\\n}\\n\\ndiv.ExecutionVisualizer div#vizHeader {\\n margin-bottom: 10px;\\n width: 700px;\\n max-width: 700px;\\n}\\n\\n/* prev then curr, so curr gets precedence when both apply */\\ndiv.ExecutionVisualizer .highlight-prev {\\n background-color: #F0F0EA;\\n}\\n\\ndiv.ExecutionVisualizer .highlight-cur {\\n background-color: #FFFF66;\\n}\\n\\ndiv.ExecutionVisualizer .highlight-legend {\\n padding: 2px;\\n}\\n\\n/* resizing sliders from David Pritchard */\\n.ui-resizable-e {\\n background-color: #dddddd;\\n width: 1px;\\n border: 3px solid white;\\n}\\n\\n.ui-resizable-e:hover {\\n border-color: #dddddd;\\n}\\n\\ndiv.ExecutionVisualizer a,\\ndiv.ExecutionVisualizer a:visited,\\ndiv.ExecutionVisualizer a:hover {\\n color: #3D58A2;\\n}\\n\\ndiv.ExecutionVisualizer div#rawUserInputDiv {\\n padding: 5px;\\n width: 95%;\\n margin: 5px auto;\\n text-align: center;\\n border: 1px #e93f34 solid;\\n}\\n\\n/* for pyCrazyMode */\\n\\n/* prev then curr, so curr gets precedence when both apply */\\ndiv.ExecutionVisualizer .pycrazy-highlight-prev {\\n background-color: #eeeeee; /*#F0F0EA;*/\\n /*\\n text-decoration: none;\\n border-bottom: 1px solid #dddddd;\\n */\\n}\\n\\ndiv.ExecutionVisualizer .pycrazy-highlight-cur {\\n background-color: #FFFF66;\\n /* aligned slightly higher than border-bottom */\\n /*\\n text-decoration: none;\\n border-bottom: 1px solid #e93f34;\\n */\\n}\\n\\ndiv.ExecutionVisualizer .pycrazy-highlight-prev-and-cur {\\n background-color: #FFFF66;\\n\\n text-decoration: none;\\n border-bottom: 1px solid #999999;\\n}\\n\\n\\n#optTabularView thead.stepTableThead {\\n background-color: #bbb;\\n}\\n\\n#optTabularView tbody.stepTableTbody {\\n}\\n\\n#optTabularView td.stepTableTd {\\n padding: 3px 10px;\\n}\\n\\n#uiControlsPane {\\n font-size: 8pt;\\n}\\n\\n\\n/* BEGIN Java frontend by David Pritchard and Will Gwozdz */\\n\\n/* stack and queue css by Will Gwozdz */\\ndiv.ExecutionVisualizer table.queueTbl,\\ndiv.ExecutionVisualizer table.stackTbl {\\n background-color: #ffffc6;\\n}\\n\\ndiv.ExecutionVisualizer table.queueTbl,\\ndiv.ExecutionVisualizer table.stackTbl {\\n border: 0px solid black;\\n border-spacing: 0px;\\n}\\n\\ndiv.ExecutionVisualizer table.stackTbl td.stackElt,\\ndiv.ExecutionVisualizer table.queueTbl td.queueElt {\\n padding-left: 8px;\\n padding-right: 8px;\\n padding-top: 2px;\\n padding-bottom: 3px;\\n border-top: 1px solid #555555;\\n border-bottom: 1px solid #555555;\\n border-left: 1px dashed #555555;\\n}\\n\\ndiv.ExecutionVisualizer table.stackTbl td.stackFElt,\\ndiv.ExecutionVisualizer table.queueTbl td.queueFElt {\\n background-color: white;\\n border-top: 1px solid #555555;\\n border-bottom: 1px solid #555555;\\n}\\n\\ndiv.ExecutionVisualizer table.stackTbl td.stackLElt {\\n background-color: white;\\n border-left: 1px solid #555555;\\n}\\n\\ndiv.ExecutionVisualizer table.queueTbl td.queueLElt {\\n background-color: white;\\n border-top: 1px solid#555555;\\n border-bottom: 1px solid #555555;\\n border-left: 1px dashed #555555;\\n}\\n\\n/* This ensures a border is drawn around a dict\\n if its nested in another object. */\\ndiv.ExecutionVisualizer td.stackElt table.dictTbl,\\ndiv.ExecutionVisualizer td.stackLElt table.dictTbl,\\ndiv.ExecutionVisualizer td.stackFElt table.dictTbl,\\ndiv.ExecutionVisualizer td.queueElt table.dictTbl,\\ndiv.ExecutionVisualizer td.queueLElt table.dictTbl,\\ndiv.ExecutionVisualizer td.queueFElt table.dictTbl {\\n border: 1px #888 solid;\\n}\\n\\n.symbolic {\\n font-size: 18pt;\\n}\\n\\n/* END Java frontend by David Pritchard and Will Gwozdz */\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n/***/ }),\n/* 31 */,\n/* 32 */,\n/* 33 */,\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */,\n/* 49 */,\n/* 50 */,\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */,\n/* 58 */,\n/* 59 */,\n/* 60 */,\n/* 61 */,\n/* 62 */,\n/* 63 */,\n/* 64 */,\n/* 65 */,\n/* 66 */,\n/* 67 */,\n/* 68 */,\n/* 69 */,\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\n// Python Tutor: https://github.com/pgbovine/OnlinePythonTutor/\n// Copyright (C) Philip Guo (philip@pgbovine.net)\n// LICENSE: https://github.com/pgbovine/OnlinePythonTutor/blob/master/LICENSE.txt\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// see ../pytutor-embed-demo.html for how to use this file\nvar pytutor_1 = __webpack_require__(4);\nvar allVisualizers = [];\nfunction redrawAllVisualizerArrows() {\n $.each(allVisualizers, function (i, v) {\n //console.log(\"redrawConnectors:\", v);\n v.redrawConnectors();\n });\n //console.log(\"DONE redrawAllVisualizerArrows\");\n}\n// creates a ExecutionVisualizer representing trace and adds it to page at divId\n// returns the newly-created ExecutionVisualizer object\nfunction addVisualizerToPage(trace, divId, params) {\n if (!params) {\n params = {};\n }\n if (params.embeddedMode === undefined) {\n params.embeddedMode = true;\n }\n if (params.editCodeBaseURL === undefined) {\n params.editCodeBaseURL = 'http://pythontutor.com/visualize.html';\n }\n // When some div in your webpage (such as a visualizer div) expands in height,\n // it will \"push down\" all divs below it, but the SVG arrows rendered by\n // jsPlumb WILL NOT MOVE. Thus, they will be in the incorrect location unless\n // you call redrawAllConnectors().\n //\n // We use the \"heightChangeCallback\" optional parameter to force redraw\n // of all SVG arrows of ALL visualizers, whenever the height of one changes.\n //\n // Alternatively, here is one jQuery plugin that you can use to detect\n // div height changes: http://benalman.com/projects/jquery-resize-plugin/\n //\n // A related trick you can implement is to make a div never shrink in height\n // once it's grown; that way, you can avoid lots of jarring jumps and\n // (inefficient) redraws.\n params.heightChangeCallback = redrawAllVisualizerArrows;\n var ret = new pytutor_1.ExecutionVisualizer(divId, trace, params);\n allVisualizers.push(ret);\n redrawAllVisualizerArrows();\n // Call redrawConnectors() on all visualizers whenever the window is resized,\n // since HTML elements might have moved during a resize. The SVG arrows rendered\n // by jsPlumb don't automatically get re-drawn in their new positions unless\n // redrawConnectors() is called.\n //\n // detach the handler first so that we don't have redundant multiple handlers:\n $(window).off('resize').resize(redrawAllVisualizerArrows);\n return ret;\n}\n// loads trace from a JSON-formatted file and then adds it to the page in divId;\n// returns the newly-created ExecutionVisualizer object\nfunction createVisualizerFromJSON(jsonURL, divId, params) {\n if (params === void 0) { params = undefined; }\n $.get(jsonURL, {}, function (trace) {\n //console.log(trace);\n addVisualizerToPage(trace, divId, params);\n }, 'json');\n}\n// looks for all div.pytutorVisualizer on the current page, extracts\n// data-tracefile and data-params attributes from each, and then populates\n// each one using createVisualizerFromJSON()\nfunction createAllVisualizersFromHtmlAttrs() {\n //console.log('createAllVisualizersFromHtmlAttrs');\n $('div.pytutorVisualizer').each(function (i, e) {\n var jsonURL = $(e).attr('data-tracefile');\n var divId = $(e).attr('id');\n var paramsText = $(e).attr('data-params');\n //console.log(jsonURL, divId, paramsText);\n try {\n var params = JSON.parse(paramsText);\n createVisualizerFromJSON(jsonURL, divId, params);\n }\n catch (err) {\n createVisualizerFromJSON(jsonURL, divId); // ignore params if we can't parse it\n }\n });\n}\n// export globally -- hacky!!!\nwindow.addVisualizerToPage = addVisualizerToPage;\nwindow.createVisualizerFromJSON = createVisualizerFromJSON;\nwindow.createAllVisualizersFromHtmlAttrs = createAllVisualizersFromHtmlAttrs;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ })\n/******/ ]);"],"names":["modules","installedModules","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_AMD_DEFINE_RESULT__","a","b","document","Error","window","this","e","getPrototypeOf","f","slice","g","concat","h","push","indexOf","j","k","toString","createElement","text","head","appendChild","parentNode","removeChild","q","r","fn","init","t","u","v","toUpperCase","w","length","type","isWindow","jquery","constructor","toArray","pushStack","merge","prevObject","each","map","apply","arguments","first","eq","last","end","sort","splice","extend","isFunction","isPlainObject","isArray","expando","Math","random","replace","isReady","error","noop","Array","isNumeric","isNaN","parseFloat","isEmptyObject","globalEval","camelCase","nodeName","toLowerCase","trim","makeArray","inArray","grep","guid","proxy","now","Date","support","Symbol","iterator","split","x","y","ha","z","A","B","C","D","E","pop","F","G","H","I","J","K","L","M","N","O","RegExp","P","Q","R","S","T","U","V","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","W","X","Y","Z","$","_","aa","String","fromCharCode","ba","ca","charCodeAt","da","ea","ta","disabled","dir","next","childNodes","nodeType","fa","ga","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","sa","join","qa","querySelectorAll","removeAttribute","cacheLength","shift","ia","ja","ka","attrHandle","la","sourceIndex","nextSibling","ma","na","oa","isDisabled","pa","isXML","documentElement","setDocument","defaultView","top","addEventListener","attachEvent","attributes","className","createComment","getById","getElementsByName","find","filter","getAttributeNode","value","innerHTML","matchesSelector","matches","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","contains","sortDetached","unshift","attr","specified","escape","uniqueSort","detectDuplicates","sortStable","getText","textContent","firstChild","nodeValue","selectors","createPseudo","match","relative","preFilter","lastChild","uniqueID","pseudos","setFilters","not","has","innerText","lang","target","location","hash","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","parent","header","input","button","even","odd","lt","gt","nth","radio","checkbox","file","password","image","submit","reset","ra","ua","wa","xa","va","ya","za","filters","tokenize","compile","selector","select","defaultValue","expr","unique","isXMLDoc","escapeSelector","is","parseHTML","ready","children","contents","prev","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","reverse","promise","done","fail","then","Callbacks","once","stopOnFalse","memory","remove","disable","lock","locked","fireWith","fire","fired","Deferred","state","always","pipe","progress","notify","resolve","reject","TypeError","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","when","console","warn","message","stack","removeEventListener","readyWait","holdReady","readyState","doScroll","uid","cache","set","access","hasData","JSON","parse","data","removeData","_data","_removeData","queue","dequeue","_queueHooks","stop","clearQueue","source","style","display","css","cur","cssNumber","unit","start","body","show","hide","toggle","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","createDocumentFragment","htmlPrefilter","createTextNode","checkClone","cloneNode","noCloneChecked","off","event","global","handler","events","handle","triggered","dispatch","special","delegateType","bindType","origType","namespace","delegateCount","setup","teardown","removeEvent","fix","delegateTarget","preDispatch","handlers","isPropagationStopped","currentTarget","elem","isImmediatePropagationStopped","rnamespace","handleObj","result","preventDefault","stopPropagation","postDispatch","addProp","Event","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","key","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","on","one","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","html","clone","src","_evalUrl","Ia","cleanData","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","Ja","Ka","La","opener","getComputedStyle","Ma","getPropertyValue","pixelMarginRight","width","minWidth","maxWidth","Na","cssText","marginLeft","marginRight","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","reliableMarginLeft","Oa","Pa","position","visibility","Qa","letterSpacing","fontWeight","Ra","Sa","Ta","Ua","max","Va","Wa","getClientRects","getBoundingClientRect","Xa","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","isFinite","left","margin","padding","border","expand","Tween","prop","easing","options","propHooks","run","duration","pos","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","Ya","Za","$a","_a","ab","requestAnimationFrame","tick","bb","cb","height","db","gb","tweeners","prefilters","startTime","tweens","props","opts","specialEasing","originalProperties","originalOptions","createTween","fb","timer","anim","complete","Animation","tweener","unqueued","overflow","overflowX","overflowY","hidden","prefilter","speed","speeds","old","fadeTo","animate","finish","timers","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","cancelAnimationFrame","clearInterval","slow","fast","delay","clearTimeout","checkOn","optSelected","radioValue","hb","ib","removeAttr","attrHooks","jb","kb","removeProp","propFix","parseInt","lb","mb","addClass","removeClass","toggleClass","hasClass","nb","ob","val","valHooks","pb","isTrigger","parentWindow","simulate","triggerHandler","hover","focusin","qb","rb","sb","parseXML","DOMParser","parseFromString","tb","ub","vb","wb","xb","param","encodeURIComponent","serialize","serializeArray","yb","zb","Ab","Bb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","dataTypes","Lb","ajaxSettings","flatOptions","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","xml","json","responseFields","converters","context","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","statusCode","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","method","dataType","crossDomain","host","traditional","hasContent","ifModified","headers","beforeSend","success","timeout","send","Mb","dataFilter","Nb","statusText","getJSON","getScript","wrapAll","firstElementChild","wrapInner","wrap","unwrap","visible","offsetWidth","offsetHeight","xhr","XMLHttpRequest","Ob","Pb","cors","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","response","script","charset","scriptCharset","Qb","Rb","Sb","jsonp","jsonpCallback","createHTMLDocument","implementation","animated","offset","setOffset","using","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","scrollTo","Height","Width","content","bind","unbind","delegate","undelegate","parseJSON","undefined","Tb","jQuery","Ub","noConflict","memo","getTarget","styleTarget","querySelector","HTMLIFrameElement","stylesInDom","getIndexByIdentifier","identifier","modulesToDom","list","idCountMap","identifiers","item","base","count","obj","media","sourceMap","references","updater","addStyle","insertStyleElement","nonce","nc","keys","forEach","insert","textStore","replaceText","replacement","Boolean","applyToSingletonTag","styleSheet","cssNode","applyToTag","btoa","unescape","stringify","singleton","singletonCounter","update","styleIndex","removeStyleElement","newObj","all","atob","lastIdentifiers","newList","newLastIdentifiers","_i","_index","__webpack_require__","useSourceMap","base64","cssMapping","sourceMapping","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","footer_html_1","SVG_ARROW_POLYGON","brightRed","connectorBaseColor","connectorHighlightColor","connectorInactiveColor","errorColor","breakpointColor","darkArrowColor","lightArrowColor","heapPtrSrcRE","multiplyLists","ret","elt","varlistToHtml","lst","htmlspecialchars","processHideString","newlineAllRegex","doubleQuoteAllRegex","tabAllRegex","ExecutionVisualizer","domRootID","dat","params","codeOutputLines","curInstr","pytutor_hooks","instrLimitReached","hasRendered","breakpoints","d3","sortedBreakpointsList","curInputCode","code","rtrim","curTrace","trace","lastEntry","promptForUserInput","userInputPromptStr","prompt","promptForMouseInput","instrLimitReachedWarningMsg","exception_msg","visualizerIdOverride","visualizerID","curVisualizerID","assert","disableHeapNesting","drawParentPointers","textualMemoryLabels","showAllFrameLabels","alwaysNestTypes","DEFAULT_ALWAYS_NEST_TYPES","tmpRoot","tmpRootD3","domRoot","domRootD3","activateJavaFrontend","lines","cod","lineNumber","executionPoints","breakpointHere","line","breakpointInComment","toks","addToBreakpoints","try_hook","myViz","render","objInAlwaysNestTypes","shouldNestObject","add_pytutor_hook","hook_name","func","args","handled_and_result","generateID","original_id","_this","alert","verticalStack","baseD3","codDisplay","CodeDisplay","editCodeBaseURL","navControls","NavigationController","embeddedMode","codeDivWidth","DEFAULT_EMBEDDED_CODE_DIV_WIDTH","codeDivHeight","DEFAULT_EMBEDDED_CODE_DIV_HEIGHT","resizable","handles","resize","ui","renderSliderBreakpoints","updateOutputCallback","outputBox","ProgramOutputBox","dataViz","DataVisualizer","showError","setupSlider","startingInstruction","jumpToEnd","firstErrorStep","hideCode","precomputeCurTraceLayouts","renderPyCodeOutput","updateOutput","redrawConnectors","_getSortedBreakpointsList","Number","ep","removeFromBreakpoints","setBreakpoint","unsetBreakpoint","findPrevBreakpoint","lastElt","findNextBreakpoint","stepForward","nextBreakpoint","stepBack","prevBreakpoint","smoothTransition","updateOutputMini","updateOutputFull","renderOutput","stdout","updateLineAndExceptionInfo","prevDataVizHeight","updateCodOutput","totalInstrs","isFirstInstr","isLastInstr","msg","setVcrControls","setSliderVal","curLineExceptionMsg","unsupportedFeaturesStr","renderDataStructures","heightChangeCallback","executeCodeWithRawInputFunc","showUserInputDiv","hideUserInputDiv","renderStep","prevLine","stack_to_render","d3DomElement","asc","ch","curEntry","stdin","stdinPosition","stdinContent","escapeHtml","substr","heapObj","objID","typeLabelPrefix","stepNum","label","visibleLabel","tbl","headerTr","contentTr","ind","elide","renderNestedObject","old_generateID","sanitized","entityMap","string","curLineNumber","prevLineNumber","curLineIsReturn","prevLineIsReturn","isTerminated","curIsReturn","prevIsReturn","idx","retStack","retFrameId","frame_id","entry","hasError","renderQuestionMaybe","isOutputLineVisibleForBubbles","lineDivID","pcod","LO","PO","question","ans","attrs","correct","correctAns","CustomEvent","divid","answer","dispatchEvent","confirm","feedback","owner","hideVarsSet","hideFieldsSet","draggedHeapObjectCSS","codeVizHTML","getRealLabel","jsPlumbInstance","jsPlumb","getInstance","Endpoint","radius","EndpointStyles","fillStyle","fillstyle","Anchors","PaintStyle","lineWidth","strokeStyle","Container","Connector","Overlays","foldback","EndpointHoverStyles","HoverPaintStyle","generateHeapObjID","resetJsPlumbManager","jsPlumbManager","heap_pointer_src_id","connectionEndpointIDs","heapConnectionEndpointIDs","parentPointerConnectionEndpointIDs","renderedHeapObjectIDs","getAllProgramVarnames","allVarnames","ordered_globals","varname","encodedVarname","GLOBAL_PREFIX","frame","func_prefix","func_name","UNNAMED_PREFIX","ordered_varnames","xxx","getAllProgramObjectFieldNames","me","allFieldnames","traverseCStructArray","structName_1","kvPair","fieldName","encodedFieldname","heap","typ","getClassInstanceMetadata","i_1","funcProperties","funcName","i_2","isCppMode","globals","encoded_locals","curTraceLayouts","prevLayout","curLayout","idsToRemove","row","idsAlreadyLaidOut","recurseIntoObject","curRow","newRow","hook_result","isLinearObj","child","isPrimitiveType","childID","getRefID","structurallyEquivalent","updateCurLayout","dictKey","keyChildID","dictVal","className_1","headerLength_1","instKey","inHideFieldsSet","instVal","funcName_1","updateCurLayoutAndRecurse","curLayoutLoc","curLayoutIndexOf","alreadyLaidOut","foundRow","foundIndex","structName","inHideVarsSet","idInt","rownum","obj1","obj2","startingInd","obj1fields","curToplevelLayout","existingConnectionEndpointIDs","scope","sourceId","targetId","existingParentPointerConnectionEndpointIDs","varsHidden","fieldsHidden","heapObjID","draggedCSS","heapRows","selectAll","objLst","enter","exit","toplevelHeapObjects","renderCompoundObject","realGlobalsLst","log","globalsID","globalTblID","globalVarTable","varnameToCssID","globalVarTableCells","varDivID","renderPrimitiveObject","renderCStructArray","labelID","connect","sp","stackFrameDiv","unique_hash","sfdEnter","is_zombie","parent_frame_id_list","my_CSS_id","parent_frame_id","parent_CSS_id","my_frame_id","child_CSS_id","headerLabel","is_parent","stackVarTable","func_prefix_1","hiddenVarnamesLst","stackVarTableCells","nudger_to_nudged_rows","srcHeapConnectorIDs","renderVarValueConnector","varID","valueID","renderParentPointerConnector","srcID","dstID","anchors","connector","curviness","endpoint","highlight_frame","frameID","setPaintStyle","endpoints","canvas","elementId","srcAnchorObject","srcHeapObject","dstHeapObject","srcHeapRow","dstHeapRow","srcRowID","dstRowID","srcAnchorLeft","dstHeapObjectLeft","delta","cur_nudgee_set","dst_nudgee_set","frame_already_highlighted","is_highlighted","needToRedrawConnectors","savedDraggedCSS","customizeVizOptionsShown","draggable","drag","doTimeout","shs","varsHiddenNoDups_1","fieldsHiddenNoDups_1","literalStr","typeName","isValidPtr","addr","cdataId","ptrVal","ptrSrcId","ptrTargetId","dstAnchorObject","rep","isTopLevel","numElts","numRows","round","sqrt","numCols","curTr","keyTd","valTd","isInstance","isPprintInstance","className_2","headerLength_2","superclassStr","lab","attrnameStr","parentFrameID","compactFuncLabels","funcPrefix","funcCode","rawFuncName_1","primitiveVal","strRepr","srcDivID","dstDivID","typename","leader","structName_2","dimensions","indicesByDimension","range","allDimensions","numColumns","flattenedInd","indToDisplay","repaintEverything","selectivelyHideVarsAndFields","hideVarsLst","hideFieldsLst","funcname","_inHideSetHelper","classname","fieldname","myMap","second","heightOverride","lastStdout","numStdoutLines","stdoutHeight","stdoutStr","pyStdout","oldLeft","scrollHeight","codToDisplay","leftGutterSvgInitialized","pyVer","urlStr","fragment","py","myCodOutput","codeOutputD3","exePts","gutterSVG","firstRowOffsetY","codeRowHeight","secondRowOffsetY","teenyAdjustment","arrowOffsetY","floor","prevVerticalNudge","curVerticalNudge","pla","translatePrevCmd","transition","cla","translateCurCmd","lineNo","lineNoTd","isOutputLineVisible","ST","scrollCodeOutputToLine","nSteps","myself","ruiDiv","userInput","uiControlsPane","oninput","rerenderJsPlumbConnectors","change","varnameChoices","fieldnameChoices","connectorType","connectorSpec","gap","importDefaults","slider","vcrControls","maxSliderVal","sliderDiv","min","evt","sliderOverlay","xrange","scale","domain","cond","str","lbRE","rbRE","privacyAndEndingHTML","footerHtml","nullTraceErrorLst","default","needQuotes","__webpack_amd_options__","pow","LN10","lastIndexOf","substring","sourceEvent","of","interpolateTransform","interpolate","bc","bd","be","bf","bg","bi","bj","charAt","bh","bk","bl","bm","bn","bt","bu","bo","bv","bp","bw","classList","baseVal","lastIndex","requote","node","bx","__data__","bz","ascending","bA","bC","bD","bE","bI","bQ","time","tween","ease","bR","bK","__transition__","bG","bF","bH","bO","bP","bV","bS","flush","callback","bW","bU","bT","bX","Infinity","bY","b$","bZ","b_","rotate","atan2","translate","skew","cc","ownerSVGElement","createSVGPoint","scrollX","scrollY","getScreenCTM","matrixTransform","inverse","ce","cf","rangeExtent","cg","ceil","ci","cp","co","invert","rangeRound","interpolateRound","clamp","ticks","cm","tickFormat","cn","nice","ck","copy","cj","rebind","cl","format","bisect","cq","ct","cs","every","cr","cu","cv","exponent","cw","rangePoints","rangeBands","rangeRoundBands","rangeBand","cB","quantile","NaN","quantiles","cC","cD","cG","innerRadius","cH","outerRadius","cI","startAngle","cJ","endAngle","cK","cL","cM","cN","cP","defined","cO","tension","cQ","cR","cV","cW","cX","dd","c_","dc","de","di","cE","sin","dj","x0","x1","y0","y1","dk","dl","dm","dq","ds","dt","du","dy","dz","dG","dH","dI","dL","fixed","dM","dK","dN","dJ","dO","px","resume","dP","charge","leaf","nodes","cx","cy","point","pointCharge","dQ","dR","dT","dU","dV","dY","dZ","d$","d_","reduce","eb","ec","LN2","ed","ee","links","ei","ej","ef","eg","eh","ek","el","_pack_next","_pack_prev","em","en","er","et","eo","es","acos","ew","ex","ey","ez","_tree","thread","eA","eB","eC","eD","eE","depth","eF","eH","number","prelim","mod","eI","ancestor","eJ","dx","eK","eL","eM","eO","eP","eQ","eR","eV","coordinates","e$","e_","eN","distance","ff","fg","fh","fj","bottomSite","leftEnd","rightEnd","createHalfEdge","edge","side","vertex","leftBound","rightOf","del","right","leftRegion","region","rightRegion","fi","intersect","abs","endPoint","ystar","nextEvent","extractMin","fl","fm","fo","UTC","fq","fw","fP","fU","fQ","fZ","toISOString","f$","utc","f_","gc","gg","year","gd","ge","setFullYear","gf","getFullYear","go","setUTCFullYear","gp","getUTCFullYear","setProperty","CSSStyleDeclaration","version","__proto__","values","entries","functor","descending","mean","median","extent","normal","sum","transpose","zip","bisector","bisectLeft","bisectRight","nest","sortKeys","sortValues","rollup","permute","createRange","selectNode","createContextualFragment","responseXML","svg","xhtml","xlink","xmlns","ns","prefix","qualify","space","local","formatPrefix","symbol","toPrecision","toExponential","toFixed","poly","quad","cubic","exp","circle","elastic","asin","back","bounce","out","interpolators","interpolateNumber","interpolateString","transform","interpolateRgb","rgb","interpolateHsl","hsl","interpolateArray","interpolateObject","brighter","darker","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","bq","br","bs","Sizzle","selection","bB","getAttributeNS","removeAttributeNS","setAttributeNS","classed","removeProperty","createElementNS","namespaceURI","datum","by","bJ","bN","attrTween","styleTween","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","consolidate","matrix","mouse","navigator","userAgent","ordinal","category10","category20","category20b","cz","category20c","cA","quantize","identity","arc","cF","centroid","basis","bundle","cardinal","monotone","df","dg","radial","angle","area","chord","p0","p1","a1","a0","diagonal","projection","dr","dv","size","cross","diamond","square","dw","symbolTypes","axis","dA","__chart__","orient","tickValues","tickSize","tickPadding","tickSubdivide","brush","dB","mode","dC","clear","nw","ne","se","sw","behavior","origin","dD","wheelDelta","dF","dE","scaleExtent","layout","subindex","sortGroups","sortSubgroups","sortChords","chords","groups","force","alpha","weight","geom","quadtree","visit","linkDistance","linkStrength","friction","gravity","theta","partition","hierarchy","pie","dS","dW","dX","silhouette","wiggle","zero","histogram","bins","frequency","revalue","pack","cluster","ev","eu","separation","tree","eG","treemap","sticky","ratio","csv","parseRows","geo","azimuthal","atan","albers","parallels","albersUsa","bonne","parallel","equirectangular","mercator","path","polygon","FeatureCollection","features","geometry","Feature","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","GeometryCollection","geometries","pointRadius","bounds","greatArc","clip","create","precision","greatCircle","contour","fe","fc","fd","hull","voronoi","delaunay","getDate","getUTCDate","getDay","getUTCDay","getHours","getUTCHours","getMilliseconds","getUTCMilliseconds","getMinutes","getUTCMinutes","getMonth","getUTCMonth","getSeconds","getUTCSeconds","getTime","getTimezoneOffset","valueOf","setDate","fp","setUTCDate","setDay","setUTCDay","setHours","setUTCHours","setMilliseconds","setUTCMilliseconds","setMinutes","setUTCMinutes","setMonth","setUTCMonth","setSeconds","setUTCSeconds","setTime","fv","fr","fs","ft","fu","fB","fH","dayOfYear","sundayOfYear","mondayOfYear","fz","fA","fD","fF","fG","fW","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","january","february","march","april","june","july","august","september","october","november","december","am","pm","fY","iso","seconds","minute","minutes","hour","hours","day","days","week","sunday","weeks","weekOfYear","month","months","years","gh","gi","gj","gk","gl","gn","jsPlumbUtil","isString","isObject","convertStyle","gradient","lineLength","segment","intersects","segmentMultipliers","inverseSegmentMultipliers","pointOnLine","perpendicularLineTo","findWithFunction","removeWithFunction","addWithFunction","addToList","EventGenerator","getListener","logEnabled","group","groupEnd","timeEnd","getContext","SVGAngle","hasFeature","vml","adj","CurrentLibrary","getElementObject","getOffset","getSize","parameters","idPrefix","_jsPlumb","getId","tooltip","hoverClass","Defaults","HoverClass","ac","getParameter","getParameters","setParameter","ad","setParameters","overlayPlacements","beforeDetach","isDetachAllowed","checkCondition","ae","beforeDrop","isDropAllowed","ah","af","ag","connection","dropEndpoint","ai","hoverPaintStyle","paintStyleInUse","repaint","getPaintStyle","setHoverPaintStyle","getHoverPaintStyle","setHover","currentlyDragging","isHoverSuspended","timestamp","recalc","getAttachedElements","isHover","mouseout","attachListeners","reattachListenersForElement","overlays","component","getRenderMode","defaultOverlayKeys","addOverlay","getOverlay","getOverlays","hideOverlay","hideOverlays","showOverlay","showOverlays","removeAllOverlays","cleanup","removeOverlay","removeOverlays","cssClass","labelStyle","Label","labelLocation","defaultLabelLocation","LabelStyle","setLabel","Function","setLocation","getLabel","getLabelOverlay","Anchor","ConnectionsDetachable","ConnectionOverlays","DragOptions","DropOptions","EndpointOverlays","Endpoints","EndpointStyle","EndpointHoverStyle","color","LogEnabled","MaxConnections","RenderMode","Scope","aL","aO","aC","aB","restoreDefaults","aY","aT","aU","aW","appendElement","aD","ak","aI","_nodes","a6","dragManager","getElementsForDraggable","anchorManager","redraw","aG","av","isDragSupported","isAlreadyDraggable","dragEvents","setHoverSuspended","getUIPosition","initDraggable","register","ConnectionType","getDefaultConnectionType","EndpointType","getParent","container","sourceEndpoint","suspendedEndpoint","doNotFireConnectionEvent","fireEvent","targetEndpoint","newConnection","aw","getTagName","aF","connections","au","aX","a3","setVisible","isVisible","aQ","elId","bottom","centerx","centery","aN","connectorClass","endpointClass","overlayClass","Connectors","addEndpoint","paintStyle","parentAnchor","anchor","compute","xy","wh","element","paint","anchorLoc","endpointAdded","addEndpoints","uuids","isFull","connectorOverlays","connectorTooltip","aZ","aH","aj","_makeTargetCreator","az","a5","a9","aA","deleteEndpointsOnDetach","deleteEndpoint","getUuid","detachAll","getDisplayElements","endpointDeleted","deleteEveryEndpoint","a7","connectionDetached","forceDetach","detachFrom","detachAllConnections","detachEveryConnection","getDefaultEndpointType","ax","an","ay","getConnections","getDefaultScope","aK","setDetachable","setConnector","isDetachable","getAllConnections","getEndpoint","getEndpoints","getSelector","aS","isCanvasAvailable","isSVGAvailable","isVMLAvailable","idstamp","setRenderMode","CANVAS","jsPlumbUIComponent","makeAnchor","getOrientation","aq","orientation","offsets","makeAnchors","makeDynamicAnchor","ap","makeTarget","maxConnections","uniqueEndpoint","proxyComponent","dropOptions","drop","getDropEvent","getDragObject","bM","setDragScope","endpointsToDeleteOnDetach","positionFinder","constructorParams","previousConnection","endpointWillMoveAfterConnection","isReattach","floatingAnchorIndex","addConnection","initDroppable","unmakeTarget","makeTargets","makeSource","bL","dragOptions","setElement","rehomeEndpoint","getOriginalEvent","page","b0","isSource","endpointWillMoveTo","registerListener","unmakeSource","unregisterListener","_el","unmakeEverySource","unmakeEveryTarget","makeSources","aM","setSourceEnabled","toggleSourceEnabled","isSourceEnabled","setTargetEnabled","toggleTargetEnabled","isTarget","isTargetEnabled","removeAllEndpoints","removeEveryEndpoint","removeEndpoint","listener","setDefaultScope","setDraggable","setId","changeId","setIdChanged","setDebugLog","setRepaintFunction","setSuspendDrawing","SVG","VML","sizeCanvas","getTestHarness","endpointsByElement","endpointCount","connectionCount","self","toggleVisible","toggleDraggable","unload","addListener","tagName","equals","getCurrentLocation","reference","referenceCanvas","isFloating","over","isSelective","isDynamic","addAnchor","getAnchors","txy","twh","aJ","theta2","al","ao","a2","isContinuous","removeElement","getConnectionsFor","getEndpointsFor","clearFor","_continuousAnchorEdge","b1","elementWithPrecedence","continuousAnchorFactory","getDOMElement","getElement","cost","getCost","setCost","bidirectional","isBidirectional","endpointStyles","endpointHoverStyles","endpointStyle","outlineColor","outlineWidth","endpointHoverStyle","uuid","reattach","detachable","drawEndpoints","connectionsDetachable","getConnectionCost","areConnectionsBidirectional","connectorStyle","connectorHoverStyle","moveParent","bgCanvas","isAppendedAtTopLevel","reattachListeners","tElement","b6","b5","b8","b4","b3","computeMaxSize","b2","draw","isEnabled","setEnabled","connectionCost","setConnectionCost","connectionsBidirectional","setConnectionsBidirectional","_transient","setEndpoint","dragAllowedWhenFull","computeAnchor","cd","b9","_forceDetach","b7","detachFromConnection","makeInPlaceCopy","isConnectedTo","connectorSelector","setDragAllowedWhenFull","setStyle","anchorPoint","connectorPaintStyle","removeConnection","stopDrag","defaultDragOptions","at","getDragScope","getDropScope","a4","aR","isDropSupported","TopCenter","BottomCenter","LeftMiddle","RightMiddle","Center","TopRight","BottomRight","TopLeft","BottomLeft","DynamicAnchors","AutoDefault","Assign","AnchorPositionFinders","Continuous","Fixed","Grid","grid","DOMElementComponent","mousemove","dblclick","mousedown","mouseup","Straight","pointOnPath","gradientAtPoint","pointAlongPathFrom","Bezier","majorAnchor","minorAnchor","_findControlPoint","jsBezier","locationAlongCurveFrom","pointOnCurve","pointAlongCurveFrom","Flowchart","stub","minStubLength","proportion","ar","oppositex","orthogonalx","perpendicularx","oppositey","orthogonaly","perpendiculary","segmentInfo","Dot","defaultOffset","defaultInnerRadius","Rectangle","appendDisplayElement","Image","img","setImage","outline","Blank","background","Triangle","loc","endpointLoc","endpointLocation","incrementLocation","getLocation","Arrow","direction","hxy","tail","cxy","PlainArrow","Diamond","cachedDimensions","minx","miny","getTextDimensions","GuideLines","StateMachine","proximityLimit","loopbackRadius","showLoopback","drawGuideline","avoidSelector","CanvasConnector","_paint","ctx","beginPath","moveTo","bezierCurveTo","stroke","save","closePath","restore","createGradient","createLinearGradient","SvgConnector","getPath","VmlConnector","convertValue","joinstyle","endcap","miterlimit","createStyleSheet","namespaces","addRule","setOpacity","stroked","strokecolor","strokeweight","filled","fillcolor","dashstyle","strokeNode","opacityNodes","fill","initOpacityNodes","coordsize","VmlEndpoint","getVml","gradientUnits","stops","pointerEventsSpec","originalArgs","title","useDivWrapper","bgPath","SvgEndpoint","strokeWidth","makeNode","getPageXY","_over","getImageData","getClientXY","elementFromPoint","contextmenu","addColorStop","createRadialGradient","rect","lineTo","SVGAnimatedString","util","getDocumentElement","droppable","getScrollLeft","getScrollTop","outerWidth","outerHeight","absolutePosition","helper","sgn","max_distance_below","distanceFromCurve","gradientAtPointAlongCurveFrom","nearestPointOnCurve","perpendicularToCurveAt","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","focusable","isTabIndexNotNaN","mapName","eventType","orig","BACKSPACE","COMMA","DELETE","DOWN","END","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SPACE","TAB","UP","scrollParent","includeHidden","excludeStaticParent","overflowRegex","uniqueId","removeUniqueId","dataName","tabbable","isTabIndexNaN","innerWidth","innerHeight","ie","disableSelection","enableSelection","plugin","proto","plugins","instance","allowDisconnected","widget_uuid","widget_slice","elems","widget","fullName","existingConstructor","basePrototype","proxiedPrototype","Widget","_createWidget","_proto","_childConstructors","_super","_superApply","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","childPrototype","bridge","inputIndex","inputLength","isMethodCall","methodValue","_init","defaultElement","eventNamespace","bindings","hoverable","_on","destroy","_getCreateOptions","_create","_trigger","_getCreateEventData","_destroy","parts","curOption","_setOptions","_setOption","enable","suppressDisabledCheck","delegateElement","handlerProxy","eventName","_off","_delay","_hoverable","_focusable","focusout","defaultEffect","effect","hasOptions","effectName","effects","mouseHandled","cancel","_mouseInit","that","_mouseDown","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","elIsCancel","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","_mouseDrag","_mouseStop","cachedScrollbarWidth","supportsOffsetFractions","rhorizontal","rvertical","roffset","rposition","rpercent","_position","getOffsets","parseCss","scrollbarWidth","w1","w2","div","innerDiv","clientWidth","getScrollInfo","within","isDocument","hasOverflowX","scrollWidth","getWithinInfo","withinElement","atOffset","targetWidth","targetHeight","targetOffset","basePosition","raw","scrollInfo","collision","horizontalOffset","verticalOffset","collisionPosition","elemWidth","elemHeight","marginTop","collisionWidth","collisionHeight","myOffset","my","horizontal","vertical","important","fit","newOverRight","withinOffset","collisionPosLeft","overLeft","overRight","newOverBottom","collisionPosTop","overTop","overBottom","flip","newOverLeft","offsetLeft","newOverTop","offsetTop","flipfit","testElement","testElementParent","testElementStyle","collapsible","heightStyle","icons","activeHeader","activate","beforeActivate","hideProps","borderTopWidth","borderBottomWidth","paddingTop","paddingBottom","showProps","prevShow","prevHide","_processPanels","_refresh","panel","_createIcons","_destroyIcons","_setupEvents","_activate","_keydown","currentIndex","toFocus","_eventHandler","_panelKeyDown","refresh","prevHeaders","prevPanels","panels","maxHeight","_findActive","headerId","panelId","keydown","clicked","clickedIsActive","collapsing","toShow","toHide","eventData","oldHeader","oldPanel","newHeader","newPanel","_toggle","_animate","_toggleComplete","total","adjust","boxSizing","down","submenu","items","menus","role","activeMenu","previousFilter","keepActiveItem","collapseAll","_closeOnDocumentClick","character","skip","previousPage","nextPage","_move","previous","collapse","filterTimer","_filterMenuItems","icon","submenus","menu","submenuCarat","_isDivider","_itemRole","listbox","nested","focused","_scrollIntoView","_close","_startOpening","borderTop","scroll","elementHeight","itemHeight","_hasScroll","fromFocus","_open","currentMenu","startMenu","newItem","isFirstItem","isLastItem","escapedCharacter","regex","autoFocus","minLength","close","search","requestIndex","pending","suppressKeyPress","suppressKeyPressRepeat","suppressInput","isTextarea","isInput","isMultiLine","valueMethod","isNewMenu","_keyEvent","_value","term","_searchTimeout","keypress","selectedItem","cancelBlur","searching","_change","_initSource","_appendTo","menuElement","menufocus","liveRegion","menuselect","array","request","autocomplete","equalValues","menuVisible","modifierKey","_search","cancelSearch","_response","__response","_normalize","_suggest","ul","_renderMenu","_resizeMenu","_renderItemData","_renderItem","keyEvent","escapeRegex","matcher","messages","noResults","results","amount","lastActive","datepicker_instActive","baseClasses","typeClasses","formResetHandler","form","radioGroup","radios","Datepicker","_curInst","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","isRTL","showMonthAfterYear","yearSuffix","_defaults","showOn","showAnim","showOptions","defaultDate","appendText","buttonText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","changeMonth","changeYear","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","minDate","maxDate","beforeShowDay","beforeShow","onSelect","onChangeMonthYear","onClose","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","altFormat","constrainInput","showButtonPanel","autoSize","dpDiv","datepicker_bindHover","datepicker_handleMouseover","datepicker","_isDisabledDatepicker","inline","datepicker_extendRemove","primary","secondary","_determineButtonType","hasTitle","buttonElement","toggleButton","activeClass","keyup","_resetButton","labelSelector","multipleIcons","buttonClasses","rtl","allButtons","existingButtons","markerClassName","maxRows","_widgetDatepicker","setDefaults","settings","_attachDatepicker","inst","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","_doKeyDown","_doKeyPress","_doKeyUp","_autoSize","_disableDatepicker","_get","_showDatepicker","alt","_lastInput","_hideDatepicker","findMax","maxI","date","names","_formatDate","divSpan","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","browserWidth","browserHeight","_dialogInst","_dialogInput","_pos","clientHeight","blockUI","_destroyDatepicker","$target","_enableDatepicker","cursor","_getInst","err","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","noDefault","_setDateFromField","_getDate","dateStr","sel","handled","_selectDay","_adjustDate","_clearDate","_gotoToday","chars","chr","_possibleChars","lastVal","parseDate","_getFormatConfig","beforeShowSettings","isFixed","_findPos","_checkOffset","datepicker_getZindex","_shouldFocusInput","_generateHTML","_attachHandlers","origyearshtml","numMonths","_getNumberOfMonths","cols","activeCell","yearshtml","dpWidth","dpHeight","inputWidth","inputHeight","viewWidth","viewHeight","postProcess","_tidyDialog","unblockUI","_checkExternalClick","period","_adjustInstDate","currentDay","currentMonth","currentYear","_notifyChange","_selectMonthYear","_selectDate","formatDate","noWeekends","checkDate","iFormat","dim","extra","iValue","shortYearCutoffTemp","doy","literal","lookAhead","getNumber","isDoubled","digits","num","getName","shortNames","longNames","pair","checkLiteral","_ticksTo1970","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","formatNumber","len","formatName","output","getYear","dates","_restrictMinMax","_determineDate","newDate","pattern","offsetString","offsetNumeric","noChange","origMonth","origYear","today","selectDay","selectMonth","selectYear","maxDraw","gotoDate","controls","buttonPanel","dow","selectedDate","cornerClass","calender","daysInMonth","leadDays","curRows","printDate","dRow","daySettings","otherMonth","unselectable","tempDate","isMultiMonth","currentDate","_canAdjustMonth","_isInRange","_generateMonthYearHeader","_getFirstDayOfMonth","inMinYear","inMaxYear","thisYear","determineYear","endYear","monthHtml","onChange","minMax","curYear","curMonth","yearSplit","minYear","maxYear","initialized","otherArgs","addClasses","connectToSortable","containment","cursorAt","iframeFix","refreshPositions","revert","revertDuration","scrollSensitivity","scrollSpeed","snap","snapMode","snapTolerance","_setPositionRelative","_setHandleClassName","_removeHandleClassName","destroyOnClear","_blurActiveElement","_getHandle","_blockFrames","iframeBlocks","iframe","_unblockFrames","handleElement","_createHelper","_cacheHelperProportions","ddmanager","current","_cacheMargins","cssPosition","hasFixedAncestor","positionAbs","_refreshOffsets","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","_normalizeRightBottom","dragStart","margins","_getParentOffset","_getRelativeOffset","noPropagation","_convertPositionTo","_uiHash","dropped","dragStop","helperIsFunction","helperProportions","_isRootNode","po","scrollIsRootNode","isUserScrollable","relativeContainer","constrainPosition","cancelHelperRemoval","uiSortable","sortables","sortable","isOver","_storedCSS","placeholder","_helper","innermostIntersecting","_intersectsWith","containerCache","_parent","currentItem","fromOutside","_revert","_cursor","_opacity","scrollParentNotHidden","overflowOffset","scrolled","snapElements","$t","$o","ts","ls","rs","x2","y2","snapping","release","snapItem","_zIndex","alsoResize","animateDuration","animateEasing","aspectRatio","autoHide","ghost","minHeight","_num","_isNumber","_aspectRatio","originalElement","_proportionallyResizeElements","elementIsWrapper","marginBottom","originalResizeStyle","_proportionallyResize","_handles","_renderAxis","padPos","padWrapper","mouseover","resizing","wrapper","capture","curleft","curtop","_renderProxy","originalSize","sizeDiff","originalMousePosition","_propagate","smp","_updatePrevProperties","_updateVirtualBoundaries","_updateRatio","_respectSize","_updateCache","_applyChanges","pr","ista","soffseth","soffsetw","prevPosition","prevSize","forceAspectRatio","pMinWidth","pMaxWidth","pMinHeight","pMaxHeight","_vBoundaries","cpos","csize","ismaxw","ismaxh","isminw","isminh","dh","_getPaddingPlusBorderDimensions","widths","borders","paddings","prel","outerDimensions","elementOffset","oc","containerElement","containerOffset","containerPosition","parentData","containerSize","woset","hoset","isParent","isOffsetRelative","pRatio","cop","continueResize","ho","os","op","gridX","gridY","ox","oy","newWidth","newHeight","isMaxWidth","isMaxHeight","isMinWidth","isMinHeight","autoOpen","closeOnEscape","dialogClass","modal","topOffset","beforeClose","resizeStart","resizeStop","sizeRelatedOptions","resizableRelatedOptions","originalCss","originalTitle","_createWrapper","uiDialog","_createTitlebar","_createButtonPane","_makeDraggable","_makeResizable","_isOpen","_trackFocus","_untrackInstance","_destroyOverlay","_focusedElement","_hide","isOpen","moveToTop","_moveToTop","silent","moved","zIndices","zIndexMax","_focusTabbable","_size","_createOverlay","overlay","_show","_makeFocusTarget","uiDialogButtonPane","uiDialogTitlebarClose","_keepFocus","checkFocus","tabbables","uiDialogTitle","uiDialogTitlebar","_title","uiButtonSet","_createButtons","buttonOptions","showText","filteredUi","resizeHandles","_minHeight","_trackingInstances","instances","exists","resizableOptions","isDraggable","isResizable","nonContentHeight","minContentHeight","maxContentHeight","_allowInteraction","isOpening","accept","greedy","tolerance","deactivate","proportions","isover","isout","_addToManager","droppables","_splice","_deactivate","_out","_drop","custom","childrenIntersection","isOverAxis","toleranceMode","absolute","droppablesLoop","greedyChild","parentInstance","baseEasings","rhash","dataSpace","spinner_modifier","colors","rplusequals","stringParsers","re","execResult","Color","spaces","rgba","hsla","hue","saturation","lightness","propTypes","supportElem","allowEmpty","def","stringParse","_rgba","parser","parsed","spaceName","transparent","hue2rgb","backgroundColor","to","from","compare","same","localCache","isCache","_space","used","other","startColor","startValue","endValue","blend","opaque","toRgbaString","toHslaString","toHexString","includeAlpha","diff","arr","vtype","_hsla","hook","hooks","curElem","colorInit","borderColor","expanded","part","classAnimationActions","shorthandStyles","borderBottom","borderLeft","borderRight","borderWidth","getElementStyles","currentStyle","styles","setAttr","animateClass","applyClassChange","baseClass","allAnimations","action","oldStyle","newStyle","styleDifference","styleInfo","dfd","classNames","switchClass","_normalizeArguments","standardAnimationOption","setMode","getBaseline","original","createWrapper","fontSize","removeWrapper","setTransition","factor","cssUnit","effectMethod","Sine","Circ","Elastic","Back","Bounce","pow2","easeIn","blind","ref","ref2","motion","animation","upAnim","downAnim","times","anims","queuelen","vert","explode","mx","rows","pieces","cells","childComplete","fade","fold","percent","horizFirst","widthFirst","animation1","animation2","highlight","backgroundImage","baseline","props0","props2","cProps","vProps","hProps","c_original","toRef","puff","pulsate","showhide","animateTo","shake","positiveMotion","slide","transfer","targetFixed","fixTop","fixLeft","endPosition","startPosition","oldValue","_constrainedValue","valueDiv","_refreshValue","newValue","indeterminate","_percentage","percentage","overlayDiv","autoRefresh","selecting","unselected","unselecting","selectees","dragged","$this","$element","startselected","opos","selectee","doSelect","tmp","hit","selectmenuId","ids","_drawButton","_drawMenu","tabindex","_setText","_resizeButton","_buttonEvents","menuItems","_refreshMenu","menuWrap","menuInstance","_setSelection","_select","focusIndex","_getSelectedItem","_parseOptions","_setAria","_toggleAttr","_documentClick","menuWidget","currentOptgroup","li","getSelection","removeAllRanges","addRange","rangeCount","getRangeAt","_selectFocusedItem","oldIndex","numPages","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_calculateNewMax","_createRange","_createHandles","handleCount","existingHandles","classes","_valueMin","_handleEvents","normValue","closestHandle","mouseOverHandle","elementSize","_normValueFromMouse","_valueMax","thisDistance","_lastChangedValue","_start","_clickOffset","_slide","_stop","pixelTotal","pixelMouse","percentMouse","valueTotal","valueMouse","_trimAlignValue","uiHash","newVal","otherVal","newValues","allowed","vals","_values","valsLength","valModStep","alignValue","_precision","_precisionOf","decimal","lastValPercent","valPercent","valueMin","valueMax","oRange","_set","curVal","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","beforeStop","receive","_isOverAxis","_isFloating","overrideHandle","validHandle","reverting","_refreshItems","_removeCurrentsFromItems","noActivation","currentContainer","domPosition","_createPlaceholder","storedCursor","storedStylesheet","_storedOpacity","_storedZIndex","_preserveHelperProportions","containers","dragging","itemElement","intersection","lastPositionAbs","_intersectsWithPointer","_intersectsWithSides","_rearrange","_contactContainers","_noFinalSort","_getItemsAsjQuery","connected","res","attribute","expression","dyClick","dxClick","isOverElementHeight","isOverElementWidth","isOverElement","forcePointerForContainers","floating","verticalDirection","_getDragVerticalDirection","horizontalDirection","_getDragHorizontalDirection","isOverBottomHalf","isOverRightHalf","_connectWith","queries","addItems","targetData","_queries","queriesLength","toleranceElement","refreshContainers","_createTrPlaceholder","sourceTr","targetTr","dist","itemWithLeastDistance","posProperty","sizeProperty","nearBottom","innermostContainer","innermostIndex","hardRefresh","counter","delayedTriggers","delayEvent","_inst","sender","culture","up","incremental","numberFormat","spin","_draw","_events","mousewheel","spinning","_spin","mousewheelTimer","_repeat","uiSpinner","_uiSpinnerHtml","_buttonHtml","steps","_adjustValue","_increment","aboveMin","prevValue","_parse","_format","Globalize","isValid","allowAny","stepUp","_stepUp","stepDown","_stepDown","pageUp","pages","pageDown","beforeLoad","_isLocal","anchorUrl","locationUrl","decodeURIComponent","running","_processTabs","_initialActive","tabs","locationHash","tab","_getPanelForTab","_tabKeydown","focusedTab","goingForward","_handlePageNav","activating","_focusNextTab","_panelKeydown","_findNextTab","lastTabIndex","_setupHeightStyle","_setupDisabled","_sanitizeSelector","lis","tablist","prevTabs","prevAnchors","_getList","anchorId","originalAriaControls","_createPanel","oldTab","newTab","_getIndex","jqXHR","_ajaxSettings","tooltipClass","track","_addDescribedBy","describedby","_removeDescribedBy","tooltips","_disable","tooltipData","_updateContent","_enable","blurEvent","_registerCloseHandlers","contentOption","delayedShow","a11yContent","positionOption","_find","_tooltip","fakeEvent","_removeTooltip","closing","hiding","api","exported","locals","___CSS_LOADER_API_IMPORT___","___CSS_LOADER_GET_URL_IMPORT___","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_IMPORT_8___","___CSS_LOADER_URL_IMPORT_9___","___CSS_LOADER_URL_IMPORT_10___","___CSS_LOADER_URL_IMPORT_11___","___CSS_LOADER_URL_IMPORT_12___","___CSS_LOADER_URL_IMPORT_13___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","jq_param_sorted","jq_param_fragment","jq_deparam","jq_deparam_fragment","jq_bbq_pushState","jq_bbq_getState","jq_elemUrlAttr","re_params_fragment","re_fragment","re_no_escape","ajax_crawlable","fragment_prefix","aps","decode","jq_param","jq_bbq","bbq","str_hashchange","str_querystring","str_fragment","str_elemUrlAttr","str_href","str_src","re_params_querystring","elemUrlAttr_cache","is_string","arg","curry","jq_param_sub","is_fragment","get_func","merge_mode","qs","url_params","jq_deparam_sub","url_or_params","coerce","jq_fn_sub","force_attr","sorted","key_obj","noEscape","ajaxCrawlable","deparam","coerce_types","keys_last","link","pushState","has_args","getState","removeState","old_handler","new_handler","fake_onhashchange","doc","doc_mode","supports_onhashchange","get_fragment","timeout_id","last_hash","fn_retval","history_set","history_get","poll","history_hash","pytutor_1","allVisualizers","redrawAllVisualizerArrows","addVisualizerToPage","divId","createVisualizerFromJSON","jsonURL","createAllVisualizersFromHtmlAttrs","paramsText"],"sourceRoot":""}