/Volumes/Docs/NetbeansProjects/ide/common/ace/doc/protocol_key_logger.txt:84:{"command":"debugger_command","result":0,"data":{"seq":180,"request_seq":295,"type":"response","command":"scripts","success":true,"body":[{"handle":3,"type":"script","id":46,"lineOffset":0,"columnOffset":0,"lineCount":1,"source":"function topStackFrame(exec_state) {  if (!exec_state.frameCount())      return undefined;  var frame = exec_state.frame(0);  var func = frame.func();  var scriptName;  if (func.resolved() && func.script())      scriptName = func.script().name();  return [scriptName, frame.sourceLine(), (func.name() || func.inferredName())];}","sourceLength":327,"scriptType":2,"compilationType":0,"context":{"ref":2},"text":"undefined (lines: 1)"},{"handle":5,"type":"script","name":"chrome-extension://hmdcmlfkchdmnmnmheododdhjedfccka/inc/jquery-1.3.2.min.js","id":82,"lineOffset":0,"columnOffset":0,"lineCount":19,"source":"/*\n * jQuery JavaScript Library v1.3.2\n * http://jquery.com/\n *\n * Copyright (c) 2009 John Resig\n * Dual licensed under the MIT and GPL licenses.\n * http://docs.jquery.com/License\n *\n * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)\n * Revision: 6246\n */\n(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\\s)+>)[^>]*$|^#([\\w-]+)$/,f=/^.[^:#\\[\\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E===\"string\"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:\"\",jquery:\"1.3.2\",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H===\"find\"){G.selector=this.selector+(this.selector?\" \":\"\")+E}else{if(H){G.selector=this.selector+\".\"+H+\"(\"+E+\")\"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F===\"string\"){if(H===g){return this[0]&&o[G||\"attr\"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E==\"width\"||E==\"height\")&&parseFloat(F)<0){F=g}return this.attr(E,F,\"curCSS\")},text:function(F){if(typeof F!==\"object\"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E=\"\";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],\"find\",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),\"find\",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement(\"div\");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\\d+=\"(?:\\d+|null)\"/g,\"\").replace(/^\\s*/,\"\")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find(\"*\").andSelf(),F=0;E.find(\"*\").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],\"events\");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),\"filter\",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,\"closest\",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E===\"string\"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),\"not\",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E===\"string\"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is(\".\"+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,\"option\")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,\"select\")){var I=E.selectedIndex,L=[],M=E.options,H=E.type==\"select-one\";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||\"\").replace(/\\r/g,\"\")}return g}if(typeof K===\"number\"){K+=\"\"}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,\"select\")){var N=o.makeArray(K);o(\"option\",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\\d+=\"(?:\\d+|null)\"/g,\"\"):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),\"slice\",Array.prototype.slice.call(arguments).join(\",\"))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,\"table\")&&o.nodeName(O,\"tr\")?(N.getElementsByTagName(\"tbody\")[0]||N.appendChild(N.ownerDocument.createElement(\"tbody\"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:\"script\"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||\"\")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J===\"boolean\"){E=J;J=arguments[1]||{};H=2}if(typeof J!==\"object\"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L===\"object\"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)===\"[object Function]\"},isArray:function(E){return s.call(E)===\"[object Array]\"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!==\"HTML\"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\\S/.test(G)){var F=document.getElementsByTagName(\"head\")[0]||document.documentElement,E=document.createElement(\"script\");E.type=\"text/javascript\";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I===\"number\"&&G==\"curCSS\"&&!b.test(E)?I+\"px\":I},className:{add:function(E,F){o.each((F||\"\").split(/\\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?\" \":\"\")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\\s+/),function(G){return !o.className.has(F,G)}).join(\" \"):\"\"}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F==\"width\"||F==\"height\"){var L,G={position:\"absolute\",visibility:\"hidden\",display:\"block\"},K=F==\"width\"?[\"Left\",\"Right\"]:[\"Top\",\"Bottom\"];function I(){L=F==\"width\"?H.offsetWidth:H.offsetHeight;if(E===\"border\"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,\"padding\"+this,true))||0}if(E===\"margin\"){L+=parseFloat(o.curCSS(H,\"margin\"+this,true))||0}else{L-=parseFloat(o.curCSS(H,\"border\"+this+\"Width\",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F==\"opacity\"&&!o.support.opacity){L=o.attr(E,\"opacity\");return L==\"\"?\"1\":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F=\"float\"}F=F.replace(/([A-Z])/g,\"-$1\").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F==\"opacity\"&&L==\"\"){L=\"1\"}}else{if(I.currentStyle){var J=F.replace(/\\-(\\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\\d+(px)?$/i.test(L)&&/^\\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+\"px\";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement===\"undefined\"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]===\"string\"){var H=/^<(\\w+)\\s*\\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement(\"div\");o.each(F,function(P,S){if(typeof S===\"number\"){S+=\"\"}if(!S){return}if(typeof S===\"string\"){S=S.replace(/(<(\\w+)[^>]*?)\\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+\"></\"+T+\">\"});var O=S.replace(/^\\s+/,\"\").substring(0,10).toLowerCase();var Q=!O.indexOf(\"<opt\")&&[1,\"<select multiple='multiple'>\",\"</select>\"]||!O.indexOf(\"<leg\")&&[1,\"<fieldset>\",\"</fieldset>\"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,\"<table>\",\"</table>\"]||!O.indexOf(\"<tr\")&&[2,\"<table><tbody>\",\"</tbody></table>\"]||(!O.indexOf(\"<td\")||!O.indexOf(\"<th\"))&&[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"]||!O.indexOf(\"<col\")&&[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"]||!o.support.htmlSerialize&&[1,\"div<div>\",\"</div>\"]||[0,\"\",\"\"];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf(\"<table\")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]==\"<table>\"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],\"tbody\")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],\"script\")&&(!G[J].type||G[J].type.toLowerCase()===\"text/javascript\")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName(\"script\"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G==\"selected\"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G==\"type\"&&o.nodeName(J,\"input\")&&J.parentNode){throw\"type property can't be changed\"}J[G]=K}if(o.nodeName(J,\"form\")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G==\"tabIndex\"){var I=J.getAttributeNode(\"tabIndex\");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G==\"style\"){return o.attr(J.style,\"cssText\",K)}if(L){J.setAttribute(G,\"\"+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G==\"opacity\"){if(L){J.zoom=1;J.filter=(J.filter||\"\").replace(/alpha\\([^)]*\\)/,\"\")+(parseInt(K)+\"\"==\"NaN\"?\"\":\"alpha(opacity=\"+K*100+\")\")}return J.filter&&J.filter.indexOf(\"opacity=\")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+\"\":\"\"}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||\"\").replace(/^\\s+|\\s+$/g,\"\")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G===\"string\"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\\/: ]([\\d.]+)/)||[0,\"0\"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,\"parentNode\")},next:function(E){return o.nth(E,2,\"nextSibling\")},prev:function(E){return o.nth(E,2,\"previousSibling\")},nextAll:function(E){return o.dir(E,\"nextSibling\")},prevAll:function(E){return o.dir(E,\"previousSibling\")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,\"iframe\")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G==\"string\"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,\"\");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!==\"boolean\"){E=!o.className.has(this,F)}o.className[E?\"add\":\"remove\"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o(\"*\",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h=\"jQuery\"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E=\"\";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||\"fx\")+\"queue\";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G===\"fx\"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(\".\");H[1]=H[1]?\".\"+H[1]:\"\";if(G===g){var F=this.triggerHandler(\"getData\"+H[1]+\"!\",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger(\"setData\"+H[1]+\"!\",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!==\"string\"){F=E;E=\"fx\"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E==\"fx\"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});\n/*\n * Sizzle CSS Selector Engine - v0.9.3\n *  Copyright 2009, The Dojo Foundation\n *  Released under the MIT, BSD, and GPL Licenses.\n *  More information: http://sizzlejs.com/\n */\n(function(){var R=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^[\\]]*\\]|['\"][^'\"]*['\"]|[^[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!==\"string\"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=\"\"}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw\"Syntax error, unrecognized expression: \"+(ah||Y)}if(H.call(ai)===\"[object Array]\"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!==\"\\\\\"){X[1]=(X[1]||\"\").replace(/\\\\/g,\"\");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],\"\");break}}}}if(!Z){Z=T.getElementsByTagName(\"*\")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],\"\");if(!T){return[]}break}}}if(ad==V){if(T==null){throw\"Syntax error, unrecognized expression: \"+ad}else{break}}V=ad}return aa};var I=F.selectors={order:[\"ID\",\"NAME\",\"TAG\"],match:{ID:/#((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)/,CLASS:/\\.((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)/,NAME:/\\[name=['\"]*((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)['\"]*\\]/,ATTR:/\\[\\s*((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)\\s*(?:(\\S?=)\\s*(['\"]*)(.*?)\\3|)\\s*\\]/,TAG:/^((?:[\\w\\u00c0-\\uFFFF\\*_-]|\\\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\\((even|odd|[\\dn+-]*)\\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\))?(?=[^-]|$)/,PSEUDO:/:((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)(?:\\((['\"]*)((?:\\([^\\)]+\\)|[^\\2\\(\\)]*)+)\\2\\))?/},attrMap:{\"class\":\"className\",\"for\":\"htmlFor\"},attrHandle:{href:function(T){return T.getAttribute(\"href\")}},relative:{\"+\":function(aa,T,Z){var X=typeof T===\"string\",ab=X&&!/\\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},\">\":function(Z,U,aa){var X=typeof U===\"string\";if(X&&!/\\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},\"\":function(W,U,Y){var V=L++,T=S;if(!U.match(/\\W/)){var X=U=Y?U:U.toUpperCase();T=P}T(\"parentNode\",U,V,W,X,Y)},\"~\":function(W,U,Y){var V=L++,T=S;if(typeof U===\"string\"&&!U.match(/\\W/)){var X=U=Y?U:U.toUpperCase();T=P}T(\"previousSibling\",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!==\"undefined\"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!==\"undefined\"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute(\"name\")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=\" \"+W[1].replace(/\\\\/g,\"\")+\" \";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(\" \"+Y.className+\" \").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\\\/g,\"\")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]==\"nth\"){var U=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.exec(T[2]==\"even\"&&\"2n\"||T[2]==\"odd\"&&\"2n+1\"||!/\\D/.test(T[2])&&\"0n+\"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\\\/g,\"\");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]===\"~=\"){X[4]=\" \"+X[4]+\" \"}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]===\"not\"){if(X[3].match(R).length>1||/^\\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!==\"hidden\"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\\d/i.test(T.nodeName)},text:function(T){return\"text\"===T.type},radio:function(T){return\"radio\"===T.type},checkbox:function(T){return\"checkbox\"===T.type},file:function(T){return\"file\"===T.type},password:function(T){return\"password\"===T.type},submit:function(T){return\"submit\"===T.type},image:function(T){return\"image\"===T.type},reset:function(T){return\"reset\"===T.type},button:function(T){return\"button\"===T.type||T.nodeName.toUpperCase()===\"BUTTON\"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U===\"contains\"){return(Z.textContent||Z.innerText||\"\").indexOf(V[3])>=0}else{if(U===\"not\"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case\"only\":case\"first\":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z==\"first\"){return true}U=T;case\"last\":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case\"nth\":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute(\"id\")===T},TAG:function(U,T){return(T===\"*\"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(\" \"+(U.className||U.getAttribute(\"class\"))+\" \").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+\"\",X=W[2],U=W[4];return T==null?X===\"!=\":X===\"=\"?Z===U:X===\"*=\"?Z.indexOf(U)>=0:X===\"~=\"?(\" \"+Z+\" \").indexOf(U)>=0:!U?Z&&T!==false:X===\"!=\"?Z!=U:X===\"^=\"?Z.indexOf(U)===0:X===\"$=\"?Z.substr(Z.length-U.length)===U:X===\"|=\"?Z===U||Z.substr(0,U.length+1)===U+\"-\":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\\[]*\\])(?![^\\(]*\\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)===\"[object Array]\"){Array.prototype.push.apply(U,X)}else{if(typeof X.length===\"number\"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if(\"sourceIndex\" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement(\"form\"),V=\"script\"+(new Date).getTime();U.innerHTML=\"<input name='\"+V+\"'/>\";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!==\"undefined\"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!==\"undefined\"&&W.getAttributeNode(\"id\").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!==\"undefined\"&&Y.getAttributeNode(\"id\");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement(\"div\");T.appendChild(document.createComment(\"\"));if(T.getElementsByTagName(\"*\").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]===\"*\"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML=\"<a href='#'></a>\";if(T.firstChild&&typeof T.firstChild.getAttribute!==\"undefined\"&&T.firstChild.getAttribute(\"href\")!==\"#\"){I.attrHandle.href=function(U){return U.getAttribute(\"href\",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement(\"div\");U.innerHTML=\"<p class='TEST'></p>\";if(U.querySelectorAll&&U.querySelectorAll(\".TEST\").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement(\"div\");T.innerHTML=\"<div class='test e'></div><div class='test'></div>\";if(T.getElementsByClassName(\"e\").length===0){return}T.lastChild.className=\"e\";if(T.getElementsByClassName(\"e\").length===1){return}I.order.splice(1,0,\"CLASS\");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!==\"undefined\"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U==\"previousSibling\"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U==\"previousSibling\"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!==\"string\"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!==\"HTML\"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X=\"\",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,\"\")}T=I.relative[T]?T+\"*\":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[\":\"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=\":not(\"+V+\")\"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,\"events\")||o.data(I,\"events\",{}),J=o.data(I,\"handle\")||o.data(I,\"handle\",function(){return typeof o!==\"undefined\"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\\s+/),function(M,N){var O=N.split(\".\");N=O.shift();H.type=O.slice().sort().join(\".\");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent(\"on\"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,\"events\"),F,E;if(G){if(H===g||(typeof H===\"string\"&&H.charAt(0)==\".\")){for(var I in G){this.remove(K,I+(H||\"\"))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\\s+/),function(M,O){var Q=O.split(\".\");O=Q.shift();var N=RegExp(\"(^|\\\\.)\"+Q.slice().sort().join(\".*\\\\.\")+\"(\\\\.|$)\");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,\"handle\"),false)}else{if(K.detachEvent){K.detachEvent(\"on\"+O,o.data(K,\"handle\"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,\"handle\");if(L){L.elem=null}o.removeData(K,\"events\");o.removeData(K,\"handle\")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I===\"object\"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf(\"!\")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,\"handle\");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,\"a\")&&G==\"click\"))&&H[\"on\"+G]&&H[\"on\"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,\"a\")&&G==\"click\")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(\".\");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp(\"(^|\\\\.)\"+L.slice().sort().join(\".*\\\\.\")+\"(\\\\.|$)\");E=(o.data(this,\"events\")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:\"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which\".split(\" \"),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp(\"(^|\\\\.)\"+G[0]+\"(\\\\.|$)\");o.each((o.data(this,\"events\").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:\"mouseenter\",mouseout:\"mouseleave\"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F==\"unload\"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp(\"(^|\\\\.)\"+H.type+\"(\\\\.|$)\"),G=true,F=[];o.each(o.data(this,\"events\").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,\"closest\")-o.data(I.elem,\"closest\")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return[\"live\",F,E.replace(/\\./g,\"`\").replace(/ /g,\"|\")].join(\".\")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler(\"ready\")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener(\"DOMContentLoaded\",function(){document.removeEventListener(\"DOMContentLoaded\",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent(\"onreadystatechange\",function(){if(document.readyState===\"complete\"){document.detachEvent(\"onreadystatechange\",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll(\"left\")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,\"load\",o.ready)}o.each((\"blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error\").split(\",\"),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind(\"unload\",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement(\"script\"),K=document.createElement(\"div\"),J=\"script\"+(new Date).getTime();K.style.display=\"none\";K.innerHTML='   <link/><table></table><a href=\"/a\" style=\"color:red;float:left;opacity:.5;\">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName(\"*\"),E=K.getElementsByTagName(\"a\")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName(\"tbody\").length,objectAll:!!K.getElementsByTagName(\"object\")[0].getElementsByTagName(\"*\").length,htmlSerialize:!!K.getElementsByTagName(\"link\").length,style:/red/.test(E.getAttribute(\"style\")),hrefNormalized:E.getAttribute(\"href\")===\"/a\",opacity:E.style.opacity===\"0.5\",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type=\"text/javascript\";try{G.appendChild(document.createTextNode(\"window.\"+J+\"=1;\"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent(\"onclick\",function(){o.support.noCloneEvent=false;K.detachEvent(\"onclick\",arguments.callee)});K.cloneNode(true).fireEvent(\"onclick\")}o(function(){var L=document.createElement(\"div\");L.style.width=L.style.paddingLeft=\"1px\";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display=\"none\"})})();var w=o.support.cssFloat?\"cssFloat\":\"styleFloat\";o.props={\"for\":\"htmlFor\",\"class\":\"className\",\"float\":w,cssFloat:w,styleFloat:w,readonly:\"readOnly\",maxlength:\"maxLength\",cellspacing:\"cellSpacing\",rowspan:\"rowSpan\",tabindex:\"tabIndex\"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!==\"string\"){return this._load(G)}var I=G.indexOf(\" \");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H=\"GET\";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J===\"object\"){J=o.param(J);H=\"POST\"}}}var F=this;o.ajax({url:G,type:H,dataType:\"html\",data:J,complete:function(M,L){if(L==\"success\"||L==\"notmodified\"){F.html(E?o(\"<div/>\").append(M.responseText.replace(/<script(.|\\s)*?\\/script>/g,\"\")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each(\"ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend\".split(\",\"),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:\"GET\",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,\"script\")},getJSON:function(E,F,G){return o.get(E,F,G,\"json\")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:\"POST\",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:\"GET\",contentType:\"application/x-www-form-urlencoded\",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject(\"Microsoft.XMLHTTP\"):new XMLHttpRequest()},accepts:{xml:\"application/xml, text/xml\",html:\"text/html\",script:\"text/javascript, application/javascript\",json:\"application/json, text/javascript\",text:\"text/plain\",_default:\"*/*\"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!==\"string\"){M.data=o.param(M.data)}if(M.dataType==\"jsonp\"){if(G==\"GET\"){if(!M.url.match(F)){M.url+=(M.url.match(/\\?/)?\"&\":\"?\")+(M.jsonp||\"callback\")+\"=?\"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+\"&\":\"\")+(M.jsonp||\"callback\")+\"=?\"}}M.dataType=\"json\"}if(M.dataType==\"json\"&&(M.data&&M.data.match(F)||M.url.match(F))){W=\"jsonp\"+r++;if(M.data){M.data=(M.data+\"\").replace(F,\"=\"+W+\"$1\")}M.url=M.url.replace(F,\"=\"+W+\"$1\");M.dataType=\"script\";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType==\"script\"&&M.cache==null){M.cache=false}if(M.cache===false&&G==\"GET\"){var E=e();var U=M.url.replace(/(\\?|&)_=.*?(&|$)/,\"$1_=\"+E+\"$2\");M.url=U+((U==M.url)?(M.url.match(/\\?/)?\"&\":\"?\")+\"_=\"+E:\"\")}if(M.data&&G==\"GET\"){M.url+=(M.url.match(/\\?/)?\"&\":\"?\")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger(\"ajaxStart\")}var Q=/^(\\w+:)?\\/\\/([^\\/?#]+)/.exec(M.url);if(M.dataType==\"script\"&&G==\"GET\"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName(\"head\")[0];var T=document.createElement(\"script\");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState==\"loaded\"||this.readyState==\"complete\")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader(\"Content-Type\",M.contentType)}if(M.ifModified){J.setRequestHeader(\"If-Modified-Since\",o.lastModified[M.url]||\"Thu, 01 Jan 1970 00:00:00 GMT\")}J.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\");J.setRequestHeader(\"Accept\",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+\", */*\":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger(\"ajaxStop\")}J.abort();return false}if(M.global){o.event.trigger(\"ajaxSend\",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger(\"ajaxStop\")}}}else{if(!K&&J&&(J.readyState==4||X==\"timeout\")){K=true;if(P){clearInterval(P);P=null}R=X==\"timeout\"?\"timeout\":!o.httpSuccess(J)?\"error\":M.ifModified&&o.httpNotModified(J,M.url)?\"notmodified\":\"success\";if(R==\"success\"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R=\"parsererror\"}}if(R==\"success\"){var Y;try{Y=J.getResponseHeader(\"Last-Modified\")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N(\"timeout\")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger(\"ajaxSuccess\",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger(\"ajaxComplete\",[J,M])}if(M.global&&!--o.active){o.event.trigger(\"ajaxStop\")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger(\"ajaxError\",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol==\"file:\"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader(\"Last-Modified\");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader(\"content-type\"),E=H==\"xml\"||!H&&F&&F.indexOf(\"xml\")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName==\"parsererror\"){throw\"parsererror\"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I===\"string\"){if(H==\"script\"){o.globalEval(I)}if(H==\"json\"){I=l[\"eval\"](\"(\"+I+\")\")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+\"=\"+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join(\"&\").replace(/%20/g,\"+\")}});var m={},n,d=[[\"height\",\"marginTop\",\"marginBottom\",\"paddingTop\",\"paddingBottom\"],[\"width\",\"marginLeft\",\"marginRight\",\"paddingLeft\",\"paddingRight\"],[\"opacity\"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t(\"show\",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],\"olddisplay\");this[H].style.display=E||\"\";if(o.css(this[H],\"display\")===\"none\"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o(\"<\"+G+\" />\").appendTo(\"body\");K=I.css(\"display\");if(K===\"none\"){K=\"block\"}I.remove();m[G]=K}o.data(this[H],\"olddisplay\",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],\"olddisplay\")||\"\"}return this}},hide:function(H,I){if(H){return this.animate(t(\"hide\",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],\"olddisplay\");if(!E&&E!==\"none\"){o.data(this[G],\"olddisplay\",o.css(this[G],\"display\"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display=\"none\"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G===\"boolean\";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(\":hidden\");o(this)[H?\"show\":\"hide\"]()}):this.animate(t(\"toggle\",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?\"each\":\"queue\"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(\":hidden\"),J=this;for(M in I){if(I[M]==\"hide\"&&L||I[M]==\"show\"&&!L){return K.complete.call(this)}if((M==\"height\"||M==\"width\")&&this.style){K.display=o.css(this,\"display\");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow=\"hidden\"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S==\"toggle\"?L?\"show\":\"hide\":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||\"px\";if(P!=\"px\"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]==\"-=\"?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,\"\")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t(\"show\",1),slideUp:t(\"hide\",1),slideToggle:t(\"toggle\",1),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G===\"object\"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration===\"number\"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop==\"height\"||this.prop==\"width\")&&this.elem.style){this.elem.style.display=\"block\"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||\"px\";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop==\"width\"||this.prop==\"height\"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,\"display\")==\"none\"){this.elem.style.display=\"block\"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?\"swing\":\"linear\")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,\"opacity\",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!==\"visible\"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position===\"relative\"||E.position===\"static\"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position===\"fixed\"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement(\"div\"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style=\"position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;\"><div></div></div><table style=\"position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;\" cellpadding=\"0\" cellspacing=\"0\"><tr><td></td></tr></table>';M={position:\"absolute\",top:0,left:0,margin:0,border:0,width:\"1px\",height:\"1px\",visibility:\"hidden\"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow=\"hidden\",H.style.position=\"relative\";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop=\"1px\";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,\"marginTop\",true),10)||0,F+=parseInt(o.curCSS(E,\"marginLeft\",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,\"marginTop\");J.left-=j(this,\"marginLeft\");E.top+=j(G,\"borderTopWidth\");E.left+=j(G,\"borderLeftWidth\");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,\"position\")==\"static\")){E=E.offsetParent}return o(E)}});o.each([\"Left\",\"Top\"],function(F,E){var G=\"scroll\"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?\"pageYOffset\":\"pageXOffset\"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each([\"Height\",\"Width\"],function(I,G){var E=I?\"Left\":\"Top\",H=I?\"Right\":\"Bottom\",F=G.toLowerCase();o.fn[\"inner\"+G]=function(){return this[0]?o.css(this[0],F,false,\"padding\"):null};o.fn[\"outer\"+G]=function(K){return this[0]?o.css(this[0],F,false,K?\"margin\":\"border\"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode==\"CSS1Compat\"&&document.documentElement[\"client\"+G]||document.body[\"client\"+G]:this[0]==document?Math.max(document.documentElement[\"client\"+G],document.body[\"scroll\"+G],document.documentElement[\"scroll\"+G],document.body[\"offset\"+G],document.documentElement[\"offset\"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K===\"string\"?K:K+\"px\")}})})();","sourceLength":57254,"scriptType":2,"compilationType":0,"context":{"ref":4},"text":"chrome-extension://hmdcmlfkchdmnmnmheododdhjedfccka/inc/jquery-1.3.2.min.js (lines: 19)"},{"handle":7,"type":"script","name":"chrome-extension://nlbjncdgjeocebhnmkbbbdekmmmcbfjd/feed_finder.js","id":99,"lineOffset":0,"columnOffset":0,"lineCount":90,"source":"// Copyright (c) 2010 The Chromium Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\n// First check to see if this document is a feed. If so, it will redirect.\n// Otherwise, check if it has embedded feed links, such as:\n// (<link rel=\"alternate\" type=\"application/rss+xml\" etc). If so, show the\n// page action icon.\n\ndebugMsg(logLevels.info, \"Running feed finder script\");\n\nif (!isFeedDocument()) {\n  debugMsg(logLevels.info, \"Document is not a feed, check for <link> tags.\");\n  findFeedLinks();\n}\n\n// See if the document contains a <link> tag within the <head> and\n// whether that points to an RSS feed.\nfunction findFeedLinks() {\n  // Find all the RSS link elements.\n  var result = document.evaluate(\n      '//*[local-name()=\"link\"][contains(@rel, \"alternate\")] ' +\n      '[contains(@type, \"rss\") or contains(@type, \"atom\") or ' +\n      'contains(@type, \"rdf\")]', document, null, 0, null);\n\n  var feeds = [];\n  var item;\n  var count = 0;\n  while (item = result.iterateNext()) {\n    feeds.push({\"href\": item.href, \"title\": item.title});\n    ++count;\n  }\n\n  if (count > 0) {\n    // Notify the extension needs to show the RSS page action icon.\n    chrome.extension.sendRequest({msg: \"feedIcon\", feeds: feeds});\n  }\n}\n\n// Check to see if the current document is a feed delivered as plain text,\n// which Chrome does for some mime types, or a feed wrapped in an html.\nfunction isFeedDocument() {\n  var body = document.body;\n\n  debugMsg(logLevels.info, \"Checking if document is feed\");\n\n  var soleTagInBody = \"\";\n  if (body && body.childElementCount == 1) {\n    soleTagInBody = body.children[0].tagName;\n    debugMsg(logLevels.info, \"The sole tag in the body is: \" + soleTagInBody);\n  }\n\n  // Some feeds show up as feed tags within the BODY tag, for example some\n  // ComputerWorld feeds. We cannot check for this at document_start since\n  // the body tag hasn't been defined at that time (contains only HTML element\n  // with no children).\n  if (soleTagInBody == \"RSS\" || soleTagInBody == \"FEED\" ||\n      soleTagInBody == \"RDF\") {\n    debugMsg(logLevels.info, \"Found feed: Tag is: \" + soleTagInBody);\n    chrome.extension.sendRequest({msg: \"feedDocument\", href: location.href});\n    return true;\n  }\n\n  // Chrome renders some content types like application/rss+xml and\n  // application/atom+xml as text/plain, resulting in a body tag with one\n  // PRE child containing the XML. So, we attempt to parse it as XML and look\n  // for RSS tags within.\n  if (soleTagInBody == \"PRE\") {\n    debugMsg(logLevels.info, \"Found feed: Wrapped in PRE\");\n    var domParser = new DOMParser();\n    var doc = domParser.parseFromString(body.textContent, \"text/xml\");\n\n    if (currentLogLevel >= logLevels.error) {\n      var error = doc.getElementsByTagName(\"parsererror\");\n      if (error.length)\n        debugMsg(logLevels.error, 'error: ' + doc.childNodes[0].outerHTML);\n    }\n\n    // |doc| now contains the parsed document within the PRE tag.\n    if (containsFeed(doc)) {\n      // Let the extension know that we should show the subscribe page.\n      chrome.extension.sendRequest({msg: \"feedDocument\", href: location.href});\n      return true;\n    }\n  }\n\n  debugMsg(logLevels.info, \"Exiting: feed is not a feed document\");\n\n  return false;\n}\n","sourceLength":3305,"scriptType":2,"compilationType":0,"context":{"ref":6},"text":"chrome-extension://nlbjncdgjeocebhnmkbbbdekmmmcbfjd/feed_finder.js (lines: 90)"},{"handle":9,"type":"script","id":157,"lineOffset":0,"columnOffset":0,"lineCount":113,"source":"/*\n * Copyright (C) 2010 Google Inc. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n *     * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *     * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n *     * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * @fileoverview Injects \"injected\" object into the inspectable page.\n */\n\n\nvar InspectorControllerDispatcher = {};\n\n/**\n * Main dispatch method, all calls from the host to InspectorController go\n * through this one.\n * @param {string} functionName Function to call\n * @param {string} json_args JSON-serialized call parameters.\n * @return {string} JSON-serialized result of the dispatched call.\n */\nInspectorControllerDispatcher.dispatch = function(functionName, json_args)\n{\n    var params = JSON.parse(json_args);\n    InspectorBackend[functionName].apply(InspectorBackend, params);\n};\n\n/**\n * Special controller object for APU related messages. Outgoing messages\n * are sent to this object if the ApuAgentDispatcher is enabled.\n **/\nvar ApuAgentDispatcher = { enabled : false };\n\n/**\n * Dispatches messages to APU. This filters and transforms\n * outgoing messages that are used by APU.\n * @param {string} method name of the dispatch method.\n **/\nApuAgentDispatcher.dispatchToApu = function(method, args)\n{\n    if (method !== \"addRecordToTimeline\" && method !== \"updateResource\" && method !== \"addResource\")\n        return;\n    // TODO(knorton): Transform args so they can be used\n    // by APU.\n    DevToolsAgentHost.dispatchToApu(JSON.stringify(args));\n};\n\n/**\n * This is called by the InspectorFrontend for serialization.\n * We serialize the call and send it to the client over the IPC\n * using dispatchOut bound method.\n */\nfunction dispatch(method, var_args) {\n    // Handle all messages with non-primitieve arguments here.\n    var args = Array.prototype.slice.call(arguments);\n\n    if (method === \"inspectedWindowCleared\" || method === \"reset\" || method === \"setAttachedWindow\") {\n        // Filter out messages we don't need here.\n        // We do it on the sender side since they may have non-serializable\n        // parameters.\n        return;\n    }\n\n    // Sniff some inspector controller state changes in order to support\n    // cross-navigation instrumentation. Keep names in sync with\n    // webdevtoolsagent_impl.\n    if (method === \"timelineProfilerWasStarted\")\n        DevToolsAgentHost.runtimeFeatureStateChanged(\"timeline-profiler\", true);\n    else if (method === \"timelineProfilerWasStopped\")\n        DevToolsAgentHost.runtimeFeatureStateChanged(\"timeline-profiler\", false);\n    else if (method === \"resourceTrackingWasEnabled\")\n        DevToolsAgentHost.runtimeFeatureStateChanged(\"resource-tracking\", true);\n    else if (method === \"resourceTrackingWasDisabled\")\n        DevToolsAgentHost.runtimeFeatureStateChanged(\"resource-tracking\", false);\n\n    if (ApuAgentDispatcher.enabled) {\n        ApuAgentDispatcher.dispatchToApu(method, args);\n        return;\n    }\n\n    var call = JSON.stringify(args);\n    DevToolsAgentHost.dispatch(call);\n};\n\nfunction close() {\n    // This method is called when InspectorFrontend closes in layout tests.\n}\n\nfunction inspectedPageDestroyed() {\n}\n","sourceLength":4468,"scriptType":2,"compilationType":0,"context":{"ref":8},"text":"undefined (lines: 113)"},{"handle":11,"type":"script","name":"chrome-extension://gkndfifopckmhdkohjeoljlbfnjhekfg/jquery-1.4.min.js","id":93,"lineOffset":0,"columnOffset":0,"lineCount":151,"source":"/*!\n * jQuery JavaScript Library v1.4\n * http://jquery.com/\n *\n * Copyright 2010, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://docs.jquery.com/License\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n * Copyright 2010, The Dojo Foundation\n * Released under the MIT, BSD, and GPL Licenses.\n *\n * Date: Wed Jan 13 15:23:05 2010 -0500\n */\n(function(A,w){function oa(){if(!c.isReady){try{s.documentElement.doScroll(\"left\")}catch(a){setTimeout(oa,1);return}c.ready()}}function La(a,b){b.src?c.ajax({url:b.src,async:false,dataType:\"script\"}):c.globalEval(b.text||b.textContent||b.innerHTML||\"\");b.parentNode&&b.parentNode.removeChild(b)}function $(a,b,d,f,e,i){var j=a.length;if(typeof b===\"object\"){for(var o in b)$(a,o,b[o],f,e,d);return a}if(d!==w){f=!i&&f&&c.isFunction(d);for(o=0;o<j;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,i);return a}return j?\ne(a[0],b):null}function K(){return(new Date).getTime()}function aa(){return false}function ba(){return true}function pa(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function qa(a){var b=true,d=[],f=[],e=arguments,i,j,o,p,n,t=c.extend({},c.data(this,\"events\").live);for(p in t){j=t[p];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete t[p]}i=c(a.target).closest(f,a.currentTarget);\nn=0;for(l=i.length;n<l;n++)for(p in t){j=t[p];o=i[n].elem;f=null;if(i[n].selector===j.selector){if(j.live===\"mouseenter\"||j.live===\"mouseleave\")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==o)d.push({elem:o,fn:j})}}n=0;for(l=d.length;n<l;n++){i=d[n];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}function ra(a,b){return[\"live\",a,b.replace(/\\./g,\"`\").replace(/ /g,\"&\")].join(\".\")}function sa(a){return!a||!a.parentNode||a.parentNode.nodeType===\n11}function ta(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ua(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]===\"string\"&&a[0].length<512&&a[0].indexOf(\"<option\")<0){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:s;f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=\ni?f:1;return{fragment:f,cacheable:e}}function T(a){for(var b=0,d,f;(d=a[b])!=null;b++)if(!c.noData[d.nodeName.toLowerCase()]&&(f=d[H]))delete c.cache[f]}function L(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return\"scrollTo\"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ma=A.jQuery,Na=A.$,s=A.document,U,Oa=/^[^<]*(<[\\w\\W]+>)[^>]*$|^#([\\w-]+)$/,Pa=/^.[^:#\\[\\.,]*$/,Qa=/\\S/,\nRa=/^(\\s|\\u00A0)+|(\\s|\\u00A0)+$/g,Sa=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,P=navigator.userAgent,xa=false,Q=[],M,ca=Object.prototype.toString,da=Object.prototype.hasOwnProperty,ea=Array.prototype.push,R=Array.prototype.slice,V=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a===\"string\")if((d=Oa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Sa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];\nc.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ua([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return U.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a)}else return!b||b.jquery?(b||U).find(a):c(b).find(a);else if(c.isFunction(a))return U.ready(a);if(a.selector!==w){this.selector=a.selector;\nthis.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a,this)},selector:\"\",jquery:\"1.4\",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b===\"find\")a.selector=this.selector+(this.selector?\" \":\"\")+d;else if(b)a.selector=this.selector+\".\"+b+\"(\"+d+\")\";return a},setArray:function(a){this.length=\n0;ea.apply(this,a);return this},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),\"slice\",R.call(arguments).join(\",\"))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||\nc(null)},push:ea,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,o;if(typeof a===\"boolean\"){f=a;a=arguments[1]||{};b=2}if(typeof a!==\"object\"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];o=e[i];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(o)?[]:{};a[i]=c.extend(f,j,o)}else if(o!==w)a[i]=\no}return a};c.extend({noConflict:function(a){A.$=Na;if(a)A.jQuery=Ma;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler(\"ready\")}},bindReady:function(){if(!xa){xa=true;if(s.readyState===\"complete\")return c.ready();if(s.addEventListener){s.addEventListener(\"DOMContentLoaded\",M,false);A.addEventListener(\"load\",c.ready,false)}else if(s.attachEvent){s.attachEvent(\"onreadystatechange\",\nM);A.attachEvent(\"onload\",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&oa()}}},isFunction:function(a){return ca.call(a)===\"[object Function]\"},isArray:function(a){return ca.call(a)===\"[object Array]\"},isPlainObject:function(a){if(!a||ca.call(a)!==\"[object Object]\"||a.nodeType||a.setInterval)return false;if(a.constructor&&!da.call(a,\"constructor\")&&!da.call(a.constructor.prototype,\"isPrototypeOf\"))return false;var b;for(b in a);return b===w||da.call(a,b)},\nisEmptyObject:function(a){for(var b in a)return false;return true},noop:function(){},globalEval:function(a){if(a&&Qa.test(a)){var b=s.getElementsByTagName(\"head\")[0]||s.documentElement,d=s.createElement(\"script\");d.type=\"text/javascript\";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===w||c.isFunction(a);\nif(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||\"\").replace(Ra,\"\")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a===\"string\"||c.isFunction(a)||typeof a!==\"function\"&&a.setInterval?ea.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=\n0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length===\"number\")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b===\n\"string\"){d=a;a=d[b];b=w}else if(b&&!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){var b={browser:\"\"};a=a.toLowerCase();if(/webkit/.test(a))b={browser:\"webkit\",version:/webkit[\\/ ]([\\w.]+)/};else if(/opera/.test(a))b={browser:\"opera\",version:/version/.test(a)?/version[\\/ ]([\\w.]+)/:/opera[\\/ ]([\\w.]+)/};else if(/msie/.test(a))b={browser:\"msie\",version:/msie ([\\w.]+)/};else if(/mozilla/.test(a)&&\n!/compatible/.test(a))b={browser:\"mozilla\",version:/rv:([\\w.]+)/};b.version=(b.version&&b.version.exec(a)||[0,\"0\"])[1];return b},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=true;if(V)c.inArray=function(a,b){return V.call(b,a)};U=c(s);if(s.addEventListener)M=function(){s.removeEventListener(\"DOMContentLoaded\",M,false);c.ready()};else if(s.attachEvent)M=function(){if(s.readyState===\"complete\"){s.detachEvent(\"onreadystatechange\",\nM);c.ready()}};if(V)c.inArray=function(a,b){return V.call(b,a)};(function(){c.support={};var a=s.documentElement,b=s.createElement(\"script\"),d=s.createElement(\"div\"),f=\"script\"+K();d.style.display=\"none\";d.innerHTML=\"   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>\";var e=d.getElementsByTagName(\"*\"),i=d.getElementsByTagName(\"a\")[0];if(!(!e||!e.length||!i)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName(\"tbody\").length,\nhtmlSerialize:!!d.getElementsByTagName(\"link\").length,style:/red/.test(i.getAttribute(\"style\")),hrefNormalized:i.getAttribute(\"href\")===\"/a\",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName(\"input\")[0].value===\"on\",optSelected:s.createElement(\"select\").appendChild(s.createElement(\"option\")).selected,scriptEval:false,noCloneEvent:true,boxModel:null};b.type=\"text/javascript\";try{b.appendChild(s.createTextNode(\"window.\"+f+\"=1;\"))}catch(j){}a.insertBefore(b,\na.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent(\"onclick\",function o(){c.support.noCloneEvent=false;d.detachEvent(\"onclick\",o)});d.cloneNode(true).fireEvent(\"onclick\")}c(function(){var o=s.createElement(\"div\");o.style.width=o.style.paddingLeft=\"1px\";s.body.appendChild(o);c.boxModel=c.support.boxModel=o.offsetWidth===2;s.body.removeChild(o).style.display=\"none\"});a=function(o){var p=s.createElement(\"div\");o=\"on\"+o;var n=o in\np;if(!n){p.setAttribute(o,\"return;\");n=typeof p[o]===\"function\"}return n};c.support.submitBubbles=a(\"submit\");c.support.changeBubbles=a(\"change\");a=b=d=e=i=null}})();c.props={\"for\":\"htmlFor\",\"class\":\"className\",readonly:\"readOnly\",maxlength:\"maxLength\",cellspacing:\"cellSpacing\",rowspan:\"rowSpan\",colspan:\"colSpan\",tabindex:\"tabIndex\",usemap:\"useMap\",frameborder:\"frameBorder\"};var H=\"jQuery\"+K(),Ta=0,ya={},Ua={};c.extend({cache:{},expando:H,noData:{embed:true,object:true,applet:true},data:function(a,\nb,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?ya:a;var f=a[H],e=c.cache;if(!b&&!f)return null;f||(f=++Ta);if(typeof b===\"object\"){a[H]=f;e=e[f]=c.extend(true,{},b)}else e=e[f]?e[f]:typeof d===\"undefined\"?Ua:(e[f]={});if(d!==w){a[H]=f;e[b]=d}return typeof b===\"string\"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?ya:a;var d=a[H],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[H]}catch(i){a.removeAttribute&&\na.removeAttribute(H)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a===\"undefined\"&&this.length)return c.data(this[0]);else if(typeof a===\"object\")return this.each(function(){c.data(this,a)});var d=a.split(\".\");d[1]=d[1]?\".\"+d[1]:\"\";if(b===w){var f=this.triggerHandler(\"getData\"+d[1]+\"!\",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger(\"setData\"+d[1]+\"!\",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,\na)})}});c.extend({queue:function(a,b,d){if(a){b=(b||\"fx\")+\"queue\";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||\"fx\";var d=c.queue(a,b),f=d.shift();if(f===\"inprogress\")f=d.shift();if(f){b===\"fx\"&&d.unshift(\"inprogress\");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!==\"string\"){b=a;a=\"fx\"}if(b===w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,\na,b);a===\"fx\"&&d[0]!==\"inprogress\"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||\"fx\";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||\"fx\",[])}});var za=/[\\n\\t]/g,fa=/\\s+/,Va=/\\r/g,Wa=/href|src|style/,Xa=/(button|input)/i,Ya=/(button|input|object|select|textarea)/i,Za=/^(a|area)$/i,Aa=/radio|checkbox/;c.fn.extend({attr:function(a,\nb){return $(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,\"\");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(p){var n=c(this);n.addClass(a.call(this,p,n.attr(\"class\")))});if(a&&typeof a===\"string\")for(var b=(a||\"\").split(fa),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=\" \"+e.className+\" \",j=0,o=b.length;j<o;j++){if(i.indexOf(\" \"+b[j]+\" \")<0)e.className+=\n\" \"+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(p){var n=c(this);n.removeClass(a.call(this,p,n.attr(\"class\")))});if(a&&typeof a===\"string\"||a===w)for(var b=(a||\"\").split(fa),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(\" \"+e.className+\" \").replace(za,\" \"),j=0,o=b.length;j<o;j++)i=i.replace(\" \"+b[j]+\" \",\" \");e.className=i.substring(1,i.length-1)}else e.className=\"\"}return this},toggleClass:function(a,\nb){var d=typeof a,f=typeof b===\"boolean\";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr(\"class\"),b),b)});return this.each(function(){if(d===\"string\")for(var e,i=0,j=c(this),o=b,p=a.split(fa);e=p[i++];){o=f?o:!j.hasClass(e);j[o?\"addClass\":\"removeClass\"](e)}else if(d===\"undefined\"||d===\"boolean\"){this.className&&c.data(this,\"__className__\",this.className);this.className=this.className||a===false?\"\":c.data(this,\"__className__\")||\"\"}})},hasClass:function(a){a=\n\" \"+a+\" \";for(var b=0,d=this.length;b<d;b++)if((\" \"+this[b].className+\" \").replace(za,\" \").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,\"option\"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,\"select\")){var d=b.selectedIndex,f=[],e=b.options;b=b.type===\"select-one\";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(Aa.test(b.type)&&\n!c.support.checkOn)return b.getAttribute(\"value\")===null?\"on\":b.value;return(b.value||\"\").replace(Va,\"\")}return w}var o=c.isFunction(a);return this.each(function(p){var n=c(this),t=a;if(this.nodeType===1){if(o)t=a.call(this,p,n.val());if(typeof t===\"number\")t+=\"\";if(c.isArray(t)&&Aa.test(this.type))this.checked=c.inArray(n.val(),t)>=0;else if(c.nodeName(this,\"select\")){var z=c.makeArray(t);c(\"option\",this).each(function(){this.selected=c.inArray(c(this).val(),z)>=0});if(!z.length)this.selectedIndex=\n-1}else this.value=t}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Wa.test(b);if(b in a&&f&&!i){if(e){if(b===\"type\"&&Xa.test(a.nodeName)&&a.parentNode)throw\"type property can't be changed\";a[b]=d}if(c.nodeName(a,\"form\")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;\nif(b===\"tabIndex\")return(b=a.getAttributeNode(\"tabIndex\"))&&b.specified?b.value:Ya.test(a.nodeName)||Za.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b===\"style\"){if(e)a.style.cssText=\"\"+d;return a.style.cssText}e&&a.setAttribute(b,\"\"+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var $a=function(a){return a.replace(/[^\\w\\s\\.\\|`]/g,function(b){return\"\\\\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===\n3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;if(!d.guid)d.guid=c.guid++;if(f!==w){d=c.proxy(d);d.data=f}var e=c.data(a,\"events\")||c.data(a,\"events\",{}),i=c.data(a,\"handle\"),j;if(!i){j=function(){return typeof c!==\"undefined\"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):w};i=c.data(a,\"handle\",j)}if(i){i.elem=a;b=b.split(/\\s+/);for(var o,p=0;o=b[p++];){var n=o.split(\".\");o=n.shift();d.type=n.slice(0).sort().join(\".\");var t=e[o],z=this.special[o]||{};if(!t){t=e[o]={};\nif(!z.setup||z.setup.call(a,f,n,d)===false)if(a.addEventListener)a.addEventListener(o,i,false);else a.attachEvent&&a.attachEvent(\"on\"+o,i)}if(z.add)if((n=z.add.call(a,d,f,n,t))&&c.isFunction(n)){n.guid=n.guid||d.guid;d=n}t[d.guid]=d;this.global[o]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,\"events\"),e,i,j;if(f){if(b===w||typeof b===\"string\"&&b.charAt(0)===\".\")for(i in f)this.remove(a,i+(b||\"\"));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\\s+/);\nfor(var o=0;i=b[o++];){var p=i.split(\".\");i=p.shift();var n=!p.length,t=c.map(p.slice(0).sort(),$a);t=new RegExp(\"(^|\\\\.)\"+t.join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\");var z=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var B in f[i])if(n||t.test(f[i][B].type))delete f[i][B];z.remove&&z.remove.call(a,p,j);for(e in f[i])break;if(!e){if(!z.teardown||z.teardown.call(a,p)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,\"handle\"),false);else a.detachEvent&&a.detachEvent(\"on\"+\ni,c.data(a,\"handle\"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(B=c.data(a,\"handle\"))B.elem=null;c.removeData(a,\"events\");c.removeData(a,\"handle\")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a===\"object\"?a[H]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf(\"!\")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===\n8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;var i=c.data(d,\"handle\");i&&i.apply(d,b);var j,o;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){j=d[e];o=d[\"on\"+e]}}catch(p){}i=c.nodeName(d,\"a\")&&e===\"click\";if(!f&&j&&!a.isDefaultPrevented()&&!i){this.triggered=true;try{d[e]()}catch(n){}}else if(o&&d[\"on\"+e].apply(d,b)===false)a.result=false;this.triggered=false;if(!a.isPropagationStopped())(d=d.parentNode||d.ownerDocument)&&c.event.trigger(a,b,d,true)},\nhandle:function(a){var b,d;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;d=a.type.split(\".\");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp(\"(^|\\\\.)\"+d.slice(0).sort().join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\");d=(c.data(this,\"events\")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},\nprops:\"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which\".split(\" \"),fix:function(a){if(a[H])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||\ns;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&\na.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;c.event.add(this,b.live,qa,b)},remove:function(a){if(a.length){var b=0,d=new RegExp(\"(^|\\\\.)\"+a[0]+\"(\\\\.|$)\");c.each(c.data(this,\"events\").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],qa)}},special:{}},beforeunload:{setup:function(a,\nb,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=K();this[H]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ba;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=\nba;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ba;this.stopPropagation()},isDefaultPrevented:aa,isPropagationStopped:aa,isImmediatePropagationStopped:aa};var Ba=function(a){for(var b=a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ca=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:\"mouseover\",\nmouseleave:\"mouseout\"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ca:Ba,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ca:Ba)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!==\"form\"){c.event.add(this,\"click.specialSubmit.\"+d.guid,function(f){var e=f.target,i=e.type;if((i===\"submit\"||i===\"image\")&&c(e).closest(\"form\").length)return pa(\"submit\",this,arguments)});c.event.add(this,\"keypress.specialSubmit.\"+\nd.guid,function(f){var e=f.target,i=e.type;if((i===\"text\"||i===\"password\")&&c(e).closest(\"form\").length&&f.keyCode===13)return pa(\"submit\",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,\"click.specialSubmit\"+(b?\".\"+b.guid:\"\"));c.event.remove(this,\"keypress.specialSubmit\"+(b?\".\"+b.guid:\"\"))}};if(!c.support.changeBubbles){var ga=/textarea|input|select/i;function Da(a){var b=a.type,d=a.value;if(b===\"radio\"||b===\"checkbox\")d=a.checked;else if(b===\"select-multiple\")d=a.selectedIndex>\n-1?c.map(a.options,function(f){return f.selected}).join(\"-\"):\"\";else if(a.nodeName.toLowerCase()===\"select\")d=a.selectedIndex;return d}function ha(a,b){var d=a.target,f,e;if(!(!ga.test(d.nodeName)||d.readOnly)){f=c.data(d,\"_change_data\");e=Da(d);if(e!==f){if(a.type!==\"focusout\"||d.type!==\"radio\")c.data(d,\"_change_data\",e);if(d.type!==\"select\"&&(f!=null||e)){a.type=\"change\";return c.event.trigger(a,b,this)}}}}c.event.special.change={filters:{focusout:ha,click:function(a){var b=a.target,d=b.type;if(d===\n\"radio\"||d===\"checkbox\"||b.nodeName.toLowerCase()===\"select\")return ha.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!==\"textarea\"||a.keyCode===32&&(d===\"checkbox\"||d===\"radio\")||d===\"select-multiple\")return ha.call(this,a)},beforeactivate:function(a){a=a.target;a.nodeName.toLowerCase()===\"input\"&&a.type===\"radio\"&&c.data(a,\"_change_data\",Da(a))}},setup:function(a,b,d){for(var f in W)c.event.add(this,f+\".specialChange.\"+d.guid,W[f]);return ga.test(this.nodeName)},\nremove:function(a,b){for(var d in W)c.event.remove(this,d+\".specialChange\"+(b?\".\"+b.guid:\"\"),W[d]);return ga.test(this.nodeName)}};var W=c.event.special.change.filters}s.addEventListener&&c.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each([\"bind\",\"one\"],function(a,b){c.fn[b]=function(d,\nf,e){if(typeof d===\"object\"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){thisObject=e;e=f;f=w}var j=b===\"one\"?c.proxy(e,function(o){c(this).unbind(o,j);return e.apply(this,arguments)}):e;return d===\"unload\"&&b!==\"one\"?this.one(d,f,e,thisObject):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a,b){if(typeof a===\"object\"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,\nb){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,\"lastToggle\"+a.guid)||0)%d;c.data(this,\"lastToggle\"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||\na)},live:function(a,b,d){if(c.isFunction(b)){d=b;b=w}c(this.context).bind(ra(a,this.selector),{data:b,selector:this.selector,live:a},d);return this},die:function(a,b){c(this.context).unbind(ra(a,this.selector),b?{guid:b.guid+this.selector+a}:null);return this}});c.each(\"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error\".split(\" \"),function(a,b){c.fn[b]=function(d){return d?\nthis.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent(\"onunload\",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h=\"\",k,m=0;g[m];m++){k=g[m];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,m,r,q){r=0;for(var v=m.length;r<v;r++){var u=m[r];if(u){u=u[g];for(var y=false;u;){if(u.sizcache===\nk){y=m[u.sizset];break}if(u.nodeType===1&&!q){u.sizcache=k;u.sizset=r}if(u.nodeName.toLowerCase()===h){y=u;break}u=u[g]}m[r]=y}}}function d(g,h,k,m,r,q){r=0;for(var v=m.length;r<v;r++){var u=m[r];if(u){u=u[g];for(var y=false;u;){if(u.sizcache===k){y=m[u.sizset];break}if(u.nodeType===1){if(!q){u.sizcache=k;u.sizset=r}if(typeof h!==\"string\"){if(u===h){y=true;break}}else if(p.filter(h,[u]).length>0){y=u;break}}u=u[g]}m[r]=y}}}var f=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^[\\]]*\\]|['\"][^'\"]*['\"]|[^[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,\ne=0,i=Object.prototype.toString,j=false,o=true;[0,0].sort(function(){o=false;return 0});var p=function(g,h,k,m){k=k||[];var r=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!==\"string\")return k;for(var q=[],v,u,y,S,I=true,N=x(h),J=g;(f.exec(\"\"),v=f.exec(J))!==null;){J=v[3];q.push(v[1]);if(v[2]){S=v[3];break}}if(q.length>1&&t.exec(g))if(q.length===2&&n.relative[q[0]])u=ia(q[0]+q[1],h);else for(u=n.relative[q[0]]?[h]:p(q.shift(),h);q.length;){g=q.shift();if(n.relative[g])g+=q.shift();\nu=ia(g,u)}else{if(!m&&q.length>1&&h.nodeType===9&&!N&&n.match.ID.test(q[0])&&!n.match.ID.test(q[q.length-1])){v=p.find(q.shift(),h,N);h=v.expr?p.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:q.pop(),set:B(m)}:p.find(q.pop(),q.length===1&&(q[0]===\"~\"||q[0]===\"+\")&&h.parentNode?h.parentNode:h,N);u=v.expr?p.filter(v.expr,v.set):v.set;if(q.length>0)y=B(u);else I=false;for(;q.length;){var E=q.pop();v=E;if(n.relative[E])v=q.pop();else E=\"\";if(v==null)v=h;n.relative[E](y,v,N)}}else y=[]}y||(y=u);if(!y)throw\"Syntax error, unrecognized expression: \"+\n(E||g);if(i.call(y)===\"[object Array]\")if(I)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&F(h,y[g])))k.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&k.push(u[g]);else k.push.apply(k,y);else B(y,k);if(S){p(S,r,k,m);p.uniqueSort(k)}return k};p.uniqueSort=function(g){if(D){j=o;g.sort(D);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};p.matches=function(g,h){return p(g,null,null,h)};p.find=function(g,h,k){var m,r;if(!g)return[];\nfor(var q=0,v=n.order.length;q<v;q++){var u=n.order[q];if(r=n.leftMatch[u].exec(g)){var y=r[1];r.splice(1,1);if(y.substr(y.length-1)!==\"\\\\\"){r[1]=(r[1]||\"\").replace(/\\\\/g,\"\");m=n.find[u](r,h,k);if(m!=null){g=g.replace(n.match[u],\"\");break}}}}m||(m=h.getElementsByTagName(\"*\"));return{set:m,expr:g}};p.filter=function(g,h,k,m){for(var r=g,q=[],v=h,u,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var I in n.filter)if((u=n.leftMatch[I].exec(g))!=null&&u[2]){var N=n.filter[I],J,E;E=u[1];y=false;u.splice(1,1);if(E.substr(E.length-\n1)!==\"\\\\\"){if(v===q)q=[];if(n.preFilter[I])if(u=n.preFilter[I](u,v,k,q,m,S)){if(u===true)continue}else y=J=true;if(u)for(var X=0;(E=v[X])!=null;X++)if(E){J=N(E,u,X,v);var Ea=m^!!J;if(k&&J!=null)if(Ea)y=true;else v[X]=false;else if(Ea){q.push(E);y=true}}if(J!==w){k||(v=q);g=g.replace(n.match[I],\"\");if(!y)return[];break}}}if(g===r)if(y==null)throw\"Syntax error, unrecognized expression: \"+g;else break;r=g}return v};var n=p.selectors={order:[\"ID\",\"NAME\",\"TAG\"],match:{ID:/#((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)/,\nCLASS:/\\.((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)/,NAME:/\\[name=['\"]*((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)['\"]*\\]/,ATTR:/\\[\\s*((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)\\s*(?:(\\S?=)\\s*(['\"]*)(.*?)\\3|)\\s*\\]/,TAG:/^((?:[\\w\\u00c0-\\uFFFF\\*-]|\\\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\\((even|odd|[\\dn+-]*)\\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\))?(?=[^-]|$)/,PSEUDO:/:((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)(?:\\((['\"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},leftMatch:{},attrMap:{\"class\":\"className\",\"for\":\"htmlFor\"},attrHandle:{href:function(g){return g.getAttribute(\"href\")}},\nrelative:{\"+\":function(g,h){var k=typeof h===\"string\",m=k&&!/\\W/.test(h);k=k&&!m;if(m)h=h.toLowerCase();m=0;for(var r=g.length,q;m<r;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=k||q&&q.nodeName.toLowerCase()===h?q||false:q===h}k&&p.filter(h,g,true)},\">\":function(g,h){var k=typeof h===\"string\";if(k&&!/\\W/.test(h)){h=h.toLowerCase();for(var m=0,r=g.length;m<r;m++){var q=g[m];if(q){k=q.parentNode;g[m]=k.nodeName.toLowerCase()===h?k:false}}}else{m=0;for(r=g.length;m<r;m++)if(q=g[m])g[m]=\nk?q.parentNode:q.parentNode===h;k&&p.filter(h,g,true)}},\"\":function(g,h,k){var m=e++,r=d;if(typeof h===\"string\"&&!/\\W/.test(h)){var q=h=h.toLowerCase();r=b}r(\"parentNode\",h,m,g,q,k)},\"~\":function(g,h,k){var m=e++,r=d;if(typeof h===\"string\"&&!/\\W/.test(h)){var q=h=h.toLowerCase();r=b}r(\"previousSibling\",h,m,g,q,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!==\"undefined\"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!==\"undefined\"){var k=[];\nh=h.getElementsByName(g[1]);for(var m=0,r=h.length;m<r;m++)h[m].getAttribute(\"name\")===g[1]&&k.push(h[m]);return k.length===0?null:k}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,m,r,q){g=\" \"+g[1].replace(/\\\\/g,\"\")+\" \";if(q)return g;q=0;for(var v;(v=h[q])!=null;q++)if(v)if(r^(v.className&&(\" \"+v.className+\" \").replace(/[\\t\\n]/g,\" \").indexOf(g)>=0))k||m.push(v);else if(k)h[q]=false;return false},ID:function(g){return g[1].replace(/\\\\/g,\"\")},TAG:function(g){return g[1].toLowerCase()},\nCHILD:function(g){if(g[1]===\"nth\"){var h=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.exec(g[2]===\"even\"&&\"2n\"||g[2]===\"odd\"&&\"2n+1\"||!/\\D/.test(g[2])&&\"0n+\"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,m,r,q){h=g[1].replace(/\\\\/g,\"\");if(!q&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]===\"~=\")g[4]=\" \"+g[4]+\" \";return g},PSEUDO:function(g,h,k,m,r){if(g[1]===\"not\")if((f.exec(g[3])||\"\").length>1||/^\\w/.test(g[3]))g[3]=p(g[3],null,null,h);else{g=p.filter(g[3],h,k,true^r);k||m.push.apply(m,\ng);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!==\"hidden\"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!p(k[3],g).length},header:function(g){return/h\\d/i.test(g.nodeName)},\ntext:function(g){return\"text\"===g.type},radio:function(g){return\"radio\"===g.type},checkbox:function(g){return\"checkbox\"===g.type},file:function(g){return\"file\"===g.type},password:function(g){return\"password\"===g.type},submit:function(g){return\"submit\"===g.type},image:function(g){return\"image\"===g.type},reset:function(g){return\"reset\"===g.type},button:function(g){return\"button\"===g.type||g.nodeName.toLowerCase()===\"button\"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},\nsetFilters:{first:function(g,h){return h===0},last:function(g,h,k,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,m){var r=h[1],q=n.filters[r];if(q)return q(g,k,h,m);else if(r===\"contains\")return(g.textContent||g.innerText||a([g])||\"\").indexOf(h[3])>=0;else if(r===\"not\"){h=\nh[3];k=0;for(m=h.length;k<m;k++)if(h[k]===g)return false;return true}else throw\"Syntax error, unrecognized expression: \"+r;},CHILD:function(g,h){var k=h[1],m=g;switch(k){case \"only\":case \"first\":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(k===\"first\")return true;m=g;case \"last\":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case \"nth\":k=h[2];var r=h[3];if(k===1&&r===0)return true;h=h[0];var q=g.parentNode;if(q&&(q.sizcache!==h||!g.nodeIndex)){var v=0;for(m=q.firstChild;m;m=\nm.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;q.sizcache=h}g=g.nodeIndex-r;return k===0?g===0:g%k===0&&g/k>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute(\"id\")===h},TAG:function(g,h){return h===\"*\"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(\" \"+(g.className||g.getAttribute(\"class\"))+\" \").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=n.attrHandle[k]?n.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+\"\";var m=h[2];h=h[4];return g==null?m===\"!=\":m===\n\"=\"?k===h:m===\"*=\"?k.indexOf(h)>=0:m===\"~=\"?(\" \"+k+\" \").indexOf(h)>=0:!h?k&&g!==false:m===\"!=\"?k!==h:m===\"^=\"?k.indexOf(h)===0:m===\"$=\"?k.substr(k.length-h.length)===h:m===\"|=\"?k===h||k.substr(0,h.length+1)===h+\"-\":false},POS:function(g,h,k,m){var r=n.setFilters[h[2]];if(r)return r(g,k,h,m)}}},t=n.match.POS;for(var z in n.match){n.match[z]=new RegExp(n.match[z].source+/(?![^\\[]*\\])(?![^\\(]*\\))/.source);n.leftMatch[z]=new RegExp(/(^(?:.|\\r|\\n)*?)/.source+n.match[z].source.replace(/\\\\(\\d+)/g,function(g,\nh){return\"\\\\\"+(h-0+1)}))}var B=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){B=function(g,h){h=h||[];if(i.call(g)===\"[object Array]\")Array.prototype.push.apply(h,g);else if(typeof g.length===\"number\")for(var k=0,m=g.length;k<m;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var D;if(s.documentElement.compareDocumentPosition)D=function(g,h){if(!g.compareDocumentPosition||\n!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)j=true;return g};else if(\"sourceIndex\"in s.documentElement)D=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(s.createRange)D=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),m=\nh.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)j=true;return g};(function(){var g=s.createElement(\"div\"),h=\"script\"+(new Date).getTime();g.innerHTML=\"<a name='\"+h+\"'/>\";var k=s.documentElement;k.insertBefore(g,k.firstChild);if(s.getElementById(h)){n.find.ID=function(m,r,q){if(typeof r.getElementById!==\"undefined\"&&!q)return(r=r.getElementById(m[1]))?r.id===m[1]||typeof r.getAttributeNode!==\"undefined\"&&\nr.getAttributeNode(\"id\").nodeValue===m[1]?[r]:w:[]};n.filter.ID=function(m,r){var q=typeof m.getAttributeNode!==\"undefined\"&&m.getAttributeNode(\"id\");return m.nodeType===1&&q&&q.nodeValue===r}}k.removeChild(g);k=g=null})();(function(){var g=s.createElement(\"div\");g.appendChild(s.createComment(\"\"));if(g.getElementsByTagName(\"*\").length>0)n.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]===\"*\"){h=[];for(var m=0;k[m];m++)k[m].nodeType===1&&h.push(k[m]);k=h}return k};g.innerHTML=\"<a href='#'></a>\";\nif(g.firstChild&&typeof g.firstChild.getAttribute!==\"undefined\"&&g.firstChild.getAttribute(\"href\")!==\"#\")n.attrHandle.href=function(h){return h.getAttribute(\"href\",2)};g=null})();s.querySelectorAll&&function(){var g=p,h=s.createElement(\"div\");h.innerHTML=\"<p class='TEST'></p>\";if(!(h.querySelectorAll&&h.querySelectorAll(\".TEST\").length===0)){p=function(m,r,q,v){r=r||s;if(!v&&r.nodeType===9&&!x(r))try{return B(r.querySelectorAll(m),q)}catch(u){}return g(m,r,q,v)};for(var k in g)p[k]=g[k];h=null}}();\n(function(){var g=s.createElement(\"div\");g.innerHTML=\"<div class='test e'></div><div class='test'></div>\";if(!(!g.getElementsByClassName||g.getElementsByClassName(\"e\").length===0)){g.lastChild.className=\"e\";if(g.getElementsByClassName(\"e\").length!==1){n.order.splice(1,0,\"CLASS\");n.find.CLASS=function(h,k,m){if(typeof k.getElementsByClassName!==\"undefined\"&&!m)return k.getElementsByClassName(h[1])};g=null}}})();var F=s.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,\nh){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!==\"HTML\":false},ia=function(g,h){var k=[],m=\"\",r;for(h=h.nodeType?[h]:h;r=n.match.PSEUDO.exec(g);){m+=r[0];g=g.replace(n.match.PSEUDO,\"\")}g=n.relative[g]?g+\"*\":g;r=0;for(var q=h.length;r<q;r++)p(g,h[r],k);return p.filter(m,k)};c.find=p;c.expr=p.selectors;c.expr[\":\"]=c.expr.filters;c.unique=p.uniqueSort;c.getText=a;c.isXMLDoc=x;c.contains=F})();var ab=/Until$/,bb=/^(?:parents|prevUntil|prevAll)/,\ncb=/,/;R=Array.prototype.slice;var Fa=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b===\"string\"){var f=c.grep(a,function(e){return e.nodeType===1});if(Pa.test(b))return c.filter(b,f,!d);else b=c.filter(b,a)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack(\"\",\"find\",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;\nc.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Fa(this,a,false),\"not\",a)},filter:function(a){return this.pushStack(Fa(this,a,true),\"filter\",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i=\n{},j;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var p=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,t){for(;t&&t.ownerDocument&&t!==b;){if(p?p.index(t)>-1:c(t).is(a))return t;t=t.parentNode}return null})},index:function(a){if(!a||typeof a===\n\"string\")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a===\"string\"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(sa(a[0])||sa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,\"parentNode\")},parentsUntil:function(a,b,d){return c.dir(a,\"parentNode\",\nd)},next:function(a){return c.nth(a,2,\"nextSibling\")},prev:function(a){return c.nth(a,2,\"previousSibling\")},nextAll:function(a){return c.dir(a,\"nextSibling\")},prevAll:function(a){return c.dir(a,\"previousSibling\")},nextUntil:function(a,b,d){return c.dir(a,\"nextSibling\",d)},prevUntil:function(a,b,d){return c.dir(a,\"previousSibling\",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,\"iframe\")?\na.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);ab.test(a)||(f=d);if(f&&typeof f===\"string\")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||cb.test(f))&&bb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(\",\"))}});c.extend({filter:function(a,b,d){if(d)a=\":not(\"+a+\")\";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||!c(a).is(d));){a.nodeType===\n1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ga=/ jQuery\\d+=\"(?:\\d+|null)\"/g,Y=/^\\s+/,db=/(<([\\w:]+)[^>]*?)\\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\\w:]+)/,fb=/<tbody/i,gb=/<|&\\w+;/,hb=function(a,b,d){return eb.test(d)?a:b+\"></\"+d+\">\"},G={option:[1,\"<select multiple='multiple'>\",\"</select>\"],\nlegend:[1,\"<fieldset>\",\"</fieldset>\"],thead:[1,\"<table>\",\"</table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],area:[1,\"<map>\",\"</map>\"],_default:[0,\"\",\"\"]};G.optgroup=G.option;G.tbody=G.tfoot=G.colgroup=G.caption=G.thead;G.th=G.td;if(!c.support.htmlSerialize)G._default=[1,\"div<div>\",\"</div>\"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);\nreturn d.text(a.call(this,b,d.text()))});if(typeof a!==\"object\"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.getText(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},\nwrapInner:function(a){return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,\"body\")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&\nthis.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,\"before\",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,\n\"after\",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement(\"div\");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ga,\"\").replace(Y,\"\")],f)[0]}else return this.cloneNode(true)});if(a===true){ta(this,b);ta(this.find(\"*\"),b.find(\"*\"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===\n1?this[0].innerHTML.replace(Ga,\"\"):null;else if(typeof a===\"string\"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!Y.test(a))&&!G[(Ha.exec(a)||[\"\",\"\"])[1].toLowerCase()])try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){T(this[b].getElementsByTagName(\"*\"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&\nthis[0].parentNode){c.isFunction(a)||(a=c(a).detach());return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),\"replaceWith\",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(t){return c.nodeName(t,\"table\")?t.getElementsByTagName(\"tbody\")[0]||t.appendChild(t.ownerDocument.createElement(\"tbody\")):t}var e,i,j=a[0],o=[];if(c.isFunction(j))return this.each(function(t){var z=\nc(this);a[0]=j.call(this,t,b?z.html():w);return z.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ua(a,this,o);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,\"tr\");for(var p=0,n=this.length;p<n;p++)d.call(b?f(this[p],i):this[p],e.cacheable||this.length>1||p>0?e.fragment.cloneNode(true):e.fragment)}o&&c.each(o,La)}return this}});c.fragments={};c.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},\nfunction(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){T(this.getElementsByTagName(\"*\"));T([this])}this.parentNode&&this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&T(this.getElementsByTagName(\"*\"));this.firstChild;)this.removeChild(this.firstChild)}},\nfunction(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement===\"undefined\")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;var e=[];c.each(a,function(i,j){if(typeof j===\"number\")j+=\"\";if(j){if(typeof j===\"string\"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j===\"string\"){j=j.replace(db,hb);var o=(Ha.exec(j)||[\"\",\"\"])[1].toLowerCase(),p=G[o]||G._default,n=p[0];i=b.createElement(\"div\");for(i.innerHTML=p[1]+j+p[2];n--;)i=i.lastChild;\nif(!c.support.tbody){n=fb.test(j);o=o===\"table\"&&!n?i.firstChild&&i.firstChild.childNodes:p[1]===\"<table>\"&&!n?i.childNodes:[];for(p=o.length-1;p>=0;--p)c.nodeName(o[p],\"tbody\")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!c.support.leadingWhitespace&&Y.test(j)&&i.insertBefore(b.createTextNode(Y.exec(j)[0]),i.firstChild);j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],\"script\")&&(!e[a].type||e[a].type.toLowerCase()===\n\"text/javascript\"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName(\"script\"))));d.appendChild(e[a])}return e}});var ib=/z-?index|font-?weight|opacity|zoom|line-?height/i,Ia=/alpha\\([^)]*\\)/,Ja=/opacity=([^)]*)/,ja=/float/i,ka=/-([a-z])/ig,jb=/([A-Z])/g,kb=/^-?\\d+(?:px)?$/i,lb=/^-?\\d/,mb={position:\"absolute\",visibility:\"hidden\",display:\"block\"},nb=[\"Left\",\"Right\"],ob=[\"Top\",\"Bottom\"],pb=s.defaultView&&\ns.defaultView.getComputedStyle,Ka=c.support.cssFloat?\"cssFloat\":\"styleFloat\",la=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return $(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e===\"number\"&&!ib.test(f))e+=\"px\";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b===\"width\"||b===\"height\")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b===\"opacity\"){if(e){f.zoom=1;b=parseInt(d,10)+\"\"===\n\"NaN\"?\"\":\"alpha(opacity=\"+d*100+\")\";a=f.filter||c.curCSS(a,\"filter\")||\"\";f.filter=Ia.test(a)?a.replace(Ia,b):b}return f.filter&&f.filter.indexOf(\"opacity=\")>=0?parseFloat(Ja.exec(f.filter)[1])/100+\"\":\"\"}if(ja.test(b))b=Ka;b=b.replace(ka,la);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b===\"width\"||b===\"height\"){var e,i=b===\"width\"?nb:ob;function j(){e=b===\"width\"?a.offsetWidth:a.offsetHeight;f!==\"border\"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,\"padding\"+this,true))||0);if(f===\"margin\")e+=\nparseFloat(c.curCSS(a,\"margin\"+this,true))||0;else e-=parseFloat(c.curCSS(a,\"border\"+this+\"Width\",true))||0})}a.offsetWidth!==0?j():c.swap(a,mb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b===\"opacity\"&&a.currentStyle){f=Ja.test(a.currentStyle.filter||\"\")?parseFloat(RegExp.$1)/100+\"\":\"\";return f===\"\"?\"1\":f}if(ja.test(b))b=Ka;if(!d&&e&&e[b])f=e[b];else if(pb){if(ja.test(b))b=\"float\";b=b.replace(jb,\"-$1\").toLowerCase();e=\na.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b===\"opacity\"&&f===\"\")f=\"1\"}else if(a.currentStyle){d=b.replace(ka,la);f=a.currentStyle[b]||a.currentStyle[d];if(!kb.test(f)&&lb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d===\"fontSize\"?\"1em\":f||0;f=e.pixelLeft+\"px\";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=\nf[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()===\"tr\";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,\"display\")===\"none\"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var qb=K(),rb=/<script(.|\\s)*?\\/script>/gi,sb=/select|textarea/i,tb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,O=/=\\?(&|$)/,ma=/\\?/,ub=/(\\?|&)_=.*?(&|$)/,vb=/^(\\w+:)?\\/\\/([^\\/?#]+)/,\nwb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!==\"string\")return this._load(a);else if(!this.length)return this;var f=a.indexOf(\" \");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f=\"GET\";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===\"object\"){b=c.param(b,c.ajaxSettings.traditional);f=\"POST\"}c.ajax({url:a,type:f,dataType:\"html\",data:b,context:this,complete:function(i,j){if(j===\"success\"||j===\"notmodified\")this.html(e?c(\"<div />\").append(i.responseText.replace(rb,\n\"\")).find(e):i.responseText);d&&this.each(d,[i.responseText,j,i])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||sb.test(this.nodeName)||tb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});\nc.each(\"ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend\".split(\" \"),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:\"GET\",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,\"script\")},getJSON:function(a,b,d){return c.get(a,b,d,\"json\")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:\"POST\",url:a,data:b,success:d,dataType:f})},\najaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:\"GET\",contentType:\"application/x-www-form-urlencoded\",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!==\"file:\"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject(\"Microsoft.XMLHTTP\")}catch(a){}},accepts:{xml:\"application/xml, text/xml\",html:\"text/html\",script:\"text/javascript, application/javascript\",json:\"application/json, text/javascript\",\ntext:\"text/plain\",_default:\"*/*\"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(p,o,j,x);e.global&&f(\"ajaxSuccess\",[x,e])}function d(){e.complete&&e.complete.call(p,x,j);e.global&&f(\"ajaxComplete\",[x,e]);e.global&&!--c.active&&c.event.trigger(\"ajaxStop\")}function f(r,q){(e.context?c(e.context):c.event).trigger(r,q)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,o,p=e.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!==\"string\")e.data=c.param(e.data,\ne.traditional);if(e.dataType===\"jsonp\"){if(n===\"GET\")O.test(e.url)||(e.url+=(ma.test(e.url)?\"&\":\"?\")+(e.jsonp||\"callback\")+\"=?\");else if(!e.data||!O.test(e.data))e.data=(e.data?e.data+\"&\":\"\")+(e.jsonp||\"callback\")+\"=?\";e.dataType=\"json\"}if(e.dataType===\"json\"&&(e.data&&O.test(e.data)||O.test(e.url))){i=e.jsonpCallback||\"jsonp\"+qb++;if(e.data)e.data=(e.data+\"\").replace(O,\"=\"+i+\"$1\");e.url=e.url.replace(O,\"=\"+i+\"$1\");e.dataType=\"script\";A[i]=A[i]||function(r){o=r;b();d();A[i]=w;try{delete A[i]}catch(q){}B&&\nB.removeChild(C)}}if(e.dataType===\"script\"&&e.cache===null)e.cache=false;if(e.cache===false&&n===\"GET\"){var t=K(),z=e.url.replace(ub,\"$1_=\"+t+\"$2\");e.url=z+(z===e.url?(ma.test(e.url)?\"&\":\"?\")+\"_=\"+t:\"\")}if(e.data&&n===\"GET\")e.url+=(ma.test(e.url)?\"&\":\"?\")+e.data;e.global&&!c.active++&&c.event.trigger(\"ajaxStart\");t=(t=vb.exec(e.url))&&(t[1]&&t[1]!==location.protocol||t[2]!==location.host);if(e.dataType===\"script\"&&n===\"GET\"&&t){var B=s.getElementsByTagName(\"head\")[0]||s.documentElement,C=s.createElement(\"script\");\nC.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!i){var D=false;C.onload=C.onreadystatechange=function(){if(!D&&(!this.readyState||this.readyState===\"loaded\"||this.readyState===\"complete\")){D=true;b();d();C.onload=C.onreadystatechange=null;B&&C.parentNode&&B.removeChild(C)}}}B.insertBefore(C,B.firstChild);return w}var F=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader(\"Content-Type\",\ne.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader(\"If-Modified-Since\",c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader(\"If-None-Match\",c.etag[e.url])}t||x.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\");x.setRequestHeader(\"Accept\",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+\", */*\":e.accepts._default)}catch(ia){}if(e.beforeSend&&e.beforeSend.call(p,x,e)===false){e.global&&!--c.active&&c.event.trigger(\"ajaxStop\");x.abort();return false}e.global&&f(\"ajaxSend\",\n[x,e]);var g=x.onreadystatechange=function(r){if(!x||x.readyState===0){F||d();F=true;if(x)x.onreadystatechange=c.noop}else if(!F&&x&&(x.readyState===4||r===\"timeout\")){F=true;x.onreadystatechange=c.noop;j=r===\"timeout\"?\"timeout\":!c.httpSuccess(x)?\"error\":e.ifModified&&c.httpNotModified(x,e.url)?\"notmodified\":\"success\";if(j===\"success\")try{o=c.httpData(x,e.dataType,e)}catch(q){j=\"parsererror\"}if(j===\"success\"||j===\"notmodified\")i||b();else c.handleError(e,x,j);d();r===\"timeout\"&&x.abort();if(e.async)x=\nnull}};try{var h=x.abort;x.abort=function(){if(x){h.call(x);if(x)x.readyState=0}g()}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){x&&!F&&g(\"timeout\")},e.timeout);try{x.send(n===\"POST\"||n===\"PUT\"||n===\"DELETE\"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||A,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger(\"ajaxError\",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol===\n\"file:\"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader(\"Last-Modified\"),f=a.getResponseHeader(\"Etag\");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader(\"content-type\")||\"\",e=b===\"xml\"||!b&&f.indexOf(\"xml\")>=0;a=e?a.responseXML:a.responseText;if(e&&a.documentElement.nodeName===\"parsererror\")throw\"parsererror\";if(d&&\nd.dataFilter)a=d.dataFilter(a,b);if(typeof a===\"string\")if(b===\"json\"||!b&&f.indexOf(\"json\")>=0)if(/^[\\],:{}\\s]*$/.test(a.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,\"@\").replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,\"]\").replace(/(?:^|:|,)(?:\\s*\\[)+/g,\"\")))a=A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function(\"return \"+a))();else throw\"Invalid JSON: \"+a;else if(b===\"script\"||!b&&f.indexOf(\"javascript\")>=0)c.globalEval(a);return a},param:function(a,b){function d(e,i){i=\nc.isFunction(i)?i():i;f[f.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(i)}var f=[];if(b===w)b=c.ajaxSettings.traditional;c.isArray(a)||a.jquery?c.each(a,function(){d(this.name,this.value)}):c.each(a,function e(i,j){if(c.isArray(j))c.each(j,function(o,p){b?d(i,p):e(i+\"[\"+(typeof p===\"object\"||c.isArray(p)?o:\"\")+\"]\",p)});else!b&&j!=null&&typeof j===\"object\"?c.each(j,function(o,p){e(i+\"[\"+o+\"]\",p)}):d(i,j)});return f.join(\"&\").replace(wb,\"+\")}});var na={},xb=/toggle|show|hide/,yb=/^([+-]=)?([\\d+-.]+)(.*)$/,\nZ,va=[[\"height\",\"marginTop\",\"marginBottom\",\"paddingTop\",\"paddingBottom\"],[\"width\",\"marginLeft\",\"marginRight\",\"paddingLeft\",\"paddingRight\"],[\"opacity\"]];c.fn.extend({show:function(a,b){if(a!=null)return this.animate(L(\"show\",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],\"olddisplay\");this[a].style.display=d||\"\";if(c.css(this[a],\"display\")===\"none\"){d=this[a].nodeName;var f;if(na[d])f=na[d];else{var e=c(\"<\"+d+\" />\").appendTo(\"body\");f=e.css(\"display\");if(f===\"none\")f=\"block\";e.remove();\nna[d]=f}c.data(this[a],\"olddisplay\",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],\"olddisplay\")||\"\";return this}},hide:function(a,b){if(a!=null)return this.animate(L(\"hide\",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],\"olddisplay\");!d&&d!==\"none\"&&c.data(this[a],\"olddisplay\",c.css(this[a],\"display\"))}a=0;for(b=this.length;a<b;a++)this[a].style.display=\"none\";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a===\"boolean\";if(c.isFunction(a)&&\nc.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(\":hidden\");c(this)[f?\"show\":\"hide\"]()}):this.animate(L(\"toggle\",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(\":hidden\").css(\"opacity\",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?\"each\":\"queue\"](function(){var i=c.extend({},e),j,o=this.nodeType===1&&c(this).is(\":hidden\"),\np=this;for(j in a){var n=j.replace(ka,la);if(j!==n){a[n]=a[j];delete a[j];j=n}if(a[j]===\"hide\"&&o||a[j]===\"show\"&&!o)return i.complete.call(this);if((j===\"height\"||j===\"width\")&&this.style){i.display=c.css(this,\"display\");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow=\"hidden\";i.curAnim=c.extend({},a);c.each(a,function(t,z){var B=new c.fx(p,i,t);if(xb.test(z))B[z===\"toggle\"?o?\"show\":\"hide\":z](a);\nelse{var C=yb.exec(z),D=B.cur(true)||0;if(C){z=parseFloat(C[2]);var F=C[3]||\"px\";if(F!==\"px\"){p.style[t]=(z||1)+F;D=(z||1)/B.cur(true)*D;p.style[t]=D+F}if(C[1])z=(C[1]===\"-=\"?-1:1)*z+D;B.custom(D,z,F)}else B.custom(D,z,\"\")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:L(\"show\",1),slideUp:L(\"hide\",1),slideToggle:L(\"toggle\",\n1),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a===\"object\"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===\"number\"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,\nb,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop===\"height\"||this.prop===\"width\")&&this.elem.style)this.elem.style.display=\"block\"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==\nnull))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=K();this.start=a;this.end=b;this.unit=d||this.unit||\"px\";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!Z)Z=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===\n\"width\"||this.prop===\"height\"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=K(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=\nthis.options.overflow;a=c.data(this.elem,\"olddisplay\");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,\"display\")===\"none\")this.elem.style.display=\"block\"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?\"swing\":\"linear\");this.pos=\nc.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(Z);Z=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,\"opacity\",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=\nnull)a.elem.style[a.prop]=(a.prop===\"width\"||a.prop===\"height\"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset=\"getBoundingClientRect\"in s.documentElement?function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),\nf=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(t){c.offset.setOffset(this,a,t)});if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=\nb,e=b.ownerDocument,i,j=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var p=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==j;){if(c.offset.supportsFixedPosition&&f.position===\"fixed\")break;i=e?e.getComputedStyle(b,null):b.currentStyle;p-=b.scrollTop;n-=b.scrollLeft;if(b===d){p+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){p+=parseFloat(i.borderTopWidth)||\n0;n+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!==\"visible\"){p+=parseFloat(i.borderTopWidth)||0;n+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position===\"relative\"||f.position===\"static\"){p+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&f.position===\"fixed\"){p+=Math.max(j.scrollTop,o.scrollTop);n+=Math.max(j.scrollLeft,o.scrollLeft)}return{top:p,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement(\"div\"),\nd,f,e,i=parseFloat(c.curCSS(a,\"marginTop\",true))||0;c.extend(b.style,{position:\"absolute\",top:0,left:0,margin:0,border:0,width:\"1px\",height:\"1px\",visibility:\"hidden\"});b.innerHTML=\"<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>\";a.insertBefore(b,a.firstChild);\nd=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position=\"fixed\";f.style.top=\"20px\";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top=\"\";d.style.overflow=\"hidden\";d.style.position=\"relative\";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop},\nbodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,\"marginTop\",true))||0;d+=parseFloat(c.curCSS(a,\"marginLeft\",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,\"position\")))a.style.position=\"relative\";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,\"top\",true),10)||0,j=parseInt(c.curCSS(a,\"left\",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left-\ne.left+j};\"using\"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,\"marginTop\",true))||0;d.left-=parseFloat(c.curCSS(a,\"marginLeft\",true))||0;f.top+=parseFloat(c.curCSS(b[0],\"borderTopWidth\",true))||0;f.left+=parseFloat(c.curCSS(b[0],\"borderLeftWidth\",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=\nthis.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,\"position\")===\"static\";)a=a.offsetParent;return a})}});c.each([\"Left\",\"Top\"],function(a,b){var d=\"scroll\"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==w)return this.each(function(){if(i=wa(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=wa(e))?\"pageXOffset\"in i?i[a?\"pageYOffset\":\"pageXOffset\"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}});\nc.each([\"Height\",\"Width\"],function(a,b){var d=b.toLowerCase();c.fn[\"inner\"+b]=function(){return this[0]?c.css(this[0],d,false,\"padding\"):null};c.fn[\"outer\"+b]=function(f){return this[0]?c.css(this[0],d,false,f?\"margin\":\"border\"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;return\"scrollTo\"in e&&e.document?e.document.compatMode===\"CSS1Compat\"&&e.document.documentElement[\"client\"+b]||e.document.body[\"client\"+b]:e.nodeType===9?Math.max(e.documentElement[\"client\"+b],e.body[\"scroll\"+\nb],e.documentElement[\"scroll\"+b],e.body[\"offset\"+b],e.documentElement[\"offset\"+b]):f===w?c.css(e,d):this.css(d,typeof f===\"string\"?f:f+\"px\")}});A.jQuery=A.$=c})(window);\n","sourceLength":69838,"scriptType":2,"compilationType":0,"context":{"ref":10},"text":"chrome-extension://gkndfifopckmhdkohjeoljlbfnjhekfg/jquery-1.4.min.js (lines: 151)"},{"handle":13,"type":"script","name":"chrome-extension://gffjhibehnempbkeheiccaincokdjbfe/mailto.js","id":91,"lineOffset":0,"columnOffset":0,"lineCount":57,"source":"var mailUrl = \"https://mail.google.com/mail/?view=cm&fs=1&tf=1&to=\";\r\nvar openInTab = false;\r\n    \r\nchrome.extension.sendRequest({command: \"getURL\"}, function(response) {\r\n  mailUrl = response.URL + \"?view=cm&fs=1&tf=1&to=\";\r\n  openInTab = response.openTab;\r\n  rewriteMailtosOnPage();\r\n});\r\n\r\nfunction rewriteMailtoToGMailUrl(inUrl) {\r\n    var retUrl = inUrl;    \r\n    var subject = retUrl.match(/subject=([^&]*)/i);\r\n    if(subject != null) {\r\n        subject = encodeURIComponent(unescape(subject[1]));\r\n        retUrl = retUrl.replace(/subject=([^&]*)/i, \"su=\" + subject);    \r\n    }    \r\n    retUrl = retUrl.replace(\"?\", \"&\");\r\n    retUrl = retUrl.replace(/CC=/i, \"cc=\");\r\n    retUrl = retUrl.replace(/BCC=/i, \"bcc=\");\r\n    retUrl = retUrl.replace(/Body=/i, \"body=\");\r\n    retUrl = retUrl.replace(\"mailto:\", mailUrl);\r\n    return retUrl;\r\n}\r\n\r\n// Content Scripts\r\nfunction rewriteMailtosOnPage() {\r\n  // Find all the mailto links.\r\n  var result = document.evaluate(\r\n      '//a[contains(@href, \"mailto:\")]',\r\n      document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);\r\n\r\n  var item;\r\n  var nodes = [];\r\n  // cannot change the NODE_ITERATOR nodes' attributes in this loop itself\r\n  // since iterateNext will invalidate the state; Need to store temporarily.\r\n  while (item = result.iterateNext()) {\r\n    nodes.push(item);\r\n  }\r\n  \r\n  for (var i = 0; i < nodes.length; i++) {\r\n    var mailto_str = nodes[i].getAttribute('href');\r\n    mailto_str = rewriteMailtoToGMailUrl(mailto_str);\r\n    if(openInTab) {\r\n        nodes[i].setAttribute('href', mailto_str);\r\n        nodes[i].setAttribute('target', '_blank');\r\n    } else {\r\n        //nodes[i].setAttribute('href', \"javascript:window.open('\" + mailto_str + \"','Compose new message','width=640,height=480')\");\r\n        nodes[i].setAttribute('href', \"javascript:void(0)\");\r\n        nodes[i].setAttribute('onclick', \"window.open('\" + mailto_str + \"','Compose new message','width=640,height=480')\");\r\n    }\r\n    nodes[i].setAttribute('rel', 'noreferrer');\r\n  }\r\n}\r\n\r\nif (window == top) {\r\n  //window.addEventListener(\"focus\", rewriteMailtosOnPage);\r\n}","sourceLength":2109,"scriptType":2,"compilationType":0,"context":{"ref":12},"text":"chrome-extension://gffjhibehnempbkeheiccaincokdjbfe/mailto.js (lines: 57)"},{"handle":15,"type":"script","name":"chrome-extension://ognampngfcbddbfemdapefohjiobgbdl/data_loader.js","id":87,"lineOffset":0,"columnOffset":0,"lineCount":68,"source":"function isRecordDump() {\n  return (document.documentElement.getAttribute(\"isDump\") == \"true\");\n}\n\nfunction sendData(port, dataContainer) {\n  // 0.8 was the last version to not version saved files.\n  var version = dataContainer.getAttribute(\"version\") || \"0.8\";\n  var allData = dataContainer.innerHTML;\n  for (var start = 0, end = allData.indexOf('\\n', 0);\n       end != -1; end = allData.indexOf('\\n', start)) {\n    var recordStr = allData.slice(start, end);\n    // Make sure the recordStr is not simply all whitespace.\n    if (!/^\\s*$/.test(recordStr)) {\n      port.postMessage({\n        version: version,\n        record : recordStr\n      });\n    }\n    start = end + 1;\n  }\n  var info = document.getElementById(\"info\");\n  info.innerHTML = \"(loading... complete!)\";\n}\n\nfunction loadData() {\n  var dataContainer = document.getElementById(\"traceData\");\n  if (dataContainer) {\n    var portName = \n      (dataContainer.getAttribute(\"isRaw\") == \"true\") ? \"RAW_DATA_LOAD\" : \"DATA_LOAD\";\n    var port = chrome.extension.connect( {\n      name : portName\n    });\n    // We send the data when the monitor is ready for it.\n    port.onMessage.addListener(function(msg) {\n      if (msg.ready) {\n        sendData(port, dataContainer);\n      }\n    });\n  }\n}\n\nfunction injectLoadUi() {\n  // The logo image src is not valid when not served from extensions process.\n  // We use a data url to show it in this context.\n  var logoSrc = \"data:image/png;base64, \";\n  var logo = document.getElementById(\"logo\");\n  if (logo) {\n    logo.src = logoSrc;\n  }\n  // Put a button in there that asks if they want to view us.\n  var info = document.getElementById(\"info\");\n  info.innerHTML = \"\";\n  if (info) {\n    var viewButton = document.createElement(\"input\");\n    viewButton.type = \"button\";\n    viewButton.value = \"Open Monitor!\";\n    viewButton.style[\"cursor\"] = \"pointer\";\n    viewButton.addEventListener(\"click\", function(evt){\n        info.innerHTML = \"(loading...)\";\n        loadData();\n    }, false);\n    info.appendChild(viewButton);\n  }\n}\n\nif (window == top && isRecordDump()) {\n  injectLoadUi();\n}","sourceLength":9688,"scriptType":2,"compilationType":0,"context":{"ref":14},"text":"chrome-extension://ognampngfcbddbfemdapefohjiobgbdl/data_loader.js (lines: 68)"},{"handle":17,"type":"script","id":153,"lineOffset":0,"columnOffset":0,"lineCount":1000,"source":"/*\n * Copyright (C) 2007 Apple Inc.  All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1.  Redistributions of source code must retain the above copyright\n *     notice, this list of conditions and the following disclaimer.\n * 2.  Redistributions in binary form must reproduce the above copyright\n *     notice, this list of conditions and the following disclaimer in the\n *     documentation and/or other materials provided with the distribution.\n * 3.  Neither the name of Apple Computer, Inc. (\"Apple\") nor the names of\n *     its contributors may be used to endorse or promote products derived\n *     from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar injectedScriptConstructor = (function (InjectedScriptHost, inspectedWindow, injectedScriptId) {\n\nvar InjectedScript = {};\n\nInjectedScript.lastBoundObjectId = 1;\nInjectedScript.idToWrappedObject = {};\nInjectedScript.objectGroups = {};\n\nInjectedScript.wrapObjectForConsole = function(object, canAccessInspectedWindow)\n{\n    if (canAccessInspectedWindow)\n        return InjectedScript.wrapObject(object, \"console\");\n    var result = {};\n    result.type = typeof object;\n    result.description = InjectedScript._toString(object);\n    return result;\n}\n\nInjectedScript.wrapObject = function(object, objectGroupName)\n{\n    try {\n        var objectId;\n        if (typeof object === \"object\" || typeof object === \"function\" || InjectedScript._isHTMLAllCollection(object)) {\n            var id = InjectedScript.lastBoundObjectId++;\n            objectId = \"object#\" + id;\n            InjectedScript.idToWrappedObject[objectId] = object;\n\n            var group = InjectedScript.objectGroups[objectGroupName];\n            if (!group) {\n                group = [];\n                InjectedScript.objectGroups[objectGroupName] = group;\n            }\n            group.push(objectId);\n        }\n        return InjectedScript.createProxyObject(object, objectId);\n    } catch (e) {\n        return InjectedScript.createProxyObject(\"[ Exception: \" + e.toString() + \" ]\");\n    }\n    return InjectedScript.createProxyObject(object, objectId);\n};\n\nInjectedScript.unwrapObject = function(objectId) {\n    return InjectedScript.idToWrappedObject[objectId];\n};\n\nInjectedScript.releaseWrapperObjectGroup = function(objectGroupName) {\n    var group = InjectedScript.objectGroups[objectGroupName];\n    if (!group)\n        return;\n    for (var i = 0; i < group.length; i++)\n        delete InjectedScript.idToWrappedObject[group[i]];\n    delete InjectedScript.objectGroups[objectGroupName];\n};\n\n// Called from within InspectorController on the 'inspected page' side.\nInjectedScript.reset = function()\n{\n    InjectedScript._searchResults = [];\n    InjectedScript._includedInSearchResultsPropertyName = \"__includedInInspectorSearchResults\";\n}\n\nInjectedScript.reset();\n\nInjectedScript.dispatch = function(methodName, args, callId)\n{\n    var argsArray = eval(\"(\" + args + \")\");\n    if (callId)\n        argsArray.splice(0, 0, callId);  // Methods that run asynchronously have a call back id parameter.\n    var result = InjectedScript[methodName].apply(InjectedScript, argsArray);\n    if (typeof result === \"undefined\") {\n        inspectedWindow.console.error(\"Web Inspector error: InjectedScript.%s returns undefined\", methodName);\n        result = null;\n    }\n    return result;\n}\n\nInjectedScript.getPrototypes = function(nodeId)\n{\n    var node = InjectedScript._nodeForId(nodeId);\n    if (!node)\n        return false;\n\n    var result = [];\n    for (var prototype = node; prototype; prototype = prototype.__proto__) {\n        var title = InjectedScript._describe(prototype, true);\n        if (title.match(/Prototype$/)) {\n            title = title.replace(/Prototype$/, \"\");\n        }\n        result.push(title);\n    }\n    return result;\n}\n\nInjectedScript.getProperties = function(objectProxy, ignoreHasOwnProperty, abbreviate)\n{\n    var object = InjectedScript._resolveObject(objectProxy);\n    if (!InjectedScript._isDefined(object))\n        return false;\n    var properties = [];\n    var propertyNames = ignoreHasOwnProperty ? InjectedScript._getPropertyNames(object) : Object.getOwnPropertyNames(object);\n    if (!ignoreHasOwnProperty && object.__proto__)\n        propertyNames.push(\"__proto__\");\n\n    // Go over properties, prepare results.\n    for (var i = 0; i < propertyNames.length; ++i) {\n        var propertyName = propertyNames[i];\n\n        var property = {};\n        property.name = propertyName + \"\";\n        property.parentObjectProxy = objectProxy;\n        var isGetter = object[\"__lookupGetter__\"] && object.__lookupGetter__(propertyName);\n        if (!property.isGetter) {\n            try {\n                var childObject = object[propertyName];\n                var childObjectProxy = new InjectedScript.createProxyObject(childObject, objectProxy.objectId, abbreviate);\n                childObjectProxy.path = objectProxy.path ? objectProxy.path.slice() : [];\n                childObjectProxy.path.push(propertyName);\n                property.value = childObjectProxy;\n            } catch(e) {\n                property.value = { description: e.toString() };\n                property.isError = true;\n            }\n        } else {\n            // FIXME: this should show something like \"getter\" (bug 16734).\n            property.value = { description: \"\\u2014\" }; // em dash\n            property.isGetter = true;\n        }\n        properties.push(property);\n    }\n    return properties;\n}\n\nInjectedScript.setPropertyValue = function(objectProxy, propertyName, expression)\n{\n    var object = InjectedScript._resolveObject(objectProxy);\n    if (!InjectedScript._isDefined(object))\n        return false;\n\n    var expressionLength = expression.length;\n    if (!expressionLength) {\n        delete object[propertyName];\n        return !(propertyName in object);\n    }\n\n    try {\n        // Surround the expression in parenthesis so the result of the eval is the result\n        // of the whole expression not the last potential sub-expression.\n\n        // There is a regression introduced here: eval is now happening against global object,\n        // not call frame while on a breakpoint.\n        // TODO: bring evaluation against call frame back.\n        var result = inspectedWindow.eval(\"(\" + expression + \")\");\n        // Store the result in the property.\n        object[propertyName] = result;\n        return true;\n    } catch(e) {\n        try {\n            var result = inspectedWindow.eval(\"\\\"\" + InjectedScript._escapeCharacters(expression, \"\\\"\") + \"\\\"\");\n            object[propertyName] = result;\n            return true;\n        } catch(e) {\n            return false;\n        }\n    }\n}\n\nInjectedScript.getNodePropertyValue = function(nodeId, propertyName)\n{\n    var node = InjectedScript._nodeForId(nodeId);\n    if (!node)\n        return false;\n    var result = node[propertyName];\n    return result !== undefined ? result : false;\n}\n\nInjectedScript.setOuterHTML = function(nodeId, value, expanded)\n{\n    var node = InjectedScript._nodeForId(nodeId);\n    if (!node)\n        return false;\n\n    var parent = node.parentNode;\n    var prevSibling = node.previousSibling;\n    node.outerHTML = value;\n    var newNode = prevSibling ? prevSibling.nextSibling : parent.firstChild;\n\n    return InjectedScriptHost.pushNodePathToFrontend(newNode, expanded, false);\n}\n\nInjectedScript._populatePropertyNames = function(object, resultSet)\n{\n    for (var o = object; o; o = o.__proto__) {\n        try {\n            var names = Object.getOwnPropertyNames(o);\n            for (var i = 0; i < names.length; ++i)\n                resultSet[names[i] + \"\"] = true;\n        } catch (e) {\n        }\n    }\n}\n\nInjectedScript._getPropertyNames = function(object, resultSet)\n{\n    var propertyNameSet = {};\n    InjectedScript._populatePropertyNames(object, propertyNameSet);\n    return Object.keys(propertyNameSet);\n}\n\nInjectedScript.getCompletions = function(expression, includeInspectorCommandLineAPI, callFrameId)\n{\n    var props = {};\n    try {\n        var expressionResult;\n        // Evaluate on call frame if call frame id is available.\n        if (typeof callFrameId === \"number\") {\n            var callFrame = InjectedScript._callFrameForId(callFrameId);\n            if (!callFrame)\n                return props;\n            if (expression)\n                expressionResult = InjectedScript._evaluateOn(callFrame.evaluate, callFrame, expression, true);\n            else {\n                // Evaluate into properties in scope of the selected call frame.\n                var scopeChain = callFrame.scopeChain;\n                for (var i = 0; i < scopeChain.length; ++i)\n                    InjectedScript._populatePropertyNames(scopeChain[i], props);\n            }\n        } else {\n            if (!expression)\n                expression = \"this\";\n            expressionResult = InjectedScript._evaluateOn(inspectedWindow.eval, inspectedWindow, expression);\n        }\n        if (typeof expressionResult == \"object\")\n            InjectedScript._populatePropertyNames(expressionResult, props);\n        if (includeInspectorCommandLineAPI)\n            for (var prop in inspectedWindow.console._inspectorCommandLineAPI)\n                if (prop.charAt(0) !== '_')\n                    props[prop] = true;\n    } catch(e) {\n    }\n    return props;\n}\n\nInjectedScript.evaluate = function(expression, objectGroup)\n{\n    return InjectedScript._evaluateAndWrap(inspectedWindow.eval, inspectedWindow, expression, objectGroup);\n}\n\nInjectedScript._evaluateAndWrap = function(evalFunction, object, expression, objectGroup, dontUseCommandLineAPI)\n{\n    var result = {};\n    try {\n        result.value = InjectedScript.wrapObject(InjectedScript._evaluateOn(evalFunction, object, expression, dontUseCommandLineAPI), objectGroup);\n\n        // Handle error that might have happened while describing result.\n        if (result.value.errorText) {\n            result.value = result.value.errorText;\n            result.isException = true;\n        }\n    } catch (e) {\n        result.value = e.toString();\n        result.isException = true;\n    }\n    return result;\n}\n\nInjectedScript._evaluateOn = function(evalFunction, object, expression, dontUseCommandLineAPI)\n{\n    InjectedScript._ensureCommandLineAPIInstalled(evalFunction, object);\n    // Surround the expression in with statements to inject our command line API so that\n    // the window object properties still take more precedent than our API functions.\n    if (!dontUseCommandLineAPI)\n        expression = \"with (window.console._inspectorCommandLineAPI) { with (window) {\\n\" + expression + \"\\n} }\";\n\n    var value = evalFunction.call(object, expression);\n\n    // When evaluating on call frame error is not thrown, but returned as a value.\n    if (InjectedScript._type(value) === \"error\")\n        throw value.toString();\n\n    return value;\n}\n\nInjectedScript.addInspectedNode = function(nodeId)\n{\n    var node = InjectedScript._nodeForId(nodeId);\n    if (!node)\n        return false;\n\n    InjectedScript._ensureCommandLineAPIInstalled(inspectedWindow.eval, inspectedWindow);\n    var inspectedNodes = inspectedWindow.console._inspectorCommandLineAPI._inspectedNodes;\n    inspectedNodes.unshift(node);\n    if (inspectedNodes.length >= 5)\n        inspectedNodes.pop();\n    return true;\n}\n\nInjectedScript.getNodeId = function(node)\n{\n    return InjectedScriptHost.pushNodePathToFrontend(node, false, false);\n}\n\nInjectedScript.performSearch = function(whitespaceTrimmedQuery, runSynchronously)\n{\n    // FIXME: Few things are missing here:\n    // 1) Search works with node granularity - number of matches within node is not calculated.\n    // 2) Search does not work outside main documents' domain - we need to use specific InjectedScript instances\n    //    for other domains.\n    // 3) There is no need to push all search results to the front-end at a time, pushing next / previous result\n    //    is sufficient.\n    var tagNameQuery = whitespaceTrimmedQuery;\n    var attributeNameQuery = whitespaceTrimmedQuery;\n    var startTagFound = (tagNameQuery.indexOf(\"<\") === 0);\n    var endTagFound = (tagNameQuery.lastIndexOf(\">\") === (tagNameQuery.length - 1));\n\n    if (startTagFound || endTagFound) {\n        var tagNameQueryLength = tagNameQuery.length;\n        tagNameQuery = tagNameQuery.substring((startTagFound ? 1 : 0), (endTagFound ? (tagNameQueryLength - 1) : tagNameQueryLength));\n    }\n\n    // Check the tagNameQuery is it is a possibly valid tag name.\n    if (!/^[a-zA-Z0-9\\-_:]+$/.test(tagNameQuery))\n        tagNameQuery = null;\n\n    // Check the attributeNameQuery is it is a possibly valid tag name.\n    if (!/^[a-zA-Z0-9\\-_:]+$/.test(attributeNameQuery))\n        attributeNameQuery = null;\n\n    const escapedQuery = InjectedScript._escapeCharacters(whitespaceTrimmedQuery, \"'\");\n    const escapedTagNameQuery = (tagNameQuery ?  InjectedScript._escapeCharacters(tagNameQuery, \"'\") : null);\n    const escapedWhitespaceTrimmedQuery = InjectedScript._escapeCharacters(whitespaceTrimmedQuery, \"'\");\n    const searchResultsProperty = InjectedScript._includedInSearchResultsPropertyName;\n\n    function addNodesToResults(nodes, length, getItem)\n    {\n        if (!length)\n            return;\n\n        var nodeIds = [];\n        for (var i = 0; i < length; ++i) {\n            var node = getItem.call(nodes, i);\n            // Skip this node if it already has the property.\n            if (searchResultsProperty in node)\n                continue;\n\n            if (!InjectedScript._searchResults.length) {\n                InjectedScript._currentSearchResultIndex = 0;\n            }\n\n            node[searchResultsProperty] = true;\n            InjectedScript._searchResults.push(node);\n            var nodeId = InjectedScriptHost.pushNodePathToFrontend(node, false, false);\n            nodeIds.push(nodeId);\n        }\n        InjectedScriptHost.addNodesToSearchResult(nodeIds.join(\",\"));\n    }\n\n    function matchExactItems(doc)\n    {\n        matchExactId.call(this, doc);\n        matchExactClassNames.call(this, doc);\n        matchExactTagNames.call(this, doc);\n        matchExactAttributeNames.call(this, doc);\n    }\n\n    function matchExactId(doc)\n    {\n        const result = doc.__proto__.getElementById.call(doc, whitespaceTrimmedQuery);\n        addNodesToResults.call(this, result, (result ? 1 : 0), function() { return this });\n    }\n\n    function matchExactClassNames(doc)\n    {\n        const result = doc.__proto__.getElementsByClassName.call(doc, whitespaceTrimmedQuery);\n        addNodesToResults.call(this, result, result.length, result.item);\n    }\n\n    function matchExactTagNames(doc)\n    {\n        if (!tagNameQuery)\n            return;\n        const result = doc.__proto__.getElementsByTagName.call(doc, tagNameQuery);\n        addNodesToResults.call(this, result, result.length, result.item);\n    }\n\n    function matchExactAttributeNames(doc)\n    {\n        if (!attributeNameQuery)\n            return;\n        const result = doc.__proto__.querySelectorAll.call(doc, \"[\" + attributeNameQuery + \"]\");\n        addNodesToResults.call(this, result, result.length, result.item);\n    }\n\n    function matchPartialTagNames(doc)\n    {\n        if (!tagNameQuery)\n            return;\n        const result = doc.__proto__.evaluate.call(doc, \"//*[contains(name(), '\" + escapedTagNameQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchStartOfTagNames(doc)\n    {\n        if (!tagNameQuery)\n            return;\n        const result = doc.__proto__.evaluate.call(doc, \"//*[starts-with(name(), '\" + escapedTagNameQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchPartialTagNamesAndAttributeValues(doc)\n    {\n        if (!tagNameQuery) {\n            matchPartialAttributeValues.call(this, doc);\n            return;\n        }\n\n        const result = doc.__proto__.evaluate.call(doc, \"//*[contains(name(), '\" + escapedTagNameQuery + \"') or contains(@*, '\" + escapedQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchPartialAttributeValues(doc)\n    {\n        const result = doc.__proto__.evaluate.call(doc, \"//*[contains(@*, '\" + escapedQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchStyleSelector(doc)\n    {\n        const result = doc.__proto__.querySelectorAll.call(doc, whitespaceTrimmedQuery);\n        addNodesToResults.call(this, result, result.length, result.item);\n    }\n\n    function matchPlainText(doc)\n    {\n        const result = doc.__proto__.evaluate.call(doc, \"//text()[contains(., '\" + escapedQuery + \"')] | //comment()[contains(., '\" + escapedQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchXPathQuery(doc)\n    {\n        const result = doc.__proto__.evaluate.call(doc, whitespaceTrimmedQuery, doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function finishedSearching()\n    {\n        // Remove the searchResultsProperty now that the search is finished.\n        for (var i = 0; i < InjectedScript._searchResults.length; ++i)\n            delete InjectedScript._searchResults[i][searchResultsProperty];\n    }\n\n    const mainFrameDocument = inspectedWindow.document;\n    const searchDocuments = [mainFrameDocument];\n    var searchFunctions;\n    if (tagNameQuery && startTagFound && endTagFound)\n        searchFunctions = [matchExactTagNames, matchPlainText];\n    else if (tagNameQuery && startTagFound)\n        searchFunctions = [matchStartOfTagNames, matchPlainText];\n    else if (tagNameQuery && endTagFound) {\n        // FIXME: we should have a matchEndOfTagNames search function if endTagFound is true but not startTagFound.\n        // This requires ends-with() support in XPath, WebKit only supports starts-with() and contains().\n        searchFunctions = [matchPartialTagNames, matchPlainText];\n    } else if (whitespaceTrimmedQuery === \"//*\" || whitespaceTrimmedQuery === \"*\") {\n        // These queries will match every node. Matching everything isn't useful and can be slow for large pages,\n        // so limit the search functions list to plain text and attribute matching.\n        searchFunctions = [matchPartialAttributeValues, matchPlainText];\n    } else\n        searchFunctions = [matchExactItems, matchStyleSelector, matchPartialTagNamesAndAttributeValues, matchPlainText, matchXPathQuery];\n\n    // Find all frames, iframes and object elements to search their documents.\n    const subdocumentResult = mainFrameDocument.querySelectorAll(\"iframe, frame, object\");\n\n    for (var i = 0; i < subdocumentResult.length; ++i) {\n        var element = subdocumentResult.item(i);\n        if (element.contentDocument)\n            searchDocuments.push(element.contentDocument);\n    }\n\n    const panel = InjectedScript;\n    var documentIndex = 0;\n    var searchFunctionIndex = 0;\n    var chunkIntervalIdentifier = null;\n\n    // Split up the work into chunks so we don't block the UI thread while processing.\n\n    function processChunk()\n    {\n        var searchDocument = searchDocuments[documentIndex];\n        var searchFunction = searchFunctions[searchFunctionIndex];\n\n        if (++searchFunctionIndex > searchFunctions.length) {\n            searchFunction = searchFunctions[0];\n            searchFunctionIndex = 0;\n\n            if (++documentIndex > searchDocuments.length) {\n                if (panel._currentSearchChunkIntervalIdentifier === chunkIntervalIdentifier)\n                    delete panel._currentSearchChunkIntervalIdentifier;\n                clearInterval(chunkIntervalIdentifier);\n                finishedSearching.call(panel);\n                return false;\n            }\n\n            searchDocument = searchDocuments[documentIndex];\n        }\n\n        try {\n            searchFunction.call(panel, searchDocument);\n        } catch(err) {\n            // ignore any exceptions. the query might be malformed, but we allow that.\n        }\n        return true;\n    }\n\n    if (runSynchronously)\n        while (processChunk()) {}\n    else {\n        processChunk();\n        chunkIntervalIdentifier = setInterval(processChunk, 25);\n        InjectedScript._currentSearchChunkIntervalIdentifier = chunkIntervalIdentifier;\n    }\n    return true;\n}\n\nInjectedScript.searchCanceled = function()\n{\n    if (InjectedScript._searchResults) {\n        const searchResultsProperty = InjectedScript._includedInSearchResultsPropertyName;\n        for (var i = 0; i < this._searchResults.length; ++i) {\n            var node = this._searchResults[i];\n\n            // Remove the searchResultsProperty since there might be an unfinished search.\n            delete node[searchResultsProperty];\n        }\n    }\n\n    if (InjectedScript._currentSearchChunkIntervalIdentifier) {\n        clearInterval(InjectedScript._currentSearchChunkIntervalIdentifier);\n        delete InjectedScript._currentSearchChunkIntervalIdentifier;\n    }\n    InjectedScript._searchResults = [];\n    return true;\n}\n\nInjectedScript.openInInspectedWindow = function(url)\n{\n    // Don't call window.open on wrapper - popup blocker mutes it.\n    // URIs should have no double quotes.\n    inspectedWindow.eval(\"window.open(\\\"\" + url + \"\\\")\");\n    return true;\n}\n\nInjectedScript.callFrames = function()\n{\n    var callFrame = InjectedScriptHost.currentCallFrame();\n    if (!callFrame)\n        return false;\n\n    var result = [];\n    var depth = 0;\n    do {\n        result.push(new InjectedScript.CallFrameProxy(depth++, callFrame));\n        callFrame = callFrame.caller;\n    } while (callFrame);\n    return result;\n}\n\nInjectedScript.evaluateInCallFrame = function(callFrameId, code, objectGroup)\n{\n    var callFrame = InjectedScript._callFrameForId(callFrameId);\n    if (!callFrame)\n        return false;\n    return InjectedScript._evaluateAndWrap(callFrame.evaluate, callFrame, code, objectGroup, true);\n}\n\nInjectedScript._callFrameForId = function(id)\n{\n    var callFrame = InjectedScriptHost.currentCallFrame();\n    while (--id >= 0 && callFrame)\n        callFrame = callFrame.caller;\n    return callFrame;\n}\n\nInjectedScript.clearConsoleMessages = function()\n{\n    InjectedScriptHost.clearConsoleMessages();\n    return true;\n}\n\nInjectedScript._inspectObject = function(o)\n{\n    if (arguments.length === 0)\n        return;\n\n    inspectedWindow.console.log(o);\n    if (InjectedScript._type(o) === \"node\") {\n        InjectedScriptHost.pushNodePathToFrontend(o, false, true);\n    } else {\n        switch (InjectedScript._describe(o)) {\n            case \"Database\":\n                InjectedScriptHost.selectDatabase(o);\n                break;\n            case \"Storage\":\n                InjectedScriptHost.selectDOMStorage(o);\n                break;\n        }\n    }\n}\n\nInjectedScript._copy = function(o)\n{\n    if (InjectedScript._type(o) === \"node\") {\n        var nodeId = InjectedScriptHost.pushNodePathToFrontend(o, false, false);\n        InjectedScriptHost.copyNode(nodeId);\n    } else {\n        InjectedScriptHost.copyText(o);\n    }\n}\n\nInjectedScript._ensureCommandLineAPIInstalled = function(evalFunction, evalObject)\n{\n    if (evalFunction.call(evalObject, \"window.console._inspectorCommandLineAPI\"))\n        return;\n    var inspectorCommandLineAPI = evalFunction.call(evalObject, \"window.console._inspectorCommandLineAPI = { \\n\\\n        $: function() { return document.getElementById.apply(document, arguments) }, \\n\\\n        $$: function() { return document.querySelectorAll.apply(document, arguments) }, \\n\\\n        $x: function(xpath, context) \\n\\\n        { \\n\\\n            var nodes = []; \\n\\\n            try { \\n\\\n                var doc = context || document; \\n\\\n                var results = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); \\n\\\n                var node; \\n\\\n                while (node = results.iterateNext()) nodes.push(node); \\n\\\n            } catch (e) {} \\n\\\n            return nodes; \\n\\\n        }, \\n\\\n        dir: function() { return console.dir.apply(console, arguments) }, \\n\\\n        dirxml: function() { return console.dirxml.apply(console, arguments) }, \\n\\\n        keys: function(o) { var a = []; for (var k in o) a.push(k); return a; }, \\n\\\n        values: function(o) { var a = []; for (var k in o) a.push(o[k]); return a; }, \\n\\\n        profile: function() { return console.profile.apply(console, arguments) }, \\n\\\n        profileEnd: function() { return console.profileEnd.apply(console, arguments) }, \\n\\\n        _logEvent: function _inspectorCommandLineAPI_logEvent(e) { console.log(e.type, e); }, \\n\\\n        _allEventTypes: [\\\"mouse\\\", \\\"key\\\", \\\"load\\\", \\\"unload\\\", \\\"abort\\\", \\\"error\\\", \\n\\\n            \\\"select\\\", \\\"change\\\", \\\"submit\\\", \\\"reset\\\", \\\"focus\\\", \\\"blur\\\", \\n\\\n            \\\"resize\\\", \\\"scroll\\\"], \\n\\\n        _normalizeEventTypes: function(t) \\n\\\n        { \\n\\\n            if (typeof t === \\\"undefined\\\") \\n\\\n                t = console._inspectorCommandLineAPI._allEventTypes; \\n\\\n            else if (typeof t === \\\"string\\\") \\n\\\n                t = [t]; \\n\\\n            var i, te = []; \\n\\\n            for (i = 0; i < t.length; i++) { \\n\\\n                if (t[i] === \\\"mouse\\\") \\n\\\n                    te.splice(0, 0, \\\"mousedown\\\", \\\"mouseup\\\", \\\"click\\\", \\\"dblclick\\\", \\n\\\n                        \\\"mousemove\\\", \\\"mouseover\\\", \\\"mouseout\\\"); \\n\\\n                else if (t[i] === \\\"key\\\") \\n\\\n                    te.splice(0, 0, \\\"keydown\\\", \\\"keyup\\\", \\\"keypress\\\"); \\n\\\n                else \\n\\\n                    te.push(t[i]); \\n\\\n            } \\n\\\n            return te; \\n\\\n        }, \\n\\\n        monitorEvents: function(o, t) \\n\\\n        { \\n\\\n            if (!o || !o.addEventListener || !o.removeEventListener) \\n\\\n                return; \\n\\\n            t = console._inspectorCommandLineAPI._normalizeEventTypes(t); \\n\\\n            for (i = 0; i < t.length; i++) { \\n\\\n                o.removeEventListener(t[i], console._inspectorCommandLineAPI._logEvent, false); \\n\\\n                o.addEventListener(t[i], console._inspectorCommandLineAPI._logEvent, false); \\n\\\n            } \\n\\\n        }, \\n\\\n        unmonitorEvents: function(o, t) \\n\\\n        { \\n\\\n            if (!o || !o.removeEventListener) \\n\\\n                return; \\n\\\n            t = console._inspectorCommandLineAPI._normalizeEventTypes(t); \\n\\\n            for (i = 0; i < t.length; i++) { \\n\\\n                o.removeEventListener(t[i], console._inspectorCommandLineAPI._logEvent, false); \\n\\\n            } \\n\\\n        }, \\n\\\n        _inspectedNodes: [], \\n\\\n        get $0() { return console._inspectorCommandLineAPI._inspectedNodes[0] }, \\n\\\n        get $1() { return console._inspectorCommandLineAPI._inspectedNodes[1] }, \\n\\\n        get $2() { return console._inspectorCommandLineAPI._inspectedNodes[2] }, \\n\\\n        get $3() { return console._inspectorCommandLineAPI._inspectedNodes[3] }, \\n\\\n        get $4() { return console._inspectorCommandLineAPI._inspectedNodes[4] }, \\n\\\n    };\");\n\n    inspectorCommandLineAPI.clear = InjectedScript.clearConsoleMessages;\n    inspectorCommandLineAPI.inspect = InjectedScript._inspectObject;\n    inspectorCommandLineAPI.copy = InjectedScript._copy;\n}\n\nInjectedScript._resolveObject = function(objectProxy)\n{\n    var object = InjectedScript._objectForId(objectProxy.objectId);\n    var path = objectProxy.path;\n    var protoDepth = objectProxy.protoDepth;\n\n    // Follow the property path.\n    for (var i = 0; InjectedScript._isDefined(object) && path && i < path.length; ++i)\n        object = object[path[i]];\n\n    return object;\n}\n\nInjectedScript._nodeForId = function(nodeId)\n{\n    if (!nodeId)\n        return null;\n    return InjectedScriptHost.nodeForId(nodeId);\n}\n\nInjectedScript._objectForId = function(objectId)\n{\n    // There are three types of object ids used:\n    // - numbers point to DOM Node via the InspectorDOMAgent mapping\n    // - strings point to console objects cached in InspectorController for lazy evaluation upon them\n    // - objects contain complex ids and are currently used for scoped objects\n    if (typeof objectId === \"number\") {\n        return InjectedScript._nodeForId(objectId);\n    } else if (typeof objectId === \"string\") {\n        return InjectedScript.unwrapObject(objectId);\n    } else if (typeof objectId === \"object\") {\n        var callFrame = InjectedScript._callFrameForId(objectId.callFrame);\n        if (objectId.thisObject)\n            return callFrame.thisObject;\n        else\n            return callFrame.scopeChain[objectId.chainIndex];\n    }\n    return objectId;\n}\n\nInjectedScript.pushNodeToFrontend = function(objectProxy)\n{\n    var object = InjectedScript._resolveObject(objectProxy);\n    if (!object || InjectedScript._type(object) !== \"node\")\n        return false;\n    return InjectedScriptHost.pushNodePathToFrontend(object, false, false);\n}\n\nInjectedScript.nodeByPath = function(path)\n{\n    // We make this call through the injected script only to get a nice\n    // callback for it.\n    return InjectedScriptHost.pushNodeByPathToFrontend(path.join(\",\"));\n}\n\n// Called from within InspectorController on the 'inspected page' side.\nInjectedScript.createProxyObject = function(object, objectId, abbreviate)\n{\n    var result = {};\n    result.injectedScriptId = injectedScriptId;\n    result.objectId = objectId;\n    result.type = InjectedScript._type(object);\n    if (result.type === \"array\")\n        result.propertyLength = object.length;\n\n    var type = typeof object;\n    \n    result.hasChildren = (type === \"object\" && object !== null && (Object.getOwnPropertyNames(object).length || object.__proto__)) || type === \"function\";\n    try {\n        result.description = InjectedScript._describe(object, abbreviate);\n    } catch (e) {\n        result.errorText = e.toString();\n    }\n    return result;\n}\n\nInjectedScript.evaluateOnSelf = function(funcBody, args)\n{\n    var func = window.eval(\"(\" + funcBody + \")\");\n    return func.apply(this, args || []);\n}\n\nInjectedScript.CallFrameProxy = function(id, callFrame)\n{\n    this.id = id;\n    this.type = callFrame.type;\n    this.functionName = (this.type === \"function\" ? callFrame.functionName : \"\");\n    this.sourceID = callFrame.sourceID;\n    this.line = callFrame.line;\n    this.scopeChain = this._wrapScopeChain(callFrame);\n}\n\nInjectedScript.CallFrameProxy.prototype = {\n    _wrapScopeChain: function(callFrame)\n    {\n        var foundLocalScope = false;\n        var scopeChain = callFrame.scopeChain;\n        var scopeChainProxy = [];\n        for (var i = 0; i < scopeChain.length; ++i) {\n            var scopeObject = scopeChain[i];\n            var scopeObjectProxy = InjectedScript.createProxyObject(scopeObject, { callFrame: this.id, chainIndex: i }, true);\n\n            if (InjectedScriptHost.isActivation(scopeObject)) {\n                if (!foundLocalScope)\n                    scopeObjectProxy.thisObject = InjectedScript.createProxyObject(callFrame.thisObject, { callFrame: this.id, thisObject: true }, true);\n                else\n                    scopeObjectProxy.isClosure = true;\n                foundLocalScope = true;\n                scopeObjectProxy.isLocal = true;\n            } else if (foundLocalScope && scopeObject instanceof inspectedWindow.Element)\n                scopeObjectProxy.isElement = true;\n            else if (foundLocalScope && scopeObject instanceof inspectedWindow.Document)\n                scopeObjectProxy.isDocument = true;\n            else if (!foundLocalScope)\n                scopeObjectProxy.isWithBlock = true;\n            scopeChainProxy.push(scopeObjectProxy);\n        }\n        return scopeChainProxy;\n    }\n}\n\nInjectedScript.executeSql = function(callId, databaseId, query)\n{\n    function successCallback(tx, result)\n    {\n        var rows = result.rows;\n        var result = [];\n        var length = rows.length;\n        for (var i = 0; i < length; ++i) {\n            var data = {};\n            result.push(data);\n            var row = rows.item(i);\n            for (var columnIdentifier in row) {\n                // FIXME: (Bug 19439) We should specially format SQL NULL here\n                // (which is represented by JavaScript null here, and turned\n                // into the string \"null\" by the String() function).\n                var text = row[columnIdentifier];\n                data[columnIdentifier] = String(text);\n            }\n        }\n        InjectedScriptHost.reportDidDispatchOnInjectedScript(callId, result, false);\n    }\n\n    function errorCallback(tx, error)\n    {\n        InjectedScriptHost.reportDidDispatchOnInjectedScript(callId, error, false);\n    }\n\n    function queryTransaction(tx)\n    {\n        tx.executeSql(query, null, successCallback, errorCallback);\n    }\n\n    var database = InjectedScriptHost.databaseForId(databaseId);\n    if (!database)\n        errorCallback(null, { code : 2 });  // Return as unexpected version.\n    database.transaction(queryTransaction, errorCallback);\n    return true;\n}\n\nInjectedScript._isDefined = function(object)\n{\n    return object || InjectedScript._isHTMLAllCollection(object);\n}\n\nInjectedScript._isHTMLAllCollection = function(object)\n{\n    // document.all is reported as undefined, but we still want to process it.\n    return (typeof object === \"undefined\") && inspectedWindow.HTMLAllCollection && object instanceof inspectedWindow.HTMLAllCollection;\n}\n\nInjectedScript._type = function(obj)\n{\n    if (obj === null)\n        return \"null\";\n\n    var type = typeof obj;\n    if (type !== \"object\" && type !== \"function\") {\n        // FIXME(33716): typeof document.all is always 'undefined'.\n        if (InjectedScript._isHTMLAllCollection(obj))\n            return \"array\";\n        return type;\n    }\n\n    // If owning frame has navigated to somewhere else window properties will be undefined.\n    // In this case just return result of the typeof.\n    if (!inspectedWindow.document)\n        return type;\n\n    if (obj instanceof inspectedWindow.Node)\n        return (obj.nodeType === undefined ? type : \"node\");\n    if (obj instanceof inspectedWindow.String)\n        return \"string\";\n    if (obj instanceof inspectedWindow.Array)\n        return \"array\";\n    if (obj instanceof inspectedWindow.Boolean)\n        return \"boolean\";\n    if (obj instanceof inspectedWindow.Number)\n        return \"number\";\n    if (obj instanceof inspectedWindow.Date)\n        return \"date\";\n    if (obj instanceof inspectedWindow.RegExp)\n        return \"regexp\";\n    if (obj instanceof inspectedWindow.NodeList)\n        return \"array\";\n    if (obj instanceof inspectedWindow.HTMLCollection)\n        return \"array\";\n    if (obj instanceof inspectedWindow.Error)\n        return \"error\";\n    return type;\n}\n\nInjectedScript._describe = function(obj, abbreviated)\n{\n    var type1 = InjectedScript._type(obj);\n    var type2 = InjectedScript._className(obj);\n\n    switch (type1) {\n    case \"object\":\n    case \"node\":\n    case \"array\":\n        return type2;\n    case \"string\":\n        if (!abbreviated)\n            return obj;\n        if (obj.length > 100)\n            return \"\\\"\" + obj.substring(0, 100) + \"\\u2026\\\"\";\n        return \"\\\"\" + obj + \"\\\"\";\n    case \"function\":\n        var objectText = InjectedScript._toString(obj);\n        if (!/^function /.test(objectText))\n            objectText = (type2 == \"object\") ? type1 : type2;\n        else if (abbreviated)\n            objectText = /.*/.exec(obj)[0].replace(/ +$/g, \"\");\n        return objectText;\n    default:\n        return InjectedScript._toString(obj);\n    }\n}\n\nInjectedScript._toString = function(obj)\n{\n    // We don't use String(obj) because inspectedWindow.String is undefined if owning frame navigated to another page.\n    return \"\" + obj;\n}\n\nInjectedScript._className = function(obj)\n{\n    var str = inspectedWindow.Object ? inspectedWindow.Object.prototype.toString.call(obj) : InjectedScript._toString(obj);\n    return str.replace(/^\\[object (.*)\\]$/i, \"$1\");\n}\n\nInjectedScript._escapeCharacters = function(str, chars)\n{\n    var foundChar = false;\n    for (var i = 0; i < chars.length; ++i) {\n        if (str.indexOf(chars.charAt(i)) !== -1) {\n            foundChar = true;\n            break;\n        }\n    }\n\n    if (!foundChar)\n        return str;\n\n    var result = \"\";\n    for (var i = 0; i < str.length; ++i) {\n        if (chars.indexOf(str.charAt(i)) !== -1)\n            result += \"\\\\\";\n        result += str.charAt(i);\n    }\n\n    return result;\n}\n\nreturn InjectedScript;\n});\n","sourceLength":37641,"scriptType":2,"compilationType":0,"context":{"ref":16},"text":"undefined (lines: 1000)"},{"handle":19,"type":"script","name":"chrome-extension://hmdcmlfkchdmnmnmheododdhjedfccka/inc/jquery-special-scroll.js","id":84,"lineOffset":0,"columnOffset":0,"lineCount":69,"source":"(function(){\n \n    var special = jQuery.event.special,\n        uid1 = 'D' + (+new Date()),\n        uid2 = 'D' + (+new Date() + 1);\n \n    special.scrollstart = {\n        setup: function() {\n \n            var timer,\n                handler =  function(evt) {\n \n                    var _self = this,\n                        _args = arguments;\n \n                    if (timer) {\n                        clearTimeout(timer);\n                    } else {\n                        evt.type = 'scrollstart';\n                        jQuery.event.handle.apply(_self, _args);\n                    }\n \n                    timer = setTimeout( function(){\n                        timer = null;\n                    }, special.scrollstop.latency);\n \n                };\n \n            jQuery(this).bind('scroll', handler).data(uid1, handler);\n \n        },\n        teardown: function(){\n            jQuery(this).unbind( 'scroll', jQuery(this).data(uid1) );\n        }\n    };\n \n    special.scrollstop = {\n        latency: 500,\n        setup: function() {\n \n            var timer,\n                    handler = function(evt) {\n \n                    var _self = this,\n                        _args = arguments;\n \n                    if (timer) {\n                        clearTimeout(timer);\n                    }\n \n                    timer = setTimeout( function(){\n \n                        timer = null;\n                        evt.type = 'scrollstop';\n                        jQuery.event.handle.apply(_self, _args);\n \n                    }, special.scrollstop.latency);\n \n                };\n \n            jQuery(this).bind('scroll', handler).data(uid2, handler);\n \n        },\n        teardown: function() {\n            jQuery(this).unbind( 'scroll', jQuery(this).data(uid2) );\n        }\n    };\n \n})();\n","sourceLength":1782,"scriptType":2,"compilationType":0,"context":{"ref":18},"text":"chrome-extension://hmdcmlfkchdmnmnmheododdhjedfccka/inc/jquery-special-scroll.js (lines: 69)"},{"handle":21,"type":"script","name":"chrome-extension://hmdcmlfkchdmnmnmheododdhjedfccka/edropper.js","id":85,"lineOffset":0,"columnOffset":0,"lineCount":305,"source":"// Used variables\nvar debug = false;\nvar dropper_activated = false;\nvar screenshotTaken = false;\nvar screenshoting = false;\nvar screenshotingScroll = false;\n\nvar imgWidth = 0;\nvar imgHeight = 0;\nvar canvasWidth = 0;\nvar canvasHeight = 0;\nvar pageXOffset = 0;\nvar pageYOffset = 0;\nvar imageData = null;\nvar canvasElement = null;\nvar canvasContext = null;\n\nvar Rects = [];\n\n// Listen for pickup activate\nchrome.extension.onRequest.addListener(function(request, sender, sendResponse) {\n    if(request.reqtype == \"pickup-activate\")\n      activateDropper();\n\n    sendResponse({});\n});\n\n// Turn Dropper On\nfunction activateDropper() { \n  if(dropper_activated == true)\n    return;\n\n  if (debug)\n    console.log(\"activating dropper\");\n\n  dropper_activated = true;\n\n  // Status rectangle with actual color under cursor\n  $(\"body\").append('<div id=\"color-tooltip\" style=\"z-index: 1000; width:10px; height: 10px; border: 1px solid #000; display:none; font-size: 15px;\"> </div>');\n\n  // set some events\n  document.addEventListener(\"mousemove\", mouseMove, false);\n  document.addEventListener(\"click\", mouseClick, false);\n  document.addEventListener(\"keydown\", keyDown, false);\n  $(document).bind('scrollstop', scrollStop);\n\n  // create canvas\n  var canvasBorders = 20;\n\n  canvasWidth = $(document).width() + canvasBorders;\n  canvasHeight = $(document).height() + canvasBorders;\n\n  canvasElement = document.createElement('canvas');\n  canvasElement.width = canvasWidth; \n  canvasElement.height = canvasHeight;\n\n  canvasContext = canvasElement.getContext('2d');\n}\n\n// update screenshot on scroll stop event\nfunction scrollStop() {\n  if(dropper_activated == false)\n    return;\n\n  if (debug)\n    console.log(\"Scroll stop\");\n\n  updateCanvas();\n}\n\n// update screnshot on mouse move\nfunction mouseMove(e) {\n  if(dropper_activated == false)\n    return;\n\n  // FIXME: while scrolling through the page, only first update is done so\n  // canvas is old :/ try update faster?\n  // hmm tak mozna to bude necim jinym, tak zitra\n  if(screenshotTaken == false) {\n    if(screenshoting == false) {\n      screenshoting = true;\n      updateCanvas();\n    }\n    return;\n  }\n\n  tooltip(e);\n}\n\n// get color from mouse position\nfunction pickColor(e) {\n  var canvasIndex = canvasIndexFromEvent(e, canvasWidth);\n  return colorFromData(canvasIndex, imageData.data);\n}\n\n// show tooltip\nfunction tooltip(e) {\n  var color = pickColor(e);\n  var fromTop = -15;\n  var fromLeft = 10;\n\n  if ( (e.pageX-pageXOffset) > imgWidth/2 )\n    fromLeft = -20;\n  if ( (e.pageY-pageYOffset) < imgHeight/2 )\n    fromTop = 15;\n\n  $('#color-tooltip').css({ \n      'background-color': '#'+color.rgbhex,\n      'color': 'black',\n      'position': 'absolute',\n      'top': e.pageY+fromTop, \n      'left': e.pageX+fromLeft\n      }).show();\n}\n\n// turn dropper off\nfunction deactivateDropper() { \n  if(!dropper_activated)\n    return;\n\n  $(\"color-tip\").remove();\n\n  dropper_activated = false;\n  screenshotTaken = false;\n  screenshoting = false;\n\n  document.removeEventListener(\"mousemove\", mouseMove, false);\n  document.removeEventListener(\"click\", mouseClick, false);\n  document.removeEventListener(\"keydown\", keyDown, false);\n  $('#color-tooltip').css().hide();\n}\n\n// turn dropper on mouse click and send color to background\n// so badge can be changed\nfunction mouseClick(e) {\n  if(!dropper_activated)\n    return;\n\n  deactivateDropper();      // turn dropper off\n  e.preventDefault();       // disable follow link\n  var color = pickColor(e); // get color\n\n  // save picked color\n  chrome.extension.sendRequest({reqtype: \"set-color\", color: color}, function response(response) {\n    if (debug)\n      console.log(\"Picked: \"+response.text);  \n  });\n}\n\n// respond to some keys when dropper activated\nfunction keyDown(e) {\n  if(!dropper_activated)\n    return;\n\n  if ( e.keyCode == 85 ) // u - Update\n    updateCanvas(true);\n  // FIXME: do mouseClick je potreba predat spravne pozici, ne takto\n  else if ( e.keyCode == 80 ) // p - Pick Up Color\n    mouseClick(e);\n  else if ( e.keyCode == 27 ) // Esc - stop picking\n    deactivateDropper();\n}\n\n// e: click event object\n// w: width of canvas element\n// returns canvas index\nvar canvasIndexFromEvent = function(e,w) {\n  var x = e.pageX; // - pageXOffset;\n  var y = e.pageY; // - pageYOffset;\n  return (x + y * w) * 4; \n}; \n\n// colorData: array containing canvas-style data for a pixel in order: r, g, b, alpha transparency\n// return color object\nvar colorFromData = function(canvasIndex,data) {\n  var color = {\n    r: data[canvasIndex],\n    g: data[canvasIndex+1],\n    b: data[canvasIndex+2],\n    alpha: data[canvasIndex+3]\n  };\n\n  color.rgbhex = rgbToHex(color.r,color.g,color.b);\n  return color;\n};\n\n// i: color channel value, integer 0-255\n// returns two character string hex representation of a color channel (00-FF)\nvar toHex = function(i) {\n  if(i === undefined) return 'FF'; // TODO this shouldn't happen; looks like offset/x/y might be off by one\n  var str = i.toString(16);\n  while(str.length < 2) { str = '0' + str; }\n  return str;\n};\n\n// r,g,b: color channel value, integer 0-255\n// returns six character string hex representation of a color\nvar rgbToHex = function(r,g,b) {\n  return toHex(r)+toHex(g)+toHex(b);\n};\n\n// return true if rectangle A is whole in rectangle B\nfunction rectInRect(A, B) {\n  if ( A.x >= B.x && A.y >= B.y && (A.x+A.width) <= (B.x+B.width) && (A.y+A.height) <= (B.y+B.height) )\n    return true;\n  else\n    return false;\n}\n\n// merge same x or y positioned rectangles if overlaps\n// width (or height)  of B has to be bigger or equal to A\nfunction rectMerge(A, B) {\n  if ( A.x == B.x && A.width <= B.width ) {\n    if ( A.y < B.y ) {\n      B.y = A.y;\n      B.height = B.height + B.y - A.y;\n    } else {\n      B.height = B.height + A.y - B.y;\n    }\n    return B;\n\n  } else if ( A.y == B.y && A.height <= B.height ) {\n    if ( A.x < B.x ) {\n      B.x = A.x;\n      B.width = B.width + B.x - A.x;\n    } else {\n      B.width = B.width + A.x - B.x;\n    }\n\n    return B;\n  }\n\n  return false;\n}\n\n// Update Canvas with screenshots\nfunction updateCanvas() {\n  var forced = false;\n\n  if ( typeof arguments[0] != \"undefined\" )\n    forced = arguments[0];\n\n  if(dropper_activated == false)\n    return;\n\n  // ask background script to take screenshot and put it to canvas\n  chrome.extension.sendRequest({reqtype: \"get-shot\"}, function(response) {\n      var dataURL = response.dataURL;\n\n      // screenshot\n      var imgElement = document.createElement('img');\n      imgElement.src = dataURL;\n\n      imgElement.onload = function() {\n\n        // set some needed vars\n        imgWidth = imgElement.width;\n        imgHeight = imgElement.height;\n\n        pageYOffset = $(document).scrollTop();\n        pageXOffset = $(document).scrollLeft();\n\n        var rect = {x: pageXOffset, y: pageYOffset, width: imgWidth, height: imgHeight};\n        var merged = false;\n\n        // if there are already any rectangles\n        if ( Rects.length > 0 ) {\n          // if we already have this shot, return\n          if ( forced == false ) {\n            for ( index in Rects ) {\n              if ( rectInRect(rect, Rects[index]) )\n              {\n                screenshotTaken = true;\n                return;\n              }\n            }\n          }\n\n          // try to merge shot with others\n          for ( index in Rects ) {\n            var t = rectMerge(rect, Rects[index]);\n\n            if ( t != false ) {\n              if (debug)\n                console.log('merging');\n              merged = true;\n              Rects[index] = t;\n            }\n          }\n        }\n\n        // put rectangle in array\n        if (merged == false)\n          Rects.push(rect);\n\n        if (debug)\n          console.log(\"taking screenshot \"+imgWidth+'x'+imgHeight+' posun: '+pageXOffset+'x'+pageYOffset+' # '+canvasWidth+'x'+canvasHeight+' # '+window.innerWidth+'x'+window.innerHeight);\n\n        // draw image to canvas\n        canvasContext.drawImage(imgElement,pageXOffset,pageYOffset);\n        imageData=canvasContext.getImageData(0, 0, canvasWidth, canvasHeight);\n        screenshotTaken = true;\n      }\n  });\n}\n","sourceLength":8072,"scriptType":2,"compilationType":0,"context":{"ref":20},"text":"chrome-extension://hmdcmlfkchdmnmnmheododdhjedfccka/edropper.js (lines: 305)"},{"handle":23,"type":"script","id":96,"lineOffset":0,"columnOffset":0,"lineCount":972,"source":"(function (InjectedScriptHost, inspectedWindow, injectedScriptId) {\n\nvar InjectedScript = {};\n\nInjectedScript.lastBoundObjectId = 1;\nInjectedScript.idToWrappedObject = {};\nInjectedScript.objectGroups = {};\n\nInjectedScript.wrapObjectForConsole = function(object, canAccessInspectedWindow)\n{\n    if (canAccessInspectedWindow)\n        return InjectedScript.wrapObject(object, \"console\");\n    var result = {};\n    result.type = typeof object;\n    result.description = InjectedScript._toString(object);\n    return result;\n}\n\nInjectedScript.wrapObject = function(object, objectGroupName)\n{\n    try {\n        var objectId;\n        if (typeof object === \"object\" || typeof object === \"function\" || InjectedScript._isHTMLAllCollection(object)) {\n            var id = InjectedScript.lastBoundObjectId++;\n            objectId = \"object#\" + id;\n            InjectedScript.idToWrappedObject[objectId] = object;\n\n            var group = InjectedScript.objectGroups[objectGroupName];\n            if (!group) {\n                group = [];\n                InjectedScript.objectGroups[objectGroupName] = group;\n            }\n            group.push(objectId);\n        }\n        return InjectedScript.createProxyObject(object, objectId);\n    } catch (e) {\n        return InjectedScript.createProxyObject(\"[ Exception: \" + e.toString() + \" ]\");\n    }\n    return InjectedScript.createProxyObject(object, objectId);\n};\n\nInjectedScript.unwrapObject = function(objectId) {\n    return InjectedScript.idToWrappedObject[objectId];\n};\n\nInjectedScript.releaseWrapperObjectGroup = function(objectGroupName) {\n    var group = InjectedScript.objectGroups[objectGroupName];\n    if (!group)\n        return;\n    for (var i = 0; i < group.length; i++)\n        delete InjectedScript.idToWrappedObject[group[i]];\n    delete InjectedScript.objectGroups[objectGroupName];\n};\n\n// Called from within InspectorController on the 'inspected page' side.\nInjectedScript.reset = function()\n{\n    InjectedScript._searchResults = [];\n    InjectedScript._includedInSearchResultsPropertyName = \"__includedInInspectorSearchResults\";\n}\n\nInjectedScript.reset();\n\nInjectedScript.dispatch = function(methodName, args, callId)\n{\n    var argsArray = eval(\"(\" + args + \")\");\n    if (callId)\n        argsArray.splice(0, 0, callId);  // Methods that run asynchronously have a call back id parameter.\n    var result = InjectedScript[methodName].apply(InjectedScript, argsArray);\n    if (typeof result === \"undefined\") {\n        inspectedWindow.console.error(\"Web Inspector error: InjectedScript.%s returns undefined\", methodName);\n        result = null;\n    }\n    return result;\n}\n\nInjectedScript.getPrototypes = function(nodeId)\n{\n    var node = InjectedScript._nodeForId(nodeId);\n    if (!node)\n        return false;\n\n    var result = [];\n    for (var prototype = node; prototype; prototype = prototype.__proto__) {\n        var title = InjectedScript._describe(prototype, true);\n        if (title.match(/Prototype$/)) {\n            title = title.replace(/Prototype$/, \"\");\n        }\n        result.push(title);\n    }\n    return result;\n}\n\nInjectedScript.getProperties = function(objectProxy, ignoreHasOwnProperty, abbreviate)\n{\n    var object = InjectedScript._resolveObject(objectProxy);\n    if (!InjectedScript._isDefined(object))\n        return false;\n    var properties = [];\n    var propertyNames = ignoreHasOwnProperty ? InjectedScript._getPropertyNames(object) : Object.getOwnPropertyNames(object);\n    if (!ignoreHasOwnProperty && object.__proto__)\n        propertyNames.push(\"__proto__\");\n\n    // Go over properties, prepare results.\n    for (var i = 0; i < propertyNames.length; ++i) {\n        var propertyName = propertyNames[i];\n\n        var property = {};\n        property.name = propertyName + \"\";\n        property.parentObjectProxy = objectProxy;\n        var isGetter = object[\"__lookupGetter__\"] && object.__lookupGetter__(propertyName);\n        if (!property.isGetter) {\n            try {\n                var childObject = object[propertyName];\n                var childObjectProxy = new InjectedScript.createProxyObject(childObject, objectProxy.objectId, abbreviate);\n                childObjectProxy.path = objectProxy.path ? objectProxy.path.slice() : [];\n                childObjectProxy.path.push(propertyName);\n                property.value = childObjectProxy;\n            } catch(e) {\n                property.value = { description: e.toString() };\n                property.isError = true;\n            }\n        } else {\n            // FIXME: this should show something like \"getter\" (bug 16734).\n            property.value = { description: \"\\u2014\" }; // em dash\n            property.isGetter = true;\n        }\n        properties.push(property);\n    }\n    return properties;\n}\n\nInjectedScript.setPropertyValue = function(objectProxy, propertyName, expression)\n{\n    var object = InjectedScript._resolveObject(objectProxy);\n    if (!InjectedScript._isDefined(object))\n        return false;\n\n    var expressionLength = expression.length;\n    if (!expressionLength) {\n        delete object[propertyName];\n        return !(propertyName in object);\n    }\n\n    try {\n        // Surround the expression in parenthesis so the result of the eval is the result\n        // of the whole expression not the last potential sub-expression.\n\n        // There is a regression introduced here: eval is now happening against global object,\n        // not call frame while on a breakpoint.\n        // TODO: bring evaluation against call frame back.\n        var result = inspectedWindow.eval(\"(\" + expression + \")\");\n        // Store the result in the property.\n        object[propertyName] = result;\n        return true;\n    } catch(e) {\n        try {\n            var result = inspectedWindow.eval(\"\\\"\" + InjectedScript._escapeCharacters(expression, \"\\\"\") + \"\\\"\");\n            object[propertyName] = result;\n            return true;\n        } catch(e) {\n            return false;\n        }\n    }\n}\n\nInjectedScript.getNodePropertyValue = function(nodeId, propertyName)\n{\n    var node = InjectedScript._nodeForId(nodeId);\n    if (!node)\n        return false;\n    var result = node[propertyName];\n    return result !== undefined ? result : false;\n}\n\nInjectedScript.setOuterHTML = function(nodeId, value, expanded)\n{\n    var node = InjectedScript._nodeForId(nodeId);\n    if (!node)\n        return false;\n\n    var parent = node.parentNode;\n    var prevSibling = node.previousSibling;\n    node.outerHTML = value;\n    var newNode = prevSibling ? prevSibling.nextSibling : parent.firstChild;\n\n    return InjectedScriptHost.pushNodePathToFrontend(newNode, expanded, false);\n}\n\nInjectedScript._populatePropertyNames = function(object, resultSet)\n{\n    for (var o = object; o; o = o.__proto__) {\n        try {\n            var names = Object.getOwnPropertyNames(o);\n            for (var i = 0; i < names.length; ++i)\n                resultSet[names[i] + \"\"] = true;\n        } catch (e) {\n        }\n    }\n}\n\nInjectedScript._getPropertyNames = function(object, resultSet)\n{\n    var propertyNameSet = {};\n    InjectedScript._populatePropertyNames(object, propertyNameSet);\n    return Object.keys(propertyNameSet);\n}\n\nInjectedScript.getCompletions = function(expression, includeInspectorCommandLineAPI, callFrameId)\n{\n    var props = {};\n    try {\n        var expressionResult;\n        // Evaluate on call frame if call frame id is available.\n        if (typeof callFrameId === \"number\") {\n            var callFrame = InjectedScript._callFrameForId(callFrameId);\n            if (!callFrame)\n                return props;\n            if (expression)\n                expressionResult = InjectedScript._evaluateOn(callFrame.evaluate, callFrame, expression, true);\n            else {\n                // Evaluate into properties in scope of the selected call frame.\n                var scopeChain = callFrame.scopeChain;\n                for (var i = 0; i < scopeChain.length; ++i)\n                    InjectedScript._populatePropertyNames(scopeChain[i], props);\n            }\n        } else {\n            if (!expression)\n                expression = \"this\";\n            expressionResult = InjectedScript._evaluateOn(inspectedWindow.eval, inspectedWindow, expression);\n        }\n        if (typeof expressionResult == \"object\")\n            InjectedScript._populatePropertyNames(expressionResult, props);\n        if (includeInspectorCommandLineAPI)\n            for (var prop in inspectedWindow.console._inspectorCommandLineAPI)\n                if (prop.charAt(0) !== '_')\n                    props[prop] = true;\n    } catch(e) {\n    }\n    return props;\n}\n\nInjectedScript.evaluate = function(expression, objectGroup)\n{\n    return InjectedScript._evaluateAndWrap(inspectedWindow.eval, inspectedWindow, expression, objectGroup);\n}\n\nInjectedScript._evaluateAndWrap = function(evalFunction, object, expression, objectGroup, dontUseCommandLineAPI)\n{\n    var result = {};\n    try {\n        result.value = InjectedScript.wrapObject(InjectedScript._evaluateOn(evalFunction, object, expression, dontUseCommandLineAPI), objectGroup);\n\n        // Handle error that might have happened while describing result.\n        if (result.value.errorText) {\n            result.value = result.value.errorText;\n            result.isException = true;\n        }\n    } catch (e) {\n        result.value = e.toString();\n        result.isException = true;\n    }\n    return result;\n}\n\nInjectedScript._evaluateOn = function(evalFunction, object, expression, dontUseCommandLineAPI)\n{\n    InjectedScript._ensureCommandLineAPIInstalled(evalFunction, object);\n    // Surround the expression in with statements to inject our command line API so that\n    // the window object properties still take more precedent than our API functions.\n    if (!dontUseCommandLineAPI)\n        expression = \"with (window.console._inspectorCommandLineAPI) { with (window) {\\n\" + expression + \"\\n} }\";\n\n    var value = evalFunction.call(object, expression);\n\n    // When evaluating on call frame error is not thrown, but returned as a value.\n    if (InjectedScript._type(value) === \"error\")\n        throw value.toString();\n\n    return value;\n}\n\nInjectedScript.addInspectedNode = function(nodeId)\n{\n    var node = InjectedScript._nodeForId(nodeId);\n    if (!node)\n        return false;\n\n    InjectedScript._ensureCommandLineAPIInstalled(inspectedWindow.eval, inspectedWindow);\n    var inspectedNodes = inspectedWindow.console._inspectorCommandLineAPI._inspectedNodes;\n    inspectedNodes.unshift(node);\n    if (inspectedNodes.length >= 5)\n        inspectedNodes.pop();\n    return true;\n}\n\nInjectedScript.getNodeId = function(node)\n{\n    return InjectedScriptHost.pushNodePathToFrontend(node, false, false);\n}\n\nInjectedScript.performSearch = function(whitespaceTrimmedQuery, runSynchronously)\n{\n    // FIXME: Few things are missing here:\n    // 1) Search works with node granularity - number of matches within node is not calculated.\n    // 2) Search does not work outside main documents' domain - we need to use specific InjectedScript instances\n    //    for other domains.\n    // 3) There is no need to push all search results to the front-end at a time, pushing next / previous result\n    //    is sufficient.\n    var tagNameQuery = whitespaceTrimmedQuery;\n    var attributeNameQuery = whitespaceTrimmedQuery;\n    var startTagFound = (tagNameQuery.indexOf(\"<\") === 0);\n    var endTagFound = (tagNameQuery.lastIndexOf(\">\") === (tagNameQuery.length - 1));\n\n    if (startTagFound || endTagFound) {\n        var tagNameQueryLength = tagNameQuery.length;\n        tagNameQuery = tagNameQuery.substring((startTagFound ? 1 : 0), (endTagFound ? (tagNameQueryLength - 1) : tagNameQueryLength));\n    }\n\n    // Check the tagNameQuery is it is a possibly valid tag name.\n    if (!/^[a-zA-Z0-9\\-_:]+$/.test(tagNameQuery))\n        tagNameQuery = null;\n\n    // Check the attributeNameQuery is it is a possibly valid tag name.\n    if (!/^[a-zA-Z0-9\\-_:]+$/.test(attributeNameQuery))\n        attributeNameQuery = null;\n\n    const escapedQuery = InjectedScript._escapeCharacters(whitespaceTrimmedQuery, \"'\");\n    const escapedTagNameQuery = (tagNameQuery ?  InjectedScript._escapeCharacters(tagNameQuery, \"'\") : null);\n    const escapedWhitespaceTrimmedQuery = InjectedScript._escapeCharacters(whitespaceTrimmedQuery, \"'\");\n    const searchResultsProperty = InjectedScript._includedInSearchResultsPropertyName;\n\n    function addNodesToResults(nodes, length, getItem)\n    {\n        if (!length)\n            return;\n\n        var nodeIds = [];\n        for (var i = 0; i < length; ++i) {\n            var node = getItem.call(nodes, i);\n            // Skip this node if it already has the property.\n            if (searchResultsProperty in node)\n                continue;\n\n            if (!InjectedScript._searchResults.length) {\n                InjectedScript._currentSearchResultIndex = 0;\n            }\n\n            node[searchResultsProperty] = true;\n            InjectedScript._searchResults.push(node);\n            var nodeId = InjectedScriptHost.pushNodePathToFrontend(node, false, false);\n            nodeIds.push(nodeId);\n        }\n        InjectedScriptHost.addNodesToSearchResult(nodeIds.join(\",\"));\n    }\n\n    function matchExactItems(doc)\n    {\n        matchExactId.call(this, doc);\n        matchExactClassNames.call(this, doc);\n        matchExactTagNames.call(this, doc);\n        matchExactAttributeNames.call(this, doc);\n    }\n\n    function matchExactId(doc)\n    {\n        const result = doc.__proto__.getElementById.call(doc, whitespaceTrimmedQuery);\n        addNodesToResults.call(this, result, (result ? 1 : 0), function() { return this });\n    }\n\n    function matchExactClassNames(doc)\n    {\n        const result = doc.__proto__.getElementsByClassName.call(doc, whitespaceTrimmedQuery);\n        addNodesToResults.call(this, result, result.length, result.item);\n    }\n\n    function matchExactTagNames(doc)\n    {\n        if (!tagNameQuery)\n            return;\n        const result = doc.__proto__.getElementsByTagName.call(doc, tagNameQuery);\n        addNodesToResults.call(this, result, result.length, result.item);\n    }\n\n    function matchExactAttributeNames(doc)\n    {\n        if (!attributeNameQuery)\n            return;\n        const result = doc.__proto__.querySelectorAll.call(doc, \"[\" + attributeNameQuery + \"]\");\n        addNodesToResults.call(this, result, result.length, result.item);\n    }\n\n    function matchPartialTagNames(doc)\n    {\n        if (!tagNameQuery)\n            return;\n        const result = doc.__proto__.evaluate.call(doc, \"//*[contains(name(), '\" + escapedTagNameQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchStartOfTagNames(doc)\n    {\n        if (!tagNameQuery)\n            return;\n        const result = doc.__proto__.evaluate.call(doc, \"//*[starts-with(name(), '\" + escapedTagNameQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchPartialTagNamesAndAttributeValues(doc)\n    {\n        if (!tagNameQuery) {\n            matchPartialAttributeValues.call(this, doc);\n            return;\n        }\n\n        const result = doc.__proto__.evaluate.call(doc, \"//*[contains(name(), '\" + escapedTagNameQuery + \"') or contains(@*, '\" + escapedQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchPartialAttributeValues(doc)\n    {\n        const result = doc.__proto__.evaluate.call(doc, \"//*[contains(@*, '\" + escapedQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchStyleSelector(doc)\n    {\n        const result = doc.__proto__.querySelectorAll.call(doc, whitespaceTrimmedQuery);\n        addNodesToResults.call(this, result, result.length, result.item);\n    }\n\n    function matchPlainText(doc)\n    {\n        const result = doc.__proto__.evaluate.call(doc, \"//text()[contains(., '\" + escapedQuery + \"')] | //comment()[contains(., '\" + escapedQuery + \"')]\", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function matchXPathQuery(doc)\n    {\n        const result = doc.__proto__.evaluate.call(doc, whitespaceTrimmedQuery, doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n        addNodesToResults.call(this, result, result.snapshotLength, result.snapshotItem);\n    }\n\n    function finishedSearching()\n    {\n        // Remove the searchResultsProperty now that the search is finished.\n        for (var i = 0; i < InjectedScript._searchResults.length; ++i)\n            delete InjectedScript._searchResults[i][searchResultsProperty];\n    }\n\n    const mainFrameDocument = inspectedWindow.document;\n    const searchDocuments = [mainFrameDocument];\n    var searchFunctions;\n    if (tagNameQuery && startTagFound && endTagFound)\n        searchFunctions = [matchExactTagNames, matchPlainText];\n    else if (tagNameQuery && startTagFound)\n        searchFunctions = [matchStartOfTagNames, matchPlainText];\n    else if (tagNameQuery && endTagFound) {\n        // FIXME: we should have a matchEndOfTagNames search function if endTagFound is true but not startTagFound.\n        // This requires ends-with() support in XPath, WebKit only supports starts-with() and contains().\n        searchFunctions = [matchPartialTagNames, matchPlainText];\n    } else if (whitespaceTrimmedQuery === \"//*\" || whitespaceTrimmedQuery === \"*\") {\n        // These queries will match every node. Matching everything isn't useful and can be slow for large pages,\n        // so limit the search functions list to plain text and attribute matching.\n        searchFunctions = [matchPartialAttributeValues, matchPlainText];\n    } else\n        searchFunctions = [matchExactItems, matchStyleSelector, matchPartialTagNamesAndAttributeValues, matchPlainText, matchXPathQuery];\n\n    // Find all frames, iframes and object elements to search their documents.\n    const subdocumentResult = mainFrameDocument.querySelectorAll(\"iframe, frame, object\");\n\n    for (var i = 0; i < subdocumentResult.length; ++i) {\n        var element = subdocumentResult.item(i);\n        if (element.contentDocument)\n            searchDocuments.push(element.contentDocument);\n    }\n\n    const panel = InjectedScript;\n    var documentIndex = 0;\n    var searchFunctionIndex = 0;\n    var chunkIntervalIdentifier = null;\n\n    // Split up the work into chunks so we don't block the UI thread while processing.\n\n    function processChunk()\n    {\n        var searchDocument = searchDocuments[documentIndex];\n        var searchFunction = searchFunctions[searchFunctionIndex];\n\n        if (++searchFunctionIndex > searchFunctions.length) {\n            searchFunction = searchFunctions[0];\n            searchFunctionIndex = 0;\n\n            if (++documentIndex > searchDocuments.length) {\n                if (panel._currentSearchChunkIntervalIdentifier === chunkIntervalIdentifier)\n                    delete panel._currentSearchChunkIntervalIdentifier;\n                clearInterval(chunkIntervalIdentifier);\n                finishedSearching.call(panel);\n                return false;\n            }\n\n            searchDocument = searchDocuments[documentIndex];\n        }\n\n        try {\n            searchFunction.call(panel, searchDocument);\n        } catch(err) {\n            // ignore any exceptions. the query might be malformed, but we allow that.\n        }\n        return true;\n    }\n\n    if (runSynchronously)\n        while (processChunk()) {}\n    else {\n        processChunk();\n        chunkIntervalIdentifier = setInterval(processChunk, 25);\n        InjectedScript._currentSearchChunkIntervalIdentifier = chunkIntervalIdentifier;\n    }\n    return true;\n}\n\nInjectedScript.searchCanceled = function()\n{\n    if (InjectedScript._searchResults) {\n        const searchResultsProperty = InjectedScript._includedInSearchResultsPropertyName;\n        for (var i = 0; i < this._searchResults.length; ++i) {\n            var node = this._searchResults[i];\n\n            // Remove the searchResultsProperty since there might be an unfinished search.\n            delete node[searchResultsProperty];\n        }\n    }\n\n    if (InjectedScript._currentSearchChunkIntervalIdentifier) {\n        clearInterval(InjectedScript._currentSearchChunkIntervalIdentifier);\n        delete InjectedScript._currentSearchChunkIntervalIdentifier;\n    }\n    InjectedScript._searchResults = [];\n    return true;\n}\n\nInjectedScript.openInInspectedWindow = function(url)\n{\n    // Don't call window.open on wrapper - popup blocker mutes it.\n    // URIs should have no double quotes.\n    inspectedWindow.eval(\"window.open(\\\"\" + url + \"\\\")\");\n    return true;\n}\n\nInjectedScript.callFrames = function()\n{\n    var callFrame = InjectedScriptHost.currentCallFrame();\n    if (!callFrame)\n        return false;\n\n    var result = [];\n    var depth = 0;\n    do {\n        result.push(new InjectedScript.CallFrameProxy(depth++, callFrame));\n        callFrame = callFrame.caller;\n    } while (callFrame);\n    return result;\n}\n\nInjectedScript.evaluateInCallFrame = function(callFrameId, code, objectGroup)\n{\n    var callFrame = InjectedScript._callFrameForId(callFrameId);\n    if (!callFrame)\n        return false;\n    return InjectedScript._evaluateAndWrap(callFrame.evaluate, callFrame, code, objectGroup, true);\n}\n\nInjectedScript._callFrameForId = function(id)\n{\n    var callFrame = InjectedScriptHost.currentCallFrame();\n    while (--id >= 0 && callFrame)\n        callFrame = callFrame.caller;\n    return callFrame;\n}\n\nInjectedScript.clearConsoleMessages = function()\n{\n    InjectedScriptHost.clearConsoleMessages();\n    return true;\n}\n\nInjectedScript._inspectObject = function(o)\n{\n    if (arguments.length === 0)\n        return;\n\n    inspectedWindow.console.log(o);\n    if (InjectedScript._type(o) === \"node\") {\n        InjectedScriptHost.pushNodePathToFrontend(o, false, true);\n    } else {\n        switch (InjectedScript._describe(o)) {\n            case \"Database\":\n                InjectedScriptHost.selectDatabase(o);\n                break;\n            case \"Storage\":\n                InjectedScriptHost.selectDOMStorage(o);\n                break;\n        }\n    }\n}\n\nInjectedScript._copy = function(o)\n{\n    if (InjectedScript._type(o) === \"node\") {\n        var nodeId = InjectedScriptHost.pushNodePathToFrontend(o, false, false);\n        InjectedScriptHost.copyNode(nodeId);\n    } else {\n        InjectedScriptHost.copyText(o);\n    }\n}\n\nInjectedScript._ensureCommandLineAPIInstalled = function(evalFunction, evalObject)\n{\n    if (evalFunction.call(evalObject, \"window.console._inspectorCommandLineAPI\"))\n        return;\n    var inspectorCommandLineAPI = evalFunction.call(evalObject, \"window.console._inspectorCommandLineAPI = { \\n\\\n        $: function() { return document.getElementById.apply(document, arguments) }, \\n\\\n        $$: function() { return document.querySelectorAll.apply(document, arguments) }, \\n\\\n        $x: function(xpath, context) \\n\\\n        { \\n\\\n            var nodes = []; \\n\\\n            try { \\n\\\n                var doc = context || document; \\n\\\n                var results = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); \\n\\\n                var node; \\n\\\n                while (node = results.iterateNext()) nodes.push(node); \\n\\\n            } catch (e) {} \\n\\\n            return nodes; \\n\\\n        }, \\n\\\n        dir: function() { return console.dir.apply(console, arguments) }, \\n\\\n        dirxml: function() { return console.dirxml.apply(console, arguments) }, \\n\\\n        keys: function(o) { var a = []; for (var k in o) a.push(k); return a; }, \\n\\\n        values: function(o) { var a = []; for (var k in o) a.push(o[k]); return a; }, \\n\\\n        profile: function() { return console.profile.apply(console, arguments) }, \\n\\\n        profileEnd: function() { return console.profileEnd.apply(console, arguments) }, \\n\\\n        _logEvent: function _inspectorCommandLineAPI_logEvent(e) { console.log(e.type, e); }, \\n\\\n        _allEventTypes: [\\\"mouse\\\", \\\"key\\\", \\\"load\\\", \\\"unload\\\", \\\"abort\\\", \\\"error\\\", \\n\\\n            \\\"select\\\", \\\"change\\\", \\\"submit\\\", \\\"reset\\\", \\\"focus\\\", \\\"blur\\\", \\n\\\n            \\\"resize\\\", \\\"scroll\\\"], \\n\\\n        _normalizeEventTypes: function(t) \\n\\\n        { \\n\\\n            if (typeof t === \\\"undefined\\\") \\n\\\n                t = console._inspectorCommandLineAPI._allEventTypes; \\n\\\n            else if (typeof t === \\\"string\\\") \\n\\\n                t = [t]; \\n\\\n            var i, te = []; \\n\\\n            for (i = 0; i < t.length; i++) { \\n\\\n                if (t[i] === \\\"mouse\\\") \\n\\\n                    te.splice(0, 0, \\\"mousedown\\\", \\\"mouseup\\\", \\\"click\\\", \\\"dblclick\\\", \\n\\\n                        \\\"mousemove\\\", \\\"mouseover\\\", \\\"mouseout\\\"); \\n\\\n                else if (t[i] === \\\"key\\\") \\n\\\n                    te.splice(0, 0, \\\"keydown\\\", \\\"keyup\\\", \\\"keypress\\\"); \\n\\\n                else \\n\\\n                    te.push(t[i]); \\n\\\n            } \\n\\\n            return te; \\n\\\n        }, \\n\\\n        monitorEvents: function(o, t) \\n\\\n        { \\n\\\n            if (!o || !o.addEventListener || !o.removeEventListener) \\n\\\n                return; \\n\\\n            t = console._inspectorCommandLineAPI._normalizeEventTypes(t); \\n\\\n            for (i = 0; i < t.length; i++) { \\n\\\n                o.removeEventListener(t[i], console._inspectorCommandLineAPI._logEvent, false); \\n\\\n                o.addEventListener(t[i], console._inspectorCommandLineAPI._logEvent, false); \\n\\\n            } \\n\\\n        }, \\n\\\n        unmonitorEvents: function(o, t) \\n\\\n        { \\n\\\n            if (!o || !o.removeEventListener) \\n\\\n                return; \\n\\\n            t = console._inspectorCommandLineAPI._normalizeEventTypes(t); \\n\\\n            for (i = 0; i < t.length; i++) { \\n\\\n                o.removeEventListener(t[i], console._inspectorCommandLineAPI._logEvent, false); \\n\\\n            } \\n\\\n        }, \\n\\\n        _inspectedNodes: [], \\n\\\n        get $0() { return console._inspectorCommandLineAPI._inspectedNodes[0] }, \\n\\\n        get $1() { return console._inspectorCommandLineAPI._inspectedNodes[1] }, \\n\\\n        get $2() { return console._inspectorCommandLineAPI._inspectedNodes[2] }, \\n\\\n        get $3() { return console._inspectorCommandLineAPI._inspectedNodes[3] }, \\n\\\n        get $4() { return console._inspectorCommandLineAPI._inspectedNodes[4] }, \\n\\\n    };\");\n\n    inspectorCommandLineAPI.clear = InjectedScript.clearConsoleMessages;\n    inspectorCommandLineAPI.inspect = InjectedScript._inspectObject;\n    inspectorCommandLineAPI.copy = InjectedScript._copy;\n}\n\nInjectedScript._resolveObject = function(objectProxy)\n{\n    var object = InjectedScript._objectForId(objectProxy.objectId);\n    var path = objectProxy.path;\n    var protoDepth = objectProxy.protoDepth;\n\n    // Follow the property path.\n    for (var i = 0; InjectedScript._isDefined(object) && path && i < path.length; ++i)\n        object = object[path[i]];\n\n    return object;\n}\n\nInjectedScript._nodeForId = function(nodeId)\n{\n    if (!nodeId)\n        return null;\n    return InjectedScriptHost.nodeForId(nodeId);\n}\n\nInjectedScript._objectForId = function(objectId)\n{\n    // There are three types of object ids used:\n    // - numbers point to DOM Node via the InspectorDOMAgent mapping\n    // - strings point to console objects cached in InspectorController for lazy evaluation upon them\n    // - objects contain complex ids and are currently used for scoped objects\n    if (typeof objectId === \"number\") {\n        return InjectedScript._nodeForId(objectId);\n    } else if (typeof objectId === \"string\") {\n        return InjectedScript.unwrapObject(objectId);\n    } else if (typeof objectId === \"object\") {\n        var callFrame = InjectedScript._callFrameForId(objectId.callFrame);\n        if (objectId.thisObject)\n            return callFrame.thisObject;\n        else\n            return callFrame.scopeChain[objectId.chainIndex];\n    }\n    return objectId;\n}\n\nInjectedScript.pushNodeToFrontend = function(objectProxy)\n{\n    var object = InjectedScript._resolveObject(objectProxy);\n    if (!object || InjectedScript._type(object) !== \"node\")\n        return false;\n    return InjectedScriptHost.pushNodePathToFrontend(object, false, false);\n}\n\nInjectedScript.nodeByPath = function(path)\n{\n    // We make this call through the injected script only to get a nice\n    // callback for it.\n    return InjectedScriptHost.pushNodeByPathToFrontend(path.join(\",\"));\n}\n\n// Called from within InspectorController on the 'inspected page' side.\nInjectedScript.createProxyObject = function(object, objectId, abbreviate)\n{\n    var result = {};\n    result.injectedScriptId = injectedScriptId;\n    result.objectId = objectId;\n    result.type = InjectedScript._type(object);\n    if (result.type === \"array\")\n        result.propertyLength = object.length;\n\n    var type = typeof object;\n    \n    result.hasChildren = (type === \"object\" && object !== null && (Object.getOwnPropertyNames(object).length || object.__proto__)) || type === \"function\";\n    try {\n        result.description = InjectedScript._describe(object, abbreviate);\n    } catch (e) {\n        result.errorText = e.toString();\n    }\n    return result;\n}\n\nInjectedScript.evaluateOnSelf = function(funcBody, args)\n{\n    var func = window.eval(\"(\" + funcBody + \")\");\n    return func.apply(this, args || []);\n}\n\nInjectedScript.CallFrameProxy = function(id, callFrame)\n{\n    this.id = id;\n    this.type = callFrame.type;\n    this.functionName = (this.type === \"function\" ? callFrame.functionName : \"\");\n    this.sourceID = callFrame.sourceID;\n    this.line = callFrame.line;\n    this.scopeChain = this._wrapScopeChain(callFrame);\n}\n\nInjectedScript.CallFrameProxy.prototype = {\n    _wrapScopeChain: function(callFrame)\n    {\n        var foundLocalScope = false;\n        var scopeChain = callFrame.scopeChain;\n        var scopeChainProxy = [];\n        for (var i = 0; i < scopeChain.length; ++i) {\n            var scopeObject = scopeChain[i];\n            var scopeObjectProxy = InjectedScript.createProxyObject(scopeObject, { callFrame: this.id, chainIndex: i }, true);\n\n            if (InjectedScriptHost.isActivation(scopeObject)) {\n                if (!foundLocalScope)\n                    scopeObjectProxy.thisObject = InjectedScript.createProxyObject(callFrame.thisObject, { callFrame: this.id, thisObject: true }, true);\n                else\n                    scopeObjectProxy.isClosure = true;\n                foundLocalScope = true;\n                scopeObjectProxy.isLocal = true;\n            } else if (foundLocalScope && scopeObject instanceof inspectedWindow.Element)\n                scopeObjectProxy.isElement = true;\n            else if (foundLocalScope && scopeObject instanceof inspectedWindow.Document)\n                scopeObjectProxy.isDocument = true;\n            else if (!foundLocalScope)\n                scopeObjectProxy.isWithBlock = true;\n            scopeChainProxy.push(scopeObjectProxy);\n        }\n        return scopeChainProxy;\n    }\n}\n\nInjectedScript.executeSql = function(callId, databaseId, query)\n{\n    function successCallback(tx, result)\n    {\n        var rows = result.rows;\n        var result = [];\n        var length = rows.length;\n        for (var i = 0; i < length; ++i) {\n            var data = {};\n            result.push(data);\n            var row = rows.item(i);\n            for (var columnIdentifier in row) {\n                // FIXME: (Bug 19439) We should specially format SQL NULL here\n                // (which is represented by JavaScript null here, and turned\n                // into the string \"null\" by the String() function).\n                var text = row[columnIdentifier];\n                data[columnIdentifier] = String(text);\n            }\n        }\n        InjectedScriptHost.reportDidDispatchOnInjectedScript(callId, result, false);\n    }\n\n    function errorCallback(tx, error)\n    {\n        InjectedScriptHost.reportDidDispatchOnInjectedScript(callId, error, false);\n    }\n\n    function queryTransaction(tx)\n    {\n        tx.executeSql(query, null, successCallback, errorCallback);\n    }\n\n    var database = InjectedScriptHost.databaseForId(databaseId);\n    if (!database)\n        errorCallback(null, { code : 2 });  // Return as unexpected version.\n    database.transaction(queryTransaction, errorCallback);\n    return true;\n}\n\nInjectedScript._isDefined = function(object)\n{\n    return object || InjectedScript._isHTMLAllCollection(object);\n}\n\nInjectedScript._isHTMLAllCollection = function(object)\n{\n    // document.all is reported as undefined, but we still want to process it.\n    return (typeof object === \"undefined\") && inspectedWindow.HTMLAllCollection && object instanceof inspectedWindow.HTMLAllCollection;\n}\n\nInjectedScript._type = function(obj)\n{\n    if (obj === null)\n        return \"null\";\n\n    var type = typeof obj;\n    if (type !== \"object\" && type !== \"function\") {\n        // FIXME(33716): typeof document.all is always 'undefined'.\n        if (InjectedScript._isHTMLAllCollection(obj))\n            return \"array\";\n        return type;\n    }\n\n    // If owning frame has navigated to somewhere else window properties will be undefined.\n    // In this case just return result of the typeof.\n    if (!inspectedWindow.document)\n        return type;\n\n    if (obj instanceof inspectedWindow.Node)\n        return (obj.nodeType === undefined ? type : \"node\");\n    if (obj instanceof inspectedWindow.String)\n        return \"string\";\n    if (obj instanceof inspectedWindow.Array)\n        return \"array\";\n    if (obj instanceof inspectedWindow.Boolean)\n        return \"boolean\";\n    if (obj instanceof inspectedWindow.Number)\n        return \"number\";\n    if (obj instanceof inspectedWindow.Date)\n        return \"date\";\n    if (obj instanceof inspectedWindow.RegExp)\n        return \"regexp\";\n    if (obj instanceof inspectedWindow.NodeList)\n        return \"array\";\n    if (obj instanceof inspectedWindow.HTMLCollection)\n        return \"array\";\n    if (obj instanceof inspectedWindow.Error)\n        return \"error\";\n    return type;\n}\n\nInjectedScript._describe = function(obj, abbreviated)\n{\n    var type1 = InjectedScript._type(obj);\n    var type2 = InjectedScript._className(obj);\n\n    switch (type1) {\n    case \"object\":\n    case \"node\":\n    case \"array\":\n        return type2;\n    case \"string\":\n        if (!abbreviated)\n            return obj;\n        if (obj.length > 100)\n            return \"\\\"\" + obj.substring(0, 100) + \"\\u2026\\\"\";\n        return \"\\\"\" + obj + \"\\\"\";\n    case \"function\":\n        var objectText = InjectedScript._toString(obj);\n        if (!/^function /.test(objectText))\n            objectText = (type2 == \"object\") ? type1 : type2;\n        else if (abbreviated)\n            objectText = /.*/.exec(obj)[0].replace(/ +$/g, \"\");\n        return objectText;\n    default:\n        return InjectedScript._toString(obj);\n    }\n}\n\nInjectedScript._toString = function(obj)\n{\n    // We don't use String(obj) because inspectedWindow.String is undefined if owning frame navigated to another page.\n    return \"\" + obj;\n}\n\nInjectedScript._className = function(obj)\n{\n    var str = inspectedWindow.Object ? inspectedWindow.Object.prototype.toString.call(obj) : InjectedScript._toString(obj);\n    return str.replace(/^\\[object (.*)\\]$/i, \"$1\");\n}\n\nInjectedScript._escapeCharacters = function(str, chars)\n{\n    var foundChar = false;\n    for (var i = 0; i < chars.length; ++i) {\n        if (str.indexOf(chars.charAt(i)) !== -1) {\n            foundChar = true;\n            break;\n        }\n    }\n\n    if (!foundChar)\n        return str;\n\n    var result = \"\";\n    for (var i = 0; i < str.length; ++i) {\n        if (chars.indexOf(str.charAt(i)) !== -1)\n            result += \"\\\\\";\n        result += str.charAt(i);\n    }\n\n    return result;\n}\n\nreturn InjectedScript;\n})","sourceLength":36038,"scriptType":2,"compilationType":0,"context":{"ref":22},"text":"undefined (lines: 972)"},{"handle":25,"type":"script","name":"http://localhost/~fabianpb/editor/experiments/key_event_logger.html","id":80,"lineOffset":38,"columnOffset":0,"lineCount":59,"source":"\n    \nif (!window.console) window.console = {};\nif (!console.log) {\n    var logger = document.getElementById(\"logger\");\n    console.log = function() {\n        logger.innerHTML += Array.prototype.join.call(arguments, \", \") + \"<br>\";\n    }\n}\n\nfunction addListener(elem, type, callback) {\n    if (elem.addEventListener) {\n        return elem.addEventListener(type, callback, false);\n    }\n    if (elem.attachEvent) {\n        elem.attachEvent(\"on\" + type, function() {\n            callback(window.event);\n        });\n    }\n}\n\n    \nvar container = document.getElementById(\"container\");\nvar canvas = document.getElementById(\"canvas\");\nvar text = document.getElementById(\"text\");\n    \nfunction log(e) {\n    console.log(e.type, e);\n}\n\nfunction logKey(e) {\n    throw new Error(\"Buhhh\");\n    console.log(e.type, e.charCode, e.keyCode, e);\n}\n\naddListener(text, \"keydown\", logKey, false);\naddListener(text, \"keyup\", logKey, false);\naddListener(text, \"keypress\", logKey, false);\n\naddListener(text, \"textInput\", function(e) {\n    console.log(e.type, e.data, e);\n}, false);\n\naddListener(text, \"copy\", log, false);\naddListener(text, \"paste\", log, false);\naddListener(text, \"cut\", log, false);\n\naddListener(text, \"beforecopy\", log, false);\naddListener(text, \"beforepaste\", log, false);\naddListener(text, \"beforecut\", log, false);\n\naddListener(text, \"compositionstart\", log, false);\naddListener(text, \"compositionupdate\", log, false);\naddListener(text, \"compositionend\", log, false);\n\naddListener(text, \"propertychange\", function(e) {\n    console.log(e.type, e.propertyName, e);\n}, false);\n    \n","sourceLength":1577,"scriptType":2,"compilationType":0,"context":{"ref":24},"text":"http://localhost/~fabianpb/editor/experiments/key_event_logger.html (lines: 38-96)"},{"handle":27,"type":"script","name":"chrome-extension://gkndfifopckmhdkohjeoljlbfnjhekfg/onepassword_loader.js","id":95,"lineOffset":0,"columnOffset":0,"lineCount":34,"source":"console.log(\"Initializing onepassword_loader\"); \n\nfunction fillLoginFull(secureContents) {\t\n\t// for (var i in document.forms) {\n\t// \tf = document.forms\n\t// }\n}\n\nfunction fillLoginAction(login) {\n\t// if (login.dataObject) {\n\t// \tsecureContents = login.dataObject.secureContents;\n\t// \tif (fillLoginFull(secureContents))\n\t// \t\treturn;\n\t// }\n\t\n\tvar simple = login.simple;\n\t$(\"input:text\").val(simple.u);\n\t$(\"input:password\").val(simple.p);\n}\n\nfunction processRequest(request, sender, sendResponse) {\n\tif (request.action == \"fillLoginAction\") {\n\t\tfillLoginAction(eval(\"(\" + request.loginObject + \")\"));\n\t}\n\t\n    if (sendResponse) sendResponse({});\n}\n\nchrome.extension.onRequest.addListener(processRequest);\n\n// chrome.browserAction.onClicked.addListener(function(tab) {\n// \talert(\"Hey there\");\n// //\tchrome.tabs.executeScript(tab.id, {code:\"alert('Browser Action!');\"});\n// });","sourceLength":872,"scriptType":2,"compilationType":0,"context":{"ref":26},"text":"chrome-extension://gkndfifopckmhdkohjeoljlbfnjhekfg/onepassword_loader.js (lines: 34)"},{"handle":29,"type":"script","name":"chrome-extension://nlbjncdgjeocebhnmkbbbdekmmmcbfjd/sniff_common.js","id":98,"lineOffset":0,"columnOffset":0,"lineCount":53,"source":"// Copyright (c) 2010 The Chromium Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\n// The possible log levels.\nvar logLevels = {\n    \"none\": 0,\n    \"error\": 1,\n    \"info\": 2\n};\n\n// Defines the current log level. Values other than \"none\" are for debugging\n// only and should at no point be checked in.\nvar currentLogLevel = logLevels.none;\n\nfunction containsFeed(doc) {\n  debugMsg(logLevels.info, \"containsFeed called\");\n\n  // Find all the RSS link elements.\n  var result = doc.evaluate(\n      '//*[local-name()=\"rss\" or local-name()=\"feed\" or local-name()=\"RDF\"]',\n      doc, null, 0, null);\n\n  if (!result) {\n    debugMsg(logLevels.info, \"exiting: document.evaluate returned no results\");\n    return false;  // This is probably overly defensive, but whatever.\n  }\n\n  var node = result.iterateNext();\n\n  if (!node) {\n    debugMsg(logLevels.info, \"returning: iterateNext() returned no nodes\");\n    return false;  // No RSS tags were found.\n  }\n\n  // The feed for arab dash jokes dot net, for example, contains\n  // a feed that is a child of the body tag so we continue only if the\n  // node contains no parent or if the parent is the body tag.\n  if (node.parentElement && node.parentElement.tagName != \"BODY\") {\n    debugMsg(logLevels.info, \"exiting: parentElement that's not BODY\");\n    return false;\n  }\n\n  debugMsg(logLevels.info, \"Found feed\");\n\n  return true;\n}\n\nfunction debugMsg(loglevel, text) {\n  if (loglevel <= currentLogLevel) {\n    console.log(\"RSS Subscription extension: \" + text);\n  }\n}\n","sourceLength":1589,"scriptType":2,"compilationType":0,"context":{"ref":28},"text":"chrome-extension://nlbjncdgjeocebhnmkbbbdekmmmcbfjd/sniff_common.js (lines: 53)"},{"handle":31,"type":"script","name":"chrome-extension://ahldefgplekckalfcolhhnljbbgaiboc/mailto.js","id":89,"lineOffset":0,"columnOffset":0,"lineCount":52,"source":"// Copyright (c) 2009 The Chromium Authors. All rights reserved.\r\n// Copyright (c) 2010 Jacopo Corbetta. All rights reserved.\r\n// Use of this source code is governed by a BSD-style license that can be\r\n// found in the LICENSE file.\r\n\r\nvar cachedGmailUrl = \"\";\r\n\r\nfunction rewriteMailtoToGMailUrl(inUrl) {\r\n  return cachedGmailUrl + escape(inUrl);\r\n}\r\n\r\n// Content Scripts\r\nfunction rewriteMailtosOnPage() {\r\n  // Find all the mailto links.\r\n  //console.log(\"Starting to rewrite mailtos\");\r\n  var result = document.evaluate(\r\n      '//a[contains(@href, \"mailto:\")]',\r\n      document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);\r\n\r\n  var item;\r\n  var nodes = [];\r\n  // cannot change the NODE_ITERATOR nodes' attributes in this loop itself\r\n  // since iterateNext will invalidate the state; Need to store temporarily.\r\n  while (item = result.iterateNext()) {\r\n    nodes.push(item);\r\n  }\r\n  \r\n  for (var i = 0; i < nodes.length; i++) {\r\n    var mailtoStr = nodes[i].getAttribute('href');\r\n    mailtoStr = rewriteMailtoToGMailUrl(mailtoStr);\r\n    nodes[i].setAttribute('href', mailtoStr);\r\n    nodes[i].setAttribute('target', \"_blank\");\r\n    nodes[i].setAttribute('rel', 'noreferrer');\r\n  }\r\n}\r\n\t\t\r\nif (window == top) {\r\n  if (cachedGmailUrl != \"\") {\r\n    rewriteMailtosOnPage();\r\n    window.addEventListener(\"focus\", rewriteMailtosOnPage);\r\n  }\r\n  \r\n  var bgPort = chrome.extension.connect({name: \"GmailUrlConn\"});\r\n  bgPort.postMessage({req: \"GmailUrlPlease\"});\r\n  bgPort.onMessage.addListener(\r\n  function(msg) {\r\n    //console.log(\"Got message from bg page - \" + msg.gmailDomainUrl);\r\n    cachedGmailUrl = msg.gmailDomainUrl;\r\n    rewriteMailtosOnPage();\r\n    // Not sending any response to ack.\r\n  });\r\n}\r\n","sourceLength":1717,"scriptType":2,"compilationType":0,"context":{"ref":30},"text":"chrome-extension://ahldefgplekckalfcolhhnljbbgaiboc/mailto.js (lines: 52)"}],"refs":[{"handle":2,"type":"context","text":"#<a ContextMirror>"},{"handle":4,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":6,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":8,"type":"context","text":"#<a ContextMirror>"},{"handle":10,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":12,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":14,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":16,"type":"context","text":"#<a ContextMirror>"},{"handle":18,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":20,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":22,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":24,"type":"context","data":"page,1","text":"#<a ContextMirror>"},{"handle":26,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":28,"type":"context","data":"injected,1","text":"#<a ContextMirror>"},{"handle":30,"type":"context","data":"injected,1","text":"#<a ContextMirror>"}],"running":true}}Destination:25
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/baseclasses/liveedit/richtext.js:1446:            var domParser = new apf.DOMParser(),
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/browsers/ie.js:84:            var xmlParser = getDOMParser(message, noError);
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/browsers/non_ie.js:192:        var oDoc    = (new DOMParser()).parseFromString(strXML, "text/xml");
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/browsers/non_ie.js:343:            xmlParser = new DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/browsers/webkit.js:44:            var x           = new DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/lib/teleport/iframe.js:148:    function getDOMParser(message, no_error){
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/lib/util/xmldiff.js:25:    /*var domParser = new apf.DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/markup/domparser.js:38:apf.DOMParser = function(){};
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/markup/domparser.js:40:apf.DOMParser.prototype = new (function(){
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/markup/domparser.js:122:                apf.console.warn("DOMParser got markup without any children");
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/markup/xslt/xslt.js:284:            //new DOMParser().parseFromString("<xsltresult></xsltresult>", "text/xml");//
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/window-o3.js:114:        this.$domParser = new apf.DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/core/window.js:1401:        this.$domParser = new apf.DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:5958:    /*var domParser = new apf.DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:29999:    function getDOMParser(message, no_error){
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:32292:apf.DOMParser = function(){};
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:32294:apf.DOMParser.prototype = new (function(){
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:32364:                apf.console.warn("DOMParser got markup without any children");
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:37907:            //new DOMParser().parseFromString("<xsltresult></xsltresult>", "text/xml");//
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:48309:            var domParser = new apf.DOMParser(),
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:68562:        this.$domParser = new apf.DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:69373:            var xmlParser = getDOMParser(message, noError);
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:69865:        var oDoc    = (new DOMParser()).parseFromString(strXML, "text/xml");
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:70011:            xmlParser = new DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/debugwin/apf_debugwin.js:70496:            var x           = new DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/test/lm_test.html:108:					p = new DOMParser();
/Volumes/Docs/NetbeansProjects/ide/common/apf/test/lm_tryout.html:167:                else{p = new DOMParser();if(x) p = p.parseFromString(x, "text/xml");}
/Volumes/Docs/NetbeansProjects/ide/common/connect/support/koala/spec/lib/jspec.js:1088:      if (window.DOMParser)
/Volumes/Docs/NetbeansProjects/ide/common/connect/support/koala/spec/lib/jspec.js:1089:        xmlDoc = (new DOMParser()).parseFromString(text, "text/xml")
/Volumes/Docs/NetbeansProjects/ide/common/connect/support/sass/spec/lib/jspec.js:1088:      if (window.DOMParser)
/Volumes/Docs/NetbeansProjects/ide/common/connect/support/sass/spec/lib/jspec.js:1089:        xmlDoc = (new DOMParser()).parseFromString(text, "text/xml")
